(57)【要約】      （修正有）【課題】大規模アレイでの実装に適し、柔軟かつ大容量でエネルギー効率がよい積和演算のための構造を提供する。【解決手段】インメモリ積和演算機能用回路は、複数のＮＡＮＤブロックを含む。ＮＡＮＤブロックは、Ｂ列およびＳ行、およびＬ個のレベルのメモリセルを含むＮＡＮＤストリングのアレイを有する。Ｗ個のワード線は、Ｌ個のレベルの各レベルのＢ×Ｓ個のメモリセルに結合される。ソース線はブロック内のＢ×Ｓ個のＮＡＮＤストリングに結合される。ストリング選択線ドライバは、複数のストリング選択線上のＮＡＮＤストリングを対応するビット線に同時に接続するために電圧を供給する。ワード線ドライバは、選択されたレベルの１または複数のワード線にワード線電圧を印加するように結合される。複数のビット線ドライバは、入力データを同時にＢ個のビット線に印加する。電流検出回路はソース線に結合される。【選択図】図２
2020098658.tif 000002
【特許請求の範囲】
【請求項１】
対応するブロックソース線を有する複数のＮＡＮＤブロックであって、前記複数のＮＡＮＤブロック内の特定のＮＡＮＤブロックは、複数のビット線の組と、前記特定のブロックの対応する前記ブロックソース線との間に配置されたＮＡＮＤストリングのブロックを含む前記複数のＮＡＮＤブロックと、
前記複数のＮＡＮＤブロックに結合された前記複数のビット線の組に入力信号を印加する入力回路と、
ブロックソース線に結合された検出回路であって、前記ビット線の組から選択されたＮＡＮＤブロック内の前記ＮＡＮＤストリングのブロックを通る前記選択されたＮＡＮＤブロック内の前記ブロックソース線上の電流の合計を検出する前記検出回路と、
を有する回路。
【請求項２】
前記複数のビット線の組を含む前記複数のＮＡＮＤブロックに結合された複数のビット線を含み、
前記入力回路は、前記複数のビット線内のビット線に結合されたページバッファを含む、
請求項１に記載の回路。
【請求項３】
前記複数のビット線の中のそれぞれのビット線に結合されたＮＡＮＤストリングをプログラムするための手段を含む、請求項２に記載の回路。
【請求項４】
前記複数のＮＡＮＤブロック内のＮＡＮＤブロックは、
その複数のビットラインの組とそのブロックソース線との間の複数のＮＡＮＤストリングであって、前記ＮＡＮＤストリングを、前記複数のビット線の組内の対応するビット線と、直列に配置された複数のメモリセルと、に選択的に接続するストリング選択スイッチを有し、当該複数のビット線の組内のビット線は、前記複数のＮＡＮＤストリング内のＮＡＮＤストリングの組のそれぞれに結合する前記ＮＡＮＤストリングと、
前記ＮＡＮＤブロックの対応するワード線レベル内のメモリセルのゲートに結合されたワード線と、
前記複数のＮＡＮＤストリング内のＮＡＮＤストリングの対応する行においてストリング選択スイッチのゲートに結合されたストリング選択線と、
を有する請求項１〜３いずれか一項に記載の回路。
【請求項５】
前記ＮＡＮＤブロックについて、前記複数のビット線の組はＢ個のメンバーを含み、前記ＮＡＮＤブロックは少なくともＳ個のメンバーを有するストリング選択線の組を含み、
ストリング選択ドライバは、前記ＮＡＮＤブロックの列内のＳ個のＮＡＮＤストリングを、前記複数のビット線の組のそれぞれに接続するように動作可能であり、
前記ＮＡＮＤブロックの前記ソース線上の電流は、Ｂ個の積項の合計であり、各積項は、前記ビット線の組内の１の前記ビット線上の入力信号と、当該１のビット線に接続されたＳ個のＮＡＮＤストリングのコンダクタンスの積の関数である請求項４に記載の回路。
【請求項６】
前記入力回路は、前記所定のＮＡＮＤブロックのビット線に並列に入力データを印加する１組のビット線ドライバを含み、
前記検出回路は、対応するソース線上の出力データを検出するマルチビットセンス増幅器を含む請求項１〜５いずれか一項に記載の回路。
【請求項７】
前記複数のＮＡＮＤブロック内の各ＮＡＮＤブロックは、計算モード入力および出力を有し、それぞれが記憶モード入力および出力を有し、
さらに、前記複数のＮＡＮＤブロックの前記計算モード入力および出力、および記憶モード入力および出力に接続されるバスシステムを有する請求項１〜６いずれか一項に記載の回路。
【請求項８】
前記複数のＮＡＮＤブロック内の所定のＮＡＮＤブロックの記憶モード入力は、前記所定のＮＡＮＤブロックのビット線を介してデータを読み書きするページバッファ回路を含む請求項７に記載の回路。
【請求項９】
前記複数のＮＡＮＤブロック内のブロックはそれぞれ、
Ｂ列およびＳ行のＮＡＮＤストリングと、Ｌ個のレベルのメモリセルと、を含むＢ×Ｓ個のＮＡＮＤストリングであって、Ｂ、ＳおよびＬは整数であり、Ｌ個のレベルの各レベルにおいて直列なＬ個のメモリセルを含む前記ＮＡＮＤストリングと、
Ｂ個のビット線の組の対応するビット線に結合されるＢ列の各列のＳ個のＮＡＮＤストリングの組と、
Ｓ個のストリング選択線の組内の対応するストリング選択線に結合されたＳ行内の各行におけるＢ個のＮＡＮＤストリングの組内のストリング選択スイッチと、
前記Ｌ個のレベル内の対応する１または複数のワード線に動作可能に結合された前記Ｌ個のレベルの各レベルにおけるＢ×Ｓ個のメモリセルの組と、
前記ブロック内の前記Ｂ×Ｓ個のＮＡＮＤストリングに動作可能に結合されたソース線と、
を有する請求項１〜８いずれか一項に記載の回路。
【請求項１０】
パイプライン方式で前記複数のＮＡＮＤブロックを動作させるコントローラを含む、請求項１〜９いずれか一項に記載の回路。
【請求項１１】
Ｂ列およびＳ行のＮＡＮＤストリングと、Ｌ個のレベルのメモリセルとを含み、Ｂ、ＳおよびＬは整数であり、前記ＮＡＮＤストリングは、前記Ｌ個のレベルの各レベルにおいて直列なＬ個のメモリセルを含む、ＮＡＮＤストリングのブロックと、
Ｂ列の各列のＳ個のＮＡＮＤストリングに結合されたＢ個のビット線と、
Ｓ行内の各行のＢ個のＮＡＮＤストリングに結合されたＳ個のストリング選択線と、
Ｌ個のレベルの各レベルのＢ×Ｓ個のメモリセルに動作可能に結合されたＷ個のワード線と、
前記ブロック内のＮＡＮＤストリングに動作可能に結合されたソース線と、
複数のストリング選択線上のＮＡＮＤストリングを対応するビット線に同時に接続するストリング選択電圧を供給するためにＳ個のストリング選択線に結合されたストリング選択線ドライバと、
選択されたレベルの１または複数のワード線にワード線電圧を印加するように結合されたワード線ドライバと、
入力データ信号を複数の前記Ｂ個のビット線に印加するために前記Ｂ個のビット線内のビット線に結合された複数のビット線ドライバと、
前記ソース線に結合された電流検出回路と、
を有する回路。
【請求項１２】
プログラムモードで前記ブロック内の前記ＮＡＮＤストリングをプログラムするために入力データ信号を印加するために、前記Ｂ個のビット線内のビット線に動作可能に結合されたページバッファを含む、請求項１１に記載の回路。
【請求項１３】
ビット線ＢＬ（ｉ）に結合されたストリング選択線ＳＳＬ（ｊ）上の、ＮＡＮＤストリングの列Ｃ（ｉ）のＮＡＮＤブロックのレベルＬ（ｋ）のセル内に積項Ｘ（ｉ）×Ｗ（ｉ）の係数データｗ（ｉ、ｊ）を、ｉは１からＢ、ｊは１からＳ、ｋは選択されたワード線レベルに等しい場合に、記憶し、
入力Ｘ（ｉ）をビット線ＢＬ（１）〜ＢＬ（Ｂ）に、ストリング選択電圧をストリング選択線ＳＳＬ（１）〜ＳＳＬ（Ｓ）に、ワード線計算電圧を選択されたワード線レベルのセルに、同時に印加し、
ＮＡＮＤブロックのためのソース線上のビット線ＢＬ（１）〜ＢＬ（Ｂ）に接続されたＮＡＮＤストリングの列Ｃ（１）〜Ｃ（Ｂ）を通る電流を組み合わせ、
積和を表す出力信号を生成するためにソース線上の電流の大きさを検出する、
積和のインメモリ計算方法。
【請求項１４】
集積回路内の複数の積和アクセラレータタイルを含み、
各タイルは、
それぞれが入力および出力を有する複数のＮＡＮＤブロックと、
入力および出力に接続されたデータ経路と、
前記複数の積和演算アクセラレータタイルの前記データ経路に結合された前記集積回路上のタイル間バスシステムと、
前記タイル間バスシステムに結合された集積回路上の入力／出力回路と、
を有する回路。
【請求項１５】
前記複数のタイル間のデータフローを制御するシーケンサロジックを含む、請求項１４に記載の回路。
【請求項１６】
各タイルは、
前記複数のＮＡＮＤブロックに結合された複数のビット線と、および前記複数のＮＡＮＤブロックに結合された複数のソース線と、を含み、
前記複数のビット線内のビット線に結合された入力ドライバと、
前記複数のソース線内のソース線に結合されたセンス増幅器と、
前記複数のビット線内のビット線に結合されたページバッファと、
を有する請求項１４又は１５に記載の回路。
【請求項１７】
各タイルは、
前記複数のＮＡＮＤブロックに接続された複数のビット線と、前記複数のＮＡＮＤブロックに接続された複数のソース線とを含み、前記複数のビット線内の複数のビット線の組は、前記複数のＮＡＮＤブロックのそれぞれに結合され、
前記複数のＮＡＮＤブロック内のＮＡＮＤブロックは、
その複数のビット線の組とそのソース線との間の複数のＮＡＮＤストリングであって、当該複数のビット線の組内の対応するビット線と、直列に配置されたメモリセルと、にＮＡＮＤストリングを選択的に接続するストリング選択セルを有するＮＡＮＤストリングを有し、当該複数のビット線の組のビット線は、前記複数のＮＡＮＤストリングのＮＡＮＤストリングの組のそれぞれに結合され、
前記複数のＮＡＮＤブロック内のＮＡＮＤブロックは、
前記ＮＡＮＤブロックの対応するワード線レベル内のメモリセルのゲートに結合されたワード線と、
前記複数のＮＡＮＤストリング内のＮＡＮＤストリングの対応する行内のストリング選択セルのゲートに結合されたストリング選択線と、
を有する請求項１４又は１５に記載の回路。
【請求項１８】
前記ＮＡＮＤブロックについて、前記複数のビット線の組はＢ個のメンバーを含み、前記ＮＡＮＤブロックは少なくともＳ個のメンバーを有するストリング選択線の組を含み、
ストリング選択ドライバは、前記ＮＡＮＤブロックの列内のＳ個のＮＡＮＤストリングを、前記複数のビット線の組内のビット線のそれぞれに接続するように動作可能であり、
前記ソース線上の電流は、Ｂ個の積の合計であり、各積項は、前記ビット線の組内の１の前記ビット線上の入力信号と、当該１のビット線に接続されたＳ個のＮＡＮＤストリングのコンダクタンスの積の関数である請求項１７に記載の回路。
【請求項１９】
各タイル内の前記複数のＮＡＮＤブロック内の所定のＮＡＮＤブロックの入力は、前記所定のＮＡＮＤブロックのビット線に並列に入力データを印加する１組のビット線ドライバを含み、
前記複数のＮＡＮＤブロック内の所定のＮＡＮＤブロックの出力は、前記所定のＮＡＮＤブロックのソース線上の出力データを検出するマルチビットセンス増幅器を含む、請求項１４〜１８いずれか一項に記載の回路。
【請求項２０】
各タイルについて、前記複数のＮＡＮＤブロック内のブロックはそれぞれ、
Ｂ列およびＳ行のＮＡＮＤストリングと、Ｌ個のレベルのメモリセルと、を含むＢ×Ｓ個のＮＡＮＤストリングであって、Ｂ、ＳおよびＬは整数であり、Ｌ個のレベルの各レベルにおいて直列なＬ個のメモリセルを含む前記ＮＡＮＤストリングと、
Ｂ個のビット線の組の対応するビット線に結合されるＢ列の各列のＳ個のＮＡＮＤストリングの組と、
Ｓ個のストリング選択線の組内の対応するストリング選択線に結合されたＳ行内の各行におけるＢ個のＮＡＮＤストリングの組内のストリング選択スイッチと、
前記Ｌ個のレベル内の対応する１または複数のワード線に動作可能に結合された前記Ｌ個のレベルの各レベルにおけるＢ×Ｓ個のメモリセルの組と、
前記ブロック内の前記Ｂ×Ｓ個のＮＡＮＤストリングに動作可能に結合されたソース線と、
を有する請求項１４〜１９いずれか一項に記載の回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は積和演算を実行するために使用することができる回路に関する。
【背景技術】
【０００２】
線形代数に基づくいくつかの種類の計算に使用される神経形態学的コンピューティングシステム、機械学習システムおよび回路では、積和関数が重要な要素となり得る。関数は、以下のように表し得る。
【数１】
2020098658.tif 000003
【０００３】
この数式では、各積項は、変数入力Ｘｉと重みＷｉの積である。重みＷｉは、例えば変数入力Ｘｉの係数に対応して、項間で変化し得る。
【０００４】
積和関数は、アレイのセルの電気的特性が機能を生じさせるクロスポイントアレイアーキテクチャを使用する回路動作として実現することができる。
【０００５】
高速実装のためには、多くの演算が並列に実行され得るように、または非常に大きな積和列が実行され得るように、非常に大きなアレイを有することが望ましい。システムによっては、非常に多数の入力および出力が存在し得るため、合計の消費電流が大きくなり得る。
【０００６】
また、人工知能ＡＩ機能は、マルチビット重みを用いた積和演算ＭＡＣステップ（すなわち積和）を含む大規模な行列の積を含み、非常に高密度のメモリ、および広帯域幅のデータ通信を必要し得る。
【０００７】
ＡＩハードウェアにおける近年の進歩は、高性能かつ低電力の解決策に関するものである。これらの需要を満たすために、「インメモリ計算」または「プロセッサインメモリ」の実装が提案されている。これらの技術は、電力と待ち時間を節約するためにデータ移動要件を軽減し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
大規模アレイでの実装に適し、柔軟かつ大容量でエネルギー効率がよい積和演算のための構造を提供することが望まれている。
【課題を解決するための手段】
【０００９】
大規模な積和演算のための積和演算技術は、複数のＮＡＮＤブロックを使用するインメモリ計算に基づいて説明される。本明細書に記載の例で使用されるＮＡＮＤブロックは、３Ｄ ＮＡＮＤフラッシュ技術を使用して実装することができる。
【００１０】
ＮＡＮＤブロック内のＮＡＮＤストリングの組を、ビット線の組内のそれぞれのビット線に接続し、ビット線の組からＮＡＮＤストリングのそれぞれの組を通るソース線上の電流の合計を検出するため、複数のＮＡＮＤブロックのうちの１つのＮＡＮＤブロックに結合された複数のビット線の組に入力信号を印加するための手段が記載されている。ＮＡＮＤストリングの組のコンダクタンス（またはその逆数、抵抗）は、ＮＡＮＤストリング上のメモリセルに記憶されているデータによって決定される。
【００１１】
本明細書に記載の実施形態における複数のＮＡＮＤブロック内のＮＡＮＤブロックは、複数のビット線の組内のビット線とＮＡＮＤブロックのソース線との間に配置された複数のＮＡＮＤストリングを含む。ＮＡＮＤストリングは、ＮＡＮＤストリングを対応するビット線に選択的に接続するストリング選択スイッチを有する。ＮＡＮＤストリングは、ストリング選択スイッチと接地選択スイッチとの間に直列に配置された複数のメモリセルを含み、それによりＮＡＮＤストリングはソース線に接続される。ワード線は、ＮＡＮＤブロックの対応するワード線レベル内のメモリセルのゲートに結合されている。同様に、ストリング選択線は、ＮＡＮＤストリングの対応する行内のストリング選択スイッチのゲートに結合されている。
【００１２】
特定のＮＡＮＤブロックについて、複数のビット線の組はＢ個のメンバーを含み得、そしてＮＡＮＤブロックは少なくともＳ個のメンバーを有するストリング選択線の組を含み得る。この構成では、ＮＡＮＤブロックは、Ｂ列およびＳ行のＮＡＮＤストリングを含むＢ×Ｓ個のＮＡＮＤストリングのアレイを含む。ＮＡＮＤブロックの列内のＳ個のＮＡＮＤストリング（各行から１つずつ）を複数のビット線の組内の各ビット線に接続するために、１組のストリング選択ドライバが計算モードで動作可能である。このように、ソース線上の計算モード電流はＢ個の積項の和であり、各積項は複数のビット線の組内の１つのビット線上の入力信号と、ビット線に接続されたＳ個のＮＡＮＤストリングのコンダクタンスの積の関数である。
【００１３】
それぞれ計算モードおよび記憶モードで動作可能な複数のＮＡＮＤブロックを含む回路が説明される。バスシステムが複数のＮＡＮＤブロックの入力および出力に接続され、それにより積和演算の入力データがＮＡＮＤブロックに適用され得、積和演算の係数がＮＡＮＤブロックに格納され得る。
【００１４】
計算および記憶モードで使用される入力および出力回路は共有することができ、場合により、異なるモードに異なる回路を使用しても良い。所定のＮＡＮＤブロックの計算モード入力は、所定のＮＡＮＤブロックのビット線に並列に入力データを印加するビット線ドライバの組を含むことができる。所定のＮＡＮＤブロックの計算モード出力は、所定のＮＡＮＤブロックのソース線上の出力データを検出するためのマルチビットのセンス増幅器を含むことができる。所定のＮＡＮＤブロックの記憶モード入力は、計算モード用の入力ドライバを含み得るか、または別個の回路とし得る、ページバッファ回路を含むことができる。
【００１５】
本技術の他の態様では、積和演算アクセラレータでの使用に適したＮＡＮＤブロックの構造が説明される。また、本技術の他の態様では、各タイルが上述の複数のＮＡＮＤブロックを含む、複数の積和タイルを含む集積回路が説明される。
【００１６】
以下の構成を含む、積和のインメモリ計算の方法が記載される。
ａ）ビット線ＢＬ（ｉ）に結合されたストリング選択線ＳＳＬ（ｊ）上の、ＮＡＮＤストリングの列Ｃ（ｉ）のＮＡＮＤブロックのレベルＬ（ｋ）のセル内に積項Ｘ（ｉ）×Ｗ（ｉ）の係数データｗ（ｉ、ｊ）を、ｉは１からＢ、ｊは１からＳ、ｋは選択されたワード線レベルに等しい場合に、記憶する。
ｂ）入力Ｘ（ｉ）をビット線ＢＬ（１）〜ＢＬ（Ｂ）に、ストリング選択電圧をストリング選択線ＳＳＬ（１）〜ＳＳＬ（Ｓ）に、ワード線計算電圧を選択されたワード線レベルのセルに、（同時にまたは検出のためにセルにバイアスをかけるために時間的に重なる組み合わせで）印加する。
ｃ）ＮＡＮＤブロックのためのソース線上のビット線ＢＬ（１）〜ＢＬ（Ｂ）に接続されたＮＡＮＤストリングの列Ｃ（１）〜Ｃ（Ｂ）を通る電流を組み合わせる。
ｄ）積和を表す出力信号を生成するためにソース線上の電流の大きさを検出する。
【発明の効果】
【００１７】
本明細書に記載されるように配置されたＮＡＮＤブロックのアレイは、パイプライン方式で動作し得、機械学習システムの推論モード動作に使用可能なものなど、高スループット動作を支援する。
【００１８】
本明細書に記載の技術を適用して、高密度でエネルギー効率の良い積和アクセラレータが提供される。実施形態は、１ワット当たりテラ演算ＴＯＰＳのオーダーで実行するように構成し得る。
【００１９】
本発明の他の態様および利点は、添付の図面、以下の詳細な説明および特許請求の範囲を検討することによって理解することができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、積和演算の図である。
【００２１】
【図２】図２は、本明細書に記載の記憶モードおよび計算モードに構成可能なＮＡＮＤブロックの回路図である。
【００２２】
【図３】図３は、図２のような複数のＮＡＮＤブロックを示す回路図である。
【００２３】
【図４】図４は、本明細書に記載のＮＡＮＤブロックでの使用に適した他のＮＡＮＤストリングの実装形態を示す図である。
【００２４】
【図５】図５は、本明細書に記載のＮＡＮＤブロックの簡略図である。
【００２５】
【図６】図６は、記憶モードと計算モードとを有し、複数のＮＡＮＤブロックを含む集積回路を示す図である。
【００２６】
【図７】図７は、複数のタイルを含む大規模集積回路を示す図であり、各タイルは、本明細書に記載のＮＡＮＤブロックアレイを含む。
【００２７】
【図８】図８は、ＮＡＮＤブロックアレイＭＡＣアクセラレータを備える集積回路の簡略ブロック図である。
【００２８】
【図９】図９は、本明細書に記載のＮＡＮＤブロックアレイを含み得る、積和アクセラレータアレイを含むシステムの構成の図である。
【００２９】
【図１０】図１０は、本明細書に記載のＮＡＮＤブロックアレイを含み得る、積和アクセラレータアレイを含むシステムの他の構成の図である。
【００３０】
【図１１】図１１は、本明細書に記載されるインメモリ積和演算の方法のフローチャートである。
【発明を実施するための形態】
【００３１】
以下の説明は、典型的には特定の構造的実施形態および方法に関する。本技術を、具体的に開示された実施形態および方法に限定する意図はなく、本技術は他の特徴、要素、方法および実施形態を用いて実施されても良いことが理解されるべきである。好ましい実施形態は、本技術を説明するために記載されており、特許請求の範囲によって定義される範囲を限定するものではない。当業者は、以下の説明において様々な均等な変更を認識し得る。
【００３２】
本明細書で使用されるとき、「結合された」という用語は、動作可能に結合されたことを意味する。この意味で結合されている構成は直接接続されている必要はなく、結合されている構成間に介在する構成があってもよい。
【００３３】
図１は、積和演算の図であり、ここで、和の項は、入力Ｘｉと重みＷｉの積であり、この例では、ｉは１から７になる。重みＷｉは、和の項により異なり得る。動作中、重みは一組の係数として、次に、入力が変化するにつれて変化する和を計算するために印加される入力として割り当てられることができる。また、学習手順を実行するアルゴリズムでは、学習手順が、使用可能な結果を達成する和から学習するために係数を変更するにつれて、重みは刻々と変更されることができる。
【００３４】
図示の例では、０と１の間のような最小と最大の間の非線形の範囲の出力を生成するために、和の出力はシグモイド関数に適用される。ロジット関数、整流関数など、他の活性化関数を用いても良い。積和演算は、神経形態学的ではない、または神経系をモデル化するために他の方法で考慮されていない構成にも同様に適用することができる。
【００３５】
畳み込みニューラルネットワークおよび他の種類のニューラルネットワークを含むニューラルネットワークは、多くの場合、層状に構造化されたロジックを含み、各層は、場合によっては活性化関数が適用された前の層の出力を入力として受け取ることができ、数百または数千の積和演算を並列に実行し、その出力は後続の活性化関数または他の論理装置に適用される。
【００３６】
図２は、行および列に配置された垂直なＮＡＮＤストリングのアレイを含むＮＡＮＤブロックの概略図である。説明の目的のため、ＮＡＮＤブロック内の行は、共通のストリング選択線と共通のワード線とを有し、それぞれが共通のストリング選択線に応じて異なるビット線に結合され、共通のストリング選択線およびワード線に沿って一行に論理的に配置されるＮＡＮＤストリングの組である。説明の目的のため、ＮＡＮＤブロック内の列は、共通のビット線に沿って列状に論理的に配置されるように、異なるストリング選択線にそれぞれ結合された共通のビット線を有するＮＡＮＤストリングの組である。物理的レイアウトでは、適用される製造方法に応じて、列または行をねじったり、ハニカム状に配置したり、あるいは高密度または他の理由のためにレイアウトしても良い。図において、アレイの第１列のＮＡＮＤストリング２００およびＮＡＮＤストリング２０１は、第１ビット線ＢＬ（１）およびブロックのソース線ＳＬ１に結合されている。また、アレイの第２列のＮＡＮＤストリング２０２およびＮＡＮＤストリング２０３は、第２ビット線ＢＬ（２）およびブロックのソース線ＳＬ１に結合されている。図示の例では、図を簡単にするために２本のビット線が示されている。所定のＮＡＮＤブロックは、所定の実施形態では数十、数百または数千のビット線を含む、ｉが１からＢの多くのビット線ＢＬ（ｉ）に、ＮＡＮＤストリングのアレイ内の対応する数のＮＡＮＤストリングの列とともに、結合され得る。
【００３７】
ＮＡＮＤストリングのアレイ内の各ＮＡＮＤストリングは、対応するストリング選択線ＳＳＬ（１）およびＳＳＬ（Ｓ）に結合されたストリング選択スイッチを含み、これは対応するＮＡＮＤストリングをそのビット線に接続および切断するために使用される。アレイの第１行内のＮＡＮＤストリング２００およびＮＡＮＤストリング２０２は、ブロックの第１ストリング選択線ＳＳＬ（１）に結合されている。ＮＡＮＤストリング２０１とＮＡＮＤストリング２０３とアレイのＳ番目の行はＳ番目のストリング選択線ＳＳＬ（Ｓ）に結合される。図示の例では、図を簡単にするために２本のストリング選択線が示されている。所定の実装形態では、所定のＮＡＮＤブロックは、ＮＡＮＤストリングのアレイ内の対応する数のＮＡＮＤストリングの行とともに、多くのストリング選択線に結合することができると考えられる。
【００３８】
ＮＡＮＤストリングのアレイ内の各ＮＡＮＤストリングは、ブロックの接地選択線ＧＳＬ１に結合された接地選択スイッチを含み、これはＮＡＮＤストリングのアレイ内の対応するＮＡＮＤストリングをブロックのソース線ＳＬ１に接続するために使用される。いくつかの実施形態では、対応するＮＡＮＤストリング上の接地選択スイッチは、本明細書で説明される記憶モードおよび計算モードを支援する適切な復号回路を有する別々の接地選択線によって制御され得る。
【００３９】
ＮＡＮＤストリングのアレイ内の各ＮＡＮＤストリングは、対応するワード線に結合された、ストリング選択スイッチと接地選択スイッチとの間に直列に配置された複数のメモリセルを含む。この例では、ＮＡＮＤブロックの所定のレベル内の全てのワード線は、単一のワード線導体に、または単一のワード線デコーダによって共通に制御される別々のワード線導体に共通に結合され、ＮＡＮＤブロックの所定のレベル内の全ての、または選択された複数の、メモリセルの行は、同じワード線信号を受け取ることができる。この例では、ＮＡＮＤブロックのＮＡＮＤストリングは、３２本のワード線ＷＬ０〜ＷＬ３１に結合された３２レベルのメモリセルを含む垂直ＮＡＮＤストリングである。
【００４０】
記憶モードの動作では、ブロックの複数のビット線に結合されたページバッファ（図示せず）によって支援されるプログラムおよび消去動作を使用して、データを個々のメモリセルに書き込むことができる。記憶モードの動作では、通常、ＮＡＮＤストリングのアレイ内のＮＡＮＤストリングの行のうちの１つが、選択されたストリング選択線を使用して選択される。この場合、ＮＡＮＤストリングのアレイの各列内のＮＡＮＤストリングのうちの１つは、ビット線のうちの１つに結合される。ページバッファを利用して、データパターンを、ＮＡＮＤブロックの各レベルで、複数のビット線に並列に結合されたＮＡＮＤストリングのアレイの選択された行内の個々のＮＡＮＤストリングにプログラムすることができる。また、記憶モードのページバッファを利用して、ＮＡＮＤブロックの各レベルで、ＮＡＮＤストリングのアレイの選択された行内のメモリセルに記憶されているデータを読み取ることができる。
【００４１】
記憶モードでは、積和演算の係数をＮＡＮＤブロックに格納し得る。ＮＡＮＤブロック内のＮＡＮＤセルは、セル当たり単一ビット技術またはセル当たり複数ビット技術を使用して実装することができる。いくつかの実施形態では、後述するように、係数が複数のＮＡＮＤストリングにわたって分散される方法で格納されるので、セル当たり単一ビット技術が好ましい場合がある。他の実施形態では、ＮＡＮＤブロックへの係数のプログラミングにおいて、さらに高い精度を提供するために、セル当たり複数ビット技術を使用しても良い。
【００４２】
図１の図を参照すると、入力信号Ｘ１およびＸ２は、ビット線ＢＬ（１）およびＢＬ（２）に印加される電圧ＶＢＬ（１）およびＶＢＬ（２）によって表すことができる。係数Ｗ１は、第１のビット線ＢＬ（１）に結合されたストリング選択スイッチの対応するストリング選択線によって選択された、１または複数の選択されたＮＡＮＤストリングの導電率によって表すことができる。係数Ｗ２は、第２のビット線ＢＬ（２）に結合されたストリング選択スイッチの対応するストリング選択線によって選択された、１または複数の選択されたＮＡＮＤストリングの導電率によって表すことができる。
【００４３】
選択されたＮＡＮＤストリングの導電率は、ＮＡＮＤブロックの選択されたレベルにおいて、メモリセルに記憶されたデータによって決定される。図では、ワード線ＷＬ（１）のレベルのＮＡＮＤストリングが選択されている。従って、図示のように、積項Ｗ１×Ｘ１の第１の係数Ｗ１は、全てのＳ個のストリング選択線がそれらの対応するＮＡＮＤストリングを第１のビット線ＢＬ（１）に接続するように駆動される場合、係数値ｗ（１−１）：ｗ（１−Ｓ）の組み合わせに対応する。積項Ｗ２×Ｘ２の第２の係数Ｗ２は、全てのＳ個のストリング選択線がそれらの対応するＮＡＮＤストリングを第２ビット線ＢＬ（２）に接続するように駆動される場合、係数値ｗ（２−１）：ｗ（２−Ｓ）の組合せに対応する。
【００４４】
本明細書に記載の計算モードの動作では、ＮＡＮＤブロックの積和演算の結果として生成される信号ＯＵＴＰＵＴ Ｙ１が、ブロックのソース線ＳＬ１上に提供される。ＮＡＮＤストリングのアレイ内のＮ個のストリング選択線およびＮ行のＮＡＮＤストリングと共に、ＮＡＮＤストリングのアレイ内に２本のビット線と２列のＮＡＮＤストリングを含む、図２に示す例では、出力ＯＵＴＰＵＴ Ｙ１は、ＮＡＮＤブロック内のＮＡＮＤストリングの電流の合計に対応する電流経路２９０によって蓄積された電流である。
【００４５】
図示のように、電流経路２９０は、ＮＡＮＤストリング２００からソース線ＳＬ１を通るビット線ＢＬ（１）上の電流と、ＮＡＮＤストリング２０１からソース線ＳＬ１を通るビット線ＢＬ（１）上の電流と、ＮＡＮＤストリング２０２からソース線ＳＬ１を通るビット線ＢＬ（２）上の電流と、ＮＡＮＤストリング２０３からソース線ＳＬ１を通るビット線ＢＬ（２）上の電流と、を含む。
【００４６】
経路２９０から蓄積された電流は、積和項Ｗ１×Ｘ１およびＷ２×Ｘ２に対応する。係数Ｗ１は、ワード線ＷＬ（１）およびビット線ＢＬ（１）に結合されたメモリセルの列におけるデータ値ｗ（１−１）：ｗ（１−Ｓ）の関数であり、係数Ｗ２は、ワード線ＷＬ（２）およびビット線ＢＬ（２）に結合されたメモリセルの列におけるデータ値ｗ（２−１）：ｗ（２−Ｓ）の関数である。積項の係数を表すために、所定のビット線に結合されたメモリセルの各列のＳ個のメモリセルを使用することは、係数を表すために（例えば、複数の有効桁を有する）高精度データの使用を可能にする。計算モード動作中にストリング選択線によって同時に選択される行数、およびそれにより係数を表すために使用されるメモリセルの数を制御することにより、係数の精度は特定の実施形態の必要に応じて変化し得る。したがって、Ｓ個のストリング選択線を含むブロックに対して、単一の係数は、入力データ値が単一のビット線上の電圧によって表される場合、１から４の範囲のいくつかのメモリセルに記憶されたデータによって表すことができる。
【００４７】
本明細書に記載のＮＡＮＤブロック内の単一のＮＡＮＤストリングにおいて、計算モード中に生成される電流は、比較的小さい可能性がある。したがって、ＮＡＮＤブロックのＮＡＮＤストリングのアレイ内の全てのＮＡＮＤストリングからの電流の組み合わせは、ブロックのソース線ＳＬ１に結合された電流検出センス増幅器を使用して効率的に検出される電流値の範囲内に留まり得る。
【００４８】
本明細書に記載のＮＡＮＤブロックは、３Ｄ ＮＡＮＤメモリ技術を使用して実装することができる。この技術分野で周知の様々な代替案の中でも、垂直ＮＡＮＤストリングを含むＮＡＮＤブロックのいくつかの例が、２０１７年７月４日に発行された、Ｌｕｅによる、ＶＥＲＴＩＣＡＬ ＴＨＩＮ ＣＨＡＮＮＥＬＬ ＭＥＭＯＲＹと題された米国特許第９，６９８，１５６号、および２０１６年１２月２０日に発行された、Ｌｕｅによる、Ｕ−ＳＨＡＰＥＤ ＶＥＲＴＩＣＡＬ ＴＨＩＮ ＣＨＡＮＮＥＬ ＭＥＭＯＲＹと題された米国特許第９，５２４，９８０号に記載され、そのような特許は、あたかも完全に本明細書に記載されているかのように参照により組み込まれる。実装は、ＮＡＮＤブロックが複数の２Ｄ ＮＡＮＤアレイにわたって論理的に定義される２Ｄ ＮＡＮＤ技術を使用して行っても良い。
【００４９】
図３は、図１のような複数のＮＡＮＤブロックを含む回路が、ニューラルネットワークに使用可能な大規模積和計算の目的とする積和アクセラレータとして、ＮＡＮＤブロックの単一のアレイに相互接続され得る一例を示す概略図である。図３では、ブロック１は、図２に関して上述した方法で実装される。同様に、ブロック２も同様の方法で実施される。ブロックはビット線を共有する。したがって、ビット線ＢＬ（１）は、ブロック１のＮＡＮＤストリングのアレイ内のＮＡＮＤストリングの第１列、およびブロック２のＮＡＮＤストリングのアレイ内のＮＡＮＤストリングの第１列に結合される。同様に、ビット線ＢＬ（２）は、ブロック１のＮＡＮＤストリングのアレイ内のＮＡＮＤストリングの第２列と、およびブロック２のＮＡＮＤストリングのアレイ内のＮＡＮＤストリングの第２列とに結合される。積和演算を目的として、ＮＡＮＤブロックを順番に動作させることができる。したがって、ビット線ＢＬ（１）およびＢＬ（２）上の入力Ｘ１およびＸ２は、ストリング選択線および接地選択線により有効とされるように、ブロック１を使用して積和演算に使用することができる。続いて、ビット線ＢＬ（１）およびＢＬ（２）上の入力Ｘ１およびＸ２は、ブロック２を用いた積和演算に使用することができる。ワード線は、ブロックごとに別々に動作および復号することができる。
【００５０】
図示の例では、ブロック１に記憶されている係数Ｗ１は、ブロックの選択されたレベルにあるＮＡＮＤストリングの列内のメモリセルに記憶されているデータ値によって表される。したがって、ブロック１では、ワード線ＷＬ（１）のレベルの選択されたレベルについて、ブロック１、ビット線ＢＬ（１）、およびストリング選択線ＳＳＬ（１）：ＳＳＬ（Ｎ）の係数ｗ１は、データ値ｗ（１−１、１）：ｗ（１−Ｎ、１）の組み合わせに対応する。同様に、ワード線ＷＬ（１）のレベルの選択されたレベルについて、ブロック１、ビット線ＢＬ（２）、およびストリング選択線ＳＳＬ（１）：ＳＳＬ（Ｎ）の係数Ｗ２は、データ値ｗ（２−１、１）：ｗ（２−Ｎ、１）の組み合わせに対応する。ブロック２では、ワード線ＷＬ（１）のレベルの選択されたレベルについて、ブロック２、ビット線ＢＬ（１）およびストリング選択線ＳＳＬ（１）：ＳＳＬ（Ｎ）の係数Ｗ１は、データ値ｗ（１−１、２）：ｗ（１−Ｎ、２）の組み合わせに対応する。同様に、ワード線ＷＬ（１）のレベルの選択されたレベルについて、ブロック２、ビット線ＢＬ（２）、およびストリング選択線ＳＳＬ（１）：ＳＳＬ（Ｎ）における係数Ｗ２は、データ値ｗ（２−１、２）：ｗ（２−Ｎ、２）の組み合わせに対応する。
【００５１】
図３に示すＮＡＮＤブロックのパターンは、実用的な数のＮＡＮＤブロックに対してビット線に沿って、そして実用的な数のＮＡＮＤブロックに対してワード線に沿って繰り返し得る。このようにして、積和演算の大規模計算を目的として、多数のＮＡＮＤブロックを含む回路を実現することができる。
【００５２】
図４は、本明細書に記載のＮＡＮＤブロックで使用することができる代替のＮＡＮＤストリング構成を示す。図２および図３において、ＮＡＮＤストリングは一直線のＮＡＮＤストリングであり、ストリング選択ゲートはＮＡＮＤストリングの上部でビット線に結合され、接地選択ゲートはＮＡＮＤストリングの下部でソース線に結合されている。図４に示す代替形態では、Ｕ字型のＮＡＮＤストリングが示されている。Ｕ字型のＮＡＮＤストリングを使用して、ソース線およびビット線をＮＡＮＤストリングの３Ｄブロックの上に配線することができる。したがって、図４に示すように、ビット線４０１は、ストリング選択スイッチ４０５によりＵ字型のＮＡＮＤストリングの第１の側に結合されている。Ｕ字型のＮＡＮＤストリングの第１の側面の底部にあるアシストゲート４０３は、Ｕ字型のＮＡＮＤストリングの第２の側面に結合されている。Ｕ字型のＮＡＮＤストリングの第２の側の頂部では、接地選択スイッチ４０６がＮＡＮＤストリングをソース線４０２に接続する。ビット線およびソース線は、集積回路上のパターン化された金属の異なる層上に配線されることができる。
【００５３】
図５は、本明細書に記載のように構成されたＮＡＮＤブロックの概念図である。図１に示すような複数の垂直なＮＡＮＤストリングを含む、ＮＡＮＤブロックＢＬＯＣＫ１が表されている。メモリセルのレベルにおけるＮＡＮＤブロックの深さは、ワード線レベルＷＬ（１：Ｌ）の数Ｌに対応する。ＮＡＮＤブロック内のＮＡＮＤストリングの列数は、ビット線ＢＬ（１：Ｂ）の数Ｂに対応する。ＮＡＮＤブロック内のＮＡＮＤストリングの行数は、ストリング選択線ＳＳＬ（１：Ｓ）の数Ｓに対応する。
【００５４】
ページバッファおよび入力ドライバ５１０は、複数のビット線ＢＬ（１：Ｂ）に結合されている。ページバッファは、複数のビット線内のビット線に結合されたビット線ドライバと、複数のビット線内のビット線に結合されたセンス増幅器とを含む。ページバッファ／入力ドライバ５１０は、記憶モードにおいて、係数をブロックに書き込むために使用されるデータを保持するために使用される。記憶モードでは、ページバッファは、例えばＮＡＮＤフラッシュアレイにおいて、プログラム及び消去動作中にビット線電圧を印加する目的で使用される。計算モードでは、入力ドライバは、積和演算の入力データに対応するビット線電圧を印加するために使用される。いくつかの実施形態では、ページバッファは、入力データ値のデータパターンを定義するための手段として、計算モードで利用することができる。他の実施形態では、入力データ値は、代替のメモリ経路およびデコーダを使用して入力ドライバに印加することができる。同様に、いくつかの実施形態では、計算モードで使用される入力ドライバを、記憶モードで使用されるページバッファ内のビット線ドライバに含めることができる。他の実施形態では、記憶モード用のビット線ドライバは、計算モード用の入力ドライバとは異なる。
【００５５】
ワード線およびストリング選択線／接地選択線デコーダ５１２は、複数のワード線と、ＮＡＮＤブロックの複数のストリング選択線および接地選択線とに結合されている。デコーダ５１２は、ＮＡＮＤストリングを対応するビット線に接続するために、複数のストリング選択線のうちの１または複数を選択するように動作可能である。また、デコーダ５１２は、ブロックの特定のレベルで選択されたワード線ＷＬ（ＳＥＬ）を駆動することにより、メモリセルのレベルを選択するように動作可能である。記憶モードでは、デコーダ５１２は、通常、ページ読み取りまたはページ書き込み動作のために、１つのストリング選択線と１つのワード線とを選択する。計算モードでは、デコーダ５１２は、全てのストリング選択線を含む複数のストリング選択線と、積和演算のための１つのワード線とを選択して、アレイ内の選択されたＮＡＮＤストリングのコンダクタンスの合計に対応する電流をソース線５１５上に生成する。
【００５６】
ソース線５１５はセンス増幅器５１４に結合され、ソース線５１５上の電流をデジタル出力値Ｙ１に変換する。センス増幅器５１４は、記憶モード中は無効にすることができる。ページバッファ／入力ドライバ５１０およびセンス増幅器５１４は、大規模な積和演算のために、ＮＡＮＤブロック間において入力および出力データの経路を設定するために、データバスシステム５２０に結合することができる。記憶モード動作および計算モード動作のために、図示されていないシーケンスコントローラを使用して、デコーダ５１２、ページバッファ／入力ドライバ５１０、およびセンス増幅器５１４の動作を調整することができる。
【００５７】
これらの要素５１０、５１２、および５１４、ならびに本明細書に記載の様々な実施形態は、ＮＡＮＤブロック内のＮＡＮＤストリングの組をビット線の組内のそれぞれのビット線に接続し、ビット線の組からＮＡＮＤストリングのそれぞれの組を通る電流の合計を感知するため、複数のＮＡＮＤ内のＮＡＮＤブロックに結合された複数のビット線内の複数のビット線の組に入力信号を印加するための手段を備える。
【００５８】
図５は単一のＮＡＮＤブロックを示す。図６は、ＮＡＮＤブロックのアレイ６００を含む回路タイル６５０のブロック図である。この例では、ＮＡＮＤブロックのアレイ６００は、８×８アレイに６４個のブロックを含む。ワード線およびストリング選択線デコーダ６１２は、タイル内に配置されている。個々のブロックに対するワード線デコーダおよびワード線は、独立して制御することができる。また、個々のブロックに対するストリング選択デコーダおよびストリング選択線は、別々の回路として実現することができ、独立して制御することができる。
【００５９】
いくつかの実施形態では、ワード線デコーダおよびワード線、ならびにストリング選択線デコーダおよびストリング選択線は、水平レーン内のＮＡＮＤブロックのいくつかまたはすべてが、同じワード線導体およびワード線デコーダ、および同じストリング選択線およびストリング選択線デコーダを共有するように、水平レーンに配置され得る。この８×８アレイでは、例えば、８水平レーンのＮＡＮＤブロックがあっても良い。
【００６０】
タイルのビット線は、大規模ＮＡＮＤ記憶デバイスに使用されるような一組の回路に結合される。一組の回路は、ビット線上でプログラムおよび消去動作の支援に使用するためにビット線に結合された高電圧スイッチ６２２を含む。また、一組の回路は、積和演算の入力値に対応するビット線電圧を含む、ビット線に電圧を印加するように構成された、計算モード中のロジック入力用のビット線入力ドライバ６２１を含む。１組の回路はまた、プログラム検証動作中にデータを記憶するために使用され、メモリアレイからのデータの転送のための読み出し動作に使用され、およびプログラム動作用のデータの組を定義するために使用されるページバッファ６２０を含む。また、ページバッファ６２０は、所定の積和演算の複数のビット線上で計算モード中に印加される電圧レベルを選択するために、ロジック経路の一部として利用することができる。
【００６１】
ページバッファ６２０、ビット線入力ドライバ６２１、および高電圧スイッチ６２２は、垂直レーン内のすべてのＮＡＮＤブロックが同じビット線および関連する回路を共有するように、複数の垂直レーンに配置することができる。１の実施形態では、ＮＡＮＤブロックのアレイ６００は、この例では、８個のＮＡＮＤブロックの列に結合された、８の１Ｋレーンのビット線に構成された、８Ｋビット線を含むことができる。
【００６２】
センス増幅器６１４は、ＮＡＮＤブロックのアレイ６００に結合されている。例えば、それぞれがアレイ６００の複数のＮＡＮＤブロック内の６４個のＮＡＮＤブロックのうちの１つに結合された、６４個の電流検出センス増幅器であっても良い。他の実施形態では、一組のセンス増幅器６１４は、アレイ６００の各水平レーンに一つのセンス増幅器を含むことができる。他の実施形態では、一組のセンス増幅器６１４は、各垂直レーンに一つのセンス増幅器を含むことができる。
【００６３】
図６に示すように、デジタル入出力データを搬送するデータ経路（ＸデジタルＩＯ）は、ページバッファ６２０およびビット線入力ドライバ６２１に結合されデータバスシステムまたは、タイルが実装される集積回路上の入出力ＩＯ回路に接続することができる。同様に、センス増幅器６１４からのデジタル出力（Ｙ ｎビット出力）を搬送するデータ経路は、データバスシステム、またはタイルが実施される集積回路上のＩ／Ｏ回路に接続することができる。
【００６４】
図７は、図６に示すようなタイルを複数含む実施形態を示す。したがって、３×３グリッドに配置されたタイルＴＩＬＥ１からＴＩＬＥ９を含む集積回路７００が示されている。集積回路７００上のタイル間バスシステム７５０は、複数の積和アクセラレータタイル上のデータ経路に結合されている。シーケンスコントローラ７０３は、バスシステム７５０を介してタイルのグリッドに結合され、複数のタイル間のデータフローを制御し、例えば、バスシステム７５０によって配信される記憶モード動作および計算モード動作について、コマンドシーケンスを使用してタイルの動作を設定する。入出力インターフェース７０５は、例えば、大容量ＤＤＲ ＤＲＡＭインターフェース、大容量シリアルインターフェース、大容量ＰＣＩｅインターフェース、および大量のデータをグリッドに出し入れするための他の業界標準またはカスタムインターフェース、を含む複数の入力インターフェース７１０を含み得るシーケンスコントローラ７０３に結合される。
【００６５】
図８は、図６および図９に示す様々な実施形態において例えば図２に示すように実施された、フラッシュメモリセルのＮＡＮＤブロックアレイ８６０を備えるＭＡＣアクセラレータメモリアレイを含む集積回路装置８００の他の実施形態の簡略化されたチップブロック図である。この例の装置８００は、上述したように、例えば記憶モードでのメモリ動作のための状態機械および計算モードにおけるＭＡＣアクセラレータまたは積和演算を含む、コントローラ８１０を含む。また、この例におけるコントローラ８１０は、ＮＡＮＤブロックアレイ８６０を含む大規模ＡＩ機能におけるデバイス８００の使用、およびデバイスの内外のデータフロー動作を制御するためのシーケンサを含む。
【００６６】
集積回路装置８００は、アレイ８６０内の対応するＮＡＮＤブロックに結合された一組のソース線８５５と、アレイ８６０内の対応するＮＡＮＤブロックに結合された一組のビット線８６５とを含む。
【００６７】
一組のワード線が、対応するＮＡＮＤブロックのレベルでメモリセルのゲートに結合され、一組のワード線内のワード線上の信号がそれぞれのレベルのメモリセルを選択する。ワード線ドライバ８４０は、一組のワード線８４５に結合されている。
【００６８】
一組の検出回路８５０は、一組のソース線内のそれぞれのソース線に結合される。アレイを使用した積和演算のために、ソース線検出回路８５０は、メモリアレイ８６０からソース線８５５における電流を検出することができる。一組のソース線内の特定のソース線で検出された電流は、上述したように積和を表し得る。ソース線検出回路８５０からの検出データは、データ線８５３を介して入出力回路８９１に供給される。
【００６９】
回路内のビット線ドライバ８７０は、ページバッファ８７５とビット線８６５とに結合されている。アレイを使用した積和演算のために、回路内のビット線ドライバ８７０は、選択された各ビット線について入力ｘ（ｍ）を生成することができる。
【００７０】
アドレスは、制御ロジック（コントローラ）８１０からページバッファ８７５、回路内のビット線ドライバ８７０、およびワード線ドライバ８４０へ、バス８３０上で供給される。ページバッファ８７５、回路内のビット線ドライバ８７０、およびソース線検出回路８５０は、線８５３、８８５により、入力／出力回路８９１に結合されている。
【００７１】
入力／出力回路８９１は、データを集積回路装置８００の外部の宛先に送る。入出力データおよび制御信号は、データバス８０５を介して、入出力回路８９１、制御ロジック８１０、および集積回路装置８００の入出力ポート、または、例えば、汎用プロセッサまたは特殊用途のアプリケーション回路、あるいはメモリアレイ８６０により支援されるシステムオンチップ機能を提供するモジュールの組み合わせなど、集積回路装置８００の内外の他のデータソースとの間を移動する。
【００７２】
図８に示す例では、バイアス配置状態機械を使用して、制御ロジック８１０は、計算モードでは積和演算のため、記憶モードでは読み書き（プログラムと消去）動作のために、ブロック８２０において、１または複数の電圧供給を通じて生成または提供される供給電圧の印加を制御する。
【００７３】
制御ロジック８１０は、本技術分野で知られている専用ロジック回路を使用して実施することができる。他の実施形態では、制御ロジックは、同じ集積回路上に実装可能な汎用プロセッサを含み、汎用プロセッサはコンピュータプログラムを実行して装置の動作を制御する。さらに他の実施形態では、専用ロジック回路と汎用プロセッサの組み合わせを制御ロジックの実装に使用することができる。
【００７４】
制御ロジック８１０はまた、装置の計算モードでパイプライン動作を支援する回路を実装し得る。たとえば、次の表は、ブロックの出力を受および処理するロジックにより支援されるＳＲＡＭを使用した３ブロックのパイプライン操作を示す。
【表１】
2020098658.tif 000004
【００７５】
図９は、データ経路コントローラ９０３を使用して線９１１により外部バスシステム９１０に相互接続された、積和演算アクセラレータアレイ９０１（またはＭＡＣアクセラレータ）を備えた第１の集積回路９００を含むシステムの構成を示す。積和演算アクセラレータアレイ９０１は、上述のように、ＮＡＮＤブロックのアレイまたはＮＡＮＤブロックのアレイのタイルのアレイを使用して実装することができる。第２の集積回路９５０は、コントローラとして機能し、積和演算アクセラレータアレイ９０１と連携して使用するバッファ９０５および支援ロジック９０６を含む。第２の集積回路９５０は、線９１２によりバスシステム９１０に結合されている。第２の集積回路９５０内のバッファ９０５は、ＳＲＡＭアレイ、ＤＲＡＭアレイ、ＮＯＲフラッシュアレイ、または積和演算アクセラレータアレイ９０１と連携して使用することができる他の種類のメモリを含み得る。ロジック９０６は、ニューラルネットワークの動作を管理するシーケンスロジックを含むことができる。ロジック９０６はまた、起動機能ロジックおよびデバイスの計算モードを支援する他のロジックを含むことができる。また、ロジック９０６は、デジタル積和演算および大規模ニューラルネットワークを支援する他の演算を形成する大規模プロセッサを備えることができる。
【００７６】
第１の集積回路９００および第２の集積回路９５０は、マルチチップモジュール、または他のコンパクト構成では、積層されたチップ構成で搭載することができ、いくつかの実施形態では、バスシステム９１０、９１１、９１２内の相互接続線は、例えば、シリコン貫通ビア、ボールグリッド接続などを含むチップ間接続を含む。
【００７７】
図１０は、単一の集積回路１０００上にコントローラを有する積和演算アクセラレータアレイ１００１を含む他の実施形態を示す。この例では、データ経路コントローラ１００３は積和演算アクセラレータアレイ１００１と共に集積回路上に実装される。データ経路１００５は、データ経路コントローラをバッファ１００６に結合し、バッファ１００６は、次に同じ集積回路１０００上のロジック１００８に結合される。図１０に示すように、バッファ１００６からのデータは、データ経路コントローラ１００３を使用して制御され得る直接データ経路を使用して、積和演算アクセラレータアレイ１００１に転送することができる。
【００７８】
図１１は、本明細書に記載のＮＡＮＤブロックを使用して積和を計算する方法を示すフローチャートである。図８の例における制御ロジック８１０は、この方法をサポートする状態機械を含むことができる。図１１の方法は、単一のＮＡＮＤブロックに適用される。この方法は、大規模な積和演算を支援するために、上述したようにＮＡＮＤブロックのアレイおよびタイルのアレイに拡張することができる。
【００７９】
したがって、Ｂ個の積項について積和を計算するために、この方法は、Ｂ個のビット線、Ｓ個のストリング選択線に結合され、Ｌ個のワード線レベルを有するＮＡＮＤブロックを選択することを含む（１１００）。ＮＡＮＤブロックを記憶モードで動作させて、計算を設定するために、この方法は、積項Ｗ（ｉ）×Ｘ（ｉ）の係数データｗ（ｉ、ｊ）を、ビット線のインデックスｉが１からＢ、ストリング選択線のインデックスｊが１からＳ、ワード線レベルのインデックスｋは一定の選択されたレベルにある場合に、ビット線ＢＬ（ｉ）に結合されたストリング選択線ＳＳＬ（ｊ）上のＮＡＮＤストリングの列Ｃ（ｉ）のレベルＬ（ｋ）における１組のメモリセルに記憶することを含む。ＮＡＮＤページプログラミング動作を使用して、係数データは、単一のストリング選択線ＳＳＬ（ｉ）に結合されたＮＡＮＤストリング上のメモリセルに記憶され得る。ＮＡＮＤページプログラミング動作は、ストリング選択線の組ＳＳＬ（１）からＳＳＬ（Ｓ）内の各ストリング選択線について繰り返される（１１０１）。
【００８０】
このようにして、係数Ｗ（ｉ）は、ストリング選択線ＳＳＬ（１）〜（Ｓ）上のストリング選択スイッチに結合されたＮＡＮＤストリングの列Ｃ（ｉ）内のワード線レベルｋにおいて、メモリセルの組に記憶されたＳ個のデータ値（ｊが１からＳになるｗ（ｉ、ｊ））によって表される。
【００８１】
一般に、数Ｓは、ストリング選択線の物理的な数に等しくなり得る。いくつかの実施形態では、特定の係数を格納するために使用される数Ｓは、１からストリング選択線の最大物理数までの任意の数であり得る。同様に、ビット線の数Ｂは、ＮＡＮＤブロック内で合計される積項の数に対応する。数Ｂは、ブロックに結合されたビット線の最大物理数、または特定の数の積項に対して選択されたビット線の数に等しくなり得る。
【００８２】
データが記憶されると、装置は計算モードに入ることができる。計算モードでは、ビット線電圧ＶＢＬｉにより表される入力Ｘ（ｉ）は、ｉが１からＢの場合に、ビット線ＢＬ（ｉ）に並列に印加され、同時にビット線に印加することができる。また、ビット線を対応するＮＡＮＤストリングに接続するストリング選択スイッチをオンにするように設定されたストリング選択線選択電圧が、ｊが１からＳの場合に、同時かつ並列にすべてのストリング選択線ＳＳＬ（ｊ）に印加される。また、ワード線電圧は、ワード線または計算される特定の積項に対応するワード線レベルｋのワード線に印加される（１１０２）。
【００８３】
これは、Ｓ個のＮＡＮＤストリングを、各ビット線ＢＬ（ｉ）に並列に接続し、ワード線または計算される特定の積項に対応するワード線レベルｋのワード線に、計算レベルワード線電圧を印加する効果を有する。同時に、接地選択線が選択電圧レベルに設定され、ＮＡＮＤストリングをソース線に接続する接地選択スイッチをオンにする。選択されたワード線レベルのセル内のデータ値は、記憶された係数に従ってＮＡＮＤストリングのコンダクタンスを設定する効果を有する。
【００８４】
また、計算モードでは、ビット線ＢＬ（１）〜ＢＬ（Ｂ）に接続されたＮＡＮＤストリングの列Ｃ（１）〜Ｃ（Ｂ）内のＳ個のＮＡＮＤストリングを流れる電流が、ＮＡＮＤブロックのソース線において合成される。（１１０３）。
【００８５】
結果として、ソース線上の電流は、計算されているＢ個の積項の合計に対応する。
【００８６】
最後に計算モードでは、ソース線上の電流の大きさを検出することによって積和出力が生成される（１１０４）。この出力は、実行されている一連の計算に従って経路の設定を行うためにバスシステムに供給されるマルチビットデジタル出力とすることができる。
【００８７】
フローチャートは、本明細書で説明されているメモリコントローラまたはメモリデバイスによって実行されるロジックを示している。ロジックは、プロセッサ、フィールドプログラマブル集積回路を含む専用ロジックハードウェア、および専用ロジックハードウェアとコンピュータプログラムの組み合わせによって実行可能かつコンピュータシステムにアクセス可能なメモリに格納されたコンピュータプログラムを使用してプログラムされたプロセッサ、によって実行され得る。達成される機能に影響を与えることなく、ステップの多くを組み合わせ、並行して実行し、または異なるシーケンスで実行し得ることが理解されたい。場合によっては、読者が理解するように、他の特定の変更が同様になされた場合にのみ、ステップの再配置は同じ結果を達成する。他の場合には、読者が理解するように、特定の条件が満たされる場合にのみ、ステップの再配置は同じ結果を達成する。さらに、フローチャートは、技術の理解に関連するステップのみを示しており、他の機能を達成するための多数の追加のステップが、示されたものの前、後および間に実行され得ることを理解されたい。
【００８８】
一般に、高性能、低電力積和演算アクセラレータ回路が説明されている。アクセラレータ回路の実装は、積和演算の大容量計算用に構成された３Ｄ ＮＡＮＤフラッシュブロックを含むことができる。本明細書に記載の構造を利用して、積和演算に必要な電流の大きさは非常に小さくかつ厳密に制御することができる。本明細書に記載の実施形態では、高スループット、低電力積和演算を支援するために、何千および何万ものセルを一緒に動作させることができる。
【００８９】
本明細書に記載の例では、各ブロックは、複数のビット線上の多数のＮＡＮＤストリングおよびストリング選択線から、同時に電流を収集することができる別々のソース線を有する。ソース線上の電流は、マルチビット検出（例えば、２ビット、３ビット、４ビット）を有し、ブロック当たりの平均電流が平均１０μＡから１００μＡの範囲で広いダイナミックレンジを有する電流検出センス増幅器に結合され得る。１ストリング当たり５０ナノアンペア未満の範囲内など、適切な閾値電圧および駆動電圧を可能な限り小さく設定することにより、ストリング当たりの電流をトリミングすることができ、単一のセンス増幅器において１０００〜１０，０００ストリングの並列検知を可能とする。例えば、ワード線は、フラッシュメモリセルの消去状態のプログラム検証の間の中央近くにバイアスすることができ、ビット線電圧は、ストリング当たりの電流を小さくするために０．３Ｖ未満のレベルに低減することができる。
【００９０】
ＮＡＮＤブロックに並列に入力するために使用されるビット線および係数を記憶する目的のために使用されるストリング選択線の数は、特定の実施のために要望通りに設定することができる。また、所定の計算に使用されるビット線およびストリング選択線の数は、動作の各サイクルにおいて論理的に決定することができる。
【００９１】
複数のストリング選択線を使用し、それによって単一のビット線に並列に結合された複数のＮＡＮＤストリングを使用することから、各積項の係数または重みは、ＮＡＮＤブロック内の複数のメモリセルに分配することができる。これにより、ＮＡＮＤフラッシュプログラミング動作を使用して各セルを個々に高精度にトリミングすることができるので、係数の高分解能、または実質的なアナログ重み値を可能にする。結果として、計算の信頼性は非常に高くなり得る。
【００９２】
本発明は、上に詳述された好ましい実施形態および実施例を参照することによって開示されているが、これらの実施例は限定的な意味ではなく例示的なものを意図していることを理解されたい。当業者であれば変更および組み合わせを容易に思い付くであろうと考えられ、その変更および組み合わせは本発明の要旨および添付の特許請求の範囲の範囲内であろう。
【図１】
2020098658.tif 000005
【図２】
2020098658.tif 000006
【図３】
2020098658.tif 000007
【図４】
2020098658.tif 000008
【図５】
2020098658.tif 000009
【図６】
2020098658.tif 000010
【図７】
2020098658.tif 000011
【図８】
2020098658.tif 000012
【図９】
2020098658.tif 000013
【図１０】
2020098658.tif 000014
【図１１】
2020098658.tif 000015
【外国語明細書】
2020098658000001.pdf