WO2014011011A1 - 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
WO2014011011A1
WO2014011011A1 PCT/KR2013/006323 KR2013006323W WO2014011011A1 WO 2014011011 A1 WO2014011011 A1 WO 2014011011A1 KR 2013006323 W KR2013006323 W KR 2013006323W WO 2014011011 A1 WO2014011011 A1 WO 2014011011A1
Authority
WO
WIPO (PCT)
Prior art keywords
sequence information
memory
solid state
memory cell
state drive
Prior art date
Application number
PCT/KR2013/006323
Other languages
English (en)
French (fr)
Inventor
서정민
이주평
Original Assignee
삼성전자(주)
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 삼성전자(주) filed Critical 삼성전자(주)
Priority to CN201380047774.3A priority Critical patent/CN104641419A/zh
Priority to US14/413,598 priority patent/US20150160999A1/en
Publication of WO2014011011A1 publication Critical patent/WO2014011011A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Definitions

  • the present invention relates to a solid state drive controller, a solid state drive, a data processing method of a solid state drive, a multichannel solid state drive, a RAID controller, and a computer readable recording medium recording a computer program for providing sequence information to the solid state drive.
  • a computer readable recording medium having recorded thereon a computer program for providing information to a solid state drive.
  • SSDs Solid state drives or solid-state drives (SSDs) are storage devices made using nonvolatile flash memory. Due to the characteristics of flash memory, in order to write new data, the existing data is deleted and then rewritten (in-place overwrite). Therefore, when the maximum number of erase of the flash memory is reached, it can no longer be used. .
  • SSDs use a variety of flash memories, such as single-level cell (SLC) SSDs, multi-level cells (MLC), triple-level cells (TLC), or a combination thereof.
  • SLC single-level cell
  • MLC multi-level cells
  • TLC triple-level cells
  • the average lifetime is about 100,000 times
  • the MLC is about 10,000 times
  • the TLC is worn out after about 1,000 erase operations are performed.
  • Flash Translation Layer performs address mapping, garbage collection and wear-leveling.
  • a plurality of SSDs may be used to configure Redundant Array of Independent Disks (RAID).
  • RAID can be used to enable parallel access to stored data, or to improve the ability to prepare for failures due to increased Mean Time Between Failure (MTBF).
  • MTBF Mean Time Between Failure
  • RAID There are several types of RAID, including parity bits, for example RAID 5 and RAID 6.
  • RAID 5 stripes and stores data across multiple disks, and also distributes and stores parity bits, which are exclusive-OR operations on the striped data. This parity bit is used to recover data stored by a failed disk in the event of a disk failure.
  • RAID 6 provides improved fault tolerance over RAID 5 by storing additional secondary parity for data.
  • parity block is updated on average more often by the number of updates of the data block (total number of disks minus one).
  • parity blocks are updated more frequently than data blocks.
  • RAIDs store parity blocks in high-durability memory and data blocks in low-durability memory, which simultaneously improves storage efficiency and lifespan by storing the parity and data delivered from RAID controllers in a single RAID group in the appropriate type of memory.
  • a solid state drive controller may include: an interface unit configured to receive RAID-based data including parity blocks and data stripe blocks; And a memory controller configured to store the parity blocks in at least one first memory cell array and the data stripe blocks in at least one second memory cell array that is less durable than the first memory cell array.
  • a solid state drive may include an interface unit configured to receive RAID-based data including parity blocks and data stripe blocks; A memory unit including at least one first memory cell array and at least one second memory cell array that is less durable than the first memory cell array; And a memory controller configured to control the memory unit to store the parity blocks in the first memory cell array and the data stripe blocks in the second memory cell array. It includes.
  • a method of processing data of a solid state drive may include: recognizing sequence information about RAID-based data including parity blocks and data stripe blocks; Based on the sequence information, when the block in which the new write request is received is a parity block, the block in which the new write request is received is stored in a high durability memory cell, and in the case of not the parity block, it is stored in a low durability memory cell. And controlling the memory.
  • a method of processing data of a solid state drive may include generating sequence information about RAID-based data including parity blocks and data stripe blocks; Based on the sequence information, when the block in which the new write request is received is a parity block, the block in which the new write request is received is stored in a high durability memory cell, and in the case of not the parity block, it is stored in a low durability memory cell. And controlling the memory.
  • a multichannel solid state drive includes: an interface unit configured to receive RAID-based data including parity blocks and data stripe blocks; A memory unit including a plurality of memory channels including at least one first memory cell array for each memory channel and at least one second memory cell array that is less durable than the first memory cell array; And a memory controller configured to control the memory unit to store the parity blocks in the first memory cell array and the data stripe blocks in the second memory cell array. It includes.
  • a RAID controller may include: a solid state drive, recognizing sequence information regarding RAID-based data including parity blocks and data stripe blocks, and based on the sequence information, a block in which a new write request is received.
  • the sequence information is processed to process the RAID-based data by controlling the memory such that the block in which the new write request is received is stored in a high durability memory cell, and in the case of not a parity block, the memory is stored in a low durability memory cell.
  • a computer-readable recording medium having recorded thereon a computer program includes a sequence of RAID-based data in which a solid state drive connected through an I / O subsystem of a host system includes parity blocks and data stripe blocks. Recognizing the information and based on the sequence information, if the block in which the new write request is received is a parity block, the block in which the new write request is received is stored in a high durability memory cell, and if it is not a parity block, The sequence information is provided to the solid state drive to process the RAID based data by controlling the memory to be stored in a memory cell.
  • FIG. 1 is a block diagram illustrating an example of a solid state drive according to an embodiment and a connection relationship with a peripheral device thereof.
  • FIG. 2 is a block diagram illustrating an example of the solid state drive of FIG. 1 in more detail.
  • FIG. 3 is a flowchart illustrating an example of a data processing method of the solid state drive of FIG. 2.
  • 4A-4B are block diagrams illustrating another embodiment of the solid state drive of FIG. 1.
  • 5A-5C are block diagrams illustrating still other embodiments of the solid state drive of FIG. 1.
  • 6A is a flowchart illustrating an example of a data processing method of the solid state drive of FIG. 5A.
  • 6B is a flowchart illustrating an example of a data processing method of the solid state drive of FIG. 5B.
  • 6C is a flowchart illustrating an example of a data processing method of the solid state drive of FIG. 5C.
  • FIG. 7 is a block diagram illustrating an example of a multichannel solid state drive according to another aspect.
  • FIG. 1 is a block diagram illustrating an example of a solid state drive according to an embodiment and a connection relationship with a peripheral device thereof.
  • the solid state drive illustrated in FIG. 1 operates with each disk constituting a RAID-based storage system including distributed parity.
  • the solid state drive of FIG. 1 is assumed to be each disk in a RAID 5 level based left symmetric storage system consisting of four disks. That is, "Disk #n" becomes “Disk # 4".
  • Each solid state drive 1 includes an interface unit 10, a memory unit, and a memory control unit.
  • the interface unit 10 is connected to the I / O subsystem of the host system via the RAID controller 4.
  • the memory unit 2 includes two memory cell arrays having different durability. That is, the memory unit 30 of FIG. 1 includes a high durability memory unit 300 and a low durability memory unit 310.
  • the high durability memory unit 300 is a channel composed of a plurality of single level cell (SLC) memory cell arrays
  • the low durability memory unit 310 is a plurality of MLC memory arrays. It is a channel.
  • the memory control unit 20 transmits the parity blocks to the high durability memory unit 300.
  • the stripe blocks control the memory unit 30 to be stored in the low durability memory unit 310, respectively.
  • the solid state drive 1 operates with four disks that constitute a RAID-based storage system with distributed parity, data stripe blocks and data according to certain rules from the host system 3 or the RAID controller 4. Parity blocks will be received to ensure the integrity of the. Since the embodiment of FIG. 1 relates to a RAID 5 level based RAID storage system consisting of four disks (solid state drive 1), the RAID controller (or the I / O subsystem of the host system) stores one unit of data. It is divided into three data stripes and one parity and sent to the solid state drives.
  • the solid state drive 1 If the solid state drive 1 receives the data stripe block from the RAID controller 4 and receives a new write request, the solid state drive 1 stores the data stripe block in the low durability memory unit 310 and stores the parity block. When receiving a new write request, the parity block is stored in the high durability memory unit 300.
  • FIG. 2 is a block diagram illustrating an example of the solid state drive of FIG. 1 in more detail.
  • the solid state drive illustrated in FIG. 2 is an exemplary embodiment in which the order information of blocks is explicitly or implicitly transmitted through the interface unit 10.
  • the memory controller 2 further includes a sequence information recognizer 210, a sequence information storage 220, and a flash translation layer (FTL) unit 200.
  • sequence information recognizer 210 a sequence information storage 220
  • FTL flash translation layer
  • the sequence information recognizer 1 recognizes sequence information indicating the order of parity blocks and data stripe blocks from the I / O subsystem or the RAID controller 4 of the host system 3 through the interface unit 10.
  • sequence information may be given explicitly or implicitly.
  • an indicator indicating whether the block is a data stripe block or a parity block may be further provided to the solid state drive 1 as sequence information.
  • Table 1 is a table showing an example in the case where sequence information is explicitly given.
  • D means a data stripe block
  • P means a parity block.
  • a rule in which blocks are received through the interface unit may further be provided to the solid state drive 1 as sequence information.
  • [Table 2] is a table showing an example in the case where sequence information is implicitly provided.
  • the rule illustrated in Table 2, that is, sequence information, consists of three parameters.
  • the first parameter indicates how many blocks are the first parity blocks
  • the second parameter indicates how long the next parity block is received
  • the third parameter indicates the characteristics of the raid.
  • the first block received by the disk (Disk # 1) is a parity block, every fourth block is a parity block (ie, the rest is a data stripe block), and the characteristics of the RAID are left symmetrical. It can be seen that the raid 5 level.
  • the sequence information storage unit 220 stores sequence information recognized by the sequence information recognizing unit 210 explicitly or implicitly.
  • the FTL unit 200 When the FTL unit 200 receives a new write request for the received blocks based on the sequence information stored in the sequence information storage unit 220, when the received block is a parity block, the high durability memory unit 300 is provided. If the received block is a data stripe block, it is stored in the low durability memory unit 310, respectively.
  • the FTL unit 200 further performs logical block address mapping and load control on the received block.
  • the general purpose RAID controller can be used without change.
  • FIG. 3 is a flowchart illustrating an example of a data processing method of the solid state drive of FIG. 2.
  • the data processing method of the solid state drive includes a sequence information storing step S10 and a data processing step S20.
  • sequence information about blocks to be processed is recognized and stored.
  • the interface unit 10 receives sequence information from the I / O subsystem or the RAID controller 4 of the host system 3 (S100). As described with reference to FIG. 2, the sequence information may be provided explicitly or implicitly.
  • sequence information recognizing unit 210 recognizes the sequence information provided explicitly or implicitly (S110).
  • the sequence information recognized by the sequence information recognizing unit 210 is stored in the sequence information storage unit 220 (S120).
  • processing related to the received blocks is performed based on the sequence information.
  • the FTL unit 1 determines the characteristics of the block by referring to the sequence information stored in the sequence information storage unit 220 (S210).
  • the FTL unit 200 stores the block in the high durability memory (S220). If the block in which the new " write " request is received is not a parity block (ie, a data stripe block), the FTL unit 200 stores the block in the low endurance memory (S230).
  • 4A-4B are block diagrams illustrating another embodiment of the solid state drive of FIG. 1.
  • the sequence information storage unit 220 exists in the memory controller. However, in some embodiments, the sequence information may be stored in the memory unit.
  • the solid state drive 4a illustrated in FIG. 4A includes a sequence information storage unit 221 as part of the highly durable memory unit 300.
  • the solid state drive 4b illustrated in FIG. 4B includes a sequence information storage unit 222 as part of the low durability memory unit 310.
  • the solid state drive 4a of FIG. 4A and the solid state drive 4b of FIG. 4B differ only in the location of the sequence information storage, and basically operate in the same manner as the solid state drive 2 of FIG.
  • components having the same reference numerals perform the same functions.
  • 5A-5C are block diagrams illustrating still other embodiments of the solid state drive of FIG. 1.
  • the solid state drive 2 of FIG. 2 processes data based on the sequence information provided explicitly or implicitly from the I / O subsystem or the RAID controller 4 of the host system 3.
  • the sequence information generators 213 and 214 of the memory controllers 23 and 24 directly sequence. Generate information.
  • the sequence information generators 213 and 214 may generate sequence information based on a pattern of access attempted by the RAID controller for a predetermined period of time.
  • the sequence information generator 213 or 214 may generate sequence information regarding a rule in which parity blocks are stored in the frequently updated blocks based on the pattern. .
  • the sequence information generation unit 213 may store the generated sequence information in the sequence information storage unit 223 so that the FTL unit 203 may refer to it.
  • the FTL unit 204 may refer to the sequence information generated by the sequence information generator 214 in real time.
  • the sequence information storage may be omitted.
  • the solid state drive 5c may store sequence information suitable for the current RAID characteristic in the sequence information storage unit 215 in advance.
  • the sequence information generation unit may be omitted.
  • 6A to 6C are flowcharts illustrating an example of a data processing method of the solid state drive of FIGS. 5A to 5C.
  • 6A is a flowchart illustrating an example of a data processing method of the solid state drive of FIG. 5A.
  • the data processing method of the solid state drive of FIG. 5A includes a sequence information generating step S11 and a data processing step S21.
  • sequence information about blocks to be processed is generated and stored.
  • the sequence information generation unit generates sequence information based on a pattern of access attempted by the RAID controller for a predetermined period of time (S111).
  • sequence information recognized by the sequence information recognizing unit is stored in the sequence information storage unit (S121).
  • a process relating to the received blocks is performed based on the sequence information generated by the sequence information generator.
  • the FTL unit determines the characteristic of the block by referring to the sequence information stored in the sequence information storage unit S (S211).
  • the FTL unit stores the block in the high durability memory (S221). If the block in which the new "write” request is received is not a parity block (ie, a data stripe block), the FTL unit stores the block in the low durability memory (S231).
  • 6B is a flowchart illustrating an example of a data processing method of the solid state drive of FIG. 5B.
  • the data processing method of the solid state drive of FIG. 5B includes a new write request reception step S12, a sequence information generation step S22, and a data processing step S23.
  • the FTL unit requests generation of sequence information for blocks to be currently processed to the sequence information generation unit (S12).
  • the sequence information generator In the sequence information generation step, the sequence information generator generates sequence information on blocks to be currently processed, based on a pattern of access attempted by the RAID controller for a predetermined period of time (S22).
  • the FTL unit determines the characteristics of the block to be currently processed based on the sequence information generated by the sequence information generator.
  • the FTL unit stores the block in the high durability memory (S222). If the block in which the new "write” request is received is not a parity block (ie, a data stripe block), the FTL unit stores the block in the low endurance memory (S232).
  • the data processing method of the solid state drive of FIG. 5C includes a new write request receiving step S13 and a data processing step S23.
  • the FTL unit determines a characteristic of a block to be currently processed based on the sequence information stored in the sequence information storage unit (S213).
  • the FTL unit stores the block in the high durability memory (S223). If the block in which the new "write" request is received is not a parity block (ie, a data stripe block), the FTL unit stores the block in the low durability memory (S233).
  • FIG. 7 is a block diagram illustrating an example of a multichannel solid state drive according to another aspect.
  • the biggest feature of the multi-channel solid state drive 7 of FIG. 7 is an internal RAID controller capable of managing data and memory in the memory section of several channels based on a RAID algorithm having its own distributed parity within the drive. Is the point.
  • the multi-channel solid state drive 7 of FIG. 7 includes an interface unit 10, a memory control unit 26, and multi-channel memory units 40, 42, 44, and 46.
  • 42, 44 and 46 include a high durability memory unit 400 and a low durability memory unit 402 for each channel.
  • the solid state drive 7 illustrated in FIG. 7 is an exemplary embodiment in which the order information of blocks is explicitly or implicitly transmitted through the interface unit 10.
  • the memory controller 26 may include a sequence information recognizer 215, a sequence information storage 225, an internal RAID control unit 236, and a flash translation layer (FTL) unit ( 205).
  • a sequence information recognizer 215 a sequence information storage 225
  • an internal RAID control unit 236 a flash translation layer (FTL) unit ( 205).
  • FTL flash translation layer
  • the sequence information recognizing unit 215 recognizes "external" sequence information indicating the order of parity blocks and data stripe blocks from the I / O subsystem of the host system or an external RAID controller through the interface unit 10.
  • the external sequence information may be given explicitly or implicitly.
  • the sequence information storage unit 225 stores external sequence information recognized by the sequence information recognition unit 215, either explicitly or implicitly.
  • the internal RAID control unit 236 uses the FTL unit 205 to display internal sequence information indicating a channel in which a data stripe block and a parity block to be processed are stored, based on an algorithm according to the level of the level employed by the multi-channel solid state drive 7. To provide. Internal sequence information may also be stored in the sequence information storage unit 225 together with external sequence information.
  • the FTL unit 205 When the FTL unit 205 receives a new write request for the received blocks based on the external sequence information and the internal sequence information stored in the sequence information storage unit 225, the received block is parity for the appropriate memory channel.
  • the memory In the case of a block, the memory is stored in the high durability memory unit (eg, 400) of the memory channel, and when the received block is a data stripe block, the low endurance memory (eg, 402) of the memory channel.
  • the FTL unit 205 further performs logical block address mapping and load control on the received block.
  • the size of the storage area of the memory unit can be adjusted in consideration of the durability of the two types of memory cells and the I / O patterns.
  • the storage area of the high durability memory cell is larger than the storage area of the parity block required at the RAID level (for example, the RAID 5 level)
  • the area of the high durability memory unit in which the parity block can be stored remains while the data stripe block is stored.
  • the area of low-durability memory that can be made is short.
  • some data stored in the low durability memory unit may be moved and stored in the high durability memory unit.
  • the storage area of the low endurance memory cell is larger than the storage area of the data stripe block required at the RAID level (for example, the RAID 5 level), the area of the high endurance memory unit in which the parity block can be stored is insufficient while the data stripe block The area of the low durability memory portion which can be stored remains.
  • some parity blocks stored in the high durability memory unit may be moved and stored in the high durability memory unit.
  • the high durability memory and the low durability memory constituting the memory unit may use not only NAND flash memory cells but also other nonvolatile memory cells or volatile memory cells without departing from the spirit of the invention.
  • inventions of the present invention may be implemented in computer readable codes on a computer readable recording medium.
  • the computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored.
  • Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like, which may also be implemented in the form of carrier waves (for example, transmission over the Internet). Include.
  • the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
  • functional programs, codes and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.

Abstract

고내구성 메모리에 패리티 블록을, 저내구성 메모리에 데이터 블록을 저장하는 RAID로 구성되는 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 개시된다.

Description

솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관련된다. 특히, 고내구성 메모리에 패리티 블록을, 저내구성 메모리에 데이터 블록을 저장하는 RAID로 구성되는 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관련된다.
반도체 드라이브 또는 솔리드 스테이트 드라이브(SSD: Solid-state Drive) 는 비휘발성 플래시 메모리를 사용하여 만들어진 저장장치를 말한다. 플래시 메모리의 특성 상, 신규 데이터를 기록하기 위해서는 기존에 기록된 데이터를 삭제한 후 재기록하는 방법(in-place overwrite)이 사용되므로, 그 플래시 메모리의 최대 삭제 회수에 도달하면 더 이상 사용할 수 없게 된다.
SSD에는 싱글 레벨 셀(SLC: Single Level Cell) SSD, 멀티 레벨 셀(MLC: Multi-Level Cell), 트리플 레벨 셀(TLC: Triple Level Cell) 또는 이들의 조합 등 다양한 플래시 메모리가 사용된다.
SSD는 NAND 셀 메모리 어레이로 이루어지는 특성 상, In-place 업데이트를 하기 위해서는 쓰기(write) 연산 전에 삭제(delete) 연산이 필요하다.
그런데, SLC의 경우, 평균 약 10만 회, MLC는 약 1만 회, TLC는 약 1천 회의 삭제 연산이 수행된 이후에는 수명을 다하게 된다(wear-out).
SSD의 이러한 제한된 수명을 연장시키기 위하여, FTL(Flash Translation Layer)이라는 복잡한 프로세싱 로직 소프트웨어가 어드레스 매핑, 가비지 수집 및 부하 조절(wear-leveling)을 수행한다.
한편, 복수의 SSD를 이용하여 복수 배열 독립 디스크(RAID: Redundant Array of Independent Disks)를 구성할 수 있다. RAID를 구성하면, 저장된 데이터에 병렬적인 접근을 가능케 하거나, MTBF(Mean Time Between Failure)의 증가에 힘입어 고장에 대비하는 능력을 향상시키는 등의 효과가 있다.
RAID에는 여러 유형이 있으며, 그 중에서 패리티 비트(parity bit)를 포함하는 유형으로서 예컨대 RAID 5 및 RAID 6이 있다.
RAID 5는 데이터를 스트라이핑하여 여러 디스크에 분산 저장함과 함께, 스트라이핑된 데이터들을 배타적 논리합(XOR) 연산한 패리티 비트(parity bit)도 분산 저장한다. 이 패리티 비트는, 디스크 고장이 발생한 경우, 고장난 디스크가 저장한 데이터를 복구하는 데에 사용된다.
RAID 6은 데이터에 대한 2차 패리티를 추가 저장함으로써 RAID 5보다 향상된 고장 대비 능력을 제공한다.
그런데, 패리티 비트를 포함하는 RAID에서, 데이터와 패리티는 서로 다른 액세스 패턴을 생성한다. 즉, 각 디스크가 저장한 데이터 영역이 업데이트될 때마다, 해당 데이터에 매칭되는 패리티 영역이 함께 업데이트된다.
예컨대, RAID 5에서 데이터가 처음 기록된 후 한 번씩만 업데이트된다고 가정하더라도, 패리티 블록은 평균적으로 데이터 블록의 업데이트 회수(총 디스크 개수 - 1)만큼 더 자주 업데이트된다. RAID 6의 경우에도 데이터 블록보다 패리티 블록이 더욱 빈번히 업데이트된다.
따라서, 패리티 비트를 포함하는 RAID로 구성되는 SSD 스토리지 시스템에서는, SSD의 패리티 블록의 잦은 업데이트로 인하여 SSD의 수명이 단축되는 문제가 발생한다.
하나의 RAID 그룹 내에서 RAID 콘트롤러로부터 전달되는 패리티와 데이터를 적합한 유형의 메모리에 저장함으로써 저장효율과 수명을 동시에 향상시키는 고내구성 메모리에 패리티 블록을, 저내구성 메모리에 데이터 블록을 저장하는 RAID로 구성되는 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 것을 목적으로 한다.
일측면에 따른 솔리드 스테이트 드라이브 콘트롤러는, 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터를 수신하는 인터페이스부; 및 적어도 하나의 제1 메모리 셀 어레이에는 상기 패리티 블록들을, 상기 제1 메모리 셀 어레이보다 내구성이 높지 않은 적어도 하나의 제2 메모리 셀 어레이에는 상기 데이터 스트라이프 블록들을, 각각 저장하는 메모리 제어부;를 포함한다.
다른 측면에 따른 솔리드 스테이트 드라이브는, 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터를 수신하는 인터페이스부; 적어도 하나의 제1 메모리 셀 어레이 및 상기 제1 메모리 셀 어레이보다 내구성이 높지 않은 적어도 하나의 제2 메모리 셀 어레이를 포함하는 메모리부; 및 상기 제1 메모리 셀 어레이에는 상기 패리티 블록들이, 상기 제2 메모리 셀 어레이에는 상기 데이터 스트라이프 블록들이, 각각 저장되도록 상기 메모리부를 제어하는 메모리 제어부; 를 포함한다.
또 다른 측면에 따른 솔리드 스테이트 드라이브의 데이터 처리 방법은, 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터에 관한 시퀀스 정보를 인식하는 단계; 상기 시퀀스 정보를 기초로, 신규 쓰기 요청이 수신된 블록이 패리티 블록인 경우, 상기 신규 쓰기 요청이 수신된 블록이 고내구성 메모리셀에 저장되고, 패리티 블록이 아닌 경우, 저내구성 메모리셀에 저장되도록 메모리를 제어하는 단계;를 포함한다.
또 다른 측면에 따른 솔리드 스테이트 드라이브의 데이터 처리 방법은, 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터에 관한 시퀀스 정보를 생성하는 단계; 상기 시퀀스 정보를 기초로, 신규 쓰기 요청이 수신된 블록이 패리티 블록인 경우, 상기 신규 쓰기 요청이 수신된 블록이 고내구성 메모리셀에 저장되고, 패리티 블록이 아닌 경우, 저내구성 메모리셀에 저장되도록 메모리를 제어하는 단계;를 포함한다.
또 다른 측면에 따른 다채널 솔리드 스테이트 드라이브는, 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터를 수신하는 인터페이스부; 메모리 채널마다 적어도 하나의 제1 메모리 셀 어레이 및 상기 제1 메모리 셀 어레이보다 내구성이 높지 않은 적어도 하나의 제2 메모리 셀 어레이를 포함하는 다수의 메모리 채널을 포함하는 메모리부; 및 상기 제1 메모리 셀 어레이에는 상기 패리티 블록들이, 상기 제2 메모리 셀 어레이에는 상기 데이터 스트라이프 블록들이, 각각 저장되도록 상기 메모리부를 제어하는 메모리 제어부; 를 포함한다.
또 다른 측면에 따른 레이드 콘트롤러는, 솔리드 스테이트 드라이브가, 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터에 관한 시퀀스 정보를 인식하고, 상기 시퀀스 정보를 기초로, 신규 쓰기 요청이 수신된 블록이 패리티 블록인 경우, 상기 신규 쓰기 요청이 수신된 블록이 고내구성 메모리셀에 저장되고, 패리티 블록이 아닌 경우, 저내구성 메모리셀에 저장되도록 메모리를 제어함으로써 상기 레이드 기반 데이터를 처리하도록 상기 시퀀스 정보를 상기 솔리드 스테이트 드라이브에 제공한다.
또 다른 측면에 따른 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체는, 호스트 시스템의 I/O 서브시스템을 통하여 연결된 솔리드 스테이트 드라이브가, 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터에 관한 시퀀스 정보를 인식하고, 상기 시퀀스 정보를 기초로, 신규 쓰기 요청이 수신된 블록이 패리티 블록인 경우, 상기 신규 쓰기 요청이 수신된 블록이 고내구성 메모리셀에 저장되고, 패리티 블록이 아닌 경우, 저내구성 메모리셀에 저장되도록 메모리를 제어함으로써 상기 레이드 기반 데이터를 처리하도록 상기 시퀀스 정보를 상기 솔리드 스테이트 드라이브에 제공한다.
하나의 RAID 그룹 내에서 RAID 콘트롤러로부터 전달되는 패리티와 데이터를 적합한 유형의 메모리에 저장함으로써 저장효율과 수명을 동시에 향상시키는 하이브리드 반도체 스토리지 시스템 및 그 동작방법을 구현할 수 있는 효과가 있다.
도 1은 일측면에 따른 솔리드 스테이트 드라이브의 일례 및 그 주변 장치와의 연결관계를 나타낸 블록도이다.
도 2는 도 1의 솔리드 스테이트 드라이브의 일례를 더욱 상세히 나타낸 블록도이다.
도 3은 도 2의 솔리드 스테이트 드라이브의 데이터 처리 방법의 일례를 나타낸 흐름도이다.
도 4a 내지 도 4b는 도 1의 솔리드 스테이트 드라이브의 다른 실시예를 예시한 블록도이다.
도 5a 내지 도 5c는 도 1의 솔리드 스테이트 드라이브의 또다른 실시예들을 예시한 블록도이다.
도 6a은 도 5a의 솔리드 스테이트 드라이브의 데이터 처리 방법의 일례를 나타낸 흐름도이다.
도 6b는 도 5b의 솔리드 스테이트 드라이브의 데이터 처리 방법의 일례를 나타낸 흐름도이다.
도 6c는 도 5c의 솔리드 스테이트 드라이브의 데이터 처리 방법의 일례를 나타낸 흐름도이다.
도 7은 다른 측면에 따른 다채널 솔리드 스테이트 드라이브의 일례를 나타낸 블록도이다.
이하, 첨부된 도면을 참조하여 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 일측면에 따른 솔리드 스테이트 드라이브의 일례 및 그 주변 장치와의 연결관계를 나타낸 블록도이다.
도 1에서 예시한 솔리드 스테이트 드라이브()는, 분산 패리티를 포함하는 레이드 기반의 스토리지 시스템을 구성하는 각각의 디스크로 동작한다.
설명의 편의를 위하여, 도 1의 솔리드 스테이트 드라이브()는 4개의 디스크로 이루어지는 레이드 5 레벨 기반의 좌대칭(left symmetric) 스토리지 시스템에서의 각각의 디스크인 것으로 한다. 즉, "Disk #n"은 "Disk #4"가 된다.
각각의 솔리드 스테이트 드라이브(1)는 크게 인터페이스부(10), 메모리부() 및 메모리 제어부()를 포함하여 이루어진다.
인터페이스부(10)는 레이드 콘트롤러(4)를 통하여 호스트 시스템()의 I/O 서브시스템과 연결된다.
메모리부()는 서로 다른 내구성을 가진 두 가지 메모리 셀 어레이를 포함한다. 즉, 도 1의 메모리부(30)는 고내구성 메모리부(300)와 저내구성 메모리부(310)를 포함한다. 도 1의 실시예에서는 고내구성 메모리부(300)는 다수의 SLC(Single Level Cell) 메모리 셀 어레이로 이루어지는 채널이고, 저내구성 메모리부(310)는 다수의 MLC(Multi Level Cell) 메모리셀 어레이로 이루어지는 채널이다.
인터페이스부(10)를 통하여 패리티 블록들과 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터가 솔리드 스테이트 드라이브(1)로 입력되면, 메모리 제어부(20)는 패리티 블록들은 고내구성 메모리부(300)에, 데이터 스트라이프 블록들은 저내구성 메모리부(310)에 각각 저장되도록 메모리부(30)를 제어한다.
솔리드 스테이트 드라이브(1)는, 분산 패리티를 포함하는 레이드 기반의 스토리지 시스템을 구성하는 네 개의 디스크로 동작하므로, 호스트 시스템(3) 또는 레이드 콘트롤러(4)로부터 일정한 규칙에 따라 데이터 스트라이프 블록들 및 데이터의 무결성을 보장하기 위한 패리티 블록들을 수신하게 된다. 도 1의 실시예는 4개의 디스크(솔리드 스테이트 드라이브(1))로 이루어지는 레이드 5 레벨 기반의 레이드 스토리지 시스템에 관한 것이므로, 레이드 콘트롤러(또는 호스트 시스템의 I/O 서브시스템)는 하나의 단위 데이터를 3개의 데이터 스트라이프 및 1개의 패리티로 분할하여 솔리드 스테이트 드라이브들로 전송한다.
솔리드 스테이트 드라이브(1)는, 만약 레이드 콘트롤러(4)로부터 데이터 스트라이프 블록을 전송받고 신규 쓰기(write) 요청을 받은 경우에는, 데이터 스트라이프 블록을 저내구성 메모리부(310)에 저장하고, 패리티 블록을 전송받고 신규 쓰기 요청을 받은 경우에는, 패리티 블록을 고내구성 메모리부(300)에 저장한다.
도 2는 도 1의 솔리드 스테이트 드라이브의 일례를 더욱 상세히 나타낸 블록도이다.
도 2에서 나타낸 솔리드 스테이트 드라이브는, 인터페이스부(10)를 통하여 블록들의 순서 정보를 명시적이거나 암시적으로 전송받는 경우에 관한 실시예이다.
도 2의 솔리드 스테이트 드라이브(2)는, 메모리 제어부()가 시퀀스 정보 인식부(210),시퀀스 정보 저장부(220) 및 FTL(Flash Translation Layer)부(200)를 더 포함한다.
시퀀스 정보 인식부()는 인터페이스부(10)를 통하여 호스트 시스템(3)의 I/O 서브시스템 또는 레이드 콘트롤러(4)로부터 패리티 블록들과 데이터 스트라이프 블록들의 순서를 지시하는 시퀀스 정보를 인식한다.
이 때, 시퀀스 정보는 명시적으로 부여될 수도 있고, 암시적으로 부여될 수도 있다.
시퀀스 정보가 명시적으로 부여되는 경우의 일례로서, 인터페이스부를 통하여 수신한 블록마다 그 블록이 데이터 스트라이프 블록인지 패리티 블록인지를 나타내는 지시자가 시퀀스 정보로서 솔리드 스테이트 드라이브(1)로 더 제공될 수 있다.
[표 1]은 시퀀스 정보가 명시적으로 부여되는 경우의 일례를 나타낸 표이다. 이 때, "D"는 데이터 스트라이프 블록을, "P"는 패리티 블록을 의미한다.
표 1
Disk #1 Disk #2 Disk #3 Disk #4
시퀀스 정보 DDDP DDPD DPDD PDDD
표 1을 참조하면, 디스크(Disk #1)로는 연속한 세 개의 데이터 스트라이프 블록이 수신된 후 한 개의 패리티 블록이 수신됨을 알 수 있다.
시퀀스 정보가 암시적으로 부여되는 경우의 일례로서, 인터페이스부를 통하여 블록들이 수신되는 규칙이 시퀀스 정보로서 솔리드 스테이트 드라이브(1)로 더 제공될 수 있다.
[표 2]는 시퀀스 정보가 암시적으로 부여되는 경우의 일례를 나타낸 표이다.
표 2
Disk #1 Disk #2 Disk #3 Disk #4
시퀀스 정보 (0, 4, 5L) (1, 4, 5L) (2, 4, 5L) (3, 4, 5L)
표 2에 예시한 규칙, 즉 시퀀스 정보는 세 개의 파라미터로 이루어진다. 첫 번째 파라미터는 몇 번째의 블록이 최초의 패리티 블록인지를 나타내고, 두 번째 파라미터는 다음 패리티 블록이 수신되는 주기를 나타내며, 세 번째 파라미터는 레이드의 특성을 나타낸다.
표 2를 참조하면, 디스크(Disk #1)로 수신되는 최초의 블록이 패리티 블록이고, 매 네 번째마다의 블록이 패리티 블록이며(즉, 나머지는 데이터 스트라이프 블록이며), 레이드의 특성은 좌대칭의 레이드 5 레벨임을 알 수 있다.
시퀀스 정보 저장부(220)는 시퀀스 정보 인식부(210)가 명시적 또는 암시적으로 인식한 시퀀스 정보를 저장한다.
FTL부(200)는 시퀀스 정보 저장부(220)에 저장된 시퀀스 정보에 기초하여, 수신된 블록들에 대하여 신규 쓰기 요청을 받는 경우, 수신된 블록이 패리티 블록인 경우에는 고내구성 메모리부(300)에, 수신된 블록이 데이터 스트라이프 블록인 경우에는 저내구성 메모리부(310)에 각각 저장을 한다.
이 때, FTL부(200)는 수신된 블록에 대한 논리 블록 어드레스 매핑 및 부하 조절을 더 수행한다.
한편, 시퀀스 정보가 호스트 시스템의 I/O 서브시스템으로부터 제공되는 경우, 범용의 레이드 콘트롤러를 변경 없이 그대로 이용할 수 있다는 장점이 있다.
도 3은 도 2의 솔리드 스테이트 드라이브의 데이터 처리 방법의 일례를 나타낸 흐름도이다.
도 3에서 나타낸 바와 같이, 솔리드 스테이트 드라이브의 데이터 처리 방법은 시퀀스 정보 저장 단계(S10) 및 데이터 처리 단계(S20)를 포함한다.
시퀀스 정보 저장 단계(S10)에서는 처리될 블록들에 관한 시퀀스 정보가 인식되어 저장된다.
먼저, 인터페이스부(10)는 호스트 시스템(3)의 I/O 서브시스템 또는 레이드 콘트롤러(4)로부터 시퀀스 정보를 수신한다(S100). 도 2를 참조하여 설명한 바와 같이, 시퀀스 정보는 명시적으로 제공될 수도 있고, 암시적으로 제공될 수도 있다.
다음으로, 시퀀스 정보 인식부(210)는 명시적 또는 암시적으로 제공된 시퀀스 정보를 인식한다(S110). 시퀀스 정보 인식부(210)가 인식한 시퀀스 정보는 시퀀스 정보 저장부(220)에 저장된다(S120).
데이터 처리 단계(S20)에서는 시퀀스 정보에 기초하여, 수신된 블록들에 관한 처리가 수행된다.
먼저, 인터페이스부(10)를 통하여, 수신된 블록에 관한 신규 "쓰기" 요청이 수신된다(S200).
그러면, FTL부()는, 시퀀스 정보 저장부(220)에 저장된 시퀀스 정보를 참조하여, 블록의 특성을 판단한다(S210).
만약 신규 "쓰기" 요청이 수신된 블록이 패리티 블록인 경우, FTL부(200)는 그 블록을 고내구성 메모리에 저장한다(S220). 만약 신규 "쓰기" 요청이 수신된 블록이 패리티 블록이 아닌(즉, 데이터 스트라이프 블록인) 경우, FTL부(200)는 그 블록을 저내구성 메모리에 저장한다(S230).
도 4a 내지 도 4b는 도 1의 솔리드 스테이트 드라이브의 다른 실시예를 예시한 블록도이다.
도 2의 솔리드 스테이트 드라이브(1)는 시퀀스 정보 저장부(220)가 메모리 제어부 내에 존재한다. 그러나, 실시예에 따라 시퀀스 정보가 메모리부 내에 저장될 수 있다.
도 4a에 예시한 솔리드 스테이트 드라이브(4a)는 시퀀스 정보 저장부(221)를 고내구성 메모리부(300)의 일부에 포함한다.
또한, 도 4b에 예시한 솔리드 스테이트 드라이브(4b)는 시퀀스 정보 저장부(222)를 저내구성 메모리부(310)의 일부에 포함한다.
도 4a의 솔리드 스테이트 드라이브(4a) 및 도 4b의 솔리드 스테이트 드라이브(4b)는 시퀀스 정보 저장부의 위치에만 차이가 있을 뿐, 기본적으로 도 2의 솔리드 스테이트 드라이브(2)와 동일한 방식으로 동작한다. 도 4a의 FTL부(201)는 고내구성 메모리부에서, 도 4b의 FTL부(202)는 저내구성 메모리부에서 각각 시퀀스 정보를 참조한다는 점을 제외하면 도 2의 FTL부(200)와 동일한 기능을 수행한다. 또한, 도 2, 도 4a 및 도 4b의 솔리드 스테이트 드라이브들에서, 도면부호가 동일한 구성요소는 동일한 기능을 수행한다.
도 5a 내지 도 5c는 도 1의 솔리드 스테이트 드라이브의 또다른 실시예들을 예시한 블록도이다.
도 2의 솔리드 스테이트 드라이브(2)는 호스트 시스템(3)의 I/O 서브시스템 또는 레이드 콘트롤러(4)로부터 명시적 또는 암시적으로 제공받은 시퀀스 정보에 기초하여 데이터를 처리한다. 반면, 도 5a의 솔리드 스테이트 드라이브(5a) 및 도 5b의 솔리드 스테이트 드라이브(5b)는 장치 외부로부터 시퀀스 정보를 제공받는 대신, 메모리 제어부(23,24)의 시퀀스 정보 생성부(213,214)가 직접 시퀀스 정보를 생성한다.
시퀀스 정보 생성부(213,214)는 일정 기간 동안 레이드 콘트롤러가 시도하는 액세스의 패턴에 기초하여, 시퀀스 정보를 생성할 수 있다.
예컨대, 분산 패리티를 포함하는 레이드 레벨, 예컨대 레이드 레벨 5에 기초하여 레이드 내의 디스크에 대한 읽기, 쓰기 및 지우기가 수행되는 경우에는, 데이터 스트라이프 블록에 비하여 패리티 블록에 대해서 현저히 빈번하게 업데이트가 이루어진다. 따라서, 시퀀스 정보 생성부(213,214)가 일부 블록들이 빈번히 업데이트되는 패턴을 인식한 경우에는, 이러한 패턴에 기초하여, 빈번히 업데이트되는 블록들에는 패리티 블록들이 저장되는 규칙에 관한 시퀀스 정보를 생성할 수 있다.
도 5a의 실시예에서, 시퀀스 정보 생성부(213)는 생성한 시퀀스 정보를 시퀀스 정보 저장부(223)에 저장해 두고, FTL부(203)가 이를 참조하도록 할 수 있다.
도 5b의 실시예에서는 시퀀스 정보 생성부(214)가 생성한 시퀀스 정보를 실시간으로 FTL부(204)가 참조하도록 할 수도 있다. 이 경우, 시퀀스 정보 저장부는 생략될 수도 있다.
또는, 도 5c에서 나타낸 바와 같이, 솔리드 스테이트 드라이브(5c)는 현재의 레이드 특성에 적합한 시퀀스 정보를 미리 시퀀스 정보 저장부(215)에 저장해 둘 수 있다. 이 경우, 시퀀스 정보 생성부는 생략될 수도 있다.
도 6a 내지 도 6c는 도 5a 내지 도 5c의 솔리드 스테이트 드라이브의 데이터 처리 방법의 일례를 나타낸 흐름도이다.
도 6a는 도 5a의 솔리드 스테이트 드라이브의 데이터 처리 방법의 일례를나타낸 흐름도이다.
도 6a에서 나타낸 바와 같이, 도 5a의 솔리드 스테이트 드라이브의 데이터 처리 방법은 시퀀스 정보 생성 단계(S11) 및 데이터 처리 단계(S21)를 포함한다.
시퀀스 정보 생성 단계(S11)에서는 처리될 블록들에 관한 시퀀스 정보가 생성되어 저장된다.
앞서 설명한 바와 같이, 시퀀스 정보 생성부는 일정 기간 동안 레이드 콘트롤러가 시도하는 액세스의 패턴에 기초하여, 시퀀스 정보를 생성한다(S111).
시퀀스 정보 인식부가 인식한 시퀀스 정보는 시퀀스 정보 저장부에 저장된다(S121).
다음으로, 데이터 처리 단계(S21)에서는 시퀀스 정보 생성부가 생성한 시퀀스 정보에 기초하여, 수신된 블록들에 관한 처리가 수행된다.
먼저, 인터페이스부를 통하여, 수신된 블록에 관한 신규 "쓰기" 요청이 수신된다(S201).
그러면, FTL부는, 시퀀스 정보 저장부()에 저장된 시퀀스 정보를 참조하여, 블록의 특성을 판단한다(S211).
만약 신규 "쓰기" 요청이 수신된 블록이 패리티 블록인 경우, FTL부는 그 블록을 고내구성 메모리에 저장한다(S221). 만약 신규 "쓰기" 요청이 수신된 블록이 패리티 블록이 아닌(즉, 데이터 스트라이프 블록인) 경우, FTL부는 그 블록을 저내구성 메모리에 저장한다(S231).
도 6b는 도 5b의 솔리드 스테이트 드라이브의 데이터 처리 방법의 일례를나타낸 흐름도이다.
도 6b에서 나타낸 바와 같이, 도 5b의 솔리드 스테이트 드라이브의 데이터 처리 방법은 신규 쓰기 요청 수신 단계(S12), 시퀀스 정보 생성 단계(S22) 및 데이터 처리 단계(S23)를 포함한다.
먼저 인터페이스부를 통하여, 수신된 블록에 관한 신규 "쓰기" 요청이 수신되면, FTL부는 시퀀스 정보 생성부에 현재 처리되어야 할 블록들에 대한 시퀀스 정보의 생성을 요청한다(S12).
시퀀스 정보 생성 단계에서 시퀀스 정보 생성부는 일정 기간 동안 레이드 콘트롤러가 시도하는 액세스의 패턴에 기초하여, 현재 처리되어야 할 블록들에 대한 시퀀스 정보를 생성한다(S22).
다음으로, 데이터 처리 단계(S23)에서는 시퀀스 정보 생성부가 생성한 시퀀스 정보에 기초하여 FTL부가 현재 처리되어야 할 블록의 특성을 판단한다.
만약 신규 "쓰기" 요청이 수신된 블록이 패리티 블록인 경우, FTL부는 그 블록을 고내구성 메모리에 저장한다(S222). 만약 신규 "쓰기" 요청이 수신된 블록이 패리티 블록이 아닌(즉, 데이터 스트라이프 블록인) 경우, FTL부는 그 블록을 저내구성 메모리에 저장한다(S232).
도 6c에서 나타낸 바와 같이, 도 5c의 솔리드 스테이트 드라이브의 데이터 처리 방법은 신규 쓰기 요청 수신 단계(S13)및 데이터 처리 단계(S23)를 포함한다.
먼저 인터페이스부를 통하여, 수신된 블록에 관한 신규 "쓰기" 요청이 수신되면, FTL부는 시퀀스 정보 저장부에 저장된 시퀀스 정보에 기초하여 현재 처리되어야 할 블록의 특성을 판단한다(S213).
만약 신규 "쓰기" 요청이 수신된 블록이 패리티 블록인 경우, FTL부는 그 블록을 고내구성 메모리에 저장한다(S223). 만약 신규 "쓰기" 요청이 수신된 블록이 패리티 블록이 아닌(즉, 데이터 스트라이프 블록인) 경우, FTL부는 그 블록을 저내구성 메모리에 저장한다(S233).
도 7은 다른 측면에 따른 다채널 솔리드 스테이트 드라이브의 일례를 나타낸 블록도이다.
도 7의 다채널 솔리드 스테이트 드라이브(7)의 가장 큰 특징은, 드라이브 내에서 자체적인 분산 패리티를 갖는 레이드 알고리즘을 기초로 여러 채널의 메모리부에 데이터 및 메모리를 관리할 수 있는 내부 레이드 콘트롤러를 갖는다는 점이다.
이를 위하여, 도 7의 다채널 솔리드 스테이트 드라이브(7)는, 인터페이스부(10), 메모리 제어부(26) 및 다채널의 메모리부(40,42,44,46)를 가지며, 메모리부(40,42,44,46)는 각 채널마다 고내구성 메모리부(400) 및 저내구성 메모리부(402)를 포함한다.
도 7에서 나타낸 솔리드 스테이트 드라이브(7)는, 인터페이스부(10)를 통하여 블록들의 순서 정보를 명시적이거나 암시적으로 전송받는 경우에 관한 실시예이다.
도 7의 다채널 솔리드 스테이트 드라이브(7)는, 메모리 제어부(26)가 시퀀스 정보 인식부(215), 시퀀스 정보 저장부(225), 내부 레이드 제어부(236) 및 FTL(Flash Translation Layer)부(205)를 더 포함한다.
시퀀스 정보 인식부(215)는 인터페이스부(10)를 통하여 호스트 시스템의 I/O 서브시스템 또는 외부의 레이드 콘트롤러로부터 패리티 블록들과 데이터 스트라이프 블록들의 순서를 지시하는 "외부" 시퀀스 정보를 인식한다.
이 때, 외부 시퀀스 정보는 명시적으로 부여될 수도 있고, 암시적으로 부여될 수도 있다.
시퀀스 정보 저장부(225)는 시퀀스 정보 인식부(215)가 명시적 또는 암시적으로 인식한 외부 시퀀스 정보를 저장한다.
내부 레이드 제어부(236)는 다채널 솔리드 스테이트 드라이브(7)가 채용한 레이드 레벨에 따른 알고리즘에 기초하여, 처리되어야 할 데이터 스트라이프 블록 및 패리티 블록이 저장되는 채널을 나타내는 내부 시퀀스 정보를 FTL부(205)에 제공한다. 내부 시퀀스 정보도 시퀀스 정보 저장부(225)에 외부 시퀀스 정보와 함께 저장될 수 있다.
FTL부(205)는 시퀀스 정보 저장부(225)에 저장된 외부 시퀀스 정보 및 내부 시퀀스 정보에 기초하여, 수신된 블록들에 대하여 신규 쓰기 요청을 받는 경우, 적절한 메모리 채널에 대하여, 수신된 블록이 패리티 블록인 경우에는 그 메모리 채널의 고내구성 메모리부(예컨대 400)에, 수신된 블록이 데이터 스트라이프 블록인 경우에는 그 메모리 채널의 저내구성 메모리부(예컨대 402)에 각각 저장을 한다.
이 때, FTL부(205)는 수신된 블록에 대한 논리 블록 어드레스 매핑 및 부하 조절을 더 수행한다.
한편, 실시예들을 통하여, 업데이트가 빈번한 패리티 블록은 고내구성 메모리부에, 업데이트가 뜸한 데이터 스트라이프 블록은 저내구성 메모리부에 저장하기 위한 장치와 방법을 설명하였다.
그런데, 메모리부의 저장영역의 크기는 두 가지 형식의 메모리 셀의 내구성 및 I/O의 패턴 등을 고려하여 조정이 가능하다.
예컨대, 고내구성 메모리 셀의 저장영역이 레이드 레벨(예컨대 레이드 5 레벨)에서 요구하는 패리티 블록의 저장영역보다 큰 경우, 패리티 블록이 저장될 수 있는 고내구성 메모리부의 영역은 남는 반면 데이터 스트라이프 블록이 저장될 수 있는 저내구성 메모리부의 영역은 모자라게 된다.
이 때, 데이터 스트라이프 블록의 저장공간의 효율적인 사용을 위해서는 저내구도 메모리부에 저장된 일부 데이터를 고내구도 메모리부로 이동하여 저장할 수 있다.
반대로, 저내구성 메모리 셀의 저장영역이 레이드 레벨(예컨대 레이드 5 레벨)에서 요구하는 데이터 스트라이프 블록의 저장영역보다 큰 경우, 패리티 블록이 저장될 수 있는 고내구성 메모리부의 영역은 모자라는 반면 데이터 스트라이프 블록이 저장될 수 있는 저내구성 메모리부의 영역은 남게 된다.
이 때, 데이터 스트라이프 블록의 저장공간의 효율적인 사용을 위해서는 고내구도 메모리부에 저장된 일부 패리티 블록을 고내구도 메모리부로 이동하여 저장할 수 있다.
또한, 오랜 기간 사용함으로써 일부 메모리 셀의 마모가 심해진 경우, 잦은 Failure가 발생하는 경우, Rebuild를 하는 경우 등에도 동일한 시퀀스 정보 인식 과정을 거쳐 시퀀스 정보를 저장한 뒤, 저장된 시퀀스 정보에 기초하여 데이터와 패리티를 타 메모리의 저장영역으로 분산하여 저장할 수 있다.
한편, 메모리부를 이루는 고내구성 메모리 및 저내구성 메모리는 NAND 플래시 메모리 셀뿐만 아니라, 발명의 사상을 벗어나지 않는 범위에서 그 밖의 비휘발성 메모리 셀 또는 휘발성 메모리 셀을 사용하는 것도 가능하다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (36)

  1. 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터를 수신하는 인터페이스부; 및
    적어도 하나의 제1 메모리 셀 어레이에는 상기 패리티 블록들을, 상기 제1 메모리 셀 어레이보다 내구성이 높지 않은 적어도 하나의 제2 메모리 셀 어레이에는 상기 데이터 스트라이프 블록들을, 각각 저장하는 메모리 제어부;를 포함하는 솔리드 스테이트 드라이브 콘트롤러.
  2. 제1항에 있어서,
    상기 메모리 제어부는,
    상기 패리티 블록들과 상기 데이터 스트라이프 블록들의 순서를 지시하는 시퀀스 정보를 인식하는 시퀀스 정보 인식부; 및
    상기 시퀀스 정보에 기초하여, 신규 쓰기 요청된 적어도 하나의 패리티 블록을 상기 제1 메모리 셀 어레이에, 신규 쓰기 요청된 데이터 스트라이프 블록들을 상기 제2 메모리 셀 어레이에 각각 저장하는 FTL(Flash Translation Layer)부;를 더 포함하는 솔리드 스테이트 드라이브 콘트롤러.
  3. 제1항에 있어서,
    상기 메모리 제어부는, 상기 시퀀스 정보를 저장하는 시퀀스 정보 저장부;를 더 포함하는 솔리드 스테이트 드라이브 콘트롤러.
  4. 제2항에 있어서,
    상기 시퀀스 정보 인식부는,
    상기 인터페이스부를 통하여, 호스트 시스템의 I/O 서브시스템 또는 레이드콘트롤러로부터 수신한 시퀀스 정보를, 상기 시퀀스 정보로 인식하는 솔리드 스테이트 드라이브 콘트롤러.
  5. 제2항에 있어서,
    상기 시퀀스 정보 인식부는,
    상기 인터페이스부를 통하여, 호스트 시스템의 I/O 서브시스템 또는 레이드콘트롤러로부터 수신한 정보를 해석하여 상기 시퀀스 정보를 인식하는 솔리드 스테이트 드라이브 콘트롤러.
  6. 제2항에 있어서,
    상기 시퀀스 정보 인식부는,
    미리 정해진 시간구간 동안의 액세스 패턴에 기초하여 상기 시퀀스 정보를 인식하는 솔리드 스테이트 드라이브 콘트롤러.
  7. 제6항에 있어서,
    상기 시퀀스 정보 인식부는, 상기 액세스 패턴이 일부 블록들을 빈번하게 업데이트하는 패턴인 경우, 상기 일부 블록들에는 패리티 블록들이 저장되는 것으로 상기 시퀀스 정보를 인식하는 솔리드 스테이트 드라이브 콘트롤러.
  8. 제1항에 있어서,
    상기 제1 메모리 셀 어레이는 고내구성 플래시 메모리이고, 상기 제2 메모리 셀 어레이는 저내구성 플래시 메모리인 솔리드 스테이트 드라이브 콘트롤러.
  9. 제8항에 있어서,
    상기 고내구성 플래시 메모리는 SLC(Single-Level Cell)이고, 상기 제2 메모리 셀 어레이는 MLC(Multi-Level Cell)인 솔리드 스테이트 드라이브 콘트롤러.
  10. 제8항에 있어서,
    상기 고내구성 플래시 메모리는 MLC이고, 상기 제2 메모리 셀 어레이는 TLC(Triple-Level Cell)인 솔리드 스테이트 드라이브 콘트롤러.
  11. 제1항에 있어서,
    상기 레이드 기반 데이터는 레이드 레벨 5 기반 데이터인 솔리드 스테이트 드라이브 콘트롤러.
  12. 제1항에 있어서,
    상기 레이드 기반 데이터는 레이드 레벨 6 기반 데이터인 솔리드 스테이트 드라이브 콘트롤러.
  13. 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터를 수신하는 인터페이스부;
    적어도 하나의 제1 메모리 셀 어레이 및 상기 제1 메모리 셀 어레이보다 내구성이 높지 않은 적어도 하나의 제2 메모리 셀 어레이를 포함하는 메모리부; 및
    상기 제1 메모리 셀 어레이에는 상기 패리티 블록들이, 상기 제2 메모리 셀 어레이에는 상기 데이터 스트라이프 블록들이, 각각 저장되도록 상기 메모리부를 제어하는 메모리 제어부; 를 포함하는 솔리드 스테이트 드라이브.
  14. 제13항에 있어서,
    상기 메모리 제어부는,
    상기 패리티 블록들과 상기 데이터 스트라이프 블록들의 순서를 지시하는 시퀀스 정보를 인식하는 시퀀스 정보 인식부; 및
    상기 시퀀스 정보에 기초하여, 신규 쓰기 요청된 적어도 하나의 패리티 블록을 상기 제1 메모리 셀 어레이에, 신규 쓰기 요청된 데이터 스트라이프 블록들을 상기 제2 메모리 셀 어레이에 각각 저장하는 FTL(Flash Translation Layer)부;를 더 포함하는 솔리드 스테이트 드라이브.
  15. 제1항에 있어서,
    상기 메모리 제어부는, 상기 시퀀스 정보를 저장하는 시퀀스 정보 저장부;를 더 포함하는 솔리드 스테이트 드라이브.
  16. 제14항에 있어서,
    상기 시퀀스 정보 인식부는,
    상기 인터페이스부를 통하여, 호스트 시스템의 I/O 서브시스템 또는 레이드콘트롤러로부터 수신한 시퀀스 정보를, 상기 시퀀스 정보로 인식하는 솔리드 스테이트 드라이브.
  17. 제14항에 있어서,
    상기 시퀀스 정보 인식부는,
    상기 인터페이스부를 통하여, 호스트 시스템의 I/O 서브시스템 또는 레이드콘트롤러로부터 수신한 정보를 해석하여 상기 시퀀스 정보를 인식하는 솔리드 스테이트 드라이브.
  18. 제14항에 있어서,
    상기 시퀀스 정보 인식부는,
    미리 정해진 시간구간 동안의 액세스 패턴에 기초하여 상기 시퀀스 정보를 인식하는 솔리드 스테이트 드라이브.
  19. 제18항에 있어서,
    상기 시퀀스 정보 인식부는, 상기 액세스 패턴이 일부 블록들을 빈번하게 업데이트하는 패턴인 경우, 상기 일부 블록들에는 패리티 블록들이 저장되는 것으로 상기 시퀀스 정보를 인식하는 솔리드 스테이트 드라이브.
  20. 제13항에 있어서,
    상기 제1 메모리 셀 어레이는 고내구성 플래시 메모리이고, 상기 제2 메모리 셀 어레이는 저내구성 플래시 메모리인 솔리드 스테이트 드라이브.
  21. 제20항에 있어서,
    상기 고내구성 플래시 메모리는 SLC(Single-Level Cell)이고, 상기 제2 메모리 셀 어레이는 MLC(Multi-Level Cell)인 솔리드 스테이트 드라이브.
  22. 제20항에 있어서,
    상기 고내구성 플래시 메모리는 MLC이고, 상기 제2 메모리 셀 어레이는 TLC(Triple-Level Cell)인 솔리드 스테이트 드라이브.
  23. 제13항에 있어서,
    상기 레이드 기반 데이터는 레이드 레벨 5 기반 데이터인 솔리드 스테이트 드라이브.
  24. 제13항에 있어서,
    상기 레이드 기반 데이터는 레이드 레벨 6 기반 데이터인 솔리드 스테이트 드라이브.
  25. 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터에 관한 시퀀스 정보를 인식하는 단계;
    상기 시퀀스 정보를 기초로, 신규 쓰기 요청이 수신된 블록이 패리티 블록인 경우, 상기 신규 쓰기 요청이 수신된 블록이 고내구성 메모리셀에 저장되고, 패리티 블록이 아닌 경우, 저내구성 메모리셀에 저장되도록 메모리를 제어하는 단계;를 포함하는 솔리드 스테이트 드라이브의 데이터 처리 방법.
  26. 제25항에 있어서,
    인식된 시퀀스 정보를 저장하는 단계;를 더 포함하는 솔리드 스테이트 드라이브의 데이터 처리 방법.
  27. 제26항에 있어서,
    상기 인식된 시퀀스 정보는 메모리 제어부 내에 저장되는 솔리드 스테이트 드라이브의 데이터 처리 방법.
  28. 제26항에 있어서,
    상기 인식된 시퀀스 정보는 상기 고내구성 메모리셀의 일부에 저장되는 솔리드 스테이트 드라이브의 데이터 처리 방법.
  29. 제26항에 있어서,
    상기 인식된 시퀀스 정보는 상기 저내구성 메모리셀의 일부에 저장되는 솔리드 스테이트 드라이브의 데이터 처리 방법.
  30. 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터에 관한 시퀀스 정보를 생성하는 단계;
    상기 시퀀스 정보를 기초로, 신규 쓰기 요청이 수신된 블록이 패리티 블록인 경우, 상기 신규 쓰기 요청이 수신된 블록이 고내구성 메모리셀에 저장되고, 패리티 블록이 아닌 경우, 저내구성 메모리셀에 저장되도록 메모리를 제어하는 단계;를 포함하는 솔리드 스테이트 드라이브의 데이터 처리 방법.
  31. 제30항에 있어서,
    인식된 시퀀스 정보를 저장하는 단계;를 더 포함하는 솔리드 스테이트 드라이브의 데이터 처리 방법.
  32. 제30항에 있어서,
    상기 시퀀스 정보를 생성하는 단계에서,
    업데이트되는 블록들에 대한 액세스 패턴을 기초로 상기 시퀀스 정보를 생성하는 솔리드 스테이트 드라이브의 데이터 처리 방법.
  33. 패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터를 수신하는 인터페이스부;
    메모리 채널마다 적어도 하나의 제1 메모리 셀 어레이 및 상기 제1 메모리 셀 어레이보다 내구성이 높지 않은 적어도 하나의 제2 메모리 셀 어레이를 포함하는 다수의 메모리 채널을 포함하는 메모리부; 및
    상기 제1 메모리 셀 어레이에는 상기 패리티 블록들이, 상기 제2 메모리 셀 어레이에는 상기 데이터 스트라이프 블록들이, 각각 저장되도록 상기 메모리부를 제어하는 메모리 제어부; 를 포함하는 다채널 솔리드 스테이트 드라이브.
  34. 제33항에 있어서,
    상기 메모리 제어부는,
    상기 패리티 블록들과 상기 데이터 스트라이프 블록들의 순서를 지시하는 외부 시퀀스 정보를 인식하는 시퀀스 정보 인식부;
    레이드 레벨에 따른 알고리즘에 기초하여, 처리되어야 할 데이터 스트라이프 블록 및 패리티 블록이 저장되는 채널을 나타내는 내부 시퀀스 정보를 제공하는 내부 레이드 제어부; 및
    상기 외부 시퀀스 정보 및 상기 내부 시퀀스 정보에 기초하여, 신규 쓰기 요청된 적어도 하나의 패리티 블록을 상기 내부 시퀀스 정보에 따라 결정되는 메모리 채널의 상기 제1 메모리 셀 어레이에, 신규 쓰기 요청된 데이터 스트라이프 블록들을 상기 내부 시퀀스 정보에 따라 결정되는 메모리 채널의 상기 제2 메모리 셀 어레이에 각각 저장하는 FTL부;를 더 포함하는 다채널 솔리드 스테이트 드라이브.
  35. 솔리드 스테이트 드라이브가,
    패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터에 관한 시퀀스 정보를 인식하고,
    상기 시퀀스 정보를 기초로, 신규 쓰기 요청이 수신된 블록이 패리티 블록인 경우, 상기 신규 쓰기 요청이 수신된 블록이 고내구성 메모리셀에 저장되고, 패리티 블록이 아닌 경우, 저내구성 메모리셀에 저장되도록 메모리를 제어함으로써 상기 레이드 기반 데이터를 처리하도록 상기 시퀀스 정보를 상기 솔리드 스테이트 드라이브에 제공하는 레이드 콘트롤러.
  36. 호스트 시스템의 I/O 서브시스템을 통하여 연결된 솔리드 스테이트 드라이브가,
    패리티 블록들 및 데이터 스트라이프 블록들을 포함하는 레이드 기반 데이터에 관한 시퀀스 정보를 인식하고,
    상기 시퀀스 정보를 기초로, 신규 쓰기 요청이 수신된 블록이 패리티 블록인 경우, 상기 신규 쓰기 요청이 수신된 블록이 고내구성 메모리셀에 저장되고, 패리티 블록이 아닌 경우, 저내구성 메모리셀에 저장되도록 메모리를 제어함으로써 상기 레이드 기반 데이터를 처리하도록 상기 시퀀스 정보를 상기 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2013/006323 2012-07-13 2013-07-15 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 WO2014011011A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201380047774.3A CN104641419A (zh) 2012-07-13 2013-07-15 固态驱动器控制器、固态驱动器、固态驱动器的数据处理方法、多通道固态驱动器、raid控制器以及其中记录有用于向固态驱动器提供顺序信息的计算机程序的计算机可读记录介质
US14/413,598 US20150160999A1 (en) 2012-07-13 2013-07-15 Solid state drive controller, solid state drive, data processing method of solid state drive, multi-channel solid state drive, raid controller and computer-readable recording medium having recorded therein computer program for providing sequence information to solid state drive

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2012-0076824 2012-07-13
KR20120076824 2012-07-13

Publications (1)

Publication Number Publication Date
WO2014011011A1 true WO2014011011A1 (ko) 2014-01-16

Family

ID=49916356

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/006323 WO2014011011A1 (ko) 2012-07-13 2013-07-15 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Country Status (4)

Country Link
US (1) US20150160999A1 (ko)
KR (1) KR102116713B1 (ko)
CN (1) CN104641419A (ko)
WO (1) WO2014011011A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108447516B (zh) * 2013-08-23 2020-04-24 慧荣科技股份有限公司 存取快闪存储器中存储单元的方法以及使用该方法的装置
CN107632904B (zh) 2013-08-23 2020-12-22 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN104424127A (zh) 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN104425018B (zh) 2013-08-23 2019-07-23 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
US9213485B1 (en) * 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
KR20170099161A (ko) * 2016-02-23 2017-08-31 에스케이텔레콤 주식회사 빠른 데이터 복원을 위한 데이터 읽기 또는 쓰기 방법
KR20180051703A (ko) * 2016-11-07 2018-05-17 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
CN106952663A (zh) * 2017-03-13 2017-07-14 西北工业大学 一种多接口高速大容量固态存储产品开发平台
CN108255414B (zh) * 2017-04-14 2020-04-03 新华三信息技术有限公司 固态硬盘访问方法及装置
CN108733318A (zh) * 2017-04-20 2018-11-02 立而鼎科技(深圳)有限公司 一种tlc nand flash固态硬盘的写入方法
CN110462577B (zh) 2017-12-28 2022-03-29 华为技术有限公司 一种数据写入的方法及固态硬盘阵列
US10783036B2 (en) * 2018-10-19 2020-09-22 Seagate Technology Llc Storage system stripe grouping using multiple logical units
CN110109621B (zh) * 2019-04-28 2022-07-12 南威软件股份有限公司 一种提升固态硬盘阵列系统性能和寿命的方法
US11042324B2 (en) * 2019-04-29 2021-06-22 EMC IP Holding Company LLC Managing a raid group that uses storage devices of different types that provide different data storage characteristics
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
US10970170B2 (en) * 2019-08-29 2021-04-06 Micron Technology, Inc. Shared parity protection
CN110989928B (zh) * 2019-11-20 2020-10-09 北京连山科技股份有限公司 Raid0中存储单元的管理方法及管理设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332749A1 (en) * 2009-06-30 2010-12-30 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
WO2011002657A1 (en) * 2009-06-29 2011-01-06 Sandisk Corporation Method and device for selectively refreshing a region of a memory of a data storage device
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
WO2011073710A1 (en) * 2009-12-16 2011-06-23 Sandisk Il Ltd Auxiliary parity bits for data written in multi-level cells
KR20120029996A (ko) * 2010-09-17 2012-03-27 가부시끼가이샤 도시바 컨트롤러, 기억 장치, 및 컴퓨터 판독 가능한 매체

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US20090172335A1 (en) * 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8429514B1 (en) * 2008-09-24 2013-04-23 Network Appliance, Inc. Dynamic load balancing of distributed parity in a RAID array
US20100191907A1 (en) * 2009-01-26 2010-07-29 Lsi Corporation RAID Converter and Methods for Transforming a First RAID Array to a Second RAID Array Without Creating a Backup Copy
US8332578B2 (en) * 2009-07-31 2012-12-11 Intel Corporation Method and system to improve the performance of a multi-level cell (MLC) NAND flash memory
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
KR101602939B1 (ko) 2009-10-16 2016-03-15 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
JP4806084B1 (ja) * 2010-05-28 2011-11-02 株式会社東芝 情報処理装置
US8850104B2 (en) 2011-03-21 2014-09-30 Apple Inc. Independent management of data and parity logical block addresses

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011002657A1 (en) * 2009-06-29 2011-01-06 Sandisk Corporation Method and device for selectively refreshing a region of a memory of a data storage device
US20100332749A1 (en) * 2009-06-30 2010-12-30 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
WO2011073710A1 (en) * 2009-12-16 2011-06-23 Sandisk Il Ltd Auxiliary parity bits for data written in multi-level cells
KR20120029996A (ko) * 2010-09-17 2012-03-27 가부시끼가이샤 도시바 컨트롤러, 기억 장치, 및 컴퓨터 판독 가능한 매체

Also Published As

Publication number Publication date
KR20140009940A (ko) 2014-01-23
KR102116713B1 (ko) 2020-06-01
CN104641419A (zh) 2015-05-20
US20150160999A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
WO2014011011A1 (ko) 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
US7574554B2 (en) Storage system and data protection method therefor
US7818495B2 (en) Storage device and deduplication method
WO2013024952A1 (ko) 메모리 컨트롤러 및 이의 데이터 관리방법
US10417124B2 (en) Storage system that tracks mapping to a memory module to be detached therefrom
JP5099212B2 (ja) ストレージ装置、ストレージ制御装置、データ転送集積回路、および、ストレージ制御方法
US8819338B2 (en) Storage system and storage apparatus
US6542961B1 (en) Disk storage system including a switch
WO2015046645A1 (en) Deduplication of parity data in ssd based raid systems
CN103699344B (zh) 非易失性存储器装置及其操作方法
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
US20090327801A1 (en) Disk array system, disk controller, and method for performing rebuild process
US10303367B2 (en) Mapping table updating method without updating the first mapping information, memory control circuit unit and memory storage device
KR100226211B1 (ko) 반도체 디스크장치
WO2006080014A2 (en) Method of managing copy operations in flash memories
WO2012008732A2 (ko) 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
WO2017173623A1 (zh) 用于处理存储设备中分条的方法和存储设备
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
WO2013176376A1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
JP5776474B2 (ja) ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法
JP2014194667A (ja) 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法
US20120233382A1 (en) Data storage apparatus and method for table management
CN103593255B (zh) 数据管理方法、记忆存储存储器与记忆存储控制器
WO2013189212A1 (zh) 一种控制存储设备内非最低有效位页使用的方法及装置
US7293193B2 (en) Array controller for disk array, and method for rebuilding disk array

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13816625

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14413598

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: 13816625

Country of ref document: EP

Kind code of ref document: A1