CN116935931A - 集成电路及执行其的方法 - Google Patents
集成电路及执行其的方法 Download PDFInfo
- Publication number
- CN116935931A CN116935931A CN202210548243.3A CN202210548243A CN116935931A CN 116935931 A CN116935931 A CN 116935931A CN 202210548243 A CN202210548243 A CN 202210548243A CN 116935931 A CN116935931 A CN 116935931A
- Authority
- CN
- China
- Prior art keywords
- data
- page
- integrated circuit
- buffer
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 239000000872 buffer Substances 0.000 claims abstract description 216
- 238000007405 data analysis Methods 0.000 claims abstract description 77
- 230000006870 function Effects 0.000 claims abstract description 52
- 238000004458 analytical method Methods 0.000 claims abstract description 49
- 230000004044 response Effects 0.000 claims description 18
- 238000003491 array Methods 0.000 abstract description 6
- 230000008859 change Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000001514 detection method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process 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
- 239000000758 substrate Substances 0.000 description 1
- 229910000314 transition metal oxide Inorganic materials 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
- 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
- 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
- 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, 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
Abstract
本公开提供了集成电路,包括具有用于并行存取存储器阵列数据的数据线的多个存储器阵列、输入输出接口、位于存储器阵列与输入输出接口之间的多个数据路径电路、多个运算电路以及数据分析电路。数据路径电路包括连接存储器阵列的各数据线的多个缓冲单元,每一缓冲单元包括多个储存元件。运算电路于缓冲单元中以连接各缓冲单元,并执行各缓冲单元的储存元件中的数据的功能,且平行配置以产生包括缓冲单元的操作结果的结果数据页。数据分析电路连接数据路径电路以执行结果数据页的功能以产生分析结果。本公开还提供了一种执行于集成电路的方法。
Description
技术领域
本公开涉及存储器内运算(compute in memory,CIM)装置相关的技术,尤其涉及包括具有耦接页缓冲器的运算电路的高密度NAND闪存。
背景技术
在一些CIM装置中,使用存储器阵列和输入输出接口之间的数据路径(data path)上的电路来执行逻辑操作。CIM装置可包括集成电路,集成电路包括单一芯片上的存储器阵列和输入输出接口,并且在一些实施例中,集成电路横跨多芯片封装中的一个以上的芯片。此种配置可使逻辑操作的数据路径非常短,自而以低能源成本实现非常快速的操作。
现期望对于CIM装置和具有类似数据路径的其他装置提供更多的性能和改进的效率。
发明内容
本公开提出了一种包括存储器阵列的集成电路,此存储器阵列包括用于并行存取(parallel access)存储器阵列数据的多条数据线。此外,集成电路包括输入输出接口。多个数据路径电路位于存储器阵列和输入输出接口之间。数据路径电路包括多个连接存储器阵列的各数据线的缓冲单元(buffer cell),每一缓冲单元包括多个储存元件(storageelement),例如可提供于页缓冲器(page buffer)中。多个运算电路连接多个缓冲单元中的各缓冲单元。运算电路执行各缓冲单元的储存元件中的数据的功能,并可平行配置以产生包括多个缓冲单元的操作结果(operation result)的结果数据页(results data page)。结果数据页可被储存例如在多个缓冲单元的储存元件中,或者被移动至高速缓存(cachememory)。
多个运算电路执行的多个缓冲单元的储存元件中的数据的功能为对在本公开描述的技术实施例中的页缓冲器的各缓冲单元的二个以上的储存元件中的数据页或部分页面进行逐位逻辑操作(bit-by-bit logic operation)。
其中,数据分析电路连接数据路径电路以执行结果数据页的功能以产生分析结果。可提供缓存器(register)来储存可经由输入输出接口存取的分析结果。在本公开描述的实施例中,数据分析电路连接页缓冲器中的多个缓冲单元,或数据分析电路连接至高速缓存。在一些实施例中,数据路径中可包括一个以上的数据分析电路。
其中,运算电路包括多个用于执行一组功能的电路,且运算电路可响应设定数据(set-up data)进行配置以自该组功能中选择多个储存元件中的数据的功能。
此外,其中运算电路包括用于执行一组功能的电路,且运算电路可响应设定数据进行配置以对储存元件中的数据依序选择要执行的多个功能。
其中,在分析电路中执行的结果数据页的功能包括对结果数据页中指示逻辑「1」或「0」的位进行计数。此外,数据分析电路可包括用于将所得计数与作为阈值应用的基准(criterion)进行比较的一电路。
在一些实施例中,结果数据页包括多个区段(segment),且在数据分析电路中执行的结果数据页的功能包括将每个区段的结果计数与作为阈值使用的基准进行比较。
本公开提出一种集成电路,包括控制器和指令译码器,其中控制器响应对运算电路的逻辑操作进行设定指令以及响应对分析基准(analysis criterion)进行调整指令,例如使用缓存器进行读取和写入操作以储存设定数据。此外,还提出包括控制器和指令译码器的集成电路,其中此控制器响应设定参数以启用或禁用分析电路以产生分析结果以支持CIM操作指令。
本公开提出一种集成电路,其包括控制器和指令译码器,其中此控制器响应以将来自输入输出接口的数据储存于多个缓冲单元的被选择的储存元件中以准备执行CIM操作指令。
本公开提出一种执行具有存储器和页缓冲器的集成电路的方法。此方法包括将数据储存于页缓冲器中作为运算的输入;自存储器加载数据作为运算的输入,并在页缓冲器中执行运算以提供操作结果。此外,此方法可包括应用分析基准至操作结果以产生分析结果,并储存分析结果至可存取存储器(accessible memory)中,例如为控制缓存器(controlregister)。此外,此方法可包括传输操作结果至快取(cache)以用于数据输出。此方法可包括设定操作类型(operation type)以选择用于页缓冲器中的运算的操作,例如通过写入操作识别符(operation identifier)至控制缓存器。此外,此方法可包括对操作结果设定分析基准。
本公开提出一种执行具有存储器和页缓冲器的集成电路的方法,此方法包括设定CIM运算操作,此CIM运算操作包括对储存在页缓冲器的缓冲单元中的数据依序执行超过一个的逻辑操作。
本公开提出一种执行具有存储器和页缓冲器的集成电路的方法,此方法包括提供用以执行超过一个的逻辑操作及用以响应设定数据(例如为控制缓存器中的数据)以选择待使用的逻辑操作的运算电路。控制缓存器可包括指示(indicating)逻辑操作的类型、指示是否存在超过一个依序执行的操作、以及指示用于逻辑操作的输入数据的来源等设定数据。
总体来说,本公开提出一种用于提高CIM装置的效率和性能的技术。
可通过参阅所附附图、实施方式和随附的申请专利范围的内容而得知所提出的技术的其他方面和优点。
附图说明
图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:输入输出接口;
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~14C提供本公开实施例的详细说明。
图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所示,此组控制缓存器可包括分析结果缓存器112以用于储存数据分析电路176的输出数据和设定数据及储存CIM电路174的设定数据。
集成电路存储器装置100上的具有指令译码器108的控制逻辑110包括响应诸如来自输入输出接口190在线路(line)191上所接收的指令逻辑(如为一个以上的状态器(statemachine)),以执行存储器操作,包括读取、编程、擦除、缓存器读取、缓存器写入等。控制逻辑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。每一缓冲单元可包括多个储存元件,例如为如本公开所述的支持每个存储单元(memorycell)的多位页面读取和页面写入及支持跨页面和跨页面的区段逐位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上的接口频率(interfaceclock)的接口时钟频率(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上的接口频率(interfaceclock)的接口时钟频率(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位的操作结果。此外,数据分析电路可用以对结果数据页中的超过二个的位进行操作,或进行适合特定需要的其他功能。
数据分析电路可执行于多个循环中,对一16KB结果数据页在例如一16B区段中应用分析操作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
图5表示可在一些实施例中应用的页面区段。如图5所示,页面500为自存储器阵列并行传输至页缓冲器的数据量。一页面可包括如16kB加上2kB额外数据。在一些装置中,页面会更小或更大以适应特定配置。页面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列。响应装置自主机接收的写入缓存器指令(writeregister command)以执行操作。此外,步骤1010,此些步骤包括加载特征控制缓存器以设定数据分析的内部分析基准,举例为图6所示的控制缓存器的参数P1列。步骤1020,为了执行指定操作,输入数据被置于页缓冲单元的储存元件选择的线路中以提供输入,在此种情况下为指定逻辑功能使用的输入1(Input1)和输入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)」或自存储器读取的页面上的逻辑功能结果,匹配自主机写入页缓冲器或自存储器中的另一个位置读取的页面。主机使用本公开所说明的技术可在无需将数据自存储器芯片移动至另一芯片(如为控制器芯片)情况下进行搜索或部分搜索,从而避免输入输出传输的能耗。
虽然本公开通过参照如前详细说明的较佳实施例和示例以进行公开。然应当理解,此些实施例旨在说明而非进行限制。可预期相关技术领域的人员所思及到更改和组合,这些更改和组合将涵盖于本公开的精神和随附的申请专利的权利要求的范围内。
Claims (28)
1.一种集成电路,其特征在于,包括:
一存储器阵列,包括多条用于并行存取存储器阵列数据的数据线;
一输入输出接口;
多个数据路径电路,位于该存储器阵列与该输入输出接口之间,所述多个数据路径电路包括多个连接该存储器阵列的各该数据线的缓冲单元,每一该缓冲单元包括多个储存元件;
多个运算电路,所述多个运算电路在所述多个缓冲单元中连接各该缓冲单元,以执行各该缓冲单元的所述多个储存元件中的数据的功能,所述多个运算电路平行配置以产生包括所述多个缓冲单元的操作结果的一结果数据页;以及
一数据分析电路,连接所述多个数据路径电路,以执行该结果数据页的功能以产生一分析结果。
2.根据权利要求1所述的集成电路,其中所述多个运算电路将所述多个操作结果储存于各该缓冲单元的所述多个储存元件中。
3.根据权利要求1所述的集成电路,还包括一缓存器,以储存可经由该输入输出接口存取的该分析结果。
4.根据权利要求1所述的集成电路,其中所述多个运算电路包括多个用于执行一组功能的电路,且所述多个运算电路响应设定数据进行配置以自该组功能中选择所述多个储存元件中的数据的功能。
5.根据权利要求1所述的集成电路,其中该结果数据页的功能包括对该结果数据页中指示逻辑「1」或「0」的位进行计数。
6.根据权利要求5所述的集成电路,其中该结果数据页的功能包括将一结果计数和一阈值进行比较。
7.根据权利要求5所述的集成电路,其中该结果数据页包括多个区段,且该结果数据页的功能包括将各该区段的结果计数和一阈值进行比较。
8.根据权利要求1所述的集成电路,其中该数据分析电路响应设定数据进行配置以设定该结果数据页的功能。
9.根据权利要求1所述的集成电路,还包括一指令接口,该指令接口用以执行对各该缓冲单元的所述多个储存元件中的数据的功能进行设定的指令。
10.根据权利要求1所述的集成电路,还包括一设定缓存器,以储存各该缓冲单元的所述多个储存元件中的数据的功能的参数和该结果数据页的功能参数。
11.根据权利要求1所述的集成电路,其中所述多个运算电路用以依序执行超过一个的各该缓冲单元的所述多个储存元件中的数据的功能,以产生该结果数据页的所述多个缓冲单元的操作结果。
12.根据权利要求1所述的集成电路,其中所述多个数据路径电路包括一快取,且该数据路径电路自所述多个缓冲单元传输数据至该快取中的所述多个储存元件,以及自该快取传输数据至该输入输出接口。
13.根据权利要求12所述的集成电路,其中该数据分析电路用以存取该快取中的该结果数据页。
14.根据权利要求12所述的集成电路,其中该数据分析电路用以存取所述多个缓冲单元中的所述多个储存元件中的该结果数据页。
15.根据权利要求1所述的集成电路,其中该数据分析电路配置成该存储器阵列的一编程操作中的一失败位检测器。
16.根据权利要求1所述的集成电路,还包括一控制器以及一指令译码器,该控制器响应对逻辑操作进行设定的指令及响应对分析基准进行调整的指令。
17.根据权利要求1所述的集成电路,还包括一控制器,该控制器用以执行将来自该输入输出接口的数据储存于所述多个缓冲单元的被选择的储存元件中的功能。
18.根据权利要求1所述的集成电路,其中所述多个缓冲单元的所述多个储存元件中的数据的功能为对各该缓冲单元的二个以上的所述多个储存元件中的数据进行的一逐位逻辑操作。
19.一种执行集成电路的方法,该集成电路具有一存储器以及一页缓冲器,该页缓冲器包括多个储存元件的多条线路,该执行方法包括:
储存一第一数据至该页缓冲器中的一第一线路,以作为一运算的输入;
储存一第二数据至该页缓冲器中的一第二线路,以作为该运算的输入;以及
在该页缓冲器中执行该运算以提供多个操作结果。
20.根据权利要求19所述的执行集成电路的方法,还包括:
储存所述多个操作结果至所述多个线路的其中一个。
21.根据权利要求19所述的执行集成电路的方法,其中储存该第二数据至该页缓冲器中的该第二线路的步骤包括:
自该存储器加载该第二线路的该第二数据。
22.根据权利要求19所述的执行集成电路的方法,还包括:
应用一分析基准至所述多个操作结果以产生一分析结果并储存该分析结果至一可存取存储器。
23.根据权利要求19所述的执行集成电路的方法,还包括:
传输所述多个操作结果至一快取以用于数据输出。
24.根据权利要求19所述的执行集成电路的方法,还包括:
设定一操作类型以选择用于该页缓冲器中的该运算的一操作。
25.根据权利要求19所述的执行集成电路的方法,还包括:
通过写入一操作识别符至一控制缓存器来设定一操作类型以选择用于该页缓冲器中的该运算的一操作。
26.根据权利要求19所述的执行集成电路的方法,还包括:
应用一分析基准至所述多个操作结果以产生一分析结果并储存该分析结果至一可存取存储器;以及
对该运算的结果设定该分析基准。
27.根据权利要求26所述的执行集成电路的方法,还包括:
移动所述多个操作结果至一快取;以及
应用该分析基准于该快取中的所述多个操作结果。
28.根据权利要求26所述的执行集成电路的方法,还包括:
应用该分析基准至该页缓冲器的所述多个线路的其中一个中的所述多个操作结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/710,367 | 2022-03-31 | ||
US17/710,367 US20230317122A1 (en) | 2022-03-31 | 2022-03-31 | In memory data computation and analysis |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116935931A true CN116935931A (zh) | 2023-10-24 |
Family
ID=88193353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210548243.3A Pending CN116935931A (zh) | 2022-03-31 | 2022-05-18 | 集成电路及执行其的方法 |
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 |
KR20200047551A (ko) * | 2017-07-30 | 2020-05-07 | 뉴로블레이드, 리미티드. | 메모리 기반 분산 프로세서 아키텍처 |
US11514996B2 (en) * | 2017-07-30 | 2022-11-29 | Neuroblade Ltd. | Memory-based processors |
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 |
---|---|
JP2023152261A (ja) | 2023-10-16 |
US20230317122A1 (en) | 2023-10-05 |
KR20230141396A (ko) | 2023-10-10 |
TW202340978A (zh) | 2023-10-16 |
TWI820713B (zh) | 2023-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7904639B2 (en) | Modular command structure for memory and memory system | |
US9971647B2 (en) | Apparatus and method for programming ECC-enabled NAND flash memory | |
US20190088306A1 (en) | Burst length defined page size and related methods | |
EP2487794A2 (en) | Modular command structure for memory and memory system | |
CN102132354B (zh) | 闪存中的数据的快速低功率读取 | |
US11663008B2 (en) | Managing memory device with processor-in-memory circuit to perform memory or processing operation | |
KR101397229B1 (ko) | 메모리 시스템 및 메모리를 위한 모듈러 커맨드 스트럭처 | |
US20080244369A1 (en) | Register read mechanism | |
US6801459B2 (en) | Obtaining data mask mapping information | |
KR20080068835A (ko) | 복수 개의 독립적인 직렬 링크 메모리 | |
US9189440B2 (en) | Data interleaving module | |
CN110008147A (zh) | 存储器控制器以及用于对存储模块进行访问的方法 | |
US7590027B2 (en) | Nonvolatile semiconductor memory device | |
KR20080078248A (ko) | 뱅크 id를 이용할 수 있는 메모리 서브 시스템과 그 방법 | |
US7210030B2 (en) | Programmable memory initialization system and method | |
TWI820713B (zh) | 積體電路及執行於其之方法 | |
CN101751982B (zh) | 闪存存储装置中闪存控制器与闪存芯片之间的连接方法 | |
US11972135B2 (en) | Status polling based on die-generated pulsed signal | |
CN114253464B (zh) | 控制读取请求的方法和具有主机装置的存储器控制器 | |
US11380417B1 (en) | Circuit to reduce gating overall system performance | |
TWI701553B (zh) | 反及閘快閃記憶體的讀取方法 | |
US7609562B2 (en) | Configurable device ID in non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |