(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2021-518615(P2021-518615A)
(43)【公表日】2021年8月2日
(54)【発明の名称】効率的な行列乗算のためのシステムおよび方法
(51)【国際特許分類】
G06G 7/60 20060101AFI20210705BHJP
G06F 17/16 20060101ALI20210705BHJP
G06N 3/063 20060101ALI20210705BHJP
【FI】
G06G7/60
G06F17/16 Z
G06N3/063
【審査請求】有
【予備審査請求】未請求
【全頁数】18
(21)【出願番号】特願2020-551826(P2020-551826)
(86)(22)【出願日】2019年4月5日
(85)【翻訳文提出日】2020年11月17日
(86)【国際出願番号】US2019025961
(87)【国際公開番号】WO2019195660
(87)【国際公開日】20191010
(31)【優先権主張番号】62/653,194
(32)【優先日】2018年4月5日
(33)【優先権主張国】US
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
(71)【出願人】
【識別番号】520363395
【氏名又は名称】レイン・ニューロモーフィックス・インコーポレーテッド
【氏名又は名称原語表記】RAIN NEUROMORPHICS INC.
(74)【代理人】
【識別番号】110000028
【氏名又は名称】特許業務法人明成国際特許事務所
(72)【発明者】
【氏名】ケンダル・ジャック・デビッド
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056AA01
5B056AA05
5B056BB42
(57)【要約】
疎に接続されたコンダクタンス行列およびアナログ混合信号(AMS)技法を使用する効率的なベクトル−行列乗算を実行するためのシステムおよび方法が開示される。金属電極は、同軸ナノワイヤを使用して疎に接続されている。各電極は、ニューラルネットワーク層での入出力ノードまたはニューロンとして使用することができる。ニューラルネットワークのシナプスは、同軸ナノワイヤによって提供されるランダム接続によって作成される。金属電極のサブセットを使用して入力電圧のベクトルを受信することができ、金属電極の補完サブセットを使用して出力電流を読み出すことができる。出力電流は、入力電圧のベクトルとコンダクタンスの疎に接続された行列とのベクトル−行列乗算の結果である。
【選択図】
図3
【特許請求の範囲】
【請求項1】
疎結合ベクトル−行列乗算のシステムであって、
基板と、
前記基板内または前記基板上に形成された回路層と、
前記回路層に形成された複数の電極と、
前記複数の電極にランダムに形成されたメッシュとを備え、前記回路層が、
複数のデジタル入力信号を受信し、
前記複数のデジタル入力信号を複数のアナログ入力信号に変換し、
前記複数のアナログ入力信号を前記複数の電極の入力セットに書き込み、
前記複数の電極の出力セットから複数のアナログ出力信号を読み出し、
前記複数のアナログ出力信号を複数のデジタル出力信号に変換し、
前記複数のデジタル出力信号を出力する
ように構成される、システム。
【請求項2】
請求項1に記載のシステムであって、前記メッシュが、二端子不揮発性メモリ(NVM)材料で被包された金属コアを有する同軸ナノワイヤを含む、システム。
【請求項3】
請求項2に記載のシステムであって、前記不揮発性メモリ材料が、電圧制御された抵抗を含む、システム。
【請求項4】
請求項1に記載のシステムであって、
前記回路層が、
前記複数の前記デジタル入力信号を受信するように構成された入力レジスタと、
前記複数のデジタル入力信号を複数のアナログ入力信号に変換するように構成された1つまたは複数のデジタル/アナログ変換器と、
前記複数のアナログ出力信号を前記複数のデジタル出力信号に変換するように構成された1つまたは複数のアナログ/デジタル変換器と、
前記複数のデジタル出力信号を受信して記憶するように構成された出力レジスタと
を備える、システム。
【請求項5】
請求項4に記載のシステムであって、前記回路層が、前記複数の前記電極にバイアス電圧および/または訓練電圧を選択的に提供するように構成された列ドライバおよび行ドライバをさらに含む、システム。
【請求項6】
請求項1に記載のシステムであって、前記複数のアナログ入力信号が電圧を含み、前記複数のアナログ出力信号が電流を含み、またはその逆である、システム。
【請求項7】
請求項1に記載のシステムであって、
前記複数のアナログ入力信号が電圧を含み、前記複数のアナログ出力信号が電流を含み、前記回路層が、
前記複数の電極に結合された複数の増幅器をさらに含み、前記複数の電極の前記入力セットに結合された増幅器が、サンプルホールド(SAH)増幅器として構成され、前記入力セットに前記複数のアナログ入力信号を書き込むように構成され、前記複数の前記電極の前記出力セットに結合された増幅器が、電流感知増幅器として構成され、前記複数のアナログ出力信号を読み出すように構成される、
システム。
【請求項8】
請求項1に記載のシステムであって、前記複数の電極が、ニューラルネットワーク層にニューロンを含む、システム。
【請求項9】
請求項1に記載のシステムであって、前記複数の電極および前記ランダムに形成されたメッシュが、コンダクタンスの行列を含む、システム。
【請求項10】
請求項8に記載のシステムであって、コンダクタンスの前記行列が、温度駆動型の相変化メモリ機構、ユニポーラ抵抗スイッチング、およびバイポーラメモリスタ機構のうちの1つまたは複数を使用して調整可能である、システム。
【請求項11】
疎結合ベクトル−行列乗算の方法であって、
シリコン基板に複数の電極を提供するステップと、
ランダムに配置された同軸ナノワイヤの層を前記複数の電極に形成するステップと、
複数のデジタル入力信号を受信するステップと、
前記複数のデジタル入力信号を複数のアナログ入力信号に変換するステップと、
前記複数のアナログ入力信号を前記複数の電極の入力セットに書き込むステップと、
前記複数の電極の出力セットから複数のアナログ出力信号を読み出すステップと、
前記複数のアナログ出力信号を複数のデジタル出力信号に変換するステップと、
前記複数のデジタル出力信号を出力するステップと
を含む方法。
【請求項12】
請求項11に記載の方法であって、前記同軸ナノワイヤが、二端子不揮発性メモリ(NVM)材料で被包された金属コアを含む、方法。
【請求項13】
請求項12に記載の方法であって、前記NVM材料が、電圧制御された抵抗、メモリスタ、相変化材料(PCM)、および抵抗変化型メモリ(ReRAM)材料のうちの1つまたは複数を含む、方法。
【請求項14】
請求項11に記載の方法であって、
前記複数の前記電極にバイアス電圧を選択的に提供して、前記複数の前記電極への電圧の書込み、または前記複数の前記電極からの電流の読出しをイネーブルにするステップ
をさらに含む、方法。
【請求項15】
請求項11に記載の方法であって、電圧制御された抵抗が、前記複数の前記電極と、前記ランダムに配置された同軸ナノワイヤとの交点に形成され、前記方法が、前記複数の前記電極に訓練電圧を選択的に提供して、前記電圧制御された抵抗を調節することをさらに含む、方法。
【請求項16】
請求項15に記載の方法であって、前記複数の前記電極のうちのどの電極が前記訓練電圧を印加されるかを示す訓練信号を受信するステップをさらに含む、方法。
【請求項17】
請求項11に記載の方法であって、前記複数の前記電極が、ニューラルネットワーク層にニューロンを含む、方法。
【請求項18】
請求項11に記載の方法であって、前記複数の前記電極、およびランダムに配置された同軸ナノワイヤの前記層が、コンダクタンスの行列を形成し、前記コンダクタンスが、勾配降下を実行することによって調整される、方法。
【請求項19】
請求項11に記載の方法であって、前記複数のアナログ入力信号が電圧を含み、前記複数のアナログ出力信号が電流を含む、方法。
【請求項20】
請求項11に記載の方法であって、前記入力セットおよび前記出力セットが、前記複数の電極のうちの前記電極の半数をそれぞれ含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、「Analog Processor for Sparse Vector−Matrix Multiplication」という名称の2018年4月5日出願の米国仮特許出願第62/653,194号に対する優先権の利益を主張するものであり、上記仮特許出願の内容全体を参照により本明細書に援用し、本明細書の一部とみなすべきである。
【0002】
本発明は、概してコンピュータハードウェアに関し、特に、人工知能およびメモリデバイスなどの分野で効率的な行列演算を実行するように設計されたアクセラレータに関する。
【背景技術】
【0003】
行列演算は、様々な現代の計算タスクで使用される。多くの物理的現象を、数値の1つまたは複数の行列によって表して、現代のコンピュータで処理することができる。例えば、静止写真、ビデオ画像フレーム、センサ出力データ、発話の間隔、金融取引データ、自立駆動型センサデータ、および多くの他の物理的物体またはパラメータを、現代のコンピュータにおける処理、操作、および演算に適した数値の1つまたは複数の行列によって表すことができる。汎用の計算ハードウェアを使用して行列演算を実行することができるが、行列データおよび行列演算は、それらの特徴により、汎用コンピュータと比較して、行列ワークロードおよび行列演算をより効率的に処理するためにカスタマイズされたハードウェアを設計するのに良好な候補になり得る。現代の計算タスクで頻繁に使用される行列演算の一形態は、デジタルベクトル−行列乗算である。
【0004】
従来のデジタルベクトル−行列乗算では、入力値のベクトルが、パラメータ値の行列と共に提供される。これら2つの結果の乗算が、単一のベクトル出力をもたらす。入力ベクトルと出力ベクトルとのサイズがどちらもnである場合、この演算の計算複雑性は、O(n
2)としてスケーリングされる。
【0005】
クロスバーアレイおよび関連のハードウェアを用いたベクトル−行列乗算の代替的な形態は、インメモリ・コンピューティングの概念を使用し、データをアレイにロードすることができるスピードによってのみ制限される。これにより、計算時間のO(n)スケーリングがもたらされる。これらのアーキテクチャは、一般にドット積エンジン(DPE)として知られている。しかし、このO(n)スケーリングを維持するために、DPEは、密クロスバー行列でパラメータ値を記憶するためのO(n
2)空間リソースをオンチップで必要とする。したがって、既存のDPEを配備することにより、場合によっては、計算時間効率とオンチップ領域との望ましくないトレードオフが必要とされる。
【0006】
したがって、ベクトル−行列乗算を可能にするデバイスおよびデバイスを操作する方法が必要であり、これはまた、従来のDPEの場合のようにチップ領域について二次関数的にスケーリングするのではなく、計算時間および空間リソースについてO(n)としてスケーリングする。
【発明の概要】
【課題を解決するための手段】
【0007】
本発明の一態様では、疎結合ベクトル−行列乗算のシステムが開示される。このシステムは、シリコン基板と、基板内または基板上に形成された回路層と、回路層に形成された複数の電極と、複数の電極にランダムに形成されたメッシュとを含み、回路層が、複数のデジタル入力信号を受信し、複数のデジタル入力信号を複数のアナログ入力信号に変換し、複数のアナログ入力信号を複数の電極の入力セットに書き込み、複数の電極の出力セットから複数のアナログ出力信号を読み出し、複数のアナログ出力信号を複数のデジタル出力信号に変換し、複数のデジタル出力信号を出力するように構成される。
【0008】
いくつかの実施形態では、メッシュは、二端子不揮発性メモリ(NVM)材料で被包された金属コアを有する同軸ナノワイヤを含む。
【0009】
一実施形態では、不揮発性メモリ材料は、電圧制御された抵抗を含む。
【0010】
別の実施形態では、回路層は、複数のデジタル入力信号を受信するように構成された入力レジスタと、複数のデジタル入力信号を複数のアナログ入力信号に変換するように構成された1つまたは複数のデジタル/アナログ変換器と、複数のアナログ出力信号を複数のデジタル出力信号に変換するように構成された1つまたは複数のアナログ/デジタル変換器と、複数のデジタル出力信号を受信して記憶するように構成された出力レジスタとを含む。
【0011】
一実施形態では、回路層は、複数の電極にバイアス電圧および/または訓練電圧を選択的に提供するように構成された列ドライバおよび行ドライバをさらに含む。
【0012】
別の実施形態では、複数のアナログ入力信号は電圧を含み、複数のアナログ出力信号は電流を含み、またはその逆である。
【0013】
いくつかの実施形態では、複数のアナログ入力信号は電圧を含み、複数のアナログ出力信号は電流を含み、回路層は、複数の電極に結合された複数の増幅器をさらに含み、複数の電極の入力セットに結合された増幅器が、サンプルホールド(SAH)増幅器として構成され、入力セットに複数のアナログ入力信号を書き込むように構成され、複数の電極の出力セットに結合された増幅器が、電流感知増幅器として構成され、複数のアナログ出力信号を読み出すように構成される。
【0014】
一実施形態では、複数の電極が、ニューラルネットワーク層にニューロンを含む。
【0015】
別の実施形態では、複数の電極およびランダムに形成されたメッシュは、コンダクタンスの行列を含む。
【0016】
いくつかの実施形態では、コンダクタンスの行列は、温度駆動型の相変化メモリ機構、ユニポーラ抵抗スイッチング、およびバイポーラメモリスタ機構のうちの1つまたは複数を使用して調整可能である。
【0017】
本発明の別の態様では、疎結合ベクトル−行列乗算の方法が開示される。この方法は、シリコン基板に複数の電極を提供するステップと、複数の電極に、ランダムに配置された同軸ナノワイヤの層を形成するステップと、複数のデジタル入力信号を受信するステップと、複数のデジタル入力信号を複数のアナログ入力信号に変換するステップと、複数のアナログ入力信号を複数の電極の入力セットに書き込むステップと、複数の電極の出力セットから複数のアナログ出力信号を読み出すステップと、複数のアナログ出力信号を複数のデジタル出力信号に変換するステップと、複数のデジタル出力信号を出力するステップとを含む。
【0018】
一実施形態では、同軸ナノワイヤは、二端子不揮発性メモリ(NVM)材料で被包された金属コアを含む。
【0019】
別の実施形態では、NVM材料が、電圧制御された抵抗、メモリスタ、相変化材料(PCM)、および抵抗変化型メモリ(ReRAM)材料のうちの1つまたは複数を含む。
【0020】
いくつかの実施形態では、この方法は、複数の電極にバイアス電圧を選択的に提供して、複数の電極への電圧の書込み、または複数の電極からの電流の読出しをイネーブルにするステップをさらに含む。
【0021】
一実施形態では、電圧制御された抵抗が、複数の電極と、ランダムに配置された同軸ナノワイヤとの交点に形成され、方法は、複数の電極に訓練電圧を選択的に提供して、電圧制御された抵抗を調節することをさらに含む。
【0022】
いくつかの実施形態では、この方法は、複数の電極のうちのどの電極が訓練電圧を印加されるかを示す訓練信号を受信するステップをさらに含む。
【0023】
一実施形態では、複数の電極は、ニューラルネットワーク層にニューロンを含む。
【0024】
別の実施形態では、複数の電極、およびランダムに配置された同軸ナノワイヤの層が、コンダクタンスの行列を形成し、コンダクタンスは、勾配降下を実行することによって調整される。
【0025】
いくつかの実施形態では、複数のアナログ入力信号は電圧を含み、複数のアナログ出力信号は電流を含む。
【0026】
一実施形態では、入力セットおよび出力セットは、複数の電極のうちの電極の半数をそれぞれ含む。
【0027】
以下の図面およびに本明細書における関連の記載は、本発明の特定の実施形態を例示するために提供され、限定するものとは意図されていない。
【図面の簡単な説明】
【0028】
【
図1】
図1は、ベクトル−行列乗算を実行するために使用されるドット積エンジンでの行列を示す図である。
【0029】
【
図2】
図2は、高効率計算ハードウェアを構築する際に利用することができる同軸ナノワイヤを示す図である。
【0030】
【
図3】
図3は、一実施形態による疎結合ベクトル−行列乗算(SVMM)エンジンを示す図である。
【0031】
【
図4】
図4は、
図3の実施形態の回路層および電極の一実施形態を示す図である。
【0032】
【
図5】
図5は、一実施形態による、疎結合ベクトル行列乗算の方法の流れ図を示す図である。
【発明を実施するための形態】
【0033】
いくつかの実施形態の以下の詳細な説明は、本発明の特定の実施形態の様々な説明を提示する。しかし、本発明は、特許請求の範囲によって定義されて網羅される多くの異なる方法で具現化することができる。本明細書では図面を参照し、図面中、同様の参照番号は、同一の要素または機能的に同様の要素を示すことがある。
【0034】
特に定義しない限り、本明細書で使用される全ての用語は、本発明が属する技術分野の当業者によって一般に理解される意味と同一の意味を有する。本明細書での開示全体を通して言及される全ての特許、特許出願、および出版物の全体を参照により援用する。本明細書での用語に関して複数の定義がある場合、本項の定義を優先させる。
【0036】
本明細書で使用するとき、用語「約」は、開示される特定の測定値または大きさの範囲を表す。例えば、語句「約10」は、指定された数字が、1%、3%、5%、7%、10%、15%、または20%だけ変動してもよいことを意味する。したがって、20%の変動範囲では、語句「約10」は、8〜12の範囲を意味する。
【0037】
本開示において用語「1つ」が使用されるとき、特に指示がない限り、「少なくとも1つ」または「1つまたは複数」を意味する。
【0038】
用語「プロセッサ」は、ソフトウェアプログラミング命令をロードして実行するために最適化された様々なマイクロプロセッサ、コントローラ、および/またはハードウェアおよびソフトウェア、またはプロセッサ、例えば画像処理に関連する大容量の行列データを扱うために最適化されたグラフィックスプロセッシングユニット(GPU)を表すことができる。
【0039】
用語「コンダクタンス」は、構成要素が電気を伝導する度合いを表す。コンダクタンスは、構成要素の両端間の電位差に対する、構成要素を通って流れる電流の比として計算することができる。コンダクタンスは、抵抗の逆数であり、ジーメンスの単位で測定される。
【0040】
本明細書で述べる行列乗算エンジンの文脈での用語「密結合」は、行列乗算エンジンの各入力ノードから各出力ノードへの電気的接続または経路が存在するエンジンを表すことができる。
【0041】
本明細書で述べる行列乗算エンジンの文脈での用語「疎結合」は、行列乗算エンジンの入力ノードと出力ノードとの間で実現可能または利用可能な接続が全て形成されているわけではないエンジンを表すことができる。
【0043】
ベクトル−行列乗算の実行に特化したハードウェアの一例は、クロスバーアーキテクチャに基づくドット積エンジンである。
【0044】
図1は、ベクトル−行列乗算を実行するために使用されるドット積エンジンでの行列20の図を示す。行列20は、クロスバーアレイアーキテクチャを利用し、垂直出力電流線と交差する水平入力電圧線を含む。一例として、行列20を使用してニューラルネットワークの文脈でベクトル−行列乗算を実行するとき、入力電圧線/出力電流線は、ニューラルネットワーク層でのニューロンでよい。入力電圧線および出力電流線は、導電性金属材料で作製される。入力電圧線と出力電流線との交点で、不揮発性メモリ(NVM)で作製された材料21が、入力電圧線を、交差する出力電流線に接続する。いくつかの実装形態では、これは、NVMタイプの材料21を挟持するように電極線(水平線および垂直線)をリソグラフィによりパターン形成することによって実現される。入力電圧のベクトルが、入力電圧線に印加される。各列での出力電流は、その列と入力電圧線との各交点からの電流の和によって決定され、各交点に関してキルヒホッフの電流法則(KCL)を適用することによって決定される。行列20は、適切な電圧を印加することによって制御可能な抵抗を有するNVM材料21によって部分的に形成される。したがって、パラメータ値の行列(例えば、ニューラルネットワークの層における重みの行列)は、所望の計算のパラメータ値の行列と一致するように交点抵抗を調節することによって行列20に構成することができる。
【0046】
行列20を利用するドット積エンジンは、密アレイ構造として特徴付けることができ、各入力と各出力とが接続される。とりわけ、行列20を実装するために必要とされるチップ領域は、提供する入力および出力ニューロンの数に対して二次関数的にスケーリングする。言い換えると、入力/出力ニューロンと、行列20を実装するために必要とされるチップ領域とは、異なる割合でスケーリングする。入力/出力ニューロンが、(行列20の縁部で)線形にスケーリングする一方で、それらの追加のニューロンのベクトル−行列乗算を実装するために必要とされるチップ領域は、(行列20の領域で)二次関数的に増大する。
【0048】
新材料の最近の発見により、計算ハードウェア、およびソフトウェアの実行をタスクとして課せられたハードウェアを設計するための手法に革新がもたらされる可能性がある。従来のシリコン材料に基づいてのみ設計された計算ハードウェアは、その性能の物理的限界に近づいているので、新材料のみに基づく設計、またはシリコンベースの回路と組み合わせた新材料に基づく設計が、ハードウェアの効率の向上に有望である。ナノスケール材料、例えばナノワイヤ、および望ましい機械的または電気的特性を有する材料の発見および形成可能性が、行列乗算を実行するためにカスタマイズされて最適化されたハードウェアを含めた計算法およびデバイスの発展および改良に有望である。
【0049】
図2は、以下に述べるように、高効率の計算ハードウェアを構築するときに利用することができる同軸ナノワイヤ10の図を示す。同軸ナノワイヤ10は、二端子不揮発性メモリ(NVM)材料14に被包された金属コア12を含む。同軸ナノワイヤ10は、2つの金属電極16および18に接触する。
【0050】
NVM材料は二端子デバイスであり、その抵抗は、あるしきい値電圧よりも高いまたは低い電圧が2つの端子間に印加されることによって制御される。例えば、電極16が、正のしきい値電圧(SET電圧)よりも高い電圧をNVM材料14に印加するとき、NVM材料14は絶縁破壊を受けるおそれがあり、1つまたは複数の導電性フィラメントがNVM材料14を通して形成され、それによりNVM材料14の電気抵抗を低下させ、その導電性を高める。その後、ここではより高い導電性のNVM材料14および金属コア12によって、電極16と電極18との電気的接続を強化することができる。電極16が、負のしきい値電圧(RESET電圧)よりも低い電圧をNVM材料14に印加するとき、絶縁破壊プロセスが逆となり、フィラメントが溶解し、NVM材料14の電気抵抗が、その元の値または何らかの他のより低い抵抗に戻り、それにより電極16と電極18との電気的接続を弱める。SET電圧よりも高い電圧の場合、NVM材料14は低抵抗状態(LRS)に変換され、RESET電圧よりも低い電圧の場合、NVM材料14は高抵抗状態(HRS)に変換される。言い換えると、同軸ナノワイヤ10は、その接点と電極との交点にメモリデバイスを形成する。界面での抵抗は、前に印加された電圧(前の電圧がSET電圧よりも高かった、またはRESET電圧よりも低かったかどうか)に応じて決まる。
【0051】
NVM材料14の例としては、メモリスタ、相変化材料(PCM)、抵抗変化型メモリ(ReRAM)材料、または抵抗が電圧制御される任意の他の材料、例えば1つまたは複数のしきい値電圧に対する印加電圧に応答して抵抗を保つ任意の材料を含む。
【0053】
同軸ナノワイヤ10の適用は、行列乗算を実行するように設計されたハードウェアの文脈で考察することができる。行列乗算は、多くの現代の計算タスク、例えば人工知能(AI)、機械学習、ニューラルネットワーク、ニューラルネットワーク訓練、様々な変換(例えば離散フーリエ変換)などで使用される。行列乗算を効率的に実行することができるハードウェアを作製するために、同軸ナノワイヤ10のシェルの不揮発性であり制御可能なメモリ特性を活用することができる。現代の計算タスクで使用される行列乗算の一形態は、デジタルベクトル−行列乗算であり、入力値のベクトルにパラメータ値の行列が乗算される。この乗算により、出力ベクトルが得られる。パラメータ値の行列を作成するために同軸ナノワイヤ10を使用することができる。パラメータ値は、様々な計算タスクで使用される任意のパラメータ値、例えばニューラルネットワークの層での重みでよい。入力値のベクトルに重みの行列を乗算して、層の出力ベクトルを生成することができる。
【0054】
ベクトル−行列乗算を実行することができる計算ハードウェアを設計するために、デジタル入力値をアナログ入力電圧のベクトルで表すことができ、コンダクタンスの行列は、パラメータ値の行列を表すことができる。オームの法則の式(I=VG、Iは電流、Vは電圧、Gはコンダクタンス)を使用して、電流のアナログ出力ベクトルを得ることができ、これは、入力値とパラメータ値の行列との乗算の出力となる。アナログ出力ベクトルは、デジタル出力値に変換して出力することができる。
【0055】
図1のドット積エンジンと比較して、ベクトル−行列乗算を実行するための代替エンジンは、チップ領域にわたって分散されて、同軸ナノワイヤ10と疎に接続された電極を使用することができ、電極は、
図1のドット積エンジンの場合のようにクロスバーアレイの外側縁のみではなく、電極が存在するチップ領域全体にわたって入力および出力ノードを分散させることができる。同軸ナノワイヤ10と疎に接続された分散された電極のネットワークは、コンダクタンス行列を作成することができ、コンダクタンス行列は、所望の計算においてパラメータ行列として使用することができる。電極のサブセットを使用して入力電圧のベクトルを提供することができ、電極の補完サブセットをプローブして、出力電流のベクトルを読み出すことができる。電流の出力ベクトルは、オームの法則に従って、入力電圧のベクトルとコンダクタンスの行列とのベクトル−行列乗算により得られる。
【0056】
図3は、疎結合ベクトル−行列乗算(SVMM)エンジン22の図を示す。SVMMエンジン22は、シリコン基板24と、回路層26内の制御回路構成、例えば補完金属酸化膜半導体(CMOS)層と、電極のグリッド28と、グリッド28の上に堆積された同軸ナノワイヤ10のランダムに形成されたメッシュ30とを含む。メッシュ30は、電極グリッド28の上方に置かれ、または電極グリッド28の上に形成され、メッシュ30と電極グリッド28の上部との物理的接触を提供する。代替として、グリッド28の電極を、金属のピラーとしてメッシュ30を通して成長させることができる。グリッド28の電極の上にランダムに堆積された同軸ナノワイヤ10は、それらが接触する電極間に電気的接続を提供することができる。その結果、同軸ナノワイヤ10は、グリッド28の電極を疎に接続する。電極間の電気的接続の強度は、同軸ナノワイヤ10の抵抗の増減に基づいて変更され得る。
【0057】
SVMMエンジン22の訓練モードにおいて、回路層26での回路構成を使用して、グリッド28の電極を介して、メッシュ30の同軸ナノワイヤ10の一部または全てにSET電圧またはRESET電圧を印加することができる。メッシュ30の同軸ナノワイヤ10の電気抵抗は、グリッド28の電極を介して受け取る電圧に応じて増加または減少することができ、それにより、グリッド28の電極間の電気的接続を強めたり弱めたりすることができる。メッシュ30の同軸ナノワイヤ10はランダムに形成されるので、NVMタイプの材料およびナノワイヤ10の金属コアを通じて、グリッド28の電極間のランダムな電気的接続を生成することができる。したがって、グリッド28の電極は、メッシュ30の同軸ナノワイヤ10を介して疎に接続される。
【0058】
メッシュ30と疎に接続されたグリッド28は、コンダクタンスの疎に接続された行列を形成し、ベクトル−行列乗算のためにこれを使用することができる。入力電圧のベクトルは、グリッド28の電極のサブセット(入力電極)に印加することができ、残りの電極(出力電極)を使用して電流の出力ベクトルを読み出すことができる。この構成では、電流の出力ベクトルは、オームの法則に従って、入力電圧のベクトルと、グリッド28によって形成されたコンダクタンスの疎に接続された行列とのベクトル−行列乗算の出力となる。
【0059】
様々な用途において、グリッド28の電極とメッシュ30との交点に形成される抵抗は、コンダクタンスの有用な行列が形成されるまで、入力/出力対の既知の組に調整または当てはめを行うことによって調節することができる。言い換えると、SVMMエンジン22によって形成されるコンダクタンスの行列は、メッシュ30の同軸ナノワイヤ10を介するグリッド28の電極間のランダムな接続によって形成された未知のまたはランダムな抵抗から作製されるが、コンダクタンスは、SET電圧および/またはRESET電圧の組合せをグリッド28の電極に印加し、出力を観察することによって調節することができる。電極−メッシュ界面の抵抗を調節すべき方向を決定するために、様々な当てはめ技法およびアルゴリズムを使用してよい。
【0060】
グリッド28とメッシュ30とによって形成されたコンダクタンスの行列に対応する界面抵抗は、様々な手段によって調節することができ、例えば、グリッド28の電極での電圧パルスを使用して、温度駆動型の相変化メモリ機構、ユニポーラ抵抗スイッチング、またはバイポーラメモリスタ機構に従って抵抗を切り替えるまたは変えることによって調節することができる。これらの技法を使用して、例えば連想メモリ(CAM)、ニューラルネットワーク層、またはより汎用のメモリインターコネクトとして、コンダクタンス行列の値をタスクに合わせて調整することができる。SVMMエンジン22に関連して使用することができるアルゴリズムの例は、2018年5月21日出願の「DEEP LEARNING IN BIPARTITE MEMRISTIVE NETWORKS」という名称の国際特許出願PCT/US2018/033669号で見ることができる。一実施形態では、勾配降下学習を使用して、SVMMエンジン22のコンダクタンス行列を調整することができる。
【0061】
グリッド28の形状、数、および幾何学的特徴は、実装形態に基づいて変更することができる。いくつかの実施形態では、電極は、グリッド形式である必要はない。様々な設計および実装形態を考慮して、記載する技術の精神から逸脱することなく、SVMMエンジン22の代替の幾何学的特徴を定めてよい。
【0062】
図4は、回路層26とグリッド28の電極との実施形態の図を示す。回路層26は、CMOS層として実装することができ、いくつかの構成要素、例えば、入力レジスタ32、出力レジスタ34、列ドライバ36、行ドライバ38、1つまたは複数のデジタル/アナログ変換器(DAC)40、1つまたは複数のアナログ/デジタル変換器(ADC)42、増幅器46、スイッチ44、ならびに、回路層26にSVMMエンジン22の機能を実装するために使用され得る他の構成要素および回路構成を含むことができる。例示の目的でグリッド28の電極を示すが、いくつかの実施形態では、グリッド28の電極は、回路層26の上方に成長した金属ピラーであり、回路層26の一部でなくてもよい。メッシュ30は、
図4に示されていないが、
図3に関連して述べたように、グリッド28の電極の上方に作られて、それらの電極間のランダムな電気的接続を提供する。
【0063】
グリッド28の電極は、列ドライバ36と行ドライバ38とに接続することができる。列ドライバ36および行ドライバ38は、グリッド28の電極に様々な電圧を提供するための回路構成(例えば、論理ゲート、高電力および低電力供給レールなど)を含む。一実施形態では、行ドライバ36および列ドライバ38は、RESET電圧よりも高くSET電圧よりも低い範囲内で1つまたは複数のバイアス電圧を提供し、グリッド28の1つまたは複数の電極への電圧の書込み、および/またはそれらの電極からの電流の読出しをイネーブルにすることができる。列ドライバ36および行ドライバ38は、グリッド28の1つまたは複数の電極に対する訓練信号を受信することができる。訓練信号がONの場合、列ドライバ36および/または行ドライバ38は、SET電圧よりも高い、またはRESET電圧よりも低い訓練電圧パルスを提供し、電極−メッシュ界面での抵抗を調節することができる。グリッド28内の1つまたは複数の電極に関する訓練信号がOFFの場合、列ドライバ36および/または行ドライバ38は、SET電圧よりも高い電圧、またはRESET電圧よりも低い電圧を印加しない。
【0064】
いくつかの実施形態では、SVMMエンジン22は、仮想接地(mid−supply)で動作し、訓練信号がONであるとき、一連のパルス電圧は、グリッド28の1つまたは複数の電極を高電力供給レール(Vdd)または低電力供給レール(接地)に接続するトランジスタゲートに送られる。列ドライバ36および行ドライバ38は、グリッド28の電極とメッシュ30との界面での抵抗が移動されるべき方向(例えば、高くするまたは低くする)を示す1つまたは複数の制御信号を受信することができる。
【0065】
回路層26は、グリッド28の各電極を個別にアドレス指定することを可能にするように設計することができ、または効率化の目的で、グリッド28の複数の電極を並列でアドレス指定するように、かつ回路層26およびその構成要素によって費やされるオンチップ領域を節約するように設計することができる。
【0066】
SVMMエンジン22は、SVMMエンジン22が使用される用途に応じて、様々な信号源からデジタル入力信号を(例えば、所定の間隔で、間断的に、またはランダムに)受信することができる。デジタル入力信号は、センサ入力データ、物理的現象を表す数学的画像パラメータ、人工知能入力データ、訓練入力データ、静止写真、ビデオ画像のフレーム、発話の間隔、およびベクトル−行列乗算の目的での任意の他の入力信号を含むことができる。
【0067】
1つまたは複数のDAC40を使用して、デジタル入力信号をアナログ電圧に変換することができ、このアナログ電圧をグリッド28の電極に供給することができる。1つまたは複数のADC42は、アナログ出力電流をデジタル信号に変換することができ、このデジタル信号を出力レジスタ34に出力し、さらなる処理または他のタスクのためにオフチップで伝送することができる。
【0068】
SVMMエンジン22は、エッジノードのみが入力または出力ノードであり得るデバイスとは対照的に、グリッド28の各電極が入力または出力ノードであり得るように構成することができる。効率化の目的で、グリッド28の複数の電極を入力電極として並列に設定することができ、残りの電極は出力電極として読み出すことができる。回路層26は、スイッチ44と共に設計することができ、スイッチ44は、グリッド28の電極をDAC40に接続することができ、入力信号を受信するために電極を利用可能にする。スイッチ44をトグルして、グリッド28の電極をADC42に接続し、電極を出力電極として利用可能にすることができる。効率化の目的で、グリッド28の複数の電極(例えば、それらのうちの1つまたは複数の列)を入力電極として使用することができる(例えば、スイッチ44をDAC40に適切に位置決めすることによって、または当業者に知られている他の技法によって)。グリッド28の残りの電極(例えば残りの列)を出力電極として使用することができる。いくつかの実施形態では、入力電極と出力電極との組のサイズは、(例えばスイッチ44の代わりに永続的な接続によって)永続性のあるものでも、(例えばスイッチ44を個々にまたはバッチで制御する入力/出力セレクタ信号によって)融通性のあるものでも、永続性と融通性との組合せでもよい。
【0069】
例示の目的で、一例として、回路層26は、入力信号用に使用される列AおよびBと、出力信号の読出し用に使用される列CおよびDとで構成される。グリッド28の各電極は、回路層26の増幅器46に接続される。増幅器46は、その対応する電極が入力ノードとなる場合、バッファすなわちサンプルホールド(SAH)増幅器として構成することができる。また、増幅器46はその対応する電極が出力ノードとなる場合、電流出力を感知するためにトランスインピーダンス増幅器として構成することができる。
【0070】
一実施形態では、コントローラ48は、入力または出力増幅器として増幅器46を個々にまたはバッチで構成することができる。コントローラ48は、回路層26内の回路の他の機能を調整することもでき、例えば、入力/出力セレクタ信号を介するスイッチ44の制御、増幅器46の構成、ならびに上述したような列ドライバ36および行ドライバ38に関連する様々な機能を調整することもできる。コントローラ48は、SVMMエンジン22の様々な動作および構成要素のタイミング、例えば入力レジスタ32からグリッド28の入力電極に入力ベクトルを供給するタイミング、グリッド28の出力電極から出力電流を読み出すタイミング、ならびに他の機能および構成要素のタイミングを管理することもできる。コントローラ48は、その機能を実施するために、短期メモリおよび/または長期メモリ、ストレージ、1つまたは複数のプロセッサ、クロック信号、および他の構成要素などの回路構成を含むことができる。
【0072】
動作モードに応じて、グリッド28の電極に対して様々な操作を実施することができる。1つのモードでは、1つまたは複数の電極を訓練モードにすることができ、電極−メッシュ界面での抵抗を調節することができる。ニューラルネットワーク訓練などいくつかの用途では、コンダクタンスの有効な行列を構成するために、ニューラルネットワークでの訓練アルゴリズム(例えば勾配降下)に基づいて界面抵抗を調節することができるので、用語「訓練」が使用される。そのような操作中、電極−メッシュ界面での個々の抵抗は知られていなくてもよく、それにもかかわらず、訓練アルゴリズムを使用して入力/出力対を観察し電極−メッシュ界面の集合の抵抗によってコンダクタンスの有効な行列が作成されるまで、抵抗を上下に調節することができる。
【0073】
別のモードでは、1つまたは複数の電極はWRITEモードでよく、適当量の電圧バイアスが、列ドライバ36および/または行ドライバ38から印加され、入力電圧値が、1つまたは複数の対応するDAC40を介して1つまたは複数の電極で供給される。
【0074】
別のモードでは、1つまたは複数の電極はREADモードでよく、適当量の電圧バイアスが、列ドライバ36および/または行ドライバ38から印加され、出力電流が、1つまたは複数の対応するADC42を介して1つまたは複数の電極から読み出される。
【0076】
ここで、SVMMエンジン22の一例および構成を、
図4に関連して述べる。列AおよびBは入力電極として割り当てられ、列CおよびDは出力電極として割り当てられる。列AおよびBでの増幅器46は、SAH増幅器として構成され、列CおよびDでの増幅器46は、電流を感知することが可能なトランスインピーダンス増幅器として構成される。列AおよびBでのスイッチ44は、列AおよびBでの増幅器46をDAC40に接続する。列CおよびDでのスイッチ44は、列CおよびDでの増幅器46を列CおよびDのADC42に接続する。列ドライバ36および行ドライバ38は、適切なバイアス電圧を電極に供給して、WRITEモードでは列AおよびBでの電極をイネーブルにし、READモードでは列CおよびDでの電極をイネーブルにする。
【0077】
1つまたは複数のDAC40は、入力レジスタ32で受信されたデジタル入力信号の第1のベクトルをアナログ信号に変換し、それらのアナログ信号を列Aでの増幅器46に設定する。SAH増幅器として構成されている列Aでの増幅器46は、列Aでの電極で入力電圧を保持する。次に、1つまたは複数のDAC40は、入力レジスタ32で受信されたデジタル入力信号の第2のベクトルをアナログ信号に変換し、それらのアナログ信号を列Bでの増幅器46に設定する。SAH増幅器として構成されている列Bでの増幅器46は、列Bでの電極で入力電圧を保持する。追加の列が入力用に使用される場合、入力列が供給されるまで、このプロセスを続行することができる。
【0078】
入力電圧が列AおよびBでの電極に書き込まれるとき、コントローラ48は、列CおよびDでのADC42で走査して出力電流を読み出し、結果を出力レジスタ34に出力し始めることができる。
【0079】
列ドライバ36および行ドライバ38が1つまたは複数の電極を訓練モードにし、それらの電極にVddまたは接地電圧を印加し、電極−メッシュ界面での抵抗を調節するステップを追加して、上記のプロセスを繰り返すことができる。本実装形態では、VddはSET電圧よりも高く、接地電圧はRESET電圧よりも低い。
【0080】
SVMMエンジン22およびその回路層26を構成することができ、ここでは、個々の電極を入力/出力ノードとして使用することができる。一例として、グリッド28での電極のうちの半数を入力電極として使用することができ、グリッド28での電極のうちの半数を出力電極として使用することができる。用途に応じて、入力または出力としての電極の他の分割法も可能である。DAC40は、バッファまたはSAH増幅器として構成される増幅器46を介して入力電極に入力電圧(V1)を書き込み、したがって電極にV1が保持される。次いで、DAC40は、次の入力電極の増幅器46を介して次の入力電極に次の入力電圧(V2)を書き込む。最後の入力電極が入力電圧(Vm)を受け取るまでプロセスが続行され、ここで、mは、グリッド28での電極の半数である。ここまでに、乗算は既に行われている。電圧に電極−メッシュ界面抵抗を乗算して、オームの法則に従って、出力電極で出力電流を生成する。
【0081】
入力電極への電圧の書込みが完了すると、コントローラ48は、出力ノードを通って走査し、電流感知増幅器として構成される増幅器46を介して第1の出力電流(I1)を読み出し、ADC42を使用して出力電流I1をデジタル出力に変換し、出力レジスタ34をアップデートすることができる。次いで、次の出力電流I2が、電流感知増幅器として構成された第2の出力電極の増幅器46を介して第2の出力電極から読み出される。最後の出力電極の出力電流が読み出されるまでこのプロセスが続行され、出力レジスタ34がアップデートされる。ノード(または、SVMMエンジン22がニューラルネットワークで使用される場合にはニューロン)は、1回通過される。
【0083】
SVMMエンジン22は、多くの用途で効果的に使用することができ、SVMMエンジン22のコンダクタンスの行列を、所望の機能、例えばニューラルネットワークおよび他の文脈での活性化機能を最適化するように様々な方向に調節することができる。他の計算タスクも、SVMMエンジン22を利用することができる。例として様々な画像処理タスクが挙げられ、ここで、画像は、物理的現象、例えば発話、天気、温度、または他のデータ構造、例えば、金融データ、レーダデータ、センサデータ、静止写真、ビデオ画像フレーム、および他の用途に存在し得るようなデータ構造を表す行列データである。
【0084】
コンダクタンスの疎結合ネットワークを利用するSVMMエンジン22は、コンダクタンスの密結合ネットワークを使用するデバイスと比較して、実質的な性能の利点を提供する。疎結合ネットワークは、人間の脳が機能する方法に類似している。疎結合ネットワークでは、あらゆる情報ノードが、他の全ての情報ノードに接続されているとは限らない。いくつかの情報ノードのみが接続されている。疎結合性は、全ての情報ノードが接続されている密結合ネットワークなどのより高価なネットワークと比較して、領域およびリソースを経済的に使用して、秀でた計算能力を実現可能にすると考えられる。さらに、密結合ネットワークを利用するドット積エンジンは、コンダクタンス行列の抵抗を正確に制御する必要性、およびナノスケール材料の電気的または機械的制御の難しさにより、高価であり、設計および動作が複雑であることが実証されている。
【0085】
さらに、SVMMエンジン22のコンダクタンスの疎行列は、行列乗算のために密結合ネットワークを利用するデバイスと比較して、より高い性能対面積比を提供する。SVMMエンジン22の疎結合ネットワークでは、入力および出力ノード(またはニューラルネットワークの文脈ではニューロン)は、エンジンのコンダクタンス行列の領域にわたって存在することができる。対照的に、密結合ネットワークでの入力および出力ノード(またはニューロン)は、ネットワークの外側縁にのみ存在する。これは、密結合ネットワークを使用するデバイスと比較して、SVMMエンジン22に二次関数的スケーリングの利点をもたらす。ニューロンの数が増えるとき、SVMMエンジン22は、ニューロンの同じ密度を維持することができるが、密結合ネットワークを使用するデバイスは密度を失い始める。
【0086】
ハードウェアに関して、SVMMエンジン22は、コンピュータシステム、グラフィックスプロセッシングユニット(GPU)、ハードウェアアクセラレータの一部として、または人工知能プロセッサ、機械学習プロセッサ、メモリインターコネクト、もしくは行列演算が使用される他のデバイスの一部として実装することができる。
【0087】
図5は、一実施形態による疎結合ベクトル−行列乗算の方法50の流れ図を示す。この方法は、
図3および4の実施形態を使用するハードウェアで実施することができる。方法50は、ステップ52から始まる。この方法はステップ54に進み、シリコン基板に複数の電極を提供する。次いで、この方法は、ステップ56に進み、ランダムに配置された同軸ナノワイヤの層を複数の電極に形成する。次いで、この方法は、ステップ58に進み、複数のデジタル入力信号を受信する。この方法は、ステップ60に進み、複数のデジタル入力信号を複数のアナログ入力信号に変換する。次いで、この方法は、ステップ62に進み、複数のアナログ入力信号を複数の電極の入力セットに書き込む。次いで、この方法は、ステップ64に進み、複数の電極の出力セットから複数のアナログ出力信号を読み出す。次いで、この方法は、ステップ66に進み、複数のアナログ出力信号を複数のデジタル出力信号に変換する。次いで、この方法は、ステップ68に進み、複数のデジタル出力信号を出力する。この方法は、ステップ70で終了する。
【0088】
多数の電気パラメータの観点から電気的特性を定義することができることを当業者は理解することができる。例えば、上述したシステムおよび方法は、コンダクタンス、電圧、および電流に関して示して説明してきたが、これらのパラメータは関連しており、当業者は、コンダクタンスの代わりに抵抗、電圧の代わりに電流、および電流の代わりに電圧に関して、上記の同じシステムを容易に説明もしくは設計することができ、または同じ方法を実施することができる。例えば、電流および電圧はオームの法則に関係するので、電圧の代わりに電流を使用して電極に書き込み、電圧を出力で読み出すことができる。
【国際調査報告】