TW202405813A - 記憶體 - Google Patents
記憶體 Download PDFInfo
- Publication number
- TW202405813A TW202405813A TW111138353A TW111138353A TW202405813A TW 202405813 A TW202405813 A TW 202405813A TW 111138353 A TW111138353 A TW 111138353A TW 111138353 A TW111138353 A TW 111138353A TW 202405813 A TW202405813 A TW 202405813A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- word
- tcam
- cells
- similarity
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 243
- 238000003860 storage Methods 0.000 claims description 72
- 239000000872 buffer Substances 0.000 description 46
- 238000005516 engineering process Methods 0.000 description 28
- 238000000034 method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 9
- 238000003491 array Methods 0.000 description 8
- 230000000295 complement effect Effects 0.000 description 7
- 239000004020 conductor Substances 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 2
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000003306 harvesting Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- 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/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1096—Write circuits, e.g. I/O line write drivers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
- G11C15/046—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements using non-volatile storage elements
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1069—I/O lines read out arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Static Random-Access Memory (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
Abstract
本發明提供一種記憶體(例如3D AND Flash),包括記憶體陣列、用於選擇TCAM單元的集合之一者的電路、用於將輸入搜尋字應用於所選擇的TCAM單元的集合中的TCAM單元的電路,以及用於基於搜尋字的大於一個位元的不匹配或可能不匹配而產生指示所選擇的TCAM單元的集合中的儲存字與輸入搜尋字的相似性的輸出的電路。記憶體陣列經配置以將資料字保持在TCAM單元的各別集合中,其中每一TCAM單元用以儲存儲存字的位元的三元狀態。
Description
本技術是關於三元內容可定址記憶體(ternary content addressable memory;TCAM),包含包括TCAM的非揮發性記憶體單元、適用於相似性匹配的TCAM及適用於大搜尋字的TCAM的技術。
提供有效、高產量計算的系統被開發以支援例如人工智慧及機器學習的技術。在實例系統中,極大資料集合可儲存於非揮發性記憶體中,例如3D NAND Flash或3D AND Falsh。為了處理資料集合,資料集合部分移動至數位處理系統,如DRAM及GPU,執行進一步計算。然而,資料集合可遠大於可由數位系統有效地處理的資料集,因為對於此實例,DRAM可比非揮發性記憶體小得多。因此,資料集合逐步移動至數位系統。然而,資料移動需要消耗大量時間及大量功率,因而限制了系統的效率及產出量。
因此,需要提供可改良用於極大資料集合的資料處理的效率的技術,所述技術包含改良的TCAM。
描述可擴展以支援極大搜尋字的三元內容可定址記憶體(ternary content addressable memory,TCAM)技術。在一個實例系統中,包含於非揮發性記憶體中大量儲存字的資料集合可使用搜尋字存取。產生的輸出提供儲存字與搜尋字的相似性的指示,而非準確匹配,或外加準確匹配。相似性匹配可用於例如過濾資料集合,識別與搜尋字相似的儲存字。相似性匹配具有許多用途。舉例而言,以此方式識別為類似的儲存字接著可傳送至主機系統以供進一步處理。此可實質上節省與應用於人工智慧及機器學習的許多技術相關聯的資料傳送成本。
本文中所描述的TCAM系統包括經配置以將儲存字保持在TCAM單元的各別集合中的記憶體陣列,其中每一TCAM單元用以儲存儲存字的位元的三元狀態。系統包含用於選擇TCAM單元的集合中之一者的電路,例如用於記憶體陣列中的字元線、位元線、區塊選擇閘極等等的解碼器及驅動器。系統包含用於將輸入搜尋字應用於所選擇的TCAM單元的集合中的TCAM單元的電路,例如用於陣列的字元線或位元線中的一者上的搜尋字緩衝器或驅動器。系統包含基於搜尋字的大於一個位元的不匹配或可能不匹配而用於產生指示所選擇的TCAM單元的集合中的儲存字與輸入搜尋字的相似性的輸出的電路。
適用於TCAM系統中的記憶體陣列的實例包含3D NAND架構陣列、3D AND架構陣列以及3D NOR架構陣列。記憶體陣列可包括多個記憶體單元,且TCAM單元的集合中的每一TCAM單元可包含經配置以儲存儲存字的位元的三元狀態的陣列中的第一記憶體單元及第二記憶體單元。
記憶體單元陣列可包含耦接至陣列中的記憶體單元的各別行的位元線及耦接至陣列中的記憶體單元的各別列的字元線。陣列中的記憶體單元的行可安置於配置成行的各別NAND字串上,其中給定區塊中的NAND字串中的每一行共用單一位元線。TCAM單元的集合中的一者中的TCAM單元中的第一記憶體單元及第二記憶體單元可安置於記憶體單元的列中的一者中及記憶體單元的行中的兩者上。用於選擇TCAM單元的集合的電路可將信號施加至字元線,例如讀取電壓信號。用於應用輸入搜尋字的電路可將搜尋字的位元應用至位元線。在此系統中用於產生指示相似性的輸出的電路將記憶體單元的多對第一行及第二行的輸出組合。在NAND架構中,輸出為在用於每一TCAM單元的第一行及第二行中的NAND字串上攜帶的電流。包括多對行上的記憶體單元的TCAM單元的數目可為極大的以支援極大搜尋字,如下文更詳細地論述。
在另一實例中,記憶體單元陣列可包括記憶體單元的堆疊的陣列,例如在3D AND架構區塊中或在3D NOR架構區塊中。在此實例中,在多層級中的多個字元線耦接至陣列中的記憶體單元的堆疊的各別列上的記憶體單元,且TCAM單元中的第一記憶體單元及第二記憶體單元安置於堆疊的各別列中的一者的第一層級及第二層級中。在此配置中,用於選擇TCAM單元的集合的電路可將信號施加至位元線。用於應用輸入搜尋字的電路可將信號施加至字元線。用於產生指示相似性的輸出的電路可將所選擇的TCAM單元的集合中的多個TCAM單元的記憶體單元的堆疊的行的輸出組合。
當所選擇的TCAM單元的集合中的儲存字中的位元與輸入搜尋字的不匹配數目低於臨限值時,用於偵測到如本文中所描述的TCAM系統中的相似性的電路可產生指示相似性的信號,其中臨限值大於一。當使用臨限值為一時,可用於指示準確匹配。
用於偵測到相似性的電路的實例可包括數位至類比轉換器(analog-to-digital converter,ADC),其產生指示多個不匹配單元的數位輸出,所述不匹配單元可經求和以指示儲存字與搜尋字的相似性。此不匹配單元的數目可與臨限值比較以識別類似於搜尋字的儲存字。
在另一實例中,TCAM系統可包含用於用「X」(don’t care)狀態置換輸入搜尋字的一或多個位元的電路,實際上將輸入搜尋字的一些位元建立為通配。當偵測到未被搜尋字中的X(don’t care)狀態遮蔽的儲存字中的至少一個位元不匹配時,用於產生指示相似性的輸出的電路可產生指示相似性的信號。在通配方法中,由於遮蔽位元是否存在不匹配不會被偵測到,因此感測放大器的輸出可經設定以偵測到搜尋字的未遮蔽位元的單一位元不匹配,從而指示多個位元不匹配的可能性。然而,信號視為指示本說明書的上下文中的相似性。
一般而言,技術是基於將資料集合儲存於非揮發性記憶體中及組態非揮發性記憶體以用於TCAM操作。藉由以對於使搜尋字的對應位元不匹配的每一TCAM單元產生電流或其他信號的方式將搜尋字應用於非揮發性記憶體來執行TCAM相似性匹配。可藉由組合由搜尋字存取的所有TCAM單元的輸出來產生指示相似性的輸出,且當TCAM單元的臨限數目個輸出指示不匹配時指示儲存字的不匹配。此外,可藉由在輸入搜尋字中應用通配位元來產生指示相似性的輸出,且當TCAM單元的輸出中的至少一者指示未遮蔽位元中的不匹配時指示儲存字的不匹配。基於感測單一存取循環中來自不匹配單元的組合電流,指示相似性的輸出可為類比信號。在一些實施例中,類比信號可使用類比至數位轉換器轉換以用於數位信號處理。
另外,描述支援可包含多個部分搜尋字的極大搜尋字的技術。用於指示搜尋字與儲存字的相似性的電路可包含使用時域執行用於累積多個部分搜尋字的相似性匹配結果的邏輯。此邏輯可定位於感測放大器電路系統附近且跨記憶體中的多個部分搜尋字累積結果。
在審閱以下圖式、實施方式以及申請專利範圍之後可見本發明技術的其他態樣及優勢。
以下描述將通常參考特定結構實施例及方法。應理解,並不存在將技術限制於特定揭露的實施例及方法的意圖,而是可使用其他特徵、元件、方法以及實施例來實踐技術。描述較佳實施例以說明本發明技術,而非限制其範疇,所述範疇由申請專利範圍限定。所屬領域的技術人員將認識到關於以下描述的多種等效變化。
圖1為包含配置成行及列的立式NAND字串的陣列的NAND區塊的示意圖。出於本說明書的目的,NAND區塊中的一個列為具有共同字串選擇線(例如SSL(S))及共同字元線(WL0至WL31)的NAND字串集合。列中的每一NAND字串回應於共同字串選擇線耦接至不同位元線,使得其沿著共同字串選擇線及字元線在邏輯上配置成列。
如本文所描述的NAND區塊可使用3D NAND記憶體技術來實施。在本領域中已知的多種替代方案中,包含立式NAND堆疊的NAND區塊的一些實例描述於美國專利申請公開案第US20200192971A1號中;所述內容如同在本文中充分闡述一般以引用的方式併入。亦可使用2D NAND技術來完成實施方案,其中NAND區塊跨多個2D NAND陣列在邏輯上定義。
圖式繪示具有字串選擇線SSL(S)的NAND區塊的立式NAND字串的一個列的圖。多個列包含於示意性地繪示的各別字串選擇線(SSL(i)及SSL(j)上的區塊中。出於本說明書的目的,NAND字串的行為具有共同位元線的NAND字串集合,行中的每一NAND字串耦接至不同的字串選擇線,使得其沿著共同位元線在邏輯上配置成行。在實體佈局中,根據所應用的製造方法,行或列可經扭轉,以蜂巢式圖案配置或以其他方式因高密度或因其他原因而佈置。
在圖式中,陣列的第一列中的NAND字串150及NAND字串151分別耦接至第一位元線BL(0)及第二位元線BL(1),且耦接至列的共用源極線SL1。
經考慮給定NAND區塊可耦接至許多位元線BL(i),i為1至B,包含給定實施方案中的數十、數百或數千位元線,以及NAND字串的陣列中對應行數的NAND字串。
NAND字串的區塊中的NAND字串中的每一者包含耦接至對應字串選擇線(例如SSL(S))的字串選擇開關,其用於將對應NAND字串連接至其位元線且斷開。在給定實施方案中,經考慮給定NAND區塊可耦接至多種字串選擇線,以及NAND字串的陣列中對應列數的NAND字串。
NAND字串的陣列中的NAND字串中的每一者包含耦接至列的接地選擇線GSL1的接地選擇開關,其用於將NAND字串列中的對應NAND字串連接至列的源極線SL1。在一些實施例中,共用源極線可連接至區塊中的所有NAND字串,或連接至除單列以外的區塊中的NAND字串的部分。在一些實施例中,對應NAND字串上的接地選擇開關可藉由單獨接地選擇線控制。
NAND字串的陣列中的NAND字串中的每一者包含多個記憶體單元,多個記憶體單元串聯配置在字串選擇開關與接地選擇開關之間且耦接至對應字元線。在此實例中,NAND區塊的給定層級中的字元線中的每一者耦接至單獨受控、單一字元線導體,使得給定層級中的每一列記憶體單元可接收不同字元線信號。在一些實施例中,在區塊的給定層級中的所有字元線或包含大於一個部件的字元線集合耦接至單一字元線導體,因此在NAND區塊的給定層級中的所有或所選擇多個記憶體單元的列可接收相同字元線信號。在此實例中,NAND區塊的NAND字串為包含耦接至32個字元線WL0至字元線WL31的32個層級的記憶體單元的立式NAND字串。在不同實施例中,可存在不同數目個層級的字元線,包含一些技術中的100個或大於100個層級。
在操作的儲存模式中,可使用藉由耦接至區塊的多個位元線的頁緩衝器(未繪示)支援的程式化及抹除操作將資料寫入至個別記憶體單元中。在儲存模式操作中,通常使用所選擇字串選擇線來選擇NAND字串的陣列中的NAND字串列中的一者。在此情況下,NAND字串的陣列的每一行中的NAND字串中的一者耦接至位元線中的一者。頁緩衝器可用於將資料圖案程式化至在NAND區塊的每一層級處平行耦接至多個位元線的NAND字串的陣列的所選擇列中的個別NAND字串中。此外,儲存模式下的頁緩衝器可用於讀取儲存於在NAND區塊的每一層級處的NAND字串的陣列的所選擇列中的記憶體單元中的資料。
在儲存模式下,可將資料字的大資料集合儲存於NAND區塊中。NAND區塊中的NAND單元可使用每單元單一位元技術或每單元多個位元技術來實施。
包含圖1中所示出的NAND區塊的系統為包含記憶體單元陣列的實例電路,所述記憶體單元陣列經配置以在TCAM單元的各別集合中保持儲存字(DATA WORD 0、DATA WORD 1、……、DATA WORD 30、DATA WORD 31),TCAM單元的集合中的每一TCAM單元包含陣列的第一記憶體單元及第二記憶體單元以儲存各別儲存字的位元的三元狀態。在此實例中,TCAM單元包含第一NAND字串(例如NAND字串150)中的一個記憶體單元及第二NAND字串(例如NAND字串151)中的第二記憶體單元。包括多個儲存字的資料集合,在此實例中每一儲存字沿著NAND字串的列儲存於一個字元線層級處。因此,在此實例中,DATA WORD 0沿著字元線WL0儲存於由SSL(S)選擇的列中。經由沿著字元線WL31儲存於由SSL(S)選擇的列中的DATA WORD 31,DATA WORD 1沿著字元線WL1等儲存於由SSL(S)選擇的列中。
儲存字中的每一位元可具有三個狀態,包含「0」、「1」以及「X」,使得每一位元為「三元」。在此實施例中,三元狀態由每一TCAM單元的兩個記憶體單元的程式化或抹除狀態指示。因此,字元線WL1上的TCAM單元110包含NAND字串150及NAND字串151上的記憶體單元,所述記憶體單元分別耦接至位元線BL(0)及位元線BL(1)。其他TCAM單元沿著字元線WL1上的位元線的對應對上的列分佈。
圖1的電路包含用於選擇TCAM單元的集合中的TCAM單元的集合的電路,其中在此實例中,TCAM單元的集合包含區塊中的單一字元線上的沿著單一列的TCAM單元。用於選擇TCAM單元的集合的電路可包括回應於來自如用於非揮發性記憶體電路中的控制器的位址的字元線解碼器及驅動器。
圖1的電路包含用於將輸入搜尋字應用於所選擇的TCAM單元的集合中的各別TCAM單元的電路,所述輸入搜尋字包含輸入搜尋字中的每一位元的真實狀態及互補狀態,或在一些情況下包含三元狀態。在此實例中,搜尋字暫存器101耦接至位元線BL(0)至BL(x),其中x可為約數千(圖中僅繪示四個)。如由標記圖1所指示,搜尋字可包括實例系統中的8k個位元組(64k個位元)。搜尋字暫存器的大小可適合於特定記憶體實施方案,且製作可為極大的。
對於TCAM搜尋,搜尋字的每一位元由待分別應用於所選擇TCAM單元的兩個記憶體單元的真值及互補值表示。在一些情況下,「don’t care」狀態亦可按搜尋字的位元表示。因此,針對四個所示出位元線,藉由分別將搜尋字位元SB(0)及搜尋字位元/SB(0)應用於位元線BL0及位元線BL1,且藉由分別將搜尋字位元SB(1)及搜尋字位元/SB(1)應用於位元線BL2及位元線BL3來應用搜尋位元。可以頁緩衝器的如NAND記憶體架構中常用的方式實施搜尋字暫存器,且在一些實施例中,用於記憶體操作的頁緩衝器及用於TCAM操作的搜尋字暫存器可包含相同緩衝器單元。
如圖1中所繪示,源極線SL1連接至可包含類比至數位轉換器(analog to digital converter,ADC)的感測放大器120。感測放大器120可在匯流排121上輸出指示TCAM匹配操作的結果的具有「x」位元的多位元值。舉例而言,匯流排121上的輸出可為8個位元。在其他實施例中,匯流排121上的輸出可為單一位元。在此實例中,匯流排121上的輸出應用於比較器122,在比較器122處將相似性值與臨限值123進行比較。比較器122的輸出可為指示所存取的儲存字在臨限值處是否通過相似性匹配的單一位元。在一些實施例中,可在外部主機中執行比較操作。但此實例將用於比較的邏輯靠近記憶體裝置中的感測放大器120置放。
感測放大器120提供電路,所述電路用於將所選擇的TCAM單元的集合中的TCAM單元的輸出組合以產生指示輸入搜尋字匹配所選擇的TCAM單元的集合中的儲存字的程度的輸出。在此實例中,為了執行輸入搜尋字與所選擇的儲存字的TCAM匹配,藉由將所選擇的儲存字的字元線設定成讀取電壓Vread及將未選擇儲存字的字元線設定成通過電壓Vpass來選擇儲存字。由搜尋字暫存器將輸入搜尋字應用於位元線。匹配的結果包括在NAND字串中進行的電流,其中藉由搜尋字與所選擇的儲存字的組合建立不匹配狀態。不匹配狀態引起電流流動的條件描述於下文圖2中。
所選擇NAND字串的電流藉由儲存於NAND區塊的所選擇層級處的記憶體單元中的資料來判定,且如由搜尋字的位元所指示在位元線上偏壓。
如所示出,源極線SL1上的電流包含經由列中的NAND字串至源極線SL1的位元線BL(0)至位元線BL(x)上的電流的總和。
在由列中的任何TCAM單元未偵測到不匹配的狀態下,SL1上的零電流對應於準確匹配。SL1上累積的非零電流對應於多個不匹配狀態。一個不匹配導致一個NAND字串上的電流,且大於一個不匹配導致大於一個NAND字串上的電流。感測放大器120的匯流排121上的輸出可為表示不匹配的量值的數位值。在一個實例中,數位值可具有8位元的寬度「x」。此數位值可與指示搜尋字及儲存字的相似性層級的臨限值進行比較。舉例而言,臨限值可設定在對應於由大於三個不匹配產生的電流的層級處。因此,若給定儲存字產生小於或等於例如三個不匹配的數目,或在使用每一計數表示一個不匹配的8位元ADC的情況下,臨限值可設定為256個不匹配,則使得給定儲存字可指示為類似於搜尋字。臨限值可按需要根據電路的特定實施方案來設定。一些實施例,臨限值可藉由在包含電路系統的積體電路上的控制暫存器中設定值而針對匹配操作的集合中的每一匹配操作可程式化及可調整。
圖2示出用於與參考圖1所描述的類似的TCAM單元的九個匹配條件。示出九個TCAM單元,其中儲存於單元中的狀態對應於頂部列中的「1」、中間列中的「0」以及底部列中的「X」。第一行中的搜尋字的搜尋位元為「1」,第二行中的搜尋字的搜尋位元為「0」,且第三行中的搜尋字的搜尋位元為「X」。
如圖中所標記,當左側上的記憶體單元用高程式狀態臨限值(Pm)寫入且右側上的記憶體單元用低抹除狀態臨限值(Er)寫入時,表示儲存狀態「1」;當左側上的記憶體單元用低抹除狀態臨限值(Er)寫入且右側上的記憶體單元用高程式狀態臨限值(Pm)寫入時,表示儲存狀態「0」;且當用高程式狀態臨限值(Pm)寫入左側上的記憶體單元及右側上的記憶體單元時,表示儲存狀態「X」。發生不匹配狀態,所述不匹配狀態僅在用高電壓對位元線進行偏壓且接收讀取電壓的記憶體單元具有低抹除狀態臨限值的條件下產生電流流動(由圖中的虛線指示)。因此,發生不匹配,導致電流僅在TCAM單元儲存「1」的第一列中的搜尋「0」行中流動;及在TCAM單元儲存「0」的第二列中的搜尋「1」行中流動。所有其他條件指示不產生電流的匹配。
圖3為包含例如如圖1中所繪示實施的快閃記憶體單元的NAND區塊陣列360的積體電路裝置300的另一實施例的簡化晶片方塊圖。裝置用以用於包含頁程式、程式、讀取、抹除或其他操作的記憶體操作及用於TCAM操作。在各種實施例中,記憶體裝置可具有單層級單元(single-level cell;SLC),或每單元儲存大於一個位元的多層級單元(例如,MLC、TLC或XLC)。記憶體裝置可實施於單一積體電路晶片上、多晶片模組上或用以適用特定需要的多個晶片上。
在此實例中,裝置300包含用於儲存模式下的記憶體操作的控制器310及包含如本文中所描述的相似性匹配操作的TCAM操作,所述控制器310包含例如狀態機及其他邏輯電路的控制電路。此外,在此實例中,控制器310中的控制電路包含定序器,用於控制裝置300在涉及NAND區塊陣列360及裝置的內部及外部的資料流操作的大規模TCAM功能中的使用。此外,控制器310可包含或能夠存取儲存裝置的操作參數的控制暫存器,包含儲存設定用於相似性匹配的臨限值的參數的臨限值暫存器311。
可用於裝置300中的NAND區塊陣列技術的實例描述於美國專利申請公開案US20200192971A1中,所述內容如同本文中所充分闡述一般以引用的方式併入。
NAND區塊陣列360可包含2個或更多平面,包含一或多個用於儲存操作的平面,及一或多個用於TCAM操作的平面。控制器可包含控制狀態機,所述控制狀態機使用例如轉置矩陣操作及映射表的位址計算方案來支援自用於儲存的平面至用於TCAM操作的平面的資料傳送。
如本文所描述的NAND區塊可使用3D NAND記憶體技術實施。在本領域中已知的多種替代方案中,包含立式NAND字串的NAND區塊的一些實例描述於由Lue於2017年7月4日發佈的美國專利第9,698,156號,標題為立式薄通道記憶體(VERTICAL THIN CHANNEL MEMORY)中;及由Lue於2016年12月20日發佈的美國專利第US 9,524,980號,標題為U形立式薄通道記憶體(U-SHAPED VERTICAL THIN CHANNEL MEMORY)中;且此類專利如同本文中所充分闡述一般以引用的方式併入。亦可使用2D NAND技術來完成實施方案,其中NAND區塊跨多個2D NAND陣列在邏輯上定義。藉由建立對應於所儲存電荷量的多個程式層級,又建立記憶體單元臨限電壓Vt,區塊陣列360可包括用以每單元儲存多個位元的浮動閘極記憶體單元或介電電荷收集記憶體單元。技術可與每單元單一位元快閃記憶體一起使用,且與其他每單元多個位元及每單元單一位元的記憶體技術一起使用。在其他實例中,記憶體單元可包括可程式化電阻記憶體單元(programmable resistance memory cells)、鐵電記憶體單元(ferroelectric memory cells)、相變記憶體單元(phase change memory cells)以及其他類型的非揮發性及揮發性記憶體單元技術。
積體電路裝置300包含耦合至陣列360中的對應NAND區塊的源極線355的集合,及耦接至陣列360中的對應NAND區塊的位元線365的集合。
字元線的集合耦接至NAND區塊的對應層級處的記憶體單元的閘極,字元線的集合中的字元線上的信號選擇記憶體單元的各別層級。字元線驅動器340耦接至字元線345的集合。
感測電路350的集合耦接至源極線的集合中的各別源極線。對於使用陣列的TCAM操作,源極線感測電路350可感測來自NAND區塊陣列360的源極線355處的電流。在源極線的集合中的特定源極線處所感測的電流可表示如上文所論述的相似性值。用於記憶體操作的感測資料及關於TCAM操作中的感測資料的後設資料視需要自源極線感測電路350經由資料線353供應至快取記憶體390、至輸入/輸出電路391或至晶片上或晶片外的其他目的地,所述資料包含例如在相似性匹配儲存字處寫入的標籤、儲存字的相似性匹配的位址以及針對儲存字的相似性匹配的相似性值(例如由類比至數位轉換器ADC提供)的資訊。感測電路350可包含限制用於可具有許多不匹配位元的不匹配儲存字的功率消耗的電流限制電路。舉例而言,對於具有如上文所論述的八個位元ADC的實施例,電流限制電路可將電流限制在對應於例如儲存字的5個至10個位置中的不匹配的層級處,或在一些情況下限制更大數目,例如256個位置。電流限制可根據特定實施方案的需要而設定。
電路370中的位元線驅動器耦接至頁緩衝器375,且耦接至位元線365。頁緩衝器375可用以在TCAM操作中作為搜尋字緩衝器操作,或包含儲存元件的集合,如用作搜尋字緩衝器的鎖存器。對於記憶體儲存操作,輸入及輸出資料可經由快取記憶體390跨線335提供。對於使用陣列的TCAM操作,電路370中的位元線驅動器可針對每一TCAM匹配操作應用搜尋字的位元的真值及互補值或三元值。
位址在匯流排330上自控制器310應用於頁緩衝器375、電路370中的位元線驅動器及字元線驅動器340。頁緩衝器375、電路370中的位元線驅動器以及源極線感測電路350由線353、線305耦接至輸入/輸出電路391。
輸入/輸出電路391將資料驅動至積體電路裝置300外部的目的地。輸入/輸出資料及控制信號經由資料匯流排305在以下各者之間移動:輸入/輸出電路391、快取記憶體390、控制器310以及積體電路裝置300上的輸入/輸出埠或積體電路裝置300內部或外部的其他資料源,例如通用處理器或專用應用程式電路系統,或提供由NAND區塊陣列360支援的系統晶片功能性的模組的組合。
快取記憶體390可以TCAM模式使用以暫時儲存匹配結果,例如通過相似性匹配的儲存字及關於TCAM操作的儲存字個體的後設資料。此外,邏輯電路可連接至快取記憶體及快取記憶體與頁緩衝器375之間的資料路徑,以使用儲存於快取記憶體中的TCAM操作的結果來進行邏輯運算。
在圖3中所繪示的實例中,使用偏壓配置狀態機的控制器310控制經由區塊320中的一或多個電壓供應所產生或提供的供應電壓的施加以用於TCAM操作及以儲存模式進行讀取及寫入(程式化及抹除)操作。
控制器310可使用所屬領域中已知的專用邏輯電路系統來實施。在替代實施例中,邏輯控制包括可實施於相同積體電路上的通用處理器,所述通用處理器執行電腦程式以控制裝置的操作。在又一其他實施例中,專用邏輯電路系統及通用處理器的組合可用於邏輯控制的實施。
外部主機302可連接至匯流排305上的輸入/輸出電路391且包含用以支援如本文中所描述的儲存操作及TCAM操作的資源。主機302可包括通用處理器、專用處理器、經組態為記憶體控制器的處理器或使用記憶體裝置300的其他處理器。主機302的全部或部分可實施於與記憶體相同的積體電路上。在實例系統中,主機302可包括數位處理系統,所述數位處理系統包含與裝置300介接的記憶體控制器,且在一些實例中可為包含DRAM及GPU電路以用於進一步計算的系統。
在所示出的實例中,主機302耦接至記憶體裝置300上的資料匯流排305,以及未繪示的其他控制終端,例如晶片選擇終端等,且可將命令或指令提供至記憶體裝置300。在一些實例中,主機302可使用共用位址及資料線耦接至使用串列匯流排技術的記憶體裝置。
主機302可包含檔案系統或基於來自應用程式的請求而儲存、擷取及更新儲存於記憶體中的資料的檔案系統。大體而言,主機302可包含執行記憶體管理功能及可產生關於儲存於記憶體中的資料的狀態資訊的其他功能的程式。此外,主機302可包含應用程式、檔案系統、快閃轉譯層程式及可產生關於資料的狀態資訊的其他組件。
控制器310中的控制邏輯亦可實施用於支援裝置的TCAM模式下的管線或依序操作的電路系統。舉例而言,以下操作可使用控制器310中的控制邏輯在將資料集合儲存於記憶體TCAM平面中之後實施,TCAM操作可包含以下步驟:
1. 載入在頁緩衝器375中的第一搜尋字。
2. 選擇第一儲存字,例如藉由將讀取電壓施加至所選擇一或多個區塊中的所選擇字元線來選擇第一儲存字。
3. 將搜尋字應用於用於所選擇的儲存字的位元線且啟用用於第一儲存字的列的字串選擇線。
4. 根據感測放大器的輸出判定所選擇的儲存字是否類似於搜尋字。
5. 若所選擇的儲存字類似於搜尋字,則例如藉由將位址偏移儲存於暫存器中或快取記憶體390中的指定區域中而接著記錄例如所選擇的儲存字的位址的後設資料,且將所選擇的儲存字移動至快取記憶體390。在一些實施例中,所選擇的儲存字至快取記憶體的移動可使用後續存取循環使用所儲存位址偏移來實施。
6. 若所選擇的儲存字並不類似於搜尋字,則接著跳過所選擇的儲存字至快取記憶體的傳送。
7. 在步驟5或步驟6之後,控制器判定在程序中是否已達到最後一個儲存字,且在序列中是否未選擇下一儲存字。
若已在程序中達到最後一個儲存字,則演算法結束。
以此方式,經指示為類似於搜尋字的儲存字可經選擇以用於傳送至數位系統以供進一步處理,同時可跳過不類似於搜尋字的儲存字。此可藉由消除用於不類似於搜尋字的儲存字的傳送序列而實質上減少大資料集合的數位處理所需的時間。
圖4為包含配置成列及行的立式堆疊的AND單元的陣列的AND區塊的示意圖。出於本說明書的目的的AND區塊的行為在區塊的單一層級中具有共同位元線及源極線對(例如,411、421)及多個字元線(WL0至WLn)的AND單元的集合。為簡化圖式,僅示出每層級兩個字元線,包含第一層級上的WL(0-1)及WL(1-1)及第二層級上的WL(0-2)及WL(1-2)。經考慮可利用每層級許多字元線及字元線的許多層級,包含給定區塊中的數百或數千個字元線。
在3D AND中,可存在能支援使用大搜尋字的許多字元線。舉例而言,3D AND架構中的每一圖塊可具有8K個字元線,其支援使用512個位元組搜尋字的平行搜尋。
在AND架構中,成對字元線用於應用搜尋位元,且陣列中的三元狀態資料以對應方式儲存於單元對中。
在此架構中,「匹配」(Match)不產生電流,而「不匹配」(Mismatch)產生電流。
全域位元線可組合由大量字元線驅動的單元電流。因此,全部總計電流可能相當大。ADC可用於收集具有例如8位元解析度的總計電流。
更多電流指示更多「不匹配」,而較少電流意謂更多「匹配」。當高不匹配準確度並不重要時,位元線選擇閘極偏壓以夾持最大電流。
如圖4中所示,AND記憶體單元配置於堆疊(例如400、401)中,其中每一堆疊包含區域堆疊源極線及區域堆疊位元線。區域堆疊源極線及區域堆疊位元線立式地延伸至上覆於堆疊的圖案化導體層中的對應源極線(例如411)及位元線(例如421)。在此實例中,示出堆疊的三個行,但在其他實施例中,每區塊可存在數千個行。
在對應源極線/位元線對(411/421、412/422、413/423)上示出AND單元的立式堆疊的多個行。
源極線411、源極線412、源極線413中的每一者藉由信號控制的對應源極線選擇電晶體SLT(1)、SLT(2)、SLT(3)、… …連接至全域源極線SL(i)。
同樣地,位元線421、位元線422、位元線423中的每一者藉由信號控制的對應位元線選擇電晶體BLT(1)、BLT(2)、BLT(3)、… …連接至全域位元線BL(i)。
每一全域位元線BL(i)耦接至可包含類比/數位轉換器的感測放大器電路450。可存在許多位元線共用單個感測放大器電路的實施例,且共用單個感測放大器的位元線的子集由行解碼電路選擇以用於給定存取循環。感測放大器電路450的輸出應用於匯流排451上,且可包括具有「x」個位元的數位值。舉例而言,匯流排451上的輸出可包括8個位元。在其他實施例中,匯流排451上的輸出可為單一位元。在此實例中,匯流排451上的輸出應用於比較器452,相似性值在比較器452處與臨限值453進行比較。比較器452的輸出可為指示所存取的儲存字在臨限值處是否通過相似性匹配的單一位元。在一些實施例中,可在外部主機中執行比較操作。但此實例將用於比較的邏輯置放成接近於感測放大器電路450。
堆疊陣列中的AND單元的堆疊中的每一者包含平行配置於對應區域堆疊位元線與區域堆疊源極線之間且耦接至每一層級中的對應字元線的多個記憶體單元。在此實例中,AND區塊的給定層級中的字元線中的每一者耦接至單獨受控的單一字元線導體,使得給定層級中的記憶體單元中的每一列可接收不同字元線信號。在一些實施例中,給定區塊中的用於包含大於一個部件的字元線的集合的所有字元線耦接至單一字元線導體,使得給定層級的批次AND區塊中的記憶體單元的所有或所選擇的多個列可接收相同的字元線信號。
在儲存操作模式下,可使用由頁緩衝器支援的程式及抹除操作或耦接至對應區塊的全域位元線的用於在接收輸出資料中施加輸入的電路來將資料寫入至個別記憶體單元。使用頁緩衝器或其他電路,資料圖案可經程式化至AND堆疊的陣列的所選擇列中的AND單元的個別堆疊中,在AND區塊的每一層級處平行耦接至多個位元線。此外,在儲存模式下,頁緩衝器或類似電路系統可用以在每一層級處讀取儲存於AND堆疊的區塊的所選擇列的記憶體單元中的資料。
在儲存模式下,可將資料字的大資料集合儲存於AND區塊中。AND區塊中的AND單元可使用每單元單一位元技術或每單元多個位元技術來實施。
如本文所描述的AND區塊可使用3D AND記憶體技術來實施。在所屬領域中已知的多種替代方案當中,包含立式AND堆疊的AND區塊的一些實例描述於美國專利第US11133329B2號中;所述內容如同在本文中充分闡述一般以引用的方式併入。亦可使用2D AND技術來完成實施方案,其中AND區塊跨多個2D AND陣列在邏輯上定義。
包含圖4中所示出的AND區塊的系統為包含經配置以在TCAM單元的各別集合中保持儲存字(例如,DATA WORD 0、DATA WORD 1、DATA WORD 2、… …)的記憶體單元陣列的電路的實例,TCAM單元的集合中的每一TCAM單元包含陣列的第一記憶體單元及第二記憶體單元以儲存各別儲存字的位元的三元狀態。在此實例中,TCAM單元包含在給定AND堆疊中在第一字元線層級處的一個記憶體單元(例如堆疊401、字元線WL(0-1))及在相同AND堆疊中在第二字元線層級處的第二記憶體單元(例如堆疊401、字元線WL(0-2))。包括多個儲存字的資料集合,此實例中的每一儲存字儲存於由一對源極線選擇電晶體及位元線選擇電晶體(例如SLT(1) /BLT(1))及多對字元線(例如字元線WL(0-1)、字元線WL(0-2))選擇的AND單元堆疊的行中。
因此,DATA WORD 0儲存於由源極線選擇電晶體SLT(1)及位元線選擇電晶體BLT(1)選擇的行中,DATA WORD 1儲存於由源極線選擇電晶體SLT(2)及位元線選擇電晶體BLT(2)選擇的行中,且DATA WORD 2儲存於由源極線選擇電晶體SLT(3)及位元線選擇電晶體BLT(3)選擇的行中。
儲存字中的每一位元可具有三個狀態,包含「0」、「1」以及don’t care狀態「X」,如藉由每一TCAM單元的兩個記憶單元的程式化或抹除狀態所指示。因此,AND堆疊401中的TCAM單元包含字元線WL(0-1)及字元線WL(0-2)上的記憶體單元。AND堆疊400中的TCAM單元包含字元線WL(1-1)及字元線WL(1-2)上的記憶體單元。其他TCAM單元沿著行分佈於字元線及AND單元堆疊的對應對上。
圖4的電路包含用於選擇TCAM單元的多個集合中的TCAM單元的集合的電路,其中在此實例中,TCAM單元的集合包含區塊中的單一位元線/源極線對上的單一行上的TCAM單元。用於選擇TCAM單元的集合的電路可包括回應於來自控制器的位址的位元線/源極線解碼器,如非揮發性記憶體電路中所使用。
圖4的電路包含將輸入搜尋字應用於所選擇的TCAM單元的集合中的各別TCAM單元的電路,所述輸入搜尋字包含輸入搜尋字中的每一搜尋字位元(搜尋位元SB(0)、搜尋字位元/SB(0)及搜尋字位元SB(1)、搜尋字位元/SB(1))的真實狀態及互補狀態或三元狀態。在此實例中,搜尋字暫存器480耦接至字元線WL(1-1)、字元線WL(1-2)、字元線WL(0-1)、字元線WL(0-2),其中沿著行可存在大量字元線。搜尋字暫存器480可耦接至亦回應於定址而在儲存模式中使用的字元線驅動器或包含字元線驅動器。在一些實施例中,搜尋字暫存器的大小可為極大的。在其他實施例中,小於待用於操作中的搜尋字的搜尋字暫存器可在多個字元線群組當中共用以用於儲存部分搜尋字。
對於TCAM搜尋,搜尋字的每一位元由表示真實狀態(true state)、互補狀態(complement state)以及可選的don’t care狀態的兩個位元表示,以分別應用於所選擇TCAM單元的兩個記憶體單元。因此,對於所示出的實施例,藉由分別將搜尋字位元SB(0)及搜尋字位元/SB(0)應用於字元線WL(0-1)及字元線WL(0-2),且藉由分別將搜尋字位元SB(1)及搜尋字位元/SB(1)應用於位元線WL(1-1)及位元線WL(1-2)來應用搜尋位元。
如圖4中所繪示,全域位元線連接至可包含類比至數位轉換器的感測放大器電路450。感測放大器電路450可輸出具有指示TCAM匹配操作的結果的匯流排451上的「x」個位元的多位元值。舉例而言,匯流排451上的輸出可為8個位元。在其他實施例中,匯流排451上的輸出可為單一位元。
感測放大器電路450提供用於組合所選擇的TCAM單元的集合中的TCAM單元的輸出的電路,以產生指示輸入搜尋字匹配儲存於所選擇的TCAM單元的集合中的儲存字的程度的輸出。因此,在此實例中,為了執行輸入搜尋字與所選擇的儲存字的TCAM匹配,藉由將源極線SL(i)及位元線BL(i)設定為操作值且啟用對應於包含所選擇的TCAM單元的集合的所選擇行的源極線及位元線選擇電晶體來選擇儲存字。
匹配的結果包括在AND堆疊中進行的電流,在AND堆疊處藉由搜尋字組與所選擇的儲存字的組合建立不匹配狀態。不匹配狀態引起電流流動的條件描述於下文圖5中。
所選擇AND堆疊的電流由儲存於由源極選擇電晶體/位元線選擇電晶體所選擇的AND區塊的AND堆疊的行中的記憶體單元中的資料及如由搜尋字的真實位元及互補位元所指示的字元線上的偏壓來判定。
如所示出,位元線BL(i)上的電流包含AND單元堆疊400及AND單元堆疊401中與行中的其他堆疊的電流總和。
在由行中的任何TCAM單元未偵測到不匹配的狀態下,位元線BL(i)上的零電流對應於準確匹配。累積於位元線BL(i)上的非零電流對應於多個不匹配狀態。一個不匹配導致一個AND堆疊上的電流,且大於一個不匹配導致一大於一個AND堆疊上的電流。感測放大器電路450的匯流排451上的輸出可為表示不匹配的量值的數位值。在一個實例中,數位值可具有8個位元的寬度「x」。此數位值可與指示搜尋字及儲存字的相似性層級的臨限值進行比較。舉例而言,臨限值可設定在對應於由大於三個不匹配產生的電流的層級處。因此,若給定儲存字產生小於或等於例如三個不匹配的數目,或在使用每一計數表示一個不匹配的8個位元ADC的情況下,臨限值可設定為256個不匹配,則使得給定儲存字可指示為類似於搜尋字。臨限值可按需要根據電路的特定實施方案來設定。一些實施例,臨限值可藉由在包含電路系統的積體電路上的控制暫存器中設定值而針對匹配操作的集合中的每一匹配操作可程式化及可調整。
臨限值可按需要根據電路的特定實施方案來設定。一些實施例,臨限值可藉由在包含電路系統的積體電路上的控制暫存器中設定值來程式化。
圖5示出用於與參考圖4所描述的彼等類似的TCAM單元的九個匹配條件。示出九個TCAM單元,其中儲存於單元中的狀態對應於頂部列中的「1」、中間列中的「0」以及底部列中的「X」。應用於第一行中的單元的字元線對上的搜尋字的搜尋位元為「1」,且第二行為「0」,且第三行中為「X」。
如圖中所標記,當頂部上的記憶體單元用高程式狀態臨限值(Pm)寫入且底部上的記憶體單元用低抹除狀態臨限值(Er)寫入時,表示儲存狀態「1」;當頂部上的記憶體單元用低抹除狀態臨限值(Er)寫入且底部上的記憶體單元用高程式狀態臨限值(Pm)寫入時,表示儲存狀態「0」;且當用高程式狀態臨限值(Pm)寫入頂部上的記憶體單元及底部上的記憶體單元時,表示儲存狀態「X」。發生不匹配狀態,所述不匹配狀態僅在字元線用讀取電壓(「H」)進行偏壓且接收讀取電壓的記憶體單元具有低抹除狀態臨限值的條件中產生電流流動(由圖中的虛線指示)。因此,僅在TCAM單元儲存「1」的第一列中的搜尋「0」行中;及在TCAM單元儲存「0」的第二列中的搜尋「1」行中,發生導致電流的不匹配。所有其他條件指示不產生電流的匹配。
在此文件中參考圖4所描述的3D架構可稱為3D AND裝置。雖然主要描述3D AND,但所揭露的技術不限於此且亦可實施為3D NOR裝置。參見例如Cooke,「快閃記憶體101:引入NAND快閃」EDN,2006年3月20日,圖1,如同在本文中完全闡述一般以引用的方式併入。
圖6為包含實施於積體電路及主機602上的3D AND快閃記憶體裝置608的記憶體系統的簡化圖。記憶體裝置608用以用於記憶體操作及用於TCAM操作,所述記憶體操作包含頁程式、程式、讀取、抹除或其他操作。在各種實施例中,記憶體裝置608可具有單層級單元(single-level cell;SLC),或每單元儲存大於一個位元的多層級單元(例如,MLC、TLC或XLC)。記憶體裝置608可實施於單一積體電路晶片上、多晶片模組上,或用以適用特定需要的多個晶片上。
在此實例中,記憶體裝置608包含用於儲存模式下的記憶體操作的控制器634及包含如本文中所描述的相似性匹配操作的TCAM操作,所述控制器包含例如狀態機及其他邏輯電路的控制電路。此外,在此實例中,控制器634中的控制電路包含定序器,用於控制記憶體裝置608在涉及AND區塊陣列678及裝置內部及外部的資料流操作的大規模TCAM功能中的使用。此外,控制器634可包含或能夠存取儲存裝置的操作參數的控制暫存器,包含儲存設定用於相似性匹配的臨限值的參數的臨限值暫存器635。
記憶體裝置608包含可為使用三維陣列技術實施的3D AND快閃記憶體的AND區塊陣列678。在一些實施例中,AND區塊陣列678包括呈密集3D組態的立式AND堆疊陣列。在其他實施例中,AND區塊陣列678可包括AND單元的二維陣列。AND區塊陣列678可包括多個記憶體區塊平面,包含用以用於儲存操作的一或多個區塊及用以用於如本文中所描述的TCAM操作的一或多個區塊。
字元線解碼器676A經由字元線驅動器電路676B耦接至AND區塊陣列678中的多個字元線677。字元線驅動器電路676B亦耦接至搜尋字緩衝器680,用於在如上文所描述的TCAM操作中將搜尋字應用於字元線。
頁緩衝器電路638藉由位元線驅動器電路648耦接至AND區塊陣列678中的位元線666。在一些實施例中,可包含行解碼器電路以用於將資料自位元線驅動器路由至所選擇位元線。頁緩衝器電路638可儲存定義用於頁程式操作的資料圖案的資料頁。在此實例中,用以用於在TCAM模式中的相似性匹配及用於儲存模式中的資料操作的感測放大器639安置於位元線上,所述感測放大器可包含ADC。感測放大器639可包含限制用於可具有許多不匹配位元的不匹配儲存字的功率消耗的電流限制電路。電流限制可根據特定實施方案的需要而設定。
用於記憶體陣列的位元線可包括全域位元線(bit line;GBL)及區域位元線。位元線通常包括橫穿陣列中的記憶體單元的多個區塊且經由區塊選擇電晶體或記憶體組選擇電晶體連接至區塊中的區域位元線的較高圖案化層中的導體。區域位元線連接至記憶體單元以用於電流流入及流出位元線,所述位元線又連接至位元線驅動器電路648、頁緩衝器電路638以及感測放大器639。同樣地,字元線可包含具有字元線驅動器電路676B中的對應支援電路的全域字元線及區域字元線。
在感測操作中,經由匯流排系統626中的資料線將感測到的資料供應至快取記憶體628,所述資料線又經由資料路徑線616耦接至輸入/輸出電路618。此外,輸入資料在此實例中應用於線616上的快取記憶體628,且應用於匯流排系統626上的頁緩衝器電路638,以用於支援程式操作。
快取記憶體628可以TCAM模式使用以暫時儲存匹配結果,例如通過相似性匹配的儲存字及關於TCAM操作的儲存字個體的後設資料。此外,邏輯電路可連接至快取記憶體628及在快取記憶體628與頁緩衝器638與感測放大器639之間的資料路徑中,以使用儲存於快取記憶體中的TCAM操作的結果來進行邏輯運算。此外,邏輯電路可連接至快取記憶體628及在快取記憶體628與頁緩衝器638與感測放大器639之間的資料路徑中,以使用儲存於快取記憶體中的TCAM操作的結果來進行邏輯運算。
輸入/輸出電路618藉由線614(包含I/O襯墊)連接且為資料、位址以及命令提供通信路徑,其中目的地位於包含此實例中的主機602的記憶體裝置608的外部。輸入/輸出電路618藉由線616將通信路徑提供至快取記憶體628。快取記憶體628與頁緩衝器電路638及感測放大器639進行資料流通信(使用例如匯流排系統626)。
控制器634連接至輸入/輸出電路618,且包含命令解碼器邏輯、位址計數器、狀態機、定時電路以及在支援儲存模式操作及包含如本文中所描述的相似性匹配操作的TCAM操作時控制各種記憶體操作的其他邏輯電路,所述儲存模式操作包含用於AND區塊陣列678的程式、讀取以及抹除操作。
控制電路信號視需要分佈至記憶體裝置中的電路,如箭頭645、箭頭646所繪示,以支援電路的操作。控制器634可包含用於視需要將位址遞送至記憶體裝置608的組件的位址暫存器及類似者,包含遞送至快取記憶體628,且在此圖示中在線644上遞送至頁緩衝器電路638及字元線解碼器676A。
在圖6中所繪示的實例中,控制器634包含控制邏輯電路,所述控制邏輯電路包含實施偏壓配置狀態機的模組,或控制經由區塊664中的一或多個電壓供應而產生或提供的偏壓電壓的施加的機器,例如用於可選擇程式及讀取操作的集合的包含預充電電壓、通道電壓以及如本文中所描述的其他偏壓電壓的讀取、抹除、驗證以及程式電壓至字元線驅動器電路676B及位元線驅動器電路648。偏壓電壓如由箭頭665所表示施加至記憶體裝置608的組件,視需要以用於支援操作。
控制器634亦支援用支援如本文中所描述的TCAM操作的搜尋字或部分搜尋字負載搜尋字緩衝器680。控制器634中的控制邏輯亦可實施電路系統以支援裝置的TCAM模式下的管線或依序操作。舉例而言,以下操作可使用控制器634中的控制邏輯在資料集合儲存於記憶體TCAM平面中之後實施,TCAM操作可包含以下步驟:
1. 載入在搜尋字緩衝器680中的第一搜尋字。
2. 選擇第一儲存字,例如藉由施加選擇電壓至所選擇一或多個區塊中的所選擇位元線選擇電晶體及源極線選擇電晶體來選擇第一儲存字。
3. 將搜尋字應用於用於所選擇的儲存字的字元線。
4. 根據感測放大器的輸出判定所選擇的儲存字是否類似於搜尋字。
5. 若所選擇的儲存字類似於搜尋字,則例如藉由將位址偏移儲存於暫存器或快取記憶體628中的指定區域中而接著記錄例如所選擇的儲存字的位址的後設資料,且將所選擇的儲存字移動至快取記憶體628。在一些實施例中,所選擇的儲存字至快取記憶體的移動可使用後續存取循環使用所儲存位址偏移來實施。
6. 若所選擇的儲存字並不類似於搜尋字,則接著跳過所選擇的儲存字至快取記憶體的傳送。
7. 在步驟5或步驟6之後,控制器判定在程序中是否已達到最後一個儲存字,且在序列中是否未選擇下一儲存字。
若已在程序中達到最後一個儲存字,則演算法結束。
以此方式,經指示為類似於搜尋字的儲存字可經選擇以用於傳送至數位系統以供進一步處理,同時可跳過不類似於搜尋字的儲存字。此可藉由消除用於不類似於搜尋字的儲存字的傳送序列而實質上減少大資料集合的數位處理所需的時間。
如所屬領域中已知的,控制器634可包含使用包含狀態機的專用邏輯電路系統實施的模組。在替代實施例中,控制器634可包含使用通用處理器實施的模組,所述模組可實施於相同積體電路上,所述模組執行電腦程式以控制記憶體裝置608的操作。在其他實施例中,專用邏輯電路系統與通用處理器的組合可用於實施控制器634中的模組。
藉由建立對應於所儲存的電荷量的多個程式層級,又建立記憶體單元臨限電壓Vt,區塊陣列678可包括用以每單元儲存多個位元的浮動閘極記憶體單元或介電電荷收集記憶體單元。技術可與每單元單一位元快閃記憶體一起使用,且與其他每單元多個位元及每單元單一位元的記憶體技術一起使用。在其他實例中,記憶體單元可包括可程式化電阻記憶體單元、鐵電記憶體單元、相變記憶體單元及其他類型的非揮發性及揮發性記憶體單元技術。
在所示出的實例中,主機602耦接至記憶體裝置608上的線614以及未繪示的其他控制終端,例如晶片選擇終端等,且可將命令或指令提供至記憶體裝置608。在一些實例中,主機602可使用共用位址及資料線耦接至使用串列匯流排技術的記憶體裝置。
主機602可包含用於支援如本文中所描述的儲存操作及TCAM操作的資源。在實例系統中,主機602可包括數位處理系統,所述數位處理系統包含與裝置608介接的記憶體控制器,且在一些實例中可為包含DRAM及GPU電路以用於進一步計算的系統。主機602可包括通用處理器、專用處理器、經組態為記憶體控制器的處理器或使用記憶體裝置608的其他處理器。主機602的所有或部分可實施於與記憶體相同的積體電路上。
主機602可包含檔案系統或基於來自應用程式的請求而儲存、擷取以及更新儲存於記憶體中的資料的檔案系統。此外,主機602可包含應用程式、檔案系統、快閃轉譯層程式以及可產生關於儲存於記憶體中的資料的狀態資訊(包含作為此等功能的結果而標記資料無效的資訊)的其他組件。
在上文所描述的實施例中,搜尋字匹配步驟可在單一TCAM存取中執行,因為搜尋字及儲存字可具有等於或小於操作中使用的資料存取路徑的寬度的大小。對於極大搜尋字,可利用NAND架構,所述NAND架構通常用數千位元組寬的頁緩衝器實施且可支援相同寬度的搜尋字緩衝器。在類似於圖4的架構的AND架構中,搜尋字緩衝器安置於字元線路徑上。在此等類型的記憶體中,字元線驅動器通常由多個區塊共用,且因此與所要的搜尋字寬度相比可具有相對窄的寬度。為了支援極大搜尋字,可在陣列的字元線驅動器側上使用驅動以支援寬搜尋字緩衝器的額外字元線。一些情況,即使在NAND架構中,搜尋字亦可比搜尋字緩衝器寬。
替代地,對於寬於搜尋字緩衝器的搜尋字,可以管線化方式執行TCAM存取,在多個部分搜尋字中劃分搜尋字,將用於匹配的所儲存資料字作為多個部分儲存資料字置放於陣列中,且依序執行TCAM存取。圖7A及圖7B示出利用使用部分搜尋字搜尋的TCAM存取來支援部分字搜尋管線的實施例。在圖7A及圖7B中,繪示用於累積搜尋字的多個部分搜尋字的相似性匹配結果以指示搜尋字的相似性的邏輯的實例。
在圖7A中,3D NAND區塊耦接至儲存搜尋字位元SB(0)、搜尋字位元/SB(0)至搜尋字位元SB(n)、搜尋字位元/SB(n)的搜尋字緩衝器101,其中搜尋字位元的數目對應於藉由用於區塊的搜尋字緩衝器101支援的位元線的數目。將儲存字劃分成儲存於陣列的各別層級中的部分資料字PDW(1)、部分資料字PDW(2)、部分資料字PDW(3)、…,示出於圖7A中。
在操作中,部分搜尋字被載入於搜尋字緩衝器中,且與依序耦接至NAND區塊的字元線的對應部分儲存資料字匹配。在序列中的每一存取循環中,感測放大器720基於如上文所論述的電流的總和而產生信號。序列邏輯721、快取或例如繪示於圖式中的快取記憶體L1、快取記憶體L2、快取記憶體L3的快取記憶體的集合用於跨搜尋字的部分搜尋字累積匹配結果直至最後部分搜尋字或直至序列以其他方式結束為止,以在線722上提供輸出,此可提供至控制器中的狀態機或用於處理的其他邏輯。此製程可在準確匹配模式上操作,其中部分搜尋字匹配期間的任何所感測電流層級可指示不匹配,或在相似性匹配模式中操作,其中如上文所論述低於臨限值的感測電流可指示相似性不匹配。
在一些實施例中,共用感測放大器的每一NAND區塊或NAND區塊的每一組合可具有其自身序列邏輯721及快取記憶體L1、快取記憶體L2、快取記憶體L3的集合。
管線TCAM匹配操作可涉及將每一搜尋字劃分成若干搜尋群組,其中每一搜尋群組與搜尋字的一部分一致,稱為部分搜尋字。此外,儲存於記憶體中的儲存字配置於部分中,使得部分資料字經配置以藉由對應部分搜尋字在一個存取循環中存取。若搜尋字的所有部分搜尋字用於存取相同區塊中的所儲存部分字,則演算法可為有效的。一個部分搜尋字可包含若干搜尋位元,各自包括應用於圖7A的實例中的位元線對的真實狀態及互補狀態或三元狀態。因此,使用近感測放大器邏輯以用靈活數目個搜尋位元來實現TCAM的時域執行程序。
根據一個邏輯序列,在操作開始時,可首先將快取記憶體L2及快取記憶體L3設定成「1」值。在多個部分存取循環中完成完整搜尋字之後,可重設快取記憶體L1、快取記憶體L2、快取記憶體L3以供再使用。
在一個實例程序中,製程包含以下步驟:
1. 針對第一部分搜尋字啟用字元線及源極線,且在區塊的位元線上應用第一部分搜尋字。
2. 出於邏輯的圖示的目的,第一部分搜尋字存取的結果假定為匹配,使得不存在被感測到的電流。感測放大器720輸出「0」狀態且將「0」狀態儲存於快取記憶體L1中。
3. 此循環中的快取記憶體L2處於原始「1」狀態。
4. 快取記憶體L3經設定成NOT(L1) AND L2的邏輯結果。在如步驟2中所陳述的匹配的情況下,儲存於快取記憶體L3中的此邏輯的結果為「1」。
5. 用儲存於快取記憶體L3中的結果寫入快取記憶體L2。
6. 針對下一部分搜尋字啟用字元線及源極線,且在位元線上應用第二部分搜尋字。
7. 第二部分字搜尋存取的結果為不匹配,使得存在被感測到的電流。感測放大器720輸出「1」狀態於將「1」狀態儲存於快取記憶體L1中。
8. 快取記憶體L2儲存來自第一存取循環的結果「1」。
9. 快取記憶體L3經設定成NOT(L1) AND L2的邏輯結果。在如步驟7中所陳述的不匹配的情況下,儲存於快取記憶體L3中的此邏輯的結果為「0」。
10. 用儲存於快取記憶體L3中的結果寫入快取記憶體L2。一旦快取記憶體L2設定成「0」,此值便在整個序列中傳播直至最終部分搜尋字。
或者,全搜尋字的部分搜尋字的序列可回應於快取記憶體L2等於「0」而在所述狀態處停止。
因此,部分搜尋字元線管線持續直至偵測到不匹配為止,此時快取記憶體L2經設定為「0」,且指示用於整個搜尋字的不匹配。在任何部分搜尋字導致不匹配的情況下,則接著可停止全搜尋字的序列。當然,任何大小的部分搜尋字可取決於記憶體陣列的特定實施方案而實施。舉例而言,NAND區塊可支援每次存取256個位元線,對應於128個三元位元部分搜尋字。此流程可在準確匹配設定中執行,其中任何部分搜尋字中的不匹配導致整個搜尋字的準確匹配未中。或者,此流程可使用相似性匹配設定來執行,其中用於任何部分搜尋字的相似性匹配未中可導致用於整個搜尋字的相似性匹配未中。
亦在圖7A中所繪示,計數器725可耦接至感測放大器720,可在線726上提供可連接至控制器中的狀態機或用於處理的其他邏輯的計數器輸出。在相似性匹配系統的情況下,感測放大器720可包含例如輸出指示部分搜尋字中的不匹配位元的數目的數位值的類比至數位轉換器。計數器725可用於累積由ADC輸出的不匹配位元的數目,或者跨部分搜尋字存取的序列累積來自每一循環的L3位元。計數器725達到臨限值,接著此可指示全搜尋字的相似性匹配未命中。計數器725可與序列邏輯721及快取記憶體L1、快取記憶體L2、快取記憶體L3組合使用,或可獨立地利用。給定實施例可包含支援部分字搜尋管線的此等邏輯電路中的一或多者。
在圖7B中,3D AND區塊790耦接至儲存搜尋字位元SB(0)、搜尋字位元/SB(0)至搜尋字位元SB(n)、搜尋字位元/SB(n)的搜尋字緩衝器,其中搜尋字位元的數目對應於由用於區塊的字元線驅動器支援的字元線的數目。將儲存字劃分成部分資料字PDW(1)、部分資料字PDW(2)、部分資料字PDW(3)、…,儲存於陣列的各別行中,示出於圖7B中。
在操作中,部分搜尋字依序載入於搜尋字緩衝器中且與對應部分資料字匹配。在序列中的每一存取循環中,感測放大器750基於如上文所論述的電流的總和而產生信號。序列邏輯751、快取或例如圖式中繪示的快取記憶體L1、快取記憶體L2、快取記憶體L3的快取記憶體的集合用於跨搜尋字的部分搜尋字累積匹配結果直至最終部分搜尋字或直至序列以其他方式結束為止,以在線752上提供可提供至控制器中的狀態機或用於處理的其他邏輯的輸出。此製程可在準確匹配模式上操作,其中部分搜尋字匹配期間的任何所感測電流層級可指示不匹配,或在相似性匹配模式中操作,其中如上文所論述低於臨限值的感測電流可指示相似性不匹配。
在一些實施例中,共用感測放大器的每一AND區塊或AND區塊的每一組合可具有其自身序列邏輯751及快取記憶體L1、快取記憶體L2、快取記憶體L3的集合。
由於管線TCAM匹配操作可涉及將每一搜尋字劃分成若干搜尋群組,其中每一搜尋群組與搜尋字的一部分一致,稱為部分搜尋字。此外,儲存於記憶體中的儲存字配置於部分中,使得部分資料字經配置以藉由對應部分搜尋字在一個存取循環中存取。若搜尋字的所有部分搜尋字用於存取相同區塊中的所儲存部分字,則演算法可為有效的。一個部分搜尋字可包含若干搜尋位元,各自包括應用於圖7B的實例中的字元線對的真實狀態及補充狀態或三元狀態。因此,使用近感測放大器邏輯以用靈活數目個搜尋位元來實現TCAM的時域執行程序。
根據與參考圖7A所描述的彼等類似的一個邏輯序列,在操作開始時,可首先將快取記憶體L2及快取記憶體L3設定成「1」值。在多個部分存取循環中完成完整搜尋字之後,可重設快取記憶體L1、快取記憶體L2、快取記憶體L3以供再使用。
在一個實例程序中,製程包含以下步驟:
1. 針對第一部分搜尋字啟用位元線及源極線,且將第一部分搜尋字應用於字元線。
2. 出於邏輯的圖示的目的,第一部分搜尋字存取的結果假定為匹配,使得不存在感測到的電流。感測放大器750輸出「0」狀態且將「0」狀態儲存於快取記憶體L1中。
3. 此循環中的快取記憶體L2處於原始「1」狀態。
4. 快取記憶體L3經設定成NOT(L1)ANDL2的邏輯結果。在如步驟2中所陳述的匹配的情況下,儲存於快取記憶體L3中的此邏輯的結果為「1」。
5. 快取記憶體L2用儲存於快取記憶體L3中的結果寫入。
6. 針對下一部分搜尋字啟用位元線及源極線,且將第二部分字搜尋應用於字元線。
7. 第二部分字搜尋存取的結果為不匹配,使得存在感測到的電流。感測放大器750輸出「1」狀態於將「1」狀態儲存於快取記憶體L1中。
8. 快取記憶體L2儲存來自第一存取循環的結果「1」。
9. 快取記憶體L3經設定成NOT(L1) AND L2的邏輯結果。在如步驟7中所陳述的不匹配的情況下,儲存於快取記憶體L3中的此邏輯的結果為「0」。
10. 用儲存於快取記憶體L3中的結果寫入快取記憶體L2。一旦快取記憶體L2設定成「0」,此值便在整個序列中傳播直至最終部分搜尋字。替代地,全搜尋字的部分搜尋字的序列可回應於快取記憶體L2等於「0」而在所述狀態處停止。
因此,部分搜尋字元線管線持續直至偵測到不匹配為止,此時快取記憶體L2經設定為「0」,且指示用於整個搜尋字的不匹配。舉例而言,參考圖7B的AND架構實施例,若整個搜尋字為8 kB且AND區塊支援每存取循環8個位元,則接著全搜尋字可劃分成等於1000個部分搜尋字的K/8。可以管線化方式利用1000個部分搜尋字。在任何部分搜尋字導致不匹配的情況下,則接著可停止全搜尋字的序列。當然,任何大小的部分搜尋字可取決於記憶體陣列的特定實施方案而實施。舉例而言,AND區塊可支援每存取64個字元線,對應於32個三元位元部分搜尋字。此流程可在準確匹配設定中執行,其中任何部分搜尋字中的不匹配導致整個搜尋字的準確匹配未中。或者,此流程可使用相似性匹配設定來執行,其中任何部分搜尋字的相似性匹配未中可導致整個搜尋字的相似性匹配未中。
亦在圖7B中繪示,計數器755可耦接至感測放大器750,可在線756上提供可連接至控制器中的狀態機或用於處理的其他邏輯的計數器輸出。在相似性匹配系統的情況下,感測放大器750可包含例如輸出指示部分搜尋字中的不匹配位元的數目的數位值的類比至數位轉換器。計數器755可用於累積由ADC輸出的不匹配位元的數目,或者跨部分搜尋字存取的序列累積來自每一循環的L3位元。計數器755達到臨限值,接著此可指示用於全搜尋字的相似性匹配未中。計數器755可與序列邏輯751及快取記憶體L1、快取記憶體L2、快取記憶體L3組合使用,或可獨立地利用。給定實施例可包含支援部分字搜尋管線的此等邏輯電路中的一或多者。
涉及全字或部分字搜尋的TCAM匹配的儲存字個體可以多種方式配置於記憶體區塊中,所述方式可支援對所儲存資料的全字或部分字同時存取以支援TCAM存取。圖8A至圖8C、圖9A至圖9B以及圖10A至圖10C示出搜尋字在3D AND區塊架構中的配置的實例。
圖8A為包含三對字元線層級的AND區塊的3D圖示,包含用於堆疊的一個列,對820、821、對830、831以及對840、841。上覆於區塊,圖示繪示位元線/源極線對,包含位元線870及源極線871、位元線872及源極線873以及位元線874及源極線875。AND堆疊實施於穿過字元線堆疊且包含立式源極線(例如810)及立式位元線(例如811)的記憶體柱中。記憶體單元安置於記憶體柱及字元線的交叉點處。
在圖8A中,示出儲存字的三元位元DA_1至三元位元DA_8的配置。在此配置中,用於三元位元DA_1至三元位元DA_8的TCAM單元包含字元線對820、821與連接至位元線870及源極線871的柱的交叉點處的記憶體單元。此組態中用於TCAM匹配的搜尋位元SB_1至搜尋位元SB_8可應用於字元線對820、821及用於列中的柱中的每一者的對應對。
圖8B示出與圖8A相同的3D AND區塊。在圖8B中,示出用於儲存字的位元DB_1至位元DB_8的TCAM單元的配置。在此配置中,位元DB_1至位元DB_8儲存於字元線對820、821與連接至位元線872及源極線873的柱的交叉點處的記憶體單元中。此組態中用於TCAM匹配的搜尋位元SB_1至搜尋位元SB_8可應用於字元線對820、821及用於列中的柱中的每一者的對應對。
圖8C示出與圖8A及圖8B相同的3D AND區塊。在圖8B中,示出用於儲存字的位元DC_1至位元DC_8的TCAM單元的配置。在此配置中,位元DC_1至位元DC_8儲存於字元線對820、821與連接至位元線874及源極線875的柱的交叉點處的記憶體單元中。此組態中用於TCAM匹配的搜尋位元SB_1至搜尋位元SB_8可應用於字元線對820、821及用於列中的柱中的每一者的對應對。
因此,在如圖8A至圖8C中所繪示的組態中,可經由大資料集合的多個儲存字在與存取循環序列相同的字元線的集合上維持搜尋字。定序可藉由控制用於將所選擇的亦未堆疊連接至用於區塊的感測放大器的位元線選擇電晶體及源極線選擇電晶體來進行。
圖9A及圖9B示出與圖8A相同的3D AND區塊,除了經旋轉以繪示所儲存詞的替代配置之外。在此配置中,圖9A中的單一搜尋位元SB_1應用於單一字元線對820、821上,所述單一字元線對與耦接至位元線、源極線對的一個列中的柱平行地相交。在下一存取循環中,圖9B中的第二搜尋位元SB_2應用於單一字元線對上,此實例中的來自820、821的下一對與耦接至位元線、源極線對的一個列中的柱平行地相交。再次,出於感測針對相似性匹配操作產生的電流層級的總和的目的,位元線及源極線對可在感測放大器處組合。
圖10A、圖10B以及圖10C示出與圖8A相同的3D AND區塊,除了經旋轉以繪示儲存字的另一替代配置之外。在此替代配置中,圖8A至圖8C及圖9A至圖9B的列及行配置可經組合以支援較大經儲存字。
在圖10A中,搜尋字經應用以使得位元SB_1至位元SB_8應用於第一字元線層級及第二字元線層級(例如,對820、821),位元SB_9至位元SB_16應用於第三字元線層級及第四字元線層級(例如,對830、831),且位元SB_17至位元SB_24應用於第五字元線層級及第六字元線層級(例如,對840、841)。對應的儲存字在字元線與耦接至第一位元線/源極線對870、871的柱的交叉點處儲存於記憶體單元中。
在圖10B中,相同搜尋字應用於相同配置中。然而,對應的儲存字在耦接至第二位元線/源極線對872、873的柱中的字元線的交叉點處儲存於記憶體單元中。
在圖10C中,相同搜尋字以相同配置應用。然而,對應的儲存字在耦接至第三位元線/源極線對874、875的柱中的字元線的交叉點處儲存於記憶體單元中。
因此,可在相似性匹配電路中利用廣泛多種資料配置,如適合特定實施、字大小以及裝置中的支援電路的需要。
圖11示出支援相似性匹配操作的非揮發性TCAM電路的另一實施例。在圖11中,示出類似於圖4的AND區塊的AND區塊1100。將AND區塊1100的輸出應用於在線1151上輸出匹配信號的匹配感測電路1150。在此實施例中,匹配感測電路1150可執行準確匹配操作或相似性匹配操作。搜尋字緩衝器1120耦接至區塊1100的字元線。搜尋字緩衝器1120儲存搜尋字的搜尋位元的三元狀態。將搜尋字通配產生器1130耦接至搜尋字緩衝器。通配產生器可選擇個別位元作為搜尋字的通配位元以設定至通配狀態,此類似於所儲存資料字的位元中的don’t care「X」狀態。通配狀態導致遮蔽搜尋字的個別位元中的一些以用於相似性匹配。可隨機地判定搜尋字中的通配位元的位置,或根據適用於特定實施方案的圖案設定。可根據所要實施方案設定所選擇通配位元的數目。舉例而言,搜尋字的搜尋位元的5%與20%之間可設定為通配位元。在一些實施例中,例如藉由將相似性臨限值寫入於積體電路上的臨限值暫存器1131中,設定於給定搜尋字中的通配位元的數目及通配位元的分佈中的一者或兩者為可調整參數集合,其中通配位元的數目決定匹配操作的相似性臨限值。搜尋字至通配狀態的設定部分可導致使用「模糊搜尋」的TCAM匹配操作。使用準確匹配(無不匹配)或相似性匹配(不匹配數目小於大於一的臨限值)匹配未設定為搜尋字的通配的搜尋位元的儲存字可標記為類似於搜尋字且傳遞至主機系統以供進一步處理。此外,可藉由將所儲存資料字的位元設定「don’t care」狀態來實施「模糊」(fuzzy)搜尋。另外,可使用將搜尋字的部分設定為通配狀態與將所儲存資料字的部分設定為「don’t care」狀態來實施「模糊」搜尋。
圖11示出使用AND架構記憶體結構的TCAM電路。然而,在輸入搜尋字中使用通配位元來獲得「模糊」搜尋、相似性匹配以及兩者的技術可應用於NAND架構記憶體結構中,如同圖1,或如適用於特定實施例的其他類型的TCAM組態的記憶體結構中。
雖然本發明參考上文詳述的較佳實施例及實例來揭露,但應瞭解,此等實例意欲為說明性而非限制性意義。經考慮,所屬技術領域具有通常知識者將易於想到各種修改及組合,所述修改及組合將在本發明的精神及以下申請專利範圍的範圍內。
101:搜尋字暫存器
110:TCAM單元
120、639、750:感測放大器
121、305、330、451:匯流排
122、452:比較器
123、453:臨限值
150:NAND字串
151:NAND字串
300:積體電路裝置
302:外部主機
305、335、353、614、644、722、726、752、756、1151:線
310、634:控制器
311、635:臨限值暫存器
320、664:區塊
340:字元線驅動器
345、677:字元線
350:感測電路
355、411、412、413、871、873、875:源極線
360:NAND區塊陣列
365、421、422、423、666、870、872、874:位元線
370:電路
375:頁緩衝器
390、628、L1、L2、L3:快取記憶體
391、618:輸入/輸出電路
400、401:堆疊
450:感測放大器電路
480:搜尋字暫存器
602:主機
608:記憶體裝置
616:資料路徑線
626:匯流排系統
638:頁緩衝器電路
645、646、665:箭頭
648:位元線驅動器電路
676A:字元線解碼器
676B:字元線驅動器電路
678:AND區塊陣列
680、1120:搜尋字緩衝器
721、751:序列邏輯
725、755:計數器
790:3D AND區塊
810:立式源極線
811:立式位元線
820:第一字元線層級
821:第二字元線層級
830:第三字元線層級
831:第四字元線層級
840:第五字元線層級
841:第六字元線層級
1100:AND區塊
1130:搜尋字通配產生器
1131:臨限值暫存器
1150:匹配感測電路
BL(0)、BL(1)、BL(i):位元線
BLT(1)、BLT(2)、BLT(3):位元線選擇電晶體
DA_1至DA_8:三元位元
DB_1至DB_8、DC_1至DC_8、SB_1至SB_8、SB_9至SB_16、SB_17至SB_24:位元
GSL1:接地選擇線
PDW(1)、PDW(2)、PDW(3):部分資料字
SB(0)、/SB(0)、SB(1)、/SB(1)、SB(n)、/SB(n):搜尋字位元
SL1:源極線
SL(i):全域源極線
SLT(1)、SLT(2)、SLT(3):源極選擇線電晶體
SSL(i)、SSL(j)、SSL(S):字串選擇線
Vpass:通過電壓
Vread:讀取電壓
WL0-WL31、WL(0-1)、WL(0-2)、WL(1-1)、WL(1-2):字元線
圖1為經組態為具有相似性匹配的TCAM的3D非揮發性NAND架構記憶體的簡化電路圖。
圖2為用於與圖1的電路類似的電路中的NAND架構TCAM單元的九個操作條件的圖示。
圖3為包括經組態為具有相似性匹配的TCAM的NAND架構記憶體的積體電路的簡化方塊圖。
圖4為經組態為具有相似性匹配的TCAM的3D非揮發性AND架構記憶體的簡化電路圖。
圖5為用於與圖4的電路相似的電路中的AND架構TCAM單元的九個操作條件的圖示。
圖6示出經組態為具有相似性匹配的TCAM的3D非揮發性AND架構記憶體的簡化方塊圖。
圖7A為TCAM組態的NAND架構記憶體的簡化圖,其中邏輯使用長搜尋字的部分搜尋字支援多個存取循環。
圖7B為TCAM組態的AND架構記憶體的簡化圖,其中邏輯使用長搜尋字的部分搜尋字支援多個存取循環。
圖8A、圖8B、圖8C示出用於儲存於在一個層級及一個位元線以及源極線對中具有多個字元線對的一個層級的TCAM單元中的依序資料區段的3D AND架構結構,其中藉由遍歷位元線及源極線對來選擇依序資料區段。
圖9A至圖9B示出用於儲存於具有一個字元線對及每區段多個位元線/源極線對的一個層級的TCAM單元中的依序資料區段的3D AND架構結構,其中藉由在一個層級中遍歷字元線對來選擇依序資料區段。
圖10A、圖10B、圖10C示出用於儲存於在多層級中的每一者及一個位元線以及源極線對中具有多個字元線對的多層級的TCAM單元中的依序資料區段的3D AND架構結構,其中藉由遍歷位元線及源極線對來選擇依序資料區段。
圖11為具有用於將通配位元應用於輸入搜尋字以用於相似性匹配的邏輯的TCAM組態記憶體的簡化圖。
400、401:堆疊
411、412、413:源極線
421、422、423:位元線
450:感測放大器電路
451:匯流排
452:比較器
453:臨限值
480:搜尋字暫存器
BL(i):位元線
BLT(1)、BLT(2)、BLT(3):位元線選擇電晶體
SB(0)、/SB(0)、SB(1)、/SB(1):搜尋字位元
SL(i):全域源極線
SLT(1)、SLT(2)、SLT(3):源極選擇線電晶體
WL(0-1)、WL(0-2)、WL(1-1)、WL(1-2):字元線
Claims (23)
- 一種記憶體,包括: 記憶體陣列,經配置以將儲存字保持在三元內容可定址記憶體(ternary content addressable memory,TCAM)單元的各別集合中,所述TCAM單元的每一者用以儲存所述儲存字的位元的三元狀態; 用於選擇所述TCAM單元的集合中之一者的電路; 用於將輸入搜尋字應用於所述所選擇的TCAM單元的集合中的所述TCAM單元的電路;以及 用於產生指示所述所選擇的TCAM單元的集合中的所述儲存字與所述輸入搜尋字的相似性的輸出的電路。
- 如請求項1所述的記憶體,其中所述記憶體陣列包括記憶體單元的陣列,且所述TCAM單元的集合中的所述TCAM單元的每一者包含所述陣列的第一記憶體單元及第二記憶體單元以儲存所述儲存字的位元的三元狀態。
- 如請求項2所述的記憶體,其中所述記憶體單元的所述陣列包含耦接至所述陣列中的所述記憶體單元的各別行的位元線,及耦接至所述陣列中的所述記憶體單元的各別列的字元線,且所述TCAM單元的集合中的一者中的所述TCAM單元中的所述第一記憶體單元及所述第二記憶體單元安置於所述記憶體單元的所述列中的一者中。
- 如請求項3所述的記憶體,其中用於選擇所述TCAM單元的集合之一者的所述電路將信號施加至所述記憶體陣列的所述字元線。
- 如請求項3所述的記憶體,其中所述TCAM單元的集合中的一者中的所述TCAM單元中的所述第一記憶體單元及所述第二記憶體單元安置於所述陣列中的記憶體單元的第一行及第二行的對應對中,耦接至所述多個位元線中的第一位元線及第二位元線的各別對,其中用於應用所述輸入搜尋字的所述電路將信號施加至所述位元線。
- 如請求項5所述的記憶體,其中所述記憶體單元的所述行配置於NAND字串中,且用於產生指示相似性的輸出的所述電路將在所述所選擇TCAM單元的集合中的所述TCAM單元的所述記憶體單元的第一行及第二行的多對的輸出組合。
- 如請求項2所述的記憶體,其中所述記憶體單元的所述陣列包含耦接至所述陣列中的記憶體單元的堆疊的各別行的多個位元線,及耦接至所述陣列中的記憶體單元的堆疊的各別列中的記憶體單元的多個字元線,且所述TCAM單元的集合中的一者中的所述TCAM單元中的所述第一記憶體單元及所述第二記憶體單元安置於所述記憶體單元的所述堆疊的所述各別列中的一者的第一層級及第二層級中。
- 如請求項7所述的記憶體,其中用於選擇所述TCAM單元的集合的所述電路將信號施加至所述多個位元線。
- 如請求項7所述的記憶體,其中所述TCAM單元的集合中的一者中的所述TCAM單元中的所述第一記憶體單元及所述第二記憶體單元安置於所述陣列中的記憶體單元的第一層級及第二層級的對應對中,耦接至所述多個字元線中的第一字元線與第二字元線的各別對,其中用於應用所述輸入搜尋字的所述電路將信號施加至所述多個字元線。
- 如請求項7所述的記憶體,其中所述記憶體單元的所述堆疊的所述行平行配置在所述多個位元線中的對應位元線與對應源極線之間,且所述用於產生指示相似性的輸出的電路將所述TCAM單元的所述所選擇的TCAM單元的集合中的多個TCAM單元的所述記憶體單元的堆疊的所述行的輸出組合。
- 如請求項1所述的記憶體,其中用於產生指示相似性的輸出的所述電路包含類比至數位轉換器,且所述輸出基於所述所選擇TCAM單元的集合中的所述儲存字中的位元與所述輸入搜尋字的不匹配數目而為多位元數位信號。
- 如請求項1所述的記憶體,其中當所述所選擇TCAM單元的集合中的所述儲存字中的位元與所述輸入搜尋字的不匹配數目低於臨限值時,用於產生指示相似性的輸出的所述電路產生指示相似性的信號,其中所述臨限值大於一。
- 如請求項1所述的記憶體,包含用於用通配狀態置換所述輸入搜尋字上的一或多個位元的電路。
- 如請求項1所述的記憶體,包含用於用通配狀態置換所述輸入搜尋字上的一或多個位元的電路,且其中當偵測到所述所選擇的TCAM單元的集合中的所述儲存字中的至少一個位元與所述輸入搜尋字不匹配時,用於產生指示相似性的輸出的所述電路產生指示相似性的信號。
- 如請求項1所述的記憶體,包含用於儲存參數的暫存器,所述參數設定針對用於產生指示相似性的輸出的所述電路的相似性臨限值。
- 如請求項1所述的記憶體,其中所述輸入搜尋字包含多個部分搜尋字,且用於產生指示相似性的輸出的所述電路包含用於累積多個部分搜尋字的相似性匹配結果以指示所述搜尋字的相似性的邏輯。
- 一種記憶體,包括: 記憶體單元陣列,經配置以將儲存字保持在TCAM單元的各別集合中,所述TCAM單元的每一者包含用以儲存儲存字的位元的三元狀態的所述陣列的第一記憶體單元及第二記憶體單元; 用於選擇所述TCAM單元的集合中之一者的電路; 用於將輸入搜尋字應用於所述所選擇的TCAM單元的集合中的所述TCAM單元的電路;以及 用於產生指示所述所選擇的TCAM單元的集合中的儲存字與所述輸入搜尋字的相似性的輸出的電路。
- 如請求項17所述的記憶體,其中所述記憶體陣列包括立式NAND字串的陣列。
- 如請求項17所述的記憶體,其中所述記憶體陣列包括AND記憶體單元的堆疊的陣列。
- 如請求項17所述的記憶體,其中當所述所選擇的TCAM單元的集合中的所述儲存字中的位元與所述輸入搜尋字的不匹配數目低於臨限值時,用於產生指示相似性的輸出的所述電路產生指示相似性的信號,其中所述臨限值大於一。
- 如請求項17所述的記憶體,包含用於用通配狀態置換所述輸入搜尋字上的一或多個位元的電路,且其中當偵測到所述所選擇的TCAM單元的集合中的所述儲存字中的至少一個位元與所述輸入搜尋字不匹配時,用於產生指示相似性的輸出的所述電路產生指示相似性的信號。
- 如請求項17所述的記憶體,包含用於儲存參數的暫存器,所述參數設定針對用於產生指示相似性的輸出的所述電路的相似性臨限值。
- 如請求項17所述的記憶體,其中所述輸入搜尋字包含多個部分搜尋字,且用於產生指示相似性的輸出的所述電路包含用於累積多個部分搜尋字的相似性匹配結果以指示所述搜尋字的相似性的邏輯。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/866,958 | 2022-07-18 | ||
US17/866,958 US20240021224A1 (en) | 2022-07-18 | 2022-07-18 | Content addressable memory for large search words |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202405813A true TW202405813A (zh) | 2024-02-01 |
TWI836661B TWI836661B (zh) | 2024-03-21 |
Family
ID=
Also Published As
Publication number | Publication date |
---|---|
JP7344361B1 (ja) | 2023-09-13 |
CN117457045A (zh) | 2024-01-26 |
JP2024012251A (ja) | 2024-01-30 |
KR20240011065A (ko) | 2024-01-25 |
US20240021224A1 (en) | 2024-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200311512A1 (en) | Realization of binary neural networks in nand memory arrays | |
JP7041654B2 (ja) | メモリ内積和演算のためのnandブロックアーキテクチャ | |
US11328204B2 (en) | Realization of binary neural networks in NAND memory arrays | |
JP5038292B2 (ja) | 不揮発性メモリのキャッシュ動作におけるデータラッチの使用 | |
JP4504138B2 (ja) | 記憶システム及びそのデータコピー方法 | |
WO2021076182A1 (en) | Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference | |
CN111009278B (zh) | 用于确定存储器单元的数据状态的设备及方法 | |
TWI497502B (zh) | 堆疊式記憶體陣列裝置之感測操作 | |
JP2003317487A (ja) | 半導体記憶装置 | |
CN109215712B (zh) | 存储器装置及其编程方法 | |
US20230022531A1 (en) | Methods and apparatus for nand flash memory | |
US20210191654A1 (en) | Memory system and memory controller | |
US10832789B1 (en) | System countermeasure for read operation during TLC program suspend causing ADL data reset with XDL data | |
TWI836661B (zh) | 記憶體 | |
JP7344361B1 (ja) | 大きな検索ワード用連想メモリ | |
US20180342303A1 (en) | Nonconsecutive sensing of multilevel memory cells | |
US11978515B2 (en) | Semiconductor memory device and reading method | |
US11417393B2 (en) | Two-stage programming using variable step voltage (DVPGM) for non-volatile memory structures | |
TWI704569B (zh) | 積體電路及其運算方法 | |
JP2020095766A (ja) | 半導体記憶装置 | |
US11791840B1 (en) | Hard decision decoding of non-volatile memory using machine learning | |
US20240062833A1 (en) | Page buffer counting for in-memory search | |
US11488669B2 (en) | Three-valued programming mechanism for non-volatile memory structures | |
US11475954B2 (en) | Fast interval read setup for 3D NAND flash | |
CN111797030B (zh) | 包含搜索逻辑的存储器和用于在存储器内执行搜索的方法 |