TW202215437A - 多階超低功率推理引擎加速器 - Google Patents
多階超低功率推理引擎加速器 Download PDFInfo
- Publication number
- TW202215437A TW202215437A TW110122640A TW110122640A TW202215437A TW 202215437 A TW202215437 A TW 202215437A TW 110122640 A TW110122640 A TW 110122640A TW 110122640 A TW110122640 A TW 110122640A TW 202215437 A TW202215437 A TW 202215437A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory cells
- memory
- array
- voltage
- layer
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims description 40
- 239000013598 vector Substances 0.000 claims description 37
- 230000001537 neural effect Effects 0.000 claims description 27
- 230000015556 catabolic process Effects 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 8
- 230000005669 field effect Effects 0.000 claims description 5
- 239000010410 layer Substances 0.000 description 253
- 210000004027 cell Anatomy 0.000 description 218
- 239000011159 matrix material Substances 0.000 description 23
- 229910052751 metal Inorganic materials 0.000 description 22
- 239000002184 metal Substances 0.000 description 22
- 230000002093 peripheral effect Effects 0.000 description 17
- 238000003491 array Methods 0.000 description 15
- 239000004020 conductor Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 12
- 210000002569 neuron Anatomy 0.000 description 12
- 238000012546 transfer Methods 0.000 description 11
- 238000013527 convolutional neural network Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 241000282472 Canis lupus familiaris Species 0.000 description 7
- 239000000872 buffer Substances 0.000 description 7
- 239000003989 dielectric material Substances 0.000 description 7
- 229920005994 diacetyl cellulose Polymers 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000000644 propagated effect Effects 0.000 description 5
- 102100038815 Nocturnin Human genes 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000010187 selection method Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 239000010936 titanium Substances 0.000 description 3
- 229910052720 vanadium Inorganic materials 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000005294 ferromagnetic effect Effects 0.000 description 2
- 150000002500 ions Chemical class 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 230000005415 magnetization Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000007784 solid electrolyte Substances 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 102100031752 Fibrinogen alpha chain Human genes 0.000 description 1
- 229910017629 Sb2Te3 Inorganic materials 0.000 description 1
- 229910004298 SiO 2 Inorganic materials 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical compound [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 description 1
- NRTOMJZYCJJWKI-UHFFFAOYSA-N Titanium nitride Chemical compound [Ti]#N NRTOMJZYCJJWKI-UHFFFAOYSA-N 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000005056 cell body Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 229910052681 coesite Inorganic materials 0.000 description 1
- 229910052906 cristobalite Inorganic materials 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000009713 electroplating Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- BTCSSZJGUNDROE-UHFFFAOYSA-N gamma-aminobutyric acid Chemical compound NCCCC(O)=O BTCSSZJGUNDROE-UHFFFAOYSA-N 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical group [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- CJNBYAVZURUTKZ-UHFFFAOYSA-N hafnium(IV) oxide Inorganic materials O=[Hf]=O CJNBYAVZURUTKZ-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000001459 lithography Methods 0.000 description 1
- CPLXHLVBOLITMK-UHFFFAOYSA-N magnesium oxide Inorganic materials [Mg]=O CPLXHLVBOLITMK-UHFFFAOYSA-N 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000377 silicon dioxide Substances 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 229910052682 stishovite Inorganic materials 0.000 description 1
- 239000002203 sulfidic glass Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 229910052719 titanium Inorganic materials 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 229910052905 tridymite Inorganic materials 0.000 description 1
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- 239000010937 tungsten Substances 0.000 description 1
- 238000007740 vapor deposition Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/16—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5692—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency read-only digital stores using storage elements with more than two stable states
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/18—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/16—Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/18—Bit line organisation; Bit line lay-out
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/14—Word line organisation; Word line lay-out
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 Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Semiconductor Memories (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
- Logic Circuits (AREA)
Abstract
提出用於執行類神經網路之記憶體內計算推理的非揮發性記憶體結構。一種記憶體陣列係根據在各交叉點接點處具有一記憶體單元的一交叉點架構形成。該等多階記憶體單元(MLC)係由藉由金屬層分開的多個超薄介電層形成,其中該記憶體單元的程式化係藉由選擇該寫入電壓位準選擇性地使該等介電層中的一或多者崩潰來完成。在一組替代實施例中,該等記憶體單元係形成為反熔絲。
Description
本發明係關於人工類神經網路。
發現人工類神經網路在人工智慧及機器學習應用上的用途增加。在人工類神經網路中,使一組輸入傳播通過一或多個中間層或隱藏層以產生輸出。將輸入連接至輸出的層係藉由權重組連接,該等權重組係在藉由判定一組數學操作以將輸入變成輸出、移動通過計算各輸出之可能性的層的訓練或學習階段中產生。一旦權重建立,其等可在推理階段中使用以從一組輸入判定輸出。雖然此類類神經網路可提供高度準確的結果,其等係極度計算密集的,且在將連接不同層的權重讀出記憶體及將此等權重轉移至一處理單元的該等處理單元時所涉及的資料轉移可係相當密集的。
根據第一組態樣,一種設備包括一控制電路,該控制電路經組態以連接至沿著一或多條位元線連接的複數個多階記憶體單元,且各記憶體單元係由藉由導電層分開的複數個介電層形成。該控制電路經組態以:藉由施加對應的複數個寫入電壓中的一者以使經寫入選擇的記憶體單元的該等介電層中的一或多者崩潰而將該等經寫入選擇的記憶體單元個別地程式化成複數個資料狀態中的一者;及回應於一組對應的第一複數個輸入電壓施加至沿著一第一位元線連接的第一複數個該等記憶體單元而同時感測該第一複數個記憶體單元。
在額外態樣中,一種方法包括偏壓一記憶體單元陣列以用於將一或多個第一經選擇記憶體單元同時程式化成複數個資料狀態的一第一者,該陣列係根據一交叉點架構形成,其中該等記憶體單元係連接在一對應位元線與一對應字線之間,且該等記憶體單元之各者係由藉由導電層分開的複數個介電層形成。該偏壓包括:將該陣列之對應於該一或多個第一經選擇記憶體單元的一位元線設定成一低電壓值;將該陣列之不對應於該一或多個第一經選擇記憶體單元的位元線設定成一第一中間電壓位準;及將該陣列之不對應於該一或多個第一經選擇記憶體單元的字線設定成該第一中間電壓位準。在偏壓該記憶體單元陣列以用於將一或多個第一經選擇記憶體單元同時程式化成該複數個資料狀態的該第一者的同時,將一第一寫入電壓施加至該陣列之對應於該一或多個第一經選擇記憶體單元的字線,該第一寫入電壓經選擇以使該等第一經選擇記憶體單元的該等介電層中的一或多者崩潰,以將該等第一經選擇記憶體單元程式化成該複數個資料狀態的該第一者,其中該第一中間電壓位準係在該低電壓值與該第一寫入電壓中間。
在另一組態樣中,一種非揮發性記憶體裝置包括一記憶體陣列及連接至該記憶體陣列的一或多個控制電路。該記憶體陣列包括:複數條字線;複數條位元線;複數條程式化線;及複數個反熔絲記憶體單元。該記憶體陣列具有一交叉點架構,各反熔絲記憶體單元包括一場效電晶體(FET),該場效電晶體連接在該等位元線的一對應一者與該等字線的一對應一者之間,並具有連接至該等程式化線的一對應一者的一控制閘極。該等反熔絲記憶體單元的各者可藉由使該記憶體單元的一閘極氧化物崩潰從一高電阻狀態程式化成一低電阻狀態。該一或多個控制電路經組態以:在將一寫入電壓施加至該對應程式化線以使該經選擇記憶體單元的該閘極氧化物崩潰的同時,藉由偏壓該對應字線及對應位元線以橫跨該等經選擇記憶體單元放置一電壓差來程式化該等反熔絲記憶體單元的經選擇者;及在將該等程式化線設定成接地的同時,回應於將一組對應的第一複數個輸入電壓施加至該對應的複數條字線而同時感測沿著一共用位元線連接的第一複數個該等記憶體單元。
當類神經網路執行推理或訓練操作時,執行各涉及大量資料的大數目的計算,特別係在涉及輸入通過其傳播之大數目的數個計算層(諸如,卷積層及完全連接層)的深度類神經網路或DNN的情形中。為避免大量資料移入及移出記憶體裝置,用於類神經網路之層的權重係儲存在記憶體裝置的非揮發性記憶體陣列中,且層之各者的計算係在該裝置上執行。為進一步在增加速度及降低電力消耗二方面改善效能,下文呈現可用以在類神經網路的推理操作期間在權重與輸入之間執行陣列內向量乘法且需要特殊的晶片上程式化的多階記憶體單元(multi-level memory cell, MLC)的實施例。用於推理引擎的向量乘法裝置包括在各交叉點連接點具有一記憶體單元的交叉點陣列。控制電路系統經組態以將獨立輸入電壓供應至在導線(亦即,字線)的一個平面上的各導線及讀取在另一導線平面(亦即,位元線)中的各導線上的電流。向量乘法在交叉點記憶體陣列中執行為輸入電壓與由記憶體單元編碼之矩陣權重的乘法。交叉點陣列中的記憶體單元可單獨使用輸入電壓個別地程式化。在第一組實施例中,多階記憶體單元係由藉由金屬層分開的多個超薄介電層形成,其中記憶體單元的程式化係藉由選擇寫入電壓位準選擇性地使介電層中的一或多者崩潰而完成。在第二組實施例中,記憶體單元係形成為反熔絲。
圖1係連接至主機120之記憶體系統100的一個實施例的方塊圖。記憶體系統100可實施本文提出的技術,其中類神經網路輸入或其他資料係接收自主機120。取決於實施例,輸入可接收自主機120並接著提供至記憶體封裝104以用於在先前程式化至記憶體封裝104之記憶體陣列中的權重上推理。許多不同類型的記憶體系統可與本文提出的技術一起使用。實例記憶體系統包括固態硬碟(solid state drive, “SSD”)、記憶卡、及嵌入式記憶體裝置;然而,亦可使用其他類型的記憶體系統。
圖1的記憶體系統100包含控制器102、用於儲存資料的非揮發性記憶體104、及本地記憶體(例如,DRAM/ReRAM)106。控制器102包含前端處理器(Front End Processor, FEP)電路110及一或多個後端處理器(Back End Processor, BEP)電路112。在一個實施例中,將FEP電路110實施在ASIC上。在一個實施例中,將各BEP電路112實施在一分開的ASIC上。在其他實施例中,統一控制器ASIC可組合前端功能及後端功能二者。將用於BEP電路112之各者及FEP電路110的ASIC實施在相同的半導體上,使得控制器102製造為系統單晶片(System on a Chip, “SoC”)。FEP電路110及BEP電路112二者皆包括其等自有的處理器。在一個實施例中,FEP電路110及BEP電路112運作為主從組態,其中FEP電路110係主電路且各BEP電路112係從電路。例如,FEP電路110實施快閃記憶體轉譯層(Flash Translation Layer, FTL)或執行記憶體管理(例如,垃圾回收(garbage collection)、損耗平衡等)、邏輯至實體位址轉譯、與主機的通訊、DRAM(本地揮發性記憶體)的管理、及SSD(或其他非揮發性儲存系統)之整體操作的管理的媒體管理層(Media Management Layer, MML)。在FEP電路110請求時,BEP電路112管理記憶體封裝/晶粒中的記憶體操作。例如,BEP電路112可實行讀取、抹除、及程式化程序。額外地,BEP電路112可執行緩衝器管理、設定由FEP電路110請求的特定電壓位準、執行錯誤校正(error correction, ECC)、控制至記憶體封裝的雙態觸變模式介面等。在一個實施例中,各BEP電路112負責其自有的記憶體封裝組。
在一個實施例中,非揮發性記憶體104包含複數個記憶體封裝。各記憶體封裝包括一或多個記憶體晶粒。因此,控制器102連接至一或多個非揮發性記憶體晶粒。在一個實施例中,記憶體封裝104中的各記憶體晶粒利用NAND快閃記憶體(包括二維NAND快閃記憶體及/或三維NAND快閃記憶體)。在其他實施例中,記憶體封裝可包括其他類型的記憶體,諸如基於電阻式隨機存取記憶體(諸如ReRAM、MRAM、FeRAM、或RRAM)或相變化記憶體(phase change memory, PCM)的儲存級記憶體(storage class memory, SCM)。
控制器102經由實施協定(像是,例如,透過快速週邊組件互連(PCI Express, PCIe)的快速NVM (NVM Express, NVMe))的介面130與主機120通訊。為與記憶體系統100一起工作,主機120包括主機處理器122、主機記憶體124、及沿著匯流排128連接的PCIe介面126。主機記憶體124係主機的實體記憶體,且可係DRAM、SRAM、非揮發性記憶體、或另一類型的儲存器。主機120在記憶體系統100外部且與其分開。在一個實施例中,記憶體系統100嵌入在主機120中。
圖2係FEP電路110的一個實施例的方塊圖。圖2顯示與主機120通訊的PCIe介面150及與該PCIe介面通訊的主機處理器152。主機處理器152可係在所屬技術領域中已知之適用於本實施方案的任何類型的處理器。主機處理器152與晶片網路(network-on-chip, NOC) 154通訊。NOC係積體電路上的通訊子系統,一般係在SoC中的核心之間。NOC可跨越同步及非同步時脈域或使用非時控非同步邏輯。NOC技術將網路理論及方法應用至晶片上通訊並帶來超出習知匯流排及交叉開關互連的顯著改善。相較於其他設計,NOC改善SoC的可擴縮性及複雜SoC的電力效率。NOC的導線及鏈路係由許多信號所共用。因為NOC中的所有鏈路可同時在不同的資料封包上操作,達成高度的平行性。因此,隨著經整合子系統的複雜性持續成長,相較於先前的通訊架構(例如,專用的點對點信號導線、共用匯流排、或具有橋接器的分段匯流排),NOC提供增強的效能(諸如處理量)及可擴縮性。連接至NOC 154且與其通訊的係記憶體處理器156、SRAM 160、及DRAM控制器162。DRAM控制器162係用以操作DRAM(例如,DRAM 106)並與其通訊。SRAM 160係由記憶體處理器156使用的本地RAM記憶體。記憶體處理器156係用以運行FEP電路並執行各種記憶體操作。再者,與NOC通訊的係二個PCIe介面164及166。在圖2的實施例中,SSD控制器將包括二個BEP電路112;因此,有二個PCIe介面164/166。各PCIe介面與BEP電路112中的一者通訊。在其他實施例中,可多於或少於二個BEP電路112;因此,可有二個以上的PCIe介面。
FEP電路110亦可包括快閃記憶體轉譯層(FTH),或更普遍地,包括執行記憶體管理(例如,垃圾回收、損耗平衡、負載平衡等)、邏輯至實體位址轉譯、與主機的通訊、DRAM(本地揮發性記憶體)的管理、及SSD或其他非揮發性儲存系統之整體操作的管理的媒體管理層(MML) 158。可將媒體管理層MML 158整合為可處理記憶體錯誤並與主機介接之記憶體管理的部分。具體而言,MML可係FEP電路110中的模組,並可負責記憶體管理的本質。具體而言,MML 158可包括記憶體裝置韌體中之將來自主機的寫入轉譯成至晶粒之記憶體結構(例如,下文之圖5的326)的寫入的演算法。因為:1)記憶體可具有有限的耐久性;2)記憶體結構僅可以頁的倍數寫入;及/或3)除非將記憶體結構作為區塊抹除,記憶體結構不可寫入,MML 158可能係必需的。MML 158瞭解記憶體結構之可能非為主機可見的此等潛在限制。因此,MML 158嘗試將來自主機的寫入轉譯成至記憶體結構的寫入。
圖3係BEP電路112的一個實施例的方塊圖。圖3顯示用於與FEP電路110通訊(例如,與圖2之PCIe介面164及166中的一者通訊)的PCIe介面200。PCIe介面200與二個NOC 202及204通訊。在一個實施例中,可將二個NOC組合成一個大的NOC。各NOC (202/204)連接至SRAM (230/260)、緩衝器(232/262)、處理器(220/250)、並經由XOR引擎(224/254)及ECC引擎(226/256)連接至資料路徑控制器(222/252)。如所屬技術領域中已知的,ECC引擎226/256係用以執行錯誤校正。XOR引擎224/254係用以將資料XOR,使得資料可以在有程式化錯誤的情形中恢復的方式組合及儲存。資料路徑控制器222連接至用於經由四個通道與記憶體封裝通訊的介面模組。因此,頂NOC 202與用於與記憶體封裝通訊的四個通道的介面228關聯,且底NOC 204與用於與記憶體封裝通訊的四個額外通道的介面258關聯。各介面228/258包括四個雙態觸變模式介面(TM介面)、四個緩衝器、及四個排程器。有一個排程器、緩衝器、及TM介面用於通道的各者。處理器可係所屬技術領域中已知的任何標準處理器。資料路徑控制器222/252可係處理器、FPGA、微處理器、或其他類型的控制器。XOR引擎224/254及ECC引擎226/256係稱為硬體加速器的專用硬體電路。在其他實施例中,XOR引擎224/254及ECC引擎226/256可以軟體實施。排程器、緩衝器、及TM介面係硬體電路。
圖4係包括連接至記憶體匯流排(資料線及晶片致能線)294的複數個記憶體晶粒292的記憶體封裝104的一個實施例的方塊圖。記憶體匯流排294連接至用於與BEP電路112的TM介面(見,例如,圖3)通訊的雙態觸變模式介面296。在一些實施例中,記憶體封裝可包括連接至記憶體匯流排及TM介面的小控制器。記憶體封裝可具有一或多個記憶體晶粒。在一個實施例中,各記憶體封裝包括八個或16個記憶體晶粒;然而,亦可實施其他數目的記憶體晶粒。本文描述的技術不限於任何特定數目的記憶體晶粒。
圖5係記憶體晶粒300的一個實施例的功能方塊圖。描繪於圖5中的組件係電路。在一個實施例中,各記憶體晶粒300包括記憶體結構326、控制電路系統310、及讀取/寫入電路328。記憶體結構326可經由列解碼器324藉由字線及經由行解碼器332藉由位元線定址。讀取/寫入電路328包括其包括SB1、SB2、…,SBp(感測電路系統)的多個感測區塊350,並允許平行地讀取或程式化記憶體單元的頁。命令及資料係經由線318在控制器與記憶體晶粒300之間轉移。在一個實施例中,記憶體晶粒300包括連接至線318的一組輸入及/或輸出(I/O)接腳。
控制電路系統310與讀取/寫入電路328合作以在記憶體結構326上執行記憶體操作(例如,寫入、讀取、及其他),並包括狀態機312、晶片上位址解碼器314、及電力控制電路316。狀態機312提供記憶體操作的晶粒級控制。在一個實施例中,狀態機312可藉由軟體程式化。在其他實施例中,狀態機312不使用軟體且完全以硬體(例如,電路)實施。在另一實施例中,狀態機312係由微控制器所置換。
晶片上位址解碼器314提供在由控制器102使用的位址至由解碼器324及332使用的硬體位址之間的位址介面。電力控制模組316控制在記憶體操作期間供應至字線及位元線的電力及電壓。電力控制模組316可包括用於產生電壓的電荷泵。感測區塊包括位元線驅動器。
針對本文件之目的,詞組「一或多個控制電路(one or more control circuits)」可包括控制器、狀態機、微控制器、及/或控制電路系統310、或用以控制非揮發性記憶體的其他類似電路。
在一個實施例中,記憶體結構326包含在其中將多個記憶體階形成在單一基材(諸如晶圓)之上的非揮發性記憶體單元的三維記憶體陣列。記憶體結構可包含任何類型的非揮發性記憶體,該等非揮發性記憶體係以具有設置在矽(或其他類型)基材之上的主動區域之一或多個實體階的記憶體單元單塊地形成。在一個實例中,非揮發性記憶體單元包含具有電荷捕捉材料的垂直NAND串,諸如例如,在美國專利第9,721,662號中所描述的,其全文以引用方式併入本文中。
在另一實施例中,記憶體結構326包含非揮發性記憶體單元的二維記憶體陣列。在一個實例中,非揮發性記憶體單元係利用浮閘的NAND快閃記憶體單元,諸如例如,在美國專利第9,082,502號中所描述的,其全文以引用方式併入本文中。亦可使用其他類型的記憶體單元(例如,NOR類型的快閃記憶體)。
包括在記憶體結構326中的記憶體陣列架構或記憶體單元的確切類型不限於上述實例。許多不同類型的記憶體陣列架構或記憶體技術可用以形成記憶體結構326。對於本文所提出之新主張實施例的目的,並不需要特定的非揮發性記憶體技術。用於記憶體結構326之記憶體單元的合適技術的其他實例包括ReRAM記憶體(電阻式隨機存取記憶體)、磁阻式記憶體(例如,MRAM、自旋轉移力矩MRAM、自旋軌道力矩MRAM)、FeRAM,相變化記憶體(例如PCM)、及類似者。用於記憶體結構326之記憶體單元架構的合適技術的實例包括二維陣列、三維陣列、交叉點陣列、堆疊式二維陣列、垂直位元線陣列、及類似者。
ReRAM交叉點記憶體的一個實例包括配置在由X條線及Y條線(例如,字線及位元線)存取的交叉點陣列中的可逆電阻切換元件(reversible resistance-switching element)。在另一實施例中,記憶體單元可包括導電橋式記憶體元件(conductive bridge memory element)。導電橋式記憶體元件亦可稱為可程式化金屬化單元。可將導電橋式記憶體元件使用為基於離子在固態電解質內的實體重定位的狀態變化元件。在一些情形中,導電橋式記憶體元件可包括具有在該二個電極之間的固態電解質薄膜的二個固體金屬電極(一者係相對惰性的(例如,鎢)且另一者係電化學活性的(例如,銀或銅))。隨著溫度增加,離子的移動性亦增加,導致導電橋式記憶體單元的程式化臨限減少。因此,導電橋式記憶體元件在溫度上具有範圍廣泛的程式化臨限。
磁阻式隨機存取記憶體(Magnetoresistive random access memory, MRAM)藉由磁性儲存元件儲存資料。該等元件係由二個鐵磁薄膜(亦稱為層)形成,其等之各者係鐵磁性的、藉由薄絕緣層分開。二個層中的一者係設定成特定極性的永久磁體;另一層的磁化可改變以匹配外部場的磁化以儲存記憶體。記憶體裝置係從此類記憶體單元的網格建立。在用於程式化的一個實施例中,各記憶體單元位於配置成彼此成直角的一對寫入線之間,該對寫入線平行於該單元,一者在該單元之上且一者在該單元之下。當電流通過其等時產生感應磁場。
相變化記憶體(PCM)利用硫化物玻璃的獨特行為。一個實施例使用GeTe - Sb2Te3超晶格以藉由使用雷射脈衝(或來自另一來源的光脈衝)簡單地改變鍺原子的配位狀態而達成非熱相變化。因此,程式化的劑量係雷射脈衝。記憶體單元可藉由阻擋記憶體單元免於接收光而受抑制。在其他PCM實施例中,記憶體單元係由電流脈衝程式化。應注意「脈衝(pulse)」在本文件中的使用不需要係方形脈衝,而係包括聲音、電流、電壓光、或其他波的(連續或非連續的)振動或叢發。
所屬技術領域中具有通常知識者將認知本文描述的技術不限於單一特定記憶體結構、記憶體構造、或材料組成物,而係涵蓋在如本文所描述且如所屬技術領域中具有通常知識者所瞭解之技術之精神及範圍內的許多相關記憶體結構。
圖5的元件可分組成二個部分,記憶體單元的記憶體結構326及包括所有其他元件的周邊電路系統。記憶體電路的一重要特性係其容量,其可藉由增加交付給記憶體結構326之記憶體晶粒300的面積而增加;然而,此降低記憶體晶粒300之可用於周邊電路系統的面積。此可將相當嚴重的限制置於此等周邊元件上。例如,使感測放大器電路適配在可用區域內的需求可係感測放大器設計架構上的顯著限制。關於晶粒上控制電路310,面積可用性的降低可限制可在晶片上實施的可用功能性。因此,記憶體晶粒300之設計上的基本權衡係專用於記憶體結構326的面積量及專用於周邊電路系統的面積量。
記憶體結構326及周邊電路系統常不一致的另一方面係在形成此等區域時所涉及的處理中,因為此等區域常涉及不同的處理技術及在單一晶粒上從事不同技術時的權衡。例如,當記憶體結構326係NAND快閃記憶體時,此係NMOS結構,而周邊電路系統通常係基於CMOS的。例如,感測區塊350中的感測放大器電路、電力控制區塊316中的電荷泵、狀態機312中的邏輯元件、及其他周邊電路系統常採用PMOS裝置。用於製造CMOS晶粒的處理操作在許多態樣上會與針對NMOS快閃NAND記憶體或其他記憶體單元技術最佳化的處理操作不同。
為改善此等限制,下文描述的實施例可將圖5的元件分開至之後接合在一起的分開形成的晶粒上。更具體地說,記憶體結構326可形成在一個晶粒上,且一些或全部的周邊電路系統元件(包括一或多個控制電路)可形成在分開的晶粒上。例如,記憶體晶粒可僅由記憶體元件形成,諸如快閃NAND記憶體、PCM記憶體、ReRAM記憶體、或其他記憶體類型之記憶體單元的陣列。可接著將一些或全部的周邊電路系統(甚至包括諸如解碼器及感測放大器的元件)移動至分開的晶粒上。此允許記憶體晶粒之各者根據其技術個別地最佳化。例如,NAND記憶體晶粒可針對基於NMOS的記憶體陣列結構最佳化,而無需擔憂現在已移至可針對CMOS處理最佳化之分開的周邊電路系統晶粒上的CMOS元件。此允許將更多空間用於周邊元件,其等現在可合併之前受限於保持記憶體單元陣列之相同晶粒的餘裕而不可輕易合併的額外能力。二個晶粒接著可在經接合多晶粒記憶體電路中接合在一起,其中在一個晶粒上的陣列連接至在另一記憶體電路上的周邊元件。雖然下文將聚焦在一個記憶體晶粒與一個周邊電路系統晶粒的經接合記憶體電路上,其他實施例可使用更多晶粒,例如,諸如二個記憶體晶粒及一個周邊電路系統晶粒。
圖6A及圖6B顯示圖5之配置的替代配置,其可使用晶圓至晶圓接合實施,以提供經接合晶粒對604。圖6A顯示形成在耦接至形成在記憶體晶粒610中之記憶體結構326的周邊電路或控制晶粒608中的周邊電路系統(包括控制電路)的實例。共同組件係如在圖5中編號。可看到控制電路系統310、讀取/寫入電路328、及列解碼器324(其等可由CMOS程序形成)位於控制晶粒608中,亦可將額外元件(諸如來自控制器102的功能性)移至控制晶粒608中。控制電路系統310、讀取/寫入電路328、列解碼器324、及行解碼器332可藉由共同程序(例如,CMOS程序)形成,使得一般更常在記憶體控制器102上發現的添加元件及功能性可能需要很少或不需要額外的程序步驟(亦即,用以製造控制器102的相同程序步驟亦可用以製造控制電路系統310、讀取/寫入電路328、及列解碼器324)。因此,雖然從諸如記憶體晶粒300的晶粒移動此類電路可降低製造此一晶粒所需之步驟的數目,將此類電路加至諸如控制晶粒608的晶粒可能不需要任何額外的程序步驟。
圖6A顯示控制晶粒608上的讀取/寫入電路328通過電路徑612耦接至記憶體晶粒610上的記憶體結構326。例如,電路徑612可提供讀取/寫入電路328與記憶體結構326的位元線之間的電連接。電路徑可從控制晶粒608中的讀取/寫入電路328延伸通過控制晶粒608上接合至記憶體晶粒610之對應焊墊的焊墊,該等對應焊墊連接至記憶體結構326的位元線。記憶體結構326的各位元線可在電路徑612中具有連接至讀取/寫入電路328的一對應電路徑(包括一對經接合焊墊)。類似地,列解碼器電路324通過電路徑614耦接至記憶體結構326。電路徑614之各者可對應於字線、虛置字線、或選擇閘線。亦可將額外的電路徑提供在控制晶粒608與記憶體晶粒610之間。
圖6B係顯示在經接合晶粒對604之經整合記憶體總成的一個實施例之配置上的更多細節的方塊圖。記憶體晶粒610含有平面620或記憶體單元陣列。記憶體晶粒610可具有額外的平面或陣列。針對各平面或陣列620描繪一條代表性位元線(BL)及代表性字線(WL)。各平面或陣列620可具有數千或數萬條此類位元線。在一個實施例中,陣列或平面代表共用一組共同的未斷開字線及未斷開位元線的經連接記憶體單元的群組。
控制晶粒608包括若干個感測放大器(sense amplifier, SA) 350。在一些實施例中,各感測放大器350連接至一條位元線或可連接至多條位元線。感測放大器含有一位元線驅動器。因此,感測放大器可提供電壓至其所連接的位元線。感測放大器經組態以感測該位元線的狀況。在一個實施例中,感測放大器經組態以感測在該位元線中流動的電流。在一個實施例中,感測放大器經組態以感測該位元線上的電壓。
控制晶粒608包括若干個字線驅動器660(1)至660(n)。字線驅動器660經組態以提供電壓至字線。在此實例中,每陣列或每平面記憶體單元有「n」條字線。在一個實施例中,若記憶體操作係程式化或讀取,選擇經選擇區塊內的一條字線以用於記憶體操作。在一個實施例中,若記憶體操作係抹除,選擇經選擇區塊內的所有字線以用於抹除。字線驅動器660(例如,電力控制316的部分)將電壓提供至記憶體晶粒610中的字線。如相關於圖6A於上文討論的,控制晶粒608亦可包括未於圖6B中表示的電荷泵、電壓產生器、及類似者,其等可用以提供用於字線驅動器660及/或位元線驅動器的電壓。
記憶體晶粒610具有在記憶體晶粒610的第一主要表面682上的若干個接合焊墊670a、670b。可有「n」個接合焊墊670a,以接收來自對應「n」個字線驅動器660(1)至660(n)的電壓。與平面620關聯的每條位元線可有一個接合焊墊670b。參考數字670通常將用以指稱主要表面682上的接合焊墊。
在一些實施例中,碼字的各資料位元及各同位位元係通過不同的接合焊墊對670b、674b轉移。碼字的位元可透過接合焊墊對670b、674b平行地轉移。相對於,例如,在記憶體控制器102與經整合記憶體總成604之間轉移資料,此提供非常有效率的資料轉移。例如,記憶體控制器102與經整合記憶體總成604之間的資料匯流排可,例如,提供八個、十六個、或或許32個位元以平行地轉移。然而,記憶體控制器102與經整合記憶體總成604之間的資料匯流排不受限於此等實例。
控制晶粒608具有在控制晶粒608的第一主要表面684上的若干個接合焊墊674a、674b。可有「n」個接合焊墊674a,以各將來自「n」個字線驅動器660(1)至660(n)的電壓遞送至記憶體晶粒610。與平面620關聯的每條位元線可有一個接合焊墊674b。參考數字674通常將用以指稱主要表面682上的接合焊墊。應注意可有接合焊墊對670a/674a及接合焊墊對670b/674b。在一些實施例中,接合焊墊670及/或674係覆晶接合焊墊。
在一個實施例中,接合焊墊670的圖案與接合焊墊674的圖案匹配。接合焊墊670接合(例如,覆晶接合)至接合焊墊674。因此,接合焊墊670、674將記憶體晶粒610電耦接且實體地耦接至控制晶粒608。
再者,接合焊墊670、674允許記憶體晶粒610與控制晶粒608之間的內部信號轉移。因此,記憶體晶粒610及控制晶粒608係使用接合焊墊接合在一起。雖然圖6A描繪一個控制晶粒608接合至一個記憶體晶粒610,在另一實施例中,一個控制晶粒608接合至多個記憶體晶粒610。
在本文中,「內部信號轉移(internal signal transfer)」意指控制晶粒608與記憶體晶粒610之間的信號轉移。內部信號轉移允許控制晶粒608上的電路系統控制記憶體晶粒610中的記憶體操作。因此,接合焊墊670、674可用於記憶體操作信號轉移。在本文中,「記憶體操作信號轉移(memory operation signal transfer)」係指關於記憶體晶粒610中的記憶體操作的任何信號。記憶體操作信號轉移可包括,但不限於,提供電壓、提供電流、接收電壓、接收電流、感測電壓、及/或感測電流。
接合焊墊670、674可由,例如,銅、鋁、及其合金形成。可有襯墊在接合焊墊670、674與主要表面(682, 684)之間。襯墊可,例如,由鈦/氮化鈦堆疊形成。接合焊墊670、674及襯墊可藉由氣相沉積及/或電鍍技術施加。接合焊墊及襯墊可共同具有720 nm的厚度,雖然在進一步實施例中,此厚度可更大或更小。
可使用金屬互連件及/或通孔將晶粒中的各種元件電連接至接合焊墊670、674。描繪可使用金屬互連件及/或通孔實施的數種導電路徑。例如,感測放大器350可藉由通路664電連接至接合焊墊674b。相對於圖6A,電路徑612可對應於通路664、接合焊墊674b、及接合焊墊670b。可有數千個此類感測放大器、通路、及接合焊墊。應注意BL不必然與接合焊墊670b直接連接。字線驅動器660可藉由通路662電連接至接合焊墊674a。相對於圖6A,電路徑614可對應於通路662、接合焊墊674a、及接合焊墊670a。應注意通路662可包含用於各字線驅動器660(1)至660(n)的一分開的導電通路。同樣地,各字線驅動器660(1)至660(n)可有一分開的接合焊墊674a。記憶體晶粒610之區塊2中的字線可藉由通路664電連接至接合焊墊670a。在圖6B中,有「n」條通路664用於區塊中的對應「n」條字線。各通路664可有分開的接合焊墊對670a、674a。
相對於圖5,圖6A的晶粒上控制電路亦可將比一般在記憶體控制器102中發現的能力及一些CPU能力二者更一般化,但亦係特定應用特徵的加法功能包括在其邏輯元件內。例如,此等啟動功能可包括使用在多個及累加(MAC)操作的累加部分中,但係更進階操作(諸如S形(sigmoid)函數或雙曲正切(tanh)函數)的加法及臨限判定操作。
在下文中,可將與描繪在圖6A中的控制晶粒608上的其他電路的全部或子集及圖5中的類似元件組合的狀態機312及/或控制器102(或等效功能電路)視為係執行本文描述之功能的一或多個控制電路的部分。控制電路可僅包括硬體或包括硬體與軟體(包括韌體)的組合。例如,由韌體程式化以執行本文描述之功能的控制器係控制電路的一個實例。控制電路可包括處理器、FGA、ASIC、積體電路、或其他類型的電路。
現在轉向可儲存在非揮發性記憶體裝置中的資料類型,在下文討論中關注的資料類型的特定實例係使用在人工類神經網路(諸如卷積式類神經網路或CNN)中的權重。名稱「卷積式類神經網路(convolutional neural network)」指示該網路採用稱為卷積的數學操作,其係特殊化類型的線性操作。卷積式網路係在其等層的至少一者中用卷積代替一般矩陣乘法的類神經網路。CNN係由具有若干中間隱藏層的輸入層及輸出層形成。CNN的隱藏層一般係與乘法或其他點乘積「卷積(convolve)」的一系列卷積層。
類神經網路中的各神經元藉由將特定函數施加至來自先前層之接受域(receptive field)的輸入值而計算輸出值。施加至輸入值的函數係由權重的向量及偏差決定。在類神經網路中,學習係藉由對此等偏差及權重進行迭代調整而進展。權重的向量及偏差稱為濾波器,且代表輸入的特定特徵(例如,特定形狀)。CNN的一區別特徵係許多神經元可共用相同的濾波器。
圖7係CNN之實例的示意表示。圖7繪示像素值陣列的初始輸入影像、其後係若干卷積層、其後繼而係若干完全連接層,該等完全連接層的最末者提供輸出。第一卷積層(Con 1)中的各神經元從輸入影像的n × n個像素次區域取得輸入資料。神經元的學習權重(其等統稱為其之卷積濾波器)回應於該輸入而判定神經元的單值輸出。在卷積層中,神經元的濾波器係藉由沿著影像的x及y維度滑動輸入區域而施加至輸入影像,以產生卷積層的值。實際上,等效卷積通常係藉由對不同輸入區域相同地靜態複製神經元而實施。程序重複通過使用各層之學習權重的卷積層(Con1至Con N)之各者,之後其傳播通過使用其等之學習權重的完全連接層(L1至LM)。
圖8更詳細地表示類神經網路的數個完全連接層。在圖8中,將所示的人工類神經網路的三個層表示為節點或人工神經元(藉由圓圈表示)的互連群組,及從一個人工神經元的輸出至另一者之輸入的一組連接。實例顯示具有四個隱藏節點或中間節點(H
1, H
2, H
3, H
4)之中間層的三個輸入節點(I
1, I
2, I
3)及二個輸出節點(O
1, O
2)。人工類神經網路的節點或人工神經元/突觸係藉由主機或其他處理系統的邏輯元件實施為接收一或多個輸入並加總其等以產生輸出的數學函數。通常將各輸入分別加權,並將總和傳送通過節點的數學函數,以提供節點的輸出。
在常見的人工類神經網路實施方案中,在節點(人工神經元/突觸)之間的連接的信號係實數,且各人工神經元的輸出係藉由其輸入之總和的某個非線性函數計算。節點及其等的連接一般具有隨學習程序進行而調整的權重。權重增加或減少在連接之信號的強度。節點可具有臨限,使得信號僅在聚合信號跨越該臨限時發送。一般而言,將節點聚合成層。不同層可在其等的輸入上執行不同種類的轉換。信號可能在穿越該等層多次之後從第一層(輸入層)行進至最末層(輸出層)。雖然圖7僅顯示單一中間層或隱藏層,複雜的深度類神經網路(deep neural network, DNN)可具有許多此類中間層。
經監督的人工類神經網路係藉由供應輸入並接著檢查及校正輸出來「訓練」。例如,經訓練以辨識狗的品種的類神經網路將處理一組影像,並計算影像中的狗係特定品種的可能性。使用者可檢視結果並選擇網路應顯示何等可能性(高於特定臨限等)並傳回所建議的標籤。因此將如此的各數學操作視為係一層,且複雜的類神經網路具有許多層。因為由大數目的中間層或隱藏層提供的深度,類神經網路可如其等所訓練般地模型化複雜的非線性關係。
圖9A係描述用於訓練類神經網路以產生一組權重之程序的一個實施例的流程圖。訓練程序常在雲端中執行,允許存取額外或更強大的處理。在步驟901,接收輸入(諸如一組影像)(例如,圖7中的影像輸入)。在步驟903,輸入傳播通過將輸入連接至使用電流濾波器或權重組的次一層(例如,圖7中的CON1)的層。在步驟905中,類神經網路的輸出接著在該次一層(例如,圖7中的CON2)被接收,使得將所接收的值作為來自一層輸出用作為至次一層的輸入。來自第一層的輸入以此方式傳播通過全部的中間層或隱藏層,直到其等到達輸出。在前述段落的狗的品種的實例中,輸入將係若干狗的影像資料,且中間層使用目前權重值計算影像中的狗係特定品種的可能性,其中所建議之狗品種的標籤在步驟905傳回。在步驟907,使用者接著可檢視結果以選擇類神經網路應傳回何等可能性並決定目前權重組是否供應足夠準確的標籤化,且若如此,訓練完成(步驟911)。若結果係非足夠準確的,在步驟909,類神經網路基於使用者選擇的可能性調整權重,之後迴路返回步驟903以使用經調整權重再次運行輸入資料。一旦類神經網路的權重組已判定,該等權重可用以「推理」,其係使用經判定權重以從輸入至類神經網路中的資料產生輸出結果的程序。在步驟911,一旦權重經判定,其等可接著儲存在非揮發性記憶體中以供稍後使用,其中此等權重在非揮發性記憶體中的儲存於下文進一步詳細討論。
圖9B係描述用於經監督學習之使用類神經網路以使用經評估準確度預測輸入資料之「意義(meaning)」的推理階段的程序的流程圖。取決於該情形,類神經網路可在雲端及藉由邊緣裝置(例如,智慧型手機、汽車程序、硬體加速器)處理器二者推理。在步驟921,接收輸入,諸如在上文使用之實例中的狗的影像。若先前判定的權重不存在於運行類神經網路應用程式的裝置中,該等權重在步驟922中載入。例如,在執行類神經網路的主機處理器上,權重可從其等儲存於其中的SSD讀出並載入至主機裝置上的RAM中。在步驟923,輸入資料接著傳播通過類神經網路的層。步驟923將類似於圖9B的步驟903,但現在使用在步驟911在訓練程序結束時建立的權重。在將輸入傳播通過中間層後,接著在步驟925提供輸出。
圖10係輸入影像與濾波器(或權重組)之間的卷積操作的示意表示。在此實例中,輸入影像係6×6的像素值陣列,且濾波器係3×3的權重陣列。卷積操作係藉由3×3濾波器與輸入影像的3×3區塊的矩陣乘法執行。例如,影像最左上方的3×3區塊與濾波器的乘法產生輸出矩陣的左上值。濾波器接著可橫跨影像上的一個像素滑動以產生輸出的次一項目,並依此類推以產生輸出之4個元素的頂部列。藉由一次將濾波器向下滑動一像素而重複此,產生4×4輸出矩陣。類似操作針對層的各者執行。在實際的CNN中,資料集的大小及所執行之卷積的數目意指執行涉及非常大量的資料的極大數目的此類操作。
圖11係矩陣乘法在類神經網路之完全連接層中的使用的示意表示。矩陣乘法(或MatMul)係在類神經網路的訓練及推理階段二者中常使用的方法,並使用在機器學習的核心方法中。圖11在頂部類似於圖8,其中僅將單一隱藏層顯示在輸入層與輸出層之間。將輸入資料表示為長度對應於輸入節點之數目的向量。權重係以權重矩陣表示,其中行的數目對應於隱藏層中之中間節點的數目,且列的數目對應於輸入節點的數目。輸出係由輸入向量與權重矩陣的矩陣乘法判定,其中輸出向量的各元素係輸入資料的多分量向量與權重矩陣的一行的點乘積。
用於執行矩陣乘法的常用技術係藉由使用乘法器-累加器(MAC,或MAC單元)。然而,此具有許多問題。參照回圖9B,在矩陣乘法藉由在步驟923的傳播執行之前,推理階段在步驟922載入類神經網路權重。然而,由於涉及的資料量可極大,用於推理之乘法器-累加器的使用具有與權重載入有關的數個問題。此等問題中的一者係導因於必須使用具有所需位元寬度的大型MAC陣列的高能量消耗。另一問題係導因於MAC陣列的有限大小導致邏輯與記憶體之間的高資料移動及可遠高於在邏輯計算自身中所使用之能量消耗的高能量消耗。
為幫助避免此等限制,乘法器-累加器陣列的使用可用其他記憶體技術置換。例如,矩陣乘法可藉由利用NAND記憶體及儲存級記憶體(SCM)(諸如基於ReRAM、PCM、FeRAM、或MRAM的記憶體單元的記憶體)的特性而在記憶體陣列內計算。此允許類神經網路輸入經由讀取命令提供並允許類神經權重針對推理預載。藉由記憶體內計算的使用,此可移除在MAC陣列中執行矩陣乘法之邏輯的需求及在記憶體與MAC陣列之間移動資料的需求。
下文呈現記憶體中計算之DNN的實施例,該等DNN可藉由將類神經網路之層的權重儲存在記憶體單元中並將該等層的輸入施加為陣列之字線上的電壓位準而在記憶體單元陣列內執行輸入值與推理操作的權重之間的乘法。位元線上的所得電流對應於輸入與權重的乘積,其中多個此類乘法可同時執行。為降低由此類推理引擎消耗的電力,以下討論呈現基於多階記憶體單元的實施例,該多階記憶體單元係由藉由係具有交叉點結構之陣列的部分的金屬層分開的多個超薄介電層形成。該等記憶體單元的實施例具有經良好分離的低電阻狀態及高電阻狀態,同時甚至對低電阻狀態仍具有高電阻值,而在推論時允許非常低的電力消耗。為儲存DNN的權重,記憶體單元可藉由使用輸入電壓以藉由選擇程式化電壓選擇性地使介電層中的一或多者崩潰而個別地程式化。
交叉點架構的使用允許陣列具有較小的佔用面積,其中向量乘法係藉由在其中矩陣權重係以陣列中之單元的電阻值編碼的電壓轉電流轉換程序實施。所描述的記憶體單元可具有在具有二或更高之因數的最低電阻狀態與最高電阻狀態之間的記憶體窗,同時具有其電阻仍非常高(諸如R
LRS>10 MOhm)的最低電阻狀態。相較於其他記憶體單元技術,此處描述的記憶體單元允許具有較不嚴格的程式化需求且可使用相對低電力晶片上電路系統程式化的多階單元(MLC)。額外地,程式化方法允許選擇裝置,而不需要用於各位元的專用選擇電晶體,降低各位元的佔用面積。當將記憶體裝置用於推理時,記憶體裝置可在供應給客戶之前使用DNN的先前經判定權重值程式化。
更具體地說,呈現具有多階儲存及電場程式化的交叉點推理引擎的實施例。所描述的設計係針對其係超低功率、低成本、且不需要特殊的晶片上程式化的多階單元(MLC)向量乘法裝置。推理引擎(或向量乘法裝置)係由在各交叉點接點處具有一單元的交叉點陣列及控制(或周邊)電路系統構成,該電路系統經組態以將獨立輸入電壓供應至在導線(亦即,字線)的一個平面中的各導線及讀取在另一導線平面(亦即,位元線)中的各導線上的電流。向量乘法涉及輸入電壓與由記憶體單元編碼之矩陣權重的乘法。控制電路系統及保持一或多個此類陣列的記憶體晶粒可係相同晶粒的部分或係控制晶粒及記憶體晶粒的接合晶粒對,諸如相關於圖6A及圖6B於上文描述的。在此處呈現的實施例中,交叉點陣列的記憶體單元可單獨使用輸入電壓個別地程式化成多個電阻狀態中的一者。在下文描述的第一組實施例中,MLC記憶體單元係由藉由金屬層分開的複數個超薄介電層形成,其中記憶體單元的程式化係藉由選擇程式化電壓位準選擇性地使介電層中的一或多者崩潰,因此設定記憶體單元的電阻來完成。在一組替代實施例中,記憶體單元係基於反熔絲,其中反熔絲基礎記憶體單元的程式化係藉由通過各單元並設定限制該電流之順應性的電流執行。
圖12A以斜視圖描繪形成交叉點架構之記憶體陣列326的一部分的一個實施例。圖12A的記憶體陣列326係圖5中之記憶體陣列326之實施方案的一個實例。位元線BL
1至BL
5係配置在第一方向(表示成延伸至頁面中)上,且字線WL
1至WL
5係配置在垂直於第一方向的第二方向上。圖12A係水平交叉點結構的實例,其中字線WL
1至WL
5及BL
1至BL
5二者在相對於基材的水平方向上延伸,而記憶體單元(其等的二者以1201指示)經定向使得電流在垂直方向上運行。在具有額外的記憶體單元層的記憶體陣列中,將有位元線及字線的額外對應層。
如圖12A所描繪的,記憶體陣列326包括複數個記憶體單元1201。記憶體單元1201可包括可重寫入記憶體單元,諸如可使用ReRAM、MRAM、PCM、或具有可程式化電阻的其他材料實施。以下討論將聚焦在非揮發性記憶體單元的特定結構上,雖然本討論的大部分可更普遍地應用。在第一記憶體階的記憶體單元中的電流可如箭號I
cell所指示地向上流動。
圖12B及圖12C分別呈現圖12A中的交叉點結構的側視圖及俯視圖。圖12B的側視圖顯示一條底導線(或字線)WL
1,及頂導線(或位元線)BL
1至BL
n。在各頂導線與底導線之間的交叉點處係多階記憶體單元1201。圖12C係繪示m條底導線WL
1至WL
m及n條頂導線BL
1至BL
n的交叉點結構的俯視圖。在多階實施例中,可將在各交叉點處的記憶體單元程式化成二個以上的電阻狀態(諸如2至5個位準)中的一者。於下文給定記憶體單元設計的實施例及用於其等之程式化的技術的更多細節。
圖12A至圖12C的陣列結構可用以執行推理操作的陣列乘法,其中將類神經工作之層的矩陣權重作為該等記憶體單元的電阻儲存在記憶體單元中。將電壓向量
V
i in 施加至字線的輸入在位元線的輸出中產生參考輸入電壓與由記憶體單元電阻所編碼之權重的向量乘法的電流。將權重編碼為電導
b
i,j ,其係在字線WL
i及位元線BL
j之交叉點處之記憶體單元的電阻
R
i,j 的倒數:
。 (方程式1)
若將類神經網路之層的輸入編碼為施加至各別字線WL
i的電壓
V
i in ,則在各位元線BL
j上的電流將係乘積:
, (方程式2)
其中對
i進行加總。取決於實施例,權重可係二進位值並儲存在二進位記憶體單元中,或係儲存在MLC記憶體單元中的多階(multi-leveled)值,如下文所描述的。類似地,取決於實施例,輸入可係二進位值,或可具有較高數目的值。藉由在多條經選擇字線上同時執行感測操作,交叉點結構將自動計算層的輸入權重乘積。
應注意在此配置下,沿著位元線的多個記憶體單元同時被選擇用於感測,其中對應輸入電壓施加在其等的對應字線上。電流
I
j out 對應於所有此等記憶體單元的組合結果,且此程序因此與判定單一記憶體單元之狀態的正常讀取操作不同。其係從此一推理操作的
I
j out 判定的組合結果,且不會知道個別記憶體單元的貢獻。
圖13係交叉點陣列及在操作該陣列時使用之控制電路的一些的俯視圖,此處顯示陣列的3×3區段。在各字線WL
i及位元線BL
j的交叉點處的係記憶體單元M
i,j1301
i,j。類神經網路之層的輸入IN
i在數位轉類比轉換器1311
i中從輸入值至電壓位準轉換成對應電壓位準。輸入IN
i可係網路的初始輸入或先前層的輸出。在一二進位實施例中,可將1輸入轉換成高讀取電壓V
read,並可將0輸入轉換成低讀取電壓,諸如0V或接地,在該情形中,DAC 1311
i可係一位元DAC。對於多位元輸入,DAC 1311
i將係對應數目位元的。位元線BL
j之各者上的類比電流I
j out在對應的類比轉數位轉換器ADC 1311
j中轉換成數位值以產生數位輸出OUT
j。輸出值OUT
j接著可去到可執行操作(諸如用於乘法及累加操作的累加、施加啟動、及執行為將輸入傳播通過類神經網路之部分的其他此類操作)的數位計算區塊1315。參照回圖5及圖6A,可將DAC 1311
i、ADC
j1311
j、及數位計算區塊1315視為係列解碼器324、行解碼器332、及讀取/寫入電路328、以及310之控制電路系統的組件的部分。DAC及/或ADC可係能夠產生或輸出以2
n個位準量化之信號的多位元裝置,其中n>1。
圖14係可使用在多階超低功率推理引擎中之記憶體單元設計的第一實施例的示意表示。陣列使用交叉點架構,其中各單元具有各具有不同電阻R
i及崩潰電壓V
BD,i的多個介電層。在圖14中,記憶體單元位於字線1401與位元線1411之間的交叉點處。記憶體單元具有N個介電層,將其等的三個介電層顯示成具有R
1及V
BD,1的介電質1 1407、具有R
i及V
BD,i的介電質i 1405、及具有R
N及V
BD,N的介電質N 1403。在介電層之間的係導電層,諸如以1404及1406所示者。亦可將金屬層1402包括在字線1401與介電層的最相鄰者之間,此處係介電質N 1403,且亦可將金屬層1408包括在位元線1411與介電層的最相鄰者之間,此處係介電質1 1407。在此處的實例中,介電層將配置成使得其等的電阻位準從R
1逐步減少至R
N,但可使用其他順序。將介電層形成為使得不同層的電阻位準之間的差足夠大使得不同的程式化狀態被良好地定義。
介電層的崩潰電壓V
BD係電介層從高電阻狀態去至電短路的電壓,針對給定的介電層,R
short<< R
i。在實例實施例中,介電層經形成使得初始電阻(R
1,…, R
N)及崩潰強度(V
BD,1, …, V
BD,N)經調諧使得具有較高電阻的層具有較低的V
BD。電阻及崩潰強度可藉由調諧各介電層的厚度、缺陷密度、及材料組成物來控制。以此方式,記憶體單元的電阻可藉由逐步增加程式化應力以使更多介電層崩潰並降低整體單元電阻來設定。
例如,考慮具有三個介電層之單元的程式化,該單元經形成使得R
1>> R
2>> R
3且V
BD,1<< V
BD,2<< V
BD,3。在此實例中,幾乎所有的電壓皆橫跨最高電阻(或最低數目下標)的非短路介電層下降。最初,其中所有介電層皆係完好的,單元以最高電阻狀態開始:R
cell= R
1+ R
2+ R
3≈ R
1。為將記憶體單元程式化成具有R
3的電阻,例如,使程式化或寫入電壓V
wr橫跨記憶體單元放置以使層1及層2崩潰,但不使層3崩潰:V
BD,1< V
BD,2< V
wr< V
BD,3。此留下介電層3完好,使得R
cell= R
3。
圖15係可使用在多階超低功率推理引擎中之使用分組介電層之記憶體單元設計的另一組實施例的示意表示。如圖14,記憶體單元係位於字線1501與位元線1511之間的交叉點處,且係由若干個交替的介電層及導電層形成,但現在將介電層分組成具有不同數目之層的分層,但具有分層內相同或非常類似的層性質。在此實例中,對於分層i將有i個層,但其他實施例可不同地配置。圖15繪示各包含N個層之N分層的實例,其中僅明確地顯示分層1與分層2,及分層N的最末層。介電分層T1具有一個層L1 1527-1並藉由金屬層1530與位元線1511分開且藉由金屬層1528與分層2介電層1525-1與1525-2分開。第二介電分層係由層對L1 1525-1及L2 1525-2形成,該等層係藉由分層內金屬層1526分開,且其中分層2藉由金屬層1524與分層3的第一層分開。除了第N分層的第N層1523-N以外,不顯示分層3的第一層及其他中介介電層及金屬層,該第N層接著藉由金屬層1522與字線1501分開。
在圖15的實例實施例中,分層係有序的,使得較低編號的分層具有較高電阻,且較高編號的分層可含有比低數目的分層更多的層。例如,分層T
i的電阻係
, (方程式3)
其中對n加總,其中即使Ti具有該分層T(i+1)更少的層,R
Ti> R
T(i+1)。在一組實施例中,可將所有層的崩潰電壓V
BD形成為標稱地相同。以此方式,施加電壓n*V
BD將使至多至分層n的所有分層崩潰。
考慮在具有總共(1 + 2 + 3=) 6個層的三個分層的實例中用於程式化單元的程序,該等層可經設計及經形成使得R
T1>> R
T2>> R
T3且各層的V
BD相似。(電阻一般對厚度呈指數地敏感,而V
BD僅係線性相依於厚度。)如圖14之實施例的情形中,記憶體單元的總電阻的大部分將來自具有最高電阻的完好分層(在此處呈現為最低編號的下標),橫跨記憶體單元施加之電壓的大部分將橫跨此最高電阻非短路分層下降。為將單元程式化成具有電阻R
T3,例如,施加程式化電壓V
wr以使分層T1及T2中之層的各者崩潰。在此情形中,採用V
wr,使得2*V
BD< V
wr< 3*V
BD。
考慮資料(亦即,權重值)至陣列的寫入,此處呈現的實施例使用經施加電壓以選擇性地將記憶體單元(諸如相關於圖14及圖15所描述的該等單元)程式化成多個電阻值中的一者。例如,具有N個層/分層的實施例可程式化成N個狀態,雖然對於沿著多條字線同時感測的低功率推理而言,可避免所有介電層皆短路的狀態,但在一些實施例中,可形成與單元串聯的額外電阻以避免過電流。經選擇以待寫入之記憶體單元的電選擇係使用半選擇方案完成,如相關於圖16所繪示的。
圖16繪示用於待程式化之記憶體單元之選擇的半選擇方案。將電壓施加至頂導線(位元線)及底導線(字線),使得沿著位元線之意圖寫入的單元具有橫跨底導線及頂導線施加之電壓的寫入電壓V
wr,其中V
wr的值經選擇以提供目標資料狀態的程式化電壓。非待寫入的單元經歷僅該電壓降的一半(V
wr/2)或不經歷電壓降。在圖16的實例中,在位元線BL
(N-1)及字線WL
1及WL
(M-1)的交叉處的二個單元經選擇以用於寫入,其中將V
wr施加在經選擇字線上並將0V施加在經選擇位元線上。將其他字線及位元線設定成½ V
wr。此安排橫跨經選擇記憶體單元的V
wr與橫跨非選擇記憶體單元的0V或½ V
wr之其中一者的差。若V
wr.max係最大程式化電壓且V
wr.min係最小程式化電壓,則應將此等值組態成使得½V
wr.max< V
wr.min,否則半選擇電壓將使未選擇單元的部分崩潰。程式化可逐位元線地執行,如下文更詳細地討論的。(在此處描述的半選擇程序中,低電壓位準係取在0V,並使用½V
wr的半選擇值。更通常地,只要半選擇程序不會引起非所要的程式化或讀取值,此等可係另一低電壓值,且半選擇電壓位準可係在V
wr與低電壓中間的其他電壓位準。)
對於未選擇留在最高電阻狀態的記憶體單元,在具有複數個介電層的交叉點推理引擎中的記憶體單元程式化係藉由施加適當程式化電壓V
wr通過選擇性地使部分或全部的介電層崩潰而完成。各單元中之階的數目受限於最大半選擇電壓(½V
wr.max)與最小選擇電壓(V
wr.min)之間使得½V
wr.max< V
wr.min的邊限、控制介電層的電阻分布的能力、及限制多階記憶體單元之形成的厚度的任何設計規則。相對於其他記憶體技術,此記憶體單元結構允許實施幾乎任何的電阻狀態組合,且可由常用於半導體製造廠的任何材料(SiO
2、HfO
2、MgO等)的簡單介電層形成。雖然記憶體單元在如推理引擎的應用中僅可程式化一次,類神經網路之層的權重可在將裝置提供給終端使用者之前寫入,舉一個實例,諸如在裝置一般遭受的測試程序結束時在製造施設或藉由第三方(諸如將其等的DNN模型的權重程式化至由將DNN實施在應用(諸如自駕車)上的處理器使用的記憶體陣列中的原始設備製造商)完成。
圖17係用於寫入具有以多個介電層形成之記憶體單元的交叉點記憶體之序列的一實施例的示意表示。將類神經網路的網路權重值或其他資料寫入至交叉點陣列的程式化操作一般將需要存取所有或大部分的字線、所有或大部分的位元線、並程式化所有的資料狀態,對於非二進位實施例,其將需要多個V
wr值。由於除了非常異常的資料值組,所有此等不同組合不能同時實現,寫入操作將涉及循序操作。如相關於圖16所描述的,程式化可沿著共用字線對一或多條字線上的記憶體單元執行,使得字線可在個別基礎上程式化或同時在多條字線上程式化以增加平行性。可同時程式化之字線的數目可係陣列的所有字線,或若電力/電流考量限制該數目,可係較少的數目。在多階單元的實施例中,將對應數目之不同的V
wr值使用在程式化操作中。對於一給定位元線,可同時施加多個V
wr以同時程式化多個資料狀態;然而,若在半選擇實施例中未適當地偏壓,同時程式化多個資料狀態可在非選取記憶體單元上引起程式化。對於正在程式化成相同狀態的所有位元線,此處的實例實施例寫入單一位元線上的經選擇記憶體單元。取決於實施例,程式化序列可針對給定資料狀態逐位元線地執行,並接著重複以涵蓋所有的資料狀態,或在移至次一位元線之前,可針對一給定位元線將所有資料狀態程式化。
圖17繪示依序程式化陣列中的各位元線,在BL
0開始並循序進行至BL
n。如圖17中所註明的,將經選取以待在經選擇位元線上程式化的記憶體單元標記為S,並將未選擇成待程式化的記憶體單元標記為NS。在將所有其他位元線設定在V
wr/2或中間「半選擇(half-select)」寫入電壓的同時,待程式化的位元線係藉由將各別位元線接地、或設定至低電壓來選擇。在將所有其他字線設定在V
wr/2的同時,經選擇以待在位元線上程式化的記憶體單元係藉由將V
wr施加至各別字線來選擇。在多階單元的實施例中,對於一經選擇位元線,V
wr值可行進通過所有的對應程式化電壓位準。例如,如圖17的左側,位元線BL
1及字線WL
2及WL
m上的記憶體單元經選擇以寫入程式化狀態中的一者,且在圖17的右側,在位元線BL
n及字線WL
1上的記憶體單元經選擇以寫入程式化狀態中的一者。
在依序移至次一位元線之前將所有資料狀態寫入至給定位元線上的記憶體單元的一實施例中,非選擇字線及位元線係以½V
wr半選擇,且因此亦將隨著程式化電壓V
wr針對待程式化的不同資料狀態上升而增加。在程式化電壓的序列中在以次一V
wr循環通過所有位元線之前針對一個V
wr循環通過所有位元線的替代實施例中,非選擇字線及位元線將在相同的½V
wr停留達通過位元線的給定循環,其中當程式化流程以V
wr循環通過位元線達一給定時,位元線在選擇/解除選擇位元線時在½V
wr與0V之間切換,且字線在選擇/解除選擇字線時在½V
wr與V
wr之間切換。
參照回圖5及圖6A,涉及記憶體單元之讀取及寫入的控制電路系統可係列解碼器324、行解碼器332、讀取/寫入電路328、連同310之控制電路系統的組件(諸如狀態機312)的部分。在寫入操作期間,列解碼器324及行解碼器332內的驅動器/偏壓電路系統可如相關於圖19所繪示地偏壓字線及位元線,使得記憶體單元經個別地選擇以用於程式化。
相關於資料在推理操作中的讀取,如相關於圖12C所描述的,列解碼器324內的偏壓電路系統將網路之層的輸入向量轉換成一組同時施加至經選擇位元線組之記憶體單元之字線的一組V
in值,而非判定個別記憶體單元的資料狀態。行解碼器332及讀取/寫入電路328(包括感測放大器350)將沿著字線之各者的總I
out判定成多位元感測操作以指示輸入向量與沿著對應位元線儲存的權重值的乘積。由於此處描述的記憶體單元即使在最低電阻狀態中可具有高電阻值,甚至在同時感測多個記憶體單元時,電流值仍可係比較低的,且推理程序低功率程序。作為乘法及累加操作的部分,記憶體裝置上的控制電路系統接著可累加乘法結果,以判定類神經網路之層的輸出,該輸出可係至後續層的輸入或網路之輸出的其中一者。
圖18A至圖18C繪示在二個分層的實例中藉由介電質崩潰的寫入機制。圖18A係二分層記憶體單元的示意表示。第一分層係形成在導電層1806與1808之間之具有崩潰電壓V
BD及電阻R
1的單一層介電質1 1807。在導電層1802與1806之間的第二分層係由介電質2A 1805及介電質2B 1803的二層形成並藉由導電層1804分開,各層具有崩潰電壓V
BD及電阻R
2。藉由對應字線及位元線橫跨記憶體單元施加的程式化電壓V
wr係藉由電壓源1801表示。記憶體單元可在位準0,對應於沒有介電層崩潰的最高電阻狀態:在位準1,當介電質1 1807已崩潰而介電質2A 1805及2B 1803係完好的時;及在位準2,其中介電質2A 1805及2B 180亦崩潰。在一二進位實施例中,可使用位準0及1,並分別對應於高電阻狀態及低電阻狀態。當操作為三狀態裝置時,位準0將係高電阻狀態、位準1係中間電阻狀態、且位準2係低電阻狀態。由於所有介電層皆在位準2中短路,位準2可具有非常低的電阻且會消耗更多電力。當操作為三狀態記憶體單元時,一些實施例可將串聯電阻加至記憶體單元,以允許低功率推理的使用。
圖18B係橫跨分層之各者之相對於崩潰電壓V
BD正規化的電壓對從電壓源1801橫跨記憶體單元整體之再度按照V
BD正規化之施加電壓的圖表。在實例圖18B中,R
1=10 R
2,使得記憶體單元充當分壓器,且橫跨各層下降的相對電壓將隨其電阻對總單元電阻的比率而變。此反映在圖18B的圖表中,其中1821係橫跨介電質1 1807的電壓降,且1823係跨介電質2A 1805及介電質2B 1803之各者的電壓降。
考慮橫跨整個記憶體單元的施加電壓(x軸),凝視V
BD的施加電壓(經正規化標度上的1),在1.0V
BD,當該電壓的部分下降橫跨分層2時,橫跨介電質1 1807的電壓降小於V
BD。隨著施加電壓增加,橫跨所有介電層的電壓增加,直到橫跨記憶體單元的電壓係~1.2V
BD,其中介電質1 1807將崩潰。一旦介電質1 1807崩潰,沒有橫跨介電質1 1807的電壓降,使得施加電壓橫跨介電質2A 1805及介電質2B 1803下降,其中由於介電質2A 1805及介電質2B 1803具有R
2的相同電阻,一半的施加電壓橫跨其等之各者下降。
為使分層2介電質的介電質(介電質2A 1805及介電質2B 1803)崩潰,施加電壓將需要超過2V
BD。因此,為將位準1資料值程式化至記憶體單元中,程式化電壓V
wr應使得~1.2V
BD< V
wr< 2V
BD。若V
bd.eff
i 係分層
i的有效崩潰電壓,則將分壓器列入考慮,最初將崩潰電壓視為橫跨介電質1 1807 V
bd.eff.1= V
bd*(R
1+2*R
2)/R
1。在介電質1 1807崩潰後,所有電壓降將橫跨介電質2A 1805及介電質2B 1803的串列對,使得V
bd.eff.2= 2*V
bd。在位準0狀態與位準1狀態之間具有足夠邊限的條件係V
bd.eff.1< V
bd.eff.2,使得R
1> 2*R
2。
當如圖18A所繪示地將資料程式化至記憶體單元陣列時,圖18C繪示如相關於圖17於上文描述之施加至對應於待程式化之記憶體單元之字線的寫入電壓V
wr的一系列步幅的波形。圖18C的波形係在寫入操作中施加至經選擇字線之V
wr位準的實施例。最初,所有的記憶體單元均在位準0,且具有位準0狀態之目標狀態的記憶體單元不會從此初始狀態程式化。為寫入位準1狀態,將V
wr的程式化電壓施加至經選擇字線,使得V
wr> V
bd.eff.1且V
wr< 2V
BD。若介電質2A 1805及介電質2B 1803亦針對位準2崩潰,則接著將V
wr提升至V
wr> 2V
BD以用於經選擇寫入至位準2的記憶體單元。
圖19A至圖19B繪示在三個分層記憶體單元的實例中藉由介電質崩潰的寫入機制。圖19A係此一三分層記憶體單元的示意表示,其中第一分層係在導電層1914與1912之間具有崩潰電壓V
BD及電阻R
1的單一層介電質1 1913。第二分層係形成在導電層1908與1912之間具有介電質2A 1911及介電質2B 1909的二層並藉由導電層1908分開,各介電質具有崩潰電壓V
BD及電阻R
2。在導電層1908與1902之間的第三分層係由具有介電質內導電層1906及1904之介電質3A 1907、介電質3B 1905、及介電質3C 1903的三個層形成。藉由對應字線及位元線橫跨記憶體單元施加的程式化電壓V
wr係藉由電壓源1901表示。記憶體單元可:在位準0,對應於沒有介電層崩潰的最高電阻狀態;在位準1,當介電質1 1913已崩潰,而介電質2A 1911及2B 1909及介電質3A 1907、3B 1905、及3C 1903係完好的時;在位準2,其中介電質2A 1911及2B 1909亦崩潰;及在位準3,當分層3的介電質1907、1905、及1903崩潰時。在三元實施例中,可使用位準0、1、及2,並分別對應於高電阻狀態、中間電阻狀態、及低電阻狀態。當操作為四狀態裝置時,位準0將係高電阻狀態、位準1及2係中間電阻狀態、且位準3係低電阻狀態。由於所有介電層在位準3中均短路,位準3可具有非常低的電阻且會消耗更多電力,使得當操作為三狀態記憶體單元時,一些實施例可將串聯電阻加至記憶體單元,以允許低功率推理的使用。對於三位準、三分層系統,邊限條件係V
bd.eff.1< V
bd.eff.2,或對於因子i,係V
bd.eff.1=i*V
bd.eff.2,使得0.5 < i < 1以滿足½V
wr.max< V
wr.min。類似地,V
bd.eff.2< V
bd.eff.3,或對於因子n,係V
bd.eff.2= n*V
bd.eff.3,其中n < 1。採用V
bd及R
3的單位,此給定條件R
2= 3/(3*n-2)且R
1= 3n*R
2/(3*n*i -1)。
當如圖19A所繪示地將資料程式化至記憶體單元陣列時,圖19B繪示如相關於圖17於上文描述之施加至對應於待程式化之記憶體單元之字線的一系列V
wr步幅的波形。圖19B的波形係在寫入操作中施加至經選擇字線之V
wr位準的實施例。最初,所有的記憶體單元均在位準0,且具有位準0之目標狀態的記憶體單元不會從此初始狀態程式化。為寫入位準1狀態,將V
wr的程式化電壓施加至經選擇字線,使得V
wr> V
bd.eff.1且V
wr< V
bd.eff.2,以使分層1介電質崩潰,而不使分層2或分層3介電質崩潰。為寫入位準2狀態,將V
wr的程式化電壓施加至經選擇字線,使得V
wr> V
bd.eff.2且V
wr< 3V
BD,以使分層2介電質崩潰,而不使分層3介電質崩潰。若介電質3A 1907、介電質3B 1905、及介電質3C 1903亦針對位準3崩潰,則接著將V
wr提升至V
wr> 3V
BD以用於經選擇寫入至位準3的記憶體單元。
圖20係繪示用於推理引擎之使用具有超薄介電層之記憶體單元之交叉點架構的使用的一實施例的流程圖。圖20的流程圖包括用於程式化交叉點記憶體陣列(步驟2001至2007)之方法的實施例及用於推理之記憶體陣列的後續使用(2011至2019)二者。雖然此處的描述係在用於類神經網路的推理引擎的背景中,且所描述的結構及技術在此類應用中可係特別實用的,其等可更普遍地應用為可在許多背景中使用之具有高保存性的低電力非揮發性記憶體。
在步驟2001,陣列經偏壓以用於位元線的經選擇一者,其中程式化序列可如相關於圖17所繪示地以BL0開始。例如,可將經選擇位元線偏壓至接地,其中針對目前V
wr值,其他位元線及非選擇字線係以½V
wr半選擇。在步驟2003,將程式化電壓V
wr施加至對應於待程式化成對應於V
wr之資料狀態之記憶體單元的字線。字線及位元線在步驟2001及2003的偏壓可藉由包括在列解碼器324及行解碼器332及讀取/寫入電路328內的偏壓電路系統的一或多個控制電路執行。
步驟2001及2003的程序針對各位元線重複,且對於多階單元實施例,針對各V
wr值重複。在圖20的實施例中,V
wr迴路係在位元線迴路內,但其他實施例可反轉此順序。在步驟2004,判定是否有更多程式化電壓V
wr用於經選擇位元線,且若如此,在步驟2005,將V
wr值增量至次一程式化值,諸如步進至對應於使介電層的次一分層或次一介電層短路的V
wr值,並接著迴路返回至步驟2001,以因此將目前非選擇字線重偏壓成半選擇。若在步驟2004不寫入更多的V
wr,流程去至步驟2006以判定是否寫入更多位元線,且若如此,在迴路返回步驟2001之前,在步驟2007增量位元線;及,若否,記憶體陣列的程式化完成。
在諸如推理引擎的應用中,陣列的程式化一般在提供給終端使用者之前完成。例如,記憶體陣列可在出貨前由製造者程式化,諸如在常在新鮮裝置上執行的測試程序結束時。替代地,記憶體陣列可在供應至終端使用者之前由中間方程式化:例如,可將未程式化的記憶體陣列(初始化或未經初始化)提供至原始設備製造商(OEM),其可接著程式化其等的資料(諸如用於DNN模型的權重),然後將合併經程式化陣列的產品供應至OEM的客戶。此將係以下情形,例如,依賴類神經網路的自駕車,且製造者在將車輛提供至終端操作者之前將其等的類神經網路模型的權重程式化至陣列中。
由於記憶體陣列一般在供應至終端使用者之前僅程式化一次,在一些實施例中,程式化電壓V
wr可能不在記憶體裝置本身上產生,而係在程式化期間外部地供應。在此情形中,記憶體裝置上的一或多個控制電路(諸如電力控制316)不需要具有產生V
wr的能力,且可避免電路元件此類電荷泵及用以管理較高電壓的電路系統,節省用於此等電路的面積及電力消耗。
步驟2011至2019考慮當將記憶體陣列使用為在其中將權重儲存為陣列之記憶體單元中的值且輸入將係輸入值向量的類神經網路中的推理引擎網路時。如相關於圖13於上文說明的,輸入向量IN
i由DAC 1311
i轉換成施加至對應字線WL
i的電壓位準V
i in,其中輸入值可取決於實施例而係二進位或多階的。在字線WL
i與BL
j之間流動的電流對應於輸入向量分量V
i in與儲存在記憶體單元1301
i,j中的矩陣權重b
i,j的乘積。總電流I
j out將等於由電壓位準V
i in表示的輸入向量與由儲存在記憶體1301
i,j中之權重表示之用於對應的BL
j的第j個矩陣行中的值的向量乘積的總和。輸出電流I
j表示如藉由方程式1及方程式2於上文描述之記憶體內矩陣乘法的輸出向量。
步驟2015判定在位元線BL
j之各者上對應於方程式2之乘積的電流I
j out,該電流藉由ADC 1313
j轉換成OUT
j。在步驟2017中,個別行的此等部分乘積接著可在數位計算區塊1315中累加,以產生層的輸出。步驟2019對應於來自步驟2017之輸出的額外傳播。取決於實施例,步驟2017可包括施加啟動功能、重複針對額外值的推理操作的早期步驟、提供層的輸出、或此等的一些組合。取決於層在網路內的位置,接著可將層的輸出使用為網路之後續層的輸入或網路的最終輸出。
一組替代實施例,具有交叉點架構的推理引擎可基於反熔絲類型記憶體單元,其中各記憶體單元包括在各交叉點處的反熔絲。如同使用基於薄介電層的實施例,反熔絲實施例係一次寫入、多次讀取類型陣列,其中程式化係藉由類似於在二進位實施例中相關於圖20描述之流程的流程來執行。基於反熔絲的實施例可實現非常高的電阻位準(諸如,在百萬-Ω或十億-Ω的範圍中),且低電阻位準可通過大型串聯電阻器的使用而提升。反熔絲技術可向下實施至小尺度(亦即,10 nm),且可實施多階電阻狀態。
反熔絲係在未程式化狀態係常斷的且在經程式化狀態中係常通之導致限制電流(compliance current)的一次可程式化裝置,雖然在一些實施例中,可能在藉由修改反熔絲之偏壓的程式化之後定義多個電阻位準。反熔絲的一種共同設計係與在供應位準與位元線之間的反熔絲電晶體串聯連接的選擇電晶體。選擇電晶體具有連接至讀取字線的控制閘,且反熔絲電晶體具有連接至程式化字線的閘極。反熔絲係藉由施加高電壓至程式化字線以使反熔絲電晶體中的氧化物崩潰並短路反熔絲電晶體來程式化。為讀取反熔絲,在程式化字線係低的同時,將電壓施加至讀取字線以導通選擇電晶體,使得電流可流動通過經程式化反熔絲,但未程式化的反熔絲不會傳導電流。
下文討論呈現使用單一常斷場效電晶體(Field Effect Transistor, FET)反熔絲單元的交叉點記憶體的實施例。反熔絲單元係基於具有金屬氧化物閘極(例如,高k金屬閘極)或半導體氧化物閘極(例如,SiO
2)的FET。FET通道在其初始狀態中係不導電的,且在閘極氧化物已經程式化(亦即,電崩潰)之後變成短路的。材料之特定細節的實施例取決於針對設計選取的微影節點而改變。反熔絲的程式化可相關於圖21繪示。
圖21係基於單一FET的反熔絲及用於偏壓以程式化該反熔絲的一實施例的示意表示。FET電晶體2101連接在位元線BL 2105與字線WL 2103之間。第三線(或程式化字線)WLP 2107連接至FET 2101的控制閘極。圖21繪示FET 2101之用於程式化的偏壓,其中反熔絲的程式化係藉由將程式化字線WLP 2107提升至寫入電壓V
wr而將字線WL 2103接地並將位元線BL 2105設定成½V
wr來執行。程式化電壓V
wr經選擇使得其足以產生反熔絲電晶體的氧化物崩潰但½V
wr不會導致氧化物崩潰,允許交叉點陣列中的單元選擇。為增加低電阻狀態的電阻,各反熔絲FET 2101可具有串聯連接在位元線BL 2105與字線WL 2103之間的電阻。(在此處描述的半選擇程序中,低電壓位準係取在0V,並使用½V
wr的半選擇值;但更通常地,只要半選擇程序不會引起非所要的程式化或讀取值,此等可係另一低電壓值,且半選擇電壓位準可係在V
wr與低電壓中間的其他電壓位準。)
圖22係合併圖21之基於反熔絲之記憶體單元的交叉點陣列結構的一部分的俯視圖。圖22類似於視圖圖12C或圖17,但表示在各交叉點處的反熔絲記憶體單元,且現在亦包括程式化線WLP1至WLP4。例如,記憶體單元2201係連接在字線WL4與位元線BL3之間,並使其控制閘極連接至WLP 3。雖然未顯示以簡化圖式,電阻可與反熔絲記憶體單元的各者串聯連接以增加低電阻狀態的值。
圖22繪示在一個實施例中經偏壓以程式化記憶體單元2201的交叉點陣列的部分,其中電選擇係使用與施加至程式化字線程式的程式化電壓V
wr組合的半選擇方案完成。為將所選擇的權重值寫入至反熔絲2201,將對應的程式化字線WLP3設定成V
wr,其中將對應字線WL4設定成0V且將對應位元線BL3設定成½V
wr。亦將未選取位元線的位元線設定成½V
wr,未選取字線亦如此。將未選擇記憶體單元的程式化字線設為0V,其中程式化可循序地(逐程式化字線地)執行,與相關於圖17的上文描述類似,但其中序列現在係用於程式化字線而非位元線(現在對經選擇及未選擇記憶體單元二者皆保持半選擇)。由於閘極-源極或閘極-汲極電壓保持在½V
wr,與程式化經選擇反熔絲記憶體單元共用程式化字線(此實例中係WLP3)的未選擇反熔絲單元不經歷氧化物崩潰。一旦將陣列程式化,程式化字線不再需要用於讀取操作,該等讀取操作與相關於基於薄介電層之記憶體單元的上文描述類似地執行。
圖23係繪示用於推理引擎之使用具有基於FET的反熔絲之記憶體單元之交叉點架構的程式化的一實施例的流程圖。圖23的流程圖包括用於程式化交叉點記憶體陣列之方法(步驟2301至2307)的實施例,且用於推理之記憶體陣列的後續使用可如同相關於圖20的步驟2011至步驟2019的上文描述。雖然此處的描述係在用於類神經網路的推理引擎的背景中,因為所描述的結構及技術在此類應用中可係特別實用的,其等可更普遍地應用為可在許多背景中使用之具有高保存性的低電力非揮發性記憶體。
在步驟2301,陣列經偏壓以用於經選擇程式化字線,其中程式化序列可以WLP0開始,與用於位元線之相關於圖17繪示的序列類似,但現在係用於程式化字線。例如,所有位元線及未選擇字線可係半選擇及偏壓在½V
wr,並可將對應於經選擇記憶體單元的字線偏壓至接地。在步驟2303,將程式化電壓V
wr施加至經選擇程式化字線。字線、程式化字線、及位元線在步驟2301及2303的偏壓可藉由包括在列解碼器324及行解碼器332及讀取/寫入電路328內的偏壓電路系統的一或多個控制電路執行。
步驟2301及2303的程序針對各程式化字線重複。在步驟2305,判定是否寫入更多的程式化位元線,且若如此,在迴路返回步驟2301之前,在步驟2307增量位元線;及,若否,記憶體陣列的程式化完成。一旦記憶體陣列以類神經網路的權重程式化,其可使用為推理引擎,如相關於圖20的步驟2011至2019於上文描述的。
由於使用上述實施例,在如推理引擎的應用中,陣列的程式化一般在提供給終端使用者之前完成。例如,記憶體陣列可在出貨前由製造者程式化,諸如在常在新鮮裝置上執行的測試程序結束時。替代地,記憶體陣列可在供應至終端使用者之前由中間方程式化:例如,可將未程式化的記憶體陣列(初始化或未經初始化)提供至原始設備製造商(OEM),其可接著程式化其等的資料(諸如用於DNN模型的權重),然後將合併經程式化陣列的產品供應至OEM的客戶。此將係以下情形,例如,依賴類神經網路的自駕車,且製造者在將車輛提供至終端操作者之前將其等的類神經網路模型的權重程式化至陣列中。
由於記憶體陣列一般在供應至終端使用者之前僅程式化一次,在一些實施例中,程式化電壓V
wr可能不在記憶體裝置本身上產生,而係在程式化期間外部地供應。在此情形中,記憶體裝置上的一或多個控制電路(諸如電力控制316)不需要具有產生V
wr的能力,且可避免電路元件此類電荷泵及用以管理較高電壓的電路系統,節省用於此等電路的面積及電力消耗。
針對本文件之目的,在本說明書中對「一實施例(an embodiment)」、「一個實施例(one embodiment)」、「一些實施例(some embodiments)」、或「另一實施例(another embodiment)」的參考可用以描述不同實施例或相同實施例。
針對本文件之目的,連接可係直接連接或間接連接(例如,經由一或多個其他部件)。在一些情形中,當元件稱為連接或耦接至另一元件時,該元件可直接連接至該另一元件或經由中介元件間接連接至該另一元件。當元件稱為直接連接至另一元件時,則在該元件與該另一元件之間沒有中介元件。若二個裝置直接或間接連接使得其等可在其等之間傳達電子信號,該等裝置「通訊(in communication)」。
針對本文件之目的,用語「基於(based on)」可解讀成「至少部分基於(based at least in part on)」。
針對本文件之目的,無需額外上下文,數值用語(諸如「第一(first)」物體、「第二(second)」物體、及「第三(third)」物體)的使用可不暗示物體的次序,而可替代地用於識別目的以識別不同物體。
針對本文件之目的,用語物體的「組(set)」可指物體中的一或多者的一「組」。
上述實施方式已為了說明及描述的目的提供。其未意圖窮舉或限制在所揭示的精確形式。鑑於上述教導,許多修改及變化係可行的。所描述的實施例經選取以最佳地解釋所提出之技術的原理及其實務應用,以藉此使所屬技術領域中具有通常知識者能在各種實施例中最佳地利用其,並設想適合該特定用途的各種修改。旨在使該範圍由隨附的申請專利範圍定義。
100:記憶體系統
102:控制器
104:記憶體封裝/非揮發性記憶體
106:本地記憶體/DRAM
110:前端處理器(FEP)電路
112:後端處理器(BEP)電路
120:主機
122:主機處理器
124:主機記憶體
126:PCIe介面
128:匯流排
130:介面
150:PCIe介面
152:主機處理器
154:晶片網路(NOC)
156:記憶體處理器
158:媒體管理層(MML)
160:SRAM
162:DRAM控制器
164:PCIe介面
166:PCIe介面
180:介電質2B
200:PCIe介面
202:NOC
204:NOC
220:處理器
222:資料路徑控制器
224:XOR引擎
226:ECC引擎
228:介面
230:SRAM
232:緩衝器
250:處理器
252:資料路徑控制器
254:XOR引擎
256:ECC引擎
258:介面
260:SRAM
262:緩衝器
292:記憶體晶粒
294:記憶體匯流排
296:雙態觸變模式介面
300:記憶體晶粒
310:控制電路系統
312:狀態機
314:晶片上位址解碼器
316:電力控制電路/電力控制區塊/電力控制
318:線
324:列解碼器/解碼器
326:記憶體結構/記憶體陣列
328:讀取/寫入電路
332:行解碼器/解碼器
350:感測區塊/感測放大器
604:經接合晶粒對/經整合記憶體總成
608:控制晶粒
610:記憶體晶粒
612:電路徑
614:電路徑
620:平面
660:字線驅動器
660(1):字線驅動器
660(n):字線驅動器
662:通路
664:通路
670:接合焊墊
670a:接合焊墊
670b:接合焊墊
674:接合焊墊
674a:接合焊墊
674b:接合焊墊
682:第一主要表面/主要表面
684:第一主要表面
901:步驟
903:步驟
905:步驟
907:步驟
909:步驟
911:步驟
921:步驟
922:步驟
923:步驟
925:步驟
1201:記憶體單元
1301i,j:記憶體單元/記憶體
1311i:數位轉類比轉換器/DAC
1311j:類比轉數位轉換器ADC
1313j:類比轉數位轉換器
1315:數位計算區塊
1401:字線
1402:金屬層
1403:介電質N
1404:導電層
1405:介電質i
1406:導電層
1407:介電質1
1408:金屬層
1411:位元線
1501:字線
1511:位元線
1522:金屬層
1523-N:第N層/層
1524:金屬層
1525-1:介電層
1525-2:介電層
1526:分層內金屬層
1527-1:層
1528:金屬層
1530:金屬層
1801:電壓源
1802:導電層
1803:介電質2B
1804:導電層
1805:介電質2A
1806:導電層
1807:介電質1
1808:導電層
1821:電壓降
1823:電壓降
1901:電壓源
1902:導電層
1903:介電質3C/介電質
1904:導電層
1905:介電質3B/介電質
1906:導電層
1907:介電質3A/介電質
1908:導電層
1909:介電質2B
1911:介電質2A
1912:導電層
1913:介電質1
1914:導電層
2001:步驟
2003:步驟
2004:步驟
2005:步驟
2006:步驟
2007:步驟
2011:步驟
2015:步驟
2017:步驟
2019:步驟
2101:FET電晶體
2103:字線WL
2105:位元線BL
2107:程式化字線
2201:記憶體單元
2301:步驟
2303:步驟
2305:步驟
2307:步驟
b
i,j :矩陣權重/電導
BL:位元線
BL
0:位元線
BL
1:位元線
BL
2:位元線
BL
3:位元線
BL
4:位元線
BL
5:位元線
BL
(N-1):位元線
BL
i:位元線
BL
j:位元線
BL
N:位元線
Con 1:第一卷積層
Con 2:層
Con N:卷積層
H
1:隱藏節點或中間節點
H
2:隱藏節點或中間節點
H
3:隱藏節點或中間節點
H
4:隱藏節點或中間節點
I
1:輸入節點
I
2:輸入節點
I
3:輸入節點
I
cell:電流
I
j out:類比電流/總電流/電流
IN
i:輸入
L
1:完全連接層/層
L
2:層
L
M:完全連接層
M
i,j:記憶體單元
NS:記憶體單元
O
1:輸出節點
O
2:輸出節點
OUT
j:數位輸出/輸出值
R
1:電阻
R
2:電阻
R
3:電阻
R
i:電阻
R
i,j:電阻
R
N:電阻
S:記憶體單元
SA:感測放大器
SB1:感測電路系統
SB2:感測電路系統
SBp:感測電路系統
T1:介電分層/分層
T2:分層
V
i in:電壓向量/輸入向量分量/電壓位準
V
BD:崩潰電壓
V
BD,1:崩潰電壓
V
BD,2:崩潰電壓
V
BD,3:崩潰電壓
V
BD,i:崩潰電壓
V
BD,N:崩潰電壓
V
bd.eff1:有效崩潰電壓
V
bd.eff2:有效崩潰電壓
V
bd.eff3:有效崩潰電壓
V
bd.effi:有效崩潰電壓
V
read:讀取電壓
V
wr:寫入電壓/程式化電壓
WL:字線
WL
1:字線
WL
2:字線
WL
3:字線
WL
4:字線
WL
5:字線
WL
(M-1):字線
WL
i:字線
WL
M:字線
WLP:程式化字線
WLP0:程式化線
WLP1:程式化線
WLP2:程式化線
WLP3:程式化線
WLP4:程式化線
相似編號的元件參考至不同圖式中的共同組件。
[圖1]係連接至主機之記憶體系統的一個實施例的方塊圖。
[圖2]係前端處理器電路的一個實施例的方塊圖。在一些實施例中,前端處理器電路係控制器的部分。
[圖3]係後端處理器電路的一個實施例的方塊圖。在一些實施例中,後端處理器電路係控制器的部分。
[圖4]係記憶體封裝的一個實施例的方塊圖。
[圖5]係記憶體晶粒的一個實施例的方塊圖。
[圖6A]及[圖6B]繪示通過晶圓至晶圓接合而耦接至記憶體結構之控制電路的一實例。
[圖7]繪示卷積式類神經網路(convolutional neural network, CNN)的一簡單實例。
[圖8]繪示人工類神經網路中的完全連接層的一簡單實例。
[圖9A]係描述用於訓練類神經網路以產生一組權重之程序的一個實施例的流程圖。
[圖9B]係描述使用類神經網路之用於推理之程序的一個實施例的流程圖。
[圖10]係卷積式類神經網路中的卷積操作的示意表示。
[圖11]係矩陣乘法在類神經網路之完全連接層中的使用的示意表示。
[圖12A]至[圖12C]描繪具有交叉點架構之記憶體陣列的一部分的一個實施例。
[圖13]係交叉點陣列及在操作該陣列時使用之控制電路的一些的俯視圖。
[圖14]係使用在多階超低功率推理引擎中之記憶體單元設計的第一實施例的示意表示。
[圖15]係可使用在多階超低功率推理引擎中之使用分組介電層之記憶體單元設計的另一組實施例的示意表示。
[圖16]繪示用於待程式化之記憶體單元之選擇的半選擇方案。
[圖17]係用於寫入具有以多個介電層形成之記憶體單元的交叉點記憶體之序列的一實施例的示意表示。
[圖18A]至[圖18C]繪示在二個分層的實例中藉由介電質崩潰的寫入機制。
[圖19A]至[圖19B]繪示在三個分層的實例中藉由介電質崩潰的寫入機制。
[圖20]係繪示用於推理引擎之使用具有超薄介電層之記憶體單元之交叉點架構的使用的一實施例的流程圖。
[圖21]係基於單一FET的反熔絲及用於偏壓以程式化該反熔絲的一實施例的示意表示。
[圖22]係合併圖21之基於反熔絲之記憶體單元的交叉點陣列結構的一部分的俯視圖。
[圖23]係繪示用於推理引擎之使用具有基於FET的反熔絲之記憶體單元之交叉點架構的程式化的一實施例的流程圖。
無
100:記憶體系統
102:控制器
104:記憶體封裝/非揮發性記憶體
106:本地記憶體/DRAM
110:前端處理器(FEP)電路
112:後端處理器(BEP)電路
120:主機
122:主機處理器
124:主機記憶體
126:PCIe介面
128:匯流排
130:介面
Claims (20)
- 一種設備,其包含: 一控制電路,其經組態以連接至沿著一或多條位元線連接的複數個多階記憶體單元,且各記憶體單元係由藉由導電層分開的複數個介電層形成,該控制電路經組態以: 藉由施加對應的複數個寫入電壓中的一者以使經寫入選擇的記憶體單元的該等介電層中的一或多者崩潰來將該等經寫入選擇的記憶體單元個別地程式化成複數個資料狀態中的一者;及 回應於將一組對應的第一複數個輸入電壓施加至沿著一第一位元線連接的第一複數個該等記憶體單元而同時感測該第一複數個記憶體單元。
- 如請求項1之設備,其中該控制電路包含: 一類比轉數位轉換器,其經組態以回應於該組對應的第一複數個輸入電壓施加至該第一複數個記憶體單元而接收該第一位元線中的一電流的一值,並從該電流判定一多位元輸出值。
- 如請求項1之設備,其中該控制電路係形成在一控制晶粒上,該設備進一步包含: 一記憶體晶粒,其包括該等記憶體單元,該記憶體晶粒與該控制晶粒分開地形成並接合至該控制晶粒。
- 如請求項3之設備,其中記憶體晶粒包括一記憶體單元陣列,該記憶體單元陣列包含: 該等記憶體單元; 複數條位元線,其包括該第一位元線;及 複數條字線,該陣列根據一交叉點架構形成,在該交叉點架構中該等記憶體單元的各者連接在該等位元線的一對應一者與該等字線的一對應一者之間。
- 如請求項4之設備,其中該等記憶體單元的各者包含: 複數個介電層,該等介電層的各者經形成以具有複數個不同的有效崩潰電壓中的一者並具有複數個不同的電阻值中的一者,使得該介電層的該電阻值越高時,該介電層的該有效崩潰電壓越低;及 一或多個導電層,該等導電層與該等介電層交替。
- 如請求項4之設備,其中該等記憶體單元的各者包含: 複數個分層,該等分層的各者具有一或多個介電層,該等介電層的各者經形成以具有一共同的有效崩潰電壓並具有複數個電阻值中的一者,相同分層的該等介電層經形成以具有相同電阻值,且不同分層的該等介電層經形成以具有不同電阻值,並使得該分層中的層數目越大時,該分層之該等介電層的該電阻值越低;及 複數個導電層,該等導電層與該等介電層交替。
- 如請求項4之設備,其中,為將沿著一經選擇位元線的一或多個經寫入選擇的記憶體單元程式化成一第一資料狀態,該控制電路經組態以同時地: 將該經選擇位元線偏壓至一低電壓位準; 將對應於該等經寫入選擇的記憶體單元的該等字線偏壓至對應於該第一資料狀態的該寫入電壓;及 將不對應於該等經寫入選擇的記憶體單元的字線及除該經選擇位元以外的位元線偏壓至在該低電壓位準與對應於該第一資料狀態的該寫入電壓中間的一電壓位準。
- 如請求項4之設備,其中該控制電路包含: 一或多個類比轉數位轉換器,其連接至該等位元線並經組態以回應於該組對應輸入電壓施加至該等字線而接收在該等位元線之各者中的一電流的一值,並從該等電流之各者判定一多位元輸出值。
- 如請求項8之設備,其中該控制電路包含: 一數位計算電路,其連接至該一或多個類比轉數位轉換器並經組態以累加該等多位元輸出值。
- 如請求項9之設備,其中該等記憶體單元經組態以儲存一類神經網路的一層的權重,且其中該控制電路進一步經組態以: 接收用於該類神經網路之該層的一向量輸入值,該輸入值向量具有複數個分量; 將該輸入向量的該等分量轉換成一組電壓位準;及 將該組電壓位準的各者施加至對應的一組字線。
- 如請求項10之設備,其中該控制電路進一步經組態以: 回應於將該組電壓位準的各者施加至對應的該組字線而同時累加來自複數條該等位元線的該多位元輸出。
- 如請求項1之設備,其中控制電路進一步經組態以: 接收用於一類神經網路的一層的複數個權重值; 將該等權重值程式化至該等記憶體單元中作為資料狀態; 在將該等權重值程式化至該等記憶體單元之後,接收用於該類神經網路之該層的一輸入向量; 將該輸入向量轉換成該第一複數個輸入電壓;及 藉由施加該第一複數個輸入電壓至該等記憶體單元來執行該輸入向量與該等權重值的一陣列內乘法。
- 一種方法,其包含: 偏壓一記憶體單元陣列以用於將一或多個第一經選擇記憶體單元同時程式化成複數個資料狀態的一第一者,該陣列根據一交叉點架構形成,在該交叉點架構中該等記憶體單元係連接在一對應位元線與一對應位元線之間,且該等記憶體單元之各者係由藉由導電層分開的複數個介電層形成,該偏壓包含: 將該陣列之對應於該一或多個第一經選擇記憶體單元的一位元線設定成一低電壓值; 將該陣列之不對應於該一或多個第一經選擇記憶體單元的位元線設定成一第一中間電壓位準;及 將該陣列之不對應於該一或多個第一經選擇記憶體單元的字線設定成該第一中間電壓位準;及 在偏壓該記憶體單元陣列以用於將一或多個第一經選擇記憶體單元同時程式化成該複數個資料狀態的該第一者的同時,將一第一寫入電壓施加至該陣列之對應於該一或多個第一經選擇記憶體單元的字線,該第一寫入電壓經選擇以使該等第一經選擇記憶體單元的該等介電層中的一或多者崩潰,以將該等第一經選擇記憶體單元程式化成該複數個資料狀態的該第一者,其中該第一中間電壓位準係在該低電壓值與該第一寫入電壓中間。
- 如請求項13之方法,其進一步包含: 在偏壓該記憶體單元陣列以用於同時程式化該等第一經選擇記憶體單元之後,偏壓該陣列以用於將連接至該陣列之對應於該等第一經選擇記憶體單元的該位元線的一或多個第二經選擇記憶體單元同時程式化成複數個資料狀態的一第二者,該偏壓該陣列以用於同時程式化一或多個第二經選擇記憶體單元包含: 將該陣列之對應於該一或多個第一經選擇記憶體單元的一位元線設定成一低電壓值; 將該陣列之不對應於該一或多個第二經選擇記憶體單元的位元線設定成一第二中間電壓位準;及 將該陣列之不對應於該一或多個第二經選擇記憶體單元的字線設定成該第二中間電壓位準;及 在偏壓該記憶體單元陣列以用於將一或多個第二經選擇記憶體單元同時程式化成該複數個資料狀態的該第二者的同時,將一第二寫入電壓施加至該陣列之對應於該等第二經選擇記憶體單元的字線,該第二寫入電壓經選擇以使該等第二經選擇記憶體單元的該等介電層中的一或多者崩潰,以將該等第二經選擇記憶體單元程式化成該複數個資料狀態的該第二者,其中該第二中間電壓位準係在該低電壓值與該第二寫入電壓中間。
- 如請求項13之方法,其中該陣列的該等記憶體單元經程式化以儲存一類神經網路的一層的權重,且該方法進一步包含: 接收用於該類神經網路之該層的一輸入向量;及 藉由下列來執行該輸入向量與該類神經網路的該等權重的一陣列內乘法: 將一輸入向量轉換成一組電壓位準;及 將該組電壓位準施加至該陣列的該等字線。
- 一種非揮發性記憶體裝置,其包含: 一記憶體陣列,其包含: 複數條字線; 複數條位元線; 複數條程式化線;及 複數個反熔絲記憶體單元,該記憶體陣列具有一交叉點架構,各反熔絲記憶體單元包括一場效電晶體(FET),該場效電晶體連接在該等位元線的一對應一者與該等字線的一對應一者之間並具有連接至該等程式化線的一對應一者的一控制閘極,該等反熔絲記憶體單元之各者可藉由該記憶體單元的一閘極氧化物的崩潰而從一高電阻狀態程式化成一低電阻狀態;及 一或多個控制電路,其連接至該記憶體陣列並經組態以: 在將一寫入電壓施加至該對應程式化線以使該經選擇記憶體單元的該閘極氧化物崩潰的同時,藉由偏壓該對應字線及對應位元線以橫跨該等經選擇記憶體單元放置一電壓差來程式化該等反熔絲記憶體單元的經選擇者;及 在將該等程式化線設定成接地的同時,回應於將一組對應的第一複數個輸入電壓施加至該對應的複數條字線而同時感測沿著一共用位元線連接的第一複數個該等記憶體單元。
- 如請求項16之非揮發性記憶體裝置,其中該非揮發性記憶體裝置包含: 一經接合晶粒對,其包含: 一記憶體晶粒,其包括該記憶體陣列;及 一控制晶粒,其與該記憶體晶粒分開形成並接合至該記憶體晶粒,且包括該一或多個控制電路。
- 如請求項16之非揮發性記憶體裝置,其中各反熔絲記憶體單元進一步包括與在該對應位元線與該對應字線之間的該場效電晶體串聯連接的一電阻器。
- 如請求項16之非揮發性記憶體裝置,其中,為程式化該等反熔絲記憶體單元的經選擇者,該一或多個控制電路經組態以同時地: 將對應於一或多個經選擇記憶體單元的一程式化線偏壓至一寫入選擇電壓,並將該陣列的其他程式化線偏壓至一低電壓值; 將對應於經選擇記憶體單元的字線偏壓至該低電壓值,並將該陣列的其他字線偏壓至在該寫入選擇電壓與該低電壓值中間的一電壓位準;及 將該陣列的該等位元線偏壓至在該寫入選擇電壓與該低電壓值中間的該電壓位準。
- 如請求項16之非揮發性記憶體裝置,其中該等記憶體單元經組態以儲存一類神經網路的一層的權重,且其中該一或多個控制電路進一步經組態以: 接收用於該類神經網路之該層的一輸入值向量;及 藉由將該輸入值向量轉換成一組電壓位準並將該組電壓位準同時施加至對應的一組該等字線來執行類神經網路的一陣列內乘法運算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/061,820 US11289171B1 (en) | 2020-10-02 | 2020-10-02 | Multi-level ultra-low power inference engine accelerator |
US17/061,820 | 2020-10-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202215437A true TW202215437A (zh) | 2022-04-16 |
TWI783538B TWI783538B (zh) | 2022-11-11 |
Family
ID=80738198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110122640A TWI783538B (zh) | 2020-10-02 | 2021-06-21 | 多階超低功率推理引擎加速器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11289171B1 (zh) |
JP (1) | JP7152562B2 (zh) |
KR (1) | KR102605890B1 (zh) |
CN (1) | CN114388039A (zh) |
DE (1) | DE102021115503A1 (zh) |
TW (1) | TWI783538B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102318819B1 (ko) * | 2020-06-10 | 2021-10-27 | 연세대학교 산학협력단 | 멀티 비트 가중치의 연산을 위한 인 메모리 장치 |
US20220366224A1 (en) * | 2021-05-13 | 2022-11-17 | Micron Technology, Inc. | Binary neural network in memory |
KR102540226B1 (ko) * | 2022-07-28 | 2023-06-07 | 인하대학교 산학협력단 | 3진 신경망 가속기 소자 및 그 동작 방법 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5677867A (en) * | 1991-06-12 | 1997-10-14 | Hazani; Emanuel | Memory with isolatable expandable bit lines |
US5268319A (en) * | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Highly compact EPROM and flash EEPROM devices |
US6151248A (en) * | 1999-06-30 | 2000-11-21 | Sandisk Corporation | Dual floating gate EEPROM cell array with steering gates shared by adjacent cells |
KR100546179B1 (ko) | 2003-07-30 | 2006-01-24 | 주식회사 하이닉스반도체 | 멀티비트 제어 기능을 갖는 불휘발성 강유전체 메모리 장치 |
JP5015420B2 (ja) * | 2003-08-15 | 2012-08-29 | 旺宏電子股▲ふん▼有限公司 | プログラマブル消去不要メモリに対するプログラミング方法 |
US8305807B2 (en) | 2010-07-09 | 2012-11-06 | Sandisk Technologies Inc. | Detection of broken word-lines in memory arrays |
JP2013004143A (ja) * | 2011-06-16 | 2013-01-07 | Toshiba Corp | 不揮発性半導体記憶装置 |
US20130148404A1 (en) * | 2011-12-08 | 2013-06-13 | Abhijit Bandyopadhyay | Antifuse-based memory cells having multiple memory states and methods of forming the same |
US9953725B2 (en) * | 2012-02-29 | 2018-04-24 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and methods of operating the same |
US9082502B2 (en) | 2013-10-10 | 2015-07-14 | Sandisk Technologies Inc. | Bit line and compare voltage modulation for sensing nonvolatile storage elements |
JP6273384B2 (ja) | 2014-08-19 | 2018-01-31 | サビック グローバル テクノロジーズ ビー.ブイ. | マルチレベル動作を有する不揮発性強誘電体メモリセル |
US9721662B1 (en) | 2016-01-13 | 2017-08-01 | Sandisk Technologies Llc | Non-volatile memory with efficient programming |
JP6608312B2 (ja) * | 2016-03-08 | 2019-11-20 | ルネサスエレクトロニクス株式会社 | 半導体装置およびその製造方法 |
KR102369715B1 (ko) | 2017-06-12 | 2022-03-03 | 삼성전자주식회사 | 이차원 물질을 포함하는 비휘발성 메모리 소자 및 이를 포함하는 장치 |
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 |
US10664746B2 (en) | 2018-07-17 | 2020-05-26 | Macronix International Co., Ltd. | Neural network system |
EP3683833A4 (en) * | 2018-08-30 | 2020-08-12 | Shenzhen Weitongbo Technology Co., Ltd. | STORAGE UNIT, STORAGE DEVICE, AND METHOD OF OPERATING A STORAGE UNIT |
US10699764B1 (en) * | 2018-12-14 | 2020-06-30 | Nxp Usa, Inc. | MRAM memory with OTP cells |
JP2020155727A (ja) * | 2019-03-22 | 2020-09-24 | ソニーセミコンダクタソリューションズ株式会社 | 半導体装置及びこれを備えた電子機器 |
TWI686803B (zh) | 2019-06-04 | 2020-03-01 | 旺宏電子股份有限公司 | 可變電阻式記憶體之編程方法及記憶胞之電壓編程方法 |
US10892279B1 (en) * | 2019-07-17 | 2021-01-12 | Sandisk Technologies Llc | NAND string containing separate hole and electron tunneling dielectric layers and methods for forming the same |
-
2020
- 2020-10-02 US US17/061,820 patent/US11289171B1/en active Active
-
2021
- 2021-06-03 CN CN202110622315.XA patent/CN114388039A/zh active Pending
- 2021-06-15 DE DE102021115503.7A patent/DE102021115503A1/de active Pending
- 2021-06-21 TW TW110122640A patent/TWI783538B/zh active
- 2021-06-22 JP JP2021103405A patent/JP7152562B2/ja active Active
- 2021-06-24 KR KR1020210082725A patent/KR102605890B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
TWI783538B (zh) | 2022-11-11 |
JP2022060145A (ja) | 2022-04-14 |
JP7152562B2 (ja) | 2022-10-12 |
CN114388039A (zh) | 2022-04-22 |
US20220108759A1 (en) | 2022-04-07 |
KR20220044642A (ko) | 2022-04-11 |
DE102021115503A1 (de) | 2022-04-07 |
US11289171B1 (en) | 2022-03-29 |
KR102605890B1 (ko) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110782027B (zh) | 用于人工神经网络的差分非易失性存储器单元 | |
US10643705B2 (en) | Configurable precision neural network with differential binary non-volatile memory cell structure | |
US11657259B2 (en) | Kernel transformation techniques to reduce power consumption of binary input, binary weight in-memory convolutional neural network inference engine | |
US11328204B2 (en) | Realization of binary neural networks in NAND memory arrays | |
US11568200B2 (en) | Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference | |
TWI783538B (zh) | 多階超低功率推理引擎加速器 | |
US11568228B2 (en) | Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays | |
TWI783539B (zh) | 具有外部磁場程式化輔助的超低電力推理引擎 | |
US11397885B2 (en) | Vertical mapping and computing for deep neural networks in non-volatile memory | |
US11544547B2 (en) | Accelerating binary neural networks within latch structure of non-volatile memory devices | |
US20220398439A1 (en) | Compute in memory three-dimensional non-volatile nand memory for neural networks with weight and input level expansions | |
US11663471B2 (en) | Compute-in-memory deep neural network inference engine using low-rank approximation technique | |
CN110751276A (zh) | 在nand存储器阵列中实现具有三值输入和二值权重的神经网络 | |
US20220366211A1 (en) | Dropout in neutral networks using threshold switching selectors in non-volatile memories | |
US12079733B2 (en) | Multi-precision digital compute-in-memory deep neural network engine for flexible and energy efficient inferencing | |
US20220358354A1 (en) | Architecture design for ensemble binary neural network (ebnn) inference engine on single-level memory cell arrays |