使用纠错指针处置存储器中的错误的制作方法

文档序号:9693214阅读:201来源:国知局
使用纠错指针处置存储器中的错误的制作方法
【技术领域】
[0001 ]本发明的实施例大体涉及存储器的技术领域。具体实施例涉及存储器控制器。
【背景技术】
[0002]存储器错误可以归类为读取间持续的硬错误(例如卡住的比特)或者随机发生的软错误。例如,在交叉点存储器中,如果存储器单元的阈值电压或电阻高于选择电压,则单元可能变得卡在逻辑值(例如0或1)上。硬错误可以是交叉点存储器中的错误的显著部分。
【附图说明】
[0003]通过结合附图的以下详细描述将容易理解实施例。为了促进该描述,相同参考标记指代相同结构元件。在附图中的各图中作为示例而非作为限制图示实施例。
[0004]图1图示了依照各种实施例的示例存储器系统。
[0005]图2图示了依照各种实施例的用于从存储器读取数据的读取过程。
[0006]图3图示了依照各种实施例的配置成采用本文描述的装置和方法的示例系统。
【具体实施方式】
[0007]在以下详细描述中,参照形成其部分的附图,其中贯穿全文的相同标号指代相同部分,并且通过说明的方式在其中示出可以实践的实施例。要理解到,可以利用其他实施例并且可以做出结构或逻辑改变而不脱离于本公开的范围。因此,以下详细描述不应视为限制性意味,并且实施例的范围由随附权利要求及其等同物限定。
[0008]以最有助于理解所要求保护的主题的方式,可以将各种操作依次描述为多个分立动作或操作。然而,描述的次序不应当解释为暗示着这些操作必然是取决于次序的。特别地,这些操作可以不以呈现的次序执行。所描述的操作可以以与所描述的实施例不同的次序执行。可以执行各种附加操作和/或可以在附加实施例中省略所描述的操作。
[0009]出于本公开的目的,短语“A和/或B”以及“A或B”意指(A)、(B)或者(A和B)。出于本公开的目的,短语“A、B和/或C"意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或者(A、B和C)。
[0010]描述可以使用短语“在一个实施例中”或者“在实施例中”,其各自可以是指一个或多个相同或不同的实施例。此外,如关于本公开的实施例所使用的,术语“包括”、“包含”、“具有”等是同义的。
[0011]如本文所使用的,术语“模块”可以是指执行一个或多个软件或固件程序、组合逻辑电路和/或提供所描述功能性的其他适当组件的专用集成电路(ASIC)、电子电路、处理器(共享、专用或分组)和/或存储器(共享、专用或分组),作为其的部分,或者包括其。如本文使用的,“计算机实现的方法”可以是指由一个或多个处理器、具有一个或多个处理器的计算机系统、诸如智能电话之类的移动设备(其可以包括一个或多个处理器)、平板计算机、膝上型计算机、机顶盒、游戏控制台等执行的任何方法。
[0012]图1图示了依照各种实施例的存储器系统100。存储器系统100可以包括存储器控制器102、存储器104和纠错指针(ECP)块106。存储器104可以实现各种形式的易失性或非易失性存储器,包括但不限于NAND(闪速)存储器、铁磁随机存取存储器(FeTRAM)、基于纳米线的非易失性存储器、诸如相变存储器(PCM)之类的三维(3D)交叉点存储器、并入忆阻器技术的存储器、磁阻随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM等。ECP块106可以与纠错码(ECC)—起使用以纠正在存储于存储器104中的数据中检测到的硬错误和软错误二者。ECP块106可以包括多个ECP 108。在其他实施例中,ECP块106可以包括在存储器104中。在再其他实施例中,ECP块106可以包括在存储器控制器102中。
[0013]存储器控制器102可以控制向存储器104中写入数据和/或从存储器104读取数据。例如,存储器控制器102可以包括用于向存储器104写入数据的写入模块110以及用于从存储器104读取数据的读取模块112。存储器控制器102可以与一个或多个其他组件(例如处理器)对接以允许一个或多个其他组件向存储器104中写入数据和/或从存储器104读取数据。
[0014]在实施例中,存储器控制器102可以与存储器104包括在相同封装中。
[0015]在各种实施例中,存储在存储器104中的数据可以布置在多个码字中。读取模块112可以经由具有多个总线线路的总线114而耦合到存储器104。读取模块112还可以包括ECC模块116以在从存储器104读取的数据上执行ECC过程。
[0016]在实施例中,存储器控制器102可以并入有本公开的教导以使用ECP106来处置由于从存储器104读取数据所遭遇的硬错误,在下文更全面地描述。
[0017]图2图示了依照各种实施例的可以由存储器控制器102执行的读取过程200。
[0018]在过程200的块202处,存储器控制器102的读取模块112可以试图读取存储在存储器104中的码字(例如经由总线114)。码字可以包括一系列数据比特,例如8、16、32或64比特,其中每一比特为逻辑0或逻辑1。在过程200的块204处,存储器控制器102的ECC模块116可以在码字上执行ECC过程以解码和恢复数据。存储器控制器102可以在将码字写入到存储器104时生成与码字相关联的ECC。在一些实施例中,ECC可以存储在存储器104中。在由ECC模块116执行的ECC过程中,ECC模块116可以使用由存储器控制器102生成的ECC来确定从存储器104读取的码字是否与写入到存储器104的码字相同。如果从存储器104读取的码字包括一个或多个错误(例如硬错误和/或软错误),则ECC模块116可以使用与码字相关联的ECC来标识和纠正错误以恢复码字。
[0019]如果ECC过程在块204处成功(例如如通过ECC校验的那样准确恢复码字),则在过程200的块206处,读取模块112可以确定码字中的硬错误的数目。例如,读取模块112可以存录与存储器104的存储器单元相关联的错误历史。如果相同存储器单元连续k次(其中k为正整数)具有错误(例如相同类型的错误,诸如存储逻辑1而非逻辑0),则存储器单元被标记为具有硬错误。
[0020]在各种实施例中,读取模块112可以比较硬错误的数目与阈值。响应于确定码字中的硬错误的数目超过阈值,读取模块108可以创建和/或更新与硬错误相关联的ECP信息。读取模块108可以将ECP信息存储在相应ECP 108中。ECP信息可以例如包括码字的标识符(例如标识码字在存储器104中存储于哪里的逻辑块地址(LBA)),并且可以指示包括硬错误的码字的比特并且指示那些比特的正确值。在一些实施例中,ECP 108可以布置在ECP块106中的二进制树中。二进制树可以允许读取模块112扫描ECP块106并且快速寻找用于期望的码字的ECP信息(例如基于LBA)。[0021 ]在一些实施例中,阈值可以小于由ECC过程可纠正的硬错误的数目。例如在一些实施例中,阈值可以是t-m,其中t是由ECC过程可纠正的硬错误的数目,并且m是正整数(例如2)。在一些实施例中,m的值可以是可编程的(例如经由固件)。
[0022]在一些实施例中,阈值可以大于1。因而,可以不针对存储器104中的所有硬错误存储ECP信息,由此减少ECP开销。在一些实施例中,ECP 108可以按照需要动态地指派给存储在存储器104中的码字。
[0023]然而如果ECC过程在块204处失败,则在过程200的块208处,读取模块112可以确定是否存在针对码字的ECP信息(例如如在块206的之前操作期间所创建的)。如果ECP信息存在,则读取模块112可以使用ECP信息来解码和恢复码字。例如,具有硬错误的码字的比特可以替换为如由ECP信息所提供的正确比特。ECP信息可以指示包括硬错误的码字的比特并且指示那些比特的正确值。
[0024]如上文讨论的,读取模块112可以响应于确定ECC过程在块204处失败而使用ECP信息来解码和恢复码字。如果ECC过程在块204处成功,则可以不使用ECP信息。因而,相比于使用用于从存储器读取的所有数据和/或码字的ECP的读取过程,过程200可以提供减少的时延。
[0025]附加地或可替换地,ECP108可以允许使用较低强度ECC代码(例如BCH代码)。较低强度ECC代码可以减少指定用于ECC的存储器开销。由于ECP信息可以仅在码字中的硬错误的数目超过阈值的情况下存储,所以针对ECP块106所要求的开销可以低于ECC纠正相同数量的错误所要求的开销。
[0026]在过程200的块210处,ECC模块116可以在使用ECP信息所解码(例如在块208处)的码字上执行ECC过程。ECC过程在块210处可以类似于在上述块204处执行的ECC过程。如果ECC过程在块210处成功(例如如由ECC所校验的那样正确地恢复码字),则在块206处,读取模块112可以确定码字中的硬错误的数目并且更新和/或创建用于码
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1