操作存储器控制器的方法与流程

文档序号:18009295发布日期:2019-06-25 23:47阅读:186来源:国知局
操作存储器控制器的方法与流程

本发明构思涉及一种存储器控制器,更具体地讲,涉及一种用于对用于存储器操作的数据执行编码操作和解码操作的存储器控制器,一种包括该存储器控制器的存储器系统以及操作该存储器控制器的方法。



背景技术:

当基于卷积型低密度奇偶校验(ldpc)码(例如,空间耦合的ldpc码)对码字执行解码时,可仅使用整个码字的部分来执行滑动窗口解码。使用该解码方案,处于与基于现有的块ldpc码的解码的水平同等水平的存储器系统的数据输出延迟可被确保,存储器系统可具有提高的校正能力。然而,当存储器系统基于具有长的长度的卷积型ldpc码来执行编码和解码时,由于由主机从存储器系统接收的读取数据的大小单位导致存储器系统必须对整个码字进行解码,然后仅将解码结果的期望部分作为读取数据输出到主机。这样的问题限制了存储器系统的数据输出延迟的改进。



技术实现要素:

本发明构思提供一种能够执行用于改进存储器系统的输出延迟的解码操作的存储器控制器。

本发明构思提供一种包括存储器控制器的存储器系统。

本发明构思还提供一种操作存储器控制器的方法。

根据本发明构思的一个方面,提供一种操作存储器控制器的方法,所述存储器控制器被配置为通过使用与卷积型低密度奇偶校验(ldpc)码对应的奇偶校验矩阵来执行解码。所述方法包括:从至少一个存储器装置接收码字,所述码字包括第一子码字和第二子码字;通过使用基于包括在奇偶校验矩阵中的并与第一子码字相关联的第一子矩阵设置的第一方向上的第一滑动窗口来将第一子码字解码为第一数据;通过使用基于包括在奇偶校验矩阵中的并与第二子码字相关联的第二子矩阵设置的第二方向上的第二滑动窗口来将第二子码字解码为第二数据。

根据本发明构思的另一方面,提供一种操作存储器系统的方法,所述存储器系统通过使用与卷积型低密度奇偶校验(ldpc)码对应的奇偶校验矩阵来执行编码和解码,并包括存储器控制器和至少一个存储器装置。所述方法包括:由存储器控制器,从主机接收写入请求和将被存储在所述存储器系统中的写入数据;由存储器控制器,基于包括在奇偶校验矩阵中的第一子矩阵将写入数据的第一数据编码为第一子码字;由存储器控制器,基于包括在奇偶校验矩阵中的第二子矩阵将写入数据的第二数据编码为第二子码字;由存储器控制器,将码字写入到所述至少一个存储器装置中,所述码字包括第一子码字和第二子码字。

根据本发明构思的另一方面,提供一种操作存储器控制器的方法,所述存储器控制器通过使用与卷积型低密度奇偶校验(ldpc)码对应的奇偶校验矩阵来执行解码,其中,所述奇偶校验矩阵包括第一局部奇偶校验矩阵、第二局部奇偶校验矩阵以及与第一局部奇偶校验矩阵和第二局部奇偶校验矩阵相关联的隧道信息。所述方法包括:从存储器装置接收包括第一子码字的码字;通过使用基于与第一子码字相关联的第一局部奇偶校验矩阵设置的第一滑动窗口来对第一子码字执行第一阶段解码操作;基于第一阶段解码操作的结果,通过使用隧道信息来对第一子码字执行第二阶段解码操作。

根据本发明构思的另一方面,提供一种操作存储器系统的方法。所述方法包括:存储器系统的存储器控制器从主机接收写入请求和将被存储在存储器系统中的写入数据;存储器控制器使用奇偶校验矩阵来执行写入数据的卷积型低密度奇偶校验(ldpc)编码以产生与写入数据对应的码字,存储器控制器将所述码字写入到存储器系统的一个或多个存储器装置中。所述ldpc编码包括:存储器控制器基于包括在奇偶校验矩阵中的第一子矩阵来将写入数据的第一数据编码为第一子码字,存储器控制器基于包括在奇偶校验矩阵中的第二子矩阵来将写入数据的第二数据编码为第二子码字,其中,所述码字包括第一子码字和第二子码字。

附图说明

通过下面结合附图的具体实施方式,本发明构思的实施例将被更清楚地理解。

图1是存储器系统的实施例的示意性框图。

图2是用于解释错误检查和校正(ecc)逻辑的实施例的操作的框图。

图3是用于解释与低密度奇偶校验(ldpc)码对应的奇偶校验矩阵的实施例的示图。

图4是用于解释图2的符合奇偶校验矩阵的结构的ecc编码器的操作的示图。

图5是用于解释存储器装置的实施例的存储器操作的示图。

图6a和图6b是用于解释图2的符合奇偶校验矩阵的结构的ecc解码器的操作的示图。

图7a是用于解释图2的符合奇偶校验矩阵的结构的ecc编码器的操作的示图,图7b是在图7a的奇偶校验矩阵的结构中生成终止奇偶校验的方法的流程图。

图8a和图8b是用于解释存储器装置的实施例的存储器操作的示图。

图9是用于解释图2的符合奇偶校验矩阵的结构的ecc解码器的操作的示图。

图10a和图10b是用于解释存储器装置的实施例的存储器操作的示图。

图11是用于解释图2的符合奇偶校验矩阵的结构的ecc解码器的操作的示图。

图12a和图12b是用于解释图2的符合奇偶校验矩阵的结构的ecc解码器的针对第一子码字的解码操作的示图。

图13是存储器系统的实施例的框图。

图14a、图14b、图14c和图14d是用于解释根据实施例的编码和解码方法的示图。

图15是用于解释图2的符合奇偶校验矩阵的结构的ecc编码器的操作的示图。

图16是示出生成隧道(tunneling)奇偶校验的方法的实施例的流程图。

图17是示出解码操作的实施例的流程图。

图18、图19a、图19b、图19c、图20a和图20b是用于解释图17的第二阶段解码操作的各个实施例的示图。

具体实施方式

在下文中,将参照附图详细描述本发明构思的实施例。在附图中,相同的参考标号表示相同的元件,并且将省略对它们的冗余描述。

图1是存储器系统1的实施例的框图。

参照图1,存储器系统1可包括存储器控制器10和一个或多个存储器装置20。图1中所示的存储器系统1可对应于基于非易失性存储器(例如,存储器卡、通用串行总线(usb)存储器和固态驱动器(ssd))的各种数据存储介质中的任何一个。存储器装置20可包括存储器单元阵列22和接口24,其中,接口24用于将数据等发送到存储器控制器10并从存储器控制器10接收数据等。存储器单元阵列22可具有在与基底平行方向上形成的二维结构(或水平结构),或者在与基底垂直方向上形成的三维结构(或垂直结构)。存储器单元阵列22中的存储器单元可以是非易失性存储器单元。例如,存储器单元阵列22可以是nand闪存单元阵列或者nor闪存单元阵列。在下文中,将参照存储器单元阵列22中的存储器单元是闪存单元的情况来详细描述实施例。然而,实施例不限于此,在其他实施例中,存储器单元阵列22中的存储器单元可以是电阻式存储器单元(诸如,电阻式随机存取存储器(rram)单元)、相变ram(pram)单元或磁ram(mram)单元。

存储器控制器10可响应于从主机host接收的请求(例如,写入请求、读取请求、擦除请求等)来控制对存储器装置20的存储器操作(诸如,写入(或编程)、读取和擦除操作)。存储器控制器10可包括主机接口11、中央处理器(或处理器)13、存储器接口15、ram17以及局部可解码的错误检查和校正(ecc)逻辑元件19。在各个实施例中,局部可解码的ecc逻辑元件19可包括被配置为响应于存储在存储器中的指令等来执行逻辑运算的逻辑电路和/或处理器。在下文中,为了便于描述,局部可解码的ecc逻辑元件19被称为“ecc逻辑19”或“pd-ecc19”。

存储器控制器10可通过主机接口11将数据等发送到主机host并从主机host接收数据等,并且可通过存储器接口15将数据发送到存储器装置20并从存储器装置20接收数据等。例如,存储器控制器10可从主机host接收写入请求和,并通过将数据写入到一个或多个存储器装置20而将被存储在存储器系统1中的写入数据。此外,存储器控制器10可从主机host接收读取请求和用于从存储器系统1的存储器装置20读取数据的一个或多个地址。主机接口11可经由并行at附件(pata)总线、串行附件(sata)总线、小型计算机系统接口(scsi)、usb、pcie等连接到主机host。中央处理器13可控制针对存储器装置20的整体操作(例如,写入、读取、文件系统管理)。ram17可在中央处理器13的控制下操作,并可用作工作存储器、缓冲器存储器、高速缓冲存储器等。当ram17被用作工作存储器时,由中央处理器13处理的数据可被暂时地存储在ram17中。当ram17被用作缓冲器存储器时,ram17可用于缓存将要从主机host传送到存储器装置20的写入数据,或者缓存将要从存储器装置20传送到主机host的读取数据。此外,当ecc逻辑19对从主机host接收的写入数据进行编码或者对从存储器装置20接收的码字进行解码时,ram17可用作用于编码操作和解码操作的缓冲器。

ecc逻辑19可从存储器装置20接收码字,并对码字执行纠错解码。也就是说,因为从存储器装置20接收的码字可能由于存储器单元阵列22的存储器单元的劣化、与存储器操作相关的噪声等而具有位错误,所以ecc逻辑19可校正码字的错误,并将具有完整性的读取数据提供给主机host。ecc逻辑19可基于卷积型低密度奇偶校验(ldpc)码(例如,空间耦合的ldpc码)对码字执行解码。ldpc码是一种能够迭代解码的线性块码,ldpc码可使用一个奇偶校验矩阵来实现。在下文中,将集中于与ldpc码对应的奇偶校验矩阵来描述ecc逻辑19的操作,假设码字是具有可通过与ldpc码对应的一个奇偶校验矩阵来编码和生成或者解码的大小单位的数据的集合。码字可包括子码字,每个子码字的大小单位可小于或等于存储器控制器10响应于读取请求而发送到主机host的数据大小单位。

在一个实施例中,ecc逻辑19可在子码字的基础上执行解码。在子码字的基础上执行解码可被定义为局部解码操作。具体地讲,ecc逻辑19可根据奇偶校验矩阵的结构,基于子矩阵或局部奇偶校验矩阵在子码字的基础上执行解码。因此,由于ecc逻辑19可通过仅使用奇偶校验矩阵的部分来在子码字的基础上执行解码,因此提供从主机host请求的读取数据所需的时间可被减少。因此,存储器系统1的数据输出延迟可被改进。

在一个实施例中,ecc逻辑19可在子码字的基础上执行写入数据的编码,以使得能够在子码字的基础上进行解码。具体地讲,ecc逻辑19可根据奇偶校验矩阵的结构,基于子矩阵或局部奇偶校验矩阵在子码字的基础上执行解码。

存储器控制器10可重新排列作为ecc逻辑19的编码操作的结果而生成的码字,并将重新排列的码字提供给存储器装置20,使得以后的快速解码可被执行。存储器装置20可将重新排列的码字直接存储在存储器单元阵列22中,并响应于来自存储器控制器10的读取命令来将重新排列的码字提供给存储器控制器10。在一个实施例中,存储器控制器10可在ecc逻辑19的编码操作之前预先重新排列写入数据,使得以后的快速解码可被执行。此外,存储器装置20可在响应于来自存储器控制器10的读取命令输出存储的码字之前重新排列存储的码字,并将重新排列的码字输出到存储器控制器10,使得以后的快速解码可被执行。如上所述,考虑到以后的快速解码操作,存储器控制器10或存储器装置20可通过重新排列码字来有效地执行解码操作,并且还可执行简单的局部解码操作。

图2是用于解释ecc逻辑19的操作的实施例的框图。在下文中,仅示出存储器系统1的配置的部分以解释ecc逻辑19的操作,在图1中示出了存储器系统1的详细配置。

参照图2,ecc逻辑19可包括ecc编码器(也称为pd-ecc编码器)19a和ecc解码器(也称为pd-ecc解码器)19b。ecc编码器19a可生成用于校正位错误的纠错码(ecc)。ecc编码器19a可对从主机接收的写入数据data进行编码,从而生成码字cw。码字cw可包括至少两个子码字subcw和终止奇偶校验(也称为终止奇偶校验码)pt。终止奇偶校验pt可以是用于确保码字cw的校验子(syndrome)变成零向量的位数据。下面将参照图3描述终止奇偶校验pt的细节。子码字subcw中的每一个可包括与写入数据data和用于纠错的奇偶校验对应的信息位。在下文中,假设奇偶校验可包括多个奇偶校验位,终止奇偶校验pt可包括多个终止奇偶校验位。例如,ecc编码器19a可将奇偶校验矩阵划分为第一子矩阵和第二子矩阵;基于第一子矩阵对写入数据data中的一些数据进行编码,从而生成第一子码字;基于第二子矩阵对写入数据data中的剩余数据进行编码,从而生成第二子码字。

存储器接口15可从ecc编码器19a接收码字cw,并将接收的码字cw输出到存储器装置20。在这种情况下,存储器接口15可包括序列重新排列单元15a,序列重新排列单元15a可对码字cw的子码字subcw与终止奇偶校验pt之间的顺序进行重新排列,或者对包括在一个子码字subcw中的位的顺序进行重新排列。存储器装置20可接收码字cw,并将接收的码字cw存储在存储单元阵列22中,然后可响应于存储器控制器10的读取命令,将存储在存储器装置20中的码字cw'输出到存储器控制器10。如上所述,码字cw'可包括由于存储器装置20的存储器单元的劣化等引起的位错误。存储器接口15可将向ecc解码器19b提供从存储器装置20接收的码字cw'。尽管图2示出码字cw'被从存储器接口15直接提供给ecc解码器19b的情况,但是实施例不限于此。例如,存储器控制器10还可包括预定缓冲器(例如,图1中的ram17),缓冲器可临时地存储码字cw'。ecc解码器19b可选择性地从缓冲器读取(或接收)码字的部分,从而在子码字的基础上执行解码操作。ecc解码器19b在子码字的基础上执行解码操作,并且当完成对与从存储器控制器10输出到主机的数据大小单位对应的数据data的解码时,存储器控制器10可将解码的数据直接输出到主机。

图3是用于解释与ldpc码对应的奇偶校验矩阵h的实施例的示图。

参照图3,特纳图(tannergraph)可包括12个检查节点s1至s12,27个可变节点,即,15个信息节点x1、x2、x4、x5、x7、x8、x10、x11、x13、x14、x16、x17、x19、x20和x22,7个奇偶校验节点x3、x6、x9、x12、x15、x18和x21以及5个终止奇偶校验节点x23、x24、x25、x26和x27。奇偶校验矩阵h的第i列(其中,i为整数)和第j行(其中,j为整数)可分别对应于可变节点xi和检查节点sj。奇偶校验方程可由连接到一个检查节点的可变节点表示。例如,两个信息节点x1和x2以及奇偶校验节点x3可连接到检查节点s1,以这种方式,可导出一个奇偶校验方程。奇偶校验方程是构成h·cwt=0的公式(其中,cw是对应于码字的矩阵),因此,可通过奇偶校验矩阵h来确定奇偶校验方程。

由于奇偶校验矩阵h包括27列,因此,基于奇偶校验矩阵h生成的码字的长度可由27位构成。码字可包括用于检查和校正与从主机接收的数据对应的信息位以及位错误的奇偶校验和终止奇偶校验。具体地讲,终止奇偶校验用于保证存储器装置的码字的接收质量,并且可基于奇偶校验矩阵h通过使用具有存储器控制器和存储器装置已经预先确定的值的虚拟信息来生成。换句话说,终止奇偶校验可以是用于确保整个码字的校验子变为零向量的位数据。整个码字的校验子可以是h·cwt操作的结果。作为示例,可基于第八基础矩阵bm8和第九基础矩阵bm9中的每一个的部分或全部来生成终止奇偶校验。然而,图3中所示的奇偶校验矩阵h仅是示例,奇偶校验矩阵h不限于此,并且奇偶校验矩阵h可被不同的设计。此外,根据码字的码率和可变节点的程度值,终止奇偶校验可存在于一个子块lpdc码中或者存在于多个子块lpdc码上。

图4是用于解释图2的符合奇偶校验矩阵ha的结构的ecc编码器19a的操作的示图。

参照图2和图4,奇偶校验矩阵ha可包括第一子矩阵sub_m1a和第二子矩阵sub_m2a,用于生成终止奇偶校验的终止矩阵bm_ta可位于第二子矩阵sub_m2a中的最后部分。也就是说,第十二基础矩阵bm12可对应于终止矩阵bm_ta。ecc编码器19a可基于第一子矩阵sub_m1a对从主机接收的写入数据data的第一数据data_1进行编码,从而生成第一子码字subcw_1a,并且可基于第二子矩阵sub_m2a对写入数据data的第二数据data_2进行编码,从而生成第二子码字subcw_2a。第一子码字subcw_1a和第二子码字subcw_2a中的每一个可包括排列信息位的信息扇区i_sec和排列奇偶校验的奇偶校验扇区p_sec。ecc编码器19a可在对第二数据data_2进行编码中,通过使用第十二基础矩阵bm12来生成终止奇偶校验。码字cwa可包括第一子码字、第二子码字和终止奇偶校验。终止奇偶校验可位于第二子码字subcw_2a的后端的终止奇偶校验扇区pt_sec中。存储器控制器10可将如上所述的编码的码字cwa输出到存储器装置20。

在一个实施例中,考虑到将参照图6a等描述的解码,存储器控制器10可在编码之前预先对数据进行重新排列。作为示例,在第一种情况case1下,存储器控制器10可以不重新排列第一数据data_1,并且可反转第二数据data_2,使得第二数据data_2在从第二数据data_2的最高有效位(msb)到第二数据data_2的最低有效位(lsb)的方向上被编码。然而,当在第二种情况case2下时,存储器控制器10可以不控制针对第一数据data_1和第二数据data_2的重新排列操作。

图5是用于解释存储器装置100的实施例的存储器操作的示图。

参照图5,存储器装置100可包括控制逻辑元件110、页缓冲器电路120、数据输入/输出(i/o)电路130、电压生成器140、行解码器150和存储器单元阵列160。在各个实施例中,控制逻辑元件110可包括被配置为响应于存储在存储器中的指令来执行逻辑运算的逻辑电路和/或处理器等。在下文中,为了便于描述,控制逻辑元件110被称为“控制逻辑110”。数据i/o电路130可对应于图1的存储器装置20的接口24。

存储器单元阵列160可经由字线wl、串选择线ssl和地选择线gsl连接到行解码器150,并且可经由位线bl结合到页缓冲器电路120。存储器单元阵列160可包括多个存储器块。

行解码器150可对地址进行解码,从而选择存储器单元阵列160的字线wl中的任何一个。行解码器150可将从电压生成器140接收的字线电压vwl提供给存储器单元阵列160的选择的子线wl。根据由控制逻辑110执行的操作,页缓冲器电路120可作为写入驱动器或传感放大器来操作。

控制逻辑110可基于从存储器控制器接收的命令cmd和地址addr来控制存储器操作。数据i/o电路130可接收第一码字cw1a和第二码字cw2a。数据i/o电路130可将接收的第一码字cw1a和接收的第二码字cw2a顺序地提供给页缓冲器电路120。例如,数据i/o电路130可将接收的第一码字cw1a和接收的第二码字cw2a中的每一个的位按照从lsb到msb的顺序提供给页缓冲器电路120。页缓冲器电路120可包括具有预设大小的页缓冲器bf,第一码字cw1a和第二码字cw2a可被临时地写入到页缓冲器bf。页缓冲器bf的大小可对应于写入到存储器单元阵列160或从存储器单元阵列160读取的数据的最小大小单位。例如,第一码字cw1a可按照第一子码字subcw_11a、第二子码字subcw_12a和终止奇偶校验pt的顺序存储在页缓冲器bf中,第二码字cw2a可按照第一子码字subcw_21a、第二子码字subcw_22a和终止奇偶校验pt的顺序存储在页缓冲器bf中。页缓冲器电路120可在控制逻辑110的控制下,将存储在页缓冲器bf中的第一码字cw1a和第二码字cw2a作为一个单位(例如,页单位)写入到存储器单元阵列160中。

控制逻辑110可从存储器控制器接收读取命令cmd和地址addr。页缓冲器电路120可在控制逻辑110的控制下,读取存储在存储器单元阵列160中的码字cw1a'和cw2a',并将码字cw1a'和cw2a'临时写入到页缓冲器bf中。页缓冲器电路120可在控制逻辑110的控制下,通过数据i/o电路130将存储在页缓冲器bf中的码字cw1a'和cw2a'输出到存储器控制器。

尽管图5示出具有与两个码字的数据大小对应的大小的页缓冲器bf,但是实施例不限于此。例如,页缓冲器bf可根据存储器操作规范被实现为具有各种大小。

图6a和图6b是用于解释图2的符合奇偶校验矩阵ha的结构的ecc解码器19b的操作的示图。图6a是示出假设图4的第一种情况case1来执行解码的情况的示图,图6b是示出假设图4的第二种情况case2来执行解码的情况的示图。

参照图2和图6a,ecc解码器19b可通过使用基于与第一子码字subcw_1a'相关联的第一子矩阵sub_m1a设置的第一方向上的第一滑动窗口wd_1a、wd_2a、…,来将第一子码字subcw_1a'解码为第一数据data_1。ecc解码器19b可通过使用从包含在第一方向上的第一滑动窗口wd_1a、wd_2a、…中的每一个中的行分量和列分量导出的奇偶校验方程来对第一子码字subcw_1a'进行解码。具体地讲,ecc解码器19b可在将第一滑动窗口wd_1a、wd_2a、…沿对角线方向朝着对于奇偶校验矩阵ha的右下移动的同时,对第一子码字subcw_1a'进行解码,因此,可在从第一子码字subcw_1a'的lsb到第一子码字subcw_1a'的msb的方向上对第一子码字subcw_1a'进行解码。因此,随着解码被执行,第一数据data_1的lsb可被首先生成,第一数据data_1的msb可被最后生成。与完成解码的扇区对应的第一数据data_1的位可作为读取数据被优先地输出到主机host。

ecc解码器19b可通过使用基于与第二子码字subcw_2a'相关联的第二子矩阵sub_m2a设置的可与第一方向相反的第二方向上的第二滑动窗口wd_1b、wd_2b、…,来将第二子码字subcw_2a'解码为第二数据data_2。具体地讲,ecc解码器19b可在将第二滑动窗口wd_1b、wd_2b、…沿对角线方向朝着对于奇偶校验矩阵ha的左上移动的同时,对第二子码字subcw_2a'进行解码,因此,可在从第二子码字subcw_2a'的msb到第二子码字subcw_2a'的lsb的方向上对第二子码字subcw_2a'进行解码。如上所述,在图4的第一种情况case1下,第二数据data_2在编码之前被反转,因此,随着解码被执行,第二数据data_2的lsb可被首先生成,第二数据data_2的msb可被最后生成。与完成解码的扇区对应的第二数据data_2的位可被优先地输出到主机host。

参照图6b,与图6a不同,在图4的第二种情况case2下,在对第二数据data_2进行编码之前不执行重新排列操作,因此,随着解码被执行,第二数据data_2的msb可被首先生成,第二数据data_2的lsb可被最后生成。因此,当第二子码字subcw_2a'的解码被完成时,生成整个第二数据,从第二数据data_2的lsb到第二数据data_2的msb的位可顺序地输出到主机host。

图7a是用于解释图2的符合奇偶校验矩阵hb的结构的ecc编码器19a的操作的示图。图7b是在图7a的奇偶校验矩阵hb的结构中生成终止奇偶校验的方法的流程图。

参照图2和图7a,奇偶校验矩阵hb可包括第一子矩阵sub_m1b和第二子矩阵sub_m2b,用于生成终止奇偶校验的终止矩阵bm_tb可位于第一子矩阵sub_m1b与第二子矩阵sub_m2b之间的边界处。也就是说,第六基础矩阵bm6的部分和第七基础矩阵bm7的部分可对应于终止矩阵bm_tb。ecc编码器19a可基于第一子矩阵sub_m1b对从主机接收的写入数据data的第一数据data_1进行编码,从而生成第一子码字subcw_1b,并且可基于第二子矩阵sub_m2b对写入数据data的第二数据data_2进行编码,从而生成第二子码字subcw_2b。

然而,与图4中的奇偶校验矩阵ha的结构不同,由于终止矩阵bm_tb被排列在第一子矩阵sub_m1b与第二子矩阵sub_m2b之间的边界处,所以终止奇偶校验可以与第一子码字subcw_1b和第二子码字subcw_2b相关联。因此,可使用对第一数据data_1的编码的结果和对第二数据data_2的编码的结果来生成终止奇偶校验。

参照用于解释生成终止奇偶校验的方法的图7b,通过基于第一子矩阵sub_m1b对第一数据data_1进行编码来生成第一子码字subcw_1b(操作s100),通过基于第二子矩阵sub_m2b对第二数据data_2进行编码来生成第二子码字subcw_2b(操作s110)。基于与终止奇偶校验相关联的终止矩阵bm_tb来获取第一子码字subcw_1b的第一局部校验子(操作s120),基于与终止奇偶校验相关联的终止矩阵bm_tb来获取第二子码字subcw_2b的第二局部校验子(操作s130)。使用第一局部校验子和第二局部校验子来生成终止奇偶校验(操作s140)。

返回参照图7a,存储器控制器10可将位于码字cwb上的终止奇偶校验扇区pt_sec放置在第二子码字subcw_2b的后端。针对此,将参照图8a至图9来描述存储器装置20的操作和ecc解码器19b的操作。存储器控制器10还可将位于码字cwb上的终止奇偶校验扇区pt_sec放置在第一子码字subcw_1b与第二子码字subcw_2b之间。针对此,将参照图10a至图11来描述存储器装置20的操作和ecc解码器19b的操作。

图8a和图8b是用于解释存储器装置100的实施例的存储器操作的示图。在下文中,图8a和图8b中示出的存储器装置100的配置与图5中示出的存储器装置100的配置一样,因此,将省略对它们的详细描述。

参照图8a,控制逻辑110可基于从存储器控制器接收的写入命令w_cmd和地址addr来控制写入操作。数据i/o电路130可接收第一码字cw1b和第二码字cw2b。数据i/o电路130可将接收的第一码字cw1b和第二码字cw2b顺序地提供给页缓冲器电路120。页缓冲器电路120可包括具有预设大小的页缓冲器bf。第一码字cw1b可按照第一子码字subcw_11b、第二子码字subcw_12b和终止奇偶校验pt的顺序存储在页缓冲器bf中,第二码字cw2b可按照第一子码字subcw_21b、第二子码字subcw_22b和终止奇偶校验pt的顺序存储在页缓冲器bf中。页缓冲器电路120可在控制逻辑110的控制下,将存储在页缓冲器bf中的第一码字cw1b和第二码字cw2b写入存储器单元阵列160中。

参照图8b,控制逻辑110可从存储器控制器接收读取命令r_cmd和数据将被读取的存储器单元阵列中的地址addr。页缓冲器电路120可在控制逻辑110的控制下,读取存储在存储器单元阵列160中的第一码字cw1b'和第二码字cw2b',并将第一码字cw1b'和第二码字cw2b'临时地写入到页缓冲器bf中。页缓冲器电路120可在控制逻辑110的控制下,通过数据i/o电路130将存储在页缓冲器bf中的第一码字cw1b'和第二码字cw2b'输出到存储器控制器。

根据实施例的控制逻辑110可基于输出序列管理信息m_info,对存储在页缓冲器bf中的第一码字cw1b'和第二码字cw2b'中的每一个进行重新排列,并通过数据i/o电路130输出重新排列的码字,存储器控制器可按照从存储器装置100输出的第一码字cw1b'和第二码字cw2b'中的每一个的位顺序来执行顺序解码。在一个实施例中,控制逻辑110可基于输出序列管理信息m_info,控制第一码字cw1b'按照与地址“a”至地址“b”对应的第一子码字subcw_11b'、与地址“c”至地址“d”对应的终止奇偶校验pt、与地址“b”至地址“c”对应的第二子码字subcw_12b'的顺序来输出。此外,控制逻辑110可控制第二子码字subcw_12b'按照与相反的地址(即,从地址“c”至地址“b”)对应的位顺序来输出。因此,第一子码字subcw_11b'可按照从lsb到msb的顺序输出,而第二子码字subcw_12b'可按照从msb到lsb的顺序输出。在其他实施例中,第二码字cw2b'还可以以与第一码字cw1b'相同的方式输出。

可针对页缓冲器bf的每个区域预先设置通过数据i/o电路130输出的位的顺序。也就是说,可根据页缓冲器bf的区域预先设置正向输出和反转输出。可使用页缓冲器bf的地址来指定页缓冲器bf的区域。这样的设置信息可由控制逻辑110管理为输出序列管理信息m_info。然而,这种情况仅是示例实施例,并且不限于此。例如,可通过一个或多个标志位来设置第一码字cw1b'的第一子码字subcw_11b'、第二子码字subcw_12b'和终止奇偶校验pt的输出顺序,以及第一码字cw1b'的第一子码字11b'和第二子码字subcw_12b'的正向输出和反转输出。此外,可通过一个或多个标志位来设置第二码字cw2b'的第一子码字subcw_21b'、第二子码字subcw_22b'和终止奇偶校验pt的输出顺序,以及第二码字cw2b'的第一子码字21b'和第二子码字subcw_22b'的正向输出和反转输出。控制逻辑110可针对第一码字cw1b'和第二码字cw2b'中的每一个来设置标志位,从而控制第一码字cw1b'和第二码字cw2b'中的每一个的输出顺序,使得存储器控制器按照由存储器装置100输出的第一码字cw1b'和第二码字cw2b'中的每一个的位顺序来执行顺序解码。

图9是用于解释图2的符合奇偶校验矩阵hb的结构的ecc解码器19b的操作的示图。在图9中,假设以参照图8b描述的方式从存储器装置20输出码字cwb'。

参照图2和图9,存储器装置20可将第一子码字subcw_1b'和终止奇偶校验顺序地输出到存储器控制器10。存储器装置20可按照从msb到lsb的顺序将第二子码字subcw_2b'输出到存储器控制器10。ecc解码器19b可接收第一子码字subcw_1b'和终止奇偶校验,并立即通过使用第一方向上的第一滑动窗口wd_1a、wd_2b、…,来对第一子码字subcw_1b'进行解码。

由于ecc解码器19b按照从msb到lsb的顺序接收第二子码字subcw_2b',因此,ecc解码器19b可通过使用在与第一方向相反的情况下的第二方向上的第二滑动窗口wd_1b、wd_2b、…,按照从msb到lsb的顺序对第二子码字subcw_2b'执行解码。ecc解码器19b的其他特定操作与参照图6b描述的操作类似,因此,将省略对它们的详细描述。

图10a和图10b是用于解释存储器装置100的示例实施例的存储器操作的示图。在下文中,已经参照图5来描述存储器装置100的配置,因此,将省略对它们的详细描述。

参照图10a,控制逻辑110可从存储器控制器接收写入命令w_cmd和地址addr,与图8a中不同,数据i/o电路130可从存储器控制器接收重新排列的码字cw1b和cw2b。在一个实施例中,第一码字cw1b可按照第一子码字subcw_11b、终止奇偶校验pt和反转的第二子码字subcw_12b的顺序存储在页缓冲器电路120的页缓冲器bf中,第二码字cw2b可按照第一子码字subcw_21b、终止奇偶校验pt和反转的第二子码字subcw_22b的顺序存储在页缓冲器bf中。页缓冲器电路120可在控制逻辑110的控制下,将存储在页缓冲器bf中的第一码字cw1b和第二码字cw2b写入到存储器单元阵列160中。

参照图10b,控制逻辑110可从存储器控制器接收读取命令r_cmd和地址addr,页缓冲器电路120可在控制逻辑110的控制下,读取存储在存储器单元阵列160中的码字cw1b'和cw2b',并将读取的码字cw1b'和cw2b'临时写入到页缓冲器bf中。页缓冲器电路120可在控制逻辑110的控制下,通过数据i/o电路130将存储在页缓冲器bf中的码字cw1b'和cw2b'输出到存储器控制器。

图11是用于解释图2的符合奇偶校验矩阵hb的结构的ecc解码器19b的操作的示图。在图11中,假设以参照图10b描述的方式从存储器装置20输出码字cwb'。

参照图2和图11,存储器装置20可按照从lsb到msb的顺序将第一子码字subcw_1b'、终止奇偶校验和反转的第二子码字subcw_2b'输出到存储器控制器。由于ecc解码器19b按照从lsb到msb的顺序接收反转的第二子码字subcw_2b',但是第二子码字subcw_2b'具有在存储器控制器10中完成编码之后反转的形式,因此,ecc解码器19b可通过使用可与第一方向相反的第二方向上的第二滑动窗口wd_1b、wd_2b、…,按照从lsb到msb的顺序对反转的第二子码字subcw_2b'进行解码。ecc解码器19b的其他特定操作与参照图9描述的操作类似,将省略对它们的详细描述。

图12a和图12b是用于解释图2的符合奇偶校验矩阵hb的结构的ecc解码器19b的针对第一子码字subcw_1b'的解码操作的示图。

参照图2和图12a,ecc解码器19b可仅基于第一子矩阵sub_m1b,对第一子码字subcw_1b'进行解码。也就是说,ecc解码器19b可改变第一方向上的第一滑动窗口wd_1a至wd_na的大小,使得第一方向上的第一滑动窗口wd_1a至wd_na可仅设置在第一矩阵sub_m1b内。作为示例,ecc解码器19b可将最后的第一滑动窗口wd_na设置为包括终止矩阵bm_tb的部分。ecc解码器19b可通过使用第一方向上的具有可变大小的第一滑动窗口wd_1a至wd_na和与终止矩阵bm_tb的部分相关联的终止奇偶校验局部pt来对第一子码字subcw_1b'进行解码。以这种方式,对第一子码字subcw_1b'进行解码所需的时间可被减少,因此,存储器系统1的数据输出延迟可被改进。

参照图2和图12b,ecc解码器19b基于第一子矩阵sub_m1b和第二子矩阵sub_m2b的部分对第一子码字subcw_1b'进行解码。也就是说,ecc解码器19b可将第一方向上的具有固定大小的第一滑动窗口wd_1a至wd_na设置为包括第二子矩阵sub_m2b的部分。例如,ecc解码器19b可将最后的第一滑动窗口wd_na设置为包括第二子矩阵sub_m2b的部分。ecc解码器19b可通过使用第一方向上的第一滑动窗口wd_1a至wd_na、终止奇偶校验pt和与第二子矩阵sub_m2b的部分相关联的第二子码字的部分局部subcw_2b'来对第一子码字subcw_1b'进行解码。ecc解码器19b可从存储器控制器10中的缓冲器选择性地读取第二子码字的部分局部subcw_2b'或终止奇偶校验pt。以这种方式,针对第一子码字subcw_1b'的位纠错能力(biterrorcorrectioncapability)可被提高,因此,存储器系统1的可靠性可被提高。

图13是存储器系统200的实施例的框图。

参照图13,存储器系统200可包括存储器控制器210和多个存储器装置230_1至230_k。存储器控制器210可包括存储器接口单元211、ecc逻辑元件212、主机接口213、ram214和中央处理器215。在各个实施例中,ecc逻辑元件212可包括被配置为响应于存储在存储器中的指令而执行逻辑运算的逻辑电路和/或处理器等。在下文中,为了便于描述,ecc逻辑元件212被称为“ecc逻辑212”。ecc逻辑212可包括第一ecc电路212_1至第kecc电路212_k,存储器接口单元211可包括第一存储器接口211_1至第k存储器接口211_k。存储器接口211_1至存储器接口211_k可分别经由通道ch1至通道chk,连接到存储器装置230_1至存储器装置230_k。ecc电路212_1至ecc电路212_k中的每一个可将与写入请求一起从主机接收的数据进行划分,并执行并行编码,从而生成子码字。生成的子码字可以以分布式的方式存储在存储器装置230_1至存储器装置230_k中。然后,当从主机接收针对数据的读取请求时,ecc电路212_1至ecc电路212_k中的每一个可通过存储器接口单元211,从存储器装置230_1至存储器装置230_k接收子码字。ecc电路212_1至ecc电路212_k中的每一个可对接收的子码字执行并行解码,然后可通过使用ram214对作为解码的结果而生成的数据进行合并,并通过主机接口213将合并的数据输出到主机。然而,图13的实施例仅是示例,并且不限于此,根据存储器控制器210的编码/解码操作策略,可通过各种方法来执行编码/解码操作。

图14a、图14b、图14c和图14d是用于解释编码方法和解码方法的实施例的示图。

参照图14a,从主机接收的写入数据可被划分为第一数据data_1和第二数据data_2,第一ecc电路212_1和第二ecc电路212_2可分别接收第一数据data_1和第二数据data_2。第一ecc电路212_1可对第一数据data_1进行编码,第二ecc电路212_2可对第二数据data_2进行编码。可并行地执行第一ecc电路212_1的编码操作和第二ecc电路212_2的编码操作。

第一ecc电路212_1和第二ecc电路212_2可共享它们各自的编码操作所需的第一信息sh_info_1。第一信息sh_info_1可包括第一数据data_1中的一些或全部、第二数据data_2中的一些或全部,以及针对第一数据data_1的编码结果和针对第二数据data_2的编码结果中的至少一个编码结果。当执行各自的编码操作时,第一ecc电路212_1和第二ecc电路212_2可使用第一信息sh_info_1。

第一ecc电路212_1可通过第一存储器接口211_1将通过对第一数据data_1进行编码生成的第一子码字subcw_1输出到第一存储器装置230_1,第二ecc电路212_2可通过第二存储器接口211_2将通过对第二数据data_2进行编码生成的第二子码字subcw_2输出到第二存储器装置230_2。第一存储器装置230_1可存储第一子码字subcw_1,第二存储器装置230_2可存储第二子码字subcw_2。

参照图14b,与图14a中不同,第一ecc电路212_1可接收写入数据data,将写入数据data划分为第一数据和第二数据,对第一数据和第二数据进行编码,并输出第一子码字subcw_1和第二子码字subcw_2。

参照图14c,第一ecc电路212_1可通过第一存储器接口211_1从第一存储器装置230_1接收第一子码字subcw_1',并对第一子码字subcw_1'进行解码。第二ecc电路212_2可通过第二存储器接口211_2从第二存储器装置230_2接收第二子码字subcw_2',并对第二子码字subcw_2'进行解码。第一ecc电路212_1的解码操作和第二ecc电路212_2的解码操作可并行地执行。

第一ecc电路212_1和第二ecc电路212_2可共享它们各自的解码操作所需的第二信息sh_info_2。第二信息sh_info_2可包括第一子码字subcw_1'的部分或全部、第二子码字subcw_2'的部分或全部以及针对第一子码字subcw_1'的解码结果和针对第二子码字subcw_2'的解码结果中的至少一个解码结果。当执行各自的解码操作时,第一ecc电路212_1和第二ecc电路212_2可使用第二信息sh_info_2。

第一ecc电路212_1可输出通过对第一子码字subcw_1'进行解码而生成的第一数据data_1,第二ecc电路212_2可输出通过对第二子码字subcw_2'进行解码而生成的第二数据data_2。

参照图14d,与图14c中不同,第一ecc电路212_1可接收通过对第一子码字subcw_1'和第二子码字subcw_2'进行合并而生成的码字。第一ecc电路212_1可输出通过对该码字进行解码而生成的数据data。

图15是用于解释图2的符合奇偶校验矩阵hc的结构的ecc编码器19a的操作的示图。

参照图2和图15,奇偶校验矩阵hc可包括第一局部奇偶校验矩阵partial_h1至第四局部奇偶校验矩阵partial_h4。这里,第一局部奇偶校验矩阵partial_h1至第四局部奇偶校验矩阵partial_h4可以是独立的矩阵,并且彼此可以不相关联。由于第一局部奇偶校验矩阵partial_h1至第四局部奇偶校验矩阵partial_h4的独立特性,因此,在使用奇偶校验矩阵hc进行编码/解码期间,校正能力可被降低。为了对此进行补偿,奇偶校验矩阵hc还可包括第一隧道信息t_info1至第三隧道信息t_info3。第一隧道信息t_info1可以与第一局部奇偶校验矩阵partial_h1和第二局部奇偶校验矩阵partial_h2相关联,第一隧道检查方程可通过第一隧道信息t_info1导出。第二隧道信息t_info2可以与第二局部奇偶校验矩阵partial_h2和第三局部奇偶校验矩阵partial_h3相关联,第二隧道检查方程可通过第二隧道信息t_info2导出。第三隧道信息t_info3可以与第三局部奇偶校验矩阵partial_h3和第四局部奇偶校验矩阵partial_h4相关联,第三隧道检查方程可通过第三隧道信息t_info3导出。

ecc编码器19a可基于第一局部奇偶校验矩阵partial_h1对从主机接收的写入数据data的第一数据进行编码,从而生成第一子码字subcw_1c;基于第二局部奇偶校验矩阵partial_h2对写入数据data的第二数据进行编码,从而生成第二子码字subcw_2c;基于第三局部奇偶校验矩阵partial_h3对写入数据data的第三数据进行编码,从而生成第三子码字subcw_3c;基于第四局部奇偶校验矩阵partial_h4对写入数据data的第四数据进行编码,从而生成第四子码字subcw_4c。此外,ecc编码器19a可通过使用第一隧道信息t_info1生成第一隧道奇偶校验(也称为第一隧道奇偶校验码)p_tunnel_1,通过使用第二隧道信息t_info2生成第二隧道奇偶校验(也称为第二隧道奇偶校验码)p_tunnel_2,通过使用第三隧道信息t_info3生成第三隧道奇偶校验(也称为第三隧道奇偶校验码)p_tunnel_3。第一隧道奇偶校验p_tunnel_1至第三隧道奇偶校验p_tunnel_3可分别满足第一隧道检查方程至第三隧道检查方程。

ecc编码器19a可通过以如上所述的方式对写入数据data进行编码,来生成包括第一子码字subcw_1c至第四子码字subcw_4c以及第一隧道奇偶校验p_tunnel_1至第三隧道奇偶校验p_tunnel_3的码字cwc。参照图15以及其后描述的子码字大小可与图15之前描述的子码字大小相同或不同。

图16是示出生成隧道奇偶校验(也称为隧道奇偶校验码)的方法的实施例的流程图。

参照图2、图15和图16,ecc编码器19a可基于第一局部奇偶校验矩阵partial_h1对第一数据进行编码(操作s200)。ecc编码器19a可将第一子码字subcw_1c中的至少一部分存储在存储器控制器10中的缓冲器中(操作s210)。ecc编码器19a可基于第二局部奇偶校验矩阵partial_h2对第二数据进行编码(操作s220)。ecc编码器19a可将第二子码字subcw_2c中的至少一部分存储在存储器控制器10中的缓冲器中(操作s230)。接下来,ecc编码器19a可通过使用存储在缓冲器中的第一子码字subcw_1c中的至少一部分和存储在缓冲器中的第二子码字subcw_2c中的至少一部分,生成满足通过第一隧道信息t_info_1导出的第一隧道检查方程的第一隧道奇偶校验p_tunnel_1(操作s235)。在一个实施例中,ecc编码器19a可通过使用第一子码字subcw_1c和第二子码字subcw_2c来将用于隧道的检查矩阵的校验子变为“0”的值确定为第一隧道奇偶校验p_tunnel_1。

ecc编码器19a可基于第三局部奇偶校验矩阵partial_h3对第三数据进行编码(操作s240)。ecc编码器19a可将第三子码字subcw_3c中的至少一部分存储在在储器控制器10中的缓存器中(操作s250)。接下来,ecc编码器19a可通过使用存储在缓冲器中的第二子码字subcw_2c中的至少一部分和存储在缓冲器中的第三子码字subcw_3c中的至少一部分来生成满足通过第二隧道信息t_info_2导出的第二隧道检查方程的第二隧道奇偶校验p_tunnel_2(操作s255)。

ecc编码器19a可基于第四局部奇偶校验矩阵partial_h4对第四数据进行编码(操作s260)。ecc编码器19a可将第四子码字subcw_4c中的至少一部分存储在存储器控制器10中的缓存器中(操作s270)。接下来,ecc编码器19a可通过使用存储在缓冲器中的第三子码字subcw_3c中的至少一部分和存储在缓冲器中的第四子码字subcw_4c中的至少一部分来生成满足通过第三隧道信息t_info_3导出的第三隧道检查方程的第三隧道奇偶校验p_tunnel_3(操作s275)。

图17是示出解码操作的实施例的流程图。在下文中,通过集中于图15的奇偶校验矩阵的结构来描述解码操作。然而,实施例不限于此,解码操作可应用于图4的奇偶校验矩阵ha和图7a的奇偶校验矩阵hb的结构。

ecc解码器可在两个阶段上执行解码操作。首先,ecc解码器可从存储器控制器中的缓冲器读取目标子码字(操作s300)。ecc解码器可通过使用与目标子码字相关联的一个局部奇偶校验矩阵,以滑动窗口的方式对目标子码字执行解码(操作310)。第一阶段解码操作可包括操作s300和操作s310。接下来,ecc解码器可确定第一阶段解码操作是否成功(操作s320)。当确定第一阶段解码操作成功时(操作s320,是),通过解码生成的数据可被发送到主机(操作s330)。当确定第一阶段解码操作失败时(操作s320,否),ecc解码器可选择与目标子码字相邻的至少一个子码字(操作s340)。ecc解码器还可从存储器控制器中的缓冲器读取选择的子码字的部分或全部以及隧道奇偶校验(操作s350)。接下来,ecc解码器可通过使用与选择的子码字的部分相关联的局部奇偶校验矩阵、隧道信息等来以滑动窗口的方式执行联合解码(jointdecoding)(操作s360)。第二阶段解码操作可包括操作s350和操作s360。接下来,ecc解码器可确定第二阶段解码操作是否成功(操作s370)。当确定第二阶段解码操作成功时(操作s370,是),通过解码生成的数据可被发送到主机(操作s330)。当确定第二阶段解码操作失败时(操作s370,否),ecc解码器可确定解码不成功(操作s380),并结束针对目标子码字的解码操作。然而,这种情况仅是示例实施例,可以更多的阶段执行解码操作,直到针对目标子码字的解码成功。此外,当以更多的阶段执行解码操作时,ecc解码器可能需要更多的解码相关的数据。

图18、图19a、图19b、图19c、图20a和图20b是用于解释图17的第二阶段解码操作的各个实施例的示图。

参照图2和图18,ecc解码器19b还可在第二阶段解码操作中,从存储器控制器10中的缓冲器读取第一隧道奇偶校验p_tunnel_1和第二子码字的部分p_subcw_2c,并且可以可变地设置第一方向上的第一滑动窗口wd_1a至wd_na的大小,使得第一滑动窗口wd_1a至wd_na可包括第一隧道信息t_info1和第二局部奇偶校验矩阵partial_h2的部分。例如,ecc解码器19b可将最后的第一滑动窗口wd_na设置为包括第一隧道信息t_info1和第二局部奇偶校验矩阵partial_h2的部分。ecc解码器19b可通过使用第一隧道奇偶校验p_tunnel_1、第二子码字的部分p_subcw_2c和第一方向上的具有可变大小的第一滑动窗口wd_1a至wd_na来对第一子码字subcw_1c执行第二阶段解码操作。

参照图2和图19a,在第二阶段解码操作中,ecc解码器19b还可从存储器控制器10中的缓冲器读取第二子码字subcw_2c,并基于第二局部奇偶校验矩阵partial_h2对第二子码字subcw_2c执行局部解码。由局部解码操作生成的数据hd可被称为硬决策数据。

参照图19b,ecc解码器19b还可从存储器控制器10中的缓冲器读取第一隧道奇偶校验p_tunnel_1,并基于第一局部奇偶校验矩阵partial_h1和第一隧道信息t_info_1的部分对第一子码字subcw_1c'subcw_1c进行解码。ecc解码器19b可将在可与第一方向相反的第二方向上排列的并具有固定大小的第一滑动窗口wd_1a至wd_na设置为包括第一隧道信息t_info_1的部分。例如,ecc解码器19b可将第一滑动窗口wd_na设置为包括第一隧道信息t_info_1的部分。ecc解码器19b可通过使用第二方向上的第一滑动窗口wd_1a至wd_na、第一隧道奇偶校验p_tunnel_1(或第一隧道奇偶校验p_tunnel_1的部分)和硬决策数据hd,来对第一子码字subcw_1c执行第二阶段解码操作。

参照图19c,与图19b中不同,ecc解码器19b可通过使用第一方向上的第一滑动窗口wd_1a至wd_na来对第一子码字subcw_1c执行第二阶段解码操作。

参照图20a,ecc解码器19b可确定解码失败的程度。当解码失败的程度超过阈值时,与参照图18描述的第二阶段解码操作不同,ecc解码器19b还可读取相邻的子码字和隧道奇偶校验以执行第二阶段解码操作。ecc解码器19b可基于不满足与第一局部奇偶校验矩阵partial_h1对应的奇偶校验方程的检查节点的数量来确定解码失败的程度。

在图20a中,假设对第二子码字subcw_2c执行的ecc解码器19b的第一阶段解码操作已经失败。ecc解码器19b还可在第二阶段解码操作中,从存储器控制器10中的缓冲器读取第一隧道奇偶校验p_tunnel_1、第一子码字的部分p_subcw_1c、第二隧道奇偶校验p_tunnel_2和第三子码字的部分p_subcw_3c。此外,ecc解码器19b可将第一方向上的第二滑动窗口wd_1b至wd_nb设置为包括第一隧道信息t_info_1、第一局部奇偶校验矩阵partial_h1的部分、第二隧道信息t_info_2以及第三局部奇偶校验矩阵partial_h3的部分。例如,ecc解码器19b可将第二滑动窗口wd_1b设置为包括第一隧道信息t_info_1和第一局部奇偶校验矩阵partial_h1的部分,并且可将最后的第二滑动窗口wd_nb设置为包括第二隧道信息t_info_2和第三局部奇偶校验矩阵partial_h3的部分。ecc解码器19b可通过使用第一方向上的第二滑动窗口wd_1b至wd_nb、第一隧道奇偶校验p_tunnel_1、第一子码字的部分p_subcw_1c、第二隧道奇偶校验p_tunnel_2以及第三子码字的部分p_subcw_3c来对第二子码字subcw_2c执行第二阶段解码。

参照图20b,ecc解码器19b可确定解码失败的程度。当解码失败的程度超过阈值时,与参照图19b描述的第二阶段解码操作不同,ecc解码器19b可在进一步读取相邻的子码字并进一步生成硬决策数据之后执行第二阶段解码操作。

在图20b中,假设对第二子码字subcw_2c执行的ecc解码器19b的第一阶段解码操作已经失败。ecc解码器19b还可在第二阶段解码操作中,从存储器控制器10中的缓冲器读取第一子码字subcw_1c和第三子码字subcw_3c,并对第一子码字subcw_1c执行局部解码操作并对第三子码字subcw_3c执行局部解码操作,从而分别生成第一硬决策数据hd1和第二硬决策数据hd2。ecc解码器19b可通过使用第一方向上的第一滑动窗口wd_1a至wd_na、第一隧道奇偶校验p_tunnel_1和第二隧道奇偶校验p_tunnel_2以及第一硬决策数据hd1和第二硬决策数据hd2来对第二子码字subcw_2c执行第二阶段解码操作。此外,当包括第一阶段解码操作和第二阶段解码操作的阶段操作失败时,ecc解码器19b可通过使用与将被解码的目标子码字相邻的子码字来执行根据实施例的联合解码操作。

此外,根据实施例的解码方案不限于此,参照图6a等描述的使用在不同方向上设置的滑动窗口的解码方案可被应用于一个局部奇偶校验矩阵。也就是说,当基于局部奇偶校验矩阵对子码字进行解码时,子码字可被划分为更小数据单位,局部奇偶校验矩阵可被划分为局部子奇偶校验矩阵,因此,参照图6a等描述的双向解码方案可被应用。

如本发明构思的领域中的传统,可根据执行描述的功能的块来描述和示出示例。在此可被称为单元或模块等的这些块可通过模拟和/或数字电路(诸如,逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬连线电路等)被物理地实现,并且可由固件和/或软件可选择地驱动。例如,电路可实现在一个或多个半导体芯片中,或者在诸如印刷电路板等的基底支撑物上。构成块的电路可由专用硬件或由处理器(例如,一个或多个编程的微处理器和相关联的电路)或者由用于执行所述块的一些功能的专用硬件和用于执行所述块的其他功能的处理器的组合来实现。

尽管已经参考本发明构思的实施例具体示出和描述了本发明构思,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可在本发明构思中进行形式和细节上的各种改变。

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