执行迭代解码的解码器和使用该解码器的存储设备的制作方法

文档序号:17584342发布日期:2019-05-03 21:11阅读:158来源:国知局
执行迭代解码的解码器和使用该解码器的存储设备的制作方法

本申请基于并要求于2017年10月26日在韩国知识产权局递交的韩国专利申请no.10-2017-0139976的优先权,其全部公开内容通过引用合并于此。

本公开涉及一种用于执行迭代解码的解码器、以及使用该解码器的存储设备。更具体地,本公开涉及一种用于执行迭代解码的解码器,其包括用于在迭代中存储中间值的第一存储器和具有比第一存储器更大的存储容量的第二存储器。



背景技术:

低密度奇偶校验(ldpc)解码涉及执行迭代,其中,每次操作的结果值作为中间值存储在存储器中,并且中间值用于执行下一操作。例如,第i次操作过程的结果作为中间值存储在存储器中,并且通过在第(i+1)次操作过程中访问该存储器来读取中间值,以使用中间值执行第(i+1)次操作。

为了执行这种过程,需要在每次操作过程中访问存储器,因此消耗了大量的电力。此外,如果即使存储在存储器中的中间值中的单个比特中存在错误,则也可能花费很长时间来纠错,或者可能无法纠错。

通过简单地减少对存储器的访问次数,可以节省功耗。然而,这会使纠错劣化。为了减少对存储器的访问次数而不使纠错劣化,吞吐量被降低。



技术实现要素:

本公开的各个方面提供了一种解码器,其以低功耗执行迭代解码而不影响吞吐量。

本公开的各个方面还提供了一种解码器,其以低功耗和改进的纠错执行迭代解码。

根据实施例的一个方面,提供了一种解码器,包括:主存储器;标志存储器,被配置为存储标志数据;以及解码逻辑器件,被配置为执行包括以下各项的迭代:使用第一数据执行第i次操作以获得第二数据,i是自然数,对第二数据执行标志编码操作,响应于标志编码操作成功,将通过对第二数据执行标志编码操作所获得的结果作为第一标志数据存储在标志存储器中,以及响应于标志编码操作未成功,将与第二数据的第一标志数据不同的预定第二标志数据存储在标志存储器中。

第一标志数据的大小可以小于第一数据的大小和第二数据的大小,并且第二标志数据的大小可以小于第一数据的大小和第二数据的大小。

标志存储器的存储容量可以小于主存储器的存储容量。

解码逻辑器件还可以被配置为:响应于标志编码操作未成功,将第二数据存储在主存储器中。

解码逻辑器件还可以被配置为:参考存储在标志存储器中的标志数据;当被参考的标志数据是第一标志数据时,通过对第一标志数据进行标志解码来生成第二数据;当被参考的标志数据是第二标志数据时,通过访问主存储器并从主存储器进行读取来生成第二数据;以及使用所生成的第二数据来执行第(i+1)次操作。

解码逻辑器件还可以被配置为:在缓冲器清除期间参考标志数据。

解码逻辑器件还可以被配置为:使用校验子辅助码将具有随机值的数据变换为第一数据。

第一标志数据指示第一数据中具有值1的比特的位置。

可以通过使用游程长度码来执行标志编码操作。

主存储器可以与标志存储器物理分离。

根据另一实施例的一个方面,提供了一种解码器,包括:主存储器;标志存储器,被配置为存储标志数据;以及解码逻辑器件,被配置为执行包括以下各项的迭代:参考存储在标志存储器中的标志数据,以及基于被参考的标志数据生成具有比标志数据的大小更大的大小的第一数据,以及其中,解码逻辑器件还被配置为:响应于确定被参考的标志数据是第一标志数据,通过对第一标志数据执行标志解码操作来生成第一数据,以及响应于确定被参考的标志数据是与第一标志数据不同的预定第二数据,通过访问主存储器并从主存储器进行读取来生成第一数据。

解码逻辑器件还可以被配置为:重复所述参考标志存储器和所述生成第一数据i次,其中,i是自然数。

解码逻辑器件还可以被配置为:当被参考的标志数据为空时,初始化并生成第一数据。

解码逻辑器件还可以被配置为:在缓冲器清除期间参考标志数据。

主存储器可以与标志存储器物理分离。

根据另一实施例的一个方面,提供了一种存储设备,包括:至少一个非易失性存储器;以及校错和纠错(ecc)设备,连接到至少一个非易失性存储器,其中,ecc设备包括:第一存储器;第二存储器,具有比第一存储器更大的存储容量;以及解码逻辑器件,被配置为响应于读取存储在至少一个非易失性存储器中的数据,使用迭代来执行ecc解码,其中,ecc解码包括以下之一:根据迭代的结果,仅访问第一存储器、以及根据迭代的结果,访问第一存储器和第二存储器二者。

ecc解码还可以包括:对第i次操作的结果执行ecc标志编码操作,i是自然数;基于ecc标志编码操作的结果来生成第一标志数据或第二标志数据;以及将第一标志数据或第二标志数据存储在第一存储器中。

基于ecc标志编码操作的结果是否成功来生成第一标志数据或第二标志数据,其中,响应于ecc标志编码操作成功,生成ecc标志编码操作的结果作为第一标志数据,并且响应于ecc标志编码操作未成功,生成与第一标志数据不同的预定第二标志数据。

存储设备可以包括分别连接到第一非易失性存储器和第二非易失性存储器的第一ecc设备和第二ecc设备,其中,第一ecc设备和第二ecc设备分别执行第一ecc解码和第二ecc解码,以及其中,当第一ecc设备完成第一ecc解码时,第一ecc设备和第二ecc设备一起执行第二ecc解码。

ecc设备还可以被配置为使用校验子辅助码将存储在至少一个非易失性存储器中的数据变换为第一数据。

在阅读以下详细描述和权利要求之后,对于本领域普通技术人员来说,本公开的这些和其他方面、实施例和优点将变得显而易见。

附图说明

通过参照附图详细描述本公开的某些实施例,本公开的以上和其他方面和特征将变得更清楚,在附图中:

图1是根据实施例的解码器的框图。

图2是示出了根据实施例的在迭代解码之前执行的过程的流程图。

图3a是示出了根据实施例的使用校验子辅助码对原始数据进行变换的示例的图。

图3b是示出了根据实施例的使用校验子辅助码对原始数据进行变换的另一示例的图。

图4a是示出了根据实施例的标志编码和标志解码的图。

图4b是示出了根据实施例的标志编码失败的示例的图。

图5是示出了根据实施例的标志编码和标志解码的图。

图6是示出了根据实施例的迭代的过程的流程图。

图7a、图7b、图8a和图8b是示出了根据实施例的迭代过程的图。

图9是示出了根据实施例的在执行迭代的过程中每个元素的操作的时序图。

图10是根据实施例的通过迭代执行纠错的存储设备的框图。

图11是示出了根据实施例的由存储设备使用迭代执行ecc解码的方法的流程图。

图12是示出了根据实施例的接收机的结构的框图。

具体实施方式

图1是根据实施例的解码器的框图。

参考图1,根据实施例的解码器100可以包括解码逻辑器件110、主存储器120、标志存储器130和缓冲器140。解码器100可以执行迭代解码。例如,解码器100可以是低密度奇偶校验(ldpc)解码器。然而,应当理解,本公开的实施例不限于此。例如,解码器100可以是turbo解码器。

解码逻辑器件110可以包括逻辑门112、标志编码逻辑器件114和标志解码逻辑器件116。

逻辑门112可以实际上使用数据执行操作。标志编码逻辑器件114可以执行标志编码以生成比第一数据(例如,0001000000000000)更小的标志数据(例如,01101)。标志编码逻辑器件114可以在其执行标志编码时使用逻辑门112执行操作。标志解码逻辑器件116可以执行标志解码以将标志数据恢复回第一数据。标志解码逻辑器件116可以在其执行标志解码时使用逻辑门112执行操作。

尽管图1将解码逻辑器件110示出为包括标志编码逻辑器件114和标志解码逻辑器件116,但是本公开的实施例不限于此。例如,标志编码逻辑器件114和标志解码逻辑器件116可以与解码逻辑器件110分离。此外,标志编码逻辑器件114和标志解码逻辑器件116可以各自包括其自己的逻辑门。标志编码逻辑器件114和标志解码逻辑器件116可以分别使用它们各自的逻辑门来执行标志编码和标志解码。

解码逻辑器件110可以处理整个迭代解码操作。例如,解码逻辑器件110可以访问主存储器120以读取数据。解码逻辑器件110还可以将读取的数据写入缓冲器140。此外,解码逻辑器件110可以使用写入缓冲器140的数据和逻辑门112来执行操作。此外,解码逻辑器件110可以在访问主存储器120之前访问标志存储器130,并且可以确定标志数据的类型以确定是否访问主存储器120。稍后将对其进行更详细的描述。

在接收到从主机发出的命令时,解码逻辑器件110可以执行迭代解码。附加地,在给定的特定情况下,解码逻辑器件110可以执行迭代解码。例如,当向解码器100提供具有预定长度的数据时,解码逻辑器件110可以执行迭代解码。然而,应当理解,本公开的实施例不限于此。

本文使用的术语“解码逻辑器件110”不旨在限制本公开的技术构思。例如,图1的解码逻辑器件110可以实现为中央处理单元(cpu)、微处理器(mpu)、应用处理器(ap)和/或其组合。

主存储器120可以在其中存储数据。例如,主存储器120可以存储第一数据和第二数据。主存储器120可以向缓冲器140提供解码逻辑器件110执行操作所需的数据。存储器120可以是暂时性计算机可读介质。例如,主存储器120可以临时存储数据并且可以由计算机读取,主存储器120例如是寄存器、高速缓存、静态随机存取存储器(sram)和动态随机存取存储器(dram)。然而,应当理解,本公开的实施例不限于此。例如,主存储器120可以是半永久地存储数据的介质,例如闪存、cd、dvd、硬盘、蓝光盘、usb和rom。

标志存储器130可以在其中存储数据。例如,标志存储器130可以存储第一标志数据和第二标志数据。第一标志数据和第二标志数据的大小可以分别小于第一数据和第二数据的大小。因此,标志存储器130的存储容量可以小于主存储器120的存储容量。结果,用于访问标志存储器130的功耗可以小于用于访问主存储器120的功耗。

标志存储器130可以是与主存储器120物理分离的不同存储器。标志存储器130可以是暂时性计算机可读介质。例如,标志存储器130可以临时存储数据并且可以由机器读取,标志存储器130例如是寄存器、高速缓存、静态随机存取存储器(sram)和动态随机存取存储器(dram)。然而,应当理解,本公开的实施例不限于此。例如,标志存储器130可以是半永久地存储数据的介质,例如闪存、cd、dvd、硬盘、蓝光盘、usb和rom。

缓冲器140可以是用于临时存储数据以供解码逻辑器件110执行操作的空间。尽管缓冲器140在图1中被示为与解码逻辑器件110分离,但是本公开的实施例不限于此。例如,在某些实施例中,缓冲器140可以合并到解码逻辑器件110中。即,缓冲器140可以是解码逻辑器件110的内部缓冲存储器。缓冲器140可以是暂时性计算机可读介质。暂时性计算机可读介质可以临时存储数据并且可以由机器读取,暂时性计算机可读介质例如是寄存器、高速缓存、静态随机存取存储器(sram)和动态随机存取存储器(dram)。然而,应当理解,本公开的示例实施例不限于此。

图2是用于示出根据实施例的在迭代解码之前执行的过程的流程图。

参考图2,首先,将原始数据变换为第一数据(步骤s210)。将原始数据变换为第一数据可以包括将具有随机值的原始数据变换为具有简单值的第一数据。例如,简单的数据值可以指包含的绝大多数为1或0的值。例如,000000010000000可以是简单值。

在一些实施例中,校验子辅助码可以用于将原始数据变换为第一数据。校验子辅助码可以表示原始数据中1可能发生错误的位置。将参考图3a和图3b对其进行更详细的描述。

图3a是示出了根据实施例的使用校验子辅助码对原始数据进行变换的示例的图。

图3b是示出了根据实施例的使用校验子辅助码对原始数据进行变换的另一示例的图。

参考图3a,原始数据310可以是0011101010010101。如果估计从最右边的比特起的第13比特的值存在错误,则可以使用校验子辅助码将其表示为0001000000000000。换言之,当使用校验子辅助码将原始数据310变换为第一数据320时,第一数据320可以具有值0001000000000000。

参考图3b,原始数据311可以是0011101010010101。如果估计从最右边的比特起的第7比特和第10比特的值存在错误,则可以使用校验子辅助码将其表示为0000001001000000。换言之,当使用校验子辅助码将原始数据311变换为第一数据321时,第一数据321可以具有值0000001001000000。应当注意,为了便于说明,图3a和图3b中所示的示例中描述的上述值仅是说明性的,并不旨在限制本公开的范围。

尽管在图3a和图3b中所示的示例中,解码逻辑器件110可以分别将原始数据310和原始数据311变换为第一数据320和第一数据321,但是本公开的实施例不限于此。例如,在某些实施例中,解码器100外部的处理器可以分别将原始数据310和原始数据311变换为第一数据320和第一数据321。

尽管在前面的描述中使用校验子辅助码将具有随机值的原始数据310和原始数据311变换为具有简单值的第一数据320和第一数据321,但是本公开的实施例不限于此。可以采用简化某些数据的任何公知技术将原始数据310和原始数据311变换为第一数据320和第一数据321。

在一个实施例中分别将原始数据310和原始数据311变换为第一数据320和第一数据321,以实现无损标志编码和标志解码,这将在后面详细描述。因此,如果原始数据具有简单值,则可以将原始数据指定为第一数据,而不执行将原始数据变换为第一数据的过程。换言之,本文的第一数据可以是绝大多数为1或0的数据,不管具有或不具有中间过程。

再次参考图2,可以使用第一数据执行迭代(步骤s220)。在描述执行迭代的过程之前,将参照图4a、图4b和图5描述根据本公开的某些实施例的标志编码和标志解码。

图4a是示出了根据实施例的标志编码和标志解码的图。

参考图4a,根据实施例的解码逻辑器件110可以对第一数据420进行标志编码以生成第一标志数据430。例如,第一标志数据430可以指示第一数据420中值1的位置。例如,当第一数据420是0001000000000000时,通过标志编码生成的第一标志数据430可以是01101。换言之,第一数据420在从最右边的比特起的第13比特具有值1,并且通过标志编码生成的第一标志数据430可以是01101,其表示13。

可以通过反转执行上述标志编码的过程来执行标志解码。因此,为了便于说明,没有描述标志解码的过程。

可以使用图3a中的校验子辅助码来变换图4a的第一数据420,但是本公开的实施例不限于此。

图4b是用于示出根据本公开的一些示例实施例的标志编码失败的示例的图。

参考图4b,根据实施例,可以对第一数据421进行标志编码以生成第二标志数据431。例如,第二标志数据431可以表示第一数据421的标志编码失败,并且可以是与第一标志数据不同的预定值。例如,如果当对第一数据421进行标志编码时,第一数据421包括两个或更多个1,则可能无法有效地指示1的位置。换言之,如果第一数据421包括两个或更多个1,则标志编码可能失败。如果标志编码失败,则可以生成具有预定值的第二标志数据431,其与第一标志数据不同并且指示标志编码失败。例如,第二标志数据431可以是11111。

当标志数据是第二标志数据431时,不能执行标志解码。例如,当第一数据421是0000001001000000时,在任一种情况下都可以通过标志编码生成值11111。因此,当第二标志数据431是11111时,它不能恢复到第一数据421。因此,在某些实施例中,如果标志数据是第二标志数据431,则可以不执行标志解码。

可以使用图3b中的校验子辅助码来变换图4b的第一数据421,但是本公开的实施例不限于此。

参考图1、图4a和图4b,当分别将第一数据420和第一数据421与第一标志数据430和第二标志数据431进行比较时,如果第一数据420和第一数据421具有2n个比特的大小,则第一标志数据430和第二标志数据431可以具有n+1个比特的大小。例如,如果第一数据420和第一数据421具有210个比特的大小,则第一标志数据430和第二标志数据431可以具有11个比特的大小。因此,第一标志数据430和第二标志数据431可以比第一数据420和第一数据421小得多。因此,如上所述,存储第一数据420和第一数据421的主存储器120的存储容量可以大于存储第一标志数据430和第二标志数据431的标志存储器130的存储容量。

图5是用于示出根据实施例的标志编码和标志解码的图。

参考图5,根据实施例,可以对第一数据520进行标志编码以生成第一标志数据530。例如,标志编码和标志解码可以使用游程长度码。例如,假设第一数据520是0000000...00111000。此外,假设从最左边的比特起连续0的数量是100。在该示例中,通过标志编码生成的第一标志数据530可以是0(100)1(3)0(3)。各个括号中的每个数字表示括号前的连续数字的数量。即,游程长度码可以指示每个游程(出现相同数据值的序列)的长度。在一些实施例中,通过游程长度码,游程数量越大,第一标志数据530的大小可以越小。例如,假设第一数据520包括m个连续数据1和n个连续0,则第一数据520的大小可以是m+n。如果使用游程长度码对第一数据520进行标志编码,则第一标志数据530的大小可以是1+log2m+1+log2n。每个1的大小用于指示连续数据的值(例如,1或0)。log2m和log2n分别用于指示连续数据值的数量(例如,m个连续数据值、n个连续数据值)。即,第一标志数据530可以是1(m)0(n)。

可以通过反转执行上述标志编码的过程来执行标志解码。因此,为了便于说明,没有描述标志解码的过程。

在图4a、图4b和图5,已经描述了根据实施例的标志编码和标志解码。然而,应当理解,这仅仅是说明性的。本领域技术人员将能够根据第一数据的类型、形式和错误数量来选择和应用适当的标志编码和标志解码方案。例如,根据实施例,可以使用霍夫曼码或lempel-ziv-welch码来执行标志编码和标志解码。

图6是示出了根据实施例的迭代的过程的流程图。

图7a、图7b、图8a和图8b是示出了根据实施例的迭代过程的图。

为了便于说明,将结合图7a、图7b、图8a和图8b来描述图6的流程图。

在图7a、图7b、图8a和图8b中,解码逻辑器件110、主存储器120、标志存储器130和缓冲器140可以与图1中的相同。参考图6,首先,当开始迭代过程时,首先参考标志存储器130(步骤s610)。

确定标志存储器130中是否存在标志数据(步骤s620)。如果确定标志存储器130中没有数据(步骤s620中的否),则初始化第一数据以生成第一数据(步骤s622)。初始化第一数据可以是将图3a和图3b的原始数据变换为第一数据的过程。

参考图7a和图7b,解码逻辑器件110可以参考标志存储器130。如果标志存储器130中没有标志数据,即,如果标志存储器130为空(null),则解码逻辑器件110可以初始化第一数据并将其存储在缓冲器140中。例如,假设经初始化的第一数据是0000011010000000(①、②)。

再次参考图6,使用所生成的第一数据来执行操作(步骤s640)。如本文所使用的,为了便于说明,将第一数据的操作结果称为第二数据。

参考图7a,解码逻辑器件110可以使用存储在缓冲器140中的第一数据来执行操作。可以将第一数据的操作结果作为第二数据存储在缓冲器140中。例如,假设由解码逻辑器件110使用第一数据0000011010000000的操作的结果是第二数据,即,0001000000000000(图7a中的③)。

参考图7b,解码逻辑器件110可以使用存储在缓冲器140中的第一数据来执行操作。可以将第一数据的操作结果作为第二数据存储在缓冲器140中。例如,假设由解码逻辑器件110使用第一数据0000011010000000的操作的结果是第二数据,即0000001001000000(图7b中的③)。

再次参考图6,通过对第二数据进行标志编码来生成标志数据(步骤s650)。将所生成的标志数据存储在标志存储器130中(步骤s660)。

参考图7a,解码逻辑器件110可以通过对第二数据进行标志编码来生成第一标志数据。第一标志数据可以是例如01101(图7a中的④)。

图7a中使用的标志编码可以是上面参考图4a描述的标志编码。换言之,可以生成第一标志数据以指示第二数据中1的位置。然而,应当理解,本公开的示例实施例不限于此。

解码逻辑器件110可以将第一标志数据存储在标志存储器130中。例如,解码逻辑器件110可以将第一标志数据01101存储在标志存储器130中(图7a中的⑤)。

参考图7b,解码逻辑器件110可以通过对第二数据进行标志编码来生成第二标志数据。第二标志数据可以是例如11111(图7b中的④)。

图7b中使用的标志编码可以是上面参考图4b描述的标志编码。换言之,第二标志数据11111可以表示第二数据的标志编码失败。然而,应当理解,本公开的示例实施例不限于此。

解码逻辑器件110可以将第二标志数据存储在标志存储器130中。例如,解码逻辑器件110可以将第二标志数据11111存储在标志存储器130中(图7b中的⑤)。

再次参考图6,确定所生成的标志数据的类型(步骤s662)。如果确定所生成的标志数据是第一标志数据,则确定是否已经完成迭代(步骤s670)。如果不是(步骤s670中的否),则再次参考标志存储器130(步骤s610),并且重复上述过程。如果确定已经完成迭代(步骤s670中的是),则过程结束。

如果确定所生成的标志数据是第二标志数据,则将第二数据存储在主存储器120中(步骤s664)。

参考图7b,解码逻辑器件110可以将第二数据存储在主存储器120中。例如,解码逻辑器件110可以将第二数据00000100100000存储在主存储器120中(图7b中的⑥)。

再次参考图6,确定是否已经完成迭代(步骤s670)。如果确定尚未完成迭代(步骤s670中的否),则再次参考标志存储器(步骤s610),并且重复上述过程。如果确定已经完成迭代(步骤s670中的是),则过程结束。

确定标志存储器130中是否存在标志数据(步骤s620)。如果确定标志存储器130中存在标志数据(步骤s620中的是),则确定标志存储器130中的标志数据的类型(步骤s630)。如果确定标志存储器130中的标志数据是第一标志数据,则对第一标志数据进行标志解码以生成第一数据(步骤s632)。随后,使用所生成的第一数据执行操作(步骤s640)。随后,可以以与上述方式相同的方式进行步骤s650至s670。

参考图8a,解码逻辑器件110可以参考标志存储器130(①)。如果标志存储器130中存在第一标志数据,则解码逻辑器件110可以对第一标志数据进行标志解码以恢复第二数据,并且可以将其存储在缓冲器140中。例如,如果标志存储器130中存在第一标志数据01101,则解码逻辑器件110可以对其进行标志解码以恢复第二数据0001000000000000,并且可以将其存储在缓冲器140中(②)。解码逻辑器件110可以使用存储在缓冲器140中的第二数据来执行操作(③)。图8a中使用的标志解码可以是上面参考图4a描述的标志解码。然而,应当理解,这仅仅是说明性的。

再次参考图6,确定标志存储器130中是否存在标志数据(步骤s620)。如果确定标志存储器130中的标志数据是第二标志数据,则访问主存储器120,以从主存储器120读取第一数据(步骤s634)。随后,使用经读取的第一数据执行操作(步骤s640)。随后,可以以与上述方式相同的方式进行步骤s650至s670。将参考图8a和图8b详细描述这种过程。

参考图8b,解码逻辑器件110可以参考标志存储器130(①)。如果标志存储器130中存在第二标志数据,则解码逻辑器件110可以访问主存储器120。解码逻辑器件110可以从主存储器120读取第二数据以将其存储在缓冲器140中。例如,如果标志存储器130中存在第二标志数据11111,则解码逻辑器件110可以访问主存储器120。解码逻辑器件110可以从主存储器120读取第二数据0001000000000000,以将其存储在缓冲器140中(②、③)。解码逻辑器件110可以使用存储在缓冲器140中的第二数据来执行操作(④)。

图9是用于示出根据实施例的在执行迭代的过程中每个元素的操作的时序图。

参考图9,在每次迭代结束时发生缓冲器清除。根据实施例,解码逻辑器件110可以使用存储在缓冲器140中的数据来执行操作,并且可以将操作的结果存储在主存储器120中,或者通过对操作的结果执行标志编码来生成第一标志数据,以将第一标志数据存储在标志存储器130中。随后,需要擦除存储在缓冲器140中的数据以用于后续操作,在本文中被称为缓冲器清除。

当发生缓冲器清除时,解码逻辑器件110可以参考标志存储器130。通过这样做,可以节省参考标志存储器130所需的时间。因此,在某些实施例中,因为解码逻辑器件110在缓冲器清除期间参考标志存储器130,所以解码逻辑器件110不分配参考标志存储器130的时间,并且因此可以保持总吞吐量。

如果没有标志存储器130,则可以在除了发生缓冲器清除之外的任何时间访问主存储器120。即,如果没有标志存储器130,则在发生缓冲器清除时,可能无法访问主存储器120。

如果存在标志存储器130,则可以一直访问标志存储器130。

如果存在标志存储器130,则可以在从其读取数据或将数据写入其中时访问主存储器120。换言之,仅当标志存储器130中存在第二标志数据时才可以访问主存储器120。

即,当第一标志数据在标志存储器130中时,仅可以访问标志存储器130。此外,当第二标志数据在标志存储器130中时,可以访问主存储器120和标志存储器130二者。随着一遍又一遍地重复操作过程,可以减少对主存储器120的访问次数。然而,应当理解,这仅仅是说明性的。

可以仅当未访问主存储器120时才执行标志解码。即,可以仅当第一标志数据在标志存储器130中时才执行标志解码。

图10是根据实施例的通过迭代执行纠错的存储设备的框图。

参考图10,根据实施例的存储设备1000可以包括非易失性存储器控制器1010、ecc设备1020_1至1020_n和非易失性存储器1030_1至1030_n。

非易失性存储器控制器1010可以包括处理器1012、控制器1014和本地存储器1016。

处理器1012可以实现为电路、逻辑、代码或其组合,并且可以控制存储设备1000的整体操作。当向存储设备1000供电时,处理器1012可以在ram上运行用于操作存储在rom中的存储设备1000的固件,从而控制存储设备1000的整体操作。

控制器1014控制布置在存储设备1000中的本地存储器1016。本地存储器1016可以包括rom或ram。在某些实施例中,rom可以存储用于驱动存储设备1000的固件代码。ram可以存储从主机host输入的各种命令或变量。此外,ram可以存储输入到非易失性存储器1030_1至1030_n或从非易失性存储器1030_1至1030_n输出的数据。此外,可以存储输入到非易失性存储器1030_1至1030_n以及从非易失性存储器1030_1至1030_n输出的各种参数和变量。

如图10所示,ecc设备1020_1至1020_n可以分别包括解码逻辑器件1022_1至1022_n、第一存储器1024_1至1024_n和第二存储器1026_1至1026_n。解码逻辑器件1022_1至1022_n、第一存储器1024_1至1024_n和第二存储器1026_1至1026_n可以与图1的解码逻辑器件110、标志存储器130和主存储器120相同或类似。换言之,第一存储器1024_1至1024_n的存储容量可以小于第二存储器1026_1至1026_n的存储容量。此外,存储在第一存储器1024_1至1024_n中的数据的大小可以小于存储在第二存储器1026_1至1026_n中的数据的大小。ecc设备1020_1至1020_n可以使用根据本公开的一些示例实施例的迭代来执行纠错解码(ecc解码)。尽管未在图中示出,但是每个ecc设备可以包括图1的缓冲器140。

非易失性存储器1030_1至1030_n可以将从非易失性存储器控制器1010接收的数据存储在存储单元中。具体地,非易失性存储器1030_1至1030_n可以包括用于存储数据的多个单元阵列。单元阵列可以包括多个面。面可以包括多个块。块可以包括多个页。在一些实施例中,非易失性存储器1030_1至1030_n可以是包括电可擦除可编程只读存储器(eeprom)、铁电随机存取存储器(fram)、相变随机存取存储器(pram)和磁随机存取存储器(mram)的非易失性存储器。

尽管图10中所示的存储设备1000分别包括多个ecc设备1020_1至1020_n和与其相连的多个非易失性存储器1030_1至1030_n,但是本公开的示例实施例不限于此。例如,多个非易失性存储器1030_1至1030_n可以连接到单个ecc设备1020_1。此外,例如,存储设备1000可以包括单个ecc设备1020_1和单个非易失性存储器1030_1。因此,本领域技术人员将能够以各种组合实现存储设备。

在某些实施例中,当从主机host输入数据读取命令时,非易失性存储器控制器1010可以从非易失性存储器1030_1至1030_n读取数据。在这样做时,ecc设备1020_1至1020_n可以使用上面参考图1至图9描述的迭代,分别对存储在非易失性存储器1030_1至1030_n中的数据进行ecc解码。例如,ecc解码可以是ldpc解码。在下文中,将参考图11来描述根据实施例的驱动存储设备的方法。

图11是示出了根据实施例的由存储设备使用迭代执行ecc解码的方法的流程图。为了便于说明,将参考图10进行描述。

参考图10和图11,当从主机host输入读取命令时,可以开始对存储在非易失性存储器1030_1至1030_n中的数据进行纠错。备选地,当从主机host输入读取命令时,可以分别向ecc设备1020_1至1020_n发送非易失性存储器1030_1至1030_n中存储的数据,并且ecc设备1020_1至1020_n中的每一个可以当其接收到预定长度的数据时开始对数据进行纠错。可以使用迭代通过ecc解码来纠正存储数据中的错误(步骤s1100)。为了便于说明,假设使用信号ecc设备1020_1和单个非易失性存储器1030_1执行ecc解码过程。为了便于说明,将省略或简要描述多余的描述。

当ecc解码开始时,解码逻辑器件1022_1首先访问第一存储器1024_1(步骤s1110)并参考标志数据(步骤s1120)。

确定被参考的标志数据的类型(步骤s1130)。如果确定被参考的标志数据是第二标志数据,则访问第二存储器1026_1(步骤s1132)。在访问第二存储器1026_1之后,执行操作(步骤s1140)。如果确定被参考的标志数据是第一标志数据,则在不访问第二存储器1026_1的情况下执行操作(步骤s1140)。例如,如果确定被参考的标志数据是第一标志数据,则解码逻辑器件1022_1可以对第一存储器1024_1的第一标志数据进行标志解码以将其用于操作。例如,如果被参考的标志数据是第二标志数据,则解码逻辑器件1022_1可以读取存储在第二存储器1026_1中的数据以将其用于操作。

对操作的结果进行标志编码并将其存储在第一存储器1024_1中(步骤s1150)。

确定通过对操作结果进行标志编码而生成的标志数据的类型(步骤s1160)。

如果确定所生成的标志数据是第二标志数据,则访问第二存储器1026_1,并且将操作的结果存储在第二存储器1026_1中(步骤s1162)。然后,确定是否完成迭代(步骤s1170)。如果确定所生成的标志数据是第一标志数据,则确定是否完成迭代(步骤s1170)。

如果确定已经完成迭代,即,已经完成ecc解码,则可以使用迭代的最终结果来进行纠错(步骤s1180)。

在某些实施例中,可以并行执行ecc解码。此外,例如,当非易失性存储器控制器1010分别从多个非易失性存储器1030_1至1030_n读取多个数据项时,多个ecc设备1020_1至1020_n中的每一个可以执行ecc解码。

在某些实施例中,在执行ecc解码时,已经完成ecc解码的ecc设备之一(例如,ecc设备1020_1)可以一起执行尚未完成ecc解码的另一ecc设备(例如,ecc设备1020_2)的操作。例如,当执行读取命令时,第一ecc设备1020_1和第二ecc设备1020_2可以分别对存储在第一非易失性存储器1030_1和第二非易失性存储器1030_2中的数据进行解码。当第一ecc设备1020_1完成ecc解码时,第一ecc设备1020_1可以向非易失性存储器控制器1010发送指示ecc解码完成的消息。当非易失性存储器控制器1010从第一ecc设备1020_1接收到消息时,非易失性存储器控制器1010可以允许第一ecc设备1020_1加入由尚未发送指示ecc解码完成的消息的第二ecc设备1020_2所执行的操作过程。

图12是示出了根据实施例的接收机的结构的框图。将省略或简要描述上述相同元件的描述以避免冗余。

参考图12,根据实施例的接收机1200可以包括天线1210和解码器1220。图12的解码器1220可以与图1至图9的解码器100相同。

天线1210可以接收经编码的数据。例如,经编码的数据可以是经ldpc编码的数据。可以向解码器1220发送由天线1210接收的经编码的数据。解码器1220可以使用迭代解码对经编码的数据进行解码。例如,当从天线1210发送经编码的数据时,解码器1220可以将经编码的数据变换为具有简单值的第一数据。解码器1220可以通过迭代过程对第一数据进行解码。当解码器1220执行迭代时,它可以参考解码器1220中包括的第一存储器1222。解码器1220可以根据存储在第一存储器1222中的数据的类型而仅访问第一存储器1222或者访问第一存储器1222和第二存储器1224二者。第一存储器1222的存储容量可以小于第二存储器1224的存储容量。存储在第一存储器1222中的数据的大小可以小于存储在第二存储器1224中的数据的大小。由解码器1220执行的迭代解码可以与本文描述的解码方案相同或类似。

尽管已经参照本公开的某些实施例具体示出并描述了本公开,但是本领域普通技术人员将理解,在不脱离如由所附的权利要求所限定的本公开的精神和范围的前提下,可以进行形式和细节的各种改变。应当仅在描述的意义下而非为了限制目的来考虑某些实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1