CN107993687B - 一种存储器电路 - Google Patents
一种存储器电路 Download PDFInfo
- Publication number
- CN107993687B CN107993687B CN201810029754.8A CN201810029754A CN107993687B CN 107993687 B CN107993687 B CN 107993687B CN 201810029754 A CN201810029754 A CN 201810029754A CN 107993687 B CN107993687 B CN 107993687B
- Authority
- CN
- China
- Prior art keywords
- circuit
- data
- programming
- ecc
- memory array
- 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
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/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
- G11C16/225—Preventing erasure, programming or reading when power supply voltages are outside the required ranges
-
- 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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供了一种存储器电路,包括存储器阵列单元电路、行译码器电路、列译码器电路、页缓存电路、逻辑控制电路以及IO接口电路。在MLC NAND Flash存储器中嵌入ECC编解码电路,对MLC NAND Flash存储器编程操作时,编程的数据通过ECC编码器编码后将数据传送至MLC NAND Flash存储器阵列单元中;对MLC NAND Flsah存储器读取操作时,从MLC NAND Flash存储器的阵列单元读出的数据经过ECC解码器译码后读出至I/O口。MLC NAND Flash存储器中内嵌ECC模块,具备一定的纠正读写数据出错的能力,从而很大程度上解决了MLC NAND Flash存储器编程和读取操作中数据易出错的问题,降低了外部NAND Flash存储控制器的设计复杂度,提高了MLC NAND Flash存储器芯片的可靠性。
Description
技术领域
本发明涉及闪存(Flash Memory)存储器技术领域,具体涉及一种嵌入ECC(ErrorCorrecting Code,错误检查和纠正)的MLC NAND Flash(Multi Level Cell,多层单元闪存)存储器电路。
背景技术
随着电子信息技术的飞速发展,移动智能设备、网络数据中心和服务器的数据存储量呈现爆炸式的增长。数据存储对存储设备容量的需求不断带动着闪存存储器快速地向更大规模、更高密度、更高可靠性的方向发展。NAND Flash存储器作为非易失性闪存芯片,其凭借着高密度、大容量等特点在电子系统、通信系统、计算机系统等领域得到了广泛的研究与应用。然而,随着集成电路工艺的特征尺寸不断缩小,存储设备容量的不断扩大,芯片的集成度更高,研究与开发更大容量的NAND Flash存储器芯片成为存储器发展的动力。现阶段,主流的NAND Flash存储器芯片包括SLC NAND Flash存储器和MLC NAND Flash存储器两种,SLC NAND Flash存储器芯片中每个器件只能存储一比特数据,所以更倾向于小容量、出错率小的应用场合。虽然MLC NAND Flash存储器芯片中数据的出错率大于SLC NANDFlash存储器芯片,但是MLC NAND Flash存储器芯片中每个器件可以存储两比特数据,所以,在相等面积和同数量器件的情况下,MLC NAND Flash存储器芯片的存储容量是SLCNAND Flash存储器芯片的两倍。由此可见,MLC NAND Flash的应用场合更加广泛。
在MLC NAND Flash中,由于其有四种阈值分布,故在对其编程、读取过程中很容易出现数据翻转,造成数据读、写错误。加之,针对航天航空领域、军用领域等高性能要求的应用领域,对MLC NAND Flash存储器芯片具有更为苛刻的高可靠性要求,因此,开发高可靠性的MLC NAND Flash存储器芯片成为存储器领域的重要研究。在提高存储器数据可靠性的同时,既要对芯片面积有一定的控制,又需要保证编程、读取访问算法的高效执行,成为MLCNAND Flash存储器领域的技术难点。
发明内容
本发明所要解决的技术问题是提供一种存储器电路,在MLC NAND Flash存储器芯片内嵌入ECC编解码电路,对MLC NAND Flash存储器编程操作时,所要编程的数据通过ECC编码器编码后将数据传送至MLC NAND Flash存储器阵列中;对MLC NAND Flash存储器读取操作时,从MLC NAND Flash存储器的阵列读出的数据经过ECC译码器译码后读出至I/O口。MLC NAND Flash存储器中内嵌ECC编解码模块,具备一定的纠正读写数据出错的能力,从而很大程度上解决对MLC NAND Flash存储器在编程和读取操作中数据易出错的问题,大大提高了MLC NAND Flash存储器芯片的可靠性,降低了外部NAND Flash存储控制器的设计复杂度,很好地解决现有技术中存储器数据可靠性的技术瓶颈。
为解决上述技术问题,本发明提供了一种存储器电路,包括:存储器阵列单元电路、行译码器电路、列译码器电路、页缓存电路、逻辑控制电路以及IO接口电路。
所述存储器阵列单元电路分别连接行译码器电路和列译码器电路,存储器阵列单元电路依次相连页缓存电路、逻辑控制电路以及IO接口电路;
所述存储器阵列单元电路构成存储数据的阵列单元,完成数据的存储至指定地址的存储器阵列单元;
所述行译码器电路用于对存储器编程、读取、擦除操作的行地址进行译码,将译码后的行地址传送至存储器阵列单元的指定区域;
所述列译码器电路用于对存储器编程、读取、擦除操作的列地址进行译码,将译码后的列地址传送至存储器阵列单元的指定区域;
所述页缓存电路与ECC编码器电路、ECC译码器电路相连接,用于在编程操作时候,经ECC编码器电路对编程数据编码后,整个页数据传送至页缓存电路,用于对编码后的一页数据进行缓存,最终页缓存电路将整页的编程数据下刷到存储器阵列单元中;在读取操作时,存储器阵列单元中的一页数据首先存放至页缓存电路中进行缓存操作,然后再经ECC译码器电路译码后传送至IO接口;
所述逻辑控制电路,提供编程、读取和擦除状态机电路对嵌入ECC的存储器编程操作、嵌入ECC的存储器读取操作和擦除操作的逻辑算法控制,包括:嵌入ECC编程电路模块、嵌入ECC读取电路模块、擦除状态机电路模块及外围高压控制电路模块,其中:
所述嵌入ECC编程电路模块与页缓存电路和外围高压控制电路依次相连,用于实现从IO口传进来的数据进行编码及将编码后的数据编程至存储器阵列单元;
所述嵌入ECC读取电路模块与页缓存电路和外围高压控制电路依次相连,用于控制实现从存储器阵列单元电路读取出的一页数据至页缓存电路及控制存储在页缓存电路的一页数据进行译码;
所述擦除状态机电路与外围高压控制电路相连接,与存储器阵列单元电路相连接,用于对存储器擦除操作时,控制擦除高压施加于存储器阵列单元,对指定的存储器阵列单元中块地址实现擦除控制;
所述外围高压控制电路与嵌入ECC编码电路相连接,与嵌入ECC读取电路相连接,与擦除状态机电路相连接,用于在编程或者读取或者擦除操作时对存储器阵列单元器件的字线和/或位线施加所需的高压以及阶梯式脉冲电压的控制;
所述IO接口电路用于对外的数据交互。
所述存储器阵列单元电路包括存储器阵列单元器件和存储器阵列单元的字线及位线控制逻辑电路。
所述存储器阵列单元器件为SLC NAND Flash存储器单元或MLC NAND Flash存储器单元或TLC NAND Flash存储器单元。
所述嵌入ECC编程电路模块还包括:ECC编码器电路、编程状态机电路,
所述ECC编码器电路与所述页缓存电路相连接,用于接收从IO口传进数据进行编码,编码产生的数据位和校验位传送至页缓存电路缓存;
所述编程状态机电路包括编程验证电路,编程状态机电路与ECC编码器电路相连接,与页缓存电路相连接,所述编程状态机电路用于控制数据经ECC编码器编码产生的数据位和校验位,以及将编码后的数据编程至页缓存电路的逻辑控制,所述编程验证电路用于验证不同编程态数据编程至对应阈值范围内。
所述页缓存电路包括读取电路、数字转化电路及锁存电路,所述读取电路用于读取存储器阵列单元电路中一列存储器阵列单元的电流,所述数字转化电路用于将读出的存储器阵列单元的电流值大小转化成数字逻辑值,所述锁存电路用于锁存数字转化电路转化出的数字逻辑值。
所述嵌入ECC读取电路模块还包括:ECC译码器电路、读取状态机电路,
所述ECC译码器电路与所述页缓存电路相连接,用于在读取存储器操作时,从页缓存电路存储的一页数据传送至ECC译码器进行译码,并对出错的数据纠错;
所述读取状态机电路与外围高压控制电路相连接,与存储器阵列单元电路相连接,与ECC译码器电路相连接,所述读取状态机电路用于控制数据从存储器阵列单元读出至页缓存电路,并在存储器阵列单元字线提供读取电压的逻辑控制,以及经ECC译码器译码后将数据传送至IO接口电路的整体逻辑控制。
所述ECC译码器电路包括:校正子式计算电路、错误位置计算电路、钱搜索电路、缓存FIFO电路以及错误纠正电路,其中:
校正子式电路与错误位置计算电路、钱搜索电路及错误纠正电路依次连接,用于对从页缓存电路传进来的数据位和校验位进行校正子计算,并根据计算校正子式电路计算的结果传送至错误位置计算电路,再传送至钱搜索电路,将钱搜索电路迭代的搜索结果传送至错误纠正电路;
所述缓存FIFO电路与错误纠正电路相连接,缓存从页缓存电路传送进来的数据位和校验位,并将其传送至错误纠正电路,错误纠正电路将其与钱搜索电路的数据进行比较,纠正出错数据。
所述错误纠正电路对每4096位数据中纠正8位出错数据。
与现有技术相比,本发明的有益效果是:在对MLC NAND Flash存储器编程和读取操作时,嵌入ECC编解码模块电路,在满足一定的硬件电路开销情况下,具备一定的纠正读写数据出错的能力,从而很大程度上解决对MLC NAND Flash存储器在编程和读取操作中数据易出错的问题,大大提高了MLC NAND Flash存储器芯片的可靠性,降低了外部NANDFlash存储控制器的设计复杂度。
附图说明
图1根据本发明一个实施例的MLC NAND Flash存储器嵌入ECC的电路框图;
图2根据本发明一个实施例的MLC NAND Flash存储器阈值分布图;
图3根据本发明一个实施例的MLC NAND Flash存储器嵌入ECC编程操作电路框图;
图4根据本发明一个实施例的MLC NAND Flash存储器嵌入ECC编程操作流程图;
图5根据本发明一个实施例的MLC NAND Flash存储器嵌入ECC的LSB编程操作流程图;
图6根据本发明一个实施例的MLC NAND Flash存储器嵌入ECC的MSB编程操作流程图;
图7根据本发明一个实施例的MLC NAND Flash存储器嵌入ECC读取操作架构图;
图8根据本发明一个实施例的MLC NAND Flash存储器LSB及MSB数据阈值分布图;
图9根据本发明一个实施例的MLC NAND Flash存储器嵌入ECC读取操作流程图;以及
图10根据本发明一个实施例的MLC NAND Flash存储器嵌入ECC的擦除操作流程图。
具体实施方式
在下文的特定实施例代表本发明的示例性实施例,并且本质上仅为示例说明而非限制。在说明书中,提及“一个实施例”或者“实施例”意味着结合该实施例所描述的特定特征、结构或者特性包括在本发明的至少一个实施例中。另外,以下的实施方式的说明中,对本发明的存储器之一例,此外,本领域普通技术人员应该理解,MLC NAND Flash(Multi-Level Cell,多层单元闪存)存储器中在存储器领域指一个NAND Flash阵列中的器件单元存储可以存储两位数据,即其有四种阈值分布。在MLC NAND Flash存储器芯片内部嵌入ECC(ErrorCorrecting Code,错误检查和纠正)电路,针对NAND Flash存储器在编程和读取操作中易出错的特点,ECC电路可以在满足硬件面积要求的前提下,纠正在编程和读取操作中出错的数据,从而很大程度提高了MLC NAND Flash存储器芯片的可靠性。本发明提出的技术方案以本实施例为例子进行说明,该技术方案并不只是限定MLC NAND Flash存储器芯片,针对其他类型的NAND Flash存储器如SLC(Single Level Cell,单层单元闪存)NANDFlash闪存芯片和TLC(Triple-Level Cell)NAND Flash闪存芯片同样适用。
下面结合附图和具体实施方式对本发明作进一步的说明。
本发明实施例的一种存储器电路中的存储器阵列单元器件采用MLC NAND Flash存储器件单元,在MLC NAND Flash存储器电路中嵌入ECC编程电路模块用于实现从IO口传进来的数据经ECC编码器编码,并控制将编码后的数据编程至存储器阵列单元;其编程状态机电路用于实现MLC NAND Flash存储器嵌入ECC的整套编程操作算法;在MLC NAND Flash存储器嵌入ECC读取电路模块,用于控制实现从存储器阵列单元电路读取出的一页数据至页缓存电路,以及控制存储在页缓存电路的一页数据经ECC译码器进行译码,并实现一定能力的纠错数据;其中的读取状态机电路控制实现从存储器阵列单元读取数据至IO口的整套读取操作算法。对MLC NAND Flash存储器的操作包括编程操作、读取操作、擦除操作,MLCNAND Flash存储器编程操作时,由本发明的嵌入ECC编程电路模块将待编程的数据经过ECC编码器编码后,产生数据位和校验位共同传送至页缓存电路,再将页缓存中的数据编程至MLC NAND Flash存储器阵列中,实现编程操作。MLC NAND Flash存储器读取操作时,由本发明嵌入ECC读取电路模块实现从阵列读出的数据至页缓存电路,页缓存电路将读出的数据位和校验位共同传送至ECC译码器电路,由ECC译码器电路进行解码,将解码后的数据传送至IO口。嵌入的ECC编解码模块针对MLC NAND Flash易发生随机错误的特点,采用BCH码进行编解码,实现每4096位数据可以纠错8位数据,并且硬件电路较小,从而很大程度上解决了对MLC NAND Flash存储器在编程和读取操作中数据易出错的问题,很大程度上提高了MLC NAND Flash存储器闪存芯片的可靠性,降低了NAND Flash外围控制器电路的设计难度。详述如下:
参见图1,是本发明实施例的MLC NAND Flash存储器嵌入ECC的电路框图,包括存储器阵列单元电路电路、行译码器电路、列译码器电路、页缓存电路、逻辑控制电路以及IO接口电路。所述存储器阵列单元电路电路、行译码器电路、列译码器电路、页缓存电路、逻辑控制电路以及IO接口电路全部由集成电路制成。所述存储器阵列单元电路分别连接行译码器电路和列译码器电路,存储器阵列单元电路依次相连页缓存电路、逻辑控制电路以及IO接口电路;所述存储器阵列单元电路构成存储数据的阵列单元,完成数据的存储至指定地址的存储器阵列单元;
所述行译码器电路用于对存储器编程、读取、擦除操作的行地址进行译码,将译码后的行地址传送至存储器阵列单元的指定区域;
所述列译码器电路用于对存储器编程、读取、擦除操作的列地址进行译码,将译码后的列地址传送至存储器阵列单元的指定区域;
所述页缓存电路与ECC编码器电路、ECC译码器电路相连接,用于在编程操作时候,经ECC编码器电路对编程数据编码后,整个页数据传送至页缓存电路,用于对编码后的一页数据进行缓存,最终页缓存电路将整页的编程数据下刷到存储器阵列单元中;在读取操作时,存储器阵列单元中的一页数据首先存放至页缓存电路中进行缓存操作,然后再经ECC译码器电路译码后传送至IO接口;所述页缓存电路包括读取电路、数字转化电路及锁存电路,所述读取电路用于读取存储器阵列单元电路中一列存储器阵列单元的电流,所述数字转化电路用于将读出的存储器阵列单元的电流值大小转化成数字逻辑值,所述锁存电路用于锁存数字转化电路转化出的数字逻辑值。
所述逻辑控制电路,提供嵌入ECC编程电路模块、嵌入ECC读取电路模块及擦除状态机电路对MLC NAND Flash存储器的编程操作、读取操作及擦除操作的整体逻辑算法控制,包括:嵌入ECC编程电路模块、嵌入ECC读取电路模块、擦除状态机电路模块及外围高压控制电路模块,其中:
所述嵌入ECC编程电路模块与页缓存电路和外围高压控制电路依次相连,用于实现从IO口传进来的数据进行编码及将编码后的数据编程至存储器阵列单元;所述嵌入ECC编程电路模块还包括:ECC编码器电路、编程状态机电路,所述ECC编码器电路与所述页缓存电路相连接,用于接收从IO口传进数据进行编码,编码产生的数据位和校验位传送至页缓存电路缓存;所述编程状态机电路包括编程验证电路,编程状态机电路与ECC编码器电路相连接,与页缓存电路相连接,与外围高压控制电路相连接,所述编程状态机电路用于控制数据经ECC编码器编码产生的数据位和校验位,以及将编码后的数据编程至页缓存电路的逻辑控制,所述编程验证电路用于验证不同编程态数据编程至对应阈值范围内。所述ECC编码器电路、编程状态机电路全部由数字集成电路制成。
所述嵌入ECC读取电路模块与页缓存电路和外围高压控制电路依次相连,用于控制实现从存储器阵列单元电路读取出的一页数据至页缓存电路及控制存储在页缓存电路的一页数据进行译码;所述嵌入ECC读取电路模块还包括:ECC译码器电路、读取状态机电路,所述ECC译码器电路、读取状态机电路全部由数字集成电路制成。所述ECC译码器电路与所述页缓存电路相连接,用于在读取存储器操作时,从页缓存电路存储的一页数据传送至ECC译码器进行译码,并对出错的数据纠错;所述读取状态机电路与外围高压控制电路相连接,与存储器阵列单元电路相连接,与ECC译码器电路相连接,所述读取状态机电路用于控制数据从存储器阵列单元读出至页缓存电路,并在存储器阵列单元字线提供读取电压的逻辑控制,以及经ECC译码器译码后将数据传送至IO接口电路的整体逻辑控制。
所述擦除状态机电路与外围高压控制电路相连接,与存储器阵列单元电路相连接,用于对存储器擦除操作时,控制擦除高压施加于存储器阵列单元,对指定的存储器阵列单元中块地址实现擦除控制;
所述外围高压控制电路与嵌入ECC编码电路相连接,与嵌入ECC读取电路相连接,与擦除状态机电路相连接,用于在编程或者读取或者擦除操作时对存储器阵列单元器件的字线和/或位线施加所需的高压以及阶梯式脉冲电压的控制;
所述IO接口电路用于对外的数据交互。
MLC NAND Flash存储器阵列电路左、右分别连接行译码器电路和列译码器电路,用于对MLC NAND Flash存储器编程操作或者读取操作或者擦除操作的行地址、列地址进行译码,并传送至MLC NAND Flash存储器阵列的指定区域;在MLC NAND Flash存储器阵列电路下方连接着页缓存电路,页缓存电路用于在编程操作时候,经ECC编码模块中编码器电路对编程数据编码后所产生的数据位和校验位进行数据缓存,最终页缓存电路将整页的数据位和校验位一起下刷至MLC NAND Flash存储器阵列中,实现数据存储至MLC NAND Flash闪存中;在读取操作时,从MLC NAND Flash存储器阵列中以页为单位读取数据位和校验位至页缓存电路中缓存,接着,将页缓存中缓存的一页数据位和校验位传送至嵌入ECC的读取电路模块,将页缓存的一页数据(包括数据位和校验位)经ECC译码器电路译码,并同时调用读取状态机电路实现数据读出至IO口整个过程的算法控制,最终将读出的数据传送至I/O接口。图1中嵌入ECC的编程电路模块包括:ECC编码器电路、编程状态机电路,其中,ECC编码器电路用于对编程数据进行编码,编码产生的数据位和校验位一并传送至页缓存电路中;编程状态机电路包括编程验证电路,编程状态机电路与ECC编码器电路相连接,与页缓存电路相连接,与外围高压控制电路相连接,所述编程状态机电路用于控制数据经ECC编码器编码产生的数据位和校验位,以及将编码后的数据编程至页缓存电路的逻辑控制,所述编程验证电路用于验证不同编程态数据编程至对应阈值范围内。图1中嵌入ECC的读取电路模块包括:ECC译码器电路、读取状态机电路,其中ECC译码器电路用于对页缓存中的数据进行解码,包括校正子式计算电路、错误位置计算电路、钱搜索电路、缓存FIFO电路以及错误纠正电路,ECC译码器电路模块首先将MLC NAND Flash中读出的可能发生错误的码字(包括数据位和校验位)传送至页缓存电路,页缓存电路将码子传送至伴随式计算电路模块,根据伴随式是否全为0判断读出的码子有无错误发生。若无错误则直接将数据传送至IO接口;若有错误则通过错误位置计算电路,采用BM迭代算法对错误多项式进行硬件电路计算和钱搜索(Chien搜索)电路模块找到纠错能力范围内错误的个数和位置,然后与缓存FIFO(First infirstout)电路缓存的码字对比实现错误数据的纠错,最终完成ECC译码;其中:
校正子式电路与错误位置计算电路、钱搜索电路及错误纠正电路依次连接,用于对从页缓存电路传进来的数据位和校验位进行校正子计算,并根据计算校正子式电路计算的结果传送至错误位置计算电路,再传送至钱搜索电路,将钱搜索电路迭代的搜索结果传送至错误纠正电路;所述缓存FIFO电路与错误纠正电路相连接,缓存从页缓存电路传送进来的数据位和校验位,并将其传送至错误纠正电路,错误纠正电路将其与钱搜索电路的数据进行比较,纠正出错数据;
所述读取状态机电路控制数据从MLC NAND Flash存储器阵列至IO口的全部操作算法控制。图1中逻辑控制电路还包括外围高压控制电路、擦除状态机电路。外围高压控制电路用于在对MLC NAND Flash编程、读取及擦除操作时,所需要对MLC NAND Flash阵列单元器件的字线和/或位线施加高压的控制。图1中的擦除状态机电路实现对指定的MLCNANDFlash存储器阵列的块区域进行擦除控制操作,控制擦除高压施加于存储器阵列单元,对指定的存储器阵列单元中块地址实现擦除控制。
参见图2,为MLC NAND Flash存储器阈值分布图,编程操作实质就是将电荷存储在浮栅中,从而使得阈值电压增加,由于MLC NAND Flash存储器每个器件可以存储2比特数据,因此具有图2所示的4种阈值分布。如图2所示,E态为擦除态,D1,D2,D3态分别为三种不同的编程阈值态。E态、D1态、D2态、D3态这四个不同态划分了MLC NAND Flash阈值区域。由于不同的编程阈值电压范围需要不同的验证电压VVFY1,VVFY2,VVFY3来验证是否编程到设置的阈值态,图2中的VREAD1电压,VREAD2电压,VREAD3电压分别为读取不同数据所施加的电压。MLC比SLC容量大,但其更窄的阈值分布范围也对其可靠性提出了苛刻的要求,因此针对该问题,本实施例的一种存储器电路将ECC编解码电路嵌入至MLC NAND Flash存储器闪存芯片中具有高可靠性。
参见图3,为MLC NAND Flash存储器嵌入ECC编程操作电路框图,图3中依次相连的是NAND Flash阵列、页缓存电路、编程状态机电路、IO接口,其中NAND Flash阵列左右各连接行译码电路、列译码电路,编程状态机电路连接外围高压控制电路,其中编程状态机电路包括编程验证电路,编程验证电路用于验证不同编程态数据是否编程至对应阈值范围内。MLC NAND Flash存储器编程以页为单位,IO接口电路将待编程的一页数据传送至嵌入ECC编程电路模块中,一页数据的大小为2KB,每512Byte数据通过ECC编码器电路模块编码生成数据位和校验位,经过4次512Byte数据的编码,则完成一页的数据编码,同时,通过调用嵌入ECC编程电路模块中的编程状态机电路控制编程算法流程,高效地执行数据的编码和编程算法操作。其外围高压电路用于在编程操作时所需提供给MLC NAND Flash存储器阵列字线电压的控制。同时,经ECC编码器编码后产生的数据位和校验位一并传送至页缓存电路中,在将页缓存电路中的一页数据下刷至MLC NAND Flash存储器阵列中指定的地址位置,完成编程操作。图3所示的编程算法中嵌入了ECC编码模块来提高编程数据的可靠性。编程状态机电路实现整个编程算法控制,采用编程算法嵌套的方式来实现层次化调用,这样设计的优点在于使整个系统条理清晰并能提高效率。
参见图4,为MLC NAND Flash存储器嵌入ECC编程操作流程图,采用图1所示的嵌入ECC编程电路模块实现编程操作流程算法,其MLC NAND Flash存储器编程操作流程包括:
步骤1:发送第一周期编程操作指令;
步骤2:写入所要编程的MLC NAND Flash存储器地址;
步骤3:写入所要编程的页数据,将编程的页数据传送至嵌入ECC编程电路模块,采用嵌入ECC编程电路模块中的ECC编码器电路完成对所要编程的页数据编码;
步骤4:发送第二周期编程操作指令;
步骤5:经ECC编码器编码后的页数据传送至MLC NAND Flash存储器的页缓存电路,完成对页数据的缓存;
步骤6:将页缓存电路中存储的数据编程至MLC NAND Flash存储器阵列中。其中,所述嵌入ECC编程电路模块如图3所示,具体包括:
1、对所要编程至MLC NAND Flash存储器阵列的页数据传送至ECC编码器电路;
2、ECC编码器电路将页数据编码,并产生数据位和校验位;
3、调用编程状态机电路控制数据的编码及数据编程至MLC NAND Flash存储器阵列。
参见图8所示,MLC NAND Flash编程有4种阈值态,首先编写低有效位LSB数据,将页缓存电路中所缓存的页数据的低有效位LSB数据下刷至MLC NAND Flash存储器阵列,待低有效位LSB数据编程完毕后,将低有效位LSB数据读出来;再从页缓存电路中载入高有效位MSB的数据,完成高有效位MSB数据的编程至MLC NAND Flash存储器阵列,最终完成MLCNAND Flash存储器的编程操作。参见图3,从第一个周期编程操作指令的下发到数据编程至MLC NAND Flash存储器阵列中,其所有算法均有嵌入ECC的编程电路模块中的编程状态机电路控制实现。所述将页缓存电路中存储的数据编程至MLC NAND Flash存储器阵列后,其编程包括低有效位LSB数据编程和高有效位MSB数据编程,具体包括:
1、首先进行低有效位LSB数据编程,将页缓存电路中所缓存的页数据的低有效位LSB数据编程至MLC NAND Flash存储器阵列;
2、待低有效位LSB数据编程完毕后,读出低有效位LSB数据;
3、再从页缓存电路中载入高有效位MSB的数据,结合读出的低有效位LSB数据,将高有效位MSB数据编程至MLC NAND Flash存储器阵列。
参见图5,为MLC NAND Flash存储器嵌入ECC的LSB编程操作流程图,由图4可知,待编程数据经ECC模块编码后,存储在页缓存电路,页缓存电路将数据分为低有效位LSB数据编程和高有效位MSB编程至MLC NAND Flash存储器阵列中,其中低有效位LSB编程包括:
步骤1:将需要编程的低有效位LSB数据载入至寄存器中,并判断低有效位LSB数据是1还是0,如果是1,则在MLC NAND Flash存储器中的阵列器件的位线施加大小为VDD的电源电压;如果是0,则在MLC NAND Flash存储器中的阵列器件的位线施加大小为0V的电压;
步骤2:在MLC NAND Flash存储器阵列器件的字线施加初始编程电压,待MLCNANDFlash存储器中的阵列器件的字线初始电压和位线电压都施加完成后,对MLC NANDFlash存储器阵列器件的字线施加阶梯式脉冲电压;
步骤3:施加一次阶梯式脉冲电压,待施加完一次阶梯脉冲电压后,进行一次编程验证操作;
步骤4:判定低有效位LSB数据是否编程至低有效位LSB数据阈值范围内为止,若编程至低有效位LSB数据阈值范围内,则低有效位编程成功,否则继续执行步骤3及其之后的步骤。
参见图6,为MLC NAND Flash存储器嵌入ECC的MSB编程操作流程图,待低有效位LSB编程完成后,执行高有效位MSB数据编程,包括:
步骤1:将低有效位LSB数据读出,结合读出的低有效位LSB数据,载入所要编程的高有效位MSB数据;
步骤2:在MLC NAND Flash存储器阵列器件的字线施加阶梯式脉冲电压,其中,阶梯式脉冲电压的阶梯步值由STEP_CNT控制;
步骤3:每施加一次阶梯式脉冲电压进行一次编程验证操作,直到完成对高有效位MSB数据编程。MLC NAND Flash存储器读取操作是以页为单位进行的,如图2所示,MLCNANDFlash存储器一个器件可以存储两比特数据,其中E为擦除态,D1,D2,D3为三种不同的编程态,由于要读出四种不同的阈值态,则需要施加三个读取电压VREAD1,VREAD2,VREAD3才能读出四种对应的阈值态。MLC NAND Flash存储器在读取操作中由于读干扰和NAND Flash存储器阵列的影响,很容易发生数据翻转,造成数据出错。因此为了解决这个问题,在MLCNANDFlash读取操作中嵌入ECC算法模块,实现每4096比特数据纠正8比特数据。
参见图7所示,为MLC NAND Flash存储器嵌入ECC读取操作架构图,MLC NANDFlash存储器阵列电路左、右分别连接行译码器电路和列译码器电路,用于对MLC NANDFlash存储器编程、读取、擦除操作的行地址、列地址进行译码,并传送至MLC NAND Flash存储器阵列的指定区域;在MLC NAND Flash存储器阵列电路下方接连接着页缓存电路,用于在编读取操作时候,将MLC NAND Flash存储器阵列的一页数据暂存至页缓存电路。依次相连的是嵌入ECC读取电路,嵌入ECC的读取电路包括ECC译码器电路,用于对读出的数据进行解码,实现每4096比特数据可以纠正8比特数据,和读取状态机电路,用于控制实现读取操作算法。所述ECC译码器电路包括:校正子式计算电路、错误位置计算电路、钱搜索电路、缓存FIFO电路以及错误纠正电路,其中:校正子式电路与错误位置计算电路、钱搜索电路及错误纠正电路依次连接,用于对从页缓存电路传进来的数据位和校验位进行校正子计算,并根据计算校正子式电路计算的结果传送至错误位置计算电路,再传送至钱搜索电路,将钱搜索电路迭代的搜索结果传送至错误纠正电路;所述缓存FIFO电路与错误纠正电路相连接,缓存从页缓存电路传送进来的数据位和校验位,并将其传送至错误纠正电路,错误纠正电路将其与钱搜索电路的数据进行比较,纠正出错数据。所述读取状态机电路与外围高压控制电路相连接,与存储器阵列单元电路相连接,与ECC译码器电路相连接,所述读取状态机电路用于控制数据从存储器阵列单元读出至页缓存电路,并在存储器阵列单元字线提供读取电压的逻辑控制,以及经ECC译码器译码后将数据传送至IO接口电路的整体逻辑控制。外围高压电路用于提供读取所需的高压。读取操作时,当发送读取命令时,嵌入ECC读取电路的读取状态机电路调用对应地读取算法,将MLC NAND Flash阵列中一页数据读取至页缓存电路中,将页缓存电路中的一页数据分4次传送至ECC解码器电路模块译码,该译码模块可实现对读取的数据纠错,纠错能力为8bits/4096bits,最终将译码后的数据传送至输出端I/O口处。完成MLC NAND Flash的读取操作。
参见图9,为MLC NAND Flash存储器嵌入ECC读取操作流程图,MLC NAND Flash的读取操作包括读取低有效位LSB数据和高有效位MSB数据,参见图8为MLC NAND Flash低有效位LSB和高有效位MSB数据分布,具体如下:
读取操作以页为单位,发送第一周期读取命令;
写入需要读取MLC NAND Flash存储器阵列的地址;
待地址写完后,发送第二个周期的读取命令,MLC NAND Flash存储器调用读取状态机电路,完成MLC NAND Flash存储器阵列中的数据读取操作;待读取状态机电路将读取操作算法执行完毕后,数据从阵列中下刷到页缓存电路中进行缓存;
页缓存电路将读取出来的页数据传送至ECC译码器电路模块完成译码,将译码后的数据传送至MLC NAND Flash存储器接口,最终完成MLC NAND Flash存储器的读取操作。其中所述从MLC NAND Flash存储器阵列中读出数据包括读出低有效位LSB数据和高有效位MSB数据:首先读取低有效位LSB数据,施加初始电压VREAD1电压读出擦除E态和D1态的低有效位LSB数据,接着施加VREAD3电压读出D2态和D3态的低有效位LSB数据,完成低有效位LSB数据的读取;此时判断是否读取高有效位MSB数据,若只需要读取低有效位LSB数据,则完成MLCNAND Flash存储器读取操作;若要读取高有效位MSB数据,则加入VREAD2电压读出高有效位MSB数据,完成MLC NAND Flash存储器的读取操作;
参见图10,为MLC NAND Flash存储器嵌入ECC的擦除操作流程图,详述如下:
擦除操作以块为单位,发送第一周期擦除命令;
写入需要擦除MLC NAND Flash存储器阵列的块地址;
发送第二个周期擦除命令;
采用FN隧穿机制,选中MLC NAND Flash存储器阵列中的擦除块,启动擦除状态机电路;其中,所述擦除状态机电路实现擦除操作算法包括:
步骤1:在MLC NAND Flash存储器阵列器件的字线端施加0V电压,在MLC NANDFlash存储器阵列器件的衬底端施加初始擦除电压;
步骤2:进行块擦除;
步骤3:对擦除操作进行验证;
步骤3:判断擦除是否通过,若通过,则完成擦除操作;若没通过则继续在MLCNANDFlash存储器阵列的衬底端施加阶梯形脉冲电压进行擦除操作,每增加一次阶梯式脉冲电压,擦除阶梯式脉冲电压步值控制ERS_CNT加1;
步骤4:进入是否为擦除阶梯式脉冲电压步值ERS_CNT最大值的判定,若ERS_CNT达到最大值,则本次擦除操作失败;若ERS_CNT未达到最大值,则继续执行步骤2及其以后的步骤。即完成MLC NAND Flash存储器嵌入ECC的擦除操作。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明的技术方案的精神和范围。
Claims (10)
1.一种存储器电路,其特征在于,包括:存储器阵列单元电路、行译码器电路、列译码器电路、页缓存电路、逻辑控制电路以及IO接口电路;
所述存储器阵列单元电路分别连接行译码器电路和列译码器电路,存储器阵列单元电路依次相连页缓存电路、逻辑控制电路以及IO接口电路;
所述存储器阵列单元电路构成存储数据的阵列单元,完成数据的存储至指定地址的存储器阵列单元;
所述行译码器电路用于对存储器编程、读取、擦除操作的行地址进行译码,将译码后的行地址传送至存储器阵列单元的指定区域;
所述列译码器电路用于对存储器编程、读取、擦除操作的列地址进行译码,将译码后的列地址传送至存储器阵列单元的指定区域;
所述页缓存电路与ECC编码器电路、ECC译码器电路相连接,用于在编程操作时候,经ECC编码器电路对编程数据编码后,整个页数据传送至页缓存电路,用于对编码后的一页数据进行缓存,最终页缓存电路将整页的编程数据下刷到存储器阵列单元中;在读取操作时,存储器阵列单元中的一页数据首先存放至页缓存电路中进行缓存操作,然后再经ECC解码器电路译码后传送至IO接口;
所述逻辑控制电路,提供编程、读取和擦除状态机电路对嵌入ECC的存储器编程操作、嵌入ECC的存储器读取操作和擦除操作的逻辑算法控制,包括:嵌入ECC编程电路模块、嵌入ECC读取电路模块、擦除状态机电路模块及外围高压控制电路模块,其中:
所述嵌入ECC编程电路模块与页缓存电路和外围高压控制电路依次相连,用于实现从IO口传进来的数据进行编码及将编码后的数据编程至存储器阵列单元;
所述嵌入ECC读取电路模块与页缓存电路和外围高压控制电路依次相连,用于控制实现从存储器阵列单元电路读取出的一页数据至页缓存电路及控制存储在页缓存电路的一页数据进行译码;
所述擦除状态机电路与外围高压控制电路相连接,与存储器阵列单元电路相连接,用于对存储器擦除操作时,控制擦除高压施加于存储器阵列单元,对指定的存储器阵列单元中块地址实现擦除控制;
所述外围高压控制电路与嵌入ECC编码电路相连接,与嵌入ECC读取电路相连接,与擦除状态机电路相连接,用于在编程或者读取或者擦除操作时对存储器阵列单元器件的字线和/或位线施加所需的高压以及阶梯式脉冲电压的控制;
所述IO接口电路用于对外的数据交互。
2.如权利要求1所述的存储器电路,其特征在于,所述存储器阵列单元电路包括存储器阵列单元器件和存储器阵列单元的字线及位线控制逻辑电路。
3.如权利要求2所述的存储器电路,其特征在于,所述存储器阵列单元器件为SLC NANDFlash存储器单元或MLC NAND Flash存储器单元或TLC NAND Flash存储器单元。
4.如权利要求1所述的存储器电路,其特征在于,所述嵌入ECC编程电路模块还包括:ECC编码器电路、编程状态机电路,
所述ECC编码器电路与所述页缓存电路相连接,用于接收从IO口传进数据进行编码,编码产生的数据位和校验位传送至页缓存电路缓存;
所述编程状态机电路包括编程验证电路,编程状态机电路与ECC编码器电路相连接,与页缓存电路相连接,与外围高压控制电路相连接,所述编程状态机电路用于控制数据经ECC编码器编码产生的数据位和校验位,以及将编码后的数据编程至页缓存电路的逻辑控制,所述编程验证电路用于验证不同编程态数据编程至对应阈值范围内。
5.如权利要求1所述的存储器电路,其特征在于,所述页缓存电路包括读取电路、数字转化电路及锁存电路,所述读取电路用于读取存储器阵列单元电路中一列存储器阵列单元的电流,所述数字转化电路用于将读出的存储器阵列单元的电流值大小转化成数字逻辑值,所述锁存电路用于锁存数字转化电路转化出的数字逻辑值。
6.如权利要求1所述的存储器电路,其特征在于,所述嵌入ECC读取电路模块还包括:ECC译码器电路、读取状态机电路,
所述ECC译码器电路与所述页缓存电路相连接,用于在读取存储器操作时,从页缓存电路存储的一页数据传送至ECC译码器进行译码,并对出错的数据纠错;
所述读取状态机电路与外围高压控制电路相连接,与存储器阵列单元电路相连接,与ECC译码器电路相连接,所述读取状态机电路用于控制数据从存储器阵列单元读出至页缓存电路,并在存储器阵列单元字线提供读取电压的逻辑控制,以及经ECC译码器译码后将数据传送至IO接口电路的整体逻辑控制。
7.如权利要求5所述的存储器电路,其特征在于,所述ECC译码器电路包括:校正子式计算电路、错误位置计算电路、钱搜索电路、缓存FIFO电路以及错误纠正电路,其中:
校正子式电路与错误位置计算电路、钱搜索电路及错误纠正电路依次连接,用于对从页缓存电路传进来的数据位和校验位进行校正子计算,并根据计算校正子式电路计算的结果传送至错误位置计算电路,再传送至钱搜索电路,将钱搜索电路迭代的搜索结果传送至错误纠正电路;
所述缓存FIFO电路与错误纠正电路相连接,缓存从页缓存电路传送进来的数据位和校验位,并将其传送至错误纠正电路,错误纠正电路将其与钱搜索电路的数据进行比较,纠正出错数据。
8.如权利要求7所述的存储器电路,其特征在于,所述错误纠正电路对每4096位数据中纠正8位出错数据。
9.如权利要求1所述的存储器电路,其特征在于,所述存储器阵列单元电路、行译码器电路、列译码器电路、页缓存电路、逻辑控制电路以及IO接口电路均采用集成电路制成。
10.如权利要求1所述的存储器电路,其特征在于,所述存储器阵列单元电路、行译码器电路、列译码器电路、页缓存电路、逻辑控制电路以及IO接口电路均采用数字电路制成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029754.8A CN107993687B (zh) | 2018-01-12 | 2018-01-12 | 一种存储器电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810029754.8A CN107993687B (zh) | 2018-01-12 | 2018-01-12 | 一种存储器电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107993687A CN107993687A (zh) | 2018-05-04 |
CN107993687B true CN107993687B (zh) | 2023-08-11 |
Family
ID=62040979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810029754.8A Active CN107993687B (zh) | 2018-01-12 | 2018-01-12 | 一种存储器电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107993687B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114360624A (zh) * | 2022-01-04 | 2022-04-15 | 珠海创飞芯科技有限公司 | 一种闪存结构、数据处理方法、存储介质及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067972A (zh) * | 2007-04-23 | 2007-11-07 | 北京芯技佳易微电子科技有限公司 | 一种存储器检错纠错编码电路及利用其读写数据的方法 |
CN102341864A (zh) * | 2009-03-05 | 2012-02-01 | 莫塞德技术公司 | 多级行译码的nand闪速架构 |
CN105280222A (zh) * | 2015-10-27 | 2016-01-27 | 中国科学院微电子研究所 | 一种提高阻变存储器可靠性的低功耗刷新系统及方法 |
CN106776391A (zh) * | 2016-12-13 | 2017-05-31 | 成都信息工程大学 | 一种NAND Flash控制器的控制方法和装置 |
CN107025926A (zh) * | 2015-11-04 | 2017-08-08 | 三星电子株式会社 | 存储装置和操作存储装置的方法 |
CN207611609U (zh) * | 2018-01-12 | 2018-07-13 | 成都信息工程大学 | 一种存储器电路 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6907497B2 (en) * | 2001-12-20 | 2005-06-14 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
JP6262063B2 (ja) * | 2014-03-18 | 2018-01-17 | 東芝メモリ株式会社 | 不揮発性メモリおよび書き込み方法 |
-
2018
- 2018-01-12 CN CN201810029754.8A patent/CN107993687B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067972A (zh) * | 2007-04-23 | 2007-11-07 | 北京芯技佳易微电子科技有限公司 | 一种存储器检错纠错编码电路及利用其读写数据的方法 |
CN102341864A (zh) * | 2009-03-05 | 2012-02-01 | 莫塞德技术公司 | 多级行译码的nand闪速架构 |
CN105280222A (zh) * | 2015-10-27 | 2016-01-27 | 中国科学院微电子研究所 | 一种提高阻变存储器可靠性的低功耗刷新系统及方法 |
CN107025926A (zh) * | 2015-11-04 | 2017-08-08 | 三星电子株式会社 | 存储装置和操作存储装置的方法 |
CN106776391A (zh) * | 2016-12-13 | 2017-05-31 | 成都信息工程大学 | 一种NAND Flash控制器的控制方法和装置 |
CN207611609U (zh) * | 2018-01-12 | 2018-07-13 | 成都信息工程大学 | 一种存储器电路 |
Non-Patent Citations (1)
Title |
---|
姜丹丹等.一种精确的非挥发性存储器中高压产生系统的稳定性分析模型.《成都信息工程学院学报》.2014,第29卷(第3期),222-226. * |
Also Published As
Publication number | Publication date |
---|---|
CN107993687A (zh) | 2018-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9136872B2 (en) | Memory, memory system, and error checking and correcting method for memory | |
US8576622B2 (en) | Non-volatile memory device and read method thereof | |
KR101736792B1 (ko) | 플래시 메모리 및 그것의 셀프 인터리빙 방법 | |
US8111550B2 (en) | M+N bit programming and M+L bit read for M bit memory cells | |
US7502255B2 (en) | Method for cache page copy in a non-volatile memory | |
US8644066B2 (en) | Multi-level non-volatile memory device, system and method with state-converted data | |
US20080219057A1 (en) | Non-Volatile Memory With Cache Page Copy | |
US9478298B2 (en) | Memory system and method of reading data thereof | |
US10911068B2 (en) | Error correction circuit and method of operating the same | |
KR20080074585A (ko) | 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를포함한 메모리 시스템 | |
CN112599169B (zh) | 存储器的读操作控制方法及装置以及存储器控制器 | |
US8949684B1 (en) | Segmented data storage | |
EP2132749B1 (en) | Non-volatile memory and method for cache page copy | |
US20170060482A1 (en) | Memory system and method of controlling nonvolatile memory | |
US20220083261A1 (en) | Memory system, semiconductor storage device, and method for reading out data | |
US8799748B2 (en) | Non-volatile semiconductor memory device performing multi-level storage operation | |
US9292383B2 (en) | Multilevel encoding with error correction | |
CN207742939U (zh) | 一种用于MLC NAND Flash存储器的嵌入ECC读取电路装置 | |
CN207611609U (zh) | 一种存储器电路 | |
CN107993687B (zh) | 一种存储器电路 | |
US20180275917A1 (en) | Memory controller, memory system, and control method | |
CN115295047A (zh) | 存储器子系统中的间歇式动态开始电压和编程验证采样 | |
US11675530B2 (en) | Memory controller, storage device and operating method of memory controller | |
US11250909B2 (en) | Nonvolatile memory and memory system | |
KR20090110648A (ko) | 플래시 메모리로 데이터를 기록하는 방법과 플래시메모리에 기록된 데이터를 읽는 방법 및 플래시 메모리시스템 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |