CN104471546B - 用于提高固态硬盘可靠性的有效的磁盘冗余阵列技法 - Google Patents
用于提高固态硬盘可靠性的有效的磁盘冗余阵列技法 Download PDFInfo
- Publication number
- CN104471546B CN104471546B CN201380006059.5A CN201380006059A CN104471546B CN 104471546 B CN104471546 B CN 104471546B CN 201380006059 A CN201380006059 A CN 201380006059A CN 104471546 B CN104471546 B CN 104471546B
- Authority
- CN
- China
- Prior art keywords
- page
- data
- write request
- processed
- zone
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
-
- 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
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
- G06F2212/262—Storage comprising a plurality of storage devices configured as RAID
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供一种用于管理经多信道交叉驱动的多个内存信道的控制装置。所述装置包括:带区构成单元,根据所述多个内存信道中包含的页面的物理性页码,来构成带区;和奇偶校验生成单元,生成所述构成的带区的奇偶校验数据。
Description
技术领域
本发明涉及一种用于提高固态硬盘SSD装置可靠性的方法及装置。特别是,涉及一种在SSD装置内部应用磁盘冗余阵列RAID技法来提高可靠性的方法及装置。
技术背景
由于基于闪存的固态硬盘SSD具有低电力消耗、高速度、重量轻等多种优点,因此,在笔记本电脑和个人计算机,以及服务器和云系统中被广泛地应用。
但是,目前的SSD存在稳定性较低的问题,由此,该SSD的主要部件闪存经常发生错误,且清理次数受到限制是其主要原因。
最近,一个信元中存储两个以上比特的多级存储MLC(Multi Level Cell)或TLC(Triple Level Cell)闪存在市场上被广泛采用,同时被认识到具有更严重的问题。通常,所述SSD将错误检测和修正码记录在闪存的带外OOB(Out Of Band)区域,并利用其来对应意料之外的错误。但是,通过错误检测和修正码只能对一个页面中发生的几个比特的错误进行检测和修正,对于块或芯片级别的错误没有任何对应度,甚至具有不能检测的问题。
此外,为了提高所述SSD装置的可靠性,虽然可在SSD内部应用磁盘冗余阵列RAID技法的现有技术,但是,由于RAID技法通常袖珍写入,因此,具有闪存的性能低下和使用寿命减少的问题。
因此,为了解决RAID技法中上述袖珍写入的问题,需要设计一种具有可靠性的SSD装置。
发明内容
技术方案
根据一个侧面,提供一种控制装置,用来管理经多信道交叉驱动的多个内存信道。
根据一个实施例,所述控制装置可包括:带区构成单元,根据所述多个内存信道中包含的页面的物理性页码,来构成带区;和奇偶校验生成单元,生成所述构成的带区的奇偶校验数据。
根据一个实施例,当多个页面数据写入请求按顺序被接收时,所述控制装置执行所述多信道交叉,将所述多个内存信道的空白页独立地按顺序地写入逻辑块地址中。
根据一个实施例,所述控制装置可进一步包括:清理单元,在对所述多个页面中的数据进行清理时,生成包含有所述多个带区的清理块,并选择所述清理块中有效页面最少的清理块作为所述数据清理的对象块,来执行所述数据清理。
根据一个实施例,所述清理单元,将所述数据清理的对象块复制成与所述多信道交叉相关的多个芯片的至少一部分块,并可针对所述数据清理的对象块执行所述数据清理。
根据一个实施例,所述控制装置可进一步包括:判断单元,在最后处理的第1页面写入请求被处理后,判断第1临界时间经过与否。
根据一个实施例,当所述第1页面写入请求被处理后所述第1临界时间经过时,所述奇偶校验生成单元生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据。
根据一个实施例,当所述第1页面写入请求被处理后所述第1临界时间经过,且对应于所述第1页码的空白页比率大于临界值时,所述控制装置的所述奇偶校验生成单元可生成所述部分奇偶校验数据。
根据一个实施例,当所述第1页面写入请求被处理后,大于所述第1临界时间的第2临界时间经过时,就算对应于所述第1页码的空白页比率小于所述临界值,所述奇偶校验生成单元也可生成所述部分奇偶校验数据。
根据一个实施例,所述控制装置可控制所述多信道交叉,将生成的所述部分奇偶校验数据写入对应于所述第1物理性页码的空白页中的任何一个空白页中。
根据一个实施例,所述控制装置可将与所述多信道交叉相关的多个芯片的至少一部分块分配至部分奇偶校验存储区域,并控制所述多信道交叉,将所述部分奇偶校验数据写入所述部分奇偶校验存储区域。
根据另一个侧面,提供一种控制装置,包括:判断单元,当页面数据写入通过多信道交叉被处理时,在最后请求的第1页面写入请求被处理后,判断第1临界时间经过与否,和奇偶校验生成单元,当所述第1页面写入请求被处理后所述第1临界时间经过时,生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据。
根据一个实施例,当所述第1页面写入请求被处理后所述第1临界时间经过,且对应于所述第1页码的空白页比率大于临界值时,所述装置的所述奇偶校验生成单元可生成所述部分奇偶校验数据。
根据一个实施例,当所述第1页面写入请求被处理后大于所述第1临界时间的第2临界时间经过时,就算对应于所述第1页码的空白页比率小于所述临界值,所述控制装置的所述奇偶校验生成单元也可生成所述部分奇偶校验数据。
根据又另一个侧面,可提供一种管理经多信道交叉驱动的多个内存信道的控制方法。
根据一个实施例,所述控制方法可包括以下步骤:根据所述多个内存信道中包含的页面的物理性页码,来构成带区;和生成所述构成的带区的奇偶校验数据。
根据一个实施例,当多个页面数据写入请求按顺序被接收时,所述控制方法可执行所述多信道交叉,将所述多个内存信道的空白页独立地按顺序地写入逻辑块地址中。
根据一个实施例,所述控制方法可进一步包括以下步骤:在最后处理的第1页面写入请求被处理后,判断第1临界时间经过与否,且其中,所述控制方法的生成所述奇偶校验数据的步骤,是当所述第1页面写入请求被处理后所述第1临界时间经过时,生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据。
根据一个实施例,其中,所述控制方法的生成所述奇偶校验数据的步骤,是当所述第1页面写入请求被处理后所述第1临界时间经过,且对应于所述第1页码的空白页比率大于临界值时,生成所述部分奇偶校验数据,以及当所述第1页面写入请求被处理后大于所述第1临界时间的第2临界时间经过时,就算对应于所述第1页码的空白页比率小于所述临界值,也可生成所述部分奇偶校验数据。
根据一个实施例,所述控制方法可控制所述多信道交叉,将生成的所述部分奇偶校验数据写入对应于所述第1物理性页码的空白页中的任何一个空白页中。
根据一个实施例,所述控制方法可将与所述多信道交叉相关的多个芯片的至少一部分块分配至部分奇偶校验存储区域,并控制所述多信道交叉,将所述部分奇偶校验数据写入所述部分奇偶校验存储区域。
根据又另一个侧面,提供一种控制方法,包括以下步骤:当页面数据写入通过多信道交叉被处理时,在最后请求的第1页面写入请求被处理后,判断第1临界时间经过与否,和当所述第1页面写入请求被处理后所述第1临界时间经过时,生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据。
根据一个实施例,所述控制方法的生成所述奇偶校验数据的步骤,是当所述第1页面写入请求被处理后所述第1临界时间经过,且对应于所述第1页码的空白页比率大于临界值时,生成所述部分奇偶校验数据,以及当所述第1页面写入请求被处理后大于所述第1临界时间的第2临界时间经过时,就算对应于所述第1页码的空白页比率小于所述临界值,也可生成所述部分奇偶校验数据。
附图说明
图1是示出根据一个实施例的存储装置的示图。
图2是示出根据一个实施例的控制装置的框图。
图3是用于说明根据一个实施例的所述控制装置中发生数据更新时的示图。
图4是用于说明根据一个实施例的,所述控制装置中可生成部分奇偶校验的部分带区奇偶校验池的示图。
图5是用于说明根据一个实施例的,所述控制装置中数据清理执行前的概念图。
图6是用于说明根据一个实施例的,所述控制装置中所述数据清理执行后的概念图。
图7是根据一个实施例的,所述控制装置中用于管理经多信道交叉驱动的多个内存信道的控制方法的流程图。
图8是根据一个实施例,根据临界时间的所述控制方法的流程图。
图9是根据一个实施例,根据所述临界时间和带区的空白页比率的所述控制方法的流程图。
图10是根据一个实施例的,所述控制装置中执行所述数据清理的流程图。
具体实施方式
以下,参照附图,对一部分实施例进行详细地说明。但是,本发明并不仅局限于该实施例,各附图中示出的相同的参照符号表示相同的部件。
以下说明书中所使用的术语,是考虑本发明的功能当前广泛使用的一般术语,其根据本领域中的普通技术人员的意图或惯例、新技术的出现等可能会有所不同。
此外,在特定的情况下,为了帮助理解和/或方便说明,可能存在发明者任意采用的术语,在属于该情况的说明部分中,将详细记载其意义。因此,以下说明书中使用的术语所表示的意义应基于说明书的整个内容来理解。
固态硬盘SSD(Solid-State Drive)由多个闪存芯片和输出入信道等构成。为了提高性能,大部分的SSD采用将数据交叉的RAID-0结构,来使各闪存芯片以并联方式运作,同时,各输出入信道可传送数据。所述RAID按种类可分为RAID-0,1,2,3,4,5,6等,但使用得最多的是RAID-5。
在所述SSD中采用上述RAID-5时,与HDD不同,由于闪存中数据不能在原位置被更新,必须写入其他空间,因此,频繁的更新伴随着多个奇偶校验的写入,造成闪存的清理费用增加和使用寿命被缩短。此外,数据更新过程期间,由于相比其他芯片,具奇偶校验的芯片更多地发生频繁的写入,因此,相比其他芯片,含有奇偶校验的芯片使用寿命减少。
当前,所述SSD装置所接收的写入请求为逻辑块号LBN(Logical Block Number)形态。当所述LBN为连续性的,并以较大的尺寸形成时,所述RAID的袖珍写入问题虽然不会发生,但大部分的写入请求为小尺寸。
因此,本发明提供一种数据控制装置及方法,就算所述LBN不是连续性的,并为小尺寸时,也可解决上述问题。此外,附加地生成部分带区奇偶校验(Partial StripeParity)(或是部分奇偶校验),因此,可提高所述存储装置(例如,类似所述SSD)的可靠性。
图1是示出根据一个实施例的存储装置101的示图。所述存储装置100可包括控制装置100、主机接口103、和闪存芯片110、120。
根据一个实施例,所述存储装置的所述主机接口可在控制所述存储装置的所述控制装置和外部的主机计算机102之间提供界面。所述主机接口可以是并行接口PATA(Parallel ATA)、串行接口SATA(Serial ATA)、或通用串行总线USB(Universal SerialBus)。因此,所述存储装置可通过所述主机接口,从主机102接收数据存取(data access)的命令(例如,数据读取、数据写入等)。
根据一个实施例,所述存储装置的所述控制装置,具有与所述主机进行通信以及控制与所述闪存相关的各部分的作用。此外,所述存储装置可由多个闪存芯片110、120和输出入信道等构成。
为了提高性能,大部分的SSD可采用将数据交叉的结构,使所述多个闪存芯片分别并联运作,各输出入信道也可同时传送数据。与所述多个闪存芯片相关的内容将在以下进行更详细地说明。
图2是示出根据一个实施例的控制装置100的框图。所述控制装置可管理经多信道交叉驱动的多个内存信道。
此外,所述控制装置可包括:带区构成单元210、奇偶校验生成单元220、清理单元230、和判断单元240。
根据一个实施例的所述控制装置的所述带区构成单元210,可根据所述多个内存信道中包含的页面的物理性页码,来构成带区,且所述奇偶校验生成单元220可生成所述构成的带区的奇偶校验数据。
根据一个实施例,当多个页面数据写入请求按顺序被接收时,所述控制装置可执行所述多信道交叉,将所述多个内存信道的空白页独立地按顺序地写入逻辑块地址中。
根据一个实施例,所述控制装置的所述清理单元230,在数据清理时,可生成包含有所述多个带区的清理块,并选择所述清理块中有效页面最少的清理块作为所述数据清理的对象块。此外,所述清理单元230,可针对所述选择的数据清理的对象块执行所述数据清理。
此外,所述清理单元230可将所述数据清理的对象块复制成与所述多信道交叉相关的多个芯片的至少一部分块,并针对所述数据清理的对象块执行所述数据清理。
根据一个实施例,所述控制装置的所述判断单元240,在最后处理的第1页面写入请求被处理后,可判断第1临界时间经过与否。
此外,当所述第1页面写入请求被处理后所述第1临界时间经过时,所述奇偶校验生成单元220可生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据。
根据一个实施例,当所述第1页面写入请求被处理后所述第1临界时间经过,且对应于所述第1页码的空白页比率大于临界值时,所述奇偶校验生成单元220可生成所述部分奇偶校验数据。在此,所述第1临界时间和所述空白页比率的临界值可通过所述控制装置的用户被预先设定。
根据一个实施例,当所述第1页面写入请求被处理后,大于所述第1临界时间的第2临界时间经过时,就算对应于所述第1页码的空白页(clean page)比率小于所述临界值,所述奇偶校验生成单元220也可生成所述部分奇偶校验。由于与所述带区的全奇偶校验生成的概率相比,页面数据的消失或错误的危险性更高,因此,所述第2临界时间经过时,就算所述空白页有所遗留(小于所述临界值),所述控制装置也可在所述最后写入之后无条件地执行所述部分奇偶校验的写入。
根据一个实施例,所述奇偶校验生成单元220可控制所述多信道交叉,将生成的所述部分奇偶校验数据写入对应于所述第1物理性页码的空白页中的任何一个空白页中。
根据一个实施例,所述控制装置可将与所述多信道交叉相关的多个芯片的至少一部分块分配给部分奇偶校验存储区域,并控制所述多信道交叉,将所述部分奇偶校验数据写入所述部分奇偶校验存储区域。有关所述部分奇偶校验存储区域的内容,将参照附图在以下进行详细地说明。
图3是用于说明根据一个实施例的所述控制装置中发生数据更新时的示图。
根据一个实施例,所述控制装置100可控制与所述主机的通信,并控制与所述闪存相关的各部分。在图3中,在所述控制装置的控制下,闪存芯片控制器FCC(Flash ChipController)可分别控制所述闪存芯片。
根据一个实施例,图3中示出由5个闪存芯片(chip0、chip1、chip2、chip3、和chip4)构成的存储装置(例如,类似SSD)内部。在此,PPN(Physical Page Number)示出物理性页码,且PBN(Physical Block Number)示出物理性块编号。所述PBN可包括所述各闪存芯片中相同的PPN页面。
根据一个实施例,Dx(x=0,1,2,3…)表示用户的数据的逻辑块地址LBA(LogicalBlock Address),且Px(x=0,1,2,3…)表示带区310的奇偶校验。
根据一个实施例的所述带区由所述各闪存芯片的相同的PPN页面构成,例如,所述带区可以是动态带区DS(Dynamic Stripe)。由于现有的带区是基于逻辑性地址来构成所述带区,虽然经带区映射表(Stripe map table)被管理,但是,由于经所述控制装置构成的所述带区(例如,动态带区DS)是基于物理性地址来构成所述带区,因此,不需要所述带区映射表。
根据一个实施例,当所述带区中没有执行所述数据写入时,在所述带区的所述PPN页面经所述数据被清除之前,可在所述带区中至少生成一个所述全奇偶校验或所述部分奇偶校验,来用于提高所述SSD的可靠性和恢复数据。
根据一个实施例的图3,其示出有关数据D1和的D2的数据更新请求发生时的示例。虽然大部分的所述SSD由10-16个以上的多个闪存芯片构成,但是,为了便于说明,图3中示出由5个闪存芯片(chip0、chip1、chip2、chip3、和chip4)构成的示例。
根据一个实施例,图3中D0~D7的用户数据被写入所述闪存芯片的所述PPN0和PPN1中。此外,图3示出初始状态,包括:以所述PPN0的相同页面构成的所述所述带区310的奇偶校验(P0);和以所述PPN1的相同页面构成的所述带区的奇偶校验(P1)。如上所述,至少一个带区中包含至少一个全奇偶校验。
根据一个实施例,假设在所述初始状态下,D1和D2的用户数据被更新。由于所述数据D1和D2的更新请求,发生被升级的D1'和D2'的写入请求。所述控制装置针对根据所述更新请求的所述写入请求,按所述请求发生的顺序,交叉写入各闪存芯片的相同PPN页面中。
现有技术中,由于基于逻辑性地址来构成所述带区,因此,需将所述更新的数据写入相同的闪存芯片内的空白页(初始写入时的闪存芯片的空白页)。为了方便说明,首先对一个用户数据D1的数据更新进行说明。
根据一个实施例,假设只有初始状态下的所述用户数据D1311发生数据更新请求。现有技术中,在初始写入时相同的闪存芯片的空白页312中写入升级的D1'的用户数据,而与此相反,所述控制装置则可进行控制,将所述升级的D1'的用户数据写入按顺序写入空白页。
也就是说,根据一个实施例,由于所述控制装置可基于物理性地址来生成带区,因此,不将所述升级的D1'的用户数据写入相同的闪存芯片的空白页312中。
根据一个实施例,所述控制装置可在初始状态下进行控制,将所述D1'写入最后写入请求的用户数据D7页的下一个页面301中,且所述控制装置可将初始状态的用户数据D1被写入的页面311控制成无效页面。
一般,当经所述写入请求使至少一个带区被填满时,所述控制装置的所述奇偶校验生成单元220可生成所述带区的全奇偶校验。
但是,当只有所述带区的一部分发生数据更新时,所述控制装置的奇偶校验生成单元220可不用等到所述带区中所述用户数据被填满时,而是可直接生成有关更新的数据(或是经写入请求被写入的数据)的部分奇偶校验(Partial Parity)。
例如,初始数据D1的数据被更新的实施例中,所述控制装置的所述带区生成单元可构成所述带区,使所述升级的(须更新的)D1'基于物理性地址被写入页面301中。此外,所述控制装置的所述奇偶校验生成单元220可等待而不生成所述全奇偶校验,直到包含所述更新的D1'的相关带区被填满,并在所述更新的D1'的页面301的下一页312中直接生成所述部分奇偶校验。
根据另一个实施例,假设在如图3所示的初始状态下,D1,D2按顺序数据被更新。根据现有技术,基于逻辑性地址在初始写入时相同的闪存芯片的空白页中写入升级的D1',D2'。因此,在现有技术中,D1'被写入芯片1的PPN2页面312中,且D2'被写入芯片2的PPN2页面321中。
但是,由于所述控制装置的所述带区构成单元210是基于物理性地址来构成带区,因此,可将D1',D2'按写入请求发生的顺序交叉写入各闪存芯片的PPN页面中。因此,所述控制装置的所述带区构成单元210可进行控制使D1'被写入芯片0的PPN2页面301中,且D2'被写入芯片1的PPN2页面312中。此外,所述更新的数据的写入完成时,写有初始状态的用户数据D1,D2的页面成为无效页面。
如上所述,当由于写入请求使一个带区被填满时,可生成所述带区的全奇偶校验。但是,当只是所述带区中的一部分实现数据更新时,所述控制装置的所述奇偶校验生成单元220可不用等到所述带区中所述用户数据被填满时,而是可直接生成有关更新的数据(或是经写入请求被写入的数据)的部分奇偶校验。
例如,如上所述,当发生有关初始数据D1,D2的数据更新时,可使所述升级的(须更新的)的D1',D2'的用户数据基于物理性地址被分别写入页面301和页面312中。此外,包含所述更新的D1',D2'的相关带区可不用等待所述相关带区中所述用户数据被填满时,而是可在最后更新的D2'的页面312的下一页面321中生成有关更新的D1',D2'的所述部分奇偶校验。
因此,所述控制装置可仅针对所述写入请求发生的数据来构成动态带区,且可由于生成所述带区的奇偶校验(或全奇偶校验),因此,不需要为了生成所述更新的数据的奇偶校验而针对初始状态中写入的数据进行另外的读取演算,并可减少所述奇偶校验写入次数。此外,可消除特定闪存芯片的写入被集中的现象,并可使所述闪存芯片的寿命减少问题得到完化。
根据又另一个实施例,如上所述,D1',D'2的更新被完成,且对应于所述更新的数据的所述部分奇偶校验被生成后,又发生其他写入请求D8的数据写入请求时,下一个空白页芯片3的PPN2的页面中可执行所述D8数据的写入。此外,可在相当于最后页面(芯片4的PPN2页面)的整个带区生成新的所述全奇偶校验。
在这种情况下,由于利用所述SSD的写入缓冲中保管的所述D8,因此,不需要进行用于生成所述全奇偶校验的读取演算。如此,可将对比所述带区的尺寸小的写入请求所生成的奇偶校验称为部分奇偶校验,并由此,无须添加类似非易失随机存取存储器NVRAM的硬件,也可保障所述SSD的可靠性。
根据又另一个实施例,所述控制装置的判断单元240可考虑最后处理的写入请求的临界时间,来判断是否生成有部分奇偶校验。所述控制装置的所述奇偶校验生成单元220可如图3所示,当D1',D'2的更新被请求,所述芯片0的PPN2页面和所述芯片1的PPN2页面中分别写有D1',D2'时,可不用直接生成所述部分奇偶校验,而是可在第1临界时间期间等待是否又有其他写入请求被接收。
当所述第1临界时间内接收到其他写入请求时,可按所述写入请求的顺序来构成所述带区,且当由于所述其他写入请求使所述带区被填满时,所述奇偶校验生成单元220无须生成所述部分奇偶校验,而是可直接生成对应于整个带区的所述全奇偶校验。
相反,当所述第1临界时间内没有接收到其他写入请求时(相应带区没有全部被填满且不会再接收其他写入请求时),由于所述奇偶校验生成单元220可在经最后写入请求被写入的页面的下一页中直接生成所述部分奇偶校验,因此,可提高所述存储装置(所述SSD)的可靠性。
根据又另一个实施例,所述控制装置的判断单元240可考虑所述临界时间和所述空白页的比率,来判断是否生成有部分奇偶校验。
如上所述,当D1',D'2的更新被请求,且所述芯片0的PPN2页面和所述芯片1的PPN2页面中D1',D2'分别被写入时,所述控制装置的所述奇偶校验生成单元220可以不直接生成所述部分奇偶校验,并可在第1临界时间期间等待是否又有其他写入请求。
当所述第1临界时间内接收到所述其他写入请求时,可按所述写入请求的顺序来构成所述带区。此外,当由于所述其他写入请求使所述带区被填满时,所述奇偶校验生成单元220无须生成所述部分奇偶校验,而是可直接生成对应于整个带区的所述全奇偶校验。
相反,当所述第1临界时间内没有接收到其他写入请求时(相应带区没有全部被填满且不会再接收其他写入请求时),所述控制装置的所述判断单元240可判断所述带区内是否充分地存在空白页(Clean page)。
例如,当经所述写入请求数据被写入的相应带区中,所述空白页的比率大于预先定义的临界值时,所述控制装置的所述判断单元240可判断所述带区中还存在闲置页面。
此外,当所述空白页的比率小于预先定义的临界值时,所述判断单元240可判断所述带区中不存在所述闲置页面,从而在比所述第1临界时间大的第2临界时间期间,可具有用于其他写入请求的等待时间。
根据一个实施例,当所述第2临界时间经过后也没有接收到其他写入请求时,就算所述空白页的比率小于所述临界值,所述判断单元240也可进行判断,生成对应于所述带区的所述部分奇偶校验。
图4是用于说明根据一个实施例的,所述控制装置中可生成部分奇偶校验的部分带区奇偶校验池(Partial Stripe Parity Pool)的示图。所述控制装置可将与所述多信道交叉相关的多个芯片的至少一部分块分配至部分奇偶校验存储区域(或所述部分带区奇偶校验池(Partial Stripe Parity Pool)中),并控制所述多信道交叉,将所述部分奇偶校验数据写入所述部分奇偶校验存储区域中
如上述图3中示出的,基于物理性地址来执行将D1'和D2'写入所述页面301和312的操作之后,(根据情况,考虑临界时间和空白页的比率)可将所述部分奇偶校验记录在下一页321中。之后,当发生其他写入请求D8的写入请求时,在下一页(芯片3的PPN2页面)中执行写入,且由于必须记录整个带区的奇偶校验,因此,可将所述全奇偶校验记录在最后页面(芯片4的PPN2)中。
但是,参照图4,所述控制装置可不记录整个带区的全奇偶校验,而是执行有关下一个写入请求的写入,并将所述部分奇偶校验另外记录在所述部分奇偶校验存储区域中。
当D1'和D2'的数据更新之后,接着D8和D9持续有写入请求进入时,由于在至少一个带区中必须记录至少一个奇偶校验,因此须记录P2。之后,当D10的数据写入请求被接收时,将相关数据写入芯片0的页面中,且D10的数据写入的部分奇偶校验PP1可记录在所述部分奇偶校验存储区域(或所述部分带区奇偶校验池)的芯片1402中。
根据一个实施例,之后连续的写入请求D11、D12、D13、D14按顺序进入时,从D11开始按顺序写入芯片1、2、3中,并可将全奇偶校验P3记录在芯片0的PPN4中。根据一个实施例,D11-D14可作为一个全带区,来写入全奇偶校验P3。
根据一个实施例,当相关带区被填满时,所述带区中可记录至少一个全奇偶校验,且相反,当相关带区没有被填满时,可将所述部分奇偶校验另外记录在所述部分奇偶校验存储区域410中。如上所述,将所述部分奇偶校验401、402、403记录在所述部分奇偶校验存储区域(或所述部分带区奇偶校验池410)中的理由为,由于RAID特性上是将一个带区中包含的数据分散至其他芯片,因此,特定芯片发生错误时,可利用被分散的数据来进行复原。
根据一个实施例,构成所述带区的各页面(图3至图4中的5个)必须维持1个以上的所述部分奇偶校验或所述全奇偶校验。
根据一个实施例,由于利用所述奇偶校验存储区域,因此,可减少构成所述带区的各页面所维持的奇偶校验个数,同时可针对特定芯片中发生的错误来进行数据复原。
图5是用于说明根据一个实施例的,所述控制装置中数据清理执行前的概念图。
根据一个实施例,由于所述闪存芯片的清理演算是以块单位被执行的,因此,当闲置空间生成时,包含有所述带区的块可同时被清理。如图5和图6中所示出的,将包含有所述带区(例如,动态带区DS)的块称为动态带区组(DSG:Dynamic Stripe Group)。
根据一个实施例,在选择清理对象块时,有效页面可作为最小块的集合。例如,在图5中,DSG0的无效页面的个数为5个,且DSG1的有效页面的个数为9个。
因此,与所述DSG1相比,所述DSG0的有效页面的个数较少,因此,所述DSG0可能会成为清理执行的对象块。
图6是用于说明根据一个实施例的,所述控制装置中经所述清理单元230执行所述数据清理后的概念图。如图5中所说明的,选择所述有效页面的个数较少的DSG,来执行所述清理演算。
根据一个实施例,所述清理单元可将所述清理演算被执行的所述DSG0的有效页面的数据D0,D4,D7分别复制在闪存芯片0、闪存芯片1、和闪存芯片2的所述PPN60页面中。
此外,所述控制装置,生成所述复制的D0,D4,D7的所述全奇偶校验P60,从而记录在闪存芯片3的PPN60中,由此可构成新的所述带区(例如,动态带区)。此外,剩余的有效页面的数据D8和D10被写入下一个带区中,并如上所述,可生成所述部分奇偶校验(PP)。
根据一个实施例,所有的闪存芯片须同时被执行清理,才可保障如上所述的用于所述带区的闲置空间。由于所述各闪存芯片并联执行所述清理,因此,与单一闪存芯片中的清理具有相似的内容。
此外,为了保障所述数据的一贯性,在进行所述清理时,可执行以下的步骤:(1)将所述清理对象块的所有有效页面复制成闲置页面;(2)在执行第(1)步骤期间,动态地构成所述带区来完成奇偶校验写入;(3)消除所述清理对象块。
须按上述步骤进行的理由在于,就算第(2)步骤的上述奇偶校验写入途中发生错误,也可利用所述清理对象块的现有数据来进行复原。
图7是根据一个实施例的,所述控制装置中用于管理经多信道交叉驱动的多个内存信道的控制方法700的流程图。
在步骤710中,根据一个实施例的所述控制装置接收所述初始数据D1的数据更新请求命令。在步骤720中,根据所述多个存储信道中包含的页面的物理性页码将所述更新的(升级的)数据D1'编程到第1页面中来构成带区。此外,所述控制装置可生成有关所述构成的带区的奇偶校验数据。
图8是根据一个实施例,根据临界时间的所述控制方法的流程图。如上所述的图7的控制方法,可考虑所述临界时间来判断所述部分奇偶校验是否生成。
图7中,在步骤720根据所述多个存储信道中包含的页面的物理性页码将所述更新的(升级的)数据D1'编程到第1页面中来构成带区之后,在步骤810中,所述控制装置的判断单元240可判断最后处理的所述第1页面编程后第一临界时间是否经过。
当所述第1页面写入请求被处理后,所述第1临界时间经过时,在步骤820中,可生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据。
图9是根据一个实施例,根据所述临界时间和带区的空白页比率的所述控制方法的流程图。
根据一个实施例,在步骤910中,所述控制装置的判断单元240可判断所述第1页面写入请求被处理后所述第1页面临界时间是否经过。
根据一个实施例的所述控制装置的所述判断单元240可判断所述第1页面写入请求被处理后所述第1临界时间是否经过。当所述第1页面写入请求被处理后,所述第1临界时间已经经过时,在步骤920中可判断对应于所述第1页码的空白页比率是否大于临界值。在此,所述空白页比率大于临界时,在步骤940中可生成所述部分奇偶校验PP并记录。
当所述第1页面写入请求被处理后,所述第1临界时间经过,且所述第1页码的空白页比率小于临界值时,在步骤930中可判断大于所述第1临界时间的所述第2临界时间是否经过。
根据一个实施例,在步骤940中,当所述第1页面写入请求被处理,且大于所述第1临界时间的所述第2临界时间经过时,就算对应于所述第1页码的所述空白页的比率小于所述临界值,所述判断单元240也可使所述奇偶检验生成单元220来生成所述部分奇偶校验。
图10是根据一个实施例的,所述数据处理装置中执行所述数据清理的流程图。根据一个实施例,由于所述控制装置可按带区发生所述写入请求的顺序来动态地生成带区,从而可减少奇偶校验更新的费用。
根据一个实施例,为了按上述的写入请求的顺序在所述各闪存芯片中进行交叉,按所述各闪存芯片的相同的PPN顺序进行分配是用于管理所述闪存的最佳方法。
因此,在所述控制装置中,所述带区可由所述各闪存芯片的相同的PPN页面构成。为了经所述带区构成单元210来构成所述带去,所述各闪存芯片的相同的PPN页面须确保闲置空间,因此,所述清理演算时需要如上所述的空间。
根据一个实施例,所述控制装置的所述清理单元230可将所述闪存的清理演算以块单位来执行。此外,在生成用于所述带区的闲置空间时,所述带区包含的块须同时被清理。如上所述,所述带区包含的块可以是动态带区组DSG(Dynamic Stripe Group)。
根据一个实施例,为了确保所述带区的空间,所述各闪存芯片须同时执行清理。由于所述各闪存芯片并联执行清理,所以与单一芯片中的清理费用相同。
此外,为了保证数据的一贯性,在执行所述数据的清理时,参照图10的流程图,可按以下顺序来执行清理。
根据一个实施例,在步骤1010中,生成包含有所述多个带区的清理块,并选择所述清理块中有效页面最少的清理块,来作为所述数据清理的对象块。
首先,在步骤1020中将所述数据清理的对象块的所有有效页面复制成闲置页面,同时,在步骤1030种,动态地构成所述带区来完成奇偶校验写入。之后,在步骤1040中,可消除清理对象块。
须按上述步骤进行的理由在于,就算上述奇偶校验写入途中发生错误,也可利用所述清理对象块的现有数据来进行复制。
上述中所说明的装置,其可通过硬件配置、软件配置、和/或硬件配置与软件配置的组合被体现。例如,实施例中所说明的装置和配置,类似处理器、控制器、算术逻辑单元ALU(arithmetic logic unit)、数字信号处理器(digital signal processor)、微计算机、现场可编程阵列FPA(field programmable array)、可编程逻辑单元PLU(programmablelogic unit)、微处理器、或可执行命令(instruction)并应答的其他任何装置,可利用一个以上的泛用计算机或特殊目的的计算机来体现。处理装置可执行操作系统OS及所述操作系统中执行的一个以上的应用软件。此外,处理装置可应答软件的执行来存取、存储、操作、处理、及生成数据。为便于理解,虽然只说明使用一个处理装置,但本技术领域的普通技术人员应理解处理装置可包括多个处理元件(processing element)和/或多种类型的处理元件。例如,处理装置可包括多个处理器或一个处理器和一个控制器。此外,也可以是类似并行处理器(parallel processor)的其他处理配置(processing configuration)。
软件可包括计算机程序(computer program)、代码(code)、命令(instruction)、或其中一个以上的组合,从而可构成处理装置根据需要来操作,或是单独地或共同地来命令处理装置。软件和/或数据可经处理装置被分析,或是永久或暂时地在任何类型的机械、组件(component)、物理性装置、虚拟装置(virtual equipment)、计算机存储媒体或装置、被传送的信号波(signal wave)中被具体化(embody),来用于向处理装置提供命令或数据。软件被分散在经网络连接的计算机系统上,可通过分散的方法被存储或执行。软件及数据可存储在一个以上的计算机可读记录媒体中。
根据实施例的方法可通过多种计算机手段以可执行的程序指令形态被记录在计算机可读媒体中。该媒体计算机可读媒体可包括独立的或结合的程序指令、数据文件、数据结构等。媒体和程序指令可为了本发明被专门设计和创建,或为计算机软件技术人员熟知而应用。计算机可读媒体的例子包括:磁媒体(magnetic media),如硬盘、软盘和磁带;光学媒体(optical media),如CD ROM、DVD;磁光媒体(magneto-optical media),如光盘(floptical disk);和专门配置为存储和执行程序指令的硬件装置,如只读存储器(ROM)、随机存取存储器(RAM)等。程序指令的例子,既包括由编译器产生的机器代码,也包括使用解释程序并可通过计算机被执行的高级语言代码。为执行本发明的运作,所述硬件装置可被配置为以一个以上软件模来运作,反之亦然。
如上所示,本发明虽然已参照有限的实施例和附图进行了说明,但是本发明并不局限于所述实施例,在本发明所属领域中具备通常知识的人均可以从此记载中进行各种修改和变形。例如,可通过与说明的方法不同的顺序来执行所说明的技术,和/或通过与说明的方法不同的形态来结合或组合所说明的系统、结构、装置、电路等的构成要素,或是通过其他构成要素或同等事物来代替或置换也可获得适当结果。
因此,本发明的范围不受说明的实施例的局限或定义,而是由后附的权利要求范围以及权利要求范围等同内容定义。
Claims (16)
1.一种管理经多信道交叉驱动的多个内存信道的控制装置,所述控制装置包括:
带区构成单元,根据所述多个内存信道中包含的页面的物理性页码,来构成带区;和
奇偶校验生成单元,生成所述构成的带区的奇偶校验数据;
清理单元,在对所述多个页面中的数据进行清理时,生成包含有所述多个带区的清理块,并选择所述清理块中有效页面最少的清理块作为所述数据清理的对象块,来执行所述数据清理,且
其中,所述清理单元,将所述数据清理的对象块复制成与所述多信道交叉相关的多个芯片的至少一部分块,并针对所述数据清理的对象块执行所述数据清理。
2.如权利要求1所述的控制装置,当多个页面数据写入请求按顺序被接收时,执行所述多信道交叉,将所述多个内存信道的空白页独立地按顺序地写入逻辑块地址中。
3.如权利要求1所述的控制装置,进一步包括:
判断单元,在最后处理的第1页面写入请求被处理后,判断第1临界时间经过与否,且
当所述第1页面写入请求被处理后所述第1临界时间经过时,所述奇偶校验生成单元生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据。
4.如权利要求3所述的控制装置,其中,当所述第1页面写入请求被处理后所述第1临界时间经过,且对应于所述第1页码的空白页比率大于临界值时,所述奇偶校验生成单元生成所述部分奇偶校验数据。
5.如权利要求4所述的控制装置,当所述第1页面写入请求被处理后,大于所述第1临界时间的第2临界时间经过时,对应于所述第1页码的空白页比率小于所述临界值的情况下,也生成所述部分奇偶校验数据。
6.如权利要求3所述的控制装置,控制所述多信道交叉,将生成的所述部分奇偶校验数据写入对应于所述第1物理性页码的空白页中的任何一个空白页中。
7.如权利要求3所述的控制装置,将与所述多信道交叉相关的多个芯片的至少一部分块分配至部分奇偶校验存储区域,并控制所述多信道交叉,将所述部分奇偶校验数据写入所述部分奇偶校验存储区域。
8.一种控制装置,包括:
判断单元,当页面数据写入通过多信道交叉被处理时,在最后请求的第1页面写入请求被处理后,判断第1临界时间经过与否,和
奇偶校验生成单元,当所述第1页面写入请求被处理后所述第1临界时间经过时,生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据;
其中,当所述第1页面写入请求被处理后所述第1临界时间经过,且对应于所述第1页码的空白页比率大于临界值时,所述奇偶校验生成单元生成所述部分奇偶校验数据。
9.如权利要求8所述的控制装置,当所述第1页面写入请求被处理后大于所述第1临界时间的第2临界时间经过时,对应于所述第1页码的空白页比率小于所述临界值的情况下,也生成所述部分奇偶校验数据。
10.一种管理经多信道交叉驱动的多个内存信道的控制方法,所述控制方法包括以下步骤:
根据所述多个内存信道中包含的页面的物理性页码,来构成带区;和
生成所述构成的带区的奇偶校验数据;
在最后处理的第1页面写入请求被处理后,判断第1临界时间经过与否,且
其中,生成所述奇偶校验数据的步骤,是当所述第1页面写入请求被处理后所述第1临界时间经过时,生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据;
其中,生成所述奇偶校验数据的步骤,是当所述第1页面写入请求被处理后所述第1临界时间经过,且对应于所述第1页码的空白页比率大于临界值时,生成所述部分奇偶校验数据。
11.如权利要求10所述的控制方法,当多个页面数据写入请求按顺序被接收时,执行所述多信道交叉,将所述多个内存信道的空白页独立地按顺序地写入逻辑块地址中。
12.如权利要求10所述的控制方法,其中,当所述第1页面写入请求被处理后大于所述第1临界时间的第2临界时间经过时,对应于所述第1页码的空白页比率小于所述临界值的情况下,也生成所述部分奇偶校验数据。
13.如权利要求10所述的控制方法,控制所述多信道交叉,将生成的所述部分奇偶校验数据写入对应于所述第1物理性页码的空白页中的任何一个空白页中。
14.如权利要求10所述的控制方法,将与所述多信道交叉相关的多个芯片的至少一部分块分配至部分奇偶校验存储区域,并控制所述多信道交叉,将所述部分奇偶校验数据写入所述部分奇偶校验存储区域。
15.一种控制方法,包括以下步骤:
当页面数据写入通过多信道交叉被处理时,在最后请求的第1页面写入请求被处理后,判断第1临界时间经过与否,和
当所述第1页面写入请求被处理后所述第1临界时间经过时,生成与所述第1页面写入请求相关的第1物理性页码的部分奇偶校验数据;
生成所述奇偶校验数据的步骤,是当所述第1页面写入请求被处理后所述第1临界时间经过,且对应于所述第1页码的空白页比率大于临界值时,生成所述部分奇偶校验数据。
16.如权利要求15所述的控制方法,其中,当所述第1页面写入请求被处理后大于所述第1临界时间的第2临界时间经过时,对应于所述第1页码的空白页比率小于所述临界值的情况下,也生成所述部分奇偶校验数据。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20120013076 | 2012-02-09 | ||
KR1020120013076 | 2012-02-09 | ||
KR1020130013954 | 2013-02-07 | ||
KR1020130013954A KR101445025B1 (ko) | 2012-02-09 | 2013-02-07 | 신뢰성 있는 ssd를 위한 효율적인 raid 기법 |
PCT/KR2013/001029 WO2013119074A1 (ko) | 2012-02-09 | 2013-02-08 | 신뢰성 있는 ssd를 위한 효율적인 raid 기법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104471546A CN104471546A (zh) | 2015-03-25 |
CN104471546B true CN104471546B (zh) | 2017-06-06 |
Family
ID=49217230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380006059.5A Active CN104471546B (zh) | 2012-02-09 | 2013-02-08 | 用于提高固态硬盘可靠性的有效的磁盘冗余阵列技法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9496051B2 (zh) |
KR (1) | KR101445025B1 (zh) |
CN (1) | CN104471546B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
JP2016057876A (ja) * | 2014-09-10 | 2016-04-21 | 富士通株式会社 | 情報処理装置、入出力制御プログラム、及び入出力制御方法 |
KR102368071B1 (ko) | 2014-12-29 | 2022-02-25 | 삼성전자주식회사 | 레이드 스토리지 시스템에서의 스트라이프 재구성 방법 및 이를 적용한 가비지 컬렉션 동작 방법 및 레이드 스토리지 시스템 |
KR101896148B1 (ko) * | 2015-11-02 | 2018-09-06 | 조진영 | Ssd 메모리로 동작하는 nand 플래시 메모리를 레이드 방식으로 제어하여 입출력 속도를 향상시킨 usb 3.1 메모리장치 |
KR20170078315A (ko) * | 2015-12-29 | 2017-07-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN106960675B (zh) * | 2016-01-08 | 2019-07-05 | 株式会社东芝 | 磁盘装置及写入处理方法 |
KR102572357B1 (ko) | 2016-02-03 | 2023-08-29 | 삼성전자주식회사 | Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
KR102580123B1 (ko) * | 2016-05-03 | 2023-09-20 | 삼성전자주식회사 | Raid 스토리지 장치 및 그것의 관리 방법 |
CN107479824B (zh) * | 2016-06-08 | 2020-03-06 | 宜鼎国际股份有限公司 | 冗余磁盘阵列系统及其数据储存方法 |
KR102573301B1 (ko) * | 2016-07-15 | 2023-08-31 | 삼성전자 주식회사 | Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법 |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
KR102585214B1 (ko) | 2016-09-22 | 2023-10-05 | 삼성전자주식회사 | 가변 소거 유닛 크기를 가지는 스토리지 디바이스 및 이를 포함하는 레이드 스토리지 시스템 |
KR101986579B1 (ko) | 2016-12-14 | 2019-10-01 | 한국과학기술원 | Ssd 배열의 로그 기반 패리티 갱신 시스템 및 방법 그리고 이를 이용한 블록 및 노드 결함 복구 방법 |
US10733105B1 (en) * | 2017-04-17 | 2020-08-04 | EMC IP Holding Company LLC | Method for pipelined read optimization to improve performance of reading data from data cache and storage units |
US10936412B1 (en) | 2017-04-17 | 2021-03-02 | EMC IP Holding Company LLC | Method and system for accessing data stored in data cache with fault tolerance |
US11221958B2 (en) | 2017-08-29 | 2022-01-11 | Samsung Electronics Co., Ltd. | System and method for LBA-based RAID |
US10970204B2 (en) * | 2017-08-29 | 2021-04-06 | Samsung Electronics Co., Ltd. | Reducing read-write interference by adaptive scheduling in NAND flash SSDs |
US10866764B2 (en) | 2018-07-23 | 2020-12-15 | SK Hynix Inc. | Memory system with parity cache scheme and method of operating such memory system |
CN110427279B (zh) * | 2019-07-19 | 2023-02-10 | 深圳忆联信息系统有限公司 | 一种恢复写条带的Raid奇偶校验数据的方法及系统 |
CN112927735A (zh) * | 2019-12-06 | 2021-06-08 | 爱思开海力士有限公司 | 存储器和存储系统 |
KR20210071795A (ko) * | 2019-12-06 | 2021-06-16 | 에스케이하이닉스 주식회사 | 메모리 및 메모리 시스템 |
CN112817533A (zh) * | 2021-01-29 | 2021-05-18 | 深圳忆联信息系统有限公司 | Ssd管理方法、装置计算机设备及存储介质 |
TWI844172B (zh) * | 2022-11-22 | 2024-06-01 | 群聯電子股份有限公司 | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 |
KR20240132611A (ko) | 2023-02-27 | 2024-09-04 | 에스케이하이닉스 주식회사 | 솔리드 스테이트 드라이브를 포함하는 데이터 저장 장치 |
US12050783B1 (en) | 2023-03-23 | 2024-07-30 | Silicon Motion, Inc. | Method and apparatus for performing table management of memory device in predetermined communications architecture with aid of table error correction |
US12050530B1 (en) * | 2023-03-23 | 2024-07-30 | Silicon Motion, Inc. | Method and apparatus for performing table management of memory device in predetermined communications architecture with aid of system-region garbage collection |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790281A (zh) * | 2004-12-14 | 2006-06-21 | 富士通株式会社 | 存贮控制器及存贮控制方法 |
US7941696B2 (en) * | 2009-08-11 | 2011-05-10 | Texas Memory Systems, Inc. | Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6467022B1 (en) | 1998-04-16 | 2002-10-15 | International Business Machines Corporation | Extending adapter memory with solid state disks in JBOD and RAID environments |
US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
JP4440803B2 (ja) * | 2005-03-03 | 2010-03-24 | 富士通株式会社 | 記憶装置、その制御方法及びプログラム |
US8200887B2 (en) | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US20080140724A1 (en) | 2006-12-06 | 2008-06-12 | David Flynn | Apparatus, system, and method for servicing object requests within a storage controller |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
KR101510120B1 (ko) * | 2008-11-21 | 2015-04-10 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
US8719621B1 (en) * | 2010-05-05 | 2014-05-06 | Marvell International Ltd. | Solid-state disk cache assisted redundant array of independent disks |
-
2013
- 2013-02-07 KR KR1020130013954A patent/KR101445025B1/ko active IP Right Grant
- 2013-02-08 CN CN201380006059.5A patent/CN104471546B/zh active Active
- 2013-02-08 US US14/377,159 patent/US9496051B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790281A (zh) * | 2004-12-14 | 2006-06-21 | 富士通株式会社 | 存贮控制器及存贮控制方法 |
US7941696B2 (en) * | 2009-08-11 | 2011-05-10 | Texas Memory Systems, Inc. | Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes |
Non-Patent Citations (1)
Title |
---|
F1ash-Aware RAID Techniques for Dependable and High-Performance F1ash Memory SSD;Soojun IM 等;《IEEE Transations on Computers》;20110131;第60卷(第1期);第80-92页 * |
Also Published As
Publication number | Publication date |
---|---|
US20140380092A1 (en) | 2014-12-25 |
KR20130092482A (ko) | 2013-08-20 |
CN104471546A (zh) | 2015-03-25 |
US9496051B2 (en) | 2016-11-15 |
KR101445025B1 (ko) | 2014-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104471546B (zh) | 用于提高固态硬盘可靠性的有效的磁盘冗余阵列技法 | |
US7281089B2 (en) | System and method for reorganizing data in a raid storage system | |
CN103049222B (zh) | 一种raid5的写io优化处理方法 | |
JP2951676B2 (ja) | 複数の記憶域クラス用のファイルシステム | |
US8839028B1 (en) | Managing data availability in storage systems | |
CN104503706B (zh) | 一种基于磁盘阵列的数据存储及读取方法 | |
US20140379990A1 (en) | Cache node processing | |
CN102799533B (zh) | 一种磁盘损坏扇区屏蔽方法及装置 | |
US20160217040A1 (en) | Raid parity stripe reconstruction | |
CN102520890B (zh) | 基于gpu的rs-draid系统及存储设备数据控制方法 | |
WO2017173623A1 (zh) | 用于处理存储设备中分条的方法和存储设备 | |
US20060112221A1 (en) | Method and Related Apparatus for Data Migration Utilizing Disk Arrays | |
CN103488432B (zh) | 一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法 | |
CN104407813A (zh) | 一种基于固态存储介质的raid系统及方法 | |
US10482009B1 (en) | Use of a logical-to-logical translation map and a logical-to-physical translation map to access a data storage device | |
CN105094685A (zh) | 进行存储控制的方法和设备 | |
CN102150137A (zh) | 用于改善性能的raid卷和驱动器组之间松耦合 | |
JP2013156977A (ja) | 冗長キャッシュデータのエラスティックキャッシュ | |
CN104756066A (zh) | 在源逻辑地址和目标逻辑地址之间建立时间点拷贝关系 | |
CN101609420A (zh) | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
CN106168920A (zh) | 控制包括只读闪速数据存储设备的独立磁盘冗余阵列(raid) | |
CN111858189B (zh) | 对存储盘离线的处理 | |
CN104182176A (zh) | 一种独立磁盘冗余阵列raid5的快速扩容方法 | |
CN103544995A (zh) | 一种坏道修复方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |