CN102236584A - 用来抑制数据错误的方法以及相关的记忆装置及其控制器 - Google Patents

用来抑制数据错误的方法以及相关的记忆装置及其控制器 Download PDF

Info

Publication number
CN102236584A
CN102236584A CN2010101515168A CN201010151516A CN102236584A CN 102236584 A CN102236584 A CN 102236584A CN 2010101515168 A CN2010101515168 A CN 2010101515168A CN 201010151516 A CN201010151516 A CN 201010151516A CN 102236584 A CN102236584 A CN 102236584A
Authority
CN
China
Prior art keywords
seed
randomizer
data
controller
primordial
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.)
Granted
Application number
CN2010101515168A
Other languages
English (en)
Other versions
CN102236584B (zh
Inventor
陈俊谕
官启智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to CN201010151516.8A priority Critical patent/CN102236584B/zh
Publication of CN102236584A publication Critical patent/CN102236584A/zh
Application granted granted Critical
Publication of CN102236584B publication Critical patent/CN102236584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种用来抑制数据错误的方法以及相关的记忆装置及其控制器,该方法应用于一闪存的控制器,该闪存包含多个区块,该方法包含有:依据欲于该闪存写入/读取的数据的一地址,判断是否利用一原始种子作为一随机函数发生器/解随机函数发生器的输入种子,其中该随机函数发生器/解随机函数发生器用来依据该输入种子产生一随机函数,以供用来逐位元地调整该数据的多个位元,以及针对至少该些区块中的每一区块,该原始种子的值恒不变;以及当判断不应利用该原始种子作为该输入种子时,依据一新种子产生该随机函数来调整该数据。本发明可对控制器所存取的数据进行妥善的数据型样管理,减少了错误的发生,且整体成本不会增加太多。

Description

用来抑制数据错误的方法以及相关的记忆装置及其控制器
技术领域
本发明涉及闪存(Flash Memory)的存取(Access),更具体地说,涉及一种用来抑制数据错误的方法以及相关的记忆装置及其控制器。
背景技术
近年来由于闪存的技术不断地发展,各种可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡)或具备闪存的固态硬盘(Solid StateDrive,SSD)被广泛地实施于诸多应用中。因此,这些记忆装置中的闪存的存取控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其主要可区分为单阶细胞(Single LevelCell,SLC)与多阶细胞(Multiple Level Cell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆单元的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多阶细胞闪存中的每个被当作记忆单元的晶体管的储存能力则被充分利用,采用较高的电压来驱动,以透过不同级别的电压在一个晶体管中记录两组位元信息(00、01、11、10);理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的可携式记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保记忆装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据相关技术,有了这些管理机制的记忆装置还是有不足之处。举例来说,使用者可能基于其使用习惯而不断地写入具有某些特定数据型样的数据,而这些特定数据型样特别容易造成错误(例如:写入错误、读取错误...等);虽然在记忆装置中设置有随机函数发生器(Randomizer)来调整数据以期解决这样的问题,却由于传统的低成本设计,以致调整后的数据不够随机。依据相关技术的典型实施方式,针对每一区段(Sector),该随机函数发生器的输入种子(Seed)的值恒不变(亦即,对每一区段而言,输入种子都保持同一个数值),故上述的问题并未真正地解决。因此,需要一种新颖的方法针对该控制器所存取的数据来进行妥善的数据型样管理,以减少错误的发生。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种用来抑制数据错误的方法以及相关的记忆装置及其控制器,以解决上述问题。
本发明解决其技术问题所采用的技术方案之一是:构造一种用来抑制数据错误的方法,该方法应用于一闪存(Flash Memory)的控制器,该闪存包含多个区块,该方法包含有:依据欲于该闪存写入/读取的数据的一地址,判断是否利用一原始种子(Seed)作为一随机函数发生器(Randomizer)/解随机函数发生器(Derandomizer)的输入种子,其中该随机函数发生器/解随机函数发生器用来依据该输入种子产生一随机函数(Random Function),以供用来逐位元地调整该数据的多个位元,以及针对至少该些区块中的每一区块,该原始种子的值恒不变;当判断应利用该原始种子作为该输入种子时,将该原始种子输入至该随机函数发生器/解随机函数发生器,以依据该原始种子产生该随机函数来调整该数据;以及当判断不应利用该原始种子作为该输入种子时,将一新种子输入至该随机函数发生器/解随机函数发生器,以依据该新种子产生该随机函数来调整该数据。
本发明所述的方法,其另包含有:
提供一种子产生器,用来调整该原始种子以产生该新种子。
本发明所述的方法,其中该原始种子包含多个位元,且该新种子包含多个位元;该种子产生器储存有一个或多个预定矩阵;以及该方法另包含有:
利用该原始种子以及该一个或多个预定矩阵中的一特定预定矩阵来进行运算,以产生该新种子。
本发明所述的方法,其另包含有:
依据至少一索引,于该一个或多个预定矩阵中选出该特定预定矩阵,其中该至少一索引用来指出该数据所对应的区段(Sector)、字(Word)、及/或字节(Byte)。
本发明所述的方法,其中判断是否利用该原始种子作为该随机函数发生器/解随机函数发生器的该输入种子的步骤另包含有:
当该地址落入一预定范围时,判断应利用该原始种子作为该输入种子;以及
当该地址未落入该预定范围时,判断不应利用该原始种子作为该输入种子。
本发明所述的方法,其中该预定范围对应于一区块、一页(Page)、一区段(Sector)、或一更小的储存单位。
本发明所述的方法,其中针对每一区块中的每一页(Page)或每一区段(Sector),该原始种子的值恒不变。
本发明解决其技术问题所采用的技术方案之二是:构造一种记忆装置,其包含有:一闪存,该闪存包含多个区块;以及一控制器,用来存取(Access)该闪存以及管理该多个区块,并且另针对该控制器本身所存取的数据来抑制数据错误。另外,该控制器包含有一随机函数发生器/解随机函数发生器,用来依据一输入种子产生一随机函数,以供用来于该控制器接收到一写入/读取命令时逐位元地调整该数据的多个位元,其中该写入/读取命令用来指示该控制器于该闪存写入/读取该数据,该控制器依据该数据的一地址判断是否利用一原始种子作为该输入种子,以及针对至少该些区块中的每一区块,该原始种子的值恒不变。此外,当判断应利用该原始种子作为该输入种子时,该控制器将该原始种子输入至该随机函数发生器/解随机函数发生器,以依据该原始种子产生该随机函数来调整该数据;以及当判断不应利用该原始种子作为该输入种子时,该控制器将一新种子输入至该随机函数发生器/解随机函数发生器,以依据该新种子产生该随机函数来调整该数据。
本发明所述的记忆装置,其中该控制器另包含有:
一种子产生器,用来调整该原始种子以产生该新种子。
本发明所述的记忆装置,其中该原始种子包含多个位元,且该新种子包含多个位元;该种子产生器储存有一个或多个预定矩阵;以及该种子产生器利用该原始种子以及该一个或多个预定矩阵中的一特定预定矩阵来进行运算,以产生该新种子。
本发明所述的记忆装置,其中该种子产生器依据至少一索引,于该一个或多个预定矩阵中选出该特定预定矩阵;以及该至少一索引用来指出该数据所对应的区段(Sector)、字(Word)、及/或字节(Byte)。
本发明所述的记忆装置,其中当该地址落入一预定范围时,该控制器判断应利用该原始种子作为该输入种子;以及当该地址未落入该预定范围时,该控制器判断不应利用该原始种子作为该输入种子。
本发明所述的记忆装置,其中该预定范围对应于一区块、一页(Page)、一区段(Sector)、或一更小的储存单位。
本发明所述的记忆装置,其中针对每一区块中的每一页(Page)或每一区段(Sector),该原始种子的值恒不变。
本发明解决其技术问题所采用的技术方案之三是:构造一种记忆装置的控制器,该控制器用来存取一闪存,该闪存包含多个区块,该控制器包含有:一只读存储器(Read Only Memory,ROM),用来储存一程序代码;一微处理器,用来执行该程序代码以控制对该闪存的存取以及管理该多个区块,并且另针对该控制器本身所存取的数据来抑制数据错误;以及一随机函数发生器/解随机函数发生器,用来依据一输入种子产生一随机函数,以供用来于该控制器接收到一写入/读取命令时逐位元地调整该数据的多个位元,其中该写入/读取命令用来指示该控制器于该闪存写入/读取该数据,该控制器依据该数据的一地址判断是否利用一原始种子作为该输入种子,以及针对至少该些区块中的每一区块,该原始种子的值恒不变。另外,当判断应利用该原始种子作为该输入种子时,该控制器将该原始种子输入至该随机函数发生器/解随机函数发生器,以依据该原始种子产生该随机函数来调整该数据;以及当判断不应利用该原始种子作为该输入种子时,该控制器将一新种子输入至该随机函数发生器/解随机函数发生器,以依据该新种子产生该随机函数来调整该数据。
本发明所述的控制器,其另包含有:
一种子产生器,用来调整该原始种子以产生该新种子。
本发明所述的控制器,其中该原始种子包含多个位元,且该新种子包含多个位元;该种子产生器储存有一个或多个预定矩阵;以及该种子产生器利用该原始种子以及该一个或多个预定矩阵中的一特定预定矩阵来进行运算,以产生该新种子。
本发明所述的控制器,其中该种子产生器依据至少一索引,于该一个或多个预定矩阵中选出该特定预定矩阵;以及该至少一索引用来指出该数据所对应的区段(Sector)、字(Word)、及/或字节(Byte)。
本发明所述的控制器,其中当该地址落入一预定范围时,该控制器判断应利用该原始种子作为该输入种子;以及当该地址未落入该预定范围时,该控制器判断不应利用该原始种子作为该输入种子。
本发明所述的控制器,其中该预定范围对应于一区块、一页(Page)、一区段(Sector)、或一更小的储存单位。
本发明所述的控制器,其中针对每一区块中的每一页(Page)或每一区段(Sector),该原始种子的值恒不变。
实施本发明的用来抑制数据错误的方法以及相关的记忆装置及其控制器,具有以下有益效果:通过设计种子产生器,辅以配套的控制(例如:控制讯号C0、C1、与C2),本发明能针对控制器所存取的数据来进行妥善的数据型样管理,以减少错误的发生。另外,不会增加许多额外的成本,同时原始种子仍然可通过利用传统的低成本设计的架构来产生。因此,本发明可对控制器所存取的数据进行妥善的数据型样管理,减少了错误的发生,且整体成本不会增加太多。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为依据本发明一第一实施例的一种记忆装置的示意图;
图2为依据本发明一实施例的一种用来抑制数据错误的方法的流程图;
图3A与图3B分别为图2所示的方法于一实施例中所涉及的转换矩阵以及相对应的转换电路的示意图;
图4A为图2所示的方法于一实施例中关于图1所示的种子产生器的实施细节;
图4B为图2所示的方法于另一实施例中关于图1所示的种子产生器的实施细节;
图5绘示图4B所示实施例中所涉及的一系列数值的示意图,其中这一系列数值可在不限制图1所示的随机函数发生器/解随机函数发生器的运作的循环(Cycle)次数的状况下而产生;
图6为依据本发明一第二实施例的一种记忆装置当中的种子产生器的示意图。
【主要组件符号说明】
  100   记忆装置
  110   存储器控制器
  112   微处理器
  112C   程序代码
  112M   只读存储器
  114   控制逻辑
  114A   调整单元
  114B   原始种子
  114G,114G’   种子产生器
  114M   多工器
  114N   新种子
  114R   随机函数发生器/解随机函数发生器
  114RS   随机序列
  114S   随机函数发生器/解随机函数发生器的输入种子
  116   缓冲存储器
  118   接口逻辑
  120   闪存
  300   转换电路
  310-0,310-1,310-2,310-3,310-4   缓存器
  320   异或门
  410   调整电路
  420   储存单元
  910   用来抑制数据错误的方法
  912,914-1,914-2   步骤
  A   随机函数发生器/解随机函数发生器对随机序列的转换矩阵
  AZ(1),AZ(2),...,AZ(X),A1024,A2048,A3072   预定矩阵
  C0,C1,C2   控制讯号
  DA,DB   数据
  RS(t;0),RS(t;1),RS(t;2),RS(t;3)   数值RS(t)的二进制表示法在W=5的状况下的各个位元
  RS(1),RS(2),RS(3),...,RS(1024),RS(1025),...,RS(2048),RS(2049),...,RS(3072),RS(3073),...,RS(4096),RS(4097),...,RS(32K)   随机函数发生器/解随机函数发生器可在其运作的循环次数不受限制的状况下而产生的一系列数值
具体实施方式
请参考图1,图1为依据本发明一第一实施例的一种记忆装置100的示意图,其中本实施例的记忆装置100尤其可为可携式记忆装置,例如:符合SD/MMC、CF、MS、XD标准的记忆卡,或通用序列总线快闪碟(UniversalSerial Bus Flash Drive,USB Flash Drive,亦称为USB Flash Disk),即所谓的随身碟,但不以此为限。记忆装置100包含有:一闪存(Flash Memory)120;以及一控制器,用来存取闪存120,其中该控制器例如一存储器控制器110。依据本实施例,存储器控制器110包含一微处理器112、一只读存储器(ReadOnly Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。另外,控制逻辑114包含一调整单元114A、一种子产生器(SeedGenerator)114G、一多工器114M、与一随机函数发生器(Randomizer)/解随机函数发生器(Derandomizer)114R。实作上,调整单元114A可为一互斥或(Exclusive OR,XOR)逻辑闸或一加法器。请注意,在此以可携式记忆装置为例;这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,记忆装置100可为固态硬盘(Solid State Drive,SSD)。
于本实施例中,只读存储器112M用来储存一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存120的存取(Access)。于典型状况下,闪存120包含多个区块(Block),而该控制器(例如:透过微处理器112执行程序代码112C的存储器控制器110)对闪存120进行抹除数据的运作以区块为单位来进行抹除。另外,一区块可记录特定数量的页(Page),其中上述的控制器对闪存120进行写入数据的运作以页为单位来进行写入。
实作上,透过微处理器112执行程序代码112C的存储器控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存120的存取运作(尤其是对至少一区块或至少一页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Device)沟通。依据本实施例,除了能存取闪存120,存储器控制器110还能妥善地管理该多个区块。
另外,存储器控制器110还可针对其本身所存取的数据(例如:图1所示的数据DB)来抑制数据错误,尤其是通过利用随机函数发生器/解随机函数发生器114R的运作来抑制数据错误。更明确而言,随机函数发生器/解随机函数发生器114R用来依据一输入种子114S产生一随机函数(RandomFunction),以供用来于该控制器接收到一写入/读取命令时逐位元地调整该数据(诸如数据DB)的多个位元,其中该写入/读取命令用来指示该控制器于闪存120写入/读取该数据。于是,图1所示的调整单元114A依据随机序列114RS(即上述的随机函数的序列)调整数据DB以产生调整后的数据DA。例如:在上述的写入/读取命令代表一写入命令的状况下,当通过调整单元114A的数据路径代表一写入路径时,数据DB可代表该控制器欲写入闪存120的数据,而数据DA可代表调整后以供写入的数据。又例如:在上述的写入/读取命令代表一读取命令的状况下,当通过调整单元114A的数据路径代表一读取路径时,数据DB可代表该控制器读取自闪存120的数据,而数据DA可代表调整后以供进一步处理以回传给主装置的数据。实作上,透过微处理器112执行程序代码112C的存储器控制器110可产生控制讯号C0、C1、与C2,以分别控制种子产生器114G、多工器114M、与随机函数发生器/解随机函数发生器114R。
依据本实施例,控制讯号C0可载有至少一索引,用来指出数据DB所对应的区段、字(Word)、及/或字节(Byte),尤其是数据DB当中目前正被处理的部分。除了控制讯号C0,本实施例的种子产生器114G另接收原始种子114B;于是,依据控制讯号C0的控制,种子产生器114G可相应地调整原始种子114B以产生新种子114N,其中新种子114N对应于该索引,且由于适当地设计种子产生器114G(其细节后续会进一步说明),新种子114N通常异于原始种子114B。如此,即使在原始种子114B通过利用传统的低成本设计的架构所产生而一直出现相同的值的状况下,新种子114N并不会重复。另外,控制讯号C1用来控制多工器114M的多任务选择(Multiplexing)运作,使多工器114M相应地多任务选择原始种子114B或新种子114N,作为随机函数发生器/解随机函数发生器114R的输入种子114S;而控制讯号C2则用来控制随机函数发生器/解随机函数发生器114R的载入运作,以使随机函数发生器/解随机函数发生器114R可以正确地加载输入种子114S。
基于图1所示的架构,由于新种子114N并不会重复,只要适切地选择原始种子114B或新种子114N作为输入种子114S,就不会有相关技术中调整后的数据不够随机的问题;于是,原始种子114B仍然可通过利用传统的低成本设计的架构来产生。于本实施例中,针对至少该些区块中的每一区块,原始种子114B的值恒不变,及该些区块中的每一区块均使用相同的原始种子114B;例如:针对每一区块中的每一页,原始种子114B的值恒不变。尤其是,针对每一区块中的每一区段(Sector),原始种子114B的值恒不变。存储器控制器110抑制数据错误的相关细节可参考图2来进一步说明。
图2为依据本发明一实施例的一种用来抑制数据错误的方法910的流程图。该方法可应用于图1所示的记忆装置100,尤其是上述的控制器(例如:透过微处理器112执行程序代码112C的存储器控制器110)。另外,该方法可通过利用图1所示的记忆装置100来实施,尤其是通过利用上述的控制器来实施。该方法说明如下:
步骤912:该控制器依据欲于闪存120写入/读取的数据(例如:数据DB)的一地址,判断是否利用原始种子114B作为随机函数发生器/解随机函数发生器114R的输入种子114S。当判断应利用原始种子114B作为输入种子114S时,进入步骤914-1;否则(亦即,当判断不应利用原始种子114B作为输入种子114S时),进入步骤914-2。
步骤914-1:该控制器将原始种子114B输入至随机函数发生器/解随机函数发生器114R,以依据原始种子114B产生该随机函数来调整该数据。
步骤914-2:该控制器将新种子114N输入至随机函数发生器/解随机函数发生器114R,以依据新种子114N产生该随机函数来调整该数据。
于本实施例中,当步骤912所述的该地址落入一预定范围时,该控制器判断应利用原始种子114B作为该输入种子。另外,当该地址未落入该预定范围时,该控制器判断不应利用原始种子114B作为该输入种子。例如:针对每一区块,原始种子114B的值恒不变;此状况下,该预定范围可对应于一区块、一页、一区段、或一更小的储存单位。又例如:针对每一区块中的每一页,原始种子114B的值恒不变;此状况下,该预定范围可对应于一页、一区段、或一更小的储存单位,其中此处所述的页可包含数个区段。又例如:针对每一区块中的每一区段,原始种子114B的值恒不变;此状况下,该预定范围可对应于一区段或一更小的储存单位。
依据本实施例,种子产生器114G用来调整原始种子114B以产生新种子114N,其中原始种子114B包含多个位元,且新种子114N包含多个位元。另外,种子产生器114G储存有一个或多个预定矩阵,尤其是多个预定矩阵AZ(1)、AZ(2)、...、与AZ(X),其中符号A代表随机函数发生器/解随机函数发生器114R对随机序列114RS的转换矩阵;于本实施例中,亦可将种子产生器114G视为体现上述的一个或多个预定矩阵的电路。于是,种子产生器114G可利用原始种子114B以及该一个或多个预定矩阵中的一特定预定矩阵来进行运算,以产生新种子114N。例如:在原始种子114B与新种子114N分别包含W个位元的状况下,转换矩阵A为一个W乘以W的矩阵,而上述的预定矩阵AZ(1)、AZ(2)、...、与AZ(X)亦分别为W乘以W的矩阵,请注意到,转换矩阵A不限定于方矩阵,转换矩阵A亦得为W乘以M的矩阵或M乘以W的矩阵(M不等于W),只要可与原始种子114B进行乘法即可。
在此,随机序列114RS可表示为序列{RS(t)|t为整数}(t为对应于时间的索引),则此序列中的任一数值RS(t)和其下一数值RS(t+1)之间的关可透过下列方程式来表示:
RS(t+1)=A*RS(t);
如此,当输入种子114S的值等于RS(t0)时,通过如以上这个方程式所示的转换,随机函数发生器/解随机函数发生器114R可产生序列{RS(t)}当中由RS(t0+1)开始的部分,即序列{RS(t)|t≥(t0+1)}。
图3A与图3B分别为图2所示的方法910于一实施例中所涉及的转换矩阵A以及相对应的转换电路300的示意图,其中转换电路300设置于随机函数发生器/解随机函数发生器114R中,且包含W个缓存器310-0、310-1、...、与310-(W-1)以及一异或门320(于第3图标示为「XOR」)。在W=5的状况下,缓存器310-0、310-1、310-2、310-3、与310-4分别暂存数值RS(t)的二进制表示法的各个位元RS(t;0)、RS(t;1)、RS(t;2)、RS(t;3)、与RS(t;4)。依据图3B所示的架构,随机函数发生器/解随机函数发生器114R可产生序列{RS(t)}中的至少一部分,诸如序列{RS(t)}中的一部分或全部。
图4A为图2所示的方法910于一实施例中关于图1所示的种子产生器114G的实施细节。依据本实施例,种子产生器114G包含一调整电路410与一储存单元420。储存单元420储存有X个预定矩阵AZ(1)、AZ(2)、...、与AZ(X),其中Z(1)、Z(2)、...、与Z(X)均为正整数,尤其是彼此相异的正整数。另外,种子产生器114G(尤其是调整电路410)依据上述的至少一索引于该X个预定矩阵AZ(1)、AZ(2)、...、与AZ(X)当中选择相对应的一预定矩阵AZ(x)(在此,x=1、2、...、或X),其中控制讯号C0载有上述的至少一索引。于是,种子产生器114G利用预定矩阵AZ(x)调整原始种子114B,以产生新种子114N。依据本实施例的一特例,Z(1)、Z(2)、...、与Z(X)可为等差数列。依据本实施例的另一特例,Z(1)、Z(2)、...、与Z(X)可为等差数列,且此等差数列的公差等于Z(1)。
图4B为图2所示的方法910于另一实施例中关于图1所示的种子产生器114G的实施细节,其中本实施例为图4A所示实施例的一特例。于本实施例中,Z(x)=(1024*x)且X等于3,而每一页包含4千字节(Kilobyte),并且每一区段包含1千字节(亦即,每一页包含4个区段)。如图4B所示,储存单元420储存有3个预定矩阵A1024、A2048、A3072。为了便于理解,请参考图5;图5绘示图4B所示实施例中所涉及的一系列数值的示意图,其中这一系列数值可在不限制图1所示的随机函数发生器/解随机函数发生器114R的运作的循环(Cycle)次数的状况下而产生。如图5所示,这一系列数值包含:RS(1),RS(2),RS(3),...,RS(1024),RS(1025),...,RS(2048),RS(2049),...,RS(3072),RS(3073),...,RS(4096),RS(4097),...,RS(32K),其中RS(32K)代表RS(32768);在W=8的状况下,这一系列数值中的每一数值均落入区间[0,255]的范围。在此以各个圆圈内的数字作为这一系列数值的例子;这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,各个圆圈内的这些数字可以加以变化。
依据本实施例,紧接着数值RS(32K)的后下一个产生的数值是这一系列数值中的第一个数值RS(1),而这一系列数值可被重复地产生。广义而言,这一系列数值可区分为(Y+1)个部分:
{RS(Z(0)+1),RS(Z(0)+2),...,RS(Z(1))};
{RS(Z(1)+1),RS(Z(1)+2),...,RS(Z(2))};
{RS(Z(2)+1),RS(Z(2)+2),...,RS(Z(3))};...以及
{RS(Z(Y)+1),RS(Z(Y)+2),...,RS(Z(Y+1))};
其中,于本实施例中,Y=31。
假设于该控制器将原始种子114B输入至随机函数发生器/解随机函数发生器114R且经过一个循环之后,随机序列114RS当中首先出现的数值为RS(1),且该控制器所采用的该预定范围对应于一区段(其包含1千字节),尤其是任一页内的第1个区段。于是,当步骤912所述的该地址落入该预定范围时,这表示该地址代表某一页内的第1个区段,则该控制器判断应利用原始种子114B作为该输入种子。另外,当该地址未落入该预定范围时,尤其是该地址代表某一页内的第(v+1)个区段时,则在该控制器的控制下,种子产生器114G可利用原始种子114B以及预定矩阵AZ(v)来进行运算,以产生新种子114N,其中v=1、2、或3。本实施例与前述实施例/变化例相仿之处不再重复赘述。
依据本实施例的一变化例,该控制器所采用的该预定范围对应于一区段(其包含1千字节),尤其是每一组区段中的第1个区段。于此变化例中,每一组区段可包含32个区段。另外,储存单元420储存有31个预定矩阵A1024、A2048、A3072、...、与A31K,其中A31K代表A31744。于是,当步骤912所述的该地址落入该预定范围时,这表示该地址代表某一组区段内的第1个区段,则该控制器判断应利用原始种子114B作为该输入种子。此外,当该地址未落入该预定范围时,尤其是该地址代表某一组区段内的第(v+1)个区段时,则在该控制器的控制下,种子产生器114G可利用原始种子114B以及预定矩阵AZ(v)来进行运算,以产生新种子114N,其中v=1、2、...、或31。本变化例与前述实施例/变化例相仿的处不再重复赘述。
图6为依据本发明一第二实施例的一种记忆装置200当中的种子产生器114G’的示意图,其中本实施例为该第一实施例的变化例。本实施例的多工器114M并入上述的种子产生器114G内;因应架构的变化,本实施例的种子产生器以符号114G’来标示,其中种子产生器114G’将上述的输入种子114S输入至上述的随机函数发生器/解随机函数发生器114R。如此,本实施例的记忆装置200(或其存储器控制器210)与图1所示的记忆装置100(或其存储器控制器110)之间的差异仅在于多工器114M是否位于种子产生器内。本实施例与前述实施例/变化例相仿的处不再重复赘述。
本发明的好处之一是,通过适当地设计种子产生器114G,辅以配套的控制(例如:控制讯号C0、C1、与C2),本发明能针对该控制器所存取的数据来进行妥善的数据型样管理,以减少错误的发生。另外,依据以上各个实施例/变化例来实施并不会增加许多额外的成本,同时原始种子114B仍然可通过利用传统的低成本设计的架构来产生。因此,基于以上揭露的内容,相关技术的问题已被解决,且整体成本不会增加太多。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (9)

1.一种用来抑制数据错误的方法,该方法应用于一闪存的控制器,该闪存包含多个区块,其特征在于,该方法包含有:
依据欲于该闪存写入/读取的数据的一地址,判断是否利用一原始种子作为一随机函数发生器/解随机函数发生器的输入种子,其中该随机函数发生器/解随机函数发生器用来依据该输入种子产生一随机函数,以供用来逐位元地调整该数据的多个位元,以及针对至少该些区块中的每一区块,该原始种子的值恒不变;
当判断应利用该原始种子作为该输入种子时,将该原始种子输入至该随机函数发生器/解随机函数发生器,以依据该原始种子产生该随机函数来调整该数据;以及
当判断不应利用该原始种子作为该输入种子时,将一新种子输入至该随机函数发生器/解随机函数发生器,以依据该新种子产生该随机函数来调整该数据。
2.根据权利要求1所述的方法,其特征在于,其另包含有:
提供一种子产生器,用来调整该原始种子以产生该新种子。
3.根据权利要求2所述的方法,其特征在于,其中该原始种子包含多个位元,且该新种子包含多个位元;该种子产生器储存有一个或多个预定矩阵;以及该方法另包含有:
利用该原始种子以及该一个或多个预定矩阵中的一特定预定矩阵来进行运算,以产生该新种子。
4.根据权利要求3所述的方法,其特征在于,其另包含有:
依据至少一索引,于该一个或多个预定矩阵中选出该特定预定矩阵,其中该至少一索引用来指出该数据所对应的区段、字、及/或字节。
5.根据权利要求1所述的方法,其特征在于,其中判断是否利用该原始种子作为该随机函数发生器/解随机函数发生器的该输入种子的步骤另包含有:
当该地址落入一预定范围时,判断应利用该原始种子作为该输入种子;以及
当该地址未落入该预定范围时,判断不应利用该原始种子作为该输入种子。
6.根据权利要求5所述的方法,其特征在于,其中该预定范围对应于一区块、一页、一区段、或一更小的储存单位。
7.根据权利要求1所述的方法,其特征在于,其中针对每一区块中的每一页或每一区段,该原始种子的值恒不变。
8.一种记忆装置,其特征在于,其包含有:
一闪存,该闪存包含多个区块;以及
一控制器,用来存取该闪存以及管理该多个区块,并且另针对该控制器本身所存取的数据来抑制数据错误,其中该控制器包含有:
一随机函数发生器/解随机函数发生器,用来依据一输入种子产生一随机函数,以供用来于该控制器接收到一写入/读取命令时逐位元地调整该数据的多个位元,其中该写入/读取命令用来指示该控制器于该闪存写入/读取该数据,该控制器依据该数据的一地址判断是否利用一原始种子作为该输入种子,以及针对至少该些区块中的每一区块,该原始种子的值恒不变;
其中当判断应利用该原始种子作为该输入种子时,该控制器将该原始种子输入至该随机函数发生器/解随机函数发生器,以依据该原始种子产生该随机函数来调整该数据;以及当判断不应利用该原始种子作为该输入种子时,该控制器将一新种子输入至该随机函数发生器/解随机函数发生器,以依据该新种子产生该随机函数来调整该数据。
9.一种记忆装置的控制器,该控制器用来存取一闪存,该闪存包含多个区块,其特征在于,该控制器包含有:
一只读存储器,用来储存一程序代码;
一微处理器,用来执行该程序代码以控制对该闪存的存取以及管理该多个区块,并且另针对该控制器本身所存取的数据来抑制数据错误;以及
一随机函数发生器/解随机函数发生器,用来依据一输入种子产生一随机函数,以供用来于该控制器接收到一写入/读取命令时逐位元地调整该数据的多个位元,其中该写入/读取命令用来指示该控制器于该闪存写入/读取该数据,该控制器依据该数据的一地址判断是否利用一原始种子作为该输入种子,以及针对至少该些区块中的每一区块,该原始种子的值恒不变;
其中当判断应利用该原始种子作为该输入种子时,该控制器将该原始种子输入至该随机函数发生器/解随机函数发生器,以依据该原始种子产生该随机函数来调整该数据;以及当判断不应利用该原始种子作为该输入种子时,该控制器将一新种子输入至该随机函数发生器/解随机函数发生器,以依据该新种子产生该随机函数来调整该数据。
CN201010151516.8A 2010-04-20 2010-04-20 用来抑制数据错误的方法以及相关的记忆装置及其控制器 Active CN102236584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010151516.8A CN102236584B (zh) 2010-04-20 2010-04-20 用来抑制数据错误的方法以及相关的记忆装置及其控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010151516.8A CN102236584B (zh) 2010-04-20 2010-04-20 用来抑制数据错误的方法以及相关的记忆装置及其控制器

Publications (2)

Publication Number Publication Date
CN102236584A true CN102236584A (zh) 2011-11-09
CN102236584B CN102236584B (zh) 2015-09-30

Family

ID=44887254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010151516.8A Active CN102236584B (zh) 2010-04-20 2010-04-20 用来抑制数据错误的方法以及相关的记忆装置及其控制器

Country Status (1)

Country Link
CN (1) CN102236584B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455948A (zh) * 2010-10-15 2012-05-16 慧荣科技股份有限公司 用来进行数据整形的方法以及相关的记忆装置及其控制器
CN105868642A (zh) * 2015-09-28 2016-08-17 深圳创久科技有限公司 数据加密的闪存控制器以及写入或读取数据加密方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1276886A (zh) * 1997-10-23 2000-12-13 西加特技术有限责任公司 偶数/奇数数据轨道的交替随机化
US20050172208A1 (en) * 2004-01-29 2005-08-04 Chan-Ho Yoon Forward Chien search type Reed-Solomon decoder circuit
CN1696893A (zh) * 2004-05-13 2005-11-16 华为技术有限公司 随机数发生装置和软件测试的系统及方法
US7158058B1 (en) * 2002-12-09 2007-01-02 Marvell International Ltd. Method and apparatus for generating a seed set in a data dependent seed selector
US20090323942A1 (en) * 2008-06-30 2009-12-31 Eran Sharon Method for page- and block based scrambling in non-volatile memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1276886A (zh) * 1997-10-23 2000-12-13 西加特技术有限责任公司 偶数/奇数数据轨道的交替随机化
US7158058B1 (en) * 2002-12-09 2007-01-02 Marvell International Ltd. Method and apparatus for generating a seed set in a data dependent seed selector
US20050172208A1 (en) * 2004-01-29 2005-08-04 Chan-Ho Yoon Forward Chien search type Reed-Solomon decoder circuit
CN1696893A (zh) * 2004-05-13 2005-11-16 华为技术有限公司 随机数发生装置和软件测试的系统及方法
US20090323942A1 (en) * 2008-06-30 2009-12-31 Eran Sharon Method for page- and block based scrambling in non-volatile memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455948A (zh) * 2010-10-15 2012-05-16 慧荣科技股份有限公司 用来进行数据整形的方法以及相关的记忆装置及其控制器
CN102455948B (zh) * 2010-10-15 2014-09-10 慧荣科技股份有限公司 用来进行数据整形的方法以及相关的记忆装置及其控制器
CN105868642A (zh) * 2015-09-28 2016-08-17 深圳创久科技有限公司 数据加密的闪存控制器以及写入或读取数据加密方法

Also Published As

Publication number Publication date
CN102236584B (zh) 2015-09-30

Similar Documents

Publication Publication Date Title
US11621043B2 (en) Read level tracking and optimization
KR101556472B1 (ko) 메모리의 동작 조건에 영향을 주는 파라미터를 포함하는 메모리 명령어
TWI438778B (zh) 用來抑制資料錯誤之方法以及相關之記憶裝置及其控制器
US9582224B2 (en) Memory control circuit unit, memory storage apparatus and data accessing method
US8578245B2 (en) Data reading method, memory storage apparatus, and controller thereof
US9703494B1 (en) Method and apparatus for protecting lower page data during programming in NAND flash
CN108206041A (zh) 存储器读取操作方法、存储器控制器及存储系统操作方法
CN111651371B (zh) 非对称型平面管理方法以及数据存储装置及其控制器
KR20100046757A (ko) 메모리 장치 및 그 프로그램 방법
US20130304964A1 (en) Data processing method, and memory controller and memory storage device using the same
CN105005450A (zh) 数据写入方法、存储器存储装置及存储器控制电路单元
CN107958687B (zh) 存储器编程方法、存储器控制电路单元及其存储装置
CN108733580A (zh) 读取命令排程方法
US10424383B1 (en) Decoding method and storage controller
CN108255634B (zh) 一种数据读取方法及装置
US7082490B2 (en) Method and system for enhancing the endurance of memory cells
CN102890653A (zh) 指令执行方法、存储器控制器与存储器储存装置
US10203886B2 (en) Data writing method, memory control circuit unit and memory storage apparatus for writing data from buffer memory and moving valid data
CN102236584A (zh) 用来抑制数据错误的方法以及相关的记忆装置及其控制器
TWI644215B (zh) 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器
WO2017218170A1 (en) Method and apparatus for programming wordlines of nand flash memory using alternating encoding schemes
US9613707B1 (en) Data programming method for avoiding unavailability of rewritable non-volatile memory module due to higher erase count of part of physical erasing units, and memory control circuit unit and memory storage device using the same
CN113628655A (zh) 用以存取闪存模块的方法、闪存控制器与电子装置
CN102956255B (zh) 闪存控制器
CN108091364B (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