CN112527391B - 存储系统 - Google Patents
存储系统 Download PDFInfo
- Publication number
- CN112527391B CN112527391B CN202010122745.0A CN202010122745A CN112527391B CN 112527391 B CN112527391 B CN 112527391B CN 202010122745 A CN202010122745 A CN 202010122745A CN 112527391 B CN112527391 B CN 112527391B
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- row
- ecc
- error correction
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Error Detection And Correction (AREA)
- Mram Or Spin Memory Techniques (AREA)
- Detection And Correction Of Errors (AREA)
- Shift Register Type Memory (AREA)
Abstract
实施方式实现能够使数据的可靠性提高的存储系统。实施方式的存储系统对移位寄存器型存储器进行控制,将包含多个纠错码帧的编码数据写入移位寄存器型存储器的块。存储系统在第1数据保持移位列内的与第1层对应的位置保存第1纠错码帧所包含的第1数据,在第1数据保持移位列内的与第2层对应的位置保存第2纠错码帧所包含的第2数据,在第2数据保持移位列内的与第2层对应的位置保存第1纠错码帧所包含的第3数据。
Description
本申请享受以日本专利申请2019-170436号(申请日:2019年9月19日)为基础申请的优先权。本申请通过参照该基础申请而包含基础申请的全部内容。
技术领域
本发明的实施方式涉及对移位寄存器型存储器进行控制的存储系统。
背景技术
近年来,具备非易失性存储器的存储系统取得了广泛的普及。作为这样的存储系统之一,已知具备NAND型闪速存储器的固态硬盘驱动器(SSD)。
最近,作为下一代的非易失性存储器,开始开发移位寄存器型存储器。在移位寄存器型存储器中,要求提高所存储的数据的可靠性。
发明内容
本发明的实施方式提供能够使数据的可靠性提高的存储系统。
根据实施方式,存储系统具备移位寄存器型存储器和控制器。所述移位寄存器型存储器具备包括多个数据保持移位列的块,所述多个数据保持移位列各自包括多个存储部。所述移位寄存器型存储器构成为通过使分别在由所述多个数据保持移位列所包含的存储部的集合组成的多个层所保存的数据在从开头层朝向最终层的第1方向上以层为单位移位,并且,将一层的量的写数据放入所述开头层,从而执行写入动作,通过使分别在所述多个层所保存的数据在与所述第1方向相同或者相反的第2方向上以层为单位移位,从而执行读出动作。所述控制器对所述移位寄存器型存储器进行控制,构成为对应该写入所述块的数据进行编码,将包括各自包含码字的多个纠错码帧的编码数据写入所述块。所述控制器构成为:在所述多个数据保持移位列中的第1数据保持移位列内的与第1层对应的位置保存所述多个纠错码帧中的第1纠错码帧所包含的第1数据,在所述第1数据保持移位列内的与第2层对应的位置保存所述多个纠错码帧中的第2纠错码帧所包含的第2数据,在所述多个数据保持移位列中的第2数据保持移位列内的与所述第2层对应的位置保存所述第1纠错码帧所包含的第3数据。
附图说明
图1是表示第1实施方式涉及的存储系统的构成例的框图。
图2是表示第1实施方式涉及的存储系统所包含的磁壁移动存储器内的单元阵列的构成例的图。
图3是表示后进先出(LIFO)型磁壁移动存储器的构成例的图。
图4是表示先进先出(FIFO)型磁壁移动存储器的构成例的图。
图5是表示着眼于LIFO型磁壁移动存储器内的一条磁存储线(MML)的情况下的移位动作的图。
图6是表示着眼于FIFO型磁壁移动存储器的一条MML的情况下的移位动作的图。
图7表示磁壁移动存储器的移位错误的图。
图8是表示与磁壁移动存储器中的错误位置有关的两种特征(特征1、特征2)的图。
图9是表示在磁壁移动存储器的块中沿列方向配置的ECC帧(列ECC帧)的构成例、和在磁壁移动存储器的块中沿行方向配置的ECC帧(行ECC帧)的构成例的图。
图10是表示在第1实施方式涉及的存储系统中使用的、在磁壁移动存储器的块中沿倾斜方向配置的ECC帧(倾斜ECC帧)的构成例的图。
图11是表示分别构成多个倾斜ECC帧的多个码字的逻辑图与磁壁移动存储器的块上的这些码字的物理配置之间的关系的图。
图12是表示磁壁移动存储器的块具有8MML×8层的构成的情况下的倾斜ECC帧的构成例的图。
图13是表示磁壁移动存储器的块具有4MML×16层的构成的情况下的倾斜ECC帧的构成例的图。
图14是表示磁壁移动存储器的块具有4MML×16层的构成的情况下的倾斜ECC帧的其他构成例的图。
图15是表示磁壁移动存储器的块具有16MML×4层的构成的情况下的倾斜ECC帧的两种构成例的图。
图16是表示将应该保存在磁壁移动存储器的块中的二维排列的数据重新排列为一维的数据序列、将一维的数据序列内的数据要素规则性地分配到多个倾斜ECC帧、并将一维的数据序列重新排列为二维排列的数据的处理的图。
图17是表示将二维排列的数据重新排列为一维的数据序列的处理的例子的图。
图18是表示将一维的数据序列所包含的数据要素规则性地分配到多个倾斜ECC帧的处理的例子的图。
图19是表示在第1实施方式涉及的存储系统中执行的写入处理的步骤的流程图。
图20是表示将多个倾斜ECC帧各自沿着倾斜方向配置在磁壁移动存储器的块的物理存储区域的处理的步骤的流程图。
图21是表示使用了多个倾斜ECC帧的解码处理的步骤的流程图。
图22是表示在第2实施方式涉及的存储系统中使用的、组合了行ECC帧和倾斜ECC帧的乘积码的构成例的图。
图23是表示乘积码的逻辑图与磁壁移动存储器的块上的乘积码的物理配置之间的关系的图。
图24是表示磁壁移动存储器的块具有8MML×8层的构成的情况下的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的构成例的图。
图25是表示磁壁移动存储器的块具有4MML×16层的构成的情况下的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的构成例的图。
图26是表示磁壁移动存储器的块具有4MML×16层的构成的情况下的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的其他构成例的图。
图27是表示磁壁移动存储器的块具有16MML×4层的构成的情况下的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的两种构成例的图。
图28是表示在第2实施方式涉及的存储系统中执行的写入处理的步骤的流程图。
图29是表示将多个行ECC帧各自沿着行方向配置在磁壁移动存储器的块的物理存储区域、将多个倾斜ECC帧各自沿着倾斜方向配置在磁壁移动存储器的块的物理存储区域的处理的步骤的流程图。
图30是表示使用了行ECC帧和倾斜ECC帧的解码处理的步骤的流程图。
图31是表示组合了两种倾斜ECC帧的乘积码的构成例的图。
图32是表示组合了两种倾斜ECC帧的乘积码的逻辑图与磁壁移动存储器的块上的乘积码的物理配置之间的关系的图。
图33是表示实现正交的两种倾斜ECC帧的乘积码的逻辑图的图。
图34是表示正交的两种倾斜ECC帧的物理配置的图。
图35A是表示正交的两种倾斜ECC帧的奇偶校验位置的例子的图。
图35B是表示正交的两种倾斜ECC帧的奇偶校验位置的其他例子的图。
图36是表示磁壁移动存储器的块具有7MML×7层的构成的情况下的正交的两种倾斜ECC帧的构成例的图。
图37是表示在第3实施方式涉及的存储系统中使用的、组合了行ECC帧和列ECC帧的乘积码的构成例的图。
图38是表示通过软判定解码基于C2解码的解码结果所包含的似然信息来对C1解码失败了的ECC帧进行解码的处理的图。
图39是表示对可靠度进行表示的对数似然比的例子的图。
图40是表示反复解码的构成例的图。
图41是表示在第3实施方式涉及的存储系统中执行的写入处理的步骤的流程图。
图42是表示在第3实施方式涉及的存储系统中执行的解码处理的步骤的流程图。
图43是表示分别构成多个倾斜ECC帧的多个码字的逻辑图与多个磁壁移动存储器芯片上的这些码字的物理配置之间的关系的图。
图44是表示乘积码的逻辑图与多个磁壁移动存储器芯片上的乘积码的物理配置之间的关系的图。
标号说明
1存储系统、2存储控制器、3磁壁移动存储器、21主机接口、22存储器接口(I/O)、23控制部、24编码部/解码部(Encoder/Decoder)、25数据缓存、MML磁存储线。
具体实施方式
以下,参照附图对实施方式进行说明。
(第1实施方式)
图1表示第1实施方式涉及的存储系统1的构成例。存储系统1包括控制器(存储控制器)2和磁壁移动存储器3。存储系统1能够与主机4连接,在图1中示出存储系统1连接于主机4的状态。主机4是个人计算机、服务器、便携终端等电子设备。
磁壁移动存储器3是移位寄存器型存储器的一个例子。移位寄存器型存储器具备块,该块具备多个数据保持移位列。各数据保持移位列包括多个存储部。块内的数据保持移位列所包含的存储部的集合组成作为移位寄存器的多个级(stage)发挥功能的多个层。
移位寄存器型存储器通过使分别保存于这些多个层的数据在从块内的开头层朝向最终层的第1方向上以层为单位移位,并且,将一层的量的数据放入块内的开头层,从而执行写入动作。另外,移位寄存器型存储器通过使分别保存于这些多个层的数据在与第1方向相同或者相反的第2方向上以层为单位移位,从而执行读出动作。
以下,以作为移位寄存器型存储器的一个例子的磁壁移动存储器3为例,对本实施方式的构成以及动作进行说明。
磁壁移动存储器3是利用了磁壁的移动的移位寄存器型存储器。磁壁移动存储器3包括多个块。各块包括多个磁存储线。各磁存储线作为上述的数据保持移位列发挥功能,包括多个磁存储部。各磁存储部是能够保存磁性的单位。以下,将磁存储线所包含的各磁存储部称为单元。
在磁壁移动存储器3的各块中,该块内的多个磁存储线所包含的单元的集合组成多个层。这些层作为移位寄存器(磁移位寄存器)的多个级发挥功能。各层是对于块的数据的写入以及读出的单位。
磁壁移动存储器3通过使分别保存于块内的多个层的数据在从块内的开头层朝向最终层的第1方向上以层为单位移位,并且,将一层的量的写数据放入块内的开头层,从而执行写入动作,通过使分别保存于块内的多个层的数据在与第1方向相同或者相反的第2方向上以层为单位移位,从而执行读出动作。
当从磁壁移动存储器3内的块读出数据后,该数据会从磁壁移动存储器3消失。
磁壁移动存储器3既可以作为后进先出(LIFO)型磁壁移动存储器来实现,也可以作为先进先出(FIFO)型磁壁移动存储器来实现。
在磁壁移动存储器3作为LIFO型磁壁移动存储器来实现的情况下,为了读出数据而使各层的数据移位的方向与为了写入数据而使各层的数据移位的方向相反。
也即是,在磁壁移动存储器3作为LIFO型磁壁移动存储器来实现的情况下,磁壁移动存储器3通过使分别保存于块内的多个层的数据在从开头层朝向最终层的方向上以层为单位移位,并且,将一层的量的写数据放入块内的开头层,从而执行写入动作。在写入动作中,每当执行一次移位,与一层的量的写数据被放入到块内的开头层同时地,分别保存于块内的各个层的数据向最终层侧移位一层的量。另外,磁壁移动存储器3通过使分别保存于块内的多个层的数据在从最终层朝向开头层的方向上以层为单位移位,执行读出动作。在读出动作中,每当执行一次移位时,与存在于开头层的一层的量的写数据被从块读出同时地,分别保存于块内的各个层的数据向开头层侧移位一层的量。
因此,在块尺寸(size)量的数据被写入到了块的状态下,最初被写入到该块的一层的量的数据存在于最终层,最后被写入到该块的一层的量的数据存在于开头层。块尺寸相当于一个块的容量。
在从块读出块尺寸量的数据的读出动作中,最后被写入到该块的一层的量的数据存在于开头层,因此,通过一次移位被从块读出。最初被写入到该块的一层的量的数据存在于最终层,因此,通过执行“总层数-一次”的移位,从最终层移动到开头层,并且,接着通过一次移位而被从块读出。
另一方面,在磁壁移动存储器3作为FIFO型磁壁移动存储器来实现的情况下,为了读出动作而使各层的数据移位的方向与为了写入动作而使各层的数据移位的方向相同。
也即是,在磁壁移动存储器3作为FIFO型磁壁移动存储器来实现的情况下,磁壁移动存储器3通过使分别保存于块内的多个层的数据在从开头层朝向最终层的方向上以层为单位移位,并且,将一层的量的写数据放入块内的开头层,从而执行写入动作。另外,磁壁移动存储器3通过使分别保存于块内的多个层的数据在从开头层朝向最终层的方向上以层为单位移位,从而执行读出动作。
在从块读出块尺寸量的数据的读出动作中,最初被写入到该块的一层的量的数据存在于最终层,因此,通过一次的移位被从块读出。最后被写入到该块的一层的量的数据存在于开头层,因此,通过执行“总层数-一次”的移位,从开头层移动到最终层,并且,接着通过一次移位而被从块读出。
存储系统1既可以作为SSD(Solid State Drive,固态硬盘驱动器)来实现,也可以作为存储控制器2和磁壁移动存储器3构成为一个封装的存储卡来实现。
存储控制器2按照从主机4接收的写要求(写命令),对向磁壁移动存储器3写入数据进行控制。另外,按照从主机4接收的读要求(读命令),对从磁壁移动存储器3读出数据进行控制。
存储控制器2也可以由如片上系统(System-on-a-chip(SoC))那样的电路来实现。存储控制器2具备主机接口21、存储器接口22、控制部23、编码部/解码部(Encoder/Decoder)24以及数据缓存25。主机接口21、存储器接口22、控制部23、编码部/解码部(Encoder/Decoder)24以及数据缓存25连接于内部总线20。
主机接口21实施按照主机与设备之间的接口标准的处理,向内部总线20输出从主机4接收到的要求、用户数据等。另外,主机接口21向主机4发送从磁壁移动存储器3读出的用户数据、从控制部23接收到的响应等。此外,在本实施方式中,将根据来自的主机4的写入要求而向磁壁移动存储器3写入的数据称为用户数据。
存储器接口22基于来自控制部23的指示,进行向磁壁移动存储器3写入数据的写入动作。另外,基于来自控制部23的指示,存储器接口22进行从磁壁移动存储器3读出数据的读出动作。
控制部23对存储系统1的各构成要素进行总括地控制。控制部23也可以由CPU(处理器)来实现。
控制部23在从主机4经由主机接口21接受到要求的情况下,进行按照该要求的控制。例如,控制部23按照从主机4接收到的写要求,向存储器接口22指示向磁壁移动存储器3的用户数据以及奇偶校验的写入。另外,控制部23按照从主机4接收到的读要求,向存储器接口22指示从磁壁移动存储器3的用户数据以及奇偶校验的读出。在此,奇偶校验意味着作为通过对用户数据进行编码来获得的码字的一部分的纠错码(ECC)。写要求指定逻辑地址和应该写入的写数据的尺寸等。由写要求指定的逻辑地址表示应该写入写数据的逻辑地址。读要求指定逻辑地址和应该读出的数据的尺寸等。由读要求指定的逻辑地址表示与应该读出的数据对应的逻辑地址。
另外,控制部23在从主机4接收到写要求的情况下,决定应该写入储存于数据缓存25的用户数据的、磁壁移动存储器3上的存储区域(存储器区域)。即,控制部23对用户数据的写入目的地进行管理。控制部23使用作为地址变换表发挥功能的查找表(LUT),对由从主机4接收到的写要求指定的逻辑地址与对保存有该逻辑地址所对应的用户数据的磁壁移动存储器3上的存储区域进行表示的物理地址之间的映射进行管理。查找表(LUT)既可以保存于存储系统1内的RAM(动态RAM(DRAM))或者静态RAM(SRAM),也可以以非易失的方式保存于磁壁移动存储器3。在后者中,也可以在存储系统1接通电源时将LUT从磁壁移动存储器3加载到存储系统1内的RAM。
另外,控制部23在从主机4接收到读要求的情况下,使用上述的LUT(地址变换表)将由读要求指定的逻辑地址变换为物理地址,向存储器接口22指示从该物理地址读出数据。
数据缓存25暂时性地保存从主机4接收到的用户数据。另外,数据缓存25暂时性地保存从磁壁移动存储器3读出的用户数据。另外,数据缓存25暂时保存通过对用户数据进行编码来生成的码字(用户数据+ECC)。数据缓存25例如由上述的RAM(SRAM或者DRAM)构成。
从主机4发送的用户数据在内部总线20上被进行传输而保存于数据缓存25。编码部/解码部24对应该写入到磁壁移动存储器3的数据进行编码,生成码字。作为编码,也可以使用任何的编码,但例如可以使用RS(Reed Solomon)编码、BCH(Bose-Chaudhuri-Hocquenghem)编码、LDPC(Low Density Parity Check)编码。编码部/解码部24具备编码部(Encoding Unit)26和解码部(Decoding Unit)27。关于本实施方式的编码以及解码的详细,将在后面进行描述。
为了使说明变得简单,在本实施方式中,设想磁壁移动存储器3包括一个磁壁移动存储器芯片的情况,但本实施方式也可以应用于磁壁移动存储器3包括多个磁壁移动存储器芯片的构成。
图2表示磁壁移动存储器3所包含的存储单元阵列的构成例。在以下中,为了容易理解,使用特定的数值来对存储单元阵列的构成例进行说明,但这些数值不过是例示,本实施方式不限定于这些特定的数值,可以对本实施方式的存储单元阵列的构成应用任意的数值。
存储单元阵列包括多个块。在此,设想各块包括层L1~层Ln的共计n层的情况。在此,n为2以上的自然数。这些n层分别作为上述的移位寄存器的多个级发挥功能。层Ln对应于移位寄存器的最初级,层L1对应于移位寄存器的最后级。
一个块的层L1~Ln能够由该块所包含的多个磁存储线MML来实现。一个块所包含的磁存储线MML的数量不被限定,但在此设想各块包括m条磁存储线MML的情况。在此,m为2以上的自然数。
磁存储线MML是磁移位寄存器,例如由在一个方向上延伸的细长的磁性体来实现。磁存储线MML有时也被称为磁性线、磁性细线或者磁存储细线。
在块中,磁存储线MML在Y(列)方向上延伸,包括能够分别保存磁性的多个单元。在构成磁存储线MML的细长的磁性体的长度方向上排列的多个微小区域各自作为单元发挥功能。
各磁存储线MML的这些单元是块的层L1~层Ln的要素。M条磁存储线MML所包含的多个单元组成为在X(行)方向上延伸的多个层(层L1~层Ln)。例如,块的层Ln包括位于m条磁存储线MML各自的一端侧的m个单元的集合,块的层L1包括位于m条磁存储线MML各自的另一端侧的m个单元的集合。
在图2中,在Y(列)方向上相连的多个六边形的集合表示一个磁存储线MML。一个六边形表示磁存储线MML内的一个单元。以跨m条磁存储线MML的方式在X方向上延伸的圆角四边形表示块的层L1~Ln。
块所包含的层的集合、更详细而言为块所包含的单元的集合作为该块的物理存储区域发挥功能。保存于各单元的各个磁性的磁化方向也可以被作为表示“1”或者“0”的信息来利用。在该情况下,当一个磁存储线MML包括n层时,一个磁存储线MML最大能够保存n位的数据。
或者,也可以不是单一磁性的磁化方向与“1”或者“0”对应,而是两个相邻的磁性的磁化方向的组合被作为表示“1”或者“0”的信息来加以利用。在该情况下也可以为:具有相同的磁化方向的相邻的两个磁性的组合对应于“0”,具有相互不同的磁化方向的相邻的两个磁性的组合对应于“1”。在一个磁存储线MML包括n层的情况下,一个磁存储线MML最大能够保存n-1位的数据。
图3表示LIFO型磁壁移动存储器的构成例。
在LIFO型磁壁移动存储器中,各磁存储线MML以如下的后进先出方式被进行访问,该后进先出方式为:先被写入的数据在接下来被写入数据时其存储位置向里侧移动,对于里面的数据,若不是读出在该里面的数据之后被写入的数据之后,则无法进行读出。
各块所包含的m条磁存储线MML各自的一端分别连接于m个输入输出部。在图3中,这些m个输入输出部的集合作为输入输出部组群31来进行表示。经由输入输出部组群31来进行对于该块的数据的写入以及读出。
输入输出部组群31分别连接于移位控制电路32以及写入读出控制电路33。在写入动作中,移位控制电路32使块内的各层的数据在从层Ln朝向层L1的方向上移位。在读出动作中,移位控制电路32使块内的各层的数据在从层L1朝向层Ln的方向上移位。
在磁壁移动存储器3中,移位控制电路32通过向块内的各磁存储线MML供给电流脉冲,使各磁存储线MML内的磁壁分别移位(移动)。磁壁是具有不同的极性的磁性间的边界。在各磁存储线MML中,通过磁壁的移动,各磁区(磁性)以层为单位(也即是以位为单位)移位(移动)。写入读出控制电路33经由输入输出部组群31控制对于该块的数据的写入以及读出。
图4表示FIFO型磁壁移动存储器的构成例。
在FIFO型磁壁移动存储器中,各磁存储线MML以如下的先进先出方式被进行访问,该先进先出方式为:先被写入的数据在接下来被写入数据时其存储位置向里侧移动,以数据被写入的顺序相同顺序来读出数据。
各块所包含的m条磁存储线MML各自的一端分别连接于m个输入部。在图4中,这些m个输入部的集合作为输入部组群31a来进行表示。经由输入部组群31a来进行对于该块的数据的写入。
各块所包含的m条磁存储线MML各自的另一端分别连接于m个输出部。在图4中,这些m个输出部的集合作为输出部组群31b来进行表示。经由输出部组群31b来进行从该块的数据的读出。
输入部组群31a分别连接于移位控制电路41以及写入控制电路42。在写入动作中,移位控制电路41使块内的各层的数据在从层Ln朝向层L1的方向上移位。在读出动作中,移位控制电路41也使块内的各层的数据在从层Ln朝向层L1的方向上移位。写入控制电路42经由输入部组群31a控制对于该块的数据的写入。
输出部组群31b连接于读出控制电路43。读出控制电路43经由输出部组群31b对从该块的数据的读出进行控制。
图5是表示着眼于LIFO型磁壁移动存储器内的一条磁存储线MML的情况下的移位动作的图。
在图5中,保存于磁存储线MML的各磁性的极性(磁化方向)由“S”或者“N”表示。如上所述,既可以单一磁性的极性表示“1”或者“0”,也可以相邻的两个磁性的组合表示“1”或者“0”。在图5中例示了后者的情形。例如,在磁存储线MML的层L2的单元所保存的磁性(在此为磁性N)具有与在层L1的单元所保存的磁性(在此为磁性S)相同的磁化方向(平行),这些两个磁性的组例如对应于“0”。另外,在磁存储线MML的层Ln的单元所保存的磁性(在此为磁性N)具有与在层Ln-1的单元所保存的磁性(在此为磁性S)相反的磁化方向(反向平行),这些两个磁性的组例如对应于“1”。
例如,在用于将“1”的数据写入磁存储线MML的动作中,与层Ln的单元的磁性的极性相反的极性的磁性被作为写数据放入层Ln。在该情况下,执行使各层的磁性在向下方向上移位一层的量的移位动作。由此,各个层的磁性在从层Ln朝向层L1的方向(也称为向下方向)上移位一层的量,并且,与写数据对应的磁性被放入层Ln。
在读出动作中,例如能够基于在从磁存储线MML连续地读出了两个磁性时磁阻效应元件的电阻状态是否变化,判定读出数据是为“1”、还是为“0”。在读出动作中,首先,执行使各层的磁性在向上方向上移位一层的量的移位动作。由此,从磁存储线MML读出层Ln的磁性,并且,层L1~Ln-1各自的磁性移位至层L2~Ln。
并且,再次执行使各层的磁性在向上方向上移位一层的量的移位动作。原本存在于层Ln-1的磁性存在于层Ln,因此,该磁性被从磁存储线MML读出,并且,层L2~Ln-1各自的磁性移位至层L3~Ln。
在向块写入块尺寸量的数据的写入动作中,最终保存于层L1的数据移位的次数为n次。在从块读出块尺寸量的数据的读出动作中,保存于层L1的数据移位的次数为n次。因此,从写入该数据到该数据被读出为止的总移位次数成为2n次。例如,在块的层数为512的情况下,从写入该数据到该数据被读出为止的总移位次数成为1024次。
另一方面,关于最终保存于层Ln的数据,从写入该数据到该数据被读出为止的总移位次数是2次。
这样,在LIFO型磁壁移动存储器中,数据移位的次数在靠近层Ln的层侧(以下也称为上层侧)的数据和靠近层L1的层侧(以下也称为下层侧)的数据之间会较大地不同,会产生越是靠近层L1的层、移位次数越增加这一偏倚。
图6是表示着眼于FIFO型磁壁移动存储器内的一条磁存储线MML的情况下的移位动作的图。
在图6中,与图5同样地,保存于磁存储线MML的各磁性的极性(磁化方向)由“S”或者“N”表示。在FIFO型磁壁移动存储器中,既可以单一磁性的极性表示“1”或者“0”,也可以相邻的两个磁性的组合表示“1”或者“0”。在图6中例示了后者的情形。
在写入动作中,与LIFO型磁壁移动存储器同样地,执行使各层的磁性在向下方向上移位一层的量的移位动作。由此,各个层的磁性在向下方向上移位一层的量,并且,与写数据对应的磁性被放入层Ln。因此,在向块写入块尺寸量的数据的写入动作中,最终保存于层L1的数据移位的次数为n次。最终保存于层Ln的数据移位的次数为一次。
在读出动作中,也与写入动作同样地,执行使各层的磁性在向下方向上以层为单位移位的移位动作。由此,从磁存储线MML读出保存于层L1的数据,在层L2~层Ln各自所保存的数据在向下方向上移位一层的量。
这样,在磁壁移动存储器3中,通过以层为单位使分别保存于层L1~层Ln的数据移位,执行数据的写入以及读出。因此,有时在磁壁移动存储器3中使数据非易失化时,会发生移位错误这一不良。
图7是表示磁壁移动存储器3的移位错误的图。
图7的(A)示出正常的移位动作。在此,设想如下情况:在开始接下来的数据写入之前的初始状态下,在层Ln中保存磁性N,在层Ln-1~层Ln-4中分别保存磁性S。磁壁存在于层Ln与层Ln-1之间的边界。
为了将接下来的写数据(在此为磁性N)写入磁存储线MML,用于使各层的数据在向下方向上移位的脉冲电流被施加于磁存储线MML。在执行了正常的移位动作的情况下,磁壁移位(移动)一层的量,由此,到达层Ln-1与层Ln-2之间的边界。该移位的结果,分别保存于层Ln~层Ln-3的数据分别移位到层Ln-1~层Ln-4,并且,接下来的写数据(在此为磁性N)被放入到层Ln。
图7的(B)示出数据消失的deletion(删除)这一不良(移位错误)。
在开始接下来的数据写入之前的初始状态下,在层Ln中保存有磁性N,在层Ln-1~层Ln-4中分别保存有磁性S。磁壁存在于层Ln与层Ln-1之间的边界。
为了将接下来的写数据(在此为磁性N)写入磁存储线MML,用于使各层的数据在向下方向上移位的脉冲电流被施加于磁存储线MML。此时,有时磁壁不到达层Ln-1与层Ln-2之间的边界。在该情况下,有时磁壁的位置会回到施加脉冲电流之前的原来的位置。该移位错误的结果,会引起作为一层的量的数据消失的不良的移位错误(deletion)。
图7的(C)示出了被插入不需要的数据的insertion(插入)这一不良(移位错误)。
在开始接下来的数据写入之前的初始状态下,在层Ln中保存有磁性N,在层Ln-1~层Ln-4中分别保存有磁性S。磁壁存在于层Ln与层Ln-1之间的边界。
为了将接下来的写数据(在此为磁性N)写入磁存储线MML,用于使各层的数据在向下方向上移位的脉冲电流被施加于磁存储线MML。此时,有时磁壁会超过层Ln-1与层Ln-2之间的边界。在该情况下,有时磁壁的位置会到达层Ln-2与层Ln-3之间的边界。该移位错误的结果,会引起作为被插入一层的量的多余的数据的不良的移位错误(insertion)。
这些移位错误会引起在其移位错误之前被非易失化了的数据、在其移位错误之后被非易失化的数据的位置偏移。因此,在上层侧产生的移位错误的影响传播到下层侧,因此,这样的移位错误会引起在特定部位产生许多错误(位错误)的突发(burst)错误。
图8是表示与磁壁移动存储器3的错误位置有关的两种特征(特征1、特征2)的图。此外,在图8以后,磁存储线MML的各单元由四边形表示。
在图8中,在垂直方向上延伸的各列表示块所包含的一条磁存储线MML,在水平方向上延伸的各行表示该块所包含的一个层。配置于行列状的大量的四边形表示构成块的物理存储区域的单元(磁存储部)的集合。
空白的四边形表示未发生错误(位错误)的单元,由斜线部表示的四边形表示发生了错误的单元。
在磁壁移动存储器3中,会发生越是靠近层L1的层、所需要的移位次数越增加这样的移位次数的偏倚,因此,如图8的左部所示,越是靠近层L1的下层侧的层(深的层),数据的错误率越高(特征1)。特别是,在LIFO型磁壁移动存储器中,移位次数的偏倚大,因此,越是下层侧的层、数据的错误率越高这样的错误位置的偏倚变得显著。此外,在以下中,将层L1也称为最下层,将层Ln也称为最上层。
另外,在磁壁移动存储器3中,如图8的右部所示,沿着列而发生突发错误(特征2)。磁壁的移动特性有时按每条磁存储线MML而不同。因此,突发错误以磁存储线MML为单位产生。
与错误位置有关的这些两种特征(特征1、特征2)不仅是磁壁移动存储器3的特征,也是其他各种各样的移位寄存器型存储器所共同的特征。
图9是表示在列方向上配置于磁壁移动存储器3的块的ECC帧(列ECC帧)的构成例、和在行方向上配置于磁壁移动存储器的块的ECC帧(行ECC帧)的构成例的图。
当考虑特征1时,优选如图9的(A)所示,通过在列方向上将多个ECC帧(例如帧(Frame)#1~#8)各自配置在磁壁移动存储器3的块的物理存储区域中,以列为单位构成各ECC帧(列ECC帧)。图9的(A)是以一条磁存储线MML为单位构成ECC帧的例子。另外,在图9的(A)中,例示了一个块包括8条磁存储线MML和8个层的情况。构成各ECC帧的磁存储线MML的数量也可以为2个以上。例如,也可以通过相邻的几个磁存储线MML的集合构成各ECC帧。这样,通过以列(磁存储线MML)为单位构成各ECC帧,一个ECC帧均等地包括上层侧的数据和下层侧的数据,因此,能够使这些ECC帧所包含的错误的数量均匀化。
此外,在图9的(A)中,由相同的字母文字表示的数据要素的集合构成一个ECC帧。例如,由“a”表示的多个数据要素是构成帧#1的数据要素的集合。
当考虑特征2时,优选如图9的(B)所示,通过在行方向上将多个ECC帧(例如帧#1~#8)各自配置在磁壁移动存储器3的块的物理存储区域,以行为单位构成各ECC帧(行ECC帧)。图9的(B)是以一个层为单位构成ECC帧的例子。另外,在图9的(B)中,也例示了一个块包括8条磁存储线MML和8个层的情况。构成各ECC帧的层的数量也可以为2个以上。例如,也可以通过相邻的几个层的集合构成各ECC帧。这样,通过以行(层)为单位构成各ECC帧,能够使以列(磁存储线MML)为单位产生的突发错误分散于多个ECC帧,能够使这些ECC帧所包含的错误的数量均匀化。
图10是表示在本实施方式的存储系统1中使用的ECC帧(倾斜ECC帧)的构成例的图。
在图10中,例示了一个块包括8条磁存储线MML和8个层的情况。为了使得能够应对特征1的错误位置模式(pattern)和特征2的错误位置模式这两方,如图10所示,多个ECC帧(例如帧#1~#8)各自在倾斜方向上配置在磁壁移动存储器3的块的物理存储区域。
在图10中,由相同的字母文字(在此为相同的希腊文字)表示的数据要素的集合构成一个ECC帧。例如,由“θ”表示的多个数据要素是构成帧#1的数据要素的集合。
此外,基本上,组合错误率存在差异的、包括许多上层侧的数据的帧要素、和包括许多下层侧的数据的帧要素来制作ECC帧即可。另外,一个帧要素所包含的数据的数量为一个以上即可。因此,在一个块包括N条磁存储线MML和N个层、且构成ECC帧的数据的数量为N的情况下,只要在各层各包括一个构成一个ECC帧的数据,并且,在各磁存储线MML各包括一个构成一个ECC帧的数据,则也可以以任何配置模式的帧要素来制作ECC帧。例如,也可以通过各自包括一个数据、且分布于N条磁存储线MML和N个层的N个帧要素,制作一个ECC帧。
在以下中,为了容易理解,以由在块的物理存储区域内的不同的区域中分别在倾斜方向上配置的1个以上的帧要素构成各ECC帧的情形为主来进行例示,但构成各ECC帧的帧要素的配置模式并不限定于此,可以利用各种各样的模式。在以下中,包含这些各种各样的配置模式而称为倾斜ECC帧。
在图10的例子中,这些ECC帧(例如帧#1~#8)各自在倾斜方向上配置在磁壁移动存储器3的块的物理存储区域中,以使得:错误率存在差异的上层侧的数据和下层侧的数据分别均等地包含于多个ECC帧(例如帧#1~#8),并且,以磁存储线MML为单位产生的突发错误均等地分散于这些ECC帧(例如帧#1~#8)。在此,倾斜方向不是相对于块的物理存储区域的行方向(水平方向)或者垂直方向(列方向),而是意味着整体上来看相对于水平方向(或者垂直方向)而在某种程度上倾斜的角度。此外,各ECC帧均等地包括各种各样的MML、且包括不同的深度的各种各样的层即可,相对于水平方向(或者垂直方向)的各ECC帧的角度不限定于特定的角度。在以下中,将在倾斜方向上配置的这些ECC帧各自称为倾斜ECC帧。
倾斜ECC帧#1~#8具有相同的帧尺寸。也即是,倾斜ECC帧#1~#8各自包括具有与该帧尺寸相等的尺寸的码字。
在图10中,一个倾斜ECC帧均等地包括上层侧的数据和下层侧的数据。因此,即使产生越是下层、错误率越增加这一偏倚,也能够使这些倾斜ECC帧所包含的错误的数量均匀化。
进一步,一个倾斜ECC帧均等地包括多个列(多个磁存储线MML)。由此,能够使以列(磁存储线MML)为单位发生的突发错误分散于多个倾斜ECC帧,由此,能够使这些倾斜ECC帧所包含的错误的数量均匀化。
在图10中,倾斜ECC帧#8由沿着块的物理存储区域的对角线在倾斜方向上配置的一个帧要素构成。其他倾斜ECC帧#1~#7各自由分别在倾斜方向上配置于块的物理存储区域的两个帧要素(也被作为倾斜帧要素来进行参照)的组合构成。
倾斜ECC帧#1包括倾斜帧要素#1-1和倾斜帧要素#1-2。在此,在各倾斜帧要素中,接着指示该倾斜帧要素的参照标号“#n-1”之后还标记有参照标号“(#n)”。该参照符号“(#n)”表示该倾斜帧要素所属的倾斜ECC帧。例如,“帧#1-1(#1)”表示属于倾斜ECC帧#1的第1个倾斜帧要素。
倾斜帧要素#1-1是包括许多上层侧的数据的帧要素,倾斜帧要素#1-2是包括许多下层侧的数据的帧要素。
同样地,倾斜ECC帧#2包括包含许多上层侧的数据的倾斜帧要素#2-1和包含许多下层侧的数据的倾斜帧要素#2-2,倾斜ECC帧#3包括包含许多上层侧的数据的倾斜帧要素#3-1和包含许多下层侧的数据的倾斜帧要素#3-2,倾斜ECC帧#4包括包含许多上层侧的数据的倾斜帧要素#4-1和包含许多下层侧的数据的倾斜帧要素#4-2,倾斜ECC帧#5包括包含许多上层侧的数据的倾斜帧要素#5-1和包含许多下层侧的数据的倾斜帧要素#5-2,倾斜ECC帧#6包括包含许多上层侧的数据的倾斜帧要素#6-1和包含许多下层侧的数据的倾斜帧要素#6-2,倾斜ECC帧#7包括包含许多上层侧的数据的倾斜帧要素#7-1和包含许多下层侧的数据的倾斜帧要素#7-2。
这样,组合错误率存在差异的、包含许多上层侧的数据的帧要素和包含许多下层侧的数据的帧要素,构成一个倾斜ECC帧。由此,各倾斜ECC帧能够均等地包括错误率存在差异的各种各样的层(单元),能够使倾斜ECC帧#1~#8所包含的错误的数量均匀化。
图11是表示分别构成多个倾斜ECC帧的多个码字的逻辑图与磁壁移动存储器3的块上的这些码字的物理配置之间的关系的图。
在图11中,为了使说明变得简单,例示了块的物理存储区域具有4行(=4层)×4列(=4MML)的构成的情况。
图11的(A)表示分别构成在倾斜方向上配置在块的物理存储区域的多个倾斜ECC帧的多个码字的逻辑图。数据部(W1、X1、Y1、Z1)、数据部(W2、X2、Y2、Z2)、数据部(W3、X3、Y3、Z3)是应该写入块的数据。存储控制器2的编码部26在纵向(列方向)排列数据部(W1、X1、Y1、Z1)、数据部(W2、X2、Y2、Z2)、数据部(W3、X3、Y3、Z3),由此,生成图11的(A)所示的二维排列的数据。W1、X1、Y1、Z1是配置在第1行(Row1)的数据部的数据要素。W2、X2、Y2、Z2是配置在第2行(Row2)的数据部的数据要素。W3、X3、Y3、Z3是配置在第3行(Row3)的数据部的数据要素。
并且,编码部26以列为单位对二维排列的数据进行编码,生成各自包含码字的4个ECC帧(列ECC帧)C-1、C-2、C-3、C-4。
ECC帧C-1所包含的码字包括数据(W1、W2、W3)和奇偶校验(WP),ECC帧C-2所包含的码字包括数据(X1、X2、X3)和奇偶校验(XP),ECC帧C-3所包含的码字包括数据(Y1、Y2、Y3)和奇偶校验(YP),ECC帧C-4所包含的码字包括数据(Z1、Z2、Z3)和奇偶校验(ZP)。
图11的(B)表示磁壁移动存储器3的块上的这些ECC帧C-1、C-2、C-3、C-4的物理配置的例子。
对于与第1行(Row1)对应的数据部(W1、X1、Y1、Z1),该数据部所包含的数据要素W1、X1、Y1、Z1的排列顺序被维持。
关于与第2行(Row2)对应的数据部(W2、X2、Y2、Z2),变更数据要素W2、X2、Y2、Z2的排列顺序,以使得该数据部所包含的数据要素W2、X2、Y2、Z2向右移动1数据要素,由此,这些数据要素被排序为Z2、W2、X2、Y2这一顺序。
关于与第3行(Row3)对应的数据部(W3、X3、Y3、Z3),变更数据要素W3、X3、Y3、Z3的排列顺序,以使得该数据部所包含的数据要素W3、X3、Y3、Z3向右移位2数据要素,由此,这些数据要素被排序为Y3、Z3、W3、X3这一顺序。
与第4行(Row4)对应的数据部是与ECC帧C-1~C-4对应的4个奇偶校验的集合。关于该数据部(WP、XP、YP、ZP),变更数据要素WP、XP、YP、ZP的排列顺序,以使得该数据部所包含的数据要素WP、XP、YP、ZP向右移位3数据要素,由此,这些数据要素被排序为XP、YP、ZP、WP这一顺序。
如图11的(B)所示,与第1行(Row1)对应的数据部、与被排序后的第2行(Row2)对应的数据部、与被排序后的第3行(Row3)对应的数据部、与被排序后的第4行(Row4)对应的数据部分别配置于块的物理存储区域上的连续的多个行。其结果是,能够在块的物理存储区域中将ECC帧C-1(W1、W2、W3、WP)、ECC帧C-2(X1、X2、X3、XP)、ECC帧C-3(Y1、Y2、Y3、YP)、ECC帧C-4(Z1、Z2、Z3、ZP)各自配置在倾斜方向上。也即是,存储控制器2分别在与第1列(Col.1)对应的磁存储线MML内的4个层(与Row1~Row4对应)保存W1、Z2、Y3、XP,分别在与第2列(Col.2)对应的磁存储线MML内的4个层(与Row1~Row4对应)保存X1、W2、Z3、YP,分别在与第3列(Col.3)对应的磁存储线MML内的4个层(与Row1~Row4对应)保存Y1、X2、W3、ZP,分别在与第4列(Col.4)对应的磁存储线MML内的4个层(与Row1~Row4对应)保存Z1、Y2、X3、WP。
这样,编码部26通过对这些数据部各自所包含的4个数据要素的排列顺序进行规则性地变更,以使得分别配置有属于相同的ECC帧(也即是相同码字)的数据要素的列(第1列(Col.1)、第2列(Col.2)、第3列(Col.3)或者第4列(Col.4))在与4个行对应的4个数据部之间错开,从而在块的物理存储区域中将ECC帧C-1~C4各自配置在倾斜方向上。
图11的(C)表示磁壁移动存储器3的块上的这些ECC帧C-1、C-2、C-3、C-4的物理配置的其他例子。
在图11的(C)中,奇偶校验(XP、YP、ZP、WP)配置在块的最上层Ln(Row1)。在该情况下,奇偶校验(XP、YP、ZP、WP)最后被写入块即可,因此,不需要等待求出奇偶校验(XP、YP、ZP、WP)的计算完成,就能够开始向块写入数据。例如,存储控制器2与同各ECC帧对应的编码处理并行地向块写入数据。向块的数据的写入以数据部(W1、X1、Y1、Z1)、数据部(Z2、W2、X2、Y2)、数据部(Y3、Z3、W3、X3)这一顺序进行。并且,当求出奇偶校验(XP、YP、ZP、WP)的计算完成时,奇偶校验(XP、YP、ZP、WP)被写入到块。
在该情况下,也能够在块的物理存储区域中将ECC帧C-1(W1、W2、W3、WP)、ECC帧C-2(X1、X2、X3、XP)、ECC帧C-3(Y1、Y2、Y3、YP)、ECC帧C-4(Z1、Z2、Z3、ZP)各自配置在倾斜方向上。
此外,在图11中,对将通过以列为单位对二维排列的数据进行编码来获得的ECC帧C-1、C-2、C-3、C-4各自在倾斜方向上配置在块的物理存储区域中的处理进行了说明,但也可以将通过以行为单位对二维排列的数据进行编码来获得的多个ECC帧各自在倾斜方向上配置在块的物理存储区域中。
图12表示磁壁移动存储器3的块具有8MML×8层的构成的情况下的倾斜ECC帧的构成例。在此,例示了各倾斜ECC帧的尺寸(帧长)为8的情况。
图12的(A)表示与8个倾斜ECC帧(帧#1~#8)对应的8个码字的逻辑图。图12的(B)表示块的物理存储区域中的8个倾斜ECC帧(帧#1~#8)的物理配置。在图12的(B)中,一个列对应于块内的一个磁存储线MML,一个行对应于块内的一个层。
在图12中,由相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧。另外,由粗框表示的数据要素表示保存奇偶校验的数据要素。
8个倾斜ECC帧(帧#1~#8)构成为在各倾斜ECC帧均等地包含各种各样的列(各种各样的磁存储线MML),并且,在各倾斜ECC帧均等地包含各种各样的深度的行(单元)。在此,某特定的行的深度意味着从与层Ln对应的行到该特定的行为止的行(层)的数量。例如,层Ln的深度为1行,层Ln-1的深度为2行,层L1的深度为n行。
如图12的(A)所示,首先,二维排列的数据被以列为单位而编码,生成8个ECC帧(帧#1~#8)。这些ECC帧(帧#1~#8)是通过以列为单位对数据进行编码而得到的ECC帧(列ECC帧),但作为在倾斜方向上配置于块的ECC帧来使用,因此,以下称为倾斜ECC帧。
倾斜ECC帧(帧#1)保存一个码字,该码字包含数据(h1、h2、h3、h4、h5、h6、h7)和奇偶校验(h)。倾斜ECC帧(帧#2)保存一个码字,该码字包含数据(g1、g2、g3、g4、g5、g6、g7)和奇偶校验(g)。倾斜ECC帧(帧#3)保存一个码字,该码字包含数据(f1、f2、f3、f4、f5、f6、f7)和奇偶校验(f)。倾斜ECC帧(帧#4)保存一个码字,该码字包含数据(e1、e2、e3、e4、e5、e6、e7)和奇偶校验(e)。倾斜ECC帧(帧#5)保存一个码字,该码字包含数据(d1、d2、d3、d4、d5、d6、d7)和奇偶校验(d)。倾斜ECC帧(帧#6)保存一个码字,该码字包含数据(c1、c2、c3、c4、c5、c6、c7)和奇偶校验(c)。倾斜ECC帧(帧#7)保存一个码字,该码字包含数据(b1、b2、b3、b4、b5、b6、b7)和奇偶校验(b)。倾斜ECC帧(帧#8)保存一个码字,该码字包含数据(a1、a2、a3、a4、a5、a6、a7)和奇偶校验(a)。
如图12的(B)所示,8个倾斜ECC帧(帧#1~#8)各自在块的物理存储区域中配置在倾斜方向上。根据图12的(B)可理解:由相同的字母文字表示的数据要素的集合配置在倾斜方向上。
例如,倾斜ECC帧(帧#8)的码字(a1、a2、a3、a4、a5、a6、a7、a)沿着块的物理存储区域的对角线而配置。另外,例如,倾斜ECC帧(帧#1)包含倾斜帧要素#1-1和倾斜帧要素#1-2。倾斜帧要素#1-1是包含许多上层侧的数据的帧要素,在图12的(B)所示的例子中,倾斜帧要素#1-1仅包含存在于第1行(Row1)的第8列(Col.8)的数据要素h1。倾斜帧要素#1-2是包含许多下层侧的数据的帧要素,在图12的(B)所示的例子中,倾斜帧要素#1-2包含7个数据要素h2、h3、h4、h5、h6、h7。
在图12的(B)中,对于8个倾斜ECC帧(帧#1~#8),在各倾斜ECC帧各包含1个单元的全部列,并且,在各倾斜ECC帧包含全部深度的行。
此外,在图12中例示了一个码字的奇偶校验的尺寸为1位的情况,但一般而言,一个码字的奇偶校验的尺寸多为数位或者1字节以上。在图12中设想了8×8的16个的四边形各自为1单元的情况,但各四边形也可以表示1字节量的单元的集合(8个单元)。
对于在块的物理存储区域中将8个倾斜ECC帧(帧#1~#8)各自配置在倾斜方向上的处理,例如可以如以下那样通过按每行对数据进行排序来容易地执行。
在图12的(A)中,不进行与第1行(Row1)对应的数据部(a1、b1、c1、d1、e1、f1、g1、h1)的排序。与第2行(Row2)对应的数据部(a2、b2、c2、d2、e2、f2、g2、h2)被排序为h2、a2、b2、c2、d2、e2、f2、g2这一顺序。与第3行(Row3)对应的数据部(a3、b3、c3、d3、e3、f3、g3、h3)被排序为g3、h3、a3、b3、c3、d3、e3、f3这一顺序。与第4行(Row4)对应的数据部(a4、b4、c4、d4、e4、f4、g4、h4)被排序为f4、g4、h4、a4、b4、c4、d4、e4这一顺序。同样地,与第8行(Row8)对应的数据部(a、b、c、d、e、f、g、h)被排序为b、c、d、e、f、g、h、a这一顺序。
这样,通过对各行的数据部所包含的数据要素的排列顺序进行规则性地变更,以使得属于相同的倾斜ECC帧的数据要素(由相同的字母表示的数据要素)各自的列位置在多个行间错开,从而能够如图12的(B)所示那样,在块的物理存储区域将8个倾斜ECC帧(帧#1~#8)各自配置在倾斜方向上。
这些倾斜ECC帧(帧#1~#8)的特征能够通过如以下那样的数据配置来表现。
设为着眼于块所包含的多个磁存储线MML中的任意的第1MML以及第2MML(例如Col.1的MML、Col.3的MML)和多个层中的任意的第1层以及第2层(例如Row1的层、Row3的层)。如图12的(B)所示,第1数据(在此为a1)保存于第1MML(在此为Col.1的MML)内的与第1层(在此为Row1的层)对应的位置(单元),第2数据(在此为g3)保存于第1MML(在此为Col.1的MML)内的与第2层(在此为Row3的层)对应的位置,第3数据(在此为a3)保存于第2MML(在此为Col.3的MML)内的与第2层(在此为Row3的层)对应的位置。
在该情况下,第1ECC帧(在此为ECC帧#8)包含第1数据(在此为a1)和第3数据(在此为a3),并且,第2数据(在此为g3)包含于与第1ECC帧不同的第2ECC帧(在此为ECC帧#2)(数据配置特征1)。
倾斜ECC帧(帧#1~#8)的配置具有如下的特征。也即是,第1ECC帧所包含的数据中的第1层(在此为Row1的层)所包含的数据的数量(在此为1)与第2ECC帧(在此为ECC帧#8)所包含的数据中的第1层(在此为Row1的层)所包含的数据的数量(在此为1)一致。第1ECC帧所包含的数据中的第2层(在此为Row3的层)所包含的数据的数量(在此为1)与第2ECC帧(在此为ECC帧#8)所包含的数据中的第2层(在此为Row3的层)所包含的数据的数量(在此为1)一致(数据配置特征2)。
进一步,倾斜ECC帧(帧#1~#8)的配置具有如下的特征。也即是,第1ECC帧所包含的数据中的第1MML(在此为Col.1的MML)所包含的数据的数量(在此为1)与第2ECC帧(在此为ECC帧#8)所包含的数据中的第1MML(在此为Col.1的MML)所包含的数据的数量(在此为1)一致。第1ECC帧所包含的数据中的第2MML(在此为Col.3的MML)所包含的数据的数量(在此为1)与第2ECC帧(在此为ECC帧#8)所包含的数据中的第2MML(在此为Col.3的MML)所包含的数据的数量(在此为1)一致(数据配置特征3)。
图13是表示磁壁移动存储器3的块具有4MML×16层的构成的情况下的倾斜ECC帧的构成例的图。在此,例示了各倾斜ECC帧的尺寸(帧长度)为8的情况。
图13的(A)示出用图12的(B)说明过的8个倾斜ECC帧的物理配置。由相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧。
如图13的(B)所示,图13的(A)所示的8×8的数据要素按每行被分割为属于最初的4个列的4个数据要素和属于剩余的4个列的4个数据要素。并且,如图13的(C)所示,8×8的数据要素所包含的第1行(Row1)的最初的4个数据要素(a1、b1、c1、d1)配置在块的物理存储区域(4列×16行)的第1行(Row1),8×8的数据要素所包含的第1行(Row1)的剩余的4个数据要素(e1、f1、g1、h1)配置在物理存储区域(4列×16行)的第2行(Row2),8×8的数据要素所包含的第2行(Row2)的最初的4个数据要素(h2、a2、b2、c2)配置在物理存储区域(4列×16行)的第3行(Row3),8×8的数据要素所包含的第2行(Row2)的剩余的4个数据要素(d2、e2、f2、g2)配置在物理存储区域(4列×16行)的第4行(Row4),……,并且,8×8的数据要素所包含的第8行(Row8)的最初的4个数据要素(b、c、d、e)配置在物理存储区域(4列×16行)的第15行(Row15),8×8的数据要素所包含的第8行(Row8)的剩余的4个数据要素(f、g、h、a)配置在物理存储区域(4列×16行)的第16行(Row16)。
其结果是,8个倾斜ECC帧(帧#1~#8)构成为:在各倾斜ECC帧各包含2个单元的全部列,并且,在各倾斜ECC帧均等地包含全部深度的行中的大约一半的行。因此,这些倾斜ECC帧(帧#1~#8)也具有用图12说明过的数据配置特征1、2、3。
在物理存储区域(4列×16行)中,例如由用字母文字“a”表示的数据要素的集合构成的倾斜ECC帧(帧#8)包括包含许多上层侧的数据的倾斜帧要素#8-1和包含许多下层侧的数据的倾斜帧要素#8-2。
倾斜帧要素#8-1包含保存于第1行(Row1)的第1列(Col.1)的数据要素a1、保存于第3行(Row3)的第2列(Col.2)的数据要素a2、保存于第5行(Row5)的第3列(Col.3)的数据要素a3以及保存于第7行(Row7)的第4列(Col.4)的数据要素a4。
倾斜帧要素#8-2包含保存于第10行(Row10)的第1列(Col.1)的数据要素a5、保存于第12行(Row12)的第2列(Col.2)的数据要素a6、保存于第14行(Row14)的第3列(Col.3)的数据要素a7以及保存于第16行(Row16)的第4列(Col.4)的数据要素a。
另外,例如由用字母文字“b”表示的数据要素的集合构成的倾斜ECC帧(帧#7)包含倾斜帧要素#7-1、倾斜帧要素#7-2以及倾斜帧要素#7-3。
倾斜帧要素#7-1包含保存于第1行(Row1)的第2列(Col.2)的数据要素b1、保存于第3行(Row3)的第3列(Col.3)的数据要素b2以及保存于第5行(Row5)的第4列(Col.4)的数据要素b3。
倾斜帧要素#7-2包含保存于第8行(Row8)的第1列(Col.1)的数据要素b4、保存于第10行(Row10)的第2列(Col.2)的数据要素b5、保存于第12行(Row12)的第3列(Col.3)的数据要素b6以及保存于第14行(Row14)的第4列(Col.4)的数据要素b7。
倾斜帧要素#7-3包含保存于第15行(Row15)的第1列(Col.1)的数据要素b。
图14是表示磁壁移动存储器3的块具有4MML×16层的构成的情况下的倾斜ECC帧的其他构成例的图。
图14的(A)示出用图12的(B)说明过的8个倾斜ECC帧的物理配置。由相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧。
如图14的(B)所示,图14的(A)所示的8×8的数据要素被分割为与8个列对应的8个数据部。并且,如图14的(C)所示,8×8的数据要素所包含的第1列(Col.1)的数据部(a1、h2、g3、f4、e5、d6、c7、b)作为块的物理存储区域(4列×16行)的第1列(Col.1)的上侧的8个数据要素来进行配置,8×8的数据要素所包含的第2列(Col.2)的数据部(b1、a2、h3、g4、f5、e6、d7、c)作为块的物理存储区域(4列×16行)的第1列(Col.1)的下侧的8个数据要素来进行配置,8×8的数据要素所包含的第3列(Col.3)的数据部(c1、b2、a3、h4、g5、f6、e7、d)作为块的物理存储区域(4列×16行)的第2列(Col.2)的上侧的8个数据要素来进行配置,8×8的数据要素所包含的第4列(Col.4)的数据部(d1、c2、b3、a4、h5、g6、f7、e)作为块的物理存储区域(4列×16行)的第2列(Col.2)的下侧的8个数据要素来进行配置,……,并且,8×8的数据要素所包含的第7列(Col.7)的数据部(g1、f2、e3、d4、c5、b6、a7、h)作为块的物理存储区域(4列×16行)的第4列(Col.4)的上侧的8个数据要素来进行配置,8×8的数据要素所包含的第8列(Col.8)的数据部(h1、g2、f3、e4、d5、c6、b7、a)作为块的物理存储区域(4列×16行)的第4列(Col.4)的下侧的8个数据要素来进行配置。
其结果是,8个倾斜ECC帧(帧#1~#8)构成为:在各倾斜ECC帧各包含2单元的全部列,并且,在各倾斜ECC帧均等地包含全部深度的行中的大约一半的行。因此,这些倾斜ECC帧(帧#1~#8)也具有用图12说明过的数据配置特征1、2、3。
在物理存储区域(4列×16行)中,例如由用字母文字“a”表示的数据要素的集合构成的倾斜ECC帧(帧#8)包括包含许多上层侧的数据的倾斜帧要素#8-1和包含许多下层侧的数据的倾斜帧要素#8-2。
倾斜帧要素#8-1包含保存于第1行(Row1)的第1列(Col.1)的数据要素a1、保存于第3行(Row3)的第2列(Col.2)的数据要素a3、保存于第5行(Row5)的第3列(Col.3)的数据要素a5以及保存于第7行(Row7)的第4列(Col.4)的数据要素a7。
倾斜帧要素#8-2包含保存于第10行(Row10)的第1列(Col.1)的数据要素a2、保存于第12行(Row12)的第2列(Col.2)的数据要素a4、保存于第14行(Row14)的第3列(Col.3)的数据要素a6以及保存于第16行(Row16)的第4列(Col.4)的数据要素a。
另外,例如由用字母文字“c”表示的数据要素的集合构成的倾斜ECC帧(帧#6)包含倾斜帧要素#6-1、倾斜帧要素#6-2、倾斜帧要素#6-3以及倾斜帧要素#6-4。
倾斜帧要素#6-1包含保存于第1行(Row1)的第2列(Col.2)的数据要素c1、保存于第3行(Row3)的第3列(Col.3)的数据要素c3以及保存于第5行(Row5)的第4列(Col.4)的数据要素c5。
倾斜帧要素#6-2包含保存于第7行(Row7)的第1列(Col.1)的数据要素c7。
倾斜帧要素#6-3包含保存于第10行(Row10)的第2列(Col.2)的数据要素c2、保存于第12行(Row12)的第3列(Col.3)的数据要素c4以及保存于第14行(Row14)的第4列(Col.4)的数据要素c6。
倾斜帧要素#6-4包含保存于1第6行(Row16)的第1列(Col.1)的数据要素c。
图15是表示磁壁移动存储器3的块具有16MML×4层的构成的情况下的倾斜ECC帧的两种构成例的图。
图15的(A)示出用图12的(B)说明过的8个倾斜ECC帧的物理配置。由相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧。
图15的(A)所示的8×8的数据要素被分割为与8个行对应的8个数据部。并且,如图15的(B)所示,8×8的数据要素所包含的第1行(Row1)的数据部(a1、b1、c1、d1、e1、f1、g1、h1)作为块的物理存储区域(16列×4行)的第1行(Row1)的最初的8个列的数据要素来进行配置,8×8的数据要素所包含的第2行(Row2)的数据部(h2、a2、b2、c2、d2、e2、f2、g2)作为块的物理存储区域(16列×4行)的第1行(Row1)的剩余的8个列的数据要素来进行配置,……,并且,8×8的数据要素所包含的第7行(Row7)的数据部(c7、d7、e7、f7、g7、h7、a7、b7)作为块的物理存储区域(16列×4行)的第4行(Row4)的最初的8个列的数据要素来进行配置,8×8的数据要素所包含的第8行(Row8)的数据部(b、c、d、e、f、g、h、a)作为块的物理存储区域(16列×4行)的第4行(Row4)的剩余的8个列的数据要素来进行配置。
其结果是,8个倾斜ECC帧(帧#1~#8)构成为在各倾斜ECC帧均等地包含全部列中的大约一半的列,并且,在各倾斜ECC帧各包含2单元的全部深度的行。因此,这些倾斜ECC帧(帧#1~#8)也具有用图12说明过的数据配置特征1、2。
在图15的(B)所示的块的物理存储区域(16列×4行)中,例如由用字母文字“a”表示的数据要素的集合构成的倾斜ECC帧(帧#8)包含倾斜帧要素#8-1和倾斜帧要素#8-2。
倾斜帧要素#8-1包含保存于第1行(Row1)的第10列(Col.10)的数据要素a2、保存于第2行(Row2)的第12列(Col.12)的数据要素a4、保存于第3行(Row3)的第14列(Col.14)的数据要素a6以及保存于第4行(Row4)的第16列(Col.16)的数据要素a。
倾斜帧要素#8-2包含保存于第1行(Row1)的第1列(Col.1)的数据要素a1、保存于第2行(Row2)的第3列(Col.3)的数据要素a3、保存于第3行(Row3)的第5列(Col.5)的数据要素a5以及保存于第4行(Row4)的第7列(Col.7)的数据要素a7。
另外,例如由用字母文字“c”表示的数据要素的集合构成的倾斜ECC帧(帧#6)包含倾斜帧要素#6-1、倾斜帧要素#6-2、倾斜帧要素#6-3以及倾斜帧要素#6-4。
倾斜帧要素#6-1包含保存于第1行(Row1)的第12列(Col.12)的数据要素c2、保存于第2行(Row2)的第14列(Col.14)的数据要素c4以及保存于第3行(Row3)的第16列(Col.16)的数据要素c6。
倾斜帧要素#6-2包含保存于第4行(Row4)的第10列(Col.10)的数据要素c。
倾斜帧要素#6-3包含保存于第1行(Row1)的第3列(Col.3)的数据要素c1、保存于第2行(Row2)的第5列(Col.5)的数据要素c3以及保存于第3行(Row3)的第7列(Col.7)的数据要素c5。
倾斜帧要素#6-4包含保存于第4行(Row4)的第1列(Col.1)的数据要素c7。
图15的(C)表示各倾斜ECC帧的其他构成例。
图15的(C)所示的各倾斜ECC帧通过以下的处理来构成。
图15的(A)所示的8×8的数据要素按每列被分割为属于上侧的4个行的4个数据要素和属于下侧的4个行的4个数据要素。并且,如图15的(C)所示,8×8的数据要素所包含的第1列(Col.1)的上侧的4个数据要素(a1、h2、g3、f4)配置在块的物理存储区域(16列×4行)的第1列(Col.1),8×8的数据要素所包含的第1列(Col.1)的下侧的4个数据要素(e5、d6、c7、b)配置在块的物理存储区域(16列×4行)的第2列(Col.2),8×8的数据要素所包含的第2列(Col.2)的上侧的4个数据要素(b1、a2、h3、g4)配置在块的物理存储区域(16列×4行)的第3列(Col.3),8×8的数据要素所包含的第2列(Col.2)的下侧的4个数据要素(f5、e6、d7、c)配置在块的物理存储区域(16列×4行)的第4列(Col.4),……,并且,8×8的数据要素所包含的第8列(Col.8)的上侧的4个数据要素(h1、g2、f3、e4)配置在块的物理存储区域(16列×4行)的第15列(Col.15),8×8的数据要素所包含的第8列(Col.8)的下侧的4个数据要素(d5、c6、b7、a)配置在块的物理存储区域(16列×4行)的第16列(Col.16)。
其结果是,8个倾斜ECC帧(帧#1~#8)构成为:在各倾斜ECC帧均等地包含全部列中的大约一半的列,并且,在各倾斜ECC帧各包含2单元的全部深度的行。因此,这些倾斜ECC帧(帧#1~#8)也具有用图12说明过的数据配置特征1、2。
在图15的(C)所示的块的物理存储区域(16列×4行)中,例如由用字母文字“a”表示的数据要素的集合构成的倾斜ECC帧(帧#8)包含倾斜帧要素#8-1和倾斜帧要素#8-2。
倾斜帧要素#8-1包含保存于第1行(Row1)的第10列(Col.10)的数据要素a5、保存于第2行(Row2)的1第2列(Col.12)的数据要素a6、保存于第3行(Row3)的第14列(Col.14)的数据要素a7以及保存于第4行(Row4)的第16列(Col.16)的数据要素a。
倾斜帧要素#8-2包含保存于第1行(Row1)的第1列(Col.1)的数据要素a1、保存于第2行(Row2)的第3列(Col.3)的数据要素a2、保存于第3行(Row3)的第5列(Col.5)的数据要素a3以及保存于第4行(Row4)的第7列(Col.7)的数据要素a4。
另外,例如由用字母文字“c”表示的数据要素的集合构成的倾斜ECC帧(帧#6)包含倾斜帧要素#6-1、倾斜帧要素#6-2以及倾斜帧要素#6-3。
倾斜帧要素#6-1包含保存于第1行(Row1)的第14列(Col.14)的数据要素c5以及保存于第2行(Row2)的第16列(Col.16)的数据要素c6。
倾斜帧要素#6-2包含保存于第1行(Row1)的第5列(Col.5)的数据要素c1、保存于第2行(Row2)的第7列(Col.7)的数据要素c2、保存于第3行(Row3)的第9列(Col.9)的数据要素c3以及保存于第4行(Row4)的第11列(Col.11)的数据要素c4。
倾斜帧要素#6-3包含保存于第3行(Row3)的第2列(Col.2)的数据要素c7以及保存于第4行(Row4)的第4列(Col.4)的数据要素c。
图16是表示将应该保存于磁壁移动存储器3的块的二维排列的数据重新排列为一维的数据序列、将一维的数据序列内的数据要素规则性地分配到多个倾斜ECC帧、并将一维的数据序列重新排列为二维排列的数据的处理的图。
在此设想了块具有4MML×4层(=4列×4行)的构成的情况。
应该保存于块的4×4的数据要素首先被重新排列为一维的数据序列。并且,一维的数据序列内的数据要素被规则性地分配到多个倾斜ECC帧(在此为4个倾斜ECC帧a、b、c、d)。
在图16中,关于最初的4个数据要素“1”、“2”、“3”、“4”,数据要素“1”被分配至倾斜ECC帧a,数据要素“2”被分配至倾斜ECC帧b,数据要素“3”被分配至倾斜ECC帧c,数据要素“4”被配置至倾斜ECC帧d。
关于接下来的4个数据要素“5”、“6”、“7”、“8”,数据要素“5”被分配至倾斜ECC帧d,数据要素“6”被分配至倾斜ECC帧a,数据要素“7”被分配至倾斜ECC帧b,数据要素“8”被分配至倾斜ECC帧c。
关于接下来的4个数据要素“9”、“10”、“11”、“12”,数据要素“9”被分配至倾斜ECC帧c,数据要素“10”被分配至倾斜ECC帧d,数据要素“11”被分配至倾斜ECC帧a,数据要素“12”被分配至倾斜ECC帧b。
被分配至相同的倾斜ECC帧的数据要素构成一个码字。并且,一维的数据序列(“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”)被重新排列为二维排列的数据,被保存于磁壁移动存储器3的块。由此,能够在块的物理存储区域中将倾斜ECC帧a、b、c、d各自配置在倾斜方向上。
图17是表示将二维排列的数据重新排列为一维的数据序列的处理的例子的图。
图17的(B)示出通过在横向上对由图17的(A)所示的二维排列的数据(在此为4×4的数据要素)进行扫描来重新排列为一维的数据序列(“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”)的方法。
图17的(C)示出通过在纵向上对由图17的(A)所示的二维排列的数据(在此为4×4的数据要素)进行扫描来重新排列为一维的数据序列(“1”、“5”、“9”、“13”、“2”、“6”、“10”、“14”、“3”、“7”、“11”、“15”、“4”、“8”、“12”、“16”)的方法。
图17的(D)示出通过以之字形的方式对图17的(A)所示的二维排列的数据(在此为4×4的数据要素)进行扫描来重新排列为一维的数据序列(“1”、“2”、“5”、“9”、“6”、“3”、“4”、“7”、“10”、“13”、“14”、“11”、“8”、“12”、“15”、“16”)的方法。
图18是表示将一维的数据序列所包含的数据要素规则性地分配到多个倾斜ECC帧的处理的例子的图。
在此,设想将数据要素(“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”)规则性地分配到4个倾斜ECC帧a、b、c、d的情况。
对于该处理,可以使用3个参数(α、β、γ)来执行。在此,α表示连续几个要素的相同ECC帧。Β表示重复几次相同模式后进行移位。γ表示移位几个要素。
(1)α=1、β=1、γ=1的情形
在该情况下,模式“a、b、c、d”、模式“d、a、b、c”、模式“c、d、a、b”、模式“b、c、d、a”被应用于数据要素(“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”)。
其结果是,关于最初的4个数据要素“1”、“2”、“3”、“4”,数据要素“1”被分配至倾斜ECC帧a,数据要素“2”被分配至倾斜ECC帧b,数据要素“3”被分配至倾斜ECC帧c,数据要素“4”被分配至倾斜ECC帧d。
关于接下来的4个数据要素“5”、“6”、“7”、“8”,数据要素“5”被分配置至倾斜ECC帧d,数据要素“6”被分配置至倾斜ECC帧a,数据要素“7”被分配置至倾斜ECC帧b,数据要素“8”被分配置至倾斜ECC帧c。
关于接下来的4个数据要素“9”、“10”、“11”、“12”,数据要素“9”被分配置至倾斜ECC帧c,数据要素“10”被分配置至倾斜ECC帧d,数据要素“11”被分配置至倾斜ECC帧a,数据要素“12”被分配置至倾斜ECC帧b。
(2)α=2、β=1、γ=2的情形
在该情况下,模式“a、a、b、b、c、c、d、d”、模式“d、d、a、a、b、b、c、c”被应用于数据要素(“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”)。
其结果是,关于最初的8个数据要素“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”,数据要素“1”、“2”被分配置至倾斜ECC帧a,数据要素“3”、“4”被分配置至倾斜ECC帧b,数据要素“5”、“6”被分配置至倾斜ECC帧c,数据要素“7”、“8”被分配置至倾斜ECC帧d。
关于接下来的8个数据要素“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”,数据要素“9”、“10”被分配置至倾斜ECC帧d,数据要素“11”、“12”被分配置至倾斜ECC帧a,数据要素“13”、“14”被分配置至倾斜ECC帧b,数据要素“15”、“16”被分配置至倾斜ECC帧c。
(3)α=1、β=2、γ=2的情形
在该情况下,模式“a、b、c、d、a、b、c、d”、模式“c、d、a、b、c、d、a、b”被应用于数据要素(“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”)。
其结果是,关于最初的8个数据要素“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”,数据要素“1”、“5”被分配置至倾斜ECC帧a,数据要素“2”、“6”被分配置至倾斜ECC帧b,数据要素“3”、“7”被分配置至倾斜ECC帧c,数据要素“4”、“8”被分配置至倾斜ECC帧d。
关于接下来的8个数据要素“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”,数据要素“9”、“13”被分配置至倾斜ECC帧c,数据要素“10”、“14”被分配置至倾斜ECC帧d,数据要素“11”、“15”被分配置至倾斜ECC帧a,数据要素“12”、“16”被分配置至倾斜ECC帧b。
(4)α=1、β=1、γ=0的情形
在该情况下,模式“a、b、c、d”、模式“a、b、c、d”、模式“a、b、c、d”、模式“a、b、c、d”被应用于数据要素(“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”)。
图19是表示在存储系统1中执行的写入处理的步骤的流程图。
在存储控制器2从主机4接收到写要求时,存储控制器2开始图19的流程图所示的写入处理。
向磁壁移动存储器3的块的数据的写入也可以在从主机4接收到1块尺寸量的数据之后开始,但如上所述,在使用能够将奇偶校验保存于块的上层侧(例如最上层Ln)的数据配置的情形下,能够与从主机4的数据的接收以及每ECC帧的编码处理并行地进行向块的数据的写入。以下例示后者的情况,对写入处理的步骤进行说明。
存储控制器2从主机4接收与从主机4接收到的写要求关联的数据,将该数据保存于数据缓存25(步骤S11)。
存储控制器2使用保存于数据缓存25的数据,生成多个ECC帧各自所包含的码字的一部分(步骤S12)。在步骤S12中,编码部26执行对保存于数据缓存25的数据进行编码的处理,在该编码处理中,执行按每ECC帧计算奇偶校验的处理。码字包含数据(信息符号序列)和奇偶校验(ECC),码字的一部分是信息符号或者奇偶校验。
与各ECC帧对应的码字的奇偶校验最后写入块即可,因此,不需要等待奇偶校验的计算完成,就能够开始向块写入数据。因此,存储控制器2与编码处理并行地将各ECC帧的码字的一部分(在此为数据、也即是信息符号序列)写入块(步骤S13)。在步骤S13中,存储控制器2将所生成的各ECC帧的码字的一部分写入块,以使得多个ECC帧各自在倾斜方向上配置在块的物理存储区域。
存储控制器2判定是否向块写入了多个ECC帧所包含的全部码字(步骤S14)。反复执行步骤S11~S13的处理,直到多个ECC帧所包含的码字全部被写入到块。
若是通过编码部26计算了与各ECC帧对应的码字的奇偶校验,则在步骤S12中,作为多个ECC帧各自所包含的码字的一部分,生成码字的奇偶校验。并且,在步骤S13中,存储控制器2将这些奇偶校验写入块。
若是多个ECC帧所包含的码字全部被写入到了块(步骤S14:是),则写入处理结束。
该写入处理的结果,多个ECC帧各自在倾斜方向上配置在块的物理存储区域,以使得:错误率存在差异的上层侧的数据和下层侧的数据均等地包含于多个ECC帧的各个帧,并且,以磁存储线MML为单位产生的突发错误均等地分散于多个ECC帧。
此外,也可以设为:在1块尺寸量的数据被储存在数据缓存25之后,向块写入数据。在该情况下,各码字的奇偶校验的位置不被限制,能够在块的物理存储区域的任意位置写入奇偶校验。
图20是表示将多个倾斜ECC帧各自在倾斜方向上配置在磁壁移动存储器3的块的物理存储区域的处理的步骤的流程图。
图20的步骤S21以及步骤S22的处理在图19的步骤S12中被执行,图20的步骤S23以及步骤S24的处理在图19的步骤S13中被执行。
存储控制器2制作通过在纵向(列方向)上排列应该写入块的多个数据部而得到的二维排列的数据(步骤S21)。多个数据部各自例如具有一层的量的数据尺寸。
存储控制器2通过使用编码部26以列为单位对二维排列的数据进行编码,生成各自包含码字的多个ECC帧(步骤S22)。
存储控制器2对多个数据部各自所包含的多个数据要素的排列顺序进行规则性地变更,以使得配置属于相同的ECC帧的各个数据要素的列的位置在排列在列方向(纵向)上的多个数据部间错开(步骤S23)。
并且,存储控制器2将这些多个数据部分别写入到块,由此,将多个ECC帧各自在倾斜方向上配置在块的物理存储区域(步骤S24)。在配置于倾斜方向的各ECC帧(倾斜ECC帧)均等地包含各种各样的列(各种各样的磁存储线MML),因此,以磁存储线MML为单位产生的突发错误均等地分散于多个ECC帧。另外,在各ECC帧(倾斜ECC帧)均等地包含各种各样的深度的行(单元),因此,错误率存在差异的上层侧的数据和下层侧的数据均等地包含于多个ECC帧的各个帧。
图21是表示使用了多个倾斜ECC帧的解码处理的步骤的流程图。
存储控制器2从磁壁移动存储器3以具有预定数据尺寸的数据部为单位依次读出保存于块的层L1~Ln的多个层的量的数据(块尺寸量的数据)(步骤S31)。
存储控制器2通过将属于相同的倾斜ECC帧的数据部彼此组合,重构多个倾斜ECC帧(步骤S32)。
存储控制器2对重构后的多个倾斜ECC帧分别进行解码,对从磁壁移动存储器3读出的块尺寸量的数据的错误进行纠正(步骤S33)。
如以上说明的那样,根据第1实施方式,在第1数据保存于第1磁存储线MML(数据保持移位列)内的与第1层对应的位置、第2数据保存于第1磁存储线MML内的与第2层对应的位置、第3数据保存于第2磁存储线MML内的与第2层对应的位置的情况下,第1ECC帧包含第1数据和第3数据,并且,与第1ECC帧不同的第2ECC帧包含第2数据。
通过这样构成各ECC帧,第1ECC帧跨不同的磁存储线MML,并且,相同的层所包含的第2数据和第3数据包含于互不相同的ECC帧。
例如如用图10说明过的那样,这些ECC帧(例如帧#1~#8)各自在倾斜方向上配置在磁壁移动存储器3的块的物理存储区域,以使得:错误率存在差异的上层侧的数据和下层侧的数据均等地包含于多个ECC帧(例如帧#1~#8)的各个帧,并且,以磁存储线MML为单位产生的突发错误均等地分散于这些ECC帧(例如帧#1~#8)。
各ECC帧(倾斜ECC帧)均等地包含上层侧的数据和下层侧的数据。因此,即使产生越是下层、错误率越增加这一偏倚,也能够使这些倾斜ECC帧所包含的错误的数量均匀化。另外,各ECC帧(倾斜ECC帧)均等地包含多个列(多个磁存储线MML)。由此,能够使以列(磁存储线MML)为单位而产生的突发错误分散于多个倾斜ECC帧,由此,能够使这些倾斜ECC帧所包含的错误的数量均匀化。
这样,第1实施方式的倾斜ECC帧的构成能够一并具有图9的列ECC帧的优点和图10的行ECC帧的优点这两方。由此,能够在具有越是下层侧的层则错误率越高、另外突发错误会以磁存储线MML为单位产生的倾向的磁壁移动存储器3中,实现保存于磁壁移动存储器3的数据的可靠性的提高。
(第2实施方式)
接着,将使用组合了行ECC帧(第1类型纠错码帧)和倾斜ECC帧(第2类型纠错码帧)的乘积码的构成作为第2实施方式来进行说明。
第2实施方式涉及的存储系统1的硬件构成与图1是同样的,另外,在第2实施方式涉及的存储系统1中使用的磁壁移动存储器3的构成也与第1实施方式是同样的。在以下中,主要对与第1实施方式不同的部分进行说明。
图22是表示在第2实施方式涉及的存储系统中使用的、组合了行ECC帧和倾斜ECC帧的乘积码的构成例的图。
在图22中,与第1实施方式同样地,多个倾斜ECC帧(例如帧#1~#8)各自在倾斜方向上配置在磁壁移动存储器3的块的物理存储区域。在图22中例示了一个块包含8条磁存储线MML和8个层的情况。
即,这些倾斜ECC帧(例如帧#1~#8)各自在倾斜方向上配置在磁壁移动存储器3的块的物理存储区域,以使得:错误率存在差异的上层侧的数据和下层侧的数据均等地包含于多个倾斜ECC帧(例如帧#1~#8)的各个帧,并且,以磁存储线MML为单位而产生的突发错误均等地分散于这些倾斜ECC帧(例如帧#1~#8)。这些倾斜ECC帧(例如帧#1~#8)各自的构成与第1实施方式相同。
在图22中,为了减少数据的读出处理的延迟时间,进一步在磁壁移动存储器3的块的物理存储区域中,在行方向上配置多个行ECC帧(例如帧#1’~#8’)的各个帧。行ECC帧#1’~#8’具有相同的帧尺寸。例如,一个行ECC帧具有与磁壁移动存储器3的块的1个以上的层对应的尺寸。图22表示以1个层为单位构成行ECC帧的例子。由相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧,由相同的数字表示的数据要素的集合构成一个行ECC帧。
此外,在图22中,使用相同的数字表示的数据要素的集合构成一个行ECC帧。例如,使用“1”表示的多个数据要素(即由α1~θ1表示的多个数据要素)是帧#1’所包含的数据要素的集合。另外,使用相同的希腊文字表示的数据要素的集合构成一个倾斜ECC帧。例如,使用“θ”表示的多个数据要素(即由θ1~θ7表示的多个数据要素)是帧#1所包含的数据要素的集合。
存储控制器2使用组合了第1码和第2码的乘积码对应该写入到块的数据进行编码,将组合了各自包含第1码的码字的ECC帧组群和各自包含第2码的码字的ECC帧组群的编码数据写入到块。在该情况下,各自包含第1码的码字的ECC帧组群的各个ECC帧在行方向上配置在块的物理存储区域,被用作行ECC帧#1’~#8’。各自包含第2码的码字的ECC帧组群的各个ECC帧在倾斜方向上配置在块的物理存储区域,被用作倾斜ECC帧#1~#8。
第1码例如是用于在行方向上对应该被写入到块的数据进行编码的码(C1码)。第2码例如是用于在列方向上对应该被写入到块的数据进行编码的码(C2码)。
图23是表示乘积码的逻辑图与磁壁移动存储器的块上的乘积码的物理配置之间的关系的图。
在图23中,为了使说明变得简单,例示了块的物理存储区域具有4行×4列的构成的情况。
图23的(A)表示为了构成多个行ECC帧和多个倾斜ECC帧而使用的乘积码的逻辑图。数据部(X1、Y1、Z1)、数据部(X2、Y2、Z2)、数据部(X3、Y3、Z3)是根据来自主机4d的写入要求而应该被写入到块的数据(用户数据)。存储控制器2的编码部26在纵向(列方向)上排列数据部(X1、Y1、Z1)、数据部(X2、Y2、Z2)、数据部(X3、Y3、Z3),由此,生成图23的(A)所示的二维排列的数据。X1、Y1、Z1是配置于第1行(Row1)的数据部的数据要素。X2、Y2、Z2是配置于第2行(Row2)的数据部的数据要素。X3、Y3、Z3是配置于第3行(Row3)的数据部的数据要素。
并且,编码部26使用组合了用于以行为单位对二维排列的数据进行编码的第1码(C1码)和用于以列为单位对二维排列的数据进行编码的第2码(C2码)的乘积码,对二维排列的数据进行编码,生成组合了各自包含C1码的码字的ECC帧C1-1、C1-2、C1-3和各自包含C2码的码字的ECC帧C2-1、C2-2、C2-3、C2-4的编码数据。
执行C1码和C2码的顺序不被限定,既可以最初进行基于C1码的编码,接着进行基于C2码的编码,也可以最初进行基于C2码的编码,接着进行基于C1码的编码。例如,在最初进行基于C1码的编码、接着进行基于C2码的编码的情况下,通过基于C1码的编码,层单位的数据先齐备。因此,能够提前开始向块的数据的写入。以下,主要以最初进行基于C1码的编码、接着进行基于C2码的编码的情况为例来进行说明。
ECC帧C1-1所包含的码字包含数据(X1、Y1、Z1)和奇偶校验(α1),ECC帧C1-2所包含的码字包含数据(X2、Y2、Z2)和奇偶校验(α2),ECC帧C1-3所包含的码字包含数据(X3、Y3、Z3)和奇偶校验(α3)。
ECC帧C2-1所包含的码字包含数据(X1、X2、X3)和奇偶校验(XP),ECC帧C2-2所包含的码字包含数据(Y1、Y2、Y3)和奇偶校验(YP),ECC帧C2-3所包含的码字包含数据(Z1、Z2、Z3)和奇偶校验(ZP)。ECC帧C2-4所包含的码字是通过对奇偶校验(α1、α2、α3)进行编码而获得的码字,包含奇偶校验(α1、α2、α3)和与该奇偶校验(α1、α2、α3)对应的奇偶校验(αP)。
图23的(B)表示磁壁移动存储器3的块上的ECC帧C1-1~C1-3、ECC帧C2-1~C2-4的物理配置。
ECC帧C1-1~C1-3和ECC帧C2-1~C2-4中的一方在行方向上配置于磁壁移动存储器3的块的物理存储区域,被用作行ECC帧。
ECC帧C1-1~C1-3和ECC帧C2-1~C2-4中的另一方在倾斜方向上配置在磁壁移动存储器3的块的物理存储区域,被用作倾斜ECC帧。
以下,不限定此,但以ECC帧C1-1~C1-3被用作行ECC帧、ECC帧C2-1~C2-4被用作倾斜ECC帧的情况为例,对磁壁移动存储器3的块上的ECC帧C1-1~C1-3、ECC帧C2-1~C2-4的物理配置进行说明。
对于与第1行(Row1)对应的数据部(X1、Y1、Z1、α1),该数据部所包含的数据要素X1、Y1、Z1、α1的排列顺序被维持。
关于与第2行(Row2)对应的数据部(X2、Y2、Z2、α2),变更数据要素X2、Y2、Z2、α2的排列顺序,以使得该数据部所包含的数据要素X2、Y2、Z2、α2向右移位1个数据要素,由此,这些数据要素被排序为α2、X2、Y2、Z2这一顺序。
关于与第3行(Row3)对应的数据部(X3、Y3、Z3、α3),变更数据要素X3、Y3、Z3、α3的排列顺序,以使得该数据部所包含的数据要素X3、Y3、Z3、α3向右移位2个数据要素,由此,这些数据要素被排序为Z3、α3、X3、Y3这一顺序。
关于与第4行(Row4)对应的数据部(XP、YP、ZP、αP),变更数据要素XP、YP、ZP、αP的排列顺序,以使得该数据部所包含的数据要素XP、YP、ZP、αP向右移位3个数据要素,由此,这些数据要素被排序为YP、ZP、αP、XP这一顺序。
如图23的(B)所示,与第1行(Row1)对应的数据部、与被排序后的第2行(Row2)对应的数据部、与被排序后的第3行(Row3)对应的数据部、与被排序后的第4行(Row4)对应的数据部分别配置于块的物理存储区域上的连续的多个行。其结果是,能够将ECC帧C1-1~C1-3各自在行方向上配置在块的物理存储区域,并且,将ECC帧C2-1(X1、X2、X3、XP)、ECC帧C2-2(Y1、Y2、Y3、YP)、ECC帧C2-3(Z1、Z2、Z3、ZP)、ECC帧C2-4(α1、α2、α3、αP)各自在倾斜方向上配置在块的物理存储区域。也即是,存储控制器2在与第1列(Col.1)对应的磁存储线MML内的4个层(与Row1~Row4对应)分别保存X1、α2、Z3、YP,在与第2列(Col.2)对应的磁存储线MML内的4个层(与Row1~Row4对应)分别保存Y1、X2、α3、ZP,在与第3列(Col.3)对应的磁存储线MML内的4个层(与Row1~Row4对应)分别保存Z1、Y2、X3、αP,在与第4列(Col.4)对应的磁存储线MML内的4个层(与Row1~Row4对应)分别保存α1、Z2、Y3、XP。
在图23中,也可以如用图11的(C)说明过的那样,将倾斜ECC帧各自的奇偶校验(YP、ZP、αP、XP)保存在块的最上层。在该情况下,以数据部(X1、Y1、Z1、α1)、数据部(α2、X2、Y2、Z2)、数据部(Z3、α3、X3、Y3)、奇偶校验(YP、ZP、αP、XP)这一顺序,执行向块的写入。由此,最初被写入的数据部(X1、Y1、Z1、α1)保存于块的最下层,最后被写入的奇偶校验(YP、ZP、αP、XP)保存于块的最上层。
图24是表示磁壁移动存储器3的块具有8MML×8层的构成的情况下的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的构成例的图。在此,例示了各行ECC帧的尺寸(帧长度)为8、各倾斜ECC帧的尺寸(帧长度)也为8的情况。
在图24中使用相同的数字表示的数据要素的集合构成一个行ECC帧。例如,使用“1”表示的多个数据要素(即由a1~h1表示的多个数据要素)是构成帧#1’的数据要素的集合。另外,使用相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧。例如,由“h”表示的多个数据要素(即h以及h1~h7表示的多个数据要素)是构成帧#1的数据要素的集合。
图24的(A)表示与7个行ECC帧(帧#1’~#7’)对应的7个码字的逻辑图和与8个倾斜ECC帧(帧#1~#8)对应的8个码字的逻辑图。
图24的(B)是表示块的物理存储区域中的7个行ECC帧(帧#1’~#7’)和8个倾斜ECC帧(帧#1~#8)的物理配置。在图24的(B)中,一个列对应于块内的一个磁存储线MML,一个行对应于块内的一个层。
在图24中,由相同的数字表示的数据要素的集合构成一个行ECC帧,由相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧。另外,由粗框表示的数据要素表示保存奇偶校验的数据要素。此外,在各ECC帧中,奇偶校验保存于该ECC帧内的数据要素中的某一个数据要素即可,应该保存奇偶校验的数据要素的物理的位置不被限定。
7个行ECC帧(帧#1’~#7’)分别配置于块的第1行(Row1)~第7行(Row7)。
8个倾斜ECC帧(帧#1~#8)构成为:在各倾斜ECC帧均等地包含有各种各样的列(各种各样的磁存储线MML),并且,在各倾斜ECC帧均等地包含有各种各样的深度的行(单元)。8个倾斜ECC帧(帧#1~#8)与第1实施方式同样地具有数据配置特征1、2、3。
如图24的(A)所示,首先,二维排列的数据被以行为单位进行编码,生成7个行ECC帧(帧#1’~#7’)。
行ECC帧(帧#1’)保存一个码字,该码字包含数据(a1、b1、c1、d1、e1、f1、g1)和奇偶校验(h1)。行ECC帧(帧#2’)保存一个码字,该码字包含数据(a2、b2、c2、d2、e2、f2、g2)和奇偶校验(h2)。行ECC帧(帧#3’)保存一个码字,该码字包含数据(a3、b3、c3、d3、e3、f3、g3)和奇偶校验(h3)。行ECC帧(帧#4’)保存一个码字,该码字包含数据(a4、b4、c4、d4、e4、f4、g4)和奇偶校验(h4)。行ECC帧(帧#5’)保存一个码字,该码字包含数据(a5、b5、c5、d5、e5、f5、g5)和奇偶校验(h5)。行ECC帧(帧#6’)保存一个码字,该码字包含数据(a6、b6、c6、d6、e6、f6、g6)和奇偶校验(h6)。行ECC帧(帧#7’)保存一个码字,该码字包含数据(a7、b7、c7、d7、e7、f7、g7)和奇偶校验(h7)。
接着,二维排列的数据被列为单位进行编码,生成8个ECC帧(帧#1~#8)。这些ECC帧(帧#1~#8)是通过以列为单位对数据进行编码而得到的ECC帧(列ECC帧),但被用作在倾斜方向上配置于块的ECC帧,因此,以下称为倾斜ECC帧。
倾斜ECC帧(帧#1)保存一个码字,该码字包含数据(h1、h2、h3、h4、h5、h6、h7)和奇偶校验(h)。倾斜ECC帧(帧#2)保存一个码字,该码字包含数据(g1、g2、g3、g4、g5、g6、g7)和奇偶校验(g)。倾斜ECC帧(帧#3)保存一个码字,该码字包含数据(f1、f2、f3、f4、f5、f6、f7)和奇偶校验(f)。倾斜ECC帧(帧#4)保存一个码字,该码字包含数据(e1、e2、e3、e4、e5、e6、e7)和奇偶校验(e)。倾斜ECC帧(帧#5)保存一个码字,该码字包含数据(d1、d2、d3、d4、d5、d6、d7)和奇偶校验(d)。倾斜ECC帧(帧#6)保存一个码字,该码字包含数据(c1、c2、c3、c4、c5、c6、c7)和奇偶校验(c)。倾斜ECC帧(帧#7)保存一个码字,该码字包含数据(b1、b2、b3、b4、b5、b6、b7)和奇偶校验(b)。倾斜ECC帧(帧#8)保存一个码字,该码字包含数据(a1、a2、a3、a4、a5、a6、a7)和奇偶校验(a)。
如图24的(B)所示,7个行ECC帧(帧#1’~#7’)各自在行方向上配置在块的物理存储区域,并且,8个倾斜ECC帧(帧#1~#8)各自在倾斜方向上配置在块的物理存储区域。根据图24的(B)可理解:由相同的数字表示的数据要素的集合配置在行方向上,由相同的字母文字表示的数据要素的集合配置在倾斜方向上。
例如,倾斜ECC帧(帧#8)的码字(a1、a2、a3、a4、a5、a6、a7、a)沿着块的物理存储区域的对角线而配置。另外,例如,倾斜ECC帧(帧#1)包含倾斜帧要素#1-1和倾斜帧要素#1-2。倾斜帧要素#1-1是包含许多上层侧的数据的帧要素,在图24的(B)所示的例子中,倾斜帧要素#1-1仅包含存在于第1行(Row1)的第8列(Col.8)的数据要素h1。倾斜帧要素#1-2是包含许多下层侧的数据的帧要素,在图12的(B)所示的例子中,倾斜帧要素#1-2包含7个数据要素h2、h3、h4、h5、h6、h7。
对于将8个倾斜ECC帧(帧#1~#8)各自在倾斜方向上配置在块的物理存储区域的处理,例如通过如以下那样按每行对数据进行排列来容易地执行。
在图24的(A)中,不进行与第1行(Row1)对应的数据部(a1、b1、c1、d1、e1、f1、g1、h1)的排序。与第2行(Row2)对应的数据部(a2、b2、c2、d2、e2、f2、g2、h2)被排序为h2、a2、b2、c2、d2、e2、f2、g2这一顺序。与第3行(Row3)对应的数据部(a3、b3、c3、d3、e3、f3、g3、h3)被排序为g3、h3、a3、b3、c3、d3、e3、f3这一顺序。与第4行(Row4)对应的数据部(a4、b4、c4、d4、e4、f4、g4、h4)被排序为f4、g4、h4、a4、b4、c4、d4、e4这一顺序。同样地,与第8行(Row8)对应的数据部(a、b、c、d、e、f、g、h)被排序为b、c、d、e、f、g、h、a这一顺序。
这样,通过对各行的数据部所包含的数据要素的排列顺序进行规则性地变更,以使得属于相同的倾斜ECC帧的数据要素(由相同的字母表示的数据要素)各自的列位置在多个行间错开,能够如图24的(B)所示那样,将7个行ECC帧(帧#1’~#7’)各自在行方向上配置在块的物理存储区域,并且,将8个倾斜ECC帧(帧#1~#8)各自配置在倾斜方向上。
设为着眼于块所包含的多个磁存储线MML中的任意的第1MML以及第2MML(例如Col.1的MML、Col.3的MML)和多个层中的任意的第1层以及第2层(例如Row1的层、Row3的层)。如图24的(B)所示,第1数据(在此为a1)保存于第1MML(在此为Col.1的MML)内的与第1层(在此为Row1的层)对应的位置(单元),第2数据(在此为g3)保存于第1MML(在此为Col.1的MML)内的与第2层(在此为Row3的层)对应的位置,第3数据(在此为a3)保存于第2MML(在此为Col.3的MML)内的与第2层(在此为Row3的层)对应的位置,第4数据(在此为c1)保存于第2MML(在此为Col.3的MML)内的与第1层(在此为Row1的层)对应的位置。
在该情况下,第1倾斜ECC帧(在此为ECC帧#8)包含第1数据(在此为a1)和第3数据(在此为a3),并且,第2数据(在此为g3)包含于与第1倾斜ECC帧不同的第2倾斜ECC帧(在此为ECC帧#2)(数据配置特征1)。
另外,第1行ECC帧(在此为ECC帧#1’)包含第1数据(在此为a1)和第4数据(在此为c1),第2行ECC帧(在此为ECC帧#3’)包含第2数据(在此为g3)和第4数据(在此为c1)。此外,在第1行ECC帧(在此为ECC帧#1’)例如由3个以上的层构成的情况下,第2数据(在此为g3)和第4数据(在此为c1)也包含于第1行ECC帧(在此为ECC帧#1’)。
图25是表示磁壁移动存储器3的块具有4MML×16层的构成的情况下的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的构成例的图。在此,例示了各行ECC帧和各倾斜ECC帧的尺寸(帧长度)为8的情况。
图25的(A)示出用图24的(B)说明过的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的物理配置。由相同的数字表示的数据要素的集合构成一个行ECC帧,由相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧。
如图25的(B)所示,图25的(A)所示的8×8的数据要素按每行被分割为属于最初的4个列的4个数据要素和属于剩余的4个列的4个数据要素。并且,如图25的(C)所示,8×8的数据要素所包含的第1行(Row1)的最初的4个数据要素(a1、b1、c1、d1)配置于块的物理存储区域(4列×16行)的第1行(Row1),8×8的数据要素所包含的第1行(Row1)的剩余的4个数据要素(e1、f1、g1、h1)配置在物理存储区域(4列×16行)的第2行(Row2),8×8的数据要素所包含的第2行(Row2)的最初的4个数据要素(h2、a2、b2、c2)配置在物理存储区域(4列×16行)的第3行(Row3),8×8的数据要素所包含的第2行(Row2)的剩余的4个数据要素(d2、e2、f2、g2)配置在物理存储区域(4列×16行)的第4行(Row4),以下同样地,8×8的数据要素所包含的第8行(Row8)的最初的4个数据要素(b、c、d、e)配置在物理存储区域(4列×16行)的第15行(Row15),8×8的数据要素所包含的第8行(Row8)的剩余的4个数据要素(f、g、h、a)配置在物理存储区域(4列×16行)的第16行(Row16)。
其结果是,各行ECC帧遍及物理存储区域(4列×16行)的相邻的2个行而被保存。8个倾斜ECC帧(帧#1~#8)构成为:在各倾斜ECC帧各包含2单元的全部列,并且,在各倾斜ECC帧均等地包含全部深度的行中的大约一半的行。
在物理存储区域(4列×16行)中,例如由用字母文字“a”表示的数据要素的集合构成的倾斜ECC帧(帧#8)包括包含许多上层侧的数据的倾斜帧要素#8-1和包含许多下层侧的数据的倾斜帧要素#8-2。
倾斜帧要素#8-1包含保存于第1行(Row1)的第1列(Col.1)的数据要素a1、保存于第3行(Row3)的第2列(Col.2)的数据要素a2、保存于第5行(Row5)的第3列(Col.3)的数据要素a3以及保存于第7行(Row7)的第4列(Col.4)的数据要素a4。
倾斜帧要素#8-2包含保存于第10行(Row10)的第1列(Col.1)的数据要素a5、保存于第12行(Row12)的第2列(Col.2)的数据要素a6、保存于第14行(Row14)的第3列(Col.3)的数据要素a7以及保存于第16行(Row16)的第4列(Col.4)的数据要素a。
另外,例如,由用字母文字“b”表示的数据要素的集合构成的倾斜ECC帧(帧#7)包含倾斜帧要素#7-1、倾斜帧要素#7-2、倾斜帧要素#7-3。
倾斜帧要素#7-1包含保存于第1行(Row1)的第2列(Col.2)的数据要素b1、保存于第3行(Row3)的第3列(Col.3)的数据要素b2以及保存于第5行(Row5)的第4列(Col.4)的数据要素b3。
倾斜帧要素#7-2包含保存于第8行(Row8)的第1列(Col.1)的数据要素b4、保存于第10行(Row10)的第2列(Col.2)的数据要素b5、保存于第12行(Row12)的第3列(Col.3)的数据要素b6以及保存于第14行(Row14)的第4列(Col.4)的数据要素b7。
倾斜帧要素#7-3包含保存于第15行(Row15)的第1列(Col.1)的数据要素b。
图26是表示磁壁移动存储器3的块具有4MML×16层的构成的情况下的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的其他构成例的图。
图26的(A)示出用图24的(B)说明过的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的物理配置。由相同的数字表示的数据要素的集合构成一个行ECC帧,由相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧。
如图26的(B)所示,图26的(A)所示的8×8的数据要素被分割为与8个列对应的8个数据部。并且,如图26的(C)所示,8×8的数据要素所包含的第1列(Col.1)的数据部(a1、h2、g3、f4、e5、d6、c7、b)被作为块的物理存储区域(4列×16行)的第1列(Col.1)的上侧的8个数据要素来进行配置,8×8的数据要素所包含的第2列(Col.2)的数据部(b1、a2、h3、g4、f5、e6、d7、c)被作为块的物理存储区域(4列×16行)的第1列(Col.1)的下侧的8个数据要素来进行配置,8×8的数据要素所包含的第3列(Col.3)的数据部(c1、b2、a3、h4、g5、f6、e7、d)被作为块的物理存储区域(4列×16行)的第2列(Col.2)的上侧的8个数据要素来进行配置,8×8的数据要素所包含的第4列(Col.4)的数据部(d1、c2、b3、a4、h5、g6、f7、e)被作为块的物理存储区域(4列×16行)的第2列(Col.2)的下侧的8个数据要素来进行配置,以下同样地,8×8的数据要素所包含的第7列(Col.7)的数据部(g1、f2、e3、d4、c5、b6、a7、h)被作为块的物理存储区域(4列×16行)的第4列(Col.4)的上侧的8个数据要素来进行配置,8×8的数据要素所包含的第8列(Col.8)的数据部(h1、g2、f3、e4、d5、c6、b7、a)被作为块的物理存储区域(4列×16行)的第4列(Col.4)的下侧的8个数据要素来进行配置。
其结果是,各行ECC帧分散于物理存储区域(4列×16行)的2个行。8个倾斜ECC帧(帧#1~#8)构成为:在各倾斜ECC帧各包含2单元的全部列,并且,在各倾斜ECC帧均等地包含全部深度的行中的大约一半的行。
在物理存储区域(4列×16行)中,例如,由用字母文字“a”表示的数据要素的集合构成的倾斜ECC帧(帧#8)包括包含许多上层侧的数据的倾斜帧要素#8-1和包含许多下层侧的数据的倾斜帧要素#8-2。
倾斜帧要素#8-1包含保存于第1行(Row1)的第1列(Col.1)的数据要素a1、保存于第3行(Row3)的第2列(Col.2)的数据要素a3、保存于第5行(Row5)的第3列(Col.3)的数据要素a5以及保存于第7行(Row7)的第4列(Col.4)的数据要素a7。
倾斜帧要素#8-2包含保存于第10行(Row10)的第1列(Col.1)的数据要素a2、保存于第12行(Row12)的第2列(Col.2)的数据要素a4、保存于第14行(Row14)的第3列(Col.3)的数据要素a6以及保存于第16行(Row16)的第4列(Col.4)的数据要素a。
另外,例如,由用字母文字“c”表示的数据要素的集合构成的倾斜ECC帧(帧#6)包含倾斜帧要素#6-1、倾斜帧要素#6-2、倾斜帧要素#6-3、倾斜帧要素#6-4。
倾斜帧要素#6-1包含保存于第1行(Row1)的第2列(Col.2)的数据要素c1、保存于第3行(Row3)的第3列(Col.3)的数据要素c3以及保存于第5行(Row5)的第4列(Col.4)的数据要素c5。
倾斜帧要素#6-2包含保存于第7行(Row7)的第1列(Col.1)的数据要素c7。
倾斜帧要素#6-3包含保存于第10行(Row10)的第2列(Col.2)的数据要素c2、保存于第12行(Row12)的第3列(Col.3)的数据要素c4以及保存于第14行(Row14)的第4列(Col.4)的数据要素c6。
倾斜帧要素#6-4包含保存于第16行(Row16)的第1列(Col.1)的数据要素c。
图27是表示磁壁移动存储器3的块具有16MML×4层的构成的情况下的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的两种构成例的图。
图27是(A)示出用图24的(B)说明过的乘积码的ECC帧(行ECC帧和倾斜ECC帧)的物理配置。由相同的数字表示的数据要素的集合构成一个行ECC帧,由相同的字母文字表示的数据要素的集合构成一个倾斜ECC帧。
图27的(A)所示的8×8的数据要素被分割为与8个行对应的8个数据部。并且,如图27的(B)所示,8×8的数据要素所包含的第1行(Row1)的数据部(a1、b1、c1、d1、e1、f1、g1、h1)被作为块的物理存储区域(16列×4行)的第1行(Row1)的最初的8个列的数据要素来进行配置,8×8的数据要素所包含的第2行(Row2)的数据部(h2、a2、b2、c2、d2、e2、f2、g2)被作为块的物理存储区域(16列×4行)的第1行(Row1)的剩余的8个列的数据要素来进行配置,……,并且,8×8的数据要素所包含的第7行(Row7)的数据部(c7、d7、e7、f7、g7、h7、a7、b7)被作为块的物理存储区域(16列×4行)的第4行(Row4)的最初的8个列的数据要素来进行配置,8×8的数据要素所包含的第8行(Row8)的数据部(b、c、d、e、f、g、h、a)被作为块的物理存储区域(16列×4行)的第4行(Row4)的剩余的8个列的数据要素来进行配置。
其结果是,8个倾斜ECC帧(帧#1~#8)构成为:在各倾斜ECC帧均等包含全部列中的大约一半的列,并且,在各倾斜ECC帧各包含2单元的全部深度的行。
在图27的(B)所示的块的物理存储区域(16列×4行)中,例如,由以字母文字“a”表示的数据要素的集合构成的倾斜ECC帧(帧#8)包括倾斜帧要素#8-1和倾斜帧要素#8-2。
倾斜帧要素#8-1包含保存于第1行(Row1)的第10列(Col.10)的数据要素a2、保存于第2行(Row2)的第12列(Col.12)的数据要素a4、保存于第3行(Row3)的第14列(Col.14)的数据要素a6以及保存于第4行(Row4)的第16列(Col.16)的数据要素a。
倾斜帧要素#8-2包含保存于第1行(Row1)的第1列(Col.1)的数据要素a1、保存于第2行(Row2)的第3列(Col.3)的数据要素a3、保存于第3行(Row3)的第5列(Col.5)的数据要素a5以及保存于第4行(Row4)的第7列(Col.7)的数据要素a7。
另外,例如,由用字母文字“c”表示的数据要素的集合构成的倾斜ECC帧(帧#6)包含倾斜帧要素#6-1、倾斜帧要素#6-2、倾斜帧要素#6-3、倾斜帧要素#6-4。
倾斜帧要素#6-1包含保存于第1行(Row1)的第12列(Col.12)的数据要素c2、保存于第2行(Row2)的第14列(Col.14)的数据要素c4以及保存于第3行(Row3)的第16列(Col.16)的数据要素c6。
倾斜帧要素#6-2包含保存于第4行(Row4)的第10列(Col.10)的数据要素c。
倾斜帧要素#6-3包含保存于第1行(Row1)的第3列(Col.3)的数据要素c1、保存于第2行(Row2)的第5列(Col.5)的数据要素c3以及保存于第3行(Row3)的第7列(Col.7)的数据要素c5。
倾斜帧要素#6-4包含保存于第4行(Row4)的第1列(Col.1)的数据要素c7。
图27的(C)表示乘积码的ECC帧(行ECC帧和倾斜ECC帧)的其他构成例。
图27的(C)所示的乘积码的ECC帧(行ECC帧和倾斜ECC帧)通过以下的处理来构成。
图27的(A)所示的8×8的数据要素按每列而被分割为属于上侧的4个行的4个数据要素和属于下侧的4个行的4个数据要素。并且,如图27的(C)所示,8×8的数据要素所包含的第1列(Col.1)的上侧的4个数据要素(a1、h2、g3、f4)配置在块的物理存储区域(16列×4行)的第1列(Col.1),8×8的数据要素所包含的第1列(Col.1)的下侧的4个数据要素(e5、d6、c7、b)配置在块的物理存储区域(16列×4行)的第2列(Col.2),8×8的数据要素所包含的第2列(Col.2)的上侧的4个数据要素(b1、a2、h3、g4)配置在块的物理存储区域(16列×4行)的第3列(Col.3),8×8的数据要素所包含的第2列(Col.2)的下侧的4个数据要素(f5、e6、d7、c)配置在块的物理存储区域(16列×4行)的第4列(Col.4),……,并且,8×8的数据要素所包含的第8列(Col.8)的上侧的4个数据要素(h1、g2、f3、e4)配置在块的物理存储区域(16列×4行)的第15列(Col.15),8×8的数据要素所包含的第8列(Col.8)的下侧的4个数据要素(d5、c6、b7、a)配置在块的物理存储区域(16列×4行)的第16列(Col.16)。
其结果是,8个倾斜ECC帧(帧#1~#8)构成为:在各倾斜ECC帧均等地包含全部列中的大约一半的列,并且,在各倾斜ECC帧各包含2单元的全部深度的行。
在图27的(C)所示的块的物理存储区域(16列×4行)中,例如,由用字母文字“a”表示的数据要素的集合构成的倾斜ECC帧(帧#8)包含倾斜帧要素#8-1和倾斜帧要素#8-2。
倾斜帧要素#8-1包含保存于第1行(Row1)的第10列(Col.10)的数据要素a5、保存于第2行(Row2)的第12列(Col.12)的数据要素a6、保存于第3行(Row3)的第14列(Col.14)的数据要素a7以及保存于第4行(Row4)的第16列(Col.16)的数据要素a。
倾斜帧要素#8-2包含保存于第1行(Row1)的第1列(Col.1)的数据要素a1、保存于第2行(Row2)的第3列(Col.3)的数据要素a2、保存于第3行(Row3)的第5列(Col.5)的数据要素a3以及保存于第4行(Row4)的第7列(Col.7)的数据要素a4。
另外,例如,由用字母文字“c”表示的数据要素的集合构成的倾斜ECC帧(帧#6)包含倾斜帧要素#6-1、倾斜帧要素#6-2、倾斜帧要素#6-3。
倾斜帧要素#6-1包含保存于第1行(Row1)的第14列(Col.14)的数据要素c5以及保存于第2行(Row2)的第16列(Col.16)的数据要素c6。
倾斜帧要素#6-2包含保存于第1行(Row1)的第5列(Col.5)的数据要素c1、保存于第2行(Row2)的第7列(Col.7)的数据要素c2、保存于第3行(Row3)的第9列(Col.9)的数据要素c3以及保存于第4行(Row4)的第11列(Col.11)的数据要素c4。
倾斜帧要素#6-3包含保存于第3行(Row3)的第2列(Col.2)的数据要素c7以及保存于第4行(Row4)的第4列(Col.4)的数据要素c。
图28是表示在存储系统1中执行的写入处理的步骤的流程图。
在存储控制器2从主机4接收到写要求时,存储控制器2开始图28的流程图所示的写入处理。
向磁壁移动存储器3的块的数据的写入也可以在从主机4接收到1块尺寸量的数据之后开始,但如上所述,在使用能够将奇偶校验保存于块的上层侧(例如最上层Ln)的数据配置的情形下,能够与从主机4的数据的接收以及每ECC帧的编码处理并行地进行向块的数据的写入。以下以后者的情况为例,对写入处理的步骤进行说明。
存储控制器2从主机4接收与从主机4接收到的写要求关联的数据,将该数据保存在数据缓存25(步骤S41)。
存储控制器2使用保存于数据缓存25的数据,通过使用了组合C1码和C2码的乘积码的编码,生成包括各自包含C1码的码字的ECC帧(行ECC帧)组群和各自包含C2码的码字的ECC帧(列ECC帧)组群的编码数据(乘积码的编码数据)的一部分(步骤S42)。在步骤S42中,也可以最初进行基于C1码的编码,接着进行基于C2码的编码。由此,层单位的编码数据(C1码的码字)被作为乘积码的编码数据的一部分来最初进行生成。与各行ECC帧(倾斜ECC帧)对应的码字的奇偶校验最后被写入到块即可,因此,不需要等待基于C2码的奇偶校验的计算完成,就能够开始向块写入数据。
因此,存储控制器2与编码处理并行地将乘积码的编码数据的一部分(在此为C1码的码字)写入到块(步骤S43)。在步骤S43中,存储控制器2将所生成的编码数据的一部分写入到块,以使得:各行ECC帧在行方向上配置于块的物理存储区域,各列ECC帧在倾斜方向上配置于块的物理存储区域。
存储控制器2对是否已将组合了行ECC帧组群和列ECC帧组群的乘积码的编码数据全部写入到块进行判定(步骤S44)。反复执行步骤S41~S43的处理,直到乘积码的编码数据全部被写入到块。
若是通过编码部26计算出了与各列ECC帧对应的C2码字的奇偶校验,则在步骤S42中,作为乘积码的编码数据的一部分,生成与各列ECC帧对应的C2码字的奇偶校验。并且,在步骤S43中,存储控制器2将这些奇偶校验写入块。
若是乘积码的编码数据全部被写入到了块(步骤S44:是),则写入处理结束。
该写入处理的结果是,多个列ECC帧各自在倾斜方向上配置在块的物理存储区域,以使得错误率存在差异的上层侧的数据和下层侧的数据均等地包含于多个ECC帧的各个帧,并且,以磁存储线MML为单位产生的突发错误均等地分散于多个ECC帧。配置在倾斜方向上的各列ECC帧被作为上述的倾斜ECC帧来使用。
此外,在此对在块的物理存储区域中将多个列ECC帧分别配置在倾斜方向上的例子进行了说明,但也可以将多个列ECC帧分别配置在行方向上,将多个行ECC帧分别配置在倾斜方向上。
图29是表示将多个行ECC帧分别在行方向上配置于磁壁移动存储器3的块的物理存储区域、且将多个倾斜ECC帧分别在倾斜方向上配置于物理存储区域的处理的步骤的流程图。
图29的步骤S51以及步骤S52的处理在图28的步骤S44被执行。
存储控制器2对多个行ECC帧的各个帧所包含的多个数据要素的排列顺序进行规则性地变更,以使得分别配置有属于相同的列ECC帧(也即是应该作为倾斜ECC帧来配置的ECC帧)的数据要素的列的位置在排列在列方向(纵向)上的多个行ECC帧之间错开(步骤S51)。
并且,存储控制器2将这些行ECC帧分别写入块,由此,将多个行ECC帧分别在行方向上配置于磁壁移动存储器3的块的物理存储区域,并且,将多个倾斜ECC帧分别在倾斜方向上配置于物理存储区域(步骤S52)。
图30是表示使用了行ECC帧和倾斜ECC帧的解码处理的步骤的流程图。
存储控制器2从磁壁移动存储器3读出保存于块的数据的一部分(步骤S61)。例如,在从块读出由主机4指定的读出对象数据的情况下,存储控制器2读出包含该读出对象数据的行ECC帧整体来作为保存于块的数据的一部分。存储控制器2对与该读出的数据对应的行ECC帧进行解码,执行对该读出的数据的错误进行纠正的第1解码处理(C1解码)(步骤S62)。
在该行ECC帧的第1解码处理(C1解码)成功的情况下(步骤S63:是),处理结束。此外,在执行从块读出块尺寸量的数据的读出处理的情形下,反复进行步骤S61的处理和步骤S62的处理,由此,按每行ECC帧执行第1解码处理(C1解码)。
在行ECC帧的第1解码处理(C1解码)失败的情况下(步骤S63:否),存储控制器2从块读出剩余的数据,以使得读出保存于块的全部数据(步骤S64)。在此,解码失败意味着纠错失败,解码成功意味着纠错成功。
存储控制器2通过将属于相同的倾斜ECC帧的数据部彼此组合,重构多个倾斜ECC帧(步骤S65)。
存储控制器2通过对重构后的多个倾斜ECC帧进行解码,执行对第1解码处理(C1解码)失败了的行ECC帧所包含的错误进行纠正的第2解码处理(C2解码)(步骤S66)。在步骤S66中,存储控制器2使用各倾斜ECC帧的解码结果,对C1解码失败了的行ECC帧所包含的错误进行纠正。
在第2解码处理(C2解码)成功的情况下(步骤S67:是),也即是,在全部倾斜ECC帧的解码成功的情况下,能够对C1解码失败了的行ECC帧所包含的全部错误进行纠正。因此,处理结束。另一方面,在某倾斜ECC帧的解码(C2解码)失败的情况下(步骤S67:否),在使用C2解码成功了的倾斜ECC帧的解码结果而纠正了该行ECC帧的错误的一部分的状态下,再次执行该行ECC帧的解码处理(C1解码)。
如上所述,根据第2实施方式,使用组合了行ECC帧和倾斜ECC帧的乘积码,因此,在能够通过行ECC帧的解码纠正了读出对象数据的错误的情况下,存储控制器2不需要进行列ECC帧(倾斜ECC帧)的解码,就能够使该读出对象数据返回到主机2。由此,能够减少数据的读出处理的延迟时间。另外,在行ECC帧的解码失败的情况下,存储控制器2读出块内的全部数据,进行各列ECC帧(倾斜ECC帧)的解码,由此,能够对读出对象数据的错误进行纠正。由此,与第1实施方式同样地,能够实现保存于磁壁移动存储器3的数据的可靠性的提高。
(变形例)
接着,作为乘积码的变形例,对组合了两种倾斜ECC帧的乘积码进行说明。
图31是表示组合了两种倾斜ECC帧的乘积码的构成例的图。
在图31中例示了一个块包含8条磁存储线MML和8个层的情况。与第1实施方式同样地,多个倾斜ECC帧(例如帧#1~#8)各自在倾斜方向上配置于磁壁移动存储器3的块的物理存储区域。
即,这些倾斜ECC帧(例如帧#1~#8)各自在倾斜方向上配置于磁壁移动存储器3的块的物理存储区域,以使得:错误率存在差异的上层侧的数据和下层侧的数据均等地包含于多个倾斜ECC帧(例如帧#1~#8)的各个帧,并且,以磁存储线MML为单位产生的突发错误均等地分散于这些倾斜ECC帧(例如帧#1~#8)。这些倾斜ECC帧(例如帧#1~#8)各自的构成与第1实施方式相同。
在图31中,由相同的字母文字(在此为相同的希腊文字)表示的数据要素的集合构成一个倾斜ECC帧。例如,由“θ”表示的多个数据要素是帧#1所包含的数据要素的集合。
在图31中,为了提高保护数据的性能,进一步配置有与这些倾斜ECC帧(帧#1~#8)反向的各个倾斜ECC帧(帧#1’~#8’)。例如,倾斜ECC帧(帧#1~#8)配置在右下倾斜方向上,倾斜ECC帧(帧#1’~#8’)配置在左下倾斜方向上。这些倾斜ECC帧(帧#1’~#8’)与倾斜ECC帧(帧#1~#8)同样地在倾斜方向(与倾斜ECC帧#1~#8反向的倾斜方向)上配置于磁壁移动存储器3的块的物理存储区域,以使得错误率存在差异的上层侧的数据和下层侧的数据均等地包含于这些倾斜ECC帧(帧#1’~#8’)的各个帧,并且,以磁存储线MML为单位产生的突发错误均等地分散在这些倾斜ECC帧(帧#1’~#8’)。倾斜ECC帧#1’~#8’各自的帧尺寸也可以与倾斜ECC帧(帧#1~#8)各自的帧尺寸相同。
在图31中,倾斜ECC帧#8’由沿着与倾斜ECC帧#8正交的对角线而配置在倾斜方向上的一个帧要素构成。其他倾斜ECC帧#1’~#7’各自由分别在倾斜方向上配置于块的物理存储区域的2个帧要素(也作为倾斜帧要素来参照)的组合构成。
倾斜ECC帧#1’包含倾斜帧要素#1’-1和倾斜帧要素#1’-2。倾斜帧要素#1’-1是包含许多上层侧的数据的帧要素,倾斜帧要素#1’-2是包含许多下层侧的数据的帧要素。
同样地,倾斜ECC帧#2’包括包含许多上层侧的数据的倾斜帧要素#2’-1和包含许多下层侧的数据的倾斜帧要素#2’-2,倾斜ECC帧#3’包括包含许多上层侧的数据的倾斜帧要素#3’-1和包含许多下层侧的数据的倾斜帧要素#3’-2,倾斜ECC帧#4’包括包含许多上层侧的数据的倾斜帧要素#4’-1和包含许多下层侧的数据的倾斜帧要素#4’-2,倾斜ECC帧#5’包括包含许多上层侧的数据的倾斜帧要素#5’-1和包含许多下层侧的数据的倾斜帧要素#5’-2,倾斜ECC帧#6’包括包含许多上层侧的数据的倾斜帧要素#6’-1和包含许多下层侧的数据的倾斜帧要素#6’-2,倾斜ECC帧#7’包括包含许多上层侧的数据的倾斜帧要素#7’-1和包含许多下层侧的数据的倾斜帧要素#7’-2。
在图31中,各倾斜ECC帧#1’~#7’构成为各包含一个分别由希腊文字α~θ表示的数据要素。
图32是表示磁壁移动存储器3的块具有7MML×7层的构成的情况下的乘积码的ECC帧(倾斜ECC帧和倾斜ECC帧)的构成例的图。在此,例示了全部倾斜ECC帧的尺寸(帧长度)为7的情况。以下,将配置在左下倾斜方向上的倾斜ECC帧称为反倾斜ECC帧。
图32的(A)表示与6个ECC帧(帧#1~#6)对应的6个码字的逻辑图和与7个反倾斜ECC帧(帧#1’~#7’)对应的7个码字的逻辑图。
图32的(B)表示块的物理存储区域中的6个倾斜ECC帧(帧#1~#6)和7个反倾斜ECC帧(帧#1’~#7’)的物理配置。在图32的(A)、(B)中,也都是由相同的数字表示的数据要素的集合表示一个倾斜ECC帧,由相同的字母文字表示的数据要素的集合表示一个反倾斜ECC帧。另外,由粗框表示的数据要素表示保存奇偶校验的数据要素。在图32的(B)中,为了使得容易观察该图,仅对几个倾斜ECC帧和反倾斜ECC帧标记参照标号。
在图32的(B)中,一个列对应于块内的一个磁存储线MML,一个行对应于块内的一个层。例如当着眼于倾斜ECC帧#1、#2时,倾斜ECC帧#1由用数字“1”表示的数据要素的集合构成,倾斜ECC帧#2由各自包含用数字“2”表示的数据要素的集合的2个帧要素构成。另外,例如当着眼于反倾斜ECC帧#2’时,反倾斜ECC帧#2’由各自包括由字母文字“f”表示的数据要素的集合的3个帧要素构成。
6个倾斜ECC帧(帧#1~#6)构成为:在各倾斜ECC帧中均等地包含各种各样的列(各种各样的磁存储线MML),并且,在各倾斜ECC帧中均等地包含各种各样的深度的行(单元)。例如,在图32的(B)中,包含由数字“1”表示的数据要素的集合的倾斜ECC帧#1在右下倾斜方向上配置于块的物理存储区域。
同样地,7个反倾斜ECC帧(帧#1’~#7’)也构成为:在各反倾斜ECC帧中均等地包含各种各样的列(各种各样的磁存储线MML),并且,且在各反倾斜ECC帧中均等地包含各种各样的深度的行(单元)。例如,在图32的(B)中,另外,例如包含由字母文字“f”表示的数据要素的集合的反倾斜ECC帧#2’在左下倾斜方向上配置于块的物理存储区域。
如图32的(A)所示,首先,二维排列的数据被以行为单位来进行编码,生成6个ECC帧(帧#1~#6)。这些ECC帧(帧#1~#6)是通过以行为单位对数据进行编码而得到的ECC帧(行ECC帧),但由于被用作在倾斜方向(左下)上配置于块的ECC帧,因此,称为倾斜ECC帧。
如图32的(A)所示,倾斜ECC帧(帧#1)保存一个码字,该码字包含数据(a1、b1、c1、d1、e1、f1)和奇偶校验(g1)。倾斜ECC帧(帧#2)保存一个码字,该码字包含数据(a2、b2、c2、d2、e2、f2)和奇偶校验(g2)。倾斜ECC帧(帧#3)保存一个码字,该码字包含数据(a3、b3、c3、d3、e3、f3)和奇偶校验(g3)。倾斜ECC帧(帧#4)保存一个码字,该码字包含数据(a4、b4、c4、d4、e4、f4)和奇偶校验(g4)。倾斜ECC帧(帧#5)保存一个码字,该码字包含数据(a5、b5、c5、d5、e5、f5)和奇偶校验(g5)。倾斜ECC帧(帧#6)保存一个码字,该码字包含数据(a6、b6、c6、d6、e6、f6)和奇偶校验(g6)。
接着,二维排列的数据被以列为单位来进行编码,如图32的(A)所示,生成7个ECC帧(帧#1’~#7’)。这些ECC帧(帧#1’~#7’)是通过以列为单位对数据进行编码而得到的ECC帧(列ECC帧),但由于被用作在倾斜方向(左下)上配置于块的ECC帧,因此,称为反倾斜ECC帧。
反倾斜ECC帧(帧#1’)保存一个码字,该码字包含数据(g1、g2、g3、g4、g5、g6)和奇偶校验(g)。反倾斜ECC帧(帧#2’)保存一个码字,该码字包含数据(f1、f2、f3、f4、f5、f6)和奇偶校验(f)。反倾斜ECC帧(帧#3’)保存一个码字,该码字包含数据(e1、e2、e3、e4、e5、e6)和奇偶校验(e)。反倾斜ECC帧(帧#4’)保存一个码字,该码字包含数据(d1、d2、d3、d4、d5、d6)和奇偶校验(d)。反倾斜ECC帧(帧#5’)保存一个码字,该码字包含数据(c1、c2、c3、c4、c5、c6)和奇偶校验(c)。反倾斜ECC帧(帧#6’)保存一个码字,该码字包含数据(b1、b2、b3、b4、b5、b6)和奇偶校验(b)。反倾斜ECC帧(帧#7’)保存一个码字,该码字包含数据(a1、a2、a3、a4、a5、a6)和奇偶校验(a)。
如图32的(B)所示,可理解:由相同的数字表示的数据要素的集合(各倾斜ECC帧)在右下倾斜方向上配置于块的物理存储区域,另外,由相同的字母文字表示的数据要素的集合(各反倾斜ECC帧)在左下倾斜方向上配置。
图33是表示实现正交的两种倾斜ECC帧的乘积码的逻辑图的图。在此,例示了磁壁移动存储器3的块具有9MML×9层的构成的情况。
图33的(A)表示组合了行ECC帧(帧#1~#8)和列ECC帧(帧#1’~#9’)的乘积码的逻辑图。在行ECC帧(帧#1~#8)中,由粗框表示的一个数据要素表示一个行ECC帧的奇偶校验。在列ECC帧(帧#1’~#9’)中,由文字P表示的一个数据要素表示一个列ECC帧的奇偶校验。由相同的字母文字表示的数据要素的集合构成一个行ECC帧。
图33的(B)是在图33的(A)的各列ECC帧写入了数字的图。由相同的数字表示的数据要素的集合构成一个列ECC帧。例如,由相同的字母文字表示的各行ECC帧被作为右下的倾斜ECC帧来使用,由相同的数字表示的各列ECC帧被作为左下的反倾斜ECC帧来使用。
图34是表示正交的两种倾斜ECC帧的物理配置的图。
在图34的(A)中,示出了由相同的字母文字表示的数据要素的集合在右下的倾斜方向上配置在块的物理区域的状态。例如,包含由字母文字“a”表示的数据要素的集合的行ECC帧#1被作为倾斜ECC帧而在右下的倾斜方向上配置于块的物理区域。另外,包含由字母文字“b”表示的数据要素的集合的行ECC帧#2被作为2个倾斜帧要素#2-1、#2-2而在右下的倾斜方向上配置于块的物理区域。
在图34的(B)中,进一步示出了由相同的数字表示的各列ECC帧在左下的倾斜方向上配置于块的物理区域的状态。例如,包含由数字“1”表示的数据要素的集合的列ECC帧#9’被作为反倾斜ECC帧而在左下的倾斜方向上配置于块的物理区域。另外,包含由数字“2”表示的数据要素的集合的列ECC帧#8’被作为2个反倾斜帧要素#8’-1、#8’-2而在左下的倾斜方向上配置于块的物理区域。
分别与正交的两种倾斜ECC帧对应的奇偶校验的位置不被限定,但图35A示出正交的两种倾斜ECC帧的奇偶校验的位置的一个例子。
在图35A的(A)中,由数字“9”表示的数据要素的集合表示多个行ECC帧(倾斜ECC帧)的奇偶校验的位置的例子。这些奇偶校验是列ECC帧(反倾斜ECC帧)#1’的数据要素。图35A的(B)进一步表示各列ECC帧(反倾斜ECC帧)的奇偶校验(P1、P2、P3、P4、P5、P6、P7、P8、P9)的位置的例子。
在图35A中,由倾斜ECC帧各自的奇偶校验(由数字“9”表示的数据要素)跨全部MML以及全部层。同样地,反倾斜ECC帧各自的奇偶校验(P1、P2、P3、P4、P5、P6、P7、P8、P9)也跨全部MML以及全部层。
图35B是表示正交的两种倾斜ECC帧的奇偶校验位置的其他例子的图。
图35B的(A)示出在最后被写入到块的两个层配置奇偶校验的例子。在图35B的(A)中,Row1表示最初被写入的层(最下层L1),随着Row的数字变大,表示更上层的层。Row9表示最后在块写入数据的层(最上层L9)。
包含相同数字的数据要素的集合表示反倾斜ECC帧,包含相同字母文字的数据要素的集合表示倾斜ECC帧。最初,数据部(信息符号序列)依次被写入到块。并且,当计算反倾斜ECC帧各自的奇偶校验(9P、1P、2P、3P、4P、5P、6P、7P、8P)后,这些奇偶校验(9P、1P、2P、3P、4P、5P、6P、7P、8P)被写入到块。并且,当计算倾斜ECC帧各自的奇偶校验(bP、cP、dP、eP、fP、gP、hP、iP、aP)后,这些奇偶校验(bP、cP、dP、eP、fP、gP、hP、iP、aP)被写入到块。
图35B的(B)表示一边将从主机4接收到的数据按其接收顺序规则性地分配到多个ECC帧(多个倾斜ECC帧、多个反倾斜ECC帧)、一边写入到块的处理。
如由图35B的(B)中的箭头所示那样,从主机4接收到的最初的8个数据被作为数据要素“a2”、数据要素“b3”、数据要素“c4”、数据要素“d5”、数据要素“e6”、数据要素“f7”、数据要素“g8”、数据要素“h9”、数据要素“i1”来进行分配。例如,数据要素“a2”表示是与字母文字“a”对应的倾斜ECC帧的要素、且是与数字“2”对应的反倾斜ECC帧的要素。这些8个数据最初被写入到块。
接着,从主机4接收的后续的8个数据在被作为数据要素“i3”、数据要素“a4”、数据要素“b5”、数据要素“c6”、数据要素“d7”、数据要素“e8”、数据要素“f9”、数据要素“g1”、数据要素“h2”而进行分配之后被写入到块。
并且,当7层的量的数据被写入到块后,各反倾斜ECC帧的奇偶校验(9P、1P、2P、3P、4P、5P、6P、7P、8P)的计算完成,因此,这些奇偶校验(9P、1P、2P、3P、4P、5P、6P、7P、8P)被分配给多个倾斜ECC帧,并且被写入到块。并且,当计算倾斜ECC帧各自的奇偶校验(bP、cP、dP、eP、fP、gP、hP、iP、aP)后,这些奇偶校验(bP、cP、dP、eP、fP、gP、hP、iP、aP)被写入到块。
这样,通过采用用于将奇偶校验配置在块的最上层的构成,能够获得以下的效果。
(1)不需要等待奇偶校验的计算的完成,就能够开始将数据写入块的处理,由此,能够提高写入性能。
(2)能够削减必须确保的写缓存的尺寸(size,容量)。
图36是表示磁壁移动存储器的块具有7MML×7层的构成的情况下的正交的两种倾斜ECC帧的构成例的图。
在图36的(A)中,示出了由相同的字母文字表示的各行ECC帧在右下的倾斜方向上被作为倾斜ECC帧而配置于块的物理区域的状态。在图34的(B)中,进一步示出了由相同的数字表示的各列ECC帧在左下的倾斜方向上被作为反倾斜ECC帧而配置在块的物理区域的状态。
此外,也可以是,各行ECC帧被作为反倾斜ECC帧来进行配置,各列ECC帧被作为倾斜ECC帧来进行配置。
(第3实施方式)
接着,将使用组合了行ECC帧和列ECC帧的乘积码的构成作为第3实施方式来进行说明。
第3实施方式涉及的存储系统1的硬件构成与图1是同样的,另外,在第3实施方式涉及的存储系统1中所使用的磁壁移动存储器3的构成也与第1实施方式是同样的。以下,主要对与第1实施方式不同的部分进行说明。
图37是表示在第3实施方式涉及的存储系统中使用的、组合了行ECC帧和列ECC帧的乘积码的构成例的图。
在图37中,例示了一个块包含8条磁存储线MML和8个层的情况。
行ECC帧和列ECC帧的组合与第1实施方式的倾斜ECC帧同样地能够使以各磁存储线MML为单位产生的突发错误均等地分散在多个行ECC帧,并且,能够使越是下层则越增加的错误均等地分散在多个列ECC帧。
存储控制器2使用组合了第1码和第2码的乘积码来对应该写入到块的数据进行编码而生成编码数据,将编码数据写入块,以使得:各自包含第1码的码字的多个行ECC帧在行方向上配置于块的物理存储区域、各自包含第2码的码字的多个第2列ECC帧各自在列方向上配置于块的物理存储区域。
第1码例如是用于以行为单位对数据进行编码的码#1(C1码),第2码例如是用于以列为单位对数据进行编码的码#2(C2码)。
在该情况下,存储控制器2的编码部26使用组合了用于以行为单位对应该写入块的数据进行编码的码#1(C1码)和用于以列为单位对该数据进行编码的码#2(C2码)的乘积码,对该数据进行编码,生成组合了各自包含码#1(C1码)的码字的行ECC帧(帧#1~#7)和各自包含码#2(C2码)的码字的列ECC帧(帧#1’~#13’)而得到的编码数据。存储控制器2将该编码数据写入块。在该情况下,例如也可以最初进行基于C1码的编码,接着进行基于C2码的编码。通过基于C1码的编码,层单位的数据先齐备。因此,能够提早开始向块的数据的写入。
图37示出以2层为单位构成行ECC帧、以一条MML为单位构成列ECC帧的情况下的例子。在图37中,多个行ECC帧(帧#1~#4)各自在行方向上配置于块的物理区域。
行ECC帧#1~#4具有相同的帧尺寸。对于行ECC帧#1~#4的各个帧,通过以行为单位(在图37中为以2行为单位)对应该写入到磁壁移动存储器3的块的数据进行编码来获得。
在图37中,多个列ECC帧(帧#1’~#8’)各自在列方向上配置于块的物理区域。
列ECC帧#1’~#8’具有相同的帧尺寸。对于列ECC帧#1’~#8’的各个帧,通过以列为单位(在图37中为以1列为单位)对应该写入到磁壁移动存储器3的块的数据进行编码来获得。
在使用了行ECC帧和列ECC帧的解码处理中,首先执行使用了各行ECC帧的解码(C1解码)。错误的数量为C1码的纠错能力以下的行ECC帧的C1解码成功,该行ECC帧的错误被进行纠正。错误的数量超过了C1码的纠错能力的行ECC帧的C1解码失败。
在某行ECC帧的C1解码失败的情况下,执行使用了各列ECC帧的解码(C2解码)。
错误的数量为C2码的纠错能力以下的列ECC帧的C2解码成功,因此,能够减少C1解码失败的行ECC帧所包含的错误的数量。另一方面,错误的数量超过C2码的纠错能力的列ECC帧的C2解码失败。因此,当C2解码失败的列ECC帧的数量增加时,有时会无法充分地减少C1解码失败的行ECC帧所包含的错误的数量。
如上所述,在磁壁移动存储器3中,会以磁存储线MML为单位产生突发错误。因此,在C2解码失败的列中,能够推定为不是稍微超过C2码的纠错能力的数量的错误,而是密集地产生了远远超过C2码的纠错能力的数量的错误。
因此,在第3实施方式中,存储控制器2将C2解码失败的列、也即是包含残留错误的列推定为是与产生突发错误的磁存储线MML对应的列,生成表示该列所包含的数据的可靠度低的似然信息来作为C2解码的解码结果。
并且,存储控制器2基于包含似然信息的该C2解码的解码结果,通过软判定解码对C1解码失败的行ECC帧进行解码。在该软判定解码中,知道在由似然信息表示的可靠度低的列中高概率地存在着错误,因此,与可靠度低的部位不明的情况相比,能够提高C1解码的精度。
图38是表示基于C2解码的解码结果所包含的似然信息、通过软判定解码对C1解码失败了的ECC帧进行解码的处理的图。
首先,存储控制器2从磁壁移动存储器3读出保存于块的数据。并且,存储控制器2执行对多个行ECC帧进行解码、纠正所读出的数据的错误的解码处理(C1解码)。在该情况下,存储控制器2能够每当从块读出1行ECC帧尺寸量的数据时,开始与该读出的数据对应的行ECC帧的解码。
图38的(A)示出使用了码#1(C1码)的解码处理(C1硬判定解码)。C1硬判定解码也称为C1 Hard Bit解码。在图38的(A)中例示了如下情况:在与第2行以及第4列(Row2以及col.4)对应的位置(图示为“24”)存在错误,在与第3行以及第4列(Row3以及col.4)对应的位置(图示为“34”)存在错误,在与第5行以及第1列(Row5以及col.1)对应的位置(图示为“51”)存在错误,在与第6行以及第1列(Row6以及col.1)对应的位置(图示为“61”)存在错误,在与第6行以及第4列(Row6以及col.4)对应的位置(图示为“64”)存在错误,在与第7行以及第4列(Row7以及col.4)对应的位置(图示为“74”)存在错误。
例如在C1码是能够纠正2位以下的错误的码的情况下,行ECC帧#1、行ECC帧#2以及行ECC帧#4的解码成功,这些各行ECC帧的错误被纠正。行ECC帧#3的解码失败,在行ECC帧#3残留错误。
在该情况下,存储控制器2执行通过对多个列ECC帧进行解码来对C1硬判定解码失败了的行ECC帧#3所包含的错误进行纠正的解码处理(C2硬判定解码)。C2硬判定解码也称为C2 Hard Bit解码。
图38的(B)表示使用了码#2(C2码)的解码处理(C2硬判定解码)。在图38的(B)中例示了各列ECC帧具有一个列(一个磁存储线MML)的量的帧尺寸的情况。在该情况下,列ECC帧的数量等于块所包含的磁存储线MML的数量。因此,在块所包含的磁存储线MML的数量为8的情况下,执行对8个列ECC帧进行解码的处理。这些列ECC帧的解码处理(C2硬判定解码)能够使用C1硬判定解码的解码结果(也即是行ECC帧#1~#4的解码结果)来执行。
在C2硬判定解码成功的情况下,也即是全部列ECC帧的解码成功的情况下,能够对行ECC帧#3所包含的全部错误进行纠正。因此,处理结束。
如图38的(B)所示,在C1硬判定解码的解码结果中,在位置“51”、位置“61”、位置“64”分别存在错误。例如,在C2码为能够纠正1位以下的错误的码的情况下,与第1列(col.1)对应的列ECC帧的解码失败,在第1列(col.1)残留2位的错误(位置“51”处的错误、位置“61”处的错误)。
与其他列(col.2~col.8)各自对应的列ECC帧的解码成功,通过与第4列(col.4)对应的列ECC帧的解码,位置“64”处的错误被纠正。
在该情况下,存储控制器2根据C2硬判定解码的解码结果,降低与残留有错误的第1列(col.1)对应的可靠度,生成表示第1列(col.1)的可靠度低的似然信息来作为C2硬判定解码的解码结果(软输出)。一般而言,可靠度由对数似然比(LLR)表示。
具体而言,如图38的(C)所示,存储控制器2生成与属于C1硬判定解码失败的行ECC帧#3的位置“51”~“58”、“61”~“68”分别对应的数据(位)的推定值、和与这些位置“51”~“58”、“61”~“68”分别对应的可靠度(LLR)来作为C2硬判定解码的解码结果。该解码结果被用于使用C1码对行ECC帧#3进行软判定解码。使用了C1码的软判定解码也被称为C1 SoftBit解码。
如图38的(C)所示,基于C1硬判定解码的结果,存储控制器2降低表示属于残留有错误的第1列(col.1)的位置“51”的可靠度的LLR(LLR振幅)、以及表示位置“61”的可靠度的LLR(LLR振幅)。在此,某位置的LLR意味着表示与该位置对应的推定值的可靠度的似然值。
在第2列(col.2)~第8列(col.8)未残留有错误。因此,存储控制器2将位置“52”~“58”、位置“62”~“68”所包含的各位置的可靠度(LLR)设定为大的值。
这之后,存储控制器2再次执行使用了码#1(C1码)的解码处理,对残留于行ECC帧#3的错误进行纠正。在该情况下,存储控制器2使用解码部27,通过软判定解码对行ECC帧#3进行解码。根据作为C2硬判定解码的解码结果而获得的似然信息,能够确定在第1列(Col.1)与行ECC帧#3重叠的区域(位置“51”以及位置“61”)中高概率地存在着错误,因此,在软判定解码中,例如也可以一边执行使存在于该区域的几个位的推定值反转的比特翻转解码,一边进行C1解码处理。
另外,也可以执行反复进行如下处理的反复解码,该处理为:将解码结果作为外部值来在C1解码与C2解码之间进行交换。在该情况下,解码部27也可以包括与C1码对应的解码器(成分解码器)、与C2码对应的解码器(成分解码器)。通过反复进行如下处理,能够执行反复解码,该处理为:将与C1码对应的解码器的解码结果和与C2码对应的解码器的解码结果作为外部值来在这些解码器之间进行交换。
图39是示出表示可靠度的对数似然比的例子的图。
现在考虑将可取2值{0、1}的值x写入(发送)到磁壁移动存储器3的块、从磁壁移动存储器3的块读出(接收)到某值r的情况。
在此,在说明对数似然比(Log Likelihood Ratio)时,定义几个术语。
似然(Likelihood)意味着下述的2个带条件的概率。
P(x=0|r):在接收到r的条件下,x为0的概率
P(x=1|r):在接收到r的条件下,x为1的概率
似然比(Likelihood Ratio)意味着似然的比,由P(x=0|r)/P(x=1|r)表示。
对数似然比(LLR)是取似然比的对数的值,由log(P(x=0|r)/P(x=1|r))表示。
图39的(A)示出对数似然比(LLR)的例子。在此,例示了如下情况:在被写入的值x为0时,从磁壁移动存储器3读出了y=0的次数为9900次,从磁壁移动存储器3读出了y=1的次数为100次。另外,例示了如下情况:在被写入的值x为1时,从磁壁移动存储器3读出了y=0的次数为100次,从磁壁移动存储器3读出了y=1的次数为9900次。正确地读出了y的概率为99%。在该情况下,对数似然比(LLR(y))为4.6。
图39的(B)示出对数似然比(LLR)的其他例子。在此,例示了如下情况:在被写入的值x为0时,从磁壁移动存储器3读出了y=0的次数为9999次,从磁壁移动存储器3读出了y=1的次数为一次。另外,例示了如下情况:在被写入的值x为1时,从磁壁移动存储器3读出了y=0的次数为一次,从磁壁移动存储器3读出了y=1的次数为9999次。正确地读出了y的概率为99.99%。在该情况下,对数似然比(LLR(y))为9.2。
在第3实施方式中,表示与C2码失败的列对应的数据的可靠度的LLR例如被设定为4.6以下的小的值。另一方面,表示与C2码成功的列对应的数据的可靠度的LLR被设定为大的值、例如+9.2。
图40是表示反复解码的构成例的图。
在此,如图40的(A)所示,设想使用提供了以行为单位对应该写入到磁壁移动存储器3的块的二维的信息符号部进行编码的C1码和以列为单位对二维的信息符号部进行编码的C2码的乘积码的构成。
成分解码器27a构成为对包含与C1码对应的码字的行ECC帧进行解码,成分解码器27b构成为对包含与C2码对应的码字的列ECC帧进行解码。
成分解码器27a接收从磁壁移动存储器3读出的数据来作为通道LLR(硬判定值),并且,输出C1解码的解码结果来作为外部值E1。成分解码器27b接收从磁壁移动存储器3读出的数据来作为通道LLR(硬判定输入值),并且,从成分解码器27a接收外部值E1。并且,成分解码器27b输出C2解码的解码结果来作为外部值E2。成分解码器27a从成分解码器27b接收外部值E2。该外部值E2包含表示C2解码的解码结果所包含的各信息符号(位)值的可靠度(LLR)的似然信息。基于该似然信息,成分解码器27a通过软判定解码对C1解码失败的行ECC帧进行解码。
作为用于软判定解码的解码法,已知作为LDPC码的软判定解码法的Sum-Product解码法、Min-Sum解码法。另外,作为BCH符号等(通常进行硬判定解码的码)的软判定解码,已知Chase解码法、Ordered Statistics Decoding等解码法。对成分解码器27a中的软判定解码可以应用这些软判定解码法。
图41是表示在存储系统1中执行的写入处理的步骤的流程图。
在存储控制器2从主机4接收到写要求时,存储控制器2开始图41的流程图所示的写入处理。
存储控制器2从主机4接收与从主机4接收到的写要求关联的数据,将该数据保存于数据缓存25(步骤S71)。
存储控制器2使用保存于数据缓存25的数据,通过使用了组合C1码和C2码的乘积码的编码,生成包括各自包含C1码的码字的ECC帧(行ECC帧)组群和各自包含C2码的码字的ECC帧(列ECC帧)组群的编码数据(乘积码的编码数据)的一部分(步骤S72)。在步骤S72中,也可以最初进行基于C1码的编码,接着进行基于C2码的编码。由此,层单位的编码数据(C1码的码字)被作为乘积码的编码数据的一部分而最初进行生成。与各行ECC帧对应的码字的奇偶校验在最后写入到块即可,因此,不需要等待基于C2码的奇偶校验的计算完成,就能够开始向块写入数据。
因此,存储控制器2与编码处理并行地将乘积码的编码数据的一部分(在此为C1码的码字)写入到块(步骤S73)。在步骤S73中,存储控制器2将所生成的编码数据的一部分写入到块,以使得:各行ECC帧在行方向上配置于块的物理存储区域,各列ECC帧在列方向上配置于块的物理存储区域。
存储控制器2判定是否已将组合了行ECC帧组群和列ECC帧组群的乘积码的编码数据全部写入到块(步骤S74)。反复执行步骤S71~S73的处理,直到乘积码的编码数据全部被写入到块。
若是通过编码部26计算出了与各列ECC帧对应的C2码字的奇偶校验,则在步骤S72中,作为乘积码的编码数据的一部分,生成与各列ECC帧对应的C2码字的奇偶校验。并且,在步骤S73中,存储控制器2将这些奇偶校验写入块。
若是乘积码的编码数据全部被写入到了块(步骤S74:是),则写入处理结束。
图42是表示在存储系统1中执行的解码处理的步骤的流程图。
存储控制器2从磁壁移动存储器3读出保存于块的数据(步骤S81)。存储控制器2开始通过C1解码对所读出的数据进行解码的处理。在该情况下,存储控制器2判定是否得到来自C2解码的似然信息(步骤S82)。在该阶段中,尚未得到来自C2解码的似然信息(步骤S82:否)。
因此,存储控制器2通过硬判定解码对多个行ECC帧进行解码,对读出的数据的错误进行纠正(C1解码处理)(步骤S83)。在步骤S83中,每当读出一个行ECC帧的帧尺寸量的数据时,执行该行ECC帧的解码。
在C1解码处理中,错误的数量为C1码的纠错能力以下的各行ECC帧的C1解码成功。由此,包含在这些各行ECC帧中的错误被纠正。错误的数量超过了C1码的纠错能力的行ECC帧的C1解码失败。因此,该行ECC帧所包含的错误不被纠正。
在C1解码处理成功的情况下,也即是从块读出的全部行ECC帧的解码成功的情况下(步骤S84:是),存储控制器2使处理结束。
另一方面,若是从块读出的至少一个行ECC帧的C1解码失败(步骤S84:否),则存储控制器2通过对多个列ECC帧进行解码,执行对C1解码失败的行ECC帧所包含的错误进行纠正的解码处理(C2解码处理)(步骤S85)。在C2解码处理中,错误的数量为C2码的纠错能力以下的各列ECC帧的解码(C2解码)成功。由此,包含在这些各列ECC帧中的错误被纠正,因此,能够对C1解码失败的行ECC帧与这些各列ECC帧重叠的区域所包含的各错误进行纠正。错误的数量超过了C2码的纠错能力的列ECC帧的C2解码失败。因此,该列ECC帧所包含的错误不被纠正,其结果是,无法对C1解码失败的行ECC帧与该列ECC帧重叠的区域所包含的各错误进行纠正。
在C2解码处理成功了的情况下,也即是全部列ECC帧的解码成功了的情况下(步骤S86:是),存储控制器2使处理结束。
另一方面,若是至少一个列ECC帧的C2解码失败了(步骤S86:否),则存储控制器2将C2解码失败的各列ECC帧所包含的列推定为是与产生了突发错误的磁存储线MML对应的列,生成与这些各列对应的可靠度(LLR)被设定为低的似然信息来作为C2解码的解码结果(步骤S87)。并且,存储控制器2使用包含似然信息的C2解码结果,再次执行C1解码处理。
由于获得了来自C2解码的似然信息(步骤S82:是),因此,存储控制器2基于包含该似然信息的C2解码结果,通过软判定解码对C1解码失败的行ECC帧进行解码(步骤S88)。在似然信息中,考虑以磁存储线MML为单位产生突发错误这一磁壁移动存储器3的特性,C2解码失败的各列的可靠度(LLR)被设定为低。
因此,错误集中于C1解码失败的行ECC帧与可靠度(LLR)低的列重叠的区域的可能性高。由此,通过使用表示可靠度低的列的似然信息,能够提高C1解码的精度,能够对高概率地存在于可靠度被设定为低的部位的错误进行纠正。
此外,在此将与列ECC帧的解码成功的列对应的可靠度(LLR)设定为了大的值,将与列ECC帧的解码失败的列对应的可靠度(LLR)设定为了小的值,但也可以使用如循环冗余码(CRC)这样的检错码对在保存于各列的数据是否存在错误进行检测,将与未检测到错误的列对应的可靠度(LLR)设定为大的值,将与检测到错误的列对应的可靠度(LLR)设定为小的值。
如以上说明的那样,根据第3实施方式,使用组合了C1码和C2码的乘积码,因此,能够与第1实施方式的倾斜ECC帧同样地使以磁存储线MML为单位产生的突发错误均等地分散于多个ECC帧(行CC帧),并且,能使越是下层则越增加的错误分散于多个ECC帧(列ECC帧)。
进一步,在C2解码中,考虑以磁存储线MML为单位产生突发错误这一磁壁移动存储器3的特性,生成表示C2解码失败的列(或者通过检错码检测到错误的列)的可靠度的似然值(LLR)被降低了的似然信息。基于该似然信息,通过软判定解码执行C1解码失败的行ECC帧的C1解码,由此能够提高C1解码的精度。
此外,在此对使用组合了行ECC帧和列ECC帧的乘积码的构成进行了说明,但与列ECC帧(或者以列为单位检测错误的错误检测帧)组合的ECC帧不限于行ECC帧,例如也可以是倾斜ECC帧。
也即是,存储控制器2使用组合了第1码和第2码的乘积码对应该写入到块的数据进行编码,将组合了各自包含第1码的码字的多个第1ECC帧和各自包含第2码的码字的多个第2检错或纠错码帧而得到的编码数据写入块。
在此,第2码是如循环冗余码(CRC)这样的检错码和ECC中的某一个。这些多个第2检错或纠错码帧各自在列方向上配置于块的物理存储区域,以使得由一个磁存储线MML构成。
存储控制器2增大表示与判定为通过这些多个第2检错或纠错码帧的解码而纠错成功或者无错误的磁存储线MML对应的列的可靠度的似然值(LLR)。另外,存储控制器2减小表示与判定为通过这些多个第2检错或纠错码帧的解码而纠错失败或者有错误的磁存储线MML对应的列的可靠度的似然值(LLR)。
并且,存储控制器2基于通过多个第2检错或纠错码帧的解码而得到的各列的似然值,通过软判定解码对多个第1ECC帧进行解码。在该情况下,也能够利用以磁存储线MML为单位产生突发错误这一磁壁移动存储器3的特性,提高第1ECC帧的解码的精度。
(其他构成例)
图43是表示分别构成多个倾斜ECC帧的多个码字的逻辑图与多个磁壁移动存储器芯片上的这些码字的物理配置之间的关系的图。
在至此的说明中,对将多个倾斜ECC帧各自保存在相同的块内的多个磁存储线MML的构成进行了说明,但在磁壁移动存储器3由多个磁壁移动存储器芯片构成的情形下,也可以在包括分别包含于不同的磁壁移动存储器芯片的多个磁存储线MML的存储区域中保存各倾斜ECC帧。
图43的(A)表示多个码字的逻辑图,该多个码字分别构成在由分别包含于不同的磁壁移动存储器芯片的多个磁存储线MML的集合构成的存储区域中配置在倾斜方向上的多个倾斜ECC帧。
通过以列为单位对二维排列的数据进行编码,生成包含列ECC帧C-1、C-2、C-3、C-4的编码数据。WP、XP、YP、ZP是这些列ECC帧C-1、C-2、C-3、C-4的奇偶校验。也即是,包含于ECC帧C-1的码字包含数据(W1、W2、W3)和奇偶校验(WP),包含于ECC帧C-2的码字包含数据(X1、X2、X3)和奇偶校验(XP),包含于ECC帧C-3的码字包含数据(Y1、Y2、Y3)和奇偶校验(YP),包含于ECC帧C-4的码字包含数据(Z1、Z2、Z3)和奇偶校验(ZP)。编码数据被按每行而改变数据要素的排列顺序,并且,如图43的(B)所示,被写入到这些多个磁壁移动存储器芯片,以使得列ECC帧C-1、C-2、C-3、C-4各自在倾斜方向上配置于由第1磁壁移动存储器芯片(chip1)内的磁存储线MML、第2磁壁移动存储器芯片(chip2)内的磁存储线MML、第3磁壁移动存储器芯片(chip3)内的磁存储线MML、第4磁壁移动存储器芯片(chip4)内的磁存储线MML构成的存储区域。
另外,如图43的(C)所示,也可以将列ECC帧C-1、C-2、C-3、C-4各自的奇偶校验(WP、XP、YP、ZP)保存在这些磁存储线MML的最上层。
图44是表示乘积码的逻辑图与多个磁壁移动存储器芯片上的乘积码的物理配置之间的关系的图。
如图44的(A)所示,使用组合了用于以行为单位对二维排列的数据进行编码的第1码(C1码)和用于以列为单位对二维排列的数据进行编码的第2码(C2码)的乘积码,二维排列的数据被进行编码,由此,生成组合了各自包含C1码的码字的ECC帧C1-1、C1-2、C1-3和各自包含了C2码的码字的ECC帧C2-1、C2-2、C2-3、C2-4而得到的编码数据。α1、α2、α3是ECC帧C1-1、C1-2、C1-3各自的奇偶校验。XP、YP、ZP、αP是ECC帧C2-1、C2-2、C2-3、C2-4的奇偶校验。
也即是,ECC帧C1-1所包含的码字包含数据(X1、Y1、Z1)和奇偶校验(α1),ECC帧C1-2所包含的码字包含数据(X2、Y2、Z2)和奇偶校验(α2),ECC帧C1-3所包含的码字包含数据(X3、Y3、Z3)和奇偶校验(α3)。ECC帧C2-1所包含的码字包含数据(X1、X2、X3)和奇偶校验(XP),ECC帧C2-2所包含的码字包含数据(Y1、Y2、Y3)和奇偶校验(YP),ECC帧C2-3所包含的码字包含数据(Z1、Z2、Z3)和奇偶校验(ZP)。ECC帧C2-4所包含的码字是通过对奇偶校验(α、β、γ)进行编码而得到的码字,包含奇偶校验(α1、α2、α3)和与该奇偶校验(α1、α2、α3)对应的奇偶校验(αP)。
编码数据被按每行而改变数据要素的排列顺序,并且,如图44的(B)所示,被写入到这些多个磁壁移动存储器芯片,以使得:ECC帧C1-1、C1-2、C1-3各自在行方向上配置于由第1磁壁移动存储器芯片(chip1)内的磁存储线MML、第2磁壁移动存储器芯片(chip2)内的磁存储线MML、第3磁壁移动存储器芯片(chip3)内的磁存储线MML、第4磁壁移动存储器芯片(chip4)内的磁存储线MML构成的存储区域,并且,ECC帧C2-1、C2-2、C2-3、C2-4各自在倾斜方向上配置于存储区域。
对本发明的几个实施方式进行了说明,但这些实施方式是作为例子提示的,并不是意在限定发明的范围。这些新的实施方式能够以其他各种各样的方式来实施,能够在不脱离发明的宗旨的范围内进行各种省略、置换、变更。这些实施方式及其变形包含在发明的范围、宗旨内,并且,包含在权利要求书记载的发明及其等同的范围内。
Claims (14)
1.一种存储系统,具备:
移位寄存器型存储器,其具备包括多个数据保持移位列的块,所述多个数据保持移位列各自包括多个存储部,所述移位寄存器型存储器构成为:通过使分别在由所述多个数据保持移位列所包含的存储部的集合组成的多个层所保存的数据在从开头层朝向最终层的第1方向上以层为单位移位,并且,将一层的量的写数据放入所述开头层,从而执行写入动作,通过使分别在所述多个层所保存的数据在与所述第1方向相同或者相反的第2方向上以层为单位移位,从而执行读出动作;和
控制器,其对所述移位寄存器型存储器进行控制,构成为:对应该写入所述块的数据进行编码,将包括各自包含码字的多个纠错码帧的编码数据写入所述块,
所述控制器构成为:在所述多个数据保持移位列中的第1数据保持移位列内的与第1层对应的位置保存所述多个纠错码帧中的第1纠错码帧所包含的第1数据,在所述第1数据保持移位列内的与第2层对应的位置保存所述多个纠错码帧中的第2纠错码帧所包含的第2数据,在所述多个数据保持移位列中的第2数据保持移位列内的与所述第2层对应的位置保存所述第1纠错码帧所包含的第3数据。
2.根据权利要求1所述的存储系统,
所述第1纠错码帧所包含的多个数据中的、保存于所述第1层的数据的数量与所述第2纠错码帧所包含的多个数据中的、保存于所述第1层的数据的数量一致,
所述第1纠错码帧所包含的所述多个数据中的、保存于所述第2层的数据的数量与所述第2纠错码帧所包含的所述多个数据中的、保存于所述第2层的数据的数量一致。
3.根据权利要求1或者2所述的存储系统,
保存于所述第1纠错码帧的多个数据中的、保存于所述第1数据保持移位列的数据的数量与保存于所述第2纠错码帧的多个数据中的、所述第1数据保持移位列所包含的数据的数量一致,
所述第1纠错码帧所包含的所述多个数据中的、保存于所述第2数据保持移位列的数据的数量与保存于所述第2纠错码帧的所述多个数据中的、所述第2数据保持移位列所包含的数据的数量一致。
4.根据权利要求1所述的存储系统,
所述多个纠错码帧所包含的至少一个纠错码帧至少包括第1帧要素和第2帧要素,所述第1帧要素包含许多所述开头层侧的数据,所述第2帧要素包含许多所述最终层侧的数据。
5.根据权利要求1所述的存储系统,
所述控制器构成为,
通过以列为单位对二维排列的数据进行编码来生成所述多个纠错码帧,所述二维排列的数据是通过在列方向上排列构成应该写入到所述块的所述数据的多个数据部而得到的,
通过对所述多个数据部各自所包含的多个数据要素的排列顺序进行规则性地变更以使得属于相同纠错码帧的数据要素分别被配置的列的位置在所述多个数据部间错开,由此向所述块写入所述多个纠错码帧的各纠错码帧。
6.根据权利要求1所述的存储系统,
所述控制器构成为,
从所述移位寄存器型存储器读出保存于所述块的所述多个层的量的数据,
通过将属于相同纠错码帧的数据彼此组合,重构所述多个纠错码帧,
对所述重构后的多个纠错码帧进行解码,纠正所述读出的数据的错误。
7.一种存储系统,具备:
移位寄存器型存储器,其具备包括多个数据保持移位列的块,所述多个数据保持移位列各自包括多个存储部,所述移位寄存器型存储器构成为:通过使分别在由所述多个数据保持移位列所包含的存储部的集合组成的多个层所保存的数据在从开头层朝向最终层的第1方向上以层为单位移位,并且,将一层的量的写数据放入所述开头层,从而执行写入动作,通过使分别在所述多个层所保存的数据在与所述第1方向相同或者相反的第2方向上以层为单位移位,从而执行读出动作;和
控制器,其对所述移位寄存器型存储器进行控制,构成为:使用组合了第1码和第2码的乘积码来对应该写入到所述块的数据进行编码,将组合了各自包含所述第1码的码字的多个第1类型纠错码帧和各自包含所述第2码的码字的多个第2类型纠错码帧而得到的编码数据写入到所述块,
所述控制器构成为,
将所述多个第1类型纠错码帧中的第1纠错码帧以及所述多个第2类型纠错码帧中的第2纠错码帧所包含的第1数据保存在所述多个数据保持移位列中的第1数据保持移位列内的与第1层对应的位置,将所述多个第1类型纠错码帧中的第3纠错码帧以及所述多个第2类型纠错码帧中的第4纠错码帧所包含的第2数据保存在所述第1数据保持移位列内的与第2层对应的位置,将所述第2纠错码帧以及所述第3纠错码帧所包含的第3数据保存在所述多个数据保持移位列中的第2数据保持移位列内的与所述第2层对应的位置,将所述第1纠错码帧所包含的第4数据保存在所述第2数据保持移位列内的与所述第1层对应的位置,或者,
将所述第1纠错码帧以及所述第2纠错码帧所包含的第5数据保存在所述第1数据保持移位列内的与所述第1层对应的位置,将所述第1纠错码帧以及所述第4纠错码帧所包含的第6数据保存在所述第1数据保持移位列内的与所述第2层对应的位置,将所述第1纠错码帧以及所述第2纠错码帧所包含的第7数据保存在所述第2数据保持移位列内的与所述第2层对应的位置,将所述第1纠错码帧所包含的第8数据保存在所述第2数据保持移位列内的与所述第1层对应的位置。
8.根据权利要求7所述的存储系统,
所述第3纠错码帧所包含的多个数据中的、保存于所述第1层的数据的数量与所述第4纠错码帧所包含的多个数据中的、保存于所述第1层的数据的数量一致,
所述第3纠错码帧所包含的所述多个数据中的、保存于所述第2层的数据的数量与所述第4纠错码帧所包含的所述多个数据中的、保存于所述第2层的数据的数量一致。
9.根据权利要求7或者8所述的存储系统,
保存于所述第3纠错码帧的多个数据中的、保存于所述第1数据保持移位列的数据的数量与保存于所述第4纠错码帧的多个数据中的、所述第1数据保持移位列所包含的数据的数量一致,
所述第3纠错码帧所包含的所述多个数据中的、保存于所述第2数据保持移位列的数据的数量与保存于所述第4纠错码帧的所述多个数据中的、所述第2数据保持移位列所包含的数据的数量一致。
10.根据权利要求7所述的存储系统,
所述控制器构成为,
从所述移位寄存器型存储器读出保存于所述块的数据,
执行对与所述读出的数据对应的所述多个第1类型纠错码帧中的一个纠错码帧进行解码来对所述读出的数据的错误进行纠正的第1解码处理,
在所述一个纠错码帧的所述第1解码处理失败的情况下,从所述移位寄存器型存储器读出保存于所述块的剩余的数据,
执行通过对所述多个第2类型纠错码帧进行解码来对所述第1解码处理失败了的所述一个纠错码帧所包含的错误进行纠正的第2解码处理。
11.一种存储系统,具备:
移位寄存器型存储器,其具备包括在列方向上延伸的多个数据保持移位列的块,各数据保持移位列包括多个存储部,所述多个数据保持移位列所包含的存储部的集合组成为在行方向上延伸的多个层;和
控制器,其对所述移位寄存器型存储器进行控制,构成为:使用组合了第1码和第2码的乘积码来对应该写入到所述块的数据进行编码,将组合了各自包含所述第1码的码字的多个第1纠错码帧和各自包含所述第2码的码字的多个第2检错或纠错码帧而得到的编码数据写入所述块,
所述移位寄存器型存储器构成为:通过使分别保存于所述多个层的数据在从开头层朝向最终层的第1方向上以层为单位移位,并且,将一层的量的写数据放入所述开头层,从而执行写入动作,通过使分别保存于所述多个层的数据在与所述第1方向相同或者相反的第2方向上以层为单位移位,从而执行读出动作,
所述第2码是检错码和纠错码中的任一个,
所述多个第2检错或纠错码帧各自在列方向上配置于由所述存储部的集合构成的所述块的物理存储区域,以使得由一个数据保持移位列来构成,
所述控制器构成为,
增大表示与判定为通过所述多个第2检错或纠错码帧的解码而纠错成功或者无错误的数据保持移位列对应的列的可靠度的似然值,
减小表示与判定为通过所述多个第2检错或纠错码帧的解码而纠错失败或者有错误的数据保持移位列对应的列的可靠度的似然值,
基于通过所述多个第2检错或纠错码帧的解码而得到的各列的似然值,通过软判定解码对所述多个第1纠错码帧进行解码。
12.根据权利要求11所述的存储系统,
所述多个第1纠错码帧各自在行方向上配置于所述块的物理存储区域。
13.根据权利要求11所述的存储系统,
所述第2码是纠错码,
所述多个第2检错或纠错码帧是多个第2纠错码帧,
所述多个第1纠错码帧各自在行方向上配置于所述块的物理存储区域,
所述控制器构成为,
从所述移位寄存器型存储器读出保存于所述块的数据,
执行对所述多个第1纠错码帧进行解码来对所述读出的数据的错误进行纠正的第1解码处理,
执行通过对所述多个第2纠错码帧进行解码来对所述第1解码处理失败了的第1纠错码帧所包含的错误进行纠正的第2解码处理,
增大表示与判定为通过所述第2解码处理而纠错成功的数据保持移位列对应的列的可靠度的似然值,减小表示与判定为通过所述第2解码处理而纠错失败的数据保持移位列对应的列的可靠度的似然值,
基于包含通过所述多个第2纠错码帧的解码而得到的各列的似然值的所述第2解码处理的解码结果,通过软判定解码来对所述第1解码处理失败了的第1纠错码帧进行解码。
14.根据权利要求13所述的存储系统,
所述控制器构成为执行反复进行如下处理的反复解码:将通过由与所述第1码对应的第1解码器执行的解码得到的解码结果、和通过由与所述第2码对应的第2解码器执行的解码得到的解码结果作为外部值在所述第1解码器与所述第2解码器之间进行交换。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019170436A JP2021047690A (ja) | 2019-09-19 | 2019-09-19 | メモリシステム |
JP2019-170436 | 2019-09-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527391A CN112527391A (zh) | 2021-03-19 |
CN112527391B true CN112527391B (zh) | 2023-08-29 |
Family
ID=74876369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010122745.0A Active CN112527391B (zh) | 2019-09-19 | 2020-02-27 | 存储系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11347584B2 (zh) |
JP (1) | JP2021047690A (zh) |
CN (1) | CN112527391B (zh) |
TW (1) | TWI735143B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11379155B2 (en) | 2018-05-24 | 2022-07-05 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
CN111902804B (zh) | 2018-06-25 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 用于管理存储设备的资源并量化i/o请求成本的系统和方法 |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US11379447B2 (en) | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
US11449386B2 (en) | 2020-03-20 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11301173B2 (en) | 2020-04-20 | 2022-04-12 | Alibaba Group Holding Limited | Method and system for facilitating evaluation of data access frequency and allocation of storage device resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11218165B2 (en) * | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
EP4050608B1 (en) | 2021-01-14 | 2023-06-28 | Changxin Memory Technologies, Inc. | Comparator with xor and xnor logic circuits |
US11599417B2 (en) * | 2021-01-14 | 2023-03-07 | Changxin Memory Technologies, Inc. | Error correction system |
US11410742B1 (en) * | 2021-02-26 | 2022-08-09 | Micron Technology, Inc. | Microelectronic device testing, and related devices, systems, and methods |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11520491B2 (en) * | 2021-04-12 | 2022-12-06 | Micron Technology, Inc. | Parity protection in non-volatile memory |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000278143A (ja) * | 1999-03-29 | 2000-10-06 | Hitachi Ltd | 積符号誤り訂正装置および方法 |
CN1959817A (zh) * | 2005-11-02 | 2007-05-09 | 株式会社东芝 | 信息存储介质、记录方法、和记录设备 |
JP2010033181A (ja) * | 2008-07-25 | 2010-02-12 | Toshiba Microelectronics Corp | エラー訂正回路、および半導体メモリシステム |
CN103916138A (zh) * | 2012-12-28 | 2014-07-09 | 深圳艾科创新微电子有限公司 | 一种钱搜索电路及基于该钱搜索电路的ecc解码装置及方法 |
CN107094370A (zh) * | 2012-05-04 | 2017-08-25 | 希捷科技有限公司 | 固态硬盘控制器的0‑1平衡管理 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689727A (en) * | 1994-09-08 | 1997-11-18 | Western Digital Corporation | Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution |
TW569188B (en) * | 2001-02-07 | 2004-01-01 | Media Tek Inc | Method and apparatus for error processing in optical disk memories |
US7051264B2 (en) * | 2001-11-14 | 2006-05-23 | Monolithic System Technology, Inc. | Error correcting memory and method of operating same |
US7808831B2 (en) * | 2008-06-30 | 2010-10-05 | Sandisk Corporation | Read disturb mitigation in non-volatile memory |
US8947941B2 (en) * | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
US10095474B2 (en) * | 2014-05-05 | 2018-10-09 | Texas Instruments Incorporated | Filler bank control circuit for synchronous FIFO queues and other memory devices |
JP6397773B2 (ja) | 2015-01-30 | 2018-09-26 | 東芝メモリ株式会社 | 磁気記憶装置及び磁気記憶方法 |
US10622075B2 (en) * | 2017-12-12 | 2020-04-14 | Sandisk Technologies Llc | Hybrid microcontroller architecture for non-volatile memory |
US10439648B1 (en) * | 2018-04-10 | 2019-10-08 | Micron Technology, Inc. | Area efficient implementation of a product code error correcting code decoder |
JP2020046916A (ja) * | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | メモリシステム |
US11016844B2 (en) * | 2019-03-15 | 2021-05-25 | Toshiba Memory Corporation | Error correction code structure |
JP2021149769A (ja) * | 2020-03-23 | 2021-09-27 | キオクシア株式会社 | メモリシステムおよびシフトレジスタ型メモリ |
-
2019
- 2019-09-19 JP JP2019170436A patent/JP2021047690A/ja active Pending
-
2020
- 2020-01-20 TW TW109101935A patent/TWI735143B/zh active
- 2020-02-27 CN CN202010122745.0A patent/CN112527391B/zh active Active
- 2020-03-03 US US16/807,220 patent/US11347584B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000278143A (ja) * | 1999-03-29 | 2000-10-06 | Hitachi Ltd | 積符号誤り訂正装置および方法 |
CN1959817A (zh) * | 2005-11-02 | 2007-05-09 | 株式会社东芝 | 信息存储介质、记录方法、和记录设备 |
JP2010033181A (ja) * | 2008-07-25 | 2010-02-12 | Toshiba Microelectronics Corp | エラー訂正回路、および半導体メモリシステム |
CN107094370A (zh) * | 2012-05-04 | 2017-08-25 | 希捷科技有限公司 | 固态硬盘控制器的0‑1平衡管理 |
CN103916138A (zh) * | 2012-12-28 | 2014-07-09 | 深圳艾科创新微电子有限公司 | 一种钱搜索电路及基于该钱搜索电路的ecc解码装置及方法 |
Non-Patent Citations (1)
Title |
---|
A Fault-tolerant SDRAM Controller Based on a Dynamically Reconfigurable Shift Register Chain;Mian Lou,et al;《IEEE》;正文第551-555页 * |
Also Published As
Publication number | Publication date |
---|---|
US11347584B2 (en) | 2022-05-31 |
TWI735143B (zh) | 2021-08-01 |
US20210089392A1 (en) | 2021-03-25 |
JP2021047690A (ja) | 2021-03-25 |
TW202113861A (zh) | 2021-04-01 |
CN112527391A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112527391B (zh) | 存储系统 | |
US10536172B2 (en) | ECC and raid-type decoding | |
US9298546B2 (en) | Semiconductor memory device | |
US9063875B2 (en) | Error recovery storage along a memory string | |
US9984771B2 (en) | Multi-level raid-type encoding with random correction capability | |
US6981196B2 (en) | Data storage method for use in a magnetoresistive solid-state storage device | |
US10367528B2 (en) | Convolutional low-density parity-check coding | |
US20180062666A1 (en) | Column-layered message-passing ldpc decoder | |
CN113748414B (zh) | 错误校正码结构 | |
CN112068778B (zh) | 用于保持从存储阵列中读取的数据的完整性的方法和设备 | |
JP2019057752A (ja) | メモリシステム | |
US10810080B2 (en) | Memory device selectively correcting an error in data during a read operation, memory system including the same, and operating method of memory system | |
US9170881B2 (en) | Solid state device coding architecture for chipkill and endurance improvement | |
CN113380303B (zh) | 内存存储装置及数据访问方法 | |
JP2021033530A (ja) | メモリシステム | |
US11689219B1 (en) | Method and system for error correction in memory devices using irregular error correction code components | |
JPH11213693A (ja) | メモリ装置 | |
JP2022133071A (ja) | メモリシステム | |
CN116743188A (zh) | 存储系统和控制存储系统的方法 |
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 |