(57)【要約】本願は、ネットワークオンチップによるデータ処理方法に関し、前記方法はネットワークオンチップ処理システムに応用され、前記ネットワークオンチップ処理システムは機械学習計算を実行するために用いられ、前記ネットワークオンチップ処理システムは、記憶装置と、計算装置とを含み、前記方法は、前記ネットワークオンチップ処理システム中の第１計算装置が前記ネットワークオンチップ処理システム中の記憶装置にアクセスすることにより、第１演算データを取得することと、前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得ることと、前記第１演算結果を前記ネットワークオンチップ処理システム中の第２計算装置に送信することとを含む。当該方法は演算のオーバーヘッドを低減し、データの読み書き効率を高めることができる。【選択図】図１
2021526277.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、複数の計算装置とを含み、前記記憶装置及び複数の前記計算装置は１枚のチップに設けられ、少なくとも１つの計算装置は前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続されることを特徴とするネットワークオンチップ処理システム。
【請求項２】
前記複数の計算装置のうちの任意の２つの計算装置は直接的に接続されることを特徴とする請求項１に記載のシステム。
【請求項３】
前記複数の計算装置は第１計算装置と、複数の第２計算装置とを含み、前記第１計算装置は前記記憶装置に接続され、前記複数の第２計算装置のうちの少なくとも１つの第２計算装置は前記第１計算装置に接続されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記複数の第２計算装置のうちの少なくとも２つの第２計算装置は互いに接続され、且つ前記第１計算装置を介して前記記憶装置に接続されることを特徴とする請求項３に記載のシステム。
【請求項５】
前記複数の第２計算装置のうちの任意の２つの第２計算装置は前記第１計算装置に直接的に接続されることを特徴とする請求項３に記載のシステム。
【請求項６】
前記複数の計算装置のうちの各計算装置はいずれも前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続されることを特徴とする請求項１に記載のシステム。
【請求項７】
前記計算装置は、機械学習計算を実行するために用いられ、演算ユニットと、コントローラユニットとを含み、前記演算ユニットは、１つの主処理回路と、複数の副処理回路とを含み、
前記コントローラユニットは、入力データ及び計算コマンドを取得するために用いられ、
前記コントローラユニットは、さらに、前記計算コマンドを解析して複数の演算コマンドを得、前記複数の演算コマンド及び前記入力データを前記主処理回路に送信するために用いられ、
前記主処理回路は、前記入力データに前処理を実行し、前記複数の副処理回路とデータ及び演算コマンドを伝送するために用いられ、
前記複数の副処理回路は、前記主処理回路から伝送されたデータ及び演算コマンドに基づき、並行して中間演算を実行して複数の中間結果を得、複数の中間結果を前記主処理回路に伝送するために用いられ、
前記主処理回路は、前記複数の中間結果に後続の処理を実行して前記計算コマンドの計算結果を得るために用いられることを特徴とする請求項１に記載のシステム。
【請求項８】
前記コントローラユニットは、コマンド記憶ユニットと、コマンド記憶ユニットと、キュー記憶ユニットとを含み、
前記コマンド記憶ユニットは、人工ニューラルネットワーク演算に関連する前記計算コマンドを記憶するために用いられ、
前記コマンド処理ユニットは、前記計算コマンドを解析して複数の演算コマンドを得るために用いられ、
前記キュー記憶ユニットは、コマンドキューを記憶するために用いられ、前記コマンドキューは、前記コマンドキューの前後順番に従って実行される複数の演算コマンド又は計算コマンドを含むことを特徴とする請求項７に記載のシステム。
【請求項９】
請求項１〜８のいずれか１項に記載のネットワークオンチップ処理システムを含むことを特徴とする機械学習チップ。
【請求項１０】
ニューラルネットワーク演算装置であって、
請求項１〜８のいずれか１項に記載の計算装置を１つ又は複数含み、演算される入力データ及び制御情報を処理装置から取得し、機械学習演算を実行して、実行結果を入力／出力インタフェースによって前記処理装置に伝送するために用いられ、
前記ニューラルネットワーク演算装置が複数の前記計算装置を含む場合に、複数の前記計算装置は互いに接続されてデータを伝送し、
複数の前記計算装置は周辺装置相互接続バスによって互いに接続されてデータを伝送して、機械学習演算をサポートし、複数の前記計算装置の相互の接続方式は様々な相互接続トポロジを含むことを特徴とするニューラルネットワーク演算装置。
【請求項１１】
請求項１０に記載のニューラルネットワーク演算装置と、処理装置と、相互接続共通インタフェースとを含み、
前記ニューラルネットワーク演算装置は前記処理装置とインタラクションを行って、協働してユーザの計算操作を完了することを特徴とする組合せ処理装置。
【請求項１２】
記憶装置をさらに含み、前記記憶装置は前記ニューラルネットワーク演算装置及び前記処理装置にそれぞれ接続され、前記ニューラルネットワーク演算装置及び前記処理装置のデータを保存するために用いられることを特徴とする請求項１１に記載の組合せ処理装置。
【請求項１３】
請求項９に記載の機械学習チップを含むことを特徴とする電子機器。
【請求項１４】
メモリデバイスと、インタフェース装置と、コントロールデバイスと、請求項９に記載の機械学習チップとを含み、
前記機械学習チップは前記メモリデバイス、前記コントロールデバイス及び前記インタフェース装置にそれぞれ接続され、
前記メモリデバイスは、データを記憶するために用いられ、
前記インタフェース装置は、前記機械学習チップと外部装置とのデータ伝送を実現するために用いられ、
前記コントロールデバイスは、前記機械学習チップの状態を監視するために用いられることを特徴とする回路基板カード。
【請求項１５】
前記メモリデバイスは、複数のグループの記憶ユニットを含み、各グループの前記記憶ユニットはバスによって前記機械学習チップに接続され、前記記憶ユニットは、同期ダイナミックランダムアクセスメモリ又はダブルデータレート同期ダイナミックランダムアクセスメモリを含み、
前記機械学習チップは、各前記記憶ユニットのデータ伝送及びデータ記憶を制御するためのダブルデータレートコントローラを含み、
前記インタフェース装置は、標準的な高速シリアル拡張バスインタフェースを含むことを特徴とする請求項１４に記載の回路基板カード。
【請求項１６】
記憶装置と、複数の計算装置と、第１相互接続装置と、第２相互接続装置とを含み、少なくとも１つの計算装置は前記第１相互接続装置を介して前記記憶装置に接続され、前記複数の計算装置は前記第２相互接続装置を介して互いに接続されることを特徴とするニューラルネットワークチップ。
【請求項１７】
ネットワークオンチップによるデータ処理方法であって、
機械学習計算を実行するために用いられて、
第１計算装置が記憶装置にアクセスすることにより、第１演算データを取得することと、
前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得ることと、
前記第１演算結果を第２計算装置に送信することとを含むことを特徴とするネットワークオンチップによるデータ処理方法。
【請求項１８】
前記第２計算装置が前記記憶装置にアクセスすることにより、第２演算データを取得することをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記第２計算装置が前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることをさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
記憶装置と、複数の計算装置グループとを含み、前記記憶装置及び前記複数の計算装置グループは１枚のチップに設けられ、各計算装置グループは複数の計算装置を含み、前記複数の計算装置グループのうちの少なくとも１つの計算装置グループは前記記憶装置に接続され、且つ少なくとも２つの計算装置グループは互いに接続されることを特徴とするネットワークオンチップ処理システム。
【請求項２１】
前記複数の計算装置グループのうちの任意の２つの計算装置グループは直接的に接続されることを特徴とする請求項２０に記載のシステム。
【請求項２２】
各前記計算装置グループにおいて、他の前記計算装置グループ中の少なくとも１つの計算装置に接続される計算装置を少なくとも１つ含むことを特徴とする請求項２０に記載のシステム。
【請求項２３】
前記複数の計算装置グループは前記複数の計算装置グループ中の任意の１つの計算装置を介して互いに接続されることを特徴とする請求項２２に記載のシステム。
【請求項２４】
各前記計算装置グループにおいて、少なくとも１つの計算装置は前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続されることを特徴とする請求項２０に記載のシステム。
【請求項２５】
各前記計算装置グループにおいて、任意の２つの計算装置は直接的に接続されることを特徴とする請求項２４に記載のシステム。
【請求項２６】
各前記計算装置グループは第１計算装置と、複数の第２計算装置とを含み、前記第１計算装置は前記記憶装置に接続され、前記複数の第２計算装置のうちの少なくとも１つの第２計算装置は前記第１計算装置に接続されることを特徴とする請求項２４に記載のシステム。
【請求項２７】
各前記計算装置グループにおいて、複数の第２計算装置のうちの少なくとも２つの第２計算装置は互いに接続され、且つ前記第１計算装置を介して前記記憶装置に接続されることを特徴とする請求項２６に記載のシステム。
【請求項２８】
各前記計算装置グループにおいて、複数の第２計算装置のうちの任意の２つの第２計算装置は前記第１計算装置に直接的に接続されることを特徴とする請求項２６に記載のシステム。
【請求項２９】
各前記計算装置グループにおいて、複数の計算装置のうちの各計算装置はいずれも前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続されることを特徴とする請求項２４に記載のシステム。
【請求項３０】
前記複数の計算装置グループは主計算装置グループと、複数のサブ計算装置グループとを含み、前記主計算装置グループは前記記憶装置に接続され、前記複数のサブ計算装置グループのうちの少なくとも１つのサブ計算装置グループは前記主計算装置グループに接続されることを特徴とする請求項２０に記載のシステム。
【請求項３１】
前記複数のサブ計算装置グループのうちの少なくとも２つのサブ計算装置グループは互いに接続され、且つ前記主計算装置グループを介して前記記憶装置に接続されることを特徴とする請求項３０に記載のシステム。
【請求項３２】
前記複数のサブ計算装置グループのうちの任意の２つのサブ計算装置グループは前記主計算装置グループに直接的に接続されることを特徴とする請求項３０に記載のシステム。
【請求項３３】
前記複数の計算装置グループのうちの各計算装置グループはいずれも前記記憶装置に接続され、且つ少なくとも２つの計算装置グループは互いに接続されることを特徴とする請求項２０に記載のシステム。
【請求項３４】
ネットワークオンチップによるデータ処理方法であって、
第１計算装置グループが記憶装置にアクセスすることにより、第１演算データを取得することであって、前記第１計算装置グループは複数の第１計算装置を含むことと、
前記第１計算装置グループが前記第１演算データに演算を実行することにより、第１演算結果を得ることと、
前記第１演算結果を第２計算装置グループに送信することとを含むことを特徴とするネットワークオンチップによるデータ処理方法。
【請求項３５】
前記第２計算装置グループが前記記憶装置にアクセスすることにより、第２演算データを取得することであって、前記第２計算装置グループは複数の第２計算装置を含むことをさらに含むことを特徴とする請求項３４に記載の方法。
【請求項３６】
前記第２計算装置グループが前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることをさらに含むことを特徴とする請求項３５に記載の方法。
【請求項３７】
前記第２計算装置グループが前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることは、
前記第２演算データと前記第１演算結果に対して前記複数の第２計算装置において演算・転送をすることにより、前記第２演算結果を得ることを含むことを特徴とする請求項３６に記載の方法。
【請求項３８】
互いに接続された複数のネットワークオンチップ処理モジュールを含み、前記複数のネットワークオンチップ処理モジュールは１枚のチップに設けられ、各ネットワークオンチップ処理モジュールは、少なくとも１つの記憶装置と、複数の計算装置とを含み、各ネットワークオンチップ処理モジュールにおいて、少なくとも１つの計算装置は前記ネットワークオンチップ処理モジュールの内部の少なくとも１つの記憶装置に接続され、且つ前記複数の計算装置のうちの少なくとも２つの計算装置は互いに接続されることを特徴とするネットワークオンチップ処理システム。
【請求項３９】
各ネットワークオンチップ処理モジュール中の複数の計算装置は第１計算装置と、複数の第２計算装置とを含み、前記第１計算装置は前記ネットワークオンチップ処理モジュールの内部の少なくとも１つの記憶装置に接続され、前記複数の第２計算装置のうちの少なくとも１つの第２計算装置は前記第１計算装置に接続されることを特徴とする請求項３８に記載のシステム。
【請求項４０】
各ネットワークオンチップ処理モジュールにおいて少なくとも２つの第２計算装置は互いに接続され、且つ前記第１計算装置を介して前記ネットワークオンチップ処理モジュールの内部の少なくとも１つの記憶装置に接続されることを特徴とする請求項３９に記載のシステム。
【請求項４１】
各ネットワークオンチップ処理モジュールにおいて任意の２つの第２計算装置は前記第１計算装置に直接的に接続されることを特徴とする請求項３９に記載のシステム。
【請求項４２】
各ネットワークオンチップ処理モジュールにおいて、各計算装置はいずれも前記ネットワークオンチップ処理モジュールの内部の少なくとも１つの記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続されることを特徴とする請求項３８に記載のシステム。
【請求項４３】
各ネットワークオンチップ処理モジュールにおいて、任意２つの計算装置は直接的に接続されることを特徴とする請求項４２に記載のシステム。
【請求項４４】
各ネットワークオンチップ処理モジュールは複数の記憶装置を含み、且つ前記ネットワークオンチップ処理モジュールにおいて、少なくとも１つの計算装置は前記ネットワークオンチップ処理モジュールの内部の前記複数の記憶装置に接続されることを特徴とする請求項３８に記載のシステム。
【請求項４５】
各ネットワークオンチップ処理モジュールにおいて、各計算装置は前記ネットワークオンチップ処理モジュールの内部の前記複数の記憶装置に接続されることを特徴とする請求項４４に記載のシステム。
【請求項４６】
各ネットワークオンチップ処理モジュールにおいて、他のネットワークオンチップ処理モジュール中の少なくとも１つの計算装置に接続される計算装置を少なくとも１つ含むことを特徴とする請求項３８に記載のシステム。
【請求項４７】
前記複数のネットワークオンチップ処理モジュールは各ネットワークオンチップ処理モジュール中の任意の１つの計算装置を介して互いに接続されることを特徴とする請求項３８に記載のシステム。
【請求項４８】
各ネットワークオンチップ処理モジュールにおいて、各計算装置は第１通信距離の記憶装置に接続されることを特徴とする請求項３８に記載のシステム。
【請求項４９】
任意の２つのネットワークオンチップ処理モジュールは直接的に接続されることを特徴とする請求項３８に記載のシステム。
【請求項５０】
ネットワークオンチップによるデータ処理方法であって、
第１ネットワークオンチップ処理モジュールにより第１演算データを取得することであって、前記第１ネットワークオンチップ処理モジュールは第１記憶装置と、複数の第１計算装置とを含み、前記第１演算データは前記第１記憶装置に記憶されていることと、
前記第１ネットワークオンチップ処理モジュール中の複数の第１計算装置が、前記第１演算データに演算を実行することにより、第１演算結果を得ることと、
前記第１演算結果を第２ネットワークオンチップ処理モジュールに送信することとを含むことを特徴とするネットワークオンチップによるデータ処理方法。
【請求項５１】
前記第２ネットワークオンチップ処理モジュールにより第２演算データを取得することであって、前記第２ネットワークオンチップ処理モジュールは第２記憶装置と、複数の第２計算装置とを含み、前記第２演算データは前記第２記憶装置に記憶されていることをさらに含むことを特徴とする請求項５０に記載の方法。
【請求項５２】
前記第２ネットワークオンチップ処理モジュール中の複数の第２計算装置が、前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることをさらに含むことを特徴とする請求項５１に記載の方法。
【請求項５３】
前記第２演算データと前記第１演算結果に対して前記複数の第２計算装置において演算を実行して、前記第２演算結果を得ることと、
前記第２演算結果を前記第２記憶装置に記憶することとをさらに含むことを特徴とする請求項５２に記載の方法。
【請求項５４】
前記第１ネットワークオンチップ処理モジュール中の第１主計算装置が前記第１記憶装置にアクセスすることにより、前記第１演算データを取得することと、
前記第１ネットワークオンチップ処理モジュール中の第１主計算装置と複数の第１副計算装置の間に前記第１演算データを転送することと、
前記第１ネットワークオンチップ処理モジュール中の第１主計算装置及び複数の第１副計算装置が、前記第１演算データに演算を実行することにより、前記第１演算結果を得ることとをさらに含み、
前記第１計算装置は第１主計算装置と、複数の第１副計算装置とを含むことを特徴とする請求項５０に記載の方法。
【請求項５５】
ネットワークオンチップによるデータ処理方法であって、
前記方法はネットワークオンチップ処理システムに応用され、前記ネットワークオンチップ処理システムは機械学習計算を実行するために用いられ、前記ネットワークオンチップ処理システムは、記憶装置と、計算装置とを含み、
前記方法は、前記ネットワークオンチップ処理システム中の第１計算装置が前記ネットワークオンチップ処理システムの記憶装置にアクセスすることにより、第１演算データを取得することと、
前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得ることと、
前記第１演算結果を前記ネットワークオンチップ処理システム中の第２計算装置に送信することとを含むことを特徴とするネットワークオンチップによるデータ処理方法。
【請求項５６】
前記計算装置は、演算ユニットと、コントローラユニットとを含み、
前記ネットワークオンチップ処理システム中の第１計算装置が前記ネットワークオンチップ処理システム中の記憶装置にアクセスすることにより、第１演算データを取得することは、
前記第１計算装置中のコントローラユニットは前記記憶装置から前記第１演算データ及び計算コマンドを取得することを含むことを特徴とする請求項５５に記載の方法。
【請求項５７】
前記演算ユニットは、１つの主処理回路と、複数の副処理回路とを含み、
前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得ることは、
前記第１計算装置中のコントローラユニットが前記計算コマンドを解析して、複数の演算コマンドを得、前記第１計算装置中のコントローラユニットが前記複数の演算コマンド及び前記第１演算データを前記第１計算装置中の主処理回路に送信することと、
前記第１計算装置中の主処理回路により、前記第１演算データに対して前処理を実施し、前記第１計算装置中の複数の副処理回路とデータ及び演算コマンドを伝送することと、
前記第１計算装置中の複数の副処理回路は前記第１計算装置中の主処理回路から伝送した演算データ及び演算コマンドに基づいて、並行して中間演算を実行して複数の中間結果を得、前記複数の中間結果を前記第１計算装置中の主処理回路に伝送することと、
前記第１計算装置中の主処理回路が前記複数の中間結果に後続の処理を実行して、前記計算コマンドの第１演算結果を得ることとを含むことを特徴とする請求項５６に記載の方法。
【請求項５８】
前記第１演算結果を前記ネットワークオンチップ処理システム中の第２計算装置に送信することは、
前記第１計算装置中のコントローラユニットが前記第１演算結果を前記ネットワークオンチップ処理システム中の第２計算装置に送信することを含むことを特徴とする請求項５７に記載の方法。
【請求項５９】
前記機械学習計算は、人工ニューラルネットワーク演算を含み、前記第１演算データは、入力ニューロンデータと、重み値データとを含み、前記第１演算結果は出力ニューロンデータであることを特徴とする請求項５７に記載の方法。
【請求項６０】
前記計算装置は、記憶ユニットと、ダイレクトメモリアクセスユニットとをさらに含み、前記記憶ユニットは、レジスタ及びキャッシュの任意の組み合わせを含み、
前記キャッシュは前記第１演算データを記憶するために用いられ、
前記レジスタは前記第１演算データのうちのスカラーを記憶するために用いられることを特徴とする請求項５９に記載の方法。
【請求項６１】
前記コントローラユニットは、コマンド記憶ユニットと、コマンド処理ユニットと、キュー記憶ユニットとを含み、
前記コマンド記憶ユニットは前記人工ニューラルネットワーク演算に関連する計算コマンドを記憶し、
前記コマンド処理ユニットは前記計算コマンドを解析して複数の演算コマンドを得、
前記キュー記憶ユニットはコマンドキューを記憶し、前記コマンドキューは、前記コマンドキューの前後順番に従って実行される複数の演算コマンド及び／又は計算コマンドを含むことを特徴とする請求項６０に記載の方法。
【請求項６２】
前記主処理回路は、依存関係処理ユニットを含み、
前記依存関係処理ユニットは第１演算コマンドと前記第１演算コマンドの前の第ゼロ演算コマンドとに相関関係があるか否かを決定し、前記第１演算コマンドと前記第ゼロ演算コマンドとに相関関係がある場合に、前記第１演算コマンドを前記コマンド記憶ユニットにキャッシュし、前記第ゼロ演算コマンドの実行完了後、前記コマンド記憶ユニットから前記第１演算コマンドを抽出して前記演算ユニットに伝送し、
当該第１演算コマンドと第１演算コマンドの前の第ゼロ演算コマンドとに相関関係があるか否かを決定することは、
前記第１演算コマンド基づいて前記第１演算コマンドに必要なデータの第１ストレージアドレス区間を抽出し、前記第ゼロ演算コマンドに基づいて前記第ゼロ演算コマンドに必要なデータの第ゼロストレージアドレス区間を抽出し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、前記第１演算コマンドと前記第ゼロ演算コマンドとに相関関係があると決定し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、前記第１演算コマンドと前記第ゼロ演算コマンドとに相関関係がないと決定することを含むことを特徴とする請求項６１に記載の方法。
【請求項６３】
前記演算ユニットは、ツリー型モジュールを含み、前記ツリー型モジュールは、１つのルートポートと、複数の分岐ポートとを含み、前記ツリー型モジュールのルートポートは前記主処理回路に接続され、前記ツリー型モジュールの複数の分岐ポートはそれぞれ複数の副処理回路のうちの１つの副処理回路に接続され、
前記ツリー型モジュールは前記主処理回路と前記複数の副処理回路の間にデータブロック、重み値及び演算コマンドを転送することを特徴とする請求項５６に記載の方法。
【請求項６４】
前記演算ユニットは１つ又は複数の分岐処理回路をさらに含み、各分岐処理回路は少なくとも１つの副処理回路に接続され、
前記主処理回路は前記入力ニューロンをブロードキャストデータとして決定し、重み値を分配データとして決定し、分配データを複数のデータブロックに配分し、前記複数のデータブロックのうちの少なくとも１つのデータブロック、ブロードキャストデータ及び複数の演算コマンドのうちの少なくとも１つの演算コマンドを前記分岐処理回路に送信し、
前記分岐処理回路は前記主処理回路と前記複数の副処理回路の間にデータブロック、ブロードキャストデータ及び演算コマンドを転送し、
前記複数の副処理回路は当該演算コマンドに基づいて、受信されたデータブロック及びブロードキャストデータに演算を実行して中間結果を得、中間結果を前記分岐処理回路に伝送し、
前記主処理回路は分岐処理回路の送信した中間結果に後続の処理を行って当該計算コマンドの第１演算結果を得、当該計算コマンドの第１演算結果を前記コントローラユニットに送信することを特徴とする請求項５９に記載の方法。
【請求項６５】
前記複数の副処理回路はアレイのように分布し、各副処理回路は隣接する他の副処理回路に接続され、前記主処理回路は前記複数の副処理回路のうちのｋ個の副処理回路に接続され、前記ｋ個の副処理回路は、１行目のｎ個の副処理回路、ｍ行目のｎ個の副処理回路及び１列目のｍ個の副処理回路であり、
前記Ｋ個の副処理回路は前記主処理回路と複数の副処理回路の間にデータ及びコマンドを転送し、
前記主処理回路は前記入力ニューロンをブロードキャストデータとして決定し、重み値を分配データとして決定し、分配データを複数のデータブロックに配分し、前記複数のデータブロックのうちの少なくとも１つのデータブロック及び複数の演算コマンドのうちの少なくとも１つの演算コマンドを前記Ｋ個の副処理回路に送信し、
前記Ｋ個の副処理回路は前記主処理回路と前記複数の副処理回路との間にデータを変換し、
前記複数の副処理回路は当該演算コマンドに従って、受信されたデータブロックに演算を実行して中間結果を得、演算結果を前記Ｋ個の副処理回路に伝送し、
前記主処理回路は前記Ｋ個の副処理回路の送信した中間結果に後続の処理を行って当該計算コマンドの第１演算結果を得、当該計算コマンドの第１演算結果を前記コントローラユニットに送信することを特徴とする請求項５９に記載の方法。
【請求項６６】
前記主処理回路は複数の処理回路の送信した中間結果を組み合わせてソートして当該計算コマンドの第１演算結果を得、
又は、前記主処理回路は複数の処理回路の送信した中間結果を組み合わせてソートし、活性化処理を行った後、当該計算コマンドの第１演算結果を得ることを特徴とする請求項６３〜６５のいずれか１項に記載の方法。
【請求項６７】
前記主処理回路は、変換処理回路、活性化処理回路、加算処理回路の１種又は任意の組み合わせを含み、
前記変換処理回路は前記第１演算データに前処理を実行し、具体的には、主処理回路の受信したデータ又は中間結果に対して第１データ構造と第２データ構造の相互変換を実行し、又は主処理回路の受信したデータ又は中間結果に対して第１データタイプと第２データタイプの相互変換を実行し、
前記活性化処理回路は前記後続の処理を実行し、具体的には、主処理回路内のデータの活性化演算を実行し、
前記加算処理回路は前記後続の処理を実行し、具体的には、加算演算又は累積演算を実行することを特徴とする請求項６３〜６５のいずれか１項に記載の方法。
【請求項６８】
前記副処理回路は、乗算処理回路を含み、
前記乗算処理回路は受信されたデータブロックに対して乗算を実行して乗算結果を得ることを特徴とする請求項６４又は６５に記載の方法。
【請求項６９】
前記副処理回路は、累積処理回路をさらに含み、前記累積処理回路は当該乗算結果に累積演算を実行して当該中間結果を得ることを特徴とする請求項６８に記載の方法。
【請求項７０】
前記ツリー型モジュールはｎ分木構造であり、前記ｎは２以上の整数であることを特徴とする請求項６３に記載の方法。
【請求項７１】
前記ネットワークオンチップ処理システム中の第２計算装置が前記ネットワークオンチップ処理システム中の記憶装置にアクセスすることにより、第２演算データを取得することをさらに含むことを特徴とする請求項５５に記載の方法。
【請求項７２】
前記ネットワークオンチップ処理システム中の第２計算装置が前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることをさらに含むことを特徴とする請求項７１に記載の方法。
【請求項７３】
コンピュータプログラムが記憶されているコンピュータ読取可能記憶媒体であって、前記コンピュータプログラムがプロセッサにより実行されると、請求項５５〜７２のいずれか１項に記載の方法のステップを実現させることを特徴とするコンピュータ読取可能記憶媒体。
【請求項７４】
ネットワークオンチップデータ処理装置であって、
機械学習計算を実行するために用いられ、
前記ネットワークオンチップ処理システム中の第１計算装置が前記ネットワークオンチップ処理システム中の記憶装置にアクセスすることにより、第１演算データを取得するための第１演算データ取得モジュールと、
前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得るための演算モジュールと、
前記第１演算結果を前記ネットワークオンチップ処理システム中の第２計算装置に送信するための第１演算結果送信モジュールとを含むことを特徴とするネットワークオンチップデータ処理装置。
【請求項７５】
データ処理方法であって、
内部装置又は外部装置の送信したデータ操作信号を受信することであって、前記データ操作信号は操作フィールドと、操作コードとを含み、前記操作コードは第１タイプフラグビットを含み、前記操作フィールドは第２タイプフラグビットを含み、前記第１タイプフラグビットは前記データ操作信号がＩ／Ｏコマンドであるか否かを表すために用いられ、前記第２タイプフラグビットは前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであるか否かを表すために用いられることと、
前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得ることとを含むことを特徴とするデータ処理方法。
【請求項７６】
前記操作フィールドはデータ受信フラグビットをさらに含み、前記データ受信フラグビットは前記入力データを受信する装置又は処理回路を表すために用いられることを特徴とする請求項７５に記載の方法。
【請求項７７】
前記データ受信フラグビットの個数は前記メモリとインタラクションを行える装置の個数又は処理回路の個数を表すことを特徴とする請求項７６に記載の方法。
【請求項７８】
前記操作フィールドは操作対象データの情報をさらに含み、前記操作対象データの情報は前記メモリにおける前記操作対象データのソースアドレス、操作対象データ長さ、及びデータ操作後のデータ返しアドレスを含み、前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得ることは、
前記ソースアドレスから始めて前記メモリを読み取り、前記データ長さを満たす入力データを取得することと、
前記データ受信フラグビットに基づいて、入力データを受信する装置又は処理回路を決定することと、
前記データ返しアドレスに従って、前記入力データを前記装置又は処理回路における前記データ返しアドレスに対応するストレージスペースに返すこととを含むことを特徴とする請求項７５〜７７のいずれか１項に記載の方法。
【請求項７９】
前記装置は少なくとも１つの機械学習ユニットを含み、各機械学習ユニットは主処理回路と、複数の副処理回路とを含むことを特徴とする請求項７８に記載の方法。
【請求項８０】
前記操作フィールドはジャンプサブ操作フィールドをさらに含み、前記ジャンプサブ操作フィールドはジャンプストライドと、各回のジャンプ後に操作されるジャンプデータ長さを含み、前記ソースアドレスから始めて前記メモリを読み取り、前記データ長さを満たす入力データを取得することは、
前記ソースアドレスから始めて前記メモリを読み取り、今回のジャンプ後のジャンプデータ長さに基づいて第１ジャンプデータを取得することと、
前記ジャンプデータの最後のアドレスを取得し、前記ジャンプストライドに基づいて前記最後のアドレスから目標ジャンプアドレスにジャンプすることと、
前記目標ジャンプアドレスから始めて、ジャンプ後のジャンプデータ長さに基づいて第２ジャンプデータを取得することを、各回のジャンプ後に得たジャンプデータの長さが前記データ長さを満たすまで続けることとを含むことを特徴とする請求項７９に記載の方法。
【請求項８１】
前記ジャンプサブ操作フィールドはストライド（ｓｔｒｉｄｅ）操作フィールド及び／又はセグメント（ｓｅｇｍｅｎｔ）操作フィールドを含み、前記ストライド（ｓｔｒｉｄｅ）操作フィールドは前記データ操作信号の各回のジャンプストライドを表すために用いられ、前記セグメント（ｓｅｇｍｅｎｔ）操作フィールドは予め設定された前記データ操作信号の各回の分割サイズを表すために用いられることを特徴とする請求項８０に記載の方法。
【請求項８２】
前記操作フィールドは、読み取られたデータに行う処理操作を表すための機能フラグビットをさらに含むことを特徴とする請求項８１に記載の方法。
【請求項８３】
前記第１タイプフラグビットの値がＩ／Ｏである場合に、前記データ操作信号がＩ／Ｏコマンドであると決定することと、
前記第２タイプフラグビットの値が１である場合に、前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであると決定することとをさらに含むことを特徴とする請求項８２に記載の方法。
【請求項８４】
内部装置又は外部装置の送信したデータ操作信号を受信することは、
前記データ操作信号を解析して、前記データ操作信号のタイプフラグビット及び操作対象データの情報を得ることと、
コマンドキューに従って、前記解析されたデータ操作信号を実行することであって、前記コマンドキューは前記データ操作信号の実行順番を表すために用いられることとを含むことを特徴とする請求項８３に記載の方法。
【請求項８５】
コマンドキューに従って、前記解析されたデータ操作信号を実行する前に、
隣接する前記解析されたデータ操作信号との依存関係を判断して、判断結果を得ることであって、前記依存関係はｓ番目のデータ操作信号と前記ｓ番目のデータ操作信号の前のｓ−１番目のデータ操作信号とに相関関係があるか否かを表すことと、
前記判断結果が、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係があることである場合に、前記ｓ番目のデータ操作信号をキャッシュし、前記ｓ−１番目のデータ操作信号の実行完了後、前記ｓ番目のデータ操作信号を抽出することとをさらに含むことを特徴とする請求項８４に記載の方法。
【請求項８６】
隣接する前記解析されたデータ操作信号との依存関係を判断することは、
前記ｓ番目のデータ操作信号に基づいて前記ｓ番目のデータ操作信号に必要なデータを抽出するための第１ストレージアドレス区間、及び、前記ｓ−１番目のデータ操作信号に基づいて前記ｓ−１番目のデータ操作信号に必要なデータを抽出するための第ゼロストレージアドレス区間をそれぞれ取得することと、
前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係があると決定することと、
前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係がないと決定することとを含むことを特徴とする請求項８５に記載の方法。
【請求項８７】
データ処理方法であって、
内部装置又は外部装置の送信したデータ操作信号を受信することであって、前記データ操作信号は操作コードを含み、前記操作コードは前記タイプフラグビットを含み、前記タイプフラグビットは前記データ操作信号がブロードキャスト又はマルチキャストコマンドであるかどうかを表すために用いられることと、
前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得ることとを含むことを特徴とするデータ処理方法。
【請求項８８】
前記タイプフラグビットの値がＣＡＳＴである場合に、前記データ操作信号がブロードキャスト又はマルチキャストコマンドであると決定することをさらに含むことを特徴とする請求項８７に記載の方法。
【請求項８９】
機械学習データの処理を実行するためのデータ処理装置であって、
機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、
前記伝送回路は前記機械学習装置の発したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記機械学習装置に返すために用いられ、前記データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持されることを特徴とするデータ処理装置。
【請求項９０】
前記機械学習装置は、前記入力データに基づいて、機械学習演算を実行して、出力データを得るために用いられることを特徴とする請求項８９に記載のデータ処理装置。
【請求項９１】
前記機械学習装置は、さらに、前記出力データを前記伝送回路によって前記共有メモリに伝送してデータを記憶させるために用いられることを特徴とする請求項９０に記載のデータ処理装置。
【請求項９２】
データ処理方法であって、
請求項８９〜９１のいずれか１項に記載のデータ処理装置に応用して、
前記データ処理装置中の伝送回路は前記データ処理装置中の機械学習装置の送信したデータ操作信号を受信することであって、前記データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持されることと、
前記伝送回路は前記データ操作信号のタイプフラグビットに基づいて共有メモリ中のデータに対して実行する操作を決定し、前記操作対象データの情報に基づいて前記操作対象データに対して前記操作を実行し、前記機械学習装置に必要な入力データを得、前記入力データを前記機械学習装置に返すことと、
前記機械学習装置は前記入力データに基づいて機械学習演算を実行して、出力データを得、そして、前記出力データを新たな入力データとして、前記伝送回路によって共有メモリに伝送してデータを記憶させることとを含むことを特徴とするデータ処理方法。
【請求項９３】
機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記機械学習ユニットの実行するユニキャスト読取操作とブロードキャスト操作において１つのデータ受信インタフェースが共有され、前記機械学習ユニットは送信インタフェース及び共有データ受信インタフェースによって前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、
前記伝送回路は、前記機械学習装置が前記送信インタフェースによって発したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記共有データ受信インタフェースによって前記機械学習装置に返すために用いられることを特徴とするデータ処理装置。
【請求項９４】
前記機械学習装置は前記入力データに基づいて、機械学習演算を実行して、出力データを得るために用いられることを特徴とする請求項９３に記載のデータ処理装置。
【請求項９５】
前記機械学習装置は、さらに、前記出力データを前記伝送回路によって前記共有メモリに伝送してデータを記憶させるために用いられることを特徴とする請求項９４に記載のデータ処理装置。
【請求項９６】
前記送信インタフェースは、ユニキャスト読取信号送信インタフェースと、ブロードキャスト信号送信インタフェースとを含み、前記機械学習ユニットは、前記ユニキャスト読取信号送信インタフェース及び前記共有データ受信インタフェースが前記伝送回路にそれぞれ接続されることにより、ユニキャスト読取操作を実現し、前記ブロードキャスト信号送信インタフェース及び前記共有データ受信インタフェースが前記伝送回路にそれぞれ接続されることにより、ブロードキャスト操作を実現することを特徴とする請求項９３に記載のデータ処理装置。
【請求項９７】
前記伝送回路は、第２伝送インタフェースと、前記第２伝送インタフェースに接続された読み書き処理回路と、前記読み書き処理回路に接続された調停回路とを含み、
前記読み書き処理回路は、前記少なくとも１つの機械学習ユニットが前記送信インタフェース及び前記第２伝送インタフェースによって送信したデータ操作信号を受信し、前記データ操作信号を前記調停回路に伝送し、前記調停回路が前記共有メモリから取得したデータを前記第２伝送インタフェース及び前記共有データ受信インタフェースによって前記データ操作信号に対応する機械学習ユニットに返すために用いられ、
前記調停回路は、予め設定された調停規則に基づいて、前記読み書き処理回路から受信されたデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて前記共有メモリ中のデータを操作するために用いられることを特徴とする請求項９６に記載のデータ処理装置。
【請求項９８】
前記読み書き処理回路は、ユニキャスト読取処理回路と、ブロードキャスト処理回路とを含み、前記ユニキャスト読取処理回路はユニキャスト読取信号を処理するために用いられ、前記ブロードキャスト処理回路は、ブロードキャスト信号及び／又はマルチキャスト信号を処理するために用いられることを特徴とする請求項９７に記載のデータ処理装置。
【請求項９９】
前記第２伝送インタフェースは、前記ユニキャスト読取処理回路に接続された少なくとも１つのグループのユニキャスト読取信号受信インタフェース及びユニキャスト読取データ送信インタフェース、前記ブロードキャスト処理回路に接続された少なくとも１つのグループのブロードキャスト信号受信インタフェース及びブロードキャストデータ送信インタフェースを含み、前記ユニキャスト読取信号受信インタフェースは前記機械学習ユニットのユニキャスト読取信号送信インタフェースに接続され、前記ブロードキャスト信号受信インタフェースは前記機械学習ユニットのブロードキャスト信号送信インタフェースに接続され、前記伝送回路中の前記ユニキャスト読取データ送信インタフェース及び前記ブロードキャストデータ送信インタフェースはそれぞれ前記機械学習ユニットの共有データ受信インタフェースに接続されることを特徴とする請求項９８に記載のデータ処理装置。
【請求項１００】
前記読み書き処理回路は、ブロードキャスト処理回路と、複数のユニキャスト読取処理回路とを含み、前記複数のユニキャスト読取処理回路と前記複数の機械学習ユニットは一対一で接続され、前記ブロードキャスト処理回路と前記複数の機械学習ユニットは一対多で接続されることを特徴とする請求項９８に記載のデータ処理装置。
【請求項１０１】
前記第２伝送インタフェースは、前記ブロードキャスト処理回路に接続された１つのグループのブロードキャストインタフェースを含み、前記ブロードキャストインタフェースは、ブロードキャスト信号受信インタフェースと、ブロードキャストデータ送信インタフェースとを含み、前記複数の機械学習ユニットは前記１つのグループのブロードキャストインタフェースを介して前記ブロードキャスト処理回路に接続されることを特徴とする請求項１００に記載のデータ処理装置。
【請求項１０２】
前記第２伝送インタフェースは、前記複数のユニキャスト読取処理回路に一対一で接続された複数のグループのユニキャスト読取信号受信インタフェース及び共有データ送信インタフェースと、前記ブロードキャスト処理回路に接続されたブロードキャスト信号受信インタフェースとを含み、前記共有データ送信インタフェースは前記ブロードキャスト処理回路にも接続され、前記ユニキャスト読取信号受信インタフェースは前記機械学習ユニットのユニキャスト読取信号送信インタフェースに接続され、前記ブロードキャスト信号受信インタフェースは前記機械学習ユニットのブロードキャスト信号送信インタフェースに接続され、前記共有データ送信インタフェースは前記機械学習ユニットの共有データ受信インタフェースに接続されることを特徴とする請求項１００のいずれか１項に記載のデータ処理装置。
【請求項１０３】
データ処理方法であって、
データ処理装置に応用されて、前記データ処理装置は、機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記機械学習ユニットの実行するユニキャスト読取操作とブロードキャスト操作において１つのデータ受信インタフェースが共有され、前記機械学習ユニットは送信インタフェース及び共有データ受信インタフェースによって前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、前記方法は、
前記機械学習装置がデータ操作信号を前記送信インタフェースによって前記伝送回路に送信することと、
前記伝送回路が前記データ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記共有データ受信インタフェースによって前記機械学習装置に返すこととを含むことを特徴とするデータ処理方法。
【請求項１０４】
機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記機械学習ユニットは少なくとも１つの送信インタフェースと、少なくとも１つの受信インタフェースとを含み、前記機械学習ユニットの実行するユニキャスト読取操作、ユニキャスト書込操作及びブロードキャスト操作のうちの少なくとも２種のデータ操作において前記機械学習ユニット上の１つの送信インタフェースが共有され、前記機械学習ユニットは前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、
前記伝送回路は、前記機械学習装置が前記機械学習ユニット上の前記少なくとも１つの送信インタフェースによって発したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記受信インタフェースによって前記機械学習装置に返すために用いられることを特徴とするデータ処理装置。
【請求項１０５】
機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は第１伝送インタフェースによって前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、
前記伝送回路は、前記機械学習装置の発したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記機械学習装置に返すために用いられ、前記データ操作信号は共有メモリ中のデータに対する操作方法を表すことを特徴とするデータ処理装置。
【請求項１０６】
機械学習データの処理を実行するために用いられ、機械学習装置と、伝送回路と、共有メモリとを含み、前記伝送回路は複数の読み書き処理回路と、１つの調停回路とを含み、前記機械学習装置は複数の機械学習ユニットを含み、各機械学習ユニットは少なくとも１つの演算ユニットを含み、前記複数の機械学習ユニットは第１伝送インタフェースによって前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、
前記調停回路は、前記複数の機械学習ユニットの送信したデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得するために用いられ、
前記読み書き処理回路は、前記調停が成功したデータ操作信号に担持されたアドレス情報又は前記データ操作信号のタイプに基づいて、前記複数の機械学習ユニットの中から目標機械学習ユニット又は目標演算ユニットを決定し、前記入力データを前記目標機械学習ユニット又は目標演算ユニットに返すために用いられることを特徴とするデータ処理装置。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、２０１８年１０月１８日に出願された、出願番号が２０１８１１２１６７１８．９で、名称が「ネットワークオンチップ処理システム及びネットワークオンチップによるデータ処理方法」の中国特許出願、出願番号が２０１８１１２１５８２０．７で、名称が「ネットワークオンチップ処理システム及びネットワークオンチップによるデータ処理方法」の中国特許出願、出願番号が２０１８１１２１５９７８．４で、名称が「ネットワークオンチップ処理システム及びネットワークオンチップによるデータ処理方法」の中国特許出願、出願番号が２０１８１１２１６８５７．１で、名称が「ネットワークオンチップによるデータ処理方法、記憶媒体、コンピュータデバイス及び装置」の中国特許出願、並びに、２０１８年１１月２１日に出願された、出願番号が２０１８１１３９２２３２．０で、名称が「データ処理方法、装置及び関連製品」の中国特許出願、出願番号が２０１８１１３９２２６２．１で、名称が「データ処理方法、装置及び関連製品」の中国特許出願、出願番号が２０１８１１３９２２７９．７で、名称が「データ処理装置、方法及び関連製品」の中国特許出願、出願番号が２０１８１１３９３３５２．２で、名称が「データ処理装置、方法及び関連製品」の中国特許出願、出願番号が２０１８１１３９０４０９．３で、名称が「データ処理装置、方法及び関連製品」の中国特許出願、出願番号が２０１８１１３９０４２８．６で、名称が「データ処理装置及び関連製品」の中国特許出願、出願番号が２０１８１１３９２２７０．６で、名称が「データ処理装置及び関連製品」の中国特許出願の優先権を主張し、これらの出願の内容の全てが参照により本願に組み込まれる。
【技術分野】
【０００２】
本願は、情報処理技術の分野に関し、具体的には、ネットワークオンチップによるデータ処理方法及び装置に関する。
【背景技術】
【０００３】
半導体プロセスの発展により、１枚のチップに数億個のトランジスタを集積させることが現実になる。ネットワークオンチップ（Ｎｅｔｗｏｒｋ  ｏｎ  Ｃｈｉｐ、ＮｏＣ）は１枚のチップに大量のコンピューティングリソースを集積し、且つオンチップ通信を実現することができる。
【０００４】
ニューラルネットワークにおいて大量の計算が必要であり、そのうち一部の計算、例えば、フォワード演算、バックワード演算、重み値更新等は並行処理が必要である。トランジスタの数量が非常に多いチップシステム構造では、チップ設計に当たって、メモリアクセスオーバーヘッドが大きく、帯域幅の輻輳が多発し、データの読み書き効率が低い等の問題に直面している。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願は、関連技術に存在する課題を少なくともある程度で解消するために、インタラクション方法、装置及びスマート端末を提供する。
【課題を解決するための手段】
【０００６】
第１の態様において、記憶装置と、複数の計算装置とを含み、前記記憶装置及び複数の前記計算装置は１枚のチップに設けられ、少なくとも１つの計算装置は前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続されるネットワークオンチップ処理システムを提供する。
【０００７】
一つの実施例では、前記複数の計算装置のうちの任意の２つの計算装置は直接的に接続される。
【０００８】
一つの実施例では、前記複数の計算装置は第１計算装置と、複数の第２計算装置とを含み、前記第１計算装置は前記記憶装置に接続され、前記複数の第２計算装置のうちの少なくとも１つの第２計算装置は前記第１計算装置に接続される。
【０００９】
一つの実施例では、前記複数の第２計算装置のうちの少なくとも２つの第２計算装置は互いに接続され、且つ前記第１計算装置を介して前記記憶装置に接続される。
【００１０】
一つの実施例では、前記複数の第２計算装置のうちの任意の２つの第２計算装置は前記第１計算装置に直接的に接続される。
【００１１】
一つの実施例では、前記複数の計算装置のうちの各計算装置はいずれも前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続される。
【００１２】
本開示の実施例は、第１の態様において、上記のネットワークオンチップ処理システムにおける計算装置を１つ又は複数含むニューラルネットワーク演算装置を提供する。当該ニューラルネットワーク演算装置は、演算されるデータタ及び制御情報を他の処理装置から取得し、指定された機械学習演算を実行して、実行結果を入力／出力インタフェースによって他の処理装置に伝送し、前記ニューラルネットワーク演算装置は複数の前記計算装置を含む場合、複数の前記計算装置は特定の構成によって接続されてデータを伝送する。ここで、複数の前記計算装置はＰＣＩＥバスを介して互いに接続されてデータを伝送することによって、規模がより大きな機械学習の演算をサポートし、複数の前記計算装置は１つの制御システムを共有し、又はそれぞれ制御システムを有し、複数の前記計算装置はメモリを共有し、又はそれぞれメモリを有し、複数の前記計算装置の相互の接続方式は任意の相互接続トポロジである。
【００１３】
本願の実施例は、第３の態様において、第２の態様に記載の機械学習処理装置、相互接続共通インタフェース及び他の処理装置を含む組合せ処理装置を提供する。該ニューラルネットワーク演算装置は前記他の処理装置とインタラクションを行って、協働してユーザの指定した操作を完了する。該組合せ処理装置は、記憶装置をさらに含み、前記記憶装置は前記ニューラルネットワーク演算装置及び前記他の処理装置にそれぞれ接続され、前記ニューラルネットワーク演算装置及び前記他の処理装置のデータを保存するために用いられる。
【００１４】
本願の実施例は、第４態様において、上記のネットワークオンチップ処理システム中の計算装置と、上記の第２態様に記載のニューラルネットワーク演算装置又は上記の第３態様に記載の組合せ処理装置とを含むニューラルネットワークチップを提供する。
【００１５】
本願の実施例は、第５態様において、上記の第４態様に記載のニューラルネットワークチップを含むニューラルネットワークチップのパッケージ構造を提供する。
【００１６】
本願の実施例は、第６態様において、上記の第５態様に記載のニューラルネットワークチップのパッケージ構造を含む回路基板カードを提供する。
【００１７】
本願の実施例は、第７態様において、上記の第４態様に記載のニューラルネットワークチップ又は上記の第６態様に記載の回路基板カードを含む電子装置を提供する。
【００１８】
本願の実施例は、第８態様において、機械学習計算を実行するために用いられて、第１計算装置が記憶装置にアクセスすることにより、第１演算データを取得することと、前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得ることと、前記第１演算結果を第２計算装置に送信することとを含むネットワークオンチップによるデータ処理方法を提供する。
【００１９】
一つの実施例では、前記方法は、前記第２計算装置が前記記憶装置にアクセスすることにより、第２演算データを取得することをさらに含む。
【００２０】
一つの実施例では、前記方法は、前記第２計算装置が前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることをさらに含む。
【００２１】
ネットワークオンチップ処理システムであって、記憶装置と、複数の計算装置グループとを含み、前記記憶装置及び前記複数の計算装置グループは１枚のチップに設けられ、各計算装置グループは複数の計算装置を含み、前記複数の計算装置グループのうちの少なくとも１つの計算装置グループは前記記憶装置に接続され、且つ少なくとも２つの計算装置グループは互いに接続されるネットワークオンチップ処理システムである。
【００２２】
一つの実施例では、前記複数の計算装置グループのうちの任意の２つの計算装置グループは直接的に接続される。
【００２３】
一つの実施例では、各前記計算装置グループにおいて、他の前記計算装置グループ中の少なくとも１つの計算装置に接続される計算装置を少なくとも１つ含む。
【００２４】
一つの実施例では、前記複数の計算装置グループは前記複数の計算装置グループ中の任意の１つの計算装置を介して互いに接続される。
【００２５】
一つの実施例では、各前記計算装置グループにおいて、少なくとも１つの計算装置は前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続される。
【００２６】
一つの実施例では、各前記計算装置グループにおいて、任意の２つの計算装置は直接的に接続される。
【００２７】
一つの実施例では、各前記計算装置グループは第１計算装置と、複数の第２計算装置とを含み、前記第１計算装置は前記記憶装置に接続され、前記複数の第２計算装置のうちの少なくとも１つの第２計算装置は前記第１計算装置に接続される。
【００２８】
一つの実施例では、各前記計算装置グループにおいて、複数の第２計算装置のうちの少なくとも２つの第２計算装置は互いに接続され、且つ前記第１計算装置を介して前記記憶装置に接続される。
【００２９】
一つの実施例では、各前記計算装置グループにおいて、複数の第２計算装置のうちの任意の２つの第２計算装置は前記第１計算装置に直接的に接続される。
【００３０】
一つの実施例では、各前記計算装置グループにおいて、複数の計算装置のうちの各計算装置はいずれも前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続される。
【００３１】
一つの実施例では、前記複数の計算装置グループは主計算装置グループと、複数のサブ計算装置グループとを含み、前記主計算装置グループは前記記憶装置に接続され、前記複数のサブ計算装置グループのうちの少なくとも１つのサブ計算装置グループは前記主計算装置グループに接続される。
【００３２】
一つの実施例では、前記複数のサブ計算装置グループのうちの少なくとも２つのサブ計算装置グループは互いに接続され、且つ前記主計算装置グループを介して前記記憶装置に接続される。
【００３３】
一つの実施例では、前記複数のサブ計算装置グループのうちの任意の２つのサブ計算装置グループは前記主計算装置グループに直接的に接続される。
【００３４】
一つの実施例では、前記複数の計算装置グループのうちの各計算装置グループはいずれも前記記憶装置に接続され、且つ少なくとも２つの計算装置グループは互いに接続される。
【００３５】
本願の実施例では、ネットワークオンチップによるデータ処理方法であって、第１計算装置グループが記憶装置にアクセスすることにより、第１演算データを取得することであって、前記第１計算装置グループは複数の第１計算装置を含むことと、前記第１計算装置グループが前記第１演算データに演算を実行することにより、第１演算結果を得ることと、前記第１演算結果を第２計算装置グループに送信することとを含むネットワークオンチップによるデータ処理方法を提供する。
【００３６】
一つの実施例では、前記方法は、前記第２計算装置グループが前記記憶装置にアクセスすることにより、第２演算データを取得することであって、前記第２計算装置グループは複数の第２計算装置を含むことをさらに含む。
【００３７】
一つの実施例では、前記方法は、前記第２計算装置グループが前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることをさらに含む。
【００３８】
一つの実施例では、前記方法は、前記第２計算装置グループが前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることは、前記第２演算データと前記第１演算結果に対して前記複数の第２計算装置において演算・転送をすることにより、前記第２演算結果を得ることを含む。
【００３９】
ネットワークオンチップ処理システムであって、互いに接続された複数のネットワークオンチップ処理モジュールを含み、前記複数のネットワークオンチップ処理モジュールは１枚のチップに設けられ、各ネットワークオンチップ処理モジュールは、少なくとも１つの記憶装置と、複数の計算装置とを含み、各ネットワークオンチップ処理モジュールにおいて、少なくとも１つの計算装置は前記ネットワークオンチップ処理モジュールの内部の少なくとも１つの記憶装置に接続され、且つ前記複数の計算装置のうちの少なくとも２つの計算装置は互いに接続されるネットワークオンチップ処理システムである。
【００４０】
一つの実施例では、各ネットワークオンチップ処理モジュール中の複数の計算装置は第１計算装置と、複数の第２計算装置とを含み、前記第１計算装置は前記ネットワークオンチップ処理モジュールの内部の少なくとも１つの記憶装置に接続され、前記複数の第２計算装置のうちの少なくとも１つの第２計算装置は前記第１計算装置に接続される。
【００４１】
一つの実施例では、各ネットワークオンチップ処理モジュールにおいて少なくとも２つの第２計算装置は互いに接続され、且つ前記第１計算装置を介して前記ネットワークオンチップ処理モジュールの内部の少なくとも１つの記憶装置に接続される。
【００４２】
一つの実施例では、各ネットワークオンチップ処理モジュールにおいて任意の２つの第２計算装置は前記第１計算装置に直接的に接続される。
【００４３】
一つの実施例では、各ネットワークオンチップ処理モジュールにおいて、各計算装置はいずれも前記ネットワークオンチップ処理モジュールの内部の少なくとも１つの記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続される。
【００４４】
一つの実施例では、各ネットワークオンチップ処理モジュールにおいて、任意２つの計算装置は直接的に接続される。
【００４５】
一つの実施例では、各ネットワークオンチップ処理モジュールは複数の記憶装置を含み、且つ前記ネットワークオンチップ処理モジュールにおいて、少なくとも１つの計算装置は前記ネットワークオンチップ処理モジュールの内部の前記複数の記憶装置に接続される。
【００４６】
一つの実施例では、各ネットワークオンチップ処理モジュールにおいて、各計算装置は前記ネットワークオンチップ処理モジュールの内部の前記複数の記憶装置に接続される。
【００４７】
一つの実施例では、各ネットワークオンチップ処理モジュールにおいて、他のネットワークオンチップ処理モジュール中の少なくとも１つの計算装置に接続される計算装置を少なくとも１つ含む。
【００４８】
一つの実施例では、前記複数のネットワークオンチップ処理モジュールは各ネットワークオンチップ処理モジュール中の任意の１つの計算装置を介して互いに接続される。
【００４９】
その一実施例では、各ネットワークオンチップ処理モジュールにおいて、各計算装置は記憶装置に接続され、ここで、各前記計算装置と前記記憶装置との距離は第１通信距離である。
【００５０】
一つの実施例では、任意の２つのネットワークオンチップ処理モジュールは直接的に接続される。
【００５１】
本願の実施例では、ネットワークオンチップによるデータ処理方法であって、第１ネットワークオンチップ処理モジュールにより第１演算データを取得することであって、前記第１ネットワークオンチップ処理モジュールは第１記憶装置と、複数の第１計算装置とを含み、前記第１演算データは前記第１記憶装置に記憶されていることと、前記第１ネットワークオンチップ処理モジュール中の複数の第１計算装置が、前記第１演算データに演算を実行することにより、第１演算結果を得ることと、前記第１演算結果を第２ネットワークオンチップ処理モジュールに送信することとを含むネットワークオンチップによるデータ処理方法を提供する。
【００５２】
一つの実施例では、前記方法は、前記第２ネットワークオンチップ処理モジュールにより第２演算データを取得することであって、前記第２ネットワークオンチップ処理モジュールは第２記憶装置と、複数の第２計算装置とを含み、前記第２演算データは前記第２記憶装置に記憶されていることをさらに含む。
【００５３】
一つの実施例では、前記方法は、前記第２ネットワークオンチップ処理モジュール中の複数の第２計算装置が、前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることをさらに含む。
【００５４】
一つの実施例では、前記方法は、前記第２演算データと前記第１演算結果に対して前記複数の第２計算装置において演算を実行して、前記第２演算結果を得ることと、前記第２演算結果を前記第２記憶装置に記憶することとをさらに含む。
【００５５】
一つの実施例では、前記方法は、前記第１ネットワークオンチップ処理モジュール中の第１主計算装置が前記第１記憶装置にアクセスすることにより、前記第１演算データを取得することと、前記第１ネットワークオンチップ処理モジュール中の第１主計算装置と複数の第１副計算装置の間に前記第１演算データを転送することと、前記第１ネットワークオンチップ処理モジュール中の第１主計算装置及び複数の第１副計算装置が、前記第１演算データに演算を実行することにより、前記第１演算結果を得ることとをさらに含み、前記第１計算装置は第１主計算装置と、複数の第１副計算装置とを含む。
【００５６】
ネットワークオンチップによるデータ処理方法であって、前記方法はネットワークオンチップ処理システムに応用され、前記ネットワークオンチップ処理システムは機械学習計算を実行するために用いられ、前記ネットワークオンチップ処理システムは、記憶装置と、計算装置とを含み、前記方法は、前記ネットワークオンチップ処理システム中の第１計算装置が前記ネットワークオンチップ処理システムの記憶装置にアクセスすることにより、第１演算データを取得することと、前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得ることと、前記第１演算結果を前記ネットワークオンチップ処理システム中の第２計算装置に送信することとを含むネットワークオンチップによるデータ処理方法である。
【００５７】
一つの実施例では、前記計算装置は、演算ユニットと、コントローラユニットとを含み、前記ネットワークオンチップ処理システム中の第１計算装置が前記ネットワークオンチップ処理システム中の記憶装置にアクセスすることにより、第１演算データを取得することは、前記第１計算装置中のコントローラユニットは前記記憶装置から前記第１演算データ及び計算コマンドを取得することを含む。
【００５８】
一つの実施例では、前記演算ユニットは、１つの主処理回路と、複数の副処理回路とを含み、前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得ることは、前記第１計算装置中のコントローラユニットが前記計算コマンドを解析して、複数の演算コマンドを得、前記第１計算装置中のコントローラユニットが前記複数の演算コマンド及び前記第１演算データを前記第１計算装置中の主処理回路に送信することと、前記第１計算装置中の主処理回路により、前記第１演算データに対して前処理を実施し、前記第１計算装置中の複数の副処理回路とデータ及び演算コマンドを伝送することと、前記第１計算装置中の複数の副処理回路は前記第１計算装置中の主処理回路から伝送した演算データ及び演算コマンドに基づいて、並行して中間演算を実行して複数の中間結果を得、前記複数の中間結果を前記第１計算装置中の主処理回路に伝送することと、前記第１計算装置中の主処理回路が前記複数の中間結果に後続の処理を実行して、前記計算コマンドの第１演算結果を得ることとを含む。
【００５９】
一つの実施例では、前記第１演算結果を前記ネットワークオンチップ処理システム中の第２計算装置に送信することは、前記第１計算装置中のコントローラユニットが前記第１演算結果を前記ネットワークオンチップ処理システム中の第２計算装置に送信する。
【００６０】
一つの実施例では、前記機械学習計算は、人工ニューラルネットワーク演算を含み、前記第１演算データは、入力ニューロンデータと、重み値データとを含み、前記第１演算結果は出力ニューロンデータである。
【００６１】
一つの実施例では、前記計算装置は、記憶ユニットと、ダイレクトメモリアクセスユニットとをさらに含み、前記記憶ユニットは、レジスタ及びキャッシュの任意の組み合わせを含み、前記キャッシュは前記第１演算データを記憶するために用いられ、前記レジスタは前記第１演算データのうちのスカラーを記憶するために用いられる。
【００６２】
一つの実施例では、前記コントローラユニットは、コマンド記憶ユニットと、コマンド処理ユニットと、キュー記憶ユニットとを含み、前記コマンド記憶ユニットは前記人工ニューラルネットワーク演算に関連する計算コマンドを記憶し、前記コマンド処理ユニットは前記計算コマンドを解析して複数の演算コマンドを得、前記キュー記憶ユニットはコマンドキューを記憶し、前記コマンドキューは、前記コマンドキューの前後順番に従って実行される複数の演算コマンド及び／又は計算コマンドを含む。
【００６３】
一つの実施例では、前記主処理回路は、依存関係処理ユニットを含み、前記依存関係処理ユニットは第１演算コマンドと前記第１演算コマンドの前の第ゼロ演算コマンドとに相関関係があるか否かを決定し、前記第１演算コマンドと前記第ゼロ演算コマンドとに相関関係がある場合に、前記第１演算コマンドを前記コマンド記憶ユニットにキャッシュし、前記第ゼロ演算コマンドの実行完了後、前記コマンド記憶ユニットから前記第１演算コマンドを抽出して前記演算ユニットに伝送し、当該第１演算コマンドと第１演算コマンドの前の第ゼロ演算コマンドとに相関関係があるか否かを決定することは、前記第１演算コマンド基づいて前記第１演算コマンドに必要なデータの第１ストレージアドレス区間を抽出し、前記第ゼロ演算コマンドに基づいて前記第ゼロ演算コマンドに必要なデータの第ゼロストレージアドレス区間を抽出し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、前記第１演算コマンドと前記第ゼロ演算コマンドとに相関関係があると決定し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、前記第１演算コマンドと前記第ゼロ演算コマンドとに相関関係がないと決定することを含む。
【００６４】
一つの実施例では、前記演算ユニットは、ツリー型モジュールを含み、前記ツリー型モジュールは、１つのルートポートと、複数の分岐ポートとを含み、前記ツリー型モジュールのルートポートは前記主処理回路に接続され、前記ツリー型モジュールの複数の分岐ポートはそれぞれ複数の副処理回路のうちの１つの副処理回路に接続され、前記ツリー型モジュールは前記主処理回路と前記複数の副処理回路の間にデータブロック、重み値及び演算コマンドを転送する。
【００６５】
一つの実施例では、前記演算ユニットは１つ又は複数の分岐処理回路をさらに含み、各分岐処理回路は少なくとも１つの副処理回路に接続され、前記主処理回路は前記入力ニューロンをブロードキャストデータとして決定し、重み値を分配データとして決定し、分配データを複数のデータブロックに配分し、前記複数のデータブロックのうちの少なくとも１つのデータブロック、ブロードキャストデータ及び複数の演算コマンドのうちの少なくとも１つの演算コマンドを前記分岐処理回路に送信し、前記分岐処理回路は前記主処理回路と前記複数の副処理回路の間にデータブロック、ブロードキャストデータ及び演算コマンドを転送し、前記複数の副処理回路は当該演算コマンドに基づいて、受信されたデータブロック及びブロードキャストデータに演算を実行して中間結果を得、中間結果を前記分岐処理回路に伝送し、前記主処理回路は分岐処理回路の送信した中間結果に後続の処理を行って当該計算コマンドの第１演算結果を得、当該計算コマンドの第１演算結果を前記コントローラユニットに送信する。
【００６６】
一つの実施例では、前記複数の副処理回路はアレイのように分布し、各副処理回路は隣接する他の副処理回路に接続され、前記主処理回路は前記複数の副処理回路のうちのｋ個の副処理回路に接続され、前記ｋ個の副処理回路は、１行目のｎ個の副処理回路、ｍ行目のｎ個の副処理回路及び１列目のｍ個の副処理回路であり、前記Ｋ個の副処理回路は前記主処理回路と複数の副処理回路の間にデータ及びコマンドを転送し、前記主処理回路は前記入力ニューロンをブロードキャストデータとして決定し、重み値を分配データとして決定し、分配データを複数のデータブロックに配分し、前記複数のデータブロックのうちの少なくとも１つのデータブロック及び複数の演算コマンドのうちの少なくとも１つの演算コマンドを前記Ｋ個の副処理回路に送信し、前記Ｋ個の副処理回路は前記主処理回路と前記複数の副処理回路との間にデータを変換し、前記複数の副処理回路は当該演算コマンドに従って、受信されたデータブロックに演算を実行して中間結果を得、演算結果を前記Ｋ個の副処理回路に伝送し、前記主処理回路は前記Ｋ個の副処理回路の送信した中間結果に後続の処理を行って当該計算コマンドの第１演算結果を得、当該計算コマンドの第１演算結果を前記コントローラユニットに送信する。
【００６７】
一つの実施例では、前記主処理回路は複数の処理回路の送信した中間結果を組み合わせてソートして当該計算コマンドの第１演算結果を得、又は、前記主処理回路は複数の処理回路の送信した中間結果を組み合わせてソートし、活性化処理を行った後、当該計算コマンドの第１演算結果を得る。
【００６８】
一つの実施例では、前記主処理回路は、変換処理回路、活性化処理回路、加算処理回路の１種又は任意の組み合わせを含み、前記変換処理回路は前記第１演算データに前処理を実行し、具体的には、主処理回路の受信したデータ又は中間結果に対して第１データ構造と第２データ構造の相互変換を実行し、又は主処理回路の受信したデータ又は中間結果に対して第１データタイプと第２データタイプの相互変換を実行し、前記活性化処理回路は前記後続の処理を実行し、具体的には、主処理回路内のデータの活性化演算を実行し、前記加算処理回路は前記後続の処理を実行し、具体的には、加算演算又は累積演算を実行する。
【００６９】
一つの実施例では、前記副処理回路は、乗算処理回路を含み、前記乗算処理回路は受信されたデータブロックに対して乗算を実行して乗算結果を得る。
【００７０】
一つの実施例では、前記副処理回路は、累積処理回路をさらに含み、前記累積処理回路は当該乗算結果に累積演算を実行して当該中間結果を得る。
【００７１】
一つの実施例では、前記ツリー型モジュールはｎ分木構造であり、前記ｎは２以上の整数である。
【００７２】
一つの実施例では、前記ネットワークオンチップ処理システム中の第２計算装置が前記ネットワークオンチップ処理システム中の記憶装置にアクセスすることにより、第２演算データを取得することをさらに含む。
【００７３】
一つの実施例では、前記ネットワークオンチップ処理システム中の第２計算装置が前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることをさらに含む。
【００７４】
本願の実施例では、ネットワークオンチップデータ処理装置であって、機械学習計算を実行するために用いられ、前記ネットワークオンチップ処理システム中の第１計算装置が前記ネットワークオンチップ処理システム中の記憶装置にアクセスすることにより、第１演算データを取得するための第１演算データ取得モジュールと、前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得るための演算モジュールと、前記第１演算結果を前記ネットワークオンチップ処理システム中の第２計算装置に送信するための第１演算結果送信モジュールとを含むネットワークオンチップデータ処理装置を提供する。
【００７５】
データ処理方法であって、内部装置又は外部装置の送信したデータ操作信号を受信することであって、前記データ操作信号は操作フィールドと、操作コードとを含み、前記操作コードは第１タイプフラグビットを含み、前記操作フィールドは第２タイプフラグビットを含み、前記第１タイプフラグビットは前記データ操作信号がＩ／Ｏコマンドであるか否かを表すために用いられ、前記第２タイプフラグビットは前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであるか否かを表すために用いられることと、前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得ることとを含むデータ処理方法である。
【００７６】
一つの実施例では、前記操作フィールドはデータ受信フラグビットをさらに含み、前記データ受信フラグビットは前記入力データを受信する装置又は処理回路を表すために用いられる。
【００７７】
一つの実施例では、前記データ受信フラグビットの個数は前記メモリとインタラクションを行える装置の個数又は処理回路の個数を表す。
【００７８】
一つの実施例では、前記操作フィールドは操作対象データの情報をさらに含み、前記操作対象データの情報は前記メモリにおける前記操作対象データのソースアドレス、操作対象データ長さ、及びデータ操作後のデータ返しアドレスを含み、前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得ることは、前記ソースアドレスから始めて前記メモリを読み取り、前記データ長さを満たす入力データを取得することと、前記データ受信フラグビットに基づいて、入力データを受信する装置又は処理回路を決定することと、前記データ返しアドレスに従って、前記入力データを前記装置又は処理回路における前記データ返しアドレスに対応するストレージスペースに返すこととを含む。
【００７９】
一つの実施例では、前記操作フィールドはジャンプサブ操作フィールドをさらに含み、前記ジャンプサブ操作フィールドはジャンプストライドと、各回のジャンプ後に操作されるジャンプデータ長さを含み、前記ソースアドレスから始めて前記メモリを読み取り、前記データ長さを満たす入力データを取得することは、前記ソースアドレスから始めて前記メモリを読み取り、今回のジャンプ後のジャンプデータ長さに基づいて第１ジャンプデータを取得することと、前記ジャンプデータの最後のアドレスを取得し、前記ジャンプストライドに基づいて前記最後のアドレスから目標ジャンプアドレスにジャンプすることと、前記目標ジャンプアドレスから始めて、ジャンプ後のジャンプデータ長さに基づいて第２ジャンプデータを取得することを、各回のジャンプ後に得たジャンプデータの長さが前記データ長さを満たすまで続ける。
【００８０】
一つの実施例では、前記ジャンプサブ操作フィールドはストライド（ｓｔｒｉｄｅ）操作フィールド及び／又はセグメント（ｓｅｇｍｅｎｔ）操作フィールドを含み、前記ストライド（ｓｔｒｉｄｅ）操作フィールドは前記データ操作信号の各回のジャンプストライドを表すために用いられ、前記セグメント（ｓｅｇｍｅｎｔ）操作フィールドは予め設定された前記データ操作信号の各回の分割サイズを表すために用いられる。
【００８１】
一つの実施例では、前記操作フィールドは、読み取られたデータに行う処理操作を表すための機能フラグビットをさらに含む。
【００８２】
一つの実施例では、前記第１タイプフラグビットの値がＩ／Ｏである場合に、前記データ操作信号がＩ／Ｏコマンドであると決定することと、前記第２タイプフラグビットの値が１である場合に、前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであると決定することとをさらに含む。
【００８３】
一つの実施例では、内部装置又は外部装置の送信したデータ操作信号を受信することは、前記データ操作信号を解析して、前記データ操作信号のタイプフラグビット及び操作対象データの情報を得ることと、コマンドキューに従って、前記解析されたデータ操作信号を実行することであって、前記コマンドキューは前記データ操作信号の実行順番を表すために用いられる。
【００８４】
一つの実施例では、コマンドキューに従って、前記解析されたデータ操作信号を実行する前に、隣接する前記解析されたデータ操作信号との依存関係を判断して、判断結果を得ることであって、前記依存関係はｓ番目のデータ操作信号と前記ｓ番目のデータ操作信号の前のｓ−１番目のデータ操作信号とに相関関係があるか否かを表すことと、前記判断結果が、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係があることである場合に、前記ｓ番目のデータ操作信号をキャッシュし、前記ｓ−１番目のデータ操作信号の実行完了後、前記ｓ番目のデータ操作信号を抽出することとをさらに含む。
【００８５】
一つの実施例では、隣接する前記解析されたデータ操作信号との依存関係を判断することは、前記ｓ番目のデータ操作信号に基づいて前記ｓ番目のデータ操作信号に必要なデータを抽出するための第１ストレージアドレス区間、及び、前記ｓ−１番目のデータ操作信号に基づいて前記ｓ−１番目のデータ操作信号に必要なデータを抽出するための第ゼロストレージアドレス区間をそれぞれ取得することと、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係があると決定することと、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係がないと決定することとを含む。
【００８６】
本願の実施例は、データ処理装置であって、プロセッサと、メモリとを含み、前記メモリにコンピュータプログラムが記憶されており、前記プロセッサが前記コンピュータプログラムを実行すると、内部装置又は外部装置の送信したデータ操作信号であって、操作フィールドと、操作コードとを含み、前記操作コードは第１タイプフラグビットを含み、前記操作フィールドは第２タイプフラグビットを含み、前記第１タイプフラグビットは前記データ操作信号がＩ／Ｏコマンドであるか否かを表すために用いられ、前記第２タイプフラグビットは前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであるか否かを表すために用いられる前記データ操作信号を受信するステップと、前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得るステップとを実現する前記データ処理装置を提供する。
【００８７】
データ処理方法であって、内部装置又は外部装置の送信したデータ操作信号を受信することであって、前記データ操作信号は操作コードを含み、前記操作コードは前記タイプフラグビットを含み、前記タイプフラグビットは前記データ操作信号がブロードキャスト又はマルチキャストコマンドであるかどうかを表すために用いられることと、前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得ることとを含むデータ処理方法である。
【００８８】
本願の実施例は、データ処理装置であって、プロセッサと、メモリとを含み、前記メモリにコンピュータプログラムが記憶されており、前記プロセッサが前記コンピュータプログラムを実行すると、内部装置又は外部装置の送信したデータ操作信号であって、操作コードを含み、前記操作コードは前記タイプフラグビットを含み、前記タイプフラグビットは前記データ操作信号がブロードキャスト又はマルチキャストコマンドであるか否かを表すために用いられる前記データ操作信号を受信するステップと、前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得るステップとを実現するデータ処理装置を提供する。
【００８９】
その一実施例では、前記データ操作信号は操作フィールドをさらに含み、前記操作フィールドはデータ受信フラグビットを含み、前記データ受信フラグビットは前記入力データを受信する装置又は処理回路を表すために用いられる。
【００９０】
その一実施例では、前記データ受信フラグビットの個数は前記メモリとインタラクションを行える装置の個数又は処理回路の個数を表す。
【００９１】
その一実施例では、前記方法は、前記タイプフラグビットの値がＣＡＳＴである場合に、前記データ操作信号がブロードキャスト又はマルチキャストコマンドであると決定することをさらに含む。
【００９２】
その一実施例では、内部装置又は外部装置の送信したデータ操作信号を受信することは、前記データ操作信号を解析して、前記データ操作信号のタイプフラグビット及び操作対象データの情報を得ることと、コマンドキューに従って、前記解析されたデータ操作信号を実行することであって、前記コマンドキューは前記データ操作信号の実行順番を表すために用いられることとを含む。
【００９３】
機械学習データの処理を実行するためのデータ処理装置であって、機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、前記伝送回路は前記機械学習装置の発したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記機械学習装置に返すために用いられ、前記データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持されるデータ処理装置である。
【００９４】
一つの実施例では、前記機械学習装置は、前記入力データに基づいて、機械学習演算を実行して、出力データを得るために用いられる。
【００９５】
一つの実施例では、前記機械学習装置は、さらに、前記出力データを前記伝送回路によって前記共有メモリに伝送してデータを記憶させるために用いられる。
【００９６】
その一実施例では、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記データ操作信号はデータ受信フラグビットをさらに含み、前記データ受信フラグビットは前記入力データを受信する目標機械学習ユニットを表すために用いられる。
【００９７】
その一実施例では、前記データ操作信号のタイプフラグビットの値は、前記データ操作信号がブロードキャスト又はマルチキャストコマンドであることを表すＣＡＳＴを含む。
【００９８】
その一実施例では、前記データ操作信号のタイプフラグビットは第１タイプフラグビットと、第２タイプフラグビットとを含み、ここで、前記第１タイプフラグビットの値は、前記データ操作信号がＩ／Ｏコマンドであるか否かを表すＩ／Ｏを含み、前記第２タイプフラグビットは前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであるか否かを表すために用いられる。
【００９９】
その一実施例では、前記操作対象データの情報は前記共有メモリにおける前記操作対象データのソースアドレス、操作対象データ長さ、及びデータ操作後のデータ返しアドレスの少なくとも１種を含む。
【０１００】
その一実施例では、前記データ操作信号はジャンプ情報をさらに含み、前記ジャンプ情報はジャンプストライド及び各回ジャンプ後の操作データ長さを含む。
【０１０１】
その一実施例では、前記ジャンプ情報はストライド（ｓｔｒｉｄｅ）ジャンプ情報及び／又はセグメント（ｓｅｇｍｅｎｔ）ジャンプ情報を含み、前記ストライド（ｓｔｒｉｄｅ）ジャンプ情報は前記データ操作信号の各回のジャンプストライドを表すために用いられ、前記セグメント（ｓｅｇｍｅｎｔ）ジャンプ情報は予め設定された前記データ操作信号の各回の分割サイズを表すために用いられる。
【０１０２】
その一実施例では、前記データ操作信号は、前記伝送回路が読み取られたデータに行う処理操作を表すために用いられる機能フラグビットをさらに含む。
【０１０３】
本願の実施例では、データ処理方法であって、データ処理装置に応用して、前記データ処理装置中の伝送回路は前記データ処理装置中の機械学習装置の送信したデータ操作信号を受信することであって、前記データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持されることと、前記伝送回路は前記データ操作信号のタイプフラグビットに基づいて共有メモリ中のデータに対して実行する操作を決定し、前記操作対象データの情報に基づいて前記操作対象データに対して前記操作を実行し、前記機械学習装置に必要な入力データを得、前記入力データを前記機械学習装置に返すことと、前記機械学習装置は前記入力データに基づいて機械学習演算を実行して、出力データを得、そして、前記出力データを新たな入力データとして、前記伝送回路によって共有メモリに伝送してデータを記憶させることとを含むデータ処理方法を提供する。
【０１０４】
その一実施例では、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記データ操作信号はデータ受信フラグビットをさらに含み、前記入力データを前記機械学習装置に返すことは、前記伝送回路は前記データ受信フラグビットの値に基づいて、前記入力データを受信する目標機械学習ユニットを決定し、前記入力データを前記目標機械学習ユニットに送信することを含む。
【０１０５】
その一実施例では、前記操作対象データの情報は前記共有メモリにおける前記操作対象データのソースアドレス、操作対象データ長さ、及びデータ操作後のデータ返しアドレスを含み、前記操作対象データの情報に基づいて前記操作対象データに前記操作を実行して、前記機械学習装置に必要な入力データを得、前記入力データを前記機械学習装置に返すことは、前記伝送回路は前記ソースアドレスから始めて前記共有メモリを読み取り、前記データ長さを満たす前記入力データを取得することと、前記伝送回路は前記データ返しアドレス及び前記データ受信フラグビットに基づいて、前記入力データを前記目標機械学習ユニットに返すこととを含む。
【０１０６】
機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記機械学習ユニットの実行するユニキャスト読取操作とブロードキャスト操作において１つのデータ受信インタフェースが共有され、前記機械学習ユニットは送信インタフェース及び共有データ受信インタフェースによって前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、前記伝送回路は、前記機械学習装置が前記送信インタフェースによって発したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記共有データ受信インタフェースによって前記機械学習装置に返すために用いられるデータ処理装置である。
【０１０７】
一つの実施例では、前記機械学習装置は前記入力データに基づいて、機械学習演算を実行して、出力データを得るために用いられる。
【０１０８】
一つの実施例では、前記機械学習装置は、さらに、前記出力データを前記伝送回路によって前記共有メモリに伝送してデータを記憶させるために用いられる。
【０１０９】
一つの実施例では、前記送信インタフェースは、ユニキャスト読取信号送信インタフェースと、ブロードキャスト信号送信インタフェースとを含み、前記機械学習ユニットは、前記ユニキャスト読取信号送信インタフェース及び前記共有データ受信インタフェースが前記伝送回路にそれぞれ接続されることにより、ユニキャスト読取操作を実現し、前記ブロードキャスト信号送信インタフェース及び前記共有データ受信インタフェースが前記伝送回路にそれぞれ接続されることにより、ブロードキャスト操作を実現する。
【０１１０】
一つの実施例では、前記伝送回路は、第２伝送インタフェースと、前記第２伝送インタフェースに接続された読み書き処理回路と、前記読み書き処理回路に接続された調停回路とを含み、前記読み書き処理回路は、前記少なくとも１つの機械学習ユニットが前記送信インタフェース及び前記第２伝送インタフェースによって送信したデータ操作信号を受信し、前記データ操作信号を前記調停回路に伝送し、前記調停回路が前記共有メモリから取得したデータを前記第２伝送インタフェース及び前記共有データ受信インタフェースによって前記データ操作信号に対応する機械学習ユニットに返すために用いられ、前記調停回路は、予め設定された調停規則に基づいて、前記読み書き処理回路から受信されたデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて前記共有メモリ中のデータを操作するために用いられる。
【０１１１】
一つの実施例では、前記読み書き処理回路は、ユニキャスト読取処理回路と、ブロードキャスト処理回路とを含み、前記ユニキャスト読取処理回路はユニキャスト読取信号を処理するために用いられ、前記ブロードキャスト処理回路は、ブロードキャスト信号及び／又はマルチキャスト信号を処理するために用いられる。
【０１１２】
一つの実施例では、前記第２伝送インタフェースは、前記ユニキャスト読取処理回路に接続された少なくとも１つのグループのユニキャスト読取信号受信インタフェース及びユニキャスト読取データ送信インタフェース、前記ブロードキャスト処理回路に接続された少なくとも１つのグループのブロードキャスト信号受信インタフェース及びブロードキャストデータ送信インタフェースを含み、前記ユニキャスト読取信号受信インタフェースは前記機械学習ユニットのユニキャスト読取信号送信インタフェースに接続され、前記ブロードキャスト信号受信インタフェースは前記機械学習ユニットのブロードキャスト信号送信インタフェースに接続され、前記伝送回路中の前記ユニキャスト読取データ送信インタフェース及び前記ブロードキャストデータ送信インタフェースはそれぞれ前記機械学習ユニットの共有データ受信インタフェースに接続される。
【０１１３】
一つの実施例では、前記読み書き処理回路は、ブロードキャスト処理回路と、複数のユニキャスト読取処理回路とを含み、前記複数のユニキャスト読取処理回路と前記複数の機械学習ユニットは一対一で接続され、前記ブロードキャスト処理回路と前記複数の機械学習ユニットは一対多で接続される。
【０１１４】
一つの実施例では、前記第２伝送インタフェースは、前記ブロードキャスト処理回路に接続された１つのグループのブロードキャストインタフェースを含み、前記ブロードキャストインタフェースは、ブロードキャスト信号受信インタフェースと、ブロードキャストデータ送信インタフェースとを含み、前記複数の機械学習ユニットは前記１つのグループのブロードキャストインタフェースを介して前記ブロードキャスト処理回路に接続される。
【０１１５】
一つの実施例では、前記第２伝送インタフェースは、前記複数のユニキャスト読取処理回路に一対一で接続された複数のグループのユニキャスト読取信号受信インタフェース及び共有データ送信インタフェースと、前記ブロードキャスト処理回路に接続されたブロードキャスト信号受信インタフェースとを含み、前記共有データ送信インタフェースは前記ブロードキャスト処理回路にも接続され、前記ユニキャスト読取信号受信インタフェースは前記機械学習ユニットのユニキャスト読取信号送信インタフェースに接続され、前記ブロードキャスト信号受信インタフェースは前記機械学習ユニットのブロードキャスト信号送信インタフェースに接続され、前記共有データ送信インタフェースは前記機械学習ユニットの共有データ受信インタフェースに接続される。
【０１１６】
本願の実施例では、データ処理方法であって、データ処理装置に応用されて、前記データ処理装置は、機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記機械学習ユニットの実行するユニキャスト読取操作とブロードキャスト操作において１つのデータ受信インタフェースが共有され、前記機械学習ユニットは送信インタフェース及び共有データ受信インタフェースによって前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、前記方法は、前記機械学習装置がデータ操作信号を前記送信インタフェースによって前記伝送回路に送信することと、前記伝送回路が前記データ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記共有データ受信インタフェースによって前記機械学習装置に返すこととを含むデータ処理方法を提供する。
【０１１７】
その一実施例では、前記データ操作信号はブロードキャスト信号及び／又はマルチキャスト信号であり、前記入力データを前記共有データ受信インタフェースによって前記機械学習装置に返すことは、前記伝送回路は前記入力データを前記共有データ受信インタフェースによって前記ブロードキャスト信号及び／又はマルチキャスト信号に対応する複数の機械学習ユニットに送信することを含む。
【０１１８】
機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記機械学習ユニットは少なくとも１つの送信インタフェースと、少なくとも１つの受信インタフェースとを含み、前記機械学習ユニットの実行するユニキャスト読取操作、ユニキャスト書込操作及びブロードキャスト操作のうちの少なくとも２種のデータ操作において前記機械学習ユニット上の１つの送信インタフェースが共有され、前記機械学習ユニットは前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、前記伝送回路は、前記機械学習装置が前記機械学習ユニット上の前記少なくとも１つの送信インタフェースによって発したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記受信インタフェースによって前記機械学習装置に返すために用いられるデータ処理装置である。
【０１１９】
その一実施例では、前記読み書き処理回路は複数の処理回路グループに分割され、１つの機械学習ユニットは１つの処理回路グループに対応し、前記処理回路グループは１つのユニキャスト読取処理回路と、１つのユニキャスト書込処理回路と、１つのブロードキャスト処理回路とを含む。
【０１２０】
その一実施例では、前記処理回路グループ中のユニキャスト読取処理回路及びブロードキャスト処理回路によって返されたデータは前記機械学習ユニット上の１つの共有データ受信インタフェースを共有する。
【０１２１】
その一実施例では、前記少なくとも１つの送信インタフェースは、ユニキャスト書込操作及びブロードキャスト操作に共有された共有信号送信インタフェース、及びユニキャスト読取信号送信インタフェースを含む。
【０１２２】
その一実施例では、前記第２伝送インタフェースは複数のインタフェースグループを含み、前記１つの処理回路グループは１つのインタフェースグループに対応し、前記１つのインタフェースグループは、前記ユニキャスト読取処理回路に接続されたユニキャスト読取信号受信インタフェース及びユニキャスト読取データ送信インタフェース、前記ユニキャスト書込処理回路に接続されたユニキャスト読取信号受信インタフェース、前記ブロードキャスト処理回路に接続されたブロードキャスト信号受信インタフェース及びブロードキャストデータ送信インタフェースを含む。
【０１２３】
その一実施例では、前記１つの処理回路グループ中のユニキャスト書込処理回路とブロードキャスト処理回路は前記対応するインタフェースグループ中の１つの共有信号受信インタフェースを共有し、前記処理回路グループに対応する共有信号受信インタフェースは前記処理回路グループに対応する機械学習ユニットの共有信号送信インタフェースに接続され、前記処理回路グループ中のユニキャスト読取信号受信インタフェースは前記処理回路グループに対応する機械学習ユニットのユニキャスト読取信号送信インタフェースに接続される。
【０１２４】
その一実施例では、前記１つの処理回路グループ中のユニキャスト読取処理回路とブロードキャスト処理回路は前記対応するインタフェースグループ中の１つの共有データ送信インタフェースを共有し、前記処理回路グループに対応する共有データ送信インタフェースは前記処理回路グループに対応する機械学習ユニットの共有データ受信インタフェースに接続される。
【０１２５】
その一実施例では、前記処理回路グループに対応する共有信号受信インタフェースは、前記処理回路グループ中のユニキャスト書込処理回路及びブロードキャスト処理回路にそれぞれ接続され、前記機械学習ユニットの共有信号送信インタフェースの送信したデータ操作信号を受信し、前記データ操作信号を２つの同一のデータ操作信号に分割し、それぞれ前記ユニキャスト書込処理回路及び前記ブロードキャスト処理回路に送信するために用いられる。
【０１２６】
本願の実施例は、データ処理装置に応用されるデータ処理方法であって、前記データ処理装置は、機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記機械学習ユニットは少なくとも１つの送信インタフェースと、少なくとも１つの受信インタフェースとを含み、前記機械学習ユニットの実行するユニキャスト読取操作、ユニキャスト書込操作及びブロードキャスト操作のうちの少なくとも２種のデータ操作において前記機械学習ユニット上の１つの送信インタフェースが共有され、前記機械学習ユニットは前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続されて、前記方法は、前記機械学習装置はデータ操作信号を前記少なくとも１つの送信インタフェースによって前記伝送回路に送信することと、前記伝送回路は前記データ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記受信インタフェースによって前記機械学習装置に返すこととを含む前記データ処理方法をさらに提供する。
【０１２７】
その一実施例では、前記データ操作信号はブロードキャスト信号及び／又はマルチキャスト信号であり、前記入力データを前記受信インタフェースによって前記機械学習装置に返すことは、
前記伝送回路は前記入力データを前記受信インタフェースによって前記ブロードキャスト信号及び／又はマルチキャスト信号に対応する複数の機械学習ユニットに送信することを含む。
【０１２８】
機械学習装置と、伝送回路と、共有メモリとを含み、前記機械学習装置は第１伝送インタフェースによって前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、前記伝送回路は、前記機械学習装置の発したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得し、前記入力データを前記機械学習装置に返すために用いられ、前記データ操作信号は共有メモリ中のデータに対する操作方法を表すデータ処理装置である。
【０１２９】
その一実施例では、前記機械学習装置は少なくとも１つの機械学習ユニットを含み、前記機械学習ユニットは、少なくとも１つの演算ユニットと、前記演算ユニットに接続されたコントローラユニットとを含み、前記演算ユニットは１つの主処理回路と、複数の副処理回路とを含み、前記演算ユニットは前記第１伝送インタフェースを介して前記伝送回路に接続され、前記コントローラユニットは、前記第１伝送インタフェースのうちの送信インタフェースによって前記伝送回路に前記データ操作信号及び前記出力データを送信し、前記第１伝送インタフェースのうちの受信インタフェースによって前記伝送回路が前記共有メモリから取得した前記入力データを受信し、前記入力データを前記主処理回路及び／又は前記副処理回路に送信するために用いられ、前記主処理回路は、前記入力データを前記複数の副処理回路に分配するために用いられ、前記複数の副処理回路は、前記主処理回路が伝送したデータに基づき、並行して中間演算を実行して複数の中間結果を得、複数の中間結果を前記主処理回路に伝送するために用いられ、前記主処理回路は、さらに、前記複数の中間結果に後続の処理を実行して計算結果を得るために用いられる。
【０１３０】
その一実施例では、前記主処理回路及び前記副処理回路の構造はＨ型、シストリックアレイ型、及びツリー型構造の少なくとも１種を含む。
【０１３１】
その一実施例では、前記伝送回路は、第２伝送インタフェースと、前記第２伝送インタフェースに接続された少なくとも１つの読み書き処理回路と、前記読み書き処理回路に接続された調停回路とを含み、前記少なくとも１つの機械学習ユニットは、前記第１伝送インタフェースと前記第２伝送インタフェースとの接続により、前記少なくとも１つの機械学習ユニットと前記伝送回路との接続が実現され、前記読み書き処理回路は、前記少なくとも１つの機械学習ユニットが前記第１伝送インタフェース及び前記第２伝送インタフェースによって送信した前記データ操作信号を受信し、前記データ操作信号を前記調停回路に伝送し、さらに、共有メモリから読み取られた前記データを前記第２伝送インタフェースによって少なくとも１つの機械学習ユニットに送信するために用いられ、前記調停回路は、予め設定された調停規則に基づいて、前記少なくとも１つの読み書き処理回路から受信されたデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて前記共有メモリ中のデータを操作するために用いられる。
【０１３２】
その一実施例では、前記読み書き処理回路は、ユニキャスト読取処理回路、ユニキャスト書込処理回路、ブロードキャスト処理回路の少なくとも１種を含み、前記データ操作信号は、ユニキャスト読取要求、ユニキャスト書込要求、ユニキャスト読取コマンド、ユニキャスト書込コマンド、マルチキャストコマンド、ブロードキャストコマンドの少なくとも１種を含み、ここで、ユニキャストタイプの処理回路はユニキャストタイプの信号を処理するために用いられ、ブロードキャストタイプの処理回路はマルチキャスト又はブロードキャストタイプの信号を処理するために用いられる。
【０１３３】
その一実施例では、前記データ操作信号がコマンドタイプの信号である場合に、前記読み書き処理回路は、具体的に、コマンドタイプの信号を解析して、要求タイプの信号を生成し、前記要求タイプの信号を前記調停回路に伝送するために用いられる。
【０１３４】
その一実施例では、前記データ操作信号がマルチキャストコマンドである場合に、前記マルチキャストコマンドにはデータを受信する複数の目標機械学習ユニットの識別子が担持され、前記読み書き処理回路は、具体的に、前記調停回路が前記共有メモリから取得したデータを、前記複数の目標機械学習ユニットに送信するために用いられる。
【０１３５】
その一実施例では、前記データ操作信号がブロードキャストコマンドである場合に、前記読み書き処理回路は、具体的に、前記調停回路が前記共有メモリから取得したデータを、全ての機械学習ユニットに送信するために用いられる。
【０１３６】
その一実施例では、前記入力データは入力ニューロンデータ及び／又は重み値データを含み、前記出力データは出力ニューロンデータを含む。
【０１３７】
その一実施例では、前記データ処理装置は少なくとも１つのクラスタに分割され、各クラスタは複数の機械学習ユニットと、１つの伝送回路と、少なくとも１つの共有メモリとを含み、前記伝送回路は、所在のクラスタ内の調停回路及び前記クラスタ内の共有メモリに接続された第１タイプのダイレクトメモリアクセスコントローラＤＭＡ、及び／又は、所在のクラスタ内の調停回路及び他のクラスタ内の共有メモリに接続された第２タイプのＤＭＡをさらに含み、前記第１タイプのＤＭＡは、前記クラスタ内の調停回路と前記クラスタ内の共有メモリとのデータ交換を制御するために用いられ、前記第２タイプのＤＭＡは、前記クラスタ内の調停回路と他のクラスタ内の共有メモリとのデータ交換、及び前記クラスタ内の調停回路とチップ外メモリとのデータ交換を制御するために用いられる。
【０１３８】
その一実施例では、前記伝送回路は、前記第１タイプのＤＭＡに接続された第１選択伝送回路と、前記第２タイプのＤＭＡに接続された第２選択伝送回路とをさらに含み、前記第１選択伝送回路は、所在のクラスタ内の共有メモリに選択的に接続するために用いられ、前記第２選択伝送回路は、所在のクラスタ内及び他のクラスタ内の共有メモリ、並びに前記チップ外メモリに選択的に接続するために用いられる。
【０１３９】
その一実施例では、前記伝送回路は、前記調停回路及び前記共有メモリに接続されたキャッシュ回路であって、前記調停回路が前記共有メモリから取得したデータ、及び前記調停回路が前記共有メモリに書き込むデータを一時的に記憶するためのキャッシュ回路をさらに含む。
【０１４０】
その一実施例では、前記伝送回路と前記共有メモリとの間の伝送帯域幅は、前記伝送回路と前記機械学習ユニットとの間の伝送帯域幅より大きい。
【０１４１】
機械学習データの処理を実行するために用いられ、機械学習装置と、伝送回路と、共有メモリとを含み、前記伝送回路は複数の読み書き処理回路と、１つの調停回路とを含み、前記機械学習装置は複数の機械学習ユニットを含み、各機械学習ユニットは少なくとも１つの演算ユニットを含み、前記複数の機械学習ユニットは第１伝送インタフェースによって前記伝送回路に接続され、前記伝送回路は前記共有メモリに接続され、前記調停回路は、前記複数の機械学習ユニットの送信したデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて、前記共有メモリから前記機械学習装置に必要な入力データを取得するために用いられ、前記読み書き処理回路は、前記調停が成功したデータ操作信号に担持されたアドレス情報又は前記データ操作信号のタイプに基づいて、前記複数の機械学習ユニットの中から目標機械学習ユニット又は目標演算ユニットを決定し、前記入力データを前記目標機械学習ユニット又は目標演算ユニットに返すために用いられるデータ処理装置である。
【０１４２】
その一実施例では、前記調停回路は、具体的に、複数の読み書き処理回路が送信したデータ操作信号の優先度を決定し、優先度が最高のデータ操作信号を調停が成功したデータ操作信号とするために用いられる。
【０１４３】
その一実施例では、前記調停回路は、具体的に、複数の読み書き処理回路が送信したデータ操作信号の優先度が同じである場合に、前記複数のデータ操作信号のタイプ及び予め設定された実行条件に基づいて、調停が成功したデータ操作信号を決定するために用いられる。
【０１４４】
その一実施例では、前記データ操作信号がユニキャストタイプの信号である場合に、前記実行条件は、前記ユニキャストタイプの信号を送信した機械学習ユニットのチャネルがアイドルであること、又は前記ユニキャストタイプの信号を送信した機械学習ユニットの演算ユニットのチャネルがアイドルであることを含む。
【０１４５】
その一実施例では、前記データ操作信号がマルチキャストタイプの信号である場合に、前記実行条件は、前記マルチキャストタイプの信号を送信した機械学習ユニットのチャネルがアイドルであり、且つ前記マルチキャストタイプの信号が指定した目標機械学習ユニットのチャネルがアイドルであること、又は、前記マルチキャストタイプの信号を送信した機械学習ユニット中の演算ユニットのチャネルがアイドルであり、且つ前記マルチキャストタイプの信号が指定した目標演算ユニットのチャネルがアイドルであることを含む。
【０１４６】
その一実施例では、前記データ操作信号がブロードキャストタイプの信号である場合に、前記実行条件は、前記ブロードキャストタイプの信号を送信した機械学習ユニットのチャネルがアイドルであり、且つ残りの他の機械学習ユニットのチャネルがアイドルであること、又は、前記ブロードキャストタイプの信号を送信した機械学習ユニット中の演算ユニットのチャネルがアイドルであり、且つ残りの他の機械学習ユニット中の演算ユニットのチャネルがアイドルであることを含む。
【０１４７】
その一実施例では、前記伝送回路は第２伝送インタフェースをさらに含み、前記第２伝送インタフェースのうちの各インタフェースは前記第１伝送インタフェースのうちの各インタフェースと一対一で対応して接続され、且つ１つの機械学習ユニットは１つの読み書き処理回路に対応して接続される。
【０１４８】
その一実施例では、前記１つの機械学習ユニット中の複数の演算ユニットは前記第１伝送インタフェースのうちの１つの送信インタフェースを共有し、且つ各演算ユニットごとには１つのデータ受信インタフェースに対応する。
【０１４９】
その一実施例では、前記１つの機械学習ユニット中の複数の演算ユニットはそれぞれ前記第１伝送インタフェースのうちの１つの送信インタフェース及び１つのデータ受信インタフェースに対応する。
【０１５０】
その一実施例では、前記伝送回路は第２伝送インタフェースをさらに含み、前記複数の機械学習ユニットは前記第２伝送インタフェースのうちの１つの信号受信インタフェース及び１つのデータ返しインタフェースを共有する。
【０１５１】
その一実施例では、前記読み書き処理回路は信号キューをさらに含み、前記信号キューは各機械学習ユニットの送信したデータ操作信号を記憶するために用いられ、前記読み書き処理回路は、さらに、前記データ操作信号を受信した場合に、前記要求キューにスペースが残るか否かを判断し、そうである場合に、前記データ操作信号を前記要求キューにキャッシュし、そうでない場合に、前記データ操作信号をブロッキングするために用いられる。
【０１５２】
その一実施例では、読み書き処理回路がブロードキャスト処理回路である場合に、前記信号キューはコマンドキューと、要求キューとを含み、前記コマンドキューは、前記ブロードキャスト処理回路の受信したコマンドタイプの信号をキャッシュするために用いられ、前記要求キューは、前記コマンドタイプの信号を解析して得た要求タイプの信号をキャッシュするために用いられる。
【０１５３】
その一実施例では、前記機械学習ユニットは、前記演算ユニットに接続されたコントローラユニットをさらに含み、前記演算ユニットは１つの主処理回路と、複数の副処理回路とを含み、前記演算ユニットは前記第１伝送インタフェースを介して前記伝送回路に接続され、前記コントローラユニットは、前記第１伝送インタフェースのうちの送信インタフェースによって前記伝送回路に前記データ操作信号及び前記出力データを送信し、前記第１伝送インタフェースのうちの受信インタフェースによって前記伝送回路が前記共有メモリから取得した前記入力ニューロンデータ及び前記重み値データを受信し、前記入力ニューロンデータ及び前記重み値データを前記主処理回路及び／又は前記副処理回路に送信するために用いられ、前記主処理回路は、前記入力データを前記複数の副処理回路に分配するために用いられ、前記複数の副処理回路は、前記主処理回路が伝送したニューロンデータ及び重み値データに基づき、並行して中間演算を実行して複数の中間結果を得、複数の中間結果を前記主処理回路に伝送するために用いられ、前記主処理回路は、さらに、前記複数の中間結果に後続の処理を実行して計算結果を得るために用いられる。
【０１５４】
その一実施例では、前記入力データは入力データを含み、前記出力データは出力データを含む。
【０１５５】
以上の一般説明及び以下の詳細説明は、本願を限定するのではなく、単なる例示的及び解釈的なものであることを理解されたい。
【図面の簡単な説明】
【０１５６】
本明細書の一部として組み込まれた図面は、本願に合致する実施例を示し、明細書と共に本願の原理を解釈するために用いられる。
【図１】図１は一実施例によるネットワークオンチップ処理システム１１００の構造模式図である。
【図２】図２は一実施例によるネットワークオンチップ処理システム１２００の構造模式図である。
【図３】図３は一実施例によるネットワークオンチップ処理システム１３００の構造模式図である。
【図４】図４は一実施例によるネットワークオンチップ処理システム１４００の構造模式図である。
【図５ａ】図５ａは一実施例によるネットワークオンチップ処理システム１５００の構造模式図である。
【図５ｂ】図５ｂは一実施例によるネットワークオンチップ処理システム１５０００の構造模式図である。
【図６】図６は一実施例によるネットワークオンチップ処理システム１６００の構造模式図である。
【図７】図７は一実施例によるネットワークオンチップ処理システム１７００の構造模式図である。
【図８】図８は一実施例によるネットワークオンチップ処理システム１８００の構造模式図である。
【図９】図９は一実施例によるネットワークオンチップ処理システム１９００の構造模式図である。
【図１０ａ】図１０ａは一実施例によるネットワークオンチップ処理システム１９１０の構造模式図である。
【図１０ｂ】図１０ｂは一実施例によるネットワークオンチップ処理システム１９１００の構造模式図である。
【図１１】図１１は一実施例によるネットワークオンチップ処理システム１９２０の構造模式図である。
【図１２】図１２は一実施例によるネットワークオンチップ処理システム１９３０の構造模式図である。
【図１３】図１３は一実施例による計算装置の構造模式図である。
【図１４】図１４は別の実施例による計算装置の構造模式図である。
【図１５】図１５は一実施例による主処理回路の構造模式図である。
【図１６】図１６は別の実施例による計算装置の構造模式図である。
【図１７】図１７は別の実施例による計算装置の構造模式図である。
【図１８】図１８は一実施例によるツリー型モジュールの構造模式図である。
【図１９】図１９は別の実施例による計算装置の構造模式図である。
【図２０】図２０は別の実施例による計算装置の構造模式図である。
【図２１】図２１は別の実施例による計算装置の構造模式図である。
【図２２】図２２は一実施例による組合せ処理装置の構造模式図である。
【図２３】図２３は別の実施例による組合せ処理装置の構造模式図である。
【図２４】図２４は一実施例による回路基板カードの構造模式図である。
【図２５】図２５は一実施例によるネットワークオンチップによるデータ処理方法のフローの模式図である。
【図２６】図２６は別の実施例によるネットワークオンチップによるデータ処理方法のフローの模式図である。
【図２７】図２７は別の実施例によるネットワークオンチップによるデータ処理方法のフローの模式図である。
【図２８】図２８は別の実施例によるネットワークオンチップによるデータ処理方法のフローの模式図である。
【図２９】図２９は別の実施例によるネットワークオンチップによるデータ処理方法のフローの模式図である。
【図３０】図３０は別の実施例によるネットワークオンチップによるデータ処理方法のフローの模式図である。
【図３１】図３１は一実施例によるデータ処理方法の応用環境の模式図である。
【図３２】図３２は一実施例によるデータ処理方法のフローの模式図である。
【図３３】図３３は一実施例によるデータ処理方法のフローの模式図である。
【図３４】図３４は一実施例によるデータ処理方法のフローの模式図である。
【図３５】図３５は一実施例によるデータ処理方法のフローの模式図である。
【図３６】図３６は一実施例によるデータ処理方法のフローの模式図である。
【図３７】図３７は一実施例によるデータ処理方法のフローの模式図である。
【図３８】図３８は一実施例によるデータ処理方法のフローの模式図である。
【図３９】図３９は一実施例によるデータ処理方法のフローの模式図である。
【図４０】図４０は一実施例によるデータ処理方法のフローの模式図である。
【図４１】図４１は一実施例によるデータ処理方法のフローの模式図である。
【図４２】図４２は一実施例によるデータ処理方法のフローの模式図である。
【図４３】図４３は一実施例によるデータ処理装置の構造模式図である。
【図４４】図４４は一実施例による機械学習ユニットの構造模式図である。
【図４５】図４５は一実施例によるデータ処理装置の構造模式図である。
【図４６】図４６は一実施例によるデータ処理装置の構造模式図である。
【図４７】図４７は一実施例によるデータ処理装置の構造模式図である。
【図４８】図４８は一実施例によるデータ処理装置の構造模式図である。
【図４９】図４９は一実施例による機械学習ユニットの構造模式図である。
【図５０】図５０は一実施例によるデータ処理装置の構造模式図である。
【図５１】図５１は一実施例によるデータ処理装置の構造模式図である。
【図５２】図５２は一実施例によるデータ処理装置の構造模式図である。
【図５３】図５３は一実施例によるデータ処理装置の構造模式図である。
【図５４】図５４は一実施例によるデータ処理装置の構造模式図である。
【図５５】図５５は一実施例によるデータ処理装置の構造模式図である。
【図５６】図５６は一実施例によるデータ処理装置の構造模式図である。
【図５６Ａ】図５６Ａは一実施例による機械学習装置の構造模式図である。
【図５７】図５７は一実施例による伝送回路の構造模式図である。
【図５７Ａ】図５７Ａは一実施例による伝送回路の構造模式図である。
【図５７Ｂ】図５７Ｂは一実施例による伝送回路の構造模式図である。
【図５８】図５８は一実施例によるクラスタ中の伝送回路の構造模式図である。
【図５９】図５９は一実施例による別種類のクラスタ中の伝送回路の構造模式図である。
【図６０】図６０は一実施例による別種類の伝送回路の構造模式図である。
【図６１】図６１は一実施例によるデータ処理装置の構造模式図である。
【図６２】図６２は一実施例による機械学習ユニットの構造模式図である。
【図６３】図６３は一実施例によるデータ処理装置の構造模式図である。
【図６４】図６４は一実施例によるデータ処理装置の構造模式図である。
【図６５】図６５は一実施例によるデータ処理装置の構造模式図である。
【図６６】図６６は一実施例によるデータ処理装置の構造模式図である。
【発明を実施するための形態】
【０１５７】
以下に例示的な実施例を詳細に説明し、その例を図面に示す。以下図面に関する記述では、特に断らない限り、異なる図面で同じ数字は同じ又は類似する要素を表す。以下の例示的な実施例で記述される実施形態は本願に適合する全ての実施形態を表すものではない。逆に、それは特許請求の範囲で詳しく記載された本願のいくつかの態様に適合する装置及び方法の例に過ぎない。
【０１５８】
本願の一実施例では、ネットワークオンチップ処理システムを提供し、当該システムは、記憶装置と、複数の計算装置とを含み、前記記憶装置及び複数の前記計算装置は１枚のチップに設けられ、ここで、少なくとも１つの計算装置は前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続される。
【０１５９】
ここで、ネットワークオンチップ（Ｎｅｔｗｏｒｋ  ｏｎ  Ｃｈｉｐ、ＮｏＣ）とは、１枚のチップに大量のコンピューティングリソースを集積してそれらのリソースを接続させたオンチップ通信ネットワークをいう。選択可能で、チップ中の各計算装置はそれぞれのインタフェースによって当該ネットワークオンチップにアクセスして、共有のネットワークリソースを使用して通信先モジュールと通信を行うようにしてもよい。具体的には、前記記憶装置及び複数の前記計算装置が１枚のチップに設けられるとは、記憶装置及び複数の計算装置を１枚のチップに集積させることをいう。計算装置中のプロセッサコアとチップ外の記憶装置とはＮｏＣによって接続され、ＮｏＣはプロセッサの複数のコア間の通信をもサポートする。
【０１６０】
本願の実施例によるネットワークオンチップ処理システムは、いずれもＮｏＣによってオンチップ通信を実現する。また、本願の実施例によるネットワークオンチップ処理システムはチップ内記憶を行ってもよいし、チップ外記憶を行ってもよく、つまり、ニューラルネットワークプロセッサの処理中に演算データがチップ内記憶装置に記憶されてもよいし、チップ外記憶装置に記憶されてもよく、ネットワークオンチップ処理システムのチップ内記憶容量が限られているため、演算データ及び演算中に生じた中間結果をチップ外記憶装置に一時的に記憶して、使用したい時にチップ外記憶装置からＮｏＣに読み取るようにしてもよい。本願の実施例では、ネットワークオンチップ処理システム中の記憶装置は、いずれもチップ内記憶装置であり、ネットワークオンチップ処理システム中の計算装置はニューラルネットワークプロセッサを含む。
【０１６１】
本願の一実施例では、ネットワークオンチップ処理システムをさらに提供し、当該システムは、記憶装置と、複数の計算装置とを含み、前記複数の計算装置は第１計算装置と、複数の第２計算装置とを含み、前記記憶装置及び複数の前記計算装置は１枚のチップに設けられ、ここで、前記第１計算装置は前記記憶装置に接続され、前記複数の第２計算装置のうちの少なくとも１つの第２計算装置は前記第１計算装置に接続される。
【０１６２】
一実施例では、ニューラルネットワークチップを提供し、当該チップは、記憶装置と、複数の計算装置と、第１相互接続装置と、第２相互接続装置とを含み、ここで、少なくとも１つの計算装置は前記第１相互接続装置介して前記記憶装置に接続され、前記複数の計算装置は前記第２相互接続装置を介して互いに接続される。さらに、計算装置は第１相互接続装置によって記憶装置に対する読み書き操作を実現するようにしてもよく、また、複数の計算装置の間に第２相互接続装置によってデータを伝送するようにしてもよい。
【０１６３】
以下、ネットワークオンチップ処理システム及びニューラルネットワークチップをそれぞれ説明する。
【０１６４】
図１は一実施例によるネットワークオンチップ処理システム１１００であり、図１に示すように、ネットワークオンチップ処理システム１１００は、記憶装置１１０１と、第１計算装置１１０２と、第２計算装置１１０３と、第２計算装置１１０４とを含み、且つ記憶装置１１０１、第１計算装置１１０２、第２計算装置１１０３及び第２計算装置１１０４はネットワークオンチップ処理システム１１００の１枚のチップに設けられ、ここで、第１計算装置１１０２は記憶装置１１０１に接続され、第２計算装置１１０３は第１計算装置１１０２に接続されるとともに、第２計算装置１１０３は第２計算装置１１０４にも接続される。記憶装置１１０１にアクセスできるのは第１計算装置１１０２のみであり、つまり、記憶装置１１０１に対するデータ読み書きができるのは、第１計算装置１１０２のみであり、第１計算装置１１０２、第２計算装置１１０３及び第２計算装置１１０４は互いにデータを伝送することができる。
【０１６５】
具体的には、第２計算装置１１０４はデータを読み取る必要がある場合に、第１計算装置１１０２により記憶装置１１０１にアクセスして、記憶装置１１０１から第２計算装置１１０４に必要なデータを読み取り、第１計算装置１１０２により当該データを第２計算装置１１０３に送信し、そして第２計算装置１１０３により当該データを第２計算装置１１０４に送信する。選択可能で、第１計算装置１１０２、第２計算装置１１０３及び第２計算装置１１０４のうちの少なくとも１つの計算装置が記憶装置１１０１に接続されることさえ保証されれば、第１計算装置１１０２の他に、第２計算装置１１０３及び第２計算装置１１０４も記憶装置１１０１に接続されてもよく、ここで具体的に限定しない。選択可能で、第１計算装置１１０２、第２計算装置１１０３及び第２計算装置１１０４のうちの少なくとも２つの計算装置が互いに接続されることさえ保証されれば、第２計算装置１１０３は第２計算装置１１０４に互いに接続されてもよいし、第１計算装置１１０２に互いに接続されてもよく、ここで具体的に限定しない。
【０１６６】
図２は一実施例によるネットワークオンチップ処理システム１２００であり、図２に示すように、ネットワークオンチップ処理システム１２００は、記憶装置１２０１と、第１計算装置１２０２と、第２計算装置１２０３と、第２計算装置１２０４とを含み、且つ記憶装置１２０１、第１計算装置１２０２、第２計算装置１２０３及び第２計算装置１２０４はネットワークオンチップ処理システム１２００の１枚のチップに設けられ、ここで、第１計算装置１２０２は記憶装置１２０１に接続され、第２計算装置１２０３及び第２計算装置１２０４は第１計算装置１２０２に直接的に接続され、即ち第２計算装置１２０４は第２計算装置１２０３にも第１計算装置１２０１にも接続され、第２計算装置１２０３を介して第１計算装置１２０１との接続を確立する必要がない。記憶装置１２０１にアクセスできるのは第１計算装置１２０２のみであり、つまり、記憶装置１２０１に対するデータ読み書きができるのは第１計算装置１２０２のみであり、第１計算装置１２０２、第２計算装置１２０３及び第２計算装置１２０４は互いにデータを伝送することができる。
【０１６７】
具体的には、第２計算装置１２０４はデータを読み取る必要がある場合に、第１計算装置１２０２により記憶装置１２０１にアクセスして、記憶装置１２０１から第２計算装置１２０４に必要なデータを読み取り、第２計算装置１２０３により転送することなく、第１計算装置１２０２により当該データを第２計算装置１２０４に直接的に送信する。選択可能で、第１計算装置１２０２、第２計算装置１２０３及び第２計算装置１２０４のうちの少なくとも１つの計算装置が記憶装置１２０１に接続されることさえ保証されれば、第１計算装置１２０２、第２計算装置１２０３及び第２計算装置１２０４はいずれも記憶装置１２０１に接続されてもよく、ここで具体的に限定しない。選択可能で、第１計算装置１２０２、第２計算装置１２０３及び第２計算装置１２０４のうちの少なくとも２つの計算装置が互いに接続されることさえ保証されれば、第２計算装置１２０３は第２計算装置１２０４と互いに接続されてもよいし、第１計算装置１２０２と互いに接続されてもよく、ここで具体的に限定しない。
【０１６８】
上記のネットワークオンチップ処理システムにおいて、１枚のチップに設けられた複数の計算装置間の接続を確立することにより、複数の計算装置の間にデータを伝送することができ、複数の計算装置がいずれも記憶装置からデータを読み取って、接続に使う帯域幅オーバーヘッドが大きくなりすぎることが避けられるとともに、データの読み書き効率が向上する。
【０１６９】
本願はその一実施例では、ネットワークオンチップ処理システムを提供し、当該システムは、記憶装置と、複数の計算装置とを含み、前記記憶装置及び複数の前記計算装置は１枚のチップに設けられ、ここで、前記複数の計算装置のうちの各計算装置はいずれも前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続される。
【０１７０】
図３は一実施例によるネットワークオンチップ処理システム１３００であり、図３に示すように、ネットワークオンチップ処理システム１３００は、記憶装置１３０１と、計算装置１３０２と、計算装置１３０３と、計算装置１３０４とを含み、記憶装置１３０１、計算装置１３０２、計算装置１３０３及び計算装置１３０４はネットワークオンチップ処理システム１３００の１枚のチップに設けられ、ここで、計算装置１３０２、計算装置１３０３及び計算装置１３０４はいずれも記憶装置１３０１に接続され、計算装置１３０２と計算装置１３０３は互いに接続されるとともに、計算装置１３０３と計算装置１３０４は互いに接続される。計算装置１２０２、計算装置１２０３及び計算装置１３０４はいずれも記憶装置１２０１にアクセスすることができ、計算装置１３０２と計算装置１３０３とは互いにデータを伝送することができ、また計算装置１３０３と計算装置１３０４とは互いにデータを伝送することができる。
【０１７１】
具体的には、計算装置１３０４はデータを読み取る必要がある場合に、計算装置１３０４が記憶装置１３０１に直接アクセスしてもよいし、計算装置１３０３により記憶装置１３０１にアクセスして、記憶装置１３０１から計算装置１３０４に必要なデータを読み取り、計算装置１３０３により当該データを計算装置１３０４に送信してもよいし、又は、計算装置１３０２により記憶装置１３０１にアクセスして、記憶装置１３０１から計算装置１３０４に必要なデータを読み取り、計算装置１３０２により当該データを計算装置１３０３に送信して、計算装置１３０３により当該データを計算装置１３０４に送信するようにしてもよい。選択可能で、計算装置１３０２、計算装置１３０３及び計算装置１３０４のうち少なくとも１つの計算装置が記憶装置１３０１に接続されることさえ保証されればよく、ここで具体的に限定しない。選択可能で、計算装置１３０２、計算装置１３０３及び計算装置１３０４のうち少なくとも２つの計算装置が互いに接続されることさえ保証されればよく、ここで具体的に限定しない。
【０１７２】
上記のネットワークオンチップ処理システムにおいて、１枚のチップに設けられた複数の計算装置間の接続を確立することにより、任意の計算装置に必要なデータは複数の計算装置の間に互いに伝送することができ、当該システムは同時に記憶装置インタフェースを読み取る計算装置を減らし、帯域幅の輻輳を緩和することができる。
【０１７３】
図４に示すように、一実施例によるネットワークオンチップ処理システム１４００であり、ネットワークオンチップ処理システム１４００は、記憶装置１４０１と、計算装置１４０２と、計算装置１４０３と、計算装置１４０４とを含み、記憶装置１４０１、計算装置１４０２、計算装置１４０３及び計算装置１４０４はネットワークオンチップ処理システム１４００の１枚のチップに設けられ、ここで、計算装置１４０２、計算装置１４０３及び計算装置１４０４はいずれも記憶装置１４０１に接続され、計算装置１４０２、計算装置１４０３及び計算装置１４０４の３つの計算装置は互いに接続される。計算装置１４０２、計算装置１４０３及び計算装置１４０４はいずれも記憶装置１４０１にアクセスすることができ、計算装置１４０２、計算装置１４０３及び計算装置１４０４の３つの計算装置は互いにデータを伝送することができる。
【０１７４】
具体的には、計算装置１４０４はデータを読み取る必要がある場合に、記憶装置１４０１に直接アクセスしてもよいし、計算装置１４０３により記憶装置１４０１にアクセスして、記憶装置１４０１から計算装置１４０４に必要なデータを読み取り、計算装置１４０３により当該データを計算装置１４０４に送信してもよいし、又は、計算装置１４０２により記憶装置１４０１にアクセスして、記憶装置１４０１から計算装置１４０４に必要なデータを読み取り、計算装置１４０３により転送することなく、計算装置１４０２により当該データを計算装置１４０４に直接的に送信してもよい。選択可能で、計算装置１４０２、計算装置１４０３及び計算装置１４０４のうち少なくとも１つの計算装置が記憶装置１４０１に接続されることさえ保証されればよく、ここで具体的に限定しない。選択可能で、計算装置１４０２、計算装置１４０３及び計算装置１４０４のうち少なくとも２つの計算装置が互いに接続されることさえ保証されればよく、ここで具体的に限定しない。
【０１７５】
上記のネットワークオンチップ処理システムにおいて、１枚のチップに設けられた複数の計算装置間において記憶装置を経由せずに直接的に接続を確立することにより、２つの計算装置は直接的にデータを伝送することができ、データの読み書き効率を向上させることができる。
【０１７６】
本願の一実施例では、ネットワークオンチップ処理システムをさらに提供し、当該システムは、記憶装置と、複数の計算装置グループとを含み、前記記憶装置及び複数の前記計算装置グループは１枚のチップに設けられ、各計算装置グループは複数の計算装置を含み、ここで、前記複数の計算装置グループのうちの少なくとも１つの計算装置グループは前記記憶装置に接続され、且つ少なくとも２つの計算装置グループは互いに接続される。
【０１７７】
本願の一実施例では、ニューラルネットワークチップをさらに提供し、当該チップは、記憶装置と、複数の計算装置グループと、第１相互接続装置と、第２相互接続装置とを含み、ここで、前記複数の計算装置グループのうちの少なくとも１つの計算装置グループは前記第１相互接続装置を介して前記記憶装置に接続され、前記複数の計算装置グループは前記第２相互接続装置を介して互いに接続される。さらに、計算装置グループは第１相互接続装置により記憶装置に対する読み書き操作を実現するようにしてもよく、また、複数の計算装置グループは第２相互接続装置によって互いにデータを伝送するようにしてもよい。ここで、複数の計算装置は複数のグループに分けられてもよく、且つ各グループの計算装置の数量は具体的に限定せず、その一例として、１つのグループは４つの計算装置を含む。
【０１７８】
図５ａに示すように、一実施例はネットワークオンチップ処理システム１５００を提供し、ネットワークオンチップ処理システム１５００は、記憶装置１５０１と、６つの計算装置（計算装置１５０２から計算装置１５０７）とを含み、記憶装置１５０１及び６つの計算装置（計算装置１５０２から計算装置１５０７）はネットワークオンチップ処理システム１５００の１枚のチップに設けられる。例えば、６つの計算装置は３つのグループに分けられ、各グループは２つの計算装置を含んでもよく、例えば、計算装置１５０２及び計算装置１５０３は第１計算装置グループ（ｃｌｕｓｔｅｒ１）であり、計算装置１５０４及び計算装置１５０５は第２計算装置グループ（ｃｌｕｓｔｅｒ２）であり、計算装置１５０６及び計算装置１５０７は第３計算装置グループ（ｃｌｕｓｔｅｒ３）である。ｃｌｕｓｔｅｒ１は主計算装置グループであり、ｃｌｕｓｔｅｒ２及びｃｌｕｓｔｅｒ３はサブ計算装置グループである。ここで、記憶装置１５０１に接続されるのはｃｌｕｓｔｅｒ１のみであり、ｃｌｕｓｔｅｒ１、ｃｌｕｓｔｅｒ２及びｃｌｕｓｔｅｒ３は互いに接続される。ｃｌｕｓｔｅｒ１中の計算装置１５０２は記憶装置１５０１に接続され、ｃｌｕｓｔｅｒ１中の計算装置１５０３はｃｌｕｓｔｅｒ２中の計算装置１５０４と互いに接続され、ｃｌｕｓｔｅｒ２中の計算装置１５０５はｃｌｕｓｔｅｒ３中の計算装置１５０７と互いに接続される。
【０１７９】
具体的には、ｃｌｕｓｔｅｒ３はデータを読み取る必要がある場合に、ｃｌｕｓｔｅｒ１により記憶装置１５０１にアクセスして、記憶装置１５０１からｃｌｕｓｔｅｒ３に必要なデータを読み取り、ｃｌｕｓｔｅｒ１により当該データをｃｌｕｓｔｅｒ２に送信して、ｃｌｕｓｔｅｒ２により当該データをｃｌｕｓｔｅｒ３に送信するようにしてもよい。ここで、複数の計算装置は複数のグループに分けられてもよく、且つ各グループの計算装置の数量は具体的に限定せず、好ましくは１つのグループは４つの計算装置を含む。
【０１８０】
選択可能で、複数の計算装置では全ての計算装置が記憶装置１５０１に接続されることは要求されず、２つの計算装置グループのうちの少なくとも１つの計算装置グループが記憶装置１５０１に接続されればよく、ここで具体的に限定しない。選択可能で、３つの計算装置グループのうちの少なくとも２つの計算装置グループが互いに接続されることさえ保証されれば、ｃｌｕｓｔｅｒ１はｃｌｕｓｔｅｒ２と互いに接続されてもよいし、ｃｌｕｓｔｅｒ３と互いに接続されてもよく、ここで具体的に限定しない。選択可能で、各前記計算装置グループ中の少なくとも１つの計算装置は、他の前記計算装置グループ中の少なくとも１つの計算装置に接続され、つまり、ｃｌｕｓｔｅｒ１中の少なくとも１つの計算装置がｃｌｕｓｔｅｒ２中の少なくとも１つの計算装置に接続されることさえ保証されれば、ｃｌｕｓｔｅｒ１の各計算装置はいずれも第２装置グループと接続を確立してもよく、ここで具体的に限定しない。選択可能で、前記複数の計算装置グループは前記複数の計算装置グループ中の任意の１つの計算装置を介して互いに接続され、つまり、ｃｌｕｓｔｅｒ１中の任意の１つの計算装置はｃｌｕｓｔｅｒ２中の任意の１つの計算装置と互いに接続されてもよく、ここで具体的に限定しない。
【０１８１】
図５ｂは一実施例によるネットワークオンチップ処理システム１５０００であり、図５ｂに示すように、ネットワークオンチップ処理システム１５０００は、記憶装置１５０１０と、６つの計算装置（計算装置１５０２０から計算装置１５０７０）とを含み、記憶装置１５０１０及び６つの計算装置（計算装置１５０２０から計算装置１５０７０）はネットワークオンチップ処理システム１５０００の１枚のチップに設けられ、６つの計算装置は３つのグループに分けられ、計算装置１５０２０及び計算装置１５０３０は第１計算装置グループ（ｃｌｕｓｔｅｒ１）であり、計算装置１５０４０及び計算装置１５０５０は第２計算装置グループ（ｃｌｕｓｔｅｒ２）であり、計算装置１５０６０及び計算装置１５０７０は第３計算装置グループ（ｃｌｕｓｔｅｒ３）であり、ｃｌｕｓｔｅｒ１は主計算装置グループであり、ｃｌｕｓｔｅｒ２及びｃｌｕｓｔｅｒ３はサブ計算装置グループである。ここで、記憶装置１５０１０に接続されるのはｃｌｕｓｔｅｒ１のみであり、ｃｌｕｓｔｅｒ１、ｃｌｕｓｔｅｒ２及びｃｌｕｓｔｅｒ３は互いに接続される。ｃｌｕｓｔｅｒ１中の計算装置１５０２０は記憶装置１５０１０に接続され、ｃｌｕｓｔｅｒ１中の計算装置１５０３０はｃｌｕｓｔｅｒ２中の計算装置１５０４０と互いに接続され、ｃｌｕｓｔｅｒ２中の計算装置１５０５０はｃｌｕｓｔｅｒ３中の計算装置１５０７０と互いに接続され、ｃｌｕｓｔｅｒ３中の計算装置１５０６０はｃｌｕｓｔｅｒ１中の計算装置１５０２０と互いに接続される。
【０１８２】
具体的には、ｃｌｕｓｔｅｒ３はデータを読み取る必要がある場合に、ｃｌｕｓｔｅｒ１により記憶装置１５０１にアクセスして、記憶装置１５０１からｃｌｕｓｔｅｒ３に必要なデータを読み取り、ｃｌｕｓｔｅｒ１により当該データをｃｌｕｓｔｅｒ３に直接的に送信するようにしてもよい。ここで、複数の計算装置は複数のグループに分けられてもよく、且つ各グループの計算装置の数量は具体的に限定せず、好ましくは１つのグループは４つの計算装置を含む。
【０１８３】
選択可能で、複数の計算装置では全ての計算装置が記憶装置１５０１０に接続されることは要求されず、２つの計算装置グループのうちの少なくとも１つの計算装置グループが記憶装置１５０１０に接続されればよく、ここで具体的に限定しない。選択可能で、３つの計算装置グループのうちの少なくとも２つの計算装置グループが互いに接続されることさえ保証されれば、ｃｌｕｓｔｅｒ１はｃｌｕｓｔｅｒ２と互いに接続されてもよいし、ｃｌｕｓｔｅｒ３と互いに接続されてもよく、ここで具体的に限定しない。選択可能で、各前記計算装置グループ中の少なくとも１つの計算装置は、他の前記計算装置グループ中の少なくとも１つの計算装置に接続され、つまり、ｃｌｕｓｔｅｒ１中の少なくとも１つの計算装置がｃｌｕｓｔｅｒ２中の少なくとも１つの計算装置に接続されることさえ保証されれば、ｃｌｕｓｔｅｒ１の各計算装置はいずれも第２装置グループと接続を確立してもよく、ここで具体的に限定しない。選択可能で、前記複数の計算装置グループは前記複数の計算装置グループ中の任意の１つの計算装置を介して互いに接続され、つまり、ｃｌｕｓｔｅｒ１中の任意の１つの計算装置はｃｌｕｓｔｅｒ２中の任意の１つの計算装置と互いに接続されてもよく、ここで具体的に限定しない。
【０１８４】
上記のネットワークオンチップ処理システムにおいて、１枚のチップに設けられた複数の計算装置グループを互いに接続させることにより、複数の計算装置グループにグループ間通信を実現させることができ、当該システムはグループ間のデータ伝送により、同時に記憶装置インタフェースを読み取る計算装置を減らし、メモリアクセスによるエネルギー消費オーバーヘッドを減らすことができ、また、１枚のチップに設けられた複数の計算装置グループの間に様々な接続方式によりグループ間通信を実現し、複数の計算装置の間に複数の通信チャネルを確立し、ネットワークのその時の使用状況に応じて最適なチャネルを選択してデータを伝送することにより、エネルギー消費を節約し、データ処理効率を向上させる効果を得る。
【０１８５】
その一実施例では、ネットワークオンチップ処理システムを提供し、当該システムは、記憶装置と、複数の計算装置グループとを含み、前記記憶装置及び複数の前記計算装置グループは１枚のチップに設けられ、各計算装置グループは複数の計算装置を含み、前記複数の計算装置グループのうちの少なくとも１つの計算装置グループは前記記憶装置に接続され、前記複数の計算装置グループは互いに接続される。
【０１８６】
図６は一実施例によるネットワークオンチップ処理システム１６００であり、図６に示すように、ネットワークオンチップ処理システム１６００は、記憶装置１６０１と、６つの計算装置（計算装置１６０２から計算装置１６０７）とを含み、記憶装置１６０１及び６つの計算装置（計算装置１６０２から計算装置１６０７）はネットワークオンチップ処理システム１６００の１枚のチップに設けられる。例えば、６つの計算装置は３つのグループに分けられてもよく、計算装置１６０２及び計算装置１６０３は第１計算装置グループｃｌｕｓｔｅｒ１であり、計算装置１６０４及び計算装置１６０５は第２計算装置グループｃｌｕｓｔｅｒ２であり、計算装置１６０６及び計算装置１６０７は第３計算装置グループｃｌｕｓｔｅｒ３であり、ここで、ｃｌｕｓｔｅｒ１、ｃｌｕｓｔｅｒ２及びｃｌｕｓｔｅｒ３はいずれも記憶装置１６０１に接続され、ｃｌｕｓｔｅｒ１とｃｌｕｓｔｅｒ２は互いに接続され、ｃｌｕｓｔｅｒ２とｃｌｕｓｔｅｒ３は互いに接続される。計算装置１６０２から計算装置１６０７はいずれも記憶装置１６０１に接続され、ｃｌｕｓｔｅｒ１中の計算装置１６０３はｃｌｕｓｔｅｒ２中の計算装置１６０４と互いに接続され、ｃｌｕｓｔｅｒ２中の計算装置１６０４はｃｌｕｓｔｅｒ３中の計算装置１６０７と互いに接続される。
【０１８７】
具体的には、ｃｌｕｓｔｅｒ３はデータを読み取る必要がある場合に、ｃｌｕｓｔｅｒ２により記憶装置１６０１にアクセスして、記憶装置１６０１からｃｌｕｓｔｅｒ３に必要なデータを読み取り、ｃｌｕｓｔｅｒ２によりｃｌｕｓｔｅｒ３に送信するようにしてもよいし、ｃｌｕｓｔｅｒ１により記憶装置１６０１にアクセスして、記憶装置１６０１からｃｌｕｓｔｅｒ３に必要なデータを読み取り、ｃｌｕｓｔｅｒ１により当該データをｃｌｕｓｔｅｒ２に送信して、ｃｌｕｓｔｅｒ２により当該データをｃｌｕｓｔｅｒ３に送信するようにしてもよい。ここで、複数の計算装置は複数のグループに分けられてもよく、且つ各グループの計算装置の数量は具体的に限定せず、例えば、１つのグループは４つの計算装置を含む。
【０１８８】
選択可能で、複数の計算装置では全ての計算装置が記憶装置１６０１に接続されることは要求されず、２つの計算装置グループのうちの少なくとも１つの計算装置グループが記憶装置１６０１に接続されればよく、ここで具体的に限定しない。選択可能で、ｃｌｕｓｔｅｒ１中の少なくとも１つの計算装置がｃｌｕｓｔｅｒ２及び／又はｃｌｕｓｔｅｒ３中の少なくとも１つの計算装置に接続されることさえ保証されれば、ｃｌｕｓｔｅｒ１の各計算装置はいずれも第２ユニットグループ及び／又はｃｌｕｓｔｅｒ３と接続を確立してもよく、ここで具体的に限定しない。選択可能で、ｃｌｕｓｔｅｒ１中の任意の１つの計算装置はｃｌｕｓｔｅｒ２及び／又はｃｌｕｓｔｅｒ３中の任意の１つの計算装置と互いに接続されてもよく、ここで具体的に限定しない。
【０１８９】
上記のネットワークオンチップ処理システムにおいて、１枚のチップに設けられた複数の計算装置グループを互いに接続させることにより、任意の計算装置グループに必要なデータは複数の計算装置グループの間に伝送することができ、当該システムは同時に記憶装置インタフェースを読み取る計算装置を減らし、帯域幅の輻輳を緩和することができる。
【０１９０】
その一実施例では、ネットワークオンチップ処理システムを提供し、当該システムは、記憶装置と、複数の計算装置グループとを含み、前記記憶装置及び複数の前記計算装置グループは１枚のチップに設けられ、各計算装置グループは複数の計算装置を含み、前記複数の計算装置グループのうちの少なくとも１つの計算装置グループは前記記憶装置に接続され、前記複数の計算装置グループのうちの任意の２つの計算装置グループは直接的に接続される。
【０１９１】
図７は一実施例によるネットワークオンチップ処理システム１７００であり、図７に示すように、ネットワークオンチップ処理システム１７００は、記憶装置１７０１と、６つの計算装置（計算装置１７０２から計算装置１７０７）とを含み、記憶装置１７０１及び６つの計算装置（計算装置１７０２から計算装置１７０７）はネットワークオンチップ処理システム１７００の１枚のチップに設けられ、６つの計算装置は３つのグループに分けられ、計算装置１７０２及び計算装置１７０３は第１計算装置グループｃｌｕｓｔｅｒ１であり、計算装置１７０４及び計算装置１７０５は第２計算装置グループｃｌｕｓｔｅｒ２であり、計算装置１７０６及び計算装置１７０７は第３計算装置グループｃｌｕｓｔｅｒ３であり、ここで、ｃｌｕｓｔｅｒ１、ｃｌｕｓｔｅｒ２及びｃｌｕｓｔｅｒ３はいずれも記憶装置１７０１に接続され、ｃｌｕｓｔｅｒ１、ｃｌｕｓｔｅｒ２及びｃｌｕｓｔｅｒ３の３つの計算装置グループは互いに接続される。計算装置１７０２から計算装置１７０７はいずれも記憶装置１７０１に接続され、ｃｌｕｓｔｅｒ１中の計算装置１７０３はｃｌｕｓｔｅｒ２中の計算装置１７０４と互いに接続され、ｃｌｕｓｔｅｒ２中の計算装置１７０４はｃｌｕｓｔｅｒ３中の計算装置１７０７と互いに接続され、ｃｌｕｓｔｅｒ１中の計算装置１７０２はｃｌｕｓｔｅｒ３中の計算装置１７０６と互いに接続される。
【０１９２】
具体的には、ｃｌｕｓｔｅｒ３はデータを読み取る必要がある場合に、ｃｌｕｓｔｅｒ２により記憶装置１７０１にアクセスして、記憶装置１７０１からｃｌｕｓｔｅｒ３に必要なデータを読み取り、ｃｌｕｓｔｅｒ２によりｃｌｕｓｔｅｒ３に送信するようにしてもよいし、ｃｌｕｓｔｅｒ１により記憶装置１７０１にアクセスして、記憶装置１７０１からｃｌｕｓｔｅｒ３に必要なデータを読み取り、ｃｌｕｓｔｅｒ１により当該データをｃｌｕｓｔｅｒ３に直接的に送信するようにしてもよい。複数の計算装置は複数のグループに分けられてもよく、且つ各グループの計算装置の数量は具体的に限定せず、好ましくは１つのグループは４つの計算装置を含む。
【０１９３】
選択可能で、複数の計算装置では全ての計算装置が記憶装置１７０１に接続されることは要求されず、２つの計算装置グループのうちの少なくとも１つの計算装置グループが記憶装置１７０１に接続されればよく、ここで具体的に限定しない。選択可能で、ｃｌｕｓｔｅｒ１中の少なくとも１つの計算装置がｃｌｕｓｔｅｒ２及びｃｌｕｓｔｅｒ３のうちの少なくとも１つの計算装置に接続されることさえ保証されれば、ｃｌｕｓｔｅｒ１の各計算装置はいずれも第２ユニットグループ及びｃｌｕｓｔｅｒ３と接続を確立してもよく、ここで具体的に限定しない。選択可能で、ｃｌｕｓｔｅｒ１中の任意の１つの計算装置はｃｌｕｓｔｅｒ２及びｃｌｕｓｔｅｒ３のうちの任意の１つの計算装置と互いに接続されてもよく、ここで具体的に限定しない。
【０１９４】
上記のネットワークオンチップ処理システムにおいて、１枚のチップに設けられた複数の計算装置グループの間に直接的に接続を確立することにより、データの読み書き効率を向上させることができる。
【０１９５】
本願の一実施例では、ネットワークオンチップ処理システムをさらに提供し、当該システムは、記憶装置と、複数の計算装置グループとを含み、前記記憶装置及び複数の前記計算装置グループは１枚のチップに設けられ、各計算装置グループは複数の計算装置を含み、前記複数の計算装置グループのうちの少なくとも１つの計算装置グループは前記記憶装置に接続され、且つ少なくとも２つの計算装置グループは互いに接続され、各前記計算装置グループ中の複数の計算装置は互いに接続される。
【０１９６】
図８は一実施例によるネットワークオンチップ処理システム１８００であり、図８に示すように、ネットワークオンチップ処理システム１８００は、記憶装置１８０１と、６つの計算装置（計算装置１８０２から計算装置１８０７）とを含み、記憶装置１８０１及び６つの計算装置（計算装置１８０２から計算装置１８０７）はネットワークオンチップ処理システム１８００の１枚のチップに設けられ、６つの計算装置は２つのグループに分けられ、計算装置１８０２、計算装置１８０３及び計算装置１８０４は第１計算装置グループｃｌｕｓｔｅｒ１であり、計算装置１８０５、計算装置１８０６及び計算装置１８０７は第２計算装置グループｃｌｕｓｔｅｒ２であり、ここで、ｃｌｕｓｔｅｒ１及びｃｌｕｓｔｅｒ２はいずれも記憶装置１８０１に接続され、ｃｌｕｓｔｅｒ１とｃｌｕｓｔｅｒ２は互いに接続され、且つｃｌｕｓｔｅｒ１中の３つの計算装置は互いに接続され、ｃｌｕｓｔｅｒ２中の３つの計算装置は互いに接続される。計算装置１８０２から計算装置１８０７はいずれも記憶装置１８０１に接続され、ｃｌｕｓｔｅｒ１中の計算装置１８０２とｃｌｕｓｔｅｒ２中の計算装置１８０５は互いに接続され、計算装置１８０３は計算装置１８０２及び計算装置１８０４と互いに接続され、計算装置１８０６は計算装置１８０５及び計算装置１８０７と互いに接続される。ここで、各計算装置グループの複数の計算装置の相互の接続方式は、ネットワークオンチップ処理システム１１００からネットワークオンチップ処理システム１４００の接続方式を参照することができ、ここで再度説明しない。
【０１９７】
具体的には、ｃｌｕｓｔｅｒ２はデータを読み取る必要がある場合に、記憶装置１８０１に直接にアクセスしてもよいし、ｃｌｕｓｔｅｒ１により記憶装置１８０１にアクセスして、記憶装置１８０１からｃｌｕｓｔｅｒ２に必要なデータを読み取り、ｃｌｕｓｔｅｒ１により当該データをｃｌｕｓｔｅｒ２に送信するようにしてもよいし、また、第２計算装置はグループ内においてデータを伝送するようにしてもよい。ｃｌｕｓｔｅｒ２はデータを読み取る必要がある場合に、ｃｌｕｓｔｅｒ２中の計算装置１８０５、計算装置１８０６及び計算装置１８０７が同時に記憶装置１８０１にアクセスしてもよく、ここで、計算装置１８０５、計算装置１８０６及び計算装置１８０７はそれぞれｃｌｕｓｔｅｒ２に必要なデータの一部を読み取り、これらのデータはｃｌｕｓｔｅｒ２内において伝送するようにしてもよい。複数の計算装置は複数のグループに分けられてもよく、且つ各グループの計算装置の数量は具体的に限定せず、好ましくは１つのグループは４つの計算装置を含む。
【０１９８】
選択可能で、複数の計算装置では全ての計算装置が記憶装置１８０１に接続されることは要求されず、２つの計算装置グループのうちの少なくとも１つの計算装置グループが記憶装置１８０１に接続されればよく、ここで具体的に限定しない。選択可能で、ｃｌｕｓｔｅｒ１中の少なくとも１つの計算装置がｃｌｕｓｔｅｒ２中の少なくとも１つの計算装置に接続されることさえ保証されれば、ｃｌｕｓｔｅｒ１の各計算装置はいずれも第２ユニットグループと接続を確立してもよく、ここで具体的に限定しない。選択可能で、ｃｌｕｓｔｅｒ１中の任意の１つの計算装置はｃｌｕｓｔｅｒ２中の任意の１つの計算装置と互いに接続されてもよく、ここで具体的に限定しない。
【０１９９】
上記のネットワークオンチップ処理システムにおいて、１枚のチップに設けられた複数の計算装置グループを互いに接続させるとともに、各計算装置グループ中の複数の計算装置を互いに接続させることにより、複数の計算装置同士にグループ内通信及びグループ間通信を実現することができ、当該システムはメモリアクセスによるエネルギー消費オーバーヘッドを低減し、データの読み取り効率を向上させることができる。
【０２００】
本願の一実施例では、ネットワークオンチップ処理システムをさらに提供し、当該システムは、互いに接続された複数のネットワークオンチップ処理モジュールを含み、前記複数のネットワークオンチップ処理モジュールは１枚のチップに設けられ、各ネットワークオンチップ処理モジュールは、少なくとも１つの記憶装置と、複数の計算装置とを含み、ここで、各ネットワークオンチップ処理モジュールにおいて、少なくとも１つの計算装置は前記ネットワーク処理モジュールの内部の少なくとも１つの記憶装置に接続され、且つ前記複数の計算装置のうちの少なくとも２つの計算装置は互いに接続される。
【０２０１】
一実施例では、ニューラルネットワークチップを提供し、当該チップは互いに接続された複数のネットワークオンチップ処理モジュールを含み、各ネットワークオンチップ処理モジュールは、少なくとも１つの記憶装置と、複数の計算装置と、第１相互接続装置と、第２相互接続装置とを含み、ここで、各ネットワークオンチップ処理モジュールにおいて、少なくとも１つの計算装置と前記ネットワークオンチップ処理モジュールの内部の少なくとも１つの記憶装置は前記第１相互接続装置を介して接続され、前記複数の計算装置は前記第２相互接続装置を介して互いに接続される。さらに、計算装置は第１相互接続装置によって、所在のネットワークオンチップ処理モジュールの内部の記憶装置に対する読み書き操作を実現するようにしてもよく、また、複数の計算装置の間に第２相互接続装置によってデータを伝送するようにしてもよい。
【０２０２】
図９は一実施例によるネットワークオンチップ処理システム１９００であり、図９に示すように、ネットワークオンチップ処理システム１９００は、互いに接続された４つのネットワークオンチップ処理モジュールを含み、前記４つのネットワークオンチップ処理モジュールはネットワークオンチップ処理システム１９００の１枚のチップに設けられ、各ネットワークオンチップ処理モジュールは、１つの記憶装置１９０１と、４つの計算装置（計算装置１９０２から計算装置１９０５）とを含み、ここで、各ネットワークオンチップ処理モジュールにおいて、計算装置１９０２はそのネットワークオンチップ処理モジュールの内部の記憶装置１９０１に接続され、且つ各ネットワークオンチップ処理モジュールの内部の４つの計算装置は互いに接続される。
【０２０３】
具体的には、各ネットワークオンチップ処理モジュールの処理すべきデータは全て当該ネットワークオンチップ処理モジュールの内部の記憶装置に格納され、つまり、各ネットワークオンチップ処理モジュール中の複数の計算装置は所在のネットワークオンチップ処理モジュールの内部の記憶装置にしかアクセスすることができず、所在のネットワークオンチップ処理モジュールの内部の記憶装置からしかデータの読み書きを行うことができない。
【０２０４】
選択可能で、各ネットワークオンチップ処理モジュール中の記憶装置の数量は１つに限定されず、２つ、３つ又は４つ以上であってもよく、ここで具体的に限定せず、４つであることが好ましい。選択可能で、各ネットワークオンチップ処理モジュールにおいて、前記複数の計算装置は互いに接続して計算装置ネットワークが形成され、各ネットワークオンチップ処理モジュール中の複数の計算装置の相互の接続方式は、ネットワークオンチップ処理システム１１００からネットワークオンチップ処理システム１４００の接続方式を参照することができ、ここで再度説明しない。選択可能で、各ネットワークオンチップ処理モジュール中の複数の計算装置では全ての計算装置が記憶装置１９０１に接続されることは要求されず、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置が記憶装置１９０１に接続されればよく、ここで具体的に限定しない。
【０２０５】
選択可能で、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置が別のネットワークオンチップ処理モジュール中の少なくとも１つの計算装置に接続されることさえ保証されれば、各ネットワークオンチップ処理モジュール中の各計算装置はいずれも別のネットワークオンチップ処理モジュールと接続を確立してもよく、ここで具体的に限定しない。選択可能で、前記複数のネットワークオンチップ処理モジュールは各ネットワークオンチップ処理モジュール中の任意の１つの計算装置を介して互いに接続され、つまり、各ネットワークオンチップ処理モジュール中の任意の１つの計算装置は別のネットワークオンチップ処理モジュール中の任意の１つの計算装置と互いに接続してもよく、ここで具体的に限定しない。
【０２０６】
上記のネットワークオンチップ処理システムにおいて、１枚のチップに設けられた複数のネットワークオンチップ処理モジュールの間に接続を確立するとともに、各ネットワークオンチップ処理モジュール中の複数の計算装置の間に接続を確立することにより、複数の計算装置同士にモジュール内通信及びモジュール間通信を実現することができ、当該システムはメモリアクセスによるエネルギー消費オーバーヘッドを低減し、データの読み取り効率を向上させることができ、また、１枚のチップに設けられた複数のネットワークオンチップ処理モジュールの間に様々な接続方式によりモジュール間の通信を実現し、複数の計算装置の間に複数の通信チャネルを確立し、ネットワークのその時の使用状況に応じて最適なチャネルを選択してデータを伝送することにより、エネルギー消費を節約し、データ処理効率を向上させる効果を得る。
【０２０７】
本願の一実施例では、ネットワークオンチップ処理システムを提供し、当該システムは、互いに接続された複数のネットワークオンチップ処理モジュールを含み、前記複数のネットワークオンチップ処理モジュールは１枚のチップに設けられ、各ネットワークオンチップ処理モジュールは複数の記憶装置を含み、且つ、前記ネットワークオンチップ処理モジュールにおいて、少なくとも１つの計算装置は前記ネットワークオンチップ処理モジュールの内部の前記複数の記憶装置に接続され、且つ前記複数の計算装置のうちの少なくとも２つの計算装置は互いに接続される。
【０２０８】
図１０ａは一実施例によるネットワークオンチップ処理システム１９１０であり、図１０ａに示すように、ネットワークオンチップ処理システム１９１０は、互いに接続された４つのネットワークオンチップ処理モジュールを含み、前記４つのネットワークオンチップ処理モジュールはネットワークオンチップ処理システム１９１０の１枚のチップに設けられ、各ネットワークオンチップ処理モジュールは、記憶装置１９１１と、記憶装置１９１６と、４つの計算装置（計算装置１９１２から計算装置１９１５）とを含み、ここで、各ネットワークオンチップ処理モジュールにおいて、計算装置１９１２はそのネットワークオンチップ処理モジュールの内部の記憶装置１９１１及び記憶装置１９１６に接続され、且つ各ネットワークオンチップ処理モジュールの内部の４つの計算装置は互いに接続される。
【０２０９】
具体的には、各ネットワークオンチップ処理モジュールの処理すべきデータは全て当該ネットワークオンチップ処理モジュールの内部の記憶装置に格納され、つまり、各ネットワークオンチップ処理モジュール中の複数の計算装置は所在のネットワークオンチップ処理モジュールの内部の記憶装置にしかアクセスすることができず、所在のネットワークオンチップ処理モジュールの内部の記憶装置からしかデータの読み書きを行うことができない。各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置は当該ネットワークオンチップ処理モジュール中の全ての記憶装置と接続が確立され、つまり、各ネットワークオンチップ処理モジュール中の計算装置は当該ネットワークオンチップ処理モジュール中の全ての記憶装置にアクセスすることができる。ここで、各ネットワークオンチップ処理モジュール中の記憶装置の数量は２つに限定されず、３つ、４つ又は５つ以上であってもよく、ここで具体的に限定せず、４つであることが好ましく、スペースの使用を節約するとともに、効率的にデータ処理を行うことができる。
【０２１０】
具体的には、各ネットワークオンチップ処理モジュール中の計算装置は近接する記憶装置に優先してアクセスする。ここで、近接する記憶装置とは、計算装置に接続された複数の記憶装置のうち通信距離が最短の記憶装置であり、つまり、通信距離が最短の記憶装置は他の記憶装置よりもアクセス優先度が高い。
【０２１１】
選択可能で、各ネットワークオンチップ処理モジュールにおいて、前記複数の計算装置は互いに接続して計算装置ネットワークが形成され、各ネットワークオンチップ処理モジュール中の複数の計算装置の相互の接続方式は、ネットワークオンチップ処理システム１１００からネットワークオンチップ処理システム１４００の接続方式を参照することができ、ここで再度説明しない。選択可能で、各ネットワークオンチップ処理モジュール中の複数の計算装置では全ての計算装置が記憶装置１９１１に接続されることは要求されず、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置が記憶装置１９１１に接続されればよく、ここで具体的に限定しない。
【０２１２】
選択可能で、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置が別のネットワークオンチップ処理モジュール中の少なくとも１つの計算装置に接続されることさえ保証されれば、各ネットワークオンチップ処理モジュール中の各計算装置はいずれも別のネットワークオンチップ処理モジュールと接続を確立してもよく、ここで具体的に限定しない。選択可能で、前記複数のネットワークオンチップ処理モジュールは各ネットワークオンチップ処理モジュール中の任意の１つの計算装置を介して互いに接続され、つまり、各ネットワークオンチップ処理モジュール中の任意の１つの計算装置は別のネットワークオンチップ処理モジュール中の任意の１つの計算装置と互いに接続するようにしてもよく、ここで具体的に限定しない。
【０２１３】
上記のネットワークオンチップ処理システムにおいて、各計算装置は所在のネットワークオンチップ処理モジュール中の全ての記憶装置にアクセスすることができて、複数の通信チャネルを提供してデータ伝送を行うことができるため、データの読み書き効率を向上させることができ、当該システムで各計算装置は近接する記憶装置に優先してアクセスすることにより、メモリアクセスオーバーヘッドを節約するとともに、ある程度の柔軟性を保証することができる。
【０２１４】
その一実施例では、図１０ｂはネットワークオンチップ処理システム１９１００を示し、図中、各ネットワークオンチップ処理モジュールの処理すべきデータは全て当該ネットワークオンチップ処理モジュールの内部の記憶装置に格納され、つまり、各ネットワークオンチップ処理モジュール中の複数の計算装置は所在のネットワークオンチップ処理モジュールの内部の記憶装置にしかアクセスすることができず、所在のネットワークオンチップ処理モジュールの内部の記憶装置からしかデータの読み書きを行うことができない。各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置は当該ネットワークオンチップ処理モジュール中の全ての記憶装置と接続が確立され、つまり、各ネットワークオンチップ処理モジュール中の計算装置は当該ネットワークオンチップ処理モジュール中の全ての記憶装置にアクセスすることができる。ここで、各ネットワークオンチップ処理モジュール中の記憶装置の数量は２つに限定されず、３つ、４つ又は５つ以上であってもよく、ここで具体的に限定せず、４つであることが好ましい。
【０２１５】
具体的には、各ネットワークオンチップ処理モジュールにおいて、各計算装置は第１通信距離の記憶装置に接続され、ここで、第１通信距離とは、最短の通信距離であり、つまり、各ネットワークオンチップ処理モジュール中の計算装置は近接する記憶装置にしかアクセスすることができず、即ち各ネットワークオンチップ処理モジュール中の計算装置は通信距離が最短の記憶装置にしかアクセスすることができない。例えば、計算装置１９１２０は近接する記憶装置１９１１０にしかアクセスすることができず、記憶装置１９１６０にアクセスすることができない。計算装置１９１３０は近接する記憶装置１９１６０にしかアクセスすることができず、記憶装置１９１１０にアクセスすることができない。計算装置１９１２０が読み取るべきデータが記憶装置１９１６０に記憶されている場合に、まず計算装置１９１３０により記憶装置１９１６０から当該データを読み取り、次に計算装置１９１３０により当該データを計算装置１９１２０に伝送する必要がある。
【０２１６】
選択可能で、各ネットワークオンチップ処理モジュールにおいて、前記複数の計算装置は互いに接続して計算装置ネットワークが形成され、各ネットワークオンチップ処理モジュール中の複数の計算装置の相互の接続方式は、ネットワークオンチップ処理システム１１００からネットワークオンチップ処理システム１４００の接続方式を参照することができ、ここで再度説明しない。選択可能で、各ネットワークオンチップ処理モジュール中の複数の計算装置では全ての計算装置が記憶装置１９１１０に接続されることは要求されず、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置は記憶装置１９１１０に接続されればよく、ここで具体的に限定しない。
【０２１７】
選択可能で、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置が別のネットワークオンチップ処理モジュール中の少なくとも１つの計算装置に接続されることさえ保証されれば、各ネットワークオンチップ処理モジュール中の各計算装置はいずれも別のネットワークオンチップ処理モジュールと接続を確立してもよく、ここで具体的に限定しない。選択可能で、前記複数のネットワークオンチップ処理モジュールは各ネットワークオンチップ処理モジュール中の任意の１つの計算装置を介して互いに接続され、つまり、各ネットワークオンチップ処理モジュール中の任意の１つの計算装置は別のネットワークオンチップ処理モジュール中の任意の１つの計算装置と互いに接続するようにしてもよく、ここで具体的に限定しない。
【０２１８】
上記のネットワークオンチップ処理システムにおいて、各計算装置は所在のネットワークオンチップ処理モジュール中の全ての記憶装置にアクセスすることができて、複数の通信チャネルを提供してデータ伝送を行うことができるため、データの読み書き効率を向上させることができ、当該システムにおいて各計算装置は近接する記憶装置にしかアクセスすることができず、メモリアクセスオーバーヘッドを最大限に節約することができる。
【０２１９】
本願の一実施例では、ネットワークオンチップ処理システムを提供し、当該システムは、直接的に接続された任意の２つのネットワークオンチップ処理モジュールを含み、任意の２つのネットワーク処理モジュールは１枚のチップに設けられ、各ネットワークオンチップ処理モジュールは、少なくとも１つの記憶装置と、複数の計算装置とを含み、ここで、各ネットワークオンチップ処理モジュールにおいて、少なくとも１つの計算装置は前記ネットワーク処理モジュールの内部の少なくとも１つの記憶装置に接続され、且つ前記複数の計算装置のうちの少なくとも２つの計算装置は互いに接続される。
【０２２０】
図１１は一実施例によるネットワークオンチップ処理システム１９２０であり、図１１に示すように、ネットワークオンチップ処理システム１９２０は互いに接続された４つのネットワークオンチップ処理モジュールを含み、前記４つのネットワークオンチップ処理モジュールはネットワークオンチップ処理システム１９２０の１枚のチップに設けられ、前記４つのネットワークオンチップ処理モジュールのうちの任意２つのネットワークオンチップ処理モジュールは直接的に接続され、各ネットワークオンチップ処理モジュールは、１つの記憶装置１９２１と、４つの計算装置（計算装置１９２２から計算装置１９２５）とを含み、ここで、各ネットワークオンチップ処理モジュールにおいて、計算装置１９２２はそのネットワークオンチップ処理モジュールの内部の記憶装置１９２１に接続され、且つ各ネットワークオンチップ処理モジュールの内部の４つの計算装置は互いに接続される。
【０２２１】
具体的には、各ネットワークオンチップ処理モジュールの処理すべきデータは全て当該ネットワークオンチップ処理モジュールの内部の記憶装置に格納され、つまり、各ネットワークオンチップ処理モジュール中の複数の計算装置は所在のネットワークオンチップ処理モジュールの内部の記憶装置にしかアクセスすることができず、所在のネットワークオンチップ処理モジュールの内部の記憶装置からしかデータの読み書きを行うことができない。
【０２２２】
選択可能で、各ネットワークオンチップ処理モジュール中の記憶装置の数量は１つに限定されず、２つ、３つ又は４つ以上であってもよく、ここで具体的に限定せず、４つであることが好ましい。選択可能で、各ネットワークオンチップ処理モジュールにおいて、前記複数の計算装置は互いに接続して計算装置ネットワークが形成され、各ネットワークオンチップ処理モジュール中の複数の計算装置の相互の接続方式は、ネットワークオンチップ処理システム１１００からネットワークオンチップ処理システム１４００の接続方式を参照することができ、ここで再度説明しない。選択可能で、各ネットワークオンチップ処理モジュール中の複数の計算装置では全ての計算装置が記憶装置１９２１に接続されることは要求されず、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置が記憶装置１９２１に接続されればよく、ここで具体的に限定しない。
【０２２３】
選択可能で、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置が別のネットワークオンチップ処理モジュール中の少なくとも１つの計算装置に接続されることさえ保証されれば、各ネットワークオンチップ処理モジュール中の各計算装置はいずれも別のネットワークオンチップ処理モジュールと接続を確立してもよく、ここで具体的に限定しない。選択可能で、前記複数のネットワークオンチップ処理モジュールは各ネットワークオンチップ処理モジュール中の任意の１つの計算装置を介して互いに接続され、つまり、各ネットワークオンチップ処理モジュール中の任意の１つの計算装置は別のネットワークオンチップ処理モジュール中の任意の１つの計算装置と互いに接続するようにしてもよく、ここで具体的に限定しない。
【０２２４】
上記のネットワークオンチップ処理システムにおいて、１枚のチップに設けられた複数のネットワークオンチップ処理モジュールの間に接続を確立するとともに、各ネットワークオンチップ処理モジュール中の複数の計算装置の間に接続を確立することにより、複数の計算装置同士にモジュール内通信を実現できるとともに、任意の２つのネットワークオンチップ処理モジュール同士にモジュール間の直接的通信を実現でき、当該システムは同時に記憶装置インタフェースを読み取る計算装置を減らし、帯域幅の輻輳を緩和することができ、モジュール間のデータ伝送により、データの読み書き効率が向上する。
【０２２５】
本願の一実施例では、ネットワークオンチップ処理システムを提供し、当該システムは、直接的に接続された任意の２つのネットワークオンチップ処理モジュールを含み、任意の２つのネットワーク処理モジュールは１枚のチップに設けられ、各ネットワークオンチップ処理モジュールは複数の記憶装置を含み、且つ、前記ネットワークオンチップ処理モジュールにおいて、少なくとも１つの計算装置は前記ネットワークオンチップ処理モジュールの内部の前記複数の記憶装置に接続され、且つ前記複数の計算装置のうちの少なくとも２つの計算装置は互いに接続される。
【０２２６】
図１２は一実施例によるネットワークオンチップ処理システム１９３０であり、図１２に示すように、ネットワークオンチップ処理システム１９３０は互いに接続された４つのネットワークオンチップ処理モジュールを含み、前記４つのネットワークオンチップ処理モジュールはネットワークオンチップ処理システム１９２０の１枚のチップに設けられ、前記４つのネットワークオンチップ処理モジュールのうちの任意２つのネットワークオンチップ処理モジュールは直接的に接続され、各ネットワークオンチップ処理モジュールは、記憶装置１９３１と、記憶装置１９３６と、４つの計算装置（計算装置１９３２から計算装置１９３５）とを含み、ここで、各ネットワークオンチップ処理モジュールにおいて、計算装置１９３２はそのネットワークオンチップ処理モジュールの内部の記憶装置１９３１及び記憶装置１９３６に接続され、且つ各ネットワークオンチップ処理モジュールの内部の４つの計算装置は互いに接続される。
【０２２７】
具体的には、各ネットワークオンチップ処理モジュールの処理すべきデータは全て当該ネットワークオンチップ処理モジュールの内部の記憶装置に格納され、つまり、各ネットワークオンチップ処理モジュール中の複数の計算装置は所在のネットワークオンチップ処理モジュールの内部の記憶装置にしかアクセスすることができず、所在のネットワークオンチップ処理モジュールの内部の記憶装置からしかデータの読み書きを行うことができない。各ネットワークオンチップ処理モジュール中の計算装置は近接する記憶装置に優先してアクセスする。
【０２２８】
選択可能で、各ネットワークオンチップ処理モジュール中の記憶装置の数量は２つに限定されず、３つ、４つ又は５つ以上であってもよく、ここで具体的に限定せず、４つであることが好ましい。具体的には、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置は当該ネットワークオンチップ処理モジュール中の全ての記憶装置と接続が確立され、つまり、各ネットワークオンチップ処理モジュール中の計算装置は当該ネットワークオンチップ処理モジュール中の全ての記憶装置にアクセスすることができる。
【０２２９】
選択可能で、各ネットワークオンチップ処理モジュールにおいて、前記複数の計算装置は互いに接続して計算装置ネットワークが形成され、各ネットワークオンチップ処理モジュール中の複数の計算装置の相互の接続方式は、ネットワークオンチップ処理システム１１００からネットワークオンチップ処理システム１４００の接続方式を参照することができ、ここで再度説明しない。選択可能で、各ネットワークオンチップ処理モジュール中の複数の計算装置では全ての計算装置が記憶装置１９３１に接続されることは要求されず、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置が記憶装置１９３１に接続されればよく、ここで具体的に限定しない。
【０２３０】
選択可能で、各ネットワークオンチップ処理モジュール中の少なくとも１つの計算装置が別のネットワークオンチップ処理モジュール中の少なくとも１つの計算装置に接続されることさえ保証されれば、各ネットワークオンチップ処理モジュール中の各計算装置はいずれも別のネットワークオンチップ処理モジュールと接続を確立してもよく、ここで具体的に限定しない。選択可能で、前記複数のネットワークオンチップ処理モジュールは各ネットワークオンチップ処理モジュール中の任意の１つの計算装置を介して互いに接続され、つまり、各ネットワークオンチップ処理モジュール中の任意の１つの計算装置は別のネットワークオンチップ処理モジュール中の任意の１つの計算装置と互いに接続するようにしてもよく、ここで具体的に限定しない。
【０２３１】
上記のネットワークオンチップ処理システムにおいて、各計算装置は所在のネットワークオンチップ処理モジュール中の全ての記憶装置にアクセスできるとともに、任意の２つのネットワークオンチップ処理モジュールの間にモジュール間の直接的通信を実現することができ、当該システムは複数の通信チャネルを提供してデータ伝送を行うことができ、これにより、データの読み書き効率を向上させることができ、当該システムで各計算装置は近接する記憶装置に優先してアクセスすることにより、メモリアクセスオーバーヘッドを節約するとともに、ある程度の柔軟性を保証することができる。
【０２３２】
その一実施例では、図１３に示すように、図１３に示すネットワークオンチップ処理システムの計算装置は機械学習計算を実行するために用いてもよく、当該計算装置は、コントローラユニット１１と、演算ユニット１２とを含み、ここで、コントローラユニット１１は演算ユニット１２に接続され、当該演算ユニット１１は、１つの主処理回路と、複数の副処理回路とを含み、
コントローラユニット１１は、入力データ及び計算コマンドを取得するために用いられる。選択可能な一形態では、具体的には、入力データ及び計算コマンドはデータ入出力ユニットにより得るようにしてもよく、当該データ入出力ユニットは、具体的に１つ又は複数のデータＩ／Ｏインタフェース又はＩ／Ｏピンであってもよい。
【０２３３】
上記の計算コマンドは、フォワード演算コマンド、バックワードトレーニングコマンド、又は他のニューラルネットワーク演算コマンド等、例えば、畳み込み演算コマンドを含むが、これらに限定せず、本願の具体的な実施形態では、上記の計算コマンドの形態を具体的に限定しない。
【０２３４】
具体的には、コントローラユニット１１は、さらに、当該計算コマンドを解析して複数の演算コマンドを得、当該複数の演算コマンド及び前記入力データを前記主処理回路に送信するために用いられる。
【０２３５】
当該演算ユニット１２は、１つの主処理回路１０１と、複数の副処理回路１０２とを含む。ここで、主処理回路１０１は、前記入力データに前処理を実行し、前記複数の副処理回路とデータ及び演算コマンドを伝送するために用いられ、
複数の副処理回路１０２は、前記主処理回路から伝送されたデータ及び演算コマンドに基づき、並行して中間演算を実行して複数の中間結果を得、複数の中間結果を前記主処理回路に伝送するために用いられ、
主処理回路１０１は、前記複数の中間結果に後続の処理を実行して前記計算コマンドの計算結果を得るために用いられる。
【０２３６】
本願による技術的解決手段において、演算ユニットは１つの主ユニット及び複数の副ユニットを含む構造として設定され、フォワード演算の計算コマンドに対して、フォワード演算の計算コマンドに基づいてデータを区分することができ、このようにして複数の副処理回路により、計算量が大きな部分について並行して演算することができ、演算速度を向上させ、演算時間を短縮させ、さらには消費パワーを低減することができる。
【０２３７】
選択可能で、上記の計算装置は、当該記憶ユニット１０と、ダイレクトメモリアクセスユニット５０とを含んでもよく、記憶ユニット１０は、レジスタ及びキャッシュの一方、又は任意の組み合わせを含んでもよく、具体的には、前記キャッシュは、前記計算コマンドを記憶するために用いられ、前記レジスタは、前記入力データ及びスカラーを記憶するために用いられ、前記キャッシュは高速一時的キャッシュである。ダイレクトメモリアクセスユニット５０は、記憶ユニット１０からデータを読み取り、データを記憶するために用いられる。
【０２３８】
選択可能で、当該コントローラユニットは、コマンド記憶ユニット１１０と、コマンド処理ユニット１１１と、キュー記憶ユニット１１３とを含み、ここで、
コマンド記憶ユニット１１０は、前記人工ニューラルネットワーク演算に関連する計算コマンドを記憶するために用いられ、
前記コマンド処理ユニット１１１は、前記計算コマンドを解析して複数の演算コマンドを得るために用いられ、
キュー記憶ユニット１１３は、コマンドキューを記憶するために用いられ、当該コマンドキューは、当該キューの前後順番に従って実行される複数の演算コマンド及び／又は計算コマンドを含む。
【０２３９】
例えば、選択可能な一形態では、主演算処理回路は１つのコントローラユニットを含んでもよく、当該コントローラユニットは、具体的に、コマンドをマイクロコマンドに復号するための主コマンド処理ユニットを含んでもよい。また、選択可能な別の形態では、副演算処理回路は別のコントローラユニットを含んでもよく、当該別のコントローラユニットは、具体的に、マイクロコマンドを受信及び処理するための副コマンド処理ユニットを含む。上記のマイクロコマンドはコマンドの下位コマンドであってもよく、当該マイクロコマンドは、コマンドに対する区分又は復号により得てもよく、さらに各デバイス、各ユニット又は各処理回路の制御信号として復号されることが可能である。
【０２４０】
選択可能な一形態では、当該計算コマンドの構造は表１に示すとおりであってもよい。
【０２４１】
【表１】
2021526277.tif 000003
【０２４２】
表中、リーダーは複数のレジスタ又は即値を含み得ることを表す。
【０２４３】
選択可能な別の形態では、当該計算コマンドは、１つ又は複数の操作フィールドと、１つの操作コードとを含んでもよい。当該計算コマンドは、ニューラルネットワーク演算コマンドを含んでもよい。ニューラルネットワーク演算コマンドを例とすると、表２に示すように、表中、レジスタ番号０、レジスタ番号１、レジスタ番号２、レジスタ番号３、レジスタ番号４は操作フィールドであってもよい。ここで、レジスタ番号０、レジスタ番号１、レジスタ番号２、レジスタ番号３、レジスタ番号４はそれぞれ１つ又は複数のレジスタの番号であってもよい。
【０２４４】
【表２】
2021526277.tif 000004
【０２４５】
上記のレジスタはチップ外メモリであってもよく、当然ながら、実際の応用において、データを記憶するためのチップ内メモリであってもよく、当該データは具体的にｎ次元（ｎは１以上の整数である）データであってもよく、例えば、ｎ＝１である場合に、１次元データ、即ちベクトルであり、ｎ＝２である場合に、２次元データ、即ち行列であり、ｎ＝３又は４以上である場合に、多次元テンソルである。
【０２４６】
選択可能で、当該コントローラユニットは、複数の演算コマンドがある場合に、第１演算コマンドと前記第１演算コマンドの前の第ゼロ演算コマンドとに相関関係があるか否かを決定し、前記第１演算コマンドと前記第ゼロ演算コマンドとに相関関係がある場合に、前記第１演算コマンドを前記コマンド記憶ユニットにキャッシュし、前記第ゼロ演算コマンドの実行完了後、前記コマンド記憶ユニットから前記第１演算コマンドを抽出して前記演算ユニットに伝送するための前記依存関係処理ユニット１１２をさらに含んで、当該第１演算コマンドと第１演算コマンドの前の第ゼロ演算コマンドとに相関関係があるか否かを決定する前記ステップは、前記第１演算コマンドに基づいて前記第１演算コマンドに必要なデータ（例えば、行列）の第１ストレージアドレス区間を抽出し、前記第ゼロ演算コマンドに基づいて前記第ゼロ演算コマンドに必要な行列の第ゼロストレージアドレス区間を抽出し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、前記第１演算コマンドと前記第ゼロ演算コマンドとに相関関係があると決定し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、前記第１演算コマンドと前記第ゼロ演算コマンドとに相関関係がないと決定することを含んてもよい。
【０２４７】
選択可能な別の実施例では、演算ユニット１２は、図１４に示すように、１つの主処理回路１０１と、複数の副処理回路１０２とを含んでもよい。一実施例では、図１４に示すように、複数の副処理回路はアレイのように分布し、各副処理回路は隣接する他の副処理回路に接続され、主処理回路は前記複数の副処理回路のうちのｋ個の副処理回路に接続され、前記ｋ個の副処理回路は、１行目のｎ個の副処理回路、ｍ行目のｎ個の副処理回路及び１列目のｍ個の副処理回路であり、なお、図１４に示すＫ個の副処理回路は、１行目のｎ個の副処理回路、ｍ行目のｎ個の副処理回路及び１列目のｍ個の副処理回路のみを含み、即ち、当該ｋ個の副処理回路は複数の副処理回路のうちの、主処理回路に直接的に接続された副処理回路である。
【０２４８】
ｋ個の副処理回路は、前記主処理回路と複数の副処理回路の間にデータ及びコマンドを転送するために用いられる。
【０２４９】
選択可能で、図１５に示すように、当該主処理回路は、変換処理回路１１０、活性化処理回路１１１及び加算処理回路１１２の１種又は任意の組み合わせをさらに含んでもよく、変換処理回路１１０は、主処理回路の受信したデータブロック又は中間結果に対して第１データ構造と第２データ構造の相互変換（例えば、連続データと離散データの変換）を実行し、又は主処理回路の受信したデータブロック又は中間結果に対して第１データタイプと第２データタイプの相互変換（例えば、固定小数点型と浮動小数点型の変換）を実行するために用いられ、活性化処理回路１１１は、主処理回路内のデータの活性化演算を実行するために用いられ、加算処理回路１１２は、加算演算又は累積演算を実行するために用いられる。
【０２５０】
前記主処理回路は、前記入力ニューロンをブロードキャストデータとして決定し、重み値を分配データとして決定し、分配データを複数のデータブロックに配分し、前記複数のデータブロックのうちの少なくとも１つのデータブロック及び複数の演算コマンドのうちの少なくとも１つの演算コマンドを前記副処理回路に送信するために用いられ、前記複数の副処理回路は、当該演算コマンドに従って、受信したデータブロックに演算を実行して中間結果を得、演算結果を前記主処理回路に伝送するために用いられ、前記主処理回路は、複数の副処理回路の送信した中間結果に処理を行って当該計算コマンドの結果を得、当該計算コマンドの結果を前記コントローラユニットに送信するために用いられる。
【０２５１】
前記副処理回路は、乗算処理回路を含み、前記乗算処理回路は、受信されたデータブロックに乗算を実行して乗算結果を得るために用いられ、選択可能で、副処理回路は、転送処理回路をさらに含んでもよく、前記転送処理回路は、受信されたデータブロック又は乗算結果を転送するために用いられる。
【０２５２】
選択可能で、副処理回路は、累積処理回路をさらに含んでもよく、前記累積処理回路は、当該乗算結果に累積演算を実行して当該中間結果を得るために用いられる。
【０２５３】
別の一実施例では、当該演算コマンドは行列と行列を掛けるコマンド、累積コマンド、活性化コマンド等の計算コマンドである。
【０２５４】
次に、ニューラルネットワーク演算コマンドを用いて、図１に示す計算装置の計算方法を具体的に説明する。ニューラルネットワーク演算コマンドについて、実際に実行する算式は、ｓ＝ｓ（Σｗｘｉ＋ｂ）であってもよく、即ち、重み値ｗと入力データｘｉを乗算したものの和を求め、バイアスｂを加算して活性化演算ｓ（ｈ）を行って、最終的な出力結果ｓを得る。
【０２５５】
選択可能な一実施形態では、図１６に示すように、前記演算ユニットは、ツリー型モジュール４０を含み、前記ツリー型モジュールは、１つのルートポート４０１と、複数の分岐ポート４０４とを含み、前記ツリー型モジュールのルートポートは前記主処理回路に接続され、前記ツリー型モジュールの複数の分岐ポートは、それぞれ、複数の副処理回路のうちの１つの副処理回路に接続され、上記のツリー型モジュールは送受信機能を有し、例えば、図１６に示すように、当該ツリー型モジュールは送信機能を有し、図１７に示すように、当該ツリー型モジュールは受信機能を有する。
【０２５６】
前記ツリー型モジュールは、前記主処理回路と前記複数の副処理回路の間にデータブロック、重み値及び演算コマンドを転送するために用いられる。
【０２５７】
選択可能で、当該ツリー型モジュールは計算装置の選択可能な結果であり、少なくとも１層のノードを含んでもよく、当該ノードは転送機能を有する線形構造であり、当該ノード自体は計算機能を有しなくてもよい。ツリー型モジュールがノードをゼロ層有する場合に、当該ツリー型モジュールを必要としない。
【０２５８】
選択可能で、当該ツリー型モジュールはｎ分木構造、例えば、図１８に示す二分木構造であってもよいし、当然ながら三分木構造であってもよく、当該ｎは２以上の整数であってもよい。本願の実施形態では上記のｎの値を具体的に限定せず、上記の層数は２であってもよく、副処理回路は最後から２番目の層のノード以外の層のノードに接続されてもよく、例えば、図１８に示すように、最後の層のノードに接続されてもよい。
【０２５９】
選択可能で、上記の演算ユニットには独立的なキャッシュが含まれてもよく、図１９に示すように、ニューロンキャッシュユニットを含んでもよく、当該ニューロンキャッシュユニット６３は当該副処理回路の入力ニューロンベクトルデータ及び出力ニューロン値データをキャッシュする。
【０２６０】
図２０に示すように、当該演算ユニットは、当該副処理回路の計算中に必要な重み値データをキャッシュするための重み値キャッシュユニット６４をさらに含んでもよい。
【０２６１】
選択可能な一実施例では、図２１に示すように、演算ユニット１２は分岐処理回路１０３を含んでもよく、その具体的な接続構造は図２１に示すとおりであり、ここで、主処理回路１０１は（１つ又は複数の）分岐処理回路１０３に接続され、分岐処理回路１０３は１つ又は複数の副処理回路１０２に接続され、分岐処理回路１０３は、主処理回路１０１と副処理回路１０２の間のデータ又はコマンドの転送を実行するために用いられる。
【０２６２】
本願は、ニューラルネットワーク演算装置であって、１つ又は複数の本願に係る計算装置を含み、他の処理装置から演算対象データ及び制御情報を取得し、指定された機械学習演算を実行し、実行結果をＩ／Ｏインタフェースによって周辺装置に伝送するためのニューラルネットワーク演算装置をさらに提供する。周辺装置は、例えば、カメラ、表示装置、マウス、キーボード、ネットワークアダプタカード、ｗｉｆｉインタフェース、サーバである。１つ以上の計算装置を含む場合に、計算装置間は特定の構造によってリンクされてデータを伝送することができ、例えば、ＰＣＩＥバスを介して互いに接続されてデータを伝送することで、規模がより大きな機械学習において演算をサポートする。このときに、１つの制御システムを共有してもよいし、それぞれ独立的に制御システムを有してもよく、メモリを共有してもよいし、各アクセラレータはそれぞれメモリを有してもよい。また、その相互の接続方式は任意の相互接続トポロジであってもよい。
【０２６３】
当該ニューラルネットワーク演算装置は良い互換性を有し、ＰＣＩＥインタフェースを介して様々なタイプのサーバに接続されることは可能である。
【０２６４】
本願は、上記のニューラルネットワーク演算装置と、相互接続共通インタフェースと、他の処理装置とを含む組合せ処理装置をさらに提供する。ニューラルネットワーク演算装置が他の処理装置とインタラクションを行うことにより、協働してユーザが指定した操作を完了する。図２２は組合せ処理装置の模式図である。
【０２６５】
他の処理装置は、中央プロセッサＣＰＵ、グラフィックプロセッサＧＰＵ、ニューラルネットワークプロセッサ等の汎用／専用プロセッサの１種以上のプロセッサタイプを含む。他の処理装置に含まれるプロセッサの数量を限定しない。他の処理装置は、ニューラルネットワーク演算装置と外部データ及び制御とのインタフェースとして、データ転送を含み、本ニューラルネットワーク演算装置の起動、停止等の基本制御を行う。他の処理装置はニューラルネットワーク演算装置と協働して演算タスクを行うようにしてもよい。
【０２６６】
相互接続共通インタフェースは、前記ニューラルネットワーク演算装置と他の処理装置との間にデータ及び制御コマンドを伝送するために用いられる。当該ニューラルネットワーク演算装置は他の処理装置から必要な入力データを取得して、ニューラルネットワーク演算装置のチップ上の記憶装置に書き込み、他の処理装置から制御コマンドを取得して、ニューラルネットワーク演算装置のチップ上の制御キャッシュに書き込んでもよいし、ニューラルネットワーク演算装置の記憶モジュールからデータを読み取って他の処理装置に伝送してもよい。
【０２６７】
選択可能で、図２３に示すように、当該構造は記憶装置をさらに含んでもよく、記憶装置は前記ニューラルネットワーク演算装置及び前記他の処理装置にそれぞれ接続される。記憶装置は前記ニューラルネットワーク演算装置及び前記他の処理装置のデータを保存するために用いられ、特に、演算必要なデータのうち本ニューラルネットワーク演算装置又は他の処理装置の内部メモリに全てを保存できないデータに適する。
【０２６８】
当該組合せ処理装置は、携帯電話、ロボット、ドローン、ビデオ監視装置等装置のＳＯＣシステムオンチップとすることができ、制御部分のコア面積を効果的に減らし、処理速度を向上させ、全体的な消費パワーを低減することができる。この場合に、当該組合せ処理装置の相互接続共通インタフェースは装置のいくつかのデバイスに接続される。いくつかのデバイスは、例えばカメラ、表示装置、マウス、キーボード、ネットワークアダプタカード、ｗｉｆｉインタフェースである。
【０２６９】
本願は、いくつかの実施例で、上記のニューラルネットワーク演算装置又は組合せ処理装置を含むチップをさらに提案する。
【０２７０】
本願は、いくつかの実施例で、上記のチップを含むチップパッケージ構造をさらに提案する。
【０２７１】
本願は、いくつかの実施例で、上記のチップパッケージ構造を含む回路基板カードをさらに提案する。図２４を参照すると、図２４は回路基板カードを提供し、上記の回路基板カードは上記のチップ３８９以外に、他の付帯デバイスを含んでもよく、当該付帯デバイスは、メモリデバイス３９０、インタフェース装置３９１、コントロールデバイス３９２を含むが、それらに限られない。
前記メモリデバイス３９０はバスを介して前記チップパッケージ構造内のチップに接続され、データを記憶するために用いられる。前記メモリデバイスは、複数のグループの記憶ユニット３９３を含んでもよい。各グループの前記記憶ユニットはバスを介して前記チップに接続される。なお、各グループの前記記憶ユニットはＤＤＲ  ＳＤＲＡＭ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  ＳＤＲＡＭ、ダブルデータレート同期ダイナミックランダムアクセスメモリ）であってもよいことを理解されたい。
【０２７２】
ＤＤＲはクロック周波数を引き上げなくてもＳＤＲＡＭの速度を倍増することができる。ＤＤＲではクロックパルスの立ち上がりエッジ及び立ち下がりエッジにおいてデータを読み取ることが認められる。ＤＤＲの速度は標準的なＳＤＲＡＭの２倍である。一実施例では、前記記憶装置は４つのグループの前記記憶ユニットを含んでもよい。各グループの前記記憶ユニットは複数のＤＤＲ４パーティクル（チップ）を含んでもよい。一実施例では、前記チップの内部に４つの７２ビットＤＤＲ４コントローラが含まれてもよく、上記の７２ビットＤＤＲ４コントローラにおいて６４ビット（ｂｉｔ）はデータ伝送のために、８ビット（ｂｉｔ）はＥＣＣ検証のために用いられる。なお、各グループの前記記憶ユニットにＤＤＲ４−３１２００パーティクルが用いられる場合に、データ伝送の理論帯域幅は２５１，６００ＭＢ／ｓに達し得ることを理解されたい。
【０２７３】
一実施例では、各グループの前記記憶ユニットは並列して設けられた複数のダブルデータレート同期ダイナミックランダムアクセスメモリを含む。ＤＤＲは１つのクロック周期においてデータを２回伝送することができる。前記チップにＤＤＲを制御するコントローラが設けられ、前記コントローラは各前記記憶ユニットのデータ伝送及びデータ記憶を制御するために用いられる。
【０２７４】
前記インタフェース装置は前記チップパッケージ構造内のチップに電気的に接続される。前記インタフェース装置は前記チップと外部装置（例えば、サーバ又はコンピュータ）の間のデータ伝送を実現するために用いられる。例えば、一実施例では、前記インタフェース装置は標準的なＰＣＩＥインタフェースであってもよい。例えば、処理対象データはサーバにより標準的なＰＣＩＥインタフェースを介して前記チップに伝送されることにより、データの移行を実現する。選択可能で、ＰＣＩＥ  ３．０×１６インタフェースを用いて伝送する場合に、理論帯域幅は１１６，０００ＭＢ／ｓに達し得る。別の実施例では、前記インタフェース装置は他のインタフェースであってもよく、本願では上記の他のインタフェースの形態を具体的に限定せず、前記インタフェースユニットが移行機能を実現できるものであればよい。また、前記チップの計算結果は依然として前記インタフェース装置によって外部装置（例えば、サーバ）に返送される。
【０２７５】
前記コントロールデバイスは前記チップに電気的に接続される。前記コントロールデバイスは前記チップの状態を監視するために用いられる。具体的には、前記チップはＳＰＩインタフェースを介して前記コントロールデバイスに電気的に接続されてもよい。前記コントロールデバイスはマイクロコントロールユニット（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ、ＭＣＵ）を含んでもよい。前記チップは複数の処理チップと、複数のプロセッサコア又は複数の処理回路を含んでもよく、複数の負荷を駆動することができる。したがって、前記チップは多負荷や低負荷など、異なる動作状態にあってもよい。前記制御装置により、前記チップのうちの複数の処理チップ、複数のプロセッサコア又は複数の処理回路の動作状態に対する調節を実現できる。
【０２７６】
いくつかの実施例では、上記の回路基板カードを含む電子機器を提案する。
【０２７７】
電子機器は、データ処理装置、ロボット、パソコン、プリンタ、スキャナ、タブレットパソコン、スマート端末、携帯電話、ドライブレコーダ、ナビゲータ、センサ、監視カメラ、サーバ、クラウドサーバ、カメラ、ビデオカメラ、プロジェクタ、腕時計、ヘッドフォン、モバイルストレージ、ウェアラブル装置、交通機関、家電製品、及び／又は医療装置を含む。
【０２７８】
前記交通機関は飛行機、クルーズ船及び／又は車両を含み、前記家電製品はテレビ、エアコン、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスストーブ、レンジフードを含み、前記医療装置は核磁気共鳴装置、Ｂモード超音波装置及び／又は心電計を含む。
【０２７９】
一実施例では、図２５に示すように、ネットワークオンチップによるデータ処理方法を提供し、当該方法は以下のステップを含む。
ステップ２０２、第１計算装置が記憶装置にアクセスすることにより、第１演算データを取得する。
【０２８０】
ここで、第１計算装置は、演算ユニットと、コントローラユニットとを含み、演算ユニットは、１つの主処理回路と、複数の副処理回路とを含む。具体的には、第１計算装置のコントローラユニットが記憶装置から第１演算データ及び計算コマンドを取得する。
【０２８１】
ステップ２０４、前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得る。
【０２８２】
ここで、記憶装置から読み取られた第１演算データに対し、対応する計算コマンドに基づいて第１計算装置において演算を実行して、第１演算結果を得る。
【０２８３】
ステップ２０６、前記第１演算結果を第２計算装置に送信する。
【０２８４】
ここで、第１計算装置は第２計算装置に対して確立した通信チャネルによって、第１計算装置のコントローラユニットにより第１演算結果を第２計算装置に送信する。選択可能で、第１演算結果を第２計算装置に送信してもよいし、第１演算結果を記憶装置に送信してもよい。
【０２８５】
さらに、本実施例によるネットワークオンチップによるデータ処理方法は、図１〜５に示すいずれかのネットワークオンチップ処理システムに応用することができる。
【０２８６】
上記のネットワークオンチップによるデータ処理方法は、第１計算装置による第１演算結果を第２計算装置に送信することにより、複数の計算装置間のデータ伝送を実現することができ、また、演算データの繰り返し使用により、計算装置が記憶装置に複数回アクセスすることで帯域幅オーバーヘッドが大きいことを避けることができ、当該方法は演算データ及び中間演算結果を合理的に利用することができ、データの処理効率が向上する。
【０２８７】
その一実施例では、図２６に示すように、ネットワークオンチップによるデータ処理方法を提供し、当該方法は以下のステップを含む。
ステップ３０２、第１計算装置が記憶装置にアクセスすることにより、第１演算データを取得する。
【０２８８】
ここで、計算装置は、演算ユニットと、コントローラユニットとを含み、演算ユニットは、１つの主処理回路と、複数の副処理回路とを含む。具体的には、第１計算装置のコントローラユニットが記憶装置から第１演算データ及び計算コマンドを取得する。
【０２８９】
ステップ３０４、前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得る。
【０２９０】
ここで、記憶装置から読み取られた第１演算データに対し、対応する計算コマンドに基づいて第１計算装置において演算を実行して、第１演算結果を得る。
【０２９１】
ステップ３０６、前記第１演算結果を第２計算装置に送信する。
【０２９２】
ここで、第１計算装置は第２計算装置に対して確立した通信チャネルによって、第１計算装置のコントローラユニットにより第１演算結果を第２計算装置に送信する。
【０２９３】
ステップ３０８、前記第２計算装置が前記記憶装置にアクセスすることにより、第２演算データを取得する。
【０２９４】
ここで、第２計算装置は、演算ユニットと、コントローラユニットとを含み、演算ユニットは、１つの主処理回路と、複数の副処理回路とを含む。具体的には、第２計算装置のコントローラユニットが記憶装置から第２演算データ及び計算コマンドを取得する。
【０２９５】
ステップ３１０、前記第２計算装置が前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得る。
【０２９６】
ここで、記憶装置から読み取られた第２演算データ及び第１計算装置から受信された第１演算結果に対し、対応する計算コマンドに基づいて第１計算装置において演算を実行して、第２演算結果を得る。
【０２９７】
さらに、本実施例によるネットワークオンチップによるデータ処理方法は、図１〜５に示すいずれかのネットワークオンチップ処理システムに応用することができる。
【０２９８】
上記のネットワークオンチップによるデータ処理方法は、第１計算装置による第１演算結果を第２計算装置に送信して、第２計算装置が当該第１演算結果を利用して再度演算を実行することで、演算データの繰り返し使用を実現でき、当該方法は演算データ及び中間演算結果を合理的に利用することができ、データの処理効率が向上する。
【０２９９】
その一実施例では、図２６に示すネットワークオンチップによるデータ処理方法を図９に示すネットワークオンチップ処理システム１９００に応用し、ここで、計算装置１９０２から計算装置１９０５はいずれも所在のネットワークオンチップ処理モジュール中の記憶装置１９０１に接続され、且つ計算装置１９０２から計算装置１９０５のうちの任意の２つの計算装置は直接的に接続される。
【０３００】
例えば、行列の掛け算を実行し、
【数１】
2021526277.tif 000005
に対し、
【数２】
2021526277.tif 000006
を算出し、
ここで、ｃ００＝ａ００＊ｂ００＋ａ０１＊ｂ１０、
ｃ０１＝ａ００＊ｂ０１＋ａ０１＊ｂ１１、
ｃ１０＝ａ１０＊ｂ００＋ａ１１＊ｂ１０、
ｃ１１＝ａ１０＊ｂ０１＋ａ１１＊ｂ１１に対し、
まず、時間の分割を実行して、３つの期間を得る。
【０３０１】
次に、第１期間において、計算装置１９０２から計算装置１９０５は同時に所在のネットワークオンチップ処理モジュール中の記憶装置１９０１にアクセスする。
【０３０２】
具体的には、計算装置１９０２が記憶装置１９０１から第１演算データａ００及びｂ００を読み取り、計算装置１９０３が記憶装置１９０１から第１演算データａ０１及びｂ１１を読み取り、計算装置１９０４が記憶装置１９０１から第１演算データａ１１及びｂ１０を読み取り、計算装置１９０５が記憶装置１９０１から第１演算データａ１０及びｂ０１を読み取る。
【０３０３】
さらに、計算装置１９０２において、読み取られた第１演算データａ００及びｂ００に演算を実行して、第１演算結果ａ００＊ｂ００を得、計算装置１９０３において、読み取られた第１演算データａ０１及びｂ１１に演算を実行して、第１演算結果ａ０１＊ｂ１１を得、計算装置１９０４において、読み取られた第１演算データａ１１及びｂ１０に演算を実行して、第１演算結果ａ１１＊ｂ１０を得、計算装置１９０５において、読み取られた第１演算データａ１０及びｂ０１に演算を実行して、第１演算結果ａ１０＊ｂ０１を得る。
【０３０４】
次に、第２期間において、計算装置１９０２が計算装置１９０３から第１演算データａ０１を、計算装置１９０４から第１演算データｂ１０をそれぞれ読み取り、演算して第２演算結果ａ０１＊ｂ１０を得、計算装置１９０３が計算装置１９０２から第１演算データａ００を、計算装置１９０５から第１演算データｂ０１をそれぞれ読み取り、演算して第２演算結果ａ００＊ｂ０１を得、計算装置１９０４が計算装置１９０５から第１演算データａ１０を、計算装置１９０２から第１演算データｂ００をそれぞれ読み取り、演算して第２演算結果ａ１０＊ｂ００を得、計算装置１９０５が計算装置１９０４から第１演算データａ１１を、計算装置１９０３から第１演算データｂ１１をそれぞれ読み取り、演算して第２演算結果ａ１１＊ｂ１１を得る。
【０３０５】
次に、第３期間において、計算装置１９０２が第１演算結果ａ００＊ｂ００及び第２演算結果ａ０１＊ｂ１０に演算を実行して、第３演算結果ｃ００＝ａ００＊ｂ００＋ａ０１＊ｂ１０を得、第３演算結果ｃ００を記憶装置１９０２に送信し、計算装置１９０３が第１演算結果ａ０１＊ｂ１１及び第２演算結果ａ００＊ｂ０１に演算を実行して、第３演算結果ｃ０１＝ａ００＊ｂ０１＋ａ０１＊ｂ１１を得、第３演算結果ｃ０１を記憶装置１９０２に送信し、計算装置１９０４が第１演算結果ａ１１＊ｂ１０及び第２演算結果ａ１０＊ｂ００に演算を実行して、第３演算結果ｃ１０＝ａ１０＊ｂ００＋ａ１１＊ｂ１０を得、第３演算結果ｃ１０を記憶装置１９０２に送信し、計算装置１９０５が第１演算結果ａ１０＊ｂ０１及び第２演算結果ａ１１＊ｂ１１に演算を実行して、第３演算結果ｃ１１＝ａ１０＊ｂ０１＋ａ１１＊ｂ１１を得、第３演算結果ｃ１１を記憶装置１９０２に送信する。
【０３０６】
その一実施例では、図２７に示すように、ネットワークオンチップによるデータ処理方法を提供し、当該方法は以下のステップを含む。
ステップ４０２、第１計算装置グループが記憶装置にアクセスすることにより、第１演算データを取得し、ここで、前記第１計算装置グループは複数の第１計算装置を含む。
【０３０７】
ここで、第１計算装置グループｃｌｕｓｔｅｒ１中の各第１計算装置は、演算ユニットと、コントローラユニットとを含み、演算ユニットは、１つの主処理回路と、複数の副処理回路とを含む。具体的には、ｃｌｕｓｔｅｒ１中のコントローラユニットが記憶装置から第１演算データ及び計算コマンドを取得する。
【０３０８】
選択可能で、ｃｌｕｓｔｅｒ１中の複数の第１計算装置は同時に記憶装置にアクセスし、各第１計算装置が記憶装置からｃｌｕｓｔｅｒ１に必要なデータの一部を読み取り、これらのデータはｃｌｕｓｔｅｒ１内において伝送される。選択可能で、ｃｌｕｓｔｅｒ１中の１つ又は複数の第１計算装置が記憶装置にアクセスすることができ、残りの第１計算装置はグループ内通信しかできないように指定する。
【０３０９】
ステップ４０４、前記第１計算装置グループが前記複数の第１演算データに演算を実行することにより、第１演算結果を得る。
【０３１０】
ここで、複数の第１演算データに対して、対応する計算コマンドに基づいて、複数の第１計算装置において演算、転送を行うことにより、第１演算結果を得る。
【０３１１】
ステップ４０６、前記第１演算結果を第２計算装置グループに送信する。
【０３１２】
ここで、ｃｌｕｓｔｅｒ１は第２計算装置グループｃｌｕｓｔｅｒ２に対して確立した通信チャネルによって、ｃｌｕｓｔｅｒ１中のコントローラユニットにより第１演算結果をｃｌｕｓｔｅｒ２に送信する。
【０３１３】
選択可能で、第１演算結果をｃｌｕｓｔｅｒ２に送信してもよいし、第１演算結果を記憶装置に送信してもよい。選択可能で、ｃｌｕｓｔｅｒ１におけるｃｌｕｓｔｅｒ２に対して通信チャネルが確立された任意の１つの第１計算装置により、第１演算結果をｃｌｕｓｔｅｒ２に送信する。選択可能で、ｃｌｕｓｔｅｒ１は第１演算結果をｃｌｕｓｔｅｒ２におけるｃｌｕｓｔｅｒ１に対して通信チャネルが確立された任意の１つの第２計算装置に送信するようにしてもよい。
【０３１４】
さらに、本実施例によるネットワークオンチップによるデータ処理方法は、図６〜８に示すいずれかのネットワークオンチップ処理システムに応用することができる。
【０３１５】
上記のネットワークオンチップによるデータ処理方法は、複数の計算装置グループ同士はグループ内通信だけでなく、グループ間のデータ伝送を実現することができ、当該方法は演算データ及び中間演算結果を合理的に利用することができ、データの処理効率が向上する。
【０３１６】
その一実施例では、図２８に示すように、ネットワークオンチップによるデータ処理方法を提供し、当該方法は以下のステップを含む。
ステップ５０２、第１計算装置グループが記憶装置にアクセスすることにより、第１演算データを取得し、ここで、前記第１計算装置グループは複数の第１計算装置を含む。
【０３１７】
ここで、第１計算装置グループｃｌｕｓｔｅｒ１中の各第１計算装置は、演算ユニットと、コントローラユニットとを含み、演算ユニットは、１つの主処理回路と、複数の副処理回路とを含む。具体的には、ｃｌｕｓｔｅｒ１中のコントローラユニットが記憶装置から第１演算データ及び計算コマンドを取得する。
【０３１８】
選択可能で、ｃｌｕｓｔｅｒ１中の複数の第１計算装置は同時に記憶装置にアクセスし、各第１計算装置が記憶装置からｃｌｕｓｔｅｒ１に必要なデータの一部を読み取り、これらのデータはｃｌｕｓｔｅｒ１内において伝送される。選択可能で、ｃｌｕｓｔｅｒ１中の１つ又は複数の第１計算装置が記憶装置にアクセスすることができ、残りの第１計算装置はグループ内通信しかできないように指定する。
【０３１９】
ステップ５０４、前記第１計算装置グループが前記複数の第１演算データに演算を実行することにより、第１演算結果を得る。
【０３２０】
ここで、複数の第１演算データに対して、対応する計算コマンドに基づいて、複数の第１計算装置において演算、転送を行うことにより、第１演算結果を得る。
【０３２１】
ステップ５０６、前記第１演算結果を第２計算装置グループに送信する。
【０３２２】
ここで、ｃｌｕｓｔｅｒ１は第２計算装置グループｃｌｕｓｔｅｒ２に対して確立した通信チャネルによって、ｃｌｕｓｔｅｒ１中のコントローラユニットにより第１演算結果をｃｌｕｓｔｅｒ２に送信する。
【０３２３】
選択可能で、ｃｌｕｓｔｅｒ１におけるｃｌｕｓｔｅｒ２に対して通信チャネルが確立された任意の１つの第１計算装置により、第１演算結果をｃｌｕｓｔｅｒ２に送信する。選択可能で、ｃｌｕｓｔｅｒ１は第１演算結果をｃｌｕｓｔｅｒ２におけるｃｌｕｓｔｅｒ１に対して通信チャネルが確立された任意の１つの第２計算装置に送信するようにしてもよい。
【０３２４】
ステップ５０８、前記第２計算装置グループが前記記憶装置にアクセスすることにより、第２演算データを取得し、ここで、前記第２計算装置グループは複数の第２計算装置を含む。
【０３２５】
ここで、ｃｌｕｓｔｅｒ２中の各第１計算装置は、演算ユニットと、コントローラユニットとを含み、演算ユニットは、１つの主処理回路と、複数の副処理回路とを含む。具体的には、ｃｌｕｓｔｅｒ２中のコントローラユニットが記憶装置から第２演算データ及び計算コマンドを取得する。
【０３２６】
選択可能で、ｃｌｕｓｔｅｒ２中の複数の第２計算装置は同時に記憶装置にアクセスし、各第２計算装置が記憶装置からｃｌｕｓｔｅｒ２に必要なデータの一部を読み取り、これらのデータはｃｌｕｓｔｅｒ２内において伝送される。選択可能で、ｃｌｕｓｔｅｒ２中の１つ又は複数の第２計算装置が記憶装置にアクセスすることができ、残りの第２計算装置はグループ内通信しかできないように指定する。
【０３２７】
ステップ５１０、前記第２計算装置グループが前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得る。
【０３２８】
ここで、記憶装置から読み取られた第２演算データ及び第１計算装置グループから受信された第１演算結果に対し、対応する計算コマンドに基づいて複数の第２計算装置において演算、転送を行うことにより、第２演算結果を得る。
【０３２９】
さらに、本実施例によるネットワークオンチップによるデータ処理方法は、図６〜８に示すいずれかのネットワークオンチップ処理システムに応用することができる。
【０３３０】
上記のネットワークオンチップによるデータ処理方法において、第１計算装置グループ中の第１演算結果を第２計算装置グループに送信し、第２計算装置グループが当該第１演算結果を利用して再度演算を実行することで、演算データの繰り返し使用を実現でき、当該方法は演算データ及び中間演算結果を合理的に利用することができ、データの処理効率が向上する。
【０３３１】
その一実施例では、図２９に示すように、ネットワークオンチップによるデータ処理方法を提供し、当該方法は以下のステップを含む。
ステップ６０２、第１ネットワークオンチップ処理モジュールにより第１演算データを取得し、ここで、前記第１ネットワークオンチップ処理モジュールは第１記憶装置と、複数の第１計算装置とを含み、前記第１演算データは前記第１記憶装置に記憶される。
【０３３２】
ここで、第１ネットワークオンチップ処理モジュール中の各第１計算装置は、演算ユニットと、コントローラユニットとを含み、演算ユニットは、１つの主処理回路と、複数の副処理回路とを含む。具体的には、第１ネットワークオンチップ処理モジュール中のコントローラユニットが第１記憶装置から第１演算データ及び計算コマンドを取得する。
【０３３３】
選択可能で、第１ネットワークオンチップ処理モジュール中の複数の第１計算装置は同時に第１記憶装置にアクセスし、各第１計算装置が第１記憶装置から当該第１ネットワークオンチップ処理モジュールに必要なデータの一部を読み取り、これらのデータは第１ネットワークオンチップ処理モジュール内において伝送される。
【０３３４】
選択可能で、第１ネットワークオンチップ処理モジュール中の１つ又は複数の第１計算装置が第１記憶装置にアクセスすることができ、残りの第１計算装置はグループ内通信しかできないように指定する。具体的には、第１ネットワークオンチップ処理モジュールが処理すべき演算データはいずれも第１記憶装置に記憶される。
【０３３５】
ステップ６０４、前記第１ネットワークオンチップ処理モジュールの複数の第１計算装置が、前記第１演算データに演算を実行することにより、第１演算結果を得る。
【０３３６】
ここで、複数の第１演算データに対して、対応する計算コマンドに基づいて、複数の第１計算装置において演算、転送を行うことにより、第１演算結果を得る。
【０３３７】
ステップ６０６、前記第１演算結果を第２ネットワークオンチップ処理モジュールに送信する。
【０３３８】
ここで、第１ネットワークオンチップ処理モジュールは第２ネットワークオンチップ処理モジュールに対して確立した通信チャネルによって、第１ネットワークオンチップ処理モジュール中のコントローラユニットにより第１演算結果を第２ネットワークオンチップ処理モジュールに送信する。
【０３３９】
選択可能で、第１演算結果を第２ネットワークオンチップ処理モジュールに送信してもよいし、第１演算結果を第１記憶装置に送信してもよい。選択可能で、第１ネットワークオンチップ処理モジュールにおける第２ネットワークオンチップ処理モジュールに対して通信チャネルが確立された任意の１つの第１計算装置により、第１演算結果を第２ネットワークオンチップ処理モジュールに送信する。選択可能で、第１ネットワークオンチップ処理モジュールは第１演算結果を、第２ネットワークオンチップ処理モジュールにおける第１ネットワークオンチップ処理モジュールに対して通信チャネルが確立された任意の１つの第２計算装置に送信するようにしてもよい。
【０３４０】
さらに、本実施例によるネットワークオンチップによるデータ処理方法は、図９〜１２に示すいずれかのネットワークオンチップ処理システムに応用することができる。
【０３４１】
上記のネットワークオンチップによるデータ処理方法において、複数のネットワークオンチップ処理モジュールの間にモジュール内通信だけでなく、モジュール間のデータ伝送を実現することができ、当該方法は演算データ及び中間演算結果を合理的に利用することができ、データの処理効率が向上する。
【０３４２】
その一実施例では、図３０に示すように、ネットワークオンチップによるデータ処理方法を提供し、当該方法は以下のステップを含む。
ステップ７０２、第１ネットワークオンチップ処理モジュールにより第１演算データを取得し、ここで、前記第１ネットワークオンチップ処理モジュールは第１記憶装置と、複数の第１計算装置とを含み、前記第１演算データは前記第１記憶装置に記憶される。
【０３４３】
ここで、第１ネットワークオンチップ処理モジュール中の各第１計算装置は、演算ユニットと、コントローラユニットとを含み、演算ユニットは、１つの主処理回路と、複数の副処理回路とを含む。具体的には、第１ネットワークオンチップ処理モジュール中のコントローラユニットが第１記憶装置から第１演算データ及び計算コマンドを取得する。
【０３４４】
選択可能で、第１ネットワークオンチップ処理モジュール中の複数の第１計算装置は同時に第１記憶装置にアクセスし、各第１計算装置が第１記憶装置から当該第１ネットワークオンチップ処理モジュールに必要なデータの一部を読み取り、これらのデータは第１ネットワークオンチップ処理モジュール内において伝送される。
【０３４５】
選択可能で、第１ネットワークオンチップ処理モジュール中の１つ又は複数の第１計算装置が第１記憶装置にアクセスすることができ、残りの第１計算装置はグループ内通信しかできないように指定する。具体的には、第１ネットワークオンチップ処理モジュールが処理すべき演算データはいずれも第１記憶装置に記憶される。
【０３４６】
ステップ７０４、前記第１ネットワークオンチップ処理モジュールの複数の第１計算装置が、前記第１演算データに演算を実行することにより、第１演算結果を得る。
【０３４７】
ここで、複数の第１演算データに対して、対応する計算コマンドに基づいて、複数の第１計算装置において演算、転送を行うことにより、第１演算結果を得る。
【０３４８】
ステップ７０６、前記第１演算結果を第２ネットワークオンチップ処理モジュールに送信する。
【０３４９】
ここで、第１ネットワークオンチップ処理モジュールは第２ネットワークオンチップ処理モジュールに対して確立した通信チャネルによって、第１ネットワークオンチップ処理モジュール中のコントローラユニットにより第１演算結果を第２ネットワークオンチップ処理モジュールに送信する。
【０３５０】
選択可能で、第１ネットワークオンチップ処理モジュールにおける第２ネットワークオンチップ処理モジュールに対して通信チャネルが確立された任意の１つの第１計算装置により、第１演算結果を第２ネットワークオンチップ処理モジュールに送信する。選択可能で、第１ネットワークオンチップ処理モジュールは第１演算結果を、第２ネットワークオンチップ処理モジュールにおける第１ネットワークオンチップ処理モジュールに対して通信チャネルが確立された任意の１つの第２計算装置に送信するようにしてもよい。
【０３５１】
ステップ７０８、前記第２ネットワークオンチップ処理モジュールにより第２演算データを取得し、ここで、前記第２ネットワークオンチップ処理モジュールは第２記憶装置と、複数の第２計算装置とを含み、前記第２演算データは前記第２記憶装置に記憶される。
【０３５２】
ここで、第２ネットワークオンチップ処理モジュール中の各第２計算装置は、演算ユニットと、コントローラユニットとを含み、演算ユニットは、１つの主処理回路と、複数の副処理回路とを含む。具体的には、第２ネットワークオンチップ処理モジュール中のコントローラユニットが第２記憶装置から第２演算データ及び計算コマンドを取得する。
【０３５３】
選択可能で、第２ネットワークオンチップ処理モジュール中の複数の第２計算装置は同時に第２記憶装置にアクセスし、各第２計算装置が第２記憶装置から当該第２ネットワークオンチップ処理モジュールに必要なデータの一部を読み取り、これらのデータは第２ネットワークオンチップ処理モジュール内において伝送される。
【０３５４】
選択可能で、第２ネットワークオンチップ処理モジュール中の１つ又は複数の第２計算装置が第２記憶装置にアクセスすることができ、残りの第２計算装置はグループ内通信しかできないように指定する。具体的には、第２ネットワークオンチップ処理モジュールが処理すべき演算データはいずれも第２記憶装置に記憶される。
【０３５５】
ステップ７１０、前記第２ネットワークオンチップ処理モジュールの複数の第２計算装置が、前記第２演算データとび前記第１演算結果に演算を実行することにより、第２演算結果を得る。
【０３５６】
ここで、ステップ７１０は、具体的に、以下のステップを含む。
ステップ７１０２、前記複数の第２計算装置において前記第２演算データと前記第１演算結果に演算を実行することにより、前記第２演算結果を得る。
【０３５７】
具体的には、各第２計算装置は、対応する計算コマンドに基づいて、第２演算データと第１演算結果に演算を実行して、複数の中間結果を得、次に対応する計算コマンドに基づいて、複数の中間結果に演算を実行して、第２演算結果を得るようにしてもよい。
【０３５８】
ステップ７１０４、前記第２演算結果を前記第２記憶装置に記憶する。
【０３５９】
さらに、本実施例によるネットワークオンチップによるデータ処理方法は、図９〜１２に示すいずれかのネットワークオンチップ処理システムに応用することができる。
【０３６０】
上記のネットワークオンチップによるデータ処理方法は、第１ネットワークオンチップ処理システム中の第１演算結果を第２ネットワークオンチップ処理システムに送信して、第２ネットワークオンチップ処理システムが当該第１演算結果を利用して再度演算を実行することで、演算データの繰り返し使用を実現でき、当該方法は演算データ及び中間演算結果を合理的に利用することができ、データの処理効率が向上する。
【０３６１】
本願の実施例によるネットワークオンチップ処理方法は機械学習計算、具体的には、人工ニューラルネットワーク演算に用いることができ、ここで、ネットワークオンチップ処理システム中の演算データは具体的に、入力ニューロンデータと、重み値データとを含んでもよく、ネットワークオンチップ処理システムの演算結果は具体的に、人工ニューラルネットワーク演算の結果、即ち出力ニューロンデータであってもよい。
【０３６２】
ニューラルネットワーク中の演算は、ニューラルネットワーク中のある層の演算であってもよく、多層ニューラルネットワークの場合は、次のように実現する。フォワード演算において、前の層の人工ニューラルネットワークの実行完了後、次の層の演算コマンドでは演算ユニットにおいて算出された出力ニューロンを次の層の入力ニューロンとして演算を実行し（又は、当該出力ニューロンにある操作を行ってから次の層の入力ニューロンとする）、同時に重み値を次の層の重み値に置き換える。バックワード演算において、前の層の人工ニューラルネットワークのバックワード演算の実行完了後、次の層の演算コマンドでは演算ユニットにおいて算出された入力ニューロン勾配を次の層の出力ニューロン勾配として演算を実行し（又は、当該入力ニューロン勾配にある操作を行ってから次の層の出力ニューロン勾配とする）、同時に重み値を次の層の重み値に置き換える。
【０３６３】
上記の機械学習計算はサポートベクターマシン演算、ｋ−近傍（ｋ−ｎｎ）演算、ｋ−平均（ｋ−ｍｅａｎｓ）演算、主成分分析演算等を含んでもよい。次に、説明しやすさのために、人工ニューラルネットワーク演算を例として機械学習計算の詳細を説明する。
【０３６４】
人工ニューラルネットワーク演算については、当該人工ニューラルネットワーク演算は多層の演算を有する場合に、多層の演算において入力ニューロン及び出力ニューロンはニューラルネットワーク全体の入力層中のニューロン及び出力層中のニューロンではなく、ネットワークにおける任意の隣接する２層における、ネットワークフォワード演算の下位層に位置するニューロンは入力ニューロンであり、ネットワークフォワード演算の上位層に位置するニューロンは出力ニューロンである。畳み込みニューラルネットワークを例とすると、畳み込みニューラルネットワークがＬ層を有し、Ｋ＝１，２，…，Ｌ−１であると仮定すると、Ｋ層目及びＫ＋１層目に対し、Ｋ層目を入力層と称し、そのニューロンは前記入力ニューロンであり、Ｋ＋１層目を出力層と称し、そのニューロンは前記出力ニューロンである。即ち、トップ層以外の各層はいずれも入力層として、その次の層は対応する出力層とすることができる。
【０３６５】
選択可能な一実施例では、ニューラルネットワーク演算中の全結合演算を例とすると、プロセスはｙ＝ｆ（ｗｘ＋ｂ）であってもよく、ここで、ｘは入力ニューロン行列、ｗは重み値行列、ｂはバイアススカラーであり、ｆは活性化関数で、具体的には、ｓｉｇｍｏｉｄ関数、ｔａｎｈ、ｒｅｌｕ、ｓｏｆｔｍａｘ関数のうちの任意の一つであってもよい。ここで、二分木構造であり、８つの副処理回路を有すると仮定とすると、次のように実現するようにしてもよい。
コントローラユニットが記憶ユニットから入力ニューロン行列ｘ、重み値行列ｗ及び全結合演算コマンドを取得し、入力ニューロン行列ｘ、重み値行列ｗ及び全結合演算コマンドを主処理回路に伝送し、主処理回路は当該入力ニューロン行列ｘをブロードキャストデータとして決定し、重み値行列ｗを分配データとして決定し、重み値行列ｗを８つのサブ行列に区分し、次に８つのサブ行列をツリー型モジュールによって８つの副処理回路に分配し、入力ニューロン行列ｘを８つの副処理回路にブロードキャストし、副処理回路は並行して８つのサブ行列と入力ニューロン行列ｘの乗算演算と累積演算を実行して８つの中間結果を得、８つの中間結果を主処理回路に送信し、主処理回路は、８つの中間結果をソートしてｗｘの演算結果を得、当該演算結果にバイアスｂ演算を実行した後、活性化操作を実行して最終結果ｙを得、最終結果ｙをコントローラユニットに送信するために用いられ、コントローラユニットは当該最終結果ｙを出力し、又は記憶ユニットに記憶する。
【０３６６】
図１に示す計算装置によるニューラルネットワークフォワード演算コマンドの実行方法は、具体的に以下のとおりであってもよい。
コントローラユニットがコマンド記憶ユニットからニューラルネットワークフォワード演算コマンド、ニューラルネットワーク演算コマンドに対応する操作フィールド及び少なくとも１つの操作コードを抽出して、コントローラユニットは当該操作フィールドをデータアクセスユニットに伝送し、当該少なくとも１つの操作コードを演算ユニットに送信する。
【０３６７】
コントローラユニットが記憶ユニットから当該操作フィールドに対応する重み値ｗ及びバイアスｂを抽出し（ｂが０である場合に、バイアスｂを抽出する必要がない）、重み値ｗ及びバイアスｂを演算ユニットの主処理回路に伝送し、コントローラユニットは記憶ユニットから入力データＸｉを抽出して、当該入力データＸｉを主処理回路に送信する。
【０３６８】
主処理回路は当該少なくとも１つの操作コードに基づいて乗算演算として決定し、入力データＸｉをブロードキャストデータとして決定し、重み値データを分配データとして決定して、重み値ｗをｎ個のデータブロックに区分し、コントローラユニットのコマンド処理ユニットは当該少なくとも１つの操作コードに基づいて乗算コマンド、バイアスコマンド及び累積コマンドを決定し、乗算コマンド、バイアスコマンド及び累積コマンドを主処理回路に送信し、主処理回路は当該乗算コマンド、入力データＸｉをブロードキャストによって複数の副処理回路に送信し、当該ｎ個データブロックを当該複数の副処理回路に分配し（例えば、ｎ個の副処理回路がある場合に、各副処理回路に１つのデータブロックを送信する）、複数の副処理回路は、当該乗算コマンドに従って当該入力データＸｉと受信したデータブロックの乗算演算を実行して中間結果を得、当該中間結果を主処理回路に送信するために用いられ、当該主処理回路は当該累積コマンドに従って複数の副処理回路が送信した中間結果に累積演算を実行して累乗算結果を得、当該バイアスコマンドに従って当該累乗算結果にバイアスｂを加える演算を実行して最終結果を得、当該最終結果を当該コントローラユニットに送信する。
【０３６９】
なお、加算演算と乗算演算の順番は入れ替えてもよい。
【０３７０】
本願による技術的解決手段は、１つのコマンド、即ちニューラルネットワーク演算コマンドだけでニューラルネットワークの乗算演算及びバイアス演算を実現し、ニューラルネットワークにおいて算出された中間結果はいずれも記憶又は抽出する必要がなく、中間データの記憶及び抽出操作が低減されるため、対応する操作ステップを減らし、ニューラルネットワークの計算効果を向上させるという利点を有する。
【０３７１】
情報技術が発展し続けニーズが日々増えるのにつれて、データアクセス及びデータ処理に対する要求がますます高まり、これに伴ってデータを処理及びアクセスする一部のプロセッサの一層の高度化が求められる。汎用プロセッサを例とすると、複数の汎用プロセッサコア（例えば、ＣＰＵコア）からなるマルチコアプロセッサは、その優れた並行計算能力から、主流になる。
【０３７２】
しかしながら、現在、人工ニューラルネットワークが発展し続けるのにつれて、ますます多くのアーキテクチャの機械学習チップが次第に開発されてきており、これらの機械学習チップは動作中にコマンドに基づいてデータアクセスし、又は共有メモリ中のデータを処理する必要がある。データアクセス又は共有メモリ中のデータが多い場合に、機械学習チップのコマンドが複雑になり、コマンドによる共有メモリの読み取りの速度に影響を与え、ニューロンデータの処理効率の低下を招く。
【０３７３】
したがって、機械学習チップによるデータアクセス時のアクセス速度をいかに向上させるかは、当業者が早急に解決すべき技術的課題になる。
【０３７４】
上記の問題を解决するために、本願は以下の技術的解決手段を提供する。
【０３７５】
本願によるデータ処理方法は図３１に示すハードウェア回路に応用することができ、当該回路は、機械学習装置１１と、伝送回路１２と、共有メモリ１３とを含み、機械学習装置１１と前記伝送回路１２、伝送回路１２と共有メモリ１３はいずれもインタフェースを介して接続され、ここで、当該機械学習装置１１、伝送回路１２及び共有メモリ１３並びに当該インタフェースはいずれもハードウェア回路として実現してもよく、例えば、機械学習装置は複数の機械学習ユニット（Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｕｎｉｔ、略称ＭＬＵ）からなる演算機能を有する装置であってもよく、伝送回路はブロードキャストバス（ｂｒｏａｄｃａｓｔ  ｂｕｓ）であってもよく、共有メモリは非揮発性及び／又は揮発性メモリであってもよく、ランダムアクセスメモリ（ＲＡＭ）、高速キャッシュメモリ等を含むが、これらに限定されない。本実施例は上記の特定のハードウェアの形態について限定しない。ここで、伝送回路１２は機械学習装置１１の発したデータ操作信号に基づいて、共有メモリ１３から機械学習装置１１に必要な入力データを取得し、入力データを機械学習装置１１に返すために用いられ、機械学習装置１１は入力データに基づいて機械学習演算を実行して、出力データを得、そして、出力データを新たな入力データとして、伝送回路１２によって共有メモリ１３に伝送してデータを記憶させるために用いられる。
【０３７６】
一実施例では、図３２でデータ処理方法を提供し、本実施例は、伝送回路がデータ操作信号の第１タイプフラグビット及び第２タイプフラグビットに基づいてデータ操作信号のタイプを決定し、決定されたタイプに基づいて特定された対応する操作によってメモリから必要なデータを得ることでアクセス速度を向上させることの具体的な過程に関する。図２に示すように、当該方法は以下を含む。
Ｓ２１０１、内部装置又は外部装置の送信したデータ操作信号を受信し、前記データ操作信号は操作フィールドと、操作コードとを含み、前記操作コードは第１タイプフラグビットを含み、前記操作フィールドは第２タイプフラグビットを含み、前記第１タイプフラグビットは前記データ操作信号がＩ／Ｏコマンドであるか否かを表すために用いられ、前記第２タイプフラグビットは前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであるか否かを表すために用いられる。
【０３７７】
本実施例では、伝送回路は内部装置又は外部装置の送信したデータ操作信号を受信し、当該データ操作信号にデータ操作信号の第１タイプフラグビット及び第２タイプフラグビットが担持されており、ここで、当該内部装置又は外部装置はインタフェースを介して伝送回路に接続された機械学習装置であってもよく、当該機械学習装置は任意のハードウェアとして実現してもよく、例えば、複数のＭＬＵからなる演算機能を有する装置である。ここで、伝送回路は当該データ操作信号に担持されたデータ操作信号の第１タイプフラグビットに基づいて当該データ操作信号の値がＩ／Ｏコマンドであるか否かを決定することができ、第２タイプフラグビットに基づいて当該データ操作信号がＩ／Ｏコマンドの特定のタイプであるか否かを決定することができ、例えば、当該データ操作信号の第１タイプフラグビットの値がＩ／Ｏコマンドであり、第２タイプフラグビットの値が１である場合に、当該データ操作信号はＩ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドである。
【０３７８】
Ｓ２１０２、前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得る。
【０３７９】
上記のステップＳ２１０１で伝送回路が内部装置又は外部装置の送信したデータ操作信号を受信すると、当該データ操作信号のタイプフラグビットに基づいて、伝送回路はメモリ中の操作対象データに対して対応する操作を実行することを決定して、必要な入力データ、例えば、ニューロンデータ及び重み値データを得る。ここで、ニューロンデータ及び重み値データは内部装置又は外部装置に必要なデータであり、例えば、当該内部装置又は外部装置が機械学習装置である場合に、当該ニューロンデータ及び重み値データは機械学習装置が機械学習演算を行うために必要な入力データである。前記データはあらかじめメモリに記憶されているデータであってもよいし、機械学習装置が機械学習演算を実行した後に出力したデータであってもよく、本実施例ではこれに関して限定しない。
【０３８０】
本実施例によるデータ処理方法では、伝送回路は内部装置又は外部装置が送信した第１タイプフラグビット及び第２タイプフラグビットが担持されたデータ操作信号に基づき、メモリ中の操作対象データに対して対応する操作を実行し、必要な入力データを得る。本実施例では、データ操作信号に第１タイプフラグビット及び第２タイプフラグビットが担持されるため、伝送回路は当該データ操作信号を受信した後、データ操作信号の第１タイプフラグビット及び第２タイプフラグビットに基づいて当該データ操作信号の具体的なタイプを判断し、そしてメモリ中の操作対象データに対して対応する操作を実行することができる。このようにして、データ操作信号のタイプフラグビットに基づいて分類しておくと、速やかに対応する操作を特定することができ、データのアクセスロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０３８１】
以下、いくつかの実施例を用いて当該操作コードと操作フィールド、及びそれらとデータ操作信号のタイプフラグビット、操作対象データの情報及びデータ受信フラグビットとの関係をそれぞれ説明する。
【０３８２】
一実施例では、前記操作フィールドはデータ受信フラグビットをさらに含み、前記データ受信フラグビットは前記入力データを受信する装置又は処理回路を表すために用いられる。選択可能で、前記データ受信フラグビットの個数は前記メモリとインタラクションを行える装置の個数又は処理回路の個数を表す。選択可能で、前記第１タイプフラグビットの値がＩ／Ｏである場合に、前記データ操作信号がＩ／Ｏコマンドであると決定し、前記第２タイプフラグビットの値が１である場合に、前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであると決定する。
【０３８３】
本実施例では、データ操作信号の操作コードは当該データ操作信号の操作タイプを指示するために用いられ、当該データ操作信号の第１タイプフラグビットを含み、前記操作フィールドは当該データ操作信号の実行中に必要なデータ情報を記憶するために用いられ、第２タイプフラグビットを含み、例示的に、操作コード中のデータ操作信号の第１タイプフラグビットの値がＩ／Ｏである場合に、当該データ操作信号がＩ／Ｏコマンドであることを表し、操作フィールド中の第２タイプフラグビットの値が１である場合に、当該データ操作信号がＩ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであることを表し、なお、本実施例では、第２タイプフラグビットが１である場合に、当該データ操作信号がＩ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであると決定するというのが、１つの実施形態に過ぎず、ユーザの実際のニーズに応じて、第２タイプフラグビットが０又は他の識別子である場合に、当該データ操作信号がＩ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであると決定してもよく、本実施例ではこれに関して限定しない。ここで、当該データ受信フラグビットは内部装置又は外部装置のうち入力データ（例えば、入力ニューロンデータ及び重み値データ）を受信できる装置又は処理回路を表す。ここで、当該装置は機械学習装置又はＭＬＵであってもよく、処理回路は演算ユニット又は演算ユニットの主処理回路又は副処理回路であってもよく、本実施例ではこれに関して限定しない。ここで、データ受信フラグビットの個数は前記メモリとインタラクションを行える装置の個数又は処理回路の個数を表し、例示的に、当該操作フィールド中のデータ受信フラグビットのうち３つのＭＬＵ（機械学習ユニット）のフラグが１である場合に、当該３つのＭＬＵがデータを受信できることを表し、１つのＭＬＵのフラグが０である場合に、当該１つのＭＬＵがデータを受信できないことを表す。なお、ここで、データを受信できるＭＬＵのフラグが１であるというのが例示的なものに過ぎず、ユーザは実際のニーズに応じて、データを受信できるＭＬＵのフラグを０又は他の識別子としてもよく、本実施例ではこれに関して限定しない。
【０３８４】
本実施例では、伝送回路はデータ信号の第１タイプフラグビット及び第２タイプフラグビットに基づいて、当該データ操作信号の具体的なタイプを決定し、その後、対応する操作を特定して、データ受信フラグビットに基づいて操作実行後のデータ送信の目標装置を決定することができ、このようにして、データのアクセスロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０３８５】
別の実施例では、前記操作フィールドは操作対象データの情報をさらに含み、前記操作対象データの情報は前記メモリにおける前記操作対象データのソースアドレス、操作対象データ長さ、及びデータ操作後のデータ返しアドレスを含む。図３３に示すように、データ処理方法を提供し、本実施例は、伝送回路がデータ操作信号に担持されたデータ情報に基づき、メモリにおいてデータを読み取り、当該データ操作情報に基づいて読み取られたデータを装置又は処理回路に返すことの具体的な過程に関する。上記のＳ２１０２は以下を含む。
Ｓ２２０１、前記ソースアドレスから始めて前記メモリを読み取り、前記データ長さを満たす入力データを取得する。
【０３８６】
本実施例では、データ操作信号の操作対象データの情報にメモリにおける操作対象データのソースアドレス、操作対象データ長さ、及びデータ操作後のデータ返しアドレスが担持されるため、伝送回路が当該メモリのソースアドレスから始めてデータを読み取り、予め設定された規則に基づいて操作対象データ長さを満たすまで読み取り、ここで、当該操作対象データ長さはユーザが実際の状況に応じて自ら設定するものであり、本実施例ではこれに関して限定しない。ここで、伝送回路が当該データ長さを満たす入力データ及びデータを取得するということは、予め設定された規則に基づいてメモリから当該データ長さを満たすデータを読み取ることである。ここで、当該予め設定された規則もユーザが実際の状況に応じて設定した規則であり、本実施例ではこれに関して限定せず、例えば、ソースアドレスから始めて一つずつ読み取り、読み取られたデータ長さが当該データ長さを満たすまで続けることであってもよい。
【０３８７】
Ｓ２２０２、前記データ受信フラグビットに基づいて、入力データを受信する装置又は処理回路を決定する。
【０３８８】
上記のステップＳ２２０１で伝送回路が取得したデータ長さを満たした入力データによって、伝送回路はデータ信号中のデータ受信フラグビットに基づいてデータが返される装置又は処理回路を決定し、例えば、当該装置が機械学習装置である場合に、伝送回路はデータ受信フラグビットに基づいてデータを当該機械学習装置中の１つ又は複数の目標機械学習ユニットに返すことを決定する。
【０３８９】
Ｓ２２０３、前記データ返しアドレスに従って、前記入力データを前記装置又は処理回路における前記データ返しアドレスに対応するストレージスペースに返す。
【０３９０】
本ステップでは、上記のステップで決定されたデータが返される装置又は処理回路に対し、伝送回路がデータ操作信号の操作対象データの情報中のデータ返しアドレスに従って、当該入力データを装置又は処理回路における当該データ返しアドレスに対応するストレージスペースに返し、ここで、当該操作対象データの情報中のデータ返しアドレスは機械学習装置の複数の目標機械学習ユニット中のアドレスであってもよい。
【０３９１】
例示的に、次の表３に示すように、本実施例では、例えば、上記の実施例を踏まえ、操作コード中の第１タイプデータフラグビットの値がＩ／Ｏである場合に、当該データ操作信号がＩ／Ｏコマンドであることを表し、操作フィールド中の第２タイプデータフラグビットの値が１である場合に、当該データ操作信号がＩ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであることを表し、これに応じて、当該第２タイプデータフラグビットの値が０である場合に、当該データ操作信号がブロードキャスト又はマルチキャストコマンドでないことを表す。操作フィールド中の操作対象データの情報にソースアドレス０ｘ１１００１１、目的アドレス０ｘ０００１００及びデータ長さ０ｘ０１００が含まれ、当該データ長さはユーザが自ら設定した長さであり、ユーザは当該設定長さを１つの値に設定してもよいし、当該設定長さを複数の値に設定してもよく、本実施例ではこれに関して限定しない。操作フィールド中のデータ受信フラグビットのうち３つのＭＬＵのフラグが１であり、当該３つのＭＬＵがデータを受信できることを表し、１つのＭＬＵのフラグが０であり、当該１つのＭＬＵがデータを受信できないことを表し、具体的には、伝送回路は当該データ操作信号に基づいて共有メモリ中のアドレス０ｘ１１００１１から長さが０ｘ０１００のデータを読み取り、その後、機械学習装置中のＭＬＵ３、ＭＬＵ１及びＭＬＵ０のアドレス０ｘ０００１００にそれぞれ書き込む。
【０３９２】
【表３】
2021526277.tif 000007
【０３９３】
本実施例によるデータ処理方法では、伝送回路はデータ操作信号に基づいてソースアドレスから始めてメモリを読み取り、データ長さを満たす入力データを取得して、データ受信フラグビットに基づいて、入力データを受信する装置又は処理回路を決定し、次にデータ返しアドレスに従って、入力データを装置又は処理回路におけるデータ返しアドレスに対応するストレージスペースに返し、本実施例では、伝送回路が前記データ長さを満たす入力ニューロンデータ及び重み値データを取得する時、当該データ操作信号中のデータ操作情報によって指示された読取規則に従ってデータを読み取るため、伝送回路のデータ読取ロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０３９４】
選択可能で、上記の図３３に示す実施例では、前記装置は少なくとも１つの機械学習ユニットを含み、各機械学習ユニットは主処理回路と、複数の副処理回路とを含む。ここで、当該機械学習装置に含まれる少なくとも１つの機械学習ユニット（即ちＭＬＵ）によって実行されるデータ信号操作において、１つのデータ受信インタフェースが共有されてもよく、当該機械学習ユニットは送信インタフェース又は共有データ受信インタフェースによって伝送回路に接続されてもよい。なお、当該送信インタフェース及び共有データ受信インタフェースはいずれもハードウェア回路として実現してもよく、本実施例では当該送信インタフェース及び共有データ受信インタフェースのタイプを限定しない。ここで、各機械学習ユニットは主処理回路と、複数の副処理回路とを含み、主処理回路は、入力データ（ニューロンデータ及び重み値データ）を複数の副処理回路に分配するために用いられ、複数の副処理回路は、主処理回路が伝送した入力データに基づき、並行して中間演算を実行して複数の中間結果を得、当該複数の中間結果を主処理回路に伝送するために用いられる。このようにして、装置は各機械学習ユニットに配分してそれぞれそのニューロンを処理させ、対応する出力データを出力させることができ、このようにして、各層のニューラルネットワークが並行して計算を実行することにより、ニューラルネットワーク計算の並行処理を実現でき、処理効率が向上する。
【０３９５】
上記の実施例をベースにして、前記操作フィールドはジャンプサブ操作フィールドをさらに含み、前記ジャンプサブ操作フィールドはジャンプストライド及び各回のジャンプ後に操作されるジャンプデータ長さを含み、図３４に示すように、データ処理方法を提供し、本実施例は伝送回路が操作フィールド中のジャンプサブ操作フィールドに基づいてメモリ中のデータを読み取ることの具体的な過程に関する。上記のＳ２２０１は以下を含む。
Ｓ２３０１、前記ソースアドレスから始めて前記メモリを読み取り、今回のジャンプ後のジャンプデータ長さに基づいて第１ジャンプデータを取得する。
【０３９６】
本実施例では、データ操作信号の操作フィールドにジャンプサブ操作フィールドが含まれ、当該ジャンプサブ操作フィールドは、当該伝送回路が当該データ操作信号に基づいて操作対象データの情報を読み取る時、当該サブ操作フィールドの規則に従って読み取ることを指示するために用いられる。選択可能で、当該ジャンプサブ操作フィールドはストライド（ｓｔｒｉｄｅ）操作フィールド及び／又はセグメント（ｓｅｇｍｅｎｔ）操作フィールドを含み、前記ストライド（ｓｔｒｉｄｅ）操作フィールドは前記データ操作信号の各回のジャンプストライドを表すために用いられ、前記セグメント（ｓｅｇｍｅｎｔ）操作フィールドは予め設定された前記データ操作信号の各回の分割サイズを表すために用いられ、なお、当該ストライド（ｓｔｒｉｄｅ）操作フィールド及びセグメント（ｓｅｇｍｅｎｔ）操作フィールドに関して、本願の実施例で挙げられた長さ及び名称は例示的なものに過ぎず、本願の実施例ではこれを限定しない。ここで、当該ジャンプサブ操作フィールドにジャンプストライド及び各回のジャンプ後に操作されるジャンプデータ長さが含まれており、当該ジャンプデータ長さは予め設定されたデータ長さであってもよい。具体的には、伝送回路が操作対象データの情報中のソースアドレスから始めてメモリを読み取り、今回のジャンプ後、読み取られたジャンプデータ長さのデータを第１ジャンプデータとして決定し、ここで、当該第１ジャンプデータは伝送回路がデータの読み取り時に予め設定された長さのデータだけジャンプした後に取得するデータを表し、ここで、当該予め設定された長さはユーザが実際の状況に応じて自ら設定するものであり、本実施例ではこれに関して限定しない。
【０３９７】
Ｓ２３０２、前記ジャンプデータの最後のアドレスを取得し、前記ジャンプストライドに基づいて前記最後のアドレスから目標ジャンプアドレスにジャンプする。
【０３９８】
伝送回路は上記のステップＳ２３０１で読み取られた第１ジャンプデータに基づいて、当該第１ジャンプデータの最後のアドレスを取得し、ジャンプサブ操作フィールド中のジャンプストライド（例えば、ｓｔｒｉｄｅストライド）に基づいて、当該第１ジャンプデータの最後のアドレスから当該ジャンプストライドの長さだけジャンプして目標ジャンプアドレスに達し、なお、当該第１ジャンプデータの最後のアドレスから目標ジャンプアドレスまでの長さはジャンプサブ操作フィールド中のジャンプストライドであることを理解されたい。
【０３９９】
Ｓ２３０３、前記目標ジャンプアドレスから始めて、ジャンプ後のジャンプデータ長さに基づいて第２ジャンプデータを取得することは、各回のジャンプ後に得たジャンプデータの長さが前記データ長さを満たすまで続ける。
【０４００】
本ステップでは、伝送回路がデータを読み取る時に上記のステップＳ２３０２で決定された目標ジャンプアドレスから、予め設定された長さのデータだけジャンプし、次に、当該予め設定された長さだけジャンプした後のデータを第２ジャンプデータとして決定し、当該第２ジャンプデータのアドレスから、ジャンプし始めた上記のソースアドレスまでの長さが機械学習装置に必要なデータのデータ長さを満たした場合に、当該機械学習装置に必要なデータの読み取りが完了することを示し、当該第２ジャンプデータのアドレスから、ジャンプし始めた上記のソースアドレスまでの長さが機械学習装置に必要なデータのデータ長さを満たさない場合に、当該第２ジャンプデータのアドレスから、ジャンプし始めた上記のソースアドレスまでの長さが機械学習装置に必要なデータのデータ長さを満たし、即ち当該機械学習装置に必要なデータの読み取りが完了することを示すまで、当該第２ジャンプデータの最後のアドレスから、引き続き上記のステップＳ２３０１からＳ２３０３のジャンプ順番に従いジャンプして当該データを読み取る。
【０４０１】
例示的に、次の表４に示すように、本実施例では、伝送回路がデータを読み取る過程は、例えば、操作フィールドにジャンプサブ操作フィールドのストライド（ｓｔｒｉｄｅ）操作フィールドがさらに含まれる場合に、伝送回路はデータ情報中のソースアドレス０ｘ１１００１１から始めて、共有メモリ中のデータを読み取り、予め設定された長さのデータ（当該予め設定された長さは下表のデータ情報中のデータ長さ０ｘ０１００）を読み取り、次にストライド（ｓｔｒｉｄｅ）長さ（０ｘ０００８）のアドレスだけジャンプして、予め設定された長さのデータを読み取り、このようにして当該データを読み取り続けて、読み取られた当該データの全長が次の表４のデータ情報中のデータ長さ０ｘ０１００になると、当該データ読み取りが完了することを示す。操作フィールドにジャンプサブ操作フィールドのセグメント（ｓｅｇｍｅｎｔ）操作フィールドがさらに含まれる場合に、伝送回路はデータ情報中のソースアドレス０ｘ１１００１１から始めて共有メモリ中のデータを読み取り、まずセグメント（ｓｅｇｍｅｎｔ）長さ（０ｘ００１０）のデータを読み取り、次にストライド（ｓｔｒｉｄｅ）長さ（０ｘ０００８）のアドレスだけジャンプして、セグメント（ｓｅｇｍｅｎｔ）長さ（０ｘ００１０）のデータを読み取り、このようにして当該データを読み取り続けて、読み取られた当該データの全長が次の表３のデータ情報中のデータ長さ０ｘ０１００になると、当該データ読み取りが完了することを示す。なお、当該ジャンプサブ操作フィールドにはストライド（ｓｔｒｉｄｅ）操作フィールドがなく、セグメント（ｓｅｇｍｅｎｔ）操作フィールドしかない場合に、伝送回路がデータを読み取る時にソースアドレス０ｘ１１００１１から始めてセグメント（ｓｅｇｍｅｎｔ）長さ（０ｘ００１０）のデータを読み取り、読み取られた当該データの全長が次の表４のデータ情報中のデータ長さ０ｘ０１００になると、当該データ読み取りが完了することを示す。
【０４０２】
【表４】
2021526277.tif 000008
【０４０３】
本実施によるデータ処理方法では、伝送回路がソースアドレスから始めて共有メモリを読み取り、今回ジャンプ後のジャンプデータ長さに基づいて第１ジャンプデータを取得し、当該第１ジャンプデータの最後のアドレスからジャンプストライドに従ってジャンプして目標ジャンプアドレスに達し、次に目標ジャンプアドレスから始めて、ジャンプ後のジャンプデータ長さに基づいて第２ジャンプデータを取得することが、各回のジャンプ後に得たジャンプデータの長さがデータ長さを満たすまで続け、このようにして、操作フィールドがジャンプサブ操作フィールドを含む場合に、伝送回路はサブ操作フィールドのジャンプ規則に基づいてデータを読み取るため、伝送回路のデータ読取ロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４０４】
伝送回路が受信データ操作信号に基づいて操作する時、まず受信したデータ操作信号が符号化コマンドであるため、まず当該データ操作信号を復号して解析する必要があり、そのために本願の実施例はデータ処理方法を提供し、図３５に示すように、前記データ処理装置中の伝送回路が前記データ処理装置中の機械学習装置の送信したデータ操作信号を受信することは、以下を含む。
Ｓ２４０１、前記データ操作信号を解析して、前記データ操作信号のタイプフラグビット及び操作対象データの情報を得る。
【０４０５】
なお、一般にはデータ処理中にデータ操作信号の数量が比較的多く、伝送回路がそのうちの１つのデータ操作信号を処理する時、他のものを記憶する必要があり、具体的には、伝送回路が当該データ操作信号を解析して、当該データ操作信号に担持されたデータ情報及び当該データ操作信号のタイプフラグビットを解析する。ここで、当該データ操作情報は操作対象データ長さ、目標アドレス及び元アドレス等の情報を含んでもよく、本実施例ではこれに関して限定しない。
【０４０６】
Ｓ２４０２、コマンドキューに従って、前記解析されたデータ操作信号を実行し、前記コマンドキューは前記データ操作信号の実行順番を表すために用いられる。
【０４０７】
なお、当該データ操作信号の実行は順番通りに行う必要があることを理解されたい。伝送回路は、上記のステップＳ４０１で伝送回路が当該データ操作信号を解析して得たデータ操作情報及びタイプフラグビットに基づいて、コマンドキューに従って当該解析後のデータ操作信号を実行する。
【０４０８】
本実施例によるデータ処理方法では、伝送回路が前記データ操作信号を解析することにより、データ操作信号のタイプフラグビット及び操作対象データの情報を得、次に伝送回路はコマンドキューに従って解析されたデータ操作信号を実行し、このようにして、データ操作信号を実行する前に、まずデータ操作信号を解析してから順番通り実行することで、伝送回路によるデータ操作信号に基づく操作実行の速度が大幅に速くなる。
【０４０９】
伝送回路がキュー中の順番に従ってデータ操作信号を実行する時、実行するのは互いに関連するデータ操作信号であることを考慮して、本願では別の実施例を提供し、図３６に示すように、前記方法は、前記伝送回路がコマンドキューに従って前記解析されたデータ操作信号を実行する前に、さらに、以下を含む。
Ｓ２５０１、隣接する前記解析されたデータ操作信号との依存関係を判断して、判断結果を得、前記依存関係はｓ番目のデータ操作信号と前記ｓ番目のデータ操作信号の前のｓ−１番目のデータ操作信号とに相関関係があるか否かを表す。
【０４１０】
ここで、伝送回路は隣接する前記解析されたデータ操作信号との依存関係を判断し、判断結果に基づいて、処理する隣接する２つのデータ操作信号に関連性があることを決定する必要があり、ここで、ｓ番目のデータ操作信号は特定の信号ではなく、データ操作信号のうちの任意の１つの信号を表し、そしてｓ−１番目のデータ操作信号はｓ番目のデータ操作信号の前の信号である。
【０４１１】
選択可能で、前記伝送回路が隣接する前記解析されたデータ操作信号との依存関係を判断することの可能な実現形態として、前記ｓ番目のデータ操作信号に基づいて前記ｓ番目のデータ操作信号に必要なデータを抽出するためのｓ番目のデータ操作信号、及び前記ｓ−１番目のデータ操作信号に基づいて前記ｓ−１番目のデータ操作信号に必要なデータを抽出するための第ゼロストレージアドレス区間をそれぞれ取得し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係があると決定し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係がないと決定する。ここで、伝送回路はｓ番目のデータ操作信号のｓ番目のデータ操作信号及びｓ−１番目のデータ操作信号の第ゼロストレージアドレス区間の関係に基づいて、隣接する前記解析されたデータ操作信号との依存関係をそれぞれ判断し、判断の方法としては、第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、当該ｓ番目のデータ操作信号とｓ−１番目のデータ操作信号とに依存関係がなく、第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、ｓ番目のデータ操作信号とｓ−１番目のデータ操作信号とに依存関係があることであってもよい。
【０４１２】
Ｓ２５０２、前記判断結果が、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係があることである場合に、前記ｓ番目のデータ操作信号をキャッシュし、前記ｓ−１番目のデータ操作信号の実行完了後、前記ｓ番目のデータ操作信号を抽出する。
【０４１３】
上記のステップで伝送回路が判定した隣接する２つのデータ操作信号の依存関係に基づいて、順番通りにデータ操作信号を実行し、判断結果が、ｓ番目のデータ操作信号とｓ−１番目のデータ操作信号とに依存関係があることである場合に、伝送回路は当該ｓ番目のデータ操作信号をキャッシュして、ｓ−１番目のデータ操作信号の実行完了後、当該ｓ番目のデータ操作信号を抽出する。
【０４１４】
本実施例によるデータ処理方法は、伝送回路が隣接する２つのデータ操作信号の関連性を判断してデータ操作信号の一貫性を確保するため、このようにして着実な準備作業により、後期に当該データ操作信号に基づいて対応する操作を順調に実行することができ、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４１５】
また、伝送回路がデータ操作信号に基づいて読み取ったデータは機械学習装置が要求するフォーマットではないことを考慮すると、伝送回路は読み取られたデータにある程度の処理を行ってから機械学習装置に伝送する必要があり、選択可能で、前記操作フィールドは、読み取られたデータに行う処理操作を表すための機能フラグビットをさらに含む。ここで、データ操作信号の操作フィールドに含まれる機能フラグビットは伝送回路が当該機能フラグビットに基づいて読み取られたデータに対応する処理を行うことを表し、当該操作フィールドに含まれる機能フラグビットの個数は１つであってもよいし、複数であってもよく、本実施例ではこれに関して限定しない。例示的に、当該機能フラグビットは解凍追加フラグビットであり、当該フラグが１である場合に、データの読み取り後に、伝送回路は当該データを解凍してから、機械学習装置中の指定されたＭＬＵに伝送し、又は当該機能フラグビットは暗号化フラグビットであり、当該暗号化フラグビットが１である場合に、データの読み取り後に、伝送回路は当該データを解凍してから、機械学習装置中の指定されたＭＬＵに伝送し、本実施例では、伝送回路はデータ操作信号の操作フィールド中の機能フラグビットに基づいて読み取られたデータに対応する処理を行ってから、当該データを機械学習装置に伝送することで、機械学習装置が当該データを受信した後、すぐに認識して演算を実行することができるため、データ処理効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４１６】
本願の一実施例では、データ処理装置であって、プロセッサと、メモリとを含み、前記メモリにコンピュータプログラムが記憶されており、前記プロセッサが前記コンピュータプログラムを実行すると、内部装置又は外部装置の送信したデータ操作信号を受信するステップであって、前記データ操作信号はタイプフラグビットを含み、前記タイプフラグビットは前記データ操作信号がブロードキャスト又はマルチキャストコマンドであるかどうかを表すために用いられるステップと、前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得るステップとを実現する前記データ処理装置をさらに提供する。
【０４１７】
本実施例によるデータ処理装置は、その実現原理及び技術的効果が上記のデータ処理方法の実施例に類似するため、ここで再度説明しない。
【０４１８】
一実施例では、図３７のデータ処理方法を提供し、本実施例は、伝送回路はデータ操作信号のタイプフラグビットに基づいてデータ操作信号のタイプを決定し、決定されたタイプに基づいて特定された対応する操作によってメモリから必要なデータを得ることでアクセス速度を向上させることの具体的な過程に関する。図３７に示すように、当該方法は以下を含む。
Ｓ３１０１、内部装置又は外部装置の送信したデータ操作信号を受信し、前記データ操作信号は操作コードを含み、前記操作コードは前記タイプフラグビットを含み、前記タイプフラグビットは前記データ操作信号がブロードキャスト又はマルチキャストコマンドであるかどうかを表すために用いられる。
【０４１９】
本実施例では、伝送回路は内部装置又は外部装置の送信したデータ操作信号を受信し、当該データ操作信号の操作コードは当該データ操作信号の操作タイプを指示するために用いられ、当該データ操作信号のタイプフラグビットを含み、ここで、当該内部装置又は外部装置はインタフェースを介して伝送回路に接続された機械学習装置であってもよく、当該機械学習装置は任意のハードウェアとして実現してもよく、例えば、複数のＭＬＵからなる演算機能を有する装置である。ここで、伝送回路は当該データ操作信号に担持されたデータ操作信号のタイプフラグビットに基づいて当該データ操作信号のタイプを決定することができる。例えば、当該データ操作信号のタイプフラグビットの値が１である場合に、当該データ操作信号はブロードキャスト又はマルチキャストコマンドである。
【０４２０】
Ｓ３１０２、前記データ操作信号に基づいてメモリ中の操作対象データに対して対応する操作を実行して、必要な入力データを得る。
【０４２１】
伝送回路は上記のステップＳ３１０１で内部装置又は外部装置の送信したデータ操作信号を受信した後、当該データ操作信号のタイプフラグビットに基づいて、メモリ中の操作対象データに対して対応する操作を実行することを決定して、必要な入力データ、例えば、ニューロンデータ及び重み値データを得、ここで、当該ニューロンデータ及び重み値データは内部装置又は外部装置に必要なデータであり、例えば、当該内部装置又は外部装置が機械学習装置である場合に、当該ニューロンデータ及び重み値データは機械学習装置が機械学習演算を行うために必要な入力データである。前記データはあらかじめメモリに記憶されているデータであってもよいし、機械学習装置が機械学習演算を実行した後に出力したデータであってもよく、本実施例ではこれに関して限定しない。
【０４２２】
本実施例によるデータ処理方法では、伝送回路は内部装置又は外部装置が送信した、データ操作信号のタイプフラグビットが担持されたデータ操作信号に基づいて、メモリ中の操作対象データに対して対応する操作を実行し、必要な入力データを得る。本実施例では、データ操作信号にデータ操作信号のタイプフラグビットが担持されているため、伝送回路は当該データ操作信号を受信した後、その中のデータ操作信号のタイプフラグビットに基づいて当該データ操作信号のタイプを判断し、そしてメモリ中の操作対象データに対して対応する操作を実行することができる。このようにして、データ操作信号のタイプフラグビットに基づいて分類しておくと、速やかに対応する操作を特定することができ、データのアクセスロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４２３】
以下、いくつかの実施例を用いて当該操作コードと操作フィールド、及びそれらとデータ操作信号のタイプフラグビット、操作対象データの情報及びデータ受信フラグビットとの関係をそれぞれ説明する。
【０４２４】
一実施例では、前記データ操作信号は操作フィールドをさらに含み、前記操作フィールドはデータ受信フラグビットを含み、前記データ受信フラグビットは前記入力データを受信する装置又は処理回路を表すために用いられる。選択可能で、前記データ受信フラグビットの個数は前記メモリとインタラクションを行える装置の個数又は処理回路の個数を表す。選択可能で、前記タイプフラグビットの値がＣＡＳＴである場合に、前記データ操作信号がブロードキャスト又はマルチキャストコマンドであると決定し、本実施例では、データ操作信号の操作コードは当該データ操作信号の操作タイプを指示するために用いられ、当該データ操作信号のタイプフラグビットを含み、例示的に、操作コード中のデータ操作信号のタイプフラグビットがＣＡＳＴである場合に、当該データ操作信号はブロードキャスト又はマルチキャストコマンドであることを表す。前記操作フィールドは当該データ操作信号の実行中に必要なデータ情報を記憶するために用いられ、データ受信フラグビットを含んでもよく、当該データ受信フラグビットは内部装置又は外部装置のうち入力データを受信できる装置又は処理回路を表す。ここで、当該装置は機械学習装置又はＭＬＵであってもよく、処理回路は演算ユニット又は演算ユニットの主処理回路又は副処理回路であってもよく、本実施例ではこれに関して限定しない。ここで、データ受信フラグビットの個数は前記メモリとインタラクションを行える装置の個数又は処理回路の個数を表し、例示的に、当該操作フィールド中のデータ受信フラグビットのうち３つのＭＬＵ（機械学習ユニット）のフラグが１である場合に、当該３つのＭＬＵがデータを受信できることを表し、１つのＭＬＵのフラグが０である場合に、当該１つのＭＬＵがデータを受信できないことを表す。なお、ここで、データを受信できるＭＬＵのフラグが１であるというのが例示的なものに過ぎず、ユーザは実際のニーズに応じて、データを受信できるＭＬＵのフラグを０又は他の識別子としてもよく、本実施例ではこれに関して限定しない。
【０４２５】
本実施例では、伝送回路はデータ信号のタイプフラグビットに基づいて、当該データ操作信号のタイプを決定し、対応する操作を特定して、データ受信フラグビットに基づいて操作実行後のデータを送信する目標装置を決定することができ、データのアクセスロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４２６】
例示的に、次の表５に示すように、本実施例では、例えば、上記の実施例を踏まえ、操作コード中のデータ操作信号のタイプフラグビットがＣＡＳＴである場合に、当該データ操作信号はブロードキャスト又はマルチキャストコマンドであることを表し、操作フィールド中の操作対象データの情報はソースアドレス０ｘ１１００１１、目的アドレス０ｘ０００１００及びデータ長さ０ｘ０１００を含み、ここで、当該データ長さはユーザが自ら設定した長さであり、ユーザは当該設定長さを１つの値に設定してもよいし、当該設定長さを複数の値に設定してもよく、本実施例では当該設定長さの値及び個数を具体的に限定しない。操作フィールド中のデータ受信フラグビットのうち３つのＭＬＵのフラグが１であり、当該３つのＭＬＵがデータを受信できることを表し、１つのＭＬＵのフラグが０であり、当該１つのＭＬＵがデータを受信できないことを表す。具体的には、伝送回路は当該データ操作信号に基づいて共有メモリ中のアドレス０ｘ１１００１１から長さが０ｘ０１００のデータを読み取り、その後、機械学習装置中のＭＬＵ３、ＭＬＵ１及びＭＬＵ０のアドレス０ｘ０００１００にそれぞれ書き込む。
【０４２７】
【表５】
2021526277.tif 000009
【０４２８】
本実施例によるデータ処理方法では、伝送回路はデータ操作信号に基づいてソースアドレスから始めてメモリを読み取り、データ長さを満たす入力データを取得して、データ受信フラグビットに基づいて、入力データを受信する装置又は処理回路を決定し、次にデータ返しアドレスに従って、入力データを装置又は処理回路におけるデータ返しアドレスに対応するストレージスペースに返し、本実施例では、伝送回路が前記データ長さを満たす入力データを取得する時、当該データ操作信号中のデータ操作情報によって指示された読取規則に従ってデータを読み取るため、伝送回路のデータ読取ロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４２９】
一実施例では、図３１に示すように、本願の実施例によるデータ処理装置は図３１に示す内容の一部であってもよいし又はその全てであってもよく、ソフトウェア、ハードウェア又はソフトウェアとハードウェアの組み合わせとして実現してもよい。当該データ処理装置１０は機械学習データの処理を実行するために用いられ、前記データ処理装置１０は、機械学習装置１１と、伝送回路１２と、共有メモリ１３とを含み、前記機械学習装置１１は前記伝送回路１２に接続され、前記伝送回路１２は前記共有メモリ１３に接続され、前記伝送回路１２は前記機械学習装置１１の発したデータ操作信号に基づいて、前記共有メモリ１３から前記機械学習装置１１に必要な入力データを取得して、前記入力データを前記機械学習装置１１に返すために用いられ、前記データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持される。選択可能で、前記機械学習装置１１は、前記入力データに基づいて機械学習演算を実行して、出力ニューロンデータを得るために用いられ、選択可能で、前記機械学習装置１１は、さらに、前記出力ニューロンデータを新たな入力ニューロンデータとして、前記伝送回路１２によって前記共有メモリ１３に伝送してデータを記憶させるために用いられる。
【０４３０】
なお、上記の機械学習装置、伝送回路及び共有メモリはいずれもハードウェア回路として実現してもよい。例示的に、機械学習装置は複数の機械学習ユニット（Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｕｎｉｔ、略称ＭＬＵ）からなる演算機能を有する装置であってもよく、伝送回路はブロードキャストバス（ｂｒｏａｄｃａｓｔ  ｂｕｓ）であってもよく、共有メモリは非揮発性及び／又は揮発性メモリであってもよく、ランダムアクセスメモリ（ＲＡＭ）、高速キャッシュメモリ等を含むが、これらに限定されない。ここで、上記の機械学習装置、伝送回路及び共有メモリはインタフェースによって互いにデータを伝送し、例えば、機械学習装置は当該インタフェースによってデータ操作信号を送信し、又は当該インタフェースによってデータを送受信するようにしてもよい。これに応じて、当該インタフェースは送信インタフェースであってもよいし、受信インタフェースであってもよく、即ち、当該インタフェースが送信インタフェースである場合に、機械学習装置は伝送回路にデータ操作信号又はデータを送信することができ、当該インタフェースが受信インタフェースである場合に、機械学習装置は伝送回路の送信したデータ操作信号又はデータを受信することができる。ここで、当該インタフェースは様々なタイプのインタフェースであってもよく、当該様々なタイプのインタフェースはいずれもハードウェア回路として実現してもよく、本実施例では当該様々なタイプのインタフェースのハードウェアとしての形態を具体的に限定せず、当該インタフェースによって機械学習装置、伝送回路及び共有メモリの間のデータ信号のインタラクションを実現できるものであればよい。ここで、入力データとは機械学習装置が機械学習演算を行う時に入力されるべきデータであり、例えば、入力ニューロンデータ及び重み値データであってもよい。上記のデータはあらかじめ共有メモリに記憶されているデータであってもよいし、機械学習装置が機械学習演算を実行した後に出力したデータであってもよく、選択可能で、機械学習装置は複数のデータＩ／Ｏインタフェース又はＩ／Ｏピンによって共有メモリに直接的に接続されて上記のデータを取得してもよいし、選択可能で、機械学習装置は複数のデータＩ／Ｏインタフェース又はＩ／Ｏピンによって伝送回路に接続され、伝送回路によって共有メモリに接続されて、上記のデータを取得してもよい。
【０４３１】
ここで、データ操作信号は伝送回路が共有メモリ中のデータに読取操作を行うことを表してもよく、共有メモリ中のデータに書込操作を行うことを表してもよい。機械学習装置の発したデータ操作信号が読取操作である場合に、伝送回路は共有メモリから相応アドレスに対応する入力データを見つけて読み取り、これらのデータをデータ操作信号を発した機械学習装置に返すことができ、機械学習装置の発したデータ操作信号が書込操作である場合に、伝送回路は機械学習装置の出力した書込データを共有メモリに書き込むことができる。ここで、データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持され、当該データ操作信号のタイプフラグビットは当該データ操作信号のタイプを表し、例えば、当該データ操作信号のタイプフラグビットがＣＡＳＴである場合に、当該データ操作信号のタイプがブロードキャスト又はマルチキャストコマンドであることを表す。当該操作対象データの情報は、伝送回路が当該データ操作信号に従って対応する操作を行う時に必要なデータを表し、当該データ操作信号のタイプフラグビットの形態及び操作対象情報中のデータ情報について、本実施例では具体的に限定せず、実際の状況に応じて設定することができる。
【０４３２】
なお、本願によるデータ処理装置は機械学習演算に応用され、ここで、機械学習演算はニューラルネットワーク演算、ｋ−ｍｅａｎｓ演算、サポートベクターマシン演算等を含む。ニューラルネットワーク演算を例とすると、機械学習装置が実行するニューラルネットワーク中の演算はニューラルネットワーク中の１層の演算であってもよく、多層ニューラルネットワークの場合は、次のように実現する。フォワード演算において、前の層の人工ニューラルネットワークの実行完了後、次の層の演算コマンドでは演算ユニットにおいて算出された出力ニューロンデータを次の層の入力ニューロンデータとして演算を実行し（又は、当該出力ニューロンデータに或る操作を行ってから次の層の入力ニューロンデータとする）、同時に重み値データを次の層の重み値データに置き換える。バックワード演算において、前の層の人工ニューラルネットワークのバックワード演算の実行完了後、次の層の演算コマンドでは演算ユニットにおいて算出された入力ニューロン勾配を（入力されるニューロンデータとしてもよい）次の層の出力ニューロン勾配として演算を実行し（出力されるニューロンデータとしてもよい）（又は、当該入力ニューロン勾配に或る操作を行ってから次の層の出力ニューロン勾配とする）、同時に重み値データを次の層の重み値データに置き換える。選択可能で、本願の実施例に係るニューラルネットワークは、人工ニューラルネットワークであってもよいし、スパイキングニューラルネットワークであってもよく、本実施例ではこれに関して限定しない。本実施例による機械学習装置は入力データに基づいて機械学習演算を実行することができ、例えば、機械学習演算では、多層ニューラルネットワークの場合、機械学習装置は各層のニューラルネットワークの出力するニューロンデータを算出し、各層のニューラルネットワークの入力端に対応する複数の入力データに対し乗算、和演算及び関数演算等、機械学習演算に含まれる一連の演算集合を実行してもよい。機械学習装置は機械学習演算により、カレント層の出力ニューロンデータを得た後、当該出力ニューロンデータを次の層のニューラルネットワークの入力ニューロンデータとして再度機械学習演算を行ってもよく、その前に、機械学習装置によりいつでも前記のカレント層の出力ニューロンデータを読み取って機械学習演算を行えるために、当該カレント層の出力ニューロンデータを伝送回路によって共有メモリに書き込んで記憶するようにしてもよい。
【０４３３】
具体的には、実際の応用において、伝送回路は機械学習装置の発したデータ操作信号に基づいて、共有メモリから機械学習装置に必要な入力データを取得し、受信インタフェースによって入力データを機械学習装置に返し、次に、機械学習装置は入力データに基づいて機械学習演算を実行して、出力データを得、当該出力データを新たな入力データとして、伝送回路によって共有メモリに伝送してデータを記憶させる。本実施例では、データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持されているため、伝送回路は当該データ操作信号を受信した後、その中のデータ操作信号のタイプフラグビットに基づいて当該データ操作信号のタイプを判断し、次に当該データ操作信号に担持された操作対象データの情報に合わせて操作を実行する。このようにして、データ操作信号のタイプフラグビットに基づいて分類しておくと、速やかに対応する操作を特定することができ、データのアクセスロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４３４】
一実施例では、図３８に示すように、本願の実施例によるデータ処理装置は、前記機械学習装置１１であって、少なくとも１つの機械学習ユニット１４を含み、前記データ操作信号はデータ受信フラグビットをさらに含み、前記データ受信フラグビットは前記入力データを受信する目標機械学習ユニットを表すために用いられる前記機械学習装置を含む。
【０４３５】
ここで、当該機械学習装置に含まれる少なくとも１つの機械学習ユニット（即ちＭＬＵ）によって実行されるデータ信号操作において、１つのデータ受信インタフェースが共有されてもよく、当該機械学習ユニットは送信インタフェース又は共有データ受信インタフェースによって伝送回路に接続されてもよい。なお、当該送信インタフェース及び共有データ受信インタフェースはいずれもハードウェア回路として実現してもよく、本実施例では当該送信インタフェース及び共有データ受信インタフェースのタイプを限定しない。ここで、データ操作信号はデータ受信フラグビットを含み、当該データ受信フラグビットは入力データを受信できる目標機械学習ユニットを表す。当該データ受信フラグビットの表示方式は、例えば、入力データを受信できる目標機械学習ユニットを１と表示し、これに対して、入力データを受信できない目標機械学習ユニットを０と表示することであってもよく、なお、ここで受信できる目標機械学習ユニットを１と表示するのが例示的なものに過ぎないことを理解されたい。実際の応用において、データを受信できる目標機械学習ユニットを０と表示し、データを受信できない目標機械学習ユニットを１と表示してもよく、本実施例では当該データ受信フラグビットの表示について具体的に限定しない。
【０４３６】
本実施例では、データ操作信号に担持されているデータ受信フラグビットの表示状態に基づいて、機械学習装置のうち入力データを受信できる目標機械学習ユニットを決定することができ、このようにして、機械学習装置の各機械学習ユニットによるデータの受信はデータ操作信号中のデータ受信フラグビットに基づいて決定されるため、データのメモリアクセス中のメモリアクセスロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４３７】
以下、いくつかの実施例を用いて、上記の実施例に係るデータ操作信号のタイプフラグビット、操作対象データの情報、及びデータ受信フラグビットの間の関係をそれぞれ説明する。
【０４３８】
一実施例では、前記データ操作信号のタイプフラグビットの値は、前記データ操作信号はブロードキャスト又はマルチキャストコマンドであることを表すＣＡＳＴを含む。選択可能で、前記操作対象データの情報は前記共有メモリにおける前記操作対象データのソースアドレス、操作対象データ長さ、及びデータ操作後のデータ返しアドレスを含む。
【０４３９】
本実施例では、データ操作信号のタイプフラグビットは当該データ操作信号の操作タイプを指示するために用いられる。例示的に、次の表６に示すように、データ操作信号のタイプフラグビットはＣＡＳＴであり、当該データ操作信号はブロードキャスト又はマルチキャストコマンドであることを表し、操作対象データの情報はソースアドレス０ｘ１１００１１、目的アドレス０ｘ０００１００及びデータ長さ０ｘ０１００を含み、ここで、当該データ長さはユーザが自ら設定した長さであり、ユーザは当該設定長さを１つの値に設定してもよいし、当該設定長さを複数の値に設定してもよく、本実施例では当該設定長さの値及び個数を具体的に限定しない。データ受信フラグビットで３つのＭＬＵのフラグが１であり、当該３つのＭＬＵがデータを受信できることを表し、１つのＭＬＵのフラグが０であり、当該１つのＭＬＵがデータを受信できないことを表す。具体的には、伝送回路は当該データ操作信号に基づいて共有メモリ中のアドレス０ｘ１１００１１から長さが０ｘ０１００のデータを読み取り、その後、機械学習装置中のＭＬＵ３、ＭＬＵ１及びＭＬＵ０のアドレス０ｘ０００１００にそれぞれ書き込む。
【０４４０】
【表６】
2021526277.tif 000010
【０４４１】
別の実施例では、上記のデータ操作信号のタイプフラグビットは第１タイプフラグビットと、第２タイプフラグビットとを含んでもよい。選択可能で、前記第１タイプフラグビットの値はＩ／Ｏを含み、前記データ操作信号がＩ／Ｏコマンドであることを表し、前記第２タイプフラグビットは前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであることを表すために用いられる。
【０４４２】
本実施例では、当該データ操作信号は２つのデータタイプデータフラグビットを含み、そのうち第１タイプデータフラグビットは当該データ操作信号のタイプを表し、当該第２タイプデータフラグビットは当該データ操作信号の操作情報内に設定され、当該データ操作信号の具体的なサブタイプを表し、ここで、データ受信フラグビットは上記の実施例と同様に、入力データを受信できる目標機械学習ユニットを表す。例示的に、次の表７に示すように、第１タイプデータフラグビットの値はＩ／Ｏであり、当該データ操作信号がＩ／Ｏコマンドであることを表し、第２タイプデータフラグビットの値は１であり、当該データ操作信号がＩ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであることを表し、これに対して、当該第２タイプデータフラグビットの値が０である場合に、当該データ操作信号がブロードキャスト又はマルチキャストコマンドでないことを表す。操作対象データの情報はソースアドレス０ｘ１１００１１、目的アドレス０ｘ０００１００及びデータ長さ０ｘ０１００を含み、当該データ長さはユーザが自ら設定した長さであり、ユーザは当該設定長さを１つの値に設定してもよいし、当該設定長さを複数の値に設定してもよく、本実施例ではこれに関して限定しない。データ受信フラグビットで３つのＭＬＵのフラグが１であり、当該３つのＭＬＵがデータを受信できることを表し、１つのＭＬＵのフラグが０であり、当該１つのＭＬＵがデータを受信できないことを表し、具体的には、伝送回路は当該データ操作信号に基づいて共有メモリ中のアドレス０ｘ１１００１１から長さが０ｘ０１００のデータを読み取り、その後、機械学習装置中のＭＬＵ３、ＭＬＵ１及びＭＬＵ０のアドレス０ｘ０００１００にそれぞれ書き込む。
【０４４３】
【表７】
2021526277.tif 000011
【０４４４】
別の実施例では、上記の表１又は表２をベースにして、上記のデータ操作信号はジャンプ情報をさらに含んでもよく、前記ジャンプ情報はジャンプストライド及び各回ジャンプ後の操作データ長さを含む。選択可能で、前記ジャンプ情報はストライド（ｓｔｒｉｄｅ）ジャンプ情報及び／又はセグメント（ｓｅｇｍｅｎｔ）ジャンプ情報を含み。
【０４４５】
本実施例では、データ操作信号に含まれるジャンプ情報は、当該伝送回路が当該データ操作信号に基づいて操作対象データの情報を読み取る時に当該ジャンプ情報による規則に従って読み取るように指示するために用いられ、具体的には、読取方法は、伝送回路が操作対象データの情報中のソースアドレスから始めて共有メモリからデータを読み取り、今回のジャンプ後、まず読み取られたジャンプデータ長さのデータを第１ジャンプデータとして決定し、次に伝送回路が当該第１ジャンプデータの最後のアドレスを取得し、ジャンプ情報中のジャンプストライドに基づいて、当該第１ジャンプデータの最後のアドレスから当該ジャンプストライド長さのデータだけジャンプして目標ジャンプアドレスに達し、なお、ここで第１ジャンプデータの最後のアドレスから目標ジャンプアドレスまでの長さはジャンプ情報中のジャンプストライドであることを理解されたい。次に、伝送回路が目標ジャンプアドレスから、予め設定された長さのデータだけジャンプして、予め設定された長さだけジャンプした後の当該データを第２ジャンプデータとして決定し、当該第２ジャンプデータのアドレスから、上記のジャンプし始めたソースアドレスまでの長さが機械学習装置に必要なデータのデータ長さを満たした場合に、当該機械学習装置に必要なデータの読み取りが完了することを示し、当該第２ジャンプデータのアドレスから、上記のジャンプし始めたソースアドレスまでの長さが機械学習装置に必要なデータのデータ長さを満たさない場合に、当該第２ジャンプデータのアドレスから、上記のジャンプし始めたソースアドレスまでの長さが機械学習装置に必要なデータのデータ長さを満たし、即ち当該機械学習装置に必要なデータの読み取りが完了することを示すまで、当該第２ジャンプデータの最後のアドレスから引き続き上記のジャンプ順番に従ってジャンプして、当該データを読み取る。
【０４４６】
一般に、本願の実施例によるデータ処理装置がデータ操作信号に対して読み書き処理を行う前に、データ操作信号を解析する必要があり、選択可能で、前記伝送回路は、前記データ操作信号を記憶するためのコマンド記憶ユニットと、前記データ操作信号を解析して、前記データ操作信号のタイプフラグビット及び操作対象データの情報を得るためのコマンド処理ユニットと、コマンドキューを記憶するために用いられるキュー記憶ユニットであって、前記コマンドキューの前後順番に従って実行される複数の前記データ操作信号を含む前記キュー記憶ユニットとを含む。ここで、一般には、データの処理中にデータ操作信号の数量が比較的多く、１つのデータ操作信号を処理する時、他のものを当該コマンド記憶ユニットに記憶する必要がある。コマンド処理ユニットは当該データ操作信号を解析するもので、当該データ操作信号に担持されたデータ情報を解析する。また、データ操作信号の値取り、復号、発信が継続して行われ、全てのデータ操作信号は順番通りに上記の動作を完了する必要があり、キュー記憶ユニットによってコマンドキューを記憶する。
【０４４７】
また、コマンド処理ユニットが１つのデータ操作信号の処理を完了してから、キュー中の次のデータ操作信号を処理するため、処理が完了した当該データ操作信号と次のデータ操作信号とに関連性があることを保証する必要があり、選択可能で、前記伝送回路は、依存関係処理ユニットであって、ｓ番目のデータ操作信号と前記ｓ番目のデータ操作信号の前のｓ−１番目のデータ操作信号とに相関関係があるか否かを決定し、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに相関関係がある場合に、前記ｓ番目のデータ操作信号を前記コマンド記憶ユニットにキャッシュし、前記ｓ−１番目のデータ操作信号の実行完了後、前記コマンド記憶ユニットから前記ｓ番目のデータ操作信号を抽出して前記コマンド処理ユニットに伝送するための前記依存関係処理ユニットをさらに含み、ここで、当該ｓ番目のデータ操作信号とｓ番目のデータ操作信号の前のｓ−１番目のデータ操作信号とに相関関係があるか否かを決定することは、前記ｓ番目のデータ操作信号に基づいて前記ｓ番目のデータ操作信号に必要なデータの第１ストレージアドレス区間を抽出し、前記ｓ−１番目のデータ操作信号に基づいて前記ｓ−１番目のデータ操作信号に必要なデータの第ゼロストレージアドレス区間を抽出し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに相関関係があると決定し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに相関関係がないと決定することを含む。
【０４４８】
本実施例では、データ操作装置がデータ処理信号に基づいて操作を行う前に、未使用のデータ処理信号を順次記憶し、使用する時、順次解析して復号させ、且つ解析及び復号中に、隣接する２つのデータ操作信号間の関連性を判断することによりデータ操作信号の一貫性を保証し、このようにして、着実な準備作業により後期に当該データ操作信号に基づいて対応する操作を順調に実行することができ、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４４９】
本願の実施例は、上記の図３１に示すハードウェア回路に応用されるデータ処理方法をさらに提供し、前記回路は、機械学習装置１１と、伝送回路１２と、共有メモリ１３とを含み、機械学習装置１１と前記伝送回路１２、伝送回路１２と共有メモリ１３はいずれもインタフェースを介して接続され、当該インタフェースはハードウェア回路として実現してもよく、本実施例では当該様々なタイプのインタフェースのハードウェアとしての形態を具体的に限定しない。ここで、伝送回路１２は機械学習装置１１の発したデータ操作信号に基づいて、共有メモリ１３から機械学習装置１１に必要な入力データを取得し、入力データを機械学習装置１１に返すために用いられ、機械学習装置１１は、入力データに基づいて機械学習演算を実行して、出力ニューロンデータを得、そして、出力ニューロンデータを新たな入力ニューロンデータとして、伝送回路１２によって共有メモリ１３に伝送してデータを記憶させるために用いられる。
【０４５０】
以下、本願の目的、技術的解決手段及び利点が一層明瞭になるよう、図面及び実施例を参照して、本願を一層詳細に説明する。なお、ここで説明される特定の実施例は本願を解釈するためのものに過ぎず、本願を限定するものではないことを理解されたい。本願の実施例によるデータ処理方法は、データアクセス又は共有メモリのデータが比較的多い場合に、機械学習チップのデータアクセス時のアクセス速度をいかに向上させるかという技術的課題を解決することが目的である。以下、実施例を用いて、図面に関連して本願の技術的解決手段及び本願の技術的解決手段による上記の技術的課題の解決を詳細に説明する。次に示すいくつかの特定の実施例は互いに組み合わせることができ、同じ又は類似する概念又は過程については一部の実施例で再度説明しないことがある。なお、本願によるデータ処理方法は、その実行主体が伝送回路であり、ここで、当該実行主体はデータ処理装置であってもよく、当該装置はソフトウェア、ハードウェア又はソフトウェアとハードウェアの組み合わせとしてデータ解析端末の一部又は全部として実現することができる。
【０４５１】
一実施例では、図３８でデータ処理方法を提供し、本実施例は、伝送回路がデータ操作信号のタイプフラグビットに基づいてデータ操作信号のタイプを決定し、対応する操作を特定し、その後、当該操作により共有メモリから機械学習装置に必要なデータを取得することで、アクセス速度を向上させることの具体的な過程に関する。図３８に示すように、当該方法は以下を含む。
Ｓ４１０１、前記データ処理装置中の伝送回路は前記データ処理装置中の機械学習装置の送信したデータ操作信号を受信し、前記データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持される。
【０４５２】
ここで、機械学習装置は複数のＭＬＵからなる演算機能を有する装置であってもよく、伝送回路はブロードキャストバスであってもよく、共有メモリは非揮発性及び／又は揮発性メモリであってもよく、ランダムアクセスメモリ（ＲＡＭ）、高速キャッシュメモリ等を含むが、これらに限定されない。本実施例では、データ処理装置の伝送回路が当該データ処理装置中の機械学習装置の送信したデータ操作信号を受信し、当該データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持され、ここで、伝送回路と機械学習装置の間のデータ操作信号の伝送は、インタフェースによって伝送されてもよい。伝送回路は当該データ操作信号に担持されたデータ操作信号のタイプフラグビット及び操作対象データの情報に基づいて、当該データ操作信号のタイプ及び操作時に必要なデータ情報を決定することができる。
【０４５３】
Ｓ４１０２、前記伝送回路は前記データ操作信号のタイプフラグビットに基づいて共有メモリ中のデータに対して実行する操作を決定し、前記操作対象データの情報に基づいて前記操作対象データに対して前記操作を実行し、前記機械学習装置に必要な入力データを得、前記入力データを前記機械学習装置に返す。
【０４５４】
伝送回路は、上記のステップＳ４１０１で受信した、機械学習装置の送信したデータ操作信号のタイプフラグビットに基づいて、共有メモリ中のデータに実行すべき操作を決定し、当該データ操作信号中の操作対象データの情報に基づいて当該共有メモリ中のどのデータに当該操作を実行するかを決定し（これらのデータは操作対象データ）、次に機械学習装置に必要な入力データを得、当該入力データを機械学習装置に返す。ここで、入力データとは機械学習装置が機械学習演算を行う時に入力されるべきデータである。上記のデータはあらかじめ共有メモリに記憶されているデータであってもよいし、機械学習装置が機械学習演算を実行した後に出力したデータであってもよい。
Ｓ４１０３、前記機械学習装置は前記入力データに基づいて機械学習演算を実行して、出力データを得、そして、前記出力データを新たな入力データとして、前記伝送回路によって前記共有メモリに伝送してデータを記憶させる。
【０４５５】
本ステップでは、機械学習装置は上記のステップＳ４１０２で伝送回路の送信した入力データに基づいて、機械学習演算を実行して、出力データを得、次に当該出力データを新たな入力データとして、伝送回路によって共有メモリに伝送して記憶させる。ここで、機械学習装置の実行する演算がニューラルネットワーク演算である場合を例として、当該ニューラルネットワーク演算はニューラルネットワーク中の１層の演算であってもよく、多層ニューラルネットワークの場合は、次のように実現する。フォワード演算において、前の層の人工ニューラルネットワークの実行完了後、次の層の演算コマンドでは演算ユニットにおいて算出された出力ニューロンデータを次の層の入力ニューロンデータとして演算を実行し（又は、当該出力ニューロンデータに或る操作を行ってから次の層の入力ニューロンデータとする）、同時に重み値データを次の層の重み値データに置き換える。バックワード演算において、前の層の人工ニューラルネットワークのバックワード演算の実行完了後、次の層の演算コマンドでは演算ユニットにおいて算出された入力ニューロン勾配（入力されるニューロンデータとしてもよい）次の層の出力ニューロン勾配として演算を実行し（出力されるニューロンデータとしてもよい）（又は、当該入力ニューロン勾配に或る操作を行ってから次の層の出力ニューロン勾配とする）、同時に重み値データを次の層の重み値データに置き換える。選択可能で、本願の実施例に係るニューラルネットワークは、人工ニューラルネットワークであってもよいし、スパイキングニューラルネットワークであってもよく、本実施例ではこれに関して限定しない。本実施例による機械学習装置は入力データに基づいて機械学習演算を実行することができ、例えば、機械学習演算では、多層ニューラルネットワークの場合、機械学習装置は各層のニューラルネットワークの出力するニューロンデータを算出し、各層のニューラルネットワークの入力端に対応する複数の入力データに対し乗算、和演算及び関数演算等、機械学習演算に含まれる一連の演算集合を実行してもよい。機械学習装置は機械学習演算により、カレント層の出力ニューロンデータを得た後、当該出力ニューロンデータを次の層のニューラルネットワークの入力ニューロンデータとして再度機械学習演算を行ってもよく、その前に、機械学習装置がいつでも前記のカレント層の出力ニューロンデータを読み取って機械学習演算を行えるように、当該カレント層の出力ニューロンデータを伝送回路によって共有メモリに書き込んで記憶してもよい。
【０４５６】
本実施例によるデータ処理方法では、伝送回路は機械学習装置が送信インタフェースによって発した、データ操作信号のタイプフラグビット及び操作対象データの情報を担持したデータ操作信号に基づいて、共有メモリから機械学習装置に必要な入力データを取得し、受信インタフェースによって入力データを機械学習装置に返し、次に機械学習装置は入力データに基づいて機械学習演算を実行して、出力データを得、当該出力データを新たな入力データとして、伝送回路によって共有メモリに伝送してデータを記憶させる。本実施例では、データ操作信号にデータ操作信号のタイプフラグビット及び操作対象データの情報が担持されているため、伝送回路は当該データ操作信号を受信した後、その中のデータ操作信号のタイプフラグビットに基づいて当該データ操作信号のタイプを判断し、次に当該データ操作信号に担持された操作対象データの情報に合わせて対応する操作を実行することができる。このようにして、データ操作信号のタイプフラグビットに基づいて分類しておくと、速やかに対応する操作を特定することができ、データのアクセスロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４５７】
一実施例では、上記の機械学習装置は少なくとも１つの機械学習ユニットを含み、前記データ操作信号はデータ受信フラグビットをさらに含み、前記入力データを前記機械学習装置に返すことは、前記伝送回路は前記データ受信フラグビットの値に基づいて、前記入力データを受信する目標機械学習ユニットを決定し、前記入力データを前記目標機械学習ユニットに送信することを含む。
【０４５８】
本実施例では、当該機械学習装置に含まれる少なくとも１つの機械学習ユニット（即ちＭＬＵ）によって実行されるデータ信号操作において、１つのデータ受信インタフェースが共有されてもよい。当該ＭＬＵは送信インタフェース又は共有データ受信インタフェースによって伝送回路と信号又はデータの伝送を行うようにしてもよい。なお、当該送信インタフェース及び共有データ受信インタフェースはいずれもハードウェア回路として実現してもよく、当該送信インタフェース及び共有データ受信インタフェースのタイプについて本実施例では限定しない。ここで、データ操作信号はデータ受信フラグビットを含み、当該データ受信フラグビットは入力データを受信できる目標機械学習ユニットを表す。当該データ受信フラグビットの表示方式は、例えば、入力データを受信できる目標機械学習ユニットを１と表示することであってもよく、なお、ここで受信できる目標機械学習ユニットを１と表示するのが例示的なものに過ぎないことを理解されたい。実際の応用において、データを受信できる目標機械学習ユニットを０と表示してもよく、本実施例では当該データ受信フラグビットの表示について具体的に限定しない。具体的には、伝送回路はデータ操作信号中のデータ受信フラグビットの値に基づいて入力データを受信する目標ＭＬＵを決定し、入力データを目標ＭＬＵに送信する。本実施例では、伝送回路が、データ操作信号に担持されているデータ受信フラグビットの表示状態に基づいて、機械学習装置中の入力データを受信できる目標機械学習ユニットを決定することができ、このようにして、機械学習装置の各機械学習ユニットによるデータの受信は、データ操作信号中のデータ受信フラグビットに基づいて決定されるため、データのメモリアクセス中のメモリアクセスロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４５９】
選択可能で、上記のデータ操作信号のタイプフラグビットの値がＣＡＳＴである場合に、伝送回路は当該データ操作信号がブロードキャスト又はマルチキャストコマンドであると決定する。当該選択可能な形態では、当該データ操作信号のタイプフラグビットは、当該データ操作信号の操作タイプを指示するために用いられ、データ操作信号のタイプフラグビットがＣＡＳＴであることは、当該データ操作信号はブロードキャスト又はマルチキャストコマンドであることを表し、なお、ここでＣＡＳＴを用いてブロードキャスト又はマルチキャストコマンドを表すのが、一実施例に過ぎないことを理解されたい。ユーザは実際の状況に応じて、当該データタイプフラグビットを改めて定義することができ、本実施例ではこれに関して限定しない。
【０４６０】
選択可能で、上記のデータ操作信号のタイプフラグビットは第１タイプフラグビット及び第２タイプフラグビットを含んでもよく、前記第１タイプフラグビットは前記データ操作信号がＩ／Ｏコマンドであるか否かを表すために用いられ、前記第２タイプフラグビットは前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであるか否かを表すために用いられる。したがって、第１タイプフラグビットの値がＩ／Ｏである場合に、前記伝送回路は前記データ操作信号がＩ／Ｏコマンドであると決定し、前記第２タイプフラグビットの値が１である場合に、前記伝送回路は前記データ操作信号が前記Ｉ／Ｏコマンドのうちのブロードキャスト又はマルチキャストコマンドであると決定する。
【０４６１】
当該選択可能な形態では、当該データ操作信号は２つのデータタイプデータフラグビットを含み、そのうち第１タイプデータフラグビットは当該データ操作信号のタイプを表し、当該第２タイプデータフラグビットは当該データ操作信号の操作情報内に設定され、当該データ操作信号の具体的なサブタイプを表し、具体的には、当該データ操作信号中の第１タイプフラグビットの値がＩ／Ｏである場合に、伝送回路は当該データ操作信号が入力／出力コマンドであると決定し、当該データ操作信号中の第２タイプフラグビットの値が１である場合に、伝送回路は当該データ操作信号が入力／出力コマンドのうちのブロードキャスト又はマルチキャストコマンドであると決定する。
【０４６２】
一実施例では、図３９でデータ処理方法を提供し、本実施例は、伝送回路はデータ操作信号に担持されたデータ情報に基づいて共有メモリにおいてデータを読み取り、当該データ操作情報に基づいて読み取られたデータを目標機械学習ユニットに返すことの具体的な過程に関する。図３９に示すように、前記操作対象データの情報は前記共有メモリにおける前記操作対象データのソースアドレス、操作対象データ長さ、及びデータ操作後のデータ返しアドレスを含む場合に、上記のＳ４１０３は以下を含む。
Ｓ４２０１、前記伝送回路は前記ソースアドレスから始めて前記共有メモリを読み取り、前記データ長さを満たす前記入力データを取得する。
【０４６３】
本実施例では、データ操作信号の操作対象データの情報に共有メモリにおける操作対象データのソースアドレス、操作対象データ長さ、及びデータ操作後のデータ返しアドレスが担持されているため、伝送回路は当該共有メモリ中のソースアドレスから始めてデータを読み取り、予め設定された規則に基づいて操作対象データ長さを満たすまで読み取り、ここで、当該操作対象データ長さはユーザが実際の状況に応じて自ら設定するものであり、本実施例ではこれに関して限定しない。伝送回路が当該データ長さを満たす入力ニューロンデータ及びデータを取得することは、予め設定された規則に従って共有メモリから当該データ長さを満たすデータを読み取ることであり、ここで、当該予め設定された規則もユーザが実際の状況に応じて制定した規則であり、本実施例ではこれに関して限定せず、例えば、読み取られたデータ長さが当該データ長さを満たすまで、ソースアドレスから始めて一つずつ読み取ることであってもよい。
【０４６４】
Ｓ４２０２、前記伝送回路は前記データ返しアドレス及び前記データ受信フラグビットに基づいて、前記入力データを前記目標機械学習ユニットに返す。
【０４６５】
上記のステップＳ４２０１で伝送回路が取得したデータ長さを満たす入力データに基づいて、当該データを操作対象データの情報中のデータ返しアドレスに返し、ここで、当該操作対象データの情報中のデータ返しアドレスは機械学習装置の複数の目標機械学習ユニット中のアドレスであってもよい。ここで、伝送回路はデータ操作信号に担持されたデータ受信フラグビットに基づいてデータを機械学習装置中のどの目標機械学習ユニットに返すことを決定する。
【０４６６】
本実施例によるデータ処理方法では、伝送回路はソースアドレスから始めて共有メモリを読み取り、前記データ長さを満たす入力データを取得し、データ返しアドレス及びデータ受信フラグビットに基づいて、入力データを目標機械学習ユニットに返す。伝送回路が前記データ長さを満たす入力データを取得する時、当該データ操作信号中のデータ操作情報によって指示された読取規則に従ってデータを読み取るため、伝送回路のデータ読取ロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
一実施例では、図４０でデータ処理方法を提供し、上記のいずれか実施例をベースにして、当該実施例で操作情報はジャンプ情報をさらに含んでもよく、前記ジャンプ情報はジャンプストライドと、各回のジャンプ後に操作されるジャンプデータ長さを含む。当該実施例は、伝送回路は操作情報中のジャンプ情報に基づいて共有メモリ中のデータを読み取ることの具体的な過程に関する。図４０に示すように、上記のＳ４２０１は以下を含む。
Ｓ４３０１、前記伝送回路は前記ソースアドレスから始めて前記共有メモリを読み取り、今回ジャンプ後のジャンプデータ長さに基づいて第１ジャンプデータを取得する。
【０４６７】
本実施例では、データ操作信号の操作情報にジャンプ情報が含まれており、当該ジャンプ情報は当該伝送回路が当該データ操作信号に基づいて操作対象データの情報を読み取る時、当該ジャンプ情報による規則に従って読み取るように指示するために用いられる。ここで、当該ジャンプ情報にはジャンプストライド及び各回のジャンプ後に操作されるジャンプデータ長さが含まれており、ここで、当該ジャンプデータ長さは予め設定されたデータ長さであってもよい。選択可能で、当該ジャンプ情報はストライド（ｓｔｒｉｄｅ）ジャンプ情報及び／又はセグメント（ｓｅｇｍｅｎｔ）ジャンプ情報を含み、前記ストライド（ｓｔｒｉｄｅ）ジャンプ情報は前記データ操作信号の各回のジャンプストライドを表すために用いられ、前記セグメント（ｓｅｇｍｅｎｔ）ジャンプ情報は予め設定された前記データ操作信号の各回の分割サイズを表すために用いられる。
【０４６８】
具体的には、伝送回路は操作対象データの情報中のソースアドレスから始めて共有メモリを読み取り、今回のジャンプ後、読み取られたジャンプデータ長さのデータを第１ジャンプデータとして決定し、ここで、当該第１ジャンプデータは伝送回路がデータの読み取り時に予め設定された長さのデータだけジャンプした後に取得したデータを表し、ここで、当該予め設定された長さはユーザが実際の状況に応じて自ら設定するものであり、本実施例ではこれに関して限定しない。
【０４６９】
Ｓ４３０２、前記伝送回路は前記第１ジャンプデータの最後のアドレスを取得し、前記ジャンプストライドに基づいて前記最後のアドレスから目標ジャンプアドレスにジャンプする。
【０４７０】
伝送回路は、上記のステップＳ４３０１で読み取られた第１ジャンプデータに基づいて、当該第１ジャンプデータの最後のアドレスを取得し、ジャンプ情報中のジャンプストライド（例えば、ｓｔｒｉｄｅストライド）に基づいて、当該第１ジャンプデータの最後のアドレスから当該ジャンプストライドの長さだけジャンプして目標ジャンプアドレスに達し、なお、当該第１ジャンプデータの最後のアドレスから目標ジャンプアドレスまでの長さはジャンプ情報中のジャンプストライドであることを理解されたい。
【０４７１】
Ｓ４３０３、前記伝送回路は、前記目標ジャンプアドレスから始めて、各回のジャンプ後に得たジャンプデータの長さが前記データ長さを満たすまで、ジャンプ後のジャンプデータ長さに基づいて第２ジャンプデータを取得し続ける。
【０４７２】
本ステップでは、伝送回路はデータを読み取る時、上記のステップＳ４３０２で決定された目標ジャンプアドレスから始めて、予め設定された長さのデータだけジャンプし、次に、当該予め設定された長さだけジャンプした後のデータを第２ジャンプデータとして決定し、当該第２ジャンプデータのアドレスから上記のジャンプし始めたソースアドレスまでの長さが機械学習装置に必要なデータのデータ長さを満たした場合に、当該機械学習装置に必要なデータの読み取りが完了することを示し、当該第２ジャンプデータのアドレスから上記のジャンプし始めたソースアドレスまでの長さが機械学習装置に必要なデータのデータ長さを満たさない場合に、当該第２ジャンプデータのアドレスから上記のジャンプし始めたソースアドレスまでの長さが機械学習装置に必要なデータのデータ長さを満たし、即ち当該機械学習装置に必要なデータの読み取りが完了することを示すまで、当該第２ジャンプデータの最後のアドレスから、引き続き上記のステップＳ４３０１からＳ４３０３のジャンプ順番に従ってジャンプして当該データを読み取り続ける。
【０４７３】
本実施例によるデータ処理方法は、その実現原理及び技術的効果が上記のデータ処理装置の実施例に類似するため、ここで再度説明しない。本実施例によるデータ処理方法では、伝送回路がソースアドレスから始めて共有メモリを読み取り、今回ジャンプ後のジャンプデータ長さに基づいて第１ジャンプデータを取得し、当該第１ジャンプデータの最後のアドレスからジャンプストライドだけジャンプして目標ジャンプアドレスに達し、次に目標ジャンプアドレスから始めて、ジャンプ後のジャンプデータ長さに基づいて第２ジャンプデータを取得し、各回のジャンプ後に得たジャンプデータの長さがデータ長さを満たすまで続け、このようにして、操作情報がジャンプ情報を含む場合に、伝送回路はジャンプ情報によるジャンプ規則に基づいてデータを読み取るため、伝送回路のデータ読取ロジックが簡素化され、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４７４】
伝送回路が受信データ操作信号に基づいて操作する時、最初受信したデータ操作信号が符号化コマンドであるため、まず当該データ操作信号を復号して解析する必要があり、そのために本願の実施例はデータ処理方法を提供し、図４１に示すように、前記データ処理装置中の伝送回路が前記データ処理装置中の機械学習装置の送信したデータ操作信号を受信することは以下を含む。
Ｓ４４０１、前記伝送回路は前記データ操作信号を解析して、前記データ操作信号のタイプフラグビット及び操作対象データの情報を得る。
【０４７５】
なお、一般にはデータ処理中にデータ操作信号の数量が比較的多く、その１つのデータ操作信号が伝送回路により処理されている時、他のものが記憶される必要があり、具体的には、伝送回路が当該データ操作信号を解析して、当該データ操作信号に担持されたデータ情報及び当該データ操作信号のタイプフラグビットを解析する。ここで、当該データ操作情報は操作対象データ長さ、目標アドレス及び元アドレス等の情報を含んでもよく、本実施例ではこれに関して限定しない。
【０４７６】
Ｓ４４０２、前記伝送回路はコマンドキューに従って、前記解析されたデータ操作信号を実行し、前記コマンドキューは前記データ操作信号の実行順番を表すために用いられる。
【０４７７】
なお、当該データ操作信号の実行は順番通りに行う必要があることを理解されたい。伝送回路は、上記のステップＳ４４０１で当該データ操作信号を解析して得たデータ操作情報及びタイプフラグビットに基づいて、コマンドキューに従って当該解析後のデータ操作信号を実行する。
【０４７８】
本実施例によるデータ処理方法では、伝送回路が前記データ操作信号を解析することにより、データ操作信号のタイプフラグビット及び操作対象データの情報を得、次に伝送回路はコマンドキューに従って解析されたデータ操作信号を実行し、このようにして、データ操作信号を実行する前に、まずデータ操作信号を解析し、その後、順番通り実行することで、伝送回路によるデータ操作信号に基づく操作実行の速度が大幅に速くなる。
【０４７９】
本願の実施例では、伝送回路がキュー中の順番に従ってデータ操作信号を実行する時、実行すべきのは互いに関連するデータ操作信号であることを考慮して、別の実施例を提供し、図４２に示すように、前記方法は、前記伝送回路がコマンドキューに従って、前記解析されたデータ操作信号を実行する前に、さらに以下を含む。
Ｓ４５０１、前記伝送回路は隣接する前記解析されたデータ操作信号との依存関係を判断して、判断結果を得、前記依存関係はｓ番目のデータ操作信号と前記ｓ番目のデータ操作信号の前のｓ−１番目のデータ操作信号とに相関関係があるか否かを表す。
【０４８０】
ここで、伝送回路は隣接する前記解析されたデータ操作信号との依存関係を判断し、判断結果に基づいて、処理する隣接する２つのデータ操作信号に関連性があることを決定する必要があり、ここで、ｓ番目のデータ操作信号は特定の信号ではなく、データ操作信号のうちの任意の１つの信号を表し、そしてｓ−１番目のデータ操作信号はｓ番目のデータ操作信号の前の信号である。
【０４８１】
選択可能で、前記伝送回路が隣接する前記解析されたデータ操作信号との依存関係を判断することの可能な実現形態として、前記伝送回路は前記ｓ番目のデータ操作信号に基づいて前記ｓ番目のデータ操作信号から必要なデータを抽出するためのｓ番目のデータ操作信号、及び前記ｓ−１番目のデータ操作信号に基づいて前記ｓ−１番目のデータ操作信号から必要なデータを抽出するための第ゼロストレージアドレス区間をそれぞれ取得し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、前記伝送回路は前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係があると決定し、前記第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、前記伝送回路は前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係がないと決定する。ここで、伝送回路はｓ番目のデータ操作信号のｓ番目のデータ操作信号とｓ−１番目のデータ操作信号の第ゼロストレージアドレス区間との関係に基づいて、隣接する前記解析されたデータ操作信号との依存関係をそれぞれ判断し、判断の方法としては、第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がない場合に、当該ｓ番目のデータ操作信号とｓ−１番目のデータ操作信号とに依存関係がなく、第１ストレージアドレス区間と前記第ゼロストレージアドレス区間との間に重なる領域がある場合に、ｓ番目のデータ操作信号とｓ−１番目のデータ操作信号とに依存関係があることを示してもよい。
【０４８２】
Ｓ４５０２、前記判断結果が、前記ｓ番目のデータ操作信号と前記ｓ−１番目のデータ操作信号とに依存関係があることである場合に、前記伝送回路は前記ｓ番目のデータ操作信号をキャッシュし、前記ｓ−１番目のデータ操作信号の実行完了後、前記ｓ番目のデータ操作信号を抽出する。
【０４８３】
上記のステップで伝送回路が判定した隣接する２つのデータ操作信号の依存関係に基づいて、順番通りにデータ操作信号を実行し、判断結果が、ｓ番目のデータ操作信号とｓ−１番目のデータ操作信号とに依存関係があることである場合に、伝送回路は当該ｓ番目のデータ操作信号をキャッシュして、ｓ−１番目のデータ操作信号の実行完了後、当該ｓ番目のデータ操作信号を抽出する。
【０４８４】
本実施例によるデータ処理方法は、伝送回路がまず隣接する２つのデータ操作信号の関連性を判断することでデータ操作信号の一貫性を確保するため、このようにして着実な準備作業により後期に当該データ操作信号に基づいて対応する操作を順調に実行することができ、データのアクセス効率が向上し、機械学習チップのデータアクセス時のアクセス速度が大幅に速くなる。
【０４８５】
情報技術が発展し続けニーズが日々増えるのにつれて、データアクセス及びデータ処理に対する要求がますます高まり、これに伴ってデータを処理とアクセスする一部のプロセッサの一層の高度化が求められる。汎用プロセッサを例とすると、複数の汎用プロセッサコア（例えば、ＣＰＵコア）からなるマルチコアプロセッサは、その優れた並行計算能力から、主流になる。
【０４８６】
しかしながら、現在機械学習アルゴリズムが発展し続けるのにつれて、ますます多くのアーキテクチャの機械学習チップが次第に開発されてきており、これらの機械学習チップは常にユニキャスト読取、ブロードキャスト等の多くの方式で共有メモリ中のデータをアクセス又は処理する必要があり、そのために、それに応じて複数の伝送インタフェースが設けられ、機械学習チップの面積が大きいことを招く。
【０４８７】
したがって、どのようにして機械学習チップの伝送インタフェースを簡素化して機械学習チップの面積を減らすかは、当業者が早急に解決すべき技術的課題になる。
【０４８８】
上記の問題を解决するために、本願は以下の技術的解決手段を提供する。
【０４８９】
本願の実施例によるデータ処理装置は、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアの組み合わせとして実現してもよく、当該データ処理装置は図４３に示す内容の一部又はその全てであってもよい。前記データ処理装置は、機械学習装置１１と、伝送回路１２と、共有メモリ１３とを含んでもよく、前記機械学習装置１１は少なくとも１つの機械学習ユニット１５を含んでもよく、前記機械学習ユニット１５が実行するユニキャスト読取操作及びブロードキャスト操作において１つのデータ受信インタフェース１４２が共有され、前記機械学習ユニットは送信インタフェース１４１及び共有データ受信インタフェース１４２を介して前記伝送回路１２に接続され、前記伝送回路１２は前記共有メモリ１３に接続され、前記伝送回路１２は、前記機械学習装置１１が前記送信インタフェース１４１によって発したデータ操作信号に基づいて、前記共有メモリ１３から前記機械学習装置に必要な入力データを取得し、前記入力データを前記共有データ受信インタフェース１４２によって前記機械学習装置１１に返すために用いられる。なお、上記機械学習ユニット１５は第１伝送インタフェース１４（未図示）を含んでもよく、第１伝送インタフェースは送信インタフェース１４１と、共有データ受信インタフェース１４２とを含んでもよい。
【０４９０】
選択可能で、前記機械学習装置１１は入力データに基づいて機械学習演算を実行して、出力データを得るために用いてもよい。選択可能で、前記機械学習装置１１は、さらに、出力データを伝送回路１２によって共有メモリ１３に伝送してデータを記憶させるために用いてもよい。具体的には、機械学習装置１１がニューラルネットワーク演算を実行するために用いられる場合に、機械学習装置１１は入力ニューロンデータ及び重み値データに基づいて人工ニューラルネットワーク演算を実行して、出力ニューロンデータを得、そして、出力ニューロンデータを新たな入力ニューロンデータとして、伝送回路１２によって共有メモリ１３に伝送してデータを記憶させるようにしてもよい。
【０４９１】
なお、上記の機械学習ユニット、伝送回路、共有メモリ及び様々なタイプのインタフェースはいずれもハードウェア回路として実現してもよい。例示的に、伝送回路はブロードキャストバス（ｂｒｏａｄｃａｓｔ  ｂｕｓ）であってもよく、共有メモリは非揮発性及び／又は揮発性メモリであってもよく、ランダムアクセスメモリ（ＲＡＭ）、高速キャッシュメモリ等を含むが、これらに限定されず、様々なタイプのインタフェースは１つ又は複数のデータＩ／Ｏ（ｉｎ／ｏｕｔ、入力／出力）インタフェース又はＩ／Ｏピンに対応してもよい。
【０４９２】
本願によるデータ処理装置は機械学習演算に応用されてもよく、ここで、機械学習演算にはニューラルネットワーク演算、ｋ−ｍｅａｎｓ演算、サポートベクターマシン演算等が含まれる。上記の機械学習装置がニューラルネットワーク計算を行う場合には、選択可能で、上記の入力データは入力ニューロンデータ及び／又は重み値データを含んでもよく、当該入力ニューロンデータ及び重み値データは機械学習装置が人工ニューラルネットワーク演算を実行する時に入力されるべきデータであり、これに応じて、上記の出力データは出力ニューロンデータを含んでもよく、当該出力ニューロンデータは機械学習装置が人工ニューラルネットワーク演算を実行する時に出力した中間結果又は最終結果である。なお、重み値データ及びニューロンデータは繰り返し使用が可能であるため、計算中に入力データは必ずしも入力ニューロンデータ及び重み値データを含むとは限らず、入力ニューロンデータだけを含み、又は重み値データだけを含んでもよいことを理解されたい。
【０４９３】
ニューラルネットワーク演算を例とすると（追加の説明がない限りは、本実施例でニューラルネットワーク演算を例として説明する）、本願によるデータ処理装置はニューラルネットワークにおける１層の演算を行ってもよいし、ニューラルネットワークにおける多層の演算を行ってもよい。多層ニューラルネットワークの場合は、次のように実現する。フォワード演算において、前の層の人工ニューラルネットワークの実行完了後、次の層の演算コマンドでは演算ユニットにおいて算出された出力ニューロンデータを次の層の入力ニューロンデータとして演算を実行し（又は、当該出力ニューロンデータに或る操作を行ってから次の層の入力ニューロンデータとする）、同時に重み値データを次の層の重み値データに置き換える。バックワード演算において、前の層の人工ニューラルネットワークのバックワード演算の実行完了後、次の層の演算コマンドでは演算ユニットにおいて算出された入力ニューロン勾配（入力されるニューロンデータとしてもよい）次の層の出力ニューロン勾配として演算を実行し（出力されるニューロンデータとしてもよい）（又は、当該入力ニューロン勾配に或る操作を行ってから次の層の出力ニューロン勾配とする）、同時に重み値データを次の層の重み値データに置き換える。
【０４９４】
図１に示すように、選択可能な一形態では、上記の機械学習装置１１は複数の機械学習ユニット１５を含んでもよい。多層ニューラルネットワークの演算については、フォワード演算中のある層のニューラルネットワークの計算を例として説明する。一実施形態では、上記の機械学習装置は複数の機械学習ユニット（ＭＬＵ、Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｕｎｉｔ）によって並行してニューラルネットワーク中の当該層の全てのニューロンの出力ニューロンデータを計算するようにしてもよい。例示的に、当該機械学習装置が４つの機械学習ユニットを含み、当該層ニューラルネットワークが１００個のニューロンを有する場合に、各機械学習ユニットに２５個のニューロンを配分して処理させるようにしてもよく、対応する演算コマンドを設定することで実現することができ、当該プロセスでは、各機械学習ユニットはいずれも伝送回路によって、配分された当該層の２５個のニューロンのそれぞれに対応する入力ニューロンデータ及び重み値データを共有メモリから取得して、これを用いて計算して配分された当該層の２５個のニューロンの出力ニューロンデータを算出し、配分された当該層の２５個のニューロンの出力ニューロンデータを伝送回路によって共有メモリに伝送して記憶させるようにしてもよい。なお、上記の各機械学習ユニットは配分された当該層の複数のニューロンデータを処理する時に、並行して計算して処理することができることを理解されたい。このようにして層ごとにニューラルネットワークの計算を並行して実行することで、ニューラルネットワーク計算の並行処理を実現でき、処理効率が向上する。
【０４９５】
選択可能な別の形態では、上記の機械学習装置は複数の機械学習ユニットを利用して特定の順番に従ってニューラルネットワーク中の各層の全てのニューロンの出力ニューロンデータをそれぞれ算出してもよい。当該プロセスでは、前の機械学習ユニットが当該層の全てのニューロンの出力ニューロンデータを伝送回路によって共有メモリに伝送して記憶させてもよく、これにより次の機械学習ユニットは当該層の全てのニューロンの出力ニューロンデータを抽出して次の層の入力ニューロンデータとして計算を実行することができる。なお、上記の構成は各層のニューラルネットワークの計算量が多くないシーン、例えば、各層のニューロン数目が比較的少ないニューラルネットワークの計算に応用することを理解されたい。
【０４９６】
図４４を参照すると、図４３の機械学習ユニット０を例として、機械学習ユニットについて詳細に説明する。一形態では、機械学習ユニット１５は、送信インタフェース１４１と、共有データ受信インタフェース１４２と、少なくとも１つの演算ユニット１５１と、前記演算ユニット１５１に接続されたコントローラユニット１５２とを含んでもよく、前記演算ユニット１５１は１つの主処理回路１５１ａと、複数の副処理回路１５１ｂとを含み、前記演算ユニット１５１は前記送信インタフェース１４１及び共有データ受信インタフェース１４２を介して前記伝送回路１２に接続され、
前記コントローラユニット１５２は、前記送信インタフェース１４１によって前記伝送回路１２に前記データ操作信号及び前記出力ニューロンデータを送信し、前記共有データ受信インタフェース１４２によって、前記伝送回路１２が前記共有メモリ１３から取得した前記入力ニューロンデータ及び前記重み値データを受信し、前記入力ニューロンデータ及び前記重み値データを前記主処理回路１５１ａ及び／又は前記副処理回路１５１ｂに送信するために用いられ、
前記主処理回路１５１ａは、前記入力ニューロンデータ及び／又は重み値データを前記複数の副処理回路１５１ｂに分配するために用いられ、前記複数の副処理回路１５１ｂは、前記ニューロンデータ及び重み値データに基づいて並行して中間演算を実行して複数の中間結果を得、複数の中間結果を前記主処理回路１５１ａに伝送するために用いられ、前記主処理回路１５１ａは、さらに、前記複数の中間結果に後続の処理を実行して計算結果を得るために用いられる。ここで、前記後続の処理は活性化演算を含んでもよい。具体的には、当該コントローラユニット１５２は、さらに、計算コマンドを取得し、当該計算コマンドを解析して複数の演算コマンドを得、当該複数の演算コマンドを前記主処理回路に送信するようにしてもよい。なお、本実施例では、機械学習ユニットが複数の演算ユニットを含む場合に、各演算ユニットは上記の送信インタフェース及び上記の共有データ受信インタフェースを共用してもよいことを理解されたい。
【０４９７】
例えば、選択可能な一形態では、主処理回路は１つのコントローラユニットを含んでもよく、当該コントローラユニットは、主コマンド処理ユニットを含んでもよく、具体的に演算コマンドをマイクロコマンドとして復号するために用いられる。また、選択可能な別の形態では、副処理回路は別のコントローラユニットを含んでもよく、当該別のコントローラユニットは、副コマンド処理ユニットを含んで、具体的にマイクロコマンドを受信及び処理するために用いられる。上記のマイクロコマンドはコマンドの下位コマンドであってもよく、当該マイクロコマンドはコマンドに対する区分又は復号により得ることができ、さらに各デバイス、各ユニット又は各処理回路の制御信号として復号されることが可能である。例えば、積算マイクロコマンドは畳み込みコマンドの下位コマンドである。
【０４９８】
例示的に、上記の機械学習ユニットの構造を例として、当該機械学習ユニットのニューラルネットワーク演算のフローについて詳細に説明し、以下のステップＳ５１０１〜Ｓ５１０６を参照する。
Ｓ５１０１、コントローラユニットのコマンド記憶ユニットの最初のアドレスにあらかじめ１つのＩＯコマンドを記憶する。
Ｓ５１０２、コントローラユニットはコマンド記憶ユニットの最初のアドレスから当該ＩＯコマンドを読み取り、次に当該ＩＯコマンドから訳出された制御信号に基づいて、チップ外インタフェースによってチップ外メモリから当該機械学習ユニットに対応するニューラルネットワーク演算コマンドを取得し、又は、伝送回路によって共有メモリから当該機械学習ユニットに対応するニューラルネットワーク計算コマンドを取得し、得られた計算コマンドをコマンド記憶ユニットに記憶する。
Ｓ５１０３、コントローラユニットはコマンド記憶ユニットから次のＩＯコマンドを読み込み、当該ＩＯコマンドから訳出されたデータ操作信号に基づいて、伝送回路によって共有メモリから演算ユニットに必要な全てのデータブロックを読み取り、これには配分すべき当該層のニューロンの入力ニューロンデータ及び重み値データを含み、さらには、高速な活性化関数演算を行うための補間表、演算デバイスパラメータを設定するための定数表、バイアスデータ等を含んでもよく、上記のデータ操作信号には共有メモリにおける上記のデータブロックのソースアドレスを含む。
Ｓ５１０４、コントローラユニットはコマンド記憶ユニットから次のＣＯＮＦＩＧ（設定）コマンドを読み込み、当該ＣＯＮＦＩＧコマンドから訳出された制御信号に基づいて、当該層のニューラルネットワークの計算に必要な様々な定数を設定し、例えば、演算ユニットは活性化関数に必要な定数に基づいてその内部のレジスタの値を設定する。
Ｓ５１０５、コントローラユニットはコマンド記憶ユニットから次のＣＯＭＰＵＴＥ（計算）コマンドを読み込み、演算ユニットは当該ＣＯＭＰＵＴＥコマンドから訳出された制御信号（即ち演算コマンド）に基づいて、配分された当該層のニューロンの入力ニューロンデータ、重み値データ及び演算コマンドを主処理回路に伝送し、主処理回路は配分された当該層のニューロンの入力ニューロンデータをブロードキャストデータとして決定し、重み値データを分配データとして決定し、１つの分配データを複数のデータブロックに配分し、複数のデータブロックのうちの少なくとも１つのデータブロック、ブロードキャストデータ及び複数の演算コマンドのうちの少なくとも１つの演算コマンドを副処理回路に送信して、副処理回路が乗算処理回路、累積処理回路等によって中間結果を得、主処理回路が中間結果及び活性化処理回路等により、配分された当該層のニューロンが出力するニューロンデータを得るようにしてもよい。
Ｓ５１０６、コントローラユニットはコマンド記憶ユニットから次のＩＯコマンドを読み込み、当該ＩＯコマンドから訳出されたデータ操作信号に基づいて、上記の出力ニューロンデータを、伝送回路によって共有メモリに伝送して記憶させて、次の層の一部ニューロンの入力ニューロンデータを得、上記のデータ操作信号には共有メモリにおける上記の出力ニューロンデータの目的アドレスが含まれる。
【０４９９】
以下、Ｓ５１０５について例示的に説明する。ニューラルネットワーク演算中の全結合演算を例とすると、ある層のニューラルネットワークのプロセスは、ｙ＝ｆ（ｗｘ＋ｂ）であってもよく、ここで、ｘは入力ニューロン行列、ｗは重み値行列、ｂはバイアススカラーであり、ｆは活性化関数で、具体的には、ｓｉｇｍｏｉｄ関数、ｔａｎｈ、ｒｅｌｕ、ｓｏｆｔｍａｘ関数のうちの任意の一つであってもよい。ここで主副処理回路同士は二分木の関係（ツリー型関係の１種）であり、演算ユニットは１つの主処理回路と、８つの副処理回路とを有すると仮定すると、上記のＳ５１０５は次のように実現することができる。コントローラユニットは共有メモリ内から入力ニューロン行列ｘ、重み値行列ｗ及び全結合演算コマンドを取得し、入力ニューロン行列ｘ、重み値行列ｗ及び全結合演算コマンドを主処理回路に伝送し、主処理回路は当該入力ニューロン行列ｘをブロードキャストデータとして決定し、重み値行列ｗを分配データとして決定し、重み値行列ｗを８つのサブ行列に区分し、次に８つのサブ行列をツリー型モジュールによって８つの副処理回路に分配し、入力ニューロン行列ｘを８つの副処理回路にブロードキャストし、副処理回路は並行して８つのサブ行列と入力ニューロン行列ｘの乗算演算と累積演算を実行して８つの中間結果を得、８つの中間結果を主処理回路に送信し、主処理回路は、８つの中間結果をソートしてｗｘの演算結果を得、当該演算結果にバイアスｂ演算を実行した後、活性化演算を実行して最終結果ｙを得るために用いられる。
【０５００】
なお、上記の各機械学習ユニットが並行して或る層の配分された各ニューロンについて計算を実行できるため、共有メモリには各層の全てのニューロンの出力ニューロンデータ、及び次の層の全てのニューロンに必要な入力ニューロンデータが記憶されてもよく、重み値データを繰り返し使用するか、又は共有メモリから新たな層のニューラルネットワークの重み値データを取得してもよいことを理解されたい。
【０５０１】
なお、各機械学習ユニットは１つの演算ユニットを含んでもよいし、複数の演算ユニットを含んでもよく、且つ各演算ユニットの構造は同じでもよいし、異なってもよい。ここで、各演算ユニットの構造は、主処理回路と各副処理回路の関係として表して、ツリー型、Ｈ型、シストリックアレイ型の関係を含んでもよいが、これらに限定されない。本願による技術的解決手段において、演算ユニットは１つの主ユニット及び複数の副ユニットを含む構造として設定され、フォワード演算の計算コマンドに対して、フォワード演算の計算コマンドに基づいてデータを区分してもよく、このようにして複数の副処理回路により、計算量が大きな部分について並行して演算することができ、演算速度を向上させ、演算時間を短縮させ、さらには消費パワーを低減することができる。
【０５０２】
上記の図４３に示す本実施例のデータ処理装置の説明に戻る。ここで、ユニキャスト読取操作はユニキャスト方式の読取操作であり、対応するデータ操作信号は、ユニキャスト読取コマンド、ユニキャスト読取要求であってもよく、ブロードキャスト操作に対応するデータ操作信号は、ブロードキャストコマンド、マルチキャストコマンド、ブロードキャスト要求、マルチキャスト要求であってもよい。例示的に、ユニキャスト読取コマンドはユニキャスト方式の読取コマンドであり、ある機械学習ユニットの送信した、共有メモリ中のソースアドレスの入力ニューロンデータ及び重み値データに対する読取コマンドであってもよく、当該入力ニューロンデータ及び重み値データを上記の機械学習ユニットに返す必要があり、当該入力ニューロンデータ及び重み値データは当該機械学習ユニットが計算コマンドに基づいて、ある層の配分されたニューロンの計算中に当該配分されたニューロンに必要な入力ニューロンデータ及び重み値データであり、同様に、ユニキャスト読取要求はユニキャスト方式の読取要求であり、ブロードキャストコマンドはある機械学習ユニットの送信した、共有メモリ中のソースアドレスの入力ニューロンデータ及び重み値データに対する読取コマンドであり、当該入力ニューロンデータ及び重み値データを上記の機械学習装置中の全ての機械学習ユニットに返す必要があり、当該入力ニューロンデータはある層の全てのニューロンに必要な入力ニューロンデータ、即ち前の層の全ての出力ニューロンデータであってもよく、当該重み値データは繰り返し使用される重み値データ、例えば、畳み込みカーネルであってもよく、マルチキャストコマンドは、ブロードキャストコマンドと違うのは、マルチキャストコマンドのデータを返す対象は上記の機械学習装置中の全ての機械学習ユニットではなく、当該マルチキャストコマンドのフラグフィールドに対応する複数の機械学習ユニットであることにある。また、一般には、コマンドと要求の相違点は、コマンドを実行するのにオーバーヘッドが高いが、コマンドに多くの情報が含まれ、要求を実行するのにオーバーヘッドが少ないが、要求に少ない情報が含まれることである。
【０５０３】
一般に、機械学習ユニットがユニキャスト読取操作及びブロードキャスト操作において返されるデータを受信する時に、少なくとも対応する２つのデータインタフェースが必要であり、それぞれ伝送回路がユニキャスト読取データ操作信号に対して返したユニキャスト読取データを受信することと、伝送回路がブロードキャスト及び／又はマルチキャストデータ操作信号に対して返したブロードキャスト及び／又はマルチキャストデータを受信することのために用いられる。本実施例では、図１を参照すると、機械学習ユニット０の受信インタフェースは共有データ受信インタフェースの１つのみ、例えば、インタフェースｃ０であり、伝送回路がユニキャスト読取データ操作信号に対して返したユニキャスト読取データ、及び伝送回路がブロードキャスト及び／又はマルチキャストデータ操作信号に対して返したブロードキャスト及び／又はマルチキャストデータを受信することができる。
【０５０４】
なお、伝送回路が共有メモリから必要な入力ニューロンデータ及び重み値データを読み取った後、キャッシュが存在する場合に、キャッシュに一時的に記憶させてもよく、そして伝送回路は当該データの要求の由来、即ち当該データに関連するデータ操作信号に対応するデータ返し対象（機械学習ユニット）を判断し、当該データを共有データ受信インタフェースに送信するようにしてもよく、ユニキャスト読取操作の場合に、上記の共有データ受信インタフェースは当該データ返し対象に対応する１つの機械学習ユニットの共有データ受信インタフェースであり、ブロードキャスト操作の場合に、上記の共有データ受信インタフェースは当該データ返し対象に対応する複数の機械学習ユニットの複数の共有データ受信インタフェースであることを理解されたい。
【０５０５】
したがって、本実施例に示すデータ処理装置では、少なくとも１つの機械学習ユニットはユニキャスト読取操作及びブロードキャスト操作を実行する時に前記機械学習ユニット上の１つのデータ受信インタフェースを共有することにより、機械学習ユニット中の返すためのデータインタフェースの数量を効果的に低減し、ハードウェアリソースを節約し、ハードウェアの面積及び消費パワーを低減することができる。
【０５０６】
ここで、上記の機械学習ユニットの送信インタフェースについて詳細に説明する。図４５を参照すると、上記の図４３を踏まえ、前記送信インタフェース１４１は、ユニキャスト読取信号送信インタフェース１４１１と、ブロードキャスト信号送信インタフェース１４１２とを含んでもよく、前記機械学習ユニット１５は前記ユニキャスト読取信号送信インタフェース１４１１及び前記共有データ受信インタフェース１４２を介して前記伝送回路１２にそれぞれ接続されることで、ユニキャスト読取操作を実現し、そして、前記ブロードキャスト信号送信インタフェース１４１２及び前記共有データ受信インタフェース１４２を介して前記伝送回路１２にそれぞれ接続されることで、ブロードキャスト操作を実現する。ＭＬＵ０については、ユニキャスト読取信号送信インタフェースはインタフェースａ０に対応し、ブロードキャスト信号送信インタフェースはインタフェースｂ０に対応し、共有データ受信インタフェースはインタフェースｃ０に対応し、ここで、インタフェースａ０は伝送回路にユニキャスト読取データ操作信号を送信するために用いてもよく、インタフェースｂ０は伝送回路にブロードキャスト及び／又はマルチキャストデータ操作信号を送信するために用いてもよく、インタフェースｃ０は伝送回路がユニキャスト読取データ操作信号に対して返したユニキャスト読取データ、及び伝送回路がブロードキャスト及び／又はマルチキャストデータ操作信号に対して返したブロードキャスト及び／又はマルチキャストデータを受信するために用いてもよい。したがって、本実施例ではユニキャスト読取信号送信インタフェース及びブロードキャスト信号送信インタフェースによって異なるタイプのデータ操作信号の送信をそれぞれ実現することで、処理ロジックが簡素化される。
【０５０７】
一実施形態では、上記のユニキャスト読取操作及びブロードキャスト操作に応じて、図４５に示すように、上記データ処理装置の伝送回路１２は、第２伝送インタフェース１２０と、前記第２伝送インタフェース１２０に接続された読み書き処理回路１２１と、前記読み書き処理回路１２１に接続された調停回路１２２とを含んでもよく、前記読み書き処理回路１２１は、前記少なくとも１つの機械学習ユニット１５が前記送信インタフェース１４１及び前記第２伝送インタフェース１２０によって送信したデータ操作信号を受信し、前記データ操作信号を前記調停回路１２２に伝送し、そして、前記調停回路１２２が前記共有メモリ１３から取得したデータを前記第２伝送インタフェース１２０及び前記共有データ受信インタフェース１４２によって前記データ操作信号に対応する機械学習ユニットに返すために用いられ、前記調停回路１２２は、予め設定された調停規則に基づいて、前記読み書き処理回路１２１から受信されたデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて前記共有メモリ１３中のデータに操作を行うために用いられる。
【０５０８】
具体的には、前記読み書き処理回路１２１はユニキャスト読取信号を処理してもよいし、ブロードキャスト信号及び／又はマルチキャスト信号を処理してもよい。一実施形態では、前記読み書き処理回路１２１は、ユニキャスト読取処理回路を含んでもよく、前記ユニキャスト読取処理回路はユニキャスト読取信号、又はブロードキャスト信号及び／又はマルチキャスト信号を処理してもよく、ここで、前記ユニキャスト読取処理回路がブロードキャスト信号及び／又はマルチキャスト信号を処理する時に、少なくとも１つの機械学習ユニットが前記ブロードキャスト信号送信インタフェース及び前記第２伝送インタフェースによって送信したブロードキャスト及び／又はマルチキャスト信号を受信して、前記ブロードキャスト及び／又はマルチキャスト信号を前記調停回路に伝送し、そして、前記調停回路が前記共有メモリから取得したデータを、前記第２伝送インタフェース及び共有データ受信インタフェースによって予め設定された順番に従ってそれぞれ前記ブロードキャスト及び／又はマルチキャスト信号に対応する複数の機械学習ユニットに送信するようにしてもよく、上記の予め設定された順番は上記の複数の機械学習ユニットにデータを返す順番であり、各機械学習ユニットの優先度に基づいてソートしてもよいし、複数の機械学習ユニットの番号順に従ってもよいし、又は他の順番であってもよい。
【０５０９】
選択可能で、前記読み書き処理回路１２１は、ユニキャスト読取処理回路と、ブロードキャスト処理回路とを含んでもよく、前記ユニキャスト読取処理回路はユニキャスト読取信号を処理するために用いられ、前記ブロードキャスト処理回路は、ブロードキャスト信号及び／又はマルチキャスト信号を処理するために用いられる。
【０５１０】
ここで、ユニキャスト読取処理回路は、少なくとも１つの機械学習ユニットがユニキャスト読取信号送信インタフェース及び第２伝送インタフェースによって送信したユニキャスト読取信号を受信し、前記ユニキャスト読取信号を前記調停回路に伝送し、そして、前記調停回路が前記共有メモリから取得したデータを、前記第２伝送インタフェース及び共有データ受信インタフェースによって前記ユニキャスト読取信号に対応する機械学習ユニットに送信するために用いることができ、前記ブロードキャスト読取処理回路は少なくとも１つの機械学習ユニットが前記ブロードキャスト信号送信インタフェース及び前記第２伝送インタフェースによって送信したブロードキャスト及び／又はマルチキャスト信号を受信し、前記ブロードキャスト及び／又はマルチキャスト信号を前記調停回路に伝送し、そして、前記調停回路が前記共有メモリから取得したデータを、前記第２伝送インタフェース及び共有データ受信インタフェースによって前記ブロードキャスト及び／又はマルチキャスト信号に対応する複数の機械学習ユニットに送信するために用いることができる。
【０５１１】
ここで、予め設定された調停規則は、調停回路が特定の規則に従って複数のデータ操作信号の優先度を決定することで、各データ操作信号の優先度に基づいて操作すべき対象を決定し、即ち優先度の高いデータ操作信号を調停が成功したデータ操作信号として選択するようにするために用いてもよく、例えば、伝送速度が速いデータ操作信号の優先度を高優先度に設定し、伝送速度が遅いデータ操作信号の優先度を低優先度に設定してもよく、例示的に、上記の予め設定された調停規則はラウンドロビン・スケジューリング調停規則、最大搬送波対干渉比スケジューリング規則、比例公平性規則等であってもよい。また、調停回路は機械学習ユニットと読み書き処理回路との間のデータパス（インタフェース対インタフェース）がアイドルであるか否かを補助的な調停規則としてもよく、つまり、調停が成功したデータ操作信号に対応するデータパスはアイドルである。
【０５１２】
具体的には、ユニキャスト読取処理回路は第２伝送インタフェースを介して複数の機械学習ユニットに接続して、複数の機械学習ユニットのユニキャスト読取操作を処理するようにしてもよく、複数のユニキャスト読取コマンドをユニキャスト読取処理回路のユニキャスト読取コマンドキャッシュキューにキャッシュしてもよくて、ユニキャスト読取コマンドを解析して対応するユニキャスト読取コマンドを得、ユニキャスト読取処理回路のユニキャスト読取要求キャッシュキューにキャッシュして、調停回路に調停させるようにしてもよく、ユニキャスト読取要求については、解析操作を行うことなく、ユニキャスト読取要求キャッシュキューにキャッシュしてもよい。類似的に、ブロードキャスト処理回路もは、第２伝送インタフェースによって複数の機械学習ユニットに接続してもよく、ブロードキャスト及び／又はマルチキャストコマンドキャッシュキュー並びにブロードキャスト及び／又はマルチキャスト要求キャッシュキューを含んでもよく、ここで再度説明しない。選択可能な一形態では、読み書き処理回路は１つのユニキャスト読取処理回路と、１つのブロードキャスト処理回路とを含んでもよい。
【０５１３】
したがって、本実施例はユニキャスト読取処理回路によってユニキャスト読取操作を処理することができ、ブロードキャスト処理回路によってブロードキャスト操作を処理することができ、異なる処理回路によって異なるタイプのデータ操作の処理をそれぞれ実現することで、処理ロジックが簡素化される。
【０５１４】
選択可能な一形態では、図４５に示すように、図４３に記載の上記のデータ処理装置をベースにして、第２伝送インタフェースは異なるタイプのデータ操作を処理するインタフェースに細分化するようにしてもよく、具体的には、前記第２伝送インタフェース１２０は、前記ユニキャスト読取処理回路に接続された少なくとも１つのグループのユニキャスト読取信号受信インタフェース及びユニキャスト読取データ送信インタフェース、及び前記ブロードキャスト処理回路に接続された少なくとも１つのグループのブロードキャスト信号受信インタフェース及びブロードキャストデータ送信インタフェースとを含んでもよく、前記ユニキャスト読取信号受信インタフェースは前記機械学習ユニットのユニキャスト読取信号送信インタフェースに接続され、前記ブロードキャスト信号受信インタフェースは前記機械学習ユニットのブロードキャスト信号送信インタフェースに接続され、前記伝送回路中の前記ユニキャスト読取データ送信インタフェース及び前記ブロードキャストデータ送信インタフェースはそれぞれ前記機械学習ユニットの共有データ受信インタフェースに接続される。本実施例では、第２伝送インタフェースのうちの各インタフェースによって異なるタイプのデータ操作の処理をそれぞれ実現することができ、処理ロジックが簡素化される。
【０５１５】
一実施形態では、図４５に示すように、読み書き処理回路は複数の処理回路グループに分割されてもよく、１つの機械学習ユニットは１つの処理回路グループに対応し、前記処理回路グループは１つのユニキャスト読取処理回路及び１つのブロードキャスト処理回路を少なくとも含む。例示的に、ＭＬＵ０はユニキャスト読取処理回路０及びブロードキャスト処理回路０に対応し、ＭＬＵｎはユニキャスト読取処理回路ｎ及びブロードキャスト処理回路ｎに対応する。同様に、第２伝送インタフェースには１つの処理回路グループ及び１つの機械学習ユニットにそれぞれ接続された、機械学習ユニットとユニキャスト読取処理回路との一対一の接続、及び機械学習ユニットとブロードキャスト処理回路との一対一の接続を実現するための１つのグループのインタフェースが存在する。
【０５１６】
例えば、ＭＬＵ０及びユニキャスト読取処理回路０については、第２伝送インタフェースのうちのインタフェースｄ０はユニキャスト読取信号受信インタフェースとしてＭＬＵ０のユニキャスト読取信号送信インタフェースａ０及びユニキャスト読取処理回路０にそれぞれ接続され、ＭＬＵ０から送信されたユニキャスト読取信号を受信してユニキャスト読取処理回路０に伝送して処理させるために用いることができ、第２伝送インタフェースのうちのインタフェースｅ０はユニキャスト読取データ送信インタフェースとしてＭＬＵ０の共有データ受信インタフェースｃ０及びユニキャスト読取処理回路０にそれぞれ接続され、ユニキャスト読取処理回路０の送信した上記のユニキャスト読取信号に対応する入力ニューロンデータ及び重み値データを受信してＭＬＵ０のインタフェースｃ０に伝送するために用いることができる。ＭＬＵ０及びブロードキャスト処理回路０については、第２伝送インタフェースのインタフェースｆ０は、ブロードキャスト信号受信インタフェースとしてＭＬＵ０のブロードキャスト信号送信インタフェースｂ０及びブロードキャスト処理回路０にそれぞれ接続され、ＭＬＵ０から送信されたブロードキャスト及び／又はマルチキャスト信号を受信してブロードキャスト処理回路０に伝送して処理させるために用いることができ、第２伝送インタフェースのインタフェースｇ０は、ブロードキャストデータ送信インタフェースとして複数のＭＬＵの共有データ受信インタフェースｃｉ及びブロードキャスト処理回路０にそれぞれ接続され、ブロードキャスト処理回路０の送信した上記ブロードキャスト及び／又はマルチキャスト信号に対応する入力ニューロンデータ及び重み値データを受信して複数のＭＬＵの共有データ受信インタフェースｃｉに伝送するために用いることができる。
【０５１７】
したがって、本実施例では機械学習ユニットとユニキャスト読取処理回路との一対一の接続、及び機械学習ユニットとブロードキャスト処理回路との一対一の接続により、ターゲットを絞った一対一のデータ操作処理を実現し、データ操作のアクセスロジックの複雑性を下げ、抵触を低減し、処理効率を高めることができる。
【０５１８】
図４６を参照すると、選択可能な一形態では、図３に記載の上記のデータ処理装置をベースにして、伝送回路のインタフェース数量を削減し、具体的には、前記読み書き処理回路１２１は、ブロードキャスト処理回路と、複数のユニキャスト読取処理回路とを含んでもよく、前記複数のユニキャスト読取処理回路と前記複数の機械学習ユニットは一対一で接続され、前記ブロードキャスト処理回路と前記複数の機械学習ユニットは一対多で接続される。例示的に、ＭＬＵ０はユニキャスト読取処理回路０及び上記のブロードキャスト処理回路に対応し、ＭＬＵｎはユニキャスト読取処理回路ｎ及び上記のブロードキャスト処理回路に対応する。同様に、第２伝送インタフェースには、１つのユニキャスト読取処理回路及び１つの機械学習ユニットにそれぞれ接続された、機械学習ユニットとユニキャスト読取処理回路との一対一の接続を実現するための１つのグループのインタフェースが存在し、第２伝送インタフェースには、１つのブロードキャスト処理回路及び複数の機械学習ユニットにそれぞれ接続された、機械学習ユニットとブロードキャスト処理回路との多対一の接続を実現するための１つのグループのインタフェースがさらに存在し、具体的には、第２伝送インタフェースは、ブロードキャスト処理回路に接続された１つのグループのブロードキャストインタフェースを含んでもよく、上記のブロードキャストインタフェースは、ブロードキャスト信号受信インタフェースと、ブロードキャストデータ送信インタフェースとを含んでもよく、前記複数の機械学習ユニットは前記１つのグループのブロードキャストインタフェースを介して前記ブロードキャスト処理回路に接続される。
【０５１９】
例えば、複数のＭＬＵ及び上記のブロードキャスト処理回路については、第２伝送インタフェースのインタフェースｄｎ＋１は、ブロードキャスト信号受信インタフェースとして、複数のＭＬＵから送信されたブロードキャスト及び／又はマルチキャスト信号を受信して上記のブロードキャスト処理回路に伝送して処理させるために用いることができ、第２伝送インタフェースのインタフェースｅｎ＋１は、ブロードキャストデータ送信インタフェースとして、上記のブロードキャスト処理回路の送信した、上記のブロードキャスト及び／又はマルチキャスト信号に対応する入力ニューロンデータ及び重み値データを受信して複数のＭＬＵ中の共有データ受信インタフェースに伝送するために用いることができる。
【０５２０】
よって、複数の機械学習ユニットは１つのブロードキャスト処理回路を共有し、同時に１つのグループのブロードキャスト信号受信インタフェース及びブロードキャストデータ送信インタフェースを共有することができ、したがって、本実施例によるデータ処理装置において機械学習ユニット中の返すためのデータインタフェースの数量が低減されるだけでなく、伝送回路のインタフェースの数量が一層節約され、ハードウェアリソースが一層節約され、ハードウェアの面積及び消費パワーが低減される。
【０５２１】
図４７を参照すると、選択可能な一形態では、上記の図４６をベースにして、伝送回路のインタフェース数量を一層低減しており、前記第２伝送インタフェース１２０は、前記複数のユニキャスト読取処理回路に一対一で接続された複数のグループのユニキャスト読取信号受信インタフェース及び共有データ送信インタフェース、前記ブロードキャスト処理回路に接続されたブロードキャスト信号受信インタフェースを含んでもよく、前記共有データ送信インタフェースは前記ブロードキャスト処理回路にも接続され、前記ユニキャスト読取信号受信インタフェースは前記機械学習ユニットのユニキャスト読取信号送信インタフェースに接続され、前記ブロードキャスト信号受信インタフェースは前記機械学習ユニットのブロードキャスト信号送信インタフェースに接続され、前記共有データ送信インタフェースは前記機械学習ユニットの共有データ受信インタフェースに接続される。
【０５２２】
例示的に、ユニキャスト読取処理回路０において、第２伝送インタフェースには、前記ユニキャスト読取処理回路０に一対一で接続された、１つのグループのユニキャスト読取信号受信インタフェースｄ０及び共有データ送信インタフェースｅ０が含まれ、且つユニキャスト読取信号受信インタフェースｄ０はＭＬＵ０中のユニキャスト読取信号送信インタフェースａ０に接続され、共有データ送信インタフェースｅ０はＭＬＵ０中の共有データ受信インタフェースｃ０に接続され、ユニキャスト読取処理回路ｎにおいて、第２伝送インタフェースには、前記ユニキャスト読取処理回路ｎに一対一で接続された、１つのグループのユニキャスト読取信号受信インタフェースｄｎ及び共有データ送信インタフェースｅｎが含まれ、且つユニキャスト読取信号受信インタフェースｄｎはＭＬＵｎ中のユニキャスト読取信号送信インタフェースａｎに接続され、共有データ送信インタフェースｅｎはＭＬＵｎ中の共有データ受信インタフェースｃｎに接続され、第２伝送インタフェースには、ブロードキャスト処理回路に接続されたブロードキャスト信号受信インタフェースｄｎ＋１がさらに含まれてもよく、且つブロードキャスト信号受信インタフェースｄｎ＋１は各ＭＬＵのブロードキャスト信号送信インタフェースにそれぞれ接続され（ＭＬＵｉの場合はインタフェースｂｉ）、特筆すべきは、伝送回路で各共有データ送信インタフェースｅｉはいずれもブロードキャスト処理回路に接続され、ブロードキャスト処理回路の送信したブロードキャスト及び／又はマルチキャスト信号に対応する入力ニューロンデータ及び重み値データを受信して複数のＭＬＵの共有データ受信インタフェースｃｉに伝送することができる。よって、伝送回路において、各ユニキャスト読取処理回路ｉはそれぞれブロードキャスト処理回路と共有データ送信インタフェースｅｉを共有し、且つＭＬＵｉ中の共有データ受信インタフェースｃｉ及び伝送回路中の共有データ送信インタフェースｅｉからなるデータパスはＭＬＵｉと伝送回路の間のユニキャスト読取データ、ブロードキャスト及び／又はマルチキャストデータの伝送を実現することできる。
【０５２３】
上述したように、複数のユニキャスト読取処理回路はそれぞれブロードキャスト処理回路とデータ送信インタフェースを共有するため、本実施例によるデータ処理装置において、伝送回路のインタフェースの数量が一層節約され、ハードウェアリソースが一層節約され、ハードウェアの面積及び消費パワーが低減される。
【０５２４】
情報技術が発展し続けニーズが日々増えるのにつれて、データアクセス及びデータ処理に対する要求がますます高まり、これに伴ってデータを処理及びアクセスする一部のプロセッサの一層の高度化が求められる。汎用プロセッサを例とすると、複数の汎用プロセッサコア（例えば、ＣＰＵコア）からなるマルチコアプロセッサは、その優れた並行計算能力から、主流になる。
【０５２５】
しかしながら、現在機械学習アルゴリズムが発展し続けるのにつれて、ますます多くのアーキテクチャの機械学習チップが次第に開発されてきており、これらの機械学習チップは常にユニキャスト読取、ユニキャスト書込、ブロードキャスト等の多くの方式で共有メモリ中のデータにアクセスし又はデータを処理する必要があり、そのために、それに応じて複数の伝送インタフェースが設けられ、機械学習チップの面積が大きいことを招く。
【０５２６】
したがって、どのようにして機械学習チップの伝送インタフェースを簡素化して機械学習チップの面積を減らすかは、当業者が早急に解決すべき技術的課題になる。
【０５２７】
上記の問題を解决するために、本願は以下の技術的解決手段を提供する。
【０５２８】
図４９を参照すると、図４８の機械学習ユニット０を例として、機械学習ユニットについて詳細に説明する。一形態では、機械学習ユニット１５は、少なくとも１つの送信インタフェース１４１と、少なくとも１つの受信インタフェース１４２と、少なくとも１つの演算ユニット１５１と、前記演算ユニット１５１に接続されたコントローラユニット１５２とを含んでもよく、前記演算ユニット１５１は１つの主処理回路１５１ａと、複数の副処理回路１５１ｂとを含んでもよく、前記演算ユニット１５１は前記少なくとも１つの送信インタフェース１４１及び少なくとも１つの受信インタフェース１４２を介して前記伝送回路１２に接続され、
前記コントローラユニット１５２は、前記少なくとも１つの送信インタフェース１４１によって前記伝送回路１２に前記データ操作信号及び前記出力ニューロンデータを送信し、前記少なくとも１つの受信インタフェース１４２によって、前記伝送回路１２が前記共有メモリ１３から取得した前記入力ニューロンデータ及び前記重み値データを受信し、前記入力ニューロンデータ及び前記重み値データを前記主処理回路１５１ａ及び／又は前記副処理回路１５１ｂに送信するために用いられ、
前記主処理回路１５１ａは、前記入力ニューロンデータ及び／又は重み値データを前記複数の副処理回路１５１ｂに分配するために用いられ、前記複数の副処理回路１５１ｂは、前記ニューロンデータ及び重み値データに基づいて並行して中間演算を実行して複数の中間結果を得、複数の中間結果を前記主処理回路１５１ａに伝送するために用いられ、前記主処理回路１５１ａは、さらに、前記複数の中間結果に後続の処理を実行して計算結果を得るために用いられる。ここで、前記後続の処理は活性化演算を含んでもよい。具体的には、当該コントローラユニット１５２は、さらに、計算コマンドを取得し、当該計算コマンドを解析して複数の演算コマンドを得、当該複数の演算コマンドを前記主処理回路に送信するようにしてもよい。
【０５２９】
なお、本実施例では、当機械学習ユニットが複数の演算ユニットを含む場合に、各演算ユニットは上記の少なくとも１つの送信インタフェース及び上記の少なくとも１つの受信インタフェースを共用してもよいことを理解されたい。
【０５３０】
例えば、選択可能な一形態では、主処理回路は１つのコントローラユニットを含んでもよく、当該コントローラユニットは主コマンド処理ユニットを含んでもよく、演算コマンドをマイクロコマンドに復号するために用いられる。また、選択可能な別の形態では、副処理回路は別のコントローラユニットを含んでもよく、当該別のコントローラユニットは副コマンド処理ユニットを含んで、マイクロコマンドを受信及び処理するために用いられる。上記のマイクロコマンドはコマンドの下位コマンドであってもよく、当該マイクロコマンドはコマンドに対する区分又は復号により得ることができ、さらに各デバイス、各ユニット又は各処理回路の制御信号として復号されることが可能である。例えば、積算マイクロコマンドは畳み込みコマンドの下位コマンドである。
【０５３１】
例示的に、上記の機械学習ユニットの構造を例として、当該機械学習ユニットのニューラルネットワーク演算のフローについて詳細に説明し、以下のステップＳ６１０１〜Ｓ６１０６を参照する。
Ｓ６１０１、コントローラユニットのコマンド記憶ユニットの最初のアドレスにあらかじめ１つのＩＯコマンドを記憶する。
Ｓ６１０２、コントローラユニットはコマンド記憶ユニットの最初のアドレスから当該ＩＯコマンドを読み取り、次に当該ＩＯコマンドから訳出された制御信号に基づいて、チップ外インタフェースによってチップ外メモリから当該機械学習ユニットに対応するニューラルネットワーク演算コマンドを取得し、又は、伝送回路によって共有メモリから当該機械学習ユニットに対応するニューラルネットワーク計算コマンドを取得し、得られた計算コマンドをコマンド記憶ユニットに記憶する。
Ｓ６１０３、コントローラユニットはコマンド記憶ユニットから次のＩＯコマンドを読み込み、当該ＩＯコマンドから訳出されたデータ操作信号に基づいて、伝送回路によって共有メモリから演算ユニットに必要な全てのデータブロックを読み取り、これには配分すべき当該層のニューロンの入力ニューロンデータ及び重み値データを含み、さらには、高速な活性化関数演算を行うための補間表、演算デバイスパラメータを設定するための定数表、バイアスデータ等を含んでもよく、上記のデータ操作信号には共有メモリにおける上記のデータブロックのソースアドレスを含む。
Ｓ６１０４、コントローラユニットはコマンド記憶ユニットから次のＣＯＮＦＩＧ（設定）コマンドを読み込み、当該ＣＯＮＦＩＧコマンドから訳出された制御信号に基づいて、当該層のニューラルネットワークの計算に必要な様々な定数を設定し、例えば、演算ユニットは活性化関数に必要な定数に基づいてその内部のレジスタの値を設定する。
Ｓ６１０５、コントローラユニットはコマンド記憶ユニットから次のＣＯＭＰＵＴＥ（計算）コマンドを読み込み、演算ユニットは当該ＣＯＭＰＵＴＥコマンドから訳出された制御信号（即ち演算コマンド）に基づいて、配分された当該層のニューロンの入力ニューロンデータ、重み値データ及び演算コマンドを主処理回路に伝送し、主処理回路は配分された当該層のニューロンの入力ニューロンデータをブロードキャストデータとして決定し、重み値データを分配データとして決定し、１つの分配データを複数のデータブロックに配分し、複数のデータブロックのうちの少なくとも１つのデータブロック、ブロードキャストデータ及び複数の演算コマンドのうちの少なくとも１つの演算コマンドを副処理回路に送信して、副処理回路が乗算処理回路、累積処理回路等によって中間結果を得、主処理回路が中間結果及び活性化処理回路等により、配分された当該層のニューロンが出力するニューロンデータを得るようにしてもよい。
Ｓ６１０６、コントローラユニットはコマンド記憶ユニットから次のＩＯコマンドを読み込み、当該ＩＯコマンドから訳出されたデータ操作信号に基づいて、上記の出力ニューロンデータを、伝送回路によって共有メモリに伝送して記憶させて、次の層の一部ニューロンの入力ニューロンデータを得、上記のデータ操作信号には共有メモリにおける上記の出力ニューロンデータの目的アドレスが含まれる。
【０５３２】
以下、Ｓ６１０５について例示的に説明する。ニューラルネットワーク演算中の全結合演算を例とすると、ある層のニューラルネットワークのプロセスは、ｙ＝ｆ（ｗｘ＋ｂ）であってもよく、ここで、ｘは入力ニューロン行列、ｗは重み値行列、ｂはバイアススカラーであり、ｆは活性化関数で、具体的には、ｓｉｇｍｏｉｄ関数、ｔａｎｈ、ｒｅｌｕ、ｓｏｆｔｍａｘ関数のうちの任意の一つであってもよい。ここで主副処理回路同士は二分木の関係（ツリー型関係の１種）であり、演算ユニットは１つの主処理回路と、８つの副処理回路とを有すると仮定すると、上記のＳ６１０５は以下のように実現することができる。コントローラユニットは共有メモリ内から入力ニューロン行列ｘ、重み値行列ｗ及び全結合演算コマンドを取得し、入力ニューロン行列ｘ、重み値行列ｗ及び全結合演算コマンドを主処理回路に伝送し、主処理回路は当該入力ニューロン行列ｘをブロードキャストデータとして決定し、重み値行列ｗを分配データとして決定し、重み値行列ｗを８つのサブ行列に区分し、次に８つのサブ行列をツリー型モジュールによって８つの副処理回路に分配し、入力ニューロン行列ｘを８つの副処理回路にブロードキャストし、副処理回路は並行して８つのサブ行列と入力ニューロン行列ｘの乗算演算と累積演算を実行して８つの中間結果を得、８つの中間結果を主処理回路に送信し、主処理回路は、８つの中間結果をソートしてｗｘの演算結果を得、当該演算結果にバイアスｂ演算を実行した後、活性化演算を実行して最終結果ｙを得るために用いられる。
【０５３３】
なお、上記の各機械学習ユニットが並行して或る層の配分された各ニューロンについて計算を実行できるため、共有メモリには各層の全てのニューロンの出力ニューロンデータ、及び次の層の全てのニューロンに必要な入力ニューロンデータが記憶されてもよく、重み値データを繰り返し使用するか、又は共有メモリから新たな層のニューラルネットワークの重み値データを取得してもよいことを理解されたい。
【０５３４】
なお、各機械学習ユニットは１つの演算ユニットを含んでもよいし、複数の演算ユニットを含んでもよく、且つ各演算ユニットの構造は同じでもよいし、異なってもよい。ここで、各演算ユニットの構造は、主処理回路と各副処理回路の関係として表して、ツリー型、Ｈ型、シストリックアレイ型の関係を含んでもよいが、これらに限定されない。本願による技術的解決手段において、演算ユニットは１つの主ユニット及び複数の副ユニットを含む構造として設定され、フォワード演算の計算コマンドに対して、フォワード演算の計算コマンドに基づいてデータを区分してもよく、このようにして複数の副処理回路により、計算量が大きな部分について並行して演算することができ、演算速度を向上させ、演算時間を短縮させ、さらには消費パワーを低減することができる。
【０５３５】
上記の図４８に示す本実施例のデータ処理装置の説明に戻る。ここで、ユニキャスト読取操作に対応するデータ操作信号は、ユニキャスト読取コマンド、ユニキャスト読取要求であってもよく、ユニキャスト書込操作に対応するデータ操作信号は、ユニキャスト書込コマンド、ユニキャスト書込要求であってもよく、ブロードキャスト操作に対応するデータ操作信号は、ブロードキャストコマンド、マルチキャストコマンド、ブロードキャスト要求、マルチキャスト要求であってもよい。例示的に、ユニキャスト読取コマンドはある機械学習ユニットの送信した共有メモリ中のソースアドレスの入力ニューロンデータ及び重み値データに対する読取コマンドであり、当該入力ニューロンデータ及び重み値データを上記の機械学習ユニットに返す必要があり、当該入力ニューロンデータ及び重み値データは当該機械学習ユニットが計算コマンドに基づいて、ある層の配分されたニューロンの計算中に当該配分されたニューロンに必要な入力ニューロンデータ及び重み値データであり、ユニキャスト書込コマンドはある機械学習ユニットの送信したニューラルネットワークが算出した出力ニューロンデータを共有メモリ中の目的アドレスに書き込むべき書込コマンドであり、なお、前の層のニューラルネットワークの出力ニューロンデータを次のニューラルネットワークに必要な入力ニューロンデータとすることができ、各機械学習ユニットが共有メモリから必要な入力ニューロンデータを取得できるように共有メモリに書き込み、ブロードキャストコマンドはある機械学習ユニットの送信した、共有メモリ中のソースアドレスの入力ニューロンデータ及び重み値データに対する読取コマンドであり、当該入力ニューロンデータ及び重み値データを上記の機械学習装置中の全ての機械学習ユニットに返す必要があり、当該入力ニューロンデータはある層の全てのニューロンに必要な入力ニューロンデータ、即ち前の層の全ての出力ニューロンデータであってもよく、当該重み値データは繰り返し使用される重み値データ、例えば、畳み込みカーネルであってもよく、マルチキャストコマンドは、ブロードキャストコマンドとの違いは、マルチキャストコマンドのデータ返し対象は上記の機械学習装置中の全ての機械学習ユニットではなく、当該マルチキャストコマンドのフラグフィールドに対応する複数の機械学習ユニットであることにある。また、一般には、コマンドと要求の相違点は、コマンドを実行するのにオーバーヘッドが高いが、コマンドに多くの情報が含まれ、要求を実行するのにオーバーヘッドが少ないが、要求に少ない情報が含まれることである。
【０５３６】
一般に、機械学習ユニットはユニキャスト読取信号、ユニキャスト書込信号、ブロードキャスト及び／又はマルチキャスト信号を送信する時に、少なくとも対応する３つのデータ操作信号送信インタフェースが必要であり、これらのインタフェースはそれぞれ、伝送回路にユニキャスト読取信号を送信するために、伝送回路にユニキャスト書込信号を送信するために、伝送回路にブロードキャスト及び／又はマルチキャスト信号を送信するために用いられる。本実施例では、少なくとも１つの機械学習ユニットがユニキャスト読取操作、ユニキャスト書込操作、ブロードキャスト操作のうちの少なくとも２種のデータ操作を実行する時に前記機械学習ユニット上の１つの送信インタフェースが共有され、図４８を参照すると、前記機械学習ユニット０の少なくとも１つの送信インタフェース１４１はインタフェースａ０及びインタフェースｂ０の２つのデータ操作信号送信インタフェースを含んでもよく、一実施形態では、インタフェースａ０はユニキャスト読取信号送信インタフェースで、インタフェースｂ０はユニキャスト書込信号とブロードキャスト及び／又はマルチキャスト信号に共有された信号送信インタフェースであってもよく、一実施形態では、インタフェースａ０はユニキャスト書込信号送信インタフェースで、インタフェースｂ０はユニキャスト読取信号とブロードキャスト及び／又はマルチキャスト信号に共有された信号送信インタフェースであってもよく、一実施形態では、インタフェースａ０はブロードキャスト及び／又はマルチキャスト信号送信インタフェースで、インタフェースｂ０はユニキャスト読取信号とユニキャスト書込信号に共有された信号送信インタフェースであってもよい。また、選択可能な一形態では、少なくとも１つの機械学習ユニットがユニキャスト読取操作、ユニキャスト書込操作、ブロードキャスト操作を実行する時に、前記機械学習ユニット上の１つの送信インタフェースが共有されてもよく、即ち当該送信インタフェースはユニキャスト読取信号、ユニキャスト書込信号、ブロードキャスト及び／又はマルチキャスト信号を送信するようにしてもよい。
【０５３７】
したがって、本実施例に示すデータ処理装置では、少なくとも１つの機械学習ユニットがユニキャスト読取操作、ユニキャスト書込操作、ブロードキャスト操作のうちの少なくとも２種のデータ操作を実行する時に、前記機械学習ユニット上の１つの送信インタフェースが共有されることで、機械学習ユニット中のデータ操作信号送信インタフェースの数量を効果的に低減し、ハードウェアリソースを節約し、ハードウェアの面積及び消費パワーを低減することができる。
【０５３８】
選択可能な一形態では、図３に示すように、上記のユニキャスト読取操作、ユニキャスト書込操作及びブロードキャスト操作に応じて、上記の図４８を踏まえて、上記データ処理装置の伝送回路１２は、第２伝送インタフェース１２０と、前記第２伝送インタフェース１２０に接続された読み書き処理回路１２１と、前記読み書き処理回路１２１に接続された調停回路１２２とを含んでもよく、前記読み書き処理回路１２１は、前記少なくとも１つの機械学習ユニット１５が前記少なくとも１つの送信インタフェース１４１及び前記第２伝送インタフェース１２０によって送信したデータ操作信号を受信し、前記データ操作信号を前記調停回路１２２に伝送し、そして、前記調停回路１２２が前記共有メモリ１３から取得したデータを前記第２伝送インタフェース１２０及び前記少なくとも１つの受信インタフェース１４２によって前記データ操作信号に対応する機械学習ユニットに返すために用いられ、前記調停回路１２２は、予め設定された調停規則に基づいて、前記読み書き処理回路１２１から受信されたデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて前記共有メモリ１３中のデータに操作を行うために用いられる。
【０５３９】
具体的には、前記読み書き処理回路１２１はユニキャスト読取信号、又はユニキャスト書込信号、又はブロードキャスト信号及び／又はマルチキャスト信号を処理することができる。一実施形態では、前記読み書き処理回路１２１は、ユニキャスト読取処理回路と、ユニキャスト書込処理回路とを含んでもよく、前記ユニキャスト読取処理回路はユニキャスト読取信号、又はブロードキャスト信号及び／又はマルチキャスト信号を処理することができ、ここで、機械学習ユニットが実行するユニキャスト書込操作及びブロードキャスト操作において前記機械学習ユニット上の１つの送信インタフェースが共有される場合を例とすると、前記少なくとも１つの送信インタフェースはユニキャスト読取信号送信インタフェースと、共有信号送信インタフェースとを含み、前記ユニキャスト読取処理回路がブロードキャスト信号及び／又はマルチキャスト信号を処理する時に、少なくとも１つの機械学習ユニットが前記共有信号送信インタフェース及び前記第２伝送インタフェースによって送信したブロードキャスト及び／又はマルチキャスト信号を受信し、前記ブロードキャスト及び／又はマルチキャスト信号を前記調停回路に伝送し、そして、前記調停回路が前記共有メモリから取得したデータを、前記第２伝送インタフェース及び上記の少なくとも１つの受信インタフェースによってそれぞれ予め設定された順番に従って前記ブロードキャスト及び／又はマルチキャスト信号に対応する複数の機械学習ユニットに送信することができ、上記の予め設定された順番は上記の複数の機械学習ユニットにデータを返す順番であり、各機械学習ユニットの優先度に基づいてソートしてもよいし、複数の機械学習ユニットの番号順に従ってもよいし、又は他の順番であってもよい。
【０５４０】
選択可能で、前記読み書き処理回路１２１は、ユニキャスト読取処理回路と、ユニキャスト書込処理回路と、ブロードキャスト処理回路とを含んでもよく、前記ユニキャスト読取処理回路はユニキャスト読取信号を処理するために用いられ、前記ユニキャスト書込処理回路はユニキャスト書込信号を処理するために用いられ、前記ブロードキャスト処理回路は、ブロードキャスト信号及び／又はマルチキャスト信号を処理するために用いられる。
【０５４１】
同様に、機械学習ユニットが実行するユニキャスト書込操作及びブロードキャスト操作において前記機械学習ユニット上の１つの送信インタフェースが共有される場合を例とすると、ユニキャスト読取処理回路は少なくとも１つの機械学習ユニットがユニキャスト読取信号送信インタフェース及び第２伝送インタフェースによって送信したユニキャスト読取信号を受信し、前記ユニキャスト読取信号を前記調停回路に伝送し、そして、前記調停回路が前記共有メモリから取得したデータを、前記第２伝送インタフェース及び上記の少なくとも１つの受信インタフェースによって前記ユニキャスト読取信号に対応する機械学習ユニットに送信するために用いることができ、ユニキャスト書込処理回路は少なくとも１つの機械学習ユニットが共有信号送信インタフェース及び第２伝送インタフェースによって送信したユニキャスト書込信号を受信し、前記ユニキャスト書込信号を前記調停回路に伝送し、そして、前記ユニキャスト書込信号に対応するユニキャスト書込データを前記共有メモリに書き込むために用いることができ、前記ブロードキャスト読取処理回路は少なくとも１つの機械学習ユニットが前記共有信号送信インタフェース及び前記第２伝送インタフェースによって送信したブロードキャスト及び／又はマルチキャスト信号を受信し、前記ブロードキャスト及び／又はマルチキャスト信号を前記調停回路に伝送し、そして、前記調停回路が前記共有メモリから取得したデータを、前記第２伝送インタフェース及び上記の少なくとも１つの受信インタフェースによって前記ブロードキャスト及び／又はマルチキャスト信号に対応する複数の機械学習ユニットに送信するために用いることができる。なお、一般に、ユニキャスト書込信号にユニキャスト書込データが含まれ、ユニキャスト書込信号を送信した後、同じデータパスを用いてユニキャスト書込データを伝送することもできる。
【０５４２】
ここで、予め設定された調停規則は、調停回路が特定の規則に従って複数のデータ操作信号の優先度を決定することで、調停回路が各データ操作信号の優先度に基づいて操作すべき対象を決定し、即ち優先度の高いデータ操作信号を調停が成功したデータ操作信号として選択するようにするために用いることができ、例えば、伝送速度が速いデータ操作信号の優先度を高優先度に設定し、伝送速度が遅いデータ操作信号の優先度を低優先度に設定してもよく、例示的に、上記の予め設定された調停規則はラウンドロビン・スケジューリング調停規則、最大搬送波対干渉比スケジューリング規則、比例公平性規則等であってもよい。また、調停回路は機械学習ユニットと読み書き処理回路との間のデータパス（インタフェース対インタフェース）がアイドルであるか否かを補助的な調停規則としてもよく、つまり、調停が成功したデータ操作信号に対応するデータパスはアイドルである。
【０５４３】
具体的には、ユニキャスト読取処理回路は第２伝送インタフェースを介して複数の機械学習ユニットと接続して、複数の機械学習ユニットのユニキャスト読取操作を処理してもよく、複数のユニキャスト読取コマンドをユニキャスト読取処理回路のユニキャスト読取コマンドキャッシュキューにキャッシュして、ユニキャスト読取コマンドを解析して対応するユニキャスト読取コマンドを得、ユニキャスト読取処理回路のユニキャスト読取要求キャッシュキューにキャッシュして、調停回路により調停するようにしてもよく、ユニキャスト読取要求については、解析操作を行うことなく、ユニキャスト読取要求キャッシュキューにキャッシュするようにしてもよい。類似に、ブロードキャスト処理回路も第２伝送インタフェースを介して複数の機械学習ユニットと接続されてもよく、ブロードキャスト及び／又はマルチキャストコマンドキャッシュキュー並びにブロードキャスト及び／又はマルチキャスト要求キャッシュキューを含んでもよく、同様に、ユニキャスト書込処理回路は第２伝送インタフェースを介して複数の機械学習ユニットと接続されてもよく、ユニキャスト書込コマンドキャッシュキュー及びユニキャスト書込要求キャッシュキューを含んでもよく、ここで再度説明しない。選択可能な一形態では、読み書き処理回路は１つのユニキャスト読取処理回路と、１つのユニキャスト書込処理回路と、１つのブロードキャスト処理回路とを含んでもよい。
【０５４４】
したがって、本実施例はユニキャスト読取処理回路によってユニキャスト読取操作を処理することができ、ユニキャスト書込処理回路によってユニキャスト書込操作を処理することができ、ブロードキャスト処理回路によってブロードキャスト操作を処理することができ、異なる処理回路によって異なるタイプのデータ操作の処理をそれぞれ実現することで、処理ロジックが簡素化される。
【０５４５】
選択可能で、図５０を参照すると、少なくとも１つの機械学習ユニットがユニキャスト書込操作、ブロードキャスト操作を実行する時に、前記機械学習ユニット上の１つの送信インタフェースが共有され、即ち上記の少なくとも１つの送信インタフェース１４１は、ユニキャスト書込操作及びブロードキャスト操作において共有される共有信号送信インタフェースと、ユニキャスト読取信号送信インタフェースとを含んでもよい。例示的に、ＭＬＵ０にとって、インタフェースａ０はユニキャスト読取信号送信インタフェースであり、インタフェースｂ０は共有信号送信インタフェースで、ユニキャスト書込信号、ブロードキャスト及び／又はマルチキャスト信号を送信することができ、インタフェースｃ０はユニキャスト読取データ受信インタフェースであり、インタフェースｄ０はブロードキャスト及び／又はマルチキャストデータ受信インタフェースである。説明しやすさのために、次の実施例では、いずれも少なくとも１つの機械学習ユニットがユニキャスト書込操作、ブロードキャスト操作を実行する時に、前記機械学習ユニット上の１つの送信インタフェースが共有される場合を例として説明する。当然ながら、次の実施例は信号送信インタフェースが共有される他の形態にも応用される。
【０５４６】
選択可能な一形態では、図５０を参照すると、前記読み書き処理回路は複数の処理回路グループに分割され、１つの機械学習ユニットは１つの処理回路グループに対応し、前記処理回路グループは１つのユニキャスト読取処理回路と、１つのユニキャスト書込処理回路と、１つのブロードキャスト処理回路とを含む。例示的に、ＭＬＵ０はユニキャスト読取処理回路０、ユニキャスト書込処理回路０及びブロードキャスト処理回路０に対応し、ＭＬＵｎはユニキャスト読取処理回路ｎ、ユニキャスト書込処理回路ｎ及びブロードキャスト処理回路ｎに対応する。同様に、第２伝送インタフェースには１つの処理回路グループ及び１つの機械学習ユニットにそれぞれ接続された１つのグループのインタフェースが存在し、機械学習ユニットとユニキャスト読取処理回路との一対一の接続、機械学習ユニットとユニキャスト書込処理回路との一対一の接続、及び機械学習ユニットとブロードキャスト処理回路との一対一の接続を実現するために用いられる。
【０５４７】
具体的には、図５０に示すように、前記第２伝送インタフェース１２０は複数のインタフェースグループを含んでもよく、前記１つの処理回路グループは１つのインタフェースグループに対応し、前記１つのインタフェースグループは、前記ユニキャスト読取処理回路に接続されたユニキャスト読取信号受信インタフェース及びユニキャスト読取データ送信インタフェースと、前記ユニキャスト書込処理回路に接続されたユニキャスト読取信号受信インタフェースと、前記ブロードキャスト処理回路に接続されたブロードキャスト信号受信インタフェース及びブロードキャストデータ送信インタフェースとを含む。
【０５４８】
例えば、ＭＬＵ０については、その対応する処理回路グループに対応するインタフェースグループはインタフェースｅ０と、インタフェースｆ０と、インタフェースｇ０と、インタフェースｈ０と、インタフェースｉ０とを含む。ＭＬＵ０及びユニキャスト読取処理回路０については、第２伝送インタフェースのうちのインタフェースｅ０はユニキャスト読取信号受信インタフェースとしてＭＬＵ０のユニキャスト読取信号送信インタフェースａ０及びユニキャスト読取処理回路０にそれぞれ接続され、ＭＬＵ０から送信されたユニキャスト読取信号を受信してユニキャスト読取処理回路０に伝送して処理させるために用いることができ、第２伝送インタフェースのうちのインタフェースｆ０はユニキャスト読取データ送信インタフェースとしてＭＬＵ０のユニキャスト読取データ受信インタフェースｃ０及びユニキャスト読取処理回路０にそれぞれ接続され、ユニキャスト読取処理回路０の送信した上記のユニキャスト読取信号に対応する入力ニューロンデータ及び重み値データを受信してＭＬＵ０のインタフェースｃ０に伝送するために用いることができる。ＭＬＵ０及びユニキャスト書込処理回路０については、第２伝送インタフェースのインタフェースｇ０はユニキャスト書込信号受信インタフェースとしてＭＬＵ０の共有信号送信インタフェースｂ０及びユニキャスト書込処理回路０にそれぞれ接続され、ＭＬＵ０から送信されたユニキャスト書込信号を受信してユニキャスト書込処理回路０に伝送して処理させるために用いることができる。ＭＬＵ０及びブロードキャスト処理回路０については、第２伝送インタフェースのインタフェースｈ０は、ブロードキャスト信号受信インタフェースとしてＭＬＵ０の共有信号送信インタフェースｂ０及びブロードキャスト処理回路０にそれぞれ接続され、ＭＬＵ０から送信されたブロードキャスト及び／又はマルチキャスト信号を受信してブロードキャスト処理回路０に伝送して処理させるために用いることができ、第２伝送インタフェースのインタフェースｉ０は、ブロードキャストデータ送信インタフェースとして複数のＭＬＵのブロードキャストデータ受信インタフェースｄｉ及びブロードキャスト処理回路０にそれぞれ接続され、ブロードキャスト処理回路０の送信した上記のブロードキャスト及び／又はマルチキャスト信号に対応する入力ニューロンデータ及び重み値データを受信して複数のＭＬＵ中のブロードキャストデータ受信インタフェースｄｉに伝送するために用いることができる。
【０５４９】
したがって、本実施例では機械学習ユニットとユニキャスト読取処理回路との一対一の接続、機械学習ユニットとユニキャスト書込処理回路との一対一接続、機械学習ユニットとブロードキャスト処理回路との一対一の接続により、ターゲットを絞った一対一のデータ操作処理を実現し、データ操作のアクセスロジックの複雑性を下げ、抵触を低減し、処理効率を高めることができる。
【０５５０】
選択可能な一形態では、図５１に示すように、上記の図５０をベースにして、伝送回路のインタフェース数量を削減し、前記１つの処理回路グループ中のユニキャスト書込処理回路とブロードキャスト処理回路は前記対応するインタフェースグループ中の１つの共有信号受信インタフェースを共有し、前記処理回路グループに対応する共有信号受信インタフェースは前記処理回路グループに対応する機械学習ユニットの共有信号送信インタフェースに接続され、前記処理回路グループ中のユニキャスト読取信号受信インタフェースは前記処理回路グループに対応する機械学習ユニットのユニキャスト読取信号送信インタフェースに接続される。図４に示すように、ＭＬＵ０に対応する処理回路グループについては、そのユニキャスト書込処理回路及びブロードキャスト処理回路が１つの共有信号受信インタフェースｇ０を共有し、且つ共有信号受信インタフェースｇ０はＭＬＵ０中の共有信号送信インタフェースｂ０に接続され、共有信号送信インタフェースｂ０の送信したユニキャスト書込信号、ブロードキャスト及び／又はマルチキャスト信号を受信し、ユニキャスト書込信号、ブロードキャスト及び／又はマルチキャスト信号をユニキャスト書込処理回路０及びブロードキャスト処理回路０に送信して処理させるために用いられる。よって、伝送回路において、ユニキャスト書込処理回路ｉ及びブロードキャスト処理回路ｉは共有信号受信インタフェースｇｉを共有し、且つＭＬＵｉ中の共有信号送信インタフェースｂｉ及び伝送回路中の共有信号受信インタフェースｅｉからなるデータパスはＭＬＵｉと伝送回路の間のユニキャスト書込信号、ブロードキャスト及び／又はマルチキャスト信号の伝送を実現することができる。
【０５５１】
上述したように、１つの処理回路グループ中のユニキャスト書込処理回路及びブロードキャスト処理回路が信号受信インタフェースを共有するため、本実施例によるデータ処理装置は機械学習ユニットのデータ操作信号送信インタフェースの数量が効果的に低減されるだけでなく、伝送回路のインタフェースの数量が一層節約され、ハードウェアリソースが一層節約され、ハードウェアの面積及び消費パワーが低減される。
【０５５２】
一実施形態では、前記処理回路グループに対応する共有信号受信インタフェースは前記処理回路グループ中のユニキャスト書込処理回路及びブロードキャスト処理回路にそれぞれ接続され、前記機械学習ユニットの共有信号送信インタフェースの送信したデータ操作信号を受信し、前記データ操作信号を２つの同一のデータ操作信号に分割し、それぞれ前記ユニキャスト書込処理回路及び前記ブロードキャスト処理回路に送信するために用いられる。図５１を参照すると、共有信号受信インタフェースｇ０を例とすると、受信されたデータ操作信号（ユニキャスト読取信号、ブロードキャスト及び／又はマルチキャスト信号）を２つの同一のデータ操作信号に分割して、それぞれユニキャスト書込処理回路０及びブロードキャスト処理回路０に送信して処理させることができる。例示的に、前記共有信号受信インタフェースはハードウェア回路を介してユニキャスト書込処理回路０及びブロードキャスト処理回路０にそれぞれ接続され、１つのデータ操作信号を２つの同一のデータ操作信号に分割することができる。なお、上記のデータ操作信号は高・低レベル信号であってもよいことを理解されたい。
【０５５３】
なお、各処理回路はデータ操作信号を解析して、データ操作信号のタイプを判断できることを理解されたい。例えば、ユニキャスト書込信号である場合に、ブロードキャスト処理回路は処理を行わず、ユニキャスト書込処理回路が処理を行う。例えば、ブロードキャスト及び／又はマルチキャスト信号である場合に、ユニキャスト書込処理回路は処理を行わず、ブロードキャスト処理回路が処理を行う。具体的には、各処理回路はデータ操作信号の操作コードによって操作信号のタイプを判断することができ、例えば「ｗｒｉｔｅ」はデータ操作信号がユニキャスト書込信号であることを意味し、「ｃａｓｔ」はデータ操作信号がブロードキャスト及び／又はマルチキャスト信号であることを意味する。また、フラグフィールドにおいて表示された機械学習ユニット（データ返し対象）の数量によって操作信号のタイプを判断することもでき、例えば、返し対象がゼロである場合に、データ操作信号はユニキャスト書込信号であることを意味し、返し対象が１つである場合に、データ操作信号はユニキャスト読取信号であることを意味し、複数の（ｎ＋１より小さい）返し対象はデータ操作信号がマルチキャスト信号であることを意味し、ｎ＋１の返し対象はデータ操作信号がブロードキャスト信号であることを意味する。
【０５５４】
選択可能な一形態では、図５２に示すように、上記の図５１をベースにして、機械学習ユニットのインタフェース数量を一層低減しており、機械学習ユニットがユニキャスト読取操作及びブロードキャスト操作を実行する時に前記機械学習ユニット上の１つのデータ受信インタフェースが共有され、即ち前記処理回路グループ中のユニキャスト読取処理回路及びブロードキャスト処理回路の返すデータは前記機械学習ユニット上の１つの共有データ受信インタフェースを共有する。図５１と比べると、ＭＬＵ０を例とすると、その少なくとも１つの受信インタフェース１４２は、インタフェースｃ０及びインタフェースｄ０ではなく、１つのインタフェースｃ０を含み、図５２でインタフェースｃ０は処理回路のインタフェースｆ０に接続されて、ユニキャスト読取処理回路０の返すユニキャスト読取データを受信するために用いることができ、また処理回路中の複数のインタフェースｉｉに接続されて、複数のブロードキャスト処理回路ｉの返すブロードキャスト及び／又はマルチキャストデータを受信するために用いることができる。
【０５５５】
したがって、本実施例に示すデータ処理装置では、少なくとも１つの機械学習ユニットはユニキャスト読取操作及びブロードキャスト操作を実行する時に前記機械学習ユニット上の１つのデータ受信インタフェースを共有することにより、機械学習ユニット中のデータ返しインタフェースの数量が一層低減され、ハードウェアリソースが一層節約され、ハードウェアの面積及び消費パワーが低減される。
【０５５６】
さらに、図５３に示すように、上記の図５２をベースにして、伝送回路のインタフェース数量を一層低減しており、前記１つの処理回路グループ中のユニキャスト読取処理回路とブロードキャスト処理回路は前記対応するインタフェースグループ中の１つの共有データ送信インタフェースを共有し、前記処理回路グループに対応する共有データ送信インタフェースは前記処理回路グループに対応する機械学習ユニットの共有データ受信インタフェースに接続される。図５２と比べると、ＭＬＵ０に対応する処理回路グループについて、そのユニキャスト読取処理回路及びブロードキャスト処理回路は１つの共有データ送信インタフェースｉ０を共有し、図５３でインタフェースｉ０は処理回路のユニキャスト読取処理回路０に接続されて、ユニキャスト読取処理回路０の返すユニキャスト読取データを受信するために用いることができ、また処理回路の複数のブロードキャスト処理回路ｉに接続されて、複数のブロードキャスト処理回路ｉの返すブロードキャスト及び／又はマルチキャストデータを受信するために用いることができる。
【０５５７】
したがって、本実施例に示すデータ処理装置では、１つの処理回路グループ中のユニキャスト読取処理回路及びブロードキャスト処理回路が前記対応するインタフェースグループ中の１つの共有データ送信インタフェースを共有することにより、機械学習ユニットのデータ返しインタフェースの数量が一層低減され、ハードウェアリソースが一層節約され、ハードウェアの面積及び消費パワーが低減される。
【０５５８】
選択可能な一形態では、図５４に示すように、上記の図５３をベースにして、機械学習ユニットにデータ返しインタフェースを共有しない少なくとも１つの演算ユニットが存在する可能性があって、したがって、前記機械学習ユニットの少なくとも１つの送信インタフェースは、少なくとも１つの独立したデータ受信インタフェースをさらに含んでもよく、前記独立したデータ受信インタフェースは前記機械学習ユニット中の１つの演算ユニットに接続され、前記第２伝送インタフェースは前記独立したデータ受信インタフェースに接続された独立したデータ送信インタフェースをさらに含み、前記演算ユニットは前記独立したデータ受信インタフェース及び前記独立したデータ送信インタフェースによって前記機械学習ユニットに対応する処理回路グループとの接続を実現する。例示的に、図５４に示すように、ＭＬＵ０については、複数の演算ユニットを含み、そのうち少なくとも１つの演算ユニットはインタフェースｊ０に接続され、他の演算ユニットはインタフェースｃ０にそれぞれ接続され、即ちインタフェースｃ０は上記の他の演算ユニットによって共有された共有データ受信インタフェースであり、インタフェースｊ０は独立したデータ受信インタフェースである。これに応じて、第２伝送インタフェース１２０にはインタフェースｊ０に接続された独立したデータ送信インタフェースｈ０がさらに含まれる。図５４では、独立したデータ送信インタフェースｈ０はユニキャスト読取処理回路０及び複数のブロードキャスト処理回路ｉに接続されて、ユニキャスト読取データ、ブロードキャスト及び／又はマルチキャストデータを受信し、独立したデータ受信インタフェースｊ０によってデータ返しインタフェースを共有しない上記の演算ユニットに送信することができる。
【０５５９】
選択可能な一形態では、図５５に示すように、上記の図５３をベースにして、各機械学習ユニットは前記処理回路のうちの１つのブロードキャスト処理回路を共有するようにしてもよい。当該共有されたブロードキャスト処理回路は各共有信号受信インタフェースｇｉ及び各共有データ送信インタフェースｉｉに接続されてもよい。したがって、本実施例に示すデータ処理装置では、各機械学習ユニットは前記処理回路のうちの１つのブロードキャスト処理回路を共有することができるため、ブロードキャスト処理回路の数量が低減され、伝送回路が簡素化され、ハードウェアの面積及び消費パワーが低減される。
【０５６０】
情報技術が発展し続けニーズが日々増えるのにつれて、データアクセス及びデータ処理に対する要求がますます高まり、これに伴ってデータを処理及びアクセスする一部のプロセッサの一層の高度化が求められる。汎用プロセッサを例とすると、複数の汎用プロセッサコア（例えば、ＣＰＵコア）からなるマルチコアプロセッサは、その優れた並行計算能力から、主流になる。
【０５６１】
しかしながら、現在機械学習アルゴリズムが発展し続けるのにつれて、ますます多くのアーキテクチャの機械学習チップが次第に開発されてきているが、これらの機械学習チップは共有メモリ中のデータにアクセスし又はデータを処理する時には、データアクセスロジックが極めて複雑であるため、機械学習時のデータ処理効率が低下するという問題は常にある。
【０５６２】
したがって、どのようにして機械学習チップのデータアクセスロジックを簡素化させるかは、当業者が早急に解決すべき技術的課題になる。
【０５６３】
上記の問題を解决するために、本願は以下の技術的解決手段を提供する。
【０５６４】
まず、本願のデータ処理装置を説明する。図５６を参照すると、データ処理装置を提供し、当該データ処理装置はハードウェア又はソフトウェアとハードウェアの組み合わせとして実現してもよい。当該データ処理装置は機械学習データの処理を実行するために用いられる。図５６に示すように、当該データ処理装置は、機械学習装置１１と、伝送回路１２と、共有メモリ１３とを含み、ここで、機械学習装置１１は第１伝送インタフェース１４を介して伝送回路１２に接続され、伝送回路１２は共有メモリ１３に接続される。
【０５６５】
上記の伝送回路１２は、機械学習装置の発したデータ操作信号に基づいて、共有メモリ１３から機械学習装置１１に必要な入力データを取得し、入力データを機械学習装置１１に返すために用いられ、ここで、データ操作信号は共有メモリ１３中のデータに対する操作方法を表す。
【０５６６】
選択可能で、機械学習装置１１は、入力データに基づいて機械学習演算を実行して、出力データを得るために用いられる。選択可能で、機械学習装置１１は、さらに、出力データを伝送回路１２によって共有メモリ１３に伝送してデータを記憶させるために用いられる。具体的には、機械学習装置１１がニューラルネットワーク演算を実行するために用いられる場合に、機械学習装置１１は入力ニューロンデータ及び重み値データに基づいて人工ニューラルネットワーク演算を実行して、出力ニューロンデータを得、そして、出力ニューロンデータを新たな入力ニューロンデータとして、伝送回路１２によって共有メモリ１３に伝送してデータを記憶させるようにしてもよい。なお、上記の機械学習装置１１、伝送回路１２、共有メモリ１３及び第１伝送インタフェース１４はいずれもハードウェア回路として実現してもよい。例示的に、伝送回路１２はブロードキャストバス（ｂｒｏａｄｃａｓｔ  ｂｕｓ）であってもよく、共有メモリ１３は非揮発性及び／又は揮発性メモリであってもよく、ランダムアクセスメモリ（ＲＡＭ）、高速キャッシュメモリ等を含むが、これらに限定されず、第１伝送インタフェース１４は１つ又は複数のデータＩ／Ｏ（ｉｎ／ｏｕｔ、入力／出力）インタフェース又はＩ／Ｏピンに対応してもよい。
【０５６７】
選択可能で、機械学習装置１１は１つの第１伝送インタフェース１４を含んでもよいし、複数の第１伝送インタフェースを含んでもよい。第１伝送インタフェース１４は送信インタフェースであってもよいし、受信インタフェースであってもよい。第１伝送インタフェース１４が送信インタフェースである場合に、機械学習装置１１は送信インタフェースに接続された伝送回路１２にデータ操作信号又はデータを送信することができ、第１伝送インタフェース１４が受信インタフェースである場合に、機械学習装置１１は伝送回路１２の返すデータを受信することができる。
【０５６８】
ここで、データ操作信号は共有メモリ１３中のデータに対する操作方法を表す。選択可能な一形態では、具体的には、データ操作信号は共有メモリ１３中のデータに読取操作を行うことを表してもよいし、共有メモリ１３中のデータに書込操作を行うことを表してもよい。これに応じて、機械学習装置１１の発したデータ操作信号が読取操作である場合に、伝送回路１２は共有メモリ１３から対応するアドレスに対応するデータを見つけて読み取り、これらのデータを少なくとも１つの機械学習装置１１に返すことができ、機械学習装置１１の発したデータ操作信号が書込操作である場合に、伝送回路１２は機械学習装置１１の出力した書込データを共有メモリ１３に書き込むことができる。
【０５６９】
上記の入力データは機械学習装置１１が機械学習演算を実行する時に入力されるべきデータである。上記のデータはあらかじめ共有メモリ１３に記憶されている初期データであってもよいし、機械学習装置１１が機械学習演算を実行する時に出力した中間結果又は最終結果を、データとして共有メモリ１３に書き込んだものであってもよい。
【０５７０】
選択可能で、上記の入力データは入力ニューロンデータ及び／又は重み値データを含んでもよく、且つ当該入力ニューロンデータ及び重み値データは機械学習装置１１が人工ニューラルネットワーク演算を実行する時に入力されるべきデータであり、これに応じて、上記の出力データは出力ニューロンデータを含んでもよく、且つ当該出力ニューロンデータは機械学習装置１１が人工ニューラルネットワーク演算を実行する時に出力した中間結果又は最終結果である。
【０５７１】
なお、本願によるデータ処理装置は、次の構成の少なくとも１種であってもよい。機械学習装置１１は複数の第１伝送インタフェース１４を介して１つの伝送回路１２に接続されて、当該１つの伝送回路１２を介して１つの共有メモリ１３に接続されて、上記のデータを取得するようにしてもよい。選択可能で、機械学習装置１１は複数の第１伝送インタフェース１４を介して複数の伝送回路１２に接続されて、これらの伝送回路１２を介して１つの共有メモリ１３に接続されて、上記のデータを取得するようにしてもよい。選択可能で、機械学習装置１１は複数の第１伝送インタフェース１４を介して１つの伝送回路１２に接続されて、当該１つの伝送回路１２を介して複数の共有メモリ１３に接続されて、上記のデータを取得するようにしてもよい。
【０５７２】
選択可能で、機械学習装置１１が人工ニューラルネットワーク演算を実行する時は、多層ニューラルネットワーク演算について、フォワード演算かバックワード演算かに関わらず、機械学習装置１１は各層のニューラルネットワークの出力したニューロンデータを計算してもよく、具体的には、各層のニューラルネットワークの入力端に対応する複数の入力ニューロンデータ及び重み値データに対し乗算、和演算、畳み込み演算及び活性化演算等、人工ニューラルネットワーク演算に含まれるべき一連の演算の集合を実行して、演算結果を得るようにしてもよい。機械学習装置１１は人工ニューラルネットワーク演算により、カレント層の出力ニューロンデータを得た後、当該出力ニューロンデータを次の層のニューラルネットワークの入力ニューロンデータとして再度人工ニューラルネットワーク演算を実行してもよく、その前に、機械学習装置１１がいつでも前記のカレント層の出力ニューロンデータを読み取って次の層の人工ニューラルネットワーク演算を行えるように、当該カレント層の出力ニューロンデータを伝送回路１２によって共有メモリ１３に書き込んで記憶させるようにしてもよい。
【０５７３】
上記の実施例による機械学習演算を実行するためのデータ処理装置は、機械学習装置と、機械学習装置上の第１伝送インタフェースを介して接続された伝送回路と、伝送回路に接続された共有メモリとを含む。ここで、伝送回路は機械学習装置の発したデータ操作信号に基づいて、共有メモリから機械学習装置に必要な入力データを取得し、入力データを機械学習装置に返す。上記のデータ操作プロセスで、機械学習演算を実行する時に、大量のデータが共用されるため、これに基づいて、本願のデータ処理装置では相応する伝送回路を設けることで、機械学習装置による共有メモリからのデータの読み取り、データの書き込みを実現する。ＣＰＵによるメモリ中のデータの直接的アクセスという従来の方式では、ＣＰＵが並行演算を実行する時に並行データアクセスロジックが複雑のためブロッキング及びデッドロックが生じやすいという問題に対して、本願のデータ処理装置は機械学習装置による共有メモリに対するデータアクセスロジックを簡素化させており、データのアクセス効率が向上し、機械学習装置の機械学習演算速度が一層速くなる。
【０５７４】
図５６Ａは本願の実施例による機械学習装置の構造模式図である。上記の実施例を踏まえて、図５６Ａを参照すると、当該機械学習装置１１は少なくとも１つの機械学習ユニット１５を含み、機械学習ユニット１５は、少なくとも１つの演算ユニット１５１と、演算ユニット１５１に接続されたコントローラユニット１５２とを含み、演算ユニット１５１は１つの主処理回路１５１ａと、複数の副処理回路１５１ｂとを含み、演算ユニット１５１は第１伝送インタフェース１４によって伝送回路１２に接続される。
【０５７５】
ここで、上記のコントローラユニット１５２は、第１伝送インタフェース１４の送信インタフェースによって伝送回路１２にデータ操作信号を送信しデータを出力し、第１伝送インタフェース１４の受信インタフェースによって、伝送回路１２が共有メモリ１３から取得した入力データを受信し、入力データを主処理回路１５１ａ及び／又は副処理回路１５１ｂに送信するために用いられ、主処理回路１５１ａは、入力データを複数の副処理回路１５１ｂに分配するために用いられ、複数の副処理回路１５１ｂは、主処理回路１５１ａの伝送したデータに基づいて並行して中間演算を実行して複数の中間結果を得、複数の中間結果を主処理回路１５１ａに伝送するために用いられ、主処理回路１５１ａは、さらに、複数の中間結果に後続の処理を実行して計算結果を得るために用いられる。
【０５７６】
選択可能で、上記の機械学習装置１１は１つの機械学習ユニット１５を含んでもよく、このような機械学習装置１１は機械学習装置１１が人工ニューラルネットワーク演算を実行する時に、関連するニューラルネットワーク構造に含まれるニューロンの数量が比較的少ない場合に応用され、１つの機械学習ユニット１５を用いて一括してニューラルネットワーク全体の演算を完了することができる。具体的には、演算プロセスは、機械学習ユニット１５がニューラルネットワーク中の各層のニューロンに対応する入力ニューロンデータ及び重み値データに基づいて、人工ニューラルネットワーク演算を実行して、各層のニューロンに対応する出力ニューロンデータを得、そして、出力ニューロンデータを新たな入力ニューロンデータとして次の層のニューラルネットワーク演算を実行するようにして、ニューラルネットワーク全体の演算を完了し、最終的な演算結果を得るまで続けるようにしてもよい。このプロセスでは、機械学習装置１１は機械学習ユニット１５による各層の演算で得られた出力ニューロンデータ、又は最終的な演算結果を伝送回路１２によって共有メモリ１３に伝送してデータを記憶させるようにしてもよい。
【０５７７】
選択可能で、機械学習装置１１は複数の機械学習ユニット１５を含んでもよく、このような機械学習装置１１は機械学習装置１１が人工ニューラルネットワーク演算を実行する時に、関連するニューラルネットワーク構造に多くのニューロンが含まれる場合に応用される。例えば、多層ニューラルネットワークの演算について、フォワード演算におけるある層のニューラルネットワーク演算を例に説明すると、対象層のニューロン数量が多い場合に、選択可能な計算方法で、上記の機械学習装置１１はその複数の機械学習ユニット１５を利用してそれぞれ並行して１層のニューラルネットワークにおける一部のニューロンの出力ニューロンデータを計算するようにしてもよい。例えば、１つの機械学習装置１１が４つの機械学習ユニット１５を含み、１層のニューラルネットワークが１００個のニューロンを有する場合に、機械学習装置１１が各機械学習ユニット１５ごとに２５個のニューロンを配分して処理させ、相応する出力ニューロンデータを対応して出力するようにしてもよい。このようにして層ごとにニューラルネットワークの並行計算を実行することで、ニューラルネットワーク計算の並行処理を実現でき、処理効率が向上する。
【０５７８】
選択可能で、上記の機械学習ユニット１５で、そのコントローラユニット１５２は１つのコマンド記憶ユニット１５２ａと、１つのコマンド処理ユニット１５２ｂとを含んでもよい。選択可能で、コントローラユニット１５２は複数のコマンド記憶ユニット１５２ａと、複数のコマンド処理ユニット１５２ｂとを含んでもよい。
【０５７９】
ここで、コマンド記憶ユニット１５２ａは、機械学習ユニット１５が機械学習演算を実行する時に関連する全ての演算コマンド、及びデータ読み書き操作の実行に対応するデータ読み書き操作コマンドを記憶するために用いられ。ここで、コマンド処理ユニット１５２ｂは、コマンド記憶ユニット１５２ａ中の全てのコマンドを処理するために用いられ、具体的には、コマンド記憶ユニット１５２ａ中の演算コマンドを演算ユニット１５１に送信することで、演算ユニット１５１が演算コマンドに基づいて対応する演算操作を行うできるようにすること、そして、コマンド記憶ユニット１５２ａ中のデータ読み書き操作コマンドを解析して、データ操作信号を得、当該データ操作信号を第１伝送インタフェース１４に送信することで、第１伝送インタフェース１４が当該データ操作信号によって共有メモリ１３からデータの読み書きを実行できるようにすることを含む。
【０５８０】
選択可能で、上記の機械学習ユニット１５において、その演算ユニット１５１は１つの主処理回路１５１ａと、１つの副処理回路１５１ｂを含んでもよい。選択可能で、演算ユニット１５１は１つの主処理回路１５１ａと、複数の副処理回路１５１ｂとを含んでもよい。このような構造設計は大量のデータを処理するシーン、特に機械学習演算中に大量の並行演算が必要なシーンに応用され、本願による当該演算構造は演算速度を向上させ、演算時間を短縮させて、消費パワーを低減することができる。
【０５８１】
なお、上記の構造で各副処理回路１５１ｂは主処理回路１５１ａの送信した入力データに基づいて、直接的に並行演算を実行してもよい。選択可能で、各副処理回路１５１ｂはコントローラユニット１５２の送信した入力データに基づいて、直接的に並行演算を実行してもよい。
【０５８２】
上記の各演算ユニット１５１が１つの主処理回路１５１ａと、複数の副処理回路１５１ｂとを有する場合には、各演算ユニット１５１の主処理回路１５１ａ及び複数の副処理回路１５１ｂは構造が同じでもよいし、異なってもよい。具体的には、主処理回路１５１ａ及び複数の副処理回路１５１ｂの構造はＨ型、シストリックアレイ型、及びツリー型構造の少なくとも１種を含んでもよい。
【０５８３】
上記の実施例による機械学習装置は少なくとも１つの機械学習ユニットを含み、各機械学習ユニットは、少なくとも１つの演算ユニットと、演算ユニットに接続されたコントローラユニットとを含み、また、演算ユニットは１つの主処理回路と、複数の副処理回路とを含み、演算ユニットは第１伝送インタフェースによって伝送回路に接続される。上記の機械学習装置でコントローラユニットは第１伝送インタフェースの送信インタフェースによって伝送回路にデータ操作信号及び出力データを送信し、第１伝送インタフェースの受信インタフェースによって、伝送回路が共有メモリから取得した入力データを受信し、入力データを主処理回路及び／又は副処理回路に送信することができる。上記の機械学習装置に主処理回路及び複数の副処理回路が含まれるため、主処理回路は取得したデータを複数の副処理回路に同時に分配して、複数の副処理回路に並行して演算を実行させ、中間演算結果を主処理回路に返し、主処理回路が中間結果に演算を実行することで、機械学習演算を実現することができ、機械学習演算用のプロセッサはデータに演算を実行する処理回路が１種しなないという従来の形態と比べて、本願による機械学習装置はデータの操作及びデータの演算の速度が速い。
【０５８４】
図５７は本願の実施例による伝送回路の構造模式図である。図５７を参照すると、当該伝送回路１２は、第２伝送インタフェース１２０と、第２伝送インタフェース１２０に接続された少なくとも１つの読み書き処理回路１２１と、読み書き処理回路１２１に接続された調停回路１２２とを含み、少なくとも１つの機械学習ユニット１５において、第１伝送インタフェース１４と第２伝送インタフェース１２０との接続により、少なくとも１つの機械学習ユニット１５と伝送回路１２との接続が実現される。
【０５８５】
上記の読み書き処理回路１２１は、少なくとも１つの機械学習ユニット１５が第１伝送インタフェース１４及び第２伝送インタフェース１２０によって送信したデータ操作信号を受信し、データ操作信号を前記調停回路１２２に伝送し、そして、共有メモリ１３から読み取られたデータを第２伝送インタフェース１２０によって少なくとも１つの機械学習ユニット１５に送信するために用いられ、上記調停回路１２２は、予め設定された調停規則に基づいて、少なくとも１つの読み書き処理回路１２１から受信したデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて、共有メモリ１３中のデータを操作するために用いられる。
【０５８６】
選択可能で、伝送回路１２は複数の第２伝送インタフェース１２０を含んでもよく、第２伝送インタフェース１２０は送信インタフェースであってもよいし、受信インタフェースであってもよい。第２伝送インタフェース１２０が送信インタフェースである場合に、伝送回路１２は当該送信インタフェースに接続された機械学習ユニット１５にデータを送信することができ、第２伝送インタフェース１２０が受信インタフェースである場合に、伝送回路１２は機械学習ユニット１５が当該受信インタフェースに送信したデータ操作信号及び／又はデータを受信することができる。選択可能で、第２伝送インタフェース１２０の送信インタフェースは第１伝送インタフェース１４のうちの受信インタフェースに接続され、第２伝送インタフェース１２０の受信インタフェースは第１伝送インタフェース１４のうちの送信インタフェースに接続される。
【０５８７】
選択可能で、図５７Ａを参照すると、当該伝送回路１２は複数の読み書き処理回路１２１を含んでもよく、且つ当該複数の読み書き処理回路１２１の入力端は複数の第２伝送インタフェース１２０と一対一で接続されてもよい。選択可能で、図２Ｂを参照すると、当該伝送回路１２が１つの読み書き処理回路１２１のみを含んでもよく、且つ当該１つの読み書き処理回路１２１の入力端は複数の第２伝送インタフェース１２０と一対多で接続され、即ち１つの読み書き処理回路１２１は複数の第２伝送インタフェース１２０に対応して接続される。
【０５８８】
選択可能で、上記の複数の読み書き処理回路１２１が複数の第２伝送インタフェース１２０と一対一で接続される場合に、各読み書き処理回路１２１はいずれもデータをそれに接続された１つの第２伝送インタフェース１２０によって１つの機械学習ユニット１５に送信するか、データをそれに接続された１つの第２伝送インタフェース１２０によって複数の機械学習ユニット１５に送信することができる。上記の１つの読み書き処理回路１２１が複数の第２伝送インタフェース１２０と一対多で接続される場合に、当該読み書き処理回路１２１はデータをそれに接続された複数の第２伝送インタフェース１２０によって複数の機械学習ユニット１５に送信するか、データをそのうちの１つの第２伝送インタフェース１２０によって１つの機械学習ユニット１５に送信することができる。
【０５８９】
選択可能で、上記の伝送回路１２の構造には、１つの調停回路１２２を含んでもよく、且つ当該調停回路１２２の入力端は複数の読み書き処理回路１２１に接続されてもよい。当該調停回路１２２の出力端は共有メモリ１３に接続され、選択可能で、他のメモリデバイス又はコントロールデバイスに接続されてもよい。
【０５９０】
上記の実施例から分かるように、本願に係る伝送回路１２は複数の読み書き処理回路１２１を含んでもよく、これに応じて、当該複数の読み書き処理回路１２１はタイプが同じでもよいし、異なってもよく、以下の実施例は読み書き処理回路１２１のタイプ、及び読み書き処理回路１２１の受信したデータ信号のタイプに基づいてデータの伝送方法を詳細に説明する。
【０５９１】
具体的には、読み書き処理回路１２１は、ユニキャスト読取処理回路、ユニキャスト書込処理回路、ブロードキャスト処理回路の少なくとも１種の処理回路を含んでもよく、データ操作信号は、ユニキャスト読取要求、ユニキャスト書込要求、ユニキャスト読取コマンド、ユニキャスト書込コマンド、マルチキャストコマンド、ブロードキャストコマンドの少なくとも１種を含む。
【０５９２】
ここで、ユニキャストタイプの処理回路はユニキャストタイプの信号を処理するために用いられ、例えば、上記の実施例でユニキャスト読取処理回路は対応するユニキャスト読取要求又はユニキャスト読取コマンドを処理することができ、ユニキャスト書込処理回路は対応するユニキャスト書込要求又はユニキャスト書込コマンドを処理することができる。これに応じて、マルチキャスト/ブロードキャストタイプの処理回路はマルチキャスト又はブロードキャストタイプの信号を処理するために用いられ、例えば、上記の実施例でブロードキャスト処理回路は対応するマルチキャストコマンド又はブロードキャストコマンドを処理することができる。
【０５９３】
なお、データ操作信号がコマンドタイプの信号であり、即ち本実施例に係るユニキャスト読取コマンド、ユニキャスト書込コマンド、マルチキャストコマンド、ブロードキャストコマンドである場合に、読み書き処理回路１２１は、具体的に、コマンドタイプの信号を解析して、要求タイプの信号を生成し、要求タイプの信号を調停回路１２２に伝送するために用いられ、データ操作信号が要求タイプの信号であり、即ち本実施例に係るユニキャスト読取要求、ユニキャスト書込要求である場合に、読み書き処理回路１２１は、当該要求タイプの信号に一時的記憶操作を実行し、当該要求タイプの信号を調停回路１２２に送信するために用いられる。
【０５９４】
選択可能で、データ操作信号がマルチキャストコマンドである場合に、当該マルチキャストコマンドにはデータを受信するべき複数の目標機械学習ユニットの識別子が担持されており、伝送回路１２の読み書き処理回路１２１が１つのマルチキャストコマンドを受信した時、読み書き処理回路１２１は当該マルチキャストコマンドに担持された識別子に基づいて、複数の目標機械学習ユニットを認識し、最後に、返すべきデータを認識された複数の目標機械学習ユニットに送信することができる。
【０５９５】
選択可能で、データ操作信号がブロードキャストコマンドである場合に、当該ブロードキャストコマンドにはデータを受信する目標機械学習ユニットの識別子が１つも担持されなくてもよいが、読み書き処理回路１２１が１つのブロードキャストコマンドを受信した時、読み書き処理回路１２１は調停回路１２２が共有メモリ１３から取得したデータを、機械学習装置１１に含まれる全ての機械学習ユニット１５に送信することができる。
【０５９６】
選択可能で、予め設定された調停規則は、調停回路１２２が特定の規則に従って複数のデータ操作信号の優先度を決定することで、調停回路１２２が各データ操作信号の優先度に基づいて調停が成功したデータ操作信号を決定できるようにするために用いられる。例えば、１＃読み書き処理回路１２１の送信したデータ操作信号の伝送速度が２＃読み書き処理回路１２１の送信したデータ操作信号の伝送速度より大きい場合に、調停回路１２２は伝送速度の速いデータ操作信号の優先度を高優先度に設定し、伝送速度の遅いデータ操作信号の優先度を低優先度に設定することができ、その後、調停回路１２２は上記の優先度に基づいて、高優先度のデータ操作信号を選択して次のステップの操作を実行し、即ち当該データ操作信号に基づいて共有メモリ１３からデータを取得することができる。
【０５９７】
上記の実施例では、伝送回路は、第２伝送インタフェースと、第２伝送インタフェースに接続された少なくとも１つの読み書き処理回路と、読み書き処理回路に接続された調停回路とを含み、共有メモリから読み取られたデータを第２伝送インタフェースによって少なくとも１つの機械学習ユニットに送信し、ここで、読み書き処理回路は少なくとも１つの機械学習ユニットが第１伝送インタフェース及び第２伝送インタフェースによって送信したデータ操作信号を受信し、データ操作信号を調停回路に伝送することができ、このようにして調停回路は予め設定された調停規則に基づいて、少なくとも１つの読み書き処理回路から受信されたデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて共有メモリ中のデータを操作することができるようになる。上記の伝送回路では、複数の読み書き処理回路は複数の第２伝送インタフェースを介して機械学習装置に接続され、調停回路により調停を実行することにより、データの効果的な伝送を実現し、機械学習装置が複数のデータ操作信号を同時に送信する場合にデータの抵触及びブロッキングが生じやすいような状況が避けられ、また、本実施例による伝送回路は様々なタイプのコマンド又は要求を処理することができ、データ処理装置の応用範囲が大幅に拡大される。
【０５９８】
一実施例では、上記の実施例に係るデータ処理装置は少なくとも１つのクラスタに分割されてもよく、各クラスタは複数の機械学習ユニット１５と、１つの伝送回路１２と、少なくとも１つの共有メモリ１３とを含み、複数のクラスタが存在する応用シーンでは、図５８に示すように、伝送回路１２は、所在のクラスタ内の調停回路１２２及びクラスタ内の共有メモリ１３に接続された第１タイプのダイレクトメモリアクセスコントローラＤＭＡ１２３、及び／又は、所在のクラスタ内の調停回路１２２及び他のクラスタ内の共有メモリ１３に接続された第２タイプのＤＭＡ１２４をさらに含んでもよい。
【０５９９】
上記の第１タイプのＤＭＡ１２３は、クラスタ内の調停回路１２２とクラスタ内の共有メモリ１３とのデータ交換を制御するために用いられ、第２タイプのＤＭＡ１２４は、クラスタ内の調停回路１２２と他のクラスタ内の共有メモリ１３とのデータ交換、及びクラスタ内の調停回路１２２とチップ外メモリとのデータ交換を制御するために用いられる。
【０６００】
選択可能で、第１タイプのＤＭＡ１２３及び第２タイプのＤＭＡ１２４の主な機能は調停回路１２２が少なくとも１つの共有メモリ１３に接続されるよう制御することであり、且つ、接続された少なくとも１つの共有メモリ１３から速やかにデータを読み取り又はデータを書き込むことを実現することができることである。
【０６０１】
伝送回路に第１タイプのＤＭＡ１２３又は第２タイプのＤＭＡ１２４が存在する場合に、図５９に示すように、本願による伝送回路１２は、第１タイプのＤＭＡ１２３に接続された第１選択伝送回路１２５と、第２タイプのＤＭＡに接続された第２選択伝送回路１２６とをさらに含んでもよく、ここで、第１選択伝送回路１２５は、所在のクラスタ内の共有メモリ１３に選択的に接続するために用いられ、第２選択伝送回路１２６は、所在のクラスタ内及び他のクラスタ内の共有メモリ１３、並びにチップ外メモリに選択的に接続するために用いられる。
【０６０２】
選択可能で、第１選択伝送回路１２５及び第２選択伝送回路１２６は、例えば、クロススイッチ、シフトスイッチ等タイプの回路であって、且つ、オンオフ電流又はオンオフ信号を設けることで各回路同士が接続されるか否かを制御できる回路であってもよい。本実施例ではこれについて限定しない。
【０６０３】
選択可能で、図６０を参照すると、伝送回路１２が共有メモリ１３にデータを書き込み、又は共有メモリ１３が読み取られたデータを伝送回路１２に返す時には、伝送回路１２はまず書き込むべきデータ又は返すべきデータを一時的に記憶して処理に備えてもよく、このような応用シーンにおいては、本願による伝送回路１２は、調停回路１２２及び共有メモリ１３に接続されたキャッシュ回路１２７をさらに含んでもよく、当該キャッシュ回路は調停回路１２２が共有メモリ１３から取得したデータを一時的に記憶し、且つ調停回路１２２が共有メモリ１３に書き込むデータを一時的に記憶するために用いられる。
【０６０４】
選択可能で、キャッシュ回路１２７は、データ交換のためのバッファエリアを提供するために用いられ、キャッシュ回路はランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＡＭ）であってもよく、これに関しては従来の技術であるため、ここで詳細は再度説明しない。
【０６０５】
本願によるデータ処理装置について、各回路間のデータ伝送帯域幅が異なってもよく、選択可能で、伝送回路１２と共有メモリ１３との間の伝送帯域幅が、伝送回路１２と機械学習ユニット１５との間の伝送帯域幅より大きい。
【０６０６】
例えば、１つの機械学習装置１１がＮ（Ｎは１以上の整数）個の機械学習ユニット１５と、１つの伝送回路１２と、１つの共有メモリ１３とを含み、伝送回路１２と各機械学習ユニット１５との間の帯域幅がＭであると仮定すると、伝送回路１２中のブロードキャスト処理回路と共有メモリ１３との間の帯域幅をＭ＊Ｎに設定してもよい。このような設計の利点は極端な場合に抵触が避けられることであり、例えば、複数の機械学習ユニット１５が同時に伝送回路１２にブロードキャストコマンドを送信する場合に、伝送回路１２の調停回路１２２が共有メモリ１３にこれらのコマンドを順次送信する時は、帯域幅が十分であるため抵触が生じにくい。また、伝送回路１２中の調停回路１２２が予め設定された調停規則に従って、優先度が比較的高いブロードキャストコマンドを選択して処理を行った後、共有メモリ１３がデータを返すのを待つと同時に、続いて別のブロードキャストコマンドを処理してもよく、このような設計はデータ処理の時間を短縮し、且つデータ伝送の帯域幅を効果的に利用することができる。なお、実際の回路設計において、伝送回路１２と共有メモリ１３との間の帯域幅については、伝送回路１２と各機械学習ユニット１５との間の帯域幅の２倍、４倍、６倍等であってもよく、伝送回路１２と各機械学習ユニット１５との間の帯域幅より大きいことを満たしていれば、本実施例では特に限定しない。
【０６０７】
現在、人工ニューラルネットワークが発展し続けるのにつれて、ますます多くのマルチアーキテクチャの機械学習チップが開発されてきており、これらの機械学習チップはメモリ中のデータにアクセスし又はデータを処理する時は、機械学習チップに大量のデータが必要であり、且つ機械学習チップのデータ処理速度に対する要求が高いため、データアクセス又は操作を行う過程で、一般的にハードウェアの数量を増やすことでデータ伝送の帯域幅を高め、データ処理速度を向上させて、機械学習チップのデータ処理速度に対する高い要求という要件を満たす。
【０６０８】
しかしながら、上記の方法を用いる場合には、機械学習チップがデータアクセス又は操作を行う時に、ハードウェアオーバーヘッドが大きいこと、ハードウェアの冗長性を招く。
【０６０９】
上記の問題を解决するために、本願は以下の技術的解決手段を提供する。
【０６１０】
本願の実施例によるデータ処理装置は、ソフトウェア、ハードウェア又はソフトウェアとハードウェアの組み合わせとして実現してもよく、当該データ処理装置は図６１に示す内容の一部又はその全てであってもよい。当該データ処理装置は機械学習データの処理を実行するために用いられ、データ処理装置は、機械学習装置１１と、伝送回路１２と、共有メモリ１３とを含んでもよく、伝送回路１２は複数の読み書き処理回路１２１と、１つの調停回路１２２とを含み、調停回路１２２は複数の機械学習ユニット１５の送信したデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて共有メモリ１３から機械学習装置１１に必要な入力データを取得するために用いられ、読み書き処理回路１２１は調停が成功したデータ操作信号に担持されたアドレス情報又はデータ操作信号のタイプに基づいて、複数の機械学習ユニットの中から目標機械学習ユニット又は目標演算ユニットを決定し、そして、入力データを目標機械学習ユニット又は目標演算ユニットに返すために用いられ、機械学習装置１１は複数の機械学習ユニット１５を含み、各機械学習ユニット１５は少なくとも１つの演算ユニット１５１を含み、複数の機械学習ユニットは第１伝送インタフェース１４によって伝送回路１２に接続され、伝送回路１２は共有メモリ１３に接続される。
【０６１１】
選択可能で、前記機械学習装置１１は入力データに基づいて機械学習演算を実行して、出力データを得るために用いられてもよい。選択可能で、前記機械学習装置１１は、さらに、出力データを伝送回路１２によって共有メモリ１３に伝送してデータを記憶させるために用いられてもよい。具体的には、機械学習装置１１がニューラルネットワーク演算を実行するために用いられる場合に、機械学習装置１１は入力ニューロンデータ及び重み値データに基づいて人工ニューラルネットワーク演算を実行して、出力ニューロンデータを得、そして、出力ニューロンデータを新たな入力ニューロンデータとして、伝送回路１２によって共有メモリ１３に伝送してデータを記憶させるようにしてもよい。
【０６１２】
なお、上記の機械学習ユニット、伝送回路、共有メモリ及び様々なタイプのインタフェースはいずれもハードウェア回路として実現してもよい。例示的に、伝送回路はブロードキャストバス（ｂｒｏａｄｃａｓｔ  ｂｕｓ）であってもよく、共有メモリは非揮発性及び／又は揮発性メモリであってもよく、ランダムアクセスメモリ（ＲＡＭ）、高速キャッシュメモリ等を含むが、これらに限定されず、様々なタイプのインタフェースは１つ又は複数のデータＩ／Ｏ（ｉｎ／ｏｕｔ、入力／出力）インタフェース又はＩ／Ｏピンに対応してもよい。
【０６１３】
図６１を参照すると、選択可能な一形態では、上記の機械学習装置１１は複数の機械学習ユニット１５を含んでもよい。多層ニューラルネットワークの演算については、フォワード演算中のある層のニューラルネットワークの計算を例として説明する。一実施形態では、上記の機械学習装置は複数の機械学習ユニット（ＭＬＵ、Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｕｎｉｔ）によって並行してニューラルネットワーク中の当該層の全てのニューロンの出力ニューロンデータを計算することができる。例示的に、当該機械学習装置が４つの機械学習ユニットを含み、当該層ニューラルネットワークが１００個のニューロンを有する場合に、各機械学習ユニットごとに２５個のニューロンを配分して処理させるようにしてもよく、対応する演算コマンドを設定することで実現することができ、当該プロセスでは、各機械学習ユニットはいずれも伝送回路によって、配分された当該層の２５個のニューロンのそれぞれに対応する入力ニューロンデータ及び重み値データを共有メモリから取得して、これを用いて計算して配分された当該層の２５個のニューロンの出力ニューロンデータを算出し、配分された当該層の２５個のニューロンの出力ニューロンデータを伝送回路によって共有メモリに伝送して記憶させることができる。なお、上記の各機械学習ユニットはその配分された当該層の複数のニューロンデータを処理する時に、並行して計算して処理することができ、このようにして層ごとにニューラルネットワークの並行計算を実行することで、ニューラルネットワーク計算の並行処理を実現でき、処理効率が向上する。
【０６１４】
複数の機械学習ユニット１５が同時に第１伝送インタフェース１４によって伝送回路１２にデータ操作信号を送信する場合に、第１伝送インタフェース１４によって読み書き処理回路１２１にデータ操作信号を送信してもよく、読み書き処理回路１２１は１つの読み書き処理回路であってもよいし、複数の読み書き処理回路であってもよく、読み書き処理回路１２１が複数の読み書き処理回路である場合に、１つの機械学習ユニット１５が１つの読み書き処理回路に対応してもよいし、１つの機械学習ユニット１５が複数の読み書き処理回路に対応してもよい。読み書き処理回路１２１がデータ操作信号を調停回路１２２に送信し、調停回路１２２が複数のデータ操作信号を調停し、調停が成功したデータ操作信号に基づいて、共有メモリ１３からデータ操作信号に対応する機械学習ユニットに必要な入力ニューロンデータ及び重み値データを取得する。読み書き処理回路１２１はデータ操作信号に担持されたアドレス情報、又はデータ操作信号のタイプに基づいて、目標機械学習ユニット、又は目標演算ユニットを決定し、入力ニューロンデータ及び重み値データを目標機械学習ユニット、又は目標演算ユニットに返す。
【０６１５】
例示的に、機械学習装置は機械学習ユニット０、機械学習ユニット１、機械学習ユニット２及び機械学習ユニット３の４つの機械学習ユニットを含み、読み書き処理回路０、読み書き処理回路１、読み書き処理回路２及び読み書き処理回路３の４つの読み書き処理回路にそれぞれ対応するとする。ここで、機械学習ユニット０、機械学習ユニット１、機械学習ユニット２及び機械学習ユニット３は第１伝送インタフェース１４によって読み書き処理回路０、読み書き処理回路１、読み書き処理回路２及び読み書き処理回路３にそれぞれデータ操作信号を送信する。読み書き処理回路０にデータ操作信号０を送信し、読み書き処理回路１にデータ操作信号１を送信し、読み書き処理回路２にデータ操作信号２を送信し、読み書き処理回路３にデータ操作信号３を送信するようにしてもよい。読み書き処理回路０、読み書き処理回路１、読み書き処理回路２及び読み書き処理回路３はデータ操作信号０、データ操作信号１、データ操作信号２及びデータ操作信号３をそれぞれ調停回路１２２に送信して調停させ、調停回路１２２は複数のデータ操作信号を調停して、データ操作信号２を調停が成功したデータ操作信号として決定し、データ操作信号２に基づいて、共有メモリ１３から入力ニューロンデータ及び重み値データを取得し、読み書き処理回路２はデータ操作信号２に担持された、機械学習ユニット１及び機械学習ユニット２のアドレスを含むアドレス情報に基づいて、目標機械学習ユニットを機械学習ユニット１及び機械学習ユニット２に決定し、データ操作信号２に基づく入力ニューロンデータ及び重み値データを機械学習ユニット１及び機械学習ユニット２に返す。
【０６１６】
選択可能な別の形態では、上記の機械学習装置は複数の機械学習ユニットを利用して特定の順番に従ってニューラルネットワーク中の各層の全てのニューロンの出力ニューロンデータをそれぞれ算出してもよい。当該プロセスでは、前の機械学習ユニットが当該層の全てのニューロンの出力ニューロンデータを伝送回路によって共有メモリに伝送して記憶させて、これにより次の機械学習ユニットは当該層の全てのニューロンの出力ニューロンデータを抽出して次の層の入力ニューロンデータとして計算を実行できるようにしてもよい。なお、上記の構成は各層のニューラルネットワークの計算量が多くないシーン、例えば、各層のニューロン数目が比較的少ないニューラルネットワークの計算に応用することを理解されたい。
【０６１７】
図６２を参照して、機械学習ユニット１５について詳細に説明する。一形態では、機械学習ユニット１５は、少なくとも１つの演算ユニット１５１と、演算ユニット１５１に接続されたコントローラユニット１５２とを含んでもよく、演算ユニット１５１は１つの主処理回路１５１ａと、複数の副処理回路１５１ｂとを含んでもよく、演算ユニット１５１は第１伝送インタフェース１４によって伝送回路１２に接続される。
コントローラユニット１５２は、第１伝送インタフェース１４によって伝送回路１２にデータ操作信号及び出力ニューロンデータを送信し、且つ第１伝送インタフェース１４によって伝送回路１２が共有メモリ１３から取得した入力ニューロンデータ及び重み値データを受信し、入力ニューロンデータ及び重み値データを主処理回路１５１ａ及び／又は副処理回路１５１ｂに送信するために用いられる。
主処理回路１５１ａは、入力ニューロンデータ及び重み値データを複数の副処理回路１５１ｂに分配するために用いられ、複数の副処理回路１５１ｂは、ニューロンデータ及び重み値データに基づいて、並行して中間演算を実行して複数の中間結果を得、複数の中間結果を主処理回路１５１ａに伝送するために用いられ、主処理回路１５１ａは、さらに、複数の中間結果に後続の処理を実行して計算結果を得るために用いられ、後続の処理は活性化演算を含む。具体的には、当該コントローラユニット１５２は、さらに、計算コマンドを取得し、当該計算コマンドを解析して複数の演算コマンドを得、当該複数の演算コマンドを主処理回路に送信するようにしてもよい。
【０６１８】
なお、本実施例では、機械学習ユニットは複数の演算ユニットを含み、各演算ユニットは上記の第１伝送インタフェースによってデータを送受信できることを理解されたい。
【０６１９】
例えば、選択可能な一形態では、主処理回路はコントローラユニットを含んでもよく、当該コントローラユニットは、演算コマンドをマイクロコマンドに復号するための主コマンド処理ユニットを含んでもよい。また、選択可能な別の形態では、副処理回路は別のコントローラユニットを含んでもよく、当該別のコントローラユニットは、マイクロコマンドを受信及び処理するための副コマンド処理ユニットを含む。上記のマイクロコマンドはコマンドの下位コマンドであってもよく、当該マイクロコマンドはコマンドに対する区分又は復号により得ることができ、さらに各デバイス、各ユニット又は各処理回路の制御信号に復号されることが可能である。例えば、積算マイクロコマンドは畳み込みコマンドの下位コマンドである。
【０６２０】
本実施例による機械学習データ処理を実行するためのデータ処理装置は、機械学習装置と、伝送回路と、共有メモリとを含み、伝送回路は複数の読み書き処理回路と、１つの調停回路を含み、機械学習装置は複数の機械学習ユニットを含み、各機械学習ユニットは少なくとも１つの演算ユニットを含み、複数の機械学習ユニットは第１伝送インタフェースによって伝送回路に接続され、伝送回路は共有メモリに接続される。本実施例では、データ処理装置が調停回路によって複数の機械学習ユニットの送信したデータ操作信号を調停し、調停結果に基づいて共有メモリから機械学習装置に必要な入力ニューロンデータ及び重み値データを取得することにより、データ処理装置がデータ操作を行う時、複数の機械学習ユニットは１つの伝送回路によって共有メモリにデータを操作し、調停回路によって複数のデータ操作信号を調停することができ、ハードウェアオーバーヘッドが低減されるとともに、複数のデータ操作信号のブロッキングが避けられる。
【０６２１】
一実施例では、引き続き図６１を参照すると、読み書き処理回路は、ユニキャスト読取処理回路、ブロードキャスト処理回路の任意の１種を含み、データ操作信号は、ユニキャスト読取要求、ユニキャスト読取コマンド、マルチキャストコマンド、ブロードキャストコマンドの少なくとも１種を含み、ここで、ユニキャストタイプの処理回路はユニキャストタイプの信号を処理するために用いられ、ブロードキャストタイプの処理回路はマルチキャスト又はブロードキャストタイプの信号を処理するために用いられる。
【０６２２】
例示的に、ユニキャスト読取コマンドはある機械学習ユニットの送信した共有メモリ中のソースアドレスの入力ニューロンデータ及び重み値データに対する読取コマンドであり、ユニキャスト読取コマンドによって上記の機械学習ユニットに入力ニューロンデータ及び重み値データを返すことができ、当該入力ニューロンデータ及び重み値データは当該機械学習ユニットが計算コマンドに基づいて、ある層の配分されたニューロンの計算中に当該配分されたニューロンに必要な入力ニューロンデータ及び重み値データであり、ブロードキャストコマンドはある機械学習ユニットの送信した、共有メモリ中のソースアドレスの入力ニューロンデータ及び重み値データに対する読取コマンドであり、ブロードキャストコマンドによって上記の機械学習装置中の全ての機械学習ユニットに当該入力ニューロンデータ及び重み値データを返すことができ、当該入力ニューロンデータはある層の全てのニューロンに必要な入力ニューロンデータ、即ち前の層の全ての出力ニューロンデータであってもよく、当該重み値データは繰り返し使用される重み値データ、例えば、畳み込みカーネルであってもよく、マルチキャストコマンドとブロードキャストコマンドの違いは、マルチキャストコマンドのデータ返し対象は上記の機械学習装置中の全ての機械学習ユニットではなく、当該マルチキャストコマンドのフラグフィールドに対応する複数の機械学習ユニットであることにある。また、一般には、コマンドと要求の相違点は、コマンドを実行するのにオーバーヘッドが高いが、コマンドに多くの情報が含まれ、要求を実行するのにオーバーヘッドが少ないが、要求に少ない情報が含まれることである。
【０６２３】
上記の実施例では、データ処理装置が調停回路によって複数の機械学習ユニットの送信したデータ操作信号を調停し、調停結果に基づいて共有メモリから機械学習装置に必要な入力ニューロンデータ及び重み値データを取得することにより、データ処理装置がデータ操作を行う時、複数の機械学習ユニットは１つの伝送回路によって共有メモリにデータを操作することができ、ハードウェアオーバーヘッドが低減され、ハードウェアの冗長性が避けられる。下記の実施例を用いて、調停モジュールはどのようにして複数の読み書き処理回路の送信したデータ操作信号の優先度を決定するかの具体的に過程を説明する。
【０６２４】
一実施例では、前記調停回路１２２は、具体的に、複数の読み書き処理回路１２１の送信したデータ操作信号の優先度を決定し、優先度が最高のデータ操作信号を調停が成功したデータ操作信号とするために用いられる。
【０６２５】
ここで、調停回路１２２は予め設定された規則に従って複数のデータ操作信号の優先度を決定することができるため、調停回路１２２が各データ操作信号の優先度に基づいて操作すべき対象、即ち調停が成功したデータ操作信号を決定することができる。また、各データ操作信号の送信時間を調停のための基準としてもよいし、各データ操作信号に担持された伝送速度情報を調停のための基準としてもよい。例えば、読み書き処理回路１がデータ操作信号を送信した時間がＴ時刻であり、読み書き処理回路２がデータ操作信号を送信した時間がＴ＋１時刻である場合に、データ操作信号の送信時間を調停のための基準として、読み書き処理回路１の送信したデータ操作信号を高優先度のデータ操作信号、即ち調停が成功したデータ操作信号とする。調停回路１２２は調停結果に従って、読み書き処理回路１の送信した調停が成功したデータ操作信号に基づいて、共有メモリ１３からデータを取得する。
【０６２６】
本実施例によるデータ処理装置は、調停回路によって複数の読み書き処理回路の送信したデータ操作信号の優先度を決定し、優先度が最高のデータ操作信号を調停が成功したデータ操作信号とする。複数のデータ操作信号を同時に受信した場合に、調停回路により１つの実行可能なデータ操作信号を決定することで、複数のデータ操作信号を同時に実行することでデータブロッキングが起きるような状況が避けられ、さらには、複数の機械学習ユニットが１つの伝送回路によって共有メモリにデータ操作を行うことができ、ハードウェアオーバーヘッドが低減され、ハードウェアの冗長性が避けられる。
【０６２７】
一実施例では、調停回路１２２は、具体的に、複数の読み書き処理回路１２１の送信したデータ操作信号の優先度が同じである場合に、複数のデータ操作信号のタイプ及び予め設定された実行条件に基づいて、調停が成功したデータ操作信号を決定するために用いられる。
【０６２８】
ここで、上記の実施例を踏まえ、複数の読み書き処理回路１２１の送信したデータ操作信号の優先度が同じである場合に、調停回路１２２は複数のデータ操作信号のタイプ及び予め設定された実行条件に基づいて、調停が成功したデータ操作信号を決定することができる。
【０６２９】
ここで、予め設定された実行条件はデータ操作信号に対応するデータ伝送チャネルがアイドルであるか否かを検出することで、調停結果を決定することであってもよい。データ伝送チャネルがアイドルである場合に、当該データ伝送チャネルに対応するデータ操作信号を調停が成功したデータ操作信号として調停する。また、データ操作信号に担持された送信時間情報に基づいて調停結果を決定してもよい。例示的に、調停回路１２２が、データ操作信号０、データ操作信号１、データ操作信号２及びデータ操作信号３の４つのデータ操作信号を受信し、ここで、データ操作信号１及びデータ操作信号２は優先度が同じであり、データ操作信号１はユニキャスト読取コマンドであり、データ操作信号２はブロードキャストコマンドである場合に、データ操作信号１に担持されたアドレス情報に基づいて、機械学習ユニット１を目標機械学習ユニットとして決定し、データ操作信号２のタイプに基づいて機械学習ユニット０、機械学習ユニット１、機械学習ユニット２及び機械学習ユニット３を目標機械学習ユニットとして決定し、この場合に、機械学習ユニット０、機械学習ユニット１及び機械学習ユニット２のデータチャネルがアイドルであり、機械学習ユニット３のデータチャネルがビジーであれば、調停回路１２２は、データ操作信号１がユニキャスト読取コマンドであり、データ操作信号２がブロードキャストコマンドであり、機械学習ユニット３のデータチャネルがビジーであることに基づいて、データ操作信号１を調停が成功したデータ操作信号として決定する。
【０６３０】
選択可能で、データ操作信号がユニキャストタイプの信号である場合に、上記の実行条件はユニキャストタイプの信号を送信する機械学習ユニットのチャネルがアイドルであり、又はユニキャストタイプの信号を送信する機械学習ユニット中の演算ユニットのチャネルがアイドルであることを含む。
【０６３１】
選択可能で、データ操作信号がマルチキャストタイプの信号である場合に、上記の実行条件は、マルチキャストタイプの信号を送信する機械学習ユニットのチャネルがアイドルであり、且つマルチキャストタイプの信号に指定された目標機械学習ユニットのチャネルがアイドルであること、又は、マルチキャストタイプ信号を送信する機械学習ユニット中の演算ユニットのチャネルがアイドルであり、且つマルチキャストタイプの信号に指定された目標演算ユニットのチャネルがアイドルであることを含む。
【０６３２】
選択可能で、データ操作信号がブロードキャストタイプの信号である場合に、上記の実行条件は、ブロードキャストタイプの信号を送信する機械学習ユニットのチャネルがアイドルであり、且つ残りの他の機械学習ユニットのチャネルがアイドルであること、又は、ブロードキャストタイプの信号を送信する機械学習ユニット中の演算ユニットのチャネルがアイドルであり、且つ残りの他の機械学習ユニット中の演算ユニットのチャネルがアイドルであることを含む。
【０６３３】
本実施例によるデータ処理装置は、複数の読み書き処理回路の送信したデータ操作信号の優先度が同じである場合に、調停回路は複数のデータ操作信号のタイプ及び予め設定された実行条件に基づいて、調停が成功したデータ操作信号を決定することができる。本例では、データ操作信号の優先度が同じである場合に、データ操作信号のタイプ及び予め設定された実行条件により、調停が成功したデータ操作信号を決定することにより、複数のデータ操作信号を同時に実行することでデータブロッキングが起きるような状況が一層避けられ、さらには、複数の機械学習ユニットが１つの伝送回路によって共有メモリにデータ操作を行うことができ、ハードウェアオーバーヘッドが低減され、ハードウェアの冗長性が避けられる。
【０６３４】
一実施例では、図６３に示すように、伝送回路１２は第２伝送インタフェース１２０をさらに含み、第２伝送インタフェース１２０のうちの各インタフェースは第１伝送インタフェース１４のうちの各インタフェースに一対一で接続され、且つ１つの機械学習ユニット１５は１つの読み書き処理回路１２１に対応して接続される。
【０６３５】
ここで、第１伝送インタフェース１４はデータ操作信号を第２伝送インタフェース１２０によって対応する読み書き処理回路１２１に送信することができ、伝送回路１２は返された機械学習装置に必要な入力ニューロンデータ及び重み値データを第２伝送インタフェース１２０によって第１伝送インタフェース１４に返し、第１伝送インタフェース１４によって目標機械学習ユニット又は目標演算ユニットに返すことができる。第１伝送インタフェース１４は１つのインタフェースを含んでもよいし、複数のインタフェースを含んでもよく、第２伝送インタフェース１２０は１つのインタフェースを含んでもよいし、複数のインタフェースを含んでもよい。例示的に、第１伝送インタフェース１４が１つの送信インタフェース１４１と、１つのデータ受信インタフェース１４２とを含む場合に、第２伝送インタフェース１２０は１つの送信インタフェース１４１及び１つの返しインタフェース１４２に対応する第２受信インタフェース１２０１及び第２返しインタフェース１２０２を含む。
【０６３６】
選択可能で、図６４に示すように、１つの機械学習ユニット１５中の複数の演算ユニット１５１は第１伝送インタフェース１４のうちの１つの送信インタフェース１４１を共有し、且つ各演算ユニット毎に１つのデータ受信インタフェース１４２に対応する。
【０６３７】
ここで、１つの機械学習ユニット１５が複数の演算ユニット１５１を含む場合に、複数の演算ユニット１５１は第１伝送インタフェース１４の１つの送信インタフェース１４１を共有してもよく、１つの機械学習ユニット１５中の複数の演算ユニット１５１は共有された送信インタフェース１４１によってデータ操作信号を伝送回路１２に送信し、伝送回路１２は取得された入力ニューロンデータ及び重み値データを、目標演算ユニット１５１に対応するデータ受信インタフェース１４２によって目標演算ユニットに返す。
【０６３８】
したがって、本実施例によるデータ処理装置は、１つの機械学習ユニット中の複数の演算ユニットが前記第１伝送インタフェースのうちの１つの送信インタフェースを共有し、且つ各演算ユニット毎に１つのデータ受信インタフェースに対応することで、機械学習ユニット中のデータ操作信号送信インタフェースの数量を効果的に低減し、ハードウェアリソースを節約し、ハードウェアの面積及び消費パワーを低減することができる。
【０６３９】
一実施例では、図６５に示すように、１つの機械学習ユニット１５中の複数の演算ユニット１５１はそれぞれ前記第１伝送インタフェースのうちの１つの送信インタフェース１４１及び１つのデータ受信インタフェース１４２に対応する。
【０６４０】
ここで、図６５に示すように、１つの演算ユニット１５１は１つの送信インタフェース１４１及び１つのデータ受信インタフェース１４２に対応してもよく、演算ユニット１５１はその対応する送信インタフェース１４１によってデータ操作信号を伝送回路１２に送信し、伝送回路１２は取得された入力ニューロンデータ及び重み値データを対応するデータ受信インタフェース１４２によって対応する目標演算ユニット１５１に返す。例示的に、演算ユニット１は送信インタフェース１及びデータ受信インタフェース１に対応し、演算ユニット２は送信インタフェース２及びデータ受信インタフェース２に対応し、演算ユニット１は送信インタフェース１によってデータ操作信号を伝送回路１２に送信し、伝送回路１２はデータ操作信号に基づいて目標演算ユニットを演算ユニット１及び演算ユニット２に決定する場合に、伝送回路は取得された入力ニューロンデータ及び重み値データをデータ受信インタフェース１及びデータ受信インタフェース２によって演算ユニット１及び演算ユニット２に返す。
【０６４１】
したがって、本実施例に示すデータ処理装置では、１つの機械学習ユニット中の複数の演算ユニットはそれぞれ前記第１伝送インタフェースのうちの１つの送信インタフェース及び１つのデータ受信インタフェースに対応し、複数の演算ユニットと第１伝送インタフェースのうちの送信インタフェース及びデータ受信インタフェースとの一対一での対応により、データ伝送中の制御ロジックを効果的に簡素化することができる。
【０６４２】
一実施例では、図６６に示すように、複数の機械学習ユニット１５は第２伝送インタフェース１２０のうちの１つの信号受信インタフェース８１２０１及び１つのデータ返しインタフェース８１２０２を共有する。
【０６４３】
ここで、複数の機械学習ユニット１５は第２伝送インタフェース１２０のうちの１つの信号受信インタフェース８１２０１及び１つのデータ返しインタフェース８１２０２を共有してもよい。例示的に、読み書き処理回路１２１がブロードキャスト読取処理回路である場合に、複数の機械学習ユニットの送信したデータ操作信号は、１つの信号受信インタフェース８１２０１によってブロードキャスト読取処理回路に送信され、ブロードキャスト読取処理回路はデータ操作信号に基づいて、入力ニューロンデータ及び重み値データを取得し、データ操作信号中のアドレス情報に基づいて、入力ニューロンデータ及び重み値データをデータ返しインタフェース８１２０２によって目標機械学習ユニットに返す。
【０６４４】
本実施例によるデータ処理装置では、複数の機械学習ユニットは第２伝送インタフェースのうちの１つの信号受信インタフェース、及び１つのデータ返しインタフェースを共有する。本実施例では、データ処理装置は第２伝送インタフェースのうちの１つの信号受信インタフェース、及び１つのデータ返しインタフェースを共有することにより、ハードウェアオーバーヘッドが一層低減され、ハードウェアの冗長性が避けられる。
【０６４５】
一実施例では、引き続き図６６を参照すると、読み書き処理回路１２１は信号キューをさらに含み、信号キューは各機械学習ユニット１５の送信したデータ操作信号を記憶するために用いられ、読み書き処理回路１２１は、さらに、データ操作信号を受信した時、信号キューにスペースが残るか否かを判断し、そうである場合に、データ操作信号を信号キューにキャッシュし、そうでない場合に、データ操作信号をブロッキングするために用いられる。
【０６４６】
ここで、信号キューは各機械学習ユニット１５の送信したデータ操作信号を記憶するために用いることができ、読み書き処理回路１２１外に設けられてもよいし、読み書き処理回路１２１内に設けられてもよい。読み書き処理回路１２１がデータ操作信号を受信した時、信号キューにメモリ照会コマンドを送信することにより、信号キューのストレージスペースを特定して、信号キューのストレージスペースのサイズはデータ操作信号を記憶するのに充分である場合に、データ操作信号を信号キューにキャッシュし、信号キューのストレージスペースのサイズはデータ操作信号を記憶するのに不充分である場合に、データ操作信号をブロッキングするようにしてもよい。
【０６４７】
本実施例によるデータ処理装置では、読み書き処理回路は信号キューをさらに含み、信号キューは各機械学習ユニットの送信したデータ操作信号を記憶するために用いられ、読み書き処理回路は、さらに、データ操作信号を受信した時、信号キューにスペースが残るか否かを判断し、そうである場合に、データ操作信号を信号キューにキャッシュし、そうでない場合に、データ操作信号をブロッキングするために用いられる。本実施例では、読み書き処理回路が複数のデータ操作信号を受信した場合に、データ操作信号を信号キューにキャッシュし、又はデータ操作信号をブロッキングすることにより、データ操作信号を１つずつ調停回路に送信して処理させることができ、データ操作信号が込み合うような状況が避けられ、さらには、複数の機械学習ユニットが１つの伝送回路によって共有メモリにデータ操作を行うことができ、ハードウェアオーバーヘッドが低減され、ハードウェアの冗長性が避けられる。
【０６４８】
選択可能で、読み書き処理回路１２１がブロードキャスト処理回路である場合に、信号キューはコマンドキューと、要求キューとを含み、コマンドキューはブロードキャスト処理回路の受信したコマンドタイプの信号をキャッシュするために用いられ、要求キューはコマンドタイプの信号を解析して得た要求タイプの信号をキャッシュするために用いられる。
【０６４９】
ここで、読み書き処理回路１２１がブロードキャスト処理回路である場合に、信号キューはコマンドキューと、要求キューとを含んでもよく、各機械学習ユニット１５の送信したコマンドタイプの信号を受信した後、コマンドキューに記憶して、ブロードキャスト処理回路によりコマンドタイプの信号を解析して処理して、要求タイプの信号を得、得られた要求タイプの信号を要求キューに記憶するようにしてもよい。ここで、コマンドキューはブロードキャスト処理回路の受信したコマンドタイプの信号をキャッシュするために用いられ、要求キューはコマンドタイプの信号を解析して得た要求タイプの信号をキャッシュするために用いられる。
【０６５０】
本実施例によるデータ処理装置では、読み書き処理回路がブロードキャスト処理回路である場合に、信号キューはコマンドキューと、要求キューとを含み、コマンドキューはブロードキャスト処理回路の受信したコマンドタイプの信号をキャッシュするために用いられ、要求キューはコマンドタイプの信号を解析して得た要求タイプの信号をキャッシュするために用いられる。本実施例では、コマンドタイプの信号をコマンドキューに、要求タイプの信号を要求キューにそれぞれ記憶することにより、コマンドタイプの信号及び要求タイプの信号を１つずつ調停回路に送信してそれぞれ処理させることができ、データ操作信号が込み合うような状況が一層避けられ、さらには、複数の機械学習ユニットが１つの伝送回路によって共有メモリにデータ操作を行うことができ、ハードウェアオーバーヘッドが低減され、ハードウェアの冗長性が避けられる。
【０６５１】
なお、上記の各実施例中の同じ又は類似する部分は互いに参照することができ、いくつかの実施例で詳しく説明されていない内容については、他の実施例中の同じ又は類似する内容を参照できることを理解されたい。
【０６５２】
なお、本願の説明では、「第１」、「第２」等の用語は説明の目的のみに用いられ、相対的な重要性を示し又はそれを示唆するものと理解されてはならない。また、本願の説明では、特に説明がある場合を除き、「複数」は少なくとも２つを意味する。
【０６５３】
フローチャートにおいて説明された、又はここで他の形態で説明された任意のプロセス又は方法は、特定のロジック機能もしくはプロセスのステップを実現するための実行可能コマンドのコードのモジュール、セグメント又は部分を１つ又は複数含むことを示し、且つ、本願の選択可能な実施形態には他の実現形態が含まれ、示された順番又は検討された順番ではなく、関わる機能によってほぼ同時に又は逆の順番で、当該機能を実行することができ、これは本願の実施例の属する技術分野の当業者に理解されることである。
【０６５４】
なお、本願の各部分はハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせを用いて実現できることを理解されたい。上記の実施形態では、複数のステップ又は方法はメモリに記憶されており、且つ適切なコマンド実行システムにより実行されるソフトウェア又はファームウェアを用いて実現することができる。例えば、ハードウェアを用いて実現する場合に、別の実施形態と同じように、本分野の周知技術として、データ信号にロジック機能を実現するためのロジックゲート回路を有する離散ロジック回路、適切な組合せロジックゲート回路を有する専用集積回路、プログラマブルゲートアレイ（ＰＧＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等の任意の１種又はそれらの組み合わせを用いて実現することができる。
【０６５５】
当業者に理解されるように、上記の実施例の方法を実現するための全ての又は一部のステップはプログラムにより関連のハードウェアを指令することで完了することができ、前記プログラムはコンピュータ読取可能記憶媒体に記憶されてもよく、当該プログラムが実行する時には、方法の実施例のステップの１つ又はその組み合わせを含む。
【０６５６】
また、本願の各実施例に係る各機能ユニットは１つの処理モジュールに集積されてもよいし、各ユニットが単独で物理的に存在してもよく、２つの以上のユニットが１つのモジュールに集積されてもよい。上記の集積型モジュールはハードウェアとして実現されてもよいし、ソフトウェア機能モジュールとして実現されてもよい。前記集積型モジュールはソフトウェア機能モジュールとして実現され、且つ単独な製品として販売・使用される場合に、コンピュータ読取可能記憶媒体に記憶されてもよい。
【０６５７】
上述した記憶媒体は読み取り専用メモリ、磁気ディスク又は光ディスク等であってもよい。
【０６５８】
本明細書の説明では、用語「一実施例」、「いくつかの実施例」、「例」、「具体例」、「いくつかの例」等を使用した説明は、当該実施例又は例で説明された具体的な特徴、構造、材料又は特性が本願の少なくとも１つの実施例又は例に含まれることを意味する。本明細書では、上記の用語を用いた例示的な記述は必ずしも同じ実施例又は例を指すものではない。しかも、説明された具体的な特徴、構造、材料又は特性は任意の１つ又は複数の実施例もしくは例において適切な形態で組み合わせることができる。
【０６５９】
上述した内容で本願の実施例を示し説明しているが、上記の実施例は例示的なものであり、本願に対する限定として理解することができず、当業者が本願の範囲内において上記の実施例に改変、修正、置換、変形を行うことができることを理解されたい。
【図１】
2021526277.tif 000012
【図２】
2021526277.tif 000013
【図３】
2021526277.tif 000014
【図４】
2021526277.tif 000015
【図５ａ】
2021526277.tif 000016
【図５ｂ】
2021526277.tif 000017
【図６】
2021526277.tif 000018
【図７】
2021526277.tif 000019
【図８】
2021526277.tif 000020
【図９】
2021526277.tif 000021
【図１０ａ】
2021526277.tif 000022
【図１０ｂ】
2021526277.tif 000023
【図１１】
2021526277.tif 000024
【図１２】
2021526277.tif 000025
【図１３】
2021526277.tif 000026
【図１４】
2021526277.tif 000027
【図１５】
2021526277.tif 000028
【図１６】
2021526277.tif 000029
【図１７】
2021526277.tif 000030
【図１８】
2021526277.tif 000031
【図１９】
2021526277.tif 000032
【図２０】
2021526277.tif 000033
【図２１】
2021526277.tif 000034
【図２２】
2021526277.tif 000035
【図２３】
2021526277.tif 000036
【図２４】
2021526277.tif 000037
【図２５】
2021526277.tif 000038
【図２６】
2021526277.tif 000039
【図２７】
2021526277.tif 000040
【図２８】
2021526277.tif 000041
【図２９】
2021526277.tif 000042
【図３０】
2021526277.tif 000043
【図３１】
2021526277.tif 000044
【図３２】
2021526277.tif 000045
【図３３】
2021526277.tif 000046
【図３４】
2021526277.tif 000047
【図３５】
2021526277.tif 000048
【図３６】
2021526277.tif 000049
【図３７】
2021526277.tif 000050
【図３８】
2021526277.tif 000051
【図３９】
2021526277.tif 000052
【図４０】
2021526277.tif 000053
【図４１】
2021526277.tif 000054
【図４２】
2021526277.tif 000055
【図４３】
2021526277.tif 000056
【図４４】
2021526277.tif 000057
【図４５】
2021526277.tif 000058
【図４６】
2021526277.tif 000059
【図４７】
2021526277.tif 000060
【図４８】
2021526277.tif 000061
【図４９】
2021526277.tif 000062
【図５０】
2021526277.tif 000063
【図５１】
2021526277.tif 000064
【図５２】
2021526277.tif 000065
【図５３】
2021526277.tif 000066
【図５４】
2021526277.tif 000067
【図５５】
2021526277.tif 000068
【図５６】
2021526277.tif 000069
【図５６Ａ】
2021526277.tif 000070
【図５７】
2021526277.tif 000071
【図５７Ａ】
2021526277.tif 000072
【図５７Ｂ】
2021526277.tif 000073
【図５８】
2021526277.tif 000074
【図５９】
2021526277.tif 000075
【図６０】
2021526277.tif 000076
【図６１】
2021526277.tif 000077
【図６２】
2021526277.tif 000078
【図６３】
2021526277.tif 000079
【図６４】
2021526277.tif 000080
【図６５】
2021526277.tif 000081
【図６６】
2021526277.tif 000082
【手続補正書】
【提出日】令和2年12月11日(2020.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶装置と、複数の計算装置とを含み、前記記憶装置及び複数の前記計算装置は１枚のチップに設けられ、少なくとも１つの計算装置は前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続されることを特徴とするネットワークオンチップ処理システム。
【請求項２】
前記複数の計算装置のうちの任意の２つの計算装置は直接的に接続されることを特徴とする請求項１に記載のシステム。
【請求項３】
前記複数の計算装置は第１計算装置と、複数の第２計算装置とを含み、前記第１計算装置は前記記憶装置に接続され、前記複数の第２計算装置のうちの少なくとも１つの第２計算装置は前記第１計算装置に接続されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記複数の第２計算装置のうちの少なくとも２つの第２計算装置は互いに接続され、且つ前記第１計算装置を介して前記記憶装置に接続されることを特徴とする請求項３に記載のシステム。
【請求項５】
前記複数の第２計算装置のうちの任意の２つの第２計算装置は前記第１計算装置に直接的に接続されることを特徴とする請求項３に記載のシステム。
【請求項６】
前記複数の計算装置のうちの各計算装置はいずれも前記記憶装置に接続され、且つ少なくとも２つの計算装置は互いに接続されることを特徴とする請求項１に記載のシステム。
【請求項７】
前記計算装置は、機械学習計算を実行するために用いられ、演算ユニットと、コントローラユニットとを含み、前記演算ユニットは、１つの主処理回路と、複数の副処理回路とを含み、
前記コントローラユニットは、入力データ及び計算コマンドを取得するために用いられ、
前記コントローラユニットは、さらに、前記計算コマンドを解析して複数の演算コマンドを得、前記複数の演算コマンド及び前記入力データを前記主処理回路に送信するために用いられ、
前記主処理回路は、前記入力データに前処理を実行し、前記複数の副処理回路とデータ及び演算コマンドを伝送するために用いられ、
前記複数の副処理回路は、前記主処理回路から伝送されたデータ及び演算コマンドに基づき、並行して中間演算を実行して複数の中間結果を得、複数の中間結果を前記主処理回路に伝送するために用いられ、
前記主処理回路は、前記複数の中間結果に後続の処理を実行して前記計算コマンドの計算結果を得るために用いられることを特徴とする請求項１に記載のシステム。
【請求項８】
前記コントローラユニットは、コマンド記憶ユニットと、コマンド処理ユニットと、キュー記憶ユニットとを含み、
前記コマンド記憶ユニットは、人工ニューラルネットワーク演算に関連する前記計算コマンドを記憶するために用いられ、
前記コマンド処理ユニットは、前記計算コマンドを解析して複数の演算コマンドを得るために用いられ、
前記キュー記憶ユニットは、コマンドキューを記憶するために用いられ、前記コマンドキューは、前記コマンドキューの前後順番に従って実行される複数の演算コマンド又は計算コマンドを含むことを特徴とする請求項７に記載のシステム。
【請求項９】
請求項１〜８のいずれか１項に記載のネットワークオンチップ処理システムを含むことを特徴とする機械学習チップ。
【請求項１０】
請求項９に記載の機械学習チップを含むことを特徴とする電子機器。
【請求項１１】
メモリデバイスと、インタフェース装置と、コントロールデバイスと、請求項９に記載の機械学習チップとを含み、
前記機械学習チップは前記メモリデバイス、前記コントロールデバイス及び前記インタフェース装置にそれぞれ接続され、
前記メモリデバイスは、データを記憶するために用いられ、
前記インタフェース装置は、前記機械学習チップと外部装置とのデータ伝送を実現するために用いられ、
前記コントロールデバイスは、前記機械学習チップの状態を監視するために用いられることを特徴とする回路基板カード。
【請求項１２】
記憶装置と、複数の計算装置と、第１相互接続装置と、第２相互接続装置とを含み、少なくとも１つの計算装置は前記第１相互接続装置を介して前記記憶装置に接続され、前記複数の計算装置は前記第２相互接続装置を介して互いに接続されることを特徴とするニューラルネットワークチップ。
【請求項１３】
ネットワークオンチップによるデータ処理方法であって、
機械学習計算を実行するために用いられて、
第１計算装置が記憶装置にアクセスすることにより、第１演算データを取得することと、
前記第１計算装置が前記第１演算データに演算を実行することにより、第１演算結果を得ることと、
前記第１演算結果を第２計算装置に送信することとを含むことを特徴とするネットワークオンチップによるデータ処理方法。
【請求項１４】
前記第２計算装置が前記記憶装置にアクセスすることにより、第２演算データを取得することをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記第２計算装置が前記第２演算データと前記第１演算結果に演算を実行することにより、第２演算結果を得ることをさらに含むことを特徴とする請求項１４に記載の方法。
【国際調査報告】
2021526277.tif 000083
2021526277.tif 000084
2021526277.tif 000085
2021526277.tif 000086