TW202105399A - 用於人工神經網路中之類比神經記憶體的測試電路及方法 - Google Patents

用於人工神經網路中之類比神經記憶體的測試電路及方法 Download PDF

Info

Publication number
TW202105399A
TW202105399A TW109119122A TW109119122A TW202105399A TW 202105399 A TW202105399 A TW 202105399A TW 109119122 A TW109119122 A TW 109119122A TW 109119122 A TW109119122 A TW 109119122A TW 202105399 A TW202105399 A TW 202105399A
Authority
TW
Taiwan
Prior art keywords
array
volatile memory
memory cell
bit line
row
Prior art date
Application number
TW109119122A
Other languages
English (en)
Other versions
TWI800734B (zh
Inventor
曉萬 陳
順 武
史蒂芬 T 鄭
史丹利 洪
英 李
史蒂芬 利姆克
雅 阮
維平 蒂瓦里
恩漢 杜
Original Assignee
美商超捷公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商超捷公司 filed Critical 美商超捷公司
Publication of TW202105399A publication Critical patent/TW202105399A/zh
Application granted granted Critical
Publication of TWI800734B publication Critical patent/TWI800734B/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0425Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1204Bit line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • G11C2029/2602Concurrent test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5006Current

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Non-Volatile Memory (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

揭露用於在深度學習人工神經網路中與類比神經記憶體一起使用之測試電路及方法。類比神經記憶體包括一個或多個非揮發性記憶體單元陣列。可以在分類測試、合格性測試及其它測試期間利用測試電路及方法來驗證一個或多個單元的程式化操作。

Description

用於人工神經網路中之類比神經記憶體的測試電路及方法
[優先權請求]本申請案主張2019年7月19日所提出之名稱為「用於人工神經網路中之類比神經記憶體的測試電路及方法」的美國臨時專利申請案第62/876,515號及2019年9月12日所提出之名稱為「用於人工神經網路中之類比神經記憶體的測試電路及方法」的美國專利申請案第16/569,611號之優先權。
揭露用於深度學習人工神經網絡中之類比神經記憶體的測試電路及方法。類比神經記憶體包括一個或多個非揮發性快閃記憶體單元陣列。
人工神經網路模擬生物神經網路(動物的中樞神經系統,特別是大腦)及用於估計或近似可依賴於大量輸入且通常是未知的函數。人工神經網路通常包括可彼此交換信息之互連的「神經元」層。
圖1說明人工神經網路,其中圓圈表示神經元輸入或層。連結(稱為突觸)以箭頭來表示,並且具有可根據經驗調整的數字權重。這使得神經網路適應於輸入且能夠學習。通常,神經網路包括一層多個輸入。通常有一個或多個神經元中間層及提供神經網路輸出的一個神經元輸出層。每個層級的神經元個別地或共同地根據從突觸接收的資料做出決定。
開發用於高性能資訊處理之人工神經網路的主要挑戰中之一是缺乏足夠的硬體技術。實際上,實際的神經網路依賴於非常大量的突觸,以使神經元之間的高連結性(亦即,非常高的計算並行性)成為可能。原則上,這樣的複雜性可以用數位超級電腦或專用圖形處理單元叢集來實現。然而,除了高成本之外,相較於生物網路,這些方法還因平庸的能量效率而更糟,其中生物網路消耗非常少的能量,主要是因為它們執行低精度類比計算。CMOS類比電路已經用於人工神經網路,但是有鑑於所需之大量的神經元及突觸,大多數CMOS實施的突觸過於龐大。
申請人以前在美國專利申請案第15/594,439號(其被公開為美國專利公開第2017/0337466號)中揭露一種人工(類比)神經網路,其利用一個或多個非揮發性記憶體陣列作為突觸,在此以提及方式將上述美國專利申請案併入本文。非揮發性記憶體陣列作為類比神經記憶體來操作。神經網路裝置包括複數個第一突觸,其構造成接收複數個第一輸入並由此產生複數個第一輸出;以及複數個第一神經元,其構造成接收複數個第一輸出。複數個第一突觸包括複數個記憶體單元,其中每個記憶體單元包括間隔開的源極及汲極區域,其形成在半導體基板中,並且具有通道區域在其間延伸;浮動閘極,其設置在通道區域的第一部分上方且與通道區域的第一部分絕緣;以及非浮動閘極,其設置在通道區域的第二部分上方且與通道區域的第二部分絕緣。複數個記憶體單元中之每一個構造成儲存與浮動閘極上之一些電子相對應的權重值。複數個記憶體單元構造成將複數個第一輸入乘以儲存的權重值,以產生複數個第一輸出。以這種方式使用之記憶體單元陣列可以稱為向量乘矩陣乘法(VMM)陣列。
必須抹除及程式化在類比神經記憶體系統中使用之每個非揮發性記憶體單元,以在浮動閘極中保持非常特定且精確的電荷量,亦即,電子數量。例如,每個浮動閘極必須保持N個不同數值中之一個,其中N是可以由每個單元表示之不同權重的數量。N的實例包括16、32、64、128及256。
精度及準確性在涉及VMM陣列的操作中極為重要,因為每個個別的記憶體單元可以儲存N個不同位準中之一,其中N可以大於2,而不是傳統的記憶體單元,其中N總是為2。這使得測試成為極其重要的操作。例如,需要程式化操作的驗證,以確保將每個個別的單元或一行單元準確地程式化為期望值。作為另一個實例,至關重要的是識別壞單元或單元組,以便可以從在VMM陣列的操作期間用於儲存資料的單元集移除它們。
所需要的是用於VMM陣列之改進的測試電路及方法。
揭露用於深度學習人工神經網路中之類比神經記憶體的測試電路及方法。 類比神經記憶體包括一個或多個非揮發性快閃記憶體單元陣列。測試電路及方法可以在分類測試、循環測試、高溫操作壽命(HTOL)測試、合格性測試及其它測試期間用於驗證一個或多個單元的特性及可操作性。
一個具體例包括一種驗證被程式化為類比神經非揮發性記憶體單元陣列中之複數個非揮發性記憶體單元內的數值之方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,並且其中每條字元線選擇性地耦接至一列解碼器,而每條位元線選擇性地耦接至一行解碼器,該方法包括:藉由該列解碼器確立該陣列中之所有字元線;藉由該行解碼器確立該陣列中之一位元線;藉由一感測放大器感測從該位元線接收之電流;以及將該電流與一參考電流進行比較,以判定耦接至該位元線之該等非揮發性記憶體單元是否包含期望值。
另一個具體例包括一種測量由類比神經非揮發性記憶體單元陣列中之複數個非揮發性記憶體單元汲取之電流的方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,並且其中每條字元線選擇性地耦接至一列解碼器,而每條位元線選擇性地耦接至一行解碼器,該方法包括:藉由該列解碼器確立該陣列中之所有字元線;藉由該行解碼器確立該陣列中之一位元線;以及測量從該位元線接收之電流。
另一種方法包括一種測試非揮發性記憶體單元陣列中之複數個類比神經非揮發性記憶體單元的方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,並且其中每條字元線選擇性地耦接至一列解碼器,而每條位元線選擇性地耦接至一行解碼器,該方法包括:藉由該列解碼器確立該陣列中之所有字元線;藉由該行解碼器確立該陣列中之所有位元線;在該陣列中之所有非揮發性記憶體單元上執行一深度程式化操作;以及測量從該等位元線接收之總電流。
另一個具體例包括一種測試類比神經非揮發性記憶體單元陣列之方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,該方法包括:程式化耦接至一位元線之複數個單元;在K個不同時間測量由該複數個單元汲取之電流,並儲存該K個不同時間的每個測量值,其中K係整數;根據該K個測量值計算一平均值;以及如果該K個測量值中之任何一個比該平均值小超過一第一臨界值或比該平均值大超過一第二臨界值,則將該位元線識別為一不良位元線。
另一個具體例包括一種測試類比神經非揮發性記憶體單元陣列之方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,該方法包括:程式化耦接至一位元線之複數個單元;在K個不同時間測量耦接至複數個單元的一控制閘極端子之一控制閘極線上的電壓,並儲存該K個不同時間的每個測量值,其中K係整數;根據該K個測量值計算一平均值;以及如果該K個測量值中之任何一個比該平均值小超過一第一臨界值或比該平均值大超過一第二臨界值,則將該位元線識別為一不良位元線。
另一個具體例包括一種測試用於儲存N個不同值之類比神經非揮發性記憶體單元的方法,其中N係整數,該方法包括:程式化該單元為代表該N個數值中之一的一目標值;驗證該單元中儲存的數值是在該目標值附近的一可接受數值範圍內;針對該N個數值的每一個重複程式化及讀取步驟;以及如果該等驗證步驟的任何一個驗證步驟表示該單元中儲存的數值超出在該目標值附近的該可接受數值範圍,則將該單元識別為不良。
另一個具體例包括一種補償類比神經非揮發性記憶體單元陣列中之漏電流的方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,該方法包括:測量耦接至一位元線的一行非揮發性記憶體單元之漏電流;儲存測量漏電流值;以及在該行非揮發性記憶體單元的讀取操作期間應用該測量漏電流值,以補償該漏電流。
另一個具體例包括一種測試類比神經非揮發性記憶體單元陣列中之被選非揮發性記憶體單元的方法,該方法包括:當該被選非揮發性記憶體單元正在一次臨界區域中操作時,判定該被選非揮發性記憶體單元的一對數斜率因數;儲存該對數斜率因數;當該被選非揮發性記憶體單元正在一線性區域中操作時,判定該被選非揮發性記憶體單元的一線性斜率因數;儲存該線性斜率因數;以及當程式化該被選單元至一目標電流時,利用該對數斜率因數及該線性斜率因數中之一個或多個。
另一個具體例包括一種測量由類比神經非揮發性記憶體單元陣列中之一行非揮發性記憶體單元所汲取的電流之方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,並且其中每條字元線選擇性地耦接至一列解碼器,而每條位元線選擇性地耦接至一行解碼器,該方法包括:藉由該列解碼器確立該陣列中之所有字元線;藉由該行解碼器確立該陣列中之一位元線,以選擇一行非揮發性記憶體單元;以及測量從該位元線接收之電流。
另一個具體例包括一種測試類比神經非揮發性記憶體單元陣列之方法,該方法包括:藉由在該陣列中之每個非揮發性記憶體單元的一端子上施加一電壓序列來抹除該陣列中之該等非揮發性記憶體單元,其中該電壓序列中之電壓以固定步階隨時間增加;以及讀取所有非揮發性記憶體單元,以判定該抹除步驟的有效性。
另一個具體例包括一種測試類比神經非揮發性記憶體單元陣列之方法,該方法包括:藉由在該陣列中之每個非揮發性記憶體單元的一端子上施加一電壓序列來程式化該陣列中之該等非揮發性記憶體單元,其中該電壓序列中之電壓以固定步階隨時間增加;以及讀取所有非揮發性記憶體單元,以判定該程式化步驟的有效性。
另一個具體例包括一種測試非揮發性記憶體單元陣列中之複數個類比神經非揮發性記憶體單元的方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,並且其中每條字元線選擇性地耦接至一列解碼器,而每條位元線選擇性地耦接至一行解碼器,該方法包括:程式化複數個非揮發性記憶體單元,以儲存N個不同數值中之一,其中N係可以儲存在該等非揮發性記憶體單元中之任何一個的不同位準之數量;測量由該複數個非揮發性記憶體單元汲取的電流;將該測量電流與一目標值進行比較;以及如果該測量值與該目標值之差超過一臨界值,則將該複數個非揮發性記憶體單元識別為不良。
另一個具體例包括一種測試非揮發性記憶體單元陣列中之複數個類比神經非揮發性記憶體單元的方法,其中該記憶體陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,並且其中每條字元線選擇性地耦接至一列解碼器,而每條位元線選擇性地耦接至一行解碼器,該方法包括:以N個位準中之對應於最小單元電流的一位準來程式化該複數個非揮發性記憶體單元中之第一選擇單元;以該N個位準中之對應於最大單元電流的一位準來程式化該複數個非揮發性記憶體單元中之第二選擇單元,其中該等第二選擇單元中之每個單元相鄰於該等第一選擇單元中之一個或多個單元;測量由該複數個非揮發性記憶體單元汲取的電流;將該測量電流與一目標值進行比較;以及如果該測量值與該目標值之差超過一臨界值,則將該複數個非揮發性記憶體單元識別為不良。
本發明的人工神經網路利用CMOS技術與非揮發性記憶體陣列的組合。 非揮發性記憶體單元
數位非揮發性記憶體係眾所周知的。例如,美國專利第5,029,130號(「'130專利」)揭露一種分離式閘極非揮發性記憶體單元(快閃記憶體單元)陣列,並且在此以提及方式將其併入本文。這樣的記憶體單元210顯示在圖2中。每個記憶體單元210包括在半導體基板12中形成之源極區域14及汲極區域16,並且在其間具有通道區域18。浮動閘極20形成在通道區域18的第一部分上方且與其絕緣(並控制其導電性),並且形成在源極區域14的一部分上方。字元線端子22(通常耦接至字元線)具有第一部分及第二部分,其中第一部分設置在通道區域18的第二部分上方且與其絕緣(並控制其導電性),而第二部分向上延伸且在浮動閘極20上方。浮動閘極20及字元線端子22藉由閘極氧化物與基板12絕緣。位元線端子24耦接至汲極區域16。
藉由在字元線端子22上施加高正電壓來抹除記憶體單元210(其中從浮動閘極移除電子),這導致浮動閘極20上的電子藉由富爾-諾罕穿隧(Fowler-Nordheim tunneling)從浮動閘極20隧穿中間絕緣體至字元線端子22。
藉由在字元線端子22上施加正電壓及在源極區域14上施加正電壓來程式化記憶體單元210(其中在浮動閘極上放置電子)。電子流將從源極區域14(源極線端子)流向汲極區域16。當電子到達字元線端子22與浮動閘極20之間的間隙時,電子將加速並變熱。由於來自浮動閘極20的靜電吸引力,一些加熱的電子將通過閘極氧化物而注入至浮動閘極20上。
藉由在汲極區域16及字元線端子22上施加正讀取電壓(這會導通在字元線端子下方之通道區域18的部分)來讀取記憶體單元210。如果浮動閘極20帶正電(亦即,被抹除電子),則浮動閘極20下方之通道區域18的部分亦導通,並且電流將流過通道區域18,因而被感測為抹除狀態或狀態「1」。如果浮動閘極20帶負電(亦即,用電子來程式化),則浮動閘極20下方之通道區域的部分大部分或完全截止,並且電流不會流過(或者幾乎不流過)通道區域18,因而被感測為程式化狀態或狀態「0」。
表1描繪可以施加至記憶體單元210的端子以執行讀取、抹除及程式化操作的典型電壓範圍: 表1:圖2的快閃記憶體單元210之操作
   WL BL SL
讀取1 0.5-3V 0.1-2V 0V
讀取 2 0.5-3V 0-2V 2-0.1V
抹除 ~11-13V 0V 0V
程式化 1-2V 1-3µA 9-10V
「讀取1」係單元電流在位元線上輸出之讀取模式。「讀取2」係單元電流在源極線端子上輸出之讀取模式。
圖3顯示記憶體單元310,其相似於圖2的記憶體單元210,但是增加控制閘極(CG)端子28。在程式化中以例如10V的高電壓施加偏壓於控制閘極端子28,在抹除中以例如0V/-8V的低電壓或負電壓施加偏壓於控制閘極端子28,在讀取中以例如0V/2.5V的低電壓或中間範圍電壓施加偏壓於控制閘極端子28。其它端子相似於圖2來施加偏壓。
圖4描繪4-閘極記憶體單元410,其包括源極區域14、汲極區域16、在通道區域18的第一部分上方之浮動閘極20、在通道區域18的第二部分上方之選擇閘極22(通常耦接至字元線WL)、在浮動閘極20上方之控制閘極28以及在源極區域14上方之抹除閘極30。這種組態被描述在美國專利第6,747,310號中,為了各種目的以提及方式將其併入本文。這裡,除浮動閘極20外,所有其它閘極皆是非浮動閘極,這意味著它們電連接或可連接至電壓源。藉由將加熱的電子從通道區域18注入至浮動閘極20上來執行程式化。藉由電子從浮動閘極20隧穿至抹除閘極30來執行抹除。
表2描繪可以施加至記憶體單元410的端子以執行讀取、抹除及程式化操作的典型電壓範圍: 表2:圖4的快閃記憶體單元410之操作
   WL/SG BL CG EG SL
讀取1 0.5-2V 0.1-2V 0-2.6V 0-2.6V 0V
讀取2 0.5-2V 0-2V 0-2.6V 0-2.6V 2-0.1V
抹除 -0.5V/0V 0V 0V/-8V 8-12V 0V
程式化 1V 1µA 8-11V 4.5-9V 4.5-5V
「讀取1」係單元電流在位元線上輸出之讀取模式。「讀取2」係單元電流在源極線端子上輸出之讀取模式。
圖5顯示記憶體單元510,除記憶體單元510不包含抹除閘極EG端子外,其相似於圖4的記憶體單元410。藉由以高電壓施加偏壓於基板18及以低電壓或負電壓施加偏壓於控制閘極CG端子28來執行抹除。或者,藉由以正電壓施加偏壓於字元線端子22及以負電壓施加偏壓於控制閘極端子28來執行抹除。程式化及讀取與圖4相似。
圖6描繪3-閘極記憶體單元610,其為另一種類型的快閃記憶體單元。除記憶體單元610不具有單獨的控制閘極端子外,記憶體單元610與圖4的記憶體單元410相同。除沒有施加控制閘極偏壓外,抹除操作(藉由抹除閘極端子的使用來抹除)及讀取操作相似於圖4的操作。程式化操作亦在沒有控制閘極偏壓的情況下完成,結果,在程式化操作期間必須在源極線端子上施加較高電壓,以補償控制閘極偏壓的缺少。
表3描繪可以施加至記憶體單元610的端子以執行讀取、抹除及程式化操作的典型電壓範圍: 表3:圖6的快閃記憶體單元610之操作
   WL/SG BL EG SL
讀取1 0.5-2.2V 0.1-2V 0-2.6V 0V
讀取2 0.5-2.2V 0-2V 0-2.6V 2-0.1V
抹除 -0.5V/0V 0V 11.5V 0V
程式化 1V 2-3µA 4.5V 7-9V
「讀取1」係單元電流在位元線上輸出之讀取模式。「讀取2」係單元電流在源極線端子上輸出之讀取模式。
圖7描繪堆疊式閘極記憶體單元710,其為另一種類型的快閃記憶體單元。除浮動閘極20在整個通道區域18上方延伸及控制閘極端子22(在此將耦接至字元線)在浮動閘極20上方延伸且以絕緣層(未顯示)隔開外,記憶體單元710相似於圖2的記憶體單元210。抹除、程式化及讀取操作以與先前針對記憶體單元210所描述之方式相似的方式來進行。
表4描繪可以施加至記憶體單元710的端子及基板12以執行讀取、抹除及程式化操作的典型電壓範圍: 表4:圖7的快閃記憶體單元710之操作
   CG BL SL 基板
讀取 1 0-5V 0.1 – 2V 0-2V 0V
讀取2 0.5-2V 0-2V 2-0.1V 0V
抹除 -8 至-10V/0V FLT FLT 8-10V / 15-20V
程式化 8-12V 3-5V/0V 0V/3-5V 0V
「讀取1」係單元電流在位元線上輸出之讀取模式。「讀取2」係單元電流在源極線端子上輸出之讀取模式。任選地,在包括數列與數行的記憶體單元210、310、410、510、610或710之陣列中,源極線可以耦接至一列記憶體單元或兩列相鄰的記憶體單元。亦即,源極線端子可以由相鄰列的記憶體單元共用。
為了在人工神經網路中利用包括上述類型的非揮發性記憶體單元中之一的記憶體陣列,實施兩種修改。第一,如下面進一步說明,線路配置成使得每個記憶體單元可以個別地被程式化、抹除及讀取,而不會不利地影響陣列中之其它記憶體單元的記憶狀態。第二,提供記憶體單元的連續(類比)程式化。
具體地,陣列中之每個記憶體單元的記憶狀態(亦即,浮動閘極上的電荷)可以獨立地且以對其它記憶體單元的最小干擾從完全抹除狀態連續地變成完全程式化狀態。在另一個具體例中,陣列中之每個記憶體單元的記憶狀態(亦即,浮動閘極上的電荷)可以獨立地且以對其它記憶體單元的最小干擾從完全程式化狀態連續地變成完全抹除狀態,反之亦然。這意味著單元儲存係類比的,或者至少可以儲存許多離散值(例如,16或64個不同值)中之一個,這允許對記憶體陣列中之所有單元進行非常精確且個別的調整,並且這使記憶體陣列非常適合儲存神經網路的突觸權重及對其進行微調。
本文所述之方法及手段可以應用於其它非揮發性記憶體技術,例如,SONOS(矽-氧化物-氮化物-氧化物-矽,氮化物中的電荷捕捉)、MONOS(金屬-氧化物-氮化物-氧化物-矽,氮化物中的金屬電荷捕捉)、ReRAM(電阻式ram)、PCM(相變化記憶體)、MRAM(磁性ram)、FeRAM(鐵電ram)、OTP(雙層或多層一次性可程式)以及CeRAM(關聯電子ram) , 但不限於此。本文描述的方法及手段可以應用於神經網路中使用之揮發性記憶體技術,例如,SRAM、DRAM及揮發性突觸單元,但不限於此。 使用非揮發性記憶體單元陣列的神經網路
圖8概念性地說明利用本具體例的非揮發性記憶體陣列之神經網路的非限制性實例。此實例將非揮發性記憶體陣列神經網路用於臉部辨識應用,但是可以使用以非揮發性記憶體陣列為基礎的神經網路來實施任何其它適當的應用。
S0係輸入層,對於這個實例,其為具有5位元精度的32×32像素RGB影像(亦即,三個32×32像素陣列,一個陣列用於各自的顏色R、G及B,每個像素為5位元精度)。從輸入層S0至層C1的突觸CB1在某些情況下應用不同組的權重,而在其它情況下應用共享權重,並且用3×3像素重疊濾波器(核心)掃描輸入影像,將濾波器移位1個像素(或者根據模型所規定,多於1個像素)。具體地,提供用於影像的一個3×3部分中之9個像素的數值(亦即,稱為一個濾波器或核心)給突觸CB1,在那裡將這9個輸入值乘以適當的權重,並且在計算乘法輸出的總和之後,由CB1的第一突觸確定及提供單一輸出值,以便產生數層特徵圖(feature map)C1中之一層的一個像素。然後,在輸入層S0內將3×3濾波器向右移動一個像素(亦即,添加在右側之三個像素的行及丟棄在左側之三個像素的行),藉以將這個新定位的濾波器中之9個像素值提供給突觸CB1,在那裡將它們乘以相同的權重,並且由相關的突觸確定第二個單一輸出值。持續這個過程,直到3×3濾波器針對所有三種顏色及所有位元(精度值)掃描輸入層S0的整個32×32像素影像為止。然後,使用不同組的權重重複這個過程,以產生C1的一個不同特徵圖,直到已經計算層C1的所有特徵圖為止。
在層C1處,在本實例中,具有16個特徵圖,每個特徵圖有30×30像素。每個像素是從輸入與核心相乘得到之新特徵像素,因此每個特徵圖是二維陣列,因此在這個實例中,層C1構成16層二維陣列(記住這裡引用的層及陣列是邏輯關係,不一定是實體關係-亦即,陣列不一定以實體二維陣列來定向)。層C1中之16個特徵圖的每個特徵圖由應用於濾波器掃描之16組不同的突觸權重中之一組來產生。C1特徵圖可以全部有關於諸如邊界識別之同一個影像特徵的不同態樣。例如,第一圖(使用第一組權重所產生,第一組權重對用於產生此第一圖的所有掃描係共享的)可以識別圓形邊緣,第二圖(使用與第一組權重不同的第二組權重所產生)可以識別矩形邊緣或某些特徵的縱橫比等等。
在從層C1到層S1之前應用激勵函數P1(池化(pooling)),其對來自每個特徵圖中之連續的非重疊2×2區域的數值進行池化。池化函數的目的是算出附近位置的平均值(或者亦可以使用最大值函數),以減少例如邊緣位置的依賴性及在進入下一階段之前減小資料大小。在層S1處,具有16個15×15特徵圖(亦即,16個不同陣列,每個陣列有15×15像素)。從層S1到層C2的突觸CB2用4×4濾波器掃描S1中之圖,並且有一個像素的濾波器移位。在層C2處,具有22個12×12特徵圖。在從層C2到層S2之前應用激勵函數P2(池化),其對來自每個特徵圖中之連續非重疊2×2區域的數值進行池化。在層S2處,具有22個6×6特徵圖。在從層S2到層C3的突觸CB3處應用激勵函數(池化),其中層C3中之每個神經元經由CB3的個別突觸連接至層S2中之每個圖。在層C3處,具有64個神經元。從層C3到輸出層S3的突觸CB4將C3完全連接至S3,亦即,層C3中之每個神經元連接至層S3中之每個神經元。S3處的輸出包括10個神經元,其中最高輸出神經元確定類別。此輸出可能例如表示原始影像的內容之識別或分類。
使用一個陣列的非揮發性記憶體單元或一個陣列的非揮發性記憶體單元之一部分來實施每層突觸。
圖9係可用於那個目的之系統的方塊圖。向量矩陣乘法(VMM)系統32包括非揮發性記憶體單元,並用作一層與下一層之間的突觸(例如,圖8中之CB1、CB2、CB3及CB4)。具體地,VMM系統32包括VMM陣列33(其包括以列與行排列之非揮發性記憶體單元)、抹除閘極及字元線閘極解碼器34、控制閘極解碼器35、位元線解碼器36以及源極線解碼器37,它們對非揮發性記憶體單元陣列33的個別輸入進行解碼。對VMM陣列33的輸入可以來自抹除閘極及字元線閘極解碼器34或來自控制閘極解碼器35。此實例中之源極線解碼器37亦對VMM陣列33的輸出進行解碼。或者,位元線解碼器36可以對VMM陣列33的輸出進行解碼。
VMM陣列33提供兩個用途。第一,它儲存將由VMM系統32使用的權重。第二,VMM陣列33有效地將輸入乘以VMM陣列33中所儲存的權重,並且根據輸出線(源極線或位元線)將它們加起來,以產生輸出,所述輸出將是下一層的輸入或最後一層的輸入。藉由執行乘法及加法函數,VMM陣列33不需要個別的乘法及加法邏輯電路,並且因原位記憶體計算而亦具功率效率。
VMM陣列33的輸出被供應至差分加法器(例如,求和運算放大器或求和電流鏡)38,其計算VMM陣列33的輸出之總和,以產生用於卷積的單一數值。差分加法器38配置成執行正權重輸入與負權重輸入的總和,以輸出該單一數值。
然後,將差分加法器38之加總的輸出值供應至激勵函數電路39,其對輸出進行整流。激勵函數電路39可以提供sigmoid、tanh、ReLU函數或任何其它非線性函數。激勵函數電路39之經整流的輸出值變成作為下一層(例如,圖8中之C1)之特徵圖的元素,然後應用於下一個突觸,以產生下一個特徵圖層或最後一層。因此,在此實例中,VMM陣列33構成複數個突觸(其從先前的神經元層或從諸如影像資料庫的輸入層接收它們的輸入),並且加法器38及激勵函數電路39構成複數個神經元。
圖9中至VMM系統32的輸入(WLx、EGx、CGx以及任選的BLx及SLx)可以是類比位準、二進制位準、數位脈衝(在這種情況下,可能需要脈衝至類比轉換器PAC,以將脈衝轉換為適當的輸入類比位準)或數位位元(在這種情況下,提供DAC,以將數位位元轉換為適當的輸入類比位準),並且輸出可以是類比位準、二進制位準、數位脈衝或數位位元(在這種情況下,提供輸出ADC,以將輸出類比位準轉換為數位位元)。
圖10係描繪許多層的VMM系統32之使用的方塊圖,這裡標記為VMM系統32a、32b、32c、32d及32e。如圖10所示,藉由數位至類比轉換器31將輸入(表示為Inputx)從數位轉換成類比,並提供至輸入VMM系統32a。經轉換的類比輸入可以是電壓或電流。用於第一層的輸入D/A轉換可以藉由使用函數或LUT(查找表)來完成,其中LUT(查找表)將輸入Inputx映射至用於輸入VMM系統32a的矩陣乘數之適當類比位準。輸入轉換亦可以藉由類比至類比(A/A)轉換器來完成,以將外部類比輸入轉換成輸入VMM系統32a的映射類比輸入。輸入轉換亦可以藉由數位至數位脈衝(D/P)轉換器來完成,以將外部數位輸入轉換為輸入VMM系統32a的映射數位脈衝。
由輸入VMM 系統32a產生的輸出作為輸入提供給下一個VMM系統(隱藏層級1)32b,其轉而產生作為輸入提供給下一個VMM系統(隱藏層級2)32c的輸出等等。各種層的VMM系統32充當卷積神經網路(CNN)之不同層的突觸及神經元。每個VMM系統32a、32b、32c、32d及32e可以是包括個別非揮發性記憶體陣列之獨立的實體系統,或者多個VMM系統可以利用同一個實體非揮發性記憶體陣列的不同部分,或者多個VMM系統可以利用同一個實體非揮發性記憶體陣列的重疊部分。每個VMM系統32a、32b、32c、32d及32e亦可以對其陣列或神經元的各個部分進行時間多工。圖10所示的實例包含五層(32a、32b、32c、32d、32e):一個輸入層(32a)、兩個隱藏層(32b、32c)及兩個完全連接層(32d、32e)。所屬技術領域之具通常技藝人士將理解,這僅僅是示例性的,並且系統反而可以包括超過兩個隱藏層及超過兩個完全連接層。 VMM陣列
圖11描繪神經元VMM 陣列1100,其特別適用於圖3中所示之記憶體單元310,並且用作輸入層與下一層之間的突觸及神經元的部件。VMM陣列 1100包括非揮發性記憶體單元的記憶體陣列1101及非揮發性參考記憶體單元的參考陣列1102(在該陣列的上方)。或者,可以在下方放置另一個參考陣列。
在VMM陣列 1100中,諸如控制閘極線1103的控制閘極線在垂直方向上延伸(因此,在列方向上的參考陣列1102與控制閘極線1103正交),並且諸如抹除閘極線1104的抹除閘極線在水平方向延伸。這裡,在控制閘極線(CG0、CG1、CG2、CG3)上提供對VMM陣列1100的輸入,而VMM陣列1100的輸出出現在源極線(SL0、SL1)上。在一個具體例中,僅使用偶數列,而在另一個具體例中,僅使用奇數列。在每條源極線(SL0、SL1)上之電流執行來自連接至那條特定源極線之記憶體單元的所有電流之求和函數。
如本文針對神經網路所述,VMM陣列1100的非揮發性記憶體單元(亦即,VMM陣列1100的快閃記憶體)較佳地配置成在次臨界區域中操作。
在弱倒轉中施加偏壓於本文所述之非揮發性參考記憶體單元及非揮發性記憶體單元: Ids=Io*e(Vg-Vth)/nVt =w*Io*e(Vg)/nVt , 其中w=e(-Vth)/nVt 其中Ids係汲極至源極電流;Vg係在記憶體單元上的閘極電壓;Vth係記憶體單元的臨界電壓;Vt係熱電壓= k*T/q,其中k係波茲曼常數,T係克氏溫度,q係電荷; n係斜率因數= 1+(Cdep/Cox),其中Cdep =空乏層的電容,Cox係閘極氧化層的電容;Io係閘極電壓等於臨界電壓時的記憶體單元電流,Io與(Wt/L)*u*Cox*(n-1)*Vt2 成比例關係,其中u係載子遷移率,Wt及L分別是記憶體單元的寬度及長度。
對於使用記憶體單元(例如,參考記憶體單元或周邊記憶體單元)或電晶體將輸入電流Ids轉換成輸入電壓Vg之I至V對數轉換器: Vg= n*Vt*log [Ids/wp*Io] 在此,wp係參考或周邊記憶體單元的w。
對於使用記憶體單元(例如,參考記憶體單元或周邊記憶體單元)或電晶體將輸入電流Ids轉換成輸入電壓Vg之I至V對數轉換器: Vg= n*Vt*log [Ids/wp*Io]
在此,wp係參考或周邊記憶體單元的w。
對於用作向量矩陣乘法器VMM陣列的記憶體陣列,輸出電流為: Iout=wa*Io*e(Vg)/nVt , 亦即 Iout=(wa/wp)*Iin=W*Iin W=e(Vthp-Vtha)/nVt Iin=wp*Io*e(Vg)/nVt 在此,wa=記憶體陣列中之每個記憶體單元的w。
字元線或控制閘極可用以作為用於輸入電壓之記憶體單元的輸入。
或者,本文所述之VMM陣列的非揮發性記憶體單元可以配置成在線性區域中操作: Ids=beta*(Vgs-Vth)*Vds;beta=u*Cox*Wt/L, Wα(Vgs-Vth), 表示線性區域中之權重W與(Vgs-Vth)成比例關係。
字元線或控制閘極或位元線或源極線可用以作為在線性區域中操作之記憶體單元的輸入。位元線或源極線可以用作記憶體單元的輸出。
對於I至V線性轉換器,在線性區域中操作之記憶體單元(例如,參考記憶體單元或周邊記憶體單元)或電晶體或電阻器可以用於將輸入/輸出電流線性地轉換成輸入/輸出電壓。
或者,本文所述之VMM陣列的記憶體單元可以配置成在飽和區域中操作: Ids=½*beta*(Vgs-Vth)2 ;beta=u*Cox*Wt/L Wα(Vgs-Vth)2 ,表示權重W與(Vgs-Vth)2 成比例關係。
字元線、控制閘極或抹除閘極可以用以作為在飽和區域中操作之記憶體單元的輸入。位元線或源極線可以用以作為輸出神經元的輸出。
或者,本文所述之VMM陣列的記憶體單元可以用於所有區域或其組合中(次臨界、線性或飽和)。
在美國專利申請案第15/826,345號中描述圖9的VMM陣列32之其它具體例,在此以提及方式將其併入本文。如上面申請案所述,源極線或位元線可用以作為神經元輸出(電流總和輸出)。
圖12描繪神經元VMM陣列1200,其特別適用於圖2所示之記憶體單元210,並且用以作為輸入層與下一層之間的突觸。VMM 陣列1200包括非揮發性記憶體單元的記憶體陣列1203、第一非揮發性參考記憶體單元的參考陣列1201及第二非揮發性參考記憶體單元的參考陣列1202。配置在陣列的行方向上之參考陣列1201及1202用於將流入端子BLR0、BLR1、BLR2及BLR3的電流輸入轉換成電壓輸入WL0、WL1、WL2及WL3。實際上,第一及第二非揮發性參考記憶體單元係以二極體形式經由多工器1214(僅部分被描繪)與流入它們的電流輸入連接。將參考單元調整(例如,程式化)至目標參考位準。目標參考位準由參考微型陣列矩陣(未顯示)來提供。
記憶體陣列1203提供兩個用途。第一,它在其個別記憶體單元上儲存將被VMM陣列1200使用的權重。第二,記憶體陣列1203有效地將輸入(亦即,被提供至端子BLR0、BLR1、BLR2及BLR3的電流輸入;參考陣列1201及1202將這些電流輸入轉換成輸入電壓,以供應至字元線WL0、WL1、WL2及WL3)乘以記憶體陣列1203中所儲存之權重,然後將所有結果(記憶體單元電流)相加,以在個別位元線(BL0-BLN)上產生輸出,所述輸出將是下一層的輸入或最後一層的輸入。藉由執行乘法及加法函數,記憶體陣列1203不需要個別的乘法及加法邏輯電路,並且還具有功率效率。這裡,電壓輸入被提供在字元線WL0、WL1、WL2及WL3上,並且輸出在讀取(推理)操作期間出現在各別位元線BL0-BLN上。在位元線BL0-BLN的每條位元線上之電流執行來自連接至那條特定位元線之所有非揮發性記憶體單元的電流之求和函數。
表5描繪VMM陣列1200的操作電壓。表中之行表示在被選單元的字元線、未被選單元的字元線、被選單元的位元線、未被選單元的位元線、被選單元的源極線及未被選單元的源極線上之電壓,其中FLT表示浮動,亦即,未施加電壓。列表示讀取、抹除及程式化的操作。 表5:圖12的VMM陣列1200之操作
   WL WL-unsel BL BL-unsel SL SL-unsel
讀取 0.5-3.5V -0.5V/0V 0.1-2V (I神經元) 0.6V-2V/FLT 0V 0V
抹除 ~5-13V 0V 0V 0V 0V 0V
程式化 1-2V -0.5V/0V 0.1-3 uA Vinh ~2.5V 4-10V 0-1V/FLT
圖13描繪神經元VMM陣列1300,其特別適用於圖2所示之記憶體單元210,並且用以作為輸入層與下一層之間的突觸及神經元的部件。VMM 陣列1300包括非揮發性記憶體單元的記憶體陣列1303、第一非揮發性參考記憶體單元的參考陣列1301及第二非揮發性參考記憶體單元的參考陣列1302。參考陣列1301及1302在VMM陣列1300的列方向上延伸。除在VMM陣列1300中,字元線在垂直方向上延伸外,VMM陣列與VMM 1200相似。這裡,在字元線(WLA0、WLB0、WLA1、WLB1、WLA2、WLB2、WLA3、WLB3)上提供輸入,並且在讀取操作期間輸出出現在源極線(SL0,SL1)上。在每條源極線上之電流執行來自連接至那條特定源極線之記憶體單元的所有電流之求和函數。
表6描繪VMM陣列1300的操作電壓。表中之行表示在被選單元的字元線、未被選單元的字元線、被選單元的位元線、未被選單元的位元線、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。 表6:圖13的VMM陣列1300之操作
   WL WL -unsel BL BL -unsel SL SL -unsel
讀取 0.5-3.5V -0.5V/0V 0.1-2V 0.1V-2V/FLT ~0.3-1V (I神經元) 0V
抹除 ~5-13V 0V 0V 0V 0V SL-禁止(~4-8V)
程式化 1-2V -0.5V/0V 0.1-3 uA Vinh ~2.5V 4-10V 0-1V/FLT
圖14描繪神經元VMM陣列1400,其特別適用於圖3所示之記憶體單元310,並且用以作為輸入層與下一層之間的突觸及神經元的部件。VMM陣列1400包括非揮發性記憶體單元的記憶體陣列1403、第一非揮發性參考記憶體單元的參考陣列1401及第二非揮發性參考記憶體單元的參考陣列1402。參考陣列1401及1402用於將流入端子BLR0、BLR1、BLR2及BLR3的電流輸入轉換成電壓輸入CG0、CG1、CG2及CG3。實際上,第一及第二非揮發性參考記憶體單元係以二極體形式經由多工器1412(僅部分被顯示)與經由BLR0、BLR1、BLR2及BLR3流入它們的電流輸入連接。多工器1412各自包括個別多工器1405及疊接電晶體1404,以在讀取操作期間確保第一及第二非揮發性參考記憶體單元中之每一者的位元線(諸如BLR0)上的固定電壓。將參考單元調整至目標參考位準。
記憶體陣列1403提供兩個用途。第一,它儲存將被VMM陣列 1400使用的權重。第二,記憶體陣列1403有效地將輸入(被提供至端子BLR0、BLR1、BLR2及BLR3的電流輸入;參考陣列1401及1402將這些電流輸入轉換成輸入電壓,以供應至控制閘極(CG0、CG1、CG2及CG3))乘以記憶體陣列中所儲存之權重,然後將所有結果(單元電流)相加,以產生輸出,所述輸出出現在BL0-BLN上且將是下一層的輸入或最後一層的輸入。藉由執行乘法及加法函數,記憶體陣列不需要個別的乘法及加法邏輯電路,並且還具有功率效率。這裡,輸入被提供在控制閘極線(CG0、CG1、CG2及CG3)上,並且輸出在讀取操作期間出現在位元線(BL0-BLN)上。在每條位元線上之電流執行來自連接至那條特定位元線之記憶體單元的所有電流之求和函數。
VMM陣列1400針對記憶體陣列1403中之非揮發性記憶體單元實施單向調整。亦即,抹除及然後部分程式化每個非揮發性記憶體單元,直到達到浮動閘極上之期望電荷為止。例如,這可以使用下面描述之精確程式化技術來執行。如果使太多電荷置於浮動閘極上(使得錯誤值儲存在單元中),則必須抹除單元並且必須重新開始部分程式化操作的順序。如圖所示,共享同一個抹除閘極(例如,EG0或EG1)的兩列需要一起被抹除(稱為頁抹除),之後,部分程式化每個單元,直到達到浮動閘極上之期望電荷為止。
表7描繪VMM陣列1400的操作電壓。表中之行表示在被選單元的字元線、未被選單元的字元線、被選單元的位元線、未被選單元的位元線、被選單元的控制閘極、與被選單元相同的區段中之未被選單元的控制閘極、與被選單元不同的區段中之未被選單元的控制閘極、被選單元的抹除閘極、未被選單元的抹除閘極、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。 表7:圖14的VMM陣列1400之操作
   WL WL- unsel BL BL - unsel CG 在同一個 區段中之 CG - unsel CG - unsel EG EG - unsel SL SL - unsel
讀取 0.5-2V -0.5V/ 0V 0.1-2V (I神經元) 0V/FLT 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0V 0V
抹除 0V 0V 0V 0V 0V 0-2.6V 0-2.6V 5-12V 0-2.6V 0V 0V
程式化 0.7-1V -0.5V/ 0V 0.1-1uA Vinh (1-2V) 4-11V 0-2.6V 0-2.6V 4.5-5V 0-2.6V 4.5-5V 0-1V
圖15描繪神經元VMM陣列1500,其特別適用於圖3所示之記憶體單元310,並且用以作為輸入層與下一層之間的突觸及神經元的部件。VMM陣列1500包括非揮發性記憶體單元的記憶體陣列1503、第一非揮發性參考記憶體單元的參考陣列1501及第二非揮發性參考記憶體單元的參考陣列1502。EG線EGR0、EG0、EG1及EGR1垂直延伸,而CG線CG0、CG1、CG2及CG3以及SL線WL0、WL1、WL2及WL3水平延伸。除VMM陣列1500實施雙向調整外,VMM陣列1500與VMM陣列1400相似,其中每個個別單元可以完全被抹除、部分被程式化及根據需要部分被抹除,以因個別EG線的使用而在浮動閘極上達到所需的電荷量。如圖所示,參考陣列1501及1502將端子BLR0、BLR1、BLR2及BLR3中之輸入電流轉換成要施加至列方向上的記憶體單元之控制閘極電壓CG0、CG1、CG2及CG3(藉由以二極體形式經由多工器1514連接之參考單元的作用)。電流輸出(神經元)位於位元線BL0-BLN中,其中每條位元線計算來自與那條特定位元線連接之非揮發性記憶體單元的所有電流之總和。
表8描繪VMM陣列1500的操作電壓。表中之行表示在被選單元的字元線、未被選單元的字元線、被選單元的位元線、未被選單元的位元線、被選單元的控制閘極、與被選單元相同的區段中之未被選單元的控制閘極、與被選單元不同的區段中之未被選單元的控制閘極、被選單元的抹除閘極、未被選單元的抹除閘極、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。 表8:圖15的VMM陣列1500之操作
   WL WL - unsel BL BL- unsel CG 在同一個 區段中之 CG -unsel CG- unsel EG EG- unsel SL SL- unsel
讀取 1.0-2V -0.5V/ 0V 0.6-2V (I神經元) 0V/FLT 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0V 0V/FLT
抹除 0V 0V 0V 0V 0V 4-9V 0-2.6V 5-12V 0-2.6V 0V 0V
程式化 0.7-1V -0.5V/ 0V 0.1-1uA Vinh (1-2V) 4-11V 0-2.6V 0-2.6V 4.5-5V 0-2.6V 4.5-5V 0-1V
圖16描繪神經元VMM陣列1600,其特別適合於圖2所示之記憶體單元210,並且用以作為輸入層與下一層之間的突觸及神經元的部件。在VMM陣列1600中,在位元線BL0 、…、BLN 上分別接收輸入INPUT0 、…、INPUTN ,並且在源極線SL0 、SL1 、SL2 及SL3 上分別產生輸出OUTPUT1 、OUTPUT2 、OUTPUT3 及OUTPUT4
圖17描繪神經元VMM陣列1700,其特別適合於圖2所示之記憶體單元210,並且用以作為輸入層與下一層之間的突觸及神經元的部件。在此實例中,在源極線SL0 、SL1 、SL2 及SL3 上分別接收輸入INPUT0 、INPUT1 、INPUT2 及INPUT3 ,並且在位元線BL0 、…、BLN 上產生輸出 OUTPUT0 、…、OUTPUTN
圖18描繪神經元VMM陣列1800,其特別適合於圖2所示之記憶體單元210,並且用以作為輸入層與下一層之間的突觸及神經元的部件。在此實例中,在字元線WL0 、…、WLM 上分別接收輸入INPUT0 、…、INPUTM ,並且在位元線BL0 、…、BLN 上產生輸出 OUTPUT0 、…、OUTPUTN
圖19描繪神經元VMM陣列1900,其特別適合於圖3所示之記憶體單元310,並且用以作為輸入層與下一層之間的突觸及神經元的部件。在此實例中,在字元線WL0 、…、WLM 上分別接收輸入INPUT0 、…、INPUTM ,並且在位元線BL0 、…、BLN 上產生輸出 OUTPUT0 、…、OUTPUTN
圖20描繪神經元VMM陣列2000,其特別適合於圖4所示之記憶體單元410,並且用以作為輸入層與下一層之間的突觸及神經元的部件。在此實例中,在垂直控制閘極線CG0 、…、CGN 上分別接收輸入INPUT0 、…、INPUTN ,並且在源極線SL0 及SL1 上產生輸出 OUTPUT1 及OUTPUT2
圖21描繪神經元VMM陣列2100,其特別適合於圖4所示之記憶體單元410,並且用以作為輸入層與下一層之間的突觸及神經元的部件。在此實例中,在分別耦接至位元線BL0 、…、BLN 之位元線控制閘2901-1、2901-2、…、2901-(N-1)及2901-N的閘極上分別接收輸入INPUT0 、…、INPUTN 。在源極線SL0 及SL1 上產生示例性輸出OUTPUT1 及OUTPUT2
圖22描繪神經元VMM陣列2200,其特別適合於圖3所示之記憶體單元310、圖5所示之記憶體單元510及圖7所示之記憶體單元710,並且用以作為輸入層與下一層之間的突觸及神經元的部件。在此實例中,在字元線WL0 、…、WLM 上接收輸入INPUT0 、…、INPUTM ,並且在位元線BL0 、…、BLN 上分別產生輸出 OUTPUT0 、…、OUTPUTN
圖23描繪神經元VMM陣列2300,其特別適合於圖3所示之記憶體單元310、圖5所示之記憶體單元510及圖7所示之記憶體單元710,並且用以作為輸入層與下一層之間的突觸及神經元的部件。在此實例中,在控制閘極線CG0 、…、CGM 上接收輸入INPUT0 、…、INPUTM ,並且在垂直源極線SL0 、…、SLN 上分別產生輸出 OUTPUT0 、…、OUTPUTN ,其中每條源極線SLi耦接至第i行中之所有記憶體單元的源極線。
圖24描繪神經元VMM陣列2400,其特別適合於圖3所示之記憶體單元310、圖5所示之記憶體單元510及圖7所示之記憶體單元710,並且用以作為輸入層與下一層之間的突觸及神經元的部件。在此實例中,在控制閘極線CG0 、…、CGM 上接收輸入INPUT0 、…、INPUTM ,並且在垂直位元線BL0 、…、BLN 上分別產生輸出 OUTPUT0 、…、OUTPUTN ,其中每條位元線BLi耦接至第i行中之所有記憶體單元的位元線。 測試電路及方法
圖25描繪VMM系統2500。VMM系統2500包括VMM陣列2501(其可以根據先前論述的任何VMM陣列設計,例如,VMM陣列1100、1200、1300、1400、1500、1600、1700、1800、1900、2000、2100、2200、2300及2400或其它VMM陣列設計)、低電壓列解碼器2502、高電壓列解碼器2503、行解碼器2504、行驅動器2505、控制邏輯2506、偏壓電路2507、輸出電路區塊2508、輸入VMM電路區塊2509、演算法控制器2510、高電壓產生器區塊2511、類比電路區塊2515、控制邏輯2516及測試控制邏輯2517。
輸入電路區塊2509用作從外部輸入至記憶體陣列2501的輸入端子之介面。輸入電路區塊2509可以包括DAC(數位至類比轉換器)、DPC(數位至脈衝轉換器)、APC(類比至脈衝轉換器)、IVC(電流至電壓轉換器)、AAC(類比至類比轉換器,例如,電壓至電壓換算器)或FAC(頻率至類比轉換器),但不限於此。輸出電路區塊2508用作從記憶體陣列輸出至外部介面(未顯示)的介面。輸出電路區塊2508可以包括ADC(類比至數位轉換器)、APC(類比至脈衝轉換器)、DPC(數位至脈衝轉換器)、IVC(電流至電壓轉換器)或IFC(電流至頻率轉換器),但不限於此。輸出電路區塊2508可以包括激勵函數、歸一化電路及/或重新定標電路(re-scaling circuitry),但不限於此。
低電壓列解碼器2502提供用於讀取及程式化操作之偏壓,並且提供解碼信號給高電壓列解碼器2503。高電壓列解碼器2503提供用於程式化及抹除操作之高偏壓信號。
演算法控制器2510在程式化、驗證及抹除操作期間提供控制功能給位元線。
高電壓產生器區塊2511包括電荷泵2512、電荷泵調節器2513及高電壓產生電路2514,高電壓產生電路2514提供各種程式化、抹除、程式化驗證及讀取操作所需的多個電壓。
測試控制邏輯2517包含用於執行下面關於圖26-31所述之測試的各種測試控制電路。
圖26描繪參考電流源2600,其使用在一個或多個非揮發性記憶體單元的程式化操作之後的驗證操作期間,或使用在其它類型的測試期間。例如,參考電流源2600可以用於單個非揮發性記憶體單元的驗證操作,或者用於一行非揮發性記憶體單元(例如,連接至一條特定位元線的所有單元)或一些其它分組的非揮發性記憶體單元之驗證操作。
參考電流源2600包括緩衝鏡2601(其包括具有輸出IREF 2607的緩衝運算放大器2602及PMOS電晶體2603)、可調偏流源2604以及二維陣列2605(其包括i列及j行裝置2606的陣列),其中特定裝置2606以標記2606-(列)(行)來表示。在此,可以啟動各種組合的裝置2606,以便可以調整由緩衝鏡2601輸出的參考電流IREF 2607的量。如圖所示,陣列2605中具有16個裝置2606,每個裝置可以由電流鏡來實施。參考電流源2600基本上將4個數位輸入轉換為參考偏流,其數值是Ibiasunit的1到16倍,其中Ibiasunit由偏流源2604提供。參考電流源2600基本上是溫度計碼式數位至電流轉換器,其緩衝輸出IREF 2607的數值對應於16個位準中之一,此特定位準回應該4個數位輸入,可以由前述任何VMM陣列中的記憶體單元來儲存。
例如,偏流源2604可以提供1nA的電流Ibiasunit,該電流Ibiasunit被映射至裝置2606中。在此,第一列由裝置2606-11至2606-1j組成,並且從左至右依序啟用,一次一個裝置2606 。然後,以從左至右的順序方式啟用下一列,以添加至第一列,這意味著啟用5個然後6個然後7個然後8個裝置2606。藉由依序啟用裝置2606,可以避免與常規二進制解碼相關之電晶體失配問題。 然後,啟用的裝置2606之總和由緩衝鏡2601來映射並輸出作為電流IREF 2607。偏流源2604可以提供可調整範圍的電流Ibiasunit,例如,50pA/100pA/200pA/.../100nA。陣列2605在此被顯示為4×4陣列,但是應當理解,陣列2605可以具有其它尺寸,例如,32×32或8×32。
圖27描繪參考子電路2700,其可以用於圖26中之任何裝置2606。參考子電路2700包括如圖所配置之NMOS電晶體2701及2702。電晶體2702係在其閘極上接收電流Ibiasunit(以上關於圖26所論述)之電流鏡偏置電晶體,並且電晶體2701係致能電晶體(以使電流鏡偏置電晶體2702連接至輸出節點OUTPUT)。例如由以二極體連接的NMOS電晶體(類似於電晶體2702)(未顯示)來提供電流Ibiasunit。
圖28描繪在一個非揮發性記憶體單元、一行非揮發性記憶體單元或一些其它分組的非揮發性記憶體單元之程式化操作之後的驗證操作期間,或者在另一種類型的測試期間,與參考電流源2600一起使用之感測放大器2800。感測放大器2800接收上面關於圖26所述之電流IREF 2607。IREF 2607可以被建模為具有由VIREF 2814控制之閘極的PMOS電晶體2813。感測放大器2800進一步包括反相器2801、用於限制反相器2801中之電流的電流源2802、開關2803及2806、電容器2804以及串接式NMOS電晶體2805(以在記憶體位元線上施加固定電壓)。感測放大器2800從參考電流源2600接收電流IREF 2607,該電流可以是例如要被儲存在VMM陣列的非揮發性記憶體單元中之十六個可能位準中之一。感測放大器2800耦接至單元2808,該單元係其內容將被驗證的非揮發性記憶體單元。當NMOS電晶體2805導通時,單元2808汲取電流ICELL 。或者,單元2808可以用行2809來取代(為了附圖的方便,其將汲取仍然被稱為ICELL 的電流,該電流將是由行2809汲取的神經元電流)。
在一個具體例中,IREF 2607從最低可能值(例如,可以儲存在單元2808或行2809中之16個可能位準中之最低位準)開始,然後依序增加至每個後續位準以進行驗證操作。可以關閉開關2806,以產生用於電容器2804的初始狀態(例如,接地或預充電電壓,以提供偏移取消)。可以關閉開關2803,以使反相器2801的輸入與輸出相等,這從反相器2801移除偏移,以在驗證操作中進行比較。在驗證操作期間,打開開關2806及2803。如果ICELL > = IREF 2607,則節點2810上的電壓將降低,接著經由電容器2804進行電容耦合,造成節點2811上的電壓降低,從而導致反相器輸出切換至「1」,這意味著反相器2801的輸入將是數值「0」,而反相器2801的輸出將是數值「1」。如果ICELL <IREF 2607,則節點2810上的電壓將上升,接著經由電容器2804進行電容耦合,造成節點2811上的電壓上升,從而導致反相器輸出切換至「0」,這意味著反相器2801的輸入將切換至數值「1」,而反相器2801的輸出將切換至數值「0」。發生時之IREF 2607的數值對應於儲存在單元2808中之數值。
圖29A描繪在程式化脈衝操作之後的非揮發性記憶體單元2930或行2931之驗證操作期間(例如,驗證記憶體單元是否在權重調整過程期間達到目標電流),或者在另一種類型的測試期間(例如,驗證在記憶體陣列中不符合單元電流需求的尾部記憶體位元(例如,異常位元),與參考電流源2600一起使用的驗證傾斜類比至數位轉換器(ADC)2900。ICELL 2906係來自單元2930或行2931的輸出電流。驗證ADC 2900將ICELL 2906轉換為一系列數位輸出位元,其輸出作為輸出2940,其中輸出2940表示在單元2930或行2931中儲存的數值。
驗證ADC 2900包括運算放大器2901、可調電容器2902、運算放大器2904、計數器2920以及開關2908、2909及2910。可調電容器2902對ICELL 2906與由可調電流源2807提供之電流IREF 進行積分。在初始化階段期間,關閉開關2908。 運算放大器2901的Vout 2903及運算放大器2901的反相輸入之輸入將等於施加至運算放大器2901的非反相輸入之參考電壓VREF的數值。之後,打開開關2908,並且在固定時段tref期間,關閉開關2910且對神經元電流ICELL 2906進行向上積分。 在固定時段tref期間,Vout 2903上升,其斜率反映ICELL 2906的數值。之後,在時段tmeas期間,藉由打開開關2910及關閉開關2909,對由可調電流源2807提供之固定參考電流IREF 進行向下積分,在此時段期間Vout下降,其中tmeas係對Vout進行向下積分至VREF所需的時間。
當VOUT 2903>VREF時,運算放大器2904的輸出EC 2905將為高位準,否則將為低位準。因此,EC 2905產生一個脈衝,其寬度反映時段tmeas,進而與電流ICELL 2906成比例關係。
任選地,將輸出EC 2905輸入至計數器2920,計數器2920對在輸出EC2905為高位準時接收到之時鐘脈衝2921的數量進行計數,並且將產生輸出2940,輸出2940將是表示在EC 2905為高位準時發生之時鐘脈衝2921的數量之數位計數的一組數位位元,此數量與ICELL 2906成正比,對應於儲存在單元2930或行2931中的數值。
圖29B描繪驗證斜坡類比至數位轉換器2950,其包括電流源2953(其代表接收到的神經元電流Ineu或單個記憶體單元電流)、開關2954、可變電容器2952及比較器2951,比較器2951在其非反相輸入處接收可變電容器2952兩端產生的電壓(以Vneu表示)及在其反相輸入處接收可配置參考電壓Vreframp,並且產生輸出Cout。未顯示用於清除可變電容器2952兩端的電壓之電路。對於每個比較時鐘週期,Vreframp均以離散位準逐步向上(步進)。比較器2951將Vneu與Vreframp進行比較,結果,當Vneu> Vreframp時,輸出Cout將為「1」,否則將為「0」。因此,輸出Cout將是一個脈衝,其寬度回應Ineu的數值而變化。較大的Ineu會導致Cout在較長的時間內為「1」,亦即,輸出Cout的脈衝寬度較大。數位計數器2960將輸出Cout轉換為數位輸出位元DO [n:0] 2970,這些位元反映Cout為數值「1」時之時鐘週期2961的數量。 或者,斜坡電壓Vreframp係連續的斜坡電壓。可以實施一個多斜坡具體例,以便藉由利用粗調-細調斜坡轉換算法(coarse-fine ramp conversion algorithm)來減少轉換時間。首先,粗調參考斜坡參考電壓以快速方式上升,以算出每個Ineu的子範圍。接下來,分別針對每個子範圍使用細調參考斜坡參考電壓,以便轉換個別子範圍內的Ineu電流。可能有兩個以上的粗調/細調步進或兩個子範圍。
其它ADC架構可以用作驗證ADC,例如,快閃ADC、SAR(逐漸近似暫存器)ADC、演算法ADC、管線式ADC、Sigma Delta ADC,但不限於此。
圖30描繪先前關於圖25所述之高電壓產生電路2511的實施例。高電壓產生電路2511可以與先前討論的任何VMM陣列一起使用。高電壓產生電路2511包括電荷泵2512及高電壓產生電路2514。電荷泵2512接收輸入3004並產生高電壓3005,高電壓3005又被提供給高電壓產生器3002及3003。高電壓(HV)產生器(HVDAC_EG)3002係HV數位至類比轉換器,其可提供適合於施加至分離式閘極快閃記憶體單元的抹除閘極端子之以VEG 3008表示的電壓(例如,增量電壓),以回應數位位元3006及接收到的高電壓3005。高電壓產生器(HVDAC CGSL)3003係HV數位至類比轉換器,其可提供適合於施加至分離式閘極快閃記憶體單元的控制閘極端子及源極線端子之分別以VCG 3009及VSL 3010表示的電壓(例如,增量電壓),以回應數位位元3007及接收到的高電壓3005。
圖31描繪先前關於圖25所述之VMM系統2500,但是在此以測試配置來顯示。測試控制邏輯2517將控制信號提供給VMM系統2500的其它組件(如圖25所示,但未顯示在圖31中),例如,VMM陣列2501、列解碼器2502、行解碼器2504、輸入區塊2509、高電壓解碼器2503、行驅動器2505、高電壓產生區塊2511、類比區塊2515、演算法控制器2510及輸出電路區塊2508,以實施一個或多個測試演算法3100。VMM陣列2501從列解碼器2502接收控制信號,從而在VMM陣列2501內確立一列或多列。VMM陣列2501將來自一條或多條位元線的信號提供給行解碼器2504,行解碼器2504接著將來自一條或多條位元線的輸出提供給輸出電路區塊2508。輸出電路區塊2508可以包括類比至數位轉換器區塊(例如,先前關於圖29A所述之驗證ADC 2900或先前關於圖29B所述之驗證斜坡式ADC 2950),其提供代表輸出電路區塊2508從VMM陣列2501接收之類比電流的數位輸出。
表9包含在單個記憶體單元上執行之程式化、抹除、讀取及驗證操作期間;在耦接至一行記憶體單元的一被選位元線上執行之驗證神經元及讀取神經元操作期間;以及在讀取陣列操作期間(藉此讀取每條位元線,其中每條位元線耦接至一行記憶體單元),要施加至VMM陣列2501內之字元線、控制閘極線、抹除閘極線、源極閘極線及位元線的示例性數值。 表9:用於VMM陣列2501內之操作的示例性數值
   WL    CG    EG    SL    BL   
   sel unsel sel unsel sel unsel sel unsel sel unsel
程式化 0.9V 0v 高達10.5V 0v 高達4.5V 0v 高達4.5V ~0.5v Iprog Vinh
抹除 0v 0v 0v 0v 6V-11.5V 0v 0v 0v 0v 0v
讀取 1.1V 0v 2.5V 2.5V 2.5V 2.5V 0v 0v 0.6V 0v
驗證神經元    1.1V    0v    0V-1.5V    0v    0V    0v    0v    0v    0.6V    0v
讀取神經元    1.1V    1.1V    0V-1.5V    0V-1.5V    0V    0V    0v    0V    0.6V    0.6V
讀取陣列 1.1V 1.1V 0V-1.5V 0V-1.5V 0V 0V 0v 0V 0.6V 0v
現在將提供關於可以參考圖31中所述之測試演算法3100來實施及在圖32-44中更詳細描述之測試類型的更多細節,所述測試類型藉由測試控制邏輯2517及VMM系統2500的其它組件來實施。
參考圖32,位元線神經讀取測試3101同時測量在耦接至一條位元線的所有記憶體單元中之數值。 亦即,位元線神經讀取測試3101讀取VMM陣列中之神經元。第一,列解碼器2502確立陣列中之所有字元線(步驟3201)。第二,藉由行解碼器2504選擇(確立)一條位元線(步驟3202)。第三,例如藉由感測放大器2800感測從位元線接收之電流來對位元線執行讀取(步驟3203)。第四,可以藉由與參考電流源2600所產生之參考電流進行比較來判定被選位元線的數值,以判定耦接至被選位元線的非揮發性記憶體單元(亦即,神經元)是否包含期望值(步驟3204)。
參考圖33,位元線神經測量測試3102相似於位元線神經讀取測試3101。列解碼器2502確立所有字元線(步驟3301)。藉由行解碼器2504選擇一條位元線(步驟3302)。測量位元線在讀取操作期間汲取的電流(步驟3303)。在此,與位元線神經讀取測試3101不同,在不與參考電流進行比較的情況下測量來自被選位元線的電流。
參考圖34,在LSB篩選測試3103期間,列解碼器2502確立所有字元線(步驟3401),並且行解碼器2504確立所有位元線(步驟3402)。在VMM陣列2501中之所有記憶體單元上執行深度程式化(步驟3403)。深度程式化將對超出用於推理讀取之正常程式狀態的所有記憶體單元進行程式化。與正常操作相比,需要更長的程式化時序或更高的程式化電壓。然後,測量從所有位元線接收之總電流(步驟3404)。預期深度程式化陣列的總電流將遠小於LSB值。此外,檢查每個個別單元,以確保來自個別單元的電流亦低於LSB值,例如,50-100 pA。這種類型的測試適用於在製造過程中進行測試,以快速識別不良晶粒。
參考圖35,在位元線取樣篩選測試3104期間,將一個記憶體單元或一組記憶體單元程式化為一個特定位準,例如,Lx,其中x的範圍從1至N,其中N係可儲存在單元中之位準的總數(例如,N=16)(步驟3501)。然後,測量位元線電流(意思是由被選位元線中之一個單元或一組單元所汲取的電流,稱為IBL )K次(步驟3502)。例如,如果K = 8,則測量位元線電流8次。然後,根據步驟3502的K個測量值(亦即,IBL1 …IBLK )計算平均值(IAVG )(步驟3503)。
接下來,對照IAVG 檢查K個電流測量IBL1 …IBLK 中的每一個(步驟3504)。如果IBLi (其中i介於i至K之間)>(IAVG +臨界值3505)或IBLi <(IAVG- -臨界值3506),則將位元線視為不良的。然後,檢查不良位元線中的每個單元,並且用冗餘單元(例如,來自冗餘列或冗餘行的單元)來替換不良單元。
在圖36中描繪位元線取樣篩選測試3104的另一具體例。藉由在K個不同時間強迫電流Iref進入位元線來測量電壓VCG (步驟3601)。例如,可以掃描電壓VCG ,直到位元線電流與固定的Iref匹配為止,並且可以測量及儲存特定的VCG 。固定的Iref可以由參考電流源2600來提供,並且可以藉由感測放大器2800執行位元線電流是否與固定Iref匹配的驅證操作。然後,根據K個不同的VCG 值計算平均值VAVG 。 接下來,對照VAVG 檢查K個測量的VCG 電壓中之每一個(步驟3603)。如果VCGi (其中i介於i至K之間)>(VAVG +臨界值3604)或VCGi <VAVG -臨界值3605),則將位元線視為不良的。然後,檢查不良位元線中之每個單元,並且用冗餘單元(冗餘列或冗餘行)來替換不良單元。
在讀取跳脫點(tripoint)測試3105期間,在讀取操作中使用不同位準的Iref來執行粗調及細調讀取參考電流調整。讀取跳脫點測試3105的目的是要知道被選記憶體單元是否可以傳送預定的電流百分比目標,例如,對於抹除單元為完全抹除單元的〜40%或對於程式化單元為完全程式化單元的〜5%。像這樣因而確保記憶體單元在主要分佈內,而不是尾部記憶體單元或尾部位元(亦即,統計離散點(statistical outlier)),因為尾部記憶體單元或尾部位元可能會在整個操作壽命期間引起潛在的可靠性問題。
參考圖37,在讀取範圍檢查測試3107期間,測試單元,以確保其能夠儲存N個可能位準中之每一個。首先,將單元程式化為代表N個數值中之一的目標值(步驟3701)。接下來,執行驗證操作,以判定在單元中儲存的數值是否在目標值附近之可接受數值範圍3710內(步驟3702)。針對N個數值中之每一個重複步驟3701及3702(步驟3703)。對於每個N值,可接受數值範圍3710可以是不同的。 如果正在執行的步驟3702之任何實例表示單元中儲存的數值在目標值附近的可接受數值範圍之外,則將單元識別為不良的。讀取範圍檢查測試3107可以藉由感測放大器2800、ADC 2900、ADC 2950或其它組件來執行。這對於執行記憶體單元的權重調整係很有用的。上面已經在一個具體例中進行說明,其中固定範圍用於以標稱值為中心之N個數值中的每一個,應當理解,在另一個具體例中,對於N個數值中的每一個使用上限臨界值及下限臨界值,並且在不超出範圍之情況下,這些 臨界值在所有N個數值中不必是相同的。
參考圖38,在讀取校正測試3108期間,針對一個單元或一組單元(例如,耦接至一條位元線的單元)測量漏電流(步驟3801),儲存測量的漏電流(ILEAKAGE )(步驟3802),並且稍後在讀取操作期間使用測量的漏電流值,以補償製程/電壓/溫度(PVT)的各種組合之漏電流(步驟3803)。在一個具體例例中,複數個單元各自以已知數值來進行程式化。將字元線及控制閘極線設定為接地,而將位元線設定為讀取偏壓。將一個不同參考電流序列注入陣列中,並且藉由諸如ADC電路2900或2950或者感測放大器2800的感測放大器來讀取所讀出的結果資料。將產生最佳結果的注入電流(與程式化至單元中的已知數值相比)儲存為ILEAKAGE 。之後,在相同單元的讀取操作期間施加ILEAKAGE ,例如,藉由在讀取操作期間從轉換資料減去儲存的漏電流位準,以補償被選單元中發生的漏電流。
參考圖39,在讀取斜率測試3109期間,判定控制閘電壓對兩個參考電流(在電流IR1的CG1及在電流IR2的CG2)的I-V斜率因數。第一步驟是在被選非揮發性記憶體單元在次臨界區域中操作時,判定被選非揮發性記憶體單元的對數斜率因數(步驟3901)。第二步驟是儲存對數斜率因數(步驟3902)。第三步驟是在被選非揮發性記憶體單元在線性區域中操作時,判定被選非揮發性記憶體單元的線性斜率因數(步驟3903)。第四步驟是儲存線性斜率因數(步驟3904)。第五步驟是在將被選單元程式化為目標電流時,使用對數斜率因數及線性斜率因數中之一或兩者(步驟3905)。
參考圖40,在讀取神經元合格性測試3110期間,讀取神經元(位元線),而不對照期望值來檢查數值。 第一步是測量位元線中的電流並儲存測量值(步驟4001)。第二步驟是執行讀取虛擬神經元測試4010(如下所述)達一個預定時間量,例如,在合格性鑑定過程期間的預燒時間(burn-in time)。第三步驟是測量來自位元線的電流(步驟4003)。 第四步驟是將測量電流與來自步驟4001之儲存的測量電流進行比較(步驟4004)。如果差異大於或小於一定量,則將位元線視為不良位元線。
讀取虛擬神經元測試4010包括一系列步驟。第一步驟是藉由列解碼器確立陣列中之所有字元線(步驟4011)。 第二步驟是藉由行解碼器確立陣列中之所有位元線,以選擇所有行的非揮發性記憶體單元(步驟4012)。第三步驟是在不檢查讀取輸出的情況下對陣列執行讀取操作(讀取條件)(步驟4013)。為了預燒目的,讀取虛擬神經元測試4010用以作為陣列上的讀取應力。
參考圖41,在軟抹除測試3111期間,測試整個陣列或一個區段,以檢查記憶體陣列的抹除性能。第一步驟是藉由在陣列中之每個非揮發性記憶體單元的一個端子上施加電壓序列來抹除陣列中之非揮發性記憶體單元,其中電壓序列中之電壓以固定步階隨著時間增加(步驟4101)。上述以遞增方式抹除單元,例如,藉由以0.5或1伏特的步階在5-12.5伏特之間的步進方式增加抹除閘極上的電壓來進行抹除。以此方式進行的抹除減少在記憶體單元上的應力。第二步驟是讀取所有非揮發性記憶體單元,以判定抹除步驟的有效性(步驟4102),例如,藉由判定在步驟4101的抹除之後的單元電流是在標稱值附近的可接受範圍內。任選地,可以執行耐久性測試,以判定可以維持多少個程式化/抹除週期,或者可以執行背景測試,以使陣列轉變為抹除狀態。
參考圖42,在軟程式化測試3112期間,測試整個陣列或一列單元。 第一步驟是藉由在陣列中之每個非揮發性記憶體單元的一個端子上施加電壓序列來對陣列中之非揮發性記憶體單元進行程式化,其中電壓序列中之電壓以固定步階隨著時間增加(步驟4201)。單元以遞增方式來進行程式化,例如,以10 mV或0.3 V或1 V的步階在3至10伏之間進行程式化,以檢查記憶體陣列的程式化性能。以這種方式進行的程式化減少在記憶體單元上的應力。第二步驟是讀取所有非揮發性記憶體單元,以判定程式化步驟的有效性(步驟4202),例如,藉由判定在步驟4201的程式化之後的單元電流是在標稱值附近的可接受範圍內 。任選地,可以使用耐久性測試或背景測試。
參考圖43,可以執行讀取驗證測試3106。第一步驟是程式化複數個非揮發性記憶體單元,以儲存N個不同數值中之一,其中N係可以儲存在任何非揮發性記憶體單元中之不同位準的數量(步驟4301)。第二步驟是測量由複數個非揮發性記憶體單元汲取的電流(步驟4302)。 第三步驟是將測量電流與目標值進行比較(步驟4303)。第四步驟是如果測量值與目標值之間的差超過臨界值因數,則將複數個非揮發性記憶體單元識別為不良(步驟4304)。
參考圖44,可以執行棋盤式驗證測試3113,從而使用棋盤或偽棋盤圖樣及取樣位準而不是所有可能位準(例如,4個位準,L0、Ln、Ln/4、Ln*3/4,而不是所有N個位準)來實施測試圖樣。例如,圖樣可以用於檢查記憶體陣列內之最壞情況下的電場應力(意味著一個單元處於高電場位準,而一個相鄰單元處於低電場位準)。
在一個具體例中,第一步驟是以N個位準中之對應於最小單元電流的位準來對複數個非揮發性記憶體單元中之第一組單元進行程式化(步驟4401)。第二步驟是以N個位準中之對應於最大單元電流的位準來對複數個非揮發性記憶體單元中之第二組單元進行程式化(步驟4402)。第二組單元中之每個單元與第一組單元中之一個或多個單元相鄰。第三步驟是測量由複數個非揮發性記憶體單元汲取的電流(步驟4403)。第四步驟是將測量電流與目標值進行比較(步驟4404)。第五步驟是如果測量值與目標值之間的差超過臨界值,則將複數個非揮發性記憶體單元識別為不良(步驟4405)。
表10包含可以在棋盤式驗證測試3113期間使用之實體陣列圖的其它示例性測試圖樣: 表10:示例性測試圖樣
圖樣1:
Ldeep Ln Ldeep Ln
Ln Ldeep Ln Ldeep
Ldeep Ln Ldeep Ln
Ln Ldeep Ln Ldeep
           
圖樣2:
Ldeep Lm Ldeep Lm
Lm Ldeep Lm Ldeep
Ldeep Lm Ldeep Lm
Lm Ldeep Lm Ldeep
           
圖樣3:
L0 Ln L0 Ln
Ln L0 Ln L0
L0 Ln L0 Ln
Ln L0 Ln L0
           
圖樣4:
L0 Lq Lm Ln
Ln L0 Lq Lm
Lm Ln L0 Lq
Lq Lm Ln L0
分類測試3114、最終測試3115、合格性測試3116及資料保存測試3117是可以在包含本文所揭露之VMM系統的晶圓、晶粒或封裝裝置之製造及合格性鑑定過程期間執行的測試套件。
分類測試3114可以在製造過程期間在晶圓上執行。 在一個具體例中,分類測試3114包括以下測試套件:首先,執行相對較快的測試,以快速識別不良晶圓或晶粒,例如,軟抹除測試3111、軟程式化測試3112以及各種應力模式測試(例如,抹除閘極氧化物gox、耦合閘極氧化物cox、源極線氧化物sol、反向擾動穿隧rtsts(從浮動閘極至字元線的穿隧,對未被選列的擾動)、漏電流mpt(從未被選列的源極至汲極的擾動)、讀取擾動rdist(來自讀取條件的擾動))。第二,執行神經測試模式,例如,用於上下區段的LSB篩選測試3103及位元線取樣篩選3104。神經測試模式比在第一步驟期間執行的測試耗時更多,並且由於在第一批耗時較少的測試中篩選及識別出不良晶圓或晶粒,因而節省一些時間。
最終測試3115可以在封裝裝置上執行。在一個具體例中,最終測試3115包括軟抹除測試3111及軟程式化測試3112的執行。任選地,可以使用用於神經應用的測試圖樣而不是全面測試來減少測試時間,例如,測試M個區段的N個位準中之K個位準或測試某些區段(例如,上下區段)的所有N個位準。
在合格性測試3116期間,執行虛擬位元線讀取循環(這是在未實際判定讀取資料內容的情況下執行讀取動作),並且藉由應用軟抹除測試3111及軟程式化測試3112來進行耐久性測試。執行位元線測試,而不是個別記憶體單元測試,因為在神經記憶體應用期間使用位元線讀取而不是個別記憶體讀取。
資料保存測試3117可以包括例如在升高的溫度(例如,250o C)下烘烤經程式化的晶圓達24-72小時。在一個具體例中,強加棋盤式或偽棋盤式測試圖樣,而不是像數位記憶體測試那樣進行全面測試。使用讀取位元線電流模式,在神經模式下對位元線電流進行資料保存檢查(而不是像數位記憶體那樣對每個記憶體單元進行檢查)。例如,一種查詢是要檢查是否差量IBL<+/-p%,其中差量IBL被定義為測量位線電流與期望位元線電流的差。(WholeBLmeas模式,用於神經網路的目標準確性之軟體神經網路建模允許的百分比誤差p%)。針對神經模式測試差量IBL,以識別位元線輸出電流是否超過或低於目標,在此將其定義為目標的預定百分比「p」。或者,可以用目標的a+/-差量來檢查/測試每個單元。
可以使用在此所述之硬體及演算法來執行其它測試。
應當注意,如本文所使用,術語「在…上方」及「在…上」均包含性地包括「直接在…上」(沒有中間材料、元件或空間設置在其間)及「間接在…上」(中間材料、元件或空間設置在其間)。同樣地,術語「相鄰」包括「直接相鄰」(沒有中間材料、元件或空間設置在其間)及「間接相鄰」(中間材料、元件或空間設置在其間),「安裝至」包括「直接安裝至」(沒有中間材料、元件或空間設置在其間)及「間接安裝至」(中間材料、元件或空間設置在其間),以及「電耦接至」包括「直接電耦接至」(沒有中間材料或元件在其間將元件電連接在一起)及「間接電耦接至」(中間材料或元件在其間將元件電連接在一起)。例如,「在基板上方」形成元件可以包括在基板上直接形成元件而在其間沒有中間材料/元件,以及在基板上間接形成元件而在其間具有一個或多個中間材料/元件。
12:半導體基板 14:源極區域 16:汲極區域 18:通道區域 20:浮動閘極 22:字元線端子(選擇閘極) 24:位元線端子 28:控制閘極(CG)端子 30:抹除閘極 31:數位至類比轉換器 32:VMM系統 32a:MM系統 32b:VMM系統 32c:VMM系統 32d:VMM系統 32e:VMM系統 33:VMM陣列(非揮發性記憶體單元陣列) 34:抹除閘極及字元線閘極解碼器 35:控制閘極解碼器 36:位元線解碼器 37:源極線解碼器 38:差分加法器 39:勵函數電路 210:記憶體單元 310:記憶體單元 410:4-閘極記憶體單元 510:記憶體單元 610:3-閘極記憶體單元 710:堆疊式閘極記憶體單元 1100:神經元VMM 陣列 1101:非揮發性記憶體單元的記憶體陣列 1102:非揮發性參考記憶體單元的參考陣列 1103:控制閘極線 1104:抹除閘極線 1200:神經元VMM陣列 1201:第一非揮發性參考記憶體單元的參考陣列 1202:第二非揮發性參考記憶體單元的參考陣列 1203:非揮發性記憶體單元的記憶體陣列 1214:多工器 1300:神經元VMM陣列 1301:第一非揮發性參考記憶體單元的參考陣列 1302:第二非揮發性參考記憶體單元的參考陣列 1303:非揮發性記憶體單元的記憶體陣列 1400:神經元VMM陣列 1401:第一非揮發性參考記憶體單元的參考陣列 1402:第二非揮發性參考記憶體單元的參考陣列 1403:非揮發性記憶體單元的記憶體陣列 1404:疊接電晶體 1405:多工器 1412:多工器 1500:神經元VMM陣列 1501:第一非揮發性參考記憶體單元的參考陣列 1502:第二非揮發性參考記憶體單元的參考陣列 1503:非揮發性記憶體單元的記憶體陣列 1514:多工器 1600:神經元VMM陣列 1700:神經元VMM陣列 1800:神經元VMM陣列 1900:神經元VMM陣列 2000:神經元VMM陣列 2100:神經元VMM陣列 2200:神經元VMM陣列 2300:神經元VMM陣列 2400:神經元VMM陣列 2500:VMM系統 2501:VMM陣列 2502:低電壓列解碼器 2503:高電壓列解碼器 2504:行解碼器 2505:行驅動器 2506:控制邏輯 2507:偏壓電路 2508:輸出電路區塊 2509:輸入VMM電路區塊 2510:演算法控制器 2511:高電壓產生器區塊 2512:電荷泵 2513:電荷泵調節器 2514:高電壓產生電路 2515:類比電路區塊 2516:控制邏輯 2517:測試控制邏輯 2600:參考電流源 2601:緩衝鏡 2602:緩衝運算放大器 2603:PMOS電晶體 2604:可調偏流源 2605:二維陣列 2606:裝置 2607:輸出IREF 2700:參考子電路 2701:NMOS電晶體 2702:NMOS電晶體 2800:感測放大器 2801:反相器 2802:電流源 2803:開關 2804:電容器 2805:串接式NMOS電晶體 2806:開關 2807:可調電流源 2808:單元 2809:行 2810:節點 2811:節點 2813:PMOS電晶體 2814:VIREF 2900:驗證傾斜類比至數位轉換器(ADC) 2901:運算放大器 2901-1-2901-N:位元線控制閘 2902:可調電容器 2903:Vout 2904:運算放大器 2905:輸出EC 2906:ICELL 2908:開關 2909:開關 2910:開關 2920:計數器 2921:時鐘脈衝 2930:非揮發性記憶體單元 2931:行 2940:輸出 2950:驗證斜坡式類比至數位轉換器 2951:比較器 2952:可變電容器 2953:電流源 2954:開關 2960:數位計數器 2961:時鐘週期 2970:數位輸出位元DO [n:0] 3002:高電壓產生器 3003:高電壓產生器 3004:輸入 3005:高電壓 3006:數位位元 3007:數位位元 3008:電壓VEG 3009:電壓VCG 3010:電壓VSL 3505:臨界值 3506:臨界值 3604:臨界值 3605:臨界值 3710:可接受數值範圍 BL0-BLN:位元線 BLR0:端子 BLR1:端子 BLR2:端子 BLR3:端子 C1:層 C2:層 C3:層 CB1:突觸 CB2:突觸 CB3:突觸 CB4:突觸 CG0:控制閘極線(電壓輸入) CG1:控制閘極線(電壓輸入) CG2:控制閘極線(電壓輸入) CG3:控制閘極線(電壓輸入) CG0-CGM:控制閘極線 CG0-CGN:控制閘極線 Cout:輸出 EG0:EG線 EG1:EG線 EGR0:EG線 EGR1:EG線 ICELL:電流 Ineu:神經元電流 INPUT0-INPUTM:輸入 INPUT0-INPUTN:輸入 Inputx:輸入 IREF:固定參考電流 OUTPUT:輸出節點 OUTPUT0-OUTPUTN:輸出 P1:激勵函數 P2:激勵函數 S0:輸入層 S1:層 S2:層 S3:輸出層 SL0:源極線 SL1:源極線 SL2:源極線 SL3:源極線 SLN:源極線 Vneu:電壓 VREF:參考電壓 Vreframp:可配置參考電壓 WL0:電壓輸入(字元線) WL1:電壓輸入(字元線) WL2:電壓輸入(字元線) WL3:電壓輸入(字元線) WL0-WLM:字元線 WLA0:字元線 WLA1:字元線 WLA2:字元線 WLA3:字元線 WLB0:字元線 WLB1:字元線 WLB2:字元線 WLB3:字元線
圖1係說明習知技藝的人工神經網路之示圖。
圖2描繪習知技藝的分離式閘極快閃記憶體單元。
圖3描繪另一個習知技藝的分離式閘極快閃記憶體單元。
圖4描繪另一個習知技藝的分離式閘極快閃記憶體單元。
圖5描繪另一個習知技藝的分離式閘極快閃記憶體單元。
圖6描繪另一個習知技藝的分離式閘極快閃記憶體單元。
圖7描繪習知技藝的堆疊式閘極快閃記憶體單元。
圖8係說明利用一個或多個非揮發性記憶體陣列之示例性人工神經網路的不同層級之示圖。
圖9係說明向量矩陣乘法系統的方塊圖。
圖10係說明利用一個或多個向量矩陣乘法系統之示例性人工神經網路的方塊圖。
圖11描繪向量矩陣乘法系統的另一個具體例。
圖12描繪向量矩陣乘法系統的另一個具體例。
圖13描繪向量矩陣乘法系統的另一個具體例。
圖14描繪向量矩陣乘法系統的另一個具體例。
圖15描繪向量矩陣乘法系統的另一個具體例。
圖16描繪向量矩陣乘法系統的另一個具體例。
圖17描繪向量矩陣乘法系統的另一個具體例。
圖18描繪向量矩陣乘法系統的另一個具體例。
圖19描繪向量矩陣乘法系統的另一個具體例。
圖20描繪向量矩陣乘法系統的另一個具體例。
圖21描繪向量矩陣乘法系統的另一個具體例。
圖22描繪向量矩陣乘法系統的另一個具體例。
圖23描繪向量矩陣乘法系統的另一個具體例。
圖24描繪向量矩陣乘法系統的另一個具體例。
圖25描繪包括測試控制邏輯之向量矩陣乘法系統的一個具體例。
圖26描繪參考電流源。
圖27描繪用於圖26的參考電流源之參考子電路。
圖28描繪感測放大器。
圖29A描繪驗證類比至數位轉換器。
圖29B描繪驗證類比至數位轉換器。
圖30描繪高電壓產生電路。
圖31描繪由向量矩陣乘法系統中之測試控制邏輯實施的示例性測試演算法。
圖32描繪位元線神經讀取測試的一個具體例。
圖33描繪位元線神經測量測試的一個具體例。
圖34描繪LSB篩選測試的一個具體例。
圖35描繪位元線取樣篩選測試的一個具體例。
圖36描繪位元線取樣篩選測試的另一個具體例。
圖37描繪讀取窗口檢查測試的一個具體例。
圖38描繪讀取校正測試的一個具體例。
圖39描繪讀取斜率測試的一個具體例。
圖40描繪讀取神經元合格性測試的一個具體例。
圖41描繪軟抹除測試的一個具體例。
圖42描繪軟程式化測試的一個具體例。
圖43描繪驗證測試的一個具體例。
圖44描繪棋盤式驗證測試的一個具體例。
C1:層
C2:層
C3:層
CB1:突觸
CB2:突觸
CB3:突觸
CB4:突觸
P1:激勵函數
P2:激勵函數
S0:輸入層
S1:層
S2:層
S3:輸出層

Claims (30)

  1. 一種驗證被程式化為類比神經非揮發性記憶體單元陣列中之複數個非揮發性記憶體單元內的數值之方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,並且其中每條字元線選擇性地耦接至一列解碼器,而每條位元線選擇性地耦接至一行解碼器,該方法包括: 藉由該列解碼器確立該陣列中之所有字元線; 藉由該行解碼器確立該陣列中之一位元線; 藉由一感測放大器感測從該位元線接收之電流;以及 將該電流與一參考電流進行比較,以判定耦接至該位元線之該等非揮發性記憶體單元是否包含期望值。
  2. 如請求項1之方法,其中,每個非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
  3. 如請求項1之方法,其中,每個非揮發性記憶體單元係分離式閘極快閃記憶體單元。
  4. 如請求項1之方法,其中,該陣列係一神經網路的一部分。
  5. 一種測量由類比神經非揮發性記憶體單元陣列中之複數個非揮發性記憶體單元汲取之電流的方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,並且其中每條字元線選擇性地耦接至一列解碼器,而每條位元線選擇性地耦接至一行解碼器,該方法包括: 藉由該列解碼器確立該陣列中之所有字元線; 藉由該行解碼器確立該陣列中之一位元線;以及 測量從該位元線接收之電流。
  6. 如請求項5之方法,其中,每個非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
  7. 如請求項5之方法,其中,每個非揮發性記憶體單元係分離式閘極快閃記憶體單元。
  8. 如請求項5之方法,其中,該陣列係一神經網路的一部分。
  9. 一種測試非揮發性記憶體單元陣列中之複數個類比神經非揮發性記憶體單元的方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,並且其中每條字元線選擇性地耦接至一列解碼器,而每條位元線選擇性地耦接至一行解碼器,該方法包括: 藉由該列解碼器確立該陣列中之所有字元線; 藉由該行解碼器確立該陣列中之所有位元線; 在該陣列中之所有非揮發性記憶體單元上執行一深度程式化操作;以及 測量從該等位元線接收之總電流。
  10. 如請求項9之方法,其中,每個非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
  11. 如請求項9之方法,其中,每個非揮發性記憶體單元係分離式閘極快閃記憶體單元。
  12. 如請求項9之方法,其中,該陣列係一神經網路的一部分。
  13. 一種補償類比神經非揮發性記憶體單元陣列中之漏電流的方法,其中該陣列以列與行來配置,其中每一列耦接至一字元線,而每一行耦接至一位元線,該方法包括: 測量耦接至該一位元線的一行非揮發性記憶體單元之漏電流; 儲存測量漏電流值;以及 在該行非揮發性記憶體單元的讀取操作期間應用該測量漏電流值,以補償該漏電流。
  14. 如請求項13之方法,其中,每個非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
  15. 如請求項13之方法,其中,每個非揮發性記憶體單元係分離式閘極快閃記憶體單元。
  16. 如請求項13之方法,其中,該陣列係一神經網路的一部分。
  17. 一種測試類比神經非揮發性記憶體單元陣列中之被選非揮發性記憶體單元的方法,該方法包括: 當該被選非揮發性記憶體單元正在一次臨界區域中操作時,判定該被選非揮發性記憶體單元的一對數斜率因數; 儲存該對數斜率因數; 當該被選非揮發性記憶體單元正在一線性區域中操作時,判定該被選非揮發性記憶體單元的一線性斜率因數; 儲存該線性斜率因數;以及 當程式化該被選非揮發性記憶體單元至一目標電流時,利用該對數斜率因數及該線性斜率因數中之一個或兩個。
  18. 如請求項17之方法,其中,每個非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
  19. 如請求項17之方法,其中,每個非揮發性記憶體單元係分離式閘極快閃記憶體單元。
  20. 如請求項17之方法,其中,該陣列係一神經網路的一部分。
  21. 一種測試類比神經非揮發性記憶體單元陣列之方法,該方法包括: 藉由在該陣列中之每個非揮發性記憶體單元的一端子上施加一電壓序列來抹除該陣列中之該等非揮發性記憶體單元,其中該電壓序列中之電壓以固定步階隨時間增加;以及 讀取所有該等非揮發性記憶體單元,以判定該抹除步驟的有效性。
  22. 如請求項21之方法,其中,該端子係一抹除閘極端子。
  23. 如請求項21之方法,其中,每個非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
  24. 如請求項21之方法,其中,每個非揮發性記憶體單元係分離式閘極快閃記憶體單元。
  25. 如請求項21之方法,其中,該陣列係一神經網路的一部分。
  26. 一種測試類比神經非揮發性記憶體單元陣列之方法,該方法包括: 藉由在該陣列中之每個非揮發性記憶體單元的一端子上施加一電壓序列來程式化該陣列中之該等非揮發性記憶體單元,其中該電壓序列中之電壓以固定步階隨時間增加;以及 讀取所有該等非揮發性記憶體單元,以判定該程式化步驟的有效性。
  27. 如請求項26之方法,其中,該端子係一字元線端子。
  28. 如請求項26之方法,其中,每個非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
  29. 如請求項26之方法,其中,每個非揮發性記憶體單元係分離式閘極快閃記憶體單元。
  30. 如請求項26之方法,其中,該陣列係一神經網路的一部分。
TW109119122A 2019-07-19 2020-06-08 用於人工神經網路中之類比神經記憶體的測試電路及方法 TWI800734B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962876515P 2019-07-19 2019-07-19
US62/876,515 2019-07-19
US16/569,611 2019-09-12
US16/569,611 US11393546B2 (en) 2019-07-19 2019-09-12 Testing circuitry and methods for analog neural memory in artificial neural network
WOPCT/US19/68201 2019-12-21
PCT/US2019/068201 WO2021015812A1 (en) 2019-07-19 2019-12-21 Testing circuitry and methods for analog neural memory in artificial neural network

Publications (2)

Publication Number Publication Date
TW202105399A true TW202105399A (zh) 2021-02-01
TWI800734B TWI800734B (zh) 2023-05-01

Family

ID=69187978

Family Applications (2)

Application Number Title Priority Date Filing Date
TW112111051A TW202326740A (zh) 2019-07-19 2020-06-08 用於人工神經網路中之類比神經記憶體的測試電路及方法
TW109119122A TWI800734B (zh) 2019-07-19 2020-06-08 用於人工神經網路中之類比神經記憶體的測試電路及方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW112111051A TW202326740A (zh) 2019-07-19 2020-06-08 用於人工神經網路中之類比神經記憶體的測試電路及方法

Country Status (7)

Country Link
US (2) US11393546B2 (zh)
EP (1) EP4000069A1 (zh)
JP (1) JP2022540723A (zh)
KR (1) KR20220016505A (zh)
CN (1) CN114127854A (zh)
TW (2) TW202326740A (zh)
WO (1) WO2021015812A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449741B2 (en) * 2019-07-19 2022-09-20 Silicon Storage Technology, Inc. Testing circuitry and methods for analog neural memory in artificial neural network
US20210350217A1 (en) * 2020-05-10 2021-11-11 Silicon Storage Technology, Inc. Analog neural memory array in artificial neural network with source line pulldown mechanism
CN113761793B (zh) * 2021-08-16 2024-02-27 固德威技术股份有限公司 逆变器输出阻抗检测装置及方法、逆变器运行控制方法
US20240087653A1 (en) * 2022-09-08 2024-03-14 Micron Technology, Inc. Weight Calibration Check for Integrated Circuit Devices having Analog Inference Capability

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029130A (en) 1990-01-22 1991-07-02 Silicon Storage Technology, Inc. Single transistor non-valatile electrically alterable semiconductor memory device
KR960009033B1 (en) * 1991-07-17 1996-07-10 Toshiba Kk Semiconductor memory
FR2690751B1 (fr) 1992-04-30 1994-06-17 Sgs Thomson Microelectronics Procede et circuit de detection de fuites de courant dans une ligne de bit.
JP4131902B2 (ja) * 1999-12-27 2008-08-13 株式会社東芝 不揮発性半導体メモリおよびそのスレシホールド電圧制御方法
US6452837B2 (en) * 1999-12-27 2002-09-17 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory and threshold voltage control method therefor
US6768685B1 (en) 2001-11-16 2004-07-27 Mtrix Semiconductor, Inc. Integrated circuit memory array with fast test mode utilizing multiple word line selection and method therefor
US6850438B2 (en) 2002-07-05 2005-02-01 Aplus Flash Technology, Inc. Combination nonvolatile memory using unified technology with byte, page and block write and simultaneous read and write operations
US6747310B2 (en) 2002-10-07 2004-06-08 Actrans System Inc. Flash memory cells with separated self-aligned select and erase gates, and process of fabrication
US7177183B2 (en) * 2003-09-30 2007-02-13 Sandisk 3D Llc Multiple twin cell non-volatile memory array and logic block structure and method therefor
US7050344B1 (en) 2004-11-04 2006-05-23 Promos Technologies Inc. Failure test method for split gate flash memory
US7652929B2 (en) 2007-09-17 2010-01-26 Sandisk Corporation Non-volatile memory and method for biasing adjacent word line for verify during programming
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8711646B2 (en) 2012-05-08 2014-04-29 Samsung Electronics Co., Ltd. Architecture, system and method for testing resistive type memory
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9449694B2 (en) 2014-09-04 2016-09-20 Sandisk Technologies Llc Non-volatile memory with multi-word line select for defect detection operations
US10310734B2 (en) 2014-12-27 2019-06-04 Intel Corporation Tier mode for access operations to 3D memory
KR102444604B1 (ko) 2016-02-02 2022-09-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11308383B2 (en) 2016-05-17 2022-04-19 Silicon Storage Technology, Inc. Deep learning neural network classifier using non-volatile memory array
JP6249504B1 (ja) * 2016-08-24 2017-12-20 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10403357B2 (en) * 2017-09-18 2019-09-03 Nxp Usa, Inc. Resistive non-volatile memory and a method for sensing a memory cell in a resistive non-volatile memory
US10748630B2 (en) 2017-11-29 2020-08-18 Silicon Storage Technology, Inc. High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks
US11354562B2 (en) 2018-01-03 2022-06-07 Silicon Storage Technology, Inc. Programmable neuron for analog non-volatile memory in deep learning artificial neural network
CN111199767B (zh) 2018-11-16 2022-08-16 力旺电子股份有限公司 非易失性存储器良率提升的设计及测试方法
US10991430B2 (en) * 2018-12-19 2021-04-27 Ememory Technology Inc. Non-volatile memory cell compliant to a near memory computation system
US11487464B2 (en) * 2019-07-03 2022-11-01 Micron Technology, Inc. Neural network memory

Also Published As

Publication number Publication date
WO2021015812A1 (en) 2021-01-28
US11783904B2 (en) 2023-10-10
US11393546B2 (en) 2022-07-19
JP2022540723A (ja) 2022-09-16
US20210020255A1 (en) 2021-01-21
US20220319619A1 (en) 2022-10-06
TW202326740A (zh) 2023-07-01
EP4000069A1 (en) 2022-05-25
CN114127854A (zh) 2022-03-01
TWI800734B (zh) 2023-05-01
KR20220016505A (ko) 2022-02-09

Similar Documents

Publication Publication Date Title
TWI753492B (zh) 用於人工神經網路中之類比神經記憶體的測試電路及方法
TWI815065B (zh) 在向量矩陣乘法陣列之讀取操作期間補償漂移誤差之電路及方法
TW202025172A (zh) 用於在深度學習人工神經網路中之類比神經記憶體之程式化的精確調整
TW202105399A (zh) 用於人工神經網路中之類比神經記憶體的測試電路及方法
US20220319620A1 (en) Testing of analog neural memory cells in an artificial neural network
TW202147321A (zh) 包含邏輯單元之人工神經網路中之類比神經記憶體陣列及經改良之程式化機制
TW202341014A (zh) 深度學習人工神經網路中電性參數的校準
JP7493089B2 (ja) 人工ニューラルネットワークにおけるアナログニューラルメモリアレイの適応バイアスデコーダ
KR20220160078A (ko) 소스 라인 풀다운 메커니즘을 갖는 인공 신경망 내의 아날로그 신경 메모리 어레이
US20230306246A1 (en) Calibration of electrical parameters in a deep learning artificial neural network
US20240104164A1 (en) Verification method and system in artificial neural network array
US20240062813A1 (en) Determination of a bias voltage to apply to one or more memory cells in a neural network
TW202343451A (zh) 包含i-v斜率組構的參考陣列之人工神經網路
WO2024063792A1 (en) Verification method and system in artificial neural network array
JP2024096888A (ja) 論理セル及び改善されたプログラミング機構を備える人工ニューラルネットワーク内のアナログニューラルメモリアレイ