TW202340978A - 積體電路及執行於其之方法 - Google Patents
積體電路及執行於其之方法 Download PDFInfo
- Publication number
- TW202340978A TW202340978A TW111118409A TW111118409A TW202340978A TW 202340978 A TW202340978 A TW 202340978A TW 111118409 A TW111118409 A TW 111118409A TW 111118409 A TW111118409 A TW 111118409A TW 202340978 A TW202340978 A TW 202340978A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- page
- integrated circuit
- buffer
- analysis
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 47
- 239000000872 buffer Substances 0.000 claims abstract description 213
- 230000015654 memory Effects 0.000 claims abstract description 111
- 238000007405 data analysis Methods 0.000 claims abstract description 79
- 230000006870 function Effects 0.000 claims abstract description 51
- 238000004458 analytical method Methods 0.000 claims abstract description 47
- 230000004044 response Effects 0.000 claims description 18
- 238000012546 transfer Methods 0.000 claims description 18
- 210000004027 cell Anatomy 0.000 claims 16
- 210000000352 storage cell Anatomy 0.000 claims 1
- 230000008859 change Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- HCUOEKSZWPGJIM-IYNMRSRQSA-N (e,2z)-2-hydroxyimino-6-methoxy-4-methyl-5-nitrohex-3-enamide Chemical compound COCC([N+]([O-])=O)\C(C)=C\C(=N\O)\C(N)=O HCUOEKSZWPGJIM-IYNMRSRQSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 229910000314 transition metal oxide Inorganic materials 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification 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/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
- 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
- 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/1057—Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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
-
- 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/10—Programming or data input circuits
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- 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/32—Timing circuits
-
- 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
-
- 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/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/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5643—Multilevel memory comprising cache storage devices
-
- 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/1087—Data input latches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
- Credit Cards Or The Like (AREA)
- Burglar Alarm Systems (AREA)
Abstract
積體電路包括具有用於平行存取記憶體陣列資料之資料線的數個記憶體陣列、輸入輸出介面、位於記憶體陣列與輸入輸出介面之間的數個資料路徑電路、數個運算電路以及資料分析電路。資料路徑電路包括連接記憶體陣列的各資料線之數個緩衝胞,每一緩衝胞包括數個儲存元件。運算電路於緩衝胞中以連接各緩衝胞,並執行各緩衝胞的儲存元件中的資料的功能,且平行配置以產生包括緩衝胞的操作結果之結果資料頁。資料分析電路連接資料路徑電路以執行結果資料頁的功能以產生分析結果。
Description
本揭露係涉及記憶體內運算(compute in memory,CIM)裝置相關的技術,其實施例包括具有耦接頁緩衝器之運算電路的高密度NAND快閃記憶體。
在一些CIM裝置中,係使用記憶體陣列和輸入輸出介面之間的資料路徑(data path)上的電路來執行邏輯操作。 CIM裝置可包括積體電路,積體電路包括單一晶片上的記憶體陣列和輸入輸出介面,並且在一些實施例中,積體電路橫跨多晶片封裝中的一個以上的晶片。此種配置可使邏輯操作的資料路徑非常短,自而以低能源成本實現非常快速的操作。
茲期望對於CIM裝置和具有類似資料路徑的其他裝置提供更多的性能和改進的效率。
提出一種包括記憶體陣列的積體電路,此記憶體陣列包括用於平行存取(parallel access)記憶體陣列資料之多條資料線。此外,積體電路包括輸入輸出介面。多個資料路徑電路位於記憶體陣列和輸入輸出介面之間。資料路徑電路包括多個連接記憶體陣列的各資料線之緩衝胞(buffer cell),每一緩衝胞包括多個儲存元件(storage element),例如可提供於頁緩衝器(page buffer)中。多個運算電路連接多個緩衝胞中的各緩衝胞。運算電路執行各緩衝胞的儲存元件中的資料的功能,並可平行配置以產生包括多個緩衝胞的操作結果(operation result)的結果資料頁(results data page)。結果資料頁可被儲存例如在多個緩衝胞的儲存元件中,或者被移動至快取記憶體(cache memory)。
多個運算電路執行的多個緩衝胞的儲存元件中的資料的功能為對在本揭露描述的技術實施例中的頁緩衝器的各緩衝胞的二個以上的儲存元件中的資料頁或部分頁面進行逐位元邏輯操作(bit-by-bit logic operation)。
其中,資料分析電路連接資料路徑電路以執行結果資料頁的功能以產生分析結果。可提供暫存器(register)來儲存可經由輸入輸出介面存取之分析結果。在本揭露描述的實施例中,資料分析電路連接頁緩衝器中的多個緩衝胞,或資料分析電路連接於快取記憶體。在一些實施例中,資料路徑中可包括一個以上的資料分析電路。
其中,運算電路包括多個用於執行一組功能的電路,且運算電路可響應設定資料(set-up data)進行配置以自該組功能中選擇該些儲存元件中的資料的功能。
此外,其中運算電路包括用於執行一組功能的電路,且運算電路可響應設定資料進行配置以對儲存元件中的資料依序選擇要執行的多個功能。
其中,在分析電路中執行的結果資料頁的功能包括對結果資料頁中指示邏輯「1」或「0」的位進行計數。此外,資料分析電路可包括用於將所得計數與作為閾值應用的基準(criterion)進行比較的一電路。
在一些實施例中,結果資料頁包括多個區段(segment),且在資料分析電路中執行的結果資料頁的功能包括將每個區段的結果計數與作為閾值使用的基準進行比較。
提出一種積體電路,包括控制器和指令解碼器,其中控制器響應對運算電路的邏輯操作進行設定之指令以及響應對分析基準(analysis criterion)進行調整之指令,例如使用暫存器進行讀取和寫入之操作以儲存設定資料。此外,更提出包括控制器和指令解碼器的積體電路,其中此控制器響應設定參數以啟用或禁用分析電路以產生分析結果以支援CIM操作之指令。
提出一種積體電路,其包括控制器和指令解碼器,其中此控制器響應以將來自輸入輸出介面的資料儲存於多個緩衝胞的被選擇的儲存元件中以準備執行CIM操作之指令。
提出一種執行於具有記憶體和頁緩衝器的積體電路之方法。此方法包括將資料儲存於頁緩衝器中作為運算的輸入;自記憶體載入資料作為運算的輸入,並在頁緩衝器中執行運算以提供操作結果。此外,此方法可包括應用分析基準於操作結果以產生分析結果,並儲存分析結果於可存取記憶體(accessible memory)中,例如為控制暫存器(control register)。此外,此方法可包括傳輸操作結果至快取(cache)以用於資料輸出。此方法可包括設定操作類型(operation type)以選擇用於頁緩衝器中的運算的操作,例如透過寫入操作識別符(operation identifier)於控制暫存器。此外,此方法可包括對操作結果設定分析基準。
提出一種執行於具有記憶體和頁緩衝器的積體電路之方法,此方法包括設定CIM運算操作,此CIM運算操作包括對儲存於頁緩衝器的緩衝胞中的資料依序執行超過一個的邏輯操作。
提出一種執行於具有記憶體和頁緩衝器的積體電路之方法,此方法包括提供用以執行超過一個的邏輯操作及用以響應設定資料(例如為控制暫存器中的資料)以選擇待使用的邏輯操作之運算電路。控制暫存器可包括指示(indicating)邏輯操作的類型、指示是否存在超過一個依序執行的操作、以及指示用於邏輯操作的輸入資料的來源等之設定資料。
總體來說,本揭露提出一種用於提高CIM裝置的效率和性能之技術。
可透過參閱所附圖式、實施方式和隨後的申請專利範圍之內容而得知所提出之技術的其他方面和優點。
參照圖式第1~14圖提供本揭露實施例之詳細說明。
第1圖為根據本揭露所述之支援可編程CIM操作和資料分析之積體電路記憶體裝置之簡化晶片方框圖。積體電路記憶體裝置100包括在單一積體電路基板上的記憶體陣列160,例如NAND快閃記憶體陣列。如本揭露所述之積體電路記憶體裝置亦可介由多晶片模組(multichip module)、堆疊晶片(stacked chip)和其他配置來實現。亦可使用其他類型的記憶體陣列,包括 NOR 快閃記憶體、相變化記憶體(例如 PCRAM)、其他可編程電阻記憶體 RRAM(例如過渡金屬氧化物記憶體)、鐵電隨機存取記憶體 (FeRAM)、磁性隨機存取記憶體(MRAM)、其他類型的非揮發性記憶體、DRAM記憶體、SRAM記憶體和其他類型的揮發性記憶體。
提供輸入輸出介面190於裝置上以用於透過輸入輸出埠 195(如為輸入輸出引腳)與主機101進行資料傳輸。在一些實施例中,輸入輸出埠 195可連接晶片上主機電路(on-chip host circuit),如為通用處理器(general purpose processor)或專用應用電路(special purpose application circuitry)、或提供記憶體陣列160所支援的晶片上系統的功能之模組的組合。
在一實施例中,輸入輸出介面190為一組包括透過輸入輸出埠195進行指令、位址和資料之通訊的串列介面。串列介面可相容於或符合串列周邊介面(SPI)之匯流排規範,其中指令通道共享位址和資料使用的輸入輸出引腳。舉例來說,積體電路記憶體裝置100可包括用於接收和發送SPI匯流排訊號之使用引腳的輸入輸出埠。一引腳可連接承載一串列輸入資料/位址訊號之輸入資料線,亦可用於指令。另一引腳或多個其他引腳可連接輸出資料線或承載一串列輸出資料訊號之輸出資料線。再一引腳可連接承載一串列時脈訊號之時脈線。又一引腳可連接承載一晶片致能或晶片選擇訊號之控制線。
亦可使用其他類型的介面,包括平行介面和其他類型的串列介面。特定的積體電路記憶體裝置100上的輸入輸出埠195可用以提供具有輸入輸出資料寬度之輸出資料。在一些實施例中,輸入輸出資料寬度可為1、4、8、16、32位元或平行每一介面時脈循環(interface clock cycle)之更多位元。
輸入輸出介面190和記憶體陣列160之間的資料路徑電路包括頁緩衝器172、CIM電路174、資料分析電路176和快取178。頁緩衝器耦接資料線165用於平行存取記憶體陣列160中的記憶體資料頁。快取178透過匯流排185耦接輸入輸出介面190,匯流排185典型支援資料的儲存元件之高速傳輸,例如來自快取的位元組(bytes)或字(word)。在一些實施例中,頁緩衝器172中的儲存元件可直接被輸入輸出介面190存取。
記憶體裝置可包括一組控制暫存器,用於儲存狀態訊息(status information)、設定訊息(setup information)和支援記憶體操作之其他參數,透過輸入輸出介面190或裝置上的控制邏輯110可存取此些控制暫存器以進行讀取和寫入操作。如第1圖1所示,此組控制暫存器可包括分析結果暫存器112以用於儲存資料分析電路176的輸出資料和設定資料及儲存CIM電路174的設定資料。
積體電路記憶體裝置100上之具有指令解碼器108的控制邏輯110包括響應諸如來自輸入輸出介面190於線路(line)191上所接收的指令之邏輯(如為一個以上的狀態器(state machine)),以執行記憶體操作,包括讀取、編程、抹除、暫存器讀取、暫存器寫入等。控制邏輯110向裝置上的電路輸出和接收由圖中箭頭表示的控制訊號。此外,控制邏輯110在匯流排130上提供位址。在匯流排130上提供的位址可包括例如控制邏輯110中的位址計數器(如為次序位址(sequential address))或所接收的指令中承載的位址之輸出。此外,位址可包括用於存取快取178之快取位址以及且如本揭露所述之用於存取頁緩衝器172中的儲存元件之位址。
示意性地位於方框圖中的位址解碼器140係耦接沿記憶體陣列中的列(row)的多個字線145、耦接頁緩衝器172及耦接快取178。頁緩衝器172耦接多個沿記憶體陣列160中的行(column)佈置的資料線165以頁面存取(page access)陣列16t0,包括自記憶體陣列160讀取資料和寫入資料至記憶體陣列160之操作。
頁緩衝器172可包括耦接各資料線的多個緩衝胞以頁面存取記憶體陣列160。每一緩衝胞可包括多個儲存元件,例如為如本揭露所述之支援每個記憶胞(memory cell)之多位元頁面讀取和頁面寫入及支援跨頁面和跨頁面的區段之逐位元CIM操作的儲存元件。
位址解碼器140可經由將資料線各別連接頁緩衝器172之方式選擇及耦接陣列160中的特定記憶胞。頁緩衝器172可儲存被平行寫入至此些特定記憶胞或自此些特定記憶胞讀取之資料。頁緩衝器172可具有包括數千位元之頁面的頁面寬,例如16K位元或32K位元,或甚至更多,其中額外的位元包括相關聯的後設資料(metadata),如為ECC碼。
在第1圖所示的實施例中,控制邏輯 110使用偏壓配置狀態器控制透過方塊 120 中一個以上的供應源產生或提供之偏壓配置供應電壓之應用,例如讀取、編程和抹除電壓,包括頁面寫入以將資料自頁緩衝器傳輸至記憶體陣列、以及頁面讀取以將資料自記憶體陣列中的頁面傳輸至頁緩衝器。
控制邏輯110和指令解碼器108構成一控制器,其可藉由使用包括狀態器和支援邏輯之專用邏輯電路來實現。在其他實施例中,控制邏輯包括通用處理器,其可在相同積體電路上實現,此積體電路執行運算程式以控制裝置的操作。在另一些實施例中,控制邏輯可藉由專用邏輯電路與通用處理器之組合來實現。
控制器的指令解碼器108和控制邏輯110係用以響應如本揭露所述之支援CIM操作和資料分析的輸入指令來執行程序(procedure),如下文將更詳細說明。
在實施例中,主機101耦接積體電路記憶體裝置100上的輸入輸出埠195以及未示出的其他控制端子(如為晶片選擇端子等),且主機101可提供資料、指令或向積體電路記憶體裝置100發送指令。在一些實施例中,主機101可包括通用處理器、專用處理器、配置為記憶體控制器之處理器或使用積體電路記憶體裝置100之其他處理器。全部或部分的主機101可在與記憶體相同的積體電路上來實現。主機可執行利用CIM性能的運算程式及支援在積體電路記憶體裝置100上執行的資料分析,以降低能耗並提升操作速度。主機101可發出指令序列以執行此些程序、讀取運算、及分析結果,並選擇後續操作以響應。
第2圖為記憶體陣列201(如為第1圖的記憶體陣列160)和介面205(如為第1圖的輸入輸出介面190)之間的資料路徑電路的簡化示意圖。資料路徑電路包括多階(multilevel)頁緩衝器202、位元計數電路203和快取204。多階頁緩衝器202如垂直線所示被劃分為多個多階頁緩衝器/CIM單元。每個多階頁緩衝器/CIM單元可包括多個緩衝胞。舉例來說,多階頁緩衝器/CIM單元可包括16行16列之緩衝胞的陣列,平行耦接記憶體陣列201的256條資料線。
每個緩衝胞(參照如第4圖)可包括多個儲存元件和可由操作碼(opcode)212配置的邏輯單元,操作碼212可儲存於控制暫存器中或以其他方式供以設定操作以使用儲存元件中的資料執行選擇的邏輯功能,並以產生輸出及儲存結果。此結果可被儲存回緩衝胞的多個儲存元件的其中一者,或者在某些情況下儲存於諸如快取204的其他記憶體中。來自多個緩衝胞的結果之組合提供包括多個緩衝胞的操作結果的一結果資料頁。在一些實施例中,結果資料頁包括用於整個頁面操作的頁緩衝器中所有頁緩衝器/CIM單元中的邏輯操作之操作結果。在其他實施例中,結果資料頁包括頁緩衝器/CIM單元的區段中的邏輯操作之操作結果,以對頁面的一部分(如為如下所述之一區段或另一尺寸部分)進行操作。
位元計數電路203或其他連接資料路徑電路之資料分析電路對頁緩衝器中的邏輯操作之操作結果(結果資料頁)進行分析。在實施例中,分析為對結果資料頁中「1」或「0」位元進行位元計數;將所得計數與基準213進行比較,並在控制暫存器214中輸出通過(pass)/失敗(fail)結果。基準213可儲存於控制暫存器中或以其他方式提供以設定分析操作。實施例中的位元計數電路203可在記憶體陣列201的編程或抹除操作期間另外用作為失敗位元檢測器(failed bit detector)。在一些實施例中,位元計數電路203可用以在結果資料頁中對位元執行額外邏輯操作,例如運算相似度或接近度之分數的操作及將分數與閾值等基準進行比較的操作。
控制暫存器214中的通過/失敗結果可在不同實施例中包括指示結果資料頁整體而言是否通過基準的一參數,或在結果資料頁被劃分為區段的情況下包括指示結果資料頁的哪些區段通過基準的一參數,或包括整頁面和逐區段的分析結果。
快取204耦接多階頁緩衝器202以例如在緩衝胞中選擇的儲存元件和快取204之間進行高速資料傳輸。快取204可配置為多個快取單元(cache unit),每個快取單元對應於一個如圖中的垂直分區所示之多階頁緩衝器/CIM單元。在一實施例中,包括16行16列之緩衝胞陣列的多階頁緩衝器/CIM單元平行耦接記憶體陣列201的256條資料線,每個快取單元同樣可包括16行16列之快取胞(cache cell)陣列,每個快取胞對應一個緩衝胞。16×16的快取單元的每一行(column)可儲存自對應的 16 個緩衝胞傳輸的一16 位元字。資料可以相對高速地平行移動於快取胞和對應的緩衝胞中選擇的儲存元件之間,例如以快取時脈(cache clock)220之速度。
快取 204 由匯流排 210 耦接以與介面 205 進行讀取和寫入之傳輸。在一實施例中,匯流排210 和介面 205 係用以自對應的多個快取胞中以快取時脈之速度傳輸多個 16 位元字(如為2、4 或8個字)。介面205係用以根據輸入輸出埠之配置以線路221上的介面時脈(interface clock)之介面時派速度(interface clock rate)在輸入輸出埠222上輸出資料,此介面時派速度可不同於快取時脈的時派速度,係依據輸入輸出埠222之配置。
第3圖為記憶體陣列301(例如第1圖的記憶體陣列160)和介面305(例如第1圖的輸入輸出介面190)之間的資料路徑電路的替代配置之簡化示意圖。資料路徑電路包括多階頁緩衝器302、失敗位元檢測電路303和快取304。多階頁緩衝器302如垂直線所示被劃分為多個多階頁緩衝器/CIM單元。每個多階頁緩衝器/CIM單元可包括多個緩衝胞。舉例來說,多階頁緩衝器/CIM單元可包括16行16列緩衝胞之陣列,係平行耦接記憶體陣列301的256條資料線。
每個緩衝胞(參照如第4圖)可包括多個儲存元件和可由操作碼312配置的邏輯單元,操作碼312可儲存於控制暫存器中或以其他方式供以設定操作以使用儲存元件中的資料執行選擇的邏輯功能,並以產生輸出及儲存結果。此結果可被儲存回緩衝胞的多個儲存元件的其中一者,並傳輸至對應的快取胞。或在某些情況下,此結果可直接儲存於快取304。來自多個緩衝胞的結果之組合提供包括多個緩衝胞的操作結果之結果資料頁。在一些實施例中,結果資料頁包括所有頁緩衝器/CIM單元中的邏輯操作之結果。在其他實施例中,結果資料頁包括在頁緩衝器/CIM單元的區段中之邏輯操作的結果。
失敗位元檢測電路303可被包括於資料路徑電路中以執行對頁緩衝器中的編程驗證操作(program verify operation)或抹除驗證操作(erase verify operation)的結果之分析。在實施例中,失敗位元檢測電路產生編程或抹除驗證結果中「1」或「0」位元之位元計數,並將結果提供至控制器或主機,由其判斷程式操作的下一步驟。
快取304耦接多階頁緩衝器302以例如在緩衝胞中選擇的儲存元件和快取304之間進行高速資料傳輸。快取304可配置為多個快取單元,每個快取單元對應一個多階頁緩衝器/CIM 單元。在一實施例中,包括16行16列之緩衝胞陣列的多階頁緩衝器/CIM單元平行耦接記憶體陣列301的256條資料線,每個快取單元同樣可包括16行16列之快取胞陣列,每個快取胞對應一個緩衝胞。 16×16的快取單元的每一行(column)可儲存自對應的 16 個緩衝胞傳輸的一16 位元字。資料可以相對高速地平行移動於快取胞和對應的緩衝胞中選擇的儲存元件之間,例如以快取時脈320之速度。
快取 304 由匯流排 310 耦接以與介面 305 進行讀取和寫入之傳輸。在一實施例中,匯流排 310 和介面 305 係用以自對應的多個快取胞中以快取時脈之速度傳輸多個 16 位元字(如為2、4 或8個字)。介面305係用以根據輸入輸出埠的配置以線路321上的介面時脈(interface clock)之介面時派速度(interface clock rate)在輸入輸出埠322上輸出資料,此介面時派速度可不同於快取時脈的時派速度,係依據輸入輸出埠322之配置。
資料路徑電路包括連接匯流排310或以其他方式配置以存取快取中的資料之位元計數電路330。位元計數電路330對頁緩衝器中的邏輯操作之結果進行分析。在實施例中,分析為對結果資料頁中「1」或「0」位元進行位元計數,將所得計數與基準313進行比較。此分析亦在控制暫存器314中輸出通過/失敗結果。基準313可儲存於控制暫存器中或以其他方式提供以設定分析操作。在一些實施例中,像如第3圖所示之位元計數電路可被包括於配置成如第2圖所示的一裝置上,以致在記憶體陣列與介面之間的資料路徑電路中存在多個資料分析電路,其係用以分析來自執行於頁緩衝器中的CIM操作的結果資料頁。
控制暫存器314中的通過/失敗結果可包括指示結果資料頁整體而言是否通過基準的一參數,或在結果資料頁被劃分為區段的情況下包括指示結果資料頁的哪些區段通過基準的一參數,或包括指示結果資料頁整體而言是否通過基準之參數以及指示結果資料頁的哪些區段通過基準之參數。
第2圖的位元計數電路203和第3圖的位元計數電路330為連接資料路徑電路之資料分析電路的個別實施例,以執行結果資料頁的功能以產生分析結果。在其他實施例中,資料分析電路可執行資料匹配操作,即將結果資料頁或結果資料頁的區段與作為分析基準的一常數進行比較。在其他實施例中,資料分析電路可對結果資料頁中的多個位元集(bit set)進行邏輯或運算操作;接著對操作結果進行計數並回報計數,或將所得計數與閾值進行比較以透過寫入一狀態位元至一狀態暫存器來進行通過/失敗之判斷。
在一示例性程序中,頁緩衝器中的CIM電路可用以對來自陣列的資料以及儲存於頁緩衝器中的來自另一來源的主資料(master data)進行逐位元的XOR操作,此產生一個跨頁面循環的結果資料頁,若陣列資料中的位元與頁緩衝胞中的主資料不匹配,則為「0」;若陣列資料中的位元與頁緩衝胞中的主資料匹配,則為「1」。資料分析電路可用以透過計算結果資料頁中的「1」之數量來進行匹配位元(matching bit)之計數。此外,在一些實施例中,資料分析電路可對結果資料頁中的多個位元執行邏輯操作,接著使用邏輯操作的結果作為輸入來產生分析結果(例如一計數或通過/失敗狀態)。在一實施例中,資料分析電路係用以對相鄰的位元進行AND操作(如為:bit (i) AND bit(i+1),i為0至N-1,其中N為結果資料頁中的位元數量),以產生具有 N/2位元之操作結果。此外,資料分析電路可用以對結果資料頁中的超過二個的位元進行操作,或進行適合特定需要的其他功能。
資料分析電路可執行於多個循環中,對一16 KB結果資料頁在例如一16 B區段中應用分析操作1K次。
第4圖為可用於多階頁緩衝器/CIM單元的緩衝胞400之簡化示意圖,如關於第1、2及3圖之說明,多階頁緩衝器/CIM單元包括排列成陣列的多個如此的緩衝胞。
緩衝胞400包括感測電路410,感測電路410耦接位元線BL或來自記憶體陣列的其他類型資料線。此外,緩衝胞400連接CIM邏輯電路411,CIM邏輯電路411可為緩衝胞元的一部分。CIM邏輯電路411用於記憶體之讀取寫入操作和用於CIM操作。緩衝胞400包括多個儲存元件412~414,例如儲存資料位元D0之儲存元件、儲存資料位元D1之儲存元件、……以及儲存資料位元Dn之儲存元件。舉例來說,緩衝胞可包括三個、四個或五個儲存元件。多個儲存元件412~414耦接感測電路410且透過將特定儲存元件鏈接(link)至用於特定操作之邏輯電路的一電路來耦接CIM邏輯電路411。此外,多個儲存元件412~414透過一選擇器(如為通道閘(pass gate)420)耦接線路421,線路421再連接對應的快取胞。
在實施例中,CIM邏輯電路411包括組合的邏輯電路,其可響應由一配置暫存器提供的操作碼或用於一給定CIM操作之指令以進行選擇。此外,CIM邏輯電路411包括響應時序訊號和操作碼之電路,以將邏輯閘(logic gate)之輸入連接存有資料位元D(0)至D(N-1)之儲存元件的其中一選定者且將邏輯閘之輸入連接來自一對應快取胞的線路421,並將邏輯電路之輸出連接存有資料位元D(0)至D(N-1)之儲存元件的其中一選定者及選擇性地將邏輯電路之輸出連接來自一對應快取胞的線路421。在一些實施例中,響應操作碼之解碼而產生的操作碼訊號或控制訊號可應用於區段或頁面的所有頁緩衝胞。此外,緩衝胞400響應選擇器(SEL)訊號和其他控制訊號以自存有資料位元D0至D(N-1)之儲存元件其中一選定者在線路421上傳輸資料至一對應快取單元中的一對應快取胞。
CIM邏輯電路411可用以在結果被傳輸至快取或應用於資料分析電路之前,響應一個操作碼或多個操作碼以依序執行一個邏輯操作或超過一個的邏輯操作。
頁緩衝器包括多個頁緩衝胞P(i),其中i 為 0至M-1,M為連接頁緩衝器以將資料自M個儲存元件傳輸至所述頁緩衝器的資料線之數量。每個頁緩衝胞可具有用於位元D(0)至D(N-1)之儲存元件,且在頁緩衝器中組合形成儲存元件的N條線路。在實施例中,頁緩衝器中的儲存元件的多條線路的各線路可儲存M位元。此外,M 位元可在來自記憶體陣列之讀取操作中或在來自另一來源(來自耦接頁緩衝器之快取或來自另一資料路徑)之寫入操作中被平行載入至頁緩衝器中的一條線(例如頁緩衝器中的另一條線路),以響應由主機或其他控制邏輯所控制的操作控制程序。
下方表格1表示支援在頁緩衝器中選擇邏輯操作(Logic OP)的一示例性操作碼集(opcode set)。在第一行(column)中,提供邏輯操作的名稱。在第二行至第四行中,提供操作碼之位元 [2:0]。在第五行中,提供若應用第一個操作之功能。在第六行中,提供若應用第二個操作之功能,且可與第一個操作依序進行。當然,操作和操作碼之安排可根據一給定實施之需要來定義。
舉例來說,XOR操作碼係設定可依序執行或分開執行的第一XOR操作和第二XOR操作。第一 XOR操作執行「輸入 1 (Input 1)」及「讀取資料(read data)」之 XOR。第一 XOR操作之輸出作為資料位元 D1 儲存於選擇的儲存元件中。「輸入1」可包括由主機指令提供之資料,以將資料自快取或輸入輸出介面傳輸至頁緩衝器,其中它位於多個緩衝胞中選擇的儲存元件(例如儲存元件414)中。 「讀取資料」為經由感測電路410自記憶體陣列傳輸至選擇的儲存元件並儲存為例如資料位元D0之資料。第二 XOR操作執行「輸入 2 (Input 2)」和「D1」之 XOR,其中 D1 中的資料可由第一 XOR 操作產生,或由操作碼的表格中定義之不同的第一個邏輯操作產生。 「輸入 2」之資料可由主機在自快取或自輸入輸出介面進行傳輸時提供。第二 XOR操作之輸出作為資料位元D2 儲存於選擇的儲存元件中。在一些實施例中,對於一給定操作的「輸入 1」和「輸入 2」皆可自主機在自快取記憶體或自輸入輸出介面之傳輸中寫入至頁緩衝器中對應的線路。
其他操作碼也可如關於XOR的操作碼所描述的那樣解釋。在一些實施例中,表格中的一個操作碼可用於識別(identify)第一個操作和第一個操作兩者,其可依序執行。在表格1的實施例中,第一個操作碼OP1和第二個操作碼OP2皆使用不同的輸入但選擇相同的邏輯功能。在其他實施例中,第一個操作碼和第二個操作碼可選擇不同的邏輯功能。在一些實施例中,為了執行不同的功能,表格中的二個操作碼係依序選擇,一者用於第一個操作,另一者用於第二個操作。
表格1
Logic OP | 2 | 1 | 0 | OP1 | OP2 |
XOR | 0 | 0 | 0 | D1 = XOR(Input 1, read data) | D2 = XOR(Input 2, D1) |
AND | 0 | 1 | 0 | D1 = AND(Input 1, read data) | D2 = AND(Input 2,D1) |
OR | 0 | 1 | 1 | D1 = OR(Input 1, read data) | D2 = OR(Input 2, D1) |
XNOR | 1 | 0 | 0 | D1 = XNOR(Input 1, read data) | D2 = XNOR(Input 1, D2) |
NOT | 1 | 0 | 1 | D1 = NOT(read data) | D2 = NOT(D1) |
NAND | 1 | 1 | 0 | D1 = NAND(Input 1, read data) | D2 = NAND(Input 2, D1) |
NOR | 1 | 1 | 1 | D1 = NOR(Input 1, read data) | D2 = NOR(Input 2, D1) |
第5圖表示可在一些實施例中應用的頁面區段。如第5圖所示,頁面500為自記憶體陣列平行傳輸至頁緩衝器的資料量。一頁面可包括如 16 kB 加上 2 kB 額外資料。在一些裝置中,頁面會更小或更大以適應特定配置。頁面 500 分為八個區段,如第5圖所示之區段1 (SEG 1) 至區段8 (SEG 8)。如前所述,資料分析電路可以區段為基礎進行操作,以為八個區段中的每一者提供分析結果。亦可根據特定需要以應用其他區段。
第6~8圖表示示例性的控制暫存器,其可使用於關於第1圖所描述之裝置上,以提供定義 CIM 操作的特徵之設定資料(如為操作碼、基準和位址)並提供可透過使用暫存器讀取和寫入操作以由主機存取的結果資料(如為通過/失敗以及計數資料)。
第6圖表示具有CIM控制特徵位址的一特徵控制暫存器,CIM控制特徵位址具有第一參數和第二參數。第一個參數 P1 指向一暫存器,其保存待應用於資料分析電路中的基準AD1BN (如為允許1 位元數)。第二個參數P2指向保存第一位元OP#的一暫存器,第一位元OP#指示待執行於頁緩衝胞中的邏輯操作之數量,第二位元INTK (internal data check)用於啟用資料分析電路,第一個操作碼欄(opcode field)的OP2指示當由位元OP#指示時執行第二個操作,及第二個操作碼欄的OP1指示執行第一個操作。需注意,在關於表格1描述的實施例中,可能僅使用一個操作碼欄。在此例中,若要執行二個操作碼,則設定位元OP#。若未設定位元OP#,則僅執行第一個操作碼。此外,第6圖更示出一保留(reserved)欄位RSV。
第7圖表示具有八位元的狀態暫存器。前七位元 M 至 S 可為與一般記憶體操作或裝置上其他功能有關的狀態位元。最後狀態位元 FAIL 指示資料分析的結果。在一區段系統中,若所有區段均未通過基準,則資料分析電路設定(或重設)位元FAIL以指示失敗狀態,或若至少一區段通過,則重設(或設定)以指示通過狀態。運行積體電路記憶體裝置之主機可讀取狀態暫存器以確定分析結果。
第8圖表示具有INTK (internal data check)特徵位址和參數P1欄的一內部確認特徵控制暫存器。在結果資料頁被分割成八個區段之實施例中,如圖所示之第8圖的內部確認特徵控制暫存器可儲存八個區段中每一者的通過/失敗(P/F)位元。
在一給定實施中使用的控制暫存器之配置可適合於適配正在執行的功能之類型。
第9圖為一時序圖,其表示可產生於主機中以在頁緩衝器的緩衝胞之選擇的儲存元件中設定輸入資料之指令序列。此指令序列類似於三階記憶體(three-level memory)中使用的序列,其中待儲存於多階記憶胞中之每個位元被寫入頁緩衝器的一特定鎖存器(specific latch)。在第9圖所示的序列中,二個指令位元組CMD 提供一個快取傳輸指令。裝置中的指令解碼器和控制器設定快取寫入操作。接著,五個位址位元組ADDR提供行和列位址以支援對快取的寫入。裝置中的指令解碼器和控制器對位址進行解碼以設定快取位址以支援對快取的寫入。輸入一序列的資料位元組DIN,控制器執行寫入操作以儲存資料於快取中。最後,輸入指令位元組以將快取資料傳輸至頁緩衝器。控制器和指令解碼器執行一程序以將資料傳輸至頁緩衝器中的儲存元件(Dx)的指定線路。類似的指令序列可被實施以完成與待使用於 CIM 操作中的資料之移動及由 CIM 操作產生之資料相關的其他功能。
第10圖為執行於裝置中之步驟的簡化流程圖,以支援具有如本揭露所述之資料分析的CIM操作。在此流程圖中,首先,於步驟1000,向特徵控制暫存器載入參數以設定CIM操作,舉例為第6圖所示之控制暫存器中的參數P2列。響應裝置自主機接收的寫入暫存器指令(write register command)以執行操作。此外,於步驟1010,此些步驟包括載入特徵控制暫存器以設定資料分析的內部分析基準,舉例為第6圖所示之控制暫存器的參數P1列。於步驟1020,為了執行指定操作,輸入資料被置於頁緩衝胞的儲存元件之選擇的線路中以提供輸入,在此種情況下為指定邏輯功能使用的輸入1 (Input 1)和輸入2 (Input 2)。於步驟1030,積體電路記憶體裝置接著可響應指令或其他訊號以執行指定的邏輯操作,將結果儲存於頁緩衝胞的儲存元件的線路的其中一者以提供橫跨頁緩衝器的緩衝胞之結果資料頁,以分析結果資料頁並以提供儲存於主機可存取的記憶體位置中之分析結果。於步驟1040,使用該功能的主機應用程式接著可發出讀取狀態指令,且裝置響應讀取狀態指令以根據內部分析基準提供資料分析結果。此些結果可儲存於如上關於第7圖所描述之狀態暫存器中。此外,於步驟1050,利用該功能的主機應用程式可發出一指令(如為一取得功能指令)以讀取儲存更多有關分析結果的詳細訊息之控制暫存器(如為如上關於第8圖所描述之暫存器),故積體電路記憶體裝置響應取得特徵指令以經由裝置上的輸入輸出埠向主機提供所要求之資料,如為識別結果頁面的區段之通過/失敗狀態。
第11A圖為如本揭露所述之CIM操作的流程圖,此操作執行於來自記憶體陣列讀取之資料上,並具有內部資料分析。此操作可例如使用如上關於第6圖所描述之INTK參數以及提供該功能之實施例來執行。在此例中,於步驟1101,程序開始。於步驟1102,確定是否變更積體電路記憶體裝置上的設定邏輯操作。於步驟1103,若希望變更邏輯操作,則主機發出指令以變更邏輯操作。於步驟1104,若不變更邏輯操作或在步驟1103之變更邏輯操作後,則確定是否變更結果資料頁分析的基準。於步驟1105,若希望變更基準,則發出變更基準的指令。於步驟1106,若在步驟1104沒有變更基準或在步驟1105執行變更之後,則發出指令以準備具有第一資料之集的頁緩衝器以用於所選操作之輸入。此可涉及如關於第9圖所描述之操作。或者,此可涉及自頁緩衝器中的一組儲存元件(例如一線路)移動資料(如為先前自記憶體陣列讀取的頁面之資料)至頁緩衝器中的另一組儲存元件(例如另一線路)。於步驟1107,準備好頁緩衝器中的第一資料之後,執行單一指令或一指令序列以使用狀態器或其他控制電路執行程序以自記憶體陣列讀取第二資料之集(如為一頁面或一頁面的區段)至頁緩衝器,以於頁緩衝器中執行逐位元邏輯操作,以於頁緩衝器使用位元計數電路或其他資料分析電路來分析結果資料頁,及以將邏輯操作之結果資料頁傳輸至快取。於步驟1108,在足以允許寫入狀態暫存器的延遲之後,主機可發出一或多個指令來讀取保存資料分析操作結果之一或多個暫存器,如為確認資料分析操作之通過/失敗狀態。
第11B圖為由第11A圖的步驟1107表示之一程序的示例之流程圖,可由狀態器響應例如使用積體電路記憶體上的指令解碼器對單一外部指令之解碼以執行此程序。於步驟1112,此流程開始於第11A圖的步驟1107。於步驟1113,響應所述指令,自記憶體陣列讀取記憶體資料至頁緩衝器的線路。於步驟1114,應用待使用於第一操作的操作碼OP1,並使用頁緩衝器中的邏輯電路以執行OP1。於步驟1115,接著透過檢查參數OP#來確定在此示例中是否要執行第二操作碼。第一操作碼和第二操作碼可識別相同的邏輯功能(如上表格1所示)或可識別不同的邏輯功能。於步驟1116,若要執行第二操作的第二個操作碼OP2,則執行OP2。於步驟1117,若僅要執行一個操作碼或在步驟1116執行第二個操作碼之後,則透過檢查此示例中的參數INTK來確定是否執行內部資料分析。於步驟1118,若要執行資料分析步驟,則執行此步驟並將結果寫入狀態暫存器。於步驟1119,將結果寫入狀態暫存器之後或若內部資料分析被保留,則邏輯操作的結果自頁緩衝器傳輸至快取。主機可存取此快取。於步驟1120,此時,完成第11A圖的步驟1107的程序。
第12A圖為在無進行內部資料分析的情況下對自記憶體陣列讀取之資料執行如本揭露所述之CIM操作的流程圖。此操作可使用如上關於第6圖所描述之INTK參數及提供該功能的示例來執行。在此例中,於步驟1201,程序開始。於步驟1202,確定是否變更積體電路記憶體裝置上的設定邏輯操作。於步驟1203,若希望變更邏輯操作,則主機發出指令以變更邏輯操作。於步驟1204,若不變更邏輯操作或在步驟1203之變更邏輯操作後,則發出指令以準備具有第一資料之集的頁緩衝器以用作所選操作之輸入。此可涉及諸如關於第9圖所描述之操作。或者,此可涉及自頁緩衝器中的一組儲存元件(如為先前自記憶體陣列讀取的頁面之資料) 移動資料至頁緩衝器中的另一組儲存元件。在包括該功能的實施例中,裝置上的控制器可確定響應所述設定資料以無進行用於操作之內部資料分析。於步驟1205,準備頁緩衝器中的第一資料之後,單一指令或一指令序列係執行以使用狀態器或其他控制電路來進行程序以自記憶體陣列讀取第二資料之集至頁緩衝器,以執行頁緩衝器中的邏輯操作,並以傳送邏輯操作的結果資料頁至快取。
第12B圖為由第12A圖的步驟1205表示之一程序的示例的流程圖,可由狀態器響應例如使用積體電路記憶體上的指令解碼器對單一外部指令之解碼以執行此程序。於步驟1212,此流程開始於第12A圖的步驟1205。於步驟1213,響應所述指令,自記憶體陣列讀取記憶體資料至頁緩衝器。於步驟1214,應用待使用於第一操作的操作碼OP1,並使用頁緩衝器中的邏輯電路以執行OP1。於步驟1215,接著透過檢查參數OP#來確定在此示例中是否要執行第二操作碼。第一操作碼和第二操作碼可識別相同的邏輯功能(如上表格1所示)或可識別不同的邏輯功能。於步驟1216,若要執行第二操作的第二個操作碼OP2,則執行OP2。於步驟1217,若僅要執行一個操作碼或在步驟1216執行第二個操作碼之後,則自頁緩衝器傳輸邏輯操作的結果至快取。接著,於步驟121,透過檢查此示例中的參數INTK來確定是否執行內部資料分析。於步驟1219,若要使用快取中的資料執行內部分析,則執行資料分析並將結果寫入狀態暫存器。於步驟1220,在完成內部資料分析之後或若無要執行之資料分析,則程序結束,並且結果資料在快取中保持可供主機存取。
第13圖為如本揭露所述之 CIM 操作的流程圖,此操作執行於來自記憶體陣列讀取之資料上,其中內部資料分析係執行於結果資料頁被傳輸至快取之後。此操作可例如使用如上關於第3圖所描述之存在耦接快取之資料分析電路的實施例。此操作可例如使用如上關於第6圖所描述之INTK參數以及提供該功能之實施例來執行。在此例中,於步驟1301,程序開始。於步驟1302,確定是否變更積體電路記憶體裝置上的設定邏輯操作。於步驟1303若希望變更邏輯操作,則主機發出指令以變更邏輯操作。於步驟1304,若不變更邏輯操作或在步驟1303之變更邏輯操作後,則確定是否變更結果資料頁分析的基準。於步驟1305,若希望變更基準,則發出變更基準的指令。於步驟1306,若在步驟1304沒有變更基準或在步驟1305執行變更之後,則發出指令以準備具有第一資料之集的頁緩衝器以用於所選操作之輸入。此可涉及如關於第9圖所描述之操作。或者,此可涉及自頁緩衝器中的一組儲存元件移動資料至頁緩衝器中的另一組儲存元件。於步驟1307,準備好頁緩衝器中的第一資料之後,執行單一指令或一指令序列以使用狀態器或其他控制電路執行程序以自記憶體陣列至頁緩衝器讀取第二資料之集(如為一頁面或一頁面的區段),以於頁緩衝器中執行逐位元邏輯操作,以將邏輯操作之結果資料頁傳輸至快取,並以使用位元計數電路或其他資料分析電路來分析快取中的結果資料頁。在一實施例中,由步驟1307表示的程序可類似於第12A圖之步驟1205的程序並可如上關於第12B圖所描述那般進行。於步驟1308,在足以允許寫入狀態暫存器的延遲之後,主機可發出一或多個指令來讀取保存資料分析操作結果之一或多個暫存器,如為確認資料分析操作之通過/失敗狀態。
第14A圖為如本揭露所述之CIM操作的流程圖,此操作執行於來自記憶體陣列讀取之資料上,其中內部資料分析執行於頁緩衝器中或快取中的結果資料頁上,可結合第2圖和第3圖如上說明之主機依序分析多個頁面的情況。在提供該功能的實施例中,此操作可例如使用如上關於第6圖所描述之INTK參數以及提供該功能之實施例來執行。在此例中,於步驟1402,程序開始。於步驟1402,確定是否變更積體電路記憶體裝置上的設定邏輯操作。於步驟1403,若希望變更邏輯操作,則主機發出指令以變更邏輯操作。於步驟1404,若不變更邏輯操作或在步驟1403之變更邏輯操作後,則確定是否變更結果資料頁分析的基準。於步驟1405,若希望變更基準,則發出變更基準的指令。於步驟1406,若在步驟1404沒有變更基準或在步驟1405執行變更之後,則發出指令以準備具有第一資料之集的頁緩衝器以用於所選操作之輸入。此可涉及如關於第9圖所描述之操作。或者,此可涉及自頁緩衝器中的一組儲存元件移動資料(如為先前自記憶體陣列讀取的頁面之資料)至頁緩衝器中的另一組儲存元件。於步驟1407,準備好頁緩衝器的一線路中的第一資料後,執行單一指令或一指令序列以使用狀態器或其他控制電路執行程序以將分析應用於頁面的一區段。此程序可包括自記憶體陣列讀取頁面(如為一頁面或一頁面的區段)的資料至頁緩衝器的一線路,以於頁緩衝器中對讀取資料和頁緩衝器的另一線路中或快取中的資料執行逐位元邏輯操作,以將邏輯操作的結果資料頁傳輸至快取中,及以使用位元計數電路或其他資料分析電路來分析快取中的結果資料頁以產生通過/失敗結果,並且在本實施例中,儲存通過資料分析之基準的一頁面的頁面位址,並循環步驟直到區段的最後一頁面被分析。藉由使用記憶體裝置上的狀態暫存器,通過頁面的頁面位址可儲存於裝置中以供主機在程序完成後存取。於步驟1408,在足以允許寫入狀態暫存器的延遲之後,主機可發出一或多個指令來讀取保存資料分析操作結果之一或多個暫存器,如為確認資料分析操作之通過/失敗狀態。或者,可為了整個頁面的區段維持通過/失敗狀態以支援步驟1408。若所有頁面都通過,則程序完成。於步驟1409,若存在失敗頁面,則主機可發出指令以取得指示了哪些頁面通過及哪些頁面失敗之資料(如為通過頁面的頁面位址)。
第14B圖為由第14A圖的步驟1407表示之一程序的示例之流程圖,對於資料分析電路連接頁緩衝器的情況,可由狀態器響應例如使用積體電路記憶體上的指令解碼器對單一外部指令之解碼以執行此程序。於步驟1412,此流程開始於第14A圖的步驟1407。於步驟1413,響應包括一起始位址和諸如一結束位址或一區段長度參數之位址數的指示之指令,自記憶體陣列讀取記憶體資料至頁緩衝器的一線路。於步驟1414,應用待使用於第一操作的操作碼OP1,並使用頁緩衝器中的邏輯電路對讀取資料及頁緩衝器中的另一線路之資料執行OP1,並將操作結果儲存於頁緩衝器中的一線路。於步驟1415,接著透過檢查參數OP#來確定在此示例中是否要執行第二操作碼。第一操作碼和第二操作碼可識別相同的邏輯功能(如上表格1所示)或可識別不同的邏輯功能。於步驟1416,若要執行第二操作的第二個操作碼OP2,則對頁緩衝器的對應線路中的資料執行OP2。於步驟1417,若僅要執行一個操作碼或在步驟1416執行第二個操作碼之後,則使用頁緩衝器中的結果資料對當前資料執行資料分析步驟。於步驟1418,在資料分析步驟後,將通過資料的位址寫入狀態暫存器。於步驟1419,接著程序確定是否已經分析到區段的最後資料的頁面。於步驟1420,若否,則產生下一個位址。並且,於步驟1413讀取來自下一個位址的資料,程序繼續直到最後一頁面。於步驟1421,當於步驟1419指示最後一頁面時,程序結束。
第14C圖為由第14A圖的步驟1407表示之一程序的示例之流程圖,對於資料分析電路連接快取的情況,可由狀態器響應例如使用積體電路記憶體上的指令解碼器對單一外部指令之解碼以執行此程序。於步驟1422,此流程開始於第14A圖的步驟1407。於步驟1423,響應包括一起始位址和諸如一結束位址或一區段長度參數之位址數的指示之指令,自記憶體陣列讀取記憶體資料至頁緩衝器的一線路。於步驟1424,應用待使用於第一操作的操作碼OP1,並使用頁緩衝器中的邏輯電路對讀取資料及頁緩衝器中的另一線路之資料執行OP1,並將操作結果儲存於頁緩衝器中的一線路。於步驟1425,接著透過檢查參數OP#來確定在此示例中是否要執行第二操作碼。第一操作碼和第二操作碼可識別相同的邏輯功能(如上表格1所示)或可識別不同的邏輯功能。於步驟1426,若要執行第二操作的第二個操作碼OP2則執行OP2。於步驟1427,若僅要執行一個操作碼或在步驟1426執行第二個操作碼之後,則傳輸結果資料至快取。於步驟1428,接著使用快取中的結果資料對當前資料執行資料分析步驟。於步驟1429,在資料分析步驟之後,將通過資料的位址寫入狀態暫存器。於步驟1430,接著程序確定是否已經分析到區段的最後資料的頁面。於步驟1431,若否,則產生下一個位址。並且,於步驟1423讀取來自下一個位址的資料,程序繼續直到最後一頁面。於步驟1432,當於步驟1430指示最後一頁面時,程序結束。
本揭露說明了多個流程圖,其闡釋由記憶體主機、記憶體控制器、積體電路記憶體裝置或此類裝置之組合執行的邏輯。應當理解,對於本揭露的所有流程圖,許多步驟可結合、平行執行或以不同次序執行而不影響所達到的功能。在某些情況下,正如讀者所理解到的,只有在進行某些其他更改時,重新安排步驟才能取得相同的結果。在其他情況下,正如讀者所理解到的,只有在滿足某些條件時,重新安排步驟才能取得相同的結果。此外,應當理解,本揭露的流程圖僅繪示出用於理解本揭露相關的步驟。並且,應當理解,在所示出的那些步驟前、後和中間可執行用於完成其他功能之諸多額外步驟。
本揭露之技術提供可應用於低功率設定之CIM操作。舉例來說,在一常見操作中,主機可在儲存於記憶體中的資料搜索一些特徵值,例如計分或指示自記憶體讀取的一頁面中的位元之至少一閾值數量 (如為95%或任何其他基準)的「接近性(proximity)」或自記憶體讀取的頁面上的邏輯功能之結果,匹配自主機寫入頁緩衝器或自記憶體中的另一個位置讀取的頁面。主機使用本揭露所說明之技術可在無需將資料自記憶體晶片移動至另一晶片(如為控制器晶片)之情況下進行搜索或部分搜索,從而避免輸入輸出傳輸之能耗。
雖然本揭露係藉由參照如前詳細說明之較佳實施例和示例以進行公開。然應當理解,此些實施例係旨在說明而非進行限制。可預期相關技術領域的人員將思及到修飾和組合,此些修飾和組合將涵蓋於本揭露的精神和所附申請專利之請求項的範圍內。
100:積體電路記憶體裝置
101:主機
108:指令解碼器
110:控制邏輯
112:分析結果暫存器
120:方塊
130:匯流排
140:位址解碼器
145:字線
160:記憶體陣列
172:頁緩衝器
174:CIM電路
176:資料分析電路
178:快取
185:匯流排
190:輸入輸出介面
191:線路
195:輸入輸出埠
201:記憶體陣列
202:多階頁緩衝器
203:位元計數電路
204:快取
205:介面
210:匯流排
212:操作碼
213:基準
214:控制暫存器
220:快取時脈
221:線路
222:輸入輸出埠
301:記憶體陣列
302:多階頁緩衝器
303:位元計數電路
304:快取
305:介面
310:匯流排
312:操作碼
313:基準
314:控制暫存器
320:快取時脈
321:線路
322:輸入輸出埠
400:緩衝胞
410:感測電路
411:CIM邏輯電路
412:儲存元件
413:儲存元件
414:儲存元件
420:通道閘
421:線路
500:頁面
1000~1050,1101~1108,1112~1120,1201~1205,1212~1220,1301~1308,1401~1409,1412~1421,1422~1432:步驟
ADDR:位址位元組
AD1BN:基準
BL:位元線
CMD:指令位元組
DIN:資料位元組
FAIL:位元
OP1,OP2:操作碼
OP#:位元
P1,P2:參數
RSV:保留欄位
第1圖為包括可編程CIM操作且包括如本揭露所述之資料分析電路的CIM裝置之簡化示意圖;
第2圖為用於包括嵌入式資料分析電路的CIM裝置之資料路徑電路的實施例之簡化示意圖;
第3圖為用於包括嵌入式資料分析電路的CIM裝置之資料路徑電路的另一實施例之簡化圖;
第4圖為包括多個資料單元和CIM邏輯電路的頁緩衝胞之示意圖;
第5圖繪示可用於連接如本揭露所述之資料分析電路的頁面區段(segmentation);
第6圖繪示依照本揭露一些實施例之可用於為CIM操作提供設定參數之控制暫存器;
第7圖繪示可用於存取如本揭露所述之資料分析電路產生的狀態訊息之控制暫存器;
第8圖繪示可用於存取由資料分析電路在一頁面的區段上產生之該頁面的區段的狀態訊息之控制暫存器;
第9圖為用於將來自輸入輸出介面的資料儲存於頁緩衝器的多個緩衝胞的選擇的儲存元件中之指令、位址和資料的序列之時序圖;
第10圖為實施於CIM裝置上以支援如本揭露所述之CIM操作的操作之簡化流程圖;
第11A、11B圖為利用如本揭露所述之頁緩衝器中的結果資料頁的資料分析之CIM操作的簡化流程圖;
第12A、12B圖為例如當內部資料分析被關閉或未包括於CIM裝置時而無進行內部資料分析之CIM操作的簡化流程圖;
第13圖為使用如本揭露所述之快取中的結果資料頁的資料分析之CIM操作的簡化流程圖;
第14A、14B及14C圖為以如本揭露所述之資料分析依序執行於多個頁面上之CIM操作的簡化流程圖。
100:積體電路記憶體裝置
101:主機
108:指令解碼器
110:控制邏輯
112:分析結果暫存器
120:方塊
130:匯流排
140:位址解碼器
145:字線
160:記憶體陣列
172:頁緩衝器
174:CIM電路
176:資料分析電路
178:快取
185:匯流排
190:輸入輸出介面
191:線路
195:輸入輸出埠
Claims (28)
- 一種積體電路,包括: 一記憶體陣列,包括複數條用於平行存取記憶體陣列資料之資料線; 一輸入輸出介面; 複數個資料路徑電路,位於該記憶體陣列與該輸入輸出介面之間,該些資料路徑電路包括複數個連接該記憶體陣列的各該資料線之緩衝胞,每一該緩衝胞包括複數個儲存元件; 複數個運算電路,該些運算電路於該些緩衝胞中連接各該緩衝胞,以執行各該緩衝胞的該些儲存元件中的資料的功能,該些運算電路係平行配置以產生包括該些緩衝胞的操作結果之一結果資料頁;以及 一資料分析電路,連接該些資料路徑電路,以執行該結果資料頁的功能以產生一分析結果。
- 如請求項1所述之積體電路,其中該些運算電路將該些操作結果儲存於各該緩衝胞的該些儲存元件中。
- 如請求項1所述之積體電路,更包括一暫存器,以儲存可經由該輸入輸出介面存取之該分析結果。
- 如請求項1所述之積體電路,其中該些運算電路包括複數個用於執行一組功能的電路,且該些運算電路係響應設定資料進行配置以自該組功能中選擇該些儲存元件中的資料的功能。
- 如請求項1所述之積體電路,其中該結果資料頁的功能包括對該結果資料頁中指示邏輯「1」或「0」的位元進行計數。
- 如請求項5所述之積體電路,其中該結果資料頁的功能包括將一結果計數和一閾值進行比較。
- 如請求項5所述之積體電路,其中該結果資料頁包括複數個區段,且該結果資料頁的功能包括將各該區段的結果計數和一閾值進行比較。
- 如請求項1所述之積體電路,其中該資料分析電路係響應設定資料進行配置以設定該結果資料頁的功能。
- 如請求項1所述之積體電路,更包括一指令介面,該指令介面係用以執行對各該緩衝胞的該些儲存元件中的資料的功能進行設定的指令。
- 如請求項1所述之積體電路,更包括一設定暫存器,以儲存各該緩衝胞的該些儲存元件中的資料的功能之參數和該結果資料頁的功能之參數。
- 如請求項1所述之積體電路,其中該些運算電路係用以依序執行超過一個的各該緩衝胞的該些儲存元件中的資料的功能,以產生該結果資料頁的該些緩衝胞的操作結果。
- 如請求項1所述之積體電路,其中該些資料路徑電路包括一快取,且該資料路徑電路自該些緩衝胞傳輸資料至該快取中的該些儲存元件,以及自該快取傳輸資料至該輸入輸出介面。
- 如請求項12所述之積體電路,其中該資料分析電路係用以存取該快取中的該結果資料頁。
- 如請求項12所述之積體電路,其中該資料分析電路係用以存取該些緩衝胞中的該些儲存元件中的該結果資料頁。
- 如請求項1所述之積體電路,其中該資料分析電路係配置成該記憶體陣列的一編程操作中的一失敗位元檢測器。
- 如請求項1所述之積體電路,更包括一控制器以及一指令解碼器,該控制器係響應對邏輯操作進行設定的指令及係響應對分析基準進行調整的指令。。
- 如請求項1所述之積體電路,更包括一控制器,該控制器係用以執行將來自該輸入輸出介面的資料儲存於該些緩衝胞的被選擇的儲存元件中的功能。
- 如請求項1所述之積體電路,其中該些緩衝胞的該些儲存元件中的資料的功能係為對各該緩衝胞的二個以上的該些儲存元件中的資料進行的一逐位元邏輯操作。
- 一種執行於積體電路之方法,該積體電路具有一記憶體以及一頁緩衝器,該頁緩衝器包括複數個儲存元件的複數條線路,該執行方法包括: 儲存一第一資料於該頁緩衝器中的一第一線路,以作為一運算的輸入; 儲存一第二資料於該頁緩衝器中的一第二線路,以作為該運算的輸入;以及 於該頁緩衝器中執行該運算以提供複數個操作結果。
- 如請求項19所述之執行於積體電路之方法,更包括: 儲存該些操作結果於該些線路的其中一者。
- 如請求項19所述之執行於積體電路之方法,其中儲存該第二資料於該頁緩衝器中的該第二線路之步驟包括: 自該記憶體載入該第二線路的該第二資料。
- 如請求項19所述之執行於積體電路之方法,更包括: 應用一分析基準於該些操作結果以產生一分析結果並儲存該分析結果於一可存取記憶體。
- 如請求項19所述之執行於積體電路之方法,更包括: 傳輸該些操作結果至一快取以用於資料輸出。
- 如請求項19所述之執行於積體電路之方法,更包括: 設定一操作類型以選擇用於該頁緩衝器中的該運算的一操作。
- 如請求項19所述之執行於積體電路之方法,更包括: 透過寫入一操作識別符於一控制暫存器來設定一操作類型以選擇用於該頁緩衝器中的該運算的一操作。
- 如請求項19所述之執行於積體電路之方法,更包括: 應用一分析基準於該些操作結果以產生一分析結果並儲存該分析結果於一可存取記憶體;以及 對該運算的結果設定該分析基準。
- 如請求項26所述之執行於積體電路之方法,更包括: 移動該些操作結果至一快取;以及 應用該分析基準於該快取中的該些操作結果。
- 如請求項26所述之執行於積體電路之方法,更包括: 應用該分析基準於該頁緩衝器的該些線路的其中一者中的該些操作結果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/710,367 US20230317122A1 (en) | 2022-03-31 | 2022-03-31 | In memory data computation and analysis |
US17/710,367 | 2022-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202340978A true TW202340978A (zh) | 2023-10-16 |
TWI820713B TWI820713B (zh) | 2023-11-01 |
Family
ID=88193353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111118409A TWI820713B (zh) | 2022-03-31 | 2022-05-17 | 積體電路及執行於其之方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230317122A1 (zh) |
JP (1) | JP2023152261A (zh) |
KR (1) | KR20230141396A (zh) |
CN (1) | CN116935931A (zh) |
TW (1) | TWI820713B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140237263A1 (en) * | 2013-02-19 | 2014-08-21 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device and memory system using the same |
US11514996B2 (en) * | 2017-07-30 | 2022-11-29 | Neuroblade Ltd. | Memory-based processors |
CN113918481A (zh) * | 2017-07-30 | 2022-01-11 | 纽罗布拉德有限公司 | 一种存储器芯片 |
KR102576849B1 (ko) * | 2018-07-13 | 2023-09-14 | 에스케이하이닉스 주식회사 | 메모리 장치 |
US11138499B2 (en) * | 2018-09-28 | 2021-10-05 | Intel Corporation | Applications of back-end-of-line (BEOL) capacitors in compute-in-memory (CIM) circuits |
US20230074229A1 (en) * | 2020-02-05 | 2023-03-09 | The Trustees Of Princeton University | Scalable array architecture for in-memory computing |
-
2022
- 2022-03-31 US US17/710,367 patent/US20230317122A1/en active Pending
- 2022-05-17 TW TW111118409A patent/TWI820713B/zh active
- 2022-05-18 CN CN202210548243.3A patent/CN116935931A/zh active Pending
- 2022-07-27 JP JP2022119956A patent/JP2023152261A/ja active Pending
- 2022-08-02 KR KR1020220096362A patent/KR20230141396A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
US20230317122A1 (en) | 2023-10-05 |
TWI820713B (zh) | 2023-11-01 |
JP2023152261A (ja) | 2023-10-16 |
KR20230141396A (ko) | 2023-10-10 |
CN116935931A (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9971647B2 (en) | Apparatus and method for programming ECC-enabled NAND flash memory | |
CN102165409B (zh) | 具有扩充模式的固态存储装置控制器 | |
US10977121B2 (en) | Fast page continuous read | |
US10552047B2 (en) | Memory system | |
US11048649B2 (en) | Non-sequential page continuous read | |
US20210390065A1 (en) | Memory device and method of operating the same | |
US10957384B1 (en) | Page buffer structure and fast continuous read | |
CN101349963B (zh) | 固态盘控制器及其数据处理方法 | |
US6801459B2 (en) | Obtaining data mask mapping information | |
US20080052448A1 (en) | Flash memory interface device | |
CN111679785A (zh) | 用于处理操作的存储器装置及其操作方法、数据处理系统 | |
US11734181B2 (en) | Continuous read with multiple read commands | |
US9189440B2 (en) | Data interleaving module | |
CN110008147A (zh) | 存储器控制器以及用于对存储模块进行访问的方法 | |
TW202044043A (zh) | 記憶體裝置、資料處理系統以及操作記憶體裝置的方法 | |
JP2012512469A (ja) | プリセットオペレーションを必要とするメインメモリユニットおよび補助メモリユニットを備える半導体デバイス | |
TWI820713B (zh) | 積體電路及執行於其之方法 | |
WO2019118009A1 (en) | Systems and methods for writing zeros to a memory array | |
US20170255396A1 (en) | Parallel scheduling of write commands to multiple memory devices | |
CN101751982B (zh) | 闪存存储装置中闪存控制器与闪存芯片之间的连接方法 | |
US11972135B2 (en) | Status polling based on die-generated pulsed signal | |
TWI822436B (zh) | 記憶體以及用於記憶體內搜尋的記憶體操作方法 | |
TWI831118B (zh) | 資料儲存裝置及其編程應力消除方法 | |
US7609562B2 (en) | Configurable device ID in non-volatile memory | |
CN115440280A (zh) | 电力管理 |