(57)【要約】【課題】  本発明の目的は、マシンラーニング及びディープラーニングを加速化できる適応乗算器を提供することにある。【解決手段】  適応マトリックスの乗算器が提供される。いくつかの実施形態で、マトリックス乗算器は、第１乗算ユニットと、第２乗算ユニットと、メモリロード回路と、外部バッファ回路を備える。第１乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含み、第２乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含む。メモリロード回路は、バーストメモリアクセスモードのシングルバーストで、メモリからのデータを第１乗算ユニットの第１内部バッファ及び第２乗算ユニットの第１内部バッファにロードするように構成される。【選択図】      図１Ａ
2020135899.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
第１乗算ユニットと、
第２乗算ユニットと、
メモリロード回路と、
外部バッファ回路と、を備え、
前記第１乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含み、
前記第２乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含み、
前記メモリロード回路は、バーストメモリアクセスモードのシングルバーストでメモリからデータを前記第１乗算ユニットの前記第１内部バッファ回路、及び、前記第２乗算ユニットの前記第１内部バッファ回路にロードする、
ように構成される、システム。
【請求項２】
前記乗算ユニットは、加算回路を含み、
前記第１乗算ユニットは、
前記第１乗算ユニットの前記第１内部バッファ回路の第１エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の第１エレメントとの第１積を形成し、
前記第１積を前記加算回路に伝送し、
前記第１乗算ユニットの前記第１内部バッファ回路の第２エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の第２エレメントとの第２積を形成し、
前記第２積を前記加算回路に伝送する、
ように構成される、請求項１に記載のシステム。
【請求項３】
前記第１乗算ユニットは、
前記第１積を形成するように構成される第１乗算回路と、
前記第２積を形成するように構成される第２乗算回路と、
を含む、請求項２に記載のシステム。
【請求項４】
前記加算回路は、
前記第１積と前記第２積との第１合計を形成し、
前記第１合計を前記外部バッファ回路に伝送する、
ように構成される、請求項２または３に記載のシステム。
【請求項５】
前記第２乗算ユニットは、加算回路を含み、
前記第２乗算ユニットは、
前記第２乗算ユニットの前記第１内部バッファ回路の第１エレメントと、前記第２乗算ユニットの前記第２内部バッファ回路の第１エレメントとの第３積を形成し、
前記第３積を前記第２乗算ユニットの前記加算回路に伝送し、
前記第２乗算ユニットの前記第１内部バッファ回路の第２エレメントと、前記第２乗算ユニットの前記第２内部バッファ回路の第２エレメントとの第４積を形成し、
前記第４積を前記第２乗算ユニットの前記加算回路に伝送する、
ように構成される、請求項４に記載のシステム。
【請求項６】
前記第２乗算ユニットの前記加算回路は、
前記第３積と前記第４積との第２合計を形成し、
前記第２合計を前記外部バッファ回路に伝送する、ように構成され、
前記外部バッファ回路は、前記第１合計と前記第２合計を加算する、
ように構成される、請求項５に記載のシステム。
【請求項７】
前記第１乗算ユニットは、加算回路を含み、
前記第１乗算ユニットの前記第１内部バッファ回路は、第１ミニバッファ及び第２ミニバッファを含み、
前記第１乗算ユニットの前記第２内部バッファ回路は、第１ミニバッファ及び第２ミニバッファを含み、
前記第１乗算ユニットは、
前記第１乗算ユニットの前記第１内部バッファ回路の前記第１ミニバッファの第１エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の前記第１ミニバッファの第１エレメントとの第１積を形成し、
前記第１積を前記加算回路に伝送し、
前記第１乗算ユニットの前記第１内部バッファ回路の前記第２ミニバッファの第１エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の前記第２ミニバッファの第１エレメントとの第２積を形成し、
前記第２積を前記加算回路に伝送する、
ように構成される、請求項１に記載のシステム。
【請求項８】
前記第１乗算ユニットは、さらに、
前記第１乗算ユニットの前記第１内部バッファ回路の前記第１ミニバッファの第２エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の前記第１ミニバッファの第１エレメントとの第３積を形成し、
前記第３積を前記加算回路に伝送し、
前記第１乗算ユニットの前記第１内部バッファ回路の前記第２ミニバッファの第２エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の前記第２ミニバッファの第１エレメントとの第４積の形成し、
前記第４積を前記加算回路に伝送する、
ように構成される、請求項７に記載のシステム。
【請求項９】
前記加算回路は、
前記第１積と前記第２積との第１合計を形成し、前記第１合計を前記外部バッファ回路に伝送する、
ように構成され、
前記外部バッファ回路は、
前記第１合計を前記外部バッファ回路の第１エレメントに格納する、
ように構成される、請求項８に記載のシステム。
【請求項１０】
前記加算回路は、さらに、
前記第３積と前記第４積との第２合計を形成し、前記第２合計を前記外部バッファ回路に伝送する、ように構成され、
前記外部バッファ回路は、
前記第２合計を前記外部バッファ回路の第２エレメントに格納する、
ように構成される、請求項９に記載のシステム。
【請求項１１】
前記第１乗算ユニットは、加算回路をさらに含み、
前記乗算ユニットは、
前記第１乗算ユニットの前記第１内部バッファ回路の第１エレメントと、前記第１乗算ユニットの前記外部バッファ回路の第１エレメントとの第１積を形成し、
前記第１積を前記加算回路に伝送し、
前記第１乗算ユニットの前記第１内部バッファ回路の第２エレメントと、前記第１乗算ユニットの前記外部バッファ回路の第２エレメントとの第２積を形成し、
前記第２積を前記加算回路に伝送する、
ように構成される、請求項１に記載のシステム。
【請求項１２】
前記加算回路は、
前記第１積と前記第２積との第１合計を形成し、
前記第１合計を前記第２内部バッファ回路の第１エレメントに格納する、
ように構成される、請求項１１に記載のシステム。
【請求項１３】
前記第１乗算ユニットは、
前記第１積を形成するように構成される第１乗算回路と、
前記第２積を形成するように構成される第２乗算回路と、
を含む、請求項１１または１２に記載のシステム。
【請求項１４】
前記システムは、第１エンティティ及び第２エンティティを含み、
前記第１エンティティは、前記第１乗算ユニット及び前記第２乗算ユニットを含む、
請求項１に記載のシステム。
【請求項１５】
前記メモリロード回路は、
前記第１エンティティから読み取りの要請を受信し、
前記第２エンティティから読み取りの要請を受信し、
前記読み取りの要請を調停する、
ように構成される、請求項１４に記載のシステム。
【請求項１６】
前記メモリロード回路は、
メモリからマトリックスの一部を、前記マトリックスの前記一部のエレメントが転置される方式で、前記第１乗算ユニットの前記第２内部バッファ回路にロードする、
ように構成される、請求項１に記載のシステム。
【請求項１７】
システムであって、
第１乗算ユニットと、
第２乗算ユニットと、
メモリロード回路と、
メモリ格納回路と、
外部バッファ回路と、を備え、
前記第１乗算ユニットは、
乗算回路と、
第１内部バッファ回路と、
第２内部バッファ回路と、
前記乗算回路の入力に連結された共通ポートを具備した乗算回路の入力マルチプレクサと、
前記乗算回路の出力に連結された共通ポートを具備した乗算回路の出力マルチプレクサと、
前記第２内部バッファ回路の出力に連結された共通ポートを具備した第２内部バッファ回路の出力マルチプレクサと、
を有する、
システム。
【請求項１８】
前記第１乗算ユニットの第１状態において、
前記乗算回路の入力マルチプレクサは、前記第２内部バッファ回路の出力マルチプレクサからのデータを前記乗算回路の第１入力に伝達する、ように構成され、
前記乗算回路の出力マルチプレクサは、前記乗算回路の出力からのデータを出力バッファ回路に伝達する、ように構成され、
前記第２内部バッファ回路の出力マルチプレクサは、前記第２内部バッファ回路からのデータを前記乗算回路の入力マルチプレクサに伝達する、ように構成される、
請求項１７に記載のシステム。
【請求項１９】
前記乗算ユニットの第２状態において、
前記乗算回路の入力マルチプレクサは、前記出力バッファ回路からのデータを前記乗算回路の前記第１入力に伝達する、ように構成され、
前記乗算回路の出力マルチプレクサは、前記乗算回路の前記出力からのデータを前記第２内部バッファ回路に伝達する、ように構成され、
前記第２内部バッファ回路の出力マルチプレクサは、前記第２内部バッファ回路からのデータを前記メモリ格納回路に伝達する、ように構成される、
請求項１８に記載のシステム。
【請求項２０】
システムであって、
第１乗算ユニットと
第２乗算ユニットと、
メモリからのデータをロードするための手段と、
出力バッファ回路と、を備え、
前記第１乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含み、
前記第２乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含み、
前記メモリからのデータをロードするための手段は、前記メモリからのデータをバーストメモリアクセスモードのシングルバーストで、前記第１乗算ユニットの前記第１内部バッファ回路及び前記第２乗算ユニットの前記第１内部バッファ回路にロードする、ように構成される、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明による実施形態の１つ以上の多くの側面は、処理回路、より詳細しくは、マトリックスをかける回路に関する。
【背景技術】
【０００２】
マシンラーニングアプリケーション、特にディープニューラルネットワーク（deep  neural  networks）を使用するアプリケーションは、ほとんどの演算であるマトリックス乗算を伴う。一部のアプリケーションにおいて、マトリックス乗算は、全体のディープニューラルネットワークの実行時間の大部分を消費し得る。たとえば、マトリックスを掛けるためのシステムは、ディープニューラルネットワークの性能を改善するのに効果的に役立つ。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８０５１１２４号明細書
【特許文献２】米国特許第８５８９４６８号明細書
【特許文献３】米国特許第９４８９１７６号明細書
【特許文献４】米国特許第１００７３８１５号明細書
【特許文献５】米国特許出願公開第２０１７／０１６８９９０号明細書
【特許文献６】米国特許出願公開第２０１８／０１５７４６５号明細書
【特許文献７】米国特許出願公開第２０１８／０２４６８５３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、マシンラーニング及びディープラーニングを加速できる適応乗算器を提供することにある。
【課題を解決するための手段】
【０００５】
いくつかの実施形態によると、第１乗算ユニットと、第２乗算ユニットと、メモリロード回路と、外部バッファ回路を備え、第１乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含み、第２乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含み、メモリロード回路は、バーストメモリアクセスモードのシングルバーストで、メモリからデータを前記第１乗算ユニットの前記第１内部バッファ回路及び前記第２乗算ユニットの前記第１内部バッファ回路にロードするように構成される、システムが提供される。
【０００６】
いくつかの実施形態で、前記乗算ユニットは、加算回路を含み、前記第１乗算ユニットは、前記第１乗算ユニットの前記第１内部バッファ回路の第１エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の第１エレメントとの第１積を形成し、前記第１積を前記加算回路に伝送し、前記第１乗算ユニットの前記第１内部バッファ回路の第２エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の第２エレメントとの第２積を形成し、前記第２積を、前記加算回路に伝送するように構成される。
【０００７】
いくつかの実施形態で、前記第１乗算ユニットは、前記第１積を形成するように構成される第１乗算回路、及び、前記第２積を形成するように構成される第２乗算回路を含む。
【０００８】
いくつかの実施形態で、前記加算回路は、前記第１積と前記第２積との第１合計を形成し、前記第１合計を前記外部バッファ回路に伝送するように構成される。
【０００９】
いくつかの実施形態で、前記第２乗算ユニットは、加算回路を含み、前記第２乗算ユニットは、前記第２乗算ユニットの前記第１内部バッファ回路の第１エレメントと、前記第２乗算ユニットの前記第２内部バッファ回路の第１エレメントとの第３積を形成し、前記第３積を前記第２乗算ユニットの前記加算回路に伝送し、前記第２乗算ユニットの前記第１内部バッファ回路の第２エレメントと、前記第２乗算ユニットの前記第２内部バッファ回路の第２エレメントとの第４積を形成し、前記第４積を前記第２乗算ユニットの前記加算回路に伝送するように構成される。
【００１０】
いくつかの実施形態で、前記第２乗算ユニットの前記加算回路は、前記第３積と前記第４積との第２合計を形成し、前記第２合計を前記外部バッファ回路に伝送するように構成され、前記外部バッファ回路は、前記第１合計に前記第２合計を合算するように構成される。
【００１１】
いくつかの実施形態で、前記第１乗算ユニットは、加算回路を含み、前記第１乗算ユニットの前記第１内部バッファ回路は、第１ミニバッファ及び第２ミニバッファを含み、前記第１乗算ユニットの前記第２内部バッファ回路は、第１ミニバッファ及び第２ミニバッファを含み、前記第１乗算ユニットは、前記第１乗算ユニットの前記第１内部バッファ回路の前記第１ミニバッファの第１エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の前記第１ミニバッファの第１エレメントとの第１積を形成し、前記第１積を前記加算回路に伝送し、前記第１乗算ユニットの前記第１内部バッファ回路の前記第２ミニバッファの第１エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の前記第２ミニバッファの第１エレメントとの第２積を形成し、前記第２積を前記加算回路に伝送するように構成される。
【００１２】
いくつかの実施形態で、前記第１乗算ユニットは、前記第１乗算ユニットの前記第１内部バッファ回路の前記第１ミニバッファの第２エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の前記第１ミニバッファの第１エレメントとの第３積を形成し、前記第３積を前記加算回路に伝送し、前記第１乗算ユニットの前記第１内部バッファ回路の前記第２ミニバッファの第２エレメントと、前記第１乗算ユニットの前記第２内部バッファ回路の前記第２ミニバッファの第１エレメントとの第４積を形成し、前記第４積を前記加算回路に伝送するように、さらに構成される。
【００１３】
いくつかの実施形態で、前記加算回路は、前記第１積と前記第２積との第１合計を形成し、前記第１合計を前記外部バッファ回路に伝送するように構成され、前記外部バッファは、前記第１合計を前記外部バッファ回路の第１エレメントに格納するように構成される。
【００１４】
いくつかの実施形態で、前記加算回路は、前記第３積と前記第４積との第２合計を形成し、前記第２合計を前記外部バッファ回路に伝送するように、さらに構成され、前記外部バッファ回路は、前記第２合計を前記外部バッファ回路の第２エレメントに格納するように構成される。
【００１５】
いくつかの実施形態で、前記第１乗算ユニットは、加算回路をさらに含み、前記乗算ユニットは、前記第１乗算ユニットの前記第１内部バッファ回路の第１エレメントと前記第１乗算ユニットの前記外部バッファ回路の第１エレメントとの第１積を形成し、前記第１積を前記加算回路に伝送し、前記第１乗算ユニットの前記第１内部バッファ回路の第２エレメントと前記第１乗算ユニットの前記外部バッファ回路の第２エレメントの第２積を形成し、前記第２積を前記加算回路に伝送するように構成される。
【００１６】
いくつかの実施形態で、前記加算回路は、前記第１積と前記第２積との第１合計を形成し、前記第１合計を前記第２内部バッファ回路の第１エレメントに格納するように構成される。
【００１７】
いくつかの実施形態で、前記第１乗算ユニットは、前記第１積を形成するように構成される第１乗算回路と、前記第２積を形成するように構成される第２乗算回路と、を有する。
【００１８】
いくつかの実施形態で、前記システムは、第１エンティティと第２エンティティとを備え、前記第１エンティティは、前記第１乗算ユニット及び前記第２乗算ユニットを含む。
【００１９】
いくつかの実施形態で、前記メモリロード回路は、前記第１エンティティから読み取りの要請を受信し、前記第２エンティティから読み取りの要請を受信し、前記読み取りの要請を調停するように構成される。
【００２０】
いくつかの実施形態で、前記メモリロード回路は、メモリからマトリックスの一部を、前記マトリックスの前記一部のエレメントが転置される方式で、前記第１乗算ユニットの前記第２内部バッファ回路にロードするように構成される。
【００２１】
いくつかの実施形態によると、第１乗算ユニットと、第２乗算ユニットと、メモリロード回路と、メモリ格納回路と、外部バッファ回路を有し、前記第１乗算ユニットは、乗算回路と、第１内部バッファ回路と、第２内部バッファ回路と、前記乗算回路の入力に連結された共通ポートを含む乗算回路の入力マルチプレクサと、前記乗算回路の出力に連結された共通ポートを含む乗算回路の出力マルチプレクサと、前記第２内部バッファ回路の出力に連結された共通ポートを含む第２内部バッファ回路の出力マルチプレクサを備える、システムが提供される。
【００２２】
いくつかの実施形態において、前記第１乗算ユニットの第１状態で、前記乗算回路の入力マルチプレクサは、前記第２内部バッファ回路の出力マルチプレクサからのデータを前記乗算回路の第１入力に伝達するように構成され、前記乗算回路の出力マルチプレクサは、前記乗算回路の出力からのデータを出力バッファ回路に伝達するように構成され、前記第２内部バッファ回路の出力マルチプレクサは、前記第２内部バッファ回路からのデータを前記乗算回路の入力マルチプレクサに伝達するように構成される。
【００２３】
いくつかの実施形態において、前記乗算ユニットの第２状態で、前記乗算回路の入力マルチプレクサは、前記出力バッファ回路からのデータを前記乗算回路の前記第１入力に伝達するように構成され、前記乗算回路の出力マルチプレクサは、前記乗算回路の前記出力からのデータを前記第２内部バッファ回路に伝達するように構成され、前記第２内部バッファ回路の出力マルチプレクサは、前記第２内部バッファ回路からのデータを前記メモリ格納回路に伝達するように構成される。
【００２４】
いくつかの実施形態によると、第１乗算ユニットと、第２乗算ユニットと、メモリからのデータをロードするための手段と、出力バッファ回路を備え、前記第１乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含み、前記第２乗算ユニットは、第１内部バッファ回路及び第２内部バッファ回路を含み、前記メモリからのデータをロードするための手段は、前記メモリからのデータをバーストメモリアクセスモードのシングルバーストで、前記第１乗算ユニットの前記第１内部バッファ回路及び前記第２乗算ユニットの前記第１内部バッファ回路にロードするように構成される、システムが提供される。
【００２５】
いくつかの実施形態によると、第１値を格納する処理回路の第１レジスタに応答して、マトリックス積の第１因子である第１マトリックスと、前記マトリックス積の第２因子である第２マトリックスとの前記マトリックス積を計算する段階と、第２値を格納する前記第１レジスタに応答して、マトリックス積の第１因子である前記第１マトリックスの転置マトリックスと、前記マトリックス積の第２因子である第２マトリックスとの前記マトリックス積を計算する段階と、第３値を格納する前記第１レジスタに応答して、マトリックス積の第１因子である前記第１マトリックスと、前記マトリックス積の第２因子である前記第２マトリックスの転置マトリックスとの前記マトリックス積を計算する段階と、第４値を格納する前記第１レジスタに応答して、マトリックス積の第１因子である前記第１マトリックスの前記転置マトリックスと、前記マトリックス積の第２因子である前記第２マトリックスの前記転置マトリックスとの前記マトリックス積を計算する段階と、第５値を格納する前記第１レジスタに応答して、マトリックス積の第１因子である前記第１マトリックスと前記マトリックス積の第２因子であるベクトルとの前記マトリックス積を計算する段階を備える、乗算を遂行するための方法が提供される。
【００２６】
いくつかの実施形態によると、第１抽象化（abstract）バッファに格納された第１マトリックスと第２抽象化バッファに格納された第２マトリックスとのマトリックス積を計算する段階と、前記マトリックス積を第３抽象化バッファに格納する段階を備え、第４値を格納する第２レジスタに応答して、前記第１抽象化バッファは、第１物理バッファにマッピングされ、前記第２抽象化バッファは、第２物理バッファにマッピングされ、前記第３抽象化バッファは、第３物理バッファにマッピングされ、第５値を格納する第２レジスタに応答して、前記第１抽象化バッファは、前記第１物理バッファにマッピングされ、前記第２抽象化バッファは、前記第３物理バッファにマッピングされ、前記第３抽象化バッファは、前記第２物理バッファにマッピングされる、乗算を遂行するための方法が提供される。
【００２７】
いくつかの実施形態で、本方法は、乗算されるマトリックスの次元に基づいて、前記第２レジスタに前記第４値又は前記第５値を格納する段階をさらに含む。
【００２８】
いくつかの実施形態によると、バーストモードでは、メモリから処理回路の第１ユニットの第１バッファ及び前記処理回路の第２ユニットの第１バッファに第１マトリックスの一部を読み込む段階と、メモリから前記処理ユニットの前記第１ユニットの第２バッファ及び前記第２ユニットの第２バッファに第２マトリックスの一部を読み込む段階と、前記第１ユニットの前記第１バッファに格納されたエレメントと前記第２ユニットの前記第１バッファに格納されたエレメントとのマトリックス積を計算する段階を備える、方法が提供される。
【００２９】
いくつかの実施形態で、前記第１ユニットは、前記処理ユニットの第１エンティティであり、前記第２ユニットは、前記処理ユニットの第２エンティティである。
【発明の効果】
【００３０】
本発明によると、多様な形でマトリックスの乗算を遂行できる適応マトリックスの乗算器が提供される。したがって、マシンラーニングとディープラーニングを加速化することができる。
【図面の簡単な説明】
【００３１】
本記載のこれら及び他の特色と利点は、詳しい説明、請求項、そして添付された図面を参照して理解・認識されるだろう。
【００３２】
【図１Ａ】本記載の実施形態によるマトリックス乗算のための回路のブロック図である。
【図１Ｂ】本記載の実施形態によるマトリックス乗算のための回路のブロック図である。
【図２】本記載の実施形態によるマトリックスの次元に関する図である。
【図３Ａ】本記載の実施形態によるデータ配列図である。
【図３Ｂ】本記載の実施形態によるデータ配列図である。
【図４Ａ】本記載の実施形態によるマトリックス乗算のための回路の一部のブロック図である。
【図４Ｂ】本記載の実施形態によるマトリックス乗算のための回路の一部のブロック図である。
【図４Ｃ】本記載の実施形態によるマトリックス乗算のための回路の一部のブロック図である。
【図５Ａ】本記載の実施形態によるデータ配列図である。
【図５Ｂ】本記載の実施形態によるデータ配列図である。
【図６Ａ】本記載の実施形態によるデータ配列図である。
【図６Ｂ】本記載の実施形態によるデータ配列図である。
【図７】本記載の実施形態によるデータ配列図である。
【図８Ａ】本記載の実施形態によるデータ配列図である。
【図８Ｂ】本記載の実施形態によるデータ配列図である。
【図９Ａ】本記載の実施形態によるマトリックス乗算のための回路のブロック図である。
【図９Ｂ】本記載の実施形態によるマトリックス乗算のための回路のブロック図である。
【図９Ｃ】本記載の実施形態によるマトリックス乗算のための回路のブロック図である。
【発明を実施するための形態】
【００３３】
添付された図面に関連して以下に提供される詳しい説明は、本記載に基づいて提供される適応マトリックスの乗算器の模範的な実施形態に対する説明として意図されており、本記載が構成されるか、又は活用され得る唯一の形態を示すものとしては意図されていない。ここでの説明は、例としての実施形態と関連付けられる本記載の特色を提供する。しかし、同一又は等価な機能と構造が、本記載の範囲内に含まれるものと意図される他の実施形態によって達成され得ることが理解されるだろう。ここでは、明らかに別のものを示していると言及されない限り、類似の参照符号は類似のエレメント又は特徴を指すものと意図されている。
【００３４】
図１Ａは、いくつかの実施形態による適応マトリックス乗算器の例を示す。図１Ａの適応マトリックスの乗算器は、４つの乗算ユニット１１０（Ｕ０〜Ｕ３と命名される）を含む単一のエンティティ１０５を有する。以下では、３つのエンティティ１０５が、より詳しく議論される。乗算ユニット１１０の各々は、乗算器又は「乗算回路４０５（図４ａ〜図４ｃを参照）」のアレイ１１２を含む。乗算ユニット１１０の各々は、第１内部バッファ回路１１５、第２内部バッファ回路１２０、及び一時的内部バッファ回路１２５をさらに含む。乗算ユニット１１０の各々は、「データワード」として参照される計算ユニットで動作（例えば、プロセス）できる。アプリケーションに依存して、データワードは、８ビット整数（ＩＮＴ８）、１６ビット整数（ＩＮＴ１６）、３２ビット整数（ＩＮＴ３２）、１６ビット浮動小数点（ＦＰ１６）、又は３２ビット浮動小数点（ＦＰ３２）であり得る。
【００３５】
いくつかの実施形態は、マトリックス乗算、又はマトリックスとベクトルとの乗算を遂行するように採用され得る。いくつかの実施形態において、乗算プロセスは、１つ以上の多くのレジスタ（例えば、以下でより詳しく議論されるレジスタモジュール１８０）に格納された値の少なくとも一部によって制御され得る。マトリックス乗算は、可換性（commutative）ではないため、例えば、一般的に「Ａ×Ｂ」のマトリックス積は「Ｂ×Ａ」のマトリックス積と同じではない。一部の実施形態は、一つ以上の多くのレジスタの制御下に多様な乗算を遂行することができ、以下でより詳しく記述されるように、多様な乗算は、２つのマトリックスの積を計算すること、１つのマトリックスと他のマトリックスの転置マトリックス（transpose）の積、２つのマトリックスの転置マトリックスの積、又はマトリックスとベクトルとの積を計算することを含む。
【００３６】
一時的内部バッファ回路１２５は、アキュムレータ１３５と、バッファ１４０（例えば、レジスタのアレイ）を含む外部バッファ回路１３０と、に連結される。適応マトリックスの乗算器は、第１内部バッファ回路１１５のための第１ロードエンティティモジュール１５０（又はメモリロード回路）、第２内部バッファ回路１２０のための第２ロードエンティティモジュール１５０、及び外部バッファ回路１３０のためのロードユニット１５５（又はロード回路）を含み得る。ロードエンティティモジュール１５０とロードユニット１５５は、メモリブリッジ１６５を介して１つ以上の多くのメモリ１６２と通信することができる。いくつかの実施形態で、ロードエンティティモジュール１５０は、メモリ１６２からバーストモードで読み取り動作を遂行し、すなわち、メモリに伝送する単一の読み取りコマンドに応答して、複数のデータワードがメモリから返還され得る。バーストモードの動作は、メモリ１６２の中のいずれか１つが読み取りコマンドに応答して１つのデータワードのみを伝送するモードの動作よりも、非常に高いデータスループット（throughput）を誘発することができる。メモリ格納回路１７０（又はメモリ格納ユニット）は、メモリブリッジ１６５を介して１つ以上の多くのメモリ１６２と通信することができ、計算の結果をメモリに１６２に格納することができる。
【００３７】
制御回路１７５は、適応マトリックスの乗算器内の他の回路の動作を制御することができ、そしてレジスタモジュール１８０を介してホストからのコマンドを受信（そして状態情報をホストに返す）ことができる。
【００３８】
第１内部バッファ回路１１５及び第２内部バッファ回路１２０の各々は、ミニバッファのアレイ、例えば、乗算回路のアレイ１１２内の乗算回路の各々に対して１つのミニバッファを含む。ミニバッファの各アレイは、概念的にエレメントのマトリックスと見なされ、マトリックスの各列（column）は、ミニバッファの一つに対応し、各行（row）は、エレメントのセットに対応し、各行のエレメントは、各ミニバッファからの１つずつであり、各行のエレメントのすべては、各ミニバッファ内の同じ位置の行に対応する。例えば、第１行は、各ミニバッファの第１エレメントに対応できる。
【００３９】
動作において、乗算回路のアレイ１１２は、ミニバッファの行の内積（dot  products）を形成することができる。ここで使用されるように、同じ長さの二つのベクトルの（例えば、一つのマトリックスの行と他の一つのマトリックスの列）の「内積」は、ベクトルのエレメントのエレメント単位（element-wise）積の合計を意味する。乗算回路のアレイ１１２は、例えば、（ｉ）第１内部バッファ回路１１５のミニバッファのアレイの第１行と（ｉｉ）第２内部バッファ回路１２０のミニバッファのアレイの第１行との内積を形成し、その後に、（ｉ）第１内部バッファ回路１１５のミニバッファのアレイの第２行と（ｉｉ）第２内部バッファ回路１２０のミニバッファのアレイの第１行との内積を形成することができる。マトリックス乗算を遂行するこれらの演算の使用は、以下で詳しく説明する。
【００４０】
図１Ｂは、各々２つの乗算ユニット１１０を備えた２つのエンティティ１０５を有する適応マトリックス乗算器の例を示す。適応マトリックス乗算器に含まれるエンティティ１０５の数と、エンティティ１０５毎の乗算ユニット１１０の数の選択は、適応マトリックスの乗算器が意図されるアプリケーションに基づいて、そしてハードウェアリソースに基づいて行われる。適応マトリックス乗算器に含まれるエンティティ１０５の数と、エンティティ１０５毎の乗算ユニット１１０の数は、設計時、又はシステムの起動（startup）時に選択することができ、動作中にリアルタイムで変更することができる。いくつかの実施形態では、メモリの１６２からのデータは、幅（例えば、１２８ビット）を有するデータバス上の乗算ユニット１１０に伝送される。ユニットのミニバッファの数は、データワードの幅に対するデータバスの幅の割合に基づいて（たとえば、同一に）選択され得る。エンティティ毎のユニットの数は、メモリバス帯域幅／速度vs.計算（乗算）に必要なサイクルに基づいて（たとえば、同一に）選択され、他のマイクロアーキテクチャ因子（factors）によって微調整される（fine-tuned）。メモリアクセス動作のグラニュラリティ（granularity：粒度）は、「タイル」として参照され得る四角形、正方形、又は一次元アレイである。タイルは「Ｒ_ＴＷ×Ｃ_ＴＷ」としてパラメータ化（parameterized）され、「Ｒ_ＴＷ」は「１、２、４、・・・、２ｒ」の範囲内の値を有するタイル行の幅であり、「ｒ」は、正の整数（すなわち、タイル行の幅は「１、２、・・・、または２のｒ乗に等しい他の数」）である。「Ｃ_ＴＷ」は「１、２、４、・・・、２ｃ」の範囲内の値を有するタイル列の幅である（つまり、タイル列の幅は「１、２、・・・、または２のｃ乗に等しい他の数）。各タイルは、多数のワードを含む。サイズは、適応マトリックスの乗算器が意図されるアプリケーションの要求に基づいて選択される。メモリからフェッチ（fetch）された後に、適応マトリックスの乗算器が意図されるアプリケーションの要求に基づいて、そして実装の要求に基づいて、各タイルは、第１内部バッファ回路１１５、第２内部バッファ回路１２０、又はＦIＦＯ若しくはレジスタのようなオンチップストアに格納され得る。
【００４１】
例として、マトリックス乗算を使用すれば、２つのタイル（Ａ、Ｂ）の積が計算され、そして第３タイル（Ｃ）を形成することができる。
【００４２】
Ｃ(ｉ,ｊ)＝ΣｐＡ(ｉ,ｐ)×Ｂ(ｐ,ｊ)      （１）
式（１）において、ｉは０〜Ｍであり、ｊは０〜Ｎであり、ｐは０〜Ｋである。
【００４３】
メモリタイル（Ａ、Ｂ）は、第１内部バッファ回路１１５及び第２内部バッファ回路１２０にロードされ得る。必要な場合には、積（Ｃ）は、タイル（Ｃ）の形でメモリ１６２に再び伝送される前に、一時的内部バッファ回路１２５に格納することができる。
【００４４】
図２は、いくつかの実施形態の例として、２つのマトリックスが２つのオンチップバッファ（例えば、第１内部バッファ回路１１５及び第２内部バッファ回路１２０）にフェッチされ、そしてそれらの積がメモリに再び記入される例を示している。第１タイル（Ａ）のサイズは、「Ｒ_ＴＷ×Ｃ_ＴＷ＝１２×８ワード」であり、第２タイル（Ｂ）のサイズは、「Ｒ_ＴＷ×Ｃ_ＴＷ＝８×４ワード」であり、そして第３タイル（Ｃ）のサイズは、「Ｒ_ＴＷ×Ｃ_ＴＷ＝１２×４ワード」である。
【００４５】
第１内部バッファ回路１１５及び第２内部バッファ回路１２０は、図２で「エントリー×幅」で表示されるストレージ容量を有することができ、幅は、バッファ回路内のミニバッファの数であり、エントリー（又は深さ）は、各ミニバッファが格納可能なエントリーの数である。図２の例では、第１内部バッファ回路１１５について、「エントリー×幅」は、「１２エントリー×８ミニバッファ」である。第２内部バッファ回路１２０について、「エントリー×幅」は、「４エントリー×８ミニバッファ」である。外部バッファ回路１３０については、「エントリー×幅」は、「１２エントリー×４ミニバッファ」である。ミニバッファ幅は、例として、ここでは、３２ビットの幅である１ワードである。式（１）の乗算を並列に処理するために、第２内部バッファ回路１２０は、メモリのタイル（Ｂ）領域から「転置された（transposed）」形態でロードされ、乗算を開始する前に満たされ得る。いくつかのニューラルネットワークアプリケーションにおいて、マトリックスＡは大きく、定数であり得るか、又はまれに変化し、マトリックスＢは非常にさらに小さい可能性があり、頻繁に変わり得る。マトリックスＢのレイテンシは、パフォーマンスの重要な尺度であり得、多数のエントリーを使用することは、高いレイテンシを引き起こす可能性があるから、各ミニバッファに多数のエントリーを有する第２内部バッファ回路１２０は、ほとんど使用しない。これらのシステムでは、第２内部バッファ回路１２０の各ミニバッファのエントリーの数は、第１内部バッファ回路１１５の各ミニバッファのエントリーの数よりも非常に小さい（例えば、２と８との間の倍数ほど小さい（例えば、３の倍数だけの小さい））可能性がある。
【００４６】
いくつかの実施形態では、各オンチップ「バッファ」は、適応マトリックスの乗算器が意図されるアプリケーションの要求、及びマイクロアーキテクチャの要求に依存してバッファ、ＦＩＦＯ、又はレジスタであり得る。
【００４７】
図３Ａ及び図３Ｂを参照すると、例として、ロードエンティティモジュール１５０とロードユニット１５５は、一度にメモリからオンチップバッファに１つのマトリックスのタイルをロードし、必要に応じて、以下でより詳しく記述されるように、マトリックスの転置（transposing）を遂行することができる。いくつかの実施形態では、ロードユニットとロードエンティティの基本的な機能は同じである。ロードユニットは、１つのバッファ（例として８つのミニバッファを有する）を満たし、ロードエンティティは、メモリからのデータがバースト伝送のときに同時に多数のバッファを満たせる。メモリ格納回路１７０は、外部バッファ回路１３０の内容をメモリのタイルのＣ領域に格納する。いくつかの実施形態では、メモリに再び記入される結果の転置は必要としない。そのうえ、ロードエンティティモジュール１５０とロードユニット１５５が使用されていないミニバッファに対するバッファイネーブル（ＢＥ）を無効（例えば、BEビットをゼロに設定する）にすることにより、部分タイルを処理するため、タイルが自身の読み取られたオンチップバッファを満たしてなくても、タイルのデータのパディングは必要としない。同様に、メモリ格納回路１７０は、ミニバッファのデータをメモリに格納するときに「ワードイネーブル」を設定することにより、部分タイルを処理することができる。図３Ａ及び図３Ｂにおいて、タイルＡのサイズは１２×８ワードであり、タイルＢのサイズは８×４ワードであり、そしてタイルＣのサイズは、１２×４ワード（図２のように）である。図３Ａ及び図３Ｂに示した例では、タイルのサイズ（次元（Ｍ、Ｎ、Ｋ）の意味は、図２に示したものと同じ）は、「Ｍ_ＴＷ=１２」、「Ｎ_ＴＷ=４」、及び「Ｋ_ＴＷ=８」であり、データサイズは「Ｍ=８」、「Ｎ=３」、及び「Ｋ=５」である。
【００４８】
例えば、バッファＡの第１行とバッファＢの第１行との第１内積（dot  product）（９０の値を有する第１内積）が先に計算され、バッファＣの第１エントリーに格納される。バッファＡの第１行とバッファＢの第２行との２の内積（１００の値を有する第２内積）が２番目に計算され、そしてバッファＣの第２エントリーに格納される。他の実施形態では、バッファＡの第２行とバッファＢの第１行との内積が、代わりに２番目に計算され得る。
【００４９】
式（１）の「Ｃ（０,０）＝ΣiＡ（０,ｉ）×Ｂ（ｉ,０）」の乗算の例が、図４Ａに示される。上記したように、各乗算ユニット１１０は、乗算器のアレイ４０５（又は乗算回路）、例えば、並列に駆動するＦＰ３２乗算器、及び加算器４１０（又は加算回路）を含み得る。第１内部バッファ回路１１５は、ミニバッファ（例えば、各々１２エントリーを有する８ミニバッファ）のアレイを含み得、第２内部バッファ回路１２０は、またミニバッファ（例えば、各々４エントリーを有する８ミニバッファ）のアレイを含み得る。図４Ａの例では、外部バッファ回路１３０は、各々１２個のエントリーを含む４つのミニバッファを有する。図４Ｂ及び図４Ｃは、式（１）の「Ｃ（０,１）＝ΣiＡ（０,ｉ）×Ｂ（ｉ,１）」及び「Ｃ（１,０）＝ΣiＡ（１,ｉ）×Ｂ（ｉ,０）」の乗算を示す。
【００５０】
ロードエンティティモジュール１５０の各々は、バースト伝送としてメモリから多数のマトリックスのタイルをフェッチして、適切にマトリックス転置動作を遂行し（以下でより詳しく議論されるように）、そしてエンティティ１０５のための適切なオンチップバッファを満たす。
【００５１】
図５Ａ及び図５Ｂは、タイルのバーストにおいて、メモリから４つの乗算ユニット１１０を有するエンティティ１０５の３つの乗算ユニット１１０の３つの第１内部バッファ回路１１５へのマトリックス（マトリックスＡ）のローディングを示す。マトリックスデータは、図示されるように、ストライピングの方法で同時に３つの第１内部バッファ回路１１５にロードされる。
【００５２】
図６Ａ及び図６Ｂは、メモリ（図６Ａ）から４つの乗算ユニット１１０を有するエンティティ１０５の３つの乗算ユニット１１０の３つの第２内部バッファ回路１２０へのマトリックス（マトリックスＢ）のローディングを示す。この例では、マトリックスＢは、「ＬＤＢ＝Ｎ（図６の例に示したように、マトリックスＢをメモリにＮ次元にロードする）」を有して「正常に（normally）」（転置されず）、メモリに格納されたため、マトリックスＢのタイルは、メモリから個別にフェッチされる。３つの第２内部バッファ回路１２０は、全体のマトリックスがロードされた後に並列に実行（例えば、各乗算回路４０５に並列に入力される）することができる（これらは、並列に又は１つずつ満たされ得るが、必要なデータが具備されると、並列に実行され得る。１つずつ実行されることは意味なし）。図６Ａ及び図６Ｂでのラベル付きの「エポック」は、外部のループ番号（又は回数）（outer  loop  number）である。図１〜図６は、オプションの中の１つの例示であることに留意しなければならない。これらは、いくつかの実施形態でマトリックスの乗算器がどのように動作するかを説明する例示に過ぎず、本記載を限定するものとして理解されてはならない。たとえば、エレメントの数（例えば、エンティティ１０５の数及び乗算ユニット１１０の数）は、例としてのものに過ぎず、この分野における当業者によって理解されるように、他の実施形態では異なり得る。動作のエポック（外部ループ）が、また図７に示される。
【００５３】
図７は、第１マトリックス（Ａ）が、４つの乗算ユニット１１０を有するエンティティ１０５の３つの乗算ユニット１１０の３つの第１内部バッファ回路１１５にどのように格納されるか、第２マトリックス（Ｂ）の一部が、４つの乗算ユニット１１０を有するエンティティ１０５の３つの乗算ユニット１１０の３つの第２内部バッファ回路１２０にどのように格納されるかに係る例を示す。積は、3つのエポックにわたって形成され、各エポックにおいて第２マトリックス（Ｂ）の新しい部分が、３つの第２内部バッファ回路１２０にロードされる。図７の例では、４つの乗算ユニット１１０を具備した１つのエンティティ、第１内部バッファ回路１１５の各々の８つのミニバッファ、及び第２内部バッファ回路１２０の各々の８つのミニバッファが存在する。タイルのサイズは、「Ｍ_ＴＷ＝１２」、「Ｎ_ＴＷ＝４」、及び「Ｋ_ＴＷ＝８」であり、データサイズは「Ｍ＝１２」、「Ｎ＝１０」、及び「Ｋ  =  ２０」である。Ｋ次元で１つの内部ループがあり、Ｍ次元で１つの中間ループがある。これらの内部ループは並列に実行される。これらのエポック（外側のループ）は、図６Ａ、図６Ｂ、及び図７に示した式（１）のマトリックス乗算を完了するのに使用される。
【００５４】
図８Ａ及び図８Ｂを参照すると、ロードエンティティモジュール１５０とロードユニット１５５の両方は、マトリックスがメモリからフェッチされながら転置されるときに、マトリックスの転置を処理することができる。図８Ａは転置マトリックスの例であり、メモリ内のマトリックスの配列を示す。図８Ｂは、４つの乗算ユニット１１０を具備したエンティティ１０５の３つの乗算ユニット１１０の第２内部バッファ回路１２０内のマトリックスの配列を示す。マトリックスのタイルは、バーストでメモリからフェッチされ、そして第２内部バッファ回路１２０にロードされる。３つの第２内部バッファ回路１２０は、図８Ａ及び図８Ｂに示すように、データのバーストで同時に満たされる。
【００５５】
図９Ａ及び図９Ｂは、適応マトリックスの乗算器の２つの異なる構成を示す。図９Ａの構成（「オプション１」として参照することができる）では、Ｎ次元が内部ループであり、そして、図９Ｂの構成（「オプション２」で参照することができる）では、Ｋ次元が内部ループである。前者（オプション１）は、遂行される計算のサイズがＮ次元よりも大きいときに、より効率的であり得、後者（オプション２）は、遂行される計算のサイズがＫ次元よりも大きいときに、より効率的であり得る。いくつかの実施形態で、図９Ｃ（オプション１とオプション２の両方をサポートしている）を参照すると、マルチプレクサ９０５が２つの構成からいずれかを選択するために使用される。各マルチプレクサは、共通ポート９１０を含む３つのポートを有し得る。図９Ｃの３つのマルチプレクサは、乗算回路の入力に連結された共通ポート９１０を備えた乗算回路の入力マルチプレクサと、乗算回路の出力に連結された共通ポート９１０を備えた乗算回路の出力マルチプレクサと、第２内部バッファ回路の出力に連結された共通ポート９１０を備えた第２内部バッファ回路の出力マルチプレクサと、を有する。
【００５６】
オプション２を実現する第１状態では、乗算回路の入力マルチプレクサは、第２内部バッファ回路の出力マルチプレクサからのデータを乗算回路の第１入力に伝達するように構成され、乗算回路の出力マルチプレクサは、乗算回路の出力からのデータを出力バッファ回路に伝達するように構成され、そして、第２内部バッファ回路の出力マルチプレクサは、第２内部バッファ回路からのデータを乗算回路の入力マルチプレクサに伝達するように構成されている。
【００５７】
オプション１を実現する第２状態では、乗算回路の入力マルチプレクサは、出力バッファ回路からのデータを乗算回路の第１入力に伝達するように構成され、乗算回路の出力マルチプレクサは、乗算回路の出力からのデータを第２内部バッファ回路に伝達するように構成され、そして第２内部バッファ回路の出力マルチプレクサは、第２内部バッファ回路からのデータをメモリ格納回路に伝達するように構成されている。
【００５８】
２つの構成からいずれかの選択は、設計時に（例えば、適応マトリックスの乗算器が実装される集積回路内でハードワイヤード（hard  wired）されて）行われるか、又はリアルタイムで（図９Ｃに示すように、マルチプレクサを用いて）行われる。マルチプレクサは、ホストによって制御（レジスタモジュール１８０を介して）され得るか、又はこれらは適応マトリックスの乗算器内の特殊制御回路によって、リアルタイムで自動的に制御され得る。
【００５９】
いくつかの実施形態では、適応マトリックスの乗算器又はその一部は、処理回路において実現される。「処理回路」の用語は、ここでは、データ又はデジタル信号を処理するように採用されたハードウェア、ファームウェア、およびソフトウェアの任意の組み合わせを意味するように使用されている。処理回路のハードウェアは、例えば、特定用途向け集積回路（ＡＳＩＣ）、汎用又は特定目的の中央処理装置（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、グラフィックス処理装置（ＧＰＵ）、及びフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなプログラム可能なロジック装置を含み得る。ここで使用されるように、処理回路では、各機能は、その機能を遂行するように構成された（つまり、ハードワイヤードされた）ハードウェアによって、又は非一時的記憶媒体に格納されたコマンドを実行するように構成されたＣＰＵのような、より汎用のハードウェアによって遂行される。処理回路は、単一のプリント回路基板（ＰＣＢ）、又は複数の相互連結されたＰＣＢにかけて実現され得る。処理回路は、他の処理回路を含み得る。例えば、処理回路は、ＰＣＢ上で互いに連結された２つの処理回路として、ＦＰＧＡ及びＣＰＵを含み得る。
【００６０】
ここで使用されるように、あるものの「一部」は、任意のものの全部又は全部よりも少ないことを意味する。したがって、マトリックスの一部は、マトリックス全体又はマトリックスのエレメントのすべてを含まないマトリックスの一部であり得る。マトリックスの長方形又は正方形の部分は、またマトリックスである。ここで使用されるように、２つのマトリックス（Ａ、Ｂ）の「マトリックス積」（「Ａ×Ｂ」と表記することができる）は、式（１）のエレメントのマトリックスであり、特殊な場合として、マトリックスとベクトルとの積、及び２つのベクトルの積を含む。ここで使用されるように、「マトリックスの乗算」はマトリックス積の計算を意味する。
【００６１】
いくつかの実施形態で、一般的な乗算器は、レジスタ設定によって次のマトリックスの乗算をサポートするように構成可能である。
【００６２】
「（Ｃ：＝Ａ×Ｂ）」（Ａ及びＢは、マトリックス）。マトリックス／マトリックス乗算。
【００６３】
「（Ｃ：＝ＴＡ×Ｂ）」、「（Ｃ：＝Ａ×ＴＢ）及び（Ｃ：＝ＴＡ×ＴＢ）」（Ａ及びＢは、マトリックスであり、マトリックスに先行する「Ｔ」は、転置演算を指す）。転置されたマトリックス乗算。
【００６４】
「（Ｙ：＝Ａ×Ｘ）」。マトリックス／マトリックス乗算の特殊な事例としてマトリックス／ベクトル乗算。
【００６５】
汎用乗算器は、選択された乗算オプションに基づいて、異なるＡ／Ｂ／Ｃバッファを示す抽象的なバッファＸ、バッファＹ、バッファＯによって異なる乗算オプションを適応的に選択するように、さらに構成可能である。メモリバーストトランザクションは、並列に実行される多数のユニット、複数のエンティティと共に最大化可能である。
【００６６】
「第１」、「第２」、「第３」などの用語がここで多様なエレメント、構成要素、領域、層、及び／又はセクションを記述するために使用されるが、これらのエレメント、構成要素、領域、層、及び／又はセクションはこれらの用語によって限定されてはならないことが理解されるだろう。このような用語は、一つのエレメント、構成要素、領域、層、又はセクションを他の一つのエレメント、構成要素、領域、層、又はセクションと区別するためだけに使用される。したがって、ここで議論される第１エレメント、構成要素、領域、層、又はセクションは、いくつかの実施形態の思想の範囲から離れないながらも、第２エレメント、構成要素、領域、層、又はセクションとして命名され得る。
【００６７】
ここで使用される用語は、特定の実施形態を説明する目的のためだけのものであり、いくつかの実施形態の限定を意図していない。ここで使用されるように、「実質的に」、「約」、及び類似の用語は、近似の用語として使用され、程度の用語として使用されず、この分野における通常の技術を有する者によって理解できる、測定又は計算された値の自明な偏差を考慮することを意図する。ここで使用されるように、「メジャー（major）の構成要素」の用語は、製造物又は製品内の他の単一の構成要素の量よりも大きい量で、製造物、ポリマー、又は製品に存在している構成要素を指す。逆に、「プライマリー（primary）構成要素」は、製造物、ポリマー、又は製品の重量の少なくとも５０％以上の構成要素を指す。ここで使用されるように、複数の項目に適用されるとき、「メジャー部分」の用語は、その項目の少なくとも半分を意味する。
【００６８】
ここで使用されるように、単数形は、文脈上明らかに別のものを示していると判定されない限り、また複数形も含めるものと意図される。この明細書で使用されるとき、「含む(comprise)」及び／又は「含んでいる(comprising)」の用語は、言及された特徴、インテジャー、段階、動作、エレメント、及び／又は構成要素の存在を明示し、一つ以上の多くの他の特徴、インテジャー、段階、動作、エレメント、構成要素、及び／又はこれらのグループの存在又は追加を排除しない。ここで使用されるように、「及び／又は」の用語は、関連して言及された項目の一つ以上の多くのものの任意の及びすべての組み合わせを含む。エレメントのリストに先行する場合、「少なくとも一つの」のような表現は、エレメントのリスト全体を修飾し、リストの個別のエレメントを修飾しない。なお、実施形態を説明するとき、「できる」の使用は、「本記載のいずれか一つ又はそれより多くの実施形態」を参照する。また、「模範的な」の用語は、例示又は事例を参照することを意図する。ここで使用されるように、「使用する(use)」、「使用している(using)」、及び「使用された(used)」の用語は、「活用する(utilize)」、「活用している(utilizing)」、及び「活用された(utilized)」の用語と各々同義語であるとみなされる。
【００６９】
エレメント又は層が、他の１つのエレメント又は層「の上にある」、「に連結される」、「に結合される」、又は「に隣接する」と参照されるとき、これは他のエレメント又は層の「すぐ上にある」、「すぐ連結される」、「すぐ結合される」、又は「すぐ隣接する」ことができ、１つ以上の多くの介在するエレメント又は層が存在することができる。逆に、エレメント又は層が、他の１つのエレメント又は層の「すぐ上にある」、「すぐ連結される」、「すぐ結合される」、又は「隣接する」ものを参照するときに、介在するエレメント又は層は存在しない。
【００７０】
ここで引用された任意の数値範囲は、引用された範囲内に含まれている同じ数値精度のすべての部分範囲を含むことを意図する。たとえば、「１.０〜１０.０」の範囲は、引用された最小値「１.０」と引用された最大値「１０.０」との間（そして、これらを含む）のすべての部分範囲である、すなわち２.４〜７.６のような１.０と同じかそれより大きな最小値と、１０.０と同じかそれより小さい最大値と、を有する。ここで引用された任意の最大の数値限定は、その中に含まれているすべてのより低い数値限定を含むことを意図しており、この明細書で引用された任意の最小数値限定は、ここに含まれているすべてのより高い数値限定を含むことを意図する。
【００７１】
適応マトリックスの乗算器の模範的な実施形態が、ここで詳しく記述・説明されたが、多くの修正及び変更がこの分野における熟練した者には自明である。したがって、この記載の原則に基づいて実現される適応マトリックスの乗算器は、ここで詳しく記述されたものとは異なる方法で実施され得ることが理解されるだろう。本記載は、また、以降の請求項及びそれらの等価的なものによって定義される。
【符号の説明】
【００７２】
１０５  エンティティ
１１０  乗算ユニット
Ｕ０〜Ｕ３  乗算ユニット
１１２  アレイ
１１５  第１内部バッファ回路
１２０  第２内部バッファ回路
１２５  一時的内部バッファ回路
１３０  外部バッファ回路
１３５  アキュムレータ
１４０  バッファ
１５０  ロードエンティティモジュール
１５５  ロードユニット
１６２  メモリ
１６５  メモリブリッジ
１７０  メモリ格納回路
１７５  制御回路
１８０  レジスタモジュール
【図１Ａ】
2020135899.tif 000003
【図１Ｂ】
2020135899.tif 000004
【図２】
2020135899.tif 000005
【図３Ａ】
2020135899.tif 000006
【図３Ｂ】
2020135899.tif 000007
【図４Ａ】
2020135899.tif 000008
【図４Ｂ】
2020135899.tif 000009
【図４Ｃ】
2020135899.tif 000010
【図５Ａ】
2020135899.tif 000011
【図５Ｂ】
2020135899.tif 000012
【図６Ａ】
2020135899.tif 000013
【図６Ｂ】
2020135899.tif 000014
【図７】
2020135899.tif 000015
【図８Ａ】
2020135899.tif 000016
【図８Ｂ】
2020135899.tif 000017
【図９Ａ】
2020135899.tif 000018
【図９Ｂ】
2020135899.tif 000019
【図９Ｃ】
2020135899.tif 000020