WO2014142427A1 - 스토리지 시스템 및 이의 데이터 전송 방법 - Google Patents

스토리지 시스템 및 이의 데이터 전송 방법 Download PDF

Info

Publication number
WO2014142427A1
WO2014142427A1 PCT/KR2013/012003 KR2013012003W WO2014142427A1 WO 2014142427 A1 WO2014142427 A1 WO 2014142427A1 KR 2013012003 W KR2013012003 W KR 2013012003W WO 2014142427 A1 WO2014142427 A1 WO 2014142427A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
spare
read
storage
write
Prior art date
Application number
PCT/KR2013/012003
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 US14/776,326 priority Critical patent/US20160041759A1/en
Publication of WO2014142427A1 publication Critical patent/WO2014142427A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits

Definitions

  • the present invention relates to a semiconductor memory system, and more particularly, to a storage system composed of a host device and a storage device (eg, a NAND flash memory device) and a data transfer method thereof.
  • a storage system composed of a host device and a storage device (eg, a NAND flash memory device) and a data transfer method thereof.
  • the semiconductor memory device may be classified into a volatile memory device and a nonvolatile memory device according to whether data can be stored in a state where power is not supplied.
  • NAND flash memory devices NAND flash memory device
  • storage devices in the form of NAND flash memory devices eg For example, solid state drives (SSDs) are replacing hard disk drives (HDDs).
  • a storage device includes at least one NAND flash memory and a storage controller for controlling the same.
  • the storage controller performs an address mapping operation of converting a logical address into a physical address using a flash translation layer for supporting a file system. Read, write, erase, merge, copyback, compaction and garbage collection operations on the NAND flash memory. Control garbage collection, wear leveling, and so on.
  • the storage controller of the storage device may interact with the host controller of the host device.
  • the basic unit of read and write operations is a block unit (for example, 1 KB, 2 KB, 4 KB, etc.)
  • the basic unit of read and write operations is NAND flash memory.
  • the block unit e.g. 16 KB or larger
  • the host device and the storage device transmit and receive data (ie, a logical block based interface) in a data transmission unit corresponding to a sector size. .
  • the host device writes a separate block.
  • An operation must be requested, which causes a write operation to a separate physical page in the storage device.
  • the conventional storage system is not only inefficient because it performs a write operation of about 4KB for several to several tens of bytes of metadata for the above operations, and is also inefficient due to the erase operation of the write operation due to the physical characteristics of the NAND flash memory. There is a problem that the performance and life is reduced.
  • An object of the present invention is to provide a storage system that enables a host device to use a portion of a spare area of a physical page of a NAND flash memory provided in a storage device in using a logical block-based interface. It is.
  • Another object of the present invention is to provide a data transmission method of a storage system capable of efficiently transferring read / write data (ie, main data) and related spare data between a host device and a storage device.
  • the object of the present invention is not limited to the above objects, and may be variously expanded within a range without departing from the spirit and scope of the present invention.
  • a storage system is a storage device having at least one NAND flash memory and a storage controller for controlling the NAND flash memory, and interaction with the storage controller
  • the host device may include a host controller that performs interaction and a file system that generates a read command or a write command for data in units of blocks on a logical address.
  • the host device and the storage device transmit and receive the data in a data transfer unit corresponding to a sector size, and by the write command.
  • the host device may collect first spare data associated with the write data and transmit the collected first data to the storage device, and then transmit the write data to the storage device.
  • a flash translation layer (FTL) for performing an address mapping operation may be provided in the storage controller.
  • FTL flash translation layer
  • a host flash translation layer may be provided in the host controller, a storage flash translation layer may be provided in the storage controller, and the host flash translation layer and the storage flash translation layer may perform an address mapping operation. .
  • the storage device may write the write data to a main area of a physical page of the NAND flash memory, and write the first spare data to a part of the spare area of the physical page.
  • the first spare data may include information for a power off recovery operation in relation to the write data.
  • the first spare data may include information for a transaction operation in relation to the write data.
  • the read command may include a main read command for reading read data and a spare read command for reading second spare data associated with spare read target data.
  • the storage device may transmit the read data to the host device.
  • the storage device may transmit the second spare data to the host device.
  • the storage device transfers the read data and the second spare data to the host device. Can be sent to.
  • a data transmission method of a storage system a storage device having at least one NAND flash memory and a storage controller and a host having a file system and a host controller
  • a storage system comprising a device, the host device determining a write data in block units on a logical address by generating a write command, and causing the host device to determine a first spare associated with the write data.
  • spare data is collected and transmitted to the storage device in a data transfer unit corresponding to a sector size, and the host device causes the write data to be sequentially transmitted to the first spare data in the storage unit. To transmit to the device can do.
  • the data transmission method causes the host device to determine read data in units of blocks on the logical address by generating a main read command, and causes the storage device to read the data in the data transfer unit. To the host device.
  • the data transmission method may cause the host device to determine spare read target data on a block-by-block basis on the logical address by generating a spare read command, and cause the storage device to read the spare read target data.
  • the second spare data associated with the transmission may be transmitted to the host device in the data transmission unit.
  • the data transmission method causes the host device to determine read data in units of blocks on the logical address by generating a read command, and causes the storage device to read the read data and the read data.
  • the second spare data associated with the transmission may be transmitted to the host device in the data transmission unit.
  • the storage system may allow the host device to use a part of the spare area of the physical page of the NAND flash memory included in the storage device in using a logical block-based interface. Specifically, in the storage system, since the host device may access the spare data in the storage device with little overhead, the host device may access a portion of the spare area for a power-off recovery operation or a transaction operation. When several tens of bytes of metadata are stored, a conventional unnecessary separate write operation required for the operations is reduced, so that the overall performance and lifespan of the storage system can be greatly improved.
  • the data transmission method of the storage system can efficiently transfer read / write data (ie, main data) and spare data related thereto between the host device and the storage device.
  • FIGS. 1A and 1B are block diagrams illustrating a storage system according to example embodiments.
  • FIG. 2A is a diagram illustrating write data to be transmitted to a storage device and spare data associated therewith in the storage system of FIGS. 1A and 1B.
  • FIG. 2B is a diagram illustrating a method of transmitting write data and related spare data to a storage device by the host device in the storage system of FIGS. 1A and 1B.
  • FIG. 2C is a diagram illustrating a physical page of a NAND flash memory in which a storage device writes write data and related spare data in the storage system of FIGS. 1A and 1B.
  • FIG. 3 is a flowchart illustrating an example in which the storage system of FIGS. 1A and 1B performs a write operation on write data and spare data associated therewith.
  • FIGS. 1A and 1B are diagram illustrating an example in which the storage system of FIGS. 1A and 1B performs a write operation on write data and spare data associated with the write data.
  • FIG. 5 is a flowchart illustrating an example in which a storage system of FIGS. 1A and 1B performs a read operation on read data.
  • FIG. 6 is a diagram illustrating an example in which the storage system of FIGS. 1A and 1B performs a read operation on read data.
  • FIG. 7 is a flowchart illustrating an example in which the storage system of FIGS. 1A and 1B perform a read operation on spare data.
  • FIG. 8 is a diagram illustrating an example in which the storage system of FIGS. 1A and 1B perform a read operation on spare data.
  • FIGS. 1A and 1B are block diagrams illustrating a storage system according to embodiments of the present invention
  • FIG. 2A is a diagram of write data transmitted by a host device to a storage device and spare data associated therewith in the storage system of FIGS. 1A and 1B
  • 2B is a diagram illustrating a method in which a host device transmits write data and related spare data to a storage device in the storage system of FIGS. 1A and 1B
  • FIG. 2C is a view of FIGS. 1A and 1B.
  • FIG. 1 is a diagram illustrating a physical page of a NAND flash memory in which a storage device writes write data and related spare data in a storage system. Referring to FIG.
  • the storage systems 100 and 200 may include storage devices 120 and 220 and host devices 140 and 240.
  • the storage devices 120 and 220 may correspond to NAND flash memory devices, and may include a solid state drive (SSD), a secure digital card (SDCARD), and universal flash storage.
  • SSD solid state drive
  • SDCARD secure digital card
  • UFS embedded multi-media card
  • compact flash card memory stick, memory stick, XD picture card, and the like.
  • this is merely an example, and the types of the storage devices 120 and 220 are not limited thereto.
  • the storage system 100 shown in FIG. 1A will be described for convenience of description.
  • the storage device 120 includes first to nth (where n is an integer of 1 or more) NAND flash memories 122-1,..., 122-n and a storage controller 124 that interact with each other. can do. At this time, the storage controller 124 may control the first to nth NAND flash memories 122-1,..., 122-n.
  • the storage device 120 is a random access memory device (eg, a DRAM device) due to physical characteristics of the first to n-th NAND flash memories 122-1,..., 122-n. Compared to), there are many restrictions in performing write, read and erase operations.
  • the storage device 120 supports the file system 142 by using a flash translation layer (that is, executing a software translation implemented by the flash translation layer), thereby reading, writing, erasing, merging, and copying.
  • the back operation, the compaction operation, the garbage collection operation, and the wear leveling operation may be performed.
  • the operations are performed by the flash translation layer using the mapping table (not shown) to convert the logical address generated in the file system 142 into the first through n-th NAND flash memories 122-1, ..., 122-. n) to perform an address mapping operation for converting to a physical address.
  • the mapping table not shown
  • the storage controller 124 of the storage device 120 may be provided with a flash translation layer 125 that performs an address mapping operation.
  • a host flash translation layer 245 is provided on the host controller 244 of the host device 240, and a storage flash is provided on the storage controller 224 of the storage device 220.
  • the translation layer 225 is provided, and the host flash translation layer 245 and the storage flash translation layer 225 may perform an address mapping operation.
  • the storage device 120 may further include other hardware or software components in addition to the first through n-th NAND flash memories 122-1,..., 122-n and the storage controller 124. Is self-explanatory.
  • the host device 140 may include a file system 142 and a host controller 144.
  • the file system 142 may generate a read command or a write command for data in block units BLK on the logical address based on the logical block based interface.
  • the host controller 144 may interact with the storage controller 124 of the storage device 120 to perform communication between the storage device 120 and the host device 140.
  • the file system 142 may be an extended file system (Ext4), an NT file system (NTS), or the like, but the file system 142 is not limited thereto.
  • the host controller 244 may include a host flash translation layer 245 to perform some functions of the flash translation layer.
  • the host device 240 can more accurately grasp the internal operation information of the storage device 220 through the interaction between the file system 242 and the host controller 244, the host device 240 may perform certain operations performed by the storage device 220. Efficiently support operations of (eg, garbage collection operations, etc.).
  • the host device 140 may further include other hardware or software components in addition to the file system 142 and the host controller 144.
  • a basic unit of a read operation and a write operation is a block unit (BLK), while in the storage device 120, a read operation and a write operation are performed.
  • the basic unit of the operation is a multiple of the physical page PHY-PAGE of the first to nth NAND flash memories 122-1,..., 122-n, and is generally larger than the block unit BLK.
  • the host device 140 and the storage device 120 transmit and receive data in a data transfer unit (SEC) corresponding to a sector size.
  • the sector size is generally 512 bytes, which is larger than the physical page size of the block unit or NAND flash memory. small.
  • the host device 140 and the storage device 120 transmits and receives data in a data transmission unit (SEC) corresponding to the sector size,
  • SEC data transmission unit
  • the host device 140 stores spare data SP1,..., Associated with the write data DAT1,..., DATm.
  • SPm may be collected and first transmitted to the storage device 120, and then write data DAT1,..., DATm may be transmitted to the storage device 120.
  • FIG. 2A illustrates write data DAT1,..., DATm that the host device 140 transmits to the storage device 120, and spare data SP1,..., SPm associated therewith.
  • write data DAT1,..., DATm are operated in a block unit BLK on a logical address.
  • the write data (DAT1, ..., DATm) are named as main data, and the write data (DAT1, ..., DATm) are respectively replaced with the spare data (SP1, ..., SPm).
  • the block unit BLK is illustrated as being 4 KB, but the block unit BLK is not limited thereto.
  • the spare data SP1,..., SPm may include information for a power-off recovery operation in relation to the write data DAT1,..., DATm.
  • the information for the power off recovery operation may be information about a file name, an offset in the file, and the like, when used by the file system 142, and may have some function of the flash conversion layer.
  • the information may be information about a logical page number.
  • the spare data SP1,..., SPm may include information for a transaction operation with respect to the write data DAT1,..., DATm.
  • the information for a transaction operation may be information about an ID of a transaction, a start / end of a transaction, a data checksum in a transaction, and the like.
  • this is merely an example, and information included in the spare data SP1,..., SPm is not limited thereto.
  • FIG. 2B shows how the host device 140 transmits write data DAT1,..., DATm and related spare data SP1,..., SPm to the storage device 120. have.
  • the host device 140 and the storage device 120 sectorize the write data DAT1,..., DATm and the spare data SP1,..., SPm associated therewith. Transmit and receive in a data transmission unit (SEC) corresponding to the size (ie, smaller than the block size).
  • SEC data transmission unit
  • the host device 140 reserves the spare data SP1,..., SPm associated with the write data.
  • a padding byte PB may be inserted.
  • the spare data SP1,..., SPm may be collected over a plurality of data transfer units SEC. Even in this case, the spare data SP1, ..., SPm are transmitted before the write data DAT1, ..., DATm.
  • the present invention may be associated with a packed command supported by the EMMC. The fact command supported by EMMC is a command that bundles and sends read / write commands at once.
  • spare data SP1,..., SPm may be carried in the remaining area of the fact command header.
  • the present invention is linked to a fact command supported by the EMMC, the first write command of the fact command may be used for spare data transmission.
  • FIG. 2C illustrates first through n-th NAND flash memories in which the storage device 120 writes write data DAT1,..., DATm, and spare data SP1,..., SPm associated therewith. It is a figure which shows the physical page (PHY-PAGE) of 122-1, ..., 122-n). As shown in FIG. 2C, the physical page PHY-PAGE includes a main area MAIN SPACE and a spare area SPARE SPACE. Generally, data is written in the main area MAIN SPACE, and an error correction code (ECC) for error correction or additional information of a flash conversion layer is written in the spare area SPARE SPACE.
  • ECC error correction code
  • the storage device 120 may write main data, that is, write data DAT1,..., DATm in the main area MAIN SPACE.
  • the spare data SP1, ..., SPm related to the write data DAT1, ..., DATm may be additionally written in a part of the spare area SPARE SPACE. That is, the storage device 120 not only writes an error correction code, additional information of the flash conversion layer, and the like in the spare area SPARE SPACE, but also spare data related to the write data DAT1,..., DATm. SP1, ..., SPm) can also be written.
  • the host device 140 may read a main read command and a physical page PHY for reading the main data DAT1,..., DATm written in the main area MAIN SPACE of the physical page PHY-PAGE.
  • the main data DAT1,. .., DATm) and spare data SP1,..., SPm may be provided.
  • the storage system 100 may physically store the first through nth NAND flash memories 122-1,..., 122-n in the storage device 120.
  • Part of the spare area SPARE SPACE of the page PHY-PAGE may be made available to the host device 140.
  • the host device 140 since the host device 140 may access the spare data SP1,..., SPm in the storage device 120 with less overhead, the host device 140 may access the spare device 120 in the storage device 120.
  • a power-off recovery operation or a transaction operation may be performed on a part of the spare area of the physical page PHY-PAGE of the first through n-th NAND flash memories 122-1, ..., 122-n.
  • the file system 142 provided in the host device 140 corresponds to a journaling file system (that is, when a journaling operation is performed in the storage system 100)
  • the size of the journaling data is The overall performance and lifespan of the storage system 100 can be greatly improved.
  • the present invention can be applied to the journaling operation of Ext4 or SQLite, but is not limited thereto.
  • the spare data SP1 to SPm are spare areas of the physical page PHY-PAGE of the first to nth NAND flash memories 122-1,.
  • the spare data SP1,..., SPm may be stored in the first to nth NAND flash memories 122-1,. Or a separate nonvolatile memory (eg, phase-change random access memory (PRAM) or magnetoresistive) provided in the storage device 120. random access memory (MRAM)).
  • PRAM phase-change random access memory
  • MRAM magnetoresistive random access memory
  • FIG. 3 is a flowchart illustrating an example in which the storage system of FIGS. 1A and 1B performs a write operation on write data and spare data associated therewith
  • FIG. 4 is a write data of the storage system of FIGS. 1A and 1B. And an example of performing a write operation on spare data related thereto.
  • the storage systems 100 and 200 of FIGS. 1A and 1B perform write operations on write data and related spare data.
  • the host devices 140 and 240 determine write data in units of blocks on a logical address by generating a write command (ie, denoted by W-CMD) (Step S120), and then store spare data related to the write data.
  • the data is transferred to the storage devices 120 and 220 in the unit of data transfer corresponding to the sector size (Step S140) (that is, denoted by SP-WRITE), and data written in succession to the spare data is stored in the storage unit.
  • Transmission (Step S160) (ie, denoted as DAT-WRITE) may be performed at 120 and 220. As illustrated in FIG.
  • data transmission of the storage systems 100 and 200 may be sequentially performed by dividing the first step PHASE1 for transmitting spare data and the second step PHASE2 for transmitting write data.
  • the write command is used to write write data. It may include a main write command (eg, write data command) and a spare write command (eg, send spare for succeeding writes command) for writing spare data associated with the write data.
  • spare data related to the write data may be transmitted to the storage devices 120 and 220 based on the spare write command in the first step PHASE1, and in the second step PHASE2 based on the main write command.
  • Write data may be transmitted to the storage devices 120 and 220.
  • the write command may include information about a start sector address of write data, a sector number of write data, and the like.
  • the host devices 140 and 240 may transfer the data to the storage devices 120 and 220 by rearranging the write data and the spare data associated therewith. .
  • FIG. 5 is a flowchart illustrating an example in which the storage system of FIGS. 1A and 1B performs a read operation on read data
  • FIG. 6 illustrates a storage system in FIGS. 1A and 1B performing a read operation on read data. It is a figure which shows an example to do.
  • the storage systems 100 and 200 of FIGS. 1A and 1B perform a read operation on read data.
  • the read command includes a main read command (eg, read data command) for reading read data and a spare read command (eg, read spare) for reading spare data related to the spare read target data. data command).
  • the host devices 140 and 240 may individually access read data and spare data in the storage devices 120 and 220.
  • FIG. 6 when the host devices 140 and 240 determine the read data in units of blocks on a logical address by generating a main read command (ie, indicated as MR-CMD), step S220.
  • the storage devices 120 and 220 may transmit read data to the host devices 140 and 240 in a data transmission unit (Step S240) (ie, denoted as DAT-READ).
  • the main read command may include information about a start sector address of the read data, the number of sectors of the read data, and the like.
  • the host devices 140 and 240 may receive read data from the storage devices 120 and 220 in a conventional manner.
  • the storage device 120 or 220 may read data and read data (ie, read data).
  • the spare data related to the read data corresponding to the spare read target data may be transmitted to the host devices 140 and 240 in a data transmission unit.
  • FIG. 7 is a flowchart illustrating an example in which the storage system of FIGS. 1A and 1B performs a read operation on spare data
  • FIG. 8 is a storage system of FIGS. 1A and 1B performing a read operation on spare data. It is a figure which shows an example to do.
  • the storage systems 100 and 200 of FIGS. 1A and 1B perform a read operation on spare data related to spare read target data.
  • the read command includes a main read command (eg, read data command) for reading read data and a spare read command (eg, read spare) for reading spare data related to the spare read target data. data command).
  • the host devices 140 and 240 may individually access read data and spare data in the storage devices 120 and 220. Specifically, as shown in FIG.
  • Step S320 when the host device 140 or 240 generates spare read commands (ie, SR-CMD) to determine spare read target data in block units on a logical address (Step S320),
  • the storage devices 120 and 220 may transmit spare data related to the spare read target data to the host devices 140 and 240 in a data transmission unit (Step S340) (ie, denoted as SP-READ).
  • the spare read command may include information about a start sector address of the spare read target data, the number of sectors of the spare read target data, and the like.
  • the total size of the spare data transmitted from the storage devices 120 and 220 to the host devices 140 and 240 may be calculated by Equation 1 below.
  • RB represents the total size of the spare data that the host device (140, 240) is transmitted from the storage device (120, 220)
  • SMD represents the total size of the data to be read spare
  • SZ represents the sector size, block size , Page size, or any unit
  • SBPS represents the size of spare data per sector, the size of spare data per block, the size of spare data per page, or the size of spare data per unit.
  • a portion of a spare area of a physical page of a NAND flash memory included in the storage device 120 or 220 may be replaced by a host device. 140, 240 can be used. Therefore, since the host devices 140 and 240 may individually access read data and spare data in the storage devices 120 and 220, the physical pages of the NAND flash memory included in the storage devices 120 and 220 may be provided. When several to several tens of bytes of metadata for power off recovery operation or transaction operation are stored in a part of the spare area of FIG. 1, unnecessary unnecessary write operations required for the above operations are reduced. Overall performance and lifespan of the storage systems 100 and 200 may be greatly improved.
  • read / write data ie, main data
  • spares associated with the host devices 140 and 240 and the storage devices 120 and 220 may be used. Data can be transmitted efficiently.
  • the storage system and the data transmission method thereof according to the embodiments of the present invention have been described with reference to the drawings, but the above description is illustrative and does not depart from the technical spirit of the present invention. It may be modified and changed by those who have it.
  • the present invention can be applied to a storage system having a storage device (ie, a NAND flash memory device). Accordingly, the present invention can be applied to a solid state drive (SSD), a secure digital card (SDCARD), a universal flash storage (UFS), an embedded multimedia card (EMMC), a CF card, a memory stick, an XD picture card, and the like.
  • SSD solid state drive
  • SDCARD secure digital card
  • UFS universal flash storage
  • EMMC embedded multimedia card
  • CF card compact flash card
  • storage system 120 storage device
  • NAND flash memory 124 storage controller
  • flash conversion layer 140 host device
  • NAND flash memory 224 storage controller

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

스토리지 시스템은 낸드 플래시 메모리와 낸드 플래시 메모리를 제어하는 스토리지 컨트롤러를 구비하는 스토리지 장치, 및 스토리지 컨트롤러와 인터액션을 수행하는 호스트 컨트롤러 및 논리 어드레스 상에서 블록 단위로 데이터들에 대한 읽기 커맨드 또는 쓰기 커맨드를 생성하는 파일 시스템을 구비하는 호스트 장치를 포함한다. 이 때, 이 때, 데이터들에 대한 읽기 커맨드 또는 쓰기 커맨드가 생성되면, 호스트 장치와 스토리지 장치는 데이터들을 섹터 크기에 상응하는 데이터 전송 단위로 송수신하고, 쓰기 커맨드에 의해 쓰기 데이터들이 결정되면, 호스트 장치는 쓰기 데이터들과 관련된 제 1 스페어 데이터들을 모아 스토리지 장치에 먼저 전송한 후, 쓰기 데이터들을 스토리지 장치에 전송한다.

Description

스토리지 시스템 및 이의 데이터 전송 방법
본 발명은 반도체 메모리 시스템에 관한 것으로, 보다 상세하게는 호스트 장치와 스토리지 장치(예를 들어, 낸드 플래시 메모리 장치)로 구성된 스토리지 시스템 및 이의 데이터 전송 방법에 관한 것이다.
반도체 메모리 장치는 전원이 공급되지 않는 상태에서 데이터를 보존할 수 있는지에 따라 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분될 수 있다. 최근에는, 반도체 메모리 장치의 소형화 및 대용량 추세에 따라, 비휘발성 메모리 장치 중에서 낸드 플래시 메모리 장치(NAND flash memory device)가 소형화 및 대용량에 적합하여 널리 사용되고 있고, 낸드 플래시 메모리 장치 형태의 스토리지 장치(예를 들어, 솔리드 스테이트 드라이브(solid state drive; SSD) 등)가 하드 디스크 드라이브(hard disk drive; HDD)를 대체하고 있는 추세이다. 일반적으로, 스토리지 장치는 적어도 하나 이상의 낸드 플래시 메모리 및 이를 제어하기 위한 스토리지 컨트롤러를 포함한다. 구체적으로, 스토리지 컨트롤러는 파일 시스템(file system)을 지원하기 위한 플래시 변환 레이어(flash translation layer)를 이용하여 논리 어드레스(logical address)를 물리 어드레스(physical address)로 변환하는 어드레스 맵핑(address mapping) 동작을 수행하고, 낸드 플래시 메모리에 대한 읽기(read) 동작, 쓰기(write) 동작, 소거(erase) 동작, 병합(merge) 동작, 카피백(copyback) 동작, 컴팩션(compaction) 동작, 가비지 콜렉션(garbage collection) 동작, 웨어 레벨링(wear leveling) 동작 등을 제어한다.
한편, 스토리지 장치의 스토리지 컨트롤러는 호스트 장치의 호스트 컨트롤러와 인터액션(interaction)을 수행할 수 있다. 이 때, 호스트 장치에서는 읽기 동작과 쓰기 동작의 기본 단위가 블록(block) 단위(예를 들어, 1KB, 2KB, 4KB 등)인 반면, 스토리지 장치에서는 읽기 동작과 쓰기 동작의 기본 단위가 낸드 플래시 메모리의 물리 페이지의 배수로서 상기 블록 단위보다 크고(예를 들어, 16KB 이상), 호스트 장치와 스토리지 장치는 데이터들을 섹터(sector) 크기에 상응하는 데이터 전송 단위로 송수신(즉, 논리 블록 기반 인터페이스)한다. 따라서, 종래에는 파워 오프 복구(power off recovery) 동작, 트랜잭션(transaction) 동작 등을 위하여 수 내지 수십 바이트(byte)의 메타(meta) 데이터들을 기입하는 경우에도, 호스트 장치에서 별도의 블록에 대한 쓰기 동작이 요청되어야 하고, 이것은 스토리지 장치에서 별도의 물리 페이지(physical page)에 대한 쓰기 동작을 발생시키는 문제점이 있었다. 이와 같이, 종래의 스토리지 시스템은 상기 동작들을 위한 수 내지 수십 바이트의 메타 데이터들을 위하여 4KB 정도의 쓰기 동작을 수행하기 때문에 비효율적일 뿐만 아니라, 낸드 플래시 메모리의 물리적인 특성상 쓰기 동작에 따른 소거 동작에 의하여 성능 및 수명이 저하되는 문제점을 가지고 있다.
본 발명의 일 목적은 논리 블록 기반 인터페이스(logical block-based interface)를 사용함에 있어서 스토리지 장치 내에 구비된 낸드 플래시 메모리의 물리 페이지의 스페어 영역 일부를 호스트 장치로 하여금 사용하게 할 수 있는 스토리지 시스템을 제공하는 것이다.
본 발명의 다른 목적은 호스트 장치와 스토리지 장치 사이에서 읽기/쓰기 데이터들(즉, 메인 데이터들) 및 이들과 관련된 스페어 데이터들을 효율적으로 전송할 수 있는 스토리지 시스템의 데이터 전송 방법을 제공하는 것이다.
다만, 본 발명의 목적은 상기 목적들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 스토리지 시스템은 적어도 하나 이상의 낸드 플래시 메모리 및 상기 낸드 플래시 메모리를 제어하는 스토리지 컨트롤러를 구비하는 스토리지 장치, 및 상기 스토리지 컨트롤러와 인터액션(interaction)을 수행하는 호스트 컨트롤러 및 논리 어드레스 상에서 블록(block) 단위로 데이터들에 대한 읽기 커맨드 또는 쓰기 커맨드를 생성하는 파일 시스템을 구비하는 호스트 장치를 포함할 수 있다. 이 때, 상기 데이터들에 대한 상기 읽기 커맨드 또는 상기 쓰기 커맨드가 생성되면, 상기 호스트 장치와 상기 스토리지 장치는 상기 데이터들을 섹터(sector) 크기에 상응하는 데이터 전송 단위로 송수신하고, 상기 쓰기 커맨드에 의해 쓰기 데이터들이 결정되면, 상기 호스트 장치는 상기 쓰기 데이터들과 관련된 제 1 스페어(spare) 데이터들을 모아 상기 스토리지 장치에 먼저 전송한 후, 상기 쓰기 데이터들을 상기 스토리지 장치에 전송할 수 있다.
일 실시예에 의하면, 상기 스토리지 컨트롤러에 어드레스 맵핑 동작을 수행하는 플래시 변환 레이어(flash translation layer; FTL)가 구비될 수 있다.
일 실시예에 의하면, 상기 호스트 컨트롤러에 호스트 플래시 변환 레이어가 구비되고, 상기 스토리지 컨트롤러에 스토리지 플래시 변환 레이어가 구비되며, 상기 호스트 플래시 변환 레이어와 상기 스토리지 플래시 변환 레이어가 어드레스 맵핑 동작을 수행할 수 있다.
일 실시예에 의하면, 상기 스토리지 장치는 상기 쓰기 데이터들을 상기 낸드 플래시 메모리의 물리 페이지의 메인 영역에 기입하고, 상기 제 1 스페어 데이터들을 상기 물리 페이지의 스페어 영역 일부에 기입할 수 있다.
일 실시예에 의하면, 상기 제 1 스페어 데이터들은 상기 쓰기 데이터들과 관련하여 파워 오프 복구(power off recovery) 동작을 위한 정보를 포함할 수 있다.
일 실시예에 의하면, 상기 제 1 스페어 데이터들은 상기 쓰기 데이터들과 관련하여 트랜잭션(transaction) 동작을 위한 정보를 포함할 수 있다.
일 실시예에 의하면, 상기 읽기 커맨드는 읽기 데이터들을 독출하기 위한 메인 읽기 커맨드 및 스페어 읽기 대상 데이터들과 관련된 제 2 스페어 데이터들을 독출하기 위한 스페어 읽기 커맨드를 포함할 수 있다.
일 실시예에 의하면, 상기 메인 읽기 커맨드에 의해 상기 읽기 데이터들이 결정되면, 상기 스토리지 장치는 상기 읽기 데이터들을 상기 호스트 장치에 전송할 수 있다.
일 실시예에 의하면, 상기 스페어 읽기 커맨드에 의해 상기 스페어 읽기 대상 데이터들이 결정되면, 상기 스토리지 장치는 상기 제 2 스페어 데이터들을 상기 호스트 장치에 전송할 수 있다.
일 실시예에 의하면, 상기 읽기 커맨드에 의해 상기 읽기 데이터들과 상기 읽기 데이터들에 상응하는 상기 스페어 읽기 대상 데이터들이 결정되면, 상기 스토리지 장치는 상기 읽기 데이터들 및 상기 제 2 스페어 데이터들을 상기 호스트 장치에 전송할 수 있다.
본 발명의 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 스토리지 시스템의 데이터 전송 방법은, 적어도 하나 이상의 낸드 플래시 메모리와 스토리지 컨트롤러를 구비한 스토리지 장치 및 파일 시스템과 호스트 컨트롤러를 구비한 호스트 장치를 포함하는 스토리지 시스템에 있어서, 상기 호스트 장치로 하여금 쓰기 커맨드를 생성함으로써 논리 어드레스 상에서 블록(block) 단위로 쓰기 데이터들을 결정하게 하고, 상기 호스트 장치로 하여금 상기 쓰기 데이터들과 관련된 제 1 스페어(spare) 데이터들을 모아 섹터(sector) 크기에 상응하는 데이터 전송 단위로 상기 스토리지 장치에 전송하게 하며, 상기 호스트 장치로 하여금 상기 제 1 스페어 데이터들에 연속하여 상기 쓰기 데이터들을 상기 데이터 전송 단위로 상기 스토리지 장치에 전송하게 할 수 있다.
일 실시예에 의하면, 상기 데이터 전송 방법은 상기 호스트 장치로 하여금 메인 읽기 커맨드를 생성함으로써 상기 논리 어드레스 상에서 상기 블록 단위로 읽기 데이터들을 결정하게 하고, 상기 스토리지 장치로 하여금 상기 읽기 데이터들을 상기 데이터 전송 단위로 상기 호스트 장치에 전송하게 할 수 있다.
일 실시예에 의하면, 상기 데이터 전송 방법은 상기 호스트 장치로 하여금 스페어 읽기 커맨드를 생성함으로써 상기 논리 어드레스 상에서 상기 블록 단위로 스페어 읽기 대상 데이터들을 결정하게 하고, 상기 스토리지 장치로 하여금 상기 스페어 읽기 대상 데이터들과 관련된 제 2 스페어 데이터들을 상기 데이터 전송 단위로 상기 호스트 장치에 전송하게 할 수 있다.
일 실시예에 의하면, 상기 데이터 전송 방법은 상기 호스트 장치로 하여금 읽기 커맨드를 생성함으로써 상기 논리 어드레스 상에서 상기 블록 단위로 읽기 데이터들을 결정하게 하고, 상기 스토리지 장치로 하여금 상기 읽기 데이터들 및 상기 읽기 데이터들과 관련된 제 2 스페어 데이터들을 상기 데이터 전송 단위로 상기 호스트 장치에 전송하게 할 수 있다.
본 발명의 실시예들에 따른 스토리지 시스템은 논리 블록 기반 인터페이스를 사용함에 있어서, 스토리지 장치 내에 구비된 낸드 플래시 메모리의 물리 페이지의 스페어 영역 일부를 호스트 장치로 하여금 사용하게 할 수 있다. 구체적으로, 상기 스토리지 시스템에서는 호스트 장치가 적은 오버헤드(overhead)로 스토리지 장치 내의 스페어 데이터들에 액세스(access)할 수 있기 때문에, 상기 스페어 영역 일부에 파워 오프 복구 동작 또는 트랜잭션 동작 등을 위한 수 내지 수십 바이트의 메타 데이터들이 저장되는 경우, 상기 동작들에 요구되던 종래의 불필요한 별도의 쓰기 동작이 감소되어, 상기 스토리지 시스템의 전반적인 성능과 수명이 크게 향상될 수 있다.
본 발명의 실시예들에 따른 스토리지 시스템의 데이터 전송 방법은 호스트 장치와 스토리지 장치 사이에서 읽기/쓰기 데이터들(즉, 메인 데이터들) 및 이들과 관련된 스페어 데이터들을 효율적으로 전송할 수 있다.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1a 및 도 1b는 본 발명의 실시예들에 따른 스토리지 시스템을 나타내는 블록도들이다.
도 2a는 도 1a 및 도 1b의 스토리지 시스템에서 호스트 장치가 스토리지 장치에 전송할 쓰기 데이터들 및 그와 관련된 스페어 데이터들을 나타내는 도면이다.
도 2b는 도 1a 및 도 1b의 스토리지 시스템에서 호스트 장치가 스토리지 장치에 쓰기 데이터들 및 그와 관련된 스페어 데이터들을 전송하는 방식을 나타내는 도면이다.
도 2c는 도 1a 및 도 1b의 스토리지 시스템에서 스토리지 장치가 쓰기 데이터들 및 그와 관련된 스페어 데이터들을 기입하는 낸드 플래시 메모리의 물리 페이지를 나타내는 도면이다.
도 3은 도 1a 및 도 1b의 스토리지 시스템이 쓰기 데이터들 및 그와 관련된 스페어 데이터들에 대한 쓰기 동작을 수행하는 일 예를 나타내는 순서도이다.
도 4는 도 1a 및 도 1b의 스토리지 시스템이 쓰기 데이터들 및 그와 관련된 스페어 데이터들에 대한 쓰기 동작을 수행하는 일 예를 나타내는 도면이다.
도 5는 도 1a 및 도 1b의 스토리지 시스템이 읽기 데이터들에 대한 읽기 동작을 수행하는 일 예를 나타내는 순서도이다.
도 6은 도 1a 및 도 1b의 스토리지 시스템이 읽기 데이터들에 대한 읽기 동작을 수행하는 일 예를 나타내는 도면이다.
도 7은 도 1a 및 도 1b의 스토리지 시스템이 스페어 데이터들에 대한 읽기 동작을 수행하는 일 예를 나타내는 순서도이다.
도 8은 도 1a 및 도 1b의 스토리지 시스템이 스페어 데이터들에 대한 읽기 동작을 수행하는 일 예를 나타내는 도면이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1a 및 도 1b는 본 발명의 실시예들에 따른 스토리지 시스템을 나타내는 블록도들이고, 도 2a는 도 1a 및 도 1b의 스토리지 시스템에서 호스트 장치가 스토리지 장치에 전송할 쓰기 데이터들 및 그와 관련된 스페어 데이터들을 나타내는 도면이며, 도 2b는 도 1a 및 도 1b의 스토리지 시스템에서 호스트 장치가 스토리지 장치에 쓰기 데이터들 및 그와 관련된 스페어 데이터들을 전송하는 방식을 나타내는 도면이고, 도 2c는 도 1a 및 도 1b의 스토리지 시스템에서 스토리지 장치가 쓰기 데이터들 및 그와 관련된 스페어 데이터들을 기입하는 낸드 플래시 메모리의 물리 페이지를 나타내는 도면이다.
도 1a 내지 도 2c를 참조하면, 스토리지 시스템(100, 200)은 스토리지 장치(120, 220) 및 호스트 장치(140, 240)를 포함할 수 있다. 이 때, 스토리지 장치(120, 220)는 낸드 플래시 메모리 장치에 상응할 수 있고, 솔리드 스테이트 드라이브(solid state drive; SSD), 시큐어 디지털 카드(secure digital card; SDCARD), 유니버셜 플래시 스토리지(universal flash storage; UFS), 임베디드 멀티미디어 카드(embedded multi media card; EMMC), CF 카드(compact flash card), 메모리 스틱(memory stick), XD 픽쳐 카드(XD picture card) 등으로 구현될 수 있다. 다만, 이것은 예시적인 것으로서, 스토리지 장치(120, 220)의 종류가 그에 한정되는 것은 아니다. 이하, 설명의 편의를 위하여 도 1a에 도시된 스토리지 시스템(100)을 중심으로 설명하기로 한다.
스토리지 장치(120)는 서로 인터액션을 수행하는 제 1 내지 제 n(단, n은 1이상의 정수) 낸드 플래시 메모리들(122-1, ..., 122-n)과 스토리지 컨트롤러(124)를 구비할 수 있다. 이 때, 스토리지 컨트롤러(124)는 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n)을 제어할 수 있다. 일반적으로, 스토리지 장치(120)는 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n)의 물리적인 특성상 랜덤 액세스 메모리 장치(예를 들어, 디램(DRAM) 장치 등)에 비하여 쓰기 동작, 읽기 동작 및 소거 동작을 수행함에 있어서 많은 제약을 가지고 있다. 이에, 스토리지 장치(120)는 플래시 변환 레이어를 이용(즉, 소프트웨어적으로 구현된 플래시 변환 레이어를 실행)하여 파일 시스템(142)을 지원함으로써, 읽기 동작, 쓰기 동작, 소거 동작, 병합 동작, 카피백 동작, 컴팩션 동작, 가비지 콜렉션 동작, 웨어 레벨링 동작 등을 수행할 수 있다. 이 때, 상기 동작들은 플래시 변환 레이어가 맵핑 테이블(미도시)을 이용하여 파일 시스템(142)에서 생성되는 논리 어드레스를 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n)의 물리 어드레스로 변환하는 어드레스 맵핑 동작을 수행함으로써 이루어질 수 있다. 일 실시예에서, 도 1a에 도시된 바와 같이, 스토리지 장치(120)의 스토리지 컨트롤러(124)에 어드레스 맵핑 동작을 수행하는 플래시 변환 레이어(125)가 구비될 수 있다. 다른 실시예에서, 도 1b에 도시된 바와 같이, 호스트 장치(240)의 호스트 컨트롤러(244)에 호스트 플래시 변환 레이어(245)가 구비되고, 스토리지 장치(220)의 스토리지 컨트롤러(224)에 스토리지 플래시 변환 레이어(225)가 구비되며, 호스트 플래시 변환 레이어(245)와 스토리지 플래시 변환 레이어(225)가 어드레스 맵핑 동작을 수행할 수 있다. 한편, 스토리지 장치(120)에는 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n) 및 스토리지 컨트롤러(124) 외에 다른 하드웨어적 또는 소프트웨어적 구성 요소들이 더 포함될 수 있음은 자명하다.
호스트 장치(140)는 파일 시스템(142)과 호스트 컨트롤러(144)를 구비할 수 있다. 이 때, 파일 시스템(142)은 논리 블록 기반 인터페이스에 기초하여 논리 어드레스 상에서 블록 단위(BLK)로 데이터들에 대한 읽기 커맨드(read command) 또는 쓰기 커맨드(write command)를 생성할 수 있다. 또한, 호스트 컨트롤러(144)는 스토리지 장치(120)의 스토리지 컨트롤러(124)와 인터액션을 수행함으로써, 스토리지 장치(120)와 호스트 장치(140) 사이의 통신을 수행할 수 있다. 이 때, 파일 시스템(142)은 확장 파일 시스템(Extended File System; Ext4), NT 파일 시스템(New Technology File System; NTFS) 등일 수 있으나, 파일 시스템(142)이 그에 한정되는 것은 아니다. 한편, 도 1b에 도시된 바와 같이, 호스트 컨트롤러(244)는 호스트 플래시 변환 레이어(245)를 포함함으로써 플래시 변환 레이어의 일부 기능을 수행할 수도 있다. 이러한 경우, 호스트 장치(240)는 파일 시스템(242)과 호스트 컨트롤러(244) 사이의 인터액션을 통해 스토리지 장치(220)의 내부 동작 정보를 보다 정확하게 파악할 수 있으므로, 스토리지 장치(220)에서 수행되는 소정의 동작들(예를 들어, 가비지 콜렉션 동작 등)을 효율적으로 지원(support)할 수 있다. 한편, 호스트 장치(140)에는 파일 시스템(142) 및 호스트 컨트롤러(144) 외에 다른 하드웨어적 또는 소프트웨어적 구성 요소들이 더 포함될 수 있음은 자명하다.
스토리지 시스템(100)은 논리 블록 기반 인터페이스에 기초하여 동작하기 때문에, 호스트 장치(140)에서는 읽기 동작과 쓰기 동작의 기본 단위가 블록 단위(BLK)인 반면, 스토리지 장치(120)에서는 읽기 동작과 쓰기 동작의 기본 단위가 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n)의 물리 페이지(PHY-PAGE)의 배수로서 통상 상기 블록 단위(BLK)보다 크다. 호스트 장치(140)와 스토리지 장치(120)는 데이터들을 섹터 크기에 상응하는 데이터 전송 단위(SEC)로 송수신하는데, 섹터 크기는 통상 512바이트로서 통상 상기 블록 단위나 낸드 플래시 메모리의 물리 페이지의 크기보다 작다. 따라서, 종래에는 파워 오프 복구 동작, 트랜잭션 동작 등을 위하여 수 내지 수십 바이트의 메타 데이터들을 기입하는 경우에도, 호스트 장치(140)에서 별도의 블록에 대한 쓰기 동작이 요청되어야 하고, 이것은 스토리지 장치(120)에서 별도의 물리 페이지(PHY-PAGE)에 대한 쓰기 동작을 발생시켰다. 이러한 문제점을 해결하기 위하여, 본 발명의 실시예들에 따른 스토리지 시스템(100)은 호스트 장치(140)와 스토리지 장치(120)가 데이터들을 섹터 크기에 상응하는 데이터 전송 단위(SEC)로 송수신하되, 호스트 장치(140)는 쓰기 커맨드를 생성하여 쓰기 데이터들(DAT1, ..., DATm)을 결정하면, 쓰기 데이터들(DAT1, ..., DATm)과 관련된 스페어 데이터들(SP1, ..., SPm)을 모아 스토리지 장치(120)에 먼저 전송한 후, 쓰기 데이터들(DAT1, ..., DATm)을 스토리지 장치(120)에 전송할 수 있다.
도 2a는 호스트 장치(140)가 스토리지 장치(120)에 전송할 쓰기 데이터들(DAT1, ..., DATm) 및 그와 관련된 스페어 데이터들(SP1, ..., SPm)을 보여주고 있다. 도 2a에 도시된 바와 같이, 쓰기 데이터들(DAT1, ..., DATm)은 논리 어드레스 상에서 블록 단위(BLK)로 운용된다. 이 때, 쓰기 데이터들(DAT1, ..., DATm)은 메인 데이터들로 명명되고, 쓰기 데이터들(DAT1, ..., DATm)은 각각 스페어 데이터들(SP1, ..., SPm)과 관련된다. 한편, 도 2a에서는 블록 단위(BLK)가 4KB인 것으로 도시되어 있지만, 블록 단위(BLK)는 그에 한정되지 않는다. 일 실시예에서, 스페어 데이터들(SP1, ..., SPm)은 쓰기 데이터들(DAT1, ..., DATm)과 관련하여 파워 오프 복구 동작을 위한 정보를 포함할 수 있다. 예를 들어, 파워 오프 복구 동작을 위한 정보는 파일 시스템(142)에 의해 사용되는 경우에는 파일(file) 이름, 파일 내에서의 오프셋(offset) 등에 관한 정보일 수 있고, 플래시 변환 레이어의 일부 기능을 수행하는 호스트 컨트롤러(244)에 의해 사용되는 경우에는 논리 페이지 번호 등에 관한 정보일 수 있다. 다른 실시예에서, 스페어 데이터들(SP1, ..., SPm)은 쓰기 데이터들(DAT1, ..., DATm)과 관련하여 트랜잭션 동작을 위한 정보를 포함할 수 있다. 예를 들어, 트랜잭션 동작을 위한 정보는 트랜잭션의 아이디(ID), 트랜잭션의 시작/끝(start/end), 트랜잭션 내의 데이터 체크섬(data checksum) 등에 관한 정보일 수 있다. 다만, 이것은 예시적인 것으로서, 스페어 데이터들(SP1, ..., SPm)이 포함하는 정보가 그에 한정되는 것은 아니다.
도 2b는 호스트 장치(140)가 스토리지 장치(120)에 쓰기 데이터들(DAT1, ..., DATm) 및 그와 관련된 스페어 데이터들(SP1, ..., SPm)을 전송하는 방식을 보여주고 있다. 도 2b에 도시된 바와 같이, 호스트 장치(140)와 스토리지 장치(120)는 쓰기 데이터들(DAT1, ..., DATm)과 그와 관련된 스페어 데이터들(SP1, ..., SPm)을 섹터 크기(즉, 블록 크기보다 상대적으로 작음)에 상응하는 데이터 전송 단위(SEC)로 송수신한다. 이 때, 호스트 장치(140)는 쓰기 데이터들(DAT1, ..., DATm)이 결정되면, 쓰기 데이터들(DAT1, ..., DATm)과 관련된 스페어 데이터들(SP1, ..., SPm)을 모아 스토리지 장치(120)에 먼저 전송하고, 쓰기 데이터들(DAT1, ..., DATm)을 스토리지 장치(120)에 전송할 수 있다. 실시예에 따라, 패딩 바이트(padding byte)(PB) 등이 삽입될 수 있다. 도 2b에서는 스페어 데이터들(SP1, ..., SPm)의 전체 크기가 섹터 크기보다 작아 하나의 데이터 전송 단위(SEC)에 모아져 있는 것으로 도시되어 있으나, 스페어 데이터들(SP1, ..., SPm)의 전체 크기가 섹터 크기보다 큰 경우, 스페어 데이터들(SP1, ..., SPm)은 복수의 데이터 전송 단위(SEC)들에 걸쳐 모아질 수도 있다. 이러한 경우에도, 스페어 데이터들(SP1, ..., SPm)은 쓰기 데이터들(DAT1, ..., DATm)보다 먼저 전송되는 것이다. 한편, 실시예에 따라, 본 발명은 EMMC에서 지원하는 팩트 커맨드(packed command)와 연계될 수 있다. EMMC에서 지원하는 팩트 커맨드는 읽기/쓰기 커맨드들을 한 번에 묶어서 전송하는 커맨드이다. 예를 들어, 본 발명이 EMMC에서 지원하는 팩트 커맨드와 연계되는 경우, 팩트 커맨드 헤더(header)의 남는 영역에 스페어 데이터들(SP1, ..., SPm)이 실려서 전송될 수 있다. 나아가, 본 발명이 EMMC에서 지원하는 팩트 커맨드와 연계되는 경우, 팩트 커맨드의 첫 번째 쓰기 커맨드를 스페어 데이터 전송에 활용할 수도 있다.
도 2c는 스토리지 장치(120)가 쓰기 데이터들(DAT1, ..., DATm) 및 그와 관련된 스페어 데이터들(SP1, ..., SPm)을 기입하는 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n)의 물리 페이지(PHY-PAGE)를 나타내는 도면이다. 도 2c에 도시된 바와 같이, 물리 페이지(PHY-PAGE)는 메인 영역(MAIN SPACE)과 스페어 영역(SPARE SPACE)으로 이루어져 있다. 일반적으로, 메인 영역(MAIN SPACE)에는 데이터들이 기입되고, 스페어 영역(SPARE SPACE)에는 에러 정정을 위한 에러 정정 코드(error correction code; ECC)나 플래시 변환 레이어의 부가 정보 등이 기입된다. 그러나, 본 발명의 실시예들에 따른 스토리지 시스템(100)에서는, 스토리지 장치(120)가 메인 영역(MAIN SPACE)에는 메인 데이터들 즉, 쓰기 데이터들(DAT1, ..., DATm)을 기입할 수 있고, 스페어 영역(SPARE SPACE) 일부에 쓰기 데이터들(DAT1, ..., DATm)과 관련된 스페어 데이터들(SP1, ..., SPm)을 추가적으로 기입할 수 있다. 즉, 스토리지 장치(120)는 스페어 영역(SPARE SPACE)을 에러 정정 코드, 플래시 변환 레이어의 부가 정보 등을 기입할 뿐만 아니라, 쓰기 데이터들(DAT1, ..., DATm)과 관련된 스페어 데이터들(SP1, ..., SPm)까지도 기입할 수 있다. 이후, 호스트 장치(140)는 물리 페이지(PHY-PAGE)의 메인 영역(MAIN SPACE)에 기입되어 있는 메인 데이터들(DAT1, ..., DATm)을 독출하기 위한 메인 읽기 커맨드 및 물리 페이지(PHY-PAGE)의 스페어 영역(SPARE SPACE)에 기입되어 있는 스페어 데이터들(SP1, ..., SPm)을 독출하기 위한 스페어 읽기 커맨드를 생성함으로써, 스토리지 장치(120)로부터 메인 데이터들(DAT1, ..., DATm)와 스페어 데이터들(SP1, ..., SPm)을 각각 제공받을 수 있다.
이와 같이, 스토리지 시스템(100)은 논리 블록 기반 인터페이스를 사용함에 있어서, 스토리지 장치(120) 내에 구비된 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n)의 물리 페이지(PHY-PAGE)의 스페어 영역(SPARE SPACE) 일부를 호스트 장치(140)로 하여금 사용하게 할 수 있다. 구체적으로, 스토리지 시스템(100)에서는 호스트 장치(140)가 적은 오버헤드로 스토리지 장치(120) 내의 스페어 데이터들(SP1, ..., SPm)에 액세스할 수 있기 때문에, 스토리지 장치(120) 내에 구비된 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n)의 물리 페이지(PHY-PAGE)의 스페어 영역(SPARE SPACE) 일부에 파워 오프 복구 동작 또는 트랜잭션 동작 등을 위한 수 내지 수십 바이트의 메타 데이터들이 저장되는 경우, 상기 동작들에 요구되던 종래의 불필요한 별도의 쓰기 동작이 감소되어, 스토리지 시스템(100)의 전반적인 성능과 수명이 크게 향상될 수 있다. 또한, 호스트 장치(140)에 구비된 파일 시스템(142)이 저널링 파일 시스템(journaling file system)에 상응하는 경우(즉, 스토리지 시스템(100)에서 저널링 동작이 수행되는 경우), 저널링 데이터의 크기가 감소되어 스토리지 시스템(100)의 전반적인 성능 및 수명이 크게 향상될 수 있다. 예를 들어, 본 발명은 Ext4 또는 SQLite의 저널링 동작에 적용될 수 있으나, 그에 한정되는 것은 아니다. 한편, 상기에서는 스페어 데이터들(SP1, ..., SPm)이 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n)의 물리 페이지(PHY-PAGE)의 스페어 영역(SPARE SPACE)에 저장되는 것으로 설명되었으나, 실시예에 따라, 스페어 데이터들(SP1, ..., SPm)은 제 1 내지 제 n 낸드 플래시 메모리들(122-1, ..., 122-n)의 별도의 물리 페이지(PHY-PAGE)에 저장될 수도 있고, 스토리지 장치(120)에 구비되는 별도의 비휘발성 메모리(예를 들어, 피램(phase-change random access memory; PRAM), 엠램(magnetoresistive random access memory; MRAM) 등)에 저장될 수도 있다. 이하, 도 3 내지 도 8을 참조하여, 스토리지 시스템(100)에서 수행되는 쓰기 동작과 읽기 동작에 대해 자세하게 설명하기로 한다.
도 3은 도 1a 및 도 1b의 스토리지 시스템이 쓰기 데이터들 및 그와 관련된 스페어 데이터들에 대한 쓰기 동작을 수행하는 일 예를 나타내는 순서도이고, 도 4는 도 1a 및 도 1b의 스토리지 시스템이 쓰기 데이터들 및 그와 관련된 스페어 데이터들에 대한 쓰기 동작을 수행하는 일 예를 나타내는 도면이다.
도 3 및 도 4를 참조하면, 도 1a 및 도 1b의 스토리지 시스템(100, 200)이 쓰기 데이터들 및 그와 관련된 스페어 데이터들에 대한 쓰기 동작을 수행하는 것이 도시되어 있다. 구체적으로, 호스트 장치(140, 240)는 쓰기 커맨드를 생성(즉, W-CMD로 표시)함으로써 논리 어드레스 상에서 블록 단위로 쓰기 데이터들을 결정(Step S120)한 후, 쓰기 데이터들과 관련된 스페어 데이터들을 모아 섹터 크기에 상응하는 데이터 전송 단위로 스토리지 장치(120, 220)에 먼저 전송(Step S140)(즉, SP-WRITE로 표시)하고, 스페어 데이터들에 연속하여 쓰기 데이터들을 데이터 전송 단위로 스토리지 장치(120, 220)에 전송(Step S160)(즉, DAT-WRITE로 표시)할 수 있다. 도 4에 도시된 바와 같이, 스토리지 시스템(100, 200)의 데이터 전송은 스페어 데이터들을 전송하는 제 1 단계(PHASE1)과 쓰기 데이터들을 전송하는 제 2 단계(PHASE2)로 나누어 순차적으로 수행될 수 있다. 한편, 도 4에서는 호스트 장치(140, 240)가 쓰기 커맨드에 기초하여 제 1 단계(PHASE1)와 제 2 단계(PHASE2)를 순차적으로 수행하는 것으로 도시되어 있으나, 쓰기 커맨드는 쓰기 데이터들을 기입하기 위한 메인 쓰기 커맨드(예를 들어, write data command) 및 쓰기 데이터들과 관련된 스페어 데이터들을 기입하기 위한 스페어 쓰기 커맨드(예를 들어, send spare for succeeding writes command)를 포함할 수도 있다. 이 경우, 제 1 단계(PHASE1)에서는 스페어 쓰기 커맨드에 기초하여 쓰기 데이터들과 관련된 스페어 데이터들이 스토리지 장치(120, 220)에 전송될 수 있고, 제 2 단계(PHASE2)에서는 메인 쓰기 커맨드에 기초하여 쓰기 데이터들이 스토리지 장치(120, 220)에 전송될 수 있다. 한편, 쓰기 커맨드는 쓰기 데이터들의 시작 섹터 어드레스, 쓰기 데이터들의 섹터 개수 등에 관한 정보를 포함할 수 있다. 이와 같이, 도 1a 및 도 1b의 스토리지 시스템(100, 200)에서는 호스트 장치(140, 240)가 쓰기 데이터들 및 그와 관련된 스페어 데이터들을 재정렬함으로써 스토리지 장치(120, 220)에 이들을 함께 전송할 수 있다.
도 5는 도 1a 및 도 1b의 스토리지 시스템이 읽기 데이터들에 대한 읽기 동작을 수행하는 일 예를 나타내는 순서도이고, 도 6은 도 1a 및 도 1b의 스토리지 시스템이 읽기 데이터들에 대한 읽기 동작을 수행하는 일 예를 나타내는 도면이다.
도 5 및 도 6을 참조하면, 도 1a 및 도 1b의 스토리지 시스템(100, 200)이 읽기 데이터들에 대한 읽기 동작을 수행하는 것이 도시되어 있다. 상술한 바와 같이, 읽기 커맨드는 읽기 데이터들을 독출하기 위한 메인 읽기 커맨드(예를 들어, read data command) 및 스페어 읽기 대상 데이터들과 관련된 스페어 데이터들을 독출하기 위한 스페어 읽기 커맨드(예를 들어, read spare data command)를 포함할 수 있다. 그 결과, 도 1a 및 도 1b의 스토리지 시스템(100, 200)에서는 호스트 장치(140, 240)가 스토리지 장치(120, 220) 내의 읽기 데이터들과 스페어 데이터들에 개별적으로 액세스할 수 있다. 구체적으로, 도 6에 도시된 바와 같이, 호스트 장치(140, 240)가 메인 읽기 커맨드를 생성(즉, MR-CMD로 표시)함으로써 논리 어드레스 상에서 블록 단위로 읽기 데이터들을 결정(Step S220)하면, 스토리지 장치(120, 220)는 읽기 데이터들을 데이터 전송 단위로 호스트 장치(140, 240)에 전송(Step S240)(즉, DAT-READ로 표시)할 수 있다. 이 때, 메인 읽기 커맨드는 읽기 데이터들의 시작 섹터 어드레스, 읽기 데이터들의 섹터 개수 등에 관한 정보를 포함할 수 있다. 이와 같이, 도 1a 및 도 1b의 스토리지 시스템(100, 200)에서는 호스트 장치(140, 240)가 종래와 같은 방식으로 스토리지 장치(120, 220)로부터 읽기 데이터들을 전송받을 수 있다. 뿐만 아니라, 실시예에 따라, 호스트 장치(140, 240)가 읽기 커맨드를 생성함으로써 논리 어드레스 상에서 블록 단위로 읽기 데이터들을 결정하면, 스토리지 장치(120, 220)가 읽기 데이터들 및 읽기 데이터들(즉, 여기서는 읽기 데이터들이 스페어 읽기 대상 데이터들에 상응함)과 관련된 스페어 데이터들을 데이터 전송 단위로 호스트 장치(140, 240)에 전송할 수도 있다.
도 7은 도 1a 및 도 1b의 스토리지 시스템이 스페어 데이터들에 대한 읽기 동작을 수행하는 일 예를 나타내는 순서도이고, 도 8은 도 1a 및 도 1b의 스토리지 시스템이 스페어 데이터들에 대한 읽기 동작을 수행하는 일 예를 나타내는 도면이다.
도 7 및 도 8을 참조하면, 도 1a 및 도 1b의 스토리지 시스템(100, 200)이 스페어 읽기 대상 데이터들과 관련된 스페어 데이터들에 대한 읽기 동작을 수행하는 것이 도시되어 있다. 상술한 바와 같이, 읽기 커맨드는 읽기 데이터들을 독출하기 위한 메인 읽기 커맨드(예를 들어, read data command) 및 스페어 읽기 대상 데이터들과 관련된 스페어 데이터들을 독출하기 위한 스페어 읽기 커맨드(예를 들어, read spare data command)를 포함할 수 있다. 그 결과, 도 1a 및 도 1b의 스토리지 시스템(100, 200)에서는 호스트 장치(140, 240)가 스토리지 장치(120, 220) 내의 읽기 데이터들과 스페어 데이터들에 개별적으로 액세스할 수 있다. 구체적으로, 도 8에 도시된 바와 같이, 호스트 장치(140, 240)가 스페어 읽기 커맨드를 생성(즉, SR-CMD)함으로써 논리 어드레스 상에서 블록 단위로 스페어 읽기 대상 데이터들을 결정(Step S320)하면, 스토리지 장치(120, 220)가 스페어 읽기 대상 데이터들과 관련된 스페어 데이터들을 데이터 전송 단위로 호스트 장치(140, 240)에 전송(Step S340)(즉, SP-READ로 표시)할 수 있다. 이 때, 스페어 읽기 커맨드는 스페어 읽기 대상 데이터들의 시작 섹터 어드레스, 스페어 읽기 대상 데이터들의 섹터 개수 등에 관한 정보를 포함할 수 있다. 한편, 호스트 장치(140, 240)가 스토리지 장치(120, 220)로부터 전송받는 스페어 데이터들의 전체 크기는 다음 [수식 1]로 계산될 수 있다.
[수식 1]
Figure PCTKR2013012003-appb-I000001
(단, RB는 호스트 장치(140, 240)가 스토리지 장치(120, 220)로부터 전송받는 스페어 데이터들의 전체 크기를 나타내고, SMD는 스페어 읽기 대상 데이터들의 전체 크기를 나타내며, SZ는 섹터 크기, 블록 크기, 페이지 크기, 또는 임의의 단위를 나타내고, SBPS는 섹터 당 스페어 데이터들의 크기, 블록 당 스페어 데이터들의 크기, 페이지 당 스페어 데이터들의 크기, 또는 임의의 단위 당 스페어 데이터들의 크기를 나타낸다.)
이와 같이, 도 1a 및 도 1b의 스토리지 시스템(100, 200)은 논리 블록 기반 인터페이스를 사용함에 있어서, 스토리지 장치(120, 220) 내에 구비된 낸드 플래시 메모리의 물리 페이지의 스페어 영역 일부를 호스트 장치(140, 240)로 하여금 사용하게 할 수 있다. 따라서, 호스트 장치(140, 240)가 스토리지 장치(120, 220) 내의 읽기 데이터들과 스페어 데이터들에 개별적으로 액세스할 수 있기 때문에, 스토리지 장치(120, 220) 내에 구비된 낸드 플래시 메모리의 물리 페이지의 스페어 영역 일부에 파워 오프 복구 동작 또는 트랜잭션 동작 등을 위한 수 내지 수십 바이트의 메타 데이터들이 저장되는 경우, 상기 동작들에 요구되던 종래의 불필요한 별도의 쓰기 동작이 감소되어, 도 1a 및 도 1b의 스토리지 시스템(100, 200)의 전반적인 성능과 수명이 크게 향상될 수 있다. 또한, 도 1a 및 도 1b의 스토리지 시스템(100, 200)에서는 호스트 장치(140, 240)와 스토리지 장치(120, 220) 사이에서 읽기/쓰기 데이터들(즉, 메인 데이터들) 및 이들과 관련된 스페어 데이터들이 효율적으로 전송될 수 있다. 이상, 본 발명의 실시예들에 따른 스토리지 시스템 및 이의 데이터 전송 방법에 대해 도면을 참조하여 설명하였지만, 상기 설명은 예시적인 것으로서 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 수정 및 변경될 수 있을 것이다.
본 발명은 스토리지 장치(즉, 낸드 플래시 메모리 장치)를 구비한 스토리지 시스템에 적용될 수 있다. 따라서, 본 발명은 솔리드 스테이트 드라이브(SSD), 시큐어 디지털 카드(SDCARD), 유니버셜 플래시 스토리지(UFS), 임베디드 멀티미디어 카드(EMMC), CF 카드, 메모리 스틱, XD 픽쳐 카드 등에 적용될 수 있다.
이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
* 부호의 설명
100: 스토리지 시스템 120: 스토리지 장치
122: 낸드 플래시 메모리 124: 스토리지 컨트롤러
125: 플래시 변환 레이어 140: 호스트 장치
142: 파일 시스템 144: 호스트 컨트롤러
200: 스토리지 시스템 220: 스토리지 장치
222: 낸드 플래시 메모리 224: 스토리지 컨트롤러
225: 스토리지 플래시 변환 레이어 240: 호스트 장치
242: 파일 시스템 244: 호스트 컨트롤러
245: 호스트 플래시 변환 레이어

Claims (14)

  1. 적어도 하나 이상의 낸드 플래시 메모리 및 상기 낸드 플래시 메모리를 제어하는 스토리지 컨트롤러를 구비하는 스토리지 장치; 및
    상기 스토리지 컨트롤러와 인터액션(interaction)을 수행하는 호스트 컨트롤러 및 논리 어드레스 상에서 블록(block) 단위로 데이터들에 대한 읽기 커맨드 또는 쓰기 커맨드를 생성하는 파일 시스템을 구비하는 호스트 장치를 포함하고,
    상기 데이터들에 대한 상기 읽기 커맨드 또는 상기 쓰기 커맨드가 생성되면, 상기 호스트 장치와 상기 스토리지 장치는 상기 데이터들을 섹터(sector) 크기에 상응하는 데이터 전송 단위로 송수신하며,
    상기 쓰기 커맨드에 의해 쓰기 데이터들이 결정되면, 상기 호스트 장치는 상기 쓰기 데이터들과 관련된 제 1 스페어(spare) 데이터들을 모아 상기 스토리지 장치에 먼저 전송한 후, 상기 쓰기 데이터들을 상기 스토리지 장치에 전송하는 것을 특징으로 하는 스토리지 시스템.
  2. 제 1 항에 있어서, 상기 스토리지 컨트롤러에 어드레스 맵핑 동작을 수행하는 플래시 변환 레이어(flash translation layer; FTL)가 구비되는 것을 특징으로 하는 스토리지 시스템.
  3. 제 1 항에 있어서, 상기 호스트 컨트롤러에 호스트 플래시 변환 레이어가 구비되고, 상기 스토리지 컨트롤러에 스토리지 플래시 변환 레이어가 구비되며, 상기 호스트 플래시 변환 레이어와 상기 스토리지 플래시 변환 레이어가 어드레스 맵핑 동작을 수행하는 것을 특징으로 하는 스토리지 시스템.
  4. 제 1 항에 있어서, 상기 스토리지 장치는 상기 쓰기 데이터들을 상기 낸드 플래시 메모리의 물리 페이지의 메인 영역에 기입하고, 상기 제 1 스페어 데이터들을 상기 물리 페이지의 스페어 영역 일부에 기입하는 것을 특징으로 하는 스토리지 시스템.
  5. 제 4 항에 있어서, 상기 제 1 스페어 데이터들은 상기 쓰기 데이터들과 관련하여 파워 오프 복구(power off recovery) 동작을 위한 정보를 포함하는 것을 특징으로 하는 스토리지 시스템.
  6. 제 4 항에 있어서, 상기 제 1 스페어 데이터들은 상기 쓰기 데이터들과 관련하여 트랜잭션(transaction) 동작을 위한 정보를 포함하는 것을 특징으로 하는 스토리지 시스템.
  7. 제 1 항에 있어서, 상기 읽기 커맨드는 읽기 데이터들을 독출하기 위한 메인 읽기 커맨드 및 스페어 읽기 대상 데이터들과 관련된 제 2 스페어 데이터들을 독출하기 위한 스페어 읽기 커맨드를 포함하는 것을 특징으로 하는 스토리지 시스템.
  8. 제 7 항에 있어서, 상기 메인 읽기 커맨드에 의해 상기 읽기 데이터들이 결정되면, 상기 스토리지 장치는 상기 읽기 데이터들을 상기 호스트 장치에 전송하는 것을 특징으로 하는 스토리지 시스템.
  9. 제 7 항에 있어서, 상기 스페어 읽기 커맨드에 의해 상기 스페어 읽기 대상 데이터들이 결정되면, 상기 스토리지 장치는 상기 제 2 스페어 데이터들을 상기 호스트 장치에 전송하는 것을 특징으로 하는 스토리지 시스템.
  10. 제 7 항에 있어서, 상기 읽기 커맨드에 의해 상기 읽기 데이터들과 상기 읽기 데이터들에 상응하는 상기 스페어 읽기 대상 데이터들이 결정되면, 상기 스토리지 장치는 상기 읽기 데이터들 및 상기 제 2 스페어 데이터들을 상기 호스트 장치에 전송하는 것을 특징으로 하는 스토리지 시스템.
  11. 적어도 하나 이상의 낸드 플래시 메모리와 스토리지 컨트롤러를 구비한 스토리지 장치 및 파일 시스템과 호스트 컨트롤러를 구비한 호스트 장치를 포함하는 스토리지 시스템의 데이터 전송 방법에 있어서,
    상기 호스트 장치가 쓰기 커맨드를 생성함으로써 논리 어드레스 상에서 블록(block) 단위로 쓰기 데이터들을 결정하는 단계;
    상기 호스트 장치가 상기 쓰기 데이터들과 관련된 제 1 스페어(spare) 데이터들을 모아 섹터(sector) 크기에 상응하는 데이터 전송 단위로 상기 스토리지 장치에 전송하는 단계; 및
    상기 호스트 장치가 상기 제 1 스페어 데이터들에 연속하여 상기 쓰기 데이터들을 상기 데이터 전송 단위로 상기 스토리지 장치에 전송하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 데이터 전송 방법.
  12. 제 11 항에 있어서,
    상기 호스트 장치가 메인 읽기 커맨드를 생성함으로써 상기 논리 어드레스 상에서 상기 블록 단위로 읽기 데이터들을 결정하는 단계; 및
    상기 스토리지 장치가 상기 읽기 데이터들을 상기 데이터 전송 단위로 상기 호스트 장치에 전송하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 시스템의 데이터 전송 방법.
  13. 제 11 항에 있어서,
    상기 호스트 장치가 스페어 읽기 커맨드를 생성함으로써 상기 논리 어드레스 상에서 상기 블록 단위로 스페어 읽기 대상 데이터들을 결정하는 단계; 및
    상기 스토리지 장치가 상기 스페어 읽기 대상 데이터들과 관련된 제 2 스페어 데이터들을 상기 데이터 전송 단위로 상기 호스트 장치에 전송하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 시스템의 데이터 전송 방법.
  14. 제 11 항에 있어서,
    상기 호스트 장치가 읽기 커맨드를 생성함으로써 상기 논리 어드레스 상에서 상기 블록 단위로 읽기 데이터들을 결정하는 단계; 및
    상기 스토리지 장치가 상기 읽기 데이터들 및 상기 읽기 데이터들과 관련된 제 2 스페어 데이터들을 상기 데이터 전송 단위로 상기 호스트 장치에 전송하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 시스템의 데이터 전송 방법.
PCT/KR2013/012003 2013-03-15 2013-12-23 스토리지 시스템 및 이의 데이터 전송 방법 WO2014142427A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/776,326 US20160041759A1 (en) 2013-03-15 2013-12-23 Storage system and data transmitting method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130027846A KR101369408B1 (ko) 2013-03-15 2013-03-15 스토리지 시스템 및 이의 데이터 전송 방법
KR10-2013-0027846 2013-03-15

Publications (1)

Publication Number Publication Date
WO2014142427A1 true WO2014142427A1 (ko) 2014-09-18

Family

ID=50647328

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/012003 WO2014142427A1 (ko) 2013-03-15 2013-12-23 스토리지 시스템 및 이의 데이터 전송 방법

Country Status (3)

Country Link
US (1) US20160041759A1 (ko)
KR (1) KR101369408B1 (ko)
WO (1) WO2014142427A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569126B2 (en) 2015-01-22 2017-02-14 Silicon Motion, Inc. Data storage device and flash memory control method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102473197B1 (ko) * 2015-06-08 2022-12-02 삼성전자주식회사 읽기 데이터를 전송 단위로 전송하는 불휘발성 메모리 모듈, 스토리지 장치, 및 전자 장치
KR102651425B1 (ko) 2016-06-30 2024-03-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11061606B2 (en) * 2018-06-29 2021-07-13 Micron Technology, Inc. NAND temperature-aware operations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050069218A (ko) * 2003-12-31 2005-07-05 삼성전자주식회사 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템
JP2007257283A (ja) * 2006-03-23 2007-10-04 Tdk Corp メモリコントローラ及びフラッシュメモリシステム
KR20080067548A (ko) * 2007-01-16 2008-07-21 삼성전자주식회사 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로
KR101185818B1 (ko) * 2011-09-19 2012-11-09 주식회사 가야데이터 고체 상태 드라이브를 이용한 연속 데이터 보호 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
KR20130084846A (ko) * 2012-01-18 2013-07-26 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050069218A (ko) * 2003-12-31 2005-07-05 삼성전자주식회사 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템
JP2007257283A (ja) * 2006-03-23 2007-10-04 Tdk Corp メモリコントローラ及びフラッシュメモリシステム
KR20080067548A (ko) * 2007-01-16 2008-07-21 삼성전자주식회사 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로
KR101185818B1 (ko) * 2011-09-19 2012-11-09 주식회사 가야데이터 고체 상태 드라이브를 이용한 연속 데이터 보호 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569126B2 (en) 2015-01-22 2017-02-14 Silicon Motion, Inc. Data storage device and flash memory control method

Also Published As

Publication number Publication date
KR101369408B1 (ko) 2014-03-04
US20160041759A1 (en) 2016-02-11

Similar Documents

Publication Publication Date Title
US11636032B2 (en) Memory system, data storage device, user device and data management method thereof
WO2014171618A1 (ko) 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법
KR100389867B1 (ko) 플래시 메모리 관리방법
US8166258B2 (en) Skip operations for solid state disks
JP4533956B2 (ja) フラッシュメモリシステムのデータ記憶容量の解放
US8166233B2 (en) Garbage collection for solid state disks
KR101769883B1 (ko) 저장부 할당 장치, 시스템, 및 방법
KR100630980B1 (ko) 메모리 카드 및 반도체 장치
US20160306552A1 (en) Low write amplification in solid state drive
US20100287217A1 (en) Host control of background garbage collection in a data storage device
TW200935220A (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
JP2008198208A (ja) ホストデータ処理装置の動作方法、ホストデータ処理装置並びにデータ格納装置
WO2012016089A2 (en) Apparatus, system, and method for conditional and atomic storage operations
WO2005103903A1 (ja) 不揮発性記憶システム
CN106557432B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
JP2018101411A (ja) データストレージデバイスおよびその操作方法
TW201440059A (zh) 用於快閃儲存裝置之半區塊管理
JP2009503743A (ja) データファイルを直接記憶するメモリブロックの管理
JP4441577B2 (ja) 固定サイズ格納ブロックを有するメモリシステムにおける変換データ単位格納
WO2016195242A1 (ko) 비휘발성 메모리 시스템
JP2009519555A (ja) 論理アドレス形ファイル記憶
WO2014142427A1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
JP2009518698A (ja) 改良されたホストインターフェイス
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け
US7969781B2 (en) Method of controlling memory system

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14776326

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

Country of ref document: EP

Kind code of ref document: A1