CN113793635B - 存储装置和存储设备 - Google Patents

存储装置和存储设备 Download PDF

Info

Publication number
CN113793635B
CN113793635B CN202111313315.8A CN202111313315A CN113793635B CN 113793635 B CN113793635 B CN 113793635B CN 202111313315 A CN202111313315 A CN 202111313315A CN 113793635 B CN113793635 B CN 113793635B
Authority
CN
China
Prior art keywords
decoder
soft
hard
decoding
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
Application number
CN202111313315.8A
Other languages
English (en)
Other versions
CN113793635A (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.)
Alibaba China Co Ltd
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba China Co Ltd
Alibaba Cloud Computing Ltd
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 Alibaba China Co Ltd, Alibaba Cloud Computing Ltd filed Critical Alibaba China Co Ltd
Priority to CN202111313315.8A priority Critical patent/CN113793635B/zh
Publication of CN113793635A publication Critical patent/CN113793635A/zh
Application granted granted Critical
Publication of CN113793635B publication Critical patent/CN113793635B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本说明书一个或多个实施例提供一种存储装置和存储设备,该存储装置包括:非易失性存储器,及适配于所述非易失性存储器的***电路;解码器,所述解码器与所述***电路电连接,用于通过所述***电路从所述非易失性存储器中读取目标数据,并对所述目标数据进行纠错解码。

Description

存储装置和存储设备
技术领域
本说明书一个或多个实施例涉及存储技术领域,尤其涉及一种存储装置和存储设备。
背景技术
随着存储技术的飞速发展,越来越多的大容量高密度存储设备被设计制造出来。存储设备内部一般包括两个部分,分配数据传输并进行数据中转的控制器以及存储数据的存储装置,该控制器与存储装置之间通过预设的交互接口进行数据传输。控制器通常设有ECC(Error Correction Coding,误差校正编码)模块,用于对从存储装置中读取的数据进行误差检测及校正。
在相关技术中,随着存储装置的容量和密度的增大,对ECC模块提出了更高的性能要求,例如需要提供强大的纠错能力,以及需要有足够的吞吐量来匹配数据流等,造成ECC模块的面积和功耗越来越大,不仅提高了控制器的设计成本,还可能对交互接口造成阻塞。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种存储装置和存储设备。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种存储装置,包括:
非易失性存储器,及适配于所述非易失性存储器的***电路;
解码器,所述解码器与所述***电路电连接,用于通过所述***电路从所述非易失性存储器中读取目标数据,并对所述目标数据进行纠错解码。
根据本说明书一个或多个实施例的第二方面,提出了一种存储设备,包括:
控制器,以及如第一方面所述的存储装置。
在本说明书所提供的技术方案中,将原本位于控制器中的解码器在存储装置中实现,可以减少对控制器的空间占用,不仅能够优化控制器的模块布局,而且可以降低控制器的设计成本和功率消耗。同时,由于解码器可以直接与存储装置进行数据交互,而无需占用控制器与存储装置之间的交互接口,不仅可以提高解码器的数据读取效率,还有助于提升控制器与存储装置之间的数据吞吐量。
附图说明
图1是一示例性实施例提供的一种存储装置示意图;
图2是一示例性实施例的一种控制器及存储装置内部模块布局方式示意图;
图3是一示例性实施例的另一种控制器及存储装置内部模块布局方式示意图;
图4是一示例性实施例的一种存储装置的集成方式示意图;
图5是一示例性实施例的一种***电路结构示意图;
图6是一示例性实施例的另一种***电路结构示意图;
图7是一示例性实施例的一种硬解码器结构示意图;
图8是一示例性实施例的一种校验矩阵对应的Tanner图;
图9是一示例性实施例的一种软信息传递示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
现今应用比较广泛的存储装置主要包括以铁磁性材料为存储介质的机械硬盘和以FLASH(闪存)作为存储介质的SSD(Solid State Disk,固态硬盘)。在SSD中,以NAND闪存为例,由于读写过程的干扰、电荷泄露等误码机制,会降低NAND闪存的可靠性。另外,NAND闪存可能存在缺陷(例如,有缺陷的存储单元等),并且在NAND闪存的使用期间,由于闪存颗粒的损耗,还可能出现更多的缺陷,这些缺陷的存在可能导致存储的数据出现错误。同样,在机械硬盘中,机械结构的磨损、灰尘进入机械硬盘中或者负责从存储介质中读取数据的磁头的故障等因素也会导致数据错误。因此需要通过误差检测以及校正技术,来保证数据复制的可靠性。通常的误差检测及校正需要进行适当的数据编码与数据解码。使用特定的ECC策略通过ECC编码模块将输入数据进行编码,并通过与ECC编码模块相对应的ECC解码模块将已经编码的数据进行纠错解码,最后得到经过校正的数据。
ECC解码模块一般由硬解码器(hard decoder)和软解码器(soft decoder)组成,硬解码器和软解码器可以单独进行ECC解码,也可以相互配合进行ECC解码。硬解码器和软解码器可以统称为解码器(ECC decoder)。以SSD为例,相关技术中的ECC解码模块集成于SSD的控制器中,导致了控制器的设计复杂、成本增加。同时,无论是硬解码器还是软解码器,在需要从作为存储装置的NAND闪存等非易失性存储器中读取待解码数据时,都需要经过SSD控制器与存储装置之间的交互接口,这对于交互接口来说,可能会造成数据的拥塞,降低了数据的传输速率。
为了解决上述问题,本说明书提供了一种将原本在控制器中实现的解码器转移到存储装置中实现的技术方案。
在本说明书的一示例性实施例中,提出一种如图1所示的存储装置11。该装置包括非易失性存储器(Non-volatile memory)110、与该非易失性存储器适配的***电路(Peripheral circuit)120、以及通过***电路120从非易失性存储器中读取目标数据进行纠错解码的解码器130。
在本实施例中,解码器130直接与***电路120电连接,通过该***电路120从非易失性存储器110中读取所需的待解码数据,即为目标数据。因此,解码器130在进行解码时将不再需要通过SSD的控制器与存储装置11之间的交互接口来读取存储于非易失性存储器110中的待解码数据,而是直接通过***电路120读取。通过这种数据传输方式,交互接口只需将经过解码器130解码的数据传输至控制器进行后续处理,缓解了交互接口的数据拥塞。并且,如图2所示,通过将解码器130从控制器21中转移至存储装置11中实现,释放了控制器21中解码器130占据的较大面积,因而有助于降低控制器21的设计成本以及功率消耗。当本实施例基于SSD实现时,所述非易失性存储器110可以为闪存阵列。
在本申请一示例性实施例中,如图3所示,考虑到非易失性存储器的面积限制,也可以将位于控制器21中的解码器130的一部分——硬解码器1301,转移至存储装置11中实现,而保留控制器21中的软解码器1302。由于解码器130中的硬解码器1301和软解码器1302虽然协同工作,但布局位置可以相对独立,因此在该实施例中,解码器130由位于存储装置中的硬解码器1301和位于控制器21中的软解码器1302构成,两者之间通过控制器21和存储装置11之间的交互接口进行数据传输。通过将解码器130中的硬解码器从控制器21中转移至存储装置11中实现,控制器21中仅保留了软解码器1302,位于控制器21内部的解码器130的布局可以由如图3左侧调整为如图3右侧的形式,其中虚线部分的硬解码器1301从控制器21中转移至存储装置11中。在控制器中释放的面积可以用于实现SSD控制器的其他功能,同样也可以减少解码器130在控制器21中的占用面积,降低控制器21的设计成本以及功率消耗。
同样地,在本申请另一示例性实施例中,也可以仅将软解码器转移至存储装置中实现,而将硬解码器保留在控制器中,同样可以利用存储装置提供的空间,减少解码器对控制器中空间的占用。
由于ECC解码是将数据格式转换至码域之后进行处理,因此,无论是固态硬盘还是机械硬盘,乃至其他种类的非易失性存储器,对于其中存储的数据进行误差检测及校正的原理是相同的,均可以由相同机制的解码器完成,因此,与图1类似的存储装置也可以应用在机械硬盘或者其他种类的存储设备中。
在本说明书的一示例性实施例中,非易失性存储器可以为3D闪存(3D flash),例如3D NAND闪存。3D闪存将闪存阵列的排列方式从原本的二维空间排列改为纵向多层堆叠,能够有效提升单位面积所能容纳的数据量。由于3D闪存的高密度,在集成了与3D闪存适配的***电路后,3D闪存仍然能够提供足够的表面空间,以容纳解码器集成于其表面上。如图4所示的集成方式中,可以将解码器130集垂直集成于3D闪存阵列410的顶部的一个区域中,而将***电路120集成于3D闪存阵列410的另一个区域中。当3D闪存固定在电路板上时,可将其与电路板焊接的表面称为底面,而与底面平行的另一表面提供了较大的表面积可以用于集成***电路和解码器,可将此表面称为顶面。这种集成方式巧妙利用了3D闪存阵列顶部的空间,由于此时解码器130位于3D闪存阵列410的顶面,因此可以将其称为片上解码器(On-chip ECC decoder)。
当然,非易失性存储器顶部的空间也可以仅用来集成硬解码器或者软解码器,而将ECC解码模块的剩余部分保留在控制器中实现,这种做法亦可以部分减少解码器在控制器中占据的空间,疏解交互接口的数据传输压力,降低控制器的设计成本。甚至可以将一组或几组软解码器和硬解码器在存储装置中实现,对来自存储装置的待解码数据即目标数据进行前序的解码,然后将前序解码结果发送至控制器中的后续解码模块中,该模块也可以由数个硬解码器配合软解码器组成,通过后续解码模块在前序解码结果的基础上进行后续解码步骤,完成对目标数据的解码。
在本说明书的一示例性实施例中,所述解码器130与所述***电路120的电连接可以采用如图5的方式实现的。图5为集成于闪存阵列506上的***电路与解码器130,其中***电路可以包括:用于输入输出数据信号的Toggle/ONFI接口(Toggle/ONFI interface)501、用于选择存储单元的地址解码器(Address decoder)502以及用于缓存读取或者写入的数据的页缓冲器(Page buffer)503。所述闪存阵列506通过页缓冲器503与解码器130电连接。解码器130从闪存阵列506中读取数据时,首先由页缓冲器503对来自闪存阵列506中的目标数据进行缓存,然后由解码器130从页缓冲器503中读取缓存的目标数据以进行解码。
在本说明书的另一示例性实施例中,所述解码器130与所述***电路120的电连接可以采用如图6所示的方式实现。图6为集成于闪存阵列506上的前述***电路120与解码器130,与图5中的实现方式的区别在于,所述***电路120还包括扩展缓冲器(Enlargedbuffer)604,扩展缓冲器604与页缓冲器503电连接,通过页缓冲器503缓存从闪存阵列506中读取的目标数据,此时,待解码的目标数据缓存在扩展缓冲器604中,当有数据从闪存阵列506中解码时,扩展缓冲器604相当于一个专门缓存待解码数据的特殊区域,此时,扩展缓冲器604的存在可以提高解码效率。当没有目标数据从闪存阵列506中解码时,为了避免扩展缓冲器604闲置,此时扩展缓冲器604可以作为页缓冲器503的附加缓冲区域,相当于将页缓冲器503放大,以实现写入性能的加速。
本说明书中的ECC硬解码器可以采用相关技术中任意的硬解码器技术,本说明书并不对此进行限制。为了便于理解,下面结合图7介绍一种ECC硬解码器的具体实现方式。如图7所示,硬解码器可以包括:读取缓冲器(Read buffer)701、代码奇偶校验矩阵(Codeparity check matrix)702、校验子计算器(Syndrome calculation)703、校正选择器(Correction selection)704。
其中,读取缓冲器701通过***电路读取存储在非易失性存储器中的待解码数据,待解码数据被缓存于读取缓冲器701中以供解码。此外,读取缓冲器701与控制器可通过如前所述的交互接口进行数据交互。代码奇偶校验矩阵702是一种非易失性存储器,存储有用于解码的代码信息。校验子计算器703基于代码奇偶校验矩阵702中存储的代码信息对从读取缓冲器701中读取的待解码数据执行运算以生成与待解码数据相关联的校验子。校正选择器704,根据校验子计算器703生成的校验子选择性地校正待解码数据的错误位,生成经过校正的硬解码结果,并且生成与该硬解码结果相匹配的标识信息,该标识信息可以包括硬解码的尝试次数、纠错解码是否成功等信息。
ECC解码模块中还可以包括加扰器和解扰器。其中,加扰器的作用是通过对数据信号添加扰码,抑制信号中的长连“0”或长连“1”,便于信号的提取,解扰器的作用是将加扰后的数据还原为原始的未加扰的数据。ECC解码模块中的加扰器可以部署在控制器中,当控制器将数据写入存储装置时由加扰器对数据进行加扰处理。在本申请说明书的一示例性实施例中,当解码器从控制器中转为在存储装置中实现时,加扰器和解扰器均跟随解码器转移至存储装置中实现。在本申请说明书的另一示例性实施例中,当将硬解码器由控制器转移到存储装置中实现时,解扰器同样可以由控制器转移到存储装置中,而此时,加扰器则与软解码器相同,被保留在控制器中。其中,解扰器可以在硬解码器中实现。硬解码器在对数据进行硬解码的过程中,首先从存储装置中读取加扰后的数据,由硬解码器中的解扰器还原为上述的待解码数据,然后由硬解码器对该待解码数据进行硬解码。
待解码数据经由集成于存储装置中的硬解码器进行解码后,考虑到硬解码器的性能存在局限,可能会出现解码失败的情况。为了解决上述问题,在纠错解码失败的情况下,可以进一步由软解码器进行解码,以提升解码成功的概率。硬解码器与软解码器之间的解码过程可以相互独立。而为了提升解码的效率和成功概率,在硬解码器确认自身解码失败的情况下,可以通过硬解码器生成软解码器所需的软信息(soft information),并将所述软信息发送至软解码器,以由所述软解码器通过所述软信息对经所述硬解码器处理后的目标数据继续进行纠错解码。在本说明书的一示例性实施例中,当将硬解码器在存储装置中实现,而保留控制器中的软解码器时,上述由硬解码器生成的软信息需要经由存储装置和控制器之间的交互接口进行传输,从而发送至软解码器。在本说明书一示例性实施例中,若硬解码器纠错解码失败,则校正选择器704生成的标识信息还可以包括软解码器所需的软信息。
下面以使用LDPC码作为编码策略的ECC解码器为例,介绍一种通过硬解码器生成软解码器所需的软信息的具体实施方式。常用的ECC编码策略有LDPC(Low Density ParityCheck,低密度奇偶校验)码、BCH码、BTC(Block Turbo Code,分组涡轮码)、CTC(Convolutional Turbo Code,卷积涡轮码)等。根据校正需求的不同,可以配置合适的ECC编码策略,并设计适当的ECC编解码器。其中,LDPC码以优秀的性能成为目前SSD控制器最先进的编码策略,其性能接近香农极限(信道的香农极限或称香农容量指的是在会随机发生误码的信道上进行无差错传输的最大传输速率)。在如图3左侧所示的ECC解码模块布局的硬件中,当采用LDPC编码策略时,相关技术中需要由软解码器通过交互接口不断地对存储装置进行多次的读操作,才能采样得到所需细粒度的电压值,以生成软解码所需的软信息。而在本说明书的实施例中,当软信息由硬解码器生成时,硬解码器可以通过交互接口将包含硬解码结果的软信息一次性传输至软解码器,软解码器通过硬解码器生成的软信息在硬解码结果的基础上进一步进行纠错解码,此时软解码器依靠硬解码器生成的软信息即可完成解码,软解码器无需对存储装置进行采样,因此避免了软解码器对存储装置的多次读取,缓解了交互接口的数据拥塞。
假设上述实施例应用于图2右侧所示的ECC解码模块中时,由于软解码器本身位于存储装置中,因此,软解码器、硬解码器、非易失性存储器之间的传输数据不需要通过存储装置与控制器之间的交互接口,只需要把最终的解码结果通过该交互接口发送至控制器进行下一步的操作。此种方案同样可以缓解交互接口的数据拥塞。
LDPC码的解码算法分为硬判决和软判决两种,其中硬判决算法主要为BF(BitFlipping)算法,其原理是:当校验方程不成立时,说明此时必定有比特位发生了错误,而所有可能发生错误的比特中不满足校验方程个数最多的比特发生错误的概率最大。在每次迭代时均翻转发生错误概率最大的比特并用更新之后的码字重新进行解码。硬判决算法易于通过硬件实现。
软判决算法主要有BP(Belief Propagation,置信度)算法,以及一系列在BP算法上进行改进算法,例如LLR-BP(Logarithm Likelihood Ratio-Belief Propagation,对数似然比-置信度)算法。LLR-BP算法是BP算法的一种简化算法,通过对数似然比来降低硬件资源和计算时间。
例如,如公式(1)所示为一用于校正的校验矩阵H,则其对应的Tanner图连接信息如图8所示。在Tanner图中,其变量节点与LDPC码校验矩阵H的列相对应,其校验节点与LDPC码校验矩阵H中的行相对应,LDPC码校验矩阵H的非零元素与Tanner图中的连线相对应。在校验矩阵H中,列重是指每列非零元素的个数,行重是指每行非零元素的个数,规则LDPC码是所有列重和行重全部相等的码;如果不相等,则将其称之为非规则LDPC码。在图8中,校验节点有5个,分别用C1~C5表示,变量节点有10个,分别用B1~B10表示。
Figure 478266DEST_PATH_IMAGE001
(1)
假设编码后的向量为
Figure 761349DEST_PATH_IMAGE002
,然后经信道传输,解码器接收到信道传送 过来的向量为
Figure 410636DEST_PATH_IMAGE003
,所有变量节点B i 接收到对应的接收值y i 。则向量C和校验 矩阵H必需满足线性方程组
Figure 901923DEST_PATH_IMAGE004
。接收到的向量Y可能包含错误,导致
Figure 509622DEST_PATH_IMAGE005
无论是BP算法还是其改进LLR-BP算法,其迭代的过程均可以描述为:
第一次迭代:每个变量节点给所有与之相邻的校验节点传送一个可靠性消息,这个可靠性消息就是信道传送过来的值;每个校验节点接收到变量节点传送过来的可靠性消息之后进行处理,然后返回一个新的可靠性信息给与之相邻的变量节点,这样就完成了第一次迭代;此时可以进行判决,如果满足校验方程,则不需要再迭代,直接输出判决结果,否则进行第二次迭代。
第二次迭代:每个变量节点处理第一次迭代完成时校验节点传送过来的可靠性消息,处理完成后新的消息发送给校验节点,同理,校验节点处理完后返回给变量节点,这样就完成了第二次迭代。完成后同样进行判决,如果满足校验方程则结束译码,否则如此反复多次迭代,每次都进行判决,直到达到设定的最大尝试次数,译码失败。在每次迭代过程中,无论是变量节点传送给校验节点的信息或者校验节点传送给变量节点的信息,都不应该包括前次迭代中接收方发送给发送方的信息,这样是为了保证发送的信息与接收节点已得到的信息相互对立。
基于上述迭代过程,BP解码算法的基本步骤如下:
首先,计算经信道传输后各变量节点的初始概率p i (1) 和p i (0),然后对每个变量节点求传递给与其相邻的校验节点的置信度信息,如下述公式(2)所示:
Figure 545579DEST_PATH_IMAGE006
(2)
其中,上标表示迭代次数。
第二步,处理校验节点,求出第l次迭代过程中校验节点i传递给与之相邻的变量节点j的置信度信息,如下述公式(3)所示:
Figure 264137DEST_PATH_IMAGE007
(3)
第三步,处理变量节点,求出第l次迭代过程中变量节点j传递给与之相邻的校验节点i的置信度信息,如下述公式(4)所示:
Figure 718252DEST_PATH_IMAGE008
(4)
其中K ij 是校正因子,使得每次计算出的
Figure 496852DEST_PATH_IMAGE009
第四步,根据校验节点反馈的信息,重新计算各变量节点的置信度信息,如下述公式(5)所示:
Figure 833155DEST_PATH_IMAGE010
(5)
其中K j 也是校正因子,使得每次计算出的
Figure 117855DEST_PATH_IMAGE011
第五步,解码判决:如果
Figure 426476DEST_PATH_IMAGE012
,那么判决这一点的码值为1;否则,判断 这一点的码值。
和BP算法相比LLR-BP解码算法中传递的可靠性信息不再是概率信息,而是似然概率信息,LLR-BP解码算法的基本解码步骤如下:
首先,采取初始化手段,变量节点接收信道传递信息,其中y n 为接收数据,σ由信道特性给定,如下述公式(6)所示。
Figure 375978DEST_PATH_IMAGE013
(6)
第二步,在水平方向上对校验节点信息进行更新,即找到H矩阵的每一行中不为0的点,将其对应的信息进行运算,运算公式可参考下述的公式(7):
Figure 137260DEST_PATH_IMAGE014
(7)
第三步,在垂直方向上,对变量节点信息进行更新,即找到H矩阵的每一列中不为0的点,将其对应的信息进行运算,运算公式可参考下述的公式(8):
Figure 446888DEST_PATH_IMAGE015
(8)
第四步,更新后验概率,即将接收信号的每一个值进行更新,用于后续的判决,计算公式可参考下述的公式(9):
Figure 610016DEST_PATH_IMAGE016
(9)
第五步,进行解码判决,根据更新后的对数似然比信息,对接收信号的每一位进行判决,若结果大于0,则判为0;否则判为1。
BP解码算法和LLR-BP解码算法结束迭代的条件均为:解码后生成的向量X满足
Figure 730419DEST_PATH_IMAGE017
;或者,已经达到了最大尝试次数,在满足两种条件的情况下,把判决的结果X输 出,如果不满足以上两种条件,则继续步骤二、三、四。
假设编码后的原始数据为
Figure 41314DEST_PATH_IMAGE018
,该原始数据满足
Figure 639786DEST_PATH_IMAGE004
。其中校 验矩阵H即为公式(1)所述矩阵,其对应的Tanner图如图8所示,该校验矩阵H的信息保存在 如图7所示的硬解码器的代码奇偶校验矩阵702中。原始数据向量C经传输后出现错误,包含 错误的待解码数据设为
Figure 408153DEST_PATH_IMAGE019
。首先利用如图7所述的硬解码器对该待解码向 量进行硬解码。校正选择器704根据校验矩阵H与待解码向量Y 1生成校验子。根据该校验子 中未满足Tanner图连接信息的检查节点以及变量节点与检查节点之间的关系生成置信度 信息,根据置信度对变量节点进行排序。选择置信度最低(即错误的可能性最高)的变量节 点进行翻转,并翻转读取缓冲器中与该变量节点对应的待解码数据中的相应位。这形成了 硬解码的一次尝试。修改后的待解码数据向量用于计算新的校验子,进一步分析该校验子 以选择要翻转的位,重复上述步骤直至生成的向量满足
Figure 761774DEST_PATH_IMAGE020
硬解码器解码成功;或 者,迭代达到最大尝试次数,硬解码器解码失败。
假设经m次尝试,生成的向量为
Figure 497649DEST_PATH_IMAGE021
,且
Figure 899811DEST_PATH_IMAGE022
,其中m为硬解 码器的最大尝试次数,此时,判断硬解码器纠错解码失败。由于硬解码器无法完成对待解码 数据的完全解码,需要软解码器对上述结果进一步解码,因此硬解码器中的校正选择器704 需要生成包含软解码器所需的软信息的标识信息。
在硬解码器纠错解码失败的基础上,在一示例性实施例中,假设软解码器的解码 算法为BP算法,则软解码器解码时所需的软信息为置信度信息。由于硬解码器解码失败,校 正选择器704生成的置信度信息假设为
Figure 771952DEST_PATH_IMAGE023
,其中上标(0)表示软 解码器的迭代次数为0。硬解码器将该置信度信息发送给软解码器。根据上文中关于BP解码 算法步骤的描述,由于该初始置信度信息由硬解码器提供,软解码器可以无需读取位于存 储装置中的数据信息,所以在BP解码算法的第一步,初始化步骤中,将上述由硬解码器生成 的置信度信息
Figure 749004DEST_PATH_IMAGE024
,代替公式2中的计算结果,作为软解码步骤中的初始概率,并进行后续 的解码步骤。例如,假设原始数据
Figure 768913DEST_PATH_IMAGE025
,由硬解码器生成的置信度信息
Figure 709187DEST_PATH_IMAGE023
,将该置信度信息带入到初始概率中,经步骤二、三、四,软解 码器经一次迭代后各变量节点的置信度信息在
Figure 701414DEST_PATH_IMAGE026
的基础上,更新为
Figure 396838DEST_PATH_IMAGE027
,对更新后的置信度信息进行解码判决,如果某一位的置 信度信息概率值
Figure 841725DEST_PATH_IMAGE012
,那么判决这一点的码值为1;否则,这一点的码值为0。假 设更新后的置信度信息为
Figure 602002DEST_PATH_IMAGE028
,对此 概率信息进行解码判决,得到如下的第一次迭代解码结果
Figure 448735DEST_PATH_IMAGE029
。由 于
Figure 252743DEST_PATH_IMAGE030
,则表明此次迭代没有解码成功,由于并没有达到软解码的最大尝试次数, 因此,需要重复BP解码步骤的二至五步,直至解码结果满足
Figure 247244DEST_PATH_IMAGE031
,或者迭代次数超 过最大尝试次数,软解码失败。
在另一示例性实施例中,软解码器的解码算法为LLR-BP算法,软解码器解码所需 的软信息为对数似然比信息。由于硬解码器解码失败,硬解码器中的校正选择器704需要生 成软解码器所需的软信息。本示例中软解码器解码算法为LLR-BP算法,所以校正选择器704 需要生成的软信息为对数似然比信息,假设该对数似然比信息为
Figure 794900DEST_PATH_IMAGE032
。 硬解码器将该对数似然比信息发送给软解码器。与采用BP解码算法的软解码器相似,将根 据公式6计算的初始化信息用由硬解码器生成的对数似然比信息
Figure 745408DEST_PATH_IMAGE033
代替,并继续进行后 续的步骤。在
Figure 517054DEST_PATH_IMAGE033
的基础上进行迭代。其迭代过程于采用BP解码算法的软解码的迭代过程 相类似。
例如,假设原始数据
Figure 202114DEST_PATH_IMAGE025
,软解码器迭代的初始对数似然比信 息为由硬解码生成的
Figure 553461DEST_PATH_IMAGE034
,软解码器在
Figure 109207DEST_PATH_IMAGE035
的基础上,重复LLR-BP解码算 法的步骤二、三、四,经x次迭代后,各变量节点的对数似然比信息更新为
Figure 271329DEST_PATH_IMAGE036
,对上述的对数似然比信息进行解码判决,时发现该对数似然 比信息对应的解码结果
Figure 974843DEST_PATH_IMAGE037
满足
Figure 864301DEST_PATH_IMAGE038
,则此时判断软解 码成功,软解码结果即为向量
Figure 540133DEST_PATH_IMAGE039
例如,经x次迭代后,各变量节点的对数似然比信息更新为
Figure 856845DEST_PATH_IMAGE040
,对上述对数似然比信息 进行根据判决解码步骤,若第i位的对数似然比
Figure 47655DEST_PATH_IMAGE041
,则该位判为0;否则判为1,得到如 下的第x次迭代解码结果
Figure 990072DEST_PATH_IMAGE042
,此时满足
Figure 677668DEST_PATH_IMAGE038
,所以软解码成 功,软解码结果即为
Figure 227598DEST_PATH_IMAGE042
上述两种示例性实施例均实现了由硬解码器生成软解码器解码所需的软信息。当硬解码器纠错解码失败时,硬解码器中的校正选择器704不仅实现硬解码器解码过程中的选择校验功能,还实现生成软解码器所需的软信息的功能。在本说明书一示例性实施例中,当硬解码器从控制器中转移至存储装置中实现,而软解码器保留在控制器中时,所述软信息可以包含在标识信息内并通过控制器上的交互接口发送至软解码器,由软解码器进行基于硬解码结果进行进一步的软解码。
控制器中还可以包括CRC(Cyclic Redundancy Check,循环冗余校验)***,CRC***可以用于实现CRC校验。CRC校验是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。例如,CRC***可以利用除法及余数的原理来实现错误侦测。软解码器在解码完成后可以将经过解码的码字发送至CRC***进行校验,以检测经软解码器解码后的数据是否仍旧存在错误。
在本说明书的一种具体实施方式中,硬解码器可以通过状态机来实现对自身所处状态的管理,并据此执行对应的操作。例如,当状态机处于第一状态时,表明需要从存储装置中读取数据并解码,则硬解码器读取页缓冲器中缓存的数据,并开始解码。再例如,当状态机处于第二状态时,表明硬解码器解码成功,则硬解码器停止解码,并将纠错解码成功的解码结果发送至后续的处理装置。当状态机处于第三状态时,表明硬解码器解码失败,则硬解码器停止解码并生成软解码器所需的软信息,将包含硬解码结果的软信息发送至软解码器,进行进一步的解码。
图9显示了说明书的一示例性实施例的一种从存储装置中的硬解码器1301到控制器中的软解码器1302的软信息的传递过程。由于软信息已经由硬解码器1301生成,因此不需要由软解码器1302通过软信息生成模块921来生成软信息,可以节省软信息生成模块921为了获取软信息对存储装置的非易失性存储器多次读取采样的时间。在一些情况下,软解码器1302甚至可以不包含软信息生成模块921,从而节省了软解码器1302的设计开销,减小软解码器1302在控制器21中占用的空间。通过交互接口,硬解码器1301可将生成的包含硬解码结果的软信息发送到软解码器1302,在软解码器1302中通过软解码器的迭代解码进一步减少错误。硬解码器1301的存在可以在一定程度上减轻软解码器1302的负担,从而加快整体解码速度。
存储装置可以集成多个解码器,这些解码器可以并行工作。例如在3D闪存的顶部,可以同时集成多个解码器。与仅集成一个解码器相比,在总数据量不变的情况下,并列集成多个解码器可以将原有的单个解码器的串行的解码任务转变为多个解码器并行处理,使得每个解码器分担的解码任务更少,多个解码器同时解码可以节省解码消耗的时间,提高解码效率。
此外,如果将硬解码器转移至存储装置中实现,软解码器保留在控制器中,则也可以在存储装置中增加硬解码器的数量,硬解码器也为并行工作。例如,在3D闪存顶部集成多个硬解码器,此时,由于并行工作,每个硬解码器分担的解码任务更少,因此在增加硬解码器数量的基础上还可以调高每个硬解码器的最大尝试次数,从而进行更多轮的迭代,相当于分配了比以前更多的时间来解码每个读取结果,从而提高纠错解码能力,在硬解码器解码能力提升的基础上,待解码数据由硬解码器解码成功的概率增加,疏解了软解码器的解码压力。
在本说明书一个或多个实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (9)

1.一种存储装置,其特征在于,包括:
非易失性存储器,及适配于所述非易失性存储器的***电路;
解码器,所述解码器与所述***电路电连接,用于通过所述***电路从所述非易失性存储器中读取目标数据,并对所述目标数据进行纠错解码;
在所述解码器为硬解码器的情况下,所述存储装置与其所属的存储设备中的控制器之间设有交互接口,所述控制器中包含软解码器;所述硬解码器还用于:
在纠错解码失败的情况下,生成所述软解码器所需的软信息,并将所述软信息通过所述交互接口发送至所述软解码器,以由所述软解码器通过所述软信息对原始或经所述硬解码器处理后的所述目标数据进行纠错解码。
2.如权利要求1所述的装置,其特征在于,所述***电路包括:
页缓冲器,所述页缓冲器与所述非易失性存储器电连接,用于对从所述非易失性存储器中读取的数据进行缓存;
其中,所述解码器电连接至所述页缓冲器,并从所述页缓冲器中读取缓存的所述目标数据。
3.如权利要求1所述的装置,其特征在于,所述***电路包括:
页缓冲器,所述页缓冲器与所述非易失性存储器电连接,用于对从非易失性存储器中读取的待解码数据进行缓存;
扩展缓冲器,所述扩展缓冲器与所述页缓冲器电连接,用于对从所述页缓冲器中读取的数据进行缓存;
其中,所述解码器电连接至所述扩展缓冲器,并从所述扩展缓冲器中读取缓存的所述目标数据。
4.如权利要求1所述的装置,其特征在于,所述解码器为硬解码器和/或软解码器。
5.如权利要求4所述的装置,其特征在于,所述硬解码器内置有状态机,所述状态机根据所述硬解码器的已执行操作管理所述硬解码器的状态信息,所述状态信息用于指示所述硬解码器的后续执行操作。
6.如权利要求4所述的装置,其特征在于,所述硬解码器包括:
解扰模块,所述解扰模块用于对所述目标数据进行解扰;
硬解码模块,所述硬解码模块用于对解扰后的所述目标数据进行纠错解码。
7.如权利要求1所述的装置,其特征在于,所述***电路垂直集成于所述非易失性存储器顶面的第一区域,所述解码器垂直集成于所述非易失性存储器顶面的第二区域。
8.如权利要求1所述的装置,其特征在于,所述非易失性存储器为3D闪存。
9.一种存储设备,其特征在于,包括:
控制器,以及如权利要求1-8中任一项所述的存储装置。
CN202111313315.8A 2021-11-08 2021-11-08 存储装置和存储设备 Active CN113793635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111313315.8A CN113793635B (zh) 2021-11-08 2021-11-08 存储装置和存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111313315.8A CN113793635B (zh) 2021-11-08 2021-11-08 存储装置和存储设备

Publications (2)

Publication Number Publication Date
CN113793635A CN113793635A (zh) 2021-12-14
CN113793635B true CN113793635B (zh) 2022-04-19

Family

ID=79185366

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111313315.8A Active CN113793635B (zh) 2021-11-08 2021-11-08 存储装置和存储设备

Country Status (1)

Country Link
CN (1) CN113793635B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701047A (zh) * 2023-05-29 2023-09-05 珠海妙存科技有限公司 纠错解码数据生成方法、装置、电子设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111081308A (zh) * 2018-10-19 2020-04-28 奈奎斯特半导体有限公司 用于混合非易失性存储***的***和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9239754B2 (en) * 2012-08-04 2016-01-19 Seagate Technology Llc Single read based soft-decision decoding of non-volatile memory
KR102081588B1 (ko) * 2013-08-08 2020-02-26 삼성전자 주식회사 Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러
KR102479212B1 (ko) * 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US10222996B2 (en) * 2017-02-07 2019-03-05 Western Digital Technologies, Inc. Read operation and soft decoding timing
US10180794B2 (en) * 2017-02-07 2019-01-15 Western Digital Technologies, Inc. Soft decoding scheduling
US11099781B2 (en) * 2018-07-19 2021-08-24 Silicon Motion, Inc. Flash memory controller, flash memory module and associated electronic device
US11048443B1 (en) * 2020-03-25 2021-06-29 Sandisk Technologies Llc Non-volatile memory interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111081308A (zh) * 2018-10-19 2020-04-28 奈奎斯特半导体有限公司 用于混合非易失性存储***的***和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Layer-by-layer Adaptively Optimized ECC of NAND flash-based SSD Storing Convolutional Neural Network Weight for Scene Recognition;Keita Mizushina;《2018 IEEE International Symposium on Circuits and Systems (ISCAS)》;20180504;全文 *

Also Published As

Publication number Publication date
CN113793635A (zh) 2021-12-14

Similar Documents

Publication Publication Date Title
US10437668B2 (en) Memory controller, memory system, and method for controlling memory system
US7631241B2 (en) Apparatus and method for decoding low density parity check codes
US10404279B2 (en) Low BER hard-decision LDPC decoder
KR101995609B1 (ko) 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들
JP5345201B2 (ja) 符号化および/または復号化メモリ装置および方法
TWI613674B (zh) 在具有選擇性二元及非二元解碼之快閃記憶體中之偵測及解碼
US8230157B2 (en) Memory device and method of multi-bit programming
US8966339B1 (en) Decoder supporting multiple code rates and code lengths for data storage systems
US10719395B2 (en) Memory system
US20130145238A1 (en) Encoding and decoding in flash memories using convolutional-type low parity density check codes
US20030023924A1 (en) Data storage method for use in a magnetoresistive solid-state storage device
JP6847796B2 (ja) メモリシステム
US20170269995A1 (en) Method for decoding bits in a solid state drive, and related solid state drive
CN112068778B (zh) 用于保持从存储阵列中读取的数据的完整性的方法和设备
CN111352765A (zh) 控制器及存储器***
CN107634764B (zh) 使用低密度奇偶校验码的解码器及存储控制器
CN113793635B (zh) 存储装置和存储设备
CN111294061B (zh) 一种原始比特错误率感知的译码软判决延迟降低方法
US9639421B2 (en) Operating method of flash memory system
US10713113B2 (en) Solid state drive implementing polar encoding and successive cancellation list decoding
US11886738B2 (en) Memory system and memory control method
US11204834B1 (en) Implementation of keeping data integrity in multiple dimensions
CN113658618B (zh) 错误校正解码器、具有其的错误校正电路及操作其的方法
US10951238B1 (en) Memory system and method for controlling non-volatile memory
US11088713B1 (en) Solid state drive implementing a rate-compatible polar code

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40063999

Country of ref document: HK