CN102681944B - 数据存储装置以及相关的操作方法 - Google Patents
数据存储装置以及相关的操作方法 Download PDFInfo
- Publication number
- CN102681944B CN102681944B CN201110448530.9A CN201110448530A CN102681944B CN 102681944 B CN102681944 B CN 102681944B CN 201110448530 A CN201110448530 A CN 201110448530A CN 102681944 B CN102681944 B CN 102681944B
- Authority
- CN
- China
- Prior art keywords
- data
- strip
- sent
- storage
- buffer
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
提供一种数据存储装置以及相关的操作方法。一种在数据存储装置中执行写入操作的方法,该数据存储装置包括存储介质、处理单元和缓冲存储器,缓冲存储器在处理单元的控制下存储将被发送到存储介质的数据。所述方法包括:将缓冲存储器中的数据聚集为包括多个数据条的条组;将至少一个条组中的数据条发送到存储介质;在不需要另外访问缓冲存储器的情况下基于发送的至少一个条组中的数据条来计算奇偶校验条;将奇偶校验条发送到存储介质。
Description
本申请要求于2010年12月22日提交到韩国知识产权局的第10-2010-0132643号韩国专利申请的优先权,该申请的公开通过引用全部包含于此。
技术领域
本发明构思的实施例总体涉及电子数据存储技术。更具体地讲,本发明构思的实施例涉及一种数据存储装置以及相关的操作方法。
背景技术
大多数计算机系统包括用于存储由当前应用使用的数据的主存储器和用于大数据存储的长期存储器。主存储器通常包括易失性存储器(例如,动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM),长期存储器通常包括硬盘驱动器(HDD)或固态驱动器(SSD)。
HDD具有几种公知的限制,例如,相对慢的访问时间和趋向于经历机械故障。因此,存在使用SSD来替代许多系统中的HDD的总体趋势。SSD通常包括多个非易失性存储芯片,例如,闪存芯片或电阻存储器芯片。SSD提供超过HDD的许多优点,所述优点包括相对低的功耗以及经得起物理冲击的能力。
通过增加性能需求来伴随着SSD的继续采用。因此,研究者正继续寻求提高SSD的速度和数据存储容量的途径。
发明内容
根据本发明构思的一个实施例,提供一种用于在数据存储装置中执行写入操作的方法,该数据存储装置包括存储介质、处理单元和缓冲存储器,缓冲存储器在处理单元的控制下存储将被发送到存储介质的数据。所述方法包括:将缓冲存储器中的数据聚集为包括多个数据条的条组;将至少一个条组中的数据条发送到存储介质;在不需要另外访问缓冲存储器的情况下基于发送的至少一个条组中的数据条来计算奇偶校验条;将奇偶校验条发送到存储介质。
根据本发明构思的另一实施例,提供一种数据存储装置。该数据存储装置包括:存储介质;缓冲存储器;处理单元;控制逻辑,被构造为在处理单元的控制下控制存储介质的访问操作;奇偶校验产生器,被构造为在处理单元的控制下并且在不需要另外访问缓冲存储器的情况下,基于从缓冲存储器发送到存储介质的至少一个条组的数据条,来产生奇偶校验条。
根据本发明构思的另一实施例,提供一种用于在存储装置中执行写入操作的方法,该存储装置包括闪存、处理单元、闪存转换层和缓冲存储器,缓冲存储器在处理单元的控制下存储将被发送到闪存的数据。所述方法包括:将数据存储在缓冲存储器中;通过在闪存转换层中执行地址映射,将存储在缓冲存储器中的数据聚集为包括多个数据条的条组;将条组中的数据条发送到闪存;对发送到闪存的数据条执行XOR运算,以产生奇偶校验条;将奇偶校验条发送到闪存。
本发明构思的这些和其他实施例通过从已经从缓冲存储器发送到存储介质的数据条来产生奇偶校验条,可降低缓冲存储器的数据通信量。
附图说明
附图示出本发明构思的选择的实施例。在附图中,相同的标号表示相同的特征。
图1是根据本发明构思的实施例的包括数据存储装置的系统的框图。
图2是根据本发明构思的实施例的在图1中示出的SSD控制器的框图。
图3是根据本发明构思的实施例的在图2中示出的存储介质的框图。
图4是根据本发明构思的实施例的用于描述数据存储装置的全带(fullstripe)写入方法的示图。
图5是根据本发明构思的实施例的用于描述数据存储装置的全带写入方法的数据流的框图。
图6是根据本发明构思的实施例的在图2中示出的闪存控制器的框图。
图7是根据本发明构思的实施例的用于描述数据存储装置的命令的示图。
图8是根据本发明构思的实施例的用于描述与数据存储装置的XWRITE命令相应的闪存控制器的操作的示图。
图9是根据本发明构思的实施例的用于描述与数据存储装置的PBWRITE命令相应的闪存控制器的操作的示图。
图10是根据本发明构思的实施例的用于描述与数据存储装置的XLOAD命令相应的闪存控制器的操作的示图。
图11是根据本发明构思的实施例的用于描述与数据存储装置的XREAD命令相应的闪存控制器的操作的示图。
图12是根据本发明构思的实施例的用于描述与数据存储装置的PBREAD命令相应的闪存控制器的操作的示图。
图13是根据本发明构思的实施例的用于描述与数据存储装置的XCOPYBACK命令相应的闪存控制器的操作的示图。
图14是根据本发明构思的实施例的用于描述数据存储装置的全带写入方法的统一建模语言(UML)时序图。
图15至图17是根据本发明构思的实施例的在图14中示出的全带写入方法的数据流的示图。
图18是根据本发明构思的实施例的数据存储装置的不可读数据恢复操作的UML时序图。
图19至图21是图18中示出的不可读数据恢复操作的数据流的示图。
图22是根据本发明构思的实施例的用于描述数据存储装置的复制(copyback)程序操作的UML时序图。
图23至图25是图22中示出的复制程序操作的数据流的示图。
图26是根据本发明构思的另一实施例的用于描述数据存储装置的全带写入方法的UML时序图。
图27至图31是用于执行图26中示出的全带写入操作的数据流的示图。
图32是根据本发明构思的另一实施例的用于描述数据存储装置的全带写入方法的示图。
图33A至图33D是根据本发明构思的实施例的用于描述应用到数据存储装置的带类型(stripe type)的示图。
图34是根据本发明构思的另一实施例的数据存储装置的框图。
图35是根据本发明构思的实施例的包括数据存储装置的计算系统的框图。
图36是根据本发明构思的实施例的使用数据存储装置的存储器的框图。
图37是根据本发明构思的实施例的使用数据存储装置的存储服务器的框图。
图38至图40是根据本发明构思的实施例的包括数据存储装置的系统的示图。
具体实施方式
下面参照附图描述本发明构思的实施例。示出这些实施例作为教导示例,不应被解释为限制本发明构思的范围。
在下面的描述中,术语第一、第二、第三等用于描述不同的特征,然而这些特征不应被这些术语限制。相反,这些术语仅用于在不同的特征之间进行区分。因此,在不脱离本发明构思的教导的情况下,第一特征可以被称为第二元件、组件、区域、层或部分。
在这里可使用空间相对术语(例如“在...之下”、“在...下方”、“下面的”“在...下面”、“在...之上”、“上面的”等)来描述附图中的不同特征之间的空间关系。空间相对术语是为了包括除了附图中描述的方位之外的在使用或运行中的装置的不同方位。例如,如果附图中的装置被翻转,则被描述为“在”其他部件或特征“之下”或“下方”或“下面”的部件将随后被定位为在所述其他部件或特征“之上”。因此,术语“在...下方”和“在...下面”可包括上面和下面两种方位。可将装置朝向另外的方位(旋转90度或在其他方位),并相应地解释在这里使用的关于空间相对的描述符。此外,在层被称为“在”两个层“之间”的情况下,可以是在所述两个层之间唯一的层,或者还可存在一个或多个中间层。
这里使用的术语仅用于描述特定实施例的目的,不是为了限制本发明构思。如这里所使用的,单数形式也意图包括复数形式,除非上下文另有清楚的指示。当在本说明书中使用术语“包括”和/或“包含”时,其表示存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。如这里所使用的,术语“和/或”表示一个或多个相关列出的项的任意或全部组合。
在元件或层被称作“在”另一特征“之上”、“连接”、“结合”或“邻近于”另一特征时,该元件或层可直接“在”所述另一特征之上、连接、结合或邻近于另一特征,或者可存在中间特征。相反,当特征被称作“直接”“在”另一特征“之上”、“直接连接”、“直接结合”或“紧邻于”另一特征时,不存在中间特征。
除非另有定义,否则这里使用的所有术语(包括技术和科学术语)具有与本领域普通技术人员通常理解的含义相同的含义。除非这里明确定义,否则术语(诸如在常用词典中定义的)应被解释为具有与所述术语在相关领域和/或本说明书的上下文中的含义一致的含义,而不应理想化或过于形式地被理解。
图1是根据本发明构思的实施例的包括数据存储装置的系统的框图。
参照图1,所述系统包括数据存储装置1000和主机系统2000。数据存储装置1000响应于来自主机系统2000的请求进行操作,并且用于存储用于主机系统2000的数据信息。例如,数据存储装置1000可以是使用非易失性存储装置作为自己的存储介质的固态驱动器(SSD)。可选地,数据存储装置1000可采用其他形式,例如,硬盘驱动器(HDD)。
数据存储装置1000包括一个或多个存储介质1200以及SSD控制器1400。存储介质1200在SSD控制器1400的控制下存储从主机系统2000发送的数据或者将被发送到主机系统2000的数据。从主机系统2000发送的数据被临时存储在缓冲存储器1420中。具体地,SSD控制器1400可管理临时存储在缓冲存储器1420中的数据的地址映射,以配置条(strip)组。换句话说,在主机系统2000的随机或顺序写入请求的数据被存储在缓冲存储器1420中的情况下,SSD控制器1400可管理与存储在缓冲存储器1420中的将被配置为一个或多个条组的数据相关联的地址映射,而不考虑写入请求类型。
条组由多个条(或多个数据条)形成。可根据应用到存储介质1200的存储器类型来不同地定义条。例如,在存储介质1200由闪存装置形成的情况下,条可以由一个或多个页形成。在下面描述的特定实施例中,条由一个页形成,在其他实施例中,条可选择性地由页的一个或多个块形成或者由每个都在尺寸上小于一个页的一个或多个簇形成。
SSD控制器1400还包括奇偶校验产生块1451和ECC产生块1452。在准备一个或多个条的情况下,SSD控制器1400通过条组将缓冲存储器1420的数据发送到存储介质1200。在条组中的数据条被发送到存储介质1200之后,SSD控制器1400的奇偶校验产生块1451对数据条执行XOR运算,这将在下面更充分地进行描述。
XOR运算的结果(被称为“奇偶校验条”)被添加到条组用于纠错。条组内的数据条和添加的奇偶校验条构成一个带(stripe)或全带(full stripe)写入单元。添加的奇偶校验条可与条组的数据条被存储在存储介质1200中。该写入操作可被称为全带写入操作。在条组中的数据条被发送到存储介质的情况下,SSD控制器1400的ECC产生块1452被构造为产生关于各个数据条和奇偶校验条的ECC信息。即,ECC信息被添加到构成带的各个数据条和奇偶校验条。
因为在条组的数据条被发送到存储介质1200时产生奇偶校验条,因此可进行一个带中的奇偶校验条的产生,而不需要另外/进一步访问缓冲存储器1420或不需要缓冲存储器1420的通信量增加。换句话说,与不包括奇偶校验条的产生的传统写入操作相比,根据本发明构思的实施例的数据存储装置的写入操作可使得缓冲存储器1420中的通信量增加较小。
图2是根据本发明构思的实施例的图1的SSD控制器1400的框图。
参照图2,SSD控制器1400包括:主机接口(HI)1410、缓冲存储器1420、处理单元1430(例如,微处理器或CPU)、RAM 1440、闪存控制器(FMC)1450。
主机接口1410提供与主机系统2000的接口。可通过有线或无线主机接口1410来形成数据存储装置1000与主机系统2000之间的连接。缓冲存储器1420用于存储从主机系统2000发送的数据或者将被发送到主机系统2000的数据。处理单元1430被构造为控制SSD控制器1400的全部操作。在数据存储装置1000被供电的情况下,例如,存储在存储介质1200中的代码(例如,通过闪存转换层(FTL))被加载到RAM 1440。另一方面,代替代码RAM,代码ROM可用于存储上述代码。FTL可用于管理地址映射、存储介质1200的损耗均衡(wear leveling)、在不期望的功率损耗期间的数据维护。
闪存控制器1450响应于处理单元1430的请求来控制对存储介质1200的访问。闪存控制器1450包括奇偶校验产生块1451和ECC产生块1452。如上所述,在通过地址映射准备一个或多个条组的情况下,缓冲存储器1420的数据可通过条组被发送到存储介质1200。在条组中的数据条分别被发送到存储介质1200的情况下,奇偶校验产生块1451对数据条执行XOR运算,以产生奇偶校验条。在条组中的数据条被发送到存储介质1200的情况下,ECC产生块1452产生用于各个数据条和相应的奇偶校验条的ECC信息。当针对每个数据条和奇偶校验条产生ECC信息时,该ECC信息被添加到构成全带写入单元的条。
在一些实施例中,奇偶校验产生块1451和ECC产生块1452包括在闪存控制器1450中。然而,奇偶校验产生块1451和ECC产生块1452可置于闪存控制器1450之外。可选地,ECC产生块1452也可包括在存储介质1200的每个闪存装置之内。
在一些实施例中,主机接口1410执行计算机总线标准、存储总线标准、iFCP外围总线标准或者两个或更多个这样的标准的组合。计算机总线标准的示例包括:S-100总线、Mbus、Smbus、Q-Bus、ISA、Zorro II、Zorro III、CAMAC、高速总线(FASTBUS)、LPC、EISA、VME、VXI、NuBus、增强通道(TURBOchannel)、MCA、Sbus、VLB、PCI、PXI、HP GSC总线,CoreConnect、InfiniBand、UPA、PCI-X、AGP、PCIe、英特尔快速路径互连(Intel QuickPath Interconnect)、超传输(Hyper Transport)。存储总线标准的示例包括:ST-506、ESDI、SMD、并行ATA、DMA、SSA、HIPPI、USB MSC、火线(1394)、串行ATA、eSATA、SCSI、并行SCSI、串行连接方式SCSI(SerialAttached SCSI)、光纤通道(Fibre Channel)、iSCSI、SAS、RapidIO、FCIP。iFCP外围总线标准的示例包括:苹果桌面总线(Apple Desktop Bus)、HIL、MIDI、Multibus、RS-232、DMX512-A、EIA/RS-422、IEEE-1284、UNI/O、1-Wire、I2C、SPI、EIA/RS-485、USB、相机链接(Camera Link)、扩展PCIe(External PCIe)、光峰(Light Peak)、多支路总线(Multidrop Bus)。
图3是根据本发明构思的实施例的在图2中示出的存储介质1200的框图。
参照图3,存储介质1200经由通道CH0至CHn-1与SSD控制器1400的闪存控制器(FMC)1450连接。通道CH0至CHn-1的每个与多个非易失性存储装置NVM连接。例如,非易失性存储装置NVM可以是闪存装置。可选地,例如,非易失性存储装置NVM可以是相变RAM(PRAM)、铁电存储装置(FeRAM)或磁阻RAM(MRAM)。
图4是根据本发明构思的实施例的用于描述数据存储装置的全带写入方法的示图。在下面的描述中,通过括号指示示例方法步骤。
参照图4,主机系统200以随机次序或顺序次序发送将被存储在数据存储装置1000中的数据(B100)。数据存储装置1000将从主机系统2000随机或顺序发送的数据存储在缓冲存储器1420中(B110)。通过处理单元1430(或FTL)来管理从主机系统2000发送的数据的地址,以构成条组(B120)。存储在缓冲存储器1420中的数据通过FTL的地址映射被聚集到一个或多个条组。可通过逻辑地址和物理地址之间的地址映射(而非通过数据的传输)来执行将数据聚集到一个或多个条组。
在准备至少一个条组之后,在处理单元1430的控制下,存储在缓冲存储器1420中的至少一个条组的数据(或数据条)被顺序发送到存储介质1200(B130)。当至少一个条组的每个数据条被发送到存储介质1200时,可通过ECC产生块1452来执行至少一个条组中的每个数据条的编码(B140)。例如,如图4所示,ECC信息可被添加到一个数据条。ECC信息用于纠正对应的数据条的错误,可根据存储在一个单元中的数据比特的数量来确定纠错能力(或ECC信息的比特数)。
此外,在至少一个条组的每个数据条被发送到存储介质1200时,奇偶校验产生块1451通过对至少一个条组中的数据条执行XOR运算来产生奇偶校验条(B150)。在至少一个条组的数据条全被发送到存储介质1200之后,奇偶校验条可被发送到存储介质1200。
通过ECC产生块1452来执行发送到存储介质1200的奇偶校验条的编码操作(B140)。即,ECC信息被添加到一个奇偶校验条。奇偶校验条用于提高一个带的数据的稳定性。具体地,可产生奇偶校验条以恢复一个带中的数据条和奇偶校验条之中的不可读的条。随后,如图4所示,存储在存储介质1200中的带由多个数据条和一个奇偶校验条形成,ECC信息被添加到每个条。
因为当条组中的数据条被发送到存储介质1200时产生奇偶校验条,如图4所示,可在不需要另外/进一步访问缓冲存储器1420和/或增加缓冲存储器1420的通信量的情况下执行一个带中的奇偶校验条的产生。换句话说,因为不执行对缓冲存储器1420的另外访问来产生奇偶校验条,因此在产生用于提高数据稳定性的奇偶校验条之前和之后,缓冲存储器1420的通信量保持不变。
图5是根据本发明构思的实施例的用于描述数据存储装置的全带写入方法的数据流的框图。
参照图5,从主机系统2000提供的数据通过主机接口1410被存储在缓冲存储器1420中。存储在缓冲存储器1420中的数据是根据主机系统2000的随机或顺序写入请求而提供的数据。例如,缓冲存储器1420可被访问(N-1)次,以将从主机系统2000发送的数据存储在缓冲存储器1420中。如图5所示,存储在缓冲存储器1420中的数据被聚集以形成条组。可通过闪存转换层的地址映射(而非通过数据的传输)来执行将数据聚集到条组。可根据不同的应用来不同地确定一个条组中的条(或数据条)的数量。
在配置一个或多个条组之后,在处理单元1430的控制下,条组的数据(或数据条)被发送到存储介质1200。闪存控制器1450响应于从处理单元1430提供的命令将数据条发送到存储介质1200。闪存控制器1450的ECC产生块1452产生关于发送的数据条的ECC信息,并将ECC信息添加到数据条。换句话说,ECC信息被添加到每个数据条。当一个条组中的数据条被顺序发送到存储介质1200时,闪存控制器1450的奇偶校验产生块1451通过对发送的数据条执行XOR运算来产生奇偶校验条。这样产生的奇偶校验条被发送到存储介质1200。类似地,ECC信息被添加到奇偶校验条。存储在存储介质1200中的带由数据条和奇偶校验条形成。
如上面的描述所指出的,奇偶校验条的产生不必要对缓冲存储器1420的另外的访问,从而产生奇偶校验条不会导致缓冲存储器1420的通信量的增加。
图6是根据本发明构思的实施例的图2的闪存控制器1450的框图。
参照图6,闪存控制器1450响应于从处理单元1430提供的命令进行操作,闪存控制器1450包括奇偶校验产生块1451、ECC产生块1452、控制逻辑块1453。根据一些实施例,全带写入操作提供在闪存控制器1450和处理单元1430之间定义的命令(例如,XWRITE、PBWRITE、XREAD、PBREAD、XCOPYBACK、XLOAD、PBREST等)。如下面进一步详细描述的,所述定义的命令中的某些是用于全带写入操作的伴随XOR运算的命令。
奇偶校验产生块1451基于从缓冲存储器1420发送到存储介质1200的数据(例如,数据条)来产生奇偶校验条。因此,不必要另外地访问缓冲存储器1420来产生奇偶校验条。奇偶校验产生块1451包括由四个奇偶校验缓冲器PB0至PB3形成的存储器1451a和XOR逻辑1451b,但是在其他的实施例中,奇偶校验缓冲器PB0至PB3的数量可以改变。存储器1451a可以是例如SRAM。XOR逻辑1451b对来自缓冲存储器1420的数据条和存储在选择的奇偶校验缓冲器中的先前奇偶校验条执行XOR(或异或)。产生新的奇偶校验条作为异或操作的结果,并且新的奇偶校验条被存储在选择的奇偶校验缓冲器(即,存储有先前的奇偶校验条的奇偶校验缓冲器)中。通过包括在命令中的奇偶校验缓冲器编号(或奇偶校验缓冲器地址)来选择存储器1451a的奇偶校验缓冲器PB0至PB3。根据来自处理单元1430的命令,存储在选择的奇偶校验缓冲器中的奇偶校验条被发送到存储介质1200或缓冲存储器1420。奇偶校验产生块1451被称为XOR加速器,并且包括用于控制奇偶校验产生块1451的全部操作的逻辑。
ECC产生块1452产生用于从缓冲存储器1420发送到存储介质1200的数据条的ECC信息。同样地,ECC产生块1452产生关于从奇偶校验产生块1451发送到存储介质1200的奇偶校验条的ECC信息。ECC产生块1452可被构造为纠正从存储介质1200读出的数据(或数据/奇偶校验条)的错误。ECC产生块1452可被构造为缓冲从存储介质1200发送的条,在错误检测和纠正处理之后,缓冲的条可被发送到奇偶校验产生块1451或缓冲存储器1420。如果判断缓冲的条无法纠正,则可将读取错误的产生通知给处理单元1430。在其他实施例中,可修改ECC产生块1452的构造。例如,ECC产生块1452可被实现为不能进行缓冲。
如上所述,可使用ECC信息来纠正对应的数据/奇偶校验条的错误,可使用奇偶校验条来恢复带中的数据条和奇偶校验条的任意不可读条。这里,不可读条可表示根据ECC信息未被纠正的条。
图7是根据本发明构思的实施例的用于描述数据存储装置的命令的示图。
参照图7,从处理单元1430发送到闪存控制器1450的命令包括:XWRITE命令、PBWRITE命令、XREAD命令、PBREAD命令、XCOPYBACK命令、XLOAD命令、PBRESET命令。所述命令可包括操作代码、目标地址、源地址、奇偶校验缓冲器编号(或地址)中的部分或全部。例如,XWRITE命令、PBWRITE命令、XLOAD命令可包括操作代码、目标地址、奇偶校验缓冲器编号(或地址)。XREAD命令可包括操作代码、源地址、奇偶校验缓冲器编号(或地址)。XCOPYBACK命令可包括操作代码、目标地址、源地址、奇偶校验缓冲器编号(或地址)。PBRESET命令和PBREAD命令可包括操作代码、奇偶校验缓冲器编号(或地址)。另一方面,如图7所示,命令可被设置为包括将被发送的数据条。
图8是根据本发明构思的实施例的用于描述与数据存储装置的XWRITE命令相应的闪存控制器的操作的示图。
参照图8,处理单元1430将XWRITE命令发送到闪存控制器1450作为时机(occasion)命令(例如,当通过地址映射准备至少一个条组时)。XWRITE命令包括操作代码、目标地址、奇偶校验缓冲器编号(或地址)。目标地址可用于指定数据条从缓冲存储器1420被发送到的存储介质1200的存储空间,并用于选择存储有通过XOR逻辑1451b产生的奇偶校验条的奇偶校验缓冲器。当接收到XWRITE命令时,从缓冲存储器1420提供的数据条可被发送到存储介质1200。同时,XOR逻辑1451b对发送的数据条和由奇偶校验缓冲器编号指定的奇偶校验缓冲器的先前的(或旧的)奇偶校验条执行XOR运算。XOR运算的结果(即,新的奇偶校验条)被存储在由奇偶校验缓冲器编号指定的奇偶校验缓冲器中。此外,ECC产生块1452基于发送的数据条产生ECC信息。ECC信息被添加到数据条。XWRITE命令可以是伴随奇偶校验条的产生的数据条发送命令,即,用于全带写入操作的伴随XOR运算的命令。
在一些实施例中,可在处理单元1430或闪存控制器1450的控制下执行将数据条发送到闪存控制器1450。
图9是根据本发明构思的实施例的用于描述与数据存储装置的PBWRITE命令相应的闪存控制器的操作的示图。
参照图9,处理单元1430将PBWRITE命令发送到闪存控制器1450(例如,当条组中的数据条被全部发送时)。PBWRITE命令包括操作代码、目标地址、奇偶校验缓冲器编号(或地址)。当接收到PBWRITE命令时(例如,当PBWRITE命令被提供给奇偶校验产生块1451时),由奇偶校验缓冲器编号指定的奇偶校验缓冲器的奇偶校验条被发送到存储介质1200。ECC产生块1452根据发送的奇偶校验条产生ECC信息。ECC信息被添加到奇偶校验条。PBWRITE命令可以是用于将存储在奇偶校验缓冲器中的奇偶校验条发送到存储介质1200的命令。
图10是根据本发明构思的实施例的用于描述与数据存储装置的XLOAD命令相应的闪存控制器的操作的示图。
参照图10,处理单元1430将XLOAD命令发送到闪存控制器1450(例如,为了将带中的数据条或奇偶校验条发送到奇偶校验产生块1451)。XLOAD命令包括操作代码、源地址、奇偶校验缓冲器编号(或地址)。由源地址指定的数据/奇偶校验条被发送到XOR逻辑1451b作为源数据。在XLOAD命令被提供给闪存控制器1450的情况下,XOR逻辑1451b被提供由奇偶校验缓冲器编号指定的奇偶校验缓冲器的奇偶校验条(即,旧的奇偶校验条)。由XOR逻辑1451b计算的新的奇偶校验条被存储在由奇偶校验缓冲器编号指定的奇偶校验缓冲器中。通过ECC产生块1452执行检测从存储介质1200读取的源数据的错误的操作。XLOAD命令可以是伴随XOR运算的命令。
图11是根据本发明构思的实施例的用于描述与数据存储装置的XREAD命令相应的闪存控制器的操作的示图。
参照图11,处理单元1430将XREAD命令发送到闪存控制器1450(例如,为了将带中的数据条或奇偶校验条发送到奇偶校验产生块1451,并发送到缓冲存储器1420(或者SSD控制器的高速缓冲存储器))。XREAD命令包括操作代码、源地址、奇偶校验缓冲器编号(或地址)。由源地址指定的数据/奇偶校验条被发送到XOR逻辑1451b,并被发送到外部(例如,缓冲存储器1420或者SSD控制器的高速缓冲存储器)。在XREAD命令被提供给闪存控制器1450的情况下,XOR逻辑1451b被提供由奇偶校验缓冲器编号指定的奇偶校验缓冲器的奇偶校验条(即,旧的奇偶校验条)。通过XOR逻辑1451b计算的新的奇偶校验条被存储在由奇偶校验缓冲器编号指定的奇偶校验缓冲器中。通过ECC产生块1452执行检测并纠正从存储介质1200读取的源数据的错误的操作。XREAD命令是伴随XOR运算(或奇偶校验产生)的命令。
图12是根据本发明构思的实施例的用于描述与数据存储装置的PBREAD命令相应的闪存控制器的操作的示图。
参照图12,处理单元1430将PBREAD命令发送到闪存控制器1450(例如,为了从奇偶校验缓冲器读取奇偶校验条)。PBREAD命令包括操作代码、奇偶校验缓冲器编号(或地址)。在PBREAD命令被提供给闪存控制器1450的情况下,由奇偶校验缓冲器编号指定的奇偶校验条被发送到缓冲存储器1420。此时,不对存储介质1200进行访问。
图13是根据本发明构思的实施例的用于描述与数据存储装置的XCOPYBACK命令相应的闪存控制器的操作的示图。
参照图13,处理单元1430将XCOPYBACK命令发送到闪存控制器1450。XCOPYBACK命令可包括操作代码、目标地址、源地址、奇偶校验缓冲器编号(或地址)。源地址用于指定源带(source stripe)的数据/奇偶校验条,目标地址用于指定目标带(destination stripe)的条。在XCOPYBACK命令被提供给闪存控制器1450的情况下,从存储介质1200读取源数据,将读取的源数据发送给XOR逻辑1451b。此时,通过ECC产生块1452对读取的数据进行解码和编码操作,读取的数据被发送到存储介质1200作为目标数据。XCOPYBACK命令是伴随XOR运算的命令。
图14是根据本发明构思的实施例的用于描述数据存储装置的全带写入方法的UML时序图,图15至图17是在图14中示出的全带写入方法的数据流的示图。为了便于描述,假设一个条组包括三个数据条(例如,A、B、C)。
如上所述,可通过处理单元1430(或闪存转换层FTL)的地址映射来聚集存储在缓冲存储器1420中的数据来构成一个或多个条。一旦准备了条组,处理单元1430执行全带写入操作。首先,处理单元1430将PBRESET命令发送到闪存控制器1450(S101)。闪存控制器1450响应于PBRESET命令将奇偶校验缓冲器(例如,PB0)复位。通过包括在PBRESET命令中的奇偶校验缓冲器编号(或地址)来选择奇偶校验缓冲器PB0。在将奇偶校验缓冲器PB0复位之后,闪存控制器1450发出对PBRESET命令的响应(S102)。
随后,处理单元1430将XWRITE命令发送到闪存控制器1450(S103)。在XWRITE命令被发送到闪存控制器1450之后,如图15所示,存储在缓冲存储器1420中的条组中的数据条(例如,图15中的A、B、C)中的一个条A可被发送到闪存控制器1450。发送的数据条A被提供给存储介质1200。此时,ECC信息通过ECC产生块1452被添加到数据条A。数据条A被存储在与包括在XWRITE命令中的目标地址(例如,8)相应的存储空间中。
同时,如图15所示,XOR逻辑1451b对从缓冲存储器1420发送到存储介质1200的数据条A和奇偶校验缓冲器PB0的旧的奇偶校验条(由于初始化而为空数据)执行XOR运算,并产生新的奇偶校验条A。因此而产生的奇偶校验条A被存储在选择的奇偶校验存储器PB0中。在完成数据条的发送和奇偶校验条的产生之后,闪存控制器1450发送关于XWRITE命令的响应(S104)。
如图14所示,按照条组中的数据条的数量,XWRITE命令被重复地发送到闪存控制器1450。例如,如图16所示,下一数据条B根据伴随奇偶校验产生(或XOR运算)的XWRITE命令而被发送到存储介质1200。在此情况下,XOR逻辑1451b对从缓冲存储器1420发送到存储介质1200的数据条B和选择的奇偶校验缓冲器PB0的旧的奇偶校验条A执行XOR运算,并产生新的奇偶校验条
因此而产生的奇偶校验条
被存储在选择的奇偶校验缓冲器PB0中。在数据条B被发送之后,如图17所示,最后的数据条C根据伴随奇偶校验产生(或XOR运算)的XWRITE命令而被发送到存储介质1200。在此情况下,XOR逻辑1451b对从缓冲存储器1420发送到存储介质1200的数据条C和选择的奇偶校验缓冲器PB0的旧的奇偶校验条
执行XOR运算,并产生新的奇偶校验条
因此而产生的奇偶校验条
被存储在选择的奇偶校验缓冲器PB0中。ECC信息通过ECC产生块1452被添加到奇偶校验条
参照图14,在条组中的数据条A、B、C全部被发送的情况下,处理单元1430将PBWRITE命令发送给闪存控制器1450(S105)。闪存控制器1450对PBWRITE命令进行响应,以将存储在选择的奇偶校验缓冲器PB0中的奇偶校验条
发送到存储介质1200。在存储在选择的奇偶校验缓冲器PB0中的奇偶校验条
被发送到存储介质1200之后,闪存控制器1450向处理单元1430提供对PBWRITE命令的响应(S106)。随后,全带写入操作结束。
如根据上述描述所理解的,在条组中的数据条A、B、C根据伴随奇偶校验产生(或XOR运算)的XWRITE命令被发送到存储介质1200的情况下,可在不需要另外地访问缓冲存储器1420的情况下(或不需要增加缓冲存储器1200的通信量的情况下)产生奇偶校验条。如根据图17所理解的,数据条A、B、C以及奇偶校验条
构成作为全带写入单元的一个带。
图18是根据本发明构思的实施例的数据存储装置的不可读数据恢复操作的UML时序图。图19至图21是图18中示出的不可读数据恢复操作的数据流的示图。为了便于描述,假设一个带由三个数据条和一个奇偶校验条构成。
假设从主机系统2000请求的数据(例如,图19中的数据条B)不可读。如上所述,可根据数据条中的错误是否超出ECC产生块1452的纠错能力来确定数据条是否可读。当从主机系统2000请求的数据(例如,图19中的数据条)被判断为不可读时,SSD控制器1000使用包括不可读数据条B的带的剩余的条(即,数据条和奇偶校验条A、C、
)来恢复不可读数据条B,将在下面更充分地描述。
如在图18中所述,处理单元1430将PBRESET命令发送到闪存控制器1450(S201)。如上所述,PBRESET命令包括操作代码和奇偶校验缓冲器编号(或地址)。当PBRESET命令被发送到闪存控制器1450时,可将奇偶校验产生块1451的与PBRESET命令的奇偶校验缓冲器编号(或地址)相应的奇偶校验缓冲器(例如,PB0)复位。由于初始化,奇偶校验缓冲器PB0被设置有空数据作为旧的奇偶校验条(参照图19)。在重设奇偶校验缓冲器PB0之后,闪存控制器1450将关于PBRESET命令的响应发送到处理单元1430(S202)。
在接收到关于PBRESET命令的响应的情况下,处理单元1430将伴随奇偶校验产生(或XOR运算)的XLOAD命令发送到闪存控制器1450(S203)。XLOAD命令包括用于指定数据条A的源地址。闪存控制器1450控制存储介质1200,使得与源地址相应的数据条A被读出。如在图19中所示,读取的数据条A被发送到XOR逻辑1451b。此时,进行对数据条A的解码操作。XOR逻辑1451b对存储在选择的奇偶校验缓冲器PB0中的数据(即,旧的奇偶校验条)和读取的数据条A执行XOR运算,并产生的新的奇偶校验条A。因为由于初始化而在奇偶校验缓冲器PB0中存储空数据作为旧的奇偶校验条,因此该新的奇偶校验条与读取的数据条相同。因此而产生的新的奇偶校验条A被存储在选择的奇偶校验缓冲器PB0中。一旦产生新的奇偶校验条,则闪存控制器1450将关于XLOAD命令的响应发送到处理单元1430(S204)。
重复上述操作S203和S204,直到带中的除了不可读数据条之外的剩余的条被全部读取。例如,如图20所示,下一个条C根据伴随奇偶校验产生(或XOR运算)的XLOAD命令而从存储介质1200被读取,并且数据条C被解码。在此情况下,XOR逻辑1451b对从存储介质1200发送的数据条C和选择的奇偶校验缓冲器PB0的先前的奇偶校验条A执行XOR运算,并产生新的奇偶校验条
因此而产生的奇偶校验条
被存储在选择的奇偶校验缓冲器PB0中。在读取数据条C之后,如在图21中所示,包括不可读数据条B的带之中的最后的条(即,奇偶校验条
)根据伴随奇偶校验产生(或XOR运算)的XLOAD命令而被发送到闪存控制器1450,并且数据条
被解码。在此情况下,XOR逻辑1451b对从存储介质1200发送的数据条
和选择的奇偶校验缓冲器PB0的旧的奇偶校验条
执行XOR运算,并产生新的奇偶校验条B。因此而产生的奇偶校验条B被存储在选择的奇偶校验缓冲器PB0中。参照图18,如果除了不可读数据条B之外的剩余的条A、C、
被全部读取,则处理单元1430将PBREAD命令发送到闪存控制器1450(S205)。闪存控制器1450响应于PBREAD命令向缓冲存储器1420提供存储在选择的奇偶校验缓冲器PB0中的奇偶校验条B。发送的奇偶校验条B是恢复的数据条。闪存控制器1450将对PBREAD命令的响应发送到处理单元1430。随后,该方法结束。
图22是根据本发明构思的实施例的用于描述数据存储装置的复制(copyback)程序操作的UML时序图。图23至图25是图22中示出的复制程序操作的数据流的示图。为了便于描述,假设一个带(例如,图23中的ST1)之内的数据条B由于根据主机系统2000的请求使用新的数据条(例如,图23中的H)进行更新而被处理为无效数据条。
参照图22,处理单元1430将PBRESET命令发送到闪存控制器1450(S301)。如上所述,PBRESET命令包括操作代码和奇偶校验缓冲器编号(或地址)。当PBRESET命令被发送到闪存控制器1450时,可将奇偶校验产生块1451之内的与PBRESET命令的奇偶校验缓冲器编号(或地址)相应的奇偶校验缓冲器(例如,PB0)复位。由于初始化,奇偶校验缓冲器PB0被设置有空数据作为旧的奇偶校验条(参照图22)。在重设奇偶校验缓冲器PB0之后,闪存控制器1450将关于PBRESET命令的响应发送到处理单元1430(S302)。
如在图22中所示,一个循环可包括每个都伴随奇偶校验产生(或XOR运算)的XCOPYBACK命令和XWRITE命令。XCOPYBACK命令可被发送到闪存控制器1450以从源带读取有效数据条,XWRITE命令可被发送到闪存控制器1450以将将被更新的数据条发送到目标带。可选择性地执行每个循环的XCOPYBACK命令和XWRITE命令的发送。
首先,可请求对带ST1内的第一数据条A的复制操作。这可通过XCOPYBACK命令进行。因此,处理单元1430将XCOPYBACK命令发送到闪存控制器1450(S303)。如上所述,XCOPYBACK命令包括源地址和目标地址。在源地址和目标地址被从闪存控制器1450发送到存储介质1200的情况下,如在图23中所示,与源地址相应的数据条A被发送到闪存控制器1450。数据条A被提供给XOR逻辑1451b。此时,读取的数据条A通过闪存控制器1450再次被发送到存储介质1200,而不需要被发送到缓冲存储器1420。ECC产生块1452对读取的数据条A执行解码和编码操作。
XOR逻辑1451b对存储在选择的奇偶校验缓冲器PB0中的数据(即,旧的奇偶校验条)和读取的数据条A执行XOR运算,并产生的新的奇偶校验条A。因为由于初始化而在选择的奇偶校验缓冲器PB0中存储空数据作为旧的奇偶校验数据,因此该新的奇偶校验条与读取的数据条相同。因此而产生的新的奇偶校验条A被存储在选择的奇偶校验缓冲器PB0中。一旦产生新的奇偶校验条,则闪存控制器1450将对XCOPYBACK命令的响应发送到处理单元1430(S304)。
随后,处理单元1430将XWRITE命令发送到闪存控制器1450,使得新的数据条H(而非源带ST1的有效数据条B)被存储在目标带ST2中(S305)。如在图24中所示,在XWRITE命令被发送到闪存控制器1450的情况下,从缓冲存储器1420提供的数据条H被发送到存储介质1200。此时,数据条H被编码。同时,XOR逻辑1451b对发送的数据条H和由奇偶校验缓冲器编号指定的奇偶校验缓冲器PB0的旧的奇偶校验条执行XOR运算。作为XOR运算的结果,新的奇偶校验条
可被存储在选择的奇偶校验缓冲器PB0中。闪存控制器1450可将对XWRITE命令的响应发送到处理单元1430(S306)。
在执行XWRITE命令之后,请求关于源带ST1中的第三数据条C的复制操作。这可通过XCOPYBACK命令进行。因此,处理单元1430将XCOPYBACK命令发送到闪存控制器1450(S303)。如上所述,XCOPYBACK命令包括源地址和目标地址。如果源地址和目标地址被从闪存控制器1450发送到存储介质1200,如在图25中所示,则与源地址相应的数据条C可被发送到闪存控制器1450。此时,读取的数据条C通过闪存控制器1450再次被发送到存储介质1200,而不需要被发送到缓冲存储器1420。对读取的数据条C执行解码和编码操作。
XOR逻辑1451b对存储在选择的奇偶校验缓冲器PB0中的数据(即,旧的奇偶校验条)
和读取的数据条C执行XOR运算,并产生新的奇偶校验条
因此而产生的新的奇偶校验条
被存储在选择的奇偶校验缓冲器PB0中。一旦产生新的奇偶校验条
则闪存控制器1450将对XCOPYBACK命令的响应发送到处理单元1430(S304)。
在完成有效数据条的复制操作和将被更新的数据条的发送操作的情况下,如在图22中所示,处理单元1430将PBWRITE命令发送到闪存控制器1450。闪存控制器1450响应于PBWRITE命令将选择的奇偶校验缓冲器PB0中的奇偶校验条
发送到存储介质1200。此时,针对发送到存储介质1200的奇偶校验条
执行编码操作。在选择的奇偶校验缓冲器PB0中的奇偶校验条
被发送到存储介质1200之后,闪存控制器1450将对PBWRITE命令的响应发送到处理单元1430。随后,该方法结束。
图26是根据本发明构思的另一实施例的用于描述数据存储装置的全带写入方法的UML时序图。图27至图31是用于执行图26中示出的全带写入方法的数据流的示图。图26是用于描述对两个带执行全带写入操作的示图。例如,如在图27中所示,假设准备了两个条组SG1和SG2。图26中示出的全带写入操作与图14中描述的全带写入操作类似,为了避免冗余将不再详细描述相似的特征。
参照图26,处理单元1430将PBRESET命令发送到闪存控制器1450,以将奇偶校验缓冲器PB0复位(S401)。闪存控制器1450响应于PBRESET命令将奇偶校验缓冲器PB0复位。在将奇偶校验缓冲器PB0复位之后,闪存控制器1450将对PBRESET命令的响应发送到处理单元1430(S402)。处理单元1430将PBRESET命令发送到闪存控制器1450,以将奇偶校验缓冲器PB1复位,这将与奇偶校验缓冲器PB0的复位相同地被执行。即,如在图27中所示,将被复位的奇偶校验缓冲器的数量与将被发送到存储介质1200的条组的数量相同。因此,可按照将被发送的条组的数量来重复地执行操作S401和S402中的奇偶校验缓冲器的复位。
在奇偶校验缓冲器PB0和PB1被复位之后,处理单元1430将XWRITE命令发送到闪存控制器1450,以将条组SG1的数据条A发送到存储介质1200(S403)。此时,如在图28中所示,存储在缓冲存储器1420中的条组SG1中的数据条A、B、C中的一个数据条A被发送到闪存控制器1450。数据条A可被发送给存储介质1200。同时,如在图28中所示,通过对从缓冲存储器1420发送到存储介质1200的数据条A和选择的奇偶校验缓冲器PB0的旧的奇偶校验条执行XOR运算来产生新的奇偶校验条A。在完成数据条的发送和奇偶校验条的产生之后,闪存控制器1450将对XWRITE命令的响应发送到处理单元(S404)。重复上述操作S403和S404以将另一条组SG2中的数据条D发送到存储介质1200。
如图28至图30所示,条组SG1中的剩余的条B和C以及条组SG2中的剩余的条E和F以同样的方式被发送到存储介质1200。结果,如在图30中所示,通过对条组SG1中的数据条A、B、C执行XOR操作而产生奇偶校验条
可通过对条组SG2中的数据条D、E、F执行XOR操作而产生奇偶校验条
再次参照图26,在条组SG1和SG2中的数据条(A、B、C)和(D、E、F)全部被发送的情况下,处理单元1430将PBWRITE命令发送给闪存控制器1450,以将奇偶校验缓冲器PB0的奇偶校验条发送到存储介质1200(S405)。当PBWRITE命令被发送到闪存控制器1450时,如在图31中所示,闪存控制器1450响应于PBWRITE命令将选择的奇偶校验缓冲器PB0中的奇偶校验条
发送到存储介质1200。在选择的奇偶校验缓冲器PB0中的奇偶校验条
被发送到存储介质1200之后,闪存控制器1450向处理单元1430发送对PBWRITE命令的响应(S406)。类似于奇偶校验缓冲器PB0,奇偶校验缓冲器PB1的奇偶校验条
根据PBWRITE命令被发送到存储介质1200。随后,所述方法结束。如在图28至图31所示,在数据条和奇偶校验条被发送到存储介质1200的情况下,可针对数据条和奇偶校验条执行编码操作。
图32是根据本发明构思的另一实施例的用于描述数据存储装置的全带写入方法的示图。
参照图32,数据存储装置1000管理与条组中的数据条相关联的元数据。例如,数据存储装置1000的处理单元1430可管理与条组的数据条DS0、DS1、DS2一一对应的元数据MD0、MD1、MD2。当数据条DS0、DS1、DS2中的每个被发送到存储介质1200时执行的操作(例如,奇偶校验产生操作和ECC添加操作)可与上面所描述的相同地进行,因此省略对其的描述。如上所述,奇偶校验条可由奇偶校验产生块1451产生,并且可用于恢复不可读数据/奇偶校验条。
如在图32中所示,元数据MD0、MD1、MD2可与相应的数据条DS0、DS1、DS2一起被发送到存储介质1200。不同于与数据条DS0、DS1、DS2相关联的奇偶校验条的产生,由处理单元1430而非奇偶校验产生块1451进行元数据MD0、MD1、MD2的奇偶校验产生操作。与由处理单元1430产生的元数据MD0、MD1、MD2相关联的奇偶校验被发送到存储介质1200。与元数据MD0、MD1、MD2相关联的奇偶校验用于恢复不可读元数据。即,根据ECC信息来纠数据条的可纠正错误,根据ECC信息来纠正元数据的可纠正错误。此外,根据剩余的条来恢复带中的不可读条,根据剩余的元数据和奇偶校验来恢复带中的不可读元数据。
图33A至图33D是根据本发明构思的实施例的用于描述应用到数据存储装置的带类型(stripe type)的示图。
根据应用到存储介质1200的存储器来不同地确定一个带的大小。例如,假设存储介质1200由闪存装置形成,并且一个带由多个条形成。一个条可由一个或多个页形成。
如在图33A中所示,带可由与分别连接到一个通道的闪存装置相应的条形成。在另一实施例中,如在图33B中所示,假设与一个通道连接的闪存装置被分为至少两个芯片组,则带可由分别分配给每个芯片组中的闪存装置的条形成。在另一实施例中,如在图33C中所示,带可由分配给分别与多个通道CH0、CH1、CH2、CH3中的每一个连接的闪存装置的条形成。在另一实施例中,如在图33D中所示,假设多个通道被分为至少两个通道组,并且共同与每个通道组中的通道连接的闪存装置被分为至少两个芯片组,则带可由分别分配给每个通道组的每个芯片组中的闪存装置的条形成。
除了本说明书中示出的这些之外,还存在配置带的其他方式。例如,如果闪存装置具有平面结构,则可在平面而非芯片的基础上来设置带。
图34是根据本发明构思的另一实施例的数据存储装置的框图。
参照图34,数据存储装置1000a包括存储介质1200和SSD控制器1400。存储介质1200包括通过多个通道CH0至CHn-1访问的闪存装置。存储介质1200还包括保留的通道和存储装置1600,所述保留的通道和存储装置1600可用于替换任何通道或与任何通道连接的闪存装置。除了上述不同之外,图34的数据存储装置1000a可与图32的数据存储装置类似地操作,因此为了避免冗余将省略对其的进一步描述。
图35是根据本发明构思的实施例的包括数据存储装置的计算系统3000的框图。
参照图35,计算机系统3000包括:处理单元3100(例如,微处理器)、用户接口3200、调制解调器3300(例如,基带芯片组)、SSD控制器3400、存储介质3500。SSD控制器3400和存储介质3500可类似于图1中示出的数据存储装置(例如,固态驱动器)被形成,因此省略对其的描述。被/将被处理单元3100处理的N比特数据(N是1或更大的整数)通过SSD控制器3400被存储在存储介质3500中。在计算系统3000是移动装置的情况下,计算系统3000可进一步包括提供计算系统的操作电压的电池3500。尽管在图35中没有示出,但是计算系统3000还可包括应用芯片组、相机图像处理器(CIS)或移动DRAM。
图36是根据本发明构思的实施例的使用数据存储装置的存储器的框图,图37是根据本发明构思的实施例的使用数据存储装置的存储服务器的框图。
图36的数据存储装置包括被构造为类似于参照图1至图34的描述的那样进行操作的多个固态驱动器4000。固态驱动器4000用作存储服务器。如在图37中所示,存储服务器包括多个固态驱动器5000和服务器5000A。多个固态驱动器5000被构造为类似于参照图1至图34描述的那样进行操作,因此为了避免冗余将省略对其的详细描述。
图38至图40是根据本发明构思的实施例的包括数据存储装置的系统的示图。
在固态驱动器被应用到所述存储器作为根据本发明构思的实施例的数据存储装置的情况下,如在图38中所示,系统6000包括以有线和/或无线方式与主机通信的存储器6100。在固态驱动器被应用到存储服务器作为根据本发明构思的实施例的数据存储装置的情况下,如在图39中所示,系统7000包括以有线和/或无线方式与主机通信的存储服务器7100和7200。此外,如在图40中所示,固态驱动器被应用到邮件服务器8100作为根据本发明构思的实施例的数据存储装置。
如上所述,在全带写入操作中,基于发送到存储介质的数据条产生奇偶校验条,而不需要另外地访问缓冲存储器。可根据伴随奇偶校验产生(或XOR运算)的命令来产生奇偶校验条。ECC信息被添加到数据条和奇偶校验条的每个。可由处理单元而非奇偶校验产生块来产生与数据条相关联的元数据的奇偶校验。因此,可在不另外地访问缓冲存储器以产生奇偶校验条的情况下来执行全带写入操作。
上面的描述是实施例的示出,不应被解释为对实施例的限制。尽管已经描述了几个实施例,但是本领域的技术人员将易于理解,在实质上不脱离本发明构思的新颖教导和优点的情况下,可以对实施例进行多种变型。因此,所有这样的变型意在包括在由权利要求及其等同物所限定的本发明构思的范围内。
Claims (20)
1.一种在数据存储装置中执行写入操作的方法,该数据存储装置包括存储介质、处理单元、控制器和缓冲存储器,缓冲存储器在处理单元的控制下存储将被发送到存储介质的数据,所述方法包括:
将缓冲存储器中的数据聚集为包括多个数据条的条组;
将至少一个条组中的数据条从缓冲存储器发送到控制器;
将所述数据条从控制器发送到存储介质;
在不需要另外访问缓冲存储器的情况下基于从缓冲存储器发送到控制器的数据条来计算奇偶校验条;
在全部的数据条都已被发送到存储介质之后,将奇偶校验条发送到存储介质。
2.如权利要求1所述的方法,还包括:将纠错码(ECC)信息添加到所述至少一个条组的每个数据条以及所述奇偶校验条。
3.如权利要求2所述的方法,其中,根据来自处理单元的命令计算奇偶校验条,所述命令伴随着所述至少一个条组的数据条的XOR运算。
4.如权利要求2所述的方法,其中,将缓冲存储器中的数据聚集为条组的步骤包括处理单元的地址映射操作。
5.如权利要求2所述的方法,其中,在不需要另外访问缓冲存储器的情况下基于发送的至少一个条组中的数据条来计算奇偶校验条的步骤包括:
(a)将奇偶校验缓冲器复位;
(b)在不需要另外访问缓冲存储器的情况下,对发送到存储介质的所述至少一个条组的数据条之一和作为先前奇偶校验的奇偶校验缓冲器的值执行XOR运算,以将XOR运算的结果存储在奇偶校验缓冲器中;
(c)针对所述至少一个条组的剩余的数据条的每个重复步骤(b)。
6.如权利要求5所述的方法,其中,在所述至少一个条组的所有数据条被发送到存储介质之后,奇偶校验缓冲器中的值作为奇偶校验条被发送到存储介质。
7.如权利要求1所述的方法,其中,数据条和奇偶校验条的每个包括至少一个页。
8.如权利要求2所述的方法,其中,所述至少一个条组的数据条和奇偶校验条构成全带写入单元。
9.如权利要求8所述的方法,其中,源带中的数据条被复制到目标带,数据条被发送到目标带而不被发送到缓冲存储器。
10.如权利要求2所述的方法,还包括:
产生所述至少一个条组的数据条的每个数据条的元数据;
通过处理单元计算数据条的元数据的奇偶校验数据,其中,通过与处理单元独立的加速器来计算关于数据条的奇偶校验条,纠错码(ECC)信息被添加到所述奇偶校验数据。
11.如权利要求1所述的方法,其中,存储介质包括闪存装置。
12.一种数据存储装置,包括:
存储介质;
缓冲存储器,被构造为临时地存储将要被发送到存储介质的数据;
处理单元,被构造为控制数据从缓冲存储器到存储介质的发送;
控制逻辑,被构造为在处理单元的控制下控制存储介质的访问操作;
奇偶校验产生器,被构造为在处理单元的控制下并且在不需要另外访问缓冲存储器的情况下,基于从缓冲存储器发送到控制逻辑的至少一个条组的数据条,来产生奇偶校验条,
其中,控制逻辑还被构造为将所述数据条发送到存储介质,并在全部的数据条都已被发送到存储介质之后将奇偶校验条发送到存储介质。
13.如权利要求12所述的数据存储装置,其中,处理单元被构造为将缓冲存储器中的数据聚集为数据条的条组。
14.如权利要求12所述的数据存储装置,其中,存储介质包括多个闪存装置。
15.如权利要求14所述的数据存储装置,其中,控制逻辑和奇偶校验产生器构成闪存控制器。
16.如权利要求15所述的数据存储装置,其中,准备至少一个条组,当至少一个条组的每个数据条被发送到存储介质时,处理单元向闪存控制器提供用于被发送到存储介质的数据条的伴随XOR运算的写入命令。
17.如权利要求16所述的数据存储装置,其中,当将伴随XOR运算的写入命令提供给闪存控制器时,控制逻辑将与发送的数据条相关的地址信息提供给存储介质,奇偶校验产生器基于发送的数据条计算奇偶校验条。
18.一种在存储装置中执行写入操作的方法,该存储装置包括闪存、处理单元、闪存转换层(FTL)、闪存控制器和缓冲存储器,缓冲存储器在处理单元的控制下存储将被发送到闪存的数据,所述方法包括:
将数据存储在缓冲存储器中;
通过在闪存转换层(FTL)中执行地址映射,将存储在缓冲存储器中的数据聚集为包括多个数据条的条组;
将至少一个条组中的数据条从缓冲存储器发送到闪存控制器;
将所述数据条从闪存控制器发送到闪存;
对从缓冲存储器发送到闪存控制器的数据条执行XOR运算,以产生奇偶校验条;
将奇偶校验条发送到闪存。
19.如权利要求18所述的方法,还包括:将纠错码(ECC)信息添加到所述至少一个条组的每个数据条以及所述奇偶校验条。
20.如权利要求18所述的方法,其中,每个数据条对应于闪存的页。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100132643A KR101732030B1 (ko) | 2010-12-22 | 2010-12-22 | 데이터 저장 장치 및 그것의 동작 방법 |
KR10-2010-0132643 | 2010-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102681944A CN102681944A (zh) | 2012-09-19 |
CN102681944B true CN102681944B (zh) | 2016-09-14 |
Family
ID=46318540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110448530.9A Active CN102681944B (zh) | 2010-12-22 | 2011-12-22 | 数据存储装置以及相关的操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8694865B2 (zh) |
KR (1) | KR101732030B1 (zh) |
CN (1) | CN102681944B (zh) |
TW (1) | TWI519949B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130268726A1 (en) * | 2011-07-01 | 2013-10-10 | Xin Guo | Dual Mode Write Non-Volatile Memory System |
US8924814B2 (en) * | 2012-08-28 | 2014-12-30 | Seagate Technology Llc | Write management using partial parity codes |
US8694862B2 (en) * | 2012-04-20 | 2014-04-08 | Arm Limited | Data processing apparatus using implicit data storage data storage and method of implicit data storage |
TWI461901B (zh) | 2012-12-10 | 2014-11-21 | Ind Tech Res Inst | 資料儲存與重建的方法與系統 |
US20140281124A1 (en) * | 2013-03-14 | 2014-09-18 | Bryan E. Veal | System and method for caching a storage medium |
CN104424127A (zh) * | 2013-08-23 | 2015-03-18 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
CN104425018B (zh) | 2013-08-23 | 2019-07-23 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
CN103761988B (zh) * | 2013-12-27 | 2018-01-16 | 华为技术有限公司 | 固态硬盘及数据移动方法 |
JP6385077B2 (ja) * | 2014-03-05 | 2018-09-05 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US9569303B2 (en) * | 2014-08-08 | 2017-02-14 | Kabushiki Kaisha Toshiba | Information processing apparatus |
TWI560718B (en) * | 2015-03-27 | 2016-12-01 | Silicon Motion Inc | Data storage device and encoding method thereof |
US9766837B2 (en) | 2015-06-10 | 2017-09-19 | Micron Technology, Inc. | Stripe mapping in memory |
KR20160148952A (ko) * | 2015-06-17 | 2016-12-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10001922B2 (en) * | 2016-02-19 | 2018-06-19 | International Business Machines Corporation | High performance optical storage system for protection against concurrent data loss |
KR20180051706A (ko) | 2016-11-07 | 2018-05-17 | 삼성전자주식회사 | 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 |
CN107423180A (zh) * | 2017-07-28 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种固态硬盘及其诊断方法 |
US10365967B2 (en) | 2017-08-23 | 2019-07-30 | Toshiba Memory Corporation | On the fly raid parity calculation |
TWI661303B (zh) * | 2017-11-13 | 2019-06-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
US10977115B2 (en) | 2018-10-12 | 2021-04-13 | Micron Technology, Inc. | NAND parity information techniques for systems with limited RAM |
US11113163B2 (en) * | 2019-11-18 | 2021-09-07 | International Business Machines Corporation | Storage array drive recovery |
TWI755739B (zh) * | 2020-05-26 | 2022-02-21 | 慧榮科技股份有限公司 | 記憶體控制器與資料處理方法 |
CN111897495B (zh) * | 2020-07-28 | 2023-07-04 | 深圳忆联信息系统有限公司 | 提高ssd写性能的实现方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834943A (zh) * | 2005-03-14 | 2006-09-20 | 富士通株式会社 | 存储系统及其控制方法和程序 |
CN101490662A (zh) * | 2006-08-11 | 2009-07-22 | 英特尔公司 | 用于raid系统的磁盘缓存 |
CN101604250A (zh) * | 2008-06-12 | 2009-12-16 | 普安科技股份有限公司 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
WO2010137178A1 (en) * | 2009-05-25 | 2010-12-02 | Hitachi,Ltd. | Storage subsystem |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007012920A1 (en) | 2005-07-27 | 2007-02-01 | Adaptec, Inc. | Method and system for improving the performance of reed-solomon parity operations in redundant array of inexpensive disks |
US7721143B2 (en) | 2005-12-06 | 2010-05-18 | Lsi Corporation | Method for reducing rebuild time on a RAID device |
US20090172335A1 (en) * | 2007-12-31 | 2009-07-02 | Anand Krishnamurthi Kulkarni | Flash devices with raid |
US20090198885A1 (en) | 2008-02-04 | 2009-08-06 | Manoj Jose K | System and methods for host software stripe management in a striped storage subsystem |
US20090204846A1 (en) | 2008-02-12 | 2009-08-13 | Doug Baloun | Automated Full Stripe Operations in a Redundant Array of Disk Drives |
KR101678868B1 (ko) | 2010-02-11 | 2016-11-23 | 삼성전자주식회사 | 플래시 주소 변환 장치 및 그 방법 |
US8726126B2 (en) * | 2010-03-23 | 2014-05-13 | Apple Inc. | Non-regular parity distribution detection via metadata tag |
US8862804B2 (en) * | 2011-04-29 | 2014-10-14 | Western Digital Technologies, Inc. | System and method for improved parity determination within a data redundancy scheme in a solid state memory |
-
2010
- 2010-12-22 KR KR1020100132643A patent/KR101732030B1/ko active IP Right Grant
-
2011
- 2011-11-21 US US13/301,025 patent/US8694865B2/en active Active
- 2011-12-22 CN CN201110448530.9A patent/CN102681944B/zh active Active
- 2011-12-22 TW TW100147870A patent/TWI519949B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834943A (zh) * | 2005-03-14 | 2006-09-20 | 富士通株式会社 | 存储系统及其控制方法和程序 |
CN101490662A (zh) * | 2006-08-11 | 2009-07-22 | 英特尔公司 | 用于raid系统的磁盘缓存 |
CN101604250A (zh) * | 2008-06-12 | 2009-12-16 | 普安科技股份有限公司 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
WO2010137178A1 (en) * | 2009-05-25 | 2010-12-02 | Hitachi,Ltd. | Storage subsystem |
Also Published As
Publication number | Publication date |
---|---|
KR20120071058A (ko) | 2012-07-02 |
KR101732030B1 (ko) | 2017-05-04 |
CN102681944A (zh) | 2012-09-19 |
TW201227298A (en) | 2012-07-01 |
US20120166910A1 (en) | 2012-06-28 |
US8694865B2 (en) | 2014-04-08 |
TWI519949B (zh) | 2016-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102681944B (zh) | 数据存储装置以及相关的操作方法 | |
US11941257B2 (en) | Method and apparatus for flexible RAID in SSD | |
JP6053078B2 (ja) | 物理ページ、論理ページ、およびコードワードの対応 | |
JP5522480B2 (ja) | フォールトトレラント不揮発性集積回路メモリ | |
US9430329B2 (en) | Data integrity management in a data storage device | |
US10127166B2 (en) | Data storage controller with multiple pipelines | |
US9058288B2 (en) | Redundant storage in non-volatile memory by storing redundancy information in volatile memory | |
CN107797882A (zh) | 存储器系统及其操作方法 | |
EP2684134A2 (en) | Programmable data storage management | |
US11681472B2 (en) | Unmap data pattern for coarse mapping memory sub-system | |
KR20160080863A (ko) | 레이드 스토리지 시스템에서의 스트라이프 재구성 방법 및 이를 적용한 가비지 컬렉션 동작 방법 및 레이드 스토리지 시스템 | |
JP2019502987A (ja) | 不揮発性メモリ・システムにおけるマルチページ障害の回復 | |
US8756398B2 (en) | Partitioning pages of an electronic memory | |
JP2016530637A (ja) | Raidパリティストライプ再構成 | |
CN103488432B (zh) | 一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法 | |
CN110908843A (zh) | 诊断存储器系统的设备及其操作方法 | |
CN104733051B (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
US20230082008A1 (en) | Parity protection in non-volatile memory | |
WO2020028801A1 (en) | Error correction with scatter-gather list data management | |
TWI747532B (zh) | 記憶體裝置 | |
WO2013023564A9 (en) | Method and apparatus for flexible raid in ssd | |
TW202418087A (zh) | 在多個記憶體區域中分配和儲存寫入資料的裝置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |