CN103811054B - 一种NAND Flash存储器、NAND Flash存储器实现方法及其*** - Google Patents
一种NAND Flash存储器、NAND Flash存储器实现方法及其*** Download PDFInfo
- Publication number
- CN103811054B CN103811054B CN201210461393.7A CN201210461393A CN103811054B CN 103811054 B CN103811054 B CN 103811054B CN 201210461393 A CN201210461393 A CN 201210461393A CN 103811054 B CN103811054 B CN 103811054B
- Authority
- CN
- China
- Prior art keywords
- address
- patterns
- memory block
- mlc
- tlc
- 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.)
- Active
Links
Landscapes
- Read Only Memory (AREA)
Abstract
本发明公开了一种NAND Flash存储器、NAND Flash存储器实现方法及其***,所述NAND Flash存储器包括寄存器、比较器、地址译码器和存储阵列,可实现第一次使用时预先在所述寄存器中存储所述NAND Flash存储器的存储模式和配置信息,将存储模式配置成包括部分SLC模式部分MLC模式、部分SLC模式部分TLC模式、部分MLC模式部分TLC模式、部分SLC模式部分MLC模式部分TLC模式中的一种模式,其中配置信息包括存储块的地址和存储块的类型,其中所述存储块类型为SLC类型、MLC类型或TLC类型。本发明能实现对各存储块的灵活配置,以实现多种存储模式,使存储器的自由度更高。
Description
技术领域
本发明涉数据存储技术领域,尤其涉及一种NAND Flash存储器、NAND Flash存储器实现方法及其***。
背景技术
闪存(Flash Memory,闪速存储器,简称闪存)是诞生于20世纪80年代末的一种新型存储介质。由于具有非易失、高速、高抗震、低功耗、小巧轻便等优良特性,闪存近年来被广泛应用于移动通信、数据采集等领域的嵌入式***和便携式设备上,如手机、便携式媒体播放器、数码相机、数码摄像机、传感器,也用于航空航天等领域,如航空航天器等。
通常,闪存在存储数据“0”或“1”的一个单元中存储1位数据。为了实现比此更强的存储能力,实现更高密度的存储,可实现在一个单元中存储两位或多位数据。
NAND Flash是一种可在线进行电擦写的非易失半导体闪存,具有擦写速度快、低功耗、大容量、低成本等优点,应用非常广泛。NAND Flash中存在着两种主流存储模式,即单值存储(SLC)和多值存储(MLC)。单值存储1个存储单元存储1bit数据,速度快,可反复擦写次数多,可靠性更高。但是容量小,1bit相应的单价高。多值存储1个存储单元存储2bit数据,速度相对慢一些,可反复擦写次数稍弱一些。但是容量大,相应的1bit单价低。两种模式各有特点,都有各自相对擅长的应用。
而在一些场合中,既要求单值存储的高速度,又要求多值存储的大容量,这种特殊的需求就要求存储器***拥有一定的自由度,可灵活配置存储芯片,使其部分实现多值存储,部分实现单值存储,或者全部为某一种模式的存储。
发明内容
本发明的目的在于提出一种NAND Flash存储器、NAND Flash存储器实现方法及其***。能够多种存储模式并存。
为达此目的,本发明采用以下技术方案:
一种NAND Flash存储器,所述NAND Flash存储器包括寄存器、比较器、地址译码器和存储阵列;
第一次使用时,预先在所述寄存器中存储所述NAND Flash存储器的存储模式和配置信息,其中所述存储模式包括部分SLC模式部分MLC模式、部分SLC模式部分TLC模式、部分MLC模式部分TLC模式、部分SLC模式部分MLC模式部分TLC模式,其中所述配置信息包括存储块的地址和存储块的类型,其中所述存储块类型为SLC类型、MLC类型或TLC类型;
当所述NAND Flash收到读取地址时,用所述比较器将所述读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式,所述地址译码器依据所述存储模式对所述读取地址进行译码;
所述存储阵列根据译码后的地址返回对应的数据块的信息。
进一步地,第一次使用时进一步包括:
若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则:
如果所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块,用n+2位地址存储各存储块的地址,指定最后两位用于存储TLC模式的存储块的电位信息,进一步指定倒数第二位用于存储MLC模式的存储块的电位信息;
如果所述NAND Flash存储器的存储阵列中没有配置包含TLC模式的存储块而配置有包含MLC模式的存储块时,用n+1位地址存储各存储块的地址,指定最后一位用于存储MLC模式的存储块的电位信息;
如果所述NAND Flash存储器的存储阵列中既没配置包含TLC模式的存储块也没配置有包含MLC模式的存储块时,使用n位数据来存储各存储块的地址;
进一步地,所述依据所述存储模式对所述读取地址进行译码包括:
当所述读取地址为n位时,用所述地址译码器对所述读取地址进行直接译码;
当所述读取地址为n+1位时,若所述存储模式为SLC模式,则将所述读取地址中最后一位设置为无效并用所述地址译码器进行译码,否则,用所述地址译码器对所述读取地址进行直接译码;
当所述读取地址为n+2位时,若所述存储模式为SLC模式,则将所述读取地址中最后两位设置为无效并用所述地址译码器进行译码;若所述存储模式为MLC模式,则将所述读取地址中最后一位设置为无效并用所述地址译码器进行译码;若所述存储模式为TLC模式,则用所述地址译码器对所述读取地址进行直接译码;
所述根据译码后的地址从所述存储阵列中读取信息包括:
计算所述译码后的地址的位数;
若该地址为n位,则该存储块为SLC模式,按该地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,按该地址的前n位地址定位到对应块,按最后一位指定的电位信息读取该对应块的所述电位的数据;
若该地址为n+2位,则该存储块为TLC模式,按该地址的前n位地址定位到对应块,按最后两位指定的电位信息读取该对应块的所述电位的数据。
进一步地,
第一次使用时,将所述存储模式设置为部分SLC模式部分MLC模式,将预先设置为MLC模式的存储块的地址存储在所述寄存器中;
若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则用n+1位地址存储各存储块的地址,指定最后一位用于存储MLC模式的存储块的电位信息;
当所述NAND Flash收到读取地址时:
用所述比较器将所述读取地址的前n位与所述寄存器中的存储的地址进行比较,查看所述读取地址是否所述寄存器中,若是,则确定该存储块为MLC模式,否则确定该存储块为SLC模式;
若所述存储模式为SLC模式,则将所述读取地址中最后一位设置为无效并进行译码;若所述存储模式为MLC模式,则直接进行译码,即对AD<n:0>进行译码;
当使用所述译码器获取的译码地址从存储阵列读取信息时,计算该译码地址的位数,
若该地址为n位,则该存储块为SLC模式,按该地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,按该地址的前n位地址定位到对应块,按最后一位指定的电位信息读取该对应块的所述电位的数据。
进一步地,
第一次使用时,将所述存储模式设置为部分SLC模式部分MLC模式部分TLC模式,在寄存器中分别建立两个地址列表分别用于存储MLC模式的存储块的地址和TLC模式的存储块的地址,将设定为MLC模式的存储块的地址存储在MLC列表中,将设定为TLC模式的存储块的地址存储在TLC列表中;
若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则用n+2位地址存储各存储块的地址,指定最后两位用于存储TLC模式的存储块的电位信息,进一步地指定倒数第二位且于存储MLC模式的存储块的电位信息;
当所述NAND Flash收到读取地址时:
用所述比较器将所述读取地址的前n位与寄存器中MLC列表中的地址进行比较,查看所述读取地址是否在MLC列表中,若是,则确定该存储块为MLC模式,否则,进一步用所述比较器将所述读取地址的前n位与所述寄存器中TLC列表中的地址进行比较,查看所述读取地址是否在TLC列表中,若是,则确定该存储块为TLC模式,否则确定该存储块为SLC模式;
若所述存储模式为SLC模式,则将所述读取地址中最后两位设置为无效并进行译码;若所述存储模式为MLC模式,则将所述读取地址中最后一位设置为无效并进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码;
当使用所述译码器获取的译码地址从存储阵列读取信息时,计算该译码地址的位数,
若该地址为n位,则该存储块为SLC模式,按该地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,按该地址的前n位地址定位到对应块,按最后一位指定的电位信息读取该对应块的所述电位的数据;
若该地址为n+2位,则该存储块为TLC模式,按该地址的前n位地址定位到对应块,按最后两位指定的电位信息读取该对应块的所述电位的数据。
根据本发明的同一构思,本发明还提供了一种NAND Flash存储器实现方法,该方法基于包括寄存器、比较器、地址译码器和存储阵列的NAND Flash存储器实现,其特征在于,包括:
第一次使用所述NAND Flash存储器时,预先对所述NAND Flash存储器的存储阵列的各存储块的存储模式进行配置,将配置信息存储在所述寄存器中,其中所述存储模式包括SLC模式、MLC模式和TLC模式;
若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则包括如下设置:
当所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块时,使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息,进一步从所述指定的两位中预先指定一位用于存储MLC模式的存储块的电位信息,另一位用于存储存储块为TLC模式时的无效信息;
当所述NAND Flash存储器的存储阵列中没有配置包含TLC模式的存储块而配置有包含MLC模式的存储块时,使用n+1位数据来存储各存储块的地址,从所述地址中预先指定一位用于存储MLC模式的存储块的电位信息;
当所述NAND Flash存储器的存储阵列中既没配置包含TLC模式的存储块也没配置有包含MLC模式的存储块时,使用n位数据来存储各存储块的地址;
当所述NAND Flash存储器接到读取命令时,用所述比较器将所述读取命令中的读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式;
当所述读取命令中的读取地址为n位时,所述地址译码器直接进行译码;
当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将所述地址中预先指定的用于存储MLC模式的存储块的电位信息设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于存储存储块为TLC模式时的无效信息设置为无效并进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码;
当所述存储阵列从所述地址译码器获取地址时,计算该地址的位数,进行如下操作:
若该地址为n位,则该存储块为SLC模式,按所述n位地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,从预设的一位电位信息位读取电位信息,从其他位读取地址信息;
若该地址为n+2位,则该存储块为TLC模式,从预设的两位电位信息位读取电位信息,从其他位读取地址信息。
进一步地,
当使用n+2位信息来存储各存储块的地址时,预设用最后两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定倒数第二位用于存储MLC模式的存储块的电位信息,预先指定最后一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定最后一位用于存储MLC模式的存储块的电位信息;
当所述存储阵列从所述地址译码器获取地址为n+2位时,预先指定最后两位用于存储TLC模式的存储块的电位信息。
进一步地,
当使用n+2位信息来存储各存储块的地址时,预设用开始两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定第二位用于存储MLC模式的存储块的电位信息,预先指定第一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定第一位用于存储MLC模式的存储块的电位信息;
当所述存储阵列从所述地址译码器获取地址为n+2位时,预先指定前两位用于存储TLC模式的存储块的电位信息。
本发明提出了一种NAND Flash存储器实现***,该***基于包括寄存器、比较器、地址译码器和存储阵列的NAND Flash存储器实现,包括:
存储模式配置模块,用于第一次使用所述NAND Flash存储器时,预先对所述NANDFlash存储器的存储阵列的各存储块的存储模式进行配置,将配置信息存储在所述寄存器中,其中所述存储模式包括SLC模式、MLC模式和TLC模式;
存储地址设置模块,若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则用于进行如下设置:
用于当所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块时,使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息,进一步从所述指定的两位中预先指定一位用于存储MLC模式的存储块的电位信息,另一位用于存储存储块为TLC模式时的无效信息;
用于当所述NAND Flash存储器的存储阵列中没有配置包含TLC模式的存储块而配置有包含MLC模式的存储块时,使用n+1位数据来存储各存储块的地址,从所述地址中预先指定一位用于存储MLC模式的存储块的电位信息;
用于当所述NAND Flash存储器的存储阵列中既没配置包含TLC模式的存储块也没配置有包含MLC模式的存储块时,使用n位数据来存储各存储块的地址;
地址读取与编译模块,当所述NAND Flash接到读取命令时,用于:
用所述比较器将所述读取命令中的读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式;
用于当所述读取命令中的读取地址为n位时,所述地址译码器直接进行译码;
用于当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将所述地址中预先指定的用于存储MLC模式的存储块的电位信息设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
用于当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于存储存储块为TLC模式时的无效信息设置为无效并进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码;
数据读取模块,用于当所述存储阵列从所述地址译码器获取地址时,计算该地址的位数,进一步用于:
若该地址为n位,则该存储块为SLC模式,按所述n位地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,从预设的一位电位信息位读取电位信息,从其他位读取地址信息;
若该地址为n+2位,则该存储块为TLC模式,从预设的两位电位信息位读取电位信息,从其他位读取地址信息。
进一步地,
所述存储地址设置模块中,
当使用n+2位信息来存储各存储块的地址时,预设用最后两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定倒数第二位用于存储MLC模式的存储块的电位信息,预先指定最后一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定最后一位用于存储MLC模式的存储块的电位信息;
当所述存储阵列从所述地址译码器获取地址为n+2位时,预先指定最后两位用于存储TLC模式的存储块的电位信息。
进一步地,
所述存储地址设置模块中,
当使用n+2位信息来存储各存储块的地址时,预设用开始两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定第二位用于存储MLC模式的存储块的电位信息,预先指定第一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定第一位用于存储MLC模式的存储块的电位信息;
当所述存储阵列从所述地址译码器获取地址为n+2位时,预先指定前两位用于存储TLC模式的存储块的电位信息。
本发明提出了NAND Flash存储器、NAND Flash存储器实现方法及其***,可以自由配置的存储器,使其能够实现部分SLC模式部分MLC模式、部分SLC模式部分TLC模式、部分MLC模式部分TLC模式或部分SLC模式部分MLC模式部分TLC模式,完成对存储阵列进行自由配置。
附图说明
图1(a)是本发明所述的部分SLC模式部分MLC模式的NAND Flash存储器的结构框图;
图1(b)是本发明所述的部分SLC模式部分TLC模式的NAND Flash存储器的结构框图;
图1(c)是本发明所述的部分MLC模式部分TLC模式的NAND Flash存储器的结构框图;
图1(d)是本发明所述的部分SLC模式部分MLC模式部分TLC模式的NAND Flash存储器的结构框图;
图2是本发明具体实施例四所述的NAND Flash存储器实现方法流程图;
图3是本发明具体实施例五所述的NAND Flash存储器实现***结构框图。
具体实施方式
本发明实现了一种NAND Flash存储器、一种NAND Flash存储器实现方法,以及一种NAND Flash存储器实现***,下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
实施例一
本实施例提供了一种NAND Flash存储器,该NAND Flash存储器可自由配置各存储块的存储模式,其中所述存储模式包括SLC模式、MLC模式和/或TLC模式。其中:
SLC(Single-Level Cell,单值单元),代表1个存储器储存单元存放1位元,即1bit/cell。
MLC(Multi-Level Cell,多值存储单元)通过不同级别的电压在一个单元中记录多组位信息,在存储单元中实现多位存储能力,典型的是2bit,即2bit/cell,代表为1个存储器储存单元存放2位元,速度寿命能较好平衡,将SLC的存储密度理论提升一倍,一般应用在固态硬盘,移动硬盘,高性能U盘上。
TLC(Trinary-Level Cell,三值存储单元)代表1个存储器储存单元可存放3位元,即3bit/cell,利用不同电位的电荷,一个浮动栅存储3个bit的信息,存储密度理论上较之MLC闪存扩大了0.5倍。TLC是2bit/cell的MLC闪存延伸,速度性能一般,约500次擦写寿命,价格便宜,多运用在一些性能低劣的U盘,手机TF卡上,这种芯片对读写速度要求不要,只保存临时数据甚至只读不写的领域。
图1是本发明具体实施例一所述的NAND Flash存储器的结构框图,如图1所示,本实施例所述的NAND Flash存储器,***电路中包括一个寄存器、一个比较器和一个地址译码器,它们之间的连接关系如图所示。
在NAND Flash存储器使用之前需要预先对存储阵列中各存储块的存储模式进行配置,将配置信息存储在所述寄存器中。
由于每个单元均可配置成SLC模式、MLC模式或TLC模式,因此,整个NAND Flash存储器的存储模式可包括如下几种:
模式一、全SLC模式;
模式二、全MLC模式;
模式三、全TLC模式;
模式四、部分SLC模式部分MLC模式;
模式五、部分SLC模式部分TLC模式;
模式六、部分MLC模式部分TLC模式;
模式七、部分SLC模式部分MLC模式部分TLC模式。
上述将配置信息存储在所述寄存器中,具体可采用不同方式,只需在通过地址读取存储块的信息时,能通过读取地址确定该存储块的类型是SLC模式、MLC模式或TLC模式就行。
本实施例提供的方法包括:
对前三种模式,模式一、模式二、模式三来说,因为各存储块均为单纯的模式,不需要存储。
对模式四、模式五、模式六来说,因为同一存储器中包含两种存储模式的存储块,需要将配置的其中一种存储模式的所有存储块的地址(仅需包括能定位到具体块的地址信息)存储在寄存器中即可,例如,存储器采用模式四存储时,将该存储器中分配的MLC模式的存储块地址存储在寄存器中,进行读取访问时,只需将读取地址与存储器中这些地址进行比较,判断该读取地址是否在存储器中,若是,则该地址对应的存储块为MLC模式,否则为SLC模式。
对模式七来说,因为同一存储器中包含三种存储模式的存储块,需要将配置的其中两种存付模式的所有存储块的地址(仅需包括能定位到具体块的地址信息)存储在寄存器中即可,例如,分别将该存储器中分配的MLC模式和TLC模式的存储块地址列表存储在寄存器中,进行读取访问时,先将读取地址与存储器中MLC模式的地址列表进行比较,判断该读取地址是否在MLC模式的地址列表中,若是,则该地址对应的存储块为MLC模式,否则再将读取地址与存储器中TLC模式的地址列表进行比较,判断该读取地址是否在TLC模式的地址列表中,若是,则该地址对应的存储块为TLC模式,否则为SLC模式。
其中,具体选择将哪种存储模式的存储块地址存储在寄存器中,依据各类型的存储块的数量,优先将存储块较少的存储模式的块地址存储在寄存器中,以提高查询速度。
当所述NAND Flash存储器的存储阵列的存储块个数为2n时,需要使用n位地址定位到存储块,若各存储都不全是纯SLC模式,即采用模式二到模式七之一的模式,则还需要另外的地址位定位到相应的电位。
具体如下:
如果所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块,如模式三、模式五、模式六或模式七,存储时需要使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息。进一步需要从所述指定的两位中预先指定一位用于表示当所述地址指向的存储块为TLC模式时的无效信息,则另一位为用于MLC模式的存储块的无效地址位。例如模式六和模式七的存储模式下,包含了MLC模式,需要指定用地址中哪一位来存储电位信息,即确定到底读取采用MLC模式的存储单元的高位信息还是低位信息。
例如,存储地址为:AD<n+1:0>,指定AD<n+1:2>用于存储该存储块的地址,指定AD<1:0>存储TLC模式的存储块的电位信息,指定AD<1>存储MLC模式的存储块的电位信息。
如果所述NAND Flash存储器的存储阵列中没有配置包含TLC模式的存储块而配置有包含MLC模式的存储块时,如模式二或模式四,存储时,需要使用n+1位数据来存储各存储块的地址,从所述地址中预先指定一位用于存储MLC模式的存储块的电位信息。
通常指定最后一位,例如,存储地址为:AD<n:0>,指定AD<n:1>用于存储该存储块的地址,指定AD<0>存储MLC模式的存储块的电位信息。
如果所述NAND Flash存储器的存储阵列中既没配置包含TLC模式的存储块也没配置有包含MLC模式的存储块时,如模式一,仅需要使用n位数据来存储各存储块的地址。
当所述NAND Flash接到读取命令时,包括如下方法:
用所述比较器将所述读取命令中的读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式。
当所述读取命令中的读取地址为n位时,所述地址译码器直接对读取地址进行译码;
例如,模式一,所有的存储块都被指定为SLC,读取命令中的读取地址仅为n位,地址译码器直接对读取地址进行译码,直接通过该译码地址从存储阵列中读取对应的数据。
当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将用于MLC模式的存储块的无效地址位设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
例如,模式四,各存储单元的读取地址均为n+1位,若某存储单元的存储模式为SLC模式,若设置时指定的电位信息位为最后一位,则先将地址AD<0>设为无效再使用译码器进行译码。
例如,模式二或模式四,各存储单元的读取地址均为n+1位,若某存储单元的存储模式为MLC模式,则使用译码器进行直接译码。
当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于MLC模式的存储块的无效地址位进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码。
例如,模式七,各存储单元的读取地址均为n+2位,若某存储单元的存储模式为SLC模式,若设置时指定的电位信息位为最后两位,则先将地址AD<1:0>设为无效再使用译码器进行译码;若某存储单元的存储模式为MLC模式,若设置时指定的电位信息位为倒数第二位,则先将地址AD<0>设为无效再使用译码器进行译码;若某存储单元的存储模式为TLC模式,则使用译码器进行译码。
译码器译码后,用译码后的地址所述存储阵列中读取数据,具体包括:
从所述地址译码器获取地址,计算该地址的位数,进行如下操作:
若该地址为n位,则该存储块为SLC模式,按所述n位地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,从预设的一位电位信息位读取电位信息,从其他位读取地址信息;
若该地址为n+2位,则该存储块为TLC模式,从预设的两位电位信息位读取电位信息,从其他位读取地址信息。
实施例二
本实施例提供的NAND Flash存储器,首次使用时,将该存储器设置成部分SLC模式部分MLC模式(即上实施例的模式四)。在寄存器中建立地址列表用于存储MLC模式的存储块的地址,将设定为MLC模式的存储块的地址存储在所述MLC列表中。
若需要使用n位地址定位到存储块,则需要使用n+1位信息来存储各存储块的地址,从所述n+1位信息中预先指定一位用于存储MLC模式的存储块的电位信息。通常指定头一位或最后一位用于存储MLC模式的存储块的电位信息
例如,若指定最后一位用于存储MLC模式的存储块的电位信息,各存储单元的地址为AD<n:0>,其中,指定AD<0>用来存储MLC模式的存储块的电位信息。则对于SLC模式的存储块来说,AD<1:0>为无效信息,对于MLC模式的存储块来说,AD<0>记录电位信息。
当所述NAND Flash接到读取命令时,包括如下方法:
首先,用所述比较器将所述读取命令中的读取地址的前n位,即AD<n:1>与所述寄存器中MLC列表中的地址进行比较,查看所述读取地址是否在MLC列表中,若是,则确定该存储块为MLC模式,否则确定该存储块为SLC模式。
若所述存储模式为SLC模式,则将所述读取地址中最后一位设置为无效并进行译码,即对AD<n:1>进行译码;若所述存储模式为MLC模式,则直接进行译码,即对AD<n:0>进行译码。
译码以后,该存储器中,SLC模式的存储块地址均为n位,MLC模式的存储块地址均为n+1位,其中前n位表示存储块的地址,最后一位表示电位信息,如“1”表示该存储块的低电位,“0”表示该存储块的高电位,通过上述地址信息和电位信息读取该存储块指定电位的数据。
实施例三
本实施例提供的NAND Flash存储器,首次使用时,将该存储器设置成部分SLC模式部分MLC模式部分TLC模式(即上实施例的模式七)。在寄存器中分别建立两个地址列表分别用于存储MLC模式的存储块的地址和TLC模式的存储块的地址,将设定为MLC模式的存储块的地址存储在MLC列表中,将设定为TLC模式的存储块的地址存储在TLC列表中。
若需要使用n位地址定位到存储块,则需要使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息,进一步从所述指定的两位中预先指定一位用于表示当所述地址指向的存储块为MLC模式时的无效信息。通常指定头两位用于存储TLC模式的存储块的电位信息,其中第二位用于存储MLC模式的存储块的电位信息,或者,指定最后两位用于存储TLC模式的存储块的电位信息,其中倒数第二位用于存储MLC模式的存储块的电位信息。
若采用后一种模式,各存储单元的地址为AD<n+1:0>,其中,指定AD<1:0>用来存储TLC模式的存储块的电位信息,进一步地,指定AD<1>用来存储TLC模式的存储块的电位信息。则对于SLC模式的存储块来说,AD<1:0>为无效信息,对于MLC模式的存储块来说,AD<0>为无效信息。
当所述NAND Flash接到读取命令时,包括如下方法:
首先,用所述比较器将所述读取命令中的读取地址的前n位,即AD<n+1:2>与所述寄存器中MLC列表中的地址进行比较,查看所述读取地址是否在MLC列表中,若是,则确定该存储块为MLC模式,否则,进一步用所述比较器将所述读取命令中的读取地址的前n位,即AD<n+1:2>与所述寄存器中TLC列表中的地址进行比较,查看所述读取地址是否在TLC列表中,若是,则确定该存储块为TLC模式,否则确定该存储块为SLC模式。
若所述存储模式为SLC模式,则将所述读取地址中最后两位设置为无效并进行译码,即对AD<n+1:2>进行译码;若所述存储模式为MLC模式,则将所述读取地址中最后一位设置为无效并进行译码,即对AD<n+1:1>进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码,即对AD<n+1:0>进行译码。
译码以后,该存储器中,SLC模式的存储块地址均为n位,MLC模式的存储块地址均为n+1位,其中前n位表示存储块的地址,最后一位表示电位信息,如“1”表示该存储块的低电位,“0”表示该存储块的高电位,TLC模式的存储块地址均为n+2位,其中前n位表示存储块的地址,最后两位表示电位信息,如“11”表示该存储块的第一电位,“10”表示该存储块的第二电位,“01”表示该存储块的第三电位。通过上述地址信息和电位信息读取该存储块指定电位的数据。
实施例四
本实施例提供了一种NAND Flash存储器实现方法,图2是本实施例所述的NANDFlash存储器实现方法流程图,如图2所示,本实施例所述的NAND Flash存储器实现方法包括:
S201、第一次使用时,进行模式配置;
第一次使用所述NAND Flash存储器时,预先对所述NAND Flash存储器的存储阵列的各存储块的存储模式进行配置,将配置信息存储在所述寄存器中,其中所述存储模式包括SLC模式、MLC模式和TLC模式;
进行配置以后,该NAND Flash存储器的存储模式为下述模式中的一种:
模式一、全SLC模式;
模式二、全MLC模式;
模式三、全TLC模式;
模式四、部分SLC模式部分MLC模式;
模式五、部分SLC模式部分TLC模式;
模式六、部分MLC模式部分TLC模式;
模式七、部分SLC模式部分MLC模式部分TLC模式。
上述将配置信息存储在所述寄存器中,具体可采用不同方式,只需在通过地址读取存储块的信息时,能通过读取地址确定该存储块的类型是SLC模式、MLC模式或TLC模式就行。
本实施例提供的方法包括:
对前三种模式,模式一、模式二、模式三来说,因为各存储块均为单纯的模式,不需要存储。
对模式四、模式五、模式六来说,因为同一存储器中包含两种存储模式的存储块,需要将配置的其中一种存付模式的所有存储块的地址(仅需包括能定位到具体块的地址信息)存储在寄存器中即可,例如,存储器采用模式四存储时,将该存储器中分配的MLC模式的存储块地址存储在寄存器中,进行读取访问时,只需将读取地址与存储器中这些地址进行比较,判断该读取地址是否在存储器中,若是,则该地址对应的存储块为MLC模式,否则为SLC模式。
对模式七来说,因为同一存储器中包含三种存储模式的存储块,需要将配置的其中两种存付模式的所有存储块的地址(仅需包括能定位到具体块的地址信息)存储在寄存器中即可,例如,分别将该存储器中分配的MLC模式和TLC模式的存储块地址列表存储在寄存器中,进行读取访问时,先将读取地址与存储器中MLC模式的地址列表进行比较,判断该读取地址是否在MLC模式的地址列表中,若是,则该地址对应的存储块为MLC模式,否则再将读取地址与存储器中TLC模式的地址列表进行比较,判断该读取地址是否在TLC模式的地址列表中,若是,则该地址对应的存储块为TLC模式,否则为SLC模式。
其中,具体选择将哪种存储模式的存储块地址存储在寄存器中,依据各类型的存储块的数量,优先将存储块较少的存储模式的块地址存储在寄存器中,以提高查询速度。
S202、确定存储时地址长度并指定电位信息位;
若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则包括如下设置:
当所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块时,使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息,进一步从所述指定的两位中预先指定一位用于存储MLC模式的存储块的电位信息,另一位用于存储存储块为TLC模式时的无效信息;
当所述NAND Flash存储器的存储阵列中没有配置包含TLC模式的存储块而配置有包含MLC模式的存储块时,使用n+1位数据来存储各存储块的地址,从所述地址中预先指定一位用于存储MLC模式的存储块的电位信息;
当所述NAND Flash存储器的存储阵列中既没配置包含TLC模式的存储块也没配置有包含MLC模式的存储块时,使用n位数据来存储各存储块的地址。
例如,若所述NAND Flash存储器的存储阵列的存储块个数为2n时,则需要使用n位地址定位到存储块,若各存储都不全是纯SLC模式,即采用模式二到模式七之一的模式,则还需要另外的地址位定位到相应的电位。
具体如下:
如果所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块,如模式三、模式五、模式六或模式七,存储时需要使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息。进一步需要从所述指定的两位中预先指定一位用于表示当所述地址指向的存储块为TLC模式时的无效信息,则另一位为用于MLC模式的存储块的无效地址位。例如模式六和模式七的存储模式下,包含了MLC模式,需要指定用地址中哪一位来存储电位信息,即确定到底读取采用MLC模式的存储单元的高位信息还是低位信息。
例如,存储地址为:AD<n+1:0>,指定AD<n+1:2>用于存储该存储块的地址,指定AD<1:0>存储TLC模式的存储块的电位信息,指定AD<1>存储MLC模式的存储块的电位信息。
优选地,
当使用n+2位信息来存储各存储块的地址时,预设用最后两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定倒数第二位用于存储MLC模式的存储块的电位信息,预先指定最后一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定最后一位用于存储MLC模式的存储块的电位信息。
S203、判断是否有读取命令的消息中断时,若是则执行步骤S204。
S204、获取地址块的存储模式;
当所述NAND Flash存储器接到读取命令时,用所述比较器将所述读取命令中的读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式;
例如模式四,首次使用时,将该存储器设置成部分SLC模式部分MLC模式。在寄存器中建立地址列表用于存储MLC模式的存储块的地址,将设定为MLC模式的存储块的地址存储在所述MLC列表中。
若指定最后一位用于存储MLC模式的存储块的电位信息,各存储单元的地址为AD<n:0>,其中,指定AD<0>用来存储MLC模式的存储块的电位信息。则对于SLC模式的存储块来说,AD<1:0>为无效信息,对于MLC模式的存储块来说,AD<0>记录电位信息。
当所述NAND Flash接到读取命令时,包括如下方法:
首先,用所述比较器将所述读取命令中的读取地址的前n位,即AD<n:1>与所述寄存器中MLC列表中的地址进行比较,查看所述读取地址是否在MLC列表中,若是,则确定该存储块为MLC模式,否则确定该存储块为SLC模式。
又如,模式七,若存储和设置采用如上相似的方法时,
当所述NAND Flash接到读取命令时,包括如下方法:
首先,用所述比较器将所述读取命令中的读取地址的前n位,即AD<n+1:2>与所述寄存器中MLC列表中的地址进行比较,查看所述读取地址是否在MLC列表中,若是,则确定该存储块为MLC模式,否则,进一步用所述比较器将所述读取命令中的读取地址的前n位,即AD<n+1:2>与所述寄存器中TLC列表中的地址进行比较,查看所述读取地址是否在TLC列表中,若是,则确定该存储块为TLC模式,否则确定该存储块为SLC模式。
S205、对地址进行译码,获取译码地址;
当所述读取命令中的读取地址为n位时,所述地址译码器直接进行译码;
当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将所述地址中预先指定的用于存储MLC模式的存储块的电位信息设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于存储存储块为TLC模式时的无效信息设置为无效并进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码;
当所述NAND Flash接到读取命令时,包括如下方法:
用所述比较器将所述读取命令中的读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式。
当所述读取命令中的读取地址为n位时,所述地址译码器直接对读取地址进行译码;
例如,模式一,所有的存储块都被指定为SLC,读取命令中的读取地址仅为n位,地址译码器直接对读取地址进行译码,直接通过该译码地址从存储阵列中读取对应的数据。
当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将用于MLC模式的存储块的无效地址位设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
例如,模式四,各存储单元的读取地址均为n+1位,若某存储单元的存储模式为SLC模式,若设置时指定的电位信息位为最后一位,则先将地址AD<0>设为无效再使用译码器进行译码。
例如,模式二或模式四,各存储单元的读取地址均为n+1位,若某存储单元的存储模式为MLC模式,则使用译码器进行直接译码。
当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于MLC模式的存储块的无效地址位进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码。
例如,模式七,各存储单元的读取地址均为n+2位,若某存储单元的存储模式为SLC模式,若设置时指定的电位信息位为最后两位,则先将地址AD<1:0>设为无效再使用译码器进行译码;若某存储单元的存储模式为MLC模式,若设置时指定的电位信息位为倒数第二位,则先将地址AD<0>设为无效再使用译码器进行译码;若某存储单元的存储模式为TLC模式,则使用译码器进行译码。
S206、用译码地址读取存储块信息。
当所述存储阵列从所述地址译码器获取地址时,计算该地址的位数,进行如下操作:
若该地址为n位,则该存储块为SLC模式,按所述n位地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,从预设的一位电位信息位读取电位信息,从其他位读取地址信息;
若该地址为n+2位,则该存储块为TLC模式,从预设的两位电位信息位读取电位信息,从其他位读取地址信息。
实施例五
根据本发明的同一构思,本发明还提供了一种信息推送***,图3是实施例所述的NAND Flash存储器实现***结构框图。如图3所示,本实施例所述的NAND Flash存储器实现***包括:
存储模式配置模块:用于第一次使用所述NAND Flash存储器时,预先对所述NANDFlash存储器的存储阵列的各存储块的存储模式进行配置,将配置信息存储在所述寄存器中,其中所述存储模式包括SLC模式、MLC模式和TLC模式;
进行配置以后,该NAND Flash存储器的存储模式为下述模式中的一种:
模式一、全SLC模式;
模式二、全MLC模式;
模式三、全TLC模式;
模式四、部分SLC模式部分MLC模式;
模式五、部分SLC模式部分TLC模式;
模式六、部分MLC模式部分TLC模式;
模式七、部分SLC模式部分MLC模式部分TLC模式。
上述将配置信息存储在所述寄存器中,具体可采用不同方式,只需在通过地址读取存储块的信息时,能通过读取地址确定该存储块的类型是SLC模式、MLC模式或TLC模式就行。
对前三种模式,模式一、模式二、模式三来说,因为各存储块均为单纯的模式,不需要存储。
对模式四、模式五、模式六来说,因为同一存储器中包含两种存储模式的存储块,需要将配置的其中一种存付模式的所有存储块的地址(仅需包括能定位到具体块的地址信息)存储在寄存器中即可,例如,存储器采用模式四存储时,将该存储器中分配的MLC模式的存储块地址存储在寄存器中,进行读取访问时,只需将读取地址与存储器中这些地址进行比较,判断该读取地址是否在存储器中,若是,则该地址对应的存储块为MLC模式,否则为SLC模式。
对模式七来说,因为同一存储器中包含三种存储模式的存储块,需要将配置的其中两种存付模式的所有存储块的地址(仅需包括能定位到具体块的地址信息)存储在寄存器中即可,例如,分别将该存储器中分配的MLC模式和TLC模式的存储块地址列表存储在寄存器中,进行读取访问时,先将读取地址与存储器中MLC模式的地址列表进行比较,判断该读取地址是否在MLC模式的地址列表中,若是,则该地址对应的存储块为MLC模式,否则再将读取地址与存储器中TLC模式的地址列表进行比较,判断该读取地址是否在TLC模式的地址列表中,若是,则该地址对应的存储块为TLC模式,否则为SLC模式。
其中,具体选择将哪种存储模式的存储块地址存储在寄存器中,依据各类型的存储块的数量,优先将存储块较少的存储模式的块地址存储在寄存器中,以提高查询速度。
存储地址设置模块:若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则用于进行如下设置:
用于当所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块时,使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息,进一步从所述指定的两位中预先指定一位用于存储MLC模式的存储块的电位信息,另一位用于存储存储块为TLC模式时的无效信息;
用于当所述NAND Flash存储器的存储阵列中没有配置包含TLC模式的存储块而配置有包含MLC模式的存储块时,使用n+1位数据来存储各存储块的地址,从所述地址中预先指定一位用于存储MLC模式的存储块的电位信息;
用于当所述NAND Flash存储器的存储阵列中既没配置包含TLC模式的存储块也没配置有包含MLC模式的存储块时,使用n位数据来存储各存储块的地址;
例如,若所述NAND Flash存储器的存储阵列的存储块个数为2n时,则需要使用n位地址定位到存储块,若各存储都不全是纯SLC模式,即采用模式二到模式七之一的模式,则还需要另外的地址位定位到相应的电位。
具体如下:
如果所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块,如模式三、模式五、模式六或模式七,存储时需要使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息。进一步需要从所述指定的两位中预先指定一位用于表示当所述地址指向的存储块为TLC模式时的无效信息,则另一位为用于MLC模式的存储块的无效地址位。例如模式六和模式七的存储模式下,包含了MLC模式,需要指定用地址中哪一位来存储电位信息,即确定到底读取采用MLC模式的存储单元的高位信息还是低位信息。
例如,存储地址为:AD<n+1:0>,指定AD<n+1:2>用于存储该存储块的地址,指定AD<1:0>存储TLC模式的存储块的电位信息,指定AD<1>存储MLC模式的存储块的电位信息。
优选地,
当使用n+2位信息来存储各存储块的地址时,预设用最后两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定倒数第二位用于存储MLC模式的存储块的电位信息,预先指定最后一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定最后一位用于存储MLC模式的存储块的电位信息。
地址读取与编译模块:当所述NAND Flash接到读取命令时,用于:
用所述比较器将所述读取命令中的读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式;
用于当所述读取命令中的读取地址为n位时,所述地址译码器直接进行译码;
用于当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将所述地址中预先指定的用于存储MLC模式的存储块的电位信息设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
用于当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于存储存储块为TLC模式时的无效信息设置为无效并进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码;
例如模式四,首次使用时,将该存储器设置成部分SLC模式部分MLC模式。在寄存器中建立地址列表用于存储MLC模式的存储块的地址,将设定为MLC模式的存储块的地址存储在所述MLC列表中。
若指定最后一位用于存储MLC模式的存储块的电位信息,各存储单元的地址为AD<n:0>,其中,指定AD<0>用来存储MLC模式的存储块的电位信息。则对于SLC模式的存储块来说,AD<1:0>为无效信息,对于MLC模式的存储块来说,AD<0>记录电位信息。
当所述NAND Flash接到读取命令时,包括如下方法:
首先,用所述比较器将所述读取命令中的读取地址的前n位,即AD<n:1>与所述寄存器中MLC列表中的地址进行比较,查看所述读取地址是否在MLC列表中,若是,则确定该存储块为MLC模式,否则确定该存储块为SLC模式。
又如,模式七,若存储和设置采用如上相似的方法时,
当所述NAND Flash接到读取命令时,包括如下方法:
首先,用所述比较器将所述读取命令中的读取地址的前n位,即AD<n+1:2>与所述寄存器中MLC列表中的地址进行比较,查看所述读取地址是否在MLC列表中,若是,则确定该存储块为MLC模式,否则,进一步用所述比较器将所述读取命令中的读取地址的前n位,即AD<n+1:2>与所述寄存器中TLC列表中的地址进行比较,查看所述读取地址是否在TLC列表中,若是,则确定该存储块为TLC模式,否则确定该存储块为SLC模式。
当所述读取命令中的读取地址为n位时,所述地址译码器直接进行译码;
当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将所述地址中预先指定的用于存储MLC模式的存储块的电位信息设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于存储存储块为TLC模式时的无效信息设置为无效并进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码;
当所述NAND Flash接到读取命令时,包括如下方法:
用所述比较器将所述读取命令中的读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式。
当所述读取命令中的读取地址为n位时,所述地址译码器直接对读取地址进行译码;
例如,模式一,所有的存储块都被指定为SLC,读取命令中的读取地址仅为n位,地址译码器直接对读取地址进行译码,直接通过该译码地址从存储阵列中读取对应的数据。
当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将用于MLC模式的存储块的无效地址位设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
例如,模式四,各存储单元的读取地址均为n+1位,若某存储单元的存储模式为SLC模式,若设置时指定的电位信息位为最后一位,则先将地址AD<0>设为无效再使用译码器进行译码。
例如,模式二或模式四,各存储单元的读取地址均为n+1位,若某存储单元的存储模式为MLC模式,则使用译码器进行直接译码。
当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于MLC模式的存储块的无效地址位进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码。
例如,模式七,各存储单元的读取地址均为n+2位,若某存储单元的存储模式为SLC模式,若设置时指定的电位信息位为最后两位,则先将地址AD<1:0>设为无效再使用译码器进行译码;若某存储单元的存储模式为MLC模式,若设置时指定的电位信息位为倒数第二位,则先将地址AD<0>设为无效再使用译码器进行译码;若某存储单元的存储模式为TLC模式,则使用译码器进行译码。
数据读取模块:用于当所述存储阵列从所述地址译码器获取地址时,计算该地址的位数,进一步用于:
若该地址为n位,则该存储块为SLC模式,按所述n位地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,从预设的一位电位信息位读取电位信息,从其他位读取地址信息;
优选地,
若该地址为n+2位,配置时预设的两位电位信息为最后两位,或若该地址为n+1位,配置时预设的两位电位信息为最后一位,则:
若该地址为n位,则该存储块为SLC模式,按该地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,按该地址的前n位地址定位到对应块,按最后一位指定的电位信息读取该对应块的所述电位的数据;
若该地址为n+2位,则该存储块为TLC模式,按该地址的前n位地址定位到对应块,按最后两位指定的电位信息读取该对应块的所述电位的数据。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种NAND Flash存储器,其特征在于,所述NAND Flash存储器包括寄存器、比较器、地址译码器和存储阵列;
第一次使用时,预先在所述寄存器中存储所述NAND Flash存储器的存储模式和配置信息,其中所述存储模式包括部分SLC模式部分MLC模式、部分SLC模式部分TLC模式、部分MLC模式部分TLC模式、部分SLC模式部分MLC模式部分TLC模式,其中所述配置信息包括存储块的地址和存储块的类型,其中所述存储块类型为SLC类型、MLC类型或TLC类型;
当所述NAND Flash收到读取地址时,用所述比较器将所述读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式,所述地址译码器依据所述存储模式对所述读取地址进行译码;
所述存储阵列根据译码后的地址返回对应的数据块的信息;
第一次使用时进一步包括:
若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则:
如果所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块,用n+2位地址存储各存储块的地址,指定最后两位用于存储TLC模式的存储块的电位信息,进一步指定倒数第二位用于存储MLC模式的存储块的电位信息;
如果所述NAND Flash存储器的存储阵列中没有配置包含TLC模式的存储块而配置有包含MLC模式的存储块时,用n+1位地址存储各存储块的地址,指定最后一位用于存储MLC模式的存储块的电位信息;
如果所述NAND Flash存储器的存储阵列中既没配置包含TLC模式的存储块也没配置有包含MLC模式的存储块时,使用n位数据来存储各存储块的地址。
2.如权利要求1所述的NAND Flash存储器,其特征在于,所述地址译码器依据所述存储模式对所述读取地址进行译码包括:
当所述读取地址为n位时,用所述地址译码器对所述读取地址进行直接译码;
当所述读取地址为n+1位时,若所述存储模式为SLC模式,则将所述读取地址中最后一位设置为无效并用所述地址译码器进行译码,否则,用所述地址译码器对所述读取地址进行直接译码;
当所述读取地址为n+2位时,若所述存储模式为SLC模式,则将所述读取地址中最后两位设置为无效并用所述地址译码器进行译码;若所述存储模式为MLC模式,则将所述读取地址中最后一位设置为无效并用所述地址译码器进行译码;若所述存储模式为TLC模式,则用所述地址译码器对所述读取地址进行直接译码;
所述根据译码后的地址从所述存储阵列中读取信息包括:
计算所述译码后的地址的位数;
若该地址为n位,则该存储块为SLC模式,按该地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,按该地址的前n位地址定位到对应块,按最后一位指定的电位信息读取该对应块的所述电位的数据;
若该地址为n+2位,则该存储块为TLC模式,按该地址的前n位地址定位到对应块,按最后两位指定的电位信息读取该对应块的所述电位的数据。
3.如权利要求2所述的NAND Flash存储器,其特征在于,
第一次使用时,将所述存储模式设置为部分SLC模式部分MLC模式,将预先设置为MLC模式的存储块的地址存储在所述寄存器中;
若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则用n+1位地址存储各存储块的地址,指定最后一位用于存储MLC模式的存储块的电位信息;
当所述NAND Flash收到读取地址时:
用所述比较器将所述读取地址的前n位与所述寄存器中的存储的地址进行比较,查看所述读取地址是否所述寄存器中,若是,则确定该存储块为MLC模式,否则确定该存储块为SLC模式;
若所述存储模式为SLC模式,则将所述读取地址中最后一位设置为无效并进行译码;若所述存储模式为MLC模式,则直接进行译码,即对AD<n:0>进行译码;
当使用所述译码器获取的译码地址从存储阵列读取信息时,计算该译码地址的位数,
若该地址为n位,则该存储块为SLC模式,按该地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,按该地址的前n位地址定位到对应块,按最后一位指定的电位信息读取该对应块的所述电位的数据。
4.如权利要求2所述的NAND Flash存储器,其特征在于,
第一次使用时,将所述存储模式设置为部分SLC模式部分MLC模式部分TLC模式,在寄存器中分别建立两个地址列表分别用于存储MLC模式的存储块的地址和TLC模式的存储块的地址,将设定为MLC模式的存储块的地址存储在MLC列表中,将设定为TLC模式的存储块的地址存储在TLC列表中;
若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则用n+2位地址存储各存储块的地址,指定最后两位用于存储TLC模式的存储块的电位信息,进一步地指定倒数第二位且于存储MLC模式的存储块的电位信息;
当所述NAND Flash收到读取地址时:
用所述比较器将所述读取地址的前n位与寄存器中MLC列表中的地址进行比较,查看所述读取地址是否在MLC列表中,若是,则确定该存储块为MLC模式,否则,进一步用所述比较器将所述读取地址的前n位与所述寄存器中TLC列表中的地址进行比较,查看所述读取地址是否在TLC列表中,若是,则确定该存储块为TLC模式,否则确定该存储块为SLC模式;
若所述存储模式为SLC模式,则将所述读取地址中最后两位设置为无效并进行译码;若所述存储模式为MLC模式,则将所述读取地址中最后一位设置为无效并进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码;
当使用所述译码器获取的译码地址从存储阵列读取信息时,计算该译码地址的位数,
若该地址为n位,则该存储块为SLC模式,按该地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,按该地址的前n位地址定位到对应块,按最后一位指定的电位信息读取该对应块的所述电位的数据;
若该地址为n+2位,则该存储块为TLC模式,按该地址的前n位地址定位到对应块,按最后两位指定的电位信息读取该对应块的所述电位的数据。
5.一种NAND Flash存储器的实现方法,该方法基于包括寄存器、比较器、地址译码器和存储阵列的NAND Flash存储器实现,其特征在于,包括:
第一次使用所述NAND Flash存储器时,预先对所述NAND Flash存储器的存储阵列的各存储块的存储模式进行配置,将配置信息存储在所述寄存器中,其中所述存储模式包括SLC模式、MLC模式和TLC模式;
若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则包括如下设置:
当所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块时,使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息,进一步从所述指定的两位中预先指定一位用于存储MLC模式的存储块的电位信息,另一位用于存储存储块为TLC模式时的无效信息;
当所述NAND Flash存储器的存储阵列中没有配置包含TLC模式的存储块而配置有包含MLC模式的存储块时,使用n+1位数据来存储各存储块的地址,从所述地址中预先指定一位用于存储MLC模式的存储块的电位信息;
当所述NAND Flash存储器的存储阵列中既没配置包含TLC模式的存储块也没配置有包含MLC模式的存储块时,使用n位数据来存储各存储块的地址;
当所述NAND Flash存储器接到读取命令时,用所述比较器将所述读取命令中的读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式;
当所述读取命令中的读取地址为n位时,所述地址译码器直接进行译码;
当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将所述地址中预先指定的用于存储MLC模式的存储块的电位信息设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于存储存储块为TLC模式时的无效信息设置为无效并进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码;
当所述存储阵列从所述地址译码器获取地址时,计算该地址的位数,进行如下操作:
若该地址为n位,则该存储块为SLC模式,按所述n位地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,从预设的一位电位信息位读取电位信息,从其他位读取地址信息;
若该地址为n+2位,则该存储块为TLC模式,从预设的两位电位信息位读取电位信息,从其他位读取地址信息。
6.如权利要求5所述的NAND Flash存储器的实现方法,其特征在于,
当使用n+2位信息来存储各存储块的地址时,预设用最后两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定倒数第二位用于存储MLC模式的存储块的电位信息,预先指定最后一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定最后一位用于存储MLC模式的存储块的电位信息;
当所述存储阵列从所述地址译码器获取地址为n+2位时,预先指定最后两位用于存储TLC模式的存储块的电位信息。
7.如权利要求5所述的NAND Flash存储器的实现方法,其特征在于,
当使用n+2位信息来存储各存储块的地址时,预设用开始两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定第二位用于存储MLC模式的存储块的电位信息,预先指定第一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定第一位用于存储MLC模式的存储块的电位信息;
当所述存储阵列从所述地址译码器获取地址为n+2位时,预先指定前两位用于存储TLC模式的存储块的电位信息。
8.一种NAND Flash存储器的实现***,该***基于包括寄存器、比较器、地址译码器和存储阵列的NAND Flash存储器实现,其特征在于,包括:
存储模式配置模块,用于第一次使用所述NAND Flash存储器时,预先对所述NANDFlash存储器的存储阵列的各存储块的存储模式进行配置,将配置信息存储在所述寄存器中,其中所述存储模式包括SLC模式、MLC模式和TLC模式;
存储地址设置模块,若需要用n位地址定位到所述NAND Flash存储器的存储阵列中的存储块,则用于进行如下设置:
用于当所述NAND Flash存储器的存储阵列中配置有包含TLC模式的存储块时,使用n+2位信息来存储各存储块的地址,从所述n+2位信息中预先指定两位用于存储TLC模式的存储块的电位信息,进一步从所述指定的两位中预先指定一位用于存储MLC模式的存储块的电位信息,另一位用于存储存储块为TLC模式时的无效信息;
用于当所述NAND Flash存储器的存储阵列中没有配置包含TLC模式的存储块而配置有包含MLC模式的存储块时,使用n+1位数据来存储各存储块的地址,从所述地址中预先指定一位用于存储MLC模式的存储块的电位信息;
用于当所述NAND Flash存储器的存储阵列中既没配置包含TLC模式的存储块也没配置有包含MLC模式的存储块时,使用n位数据来存储各存储块的地址;
地址读取与编译模块,当所述NAND Flash接到读取命令时,用于:
用所述比较器将所述读取命令中的读取地址与所述寄存器中的配置信息进行比较,获取所述读取地址对应的存储块的存储模式;
用于当所述读取命令中的读取地址为n位时,所述地址译码器直接进行译码;
用于当所述读取命令中的读取地址为n+1位时,若所述存储模式为SLC模式,则将所述地址中预先指定的用于存储MLC模式的存储块的电位信息设置为无效并进行译码,否则,所述地址译码器对所述地址进行直接译码;
用于当所述读取命令中的读取地址为n+2位时,若所述存储模式为SLC模式,则将所述地址中预先指定的两位用于存储TLC模式的存储块的电位信息设置为无效并只对进行译码;若所述存储模式为MLC模式,则将所述地址中预先指定的一位用于存储存储块为TLC模式时的无效信息设置为无效并进行译码;若所述存储模式为TLC模式,则所述地址译码器直接进行译码;
数据读取模块,用于当所述存储阵列从所述地址译码器获取地址时,计算该地址的位数,进一步用于:
若该地址为n位,则该存储块为SLC模式,按所述n位地址直接读取数据;
若该地址为n+1位,则该存储块为MLC模式,从预设的一位电位信息位读取电位信息,从其他位读取地址信息;
若该地址为n+2位,则该存储块为TLC模式,从预设的两位电位信息位读取电位信息,从其他位读取地址信息。
9.如权利要求8所述的NAND Flash存储器的实现***,其特征在于,
所述存储地址设置模块中,
当使用n+2位信息来存储各存储块的地址时,预设用最后两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定倒数第二位用于存储MLC模式的存储块的电位信息,预先指定最后一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定最后一位用于存储MLC模式的存储块的电位信息;
当所述存储阵列从所述地址译码器获取地址为n+2位时,预先指定最后两位用于存储TLC模式的存储块的电位信息。
10.如权利要求8所述的NAND Flash存储器的实现***,其特征在于,
所述存储地址设置模块中,
当使用n+2位信息来存储各存储块的地址时,预设用开始两位用于存储TLC模式的存储块的电位信息,进一步地,预先指定第二位用于存储MLC模式的存储块的电位信息,预先指定第一位用于存储存储块为MLC模式时的无效信息;
当所述存储阵列从所述地址译码器获取地址为n+1位时,预先指定第一位用于存储MLC模式的存储块的电位信息;
当所述存储阵列从所述地址译码器获取地址为n+2位时,预先指定前两位用于存储TLC模式的存储块的电位信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210461393.7A CN103811054B (zh) | 2012-11-15 | 2012-11-15 | 一种NAND Flash存储器、NAND Flash存储器实现方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210461393.7A CN103811054B (zh) | 2012-11-15 | 2012-11-15 | 一种NAND Flash存储器、NAND Flash存储器实现方法及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103811054A CN103811054A (zh) | 2014-05-21 |
CN103811054B true CN103811054B (zh) | 2017-09-19 |
Family
ID=50707714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210461393.7A Active CN103811054B (zh) | 2012-11-15 | 2012-11-15 | 一种NAND Flash存储器、NAND Flash存储器实现方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103811054B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291626B (zh) * | 2017-06-19 | 2020-12-18 | 北京小米移动软件有限公司 | 数据存储方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7970981B2 (en) * | 2006-10-30 | 2011-06-28 | Samsung Electronics Co., Ltd. | Flash memory device with multi-level cells and method of writing data therein |
CN102332290A (zh) * | 2010-05-24 | 2012-01-25 | 慧荣科技股份有限公司 | 用来管理和存取闪存模块的控制器 |
CN102750188A (zh) * | 2011-04-19 | 2012-10-24 | 慧荣科技股份有限公司 | 进行存储器存取管理的方法以及存储装置及其控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211252B (zh) * | 2006-12-26 | 2012-05-23 | 劲永国际股份有限公司 | 存储器储存装置 |
-
2012
- 2012-11-15 CN CN201210461393.7A patent/CN103811054B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7970981B2 (en) * | 2006-10-30 | 2011-06-28 | Samsung Electronics Co., Ltd. | Flash memory device with multi-level cells and method of writing data therein |
CN102332290A (zh) * | 2010-05-24 | 2012-01-25 | 慧荣科技股份有限公司 | 用来管理和存取闪存模块的控制器 |
CN102750188A (zh) * | 2011-04-19 | 2012-10-24 | 慧荣科技股份有限公司 | 进行存储器存取管理的方法以及存储装置及其控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN103811054A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI496004B (zh) | 作為一網路之一主動元件之非揮發記憶體裝置、記憶體系統網路及透過一共同網路匯流排進行通信之方法 | |
TWI479494B (zh) | 基於疲乏條件之非揮發性記憶體單元的更新 | |
EP2156304B1 (en) | Solid state memory utilizing analog communication of data values | |
US7545673B2 (en) | Using MLC flash as SLC by writing dummy data | |
US8644066B2 (en) | Multi-level non-volatile memory device, system and method with state-converted data | |
TW200910347A (en) | Programming a memory with varying bits per cell | |
US8489942B1 (en) | Memory management method, and memory controller and memory storage device using the same | |
US20120198135A1 (en) | Mapping Data to Non-Volatile Memory | |
CN106920575B (zh) | 数据存储装置及其操作方法 | |
CN110047544B (zh) | 用于包括qlc单元的存储器装置的编码方法及*** | |
US10410724B2 (en) | Erase page indicator | |
US8125831B2 (en) | Sensing against a reference cell | |
CN113885808B (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
CN106205712A (zh) | 半导体存储器件及其操作方法 | |
CN108428467A (zh) | 读取电压追踪方法、存储器储存装置及控制电路单元 | |
US10203886B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus for writing data from buffer memory and moving valid data | |
CN103811054B (zh) | 一种NAND Flash存储器、NAND Flash存储器实现方法及其*** | |
US8634239B2 (en) | Hybrid multi-level cell programming sequences | |
CN111831210B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN104240751B (zh) | 存储***、半导体器件及其操作方法 | |
CN109308930A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN109002367A (zh) | 非易失性储存装置、非易失性存储器集成电路及操作方法 | |
US9607689B2 (en) | Solid hard disk and charging/discharging control method for flash chip | |
US20230259306A1 (en) | Memory control method, memory storage device and memory control circuit unit | |
TWI537955B (zh) | 快閃記憶體控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |
|
CP03 | Change of name, title or address |