CN116469426A - 存储器装置及其操作方法 - Google Patents
存储器装置及其操作方法 Download PDFInfo
- Publication number
- CN116469426A CN116469426A CN202210651752.9A CN202210651752A CN116469426A CN 116469426 A CN116469426 A CN 116469426A CN 202210651752 A CN202210651752 A CN 202210651752A CN 116469426 A CN116469426 A CN 116469426A
- Authority
- CN
- China
- Prior art keywords
- bit
- vector
- data
- state
- memory device
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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/106—Data output latches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Read Only Memory (AREA)
- Dram (AREA)
- Electrotherapy Devices (AREA)
Abstract
本公开提供一种存储器装置及其操作方法,该存储器装置包括存储器阵列,用于储存多个向量数据。各向量数据具有高有效位(MSB)向量与低有效位(LSB)向量。存储器阵列包括多个存储单元,各存储单元具有第一位及第二位。第一位用于储存各向量数据的MSB向量,第二位用于储存各向量数据的LSB向量。各该向量数据对应的一位线执行一次的位线设定,并根据该位线读取各该向量数据的该MSB向量与该LSB向量。各存储单元的阈值电压分布区分为N个状态,N为正整数且N小于2的2次方,各存储单元储存的等效位数小于2。
Description
技术领域
本公开关于一种半导体装置及其操作方法,尤其涉及一种存储器装置及存储器内运算的方法。
背景技术
人工智能的算法迅速发展,研发人员寻求适于执行人工智能的算法的硬件装置。半导体的存储器装置,例如NAND型的存储器阵列,可通过存储器内运算(in-memorycomputing,IMC)以执行人工智能的运算。当执行人工智能常用的乘积累加(Multiply-and-Accumulate,MAC)运算时,存储器阵列的每个存储单元可根据乘积运算结果输出电流至位线,并在同一条位在线累加电流而得到累加运算结果。
在存储器阵列中,以模拟方式执行MAC运算可达到较快的指令周期。然而,电流分布的重叠(overlap)可能导致运算结果的误判,而降低运算精确度。
另一方面,当读取存储器阵列储存的数据时,可能需要执行多次的位线设定(bitline setup)而耗费多次的设定时间(setup time),因而降低指令周期。
此外,当存储器阵列采用多阶存储单元(multi-level cell,MLC)(或称为「二阶存储单元」)储存数据时,存储单元的阈值电压分布具有较多数量的状态,将导致读取电压的电压间隔缩小,可能造成读取操作的错误。
基于上述技术问题,本领域技术人员致力于优化存储器单元的储存机制及IMC运算的操作方法,以提升运算精准度及指令周期。
发明内容
本公开的技术方案提供以存储器阵列执行数字方式的MAC运算、减少存储单元的阈值电压分布的状态的数量、减少位线设定的次数,以提升运算精准度及指令周期。
根据本公开的一方面提供了一种存储器装置,包括存储器阵列,用于储存多个向量数据,各向量数据具有高有效位(MSB)向量与低有效位(LSB)向量,存储器阵列包括多个存储单元,各存储单元具有第一位及第二位,第一位用于储存各向量数据的MSB向量,第二位用于储存各向量数据的LSB向量。各向量数据对应的位线执行一次的位线设定,并根据位线读取各向量数据的MSB向量与LSB向量。各存储单元的阈值电压分布区分为N个状态,N为正整数且N小于2的2次方,各存储单元储存的等效位数小于2。
根据本公开的另一方面提供了一种存储器装置的操作方法,其中存储器装置包括存储器阵列,存储器阵列包括多个存储单元,各存储单元具有第一位及第二位,操作方法包括以下步骤。储存多个向量数据于存储器阵列,各向量数据具有高有效位(MSB)向量与低有效位(LSB)向量。储存各向量数据的MSB向量于第一位。储存各向量数据的LSB向量于第二位。对于各该向量数据对应的一位线执行一次的位线设定。根据该位线读取各该向量数据的该MSB向量与该LSB向量。各存储单元的阈值电压分布区分为N个状态,N为正整数且N小于2的2次方,各存储单元储存的等效位数小于2。
通过阅读以下附图、详细说明以及本公开专利保护范围,可见本公开的其他方面以及优点。
附图说明
图1A为本公开一实施例的存储器装置的示意图;
图1B为本公开的存储器装置执行的MAC运算的流程图;
图2A为常规的2位MLC存储单元的阈值电压分布的状态的示意图;
图2B为本公开一实施例的1.5位MLC存储单元的阈值电压分布的状态的示意图;
图3为本公开的存储器装置执行的MAC运算的另一实施例的流程图;
图4A~4D为本公开的不同实施例的1.5位MLC存储单元的阈值电压分布的状态的示意图;
图5A为常规的3位TLC存储单元的阈值电压分布的状态的示意图;
图5B为本公开一实施例的TLC存储单元的阈值电压分布的状态的示意图;
图5C~5I为本公开的不同实施例的TLC的阈值电压分布的状态的示意图;
附图标记说明:
1000:存储器装置;
100:存储器阵列;
210:第一数据锁存器;
220:第二数据锁存器;
230:共用数据锁存器;
WL1~WLN:字线;
p0,q1’,q1~qN:特征向量;
S1~S5,S1’~S8’:状态;
VR1~VR7:读取电压;
VPass:通过电压;
W1~W3:电压间隔;
W1’~W4’:电压间隔;
DP_1:第一数据样式;
DP_2:第二数据样式;
DP_3:第三数据样式;
DP_4:第四数据样式;
DP_1’:第一数据样式;
DP_2’:第二数据样式;
DP_3’:第三数据样式;
DP_4’:第四数据样式;
DP_5’:第五数据样式;
DP_6’:第六数据样式;
DP_7’:第七数据样式;
DP_8’:第八数据样式;
Vt:阈值电压;
S102~S110:步骤;
S202~S210:步骤。
具体实施方式
本说明书的技术用语参照本技术领域的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释以本说明书的说明或定义为准。本公开的各个实施例分别具有一或多个技术特征。在可能实施的前提下,本领域技术人员可选择性地实施任一实施例中部分或全部的技术特征,或者选择性地将这些实施例中部分或全部的技术特征加以组合。
图1A为本公开一实施例的存储器装置1000的示意图。请参见图1A,存储器装置1000包括存储器阵列100及多个数据锁存器(data latch)210、220及230。存储器装置1000可用于执行存储器内运算(in-memory computation,IMC),例如执行乘积累加(multiply-and-accumulate,MAC)运算。本公开的存储器装置1000用于执行数字的MAC运算以提升运算精准度。数据锁存器210可称为「第一数据锁存器」,数据锁存器220可称为「第二数据锁存器」。并且,数据锁存器230可称为「共用数据锁存器(common data latch,CDL)」,可作为存储器装置1000的输入/输出接口。
存储器阵列100包括多条字线WL1~WLN,此些字线WL1~WLN的每一个可储存一个向量(vector)数据。当存储器装置1000用于执行人脸辨识算法的MAC运算时,N个人脸F1~FN的特征向量(feature vector)q1~qN可预先储存于存储器阵列100的字线WL1~WLN。例如,第1个人脸F1的特征向量q1为20个位的二进制(binary)数据「00110011001100001111」而储存于字线WL1,第2个人脸F2的特征向量q2为20个位的数据「11001100110000001111」而储存于字线WL2,依此类推。
并且,本公开的存储器阵列100之中的存储单元为1.5位的多阶存储单元(multi-level cell,MLC)。相较于常规的2位的MLC存储单元(以下简称为「2位MLC」),本公开的1.5位的MLC存储单元(以下简称为「1.5位MLC」)储存的数据量较少,等效位数为1.5位。1.5位MLC的机制将详述于后文。
数据锁存器230(即,共用数据锁存器(CDL))可暂存由存储器装置1000外部输入的向量数据。当执行人脸辨识或人脸搜索时,待辨识的人脸F0的特征向量p0可由外部输入至存储器装置1000而暂存于数据锁存器230。特征向量p0例如为20个位的「11111111000000001111」。而后,特征向量p0由数据锁存器230转移(transfer)至数据锁存器210。
可在存储器阵列100中执行「选择位线读取操作(selective BL read)」从字线WL1~WLN分别读取特征向量q1~qN,选择位线读取操作可具有乘积运算的功能。待辨识的特征向量p0亦可称为「输入特征向量p0」,预先储存的特征向量q1~qN亦可称为「权重特征向量qi」,i=1~N。选择位线读取操作可达成输入特征向量p0与权重特征向量qi的乘积运算。当特征向量p0的位与特征向量qi的对应位皆为「1」时,选择位线读取操作可将特征向量qi的该位读取为「1」。当特征向量p0的位为「0」或特征向量qi的对应位为「0」时,选择位线读取操作可将特征向量qi的该位读取为「0」。据此,选择位线读取操作得到的输出结果qi’=p0*qi。输出结果qi’亦可称为「输出特征向量qi’」。例如,特征向量p0=「11111111000000001111」,第1个人脸F1的特征向量q1=「00110011001100001111」,选择位线读取操作得到的输出特征向量q1’=「00110011000000001111」。而后,输出特征向量q1’可写入数据锁存器220。
然后,可对于数据锁存器220暂存的输出特征向量q1’执行累加运算,以累加输出特征向量q1’之中的「1」的位。在累加运算的一种示例中,存储器装置1000可执行错误位计数指令(fail-bit-count)以对于输出特征向量q1’进行计数操作(counting operation)。以输出特征向量q1’=「00110011000000001111」为例,其中的8个位B0~B3、B12、B13、B16、B17为「1」,输出特征向量q1’的计数结果C1为十进制「8」,计数结果C1即为特征向量p0与特征向量q1的乘积累加结果MAC1。而后,计数结果C1可转移至数据锁存器230,并可将计数结果C1输出至存储器装置1000的外部。
在人脸辨识算法中,预先储存的人脸F1与待辨识的人脸F0之间的相似度可表示为特征向量p0与特征向量q1的内积(inner product)「||q1||||p0||cosθ」。当人脸F1与人脸F0之间的相似度越高时,角度「θ」越接近于零,特征向量p0与特征向量q1的内积接近于「||q1||||p0||」。因此,可根据特征向量p0与特征向量q1的乘积累加结果MAC1评估人脸F1与待辨识的人脸F0之间的相似度。
图1B为本公开的存储器装置1000执行的MAC运算的流程图。请参见图1B(并配合参见图1A的存储器装置1000),在步骤S102,将待辨识的人脸F0的特征向量p0输入或馈入(feed)至存储器装置1000。特征向量p0可暂存于数据锁存器230。
然后,在步骤S104,将特征向量p0从数据锁存器230(即,共用数据锁存器(CDL))转移至数据锁存器210(即,第一数据锁存器)。而后,在步骤S106,执行选择位线读取操作,以从存储器阵列100的字线WL1~WLN中分别读取出特征向量q1~qN,并对其执行乘积运算。选择位线读取操作得到的输出特征向量q1’~qN’为特征向量q1~qN与特征向量p0的乘积。输出特征向量q1’~qN’可依序暂存于数据锁存器220。
然后,在步骤S108,分别对于数据锁存器220依序暂存的输出特征向量q1’~qN’执行计数操作以得到计数结果C1。而后,在步骤S110,计数结果C1可转移至数据锁存器230,并可经由数据锁存器230输出计数结果C1。
另一方面,请参见表1及表2。表1所示为一比较例的常规的2位MLC的数据配置(data allocation)DA_1。存储器阵列的一个实体页面可包括多个逻辑页面,例如高页面(high page)及低页面(low page)。以常规的2位MLC为例,高页面对应至MLC存储单元的第一位CB1,低页面对应至MLC存储单元的第二位CB2。在比较例的数据配置DA_1中,不同的人脸的特征向量可分别储存于高页面或低页面,例如,人脸F1~FN之中的第1张人脸F1的特征向量q1储存于高页面,第2张人脸F2的特征向量q2储存于低页面。
表1(数据配置DA_1)
表2所示为本公开的1.5位MLC的数据配置DA_2。可将人脸的特征向量其中每8个位的数据区分为高有效位(most significant bit,MSB)与低有效位(least significantbit,LSB)的向量(vector)。例如,将人脸F1的特征向量q1区分为MSB向量与LSB向量,MSB向量与LSB向量例如各具有4个位。MSB向量的数据重要性较高而储存于高页面,LSB向量的数据重要性较低而储存于低页面。类似的,下一个人脸F2的特征向量q2的MSB向量储存于高页面,特征向量q2的LSB向量储存于低页面。并且,高页面对应至本公开的1.5位MLC的第一位CB1,低页面对应至1.5位MLC的第二位CB2。
表2(数据配置DA_2)
图2A为常规的2位MLC的阈值电压分布的状态的示意图。图2B为本公开一实施例的1.5位MLC的阈值电压分布的状态的示意图,可说明1.5位MLC的机制。
请先参见图2A,可将存储单元的阈值电压Vt编程为不同的电压电平,根据编程后的阈值电压Vt的分布,常规的2位MLC可具有4个状态S1’~S4’。状态S1’~S4’的数量「4」等于2的2次方。
其中,状态S1’介于0v(零电位)与读取电压VR1之间,状态S2’介于读取电压VR1与读取电压VR2之间,状态S3’介于读取电压VR2与读取电压VR3之间,状态S4’介于读取电压VR3与通过电压VPass之间。常规的2位MLC可储存2个位的数据(CB1,CB2)。其中,状态S1’对应于数据(CB1=1,CB2=1),状态S2’对应于数据(CB1=1,CB2=0),状态S3’对应于数据(CB1=0,CB2=0),状态S4’对应于数据(CB1=0,CB2=1)。常规的2位MLC的状态S1’~S4’对应的电压间距W1’~W4’较窄,可能导致数据(CB1,CB2)的读取错误,进而减损存储器内运算(例如MAC运算)的运算精确度。
请参见图2B,以本公开的1.5位MLC而言,阈值电压Vt的分布仅区分为N个状态,N小于2的2次方。例如,N=3,则1.5位MLC具有3个状态S1~S3。其中,状态S1介于0v(零电位)与读取电压VR1之间,状态S2介于读取电压VR1与读取电压VR2之间,状态S3介于读取电压VR2与通过电压VPass之间。1.5位MLC可储存的数据的等效位数为1.5位,其中,状态S1对应于数据(CB1=1,CB2=1),状态S2对应于数据(CB1=1,CB2=0),状态S3对应于数据(CB1=0,CB2=0)。换言之,1.5位MLC不包括数据(CB1=0,CB2=1),可将常规的2位MLC的状态S3’与状态S4’视为1.5位MLC的单一个状态S3。1.5位MLC的状态S1~S3对应的电压间距W1~W3大于常规的2位MLC的电压间距W1’~W4’,1.5位MLC的数据(CB1,CB2)的读取正确率可因此提升。
表3所示为第一位CB1与第二位CB2的内容的一种示例,可显示1.5位MLC的数据(CB1,CB2)与常规的2位MLC的区别。
表3
本公开的存储器装置1000除了采用1.5位的MLC以提升数据的读取正确率,在运作上,存储器装置1000可减少冗余(redundant)的位线设定(BL setup)的操作,以减少数据的读取操作所需的时间。
对于常规的2位MLC而言,低页面的第二位CB2的读取操作需执行一次的位线设定并施加一次的读取电压VR2。一次的位线设定时间t_BL_S例如为60μs,施加一次的读取电压VR2对应的读取时间t_Vread例如为15μs。即,第二位CB2的读取操作的运行时间大致为60μs+15μs=75μs。另一方面,高页面的第一位CB1的读取操作需执行一次的位线设定并施加两次的读取电压VR1、VR3。即,第一位CB1的读取操作的运行时间大致为60μs+2*15μs=90μs。由上,常规的2位MLC的高页面与低页面的数据(CB1,CB2)的读取时间大致为75μs+90μs=165μs。
此外,对于常规的1位的单阶存储单元(single-level cell,SLC)而言,由于常规的1位SLC仅储存1个位的数据,读取2个位的数据需要执行两次读取操作。一次读取操作需执行一次的位线设定并施加一次的读取电压VR1,运行时间大致为60μs+15μs=75μs。因此,常规的1位SLC读取2个位的数据的读取时间大致为2*75μs=150μs。
相对地,本公开的存储器装置1000在进行第一位CB1及第二位CB2的读取操作时仅执行一次的位线设定,因此仅需耗费一次的位线设定时间t_BL_S=60μs。并且,本公开的存储器装置1000采用的1.5位MLC仅操作于2个读取电压VR1、VR2,因此仅需耗费两次的读取时间t_Vread,即2*15μs=30μs。由上,1.5位MLC的高页面与低页面的数据(CB1,CB2)的读取时间大致为60μs+30μs=90μs。据此,相较于常规的2位MLC的读取时间165μs及常规的1位SLC的读取时间150μs,本公开的存储器装置1000执行仅执行一次的位线设定并配合于1.5位MLC的机制而在读取时间延迟(latency)上能够大幅改善。
图3为本公开的存储器装置1000执行的MAC运算的另一实施例的流程图。请参见图3,在步骤S202中,判断存储器装置1000的状况(condition)。当判断存储器装置1000将执行MAC运算时,接着进行步骤S204:从1.5位MLC组成的存储器阵列100中读取特征向量qi的数据。例如,执行选择位线读取操作的指令,执行一次位线设定并施加两次读取电压VR1、VR2以读取1.5位MLC的每一个数据(CB1,CB2)。存储器阵列100的高页面储存的第一位CB1对应于特征向量qi的MSB向量,低页面储存的第二位CB2对应于特征向量qi的LSB向量。可对于MSB向量与LSB向量分别执行不同数据量的计数操作,以进行累加运算。
另一方面,在步骤S202中,当判断存储器装置1000将移除(remove)数据时,接着进行步骤S210:删除数据。例如,删除存储器阵列100储存的N个特征向量q1~qN。
另一方面,在步骤S202中,当判断存储器装置1000将产生(create)数据、插入(insert)数据或更新(update)数据时,接着进行步骤S206:量化(quantize)并计算修正后(revised)的特征向量qi。接着,进行步骤S208:将修正后的特征向量qi的数据编程写入(program)存储器阵列100。特征向量qi的数据的写入操作可根据图2B所示的1.5位MLC的数据样式(data pattern)及表2所示的数据配置而执行。
图4A~4D为本公开的不同实施例的1.5位MLC的阈值电压分布的状态的示意图,分别说明1.5位MLC的不同数据样式。请先参见图4A,在1.5位MLC的第一数据样式DP_1中,阈值电压Vt分布的状态S1对应于数据(CB1=1,CB2=1),状态S2对应于数据(CB1=1,CB2=0),状态S3对应于数据(CB1=0,CB2=0)。常规的2位MLC的状态S3’及状态S4’可视为1.5位MLC的单一的状态S3,并且,1.5位MLC的第一数据样式DP_1不包括数据(CB1=0,CB2=1),而是将数据(CB1=0,CB2=1)其中的第二位CB2=「1」视为「0」。由于第二位CB2对应于低页面以储存数据重要性较低的LSB向量,将第二位CB2=「1」视为「0」不会影响数据精确度。
请参见图4B,在1.5位MLC的第二数据样式DP_2中,阈值电压Vt分布的状态S1对应于数据(CB1=1,CB2=1),状态S2对应于数据(CB1=1,CB2=0),状态S3对应于数据(CB1=0,CB2=1)。常规的2位MLC的状态S3’及状态S4’可视为1.5位MLC的单一个状态S3,并且,1.5位MLC的第二数据样式DP_2不包括数据(CB1=0,CB2=0),而是将数据(CB1=0,CB2=0)其中的第二位CB2=0视为第二位CB2=1。
请参见图4C,在1.5位MLC的第三数据样式DP_3中,阈值电压Vt分布的状态S1对应于数据(CB1=1,CB2=0),状态S2对应于数据(CB1=0,CB2=0),状态S3对应于数据(CB1=0,CB2=1)。常规的2位MLC的状态S1’及状态S2’可视为1.5位MLC的单一的状态S1,并且,1.5位MLC的第三数据样式DP_3不包括数据(CB1=1,CB2=1),而是将数据(CB1=1,CB2=1)其中的第二位CB2=1视为第二位CB2=0。
请参见图4D,在1.5位MLC的第四数据样式DP_4中,阈值电压Vt分布的状态S1对应于数据(CB1=1,CB2=1),状态S2对应于数据(CB1=0,CB2=0),状态S3对应于数据(CB1=0,CB2=1)。常规的2位MLC的状态S1’及状态S2’可视为1.5位MLC的单一的状态S1,并且,1.5位MLC的第四数据样式DP_4不包括数据(CB1=1,CB2=0),而是将数据(CB1=1,CB2=0)其中的第二位CB2=「0」视为「1」。
图4A~4D所示的1.5位MLC的第一数据样式DP_1至第四数据样式DP_4可配合于表2所示的数据配置DA_2而实施于本公开的存储器装置1000,用于储存特征向量qi的MSB向量及LSB向量以执行MAC运算。在第一数据样式DP_1至第四数据样式DP_4中,第二位CB2=「0」视为「1」。由于第二位CB2对应于低页面以储存数据重要性较低的LSB向量,第二位CB2=「0」视为「1」的影响不大。
在其他示例中,本公开的存储器装置1000的存储单元亦可为三阶存储单元(triple level cell,TLC),TLC存储单元可具有第一位CB1、第二位CB2及第三位CB3。请先参见图5A的常规的3位TLC存储单元的阈值电压分布的状态的示意图。常规的3位TLC可具有8个状态S1’~S8’而对应至3个位的数据(CB1,CB2,CB3)。状态S1’~S8’的数量「8」等于2的3次方。其中,状态S1’对应于数据(CB1=1,CB2=1,CB3=1),状态S2’对应于数据(CB1=1,CB2=1,CB3=0),状态S3’对应于数据(CB1=1,CB2=0,CB3=0),状态S4’对应于数据(CB1=0,CB2=0,CB3=0),状态S5’对应于数据(CB1=0,CB2=1,CB3=0),状态S6’对应于数据(CB1=0,CB2=1,CB3=1),状态S7’对应于数据(CB1=0,CB2=0,CB3=1),状态S8’对应于数据(CB1=1,CB2=0,CB3=1)。状态S1’~S8’分别对应至较窄的电压间距W1’~W8’,可能导致数据(CBl,CB2,CB3)的读取错误。
请参见图5B绘示了本公开一实施例的TLC存储单元的阈值电压分布的状态的示意图,本实施例的TLC的阈值电压Vt分布仅区分为M个状态,M小于2的3次方。例如,M=5,则本实施例的TLC具有5个状态S1~S5。。其中,状态S1对应于数据(CB1=1,CB2=1,CB3=1),状态S2对应于数据(CB1=1,CB2=0,CB3=0),状态S3对应于数据(CB1=0,CB2=0,CB3=0),状态S4对应于数据(CB1=0,CB2=1,CB3=1),状态S5对应于数据(CB1=0,CB2=0,CB3=1)。本实施例的TLC储存的数据不包括数据(CB1=1,CB2=1,CB3=0),可将常规的3位TLC的状态S1’与状态S2’视为本实施例的TLC的单一个状态S1。类似的,将常规的3位TLC的状态S4’与状态S5’视为本实施例的TLC的单一个状态S3,并排除数据(CB1=0,CB2=1,CB3=0)。将常规的3位TLC的状态S7’与状态S8’视为本实施例的TLC的单一个状态S5而排除数据(CB1=1,CB2=0,CB3=1)。本实施例的TLC储存的数据的等效位数虽小于3位,然而本实施例的TLC的状态S1~S5对应的电压间距较大,可提升数据(CB1,CB2,CB3)的读取正确率。图5B所示的状态S1~S5与其对应的数据(CB1,CB2,CB3)的样式可称为TLC的第一数据样式DP_1’。
图5C~5I为本公开的不同实施例的TLC的阈值电压分布的状态的示意图,分别说明TLC的不同数据样式。
首先,图5C所示的第二数据样式DP_2’类似于第一数据样式DP_1’,差异处在于:将常规的3位TLC的状态S7’与状态S8’视为本实施例的TLC的单一个状态S5而排除数据(CB1=0,CB2=0,CB3=1)。
根据不同的数据排列,可得到TLC的其他数据样式。图5D所示的第三数据样式DP_3’类似于第一数据样式DP_1’,差异处在于:排除数据(CB1=0,CB2=0,CB3=0)。图5E所示的第四数据样式DP_4’类似于第一数据样式DP_1’,差异处在于:排除数据(CB1=0,CB2=1,CB3=1)。图5F所示的第五数据样式DP_5’类似于第三数据样式DP_3’,差异处在于:排除数据(CB1=0,CB2=0,CB3=1)。图5G所示的第六数据样式DP_6’类似于第四数据样式DP_4’,差异处在于:排除数据(CB1=0,CB2=0,CB3=1)。图5H所示的第七数据样式DP_7’类似于第四数据样式DP_4’,差异处在于:排除数据(CB1=0,CB2=0,CB3=0)。图5I所示的第八数据样式DP_8’类似于第七数据样式DP_7’,差异处在于:排除数据(CB1=0,CB2=0,CB3=1)。
另一方面,请参见表4及表5。表4所示为另一比较例的常规的3位TLC的数据配置DA_3。存储器阵列的一个实体页面可包括高页面、中页面及低页面,分别对应至TLC存储单元的第一位CB1、第二位CB2及第三位CB3。人脸F1~FN之中的第1张人脸F1的特征向量q1储存于高页面,第2张人脸F2的特征向量q2储存于中页面,第3张人脸F3的特征向量q3储存于低页面。
表4(数据配置DA_3)
表5所示为本公开的TLC的数据配置DA_4。可将每一个特征向量的数据区分为第一部分P1、第二部分P2及第三部分P3,根据各部分的数据重要性程度而分别储存于高页面、中页面及低页面。
表5(数据配置DA_4)
上述实施例说明等效位数较少的MLC与TLC的各种数据样式及数据配置。类似的机制亦可应用于四阶存储单元(quad level cell,QLC)。
虽然本公开已以较佳实施例及示例详细公开如上,可理解的是,这些示例用于说明而非限制的意义。可预期的是,所属技术领域中本领域技术人员可想到多种修改及组合,其多种修改及组合落在本公开的精神以及随附的权利要求范围内。
Claims (10)
1.一种存储器装置,其特征在于,包括:
一存储器阵列,用于储存多个向量数据,各该向量数据具有一高有效位(MSB)向量与一低有效位(LSB)向量,该存储器阵列包括:
多个存储单元,各该存储单元具有一第一位及一第二位,该第一位用于储存各该向量数据的该MSB向量,该第二位用于储存各该向量数据的该LSB向量;
其中,各该向量数据对应的一位线执行一次的位线设定,并根据该位线读取各该向量数据的该MSB向量与该LSB向量,并且各该存储单元的阈值电压分布区分为N个状态,N为正整数且N小于2的2次方,各该存储单元储存的等效位数小于2。
2.根据权利要求1所述的存储器装置,其中该存储器阵列的一实体页面具有多个逻辑页面,所述多个逻辑页面包括一高页面及一低页面,该高页面对应于该第一位以储存该MSB向量,该低页面对应于该第二位以储存该LSB向量。
3.根据权利要求1所述的存储器装置,其中各该存储单元为多阶存储单元,各该存储单元的阈值电压分布区分为一第一状态、一第二状态及一第三状态;
其中,该第一状态仅对应于第一位为「1」且第二位为「0」的数据,或该第一状态仅对应于第一位为「1」且第二位为「1」的数据。
4.根据权利要求1所述的存储器装置,其中各该存储单元为二阶存储单元,各该存储单元的阈值电压分布区分为一第一状态、一第二状态及一第三状态;
其中,该第三状态仅对应于第一位为「0」且第二位为「0」的数据,或该第三状态仅对应于第一位为「0」且第二位为「1」的数据。
5.根据权利要求1所述的存储器装置,其中各该存储单元为三阶存储单元,各该存储单元还具有一第三位,该第一位用于储存各该向量数据的一第一部分,该第二位用于储存各该向量数据的一第二部分,且该第三位用于储存各该向量数据的一第三部分;
其中,各该存储单元的阈值电压分布区分为N个状态,N为正整数且N小于2的3次方,各该存储单元储存的等效位数小于3。
6.根据权利要求1所述的存储器装置,其中所述多个向量数据包括多个权重特征向量及一输入特征向量,并且该存储器阵列包括:
多条字线,用于储存所述多个权重特征向量;
其中,该存储器装置执行一选择位线读取操作,以从所述多个字线分别读取所述多个权重特征向量。
7.根据权利要求6所述的存储器装置,还包括:
一共用数据锁存器,用于接收该输入特征向量;以及
一第一数据锁存器,用于暂存该输入特征向量;
其中,该存储器装置根据该输入特征向量与所述多个权重特征向量的其中一个执行一乘积运算。
8.根据权利要求7所述的存储器装置,还包括:
一第二数据锁存器,用于暂存该乘积运算的结果;
其中,该存储器装置根据该乘积运算的结果执行一累加运算。
9.一种存储器装置的操作方法,其中该存储器装置包括一存储器阵列,该存储器阵列包括多个存储单元,各该存储单元具有一第一位及一第二位,该操作方法包括:
储存多个向量数据于该存储器阵列,各该向量数据具有一高有效位(MSB)向量与一低有效位(LSB)向量;
储存各该向量数据的该MSB向量于该第一位;
储存各该向量数据的该LSB向量于该第二位;
对于各该向量数据对应的一位线执行一次的位线设定;以及
根据该位线读取各该向量数据的该MSB向量与该LSB向量;
其中,各该存储单元的阈值电压分布区分为N个状态,N为正整数且N小于2的2次方,各该存储单元储存的等效位数小于2。
10.根据权利要求9所述的操作方法,其中该存储器阵列的一实体页面具有多个逻辑页面,所述多个逻辑页面包括一高页面及一低页面,该高页面对应于该第一位以储存该MSB向量,该低页面对应于该第二位以储存该LSB向量。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202263298612P | 2022-01-11 | 2022-01-11 | |
| US63/298,612 | 2022-01-11 | ||
| US17/830,471 | 2022-06-02 | ||
| US17/830,471 US11966628B2 (en) | 2022-01-11 | 2022-06-02 | Memory device and operating method thereof |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116469426A true CN116469426A (zh) | 2023-07-21 |
Family
ID=87069563
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210651752.9A Pending CN116469426A (zh) | 2022-01-11 | 2022-06-10 | 存储器装置及其操作方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11966628B2 (zh) |
| CN (1) | CN116469426A (zh) |
| TW (1) | TWI806640B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118280423B (zh) * | 2024-05-30 | 2024-08-16 | 苏州元脑智能科技有限公司 | 闪存读取方法、装置、计算机设备及存储介质 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170083827A1 (en) * | 2015-09-23 | 2017-03-23 | Qualcomm Incorporated | Data-Driven Accelerator For Machine Learning And Raw Data Analysis |
| US11043205B1 (en) * | 2017-06-27 | 2021-06-22 | Amazon Technologies, Inc. | Scoring of natural language processing hypotheses |
| WO2019246064A1 (en) * | 2018-06-18 | 2019-12-26 | The Trustees Of Princeton University | Configurable in-memory computing engine, platform, bit cells and layouts therefore |
| CN109344840B (zh) * | 2018-08-07 | 2022-04-01 | 深圳市商汤科技有限公司 | 图像处理方法和装置、电子设备、存储介质、程序产品 |
| KR102801483B1 (ko) * | 2018-12-17 | 2025-05-02 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
| US11474785B2 (en) * | 2019-02-08 | 2022-10-18 | Samsung Electronics Co., Ltd. | Memory device and computing device using the same |
| US11941407B2 (en) * | 2019-05-20 | 2024-03-26 | Gsi Technology Inc. | Pipeline architecture for bitwise multiplier-accumulator (MAC) |
| US12124942B2 (en) * | 2019-12-03 | 2024-10-22 | Anaflash Inc. | Serialized neural network computing unit |
| US12086708B2 (en) * | 2020-09-11 | 2024-09-10 | Naver Corporation | Methods and systems for producing neural sequential models |
-
2022
- 2022-06-02 US US17/830,471 patent/US11966628B2/en active Active
- 2022-06-02 TW TW111120620A patent/TWI806640B/zh active
- 2022-06-10 CN CN202210651752.9A patent/CN116469426A/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| TW202329121A (zh) | 2023-07-16 |
| US11966628B2 (en) | 2024-04-23 |
| US20230221882A1 (en) | 2023-07-13 |
| TWI806640B (zh) | 2023-06-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10691537B2 (en) | Storing deep neural network weights in non-volatile storage systems using vertical error correction codes | |
| US11625584B2 (en) | Reconfigurable memory compression techniques for deep neural networks | |
| US12242966B2 (en) | Acceleration of model/weight programming in memristor crossbar arrays | |
| US12033699B2 (en) | Memory device and operation method thereof for performing multiply accumulate operation | |
| US11056191B2 (en) | Nonvolatile memory device having different DQ lines receiving DQ line codes and method of operating nonvolatile memory device using different threshold voltages or error margins | |
| KR20110028228A (ko) | 다중레벨 플래시 메모리의 에러정정 | |
| US11915766B2 (en) | Automatic program voltage selection network | |
| CN112837738A (zh) | 控制非易失性存储器件的操作的方法、用于执行该方法的数据转换器以及存储系统 | |
| US11335414B2 (en) | Method of determining read reference voltage for blocks based on number of erroneous bits | |
| TWI788128B (zh) | 記憶體裝置及其操作方法 | |
| TWI806640B (zh) | 記憶體裝置及其操作方法 | |
| CN108038548B (zh) | 一种图像二值化的量子实现线路方法 | |
| TWI806641B (zh) | 記憶體裝置及其操作方法 | |
| Zhang et al. | Xma: A crossbar-aware multi-task adaption framework via shift-based mask learning method | |
| JP7279293B2 (ja) | メモリデバイスおよびその動作方法 | |
| TWI783573B (zh) | 記憶體裝置及其操作方法 | |
| TWI777645B (zh) | 記憶體裝置及其操作方法 | |
| TWI821746B (zh) | 記憶體裝置及其操作方法 | |
| CN115206373A (zh) | 使用多阶存储单元的存储装置及数据存取方法 | |
| US12475935B2 (en) | Memory system and operating method of the same | |
| CN119207518B (zh) | 执行存内计算的方法、装置及存储系统 | |
| CN116052731B (zh) | 存储器的多位量化方法 | |
| US9361181B2 (en) | Error protection for memory devices | |
| CN119181408A (zh) | 适用于存算一体化的方法、存储装置及存储系统 | |
| TW202536626A (zh) | 神經網路系統、浮點數的處理方法與裝置 |
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 |