IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 旺宏電子股▲ふん▼有限公司の特許一覧

特許7041654メモリ内積和演算のためのNANDブロックアーキテクチャ
<>
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図1
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図2
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図3
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図4
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図5
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図6
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図7
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図8
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図9
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図10
  • 特許-メモリ内積和演算のためのNANDブロックアーキテクチャ 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-15
(45)【発行日】2022-03-24
(54)【発明の名称】メモリ内積和演算のためのNANDブロックアーキテクチャ
(51)【国際特許分類】
   G11C 16/26 20060101AFI20220316BHJP
   G11C 16/04 20060101ALI20220316BHJP
   G11C 16/24 20060101ALI20220316BHJP
   G11C 11/56 20060101ALI20220316BHJP
【FI】
G11C16/26 130
G11C16/04 170
G11C16/24 100
G11C11/56 220
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2019166959
(22)【出願日】2019-09-13
(65)【公開番号】P2020098658
(43)【公開日】2020-06-25
【審査請求日】2020-09-07
(31)【優先権主張番号】62/780,938
(32)【優先日】2018-12-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/791,037
(32)【優先日】2019-01-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/508,189
(32)【優先日】2019-07-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】599129074
【氏名又は名称】旺宏電子股▲ふん▼有限公司
(74)【代理人】
【識別番号】100081961
【弁理士】
【氏名又は名称】木内 光春
(74)【代理人】
【識別番号】100112564
【弁理士】
【氏名又は名称】大熊 考一
(74)【代理人】
【識別番号】100163500
【弁理士】
【氏名又は名称】片桐 貞典
(74)【代理人】
【識別番号】230115598
【弁護士】
【氏名又は名称】木内 加奈子
(72)【発明者】
【氏名】呂 函庭
(72)【発明者】
【氏名】張 弘昇
(72)【発明者】
【氏名】劉 ▲逸▼青
【審査官】佐賀野 秀一
(56)【参考文献】
【文献】米国特許出願公開第2016/0358661(US,A1)
【文献】特開2009-080892(JP,A)
【文献】特開2006-127623(JP,A)
【文献】米国特許出願公開第2018/0321942(US,A1)
【文献】国際公開第2018/201060(WO,A1)
【文献】米国特許出願公開第2011/0194357(US,A1)
【文献】特開平04-051382(JP,A)
【文献】米国特許出願公開第2018/0113649(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 11/56
G11C 16/00- 17/18
(57)【特許請求の範囲】
【請求項1】
対応するソース線を各NANDブロックに有する複数のNANDブロックであって、前記複数のNANDブロック内の特定のNANDブロックは、複数のビット線の組と、前記特定のブロックの対応する前記ソース線との間に配置されたNANDストリングを含み、前記各NANDブロックは、複数の列および複数の行のNANDストリングを含む前記複数のNANDブロックと、
前記複数のNANDブロックに結合された前記複数のビット線の組に入力信号を印加する入力回路と、
前記NANDブロック内の前記複数の列および複数の行のNANDストリングによって共有されるソース線に結合された検出回路を有し、前記複数のビット線の組から選択されたNANDブロック内の前記複数の列および複数の行のNANDストリングを通る前記選択されたNANDブロック内の前記ソース線上の前記複数の列および複数の行のNANDストリングの電流の合計を検出する前記検出回路と、
を有する回路。
【請求項2】
前記複数のビット線の組を含む前記複数のNANDブロックに結合された複数のビット線を含み、
前記入力回路は、前記複数のビット線内のビット線に結合されたページバッファを含む、
請求項1に記載の回路。
【請求項3】
前記複数のビット線の中のそれぞれのビット線に結合されたNANDストリングをプログラムするための手段を含む、請求項2に記載の回路。
【請求項4】
前記複数のNANDブロック内のNANDブロックは、
その複数のビットラインの組とそのソース線との間の複数のNANDストリングであって、前記NANDストリングを、前記複数のビット線の組内の対応するビット線と、直列に配置された複数のメモリセルと、に選択的に接続するストリング選択スイッチを有し、当該複数のビット線の組内のビット線は、前記複数のNANDストリング内のNANDストリングの組のそれぞれに結合する前記NANDストリングと、
前記NANDブロックの対応するワード線レベル内のメモリセルのゲートに結合されたワード線と、
前記複数のNANDストリング内のNANDストリングの対応する行においてストリング選択スイッチのゲートに結合されたストリング選択線と、
を有する請求項1~3いずれか一項に記載の回路。
【請求項5】
前記NANDブロックについて、前記複数のビット線の組はB個のメンバーを含み、前記NANDブロックは少なくともS個のメンバーを有するストリング選択線の組を含み、
ストリング選択ドライバは、前記NANDブロックの列内のS個のNANDストリングを、前記複数のビット線の組のそれぞれに接続するように動作可能であり、
前記NANDブロックの前記ソース線上の電流は、B個の積項の合計であり、各積項は、前記複数のビット線の組内の1の前記ビット線上の入力信号と、当該1のビット線に接続されたS個のNANDストリングのコンダクタンスの積の関数である請求項4に記載の回路
【請求項6】
前記入力回路は、前記所定のNANDブロックのビット線に並列に入力データを印加する1組のビット線ドライバを含み、
前記検出回路は、対応するソース線上の出力データを検出するマルチビットセンス増幅器を含む請求項1~5いずれか一項に記載の回路
【請求項7】
前記複数のNANDブロック内の各NANDブロックは、計算モード入力および出力を有し、それぞれが記憶モード入力および出力を有し、
さらに、前記複数のNANDブロックの前記計算モード入力および出力、および記憶モード入力および出力に接続されるバスシステムを有する請求項1~6いずれか一項に記載の回路。
【請求項8】
前記複数のNANDブロック内の所定のNANDブロックの記憶モード入力は、前記所定のNANDブロックのビット線を介してデータを読み書きするページバッファ回路を含む請求項7に記載の回路。
【請求項9】
前記複数のNANDブロック内のブロックはそれぞれ、
B列およびS行のNANDストリングと、L個のレベルのメモリセルと、を含むB×S個のNANDストリングであって、B、SおよびLは整数であり、L個のレベルの各レベルにおいて直列なL個のメモリセルを含む前記NANDストリングと、
B個のビット線の組の対応するビット線に結合されるB列の各列のS個のNANDストリングの組と、
S個のストリング選択線の組内の対応するストリング選択線に結合されたS行内の各行におけるB個のNANDストリングの組内のストリング選択スイッチと、
前記L個のレベル内の対応する1または複数のワード線に動作可能に結合された前記L個のレベルの各レベルにおけるB×S個のメモリセルの組と、
前記ブロック内の前記B×S個のNANDストリングに動作可能に結合されたソース線と、
を有する請求項1~8いずれか一項に記載の回路。
【請求項10】
パイプライン方式で前記複数のNANDブロックを動作させるコントローラを含む、請求項1~9いずれか一項に記載の回路。
【請求項11】
B列およびS行のNANDストリングと、L個のレベルのメモリセルとを含み、B、SおよびLは整数であり、前記NANDストリングは、前記L個のレベルの各レベルにおいて直列なL個のメモリセルを含む、NANDストリングのブロックと
B列の各列のS個のNANDストリングに結合されたB個のビット線と、
S行内の各行のB個のNANDストリングに結合されたS個のストリング選択線と、
L個のレベルの各レベルのB×S個のメモリセルに動作可能に結合されたW個のワード線と、
前記ブロック内のNANDストリングに動作可能に結合されたソース線と、
複数のストリング選択線上のNANDストリングを対応するビット線に同時に接続するストリング選択電圧を供給するためにS個のストリング選択線に結合されたストリング選択線ドライバと、
選択されたレベルの1または複数のワード線にワード線電圧を印加するように結合されたワード線ドライバと、
入力データ信号を複数の前記B個のビット線に印加するために前記B個のビット線内のビット線に結合された複数のビット線ドライバと、
前記ソース線に結合された電流検出回路と、
を有する回路。
【請求項12】
プログラムモードで前記ブロック内の前記NANDストリングをプログラムするために入力データ信号を印加するために、前記B個のビット線内のビット線に動作可能に結合されたページバッファを含む、請求項11に記載の回路。
【請求項13】
ビット線BL(i)に結合されたストリング選択線SSL(j)上の、NANDストリングの列C(i)のNANDブロックのレベルL(k)のセル内に積項X(i)×W(i)の係数データw(i、j)を、iは1からB、jは1からS、kは選択されたワード線レベルに等しい場合に、記憶すし、
入力X(i)をビット線BL(1)~BL(B)に、ストリング選択電圧をストリング選択線SSL(1)~SSL(S)に、ワード線計算電圧を選択されたワード線レベルのセルに、同時に印加し、
NANDブロックのためのソース線上のビット線BL(1)~BL(B)に接続されたNANDストリングの列C(1)~C(B)を通る電流を組み合わせ、
積和を表す出力信号を生成するためにソース線上の電流の大きさを検出する、
積和のインメモリ計算方法。
【請求項14】
集積回路内の複数の積和アクセラレータタイルを含み、
各タイルは、
それぞれが入力および出力を有し、各NANDブロックは、複数の列および複数の行のNANDストリングを含む複数のNANDブロックと、
対応する前記NANDブロック内の前記複数の列および複数の行のNANDストリングにそれぞれ結合され、前記NANDブロック内の前記複数の列および複数の行のNANDストリングによって共有されるソース線上の前記複数の列および複数の行のNANDストリングの電流の合計が前記タイルによって検出される複数のソース線と、
入力および出力に接続されたデータ経路と、
前記複数の積和アクセラレータタイルの前記データ経路に結合された前記集積回路上のタイル間バスシステムと、
前記タイル間バスシステムに結合された集積回路上の入力/出力回路と、
を有する回路。
【請求項15】
前記複数のタイル間のデータフローを制御するシーケンサロジックを含む、請求項14に記載の回路。
【請求項16】
各タイルは、
前記複数のNANDブロックに結合された複数のビット線を含み、
前記複数のビット線内のビット線に結合された入力ドライバと、
前記複数のソース線内のソース線に結合されたセンス増幅器と、
前記複数のビット線内のビット線に結合されたページバッファと、
を有する請求項14又は15に記載の回路。
【請求項17】
各タイルは、
前記複数のNANDブロックに接続された複数のビット線を含み、前記複数のビット線内の複数のビット線の組は、前記複数のNANDブロックのそれぞれに結合され、
前記複数のNANDブロック内のNANDブロックは、
その複数のビット線の組とそのソース線との間の複数のNANDストリングであって、当該複数のビット線の組内の対応するビット線と、直列に配置されたメモリセルと、にNANDストリングを選択的に接続するストリング選択セルを有するNANDストリングを有し、当該複数のビット線の組のビット線は、前記複数のNANDストリングのNANDストリングの組のそれぞれに結合され、
前記複数のNANDブロック内のNANDブロックは、
前記NANDブロックの対応するワード線レベル内のメモリセルのゲートに結合されたワードラインと、
前記複数のNANDストリング内のNANDストリングの対応する行内のストリング選択セルのゲートに結合されたストリング選択線と、
を有する請求項14又は15に記載の回路。
【請求項18】
前記NANDブロックについて、前記複数のビット線の組はB個のメンバーを含み、前記NANDブロックは少なくともS個のメンバーを有するストリング選択線の組を含み、
ストリング選択ドライバは、前記NANDブロックの列内のS個のNANDストリングを、前記複数のビット線の組内のビット線のそれぞれに接続するように動作可能であり、
前記ソース線上の電流は、B個の積の合計であり、各積項は、前記複数のビット線の組内の1の前記ビット線上の入力信号と、当該1のビット線に接続されたS個のNANDストリングのコンダクタンスの積の関数である請求項17に記載の回路。
【請求項19】
各タイル内の前記複数のNANDブロック内の所定のNANDブロックの入力は、前記所定のNANDブロックのビット線に並列に入力データを印加する1組のビット線ドライバを含み、
前記複数のNANDブロック内の所定のNANDブロックの出力は、前記所定のNANDブロックのソース線上の出力データを検出するマルチビットセンス増幅器を含む、請求項14~18いずれか一項に記載の回路。
【請求項20】
各タイルについて、前記複数のNANDブロック内のブロックはそれぞれ、
B列およびS行のNANDストリングと、L個のレベルのメモリセルと、を含むB×S個のNANDストリングであって、B、SおよびLは整数であり、L個のレベルの各レベルにおいて直列なL個のメモリセルを含む前記NANDストリングと、
B個のビット線の組の対応するビット線に結合されるB列の各列のS個のNANDストリングの組と、
S個のストリング選択線の組内の対応するストリング選択線に結合されたS行内の各行におけるB個のNANDストリングの組内のストリング選択スイッチと、
前記L個のレベル内の対応する1または複数のワード線に動作可能に結合された前記L個のレベルの各レベルにおけるB×S個のメモリセルの組と、
前記ブロック内の前記B×S個のNANDストリングに動作可能に結合されたソース線と、
を有する請求項14~19いずれか一項に記載の回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は積和演算を実行するために使用することができる回路に関する。
【背景技術】
【0002】
線形代数に基づくいくつかの種類の計算に使用される神経形態学的コンピューティングシステム、機械学習システムおよび回路では、積和関数が重要な要素となり得る。関数は、以下のように表し得る。
【数1】
【0003】
この数式では、各積項は、変数入力Xiと重みWiの積である。重みWiは、例えば変数入力Xiの係数に対応して、項間で変化し得る。
【0004】
積和関数は、アレイのセルの電気的特性が機能を生じさせるクロスポイントアレイアーキテクチャを使用する回路動作として実現することができる。
【0005】
高速実装のためには、多くの演算が並列に実行され得るように、または非常に大きな積和列が実行され得るように、非常に大きなアレイを有することが望ましい。システムによっては、非常に多数の入力および出力が存在し得るため、合計の消費電流が大きくなり得る。
【0006】
また、人工知能AI機能は、マルチビット重みを用いた積和演算MACステップ(すなわち積和)を含む大規模な行列の積を含み、非常に高密度のメモリ、および広帯域幅のデータ通信を必要し得る。
【0007】
AIハードウェアにおける近年の進歩は、高性能かつ低電力の解決策に関するものである。これらの需要を満たすために、「インメモリ計算」または「プロセッサインメモリ」の実装が提案されている。これらの技術は、電力と待ち時間を節約するためにデータ移動要件を軽減し得る。
【発明の概要】
【発明が解決しようとする課題】
【0008】
大規模アレイでの実装に適し、柔軟かつ大容量でエネルギー効率がよい積和演算のための構造を提供することが望まれている。
【課題を解決するための手段】
【0009】
大規模な積和演算のための積和演算技術は、複数のNANDブロックを使用するインメモリ計算に基づいて説明される。本明細書に記載の例で使用されるNANDブロックは、3D NANDフラッシュ技術を使用して実装することができる。
【0010】
NANDブロック内のNANDストリングの組を、ビット線の組内のそれぞれのビット線に接続し、ビット線の組からNANDストリングのそれぞれの組を通るソース線上の電流の合計を検出するため、複数のNANDブロックのうちの1つのNANDブロックに結合された複数のビット線の組に入力信号を印加するための手段が記載されている。NANDストリングの組のコンダクタンス(またはその逆数、抵抗)は、NANDストリング上のメモリセルに記憶されているデータによって決定される。
【0011】
本明細書に記載の実施形態における複数のNANDブロック内のNANDブロックは、複数のビット線の組内のビット線とNANDブロックのソース線との間に配置された複数のNANDストリングを含む。NANDストリングは、NANDストリングを対応するビット線に選択的に接続するストリング選択スイッチを有する。NANDストリングは、ストリング選択スイッチと接地選択スイッチとの間に直列に配置された複数のメモリセルを含み、それによりNANDストリングはソース線に接続される。ワード線は、NANDブロックの対応するワード線レベル内のメモリセルのゲートに結合されている。同様に、ストリング選択線は、NANDストリングの対応する行内のストリング選択スイッチのゲートに結合されている。
【0012】
特定のNANDブロックについて、複数のビット線の組はB個のメンバーを含み得、そしてNANDブロックは少なくともS個のメンバーを有するストリング選択線の組を含み得る。この構成では、NANDブロックは、B列およびS行のNANDストリングを含むB×S個のNANDストリングのアレイを含む。NANDブロックの列内のS個のNANDストリング(各行から1つずつ)を複数のビット線の組内の各ビット線に接続するために、1組のストリング選択ドライバが計算モードで動作可能である。このように、ソース線上の計算モード電流はB個の積項の和であり、各積項は複数のビット線の組内の1つのビット線上の入力信号と、ビット線に接続されたS個のNANDストリングのコンダクタンスの積の関数である。
【0013】
それぞれ計算モードおよび記憶モードで動作可能な複数のNANDブロックを含む回路が説明される。バスシステムが複数のNANDブロックの入力および出力に接続され、それにより積和演算の入力データがNANDブロックに適用され得、積和演算の係数がNANDブロックに格納され得る。
【0014】
計算および記憶モードで使用される入力および出力回路は共有することができ、場合により、異なるモードに異なる回路を使用しても良い。所定のNANDブロックの計算モード入力は、所定のNANDブロックのビット線に並列に入力データを印加するビット線ドライバの組を含むことができる。所定のNANDブロックの計算モード出力は、所定のNANDブロックのソース線上の出力データを検出するためのマルチビットのセンス増幅器を含むことができる。所定のNANDブロックの記憶モード入力は、計算モード用の入力ドライバを含み得るか、または別個の回路とし得る、ページバッファ回路を含むことができる。
【0015】
本技術の他の態様では、積和演算アクセラレータでの使用に適したNANDブロックの構造が説明される。また、本技術の他の態様では、各タイルが上述の複数のNANDブロックを含む、複数の積和タイルを含む集積回路が説明される。
【0016】
以下の構成を含む、積和のインメモリ計算の方法が記載される。
a)ビット線BL(i)に結合されたストリング選択線SSL(j)上の、NANDストリングの列C(i)のNANDブロックのレベルL(k)のセル内に積項X(i)×W(i)の係数データw(i、j)を、iは1からB、jは1からS、kは選択されたワード線レベルに等しい場合に、記憶する。
b)入力X(i)をビット線BL(1)~BL(B)に、ストリング選択電圧をストリング選択線SSL(1)~SSL(S)に、ワード線計算電圧を選択されたワード線レベルのセルに、(同時にまたは検出のためにセルにバイアスをかけるために時間的に重なる組み合わせで)印加する。
c)NANDブロックのためのソース線上のビット線BL(1)~BL(B)に接続されたNANDストリングの列C(1)~C(B)を通る電流を組み合わせる。
d)積和を表す出力信号を生成するためにソース線上の電流の大きさを検出する。
【発明の効果】
【0017】
本明細書に記載されるように配置されたNANDブロックのアレイは、パイプライン方式で動作し得、機械学習システムの推論モード動作に使用可能なものなど、高スループット動作を支援する。
【0018】
本明細書に記載の技術を適用して、高密度でエネルギー効率の良い積和アクセラレータが提供される。実施形態は、1ワット当たりテラ演算TOPSのオーダーで実行するように構成し得る。
【0019】
本発明の他の態様および利点は、添付の図面、以下の詳細な説明および特許請求の範囲を検討することによって理解することができる。
【図面の簡単な説明】
【0020】
図1図1は、積和演算の図である。
【0021】
図2図2は、本明細書に記載の記憶モードおよび計算モードに構成可能なNANDブロックの回路図である。
【0022】
図3図3は、図2のような複数のNANDブロックを示す回路図である。
【0023】
図4図4は、本明細書に記載のNANDブロックでの使用に適した他のNANDストリングの実装形態を示す図である。
【0024】
図5図5は、本明細書に記載のNANDブロックの簡略図である。
【0025】
図6図6は、記憶モードと計算モードとを有し、複数のNANDブロックを含む集積回路を示す図である。
【0026】
図7図7は、複数のタイルを含む大規模集積回路を示す図であり、各タイルは、本明細書に記載のNANDブロックアレイを含む。
【0027】
図8図8は、NANDブロックアレイMACアクセラレータを備える集積回路の簡略ブロック図である。
【0028】
図9図9は、本明細書に記載のNANDブロックアレイを含み得る、積和アクセラレータアレイを含むシステムの構成の図である。
【0029】
図10図10は、本明細書に記載のNANDブロックアレイを含み得る、積和アクセラレータアレイを含むシステムの他の構成の図である。
【0030】
図11図11は、本明細書に記載されるインメモリ積和演算の方法のフローチャートである。
【発明を実施するための形態】
【0031】
以下の説明は、典型的には特定の構造的実施形態および方法に関する。本技術を、具体的に開示された実施形態および方法に限定する意図はなく、本技術は他の特徴、要素、方法および実施形態を用いて実施されても良いことが理解されるべきである。好ましい実施形態は、本技術を説明するために記載されており、特許請求の範囲によって定義される範囲を限定するものではない。当業者は、以下の説明において様々な均等な変更を認識し得る。
【0032】
本明細書で使用されるとき、「結合された」という用語は、動作可能に結合されたことを意味する。この意味で結合されている構成は直接接続されている必要はなく、結合されている構成間に介在する構成があってもよい。
【0033】
図1は、積和演算の図であり、ここで、和の項は、入力Xiと重みWiの積であり、この例では、iは1から7になる。重みWiは、和の項により異なり得る。動作中、重みは一組の係数として、次に、入力が変化するにつれて変化する和を計算するために印加される入力として割り当てられることができる。また、学習手順を実行するアルゴリズムでは、学習手順が、使用可能な結果を達成する和から学習するために係数を変更するにつれて、重みは刻々と変更されることができる。
【0034】
図示の例では、0と1の間のような最小と最大の間の非線形の範囲の出力を生成するために、和の出力はシグモイド関数に適用される。ロジット関数、整流関数など、他の活性化関数を用いても良い。積和演算は、神経形態学的ではない、または神経系をモデル化するために他の方法で考慮されていない構成にも同様に適用することができる。
【0035】
畳み込みニューラルネットワークおよび他の種類のニューラルネットワークを含むニューラルネットワークは、多くの場合、層状に構造化されたロジックを含み、各層は、場合によっては活性化関数が適用された前の層の出力を入力として受け取ることができ、数百または数千の積和演算を並列に実行し、その出力は後続の活性化関数または他の論理装置に適用される。
【0036】
図2は、行および列に配置された垂直なNANDストリングのアレイを含むNANDブロックの概略図である。説明の目的のため、NANDブロック内の行は、共通のストリング選択線と共通のワード線とを有し、それぞれが共通のストリング選択線に応じて異なるビット線に結合され、共通のストリング選択線およびワード線に沿って一行に論理的に配置されるNANDストリングの組である。説明の目的のため、NANDブロック内の列は、共通のビット線に沿って列状に論理的に配置されるように、異なるストリング選択線にそれぞれ結合された共通のビット線を有するNANDストリングの組である。物理的レイアウトでは、適用される製造方法に応じて、列または行をねじったり、ハニカム状に配置したり、あるいは高密度または他の理由のためにレイアウトしても良い。図において、アレイの第1列のNANDストリング200およびNANDストリング201は、第1ビット線BL(1)およびブロックのソース線SL1に結合されている。また、アレイの第2列のNANDストリング202およびNANDストリング203は、第2ビット線BL(2)およびブロックのソース線SL1に結合されている。図示の例では、図を簡単にするために2本のビット線が示されている。所定のNANDブロックは、所定の実施形態では数十、数百または数千のビット線を含む、iが1からBの多くのビット線BL(i)に、NANDストリングのアレイ内の対応する数のNANDストリングの列とともに、結合され得る。
【0037】
NANDストリングのアレイ内の各NANDストリングは、対応するストリング選択線SSL(1)およびSSL(S)に結合されたストリング選択スイッチを含み、これは対応するNANDストリングをそのビット線に接続および切断するために使用される。アレイの第1行内のNANDストリング200およびNANDストリング202は、ブロックの第1ストリング選択線SSL(1)に結合されている。NANDストリング201とNANDストリング203とアレイのS番目の行はS番目のストリング選択線SSL(S)に結合される。図示の例では、図を簡単にするために2本のストリング選択線が示されている。所定の実装形態では、所定のNANDブロックは、NANDストリングのアレイ内の対応する数のNANDストリングの行とともに、多くのストリング選択線に結合することができると考えられる。
【0038】
NANDストリングのアレイ内の各NANDストリングは、ブロックの接地選択線GSL1に結合された接地選択スイッチを含み、これはNANDストリングのアレイ内の対応するNANDストリングをブロックのソース線SL1に接続するために使用される。いくつかの実施形態では、対応するNANDストリング上の接地選択スイッチは、本明細書で説明される記憶モードおよび計算モードを支援する適切な復号回路を有する別々の接地選択線によって制御され得る。
【0039】
NANDストリングのアレイ内の各NANDストリングは、対応するワード線に結合された、ストリング選択スイッチと接地選択スイッチとの間に直列に配置された複数のメモリセルを含む。この例では、NANDブロックの所定のレベル内の全てのワード線は、単一のワード線導体に、または単一のワード線デコーダによって共通に制御される別々のワード線導体に共通に結合され、NANDブロックの所定のレベル内の全ての、または選択された複数の、メモリセルの行は、同じワード線信号を受け取ることができる。この例では、NANDブロックのNANDストリングは、32本のワード線WL0~WL31に結合された32レベルのメモリセルを含む垂直NANDストリングである。
【0040】
記憶モードの動作では、ブロックの複数のビット線に結合されたページバッファ(図示せず)によって支援されるプログラムおよび消去動作を使用して、データを個々のメモリセルに書き込むことができる。記憶モードの動作では、通常、NANDストリングのアレイ内のNANDストリングの行のうちの1つが、選択されたストリング選択線を使用して選択される。この場合、NANDストリングのアレイの各列内のNANDストリングのうちの1つは、ビット線のうちの1つに結合される。ページバッファを利用して、データパターンを、NANDブロックの各レベルで、複数のビット線に並列に結合されたNANDストリングのアレイの選択された行内の個々のNANDストリングにプログラムすることができる。また、記憶モードのページバッファを利用して、NANDブロックの各レベルで、NANDストリングのアレイの選択された行内のメモリセルに記憶されているデータを読み取ることができる。
【0041】
記憶モードでは、積和演算の係数をNANDブロックに格納し得る。NANDブロック内のNANDセルは、セル当たり単一ビット技術またはセル当たり複数ビット技術を使用して実装することができる。いくつかの実施形態では、後述するように、係数が複数のNANDストリングにわたって分散される方法で格納されるので、セル当たり単一ビット技術が好ましい場合がある。他の実施形態では、NANDブロックへの係数のプログラミングにおいて、さらに高い精度を提供するために、セル当たり複数ビット技術を使用しても良い。
【0042】
図1の図を参照すると、入力信号X1およびX2は、ビット線BL(1)およびBL(2)に印加される電圧VBL(1)およびVBL(2)によって表すことができる。係数W1は、第1のビット線BL(1)に結合されたストリング選択スイッチの対応するストリング選択線によって選択された、1または複数の選択されたNANDストリングの導電率によって表すことができる。係数W2は、第2のビット線BL(2)に結合されたストリング選択スイッチの対応するストリング選択線によって選択された、1または複数の選択されたNANDストリングの導電率によって表すことができる。
【0043】
選択されたNANDストリングの導電率は、NANDブロックの選択されたレベルにおいて、メモリセルに記憶されたデータによって決定される。図では、ワード線WL(1)のレベルのNANDストリングが選択されている。従って、図示のように、積項W1×X1の第1の係数W1は、全てのS個のストリング選択線がそれらの対応するNANDストリングを第1のビット線BL(1)に接続するように駆動される場合、係数値w(1-1):w(1-S)の組み合わせに対応する。積項W2×X2の第2の係数W2は、全てのS個のストリング選択線がそれらの対応するNANDストリングを第2ビット線BL(2)に接続するように駆動される場合、係数値w(2-1):w(2-S)の組合せに対応する。
【0044】
本明細書に記載の計算モードの動作では、NANDブロックの積和演算の結果として生成される信号OUTPUT Y1が、ブロックのソース線SL1上に提供される。NANDストリングのアレイ内のN個のストリング選択線およびN行のNANDストリングと共に、NANDストリングのアレイ内に2本のビット線と2列のNANDストリングを含む、図2に示す例では、出力OUTPUT Y1は、NANDブロック内のNANDストリングの電流の合計に対応する電流経路290によって蓄積された電流である。
【0045】
図示のように、電流経路290は、NANDストリング200からソース線SL1を通るビット線BL(1)上の電流と、NANDストリング201からソース線SL1を通るビット線BL(1)上の電流と、NANDストリング202からソース線SL1を通るビット線BL(2)上の電流と、NANDストリング203からソース線SL1を通るビット線BL(2)上の電流と、を含む。
【0046】
経路290から蓄積された電流は、積和項W1×X1およびW2×X2に対応する。係数W1は、ワード線WL(1)およびビット線BL(1)に結合されたメモリセルの列におけるデータ値w(1-1):w(1-S)の関数であり、係数W2は、ワード線WL(2)およびビット線BL(2)に結合されたメモリセルの列におけるデータ値w(2-1):w(2-S)の関数である。積項の係数を表すために、所定のビット線に結合されたメモリセルの各列のS個のメモリセルを使用することは、係数を表すために(例えば、複数の有効桁を有する)高精度データの使用を可能にする。計算モード動作中にストリング選択線によって同時に選択される行数、およびそれにより係数を表すために使用されるメモリセルの数を制御することにより、係数の精度は特定の実施形態の必要に応じて変化し得る。したがって、S個のストリング選択線を含むブロックに対して、単一の係数は、入力データ値が単一のビット線上の電圧によって表される場合、1から4の範囲のいくつかのメモリセルに記憶されたデータによって表すことができる。
【0047】
本明細書に記載のNANDブロック内の単一のNANDストリングにおいて、計算モード中に生成される電流は、比較的小さい可能性がある。したがって、NANDブロックのNANDストリングのアレイ内の全てのNANDストリングからの電流の組み合わせは、ブロックのソース線SL1に結合された電流検出センス増幅器を使用して効率的に検出される電流値の範囲内に留まり得る。
【0048】
本明細書に記載のNANDブロックは、3D NANDメモリ技術を使用して実装することができる。この技術分野で周知の様々な代替案の中でも、垂直NANDストリングを含むNANDブロックのいくつかの例が、2017年7月4日に発行された、Lueによる、VERTICAL THIN CHANNELL MEMORYと題された米国特許第9,698,156号、および2016年12月20日に発行された、Lueによる、U-SHAPED VERTICAL THIN CHANNEL MEMORYと題された米国特許第9,524,980号に記載され、そのような特許は、あたかも完全に本明細書に記載されているかのように参照により組み込まれる。実装は、NANDブロックが複数の2D NANDアレイにわたって論理的に定義される2D NAND技術を使用して行っても良い。
【0049】
図3は、図1のような複数のNANDブロックを含む回路が、ニューラルネットワークに使用可能な大規模積和計算の目的とする積和アクセラレータとして、NANDブロックの単一のアレイに相互接続され得る一例を示す概略図である。図3では、ブロック1は、図2に関して上述した方法で実装される。同様に、ブロック2も同様の方法で実施される。ブロックはビット線を共有する。したがって、ビット線BL(1)は、ブロック1のNANDストリングのアレイ内のNANDストリングの第1列、およびブロック2のNANDストリングのアレイ内のNANDストリングの第1列に結合される。同様に、ビット線BL(2)は、ブロック1のNANDストリングのアレイ内のNANDストリングの第2列と、およびブロック2のNANDストリングのアレイ内のNANDストリングの第2列とに結合される。積和演算を目的として、NANDブロックを順番に動作させることができる。したがって、ビット線BL(1)およびBL(2)上の入力X1およびX2は、ストリング選択線および接地選択線により有効とされるように、ブロック1を使用して積和演算に使用することができる。続いて、ビット線BL(1)およびBL(2)上の入力X1およびX2は、ブロック2を用いた積和演算に使用することができる。ワード線は、ブロックごとに別々に動作および復号することができる。
【0050】
図示の例では、ブロック1に記憶されている係数W1は、ブロックの選択されたレベルにあるNANDストリングの列内のメモリセルに記憶されているデータ値によって表される。したがって、ブロック1では、ワード線WL(1)のレベルの選択されたレベルについて、ブロック1、ビット線BL(1)、およびストリング選択線SSL(1):SSL(N)の係数w1は、データ値w(1-1、1):w(1-N、1)の組み合わせに対応する。同様に、ワード線WL(1)のレベルの選択されたレベルについて、ブロック1、ビット線BL(2)、およびストリング選択線SSL(1):SSL(N)の係数W2は、データ値w(2-1、1):w(2-N、1)の組み合わせに対応する。ブロック2では、ワード線WL(1)のレベルの選択されたレベルについて、ブロック2、ビット線BL(1)およびストリング選択線SSL(1):SSL(N)の係数W1は、データ値w(1-1、2):w(1-N、2)の組み合わせに対応する。同様に、ワード線WL(1)のレベルの選択されたレベルについて、ブロック2、ビット線BL(2)、およびストリング選択線SSL(1):SSL(N)における係数W2は、データ値w(2-1、2):w(2-N、2)の組み合わせに対応する。
【0051】
図3に示すNANDブロックのパターンは、実用的な数のNANDブロックに対してビット線に沿って、そして実用的な数のNANDブロックに対してワード線に沿って繰り返し得る。このようにして、積和演算の大規模計算を目的として、多数のNANDブロックを含む回路を実現することができる。
【0052】
図4は、本明細書に記載のNANDブロックで使用することができる代替のNANDストリング構成を示す。図2および図3において、NANDストリングは一直線のNANDストリングであり、ストリング選択ゲートはNANDストリングの上部でビット線に結合され、接地選択ゲートはNANDストリングの下部でソース線に結合されている。図4に示す代替形態では、U字型のNANDストリングが示されている。U字型のNANDストリングを使用して、ソース線およびビット線をNANDストリングの3Dブロックの上に配線することができる。したがって、図4に示すように、ビット線401は、ストリング選択スイッチ405によりU字型のNANDストリングの第1の側に結合されている。U字型のNANDストリングの第1の側面の底部にあるアシストゲート403は、U字型のNANDストリングの第2の側面に結合されている。U字型のNANDストリングの第2の側の頂部では、接地選択スイッチ406がNANDストリングをソース線402に接続する。ビット線およびソース線は、集積回路上のパターン化された金属の異なる層上に配線されることができる。
【0053】
図5は、本明細書に記載のように構成されたNANDブロックの概念図である。図1に示すような複数の垂直なNANDストリングを含む、NANDブロックBLOCK1が表されている。メモリセルのレベルにおけるNANDブロックの深さは、ワード線レベルWL(1:L)の数Lに対応する。NANDブロック内のNANDストリングの列数は、ビット線BL(1:B)の数Bに対応する。NANDブロック内のNANDストリングの行数は、ストリング選択線SSL(1:S)の数Sに対応する。
【0054】
ページバッファおよび入力ドライバ510は、複数のビット線BL(1:B)に結合されている。ページバッファは、複数のビット線内のビット線に結合されたビット線ドライバと、複数のビット線内のビット線に結合されたセンス増幅器とを含む。ページバッファ/入力ドライバ510は、記憶モードにおいて、係数をブロックに書き込むために使用されるデータを保持するために使用される。記憶モードでは、ページバッファは、例えばNANDフラッシュアレイにおいて、プログラム及び消去動作中にビット線電圧を印加する目的で使用される。計算モードでは、入力ドライバは、積和演算の入力データに対応するビット線電圧を印加するために使用される。いくつかの実施形態では、ページバッファは、入力データ値のデータパターンを定義するための手段として、計算モードで利用することができる。他の実施形態では、入力データ値は、代替のメモリ経路およびデコーダを使用して入力ドライバに印加することができる。同様に、いくつかの実施形態では、計算モードで使用される入力ドライバを、記憶モードで使用されるページバッファ内のビット線ドライバに含めることができる。他の実施形態では、記憶モード用のビット線ドライバは、計算モード用の入力ドライバとは異なる。
【0055】
ワード線およびストリング選択線/接地選択線デコーダ512は、複数のワード線と、NANDブロックの複数のストリング選択線および接地選択線とに結合されている。デコーダ512は、NANDストリングを対応するビット線に接続するために、複数のストリング選択線のうちの1または複数を選択するように動作可能である。また、デコーダ512は、ブロックの特定のレベルで選択されたワード線WL(SEL)を駆動することにより、メモリセルのレベルを選択するように動作可能である。記憶モードでは、デコーダ512は、通常、ページ読み取りまたはページ書き込み動作のために、1つのストリング選択線と1つのワード線とを選択する。計算モードでは、デコーダ512は、全てのストリング選択線を含む複数のストリング選択線と、積和演算のための1つのワード線とを選択して、アレイ内の選択されたNANDストリングのコンダクタンスの合計に対応する電流をソース線515上に生成する。
【0056】
ソース線515はセンス増幅器514に結合され、ソース線515上の電流をデジタル出力値Y1に変換する。センス増幅器514は、記憶モード中は無効にすることができる。ページバッファ/入力ドライバ510およびセンス増幅器514は、大規模な積和演算のために、NANDブロック間において入力および出力データの経路を設定するために、データバスシステム520に結合することができる。記憶モード動作および計算モード動作のために、図示されていないシーケンスコントローラを使用して、デコーダ512、ページバッファ/入力ドライバ510、およびセンス増幅器514の動作を調整することができる。
【0057】
これらの要素510、512、および514、ならびに本明細書に記載の様々な実施形態は、NANDブロック内のNANDストリングの組をビット線の組内のそれぞれのビット線に接続し、ビット線の組からNANDストリングのそれぞれの組を通る電流の合計を感知するため、複数のNAND内のNANDブロックに結合された複数のビット線内の複数のビット線の組に入力信号を印加するための手段を備える。
【0058】
図5は単一のNANDブロックを示す。図6は、NANDブロックのアレイ600を含む回路タイル650のブロック図である。この例では、NANDブロックのアレイ600は、8×8アレイに64個のブロックを含む。ワード線およびストリング選択線デコーダ612は、タイル内に配置されている。個々のブロックに対するワード線デコーダおよびワード線は、独立して制御することができる。また、個々のブロックに対するストリング選択デコーダおよびストリング選択線は、別々の回路として実現することができ、独立して制御することができる。
【0059】
いくつかの実施形態では、ワード線デコーダおよびワード線、ならびにストリング選択線デコーダおよびストリング選択線は、水平レーン内のNANDブロックのいくつかまたはすべてが、同じワード線導体およびワード線デコーダ、および同じストリング選択線およびストリング選択線デコーダを共有するように、水平レーンに配置され得る。この8×8アレイでは、例えば、8水平レーンのNANDブロックがあっても良い。
【0060】
タイルのビット線は、大規模NAND記憶デバイスに使用されるような一組の回路に結合される。一組の回路は、ビット線上でプログラムおよび消去動作の支援に使用するためにビット線に結合された高電圧スイッチ622を含む。また、一組の回路は、積和演算の入力値に対応するビット線電圧を含む、ビット線に電圧を印加するように構成された、計算モード中のロジック入力用のビット線入力ドライバ621を含む。1組の回路はまた、プログラム検証動作中にデータを記憶するために使用され、メモリアレイからのデータの転送のための読み出し動作に使用され、およびプログラム動作用のデータの組を定義するために使用されるページバッファ620を含む。また、ページバッファ620は、所定の積和演算の複数のビット線上で計算モード中に印加される電圧レベルを選択するために、ロジック経路の一部として利用することができる。
【0061】
ページバッファ620、ビット線入力ドライバ621、および高電圧スイッチ622は、垂直レーン内のすべてのNANDブロックが同じビット線および関連する回路を共有するように、複数の垂直レーンに配置することができる。1の実施形態では、NANDブロックのアレイ600は、この例では、8個のNANDブロックの列に結合された、8の1Kレーンのビット線に構成された、8Kビット線を含むことができる。
【0062】
センス増幅器614は、NANDブロックのアレイ600に結合されている。例えば、それぞれがアレイ600の複数のNANDブロック内の64個のNANDブロックのうちの1つに結合された、64個の電流検出センス増幅器であっても良い。他の実施形態では、一組のセンス増幅器614は、アレイ600の各水平レーンに一つのセンス増幅器を含むことができる。他の実施形態では、一組のセンス増幅器614は、各垂直レーンに一つのセンス増幅器を含むことができる。
【0063】
図6に示すように、デジタル入出力データを搬送するデータ経路(XデジタルIO)は、ページバッファ620およびビット線入力ドライバ621に結合されデータバスシステムまたは、タイルが実装される集積回路上の入出力IO回路に接続することができる。同様に、センス増幅器614からのデジタル出力(Y nビット出力)を搬送するデータ経路は、データバスシステム、またはタイルが実施される集積回路上のI/O回路に接続することができる。
【0064】
図7は、図6に示すようなタイルを複数含む実施形態を示す。したがって、3×3グリッドに配置されたタイルTILE1からTILE9を含む集積回路700が示されている。集積回路700上のタイル間バスシステム750は、複数の積和アクセラレータタイル上のデータ経路に結合されている。シーケンスコントローラ703は、バスシステム750を介してタイルのグリッドに結合され、複数のタイル間のデータフローを制御し、例えば、バスシステム750によって配信される記憶モード動作および計算モード動作について、コマンドシーケンスを使用してタイルの動作を設定する。入出力インターフェース705は、例えば、大容量DDR DRAMインターフェース、大容量シリアルインターフェース、大容量PCIeインターフェース、および大量のデータをグリッドに出し入れするための他の業界標準またはカスタムインターフェース、を含む複数の入力インターフェース710を含み得るシーケンスコントローラ703に結合される。
【0065】
図8は、図6および図9に示す様々な実施形態において例えば図2に示すように実施された、フラッシュメモリセルのNANDブロックアレイ860を備えるMACアクセラレータメモリアレイを含む集積回路装置800の他の実施形態の簡略化されたチップブロック図である。この例の装置800は、上述したように、例えば記憶モードでのメモリ動作のための状態機械および計算モードにおけるMACアクセラレータまたは積和演算を含む、コントローラ810を含む。また、この例におけるコントローラ810は、NANDブロックアレイ860を含む大規模AI機能におけるデバイス800の使用、およびデバイスの内外のデータフロー動作を制御するためのシーケンサを含む。
【0066】
集積回路装置800は、アレイ860内の対応するNANDブロックに結合された一組のソース線855と、アレイ860内の対応するNANDブロックに結合された一組のビット線865とを含む。
【0067】
一組のワード線が、対応するNANDブロックのレベルでメモリセルのゲートに結合され、一組のワード線内のワード線上の信号がそれぞれのレベルのメモリセルを選択する。ワード線ドライバ840は、一組のワード線845に結合されている。
【0068】
一組の検出回路850は、一組のソース線内のそれぞれのソース線に結合される。アレイを使用した積和演算のために、ソース線検出回路850は、メモリアレイ860からソース線855における電流を検出することができる。一組のソース線内の特定のソース線で検出された電流は、上述したように積和を表し得る。ソース線検出回路850からの検出データは、データ線853を介して入出力回路891に供給される。
【0069】
回路内のビット線ドライバ870は、ページバッファ875とビット線865とに結合されている。アレイを使用した積和演算のために、回路内のビット線ドライバ870は、選択された各ビット線について入力x(m)を生成することができる。
【0070】
アドレスは、制御ロジック(コントローラ)810からページバッファ875、回路内のビット線ドライバ870、およびワード線ドライバ840へ、バス830上で供給される。ページバッファ875、回路内のビット線ドライバ870、およびソース線検出回路850は、線853、885により、入力/出力回路891に結合されている。
【0071】
入力/出力回路891は、データを集積回路装置800の外部の宛先に送る。入出力データおよび制御信号は、データバス805を介して、入出力回路891、制御ロジック810、および集積回路装置800の入出力ポート、または、例えば、汎用プロセッサまたは特殊用途のアプリケーション回路、あるいはメモリアレイ860により支援されるシステムオンチップ機能を提供するモジュールの組み合わせなど、集積回路装置800の内外の他のデータソースとの間を移動する。
【0072】
図8に示す例では、バイアス配置状態機械を使用して、制御ロジック810は、計算モードでは積和演算のため、記憶モードでは読み書き(プログラムと消去)動作のために、ブロック820において、1または複数の電圧供給を通じて生成または提供される供給電圧の印加を制御する。
【0073】
制御ロジック810は、本技術分野で知られている専用ロジック回路を使用して実施することができる。他の実施形態では、制御ロジックは、同じ集積回路上に実装可能な汎用プロセッサを含み、汎用プロセッサはコンピュータプログラムを実行して装置の動作を制御する。さらに他の実施形態では、専用ロジック回路と汎用プロセッサの組み合わせを制御ロジックの実装に使用することができる。
【0074】
制御ロジック810はまた、装置の計算モードでパイプライン動作を支援する回路を実装し得る。たとえば、次の表は、ブロックの出力を受および処理するロジックにより支援されるSRAMを使用した3ブロックのパイプライン操作を示す。
【表1】
【0075】
図9は、データ経路コントローラ903を使用して線911により外部バスシステム910に相互接続された、積和演算アクセラレータアレイ901(またはMACアクセラレータ)を備えた第1の集積回路900を含むシステムの構成を示す。積和演算アクセラレータアレイ901は、上述のように、NANDブロックのアレイまたはNANDブロックのアレイのタイルのアレイを使用して実装することができる。第2の集積回路950は、コントローラとして機能し、積和演算アクセラレータアレイ901と連携して使用するバッファ905および支援ロジック906を含む。第2の集積回路950は、線912によりバスシステム910に結合されている。第2の集積回路950内のバッファ905は、SRAMアレイ、DRAMアレイ、NORフラッシュアレイ、または積和演算アクセラレータアレイ901と連携して使用することができる他の種類のメモリを含み得る。ロジック906は、ニューラルネットワークの動作を管理するシーケンスロジックを含むことができる。ロジック906はまた、起動機能ロジックおよびデバイスの計算モードを支援する他のロジックを含むことができる。また、ロジック906は、デジタル積和演算および大規模ニューラルネットワークを支援する他の演算を形成する大規模プロセッサを備えることができる。
【0076】
第1の集積回路900および第2の集積回路950は、マルチチップモジュール、または他のコンパクト構成では、積層されたチップ構成で搭載することができ、いくつかの実施形態では、バスシステム910、911、912内の相互接続線は、例えば、シリコン貫通ビア、ボールグリッド接続などを含むチップ間接続を含む。
【0077】
図10は、単一の集積回路1000上にコントローラを有する積和演算アクセラレータアレイ1001を含む他の実施形態を示す。この例では、データ経路コントローラ1003は積和演算アクセラレータアレイ1001と共に集積回路上に実装される。データ経路1005は、データ経路コントローラをバッファ1006に結合し、バッファ1006は、次に同じ集積回路1000上のロジック1008に結合される。図10に示すように、バッファ1006からのデータは、データ経路コントローラ1003を使用して制御され得る直接データ経路を使用して、積和演算アクセラレータアレイ1001に転送することができる。
【0078】
図11は、本明細書に記載のNANDブロックを使用して積和を計算する方法を示すフローチャートである。図8の例における制御ロジック810は、この方法をサポートする状態機械を含むことができる。図11の方法は、単一のNANDブロックに適用される。この方法は、大規模な積和演算を支援するために、上述したようにNANDブロックのアレイおよびタイルのアレイに拡張することができる。
【0079】
したがって、B個の積項について積和を計算するために、この方法は、B個のビット線、S個のストリング選択線に結合され、L個のワード線レベルを有するNANDブロックを選択することを含む(1100)。NANDブロックを記憶モードで動作させて、計算を設定するために、この方法は、積項W(i)×X(i)の係数データw(i、j)を、ビット線のインデックスiが1からB、ストリング選択線のインデックスjが1からS、ワード線レベルのインデックスkは一定の選択されたレベルにある場合に、ビット線BL(i)に結合されたストリング選択線SSL(j)上のNANDストリングの列C(i)のレベルL(k)における1組のメモリセルに記憶することを含む。NANDページプログラミング動作を使用して、係数データは、単一のストリング選択線SSL(i)に結合されたNANDストリング上のメモリセルに記憶され得る。NANDページプログラミング動作は、ストリング選択線の組SSL(1)からSSL(S)内の各ストリング選択線について繰り返される(1101)。
【0080】
このようにして、係数W(i)は、ストリング選択線SSL(1)~(S)上のストリング選択スイッチに結合されたNANDストリングの列C(i)内のワード線レベルkにおいて、メモリセルの組に記憶されたS個のデータ値(jが1からSになるw(i、j))によって表される。
【0081】
一般に、数Sは、ストリング選択線の物理的な数に等しくなり得る。いくつかの実施形態では、特定の係数を格納するために使用される数Sは、1からストリング選択線の最大物理数までの任意の数であり得る。同様に、ビット線の数Bは、NANDブロック内で合計される積項の数に対応する。数Bは、ブロックに結合されたビット線の最大物理数、または特定の数の積項に対して選択されたビット線の数に等しくなり得る。
【0082】
データが記憶されると、装置は計算モードに入ることができる。計算モードでは、ビット線電圧VBLiにより表される入力X(i)は、iが1からBの場合に、ビット線BL(i)に並列に印加され、同時にビット線に印加することができる。また、ビット線を対応するNANDストリングに接続するストリング選択スイッチをオンにするように設定されたストリング選択線選択電圧が、jが1からSの場合に、同時かつ並列にすべてのストリング選択線SSL(j)に印加される。また、ワード線電圧は、ワード線または計算される特定の積項に対応するワード線レベルkのワード線に印加される(1102)。
【0083】
これは、S個のNANDストリングを、各ビット線BL(i)に並列に接続し、ワード線または計算される特定の積項に対応するワード線レベルkのワード線に、計算レベルワード線電圧を印加する効果を有する。同時に、接地選択線が選択電圧レベルに設定され、NANDストリングをソース線に接続する接地選択スイッチをオンにする。選択されたワード線レベルのセル内のデータ値は、記憶された係数に従ってNANDストリングのコンダクタンスを設定する効果を有する。
【0084】
また、計算モードでは、ビット線BL(1)~BL(B)に接続されたNANDストリングの列C(1)~C(B)内のS個のNANDストリングを流れる電流が、NANDブロックのソース線において合成される。(1103)。
【0085】
結果として、ソース線上の電流は、計算されているB個の積項の合計に対応する。
【0086】
最後に計算モードでは、ソース線上の電流の大きさを検出することによって積和出力が生成される(1104)。この出力は、実行されている一連の計算に従って経路の設定を行うためにバスシステムに供給されるマルチビットデジタル出力とすることができる。
【0087】
フローチャートは、本明細書で説明されているメモリコントローラまたはメモリデバイスによって実行されるロジックを示している。ロジックは、プロセッサ、フィールドプログラマブル集積回路を含む専用ロジックハードウェア、および専用ロジックハードウェアとコンピュータプログラムの組み合わせによって実行可能かつコンピュータシステムにアクセス可能なメモリに格納されたコンピュータプログラムを使用してプログラムされたプロセッサ、によって実行され得る。達成される機能に影響を与えることなく、ステップの多くを組み合わせ、並行して実行し、または異なるシーケンスで実行し得ることが理解されたい。場合によっては、読者が理解するように、他の特定の変更が同様になされた場合にのみ、ステップの再配置は同じ結果を達成する。他の場合には、読者が理解するように、特定の条件が満たされる場合にのみ、ステップの再配置は同じ結果を達成する。さらに、フローチャートは、技術の理解に関連するステップのみを示しており、他の機能を達成するための多数の追加のステップが、示されたものの前、後および間に実行され得ることを理解されたい。
【0088】
一般に、高性能、低電力積和演算アクセラレータ回路が説明されている。アクセラレータ回路の実装は、積和演算の大容量計算用に構成された3D NANDフラッシュブロックを含むことができる。本明細書に記載の構造を利用して、積和演算に必要な電流の大きさは非常に小さくかつ厳密に制御することができる。本明細書に記載の実施形態では、高スループット、低電力積和演算を支援するために、何千および何万ものセルを一緒に動作させることができる。
【0089】
本明細書に記載の例では、各ブロックは、複数のビット線上の多数のNANDストリングおよびストリング選択線から、同時に電流を収集することができる別々のソース線を有する。ソース線上の電流は、マルチビット検出(例えば、2ビット、3ビット、4ビット)を有し、ブロック当たりの平均電流が平均10μAから100μAの範囲で広いダイナミックレンジを有する電流検出センス増幅器に結合され得る。1ストリング当たり50ナノアンペア未満の範囲内など、適切な閾値電圧および駆動電圧を可能な限り小さく設定することにより、ストリング当たりの電流をトリミングすることができ、単一のセンス増幅器において1000~10,000ストリングの並列検知を可能とする。例えば、ワード線は、フラッシュメモリセルの消去状態のプログラム検証の間の中央近くにバイアスすることができ、ビット線電圧は、ストリング当たりの電流を小さくするために0.3V未満のレベルに低減することができる。
【0090】
NANDブロックに並列に入力するために使用されるビット線および係数を記憶する目的のために使用されるストリング選択線の数は、特定の実施のために要望通りに設定することができる。また、所定の計算に使用されるビット線およびストリング選択線の数は、動作の各サイクルにおいて論理的に決定することができる。
【0091】
複数のストリング選択線を使用し、それによって単一のビット線に並列に結合された複数のNANDストリングを使用することから、各積項の係数または重みは、NANDブロック内の複数のメモリセルに分配することができる。これにより、NANDフラッシュプログラミング動作を使用して各セルを個々に高精度にトリミングすることができるので、係数の高分解能、または実質的なアナログ重み値を可能にする。結果として、計算の信頼性は非常に高くなり得る。
【0092】
本発明は、上に詳述された好ましい実施形態および実施例を参照することによって開示されているが、これらの実施例は限定的な意味ではなく例示的なものを意図していることを理解されたい。当業者であれば変更および組み合わせを容易に思い付くであろうと考えられ、その変更および組み合わせは本発明の要旨および添付の特許請求の範囲の範囲内であろう。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11