(57)【要約】  疎に接続されたコンダクタンス行列およびアナログ混合信号（ＡＭＳ）技法を使用する効率的なベクトル−行列乗算を実行するためのシステムおよび方法が開示される。金属電極は、同軸ナノワイヤを使用して疎に接続されている。各電極は、ニューラルネットワーク層での入出力ノードまたはニューロンとして使用することができる。ニューラルネットワークのシナプスは、同軸ナノワイヤによって提供されるランダム接続によって作成される。金属電極のサブセットを使用して入力電圧のベクトルを受信することができ、金属電極の補完サブセットを使用して出力電流を読み出すことができる。出力電流は、入力電圧のベクトルとコンダクタンスの疎に接続された行列とのベクトル−行列乗算の結果である。【選択図】図３
2021518615.tif 000002
【特許請求の範囲】
【請求項１】
疎結合ベクトル−行列乗算のシステムであって、
基板と、
前記基板内または前記基板上に形成された回路層と、
前記回路層に形成された複数の電極と、
前記複数の電極にランダムに形成されたメッシュとを備え、前記回路層が、
複数のデジタル入力信号を受信し、
前記複数のデジタル入力信号を複数のアナログ入力信号に変換し、
前記複数のアナログ入力信号を前記複数の電極の入力セットに書き込み、
前記複数の電極の出力セットから複数のアナログ出力信号を読み出し、
前記複数のアナログ出力信号を複数のデジタル出力信号に変換し、
前記複数のデジタル出力信号を出力する
ように構成される、システム。
【請求項２】
請求項１に記載のシステムであって、前記メッシュが、二端子不揮発性メモリ（ＮＶＭ）材料で被包された金属コアを有する同軸ナノワイヤを含む、システム。
【請求項３】
請求項２に記載のシステムであって、前記不揮発性メモリ材料が、電圧制御された抵抗を含む、システム。
【請求項４】
請求項１に記載のシステムであって、
前記回路層が、
前記複数の前記デジタル入力信号を受信するように構成された入力レジスタと、
前記複数のデジタル入力信号を複数のアナログ入力信号に変換するように構成された１つまたは複数のデジタル／アナログ変換器と、
前記複数のアナログ出力信号を前記複数のデジタル出力信号に変換するように構成された１つまたは複数のアナログ／デジタル変換器と、
前記複数のデジタル出力信号を受信して記憶するように構成された出力レジスタと
を備える、システム。
【請求項５】
請求項４に記載のシステムであって、前記回路層が、前記複数の前記電極にバイアス電圧および／または訓練電圧を選択的に提供するように構成された列ドライバおよび行ドライバをさらに含む、システム。
【請求項６】
請求項１に記載のシステムであって、前記複数のアナログ入力信号が電圧を含み、前記複数のアナログ出力信号が電流を含み、またはその逆である、システム。
【請求項７】
請求項１に記載のシステムであって、
前記複数のアナログ入力信号が電圧を含み、前記複数のアナログ出力信号が電流を含み、前記回路層が、
前記複数の電極に結合された複数の増幅器をさらに含み、前記複数の電極の前記入力セットに結合された増幅器が、サンプルホールド（ＳＡＨ）増幅器として構成され、前記入力セットに前記複数のアナログ入力信号を書き込むように構成され、前記複数の前記電極の前記出力セットに結合された増幅器が、電流感知増幅器として構成され、前記複数のアナログ出力信号を読み出すように構成される、
システム。
【請求項８】
請求項１に記載のシステムであって、前記複数の電極が、ニューラルネットワーク層にニューロンを含む、システム。
【請求項９】
請求項１に記載のシステムであって、前記複数の電極および前記ランダムに形成されたメッシュが、コンダクタンスの行列を含む、システム。
【請求項１０】
請求項８に記載のシステムであって、コンダクタンスの前記行列が、温度駆動型の相変化メモリ機構、ユニポーラ抵抗スイッチング、およびバイポーラメモリスタ機構のうちの１つまたは複数を使用して調整可能である、システム。
【請求項１１】
疎結合ベクトル−行列乗算の方法であって、
シリコン基板に複数の電極を提供するステップと、
ランダムに配置された同軸ナノワイヤの層を前記複数の電極に形成するステップと、
複数のデジタル入力信号を受信するステップと、
前記複数のデジタル入力信号を複数のアナログ入力信号に変換するステップと、
前記複数のアナログ入力信号を前記複数の電極の入力セットに書き込むステップと、
前記複数の電極の出力セットから複数のアナログ出力信号を読み出すステップと、
前記複数のアナログ出力信号を複数のデジタル出力信号に変換するステップと、
前記複数のデジタル出力信号を出力するステップと
を含む方法。
【請求項１２】
請求項１１に記載の方法であって、前記同軸ナノワイヤが、二端子不揮発性メモリ（ＮＶＭ）材料で被包された金属コアを含む、方法。
【請求項１３】
請求項１２に記載の方法であって、前記ＮＶＭ材料が、電圧制御された抵抗、メモリスタ、相変化材料（ＰＣＭ）、および抵抗変化型メモリ（ＲｅＲＡＭ）材料のうちの１つまたは複数を含む、方法。
【請求項１４】
請求項１１に記載の方法であって、
前記複数の前記電極にバイアス電圧を選択的に提供して、前記複数の前記電極への電圧の書込み、または前記複数の前記電極からの電流の読出しをイネーブルにするステップ
をさらに含む、方法。
【請求項１５】
請求項１１に記載の方法であって、電圧制御された抵抗が、前記複数の前記電極と、前記ランダムに配置された同軸ナノワイヤとの交点に形成され、前記方法が、前記複数の前記電極に訓練電圧を選択的に提供して、前記電圧制御された抵抗を調節することをさらに含む、方法。
【請求項１６】
請求項１５に記載の方法であって、前記複数の前記電極のうちのどの電極が前記訓練電圧を印加されるかを示す訓練信号を受信するステップをさらに含む、方法。
【請求項１７】
請求項１１に記載の方法であって、前記複数の前記電極が、ニューラルネットワーク層にニューロンを含む、方法。
【請求項１８】
請求項１１に記載の方法であって、前記複数の前記電極、およびランダムに配置された同軸ナノワイヤの前記層が、コンダクタンスの行列を形成し、前記コンダクタンスが、勾配降下を実行することによって調整される、方法。
【請求項１９】
請求項１１に記載の方法であって、前記複数のアナログ入力信号が電圧を含み、前記複数のアナログ出力信号が電流を含む、方法。
【請求項２０】
請求項１１に記載の方法であって、前記入力セットおよび前記出力セットが、前記複数の電極のうちの前記電極の半数をそれぞれ含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本出願は、「Ａｎａｌｏｇ  Ｐｒｏｃｅｓｓｏｒ  ｆｏｒ  Ｓｐａｒｓｅ  Ｖｅｃｔｏｒ−Ｍａｔｒｉｘ  Ｍｕｌｔｉｐｌｉｃａｔｉｏｎ」という名称の２０１８年４月５日出願の米国仮特許出願第６２／６５３，１９４号に対する優先権の利益を主張するものであり、上記仮特許出願の内容全体を参照により本明細書に援用し、本明細書の一部とみなすべきである。
【０００２】
本発明は、概してコンピュータハードウェアに関し、特に、人工知能およびメモリデバイスなどの分野で効率的な行列演算を実行するように設計されたアクセラレータに関する。
【背景技術】
【０００３】
行列演算は、様々な現代の計算タスクで使用される。多くの物理的現象を、数値の１つまたは複数の行列によって表して、現代のコンピュータで処理することができる。例えば、静止写真、ビデオ画像フレーム、センサ出力データ、発話の間隔、金融取引データ、自立駆動型センサデータ、および多くの他の物理的物体またはパラメータを、現代のコンピュータにおける処理、操作、および演算に適した数値の１つまたは複数の行列によって表すことができる。汎用の計算ハードウェアを使用して行列演算を実行することができるが、行列データおよび行列演算は、それらの特徴により、汎用コンピュータと比較して、行列ワークロードおよび行列演算をより効率的に処理するためにカスタマイズされたハードウェアを設計するのに良好な候補になり得る。現代の計算タスクで頻繁に使用される行列演算の一形態は、デジタルベクトル−行列乗算である。
【０００４】
従来のデジタルベクトル−行列乗算では、入力値のベクトルが、パラメータ値の行列と共に提供される。これら２つの結果の乗算が、単一のベクトル出力をもたらす。入力ベクトルと出力ベクトルとのサイズがどちらもｎである場合、この演算の計算複雑性は、Ｏ（ｎ2）としてスケーリングされる。
【０００５】
クロスバーアレイおよび関連のハードウェアを用いたベクトル−行列乗算の代替的な形態は、インメモリ・コンピューティングの概念を使用し、データをアレイにロードすることができるスピードによってのみ制限される。これにより、計算時間のＯ（ｎ）スケーリングがもたらされる。これらのアーキテクチャは、一般にドット積エンジン（ＤＰＥ）として知られている。しかし、このＯ（ｎ）スケーリングを維持するために、ＤＰＥは、密クロスバー行列でパラメータ値を記憶するためのＯ（ｎ2）空間リソースをオンチップで必要とする。したがって、既存のＤＰＥを配備することにより、場合によっては、計算時間効率とオンチップ領域との望ましくないトレードオフが必要とされる。
【０００６】
したがって、ベクトル−行列乗算を可能にするデバイスおよびデバイスを操作する方法が必要であり、これはまた、従来のＤＰＥの場合のようにチップ領域について二次関数的にスケーリングするのではなく、計算時間および空間リソースについてＯ（ｎ）としてスケーリングする。
【発明の概要】
【課題を解決するための手段】
【０００７】
本発明の一態様では、疎結合ベクトル−行列乗算のシステムが開示される。このシステムは、シリコン基板と、基板内または基板上に形成された回路層と、回路層に形成された複数の電極と、複数の電極にランダムに形成されたメッシュとを含み、回路層が、複数のデジタル入力信号を受信し、複数のデジタル入力信号を複数のアナログ入力信号に変換し、複数のアナログ入力信号を複数の電極の入力セットに書き込み、複数の電極の出力セットから複数のアナログ出力信号を読み出し、複数のアナログ出力信号を複数のデジタル出力信号に変換し、複数のデジタル出力信号を出力するように構成される。
【０００８】
いくつかの実施形態では、メッシュは、二端子不揮発性メモリ（ＮＶＭ）材料で被包された金属コアを有する同軸ナノワイヤを含む。
【０００９】
一実施形態では、不揮発性メモリ材料は、電圧制御された抵抗を含む。
【００１０】
別の実施形態では、回路層は、複数のデジタル入力信号を受信するように構成された入力レジスタと、複数のデジタル入力信号を複数のアナログ入力信号に変換するように構成された１つまたは複数のデジタル／アナログ変換器と、複数のアナログ出力信号を複数のデジタル出力信号に変換するように構成された１つまたは複数のアナログ／デジタル変換器と、複数のデジタル出力信号を受信して記憶するように構成された出力レジスタとを含む。
【００１１】
一実施形態では、回路層は、複数の電極にバイアス電圧および／または訓練電圧を選択的に提供するように構成された列ドライバおよび行ドライバをさらに含む。
【００１２】
別の実施形態では、複数のアナログ入力信号は電圧を含み、複数のアナログ出力信号は電流を含み、またはその逆である。
【００１３】
いくつかの実施形態では、複数のアナログ入力信号は電圧を含み、複数のアナログ出力信号は電流を含み、回路層は、複数の電極に結合された複数の増幅器をさらに含み、複数の電極の入力セットに結合された増幅器が、サンプルホールド（ＳＡＨ）増幅器として構成され、入力セットに複数のアナログ入力信号を書き込むように構成され、複数の電極の出力セットに結合された増幅器が、電流感知増幅器として構成され、複数のアナログ出力信号を読み出すように構成される。
【００１４】
一実施形態では、複数の電極が、ニューラルネットワーク層にニューロンを含む。
【００１５】
別の実施形態では、複数の電極およびランダムに形成されたメッシュは、コンダクタンスの行列を含む。
【００１６】
いくつかの実施形態では、コンダクタンスの行列は、温度駆動型の相変化メモリ機構、ユニポーラ抵抗スイッチング、およびバイポーラメモリスタ機構のうちの１つまたは複数を使用して調整可能である。
【００１７】
本発明の別の態様では、疎結合ベクトル−行列乗算の方法が開示される。この方法は、シリコン基板に複数の電極を提供するステップと、複数の電極に、ランダムに配置された同軸ナノワイヤの層を形成するステップと、複数のデジタル入力信号を受信するステップと、複数のデジタル入力信号を複数のアナログ入力信号に変換するステップと、複数のアナログ入力信号を複数の電極の入力セットに書き込むステップと、複数の電極の出力セットから複数のアナログ出力信号を読み出すステップと、複数のアナログ出力信号を複数のデジタル出力信号に変換するステップと、複数のデジタル出力信号を出力するステップとを含む。
【００１８】
一実施形態では、同軸ナノワイヤは、二端子不揮発性メモリ（ＮＶＭ）材料で被包された金属コアを含む。
【００１９】
別の実施形態では、ＮＶＭ材料が、電圧制御された抵抗、メモリスタ、相変化材料（ＰＣＭ）、および抵抗変化型メモリ（ＲｅＲＡＭ）材料のうちの１つまたは複数を含む。
【００２０】
いくつかの実施形態では、この方法は、複数の電極にバイアス電圧を選択的に提供して、複数の電極への電圧の書込み、または複数の電極からの電流の読出しをイネーブルにするステップをさらに含む。
【００２１】
一実施形態では、電圧制御された抵抗が、複数の電極と、ランダムに配置された同軸ナノワイヤとの交点に形成され、方法は、複数の電極に訓練電圧を選択的に提供して、電圧制御された抵抗を調節することをさらに含む。
【００２２】
いくつかの実施形態では、この方法は、複数の電極のうちのどの電極が訓練電圧を印加されるかを示す訓練信号を受信するステップをさらに含む。
【００２３】
一実施形態では、複数の電極は、ニューラルネットワーク層にニューロンを含む。
【００２４】
別の実施形態では、複数の電極、およびランダムに配置された同軸ナノワイヤの層が、コンダクタンスの行列を形成し、コンダクタンスは、勾配降下を実行することによって調整される。
【００２５】
いくつかの実施形態では、複数のアナログ入力信号は電圧を含み、複数のアナログ出力信号は電流を含む。
【００２６】
一実施形態では、入力セットおよび出力セットは、複数の電極のうちの電極の半数をそれぞれ含む。
【００２７】
以下の図面およびに本明細書における関連の記載は、本発明の特定の実施形態を例示するために提供され、限定するものとは意図されていない。
【図面の簡単な説明】
【００２８】
【図１】図１は、ベクトル−行列乗算を実行するために使用されるドット積エンジンでの行列を示す図である。
【００２９】
【図２】図２は、高効率計算ハードウェアを構築する際に利用することができる同軸ナノワイヤを示す図である。
【００３０】
【図３】図３は、一実施形態による疎結合ベクトル−行列乗算（ＳＶＭＭ）エンジンを示す図である。
【００３１】
【図４】図４は、図３の実施形態の回路層および電極の一実施形態を示す図である。
【００３２】
【図５】図５は、一実施形態による、疎結合ベクトル行列乗算の方法の流れ図を示す図である。
【発明を実施するための形態】
【００３３】
いくつかの実施形態の以下の詳細な説明は、本発明の特定の実施形態の様々な説明を提示する。しかし、本発明は、特許請求の範囲によって定義されて網羅される多くの異なる方法で具現化することができる。本明細書では図面を参照し、図面中、同様の参照番号は、同一の要素または機能的に同様の要素を示すことがある。
【００３４】
特に定義しない限り、本明細書で使用される全ての用語は、本発明が属する技術分野の当業者によって一般に理解される意味と同一の意味を有する。本明細書での開示全体を通して言及される全ての特許、特許出願、および出版物の全体を参照により援用する。本明細書での用語に関して複数の定義がある場合、本項の定義を優先させる。
【００３５】
定義
【００３６】
本明細書で使用するとき、用語「約」は、開示される特定の測定値または大きさの範囲を表す。例えば、語句「約１０」は、指定された数字が、１％、３％、５％、７％、１０％、１５％、または２０％だけ変動してもよいことを意味する。したがって、２０％の変動範囲では、語句「約１０」は、８〜１２の範囲を意味する。
【００３７】
本開示において用語「１つ」が使用されるとき、特に指示がない限り、「少なくとも１つ」または「１つまたは複数」を意味する。
【００３８】
用語「プロセッサ」は、ソフトウェアプログラミング命令をロードして実行するために最適化された様々なマイクロプロセッサ、コントローラ、および／またはハードウェアおよびソフトウェア、またはプロセッサ、例えば画像処理に関連する大容量の行列データを扱うために最適化されたグラフィックスプロセッシングユニット（ＧＰＵ）を表すことができる。
【００３９】
用語「コンダクタンス」は、構成要素が電気を伝導する度合いを表す。コンダクタンスは、構成要素の両端間の電位差に対する、構成要素を通って流れる電流の比として計算することができる。コンダクタンスは、抵抗の逆数であり、ジーメンスの単位で測定される。
【００４０】
本明細書で述べる行列乗算エンジンの文脈での用語「密結合」は、行列乗算エンジンの各入力ノードから各出力ノードへの電気的接続または経路が存在するエンジンを表すことができる。
【００４１】
本明細書で述べる行列乗算エンジンの文脈での用語「疎結合」は、行列乗算エンジンの入力ノードと出力ノードとの間で実現可能または利用可能な接続が全て形成されているわけではないエンジンを表すことができる。
【００４２】
密行列乗算エンジン
【００４３】
ベクトル−行列乗算の実行に特化したハードウェアの一例は、クロスバーアーキテクチャに基づくドット積エンジンである。
【００４４】
図１は、ベクトル−行列乗算を実行するために使用されるドット積エンジンでの行列２０の図を示す。行列２０は、クロスバーアレイアーキテクチャを利用し、垂直出力電流線と交差する水平入力電圧線を含む。一例として、行列２０を使用してニューラルネットワークの文脈でベクトル−行列乗算を実行するとき、入力電圧線／出力電流線は、ニューラルネットワーク層でのニューロンでよい。入力電圧線および出力電流線は、導電性金属材料で作製される。入力電圧線と出力電流線との交点で、不揮発性メモリ（ＮＶＭ）で作製された材料２１が、入力電圧線を、交差する出力電流線に接続する。いくつかの実装形態では、これは、ＮＶＭタイプの材料２１を挟持するように電極線（水平線および垂直線）をリソグラフィによりパターン形成することによって実現される。入力電圧のベクトルが、入力電圧線に印加される。各列での出力電流は、その列と入力電圧線との各交点からの電流の和によって決定され、各交点に関してキルヒホッフの電流法則（ＫＣＬ）を適用することによって決定される。行列２０は、適切な電圧を印加することによって制御可能な抵抗を有するＮＶＭ材料２１によって部分的に形成される。したがって、パラメータ値の行列（例えば、ニューラルネットワークの層における重みの行列）は、所望の計算のパラメータ値の行列と一致するように交点抵抗を調節することによって行列２０に構成することができる。
【００４５】
密行列乗算エンジンの性能
【００４６】
行列２０を利用するドット積エンジンは、密アレイ構造として特徴付けることができ、各入力と各出力とが接続される。とりわけ、行列２０を実装するために必要とされるチップ領域は、提供する入力および出力ニューロンの数に対して二次関数的にスケーリングする。言い換えると、入力／出力ニューロンと、行列２０を実装するために必要とされるチップ領域とは、異なる割合でスケーリングする。入力／出力ニューロンが、（行列２０の縁部で）線形にスケーリングする一方で、それらの追加のニューロンのベクトル−行列乗算を実装するために必要とされるチップ領域は、（行列２０の領域で）二次関数的に増大する。
【００４７】
同軸ナノワイヤ
【００４８】
新材料の最近の発見により、計算ハードウェア、およびソフトウェアの実行をタスクとして課せられたハードウェアを設計するための手法に革新がもたらされる可能性がある。従来のシリコン材料に基づいてのみ設計された計算ハードウェアは、その性能の物理的限界に近づいているので、新材料のみに基づく設計、またはシリコンベースの回路と組み合わせた新材料に基づく設計が、ハードウェアの効率の向上に有望である。ナノスケール材料、例えばナノワイヤ、および望ましい機械的または電気的特性を有する材料の発見および形成可能性が、行列乗算を実行するためにカスタマイズされて最適化されたハードウェアを含めた計算法およびデバイスの発展および改良に有望である。
【００４９】
図２は、以下に述べるように、高効率の計算ハードウェアを構築するときに利用することができる同軸ナノワイヤ１０の図を示す。同軸ナノワイヤ１０は、二端子不揮発性メモリ（ＮＶＭ）材料１４に被包された金属コア１２を含む。同軸ナノワイヤ１０は、２つの金属電極１６および１８に接触する。
【００５０】
ＮＶＭ材料は二端子デバイスであり、その抵抗は、あるしきい値電圧よりも高いまたは低い電圧が２つの端子間に印加されることによって制御される。例えば、電極１６が、正のしきい値電圧（ＳＥＴ電圧）よりも高い電圧をＮＶＭ材料１４に印加するとき、ＮＶＭ材料１４は絶縁破壊を受けるおそれがあり、１つまたは複数の導電性フィラメントがＮＶＭ材料１４を通して形成され、それによりＮＶＭ材料１４の電気抵抗を低下させ、その導電性を高める。その後、ここではより高い導電性のＮＶＭ材料１４および金属コア１２によって、電極１６と電極１８との電気的接続を強化することができる。電極１６が、負のしきい値電圧（ＲＥＳＥＴ電圧）よりも低い電圧をＮＶＭ材料１４に印加するとき、絶縁破壊プロセスが逆となり、フィラメントが溶解し、ＮＶＭ材料１４の電気抵抗が、その元の値または何らかの他のより低い抵抗に戻り、それにより電極１６と電極１８との電気的接続を弱める。ＳＥＴ電圧よりも高い電圧の場合、ＮＶＭ材料１４は低抵抗状態（ＬＲＳ）に変換され、ＲＥＳＥＴ電圧よりも低い電圧の場合、ＮＶＭ材料１４は高抵抗状態（ＨＲＳ）に変換される。言い換えると、同軸ナノワイヤ１０は、その接点と電極との交点にメモリデバイスを形成する。界面での抵抗は、前に印加された電圧（前の電圧がＳＥＴ電圧よりも高かった、またはＲＥＳＥＴ電圧よりも低かったかどうか）に応じて決まる。
【００５１】
ＮＶＭ材料１４の例としては、メモリスタ、相変化材料（ＰＣＭ）、抵抗変化型メモリ（ＲｅＲＡＭ）材料、または抵抗が電圧制御される任意の他の材料、例えば１つまたは複数のしきい値電圧に対する印加電圧に応答して抵抗を保つ任意の材料を含む。
【００５２】
疎結合ベクトル−行列乗算エンジン
【００５３】
同軸ナノワイヤ１０の適用は、行列乗算を実行するように設計されたハードウェアの文脈で考察することができる。行列乗算は、多くの現代の計算タスク、例えば人工知能（ＡＩ）、機械学習、ニューラルネットワーク、ニューラルネットワーク訓練、様々な変換（例えば離散フーリエ変換）などで使用される。行列乗算を効率的に実行することができるハードウェアを作製するために、同軸ナノワイヤ１０のシェルの不揮発性であり制御可能なメモリ特性を活用することができる。現代の計算タスクで使用される行列乗算の一形態は、デジタルベクトル−行列乗算であり、入力値のベクトルにパラメータ値の行列が乗算される。この乗算により、出力ベクトルが得られる。パラメータ値の行列を作成するために同軸ナノワイヤ１０を使用することができる。パラメータ値は、様々な計算タスクで使用される任意のパラメータ値、例えばニューラルネットワークの層での重みでよい。入力値のベクトルに重みの行列を乗算して、層の出力ベクトルを生成することができる。
【００５４】
ベクトル−行列乗算を実行することができる計算ハードウェアを設計するために、デジタル入力値をアナログ入力電圧のベクトルで表すことができ、コンダクタンスの行列は、パラメータ値の行列を表すことができる。オームの法則の式（Ｉ＝ＶＧ、Ｉは電流、Ｖは電圧、Ｇはコンダクタンス）を使用して、電流のアナログ出力ベクトルを得ることができ、これは、入力値とパラメータ値の行列との乗算の出力となる。アナログ出力ベクトルは、デジタル出力値に変換して出力することができる。
【００５５】
図１のドット積エンジンと比較して、ベクトル−行列乗算を実行するための代替エンジンは、チップ領域にわたって分散されて、同軸ナノワイヤ１０と疎に接続された電極を使用することができ、電極は、図１のドット積エンジンの場合のようにクロスバーアレイの外側縁のみではなく、電極が存在するチップ領域全体にわたって入力および出力ノードを分散させることができる。同軸ナノワイヤ１０と疎に接続された分散された電極のネットワークは、コンダクタンス行列を作成することができ、コンダクタンス行列は、所望の計算においてパラメータ行列として使用することができる。電極のサブセットを使用して入力電圧のベクトルを提供することができ、電極の補完サブセットをプローブして、出力電流のベクトルを読み出すことができる。電流の出力ベクトルは、オームの法則に従って、入力電圧のベクトルとコンダクタンスの行列とのベクトル−行列乗算により得られる。
【００５６】
図３は、疎結合ベクトル−行列乗算（ＳＶＭＭ）エンジン２２の図を示す。ＳＶＭＭエンジン２２は、シリコン基板２４と、回路層２６内の制御回路構成、例えば補完金属酸化膜半導体（ＣＭＯＳ）層と、電極のグリッド２８と、グリッド２８の上に堆積された同軸ナノワイヤ１０のランダムに形成されたメッシュ３０とを含む。メッシュ３０は、電極グリッド２８の上方に置かれ、または電極グリッド２８の上に形成され、メッシュ３０と電極グリッド２８の上部との物理的接触を提供する。代替として、グリッド２８の電極を、金属のピラーとしてメッシュ３０を通して成長させることができる。グリッド２８の電極の上にランダムに堆積された同軸ナノワイヤ１０は、それらが接触する電極間に電気的接続を提供することができる。その結果、同軸ナノワイヤ１０は、グリッド２８の電極を疎に接続する。電極間の電気的接続の強度は、同軸ナノワイヤ１０の抵抗の増減に基づいて変更され得る。
【００５７】
ＳＶＭＭエンジン２２の訓練モードにおいて、回路層２６での回路構成を使用して、グリッド２８の電極を介して、メッシュ３０の同軸ナノワイヤ１０の一部または全てにＳＥＴ電圧またはＲＥＳＥＴ電圧を印加することができる。メッシュ３０の同軸ナノワイヤ１０の電気抵抗は、グリッド２８の電極を介して受け取る電圧に応じて増加または減少することができ、それにより、グリッド２８の電極間の電気的接続を強めたり弱めたりすることができる。メッシュ３０の同軸ナノワイヤ１０はランダムに形成されるので、ＮＶＭタイプの材料およびナノワイヤ１０の金属コアを通じて、グリッド２８の電極間のランダムな電気的接続を生成することができる。したがって、グリッド２８の電極は、メッシュ３０の同軸ナノワイヤ１０を介して疎に接続される。
【００５８】
メッシュ３０と疎に接続されたグリッド２８は、コンダクタンスの疎に接続された行列を形成し、ベクトル−行列乗算のためにこれを使用することができる。入力電圧のベクトルは、グリッド２８の電極のサブセット（入力電極）に印加することができ、残りの電極（出力電極）を使用して電流の出力ベクトルを読み出すことができる。この構成では、電流の出力ベクトルは、オームの法則に従って、入力電圧のベクトルと、グリッド２８によって形成されたコンダクタンスの疎に接続された行列とのベクトル−行列乗算の出力となる。
【００５９】
様々な用途において、グリッド２８の電極とメッシュ３０との交点に形成される抵抗は、コンダクタンスの有用な行列が形成されるまで、入力／出力対の既知の組に調整または当てはめを行うことによって調節することができる。言い換えると、ＳＶＭＭエンジン２２によって形成されるコンダクタンスの行列は、メッシュ３０の同軸ナノワイヤ１０を介するグリッド２８の電極間のランダムな接続によって形成された未知のまたはランダムな抵抗から作製されるが、コンダクタンスは、ＳＥＴ電圧および／またはＲＥＳＥＴ電圧の組合せをグリッド２８の電極に印加し、出力を観察することによって調節することができる。電極−メッシュ界面の抵抗を調節すべき方向を決定するために、様々な当てはめ技法およびアルゴリズムを使用してよい。
【００６０】
グリッド２８とメッシュ３０とによって形成されたコンダクタンスの行列に対応する界面抵抗は、様々な手段によって調節することができ、例えば、グリッド２８の電極での電圧パルスを使用して、温度駆動型の相変化メモリ機構、ユニポーラ抵抗スイッチング、またはバイポーラメモリスタ機構に従って抵抗を切り替えるまたは変えることによって調節することができる。これらの技法を使用して、例えば連想メモリ（ＣＡＭ）、ニューラルネットワーク層、またはより汎用のメモリインターコネクトとして、コンダクタンス行列の値をタスクに合わせて調整することができる。ＳＶＭＭエンジン２２に関連して使用することができるアルゴリズムの例は、２０１８年５月２１日出願の「ＤＥＥＰ  ＬＥＡＲＮＩＮＧ  ＩＮ  ＢＩＰＡＲＴＩＴＥ  ＭＥＭＲＩＳＴＩＶＥ  ＮＥＴＷＯＲＫＳ」という名称の国際特許出願ＰＣＴ／ＵＳ２０１８／０３３６６９号で見ることができる。一実施形態では、勾配降下学習を使用して、ＳＶＭＭエンジン２２のコンダクタンス行列を調整することができる。
【００６１】
グリッド２８の形状、数、および幾何学的特徴は、実装形態に基づいて変更することができる。いくつかの実施形態では、電極は、グリッド形式である必要はない。様々な設計および実装形態を考慮して、記載する技術の精神から逸脱することなく、ＳＶＭＭエンジン２２の代替の幾何学的特徴を定めてよい。
【００６２】
図４は、回路層２６とグリッド２８の電極との実施形態の図を示す。回路層２６は、ＣＭＯＳ層として実装することができ、いくつかの構成要素、例えば、入力レジスタ３２、出力レジスタ３４、列ドライバ３６、行ドライバ３８、１つまたは複数のデジタル／アナログ変換器（ＤＡＣ）４０、１つまたは複数のアナログ／デジタル変換器（ＡＤＣ）４２、増幅器４６、スイッチ４４、ならびに、回路層２６にＳＶＭＭエンジン２２の機能を実装するために使用され得る他の構成要素および回路構成を含むことができる。例示の目的でグリッド２８の電極を示すが、いくつかの実施形態では、グリッド２８の電極は、回路層２６の上方に成長した金属ピラーであり、回路層２６の一部でなくてもよい。メッシュ３０は、図４に示されていないが、図３に関連して述べたように、グリッド２８の電極の上方に作られて、それらの電極間のランダムな電気的接続を提供する。
【００６３】
グリッド２８の電極は、列ドライバ３６と行ドライバ３８とに接続することができる。列ドライバ３６および行ドライバ３８は、グリッド２８の電極に様々な電圧を提供するための回路構成（例えば、論理ゲート、高電力および低電力供給レールなど）を含む。一実施形態では、行ドライバ３６および列ドライバ３８は、ＲＥＳＥＴ電圧よりも高くＳＥＴ電圧よりも低い範囲内で１つまたは複数のバイアス電圧を提供し、グリッド２８の１つまたは複数の電極への電圧の書込み、および／またはそれらの電極からの電流の読出しをイネーブルにすることができる。列ドライバ３６および行ドライバ３８は、グリッド２８の１つまたは複数の電極に対する訓練信号を受信することができる。訓練信号がＯＮの場合、列ドライバ３６および／または行ドライバ３８は、ＳＥＴ電圧よりも高い、またはＲＥＳＥＴ電圧よりも低い訓練電圧パルスを提供し、電極−メッシュ界面での抵抗を調節することができる。グリッド２８内の１つまたは複数の電極に関する訓練信号がＯＦＦの場合、列ドライバ３６および／または行ドライバ３８は、ＳＥＴ電圧よりも高い電圧、またはＲＥＳＥＴ電圧よりも低い電圧を印加しない。
【００６４】
いくつかの実施形態では、ＳＶＭＭエンジン２２は、仮想接地（ｍｉｄ−ｓｕｐｐｌｙ）で動作し、訓練信号がＯＮであるとき、一連のパルス電圧は、グリッド２８の１つまたは複数の電極を高電力供給レール（Ｖｄｄ）または低電力供給レール（接地）に接続するトランジスタゲートに送られる。列ドライバ３６および行ドライバ３８は、グリッド２８の電極とメッシュ３０との界面での抵抗が移動されるべき方向（例えば、高くするまたは低くする）を示す１つまたは複数の制御信号を受信することができる。
【００６５】
回路層２６は、グリッド２８の各電極を個別にアドレス指定することを可能にするように設計することができ、または効率化の目的で、グリッド２８の複数の電極を並列でアドレス指定するように、かつ回路層２６およびその構成要素によって費やされるオンチップ領域を節約するように設計することができる。
【００６６】
ＳＶＭＭエンジン２２は、ＳＶＭＭエンジン２２が使用される用途に応じて、様々な信号源からデジタル入力信号を（例えば、所定の間隔で、間断的に、またはランダムに）受信することができる。デジタル入力信号は、センサ入力データ、物理的現象を表す数学的画像パラメータ、人工知能入力データ、訓練入力データ、静止写真、ビデオ画像のフレーム、発話の間隔、およびベクトル−行列乗算の目的での任意の他の入力信号を含むことができる。
【００６７】
１つまたは複数のＤＡＣ４０を使用して、デジタル入力信号をアナログ電圧に変換することができ、このアナログ電圧をグリッド２８の電極に供給することができる。１つまたは複数のＡＤＣ４２は、アナログ出力電流をデジタル信号に変換することができ、このデジタル信号を出力レジスタ３４に出力し、さらなる処理または他のタスクのためにオフチップで伝送することができる。
【００６８】
ＳＶＭＭエンジン２２は、エッジノードのみが入力または出力ノードであり得るデバイスとは対照的に、グリッド２８の各電極が入力または出力ノードであり得るように構成することができる。効率化の目的で、グリッド２８の複数の電極を入力電極として並列に設定することができ、残りの電極は出力電極として読み出すことができる。回路層２６は、スイッチ４４と共に設計することができ、スイッチ４４は、グリッド２８の電極をＤＡＣ４０に接続することができ、入力信号を受信するために電極を利用可能にする。スイッチ４４をトグルして、グリッド２８の電極をＡＤＣ４２に接続し、電極を出力電極として利用可能にすることができる。効率化の目的で、グリッド２８の複数の電極（例えば、それらのうちの１つまたは複数の列）を入力電極として使用することができる（例えば、スイッチ４４をＤＡＣ４０に適切に位置決めすることによって、または当業者に知られている他の技法によって）。グリッド２８の残りの電極（例えば残りの列）を出力電極として使用することができる。いくつかの実施形態では、入力電極と出力電極との組のサイズは、（例えばスイッチ４４の代わりに永続的な接続によって）永続性のあるものでも、（例えばスイッチ４４を個々にまたはバッチで制御する入力／出力セレクタ信号によって）融通性のあるものでも、永続性と融通性との組合せでもよい。
【００６９】
例示の目的で、一例として、回路層２６は、入力信号用に使用される列ＡおよびＢと、出力信号の読出し用に使用される列ＣおよびＤとで構成される。グリッド２８の各電極は、回路層２６の増幅器４６に接続される。増幅器４６は、その対応する電極が入力ノードとなる場合、バッファすなわちサンプルホールド（ＳＡＨ）増幅器として構成することができる。また、増幅器４６はその対応する電極が出力ノードとなる場合、電流出力を感知するためにトランスインピーダンス増幅器として構成することができる。
【００７０】
一実施形態では、コントローラ４８は、入力または出力増幅器として増幅器４６を個々にまたはバッチで構成することができる。コントローラ４８は、回路層２６内の回路の他の機能を調整することもでき、例えば、入力／出力セレクタ信号を介するスイッチ４４の制御、増幅器４６の構成、ならびに上述したような列ドライバ３６および行ドライバ３８に関連する様々な機能を調整することもできる。コントローラ４８は、ＳＶＭＭエンジン２２の様々な動作および構成要素のタイミング、例えば入力レジスタ３２からグリッド２８の入力電極に入力ベクトルを供給するタイミング、グリッド２８の出力電極から出力電流を読み出すタイミング、ならびに他の機能および構成要素のタイミングを管理することもできる。コントローラ４８は、その機能を実施するために、短期メモリおよび／または長期メモリ、ストレージ、１つまたは複数のプロセッサ、クロック信号、および他の構成要素などの回路構成を含むことができる。
【００７１】
電極の動作モード
【００７２】
動作モードに応じて、グリッド２８の電極に対して様々な操作を実施することができる。１つのモードでは、１つまたは複数の電極を訓練モードにすることができ、電極−メッシュ界面での抵抗を調節することができる。ニューラルネットワーク訓練などいくつかの用途では、コンダクタンスの有効な行列を構成するために、ニューラルネットワークでの訓練アルゴリズム（例えば勾配降下）に基づいて界面抵抗を調節することができるので、用語「訓練」が使用される。そのような操作中、電極−メッシュ界面での個々の抵抗は知られていなくてもよく、それにもかかわらず、訓練アルゴリズムを使用して入力／出力対を観察し電極−メッシュ界面の集合の抵抗によってコンダクタンスの有効な行列が作成されるまで、抵抗を上下に調節することができる。
【００７３】
別のモードでは、１つまたは複数の電極はＷＲＩＴＥモードでよく、適当量の電圧バイアスが、列ドライバ３６および／または行ドライバ３８から印加され、入力電圧値が、１つまたは複数の対応するＤＡＣ４０を介して１つまたは複数の電極で供給される。
【００７４】
別のモードでは、１つまたは複数の電極はＲＥＡＤモードでよく、適当量の電圧バイアスが、列ドライバ３６および／または行ドライバ３８から印加され、出力電流が、１つまたは複数の対応するＡＤＣ４２を介して１つまたは複数の電極から読み出される。
【００７５】
ＳＶＭＭエンジン２２の例示的な動作
【００７６】
ここで、ＳＶＭＭエンジン２２の一例および構成を、図４に関連して述べる。列ＡおよびＢは入力電極として割り当てられ、列ＣおよびＤは出力電極として割り当てられる。列ＡおよびＢでの増幅器４６は、ＳＡＨ増幅器として構成され、列ＣおよびＤでの増幅器４６は、電流を感知することが可能なトランスインピーダンス増幅器として構成される。列ＡおよびＢでのスイッチ４４は、列ＡおよびＢでの増幅器４６をＤＡＣ４０に接続する。列ＣおよびＤでのスイッチ４４は、列ＣおよびＤでの増幅器４６を列ＣおよびＤのＡＤＣ４２に接続する。列ドライバ３６および行ドライバ３８は、適切なバイアス電圧を電極に供給して、ＷＲＩＴＥモードでは列ＡおよびＢでの電極をイネーブルにし、ＲＥＡＤモードでは列ＣおよびＤでの電極をイネーブルにする。
【００７７】
１つまたは複数のＤＡＣ４０は、入力レジスタ３２で受信されたデジタル入力信号の第１のベクトルをアナログ信号に変換し、それらのアナログ信号を列Ａでの増幅器４６に設定する。ＳＡＨ増幅器として構成されている列Ａでの増幅器４６は、列Ａでの電極で入力電圧を保持する。次に、１つまたは複数のＤＡＣ４０は、入力レジスタ３２で受信されたデジタル入力信号の第２のベクトルをアナログ信号に変換し、それらのアナログ信号を列Ｂでの増幅器４６に設定する。ＳＡＨ増幅器として構成されている列Ｂでの増幅器４６は、列Ｂでの電極で入力電圧を保持する。追加の列が入力用に使用される場合、入力列が供給されるまで、このプロセスを続行することができる。
【００７８】
入力電圧が列ＡおよびＢでの電極に書き込まれるとき、コントローラ４８は、列ＣおよびＤでのＡＤＣ４２で走査して出力電流を読み出し、結果を出力レジスタ３４に出力し始めることができる。
【００７９】
列ドライバ３６および行ドライバ３８が１つまたは複数の電極を訓練モードにし、それらの電極にＶｄｄまたは接地電圧を印加し、電極−メッシュ界面での抵抗を調節するステップを追加して、上記のプロセスを繰り返すことができる。本実装形態では、ＶｄｄはＳＥＴ電圧よりも高く、接地電圧はＲＥＳＥＴ電圧よりも低い。
【００８０】
ＳＶＭＭエンジン２２およびその回路層２６を構成することができ、ここでは、個々の電極を入力／出力ノードとして使用することができる。一例として、グリッド２８での電極のうちの半数を入力電極として使用することができ、グリッド２８での電極のうちの半数を出力電極として使用することができる。用途に応じて、入力または出力としての電極の他の分割法も可能である。ＤＡＣ４０は、バッファまたはＳＡＨ増幅器として構成される増幅器４６を介して入力電極に入力電圧（Ｖ１）を書き込み、したがって電極にＶ１が保持される。次いで、ＤＡＣ４０は、次の入力電極の増幅器４６を介して次の入力電極に次の入力電圧（Ｖ２）を書き込む。最後の入力電極が入力電圧（Ｖｍ）を受け取るまでプロセスが続行され、ここで、ｍは、グリッド２８での電極の半数である。ここまでに、乗算は既に行われている。電圧に電極−メッシュ界面抵抗を乗算して、オームの法則に従って、出力電極で出力電流を生成する。
【００８１】
入力電極への電圧の書込みが完了すると、コントローラ４８は、出力ノードを通って走査し、電流感知増幅器として構成される増幅器４６を介して第１の出力電流（Ｉ１）を読み出し、ＡＤＣ４２を使用して出力電流Ｉ１をデジタル出力に変換し、出力レジスタ３４をアップデートすることができる。次いで、次の出力電流Ｉ２が、電流感知増幅器として構成された第２の出力電極の増幅器４６を介して第２の出力電極から読み出される。最後の出力電極の出力電流が読み出されるまでこのプロセスが続行され、出力レジスタ３４がアップデートされる。ノード（または、ＳＶＭＭエンジン２２がニューラルネットワークで使用される場合にはニューロン）は、１回通過される。
【００８２】
ＳＶＭＭの用途および性能の分析
【００８３】
ＳＶＭＭエンジン２２は、多くの用途で効果的に使用することができ、ＳＶＭＭエンジン２２のコンダクタンスの行列を、所望の機能、例えばニューラルネットワークおよび他の文脈での活性化機能を最適化するように様々な方向に調節することができる。他の計算タスクも、ＳＶＭＭエンジン２２を利用することができる。例として様々な画像処理タスクが挙げられ、ここで、画像は、物理的現象、例えば発話、天気、温度、または他のデータ構造、例えば、金融データ、レーダデータ、センサデータ、静止写真、ビデオ画像フレーム、および他の用途に存在し得るようなデータ構造を表す行列データである。
【００８４】
コンダクタンスの疎結合ネットワークを利用するＳＶＭＭエンジン２２は、コンダクタンスの密結合ネットワークを使用するデバイスと比較して、実質的な性能の利点を提供する。疎結合ネットワークは、人間の脳が機能する方法に類似している。疎結合ネットワークでは、あらゆる情報ノードが、他の全ての情報ノードに接続されているとは限らない。いくつかの情報ノードのみが接続されている。疎結合性は、全ての情報ノードが接続されている密結合ネットワークなどのより高価なネットワークと比較して、領域およびリソースを経済的に使用して、秀でた計算能力を実現可能にすると考えられる。さらに、密結合ネットワークを利用するドット積エンジンは、コンダクタンス行列の抵抗を正確に制御する必要性、およびナノスケール材料の電気的または機械的制御の難しさにより、高価であり、設計および動作が複雑であることが実証されている。
【００８５】
さらに、ＳＶＭＭエンジン２２のコンダクタンスの疎行列は、行列乗算のために密結合ネットワークを利用するデバイスと比較して、より高い性能対面積比を提供する。ＳＶＭＭエンジン２２の疎結合ネットワークでは、入力および出力ノード（またはニューラルネットワークの文脈ではニューロン）は、エンジンのコンダクタンス行列の領域にわたって存在することができる。対照的に、密結合ネットワークでの入力および出力ノード（またはニューロン）は、ネットワークの外側縁にのみ存在する。これは、密結合ネットワークを使用するデバイスと比較して、ＳＶＭＭエンジン２２に二次関数的スケーリングの利点をもたらす。ニューロンの数が増えるとき、ＳＶＭＭエンジン２２は、ニューロンの同じ密度を維持することができるが、密結合ネットワークを使用するデバイスは密度を失い始める。
【００８６】
ハードウェアに関して、ＳＶＭＭエンジン２２は、コンピュータシステム、グラフィックスプロセッシングユニット（ＧＰＵ）、ハードウェアアクセラレータの一部として、または人工知能プロセッサ、機械学習プロセッサ、メモリインターコネクト、もしくは行列演算が使用される他のデバイスの一部として実装することができる。
【００８７】
図５は、一実施形態による疎結合ベクトル−行列乗算の方法５０の流れ図を示す。この方法は、図３および４の実施形態を使用するハードウェアで実施することができる。方法５０は、ステップ５２から始まる。この方法はステップ５４に進み、シリコン基板に複数の電極を提供する。次いで、この方法は、ステップ５６に進み、ランダムに配置された同軸ナノワイヤの層を複数の電極に形成する。次いで、この方法は、ステップ５８に進み、複数のデジタル入力信号を受信する。この方法は、ステップ６０に進み、複数のデジタル入力信号を複数のアナログ入力信号に変換する。次いで、この方法は、ステップ６２に進み、複数のアナログ入力信号を複数の電極の入力セットに書き込む。次いで、この方法は、ステップ６４に進み、複数の電極の出力セットから複数のアナログ出力信号を読み出す。次いで、この方法は、ステップ６６に進み、複数のアナログ出力信号を複数のデジタル出力信号に変換する。次いで、この方法は、ステップ６８に進み、複数のデジタル出力信号を出力する。この方法は、ステップ７０で終了する。
【００８８】
多数の電気パラメータの観点から電気的特性を定義することができることを当業者は理解することができる。例えば、上述したシステムおよび方法は、コンダクタンス、電圧、および電流に関して示して説明してきたが、これらのパラメータは関連しており、当業者は、コンダクタンスの代わりに抵抗、電圧の代わりに電流、および電流の代わりに電圧に関して、上記の同じシステムを容易に説明もしくは設計することができ、または同じ方法を実施することができる。例えば、電流および電圧はオームの法則に関係するので、電圧の代わりに電流を使用して電極に書き込み、電圧を出力で読み出すことができる。
【図１】
2021518615.tif 000003
【図２】
2021518615.tif 000004
【図３】
2021518615.tif 000005
【図４】
2021518615.tif 000006
【図５】
2021518615.tif 000007
【国際調査報告】
2021518615.tif 000008