WO2015035536A1 - 在基于闪存的存储系统中构建raid的方法及系统 - Google Patents
在基于闪存的存储系统中构建raid的方法及系统 Download PDFInfo
- Publication number
- WO2015035536A1 WO2015035536A1 PCT/CN2013/001074 CN2013001074W WO2015035536A1 WO 2015035536 A1 WO2015035536 A1 WO 2015035536A1 CN 2013001074 W CN2013001074 W CN 2013001074W WO 2015035536 A1 WO2015035536 A1 WO 2015035536A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- raid
- data block
- read
- flash memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 76
- 238000004364 calculation method Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 abstract description 8
- 238000012795 verification Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/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
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Definitions
- the present invention relates to a method of constructing a RAID in a flash-based storage system, and a system to which the method is applied.
- BACKGROUND OF THE INVENTION Data storage technology based on flash memory (NAND Flash) has developed rapidly in the past decade, and has gradually replaced the traditional hard disk drive (HDD) in many applications. The main reasons are: Fast speed: Flash-based data storage is not like traditional HDD relying on mechanical addressing of the head, so that the data read and write speed is essentially improved, meeting the increasingly stringent requirements of the application for data storage throughput.
- Flash requires a matching controller to communicate with the host for data storage.
- the maturity of controller technology has enabled flash-based solid-state storage technology to find applications in more and more areas, including applications in high-end data centers and mobile smart phones.
- the flash controller is the core part of the solid state drive (SSD) system. Its performance and function directly determine the performance and function of the SSD. It is also the most essential difference between consumer SSD and enterprise SSD.
- RAID Redundancy Check Codes Due to data protection requirements, the calculation and writing of Redundancy Check Codes (RAID) is a must for enterprise applications. Due to the high price of flash memory, RAID methods such as mirroring (ie RAID-1) are not acceptable in normal application environments.
- the method usually used in SSD is RAID5, that is, n data blocks generate 1 check block (n>>2). If the data is D0, Dl, ..., Dn, the parity code is D0, Dl, '".
- the present invention will use the data structure of RAID 5 as For example, it should be pointed out that the method and system can also be applied to other RAID structures, such as RAID 6.
- a major feature of flash memory is its non-rewritability: a page of data stored in flash memory must pass through The entire block in which the page resides can be erased before new data can be written. This poses a challenge to the Flash Translation Layer (FTL), but presents an opportunity for RAID, and RAID's additional write amplification no longer exists.
- FTL Flash Translation Layer
- a method for implementing dynamic RAID in an SSD is described in detail in Chinese Patent Application No. 201210256754. 4 "Volatile Memory-Based Dynamic Independent Redundant Array Storage System and Method".
- the RAID5 data structure under SSD is shown in Figure 1.
- Data blocks D0, Dl, D2, and D3 form a RAID data band, and DO, Dl, D2, and D3 are XORed to generate parity code D4.
- D0, Dl, D2, D3 and D4 are stored in different flash units, respectively, in the LUN (logic Unit Number) to ensure that data can be recovered by XOR operation in case of failure of any one flash LUN.
- LUN logic Unit Number
- SSDs there are two main types of SSDs on the market: one is a consumer-oriented SSD that does not usually have a RAID5 function; the other is an enterprise-class SSD that includes a RAID5 function, but its performance is not satisfactory under read-write mixing.
- a massively parallel multi-core multi-thread controller fully tailored for flash control is required to perform independent parallel operation on each flash chip (LUN).
- RAID5 calculation and writing should consider the following factors: The data from the host is out of order, the subsequent instructions may be executed first; the data from the host is interleaved, one data block is not transmitted, another data block The transmission has started and partially arrived in advance; the parity code is written asynchronously: the verification code is not necessarily ready when the flash memory of the verification device needs to be written, and the read/write of the flash memory is controlled when the verification code is ready.
- the processing unit may not be ready; the width of RAID5 (the number of data blocks that make up one RAID data strip, or the number of flash LUNs) is different for different applications; one read/write processing unit may control multiple flash chips, bringing more The possibility of deadlocks increases the difficulty of scheduling.
- the technical problems to be solved by the present invention include: how to reduce the performance cost caused by RAID5 computing to achieve high performance requirements of a storage system such as an SSD; how to reduce the logical area of RAID5 to accommodate a small control unit of a storage system such as an SSD Chemical.
- the present invention provides a method for constructing a RAID 5 in a flash-based storage system, which is capable of implementing a RAID 5 function in a very small logical area and an approximately negligible time, thereby realizing the function and performance of a storage system such as an enterprise-class SSD.
- the method includes: submitting a check code programming instruction to a RAID processor, and reading and writing a single processing by the RAID processor Reading the partial data of the data block in the current data band, setting the data block pointer, corresponding to each flash memory unit, recording the input position of the current data block, and reading the data block portion read and written by the processing unit according to the current data block
- the position of the pointer is used to calculate the parity code, and the result is written back to the parity code buffer, and the data block pointer increases the length value of the input partial data block, after the processing of all the data blocks corresponding to one flash memory unit is completed, that is, the data block When the pointer wraps around to zero, the number of data block processing completions is increased by one.
- the data in the parity code memory is written into the corresponding flash memory.
- the check code buffer is cleared, and the calculation of the next RAID data band is started until the data processing is completed.
- the programming instructions for the check code must be issued before the data programming instructions of the next RAID data strip are submitted after all data programming instructions of the current AID data strip are committed.
- a label is added to each input partial data block, indicating a read/write processing unit that processes the data block, a RAID processor to which the data block is directed, and a RAID data band to which the data block belongs.
- the RAID processor broadcasts a short message to all the read/write processing units to prevent the read/write processing unit from crossing the RAID data band.
- the short message includes the following information:
- the current read and write processing unit reads data of the RAID processor. With the number; whether the current check code of this RAID processor can be read.
- a read/write processing unit can control a plurality of flash memory units. When the read/write processing unit finds that the next operation is temporarily an illegal operation, it switches to another thread and operates on another flash memory unit chip.
- the present invention also provides a flash-based storage system constructed with RAID 5,
- the system comprises: one or more RAID processors and a plurality of flash memory units, wherein the RAID processor comprises a plurality of read and write processing units, a data block pointer unit, a data block counter, a parity code buffer, and a read/write processing unit
- the RAID processor comprises a plurality of read and write processing units, a data block pointer unit, a data block counter, a parity code buffer, and a read/write processing unit
- One or more flash memory units can be controlled, and the programming instructions of the check code are submitted to the RAID processor.
- the command submission can be initiated by the source to the driver of the host, or initiated by the firmware, and the read/write processing unit reads the current data band.
- the data block, the data block pointer unit is configured to record the input position of the current data block for each flash memory, the data block counter is used for counting the number of processed data blocks, and the parity code buffer is used for buffering the parity code.
- the read/write processing unit reads the corresponding partial data block, performs a parity check operation according to the position of the current data pointer and the data in the parity code buffer, and writes the result back to the parity code buffer. After the calculation operation is completed, the data block pointer unit increases the length value of the input data for the data block pointer, and moves the corresponding data block.
- the data block counter is incremented after the data block corresponding to one flash memory unit is processed, that is, when the data block pointer wraps around to zero, when the number of data blocks recorded by the data block counter reaches the number of data blocks included in the RAID data band.
- the RAID processor further includes a RAID short message unit for broadcasting a short message to all the read/write processing units to prevent the read/write processing unit from crossing the RAID data band.
- the short message contains the following information: The data band number currently read by the read/write processing unit allowed by the RAID processor; whether the check code of the current RAID processor can be read.
- a read/write processing unit can control a plurality of flash memory units. When the read/write processing unit finds that the next operation is temporarily an illegal operation, it switches to another thread and operates on another flash memory unit chip. Also, the programming instructions for the checksum must be issued after the data programming instructions of the next RAID data strip are submitted after the data programming instructions of the current RAID data strip are committed.
- the invention schedules the execution order between threads and read and write processing units by lock and message transfer, making calculation and correct writing of RAID5 possible; and using simple rules, the submission and execution of instructions are asynchronous and In the case of out-of-order, the instructions submitted under this rule do not deadlock.
- the invention realizes the dynamic configurable RAID5 width, satisfies the needs of the application, and maximizes the independent autonomy of each read/write processing unit, thereby maximizing performance.
- the present invention has the advantages that: the RAID parity code is generated by XORs of multiple data blocks, and each data block is stored in an independent storage unit; each data block participating in the RAID calculation is divided into at least two parts.
- the RAID processor is input, and part of the data belonging to different data blocks is input into the RAID processor in a time division manner; the RAID processor outputs the parity code after all the data blocks belonging to the RAID group are completed; the data block part is input.
- the position is recorded by the corresponding pointer to the input position to accommodate the interleaved, out-of-order and segmented data input in the RAID group; the data block counter allows the number of data blocks in the adjustable RAID group; the RAID processor adopts the short message broadcast mode scheduling Multiple flash read/write processing units prevent the read/write processing unit from operating across the RAID group; the RAID check code can be output in the data segment of the completed calculation without waiting for all data input of the entire AID group to be output.
- DRAWINGS 1 shows a data structure of RAID 5 under SSD
- FIG. 2 shows an example diagram of data block data out-of-order and interleaved input
- FIG. 3 shows the present invention recording data input position in a RAID processor.
- FIG. 4 is a block diagram showing the structure of a flash-based storage system to which RAID 5 is applied according to the present invention.
- FIG. 5 is a block diagram showing the structure of a flash-based storage system to which a plurality of RAID processors are applied according to the present invention. DETAILED DESCRIPTION OF THE INVENTION Since a plurality of data blocks D0, D1, D2, ...
- each data block will be processed by a corresponding read and write processing unit.
- the input of the data block is allowed to implement interleaving and out-of-order input.
- Figure 2 shows an example case of data block data out of order and interleaved input.
- D0, D1, and D2 represent data blocks in the RAID data band, respectively, and part of the data in the Part0, Part 1, Part 2, ... table data block may be 64 bytes, 1 Kbyte, or any other length of data (less than or Equal to the length of data block D).
- D2 PartO represents the first portion of data of data block D2
- Dl Part2 represents the third portion of data of data block D1.
- RAID5 calculation is to efficiently obtain DO, and the difference of data blocks. Or parity code. It is based on the following facts:
- a read-write processing unit may control multiple flash units to store different blocks of data, but there is no interleaving between blocks within the same processor. Therefore, in order to ensure the correctness of the check code, the data input needs to meet the following conditions in the construction of RAID5:
- RAID data band Data in the same RAID data band can be interleaved, but different RAID data bands must not be interleaved;
- the parity code is calculated as follows: A label is added to each input data block to indicate the read/write processing unit that processes the data block, the RAID processor to which the data block is directed, and the data.
- the data When the data is received, the data is XORed with the data in the check code buffer pointed to by the corresponding data block pointer and written back to the check code buffer, and the data block pointer increases the pointer value according to the input data length.
- the data block pointer value reaches the data block length, it wraps around to zero, which means that the XOR operation of one data block is completed, and the data block processed by the processor is incremented by 1.
- the number of data block processing in the current data band is recorded by the RAID processor, and the check code of the part of the data band that has been calculated is determined according to the number of completed data block processing and the position of each pointer.
- the RAID processor can notify the corresponding read/write processing unit to start to retrieve the check code and write the corresponding flash memory unit.
- the buffer is cleared, the calculation of the next RAID data band is resumed, and a new round of looping begins. Since each RAID processor only needs to reserve a full block size cache (usually 16KB), it can be implemented entirely on-chip SRAM, thus avoiding the use of off-chip DRAM and simplifying the design.
- the RAID processor broadcasts a short message to all read and write processing units to prevent the read and write processing unit from crossing the RAID data band.
- the short message contains the following information: The data band number currently read by the read/write processing unit allowed by the RAID processor; whether the current check code of the RAID processor can be read.
- a read/write processing unit can control one or more flash units (LUNs) when the read/write processing unit finds that the next operation is temporarily illegal (for example, corresponding to the next one)
- LUNs flash units
- the data in the RAID data band is written), it switches to another thread and operates on another flash cell chip. This way the thread in which the faster flash chip is written will transfer the resource to the slower thread, making the progress of each thread roughly equal.
- the purpose of the method of the present invention is achieved by minimizing the probability of illegitimate operation so that each read-write processing unit can approach full-load operation, with the measure being as early as possible at the point in time at which the check code begins to be read. Since the read/write processing unit of the corresponding verification device is usually idle, usually the reading of the verification code is completed in a short time after the last data block is processed, and the entire system can write the next data band. This shortens the window where data cannot be transferred. In addition, since the programming time of the flash chip is several times longer than the data transfer time, and two RAID 5 write points can be operated simultaneously in the system, even if one is temporarily disabled, the other can still operate, and therefore, by calculation, RAID 5 is caused.
- the performance loss caused by the synchronization effect is within 5% in various environments. If a read/write processing unit cannot perform the next step (such as the next step is an illegal operation), it must wait for another processing unit, and so on, forming a loop, which will form a deadlock. Deadlocks must be strictly avoided. Deadlocks are caused by incorrect instruction execution order, and the order of execution of instructions is different from the order in which instructions are issued. Since out-of-order execution in this scheme exists only between different threads and is executed strictly in the same thread, the software can only avoid deadlocks by simply following the following simple rules:
- the check code programming instruction must be issued after all data programming instructions in the current RAID data band, before all data programming instructions in the next RAID data band.
- 4 shows a flash-based storage system constructed using the above method, comprising: a RAID processor and a plurality of flash memories, wherein the RAID processor includes a plurality of read/write processing units, a RAID short message unit, and a data block pointer unit.
- a block counter, a parity buffer, and a read/write processing unit can control one or more flash units (LUNs).
- the programming instructions of the check code are submitted to the RAID processor, and the command submission may be initiated by the source to the driver of the host or by firmware.
- the read/write processing unit executes its corresponding instruction and follows the rules of the RAID controller short message during execution.
- the read/write processing unit reads the data block in the current data band, and can start reading the data of the next RAID data band only after the check code of the current data band is taken by the processor of the verification device.
- the data block pointer unit is used to record the input position of the current data block for each flash memory, respectively.
- the data block counter is used to count the number of data blocks processed in one flash memory.
- the parity code buffer is used to buffer the parity code.
- the RAID short message unit is used to broadcast a short message to all read/write processing units to prevent the read/write processing unit from crossing the RAID data band.
- the short message contains the following information: The data band number currently read by the read/write processing unit allowed by the RAID processor; whether the current check code of the RAID processor can be read.
- the read/write processing unit reads the corresponding data block, performs an exclusive OR operation on the data in the parity code buffer according to the position of the current data pointer, and writes the data to the parity code buffer. When the exclusive OR operation is completed, the data block pointer unit increases the length value of the input data and moves the corresponding data block pointer.
- the data block counter is incremented after the data block corresponding to one flash LUN is processed, that is, when the data block pointer wraps around to zero.
- the data block counter reaches the sum of the data blocks contained in the RAID data band, the data in the parity code memory is written to the corresponding flash memory unit.
- the RAID processor begins the calculation of the next RAID data strip until the data is processed.
- this architecture can be extended to multiple RAID processor applications, as shown in Figure 5.
- the advantages are: Multiple RAID processors operate completely independently; RAID is correctly calculated and written in a write sequence without central control; performance loss caused by RAID is close to zero; RAID width can be flexibly configured.
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/021,993 US9720770B2 (en) | 2013-09-16 | 2013-09-16 | Method for calculating raids parity code on interleaving and out of order data streams, and a system using the same |
CN201380079608.1A CN105556480B (zh) | 2013-09-16 | 2013-09-16 | 在基于闪存的存储系统中构建raid的方法及系统 |
PCT/CN2013/001074 WO2015035536A1 (zh) | 2013-09-16 | 2013-09-16 | 在基于闪存的存储系统中构建raid的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/001074 WO2015035536A1 (zh) | 2013-09-16 | 2013-09-16 | 在基于闪存的存储系统中构建raid的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015035536A1 true WO2015035536A1 (zh) | 2015-03-19 |
Family
ID=52664899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2013/001074 WO2015035536A1 (zh) | 2013-09-16 | 2013-09-16 | 在基于闪存的存储系统中构建raid的方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9720770B2 (zh) |
CN (1) | CN105556480B (zh) |
WO (1) | WO2015035536A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148523A (zh) * | 2020-09-11 | 2020-12-29 | 武汉华中数控股份有限公司 | 嵌入式系统中数据文件的校验方法及设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI661307B (zh) * | 2017-12-06 | 2019-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置、主機裝置、以及資料寫入方法 |
CN108647110A (zh) * | 2018-03-30 | 2018-10-12 | 深圳忆联信息系统有限公司 | 一种增强型raid保护方法及ssd |
US10866764B2 (en) | 2018-07-23 | 2020-12-15 | SK Hynix Inc. | Memory system with parity cache scheme and method of operating such memory system |
CN109240604B (zh) * | 2018-08-16 | 2021-06-11 | 郑州云海信息技术有限公司 | 基于raid5的固态硬盘中用户数据的写入方法、系统 |
CN111007984A (zh) * | 2019-10-22 | 2020-04-14 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于fpga的raid5存储系统及实现方法 |
CN114625307A (zh) | 2020-12-14 | 2022-06-14 | 慧荣科技股份有限公司 | 计算机可读存储介质、闪存芯片的数据读取方法及装置 |
TWI747660B (zh) * | 2020-12-14 | 2021-11-21 | 慧榮科技股份有限公司 | 多閃存晶片的資料讀取方法及裝置以及電腦程式產品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542960B1 (en) * | 1999-12-16 | 2003-04-01 | Adaptec, Inc. | System and method for parity caching based on stripe locking in raid data storage |
CN102023809A (zh) * | 2009-09-21 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 存储系统、从存储系统读取数据的方法及写入数据的方法 |
CN102023815A (zh) * | 2009-09-15 | 2011-04-20 | 格雷戈里·伯德 | 在固态存储器中实现raid |
US20120131265A1 (en) * | 2010-11-23 | 2012-05-24 | International Business Machines Corporation | Write cache structure in a storage system |
CN102915212A (zh) * | 2012-09-19 | 2013-02-06 | 记忆科技(深圳)有限公司 | 一种固态硬盘的raid实现方法、固态硬盘及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889795A (en) * | 1995-04-21 | 1999-03-30 | International Business Machines Corporation | Disk array system and method for storing data |
US5974503A (en) * | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
US6230200B1 (en) * | 1997-09-08 | 2001-05-08 | Emc Corporation | Dynamic modeling for resource allocation in a file server |
US6625750B1 (en) * | 1999-11-16 | 2003-09-23 | Emc Corporation | Hardware and software failover services for a file server |
WO2008151516A1 (fr) * | 2007-06-08 | 2008-12-18 | Datang Mobile Communications Equipment Co., Ltd | Procédé, équipement et système pour codage et décodage ldpc |
US8988800B1 (en) | 2009-09-15 | 2015-03-24 | Marvell International Ltd. | Error correction for storage devices |
JP5388976B2 (ja) * | 2010-09-22 | 2014-01-15 | 株式会社東芝 | 半導体記憶制御装置 |
-
2013
- 2013-09-16 WO PCT/CN2013/001074 patent/WO2015035536A1/zh active Application Filing
- 2013-09-16 CN CN201380079608.1A patent/CN105556480B/zh active Active
- 2013-09-16 US US15/021,993 patent/US9720770B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542960B1 (en) * | 1999-12-16 | 2003-04-01 | Adaptec, Inc. | System and method for parity caching based on stripe locking in raid data storage |
CN102023815A (zh) * | 2009-09-15 | 2011-04-20 | 格雷戈里·伯德 | 在固态存储器中实现raid |
CN102023809A (zh) * | 2009-09-21 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 存储系统、从存储系统读取数据的方法及写入数据的方法 |
US20120131265A1 (en) * | 2010-11-23 | 2012-05-24 | International Business Machines Corporation | Write cache structure in a storage system |
CN102915212A (zh) * | 2012-09-19 | 2013-02-06 | 记忆科技(深圳)有限公司 | 一种固态硬盘的raid实现方法、固态硬盘及电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148523A (zh) * | 2020-09-11 | 2020-12-29 | 武汉华中数控股份有限公司 | 嵌入式系统中数据文件的校验方法及设备 |
CN112148523B (zh) * | 2020-09-11 | 2023-10-31 | 武汉华中数控股份有限公司 | 嵌入式系统中数据文件的校验方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105556480A (zh) | 2016-05-04 |
US20160224420A1 (en) | 2016-08-04 |
US9720770B2 (en) | 2017-08-01 |
CN105556480B (zh) | 2017-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015035536A1 (zh) | 在基于闪存的存储系统中构建raid的方法及系统 | |
US8493797B2 (en) | Memory system and method having volatile and non-volatile memory devices at same hierarchical level | |
JP5032027B2 (ja) | 半導体ディスク制御装置 | |
US9229655B2 (en) | Controller and method for performing background operations | |
US7984325B2 (en) | Storage control device, data recovery device, and storage system | |
US8977833B2 (en) | Memory system | |
US20200127685A1 (en) | Systems and methods for a hybrid non-volatile storage system | |
JP5759623B2 (ja) | メモリシステムコントローラを含む装置および関連する方法 | |
KR102094334B1 (ko) | 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법 | |
TWI494849B (zh) | 韌體碼載入方法、記憶體控制器與記憶體儲存裝置 | |
EP2438521B1 (en) | Object oriented memory in solid state devices | |
US20110296084A1 (en) | Data storage apparatus and method of writing data | |
US20120047318A1 (en) | Semiconductor storage device and method of throttling performance of the same | |
TWI703499B (zh) | 資料儲存裝置及其共享控制器中記憶體的方法 | |
US20130304970A1 (en) | Systems and methods for providing high performance redundant array of independent disks in a solid-state device | |
US11775389B2 (en) | Deferred error-correction parity calculations | |
TWI802324B (zh) | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 | |
JP2012155541A (ja) | データ記憶装置、メモリ制御装置及びメモリ制御方法 | |
US20240134747A1 (en) | Apparatus and method for distributing and storing write data in plural memory regions | |
EP4375839A1 (en) | Method of operating storage device using program suspension control and storage device performing the same | |
US20230333783A1 (en) | Dynamic rain for zoned storage systems | |
TW202314526A (zh) | 支持交織操作的記憶體裝置和記憶體系統及其操作方法 | |
WO2023027787A1 (en) | Access request management using sub-commands | |
TW202321926A (zh) | 儲存裝置及其操作方法、以及控制器的操作方法 | |
Galbraith et al. | Highly automated hardware and firmware RAID SoC design optimized for memory class storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 201380079608.1 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13893242 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15021993 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13893242 Country of ref document: EP Kind code of ref document: A1 |