(57)【要約】      （修正有）【課題】メモリ内の計算操作を効率的に実行するためのスケーラブルなアーキテクチャを提供する。【解決手段】バス経由でプロセッサ１０２にデータを送信してデータを演算するのではなく、メモリ１０４で計算操作を実行することによって、演算をより効率的に実行するスケーラブルなアーキテクチャであって、メモリは、メモリ媒体と、メモリ媒体に結合された媒体アクセス回路を有する。媒体アクセス回路は、要求された演算を実行するために、メモリ媒体からデータにアクセスし、媒体アクセス回路に含まれる複数の計算論理ユニットの各々を用いて、アクセスされたデータに対して、要求された演算を同時に実行し、要求された演算の実行から生成された結果データをメモリ媒体に書き込む。【選択図】図１
2020166828.tif 000002
【特許請求の範囲】
【請求項１】
メモリ媒体に結合された媒体アクセス回路を備えるメモリであって、
前記媒体アクセス回路は、
要求された演算を実行するために前記メモリ媒体からデータにアクセスし、
前記媒体アクセス回路に含まれる複数の計算論理ユニットの各々を用いて、前記アクセスされたデータに対して、前記要求された演算を同時に実行し、かつ
前記要求された演算の実行から生成された結果データを前記メモリ媒体に書き込む、
メモリ。
【請求項２】
複数の計算論理ユニットの各々を用いて前記要求された演算を実行することは、前記メモリ媒体の異なるパーティションと関連付けられた複数の計算論理ユニットを用いて、前記要求された演算を実行することを含む、請求項１に記載のメモリ。
【請求項３】
複数の計算論理ユニットの各々を用いて前記要求された演算を実行することは、ダイまたはパッケージ内に配置された複数の計算論理ユニットの各々を用いて、前記要求された演算を実行することを含む、請求項１または２に記載のメモリ。
【請求項４】
複数の計算論理ユニットの各々を用いて前記要求された演算を実行することは、デュアルインラインメモリモジュールの複数のダイまたはパッケージ内に配置された複数の計算論理ユニットの各々を用いて、前記要求された演算を実行することを含む、請求項１から３の何れか一項に記載のメモリ。
【請求項５】
複数の計算論理ユニットの各々を用いて前記要求された演算を実行することは、複数のデュアルインラインメモリモジュールに亘って分散された複数の計算論理ユニットの各々を用いて、前記要求された演算を実行することを含む、請求項１から４の何れか一項に記載のメモリ。
【請求項６】
前記メモリ媒体からデータにアクセスすることは、前記メモリ媒体の複数のパーティションから前記データを読み出すことを含む、請求項１から５の何れか一項に記載のメモリ。
【請求項７】
前記メモリ媒体からデータにアクセスすることは、前記複数のパーティションの各々と関連付けられたスクラッチパッドに前記データを読み込むことを含む、請求項６に記載のメモリ。
【請求項８】
前記データをスクラッチパッドに読み込むことは、前記データを前記媒体アクセス回路のレジスタファイルまたはスタティックランダムアクセスメモリに読み込むことを含む、請求項７に記載のメモリ。
【請求項９】
前記メモリ媒体からデータにアクセスすることは、３次元クロスポイントアーキテクチャを有するメモリ媒体からデータにアクセスすることを含む、請求項１から８の何れか一項に記載のメモリ。
【請求項１０】
前記要求された演算を実行することは、テンソル演算を実行することを含む、請求項１から９の何れか一項に記載のメモリ。
【請求項１１】
前記要求された演算を実行することは、行列乗算演算を実行することを含む、請求項１から１０の何れか一項に記載のメモリ。
【請求項１２】
前記要求された演算を実行することは、前記アクセスされたデータに対してビット単位の演算を実行することを含む、請求項１から１１の何れか一項に記載のメモリ。
【請求項１３】
前記媒体アクセス回路は更に、前記要求された演算の完了を示すデータを提供する、請求項１から１２の何れか一項に記載のメモリ。
【請求項１４】
メモリであって、
要求された演算を実行するために、前記メモリに含まれる媒体アクセス回路が、前記媒体アクセス回路に結合されたメモリ媒体からデータにアクセスするための手段と、
前記媒体アクセス回路内の複数の計算論理ユニットの各々が、前記アクセスされたデータに対して、前記要求された演算を同時に実行するための手段と、
前記媒体アクセス回路が、前記要求された演算の実行から生成された結果データを前記メモリ媒体に書き込むための手段と
を備えるメモリ。
【請求項１５】
複数の計算論理ユニットの各々が、前記要求された演算を実行するための前記手段は、
前記メモリ媒体の異なるパーティションと関連付けられた複数の計算論理ユニットが、前記要求された演算を実行するための手段
を有する、請求項１４に記載のメモリ。
【請求項１６】
複数の計算論理ユニットの各々が、前記要求された演算を実行するための前記手段は、
ダイまたはパッケージ内に配置された複数の計算論理ユニットの各々が、前記要求された演算を実行するための手段
を有する、請求項１４または１５に記載のメモリ。
【請求項１７】
複数の計算論理ユニットの各々が、前記要求された演算を実行するための前記手段は、
デュアルインラインメモリモジュールの複数のダイまたはパッケージ内に配置された複数の計算論理ユニットの各々が、前記要求された演算を実行するための手段
を有する、請求項１４から１６の何れか一項に記載のメモリ。
【請求項１８】
複数の計算論理ユニットの各々が、前記要求された演算を実行するための前記手段は、
複数のデュアルインラインメモリモジュールに亘って分散された複数の計算論理ユニットの各々が、前記要求された演算を実行するための手段
を有する、請求項１４から１７の何れか一項に記載のメモリ。
【請求項１９】
前記メモリ媒体からデータにアクセスするための前記手段は、
前記メモリ媒体の複数のパーティションから前記データを読み出すための手段
を有する、請求項１４から１８の何れか一項に記載のメモリ。
【請求項２０】
前記メモリ媒体からデータにアクセスするための前記手段は、
前記複数のパーティションの各々と関連付けられたスクラッチパッドに前記データを読み込むための手段
を有する、請求項１９に記載のメモリ。
【請求項２１】
スクラッチパッドに前記データを読み込むための前記手段は、
前記媒体アクセス回路のレジスタファイルまたはスタティックランダムアクセスメモリに前記データを読み込むための手段
を含む、請求項２０に記載のメモリ。
【請求項２２】
前記メモリ媒体からデータにアクセスするための前記手段は、
３次元クロスポイントアーキテクチャを有するメモリ媒体からデータにアクセスするための手段
を有する、請求項１４から２１の何れか一項に記載のメモリ。
【請求項２３】
前記要求された演算を実行するための前記手段は、
テンソル演算を実行するための手段
を有する、請求項１４から２２の何れか一項に記載のメモリ。
【請求項２４】
メモリ媒体に含まれる媒体アクセス回路に、
要求された演算を実行するために前記メモリ媒体からデータにアクセスする手順と、
前記媒体アクセス回路に含まれる複数の計算論理ユニットの各々を用いて、前記アクセスされたデータに対して、前記要求された演算を同時に実行する手順と、
前記要求された演算の実行から生成された結果データを前記メモリ媒体に書き込む手順と
を実行させるためのプログラム。
【請求項２５】
複数の計算論理ユニットの各々を用いて、前記要求された演算を実行する前記手順は、
前記メモリ媒体の異なるパーティションと関連付けられた複数の計算論理ユニットを用いて、前記要求された演算を実行する手順
を有する、請求項２４に記載のプログラム。
【請求項２６】
請求項２４または２５に記載のプログラムを記憶する機械可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ニューラルネットワークをトレーニングする、および／または推論（例えば、画像中のオブジェクトを識別すること、音声認識を実行すること等）を行うためにニューラルネットワークを使用するアプリケーションなどの人工知能アプリケーションは、典型的には、行列データに対するテンソル演算（例えば、行列乗算などの行列計算）を実行するために、比較的大量の計算能力を使用する。いくつかの計算装置においては、人工知能アプリケーションをサポートするための計算操作は、汎用プロセッサから画像処理装置（ＧＰＵ）などのアクセラレータ機器にオフロードされ得る。しかしながら、ＧＰＵはプロセッサより高速にテンソル演算を実行できる場合があるものの、演算されるデータ（例えば、行列データ）がメモリに常駐し、メモリからバスを介して計算操作を実行する装置（例えば、ＧＰＵ）に送信され、時間およびエネルギーを消費するという事実によって、計算装置がその演算を実行できる効率（例えば、エネルギー使用および速度）は依然として損なわれる。演算されるデータの複雑さおよび量が増すにつれて（例えば、ますます複雑化する人工知能アプリケーションに伴い）、既存のシステムのエネルギー使用および速度の観点からの非効率性は、それに対応して増大し得る。
【図面の簡単な説明】
【０００２】
本明細書で説明される概念は、添付図面において限定としてではなく例として示される。例示の簡潔さおよび明確さのため、図に示される要素は必ずしも縮尺どおりに描かれていない。適切と考えられる場合、参照ラベルは、対応するまたは類似の要素を示すために複数の図で繰り返されている。
【０００３】
【図１】メモリ内で効率的に計算操作を実行するためのスケーラブルなアーキテクチャを有する計算装置の、少なくとも１つの実施形態の簡略図である。
【０００４】
【図２】図１の計算装置に含まれるメモリ媒体の、少なくとも１つの実施形態の簡略図である。
【０００５】
【図３】図１の計算装置に含まれるメモリ媒体のパーティションおよびメモリの媒体アクセス回路の構成要素の、少なくとも１つの実施形態の簡略図である。
【０００６】
【図４】図１の計算装置に含まれ得る１組のデュアルインラインメモリモジュールの、少なくとも１つの実施形態の簡略図である。
【０００７】
【図５】図１の計算装置のメモリで実行され得るテンソル演算の、少なくとも１つの実施形態の簡略図である。
【０００８】
【図６】図１の計算装置によって実行され得るメモリ内の効率的な計算操作を実行するための方法の、少なくとも１つの実施形態の簡略図である。
【図７】図１の計算装置によって実行され得るメモリ内の効率的な計算操作を実行するための方法の、少なくとも１つの実施形態の簡略図である。
【図８】図１の計算装置によって実行され得るメモリ内の効率的な計算操作を実行するための方法の、少なくとも１つの実施形態の簡略図である。
【０００９】
【図９】パッケージに統合された図１の計算装置のメモリの、２つのダイの簡略図である。
【発明を実施するための形態】
【００１０】
本開示の概念は様々な修正形態および代替形態を受け入れる余地があるが、その具体的な実施形態は図面において例として示されており、本明細書で詳細に説明される。しかしながら、本開示の概念を、開示される特定の形式に限定する意図はなく、逆に、その意図は本開示および添付の特許請求の範囲と矛盾しないすべての修正形態、均等物、および代替形態をカバーすることにあることが理解されるべきである。
【００１１】
本明細書における「１つの実施形態」、「ある実施形態」、「例示的な実施形態」等への言及は、説明される実施形態が特定の特徴、構造、または特性を含み得るが、あらゆる実施形態がその特定の特徴、構造、または特性を含んでもよいし、必ずしも含まなくてもよいことを示す。また、そのような語句は、必ずしも同じ実施形態を指すものではない。更に、特定の特徴、構造、または特性がある実施形態と関連して説明される場合、明示的に説明されているか否かにかかわらず、他の実施形態と関連してそのような特徴、構造、または特性を達成することは当業者の知識の範囲内であると考えられる。更に、「少なくとも1つのＡ、Ｂ、およびＣ」の形式で列挙に含まれる項目は、（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、Ｂ、およびＣ）を意味することがあることが十分理解されるべきである。同様に、「Ａ、Ｂ、またはＣのうちの少なくとも１つ」の形式で列挙された項目は、（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、Ｂ、およびＣ）を意味することがある。
【００１２】
開示される実施形態は、いくつかの場合、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実施され得る。開示される実施形態は、一時的または非一時的な機械可読（例えば、コンピュー可読）記憶媒体によって保持または記憶された命令として実施されてもよく、命令は１つまたは複数のプロセッサで読み出され実行され得る。機械可読記憶媒体は、機械によって読み取り可能な形式で情報を記憶または伝送するための任意の記憶装置、機構、または他の物理的構造（例えば、揮発性または不揮発性メモリ、媒体ディスク、または他の媒体装置）として具現化され得る。
【００１３】
図面において、いくつかの構造的な特徴または方法の特徴が、特定の配置および／または順序で示されることがある。しかしながら、そのような特定の配置および／または順序が必要とされないことがあることが十分理解されるべきである。むしろ、いくつかの実施形態では、そのような特徴は、例示的な図に示されるものとは異なる方法および／または順序で配置され得る。また、特定の図に構造的な特徴または方法の特徴を含めることは、そのような特徴がすべての実施形態で必要とされることを示唆しているわけではなく、いくつかの実施形態では含まれなくてもよく、または他の特徴と組み合わされてもよい。
【００１４】
ここで図１を参照すると、メモリ内で人工知能の演算（例えば、テンソル演算）を効率的に実行するための計算装置１００は、プロセッサ１０２、メモリ１０４、入出力（Ｉ／Ｏ）サブシステム１１２、データ記憶装置１１４、および通信回路１２２を含む。もちろん、他の実施形態では、計算装置１００は、コンピュータで一般的にみられるもののような他のまたは追加の構成要素（例えば、ディスプレイ、周辺装置等）を含んでよい。また、いくつかの実施形態では、これらの例示的な構成要素のうちの１つまたは複数が、別の構成要素に組み込まれるか、または別の構成要素の一部を形成してよい。本明細書で説明されるように、計算装置１００、特に計算装置１００のメモリ１０４は、コンピュータ装置１００に着脱可能に接続される（例えば、挿入される）よう適合された１つまたは複数の回路基板（例えば、デュアルインラインメモリモジュール（ＤＩＭＭ）１６０）が各々、メモリ１０４内に存在するデータに対してテンソル演算（例えば、行列計算）などの計算操作を実行するように構成された計算論理ユニット（例えば、計算論理ユニット１３６）を有するパッケージ（例えば、各々が１つまたは複数の半導体ダイ１９０、１９２の組である）１５０、１５２の組を含む、スケーラブルなアーキテクチャを有する。バス経由で他の構成要素（例えば、プロセッサ１０２）にデータを送信してデータを演算するのではなく、データのより近くで（例えば、メモリ１０４で）計算操作を実行することによって、計算装置１００は演算をより効率的に実行し得る。更に、計算論理ユニット１３６を有する追加のＤＩＭＭまたは同様の回路基板をメモリ１０４に追加することによって、メモリ１０４内のデータに対してより複雑な計算操作（例えば、より複雑な人工知能の演算）を実行するための計算装置１００の能力は、それに対応して拡張され得る。
【００１５】
本明細書でより詳細に説明されるように、例示的な実施形態では、メモリ１０４は、計算操作を実行するためにメモリ媒体１１０にアクセスするように構成された媒体アクセス回路１０８を含む。例示的な実施形態では、メモリ媒体１１０は、タイルごとに１ビットのアクセスを可能にし、かつ、同じパーティションまたは他のパーティションに対する読み込みまたは書き込み間の時間遅延を招くような、他のメモリアーキテクチャ（例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ））とは異なるデータアクセス特性を有する、３次元クロスポイントアーキテクチャを有する。例示的な実施形態では、１２８ビットが、一度に１つのパーティションから読み出され得る。
【００１６】
プロセッサ１０２は、アプリケーション（例えば、ニューラルネットワークまたは他の機械学習構造を使用して学習および推論し得る人工知能関連のアプリケーション）の実行など、本明細書で説明される演算を実行できる任意の装置または回路（例えば、マルチコアプロセッサ、マイクロコントローラ、もしくは他のプロセッサ、または処理／制御回路）として具現化され得る。いくつかの実施形態では、プロセッサ１０２は、ＦＰＧＡ、特定用途向け集積回路（ＡＳＩＣ），再構成可能なハードウェアもしくはハードウェア回路、または本明細書で説明される機能の実行を容易にするための他の専門ハードウェアとして具現化されてもよく、それらを含んでもよく、またはそれらに結合されてもよい。
【００１７】
メモリ１０４は、不揮発性メモリ（例えば、２レベルメモリスキームのファーメモリ）を含んでよいが、メモリ媒体１１０と、メモリ媒体１１０の下部（例えば、より下の位置）にありメモリ媒体１１０に結合されている媒体アクセス回路１０８（例えば、相補型金属酸化膜半導体（ＣＭＯＳ）または他の材料で構成される集積回路などの装置または回路）とを含む。媒体アクセス回路１０８は、メモリコントローラ１０６にも接続されるが、メモリコントローラ１０６は、メモリ媒体１１０から選択的に読み出しおよび／またはメモリ媒体１１０に選択的に書き込み、ならびにメモリ媒体１１０に存在するデータ（例えば、行列データ）に対して計算操作（例えば、テンソル演算）を実行する（例えば、ニューラルネットワークをトレーニングするためおよび／または推論を行うためにテンソル演算に依存する人工知能関連アプリケーションを実行していることがある、プロセッサ１０２からの要求に応答して）よう構成された任意の装置または回路（例えば、プロセッサ、コプロセッサ、専用回路等）として具現化され得る。図２を簡単に参照すると、例示的な実施形態では、メモリ媒体１１０は、本明細書ではクロスポイントアーキテクチャ（例えば、メモリセルがワード線とビット線との交差部にあって個々にアドレス可能であり、かつビットストレージがバルク抵抗の変化に基づいているアーキテクチャ）とも呼ばれるタイルアーキテクチャを含み、タイルアーキテクチャでは、各タイル（例えば、メモリセル）は、ｘパラメータおよびｙパラメータ（例えば、行および列）によってアドレス可能である。メモリ媒体１１０は、複数のパーティションを含み、その各々はタイルアーキテクチャを含む。パーティションは、層２０２、２０４、２０６として積層されて、３次元クロスポイントアーキテクチャ（例えば、インテル３Ｄ  ＸＰｏｉｎｔ（商標）メモリ）を形成してよい。固定サイズの複数ビットデータ構造（例えば、バイト、ワード等）のみがアドレス可能である、典型的なメモリ装置とは異なり、媒体アクセス回路１０８は、メモリコントローラ１０６の要求を受けてメモリ媒体１１０から個々のビットまたは他の単位のデータを読み出すよう構成され、メモリコントローラ１０６はプロセッサ１０２からの対応する要求の受信に応答して要求を生成してよい。例示的な実施形態では、１２８ビットが、所与のパーティションにおいて同時にアクセス（例えば、読み出しまたは書き込み）され得る。
【００１８】
図１に戻って参照すると、例示的な実施形態では、媒体アクセス回路１０８はテンソル論理ユニット１３０を含み、テンソル論理ユニット１３０は、テンソル演算などの計算操作の実行を媒体アクセス回路１０８の他の部分からオフロードするように構成された任意の装置または回路（例えば、ＣＭＯＳ回路）として具現化され得る。例示的な実施形態では、テンソル論理ユニット１３０は複数のメモリスクラッチパッド１３２を含み、その各々は、メモリ媒体１１０から読み出された行列データなどのデータへの比較的高速な（例えば、低レイテンシ）アクセスを提供するために使用可能な任意の装置または回路（例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、レジスタファイル等）として具現化され得る。例示的な実施形態では、スクラッチパッド１３２は、比較的低速なアクセス時間およびより大きな容量を有するメモリ媒体１１０より高速な、読み込みおよび書き込みアクセス時間を提供する。テンソル論理ユニット１３０は、誤り訂正符号（ＥＣＣ）論理ユニット１３４を更に含んでよく、誤り訂正符号論理ユニット１３４は、メモリ媒体１１０から読み出されたデータが誤りを含むか否かを決定し、リード・ソロモン符号またはボーズ・チョードリ・オッケンジェム（ＢＣＨ）符号などの誤り訂正アルゴリズムを用いていかなる誤りも訂正するように構成された、任意の装置または回路（例えば、再構成可能回路、特定用途向け集積回路（ＡＳＩＣ）等）として具現化され得る。また、例示的な実施形態では、テンソル論理ユニット１３０は複数の計算論理ユニット１３６を含み、その各々は、対応するスクラッチパッド１３２の組内のデータ（例えば、行列データ）に対する計算操作（例えば、テンソル演算）を実行するように構成された任意の装置または回路（例えば、再構成可能回路、ＡＳＩＣ等）として具現化され得る。
【００１９】
図３を簡単に参照すると、例示的な実施形態では、メモリ１０４の構成要素はクラスタ３１０、３２０、３３０に分割される。クラスタ３１０は、メモリ媒体１１０の複数のパーティション３１１と、各々が図１のスクラッチパッド１３２と同様であるスクラッチパッド３１２、３１４、３１６の組と、図１の計算論理ユニット１３６と同様である対応する計算論理ユニット３１８とを有している。同様に、クラスタ３２０は、メモリ媒体１１０の別の組のパーティション３２１と、対応するスクラッチパッド３２２、３２４、３２６の組と、対応する計算論理ユニット３２８とを含む。クラスタ３３０も、メモリ媒体１１０のパーティション３３１の組と、対応するスクラッチパッド３３２、３３４、３３６の組と、計算論理ユニット３３８とを含む。いくつかの実施形態では、計算論理ユニット１３６（例えば、計算論理ユニット３１８）は、その計算論理ユニット３１８と関連付けられたパーティション（例えば、パーティション３１１のうちの１つ）から１つまたは複数の他の計算論理ユニット１３６に（例えば、これらの他の計算論理ユニット１３６と関連付けられたスクラッチパッド１３２に）データの組をブロードキャスト（例えば、提供）してよい。メモリ媒体１１０の、対応するパーティションの組から読み出されたデータを他のスクラッチパッドにブロードキャストすることによって、媒体アクセス回路１０８は、行列データを取得するためにメモリ媒体１１０の所与のセクション（例えば、パーティションの組）がアクセスされなければならない回数を減らす（例えば、読み出し行列データは、同じ行列データをメモリ媒体１１０から複数回読み出すのではなく、メモリ媒体１１０から１回読み出された後に複数のスクラッチパッドにブロードキャストされてよい）。更に、対応するスクラッチパッド３１２、３１４、３１６、３２２、３２４、３２６、３３２、３３４、３３６と各々関連付けられた、複数の計算論理ユニット３１８、３２８、３３８を使うことによって、媒体アクセス回路１０８は、テンソル演算（例えば、行列乗算および累算）の部分を同時に（例えば、並行して）実行し得る。簡略化のため、図３では３つのクラスタ３１０、３２０、３３０が示されているが、クラスタおよび対応するパーティション、スクラッチパッド、ならびに計算論理ユニットの実数は、個々の実施形態に応じて異なってよいことが理解されるべきである。図９を簡単に参照すると、メモリ媒体１１０はダイ１９０上に含まれてよく、媒体アクセス回路１０８はもう１つのダイ１９２上に含まれてよい。各ダイ１９０、１９２は、１組の機能を実行するための回路を定義する半導体ウェハ上のパターンとして具現化され得る。図９に示すように、両ダイ１９２、１９２はパッケージ１５０に一体化されてもよい。パッケージ１５０は、ダイ１９０、１９２を収納する筐体（例えば、金属筐体、プラスチック筐体、ガラス筐体、セラミック筐体等）を含んでよい。他の実施形態では、メモリ媒体１１０および媒体アクセス回路１０８は同じダイ上に配置される。
【００２０】
図４を簡単に参照すると、デュアルインラインメモリモジュール（ＤＩＭＭ）４２０、４３０の組４００が示されている。ＤＩＭＭ４２０は、複数のパッケージ４０２、４０４、４０６、４０８、４１０、４１２、４１４、および４１６を含み、各々は図１および図９のパッケージ１５０と同様である。更に、例示的な実施形態では、各パッケージは６４のパーティションを含み、１つの計算論理ユニット１３６は４つのパーティションの各組に割り当てられる。したがって、８つのパッケージを備えるＤＩＭＭ（例えば、ＤＩＭＭ４２０）では、ＤＩＭＭは１２８の計算論理ユニット１３６を有している。メモリ１０４にもう１つのＤＩＭＭ（例えば、ＤＩＭＭ４３０）を追加することによって、更に１２８の計算論理ユニット１３６が備えられ、メモリ内の計算能力は２倍になる。したがって、ＤＩＭＭをメモリ１０４に連続して追加することによって、メモリ内の計算能力は拡張されることができ、人工知能の演算（例えば、テンソル演算）を効率的に実行するための計算装置１００の能力を著しく増大させる。いくつかの実施形態では、ＤＩＭＭ（例えば、ＤＩＭＭ４２０）は、ＤＩＭＭ４２０全体がパッケージ（例えば、パッケージ１５０）と同様の構成要素（例えば、ダイ）の組を有するよう、媒体アクセス回路１０８を有する１つのダイおよびメモリ媒体１１０の複数の他のダイを含んでよい。他の実施形態では、１つまたは複数のパッケージ（例えば、パッケージ４０２、４０４、４０６、４０８、４１０、４１２、４１４、４１６）はＤＩＭＭ以外の別の種類の回路基板上に配置されてよい。例えば、パッケージは、計算装置１００のユニバーサルシリアルバス（ＵＳＢ）インタフェースに挿入可能な比較的小型の回路基板上に含められ得る。
【００２１】
図５を簡単に参照すると、メモリ１０４によって実行され得る行列乗算（例えば、行列乗法および塁算）演算５００の一例が示されている。例示の通り、入力行列Ａ内の行列データは、別の行列Ｂ内の行列データ（例えば、畳み込みニューラルネットワークの層のための重みデータ）で乗算され、結果データは出力行列Ｃに書き込まれる。図５に示す各行列は、媒体アクセス回路１０８のスクラッチパッド１３２内に行列データとして一時的に記憶される。いくつかの実施形態では、出力行列Ｃは、後続のテンソル演算のための入力行列として（例えば、畳み込みニューラルネットワークの後続の層のための出力行列として）使われ得る。
【００２２】
図１に戻って参照すると、メモリ１０４は不揮発性メモリおよび揮発性メモリを含んでよい。不揮発性メモリは、（不揮発メモリに電源が遮断されたとしても）永続的な方法でデータを記憶できる任意の種類のデータストレージとして具現化され得る。例えば、不揮発性メモリは１つまたは複数の不揮発性メモリ装置として具現化され得る。不揮発性メモリ装置は、ビットレベルのアドレス指定能力（例えば、データのバイトまたはそれより大きな他の単位ではなく、データの個々のビットに対し読み出すおよび／または書き込む能力）を可能にするクロスポイントアーキテクチャで構成される１つまたは複数の記憶装置を含んでもよく、３次元（３Ｄ）クロスポイントメモリとして例示的に具現化される。いくつかの実施形態では、不揮発性メモリは、カルコゲナイド相変化材料（例えば、カルコゲナイドガラス）を用いる記憶装置、強誘電トランジスタランダムアクセスメモリ（ＦｅＴＲＡＭ）、ナノワイヤベースの不揮発性メモリ、相変化メモリ（ＰＣＭ），メモリスタ技術を組み込んだメモリ、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、またはスピン移動トルク（ＳＴＴ）−ＭＲＡＭの任意の組合せを含む、他の種類のメモリを更に含んでもよい。揮発性メモリは、電力が揮発性メモリに供給される間にデータを記憶することができる、任意の種類のデータストレージとして具現化され得る。例えば、揮発性メモリは１つまたは複数の揮発性記憶装置として具現化され得るし、他の実施形態では他の種類の非持続性データストレージとして具現化され得るという理解のもとに、以降、周期的に揮発性メモリと呼ばれる。揮発性メモリは、上述のアーキテクチャと同様の、ビットレベルのアドレス指定能力を可能にするアーキテクチャを有してもよい。
【００２３】
プロセッサ１０２およびメモリ１０４は、Ｉ／Ｏサブシステム１１２を介して計算装置１００の他の構成要素に通信可能に結合され、Ｉ／Ｏサブシステム１１２は、プロセッサ１０２および／または主メモリ１０４と計算装置１００の他の構成要素との入出力演算を容易にするための回路および／または構成要素として具現化され得る。例えば、Ｉ／Ｏサブシステム１１２は、メモリコントローラハブ、入出力制御ハブ、集積センサハブ、ファームウェア装置、通信リンク（例えば、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイド、プリント回路基板トレース等）、および／または入出力演算を容易にするための他の構成要素およびサブシステムとして具現化され得る、またはそれらを含み得る。いくつかの実施形態では、Ｉ／Ｏサブシステム１１２はシステムオンチップ（ＳｏＣ）の一部を形成してもよく、プロセッサ１０２、主メモリ１０４、および計算装置１００の他の構成要素のうちの１つまたは複数と共に、単一のチップ内に組み込まれてもよい。
【００２４】
データ記憶装置１１４は、例えば、記憶装置および回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、または他のデータ記憶装置などの、データの短期または長期の記憶のために構成された任意の種類の装置として具現化され得る。例示的な実施形態では、データ記憶装置１１４は、メモリコントローラ１０６と同様のメモリコントローラ１１６、メモリ媒体１１０と同様の記憶媒体１２０、ならびにテンソル論理ユニット１３０と同様のテンソル論理ユニット１４０、スクラッチパッド１３２と同様のスクラッチパッド１４２、ＥＣＣ論理ユニット１３４と同様のＥＣＣ論理ユニット１４４、および計算論理ユニット１３６と同様の計算論理ユニット１４６を含む、媒体アクセス回路１０８と同様の媒体アクセス回路１１８を含む。更に、メモリ１０４と同様に、記憶媒体１２０および媒体アクセス回路１１８は、複数のパッケージ１７０、１７２（例えば、各々が１つまたは複数のダイ１９４、１９６の組を有する）および複数のＤＩＭＭ１８０内に存在してもよい。したがって、例示的な実施形態では、データ記憶装置１１４（例えば、媒体アクセス回路１１８）は、記憶媒体１２０に記憶されたデータ（例えば、行列データ）に対する計算操作（例えば、テンソル演算）を効率的に実行することができ、計算容量は、追加のＤＩＭＭ１８０を追加することによって容易に拡張され得る。データ記憶装置１１４は、データ記憶装置１１４のためにデータおよびファームウェアコードを記憶するシステムパーティションと、オペレーティングシステムのためにデータファイルおよび実行ファイルを記憶する１つまたは複数のオペレーティングシステムパーティションを含んでもよい。
【００２５】
通信回路１２２は、計算装置１００ともう１つの装置との間の、ネットワークを介した通信を可能にできる任意の通信回路、装置、またはその集合として具現化され得る。通信回路１２２は、そのような通信を達成するために、任意の１つまたは複数の通信技術（例えば、有線または無線通信）および関連するプロトコル（例えば、イーサネット（登録商標）、ブルートゥース（登録商標）、Ｗｉ−ｆｉ（登録商標）、ＷｉＭＡＸ等）を使うよう構成されてもよい。
【００２６】
例示的な通信回路１２２は、ネットワークインタフェースコントローラ（ＮＩＣ）１２２を含むが、ネットワークインタフェースコントローラ１２２はホストファブリックインタフェース（ＨＦＩ）とも呼ばれることがある。ＮＩＣ１２４は、１つまたは複数のアドインボード、ドータカード、ネットワークインタフェースカード、コントローラチップ、チップセット、または別の計算装置と接続するために計算装置１００によって使われ得る他の装置として具現化され得る。いくつかの実施形態では、ＮＩＣ１２４は、１つまたは複数のプロフェッサを含むシステムオンチップ（ＳｏＣ）の一部として具現化されても、また、１つまたは複数のプロフェッサを同様に含むマルチチップパッケージに含まれてもよい。いくつかの実施形態では、ＮＩＣ１２４は、両方ともＮＩＣ１２４に対してローカルであるローカルプロセッサ（図示せず）および／またはローカルメモリ（図示せず）を含んでもよい。そのような実施形態では、ＮＩＣ１２４のローカルプロセッサは、プロセッサ１０２の機能のうちの１つまたは複数を実行できることがある。追加的または代替的に、そのような実施形態では、ＮＩＣ１２４のローカルメモリは、基板レベル、ソケットレベル、チップレベル、および／または他のレベルで、計算装置１００の１つまたは複数の構成要素に統合され得る。
【００２７】
ここで図６を参照すると、計算装置１００は、演算中に、効率的なメモリ内（例えば、メモリ１０４内）の計算操作を実行するための方法６００を実行し得る。方法６００は、メモリ１０４を参照して説明される。しかしながら、方法６００は、データ記憶装置１１４のメモリを使用して追加的または代替的に実行され得ることが理解されるべきである。方法６００はブロック６０２で開始するが、ブロック６０２では、計算装置１００（例えば、メモリ１０４）は、メモリ１０４内の効率的な計算操作（例えば、テンソル演算）の実行を可能にするか否かを決定する。計算装置１００は、メモリ内の効率的な計算操作の実行を可能にするために構成設定（例えば、構成ファイル内の）が示す決定に応答した、および／または他の要因に基づいた、媒体アクセス回路１０８がテンソル論理ユニット１３０を含むという決定に応答して、メモリ１０４内の効率的な計算操作の実行を可能にし得る。
【００２８】
それに関わらず、効率的なメモリ内の計算操作の実行を可能にするという決定に応答して、方法６００はブロック６０４に進み、ブロック６０４では、計算装置１００は、メモリ１０４内のデータに対して1つまたは複数の演算を実行する要求を取得し得る。例えば、ブロック６０６に示すように、メモリ１０４（例えば、媒体クセス回路１０８）は、プロセッサ（例えば、プロフェッサ１０２）から要求を受信し得るが、このプロフェッサは人工知能関連アプリケーション（例えば、学習および推論を行うためにニューラルネットワークまたは他の機械学習構造を使用し得るアプリケーション）を実行していることがある。ブロック６０８に示すように、メモリ１０４（例えば、媒体アクセス回路１０８）は、メモリ１０４内で演算されるデータの位置（例えば、アドレス）を示す記述子（例えば、パラメータまたは他のデータ）を含む要求を受信し得る。ブロック６１０に示すように、メモリ１０４は、メモリ１０４内で演算される行列の次元を示す記述子を含む要求を受信し得る。
【００２９】
続いて、方法６００はブロック６１２に進み、ブロック６１２では、計算装置１００は、メモリ１０４に含まれる媒体アクセス回路（例えば、媒体アクセス回路１０８）を用いて、メモリ１０４に含まれるメモリ媒体（例えば、メモリ媒体１１０）から、要求された演算と関連付けられたデータ（例えば、演算されるデータ）にアクセスする。ブロック６１４に示すように、例示的な実施形態では、計算装置１００は、相補型金属酸化膜半導体（ＣＭＯＳ）を用いて（例えば、媒体アクセス回路１０８はＣＭＯＳから形成されてもよい）データに（例えば、メモリ媒体１１０から）アクセスする。また、ブロック６１６に示すように、例示的な実施形態では、メモリ１０４（例えば、媒体アクセス回路１０８）は、クロスポイントアーキテクチャ（例えば、メモリセルがワード線とビット線との交差部にあって個々にアドレス可能であり、かつビットストレージがバルク抵抗の変化に基づいているアーキテクチャ）を有するメモリ媒体（例えば、メモリ媒体１１０）からデータを読み出す。更に、ブロック６１８に示すように、媒体アクセス回路１０８は、３次元クロスポイントアーキテクチャ（例えば、図２を参照して説明されたように、タイルの組が層として積層されているアーキテクチャ）を有するメモリ媒体（例えば、メモリ媒体１１０）から行列データを読み出し得る。他の実施形態では、計算装置１００は、異なるアーキテクチャを有するメモリ媒体からデータを読み出してもよい。
【００３０】
ブロック６２０に示すように、計算装置１００（例えば、媒体アクセス回路１０８）は、メモリ媒体１１０の複数のパーティションからデータを読み出し得る（例えば、同時に）。そうすることで、ブロック６２２に示すように、計算装置１００は、各パーティションから予め定義された数のビット（例えば、１２８ビット）を読み出し得る。ブロック６２４に示すように、計算装置１００（例えば、媒体アクセス回路１０８）は、対応するパーティションと関連付けられたスクラッチパッドにデータを読み込み得る。例えば、媒体アクセス回路１０８は、パーティション３１１のうちの１つからスクラッチパッド３１２へのデータ、パーティション３２１のうちの１つからスクラッチパッド３２２へのデータなどを読み込み得る。データをスクラッチパッドに読み込む際に、計算装置１００（例えば、媒体アクセス回路１０８）は、データを夫々レジスタファイル（例えば、レジスタの配列）またはスタティックランダムアクセスメモリ（ＳＲＡＭ）に読み込み得る。続いて、方法６００は図７のブロック６３０に進むが、ブロック６３０では、計算装置１００は、媒体アクセス回路１０８を用いて、メモリ媒体１１０からアクセスされたデータに対し、要求された演算の少なくとも一部を実行する。
【００３１】
ここで図７を参照すると、ブロック６３２に示すように、要求された演算の少なくとも一部を実行する際に、計算装置１００（例えば、媒体アクセス回路１０８）は、媒体アクセス回路１０８内の計算論理ユニット１３６を使用して演算を実行する。ブロック６３４に示すように、例示的な実施形態では、計算装置１００は、演算（例えば、１つまたは複数の行列の部分に対して演算するような、要求された演算のサブ演算）を、複数の計算論理ユニット１３６に亘って同時に実行する。ブロック６３６に示すように、計算装置１００は、データが読み出されたパーティションと関連付けられた計算論理ユニットを用いて、演算（例えば、要求された演算のサブ演算）を実行し得る。例示的な実施形態では、ブロック６３８に示すように、計算装置１００は、データが読み込まれたパーティションと関連付けられたスクラッチパッド（例えば、パーティション３１１と関連付けられたスクラッチパッド３１２、３１４、３１６、パーティション３２１と関連付けられたスクラッチパッド３２２、３２４、３２６等）に読み込まれたデータに対して演算を実行する。ブロック６４０に示すように、計算装置１００は、ダイまたはパッケージ（例えば、パッケージ４０２）に配置された複数の計算論理ユニット（例えば、計算論理ユニット３１８、３２８、３３８）を用いて、演算を実行し得る。更に、ブロック６４２に示すように、計算装置１００は、ＤＩＭＭ（例えば、ＤＩＭＭ４２０）の複数のダイまたはパッケージ（例えば、パッケージ４０２、４０４、４０６、４０８、４１０、４１２、４１４、４１６）に亘って分散された複数の計算論理ユニットを用いて、演算を実行し得る。更に、ブロック６４４に示すように、計算装置１００は、複数のＤＩＭＭ（例えば、ＤＩＭＭ４２０、４３０）に亘って分散された複数の計算論理ユニットを用いて、演算を実行し得る。
【００３２】
ブロック６４６に示すように、演算を実行する際に、計算装置１００（例えば、媒体アクセス回路１０８）は、メモリ媒体１１０からアクセスされたデータに対して1つまたは複数のテンソル演算を実行し得る。そうすることで、ブロック６４８に示すように、計算装置１００（例えば、媒体アクセス回路１０８）は、１つまたは複数の行列乗算演算（例えば、入力行列Ａを重み行列Ｂで乗じて出力行列Ｃを得ること）を実行し得る。ブロック６５０に示すように、１つまたは複数の行列乗算演算を実行する際に、計算装置１００（例えば、媒体アクセス回路１０８）は、１つまたは複数の行列乗累算演算を実行し得る。ブロック６５２に示すように、他の実施形態では、計算装置１００（例えば、媒体アクセス回路１０８）は、データに対して他の種類の演算（例えば、テンソル演算以外）を実行し得る。例えば、ブロック６５４に示すように、計算装置１００（例えば、媒体アクセス回路１０８）は、メモリ媒体１１０からアクセスされたデータに対して、1つまたは複数のビット単位の演算（例えば、ＡＮＤ，ＯＲ，ＸＯＲ，ＮＯＲのような個々のビットに対する論理演算）を実行し得る。
【００３３】
続いて、方法６００はブロック６５６に進み、ブロック６５６では、計算装置１００は、要求された演算の実行を継続するために追加のデータにアクセスするか否かを決定する。例えば、テンソル演算が要求され、そのテンソル演算と関連付けられた行列データの一部のみ（例えば、行および／または列のすべてより少ない）が演算された場合、計算装置１００は、要求された演算を完了するために追加のデータ（例えば、追加の行列データ）がアクセスされるべきかを決定し得る。計算装置１００が追加のデータにアクセスすることを決定したら、方法６００は、追加のデータにアクセスするために図６のブロック６１２にループバックする。そうでなければ、方法６００は図８のブロック６５８に進み、ブロック６５８では、計算装置１００（例えば、媒体アクセス回路１０８）は、要求された演算の実行から生成された結果データをメモリ（例えば、メモリ媒体１１０）に書き込み得る。
【００３４】
ここで図８を参照すると、ブロック６６０に示すように、結果データを書き込む際に、媒体アクセス回路１０８は最初に結果データを、メモリ媒体１１０のパーティションの組と各々関連付けられた１つまたは複数のスクラッチパッドに書き込み得る（例えば、スクラッチパッド３１２からの入力行列Ａとスクラッチパッド３１４からの重み行列Ｂとの乗算の結果をスクラッチパッド３１６に追加すること、スクラッチパッド３２２からの入力行列Ａとスクラッチパッド３２４からの重み行列Ｂとの乗算の結果等をスクラッチパッド３２６に追加すること等）。ブロック６６２に示すように、媒体アクセス回路１０８は、畳み込みニューラルネットワークの層（例えば、後続の層）のための入力行列として使用される出力行列（例えば、行列Ｃ）を各々保持するスクラッチパッド（例えば、スクラッチパッド３１６、３２６、３３６）に結果データを書き込み得る。ブロック６６４に示すように、媒体アクセス回路１０８は、スクラッチパッド３１６、３２６、３３６からの結果データをメモリ媒体１１０（例えば、対応するパーティション）に書き込み得る。続いてブロック６６６では、メモリ１０４は、計算装置１００の別の構成要素に、要求された演算の完了を示すデータを提供し得る。そうすることで、ブロック６６８に示すように、メモリ１０４は結果データ（例えば、ブロック６５８からの）を、アプリケーション（例えば、メモリ１０４内で実行される演算に対する要求を生成したアプリケーション）を実行しているプロセッサ（例えば、プロセッサ１０２）に提供し得る。ブロック６７０に示すように、メモリ１０４は、計算装置１００の他の構成要素（例えば、プロセッサ１０２）に、人工知能の演算を示す結果データを提供し得る。例えば、ブロック６７２に示すように、メモリ１０４は、推論（例えば、画像中のオブジェクトの識別等）を示すデータを提供し得る。続いて、方法６００は、図６のブロック６０２にループバックし、ブロック６０２では、計算装置１００は、継続して効率的なメモリ内の計算操作を可能にするか否かを決定する。
【００３５】
［実施例］
本明細書で開示される技術の例示的な例が、以下で提供される。これらの技術のある実施形態は、以下で説明される実施例の何れか１つまたは複数、および任意の組み合わせを含み得る。
【００３６】
実施例１は、メモリ媒体に結合された媒体アクセス回路を備えるメモリを含み、媒体アクセス回路は、要求された演算を実行するためにメモリ媒体からデータにアクセスし、媒体アクセス回路に含まれる複数の計算論理ユニットの各々を用いて、アクセスされたデータに対して、要求された演算を同時に実行し、かつ、要求された演算の実行から生成された結果データをメモリ媒体に書き込む。
【００３７】
実施例２は、実施例１の主題を含み、複数の計算論理ユニットの各々を用いて要求された演算を実行することは、メモリ媒体の異なるパーティションと関連付けられた複数の計算論理ユニットを用いて、要求された演算を実行することを含む。
【００３８】
実施例３は、実施例１および２の何れかの主題を含み、複数の計算論理ユニットの各々を用いて要求された演算を実行することは、ダイまたはパッケージ内に配置された複数の計算論理ユニットの各々を用いて、要求された演算を実行することを含む。
【００３９】
実施例４は、実施例１から３の何れかの主題を含み、複数の計算論理ユニットの各々を用いて要求された演算を実行することは、デュアルインラインメモリモジュールの複数のダイまたはパッケージ内に配置された複数の計算論理ユニットの各々を用いて、要求された演算を実行することを含む。
【００４０】
実施例５は、実施例１から４の何れかの主題を含み、複数の計算論理ユニットの各々を用いて要求された演算を実行することは、複数のデュアルインラインメモリモジュールに亘って分散された複数の計算論理ユニットの各々を用いて、要求された演算を実行することを含む。
【００４１】
実施例６は、実施例１から５の何れかの主題を含み、メモリ媒体からデータにアクセスすることは、メモリ媒体の複数のパーティションからデータを読み出すことを含む。
【００４２】
実施例７は、実施例１から６の何れかの主題を含み、メモリ媒体からデータにアクセスすることは、複数のパーティションの各々と関連付けられたスクラッチパッドにデータを読み込むことを含む。
【００４３】
実施例８は、実施例１から７の何れかの主題を含み、データをスクラッチパッドに読み込むことは、データを媒体アクセス回路のレジスタファイルまたはスタティックランダムアクセスメモリに読み込むことを含む。
【００４４】
実施例９は、実施例１から８の何れかの主題を含み、メモリ媒体からデータにアクセスすることは、３次元クロスポイントアーキテクチャを有するメモリ媒体からデータにアクセスすることを含む。
【００４５】
実施例１０は、実施例1から９の何れかの主題を含み、要求された演算を実行することは、テンソル演算を実行することを含む。
【００４６】
実施例１１は、実施例１から１０の何れかの主題を含み、要求された演算を実行することは、行列乗算演算を実行することを含む。
【００４７】
実施例１２は、実施例１から１１の何れかの主題を含み、要求された演算を実行することは、アクセスされたデータに対してビット単位の演算を実行することを含む。
【００４８】
実施例１３は、実施例１から１２の何れかの主題を含み、媒体アクセス回路は更に、要求された演算の完了を示すデータを計算装置の構成要素に提供する。
【００４９】
実施例１４は、要求された演算を実行するために、メモリに含まれる媒体アクセス回路が、媒体アクセス回路に結合されたメモリ媒体からデータにアクセスすることと、媒体アクセス回路内の複数の計算論理ユニットの各々が、アクセスされたデータに対して、要求された演算を同時に実行することと、媒体アクセス回路が、要求された演算の実行から生成された結果データをメモリ媒体に書き込むこととを含む方法を含む。
【００５０】
実施例１５は、実施例１４の主題を含み、複数の計算論理ユニットの各々が、要求された演算を実行することは、メモリ媒体の異なるパーティションと関連付けられた複数の計算論理ユニットが、要求された演算を実行することを含む。
【００５１】
実施例１６は、実施例１４および１５の何れかの主題を含み、複数の計算論理ユニットの各々が、要求された演算を実行することは、ダイまたはパッケージ内に配置された複数の計算論理ユニットの各々が、要求された演算を実行することを含む。
【００５２】
実施例１７は、実施例１４から１６の何れかの主題を含み、複数の計算論理ユニットの各々が、要求された演算を実行することは、デュアルインラインメモリモジュールの複数のダイまたはパッケージ内に配置された複数の計算論理ユニットの各々が、要求された演算を実行することを含む。
【００５３】
実施例１８は、実施例１４から１７の何れかの主題を含み、複数の計算論理ユニットの各々が、要求された演算を実行することは、複数のデュアルインラインメモリモジュールに亘って分散された複数の計算論理ユニットの各々が、要求された演算を実行することを含む。
【００５４】
実施例１９は、実施例１４から１８の何れかの主題を含み、メモリ媒体からデータにアクセスすることは、メモリ媒体の複数のパーティションからデータを読み出すことを含む。
【００５５】
実施例２０は、要求された演算を実行するために、実行されていることに応答して、メモリに含まれる媒体アクセス回路をメモリ媒体からデータにアクセスさせ、媒体アクセス回路に含まれる複数の計算論理ユニットの各々を用いて、アクセスされたデータに対して、要求された演算を同時に実行させ、かつ、要求された演算の実行から生成された結果データをメモリ媒体に書き込ませる、保存された複数の命令を備える、１つまたは複数の機械可読記憶媒体を含む。
［考えられる他の項目］
（項目１）
メモリ媒体に結合された媒体アクセス回路を備えるメモリであって、
上記媒体アクセス回路は、
要求された演算を実行するために上記メモリ媒体からデータにアクセスし、
上記媒体アクセス回路に含まれる複数の計算論理ユニットの各々を用いて、上記アクセスされたデータに対して、上記要求された演算を同時に実行し、かつ
上記要求された演算の実行から生成された結果データを上記メモリ媒体に書き込む、
メモリ。
（項目２）
複数の計算論理ユニットの各々を用いて上記要求された演算を実行することは、上記メモリ媒体の異なるパーティションと関連付けられた複数の計算論理ユニットを用いて、上記要求された演算を実行することを含む、項目１に記載のメモリ。
（項目３）
複数の計算論理ユニットの各々を用いて上記要求された演算を実行することは、ダイまたはパッケージ内に配置された複数の計算論理ユニットの各々を用いて、上記要求された演算を実行することを含む、項目１に記載のメモリ。
（項目４）
複数の計算論理ユニットの各々を用いて上記要求された演算を実行することは、デュアルインラインメモリモジュールの複数のダイまたはパッケージ内に配置された複数の計算論理ユニットの各々を用いて、上記要求された演算を実行することを含む、項目１に記載のメモリ。
（項目５）
複数の計算論理ユニットの各々を用いて上記要求された演算を実行することは、複数のデュアルインラインメモリモジュールに亘って分散された複数の計算論理ユニットの各々を用いて、上記要求された演算を実行することを含む、項目１に記載のメモリ。
（項目６）
上記メモリ媒体からデータにアクセスすることは、上記メモリ媒体の複数のパーティションから上記データを読み出すことを含む、項目１に記載のメモリ。
（項目７）
上記メモリ媒体からデータにアクセスすることは、上記複数のパーティションの各々と関連付けられたスクラッチパッドに上記データを読み込むことを含む、項目６に記載のメモリ。
（項目８）
上記データをスクラッチパッドに読み込むことは、上記データを上記媒体アクセス回路のレジスタファイルまたはスタティックランダムアクセスメモリに読み込むことを含む、項目７に記載のメモリ。
（項目９）
上記メモリ媒体からデータにアクセスすることは、３次元クロスポイントアーキテクチャを有するメモリ媒体からデータにアクセスすることを含む、項目１に記載のメモリ。
（項目１０）
上記要求された演算を実行することは、テンソル演算を実行することを含む、項目１に記載のメモリ。
（項目１１）
上記要求された演算を実行することは、行列乗算演算を実行することを含む、項目１に記載のメモリ。
（項目１２）
上記要求された演算を実行することは、上記アクセスされたデータに対してビット単位の演算を実行することを含む、項目１に記載のメモリ。
（項目１３）
上記媒体アクセス回路は更に、上記要求された演算の完了を示すデータを上記計算装置の構成要素に提供する、項目１に記載のメモリ。
（項目１４）
要求された演算を実行するために、メモリに含まれる媒体アクセス回路が、上記媒体アクセス回路に結合されたメモリ媒体からデータにアクセスする段階と、
上記媒体アクセス回路内の複数の計算論理ユニットの各々が、上記アクセスされたデータに対して、上記要求された演算を同時に実行する段階と、
上記媒体アクセス回路が、上記要求された演算の上記実行から生成された結果データを上記メモリ媒体に書き込む段階と
を含む方法。
（項目１５）
複数の計算論理ユニットの各々が、上記要求された演算を実行する段階は、上記メモリ媒体の異なるパーティションと関連付けられた複数の計算論理ユニットが、上記要求された演算を実行する段階を含む、項目１４に記載の方法。
（項目１６）
複数の計算論理ユニットの各々が、上記要求された演算を実行する段階は、ダイまたはパッケージ内に配置された複数の計算論理ユニットの各々が、上記要求された演算を実行する段階を含む、項目１４に記載の方法。
（項目１７）
複数の計算論理ユニットの各々が、上記要求された演算を実行する段階は、デュアルインラインメモリモジュールの複数のダイまたはパッケージ内に配置された複数の計算論理ユニットの各々が、上記要求された演算を実行する段階を含む、項目１４に記載の方法。
（項目１８）
複数の計算論理ユニットの各々が、上記要求された演算を実行する段階は、複数のデュアルインラインメモリモジュールに亘って分散された複数の計算論理ユニットの各々が、上記要求された演算を実行する段階を含む、項目１４に記載の方法。
（項目１９）
上記メモリ媒体からデータにアクセスする段階は、上記メモリ媒体の複数のパーティションから上記データを読み出す段階を含む、項目１４に記載の方法。
（項目２０）
記憶された複数の命令を含む１つまたは複数の機械可読記憶媒体であって、実行されていることに応答して、メモリに含まれる媒体アクセス回路に、
要求された演算を実行するために上記メモリ媒体からデータにアクセスさせ、
上記媒体アクセス回路に含まれる複数の計算論理ユニットの各々を用いて、上記アクセスされたデータに対して、上記要求された演算を同時に実行させ、かつ、
上記要求された演算の実行から生成された結果データを上記メモリ媒体に書き込ませる、
機械可読記憶媒体。
【図１】
2020166828.tif 000003
【図２】
2020166828.tif 000004
【図３】
2020166828.tif 000005
【図４】
2020166828.tif 000006
【図５】
2020166828.tif 000007
【図６】
2020166828.tif 000008
【図７】
2020166828.tif 000009
【図８】
2020166828.tif 000010
【図９】
2020166828.tif 000011
【外国語明細書】
2020166828000001.pdf