专利名称:存储器的设置方法、控制器、以及非易失性存储器系统的制作方法
技术领域:
本发明有关非易失性存储器及其设置方法(programmingmethod),并且 尤其涉及一种用于电可擦除式可编程只读存储器(Electrically Erasable Programmable Read-Only Memory, EEPROM)或快闪存储器的设置装置以及 用于单向设置比特信号的非易失性存储器的设置方法。
背景技术:
非易失性存储器广泛使用于数据储存装置,尤其是EEPROM和快闪存 储器。由于内嵌与可移除式卡片形式的快闪存储器具有尺寸小、低功耗、高 速传输、稳定性高等特性,因此适于移动和手持式的装置环境。非易失性存 储器虽有上述优点,但仍有抹除次数限制、数据传输过程中存储空间的浪费、 错误数据传送等问题。
因此,目前亟需一种单向设置比特信号的非易失性存储器的设置方法。 本发明利用纠错码(Error Correction Code, ECC)的纠错编码功能,以防止 存储器的比特错误、减少使用新数据页来设置所更改的数据、以及节省存储 器的储存空间。
发明内容
本部分摘述了本发明的某些特征,其他特征将在后续的段落进行叙述。 本发明由附加的权利要求书所定义,其合并于此部分以作为参考。
本发明的主要目的为提供一种非易失性存储器的设置方法,用于单向设 置比特信号,该方法包括下列步骤a)提供第一数据,该第一数据各自包 括非易失性存储器数据页内的第一数目的第一状态连续比特;b)将第一数据内的第一数目的第一状态连续比特解码成第二数目的第二状态连续比特;以及c)在数据页内第一状态已解码成第二状态的部分,通过纠错码(ECC)将各自具有N个比特的第三数据设置为第二数据。第二数据各自具有(N+K)个比特,第二数据中任两个不同的数据具有M个比特的差异,其中N为正整数,K和M均为不小于3的整数,M小于(K+N),其中若任意一个第三数据具有N个"0"的连续比特,则对应的第二数据具有至少(N+3)个"1"的连续比特。
本发明的另一主要目的为提供一种用于被分割成多个数据页的非易失性存储器的控制器,该控制器用于单向设置比特信号,所述控制器包括解码模块和设置模块。解码模块用来解码非易失性存储器数据页内的第一数据。当第一数据各自包括第一数目的第一状态连续比特时,则将第一数目的第一状态连续比特解码成第二数目的第二状态连续比特,以指示用来设置第二数据的数据页部分。设置模块将各自具有N个比特的第三数据编码为(N+K)个比特的第二数据。第二数据中任意两个不同的数据具有M个比特的差异,其中N为正整数,K和M均为不小于3的整数,M小于(K+N),其中若任意一个第三数据具有N个"0"的连续比特,则对应的第二数据具有至少(N+3)个"1"的连续比特。
本发明的另一主要目的为提供一种单向设置比特信号的非易失性存储器储存系统,该系统包括存储模块、解码模块和设置模块。存储模块被分割成多个数据页以储存第二数据。解码模块用来解码非易失性存储器数据页内的第一数据。当第一数据各自包括第一数目的第一状态连续比特时,则将第一数目的第一状态连续比特解码成第二数目的第二状态连续比特,以指示用来设置包含ECC的第二数据的数据页部分。设置模块将第三数据编码成第二数据。第三数据各自具有N个比特,并被编码为成(N+K)个比特的第二数据。第二数据中任意两个不同的数据具有M个比特的差异,其中N为正整数,K和M均为不小于3的整数,M小于(K+N),其中若任意一个第三 数据具有N个"0"的连续比特,则对应的第二数据具有至少(N+3)个"1" 的连续比特。
图1为本发明第一实施例的用于非易失性存储器模块的控制器的示意
图2A-2B为本发明第一实施例的设置方法流程图3A-3E为本发明的单向设置比特信号的非易失性存储器的第一实施 例的设置方法实例的示意图;以及
图4显示了本发明第二实施例的单向设置比特信号的非易失性存储器储 存系统。
主要元件符号说明
10 非易失性半导体存储模块101数据页
11 控制器111读取模块
112 解码模块113处理器
114 编码模块115设置模块
S20 S25步骤40储存系统
401 存储模块402读取模块
403 解码模块404处理器
405 编码模块406设置模块
具体实施例方式
图l、图2A、以及图2B显示了本发明的第一优选实施例。本实施例提供了控制器11以及非易失性半导体存储模块10。控制器11包括处理器113、解码模块112、编码模块114、读取模块111、以及设置模块115。处理器113用来控制控制器11的其他单元。解码模块112和处理器113电连接并用来解码数据。编码模块114和处理器113电连接并用来编码数据。读取模块111和处理器113电连接并用来读取数据。设置模块115和处理器113电连接并用来设置数据。非易失性半导体存储模块10用来储存数据。在本实施例中,非易失性半导体存储模块IO可为单层单元(SingleLevel Cdl,SLC)或多层单元(Multilevel Cell, MLC)的快闪存储器。
在本实施例中,控制器11从数据页101中将第一数据内第一数目的第一状态连续比特解码到主机(未图示),成为第二数目的第二状态连续比特,并将第三数据编码成第二数据后存入非易失性存储器模块10内所设置的数据页101。第二数据以纠错码(Error Correction Code, ECC)进行编码且能被记录在数据页101中以节省存储空间,而不是新数据页。本发明的技术特征以及所产生的技术效果将在下文中详述。
如图2A的步骤S20和S21所示,控制器11发送读取命令至读取模块111以创建/更改FAT或其他目的,从而读取模块111读取数据页101内的数据。解码模块112可以将第一数目的第一状态连续比特进行解码。比特的第一状态为逻辑"1",解码模块112可以从数据页101最后写入部分的结尾来解码第一数据。当然,解码模块112还可以从数据页101的起始处解码数据。如图2A步骤S22,控制器ll内的解码模块112进一步将第一数目的第一状态连续比特解码成第二数目的第二状态连续比特。解码模块112将1个字节
"0xff"解码成2个比特"00"。也就是说,解码模块112将第一数据的连续比特"1"的4字节"0xff"解码成字节"0x00"。第二状态为逻辑"0"。第一数目和第二数目分别为8和2。因此,当数据页101内的数据为4字节的
"0xff"时,则会转换为1字节的"0x00"。这些数据会被提供给主机。根据主机FAT的规则,当磁簇内的数据由"0"所组成时,则磁簇是可设置的。 也就是说,如果其中数据页第一状态解码成第二状态的部分够大,则控制器 11不会再次抹除非易失性半导体存储模块10内的磁区来设置新数据。
存储模块只可以由"0"至"1"来单向设置比特信号。第一状态可为逻 辑"0",而第二状态可为逻辑"1"。第一状态的位置可以为第一数据内的任 何地方。此外,就不同的编码算法而言,第一数目与第二数目可为任意整数。
请参阅图2B的步骤S23,该步骤为将具有N个比特的第三数据写入非 易失性存储器模块10,处理器113接收来自主机的第三数据并传送该第三数 据至编码模块114。编码模块114以(N+K)个比特将第三数据编码为第二 数据,并将第二数据送回处理器113。第二数据中任意两个不同的数据具有 M个比特的差异。此处N定义为正整数,K和M均为不小于3的整数,且 M小于(K+N)。若任意一个第三数据具有N个"0"的连续比特,则对应 的第二数据具有至少(N+3)个"l"的连续比特。如图2B所示的步骤S24, 纠错码(ECC)被提供给第三数据。
在本实施例中,2比特的第三数据编码成8比特的第二数据。根据上述, N和K分别为2与6。此外,每两个8比特的第二数据(编码自两个具有不 同值的2比特的第三数据)应具有M个比特的差异。M设为3。另一方面, 上述的设置方法应用于仅能将"1"单向设置为"0"的存储器。2比特的第 三数据"11"被编码为8比特的第二数据"111 01000"。 8比特的第二数据 的前3个比特为固定的,没有实际参与解码过程。因此,2比特的第三数据 "10"被编码为8比特的第二数据"111 00101", 2比特的第三数据"01" 被编码为8比特的第二数据"111 10010", 2比特的第三数据"00"被编码 为8比特的第二数据"111 11111"。第二数据被编码模块114生成后,处理 器113将第二数据传送至设置模块115。比特信号"0"只能单向设置为"1"。
请参阅图2B的步骤S25,设置模块115将第二数据设置到数据页的位置,其中第一字节"0x00"由解码模块112解码第一数据而得来。
假如需要从非易失性存储器模块10的数据页101中获取第三数据,读取模块111会找出并读取所记录的第二数据。解码模块112将解码第二数据并取得第三数据。
然而,在步骤S25,有些比特可能被不正确地记录。举例来说,字节"lll01000"被记录成"lll 01001"。通过纠错码(ECC),设置模块115可以取得正确的第三数据。本实施例的设置模块115使用如下表1所示的汉明码(Hamming Code)。具有末5个比特的第二数据所对应的两个比特则被选为解码后的第三数据,如下表1所示。
表1
000 00 。 11000 01 O 10000 10 ^ 01000 11 。 10
001 00 。 10001 01 ^> 10001 10 ^> 10001 11 ^ 10
010 00 。 1101001 O 11010 10 O 11010 11 。 11
011 00 。 11011 01 。 10011 10 。 11011 11 。 00
100 00 0 10100 01 。 01100 10 。 01100 11 。 01
101 00 O 00101 01 。 10101 10 01101 11 。 00
11000 。 1111001 。 00110 10 ^> 01110 11 ^ 00
111 00 ■=> 11m oi 。 oo111 10 。 00111 11 。 00
然而,ECC的功能与编码方式有许多种,本发明不限于使用汉明码(Hamming Code )。
请参阅图3A至图3E。如图3A所示的数据页存有第一数据,在位置0 511有"0xff"的字节。所有的字节解码后,此数据页包含128个解码的字节"0x00",而第一个字节"0x00"指示记录数据的位置。
如图3B,假设第三数据在位置0~3的值为"0xf8"、 "0xff,、 "0xff"、以及"0xff",并在编码后存入数据页,则第二数据在位置0 15的值为"0xe8"、"0xe8"、 "0xe5"、 "Oxff"、 "0xe8"、 "0xe8"、 "0xe8"、 "0xe8"、 "0xe8"、 "0xe8"、 "0xe8"、 "0xe8"、 "0xe8"、 "0xe8"、 "0xe8"、以及"0xe8",并根据上述的
位置存入数据页。此处使用了数据页中的位置0 15。同时,其余位置的数据
则无变动。其后,经设置的0 511字节的数据页代表128个解码后字节。图
3C显示了数据页内更新后的512个字节。
接着,假设图3D所示的第三数据在位置4~5的值修改为"0x00"和 "Oxlb",则第二数据为读取模块113所读取。编码模块114将字节"0x00"
和"Oxlb"编码为字节"Oxff"、 "Oxff"、 "Oxff ,、 "Oxff"、 "Oxff"、 "0xf2"、 "0xe5"、
以及"0xe8",并存入数据页。第二数据在位置16~19的字节变成"Oxff"、 "Oxff"、 "Oxff"、以及"Oxff",而在位置20 23的字节变为"Oxff"、 "0xf2"、 "0xe5"、以及"0xe8"。同时,在位置16~23以外的数据未做变动。最后,
如图3E所示,代表128个解码字节的位置0~511的数据页无须使用新的数
据页来进行设置。
图4显示了本发明第二实施例的储存系统40。储存系统40包括存储模 块401、读取模块402、解码模块403、处理器404、编码模块405、以及设 置模块406。存储模块401被分割成多个数据页(未图示)以储存数据。读 取模块402读取存储模块401数据页内的第一数据并从数据页结尾开始搜寻 代表"Oxff"连续字节的"1"的连续比特。于是,解码模块403将"1"的 连续比特的"Oxff"的4字节解码成"0x00"字节。
为了将具有N个比特的第三数据写入存储模块401 ,处理器404接收来 自主机的第三数据并将该数据传送至编码模块405。编码模块405将其编码 成具有(N+K)个比特的第二数据。第二数据中任两个不同的数据具有M 个比特的差异。此处的N定义为正整数,K和M均为不小于3的整数,M 小于(K+N)。假使任意一个第三数据具有N个"0"的连续比特,则对应的 第二数据具有至少(N+3)个"1"的连续比特。纠错码(ECC)被提供给第
12二数据。第二数据由编码模块405生成,处理器404将第二数据传送至设置模块406。设置模块406将第二数据记录在数据页中字节"0x00"为解码模块402所解码的位置。如果需要从存储模块401获取第三数据,则读取模块402会找出所记录的第二数据。解码模块403将第二数据解码成第三数据。接下的程序与上述的实施例相同,这里不再赘述。
本发明适用于单向设置比特信号的非易失性存储器。非易失性存储器最好是一次性可编程(One Time Program, OTP)快闪存储器、电可擦除式可编禾呈只i卖存fi者器 (Electrically Erasable Programmable Read-Only Memory,EEPROM)或单向设置比特信号的快闪EEPROM。
本实施例中,本发明的方法由储存于只读存储器(Read-Only Memory,ROM)内的固件所实行。固件可更新至新的版本。在其他实施例中,本发明方法可由任何与处理器连接的记录装置所储存的编码来实行。
综上所述,本发明提供一种单向设置比特信号的非易失性存储器及其设置方法。纠错码(ECC)被提供给所设置的数据页,从而防止设置过程中的比特错误,还能在设置修改的数据时减少新数据页的使用率,因此节省存储器空间。
虽然本发明巳由上述实施例详细叙述,但可以由本领域技术人员进行不脱离本申请的权利要求书所保护的范围的各种修改。
权利要求
1. 一种用于非易失性存储器的设置方法,所述存储器具有单向设置比特信号,该方法包括下列步骤a)提供第一数据,该第一数据各自包括非易失性存储器数据页内的第一数目的第一状态连续比特;b)将第一数据内的第一数目的第一状态连续比特解码成第二数目的第二状态连续比特;以及c)在数据页内第一状态已解码成第二状态的部分设置第二数据。
2. 根据权利要求1所述的设置方法,其中,第二数据包含纠错码。
3. 根据权利要求2所述的设置方法,该方法进一步包括提供具有N个 比特且被编码成第二数据的第三数据。
4. 根据权利要求3所述的设置方法,其中,第二数据各自具有(N+K) 个比特,第二数据中任意两个不同的数据具有M个比特的差异,其中N为 正整数,K和M均为不小于3的整数,M小于(K+N),其中若任意一个第 三数据具有N个"0"的连续比特,则对应的第二数据具有至少(N+3)个"1"的连续比特。
5. 根据权利要求1所述的设置方法,其中,步骤c)使用汉明码。
6. 根据权利要求1所述的设置方法,其中,比特信号具有值"0"或"1", 并只能由"0"设置为"1"。
7. 根据权利要求l所述的设置方法,其中,比特信号具有值"0"或"1", 只能由"1"设置为"0"。
8. 根据权利要求1所述的设置方法,其中,非易失性存储器使用文件分 配表文件系统。
9. 根据权利要求1所述的设置方法,其中,数据页为一次性可编程的。
10. 根据权利要求1所述的设置方法,其中,非易失性存储器包括电可 擦除可编程只读存储器或快闪存储器。
11. 根据权利要求1所述的设置方法,其中,第一状态为"1",第二状 态为"0"。
12. 根据权利要求1所述的设置方法,其中,第一状态为"0",第二状 态为"1"。
13. 根据权利要求1所述的设置方法,其中,第一数目大于第二数目。
14. 根据权利要求1所述的设置方法,其中,第一数目的第一状态连续 比特代表字节"0xff",第二数目的第二状态连续比特代表比特"00"。
15. —种用于非易失性存储器的控制器,所述存储器具有单向设置比特 信号并且该存储器被分割成多个数据页,所述控制器包括解码模块,用于解码非易失性存储器数据页内的第一数据,其中当第一 数据各自包括第一数目的第一状态连续比特时,则将第一数目的第一状态连 续比特解码成第二数目的第二状态连续比特,以指示用来设置第二数据的数 据页部分;以及设置模块,用于设置第二数据。
16. 根据权利要求15所述的控制器,其中,第二数据包含纠错码。
17. 根据权利要求15所述的控制器,该控制器进一步包括编码模块,用 于将第三数据编码成第二数据。
18. 根据权利要求17所述的控制器,其中,第三数据各自具有N个比 特并且被编码成(N+K)个比特的第二数据,第二数据中任意两个不同的数 据具有M个比特的差异,其中N为正整数,K和M均为不小于3的整数, M小于(K+N),其中若任意一个第三数据具有N个"0"的连续比特,则 对应的第二数据具有至少(N+3)个"1"的连续比特。
19. 根据权利要求17所述的控制器,其中,所述编码模块使用汉明码。
20. 根据权利要求15所述的控制器,其中,比特信号具有值"0"或"1", 只能由"0"设置为"1"。
21. 根据权利要求15所述的控制器,其中,比特信号具有值"0"或"1", 只能由"1"设置为"0"。
22. 根据权利要求15所述的控制器,其中,非易失性存储器使用文件分 配表文件系统。
23. 根据权利要求15所述的控制器,其中,数据页为可重复编程的。
24. 根据权利要求15所述的控制器,其中,非易失性存储器包括电可擦 除式可编程只读存储器或快闪存储器。
25, 一种单向设置比特信号的非易失性存储器系统,该系统包括-存储模块,该存储模块被分割成多个数据页以储存第二数据; 解码模块,用于解码非易失性存储器数据页内的第一数据,其中当第一 数据各自包括第一数目的第一状态连续比特时,则将第一数目的第一状态连 续比特解码成第二数目的第二状态连续比特,以指示用来设置包含纠错码的 第二数据的数据页部分;以及设置模块,用于将第三数据编码成第二数据。
26.根据权利要求25所述的非易失性存储器系统,其中,第三数据各自 具有N个比特并被编码成(N+K)个比特的第二数据,第二数据中任意两个 不同的数据具有M个比特的差异,其中N为正整数,K和M均为不小于3 的整数,M小于(K+N),其中若任意一个第三数据具有N个"0"的连续 比特,则对应的第二数据具有至少(N+3)个"1"的连续比特。
全文摘要
本发明公开了一种用于非易失性存储器的设置方法,所述存储器具有单向设置比特信号,所述方法包括下列步骤a)提供第一数据,该第一数据各自包括非易失性存储器数据页内的第一数目的第一状态连续比特;b)将第一数据内的第一数目的第一状态连续比特解码成第二数目的第二状态连续比特;以及c)在数据页内第一状态已解码成第二状态的部分设置第二数据。
文档编号G11C16/00GK101533677SQ20081008501
公开日2009年9月16日 申请日期2008年3月13日 优先权日2008年3月13日
发明者张毓安, 游祥雄 申请人:群联电子股份有限公司