CN103425594B - 数据处理方法、存储器控制器与存储器存储装置 - Google Patents
数据处理方法、存储器控制器与存储器存储装置 Download PDFInfo
- Publication number
- CN103425594B CN103425594B CN201210161810.6A CN201210161810A CN103425594B CN 103425594 B CN103425594 B CN 103425594B CN 201210161810 A CN201210161810 A CN 201210161810A CN 103425594 B CN103425594 B CN 103425594B
- Authority
- CN
- China
- Prior art keywords
- access address
- physics
- logic
- programming
- data
- 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
一种数据处理方法、存储器控制器与存储器存储装置。该数据处理方法用于可复写式非易失性存储器模块。该方法包括接收属于一逻辑编程单元的一逻辑存取地址的写入数据串;选择第一物理编程单元;并且判断此写入数据串是否属于一种模式。本方法包括,如果此写入数据串属在此模式时,将对应此逻辑存取地址的识别信息设定为对应此模式的识别值,并且将对应此逻辑存取地址的识别信息存储至预设区域,其中此写入数据串不会被编程至所选择的物理编程单元中。本方法还包括将此逻辑编程单元映射至所选择的物理编程单元。基此,本方法可有效地缩短写入数据所需的时间。
Description
技术领域
本发明涉及一种用于可复写式非易失性存储器模块的数据处理方法以及使用此方法的存储器控制器与存储器存储装置。
背景技术
数字相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储介质的需求也急速增加。由于可复写式非易失性存储器(例如,快闪存储器)具有数据非挥发性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,可复写式非易失性存储器包括多个物理抹除单元,且每个物理抹除单元包括多个物理编程单元,其中物理编程单元为最小的写入单位。因此,当欲写入的数据的大小小于物理编程单元(physical programmed unit)的容量时,一般来说,存储器控制电路会在物理编程单元中未被写入数据的位中填入填塞值(pad value),例如‘0’,由此以整个物理编程单元为单位来进行编程运作。然而,将此些填塞值传输至可复写式非易失性存储器并进行编程,会额外增加执行写入指令所需的时间。此外,主机系统会在存储装置的部分存储地址中建立与维护系统数据(例如,文件配置表)以管理整个存储装置的存储空间,并且在此些系统数据中部分字段(栏位)会常态性记录固定特定值(例如,‘0’),因此,存储器控制电路会重复地写入与读取此些固定特定值。然而,随着物理编程单元的容量越来越大,执行编程运作所需的时间亦随着增加。如何有效地处理欲写入的数据,以缩短执行写入指令所需的时间,为此领域技术人员所关心的议题。
发明内容
本发明的范例实施例提出一种数据处理方法、存储器控制器以及存储器存储装置,可以有效地缩短执行数据写入与读取指令所需的时间。
本发明一范例实施例提出一种数据处理方法,用于可复写式非易失性存储器模块,此可复写式非易失性存储器模块包括多个物理编程单元,每一物理编程单元包括数据位区与冗余位区,数据位区包括多个物理存取地址,多个逻辑编程单元被配置以映射至少部分的物理编程单元,并且每一逻辑编程单元具有多个逻辑存取地址。本数据处理方法包括从主机系统接收第一写入数据串,其中第一写入数据串配置于第一逻辑存取地址且第一逻辑存取地址属于第一逻辑编程单元。本数据处理方法还包括选择第一物理编程单元;并且判断第一写入数据串是否属于一种模式(kind of pattern)。本数据处理方法也包括,如果第一写入数据串不属在此模式(态样)时,将对应第一逻辑存取地址的识别信息设定为预设值,将第一写入数据串编程至第一物理编程单元的数据位区的第一物理存取地址,并且将对应第一逻辑存取地址的识别信息存储至预定区域。本数据处方法亦包括,如果第一写入数据串属在此模式时,将对应第一逻辑存取地址的识别信息设定为对应此模式的识别值,并且将对应第一逻辑存取地址的识别信息存储至预定区域,其中第一写入数据串不会被编程至第一物理编程单元中。本数据处方法还包括将第一逻辑编程单元映射至第一物理编程单元。
在一范例实施例中,上述的将对应第一逻辑存取地址的识别信息存储至预定区域的步骤包括:将对应第一逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。
在一范例实施例中,上述的数据处理方法还包括:从主机系统接收指示读取存储在第一逻辑存取地址中的数据的读取指令;从第一物理编程单元中读取属于第一逻辑存取地址的读取数据串与对应第一逻辑存取地址的识别信息;判断从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息是否为上述识别值;如果从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息为上述识别值时,将对应此模式的预设数据传送给主机系统;以及如果从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息非为上述识别值时,将所读取的数据串传送给主机系统。
在一范例实施例中,上述的数据处理方法还包括:判断可复写式非易失性存储器模块是否已存储属于第一逻辑编程单元的第二逻辑存取地址的有效数据串;如果可复写式非易失性存储器模块已存储属于第二逻辑存取地址的有效数据串时,将对应第二逻辑存取地址的识别信息设定为预设值,将有效数据串编程至第一物理编程单元的数据位区的第二物理存取地址,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区;以及如果可复写式非易失性存储器模块未存储有属于第二逻辑存取地址的有效数据串时,将对应第二逻辑存取地址的识别信息设定为上述识别值,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。
在一范例实施例中,上述的数据处理方法还包括:从主机系统接收属于第一逻辑编程单元的第二逻辑存取地址的第二写入数据串;判断第二写入数据串是否属于上述模式;如果第二写入数据串不属于上述模式时,将对应第二逻辑存取地址的识别信息设定为预设值,将第二写入数据串编程至第一物理编程单元的数据位区的第二物理存取地址,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区;以及如果第二写入数据串属于上述模式时,将对应第二逻辑存取地址的识别信息设定为对应上述模式的识别值,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区,其中第二写入数据串不会被编程至第一物理编程单元中。
在一范例实施例中,上述的第一写入数据串、第二写入数据串、对应第一逻辑存取地址的识别信息、对应第二逻辑存取地址的识别信息是通过一编程指令被编程至第一物理编程单元。
在一范例实施例中,上述的判断第一写入数据串是否属于上述模式的步骤包括:判断第一写入数据串的每个数据位是否为0;以及如果第一写入数据串的每个数据位皆为0时,判断第一写入数据串属于上述模式。
本发明一范例实施例提出一种数据处理方法,用于可复写式非易失性存储器模块,此可复写式非易失性存储器模块包括多个物理编程单元,每一物理编程单元包括数据位区与冗余位区,数据位区包括多个物理存取地址,多个逻辑编程单元被配置以映射部分的物理编程单元,并且每一逻辑编程单元具有多个逻辑存取地址。本数据处理方法包括从主机系统接收第一写入数据串,其中第一写入数据串属于第一逻辑存取地址且第一逻辑存取地址属于第一逻辑编程单元。本数据处理方法也包括:选择第一物理编程单元;并且判断第一写入数据串是否属于多个模式的其中一个模式。本数据处理方法还包括,如果第一写入数据串不属于任一模式时,将对应第一逻辑存取地址的识别信息设定为预设值,将第一写入数据串编程至第一物理编程单元的数据位区的第一物理存取地址,并且将对应第一逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。本数据处理方法亦包括,如果第一写入数据串属于其中一个模式时,将对应第一逻辑存取地址的识别信息设定为对应此模式的识别值,并且将对应第一逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区,其中第一写入数据串不会被编程至第一物理编程单元中。本数据处理方法还包括将第一逻辑编程单元映射至第一物理编程单元。
在一范例实施例中,上述的数据处理方法还包括:从主机系统接收指示读取存储在第一逻辑存取地址中的数据的;从第一物理编程单元中读取属于第一逻辑存取地址的读取数据串与对应第一逻辑存取地址的识别信息;判断从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息是否为对应所述多个模式的其中一个模式的识别值;如果从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息为其中一个模式的识别值时,将对应此模式的预设数据传送给主机系统;以及如果从第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息非为任一个模式的识别值时,将此读取数据串传送给主机系统。
本发明一范例实施例提出一种存储器控制器,用于控制可复写式非易失性存储器模块,其中此可复写式非易失性存储器模块包括多个物理编程单元,每一物理编程单元包括数据位区与冗余位区,且数据位区包括多个物理存取地址。本存储器控制器包括:主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口与存储器接口,并且配置多个逻辑编程单元以映射至少部分的物理编程单元,其中每一逻辑编程单元具有多个逻辑存取地址。在此,存储器管理电路从主机系统接收第一写入数据串,其中第一写入数据串属于第一逻辑存取地址且第一逻辑存取地址属于第一逻辑编程单元。此外,存储器管理电路选择第一物理编程单元,并且判断第一写入数据串是否属于一种模式。如果第一写入数据串不属在此模式时,存储器管理电路将对应第一逻辑存取地址的识别信息设定为预设值,将第一写入数据串编程至第一物理编程单元的数据位区的第一物理存取地址,并且将对应第一逻辑存取地址的识别信息存储至预定区域。如果第一写入数据串属在此模式时,存储器管理电路将对应第一逻辑存取地址的识别信息设定为对应此模式的识别值,并且将对应第一逻辑存取地址的识别信息存储至预定区域,其中第一写入数据串不会被编程至第一物理编程单元中。再者,存储器管理电路还用以将第一逻辑编程单元映射至第一物理编程单元。
在一范例实施例中,上述的预定区域为第一物理编程单元的冗余位区。
在一范例实施例中,上述的存储器管理电路通过主机接口从主机系统接收指示读取存储在第一逻辑存取地址中的数据的读取指令,通过存储器接口从第一物理编程单元中读取属于第一逻辑存取地址的读取数据串与对应第一逻辑存取地址的识别信息,并且判断从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息是否为上述识别值。如果从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息为上述识别值时,存储器管理电路通过主机接口将对应此模式的预设数据传送给主机系统。如果从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息非为上述识别值时,存储器管理电路通过主机接口将读取数据串传送给主机系统。
在一范例实施例中,上述的存储器管理电路判断可复写式非易失性存储器模块是否已存储属于第一逻辑编程单元的第二逻辑存取地址的有效数据串。如果可复写式非易失性存储器模块已存储属于第二逻辑存取地址的有效数据串时,存储器管理电路将对应第二逻辑存取地址的识别信息设定为预设值,将有效数据串编程至第一物理编程单元的数据位区的第二物理存取地址,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。如果可复写式非易失性存储器模块未存储有属于第二逻辑存取地址的有效数据串时,存储器管理电路将对应第二逻辑存取地址的识别信息设定为对应模式的识别值,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。
在一范例实施例中,上述的存储器管理电路通过主机接口从主机系统接收属于第一逻辑编程单元的第二逻辑存取地址的第二写入数据串,并且判断第二写入数据串是否属于上述模式。如果第二写入数据串不属于上述模式时,存储器管理电路将对应第二逻辑存取地址的识别信息设定为预设值,将第二写入数据串编程至第一物理编程单元的数据位区的第二物理存取地址,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。如果第二写入数据串属于上述模式时,存储器管理电路将对应第二逻辑存取地址的识别信息设定为对应上述模式的识别值,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区,其中第二写入数据串不会被编程至第一物理编程单元中。
在一范例实施例中,上述的存储器管理电路使用一编程指令将第一写入数据串、第二写入数据串、对应第一逻辑存取地址的识别信息、对应第二逻辑存取地址的识别信息编程至第一物理编程单元。
在一范例实施例中,上述的存储器管理电路判断第一写入数据串的每个数据位是否为0,并且如果第一写入数据串的每个数据位皆为0时,存储器管理电路判断第一写入数据串属于上述模式。
本发明一范例实施例提出一种存储器存储装置,其包括连接器、可复写式非易失性存储器模块与存储器控制器。连接器用以电性连接至主机系统。可复写式非易失性存储器模块包括多个物理编程单元,每一物理编程单元包括数据位区与冗余位区,并且数据位区包括多个物理存取地址。存储器控制器,电性连接至连接器与可复写式非易失性存储器模块,并且配置多个逻辑编程单元以映射至少部分的物理编程单元,其中每一逻辑编程单元具有多个逻辑存取地址。在此,存储器控制器从主机系统接收第一写入数据串,其中第一写入数据串配置于第一逻辑存取地址且第一逻辑存取地址属于第一逻辑编程单元。此外,存储器控制器选择第一物理编程单元,并且判断第一写入数据串是否属于一种模式。如果第一写入数据串不属在此模式时,存储器控制器将对应第一逻辑存取地址的识别信息设定为预设值,将第一写入数据串编程至第一物理编程单元的数据位区的第一物理存取地址,并且将对应第一逻辑存取地址的识别信息存储至预定区域。如果第一写入数据串属在此模式时,存储器控制器将对应第一逻辑存取地址的识别信息设定为对应此模式的识别值,并且将对应第一逻辑存取地址的识别信息存储至预定区域,其中第一写入数据串不会被编程至第一物理编程单元中。再者,存储器控制器还用以将第一逻辑编程单元映射至第一物理编程单元。
在一范例实施例中,上述的预定区域为第一物理编程单元的冗余位区。
在一范例实施例中,上述的存储器控制器从主机系统接收指示读取存储在第一逻辑存取地址中的数据的读取指令,从第一物理编程单元中读取属于第一逻辑存取地址的读取数据串与对应第一逻辑存取地址的识别信息,并且判断从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息是否为上述识别值。如果从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息为上述识别值时,存储器控制器将对应此模式的预设数据传送给主机系统。如果从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息非为上述识别值时,存储器控制器将读取数据串传送给主机系统。
在一范例实施例中,上述的存储器控制器判断可复写式非易失性存储器模块是否已存储属于第一逻辑编程单元的第二逻辑存取地址的有效数据串。如果可复写式非易失性存储器模块已存储属于第二逻辑存取地址的有效数据串时,存储器控制器将对应第二逻辑存取地址的识别信息设定为预设值,将有效数据串编程至第一物理编程单元的数据位区的第二物理存取地址,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。如果可复写式非易失性存储器模块未存储有属于第二逻辑存取地址的有效数据串时,存储器控制器将对应第二逻辑存取地址的识别信息设定为上述识别值,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。
在一范例实施例中,上述的存储器控制器从主机系统接收属于第一逻辑编程单元的第二逻辑存取地址的第二写入数据串,并且判断第二写入数据串是否属于上述模式。如果第二写入数据串不属于上述模式时,存储器控制器将对应第二逻辑存取地址的识别信息设定为预设值,将第二写入数据串编程至第一物理编程单元的数据位区的第二物理存取地址,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。如果第二写入数据串属于上述模式时,存储器控制器将对应第二逻辑存取地址的识别信息设定为对应上述模式的识别值,并且将对应第二逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区,其中第二写入数据串不会被编程至第一物理编程单元中。
在一范例实施例中,上述的存储器控制器使用一编程指令将第一写入数据串、第二写入数据串、对应第一逻辑存取地址的识别信息、对应第二逻辑存取地址的识别信息编程至第一物理编程单元。
在一范例实施例中,上述的存储器控制器判断第一写入数据串的每个数据位是否为0,并且如果第一写入数据串的每个数据位皆为0时,存储器控制器判断第一写入数据串属于上述模式。
本发明一范例实施例提出一种存储器存储装置,其包括连接器、可复写式非易失性存储器模块与存储器控制器。连接器用以电性连接至主机系统。可复写式非易失性存储器模块包括多个物理编程单元,每一物理编程单元包括数据位区与冗余位区,并且数据位区包括多个物理存取地址。存储器控制器,电性连接至连接器与可复写式非易失性存储器模块,并且配置多个逻辑编程单元以映射部分的物理编程单元,其中每一逻辑编程单元具有多个逻辑存取地址。在此,存储器控制器从主机系统接收第一写入数据串,其中第一写入数据串属于第一逻辑存取地址且第一逻辑存取地址属于第一逻辑编程单元。此外,存储器控制器选择第一物理编程单元,并且判断第一写入数据串是否属于多个模式的其中一个模式。如果第一写入数据串不属于任一模式时,存储器控制器将对应第一逻辑存取地址的识别信息设定为预设值,将第一写入数据串编程至第一物理编程单元的数据位区的第一物理存取地址,并且将对应第一逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。如果第一写入数据串属于其中一个模式时,存储器控制器将对应第一逻辑存取地址的识别信息设定为对应此模式的识别值,并且将对应第一逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区,其中第一写入数据串不会被编程至第一物理编程单元中。此外,存储器控制器将第一逻辑编程单元映射至第一物理编程单元。
在一范例实施例中,上述的存储器控制器从主机系统接收指示读取存储在第一逻辑存取地址中的数据的读取指令,从第一物理编程单元中读取属于第一逻辑存取地址的读取数据串与对应第一逻辑存取地址的识别信息,并且判断从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息是否为对应上述多个模式的其中一个模式的识别值。如果从第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息为对应其中一个模式的识别值时,存储器控制器将对应此模式的预设数据传送给主机系统。如果从第一物理编程单元中所读取的对应第一逻辑存取地址的识别信息非为对应任一个模式的识别值时,存储器控制器将读取数据串传送给主机系统。
本发明一范例实施例提出一种数据处理方法,用于可复写式非易失性存储器模块,此可复写式非易失性存储器模块包括多个物理编程单元,每一物理编程单元包括数据位区与冗余位区,数据位区包括多个物理存取地址,多个逻辑编程单元被配置以映射至少部分的物理编程单元,并且每一逻辑编程单元具有多个逻辑存取地址。本数据处理方法包括从主机系统接收一读取指令,其中此读取指令指示读取存储在第一逻辑存取地址中的数据。本数据处理方法还包括从预定区域中读取对应第一逻辑存取地址的识别信息;并且判断所读取的识别信息是否为识别值。本数据处理方法也包括,如果所读取的识别信息为识别值时,将预设数据传送给主机系统。本数据处理方法更,如果所读取的识别信息非为识别值时,将从映射第一逻辑存取地址的一物理存取地址中所读取的数据串传送给主机系统,其中上述识别值的位数小于预设数据的位数。
基于上述,本发明一范例实施例所提出的数据处理方法、存储器控制器以及存储器存储装置,是在冗余位区中记录对应的识别信息,由此避免无意义的写入运作并且提升写入数据的速度。此外,本发明一范例实施例所提出的数据处理方法、存储器控制器以及存储器存储装置,能够通过识别冗余位区中的识别信息,将对应的特定数据快速地传送给主机,由此提升读取数据的速度。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据一范例实施例所绘示的主机系统与存储器存储装置。
图1B是根据一范例实施例所绘示的计算机、输入/输出装置与存储器存储装置的示意图。
图1C是根据一范例实施例所绘示的主机系统与存储器存储装置的示意图。
图2是绘示图1A所示的存储器存储装置的概要方块图。
图3是根据一范例实施例所绘示的存储器控制器的概要方块图。
图4与图5是根据一范例实施例所绘示的管理可复写式非易失性存储器模块的范例示意图。
图6是根据一范例实施例所绘示的逻辑抹除单元与物理抹除单元的映射示意图。
图7是根据一范例实施例所绘示的逻辑编程单元与物理编程单元的映射示意图。
图8是根据本发明一范例实施例所绘示的以一般写入程序将数据编程至物理编程单元的一范例。
图9是根据本发明一范例实施例所绘示的以特殊写入程序将数据编程至物理编程单元的一范例。
图10是根据本发明一范例实施例所绘示的以特殊写入程序将数据编程至物理编程单元的另一范例。
图11是根据本发明一范例实施例所绘示的以特殊写入程序将数据编程至物理编程单元的另一范例。
图12A与图12B是根据一范例实施例所绘示的数据处理方法的流程图。
【主要元件符号说明】
1000:主机系统
1100:计算机
1102:微处理器
1104:随机存取存储器
1106:输入/输出装置
1108:系统总线
1110:数据传输接口
1202:鼠标
1204:键盘
1206:显示器
1252:打印机
1256:随身碟
1214:存储卡
1216:固态硬盘
1310:数字相机
1312:SD卡
1314:MMC卡
1316:记忆棒
1318:CF卡
1320:嵌入式存储装置
100:存储器存储装置
102:连接器
104:存储器控制器
106:可复写式非易失性存储器模块
304(0)~304(R):物理抹除单元
202:存储器管理电路
206:存储器接口
254:电源管理电路
252:缓冲存储器
256:错误检查与校正电路
402:数据区
404:闲置区
406:系统区
408:取代区
LBA(0)~LBA(H):逻辑抹除单元
502(0)~502(A):逻辑编程单元
522(0)~522(A):物理编程单元
540(0)~540(1):逻辑存取地址
562:数据位区
582:冗余位区
560(0)~560(1):物理存取地址
DS1:第一写入数据串
DS2:第二写入数据串
VDS:有效数据串
Z1、Z2:识别信息
S1201、S1203、S1205、S1207、S1209、S1211、S1301、S1303、S1305、1307、1309:处理数据的步骤
具体实施方式
一般而言,存储器存储装置(亦称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(亦称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1A是根据一范例实施例所绘示的主机系统与存储器存储装置。
请参照图1A,主机系统1000一般包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取存储器(random access memory,RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1252。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器存储装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器存储装置100或从存储器存储装置100中读取数据。例如,存储器存储装置100可以是如图1B所示的随身碟1256、存储卡1214或固态硬盘(Solid State Drive,SSD)1216等的可复写式非易失性存储器存储装置。
一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本范例实施例中,主机系统1000是以计算机系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数字相机、摄像机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数字相机(摄像机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图1C所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是绘示图1A所示的存储器存储装置的概要方块图。
请参照图2,存储器存储装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模块106。
在本范例实施例中,连接器102是相容于序列先进附件(Serial AdvancedTechnology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102也可以是符合并行先进附件(Parallel Advanced TechnologyAttachment,PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,IEEE)1394标准、高速外围零件连接接口(PeripheralComponent Interconnect Express,PCI Express)标准、通用串行总线(UniversalSerial Bus,USB)标准、安全数字(Secure Digital,SD)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块106是电性连接至存储器控制器104,并且用以存储主机系统1000所写入的数据。可复写式非易失性存储器模块106具有物理抹除单元304(0)~304(R)。例如,物理抹除单元304(0)~304(R)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一物理抹除单元分别具有多个物理编程单元,并且属于同一个物理抹除单元的物理编程单元可被独立地写入且被同时地抹除。例如,每一物理抹除单元是由128个物理编程单元所组成。然而,必须了解的是,本发明不限于此,每一物理抹除单元是可由64个物理编程单元、256个物理编程单元或其他任意个物理编程单元所组成。
更详细来说,物理抹除单元为抹除的最小单位。亦即,每一物理抹除单元含有最小数目之一并被抹除的记忆胞。物理编程单元为编程的最小单元。即,物理编程单元为写入数据的最小单元。每一物理编程单元通常包括数据位区与冗余位区。数据位区包含多个物理存取地址用以存储使用者的数据,而冗余位区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个物理编程单元的数据位区中会包含2个物理存取地址,且一个物理存取地址的大小为512千字节(kilobyte,KB)。然而,在其他范例实施例中,数据位区中也可包含数目更多或更少的物理存取地址,本发明并不限制物理存取地址的大小以及个数。例如,物理抹除单元为物理区块,并且物理编程单元为物理页面。
在本范例实施例中,可复写式非易失性存储器模块106为多阶记忆胞(Multi Level Cell,MLC)NAND快闪存储器模块,即一个记忆胞中可存储至少2个位数据。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单阶记忆胞(Single Level Cell,SLC)NAND快闪存储器模块、多阶记忆胞(Trinary Level Cell,TLC)NAND型快闪存储器模块、其他快闪存储器模块或其他具有相同特性的存储器模块。
图3是根据一范例实施例所绘示的存储器控制器的概要方块图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器存储装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未绘示)与只读存储器(未绘示),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令也可以程序代码型式存储于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未绘示)、只读存储器(未绘示)及随机存取存储器(未绘示)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在本发明另一范例实施例中,存储器管理电路202的控制指令也可以一硬件型式来实作。例如,存储器管理电路202包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器抹除单元与数据处理单元是电性连接至微控制器。其中,存储器管理单元用以管理可复写式非易失性存储器模块106的物理抹除单元;存储器写入单元用以对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式非易失性存储器模块106中;存储器读取单元用以对可复写式非易失性存储器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据;存储器抹除单元用以对可复写式非易失性存储器模块106下达抹除指令以将数据从可复写式非易失性存储器模块106中抹除;而数据处理单元用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204也可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
在本发明一范例实施例中,存储器控制器104还包括缓冲存储器252、电源管理电路254以及错误检查与校正电路256。
缓冲存储器252是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器存储装置100的电源。
错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking andCorrecting Code,ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4与图5是根据一范例实施例所绘示的管理可复写式非易失性存储器模块的范例示意图。
必须了解的是,在此描述可复写式非易失性存储器模块106的物理抹除单元的运作时,以“提取”、“交换”、“分组”、“轮替”等词来操作物理抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的物理抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的物理抹除单元进行操作。
请参照图4,存储器控制器104会将可复写式非易失性存储器模块的物理抹除单元304(0)~304(R)逻辑地分组为数据区402、闲置区404、系统区406与取代区408。
数据区402与闲置区404的物理抹除单元是用以存储来自于主机系统1000的数据。具体来说,数据区402是已存储数据的物理抹除单元,而闲置区404的物理抹除单元是用以替换数据区402的物理抹除单元。因此,闲置区404的物理抹除单元为空或可使用的物理抹除单元,即无记录数据或标记为已没用的无效数据。也就是说,在闲置区404中的物理抹除单元已被执行抹除运作,或者当闲置区404中的物理抹除单元被提取用于存储数据之前所提取的物理抹除单元会被执行抹除运作。因此,闲置区404的物理抹除单元为可被使用的物理抹除单元。
逻辑上属于系统区406的物理抹除单元是用以记录系统数据,其中此系统数据包括关于存储器芯片的制造商与型号、存储器芯片的物理抹除单元数、每一物理抹除单元的物理编程单元数等。
逻辑上属于取代区408中的物理抹除单元是替代物理抹除单元。例如,可复写式非易失性存储器模块于出厂时会预留4%的物理抹除单元作为更换使用。也就是说,当数据区402、闲置区404与系统区406中的物理抹除单元损毁时,预留于取代区408中的物理抹除单元是用以取代损坏的物理抹除单元(即,坏物理抹除单元(bad block))。因此,如果取代区408中仍存有正常的物理抹除单元且发生物理抹除单元损毁时,存储器控制器104会从取代区408中提取正常的物理抹除单元来更换损毁的物理抹除单元。如果取代区408中无正常的物理抹除单元且发生物理抹除单元损毁时,则存储器控制器104会将整个存储器存储装置100宣告为写入保护(write protect)状态,而无法再第一写入数据串。
特别是,数据区402、闲置区404、系统区406与取代区408的物理抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置100的运作中,物理抹除单元关联至数据区402、闲置区404、系统区406与取代区408的分组关系会动态地变动。例如,当闲置区中的物理抹除单元损坏而被取代区的物理抹除单元取代时,则原本取代区的物理抹除单元会被关联至闲置区。
请参照图5,如上所述,数据区402与闲置区404的物理抹除单元是以轮替方式来存储主机系统1000所写入的数据。在本范例实施例中,存储器控制器104会配置逻辑抹除单元LBA(0)~LBA(H)以映射数据区402的物理抹除单元,其中每一逻辑抹除单元具有多个逻辑编程单元并且此些逻辑编程单元是依序地映射对应的物理抹除单元的物理编程单元。例如,存储器控制器104(或存储器管理电路202)会维护逻辑抹除单元-物理抹除单元映射表(logicalblock-physical block mapping table)以记录逻辑抹除单元LBA(0)~LBA(H)与数据区402的物理抹除单元的映射关系。
图6是根据一范例实施例所绘示的逻辑抹除单元与物理抹除单元的映射示意图。
请参照图6,一个逻辑抹除单元会包含多个逻辑编程单元,且这些逻辑编程单元会被映射至数据区402中物理抹除单元的物理编程单元。举例来说,逻辑抹除单元LBA(0)的逻辑编程单元502(0)~502(A)是映射至物理抹除单元304(0)的物理编程单元522(0)~522(A)。
此外,由于主机系统1000是以逻辑存取地址(例如,扇区(Sector))为单位来存取数据,当主机系统1000存取数据时存储器管理电路202会将对应存储器存储装置100的逻辑存取地址转换成对应的逻辑编程单元。例如,当主机系统1000欲存取某一逻辑存取地址时,存储器管理电路202会将主机系统1000所存取的逻辑存取地址转换为以对应的逻辑抹除单元与逻辑编程单元所构成的多维地址,并且通过逻辑抹除单元-物理抹除单元映射表于对应的物理编程单元中存取数据。
图7是根据一范例实施例所绘示的逻辑编程单元与物理编程单元的映射示意图。每个物理编程单元与逻辑编程单元的映射方式是类似的,在此以物理编程单元522(0)与逻辑编程单元502(0)为例进行说明,其他物理编程单元与逻辑编程单元的映射可以此类推。
请参照图7,物理编程单元522(0)包括数据位区562与冗余位区582。数据位区562包括物理存取地址560(0)与560(1),逻辑编程单元502(0)包括逻辑存取地址540(0)与540(1),并且逻辑存取地址540(0)与540(1)是分别映射至物理编程单元522(0)的物理存取地址560(0)与560(1)。
冗余位区582包括控制信息区582a与错误校正码区582b。控制信息区582a用以存储关于此物理编程单元的控制信息,例如,此物理编程单元被映射至那个逻辑编程单元。错误校正码区582b用以存储对应欲存储至物理编程单元522(0)的数据的错误校正码。当存储器控制器104(或存储器管理电路202)欲将属于逻辑存取地址540(0)与540(1)的数据写入至(或编程至)物理存取地址560(0)与560(1)时,对应的控制信息与错误校正码会一并被写入至控制信息区582a与错误校正码区582b。也就是说,存储器控制器104(或存储器管理电路202)会对可复写式非易失性存储器模块106下达一个编程指令,以将属于逻辑存取地址540(0)与540(1)的数据、对应的控制信息与错误校正码一并写入至物理编程单元522(0)中。
在本范例实施例中,存储器管理电路202会根据欲存储的数据的模式来以一般写入程序或特殊写入程序来处理此数据。具体来说,当欲将属于某一个逻辑存取地址的数据(亦称为写入数据串)写入至物理编程单元时,存储器管理电路202会判断此写入数据串是否属于一特定模式。并且,当此写入数据串属在此特定模式时,存储器管理电路202会以特殊写入程序来处理此写入数据串,并且当此写入数据串非属在此特定模式时,存储器管理电路202会以一般写入程序来编程此写入数据串。此外,在将属于一个逻辑编程单元的数据写入至一个物理编程单元时,存储器控制器104(或存储器管理电路202)会一并将对应此逻辑编程单元的逻辑存取地址的识别信息写入预设区域。例如,存储器控制器104(或存储器管理电路202)会将识别信息写入至物理编程单元的冗余位区。之后,存储器控制器104(或存储器管理电路202)会通过此识别信息来识别此物理编程单元是以一般写入程序或特殊写入程序来被编程。例如,如图7所示,当将属于逻辑存取地址540(0)与540(1)写入至物理存取地址560(0)与560(1)时,对应逻辑存取地址540(0)的识别信息以及对应逻辑存取地址540(1)会被一并写入至冗余位区582的控制信息区582a。必须了解的是,尽管在本范例实施中,是以物理编程单元的冗余位区作为预设区域来存储识别信息,但本发明不限于此。例如,额外的存储单元可配置在存储器存储装置100来用于存储识别信息,或者此识别信息可被记录在映射表中。
在本范例实施例中,当存储至此逻辑存取地址中的数据非属在此特定模式时对应此逻辑存取地址的识别信息会被设定为预设值,反之,当存储至此逻辑存取地址中的数据属在此特定模式时,则对应此逻辑存取地址的识别信息会被设定为对应此特定模式的识别值。在此,设定识别信息的识别值的位数是小于该特定模式的预设数据的位数。例如,在本范例实施例中,当存储至此逻辑存取地址中的数据的每个数据位皆为‘0’时,其会被识别为属在此将特定模式并且对应此逻辑存取地址的识别信息会被设定为‘1’,反之,当存储至此逻辑存取地址中的数据的其中一个数据位非为‘0’时,其会被识别为非属在此特定模式并且对应此逻辑存取地址的识别信息会被设定为‘0’。
必须了解的是,将每个数据位皆为‘0’的数据识别为属在此特定模式仅为一个范围,并非限制本发明。例如,在本发明另一范例实施例中,也可将每个数据位皆为‘0×FF’的数据识别为属在此特定模式。
特别是,在本范例实施例中,当欲写入至一个逻辑存取地址的数据属在此特定模式时,存储器控制器104(或存储器管理电路202)会将对应此逻辑存取地址的识别信息写入至物理编程单元的冗余位区,而不会将属在此逻辑存取地址的数据写入至此物理编程单元的数据位区的物理存取地址中。
图8是根据本发明一范例实施例所绘示的以一般写入程序将数据编程至物理编程单元的一范例。
请参照图8,假设存储器控制器104(或存储器管理电路202)从主机系统1000接收到指示将写入数据串(以下称为第一写入数据串DS1)写入至逻辑编程单元502(0)的逻辑存取地址540(0)且将写入数据串(以下称为第二写入数据串DS2)写入至逻辑编程单元502(0)的逻辑存取地址540(1)的写入指令,其中第一写入数据串DS1与第二写入数据串DS2皆非属于上述特定模式。
当接收到写入指令及其第一写入数据串DS1与第二写入数据串DS2时,存储器控制器104(或存储器管理电路202)会识别判断第一写入数据串DS1非属于特定模式并且将对应逻辑存取地址540(0)的识别信息Z1设定为预设值。此外,存储器控制器104(或存储器管理电路202)会识别判断第二写入数据串DS2非属于特定模式并且将对应逻辑存取地址540(1)的识别信息Z2设定为预设值。
之后,存储器控制器104会选择一个空的物理编程单元(例如,物理编程单元522(0))并且对可复写式非易失性存储器模块106下达编程指令,以将第一写入数据串DS1与第二写入数据串DS2写入至物理编程单元522(0)。例如,错误校正与检查电路256会根据第一写入数据串DS1与第二写入数据串DS2产生错误校正码ECC1,并且存储器管理电路202会下达编程指令,以将第一写入数据串DS1写入至物理存取地址560(0),将第二写入数据串DS2写入至物理存取地址560(1)中,将对应逻辑存取地址540(0)与540(1)的识别信息Z1与Z2写入至冗余位区582的控制信息区582a并且将错误校正码ECC1写入至冗余位区582的错误校正码区582b。
最后,存储器控制器104(或存储器管理电路202)会将逻辑编程单元502(0)映射至物理编程单元522(0)。
在图8所述的范例中,当主机系统1000下达欲读取存储于逻辑存取地址540(0)的数据的读取指令时,存储器控制器104(或存储器管理电路202)会从物理编程单元522(0)中读取数据并且根据对应逻辑存取地址540(0)的识别信息Z1识别物理存取地址560(0)中的数据是以一般写入程序被写入并且将从物理存取地址560(0)中读取到的数据(亦称为读取数据串,即,数据串DS1)传送给主机系统1000。值得一提的是,当从物理编程单元522(0)中读取数据时,错误校正与检查电路256会根据错误校正码ECC1对所读取的数据进行错误校正。
类似地,主机系统1000欲读取存储于逻辑存取地址540(1)的数据时,存储器控制器104(或存储器管理电路202)会根据对应逻辑存取地址540(1)的识别信息Z2识别物理存取地址560(1)中的数据是以一般写入程序被写入并且将从物理存取地址560(1)中读取到的数据(即,数据串DS2)传送给主机系统1000。
图9是根据本发明一范例实施例所绘示的以特殊写入程序将数据编程至物理编程单元的一范例。
请参照图9,假设存储器控制器104(或存储器管理电路202)从主机系统1000接收到指示将第一写入数据串DS1写入至逻辑编程单元502(0)的逻辑存取地址540(0)且将第二写入数据串DS2)入至逻辑编程单元502(0)的逻辑存取地址540(1)的写入指令,其中第一写入数据串DS1属于上述特定模式并且第二写入数据串DS2非属于上述特定模式。
当接收到写入指令及其第一写入数据串DS1与第二写入数据串DS2时,存储器控制器104(或存储器管理电路202)会识别判断第一写入数据串DS1属于特定模式并且将对应逻辑存取地址540(0)的识别信息Z1设定为对应此特殊模式的识别值。此外,存储器控制器104(或存储器管理电路202)会识别判断第二写入数据串DS2非属于特定模式并且将对应逻辑存取地址540(1)的识别信息Z2设定为预设值。
之后,存储器控制器104会选择一个空的物理编程单元(例如,物理编程单元522(0))并且对可复写式非易失性存储器模块106下达编程指令,以将第二写入数据串DS2写入至物理编程单元522(0)而不会将第一写入数据串DS1写入至物理编程单元522(0)。
例如,错误校正与检查电路256会根据第二写入数据串DS2产生错误校正码ECC2。或者,在另一范例实施例中,错误校正与检查电路256会根据第二写入数据串DS2及物理存取地址560(0)的原位状态(例如,每个位皆为0XFF)来产生错误校正码ECC2。并且,存储器管理电路202会下达编程指令,以将第二写入数据串DS2写入至物理存取地址560(1)中,将对应逻辑存取地址540(0)与540(1)的识别信息Z1与Z2写入至冗余位区582的控制信息区582a并且将错误校正码ECC2写入至冗余位区582的错误校正码区582b,其中物理存取地址560(0)不会被写入第一写入数据串DS1。
最后,存储器控制器104(或存储器管理电路202)会将逻辑编程单元502(0)映射至物理编程单元522(0)。
在图9所述的范例中,当主机系统1000下达欲读取存储于逻辑存取地址540(0)的数据的读取指令时,存储器控制器104(或存储器管理电路202)会从物理编程单元522(0)中读取数据并且根据对应逻辑存取地址540(0)的识别信息Z1识别物理存取地址560(0)中的数据是以特殊写入程序被写入并且直接将对应此特殊模式的预设数据(例如,皆为‘0’的数据串)传送给主机系统。
如果主机系统1000欲读取存储于逻辑存取地址540(1)的数据时,存储器控制器104(或存储器管理电路202)会根据对应逻辑存取地址540(1)的识别信息Z2识别物理存取地址560(1)中的数据是以一般写入程序被写入并且将从物理存取地址560(1)中读取到的数据(即,数据串DS2)传送给主机系统1000。
图10是根据本发明一范例实施例所绘示的以特殊写入程序将数据编程至物理编程单元的另一范例。
请参照图10,假设存储器控制器104(或存储器管理电路202)从主机系统1000接收到指示将第一写入数据串DS1写入至逻辑编程单元502(0)的逻辑存取地址540(0),第一写入数据串DS1属于上述特定模式,并且属于逻辑存取地址540(1)的有效数据串VDS已被存储于其他物理编程单元中且非属于上述特殊模式。
当接收到写入指令及其第一写入数据串DS1时,存储器控制器104(或存储器管理电路202)会识别判断第一写入数据串DS1属于特定模式并且将对应逻辑存取地址540(0)的识别信息Z1设定为对应此特殊模式的识别值。此外,存储器控制器104(或存储器管理电路202)会从存储属于逻辑存取地址540(1)的有效数据串VDS的物理编程单元中读取属于逻辑存取地址540(1)的有效数据串VDS并且判断有效数据串VDS非属于特定模式并且将对应逻辑存取地址540(1)的识别信息Z2设定为预设值。
之后,存储器控制器104会选择一个空的物理编程单元(例如,物理编程单元522(0))并且对可复写式非易失性存储器模块106下达编程指令,以将有效数据串VDS写入至物理编程单元522(0)而不会将第一写入数据串DS1写入至物理编程单元522(0)。例如,错误校正与检查电路256会根据有效数据串VDS产生错误校正码ECC3,并且存储器管理电路202会下达编程指令,以将有效数据串VDS写入至物理存取地址560(1)中,将对应逻辑存取地址540(0)与540(1)的识别信息Z1与Z2写入至冗余位区582的控制信息区582a并且将错误校正码ECC3写入至冗余位区582的错误校正码区582b,其中物理存取地址560(0)不会被写入第一写入数据串DS1。
最后,存储器控制器104(或存储器管理电路202)会将逻辑编程单元502(0)映射至物理编程单元522(0)。
类似地,在图10所述的范例中,当主机系统1000下达欲读取存储于逻辑存取地址540(0)的数据的读取指令时,存储器控制器104(或存储器管理电路202)会直接将对应特殊模式的预设数据(例如,皆为‘0’的数据串)传送给主机系统。如果主机系统1000欲读取存储于逻辑存取地址540(1)的数据时,存储器控制器104(或存储器管理电路202)会将从物理存取地址560(1)中读取到的数据(即,数据串VDS)传送给主机系统1000。
图11是根据本发明一范例实施例所绘示的以特殊写入程序将数据编程至物理编程单元的另一范例。
请参照图11,假设存储器控制器104(或存储器管理电路202)从主机系统1000接收到指示将第一写入数据串DS1写入至逻辑编程单元502(0)的逻辑存取地址540(0),第一写入数据串DS1非属于上述特定模式,并且可复写式非易失性存储器模块106未存储有属于逻辑存取地址540(1)的数据。
当接收到写入指令及其第一写入数据串DS1时,存储器控制器104(或存储器管理电路202)会识别判断第一写入数据串DS1非属于特定模式并且将对应逻辑存取地址540(0)的识别信息Z1设定为预设值。此外,由于可复写式非易失性存储器模块106未存储有属于逻辑存取地址540(1)的数据,因此,存储器控制器104(或存储器管理电路202)会将对应逻辑存取地址540(1)的识别信息Z2设定为对应特殊模式的识别值。
之后,存储器控制器104会选择一个空的物理编程单元(例如,物理编程单元522(0))并且对可复写式非易失性存储器模块106下达编程指令,以将第一写入数据串DS1写入至物理编程单元522(0)。例如,错误校正与检查电路256会根据第一写入数据串DS1产生错误校正码ECC4,并且存储器管理电路202会下达编程指令,以将第一写入数据串DS1写入至物理存取地址560(0)中,将对应逻辑存取地址540(0)与540(1)的识别信息Z1与Z2写入至冗余位区582的控制信息区582a并且将错误校正码ECC4写入至冗余位区582的错误校正码区582b,其中物理存取地址560(1)不会被写入填塞值。
最后,存储器控制器104(或存储器管理电路202)会将逻辑编程单元502(0)映射至物理编程单元522(0)。
类似地,在图11所述的范例中,当主机系统1000下达欲读取存储于逻辑存取地址540(1)的数据的读取指令时,存储器控制器104(或存储器管理电路202)会将从物理存取地址560(1)中读取到的数据(即,数据串DS1)传送给主机系统1000。如果主机系统1000欲读取存储于逻辑存取地址540(1)的数据时,存储器控制器104(或存储器管理电路202)会将对应特殊模式的预设数据(例如,皆为‘0’的数据串)传送给主机系统1000。
值得一提的是,尽管在本范例实施例中,存储器控制器104(或存储器管理电路202)是以数据串的每个数据位是否为‘0’,来将数据串区分为一般数据串或属于某一种特定模式的数据串。然而,在本发明另一范例实施例中,存储器控制器104(或存储器管理电路202)也可根据多种不同的模式来区分欲写入的数据串,并且将其对应的逻辑存取地址的识别信息设定为不同的识别值。例如,当数据串的每个数据位皆为‘0’时,将其对应的逻辑存取地址的识别信息设定为‘1’;当数据串的每个数据位皆为‘0×FF’时,将其对应的逻辑存取地址的识别信息设定为‘2’;当数据串的每个数据位皆为‘0×55’时,将其对应的逻辑存取地址的识别信息设定为‘3’;并且当数据串的每个数据位皆为‘0×AA’时,将其对应的逻辑存取地址的识别信息设定为‘4’。基此,当主机系统1000欲存储至逻辑存取地址的数据串属于多种模式的其中之一时,则存储器控制器104(或存储器管理电路202)会将对应此逻辑存取地址的识别信息设定为对应的识别值且将此识别值写入至对应的物理编程单元的冗余位区中,而不将此数据串实际地写入至物理存取地址中,由此缩短执行写入指令的时间。此外,当对某一逻辑存取地址执行读取指令时,如果此逻辑存取地址的识别信息为此些识别值的其中之一时,存储器控制器104(或存储器管理电路202)会将对应的模式的预设数据传送给主机系统1000,以缩短执行读取指令的时间。
图12A与图12B是根据一范例实施例所绘示的数据处理方法的流程图,其中图12A绘示执行写入指令的数据处理步骤并且图12B绘示执行读取指令的数据处理步骤。
请参照图12A,在步骤S1201中,存储器控制器104(或存储器管理电路202)从主机系统1000中接收指示写入属于某一逻辑编程单元(以下称为第一逻辑编程单元)的某一逻辑存取地址(以下称为第一逻辑存取地址)的写入数据串(以下称为第一写入数据串)的写入指令。
之后,在步骤S1203中,存储器控制器104(或存储器管理电路202)会从可复写式非易失性存储器模块106的物理编程单元之中选择一个空的物理编程单元(以下称为第一物理编程单元)。并且,在步骤S1205中存储器控制器104(或存储器管理电路202)判断第一写入数据串是否属于上述特定模式。
如果第一写入数据串不属在此特定模式时,在步骤S1207中,存储器控制器104(或存储器管理电路202)会将对应第一逻辑存取地址的识别信息设定为预设值,将第一写入数据串编程至第一物理编程单元的数据位区的物理存取地址(以下称为第一物理存取地址),并且将对应第一逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区。
如果第一写入数据串属在此特定模式时,在步骤S1209中,存储器控制器104(或存储器管理电路202)会将对应第一逻辑存取地址的识别信息设定为对应此特定模式的识别值,并且将对应第一逻辑存取地址的识别信息编程至第一物理编程单元的冗余位区,其中第一写入数据串不会被编程至第一物理编程单元中。
之后,在步骤S1211中,存储器控制器104(或存储器管理电路202)会将第一逻辑编程单元映射至该第一物理编程单元。
请参照图12B,在步骤S1301中,存储器控制器104(或存储器管理电路202)从主机系统1000中接收指示读取存储于某个逻辑存取地址(以下称为第一逻辑存取地址)中的数据的读取指令。
在步骤S1303中,存储器控制器104(或存储器管理电路202)根据映射表从映射第一逻辑存取地址所属的逻辑编程单元(以下称为第二逻辑编程单元)的物理编程单元(以下称为第一物理编程单元)中读取数据串。
之后,在步骤S1305中,存储器控制器104(或存储器管理电路202)会判断对应第一逻辑存取地址的识别信息是否为对应此特殊模式的识别值。
如果对应第一逻辑存取地址的识别信息非为对应此特殊模式的识别值,在步骤S1307中,存储器控制器104(或存储器管理电路202)会将从对应物理存取地址(以下称为第一物理存取地址)中所读取的数据串传送给主机系统1000。
如果对应第一逻辑存取地址的识别信息为对应此特殊模式的识别值,在步骤S1309中,存储器控制器104(或存储器管理电路202)会将对应此特定模式的预设数据传送给主机系统1000。
综上所述,本发明范例实施例所提出的存储器存储装置、存储器控制器及其所使用的数据处理方法在执行写入指令时通过在物理编程单元的冗余位区中记录识别信息来识别所存储的数据属于特定模式,而不将数据实际地写入至物理编程单元中,由此大幅缩短编程数据至物理编程单元所需的时间。此外,本发明范例实施例所提出的存储器存储装置、存储器控制器及其所使用的数据处理方法在执行读取指令时,会根据物理编程单元的冗余位区中的识别信息来识别属于特定模式的数据并且快速地将预设数据传送给主机系统,由此缩短执行读取指令的时间。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书所界定者为准。
Claims (26)
1.一种数据处理方法,用于可复写式非易失性存储器模块,该可复写式非易失性存储器模块包括多个物理编程单元,每一这些物理编程单元包括数据位区与冗余位区,该数据位区包括多个物理存取地址,多个逻辑编程单元被配置以映射至少部分的这些物理编程单元,并且每一这些逻辑编程单元具有多个逻辑存取地址,该数据处理方法包括:
从主机系统接收第一写入数据串,其中该第一写入数据串配置于这些逻辑存取地址之中的第一逻辑存取地址且该第一逻辑存取地址属于这些逻辑编程单元之中的第一逻辑编程单元;
从这些物理编程单元之中选择第一物理编程单元;
判断该第一写入数据串的每个数据位是否皆为相同值;
如果该第一写入数据串的每个数据位不皆为该相同值时,将对应该第一逻辑存取地址的识别信息设定为一预设值,将该第一写入数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第一物理存取地址,并且将对应该第一逻辑存取地址的识别信息存储至预定区域;
如果该第一写入数据串皆为该相同值,将对应该第一逻辑存取地址的识别信息设定为对应该相同值的一识别值,并且将对应该第一逻辑存取地址的识别信息存储至该预定区域,其中该第一写入数据串不会被编程至该第一物理编程单元中;以及
将该第一逻辑编程单元映射至该第一物理编程单元。
2.如权利要求1所述的数据处理方法,其中将对应该第一逻辑存取地址的识别信息存储至该预定区域的步骤包括:
将对应该第一逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区。
3.如权利要求1所述的数据处理方法,还包括:
从该主机系统接收读取指令,其中该读取指令指示读取存储在该第一逻辑存取地址中的数据;
从该第一物理编程单元中读取属于该第一逻辑存取地址的读取数据串与对应该第一逻辑存取地址的识别信息;
判断从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息是否为该识别值;
如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息为该识别值时,将对应该相同值的预设数据传送给该主机系统;以及
如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息非为该识别值时,将该读取数据串传送给该主机系统。
4.如权利要求2所述的数据处理方法,还包括:
判断该可复写式非易失性存储器模块是否已存储属于该第一逻辑编程单元的这些逻辑存取地址之中的第二逻辑存取地址的有效数据串;
如果该可复写式非易失性存储器模块已存储属于该第二逻辑存取地址的有效数据串时,将对应该第二逻辑存取地址的识别信息设定为该预设值,将该有效数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第二物理存取地址,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区;以及
如果该可复写式非易失性存储器模块未存储有属于该第二逻辑存取地址的有效数据串时,将对应该第二逻辑存取地址的识别信息设定为该识别值,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区。
5.如权利要求2所述的数据处理方法,还包括:
从该主机系统接收一第二写入数据串,其中该第二写入数据串属于该第一逻辑编程单元的些逻辑存取地址之中的一第二逻辑存取地址;
判断该第二写入数据串的每个数据位是否皆为该相同值;
如果该第二写入数据串的每个数据位不皆为该相同值时,将对应该第二逻辑存取地址的识别信息设定为该预设值,将该第二写入数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第二物理存取地址,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区;以及
如果该第二写入数据串的每个数据位皆为该相同值时,将对应该第二逻辑存取地址的识别信息设定为对应该相同值的识别值,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,其中该第二写入数据串不会被编程至该第一物理编程单元中。
6.如权利要求5所述的数据处理方法,其中该第一写入数据串、该第二写入数据串、对应该第一逻辑存取地址的识别信息、对应该第二逻辑存取地址的识别信息是通过一编程指令被编程至该第一物理编程单元。
7.如权利要求1所述的数据处理方法,其中判断该第一写入数据串的每个数据位是否皆为该相同值的步骤包括:
判断该第一写入数据串的每个数据位是否为0;以及
如果该第一写入数据串的每个数据位皆为0时,判断该第一写入数据串的每个数据位皆为该相同值。
8.一种数据处理方法,用于可复写式非易失性存储器模块,该可复写式非易失性存储器模块包括多个物理编程单元,每一这些物理编程单元包括数据位区与冗余位区,该数据位区包括多个物理存取地址,多个逻辑编程单元被配置以映射部分的这些物理编程单元,并且每一这些逻辑编程单元具有多个逻辑存取地址,该数据处理方法包括:
从主机系统接收第一写入数据串,其中该第一写入数据串属于这些逻辑存取地址之中的第一逻辑存取地址且该第一逻辑存取地址属于这些逻辑编程单元之中的第一逻辑编程单元;
从这些物理编程单元之中选择一第一物理编程单元;
判断该第一写入数据串的每个数据位是否皆相同且为多个值的其中一个;
如果该第一写入数据串的每个数据位不为相同或非为该多个值的任一时,将对应该第一逻辑存取地址的识别信息设定为一预设值,将该第一写入数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第一物理存取地址,并且将对应该第一逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区;
如果该第一写入数据串的每个数据位皆相同且为该多个值的其中一个值时,将对应该第一逻辑存取地址的识别信息设定为对应该其中一个值的一识别值,并且将对应该第一逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,其中该第一写入数据串不会被编程至该第一物理编程单元中;以及
将该第一逻辑编程单元映射至该第一物理编程单元。
9.如权利要求8所述的数据处理方法,还包括:
从该主机系统接收一读取指令,其中该读取指令指示读取存储在该第一逻辑存取地址中的数据;
从该第一物理编程单元中读取属于该第一逻辑存取地址的一读取数据串与对应该第一逻辑存取地址的识别信息;
判断从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息是否为对应该多个值的其中一个值的识别值;
如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息为对应该多个值的其中一个值的识别值时,将对应该其中一个值的预设数据传送给该主机系统;以及
如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息非为对应该多个值的其中一个值的识别值时,将该读取数据串传送给该主机系统。
10.一种存储器控制器,用于控制一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块包括多个物理编程单元,每一这些物理编程单元包括一数据位区与一冗余位区,该数据位区包括多个物理存取地址,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模块;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,并且配置多个逻辑编程单元以映射至少部分的这些物理编程单元,其中每一这些逻辑编程单元具有多个逻辑存取地址,
其中该存储器管理电路从一主机系统接收一第一写入数据串,其中该第一写入数据串配置于这些逻辑存取地址之中的一第一逻辑存取地址且该第一逻辑存取地址属于这些逻辑编程单元之中的一第一逻辑编程单元,
其中该存储器管理电路从这些物理编程单元之中选择一第一物理编程单元,并且判断该第一写入数据串的每个数据位是否皆为相同值,
其中如果该第一写入数据串的每个数据位不皆为该相同值时,该存储器管理电路将对应该第一逻辑存取地址的识别信息设定为一预设值,将该第一写入数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第一物理存取地址,并且将对应该第一逻辑存取地址的识别信息存储至预定区域,
其中如果该第一写入数据串皆为该相同值时,该存储器管理电路将对应该第一逻辑存取地址的识别信息设定为对应该相同值的一识别值,并且将对应该第一逻辑存取地址的识别信息存储至该预定区域,其中该第一写入数据串不会被编程至该第一物理编程单元中,
其中该存储器管理电路还用以将该第一逻辑编程单元映射至该第一物理编程单元。
11.如权利要求10所述的存储器控制器,其中该预定区域为该第一物理编程单元的冗余位区。
12.如权利要求10所述的存储器控制器,其中该存储器管理电路通过该主机接口从该主机系统接收一读取指令,其中该读取指令指示读取存储在该第一逻辑存取地址中的数据,
其中该存储器管理电路通过该存储器接口从该第一物理编程单元中读取属于该第一逻辑存取地址的一读取数据串与对应该第一逻辑存取地址的识别信息,并且判断从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息是否为该识别值,
其中如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息为该识别值时,该存储器管理电路通过该主机接口将对应该相同值的预设数据传送给该主机系统,
其中如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息非为该识别值时,该存储器管理电路通过该主机接口将该读取数据串传送给该主机系统。
13.如权利要求10所述的存储器控制器,其中该存储器管理电路判断该可复写式非易失性存储器模块是否已存储属于该第一逻辑编程单元的这些逻辑存取地址之中的一第二逻辑存取地址的有效数据串,
其中如果该可复写式非易失性存储器模块已存储属于该第二逻辑存取地址的有效数据串时,该存储器管理电路将对应该第二逻辑存取地址的识别信息设定为该预设值,将该有效数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第二物理存取地址,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,
其中如果该可复写式非易失性存储器模块未存储有属于该第二逻辑存取地址的有效数据串时,该存储器管理电路将对应该第二逻辑存取地址的识别信息设定为对应该模式的识别值,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区。
14.如权利要求10所述的存储器控制器,其中该存储器管理电路通过该主机接口从该主机系统接收一第二写入数据串,其中该第二写入数据串属于该第一逻辑编程单元的些逻辑存取地址之中的一第二逻辑存取地址,
其中该存储器管理电路判断该第二写入数据串的每个数据位是否皆为该相同值,
其中如果该第二写入数据串的每个数据位不皆为该相同值时,该存储器管理电路将对应该第二逻辑存取地址的识别信息设定为该预设值,将该第二写入数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第二物理存取地址,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,
其中如果该第二写入数据串的每个数据位皆为该相同值时,该存储器管理电路将对应该第二逻辑存取地址的识别信息设定为对应该相同值的识别值,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,其中该第二写入数据串不会被编程至该第一物理编程单元中。
15.如权利要求14所述的存储器控制器,其中该存储器管理电路使用一编程指令将该第一写入数据串、该第二写入数据串、对应该第一逻辑存取地址的识别信息、对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元。
16.如权利要求10所述的存储器控制器,其中该存储器管理电路判断该第一写入数据串的每个数据位是否为0,
其中如果该第一写入数据串的每个数据位皆为0时,该存储器管理电路判断该第一写入数据串的每个数据位皆为该相同值。
17.一种存储器存储装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模块,包括多个物理编程单元,每一这些物理编程单元包括一数据位区与一冗余位区,该数据位区包括多个物理存取地址;以及
一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,并且配置多个逻辑编程单元以映射至少部分的这些物理编程单元,其中每一这些逻辑编程单元具有多个逻辑存取地址,
其中该存储器控制器从一主机系统接收一第一写入数据串,其中该第一写入数据串配置于这些逻辑存取地址之中的一第一逻辑存取地址且该第一逻辑存取地址属于这些逻辑编程单元之中的一第一逻辑编程单元,
其中该存储器控制器从这些物理编程单元之中选择一第一物理编程单元,并且判断该第一写入数据串的每个数据位是否皆为相同值,
其中如果该第一写入数据串的每个数据位不皆为该相同值时,该存储器控制器将对应该第一逻辑存取地址的识别信息设定为一预设值,将该第一写入数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第一物理存取地址,并且将对应该第一逻辑存取地址的识别信息存储至预定区域,
其中如果该第一写入数据串皆为该相同值时,该存储器控制器将对应该第一逻辑存取地址的识别信息设定为对应该相同值的一识别值,并且将对应该第一逻辑存取地址的识别信息存储至该预定区域,其中该第一写入数据串不会被编程至该第一物理编程单元中,
其中该存储器控制器还用以将该第一逻辑编程单元映射至该第一物理编程单元。
18.如权利要求17所述的存储器存储装置,其中该预定区域为该第一物理编程单元的冗余位区。
19.如权利要求17所述的存储器存储装置,其中该存储器控制器从该主机系统接收一读取指令,其中该读取指令指示读取存储在该第一逻辑存取地址中的数据,
其中该存储器控制器从该第一物理编程单元中读取属于该第一逻辑存取地址的一读取数据串与对应该第一逻辑存取地址的识别信息,并且判断从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息是否为该识别值,
其中如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息为该识别值时,该存储器控制器将对应该相同值的预设数据传送给该主机系统,
其中如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息非为该识别值时,该存储器控制器将该读取数据串传送给该主机系统。
20.如权利要求17所述的存储器存储装置,其中该存储器控制器判断该可复写式非易失性存储器模块是否已存储属于该第一逻辑编程单元的这些逻辑存取地址之中的一第二逻辑存取地址的有效数据串,
其中如果该可复写式非易失性存储器模块已存储属于该第二逻辑存取地址的有效数据串时,该存储器控制器将对应该第二逻辑存取地址的识别信息设定为该预设值,将该有效数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第二物理存取地址,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,
其中如果该可复写式非易失性存储器模块未存储有属于该第二逻辑存取地址的有效数据串时,该存储器控制器将对应该第二逻辑存取地址的识别信息设定为对应该模式的识别值,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区。
21.如权利要求17所述的存储器存储装置,其中该存储器控制器从该主机系统接收一第二写入数据串,其中该第二写入数据串属于该第一逻辑编程单元的些逻辑存取地址之中的一第二逻辑存取地址,
其中该存储器控制器判断该第二写入数据串的每个数据位是否皆为该相同值,
其中如果该第二写入数据串的每个数据位不皆为该相同值时,该存储器控制器将对应该第二逻辑存取地址的识别信息设定为该预设值,将该第二写入数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第二物理存取地址,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,
其中如果该第二写入数据串的每个数据位皆为该相同值时,该存储器控制器将对应该第二逻辑存取地址的识别信息设定为该识别值,并且将对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,其中该第二写入数据串不会被编程至该第一物理编程单元中。
22.如权利要求21所述的存储器存储装置,其中该存储器控制器使用一编程指令将该第一写入数据串、该第二写入数据串、对应该第一逻辑存取地址的识别信息、对应该第二逻辑存取地址的识别信息编程至该第一物理编程单元。
23.如权利要求17所述的存储器存储装置,其中该存储器控制器判断该第一写入数据串的每个数据位是否为0,
其中如果该第一写入数据串的每个数据位皆为0时,该存储器控制器判断该第一写入数据串的每个数据位皆为该相同值。
24.一种存储器存储装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模块,包括多个物理编程单元,每一这些物理编程单元包括一数据位区与一冗余位区,该数据位区包括多个物理存取地址;以及
一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,并且配置多个逻辑编程单元以映射部分的这些物理编程单元,其中每一这些逻辑编程单元具有多个逻辑存取地址,
其中该存储器控制器从一主机系统接收一第一写入数据串,其中该第一写入数据串属于这些逻辑存取地址之中的一第一逻辑存取地址且该第一逻辑存取地址属于这些逻辑编程单元之中的一第一逻辑编程单元,
其中该存储器控制器从这些物理编程单元之中选择一第一物理编程单元并且判断该第一写入数据串的每个数据位是否皆相同且为多个值的其中一个,
其中如果该第一写入数据串的每个数据位不为相同或非为该多个值的任一时,该存储器控制器将对应该第一逻辑存取地址的识别信息设定为一预设值,将该第一写入数据串编程至该第一物理编程单元的数据位区的物理存取地址之中的一第一物理存取地址,并且将对应该第一逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,
其中如果该第一写入数据串的每个数据位皆相同且为该多个值的其中一个值时,该存储器控制器将对应该第一逻辑存取地址的识别信息设定为对应该其中一个值的一识别值,并且将对应该第一逻辑存取地址的识别信息编程至该第一物理编程单元的冗余位区,其中该第一写入数据串不会被编程至该第一物理编程单元中,
其中该存储器控制器将该第一逻辑编程单元映射至该第一物理编程单元。
25.如权利要求24所述的存储器存储装置,其中该存储器控制器从该主机系统接收一读取指令,其中该读取指令指示读取存储在该第一逻辑存取地址中的数据,
其中该存储器控制器从该第一物理编程单元中读取属于该第一逻辑存取地址的一读取数据串与对应该第一逻辑存取地址的识别信息,并且判断从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息是否为对应该多个值的其中一个值的识别值,
其中如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息为对应该多个值的其中一个值的识别值时,该存储器控制器将对应该其中一个值的预设数据传送给该主机系统,
其中如果从该第一物理编程单元中所读取的对应该第一逻辑存取地址的识别信息非为对应该多个值的其中一个值的识别值时,该存储器控制器将该读取数据串传送给该主机系统。
26.一种数据处理方法,用于可复写式非易失性存储器模块,该可复写式非易失性存储器模块包括多个物理编程单元,每一这些物理编程单元包括数据位区与冗余位区,该数据位区包括多个物理存取地址,多个逻辑编程单元被配置以映射至少部分的这些物理编程单元,并且每一这些逻辑编程单元具有多个逻辑存取地址,该数据处理方法包括:
从一主机系统接收一读取指令,其中该读取指令指示读取存储在这些逻辑存取地址之中的一第一逻辑存取地址中的数据;
从一预定区域中读取对应该第一逻辑存取地址的识别信息;
判断所读取的识别信息是否为一识别值
如果所读取的识别信息为该识别值时,将一预设数据传送给该主机系统;以及
如果所读取的识别信息非为该识别值时,将从映射该第一逻辑存取地址的一物理存取地址中所读取的数据串传送给该主机系统,
其中该识别值的位数小于该预设数据的位数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210161810.6A CN103425594B (zh) | 2012-05-23 | 2012-05-23 | 数据处理方法、存储器控制器与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210161810.6A CN103425594B (zh) | 2012-05-23 | 2012-05-23 | 数据处理方法、存储器控制器与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103425594A CN103425594A (zh) | 2013-12-04 |
CN103425594B true CN103425594B (zh) | 2016-09-14 |
Family
ID=49650372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210161810.6A Active CN103425594B (zh) | 2012-05-23 | 2012-05-23 | 数据处理方法、存储器控制器与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103425594B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10395722B2 (en) * | 2017-09-29 | 2019-08-27 | Intel Corporation | Reading from a mode register having different read and write timing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1795437A (zh) * | 2002-10-28 | 2006-06-28 | 桑迪士克股份有限公司 | 用于块内页面分组的方法及设备 |
CN101107673A (zh) * | 2004-12-14 | 2008-01-16 | 桑迪士克股份有限公司 | 使用早期数据对非易失性存储器进行管线式编程 |
CN101609392A (zh) * | 2008-06-16 | 2009-12-23 | 群联电子股份有限公司 | 数据串传送分派方法、系统及其控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276036A1 (en) * | 2005-12-21 | 2008-11-06 | Nxp B.V. | Memory with Block-Erasable Location |
-
2012
- 2012-05-23 CN CN201210161810.6A patent/CN103425594B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1795437A (zh) * | 2002-10-28 | 2006-06-28 | 桑迪士克股份有限公司 | 用于块内页面分组的方法及设备 |
CN101107673A (zh) * | 2004-12-14 | 2008-01-16 | 桑迪士克股份有限公司 | 使用早期数据对非易失性存储器进行管线式编程 |
CN101609392A (zh) * | 2008-06-16 | 2009-12-23 | 群联电子股份有限公司 | 数据串传送分派方法、系统及其控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN103425594A (zh) | 2013-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679437B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN104732153B (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
CN103377143B (zh) | 存储器管理方法、存储器控制器与存储器存储装置 | |
CN104765569B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN106681654A (zh) | 映射表载入方法与存储器存储装置 | |
CN103514096B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN106990921B (zh) | 数据写入方法、存储器存储装置与存储器控制电路单元 | |
CN104636267B (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN103699491B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN106681932A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN106469122A (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN106708416A (zh) | 数据重建方法与系统及其存储器控制电路单元 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN106951186A (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
CN102902626A (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN107357520A (zh) | 整理指令处理方法、存储器控制电路单元及其存储装置 | |
CN103544118B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN103914391B (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN106814968A (zh) | 存储器管理方法与系统及其存储器存储装置 | |
CN107045890A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |