[go: up one dir, main page]

WO2014171618A1 - 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법 - Google Patents

스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법 Download PDF

Info

Publication number
WO2014171618A1
WO2014171618A1 PCT/KR2014/000867 KR2014000867W WO2014171618A1 WO 2014171618 A1 WO2014171618 A1 WO 2014171618A1 KR 2014000867 W KR2014000867 W KR 2014000867W WO 2014171618 A1 WO2014171618 A1 WO 2014171618A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage
logical page
write
output queue
Prior art date
Application number
PCT/KR2014/000867
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/785,073 priority Critical patent/US20160162187A1/en
Publication of WO2014171618A1 publication Critical patent/WO2014171618A1/ko

Links

Images

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Definitions

  • the present invention relates to a semiconductor memory system, and more particularly, to a storage system comprising a host device and a storage device (eg, a flash memory device) and a method of processing write data thereof.
  • a storage system comprising a host device and a storage device (eg, a flash memory device) and a method of processing write data 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).
  • the storage device may include at least one NAND flash memory and a storage controller for controlling the same
  • the host device may include a file system and a host controller for performing an interaction with the storage controller. It may include.
  • the host controller may include a host flash translation layer
  • the storage controller may include a storage flash translation layer.
  • the basic units of read and write operations used by the host device are block units (for example, 1 KB, 2 KB, 4 KB, etc.), and the host logical page size used by the host device is determined by considering the block size of the file system. Set it.
  • the basic unit of read and write operations used by the storage device is a multiple of the physical page of flash memory (for example, 16 KB or larger), which has recently improved the storage device's continuous write performance and reduced the mapping table size.
  • the logical page size of a storage device is increasing. Accordingly, the size of the storage logical page tends to be larger than the size of the host logical page.
  • An object of the present invention is to provide a write data processing method of a storage system capable of preventing a write operation from being repeatedly performed multiple times on the same storage logical page in a storage device.
  • Another object of the present invention is to provide a storage system employing the write data processing method.
  • 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 write data processing method of a storage system when the file system writes a request for one or more blocks, the host controller and the write request;
  • the write data is stored in a data I / O queue, and all data stored in the data I / O queue are divided into full storage logical pages and incomplete storage logical pages.
  • the data transferred to the storage device and corresponding to the incomplete storage logical page are merged with the next write data to remain in the data input / output queue so as to become a complete storage logical page and wait for the next write data.
  • data corresponding to the complete storage logical page may be transmitted to the storage device without being stored in the data input / output queue.
  • the write data when the write data does not include data of a storage logical page corresponding to residual data associated with a previous write request stored in the data input / output queue, the remaining data may be completely stored even if the residual data is further retained. Since it is unlikely to be a logical page, the residual data may be transmitted to the storage device as an incomplete logical page.
  • the complete storage logical page and the incomplete storage logical page may be classified based on a storage logical page size set in the storage device.
  • all data stored in the data input / output queue may be transmitted to the storage device.
  • a storage system may include a storage device and a host device.
  • the storage device may include at least one flash memory and a storage controller to control the flash memory.
  • the host device may include a file system and a host controller that interacts with the storage controller.
  • the host controller stores write data associated with the write request in a data input / output queue, and stores all data stored in the data input / output queue in a complete storage logical page and incomplete storage.
  • the data corresponding to the complete storage logical page may be transmitted to the storage device by dividing into logical pages.
  • the host controller may transmit data corresponding to the complete storage logical page to the storage device without storing the data corresponding to the complete storage logical page.
  • the host controller when the write data does not include data of a storage logical page corresponding to residual data associated with a previous write request stored in the data input / output queue, stores the residual data in the storage. Can be sent to the device.
  • the host controller may classify the complete storage logical page and the incomplete storage logical page based on a storage logical page size set in the storage device.
  • the host controller may transmit all data stored in the data input / output queue to the storage device.
  • the size of the storage logical page tends to be larger than that of the host logical page.
  • a write request for the same storage logical page may be requested as a plurality of writes in response to a write request of the file system.
  • the write data associated with the write request is provided with a data input / output queue in the host controller.
  • FIG. 1 is a block diagram illustrating a storage system according to example embodiments.
  • FIG. 2A illustrates an example in which a host controller operates in response to a write request of a file system in a conventional storage system.
  • FIG. 2B is a diagram illustrating an example in which the host controller operates in response to a write request of a file system in the storage system of FIG. 1.
  • FIG. 3 is a diagram illustrating an example in which a host controller operates in response to a flush request of a file system in the storage system of FIG. 1.
  • FIG. 4 is a flowchart illustrating a write data processing method of a storage system according to example embodiments.
  • FIG. 1 is a block diagram illustrating a storage system according to example embodiments.
  • the storage system 100 may include a host device 120 and a storage device 140.
  • the storage device 140 may correspond to a NAND flash memory device, and may include a solid state drive (SSD), a secure digital card (SDCARD), a universal flash storage (UFS), and an embedded device. It may be implemented as an embedded multi media card (EMMC), a compact flash card, a memory stick, an XD picture card, or the like. However, this is merely an example, and the type of the storage device 140 is not limited thereto.
  • the storage device 140 may include first to n th (where n is an integer of 1 or more) flash memories 146-1,..., 146-n and a storage controller 142 that interact with each other. Can be.
  • the storage device 140 supports the file system 122 by the storage controller 142 using the flash translation layer, thereby reading, writing, erasing, merging, copyback, compaction, and garbage collection. , Wear leveling operations, and the like.
  • the storage device 140 may have hardware or software other than the first through nth flash memories 146-1,..., 146-n and the storage controller 142. It may further include components.
  • the host device 120 may include a file system 122 and a host controller 124 that interact with each other.
  • the file system 122 generates I / O commands to the host controller 124 in block units (hereinafter, referred to as a host logical page), and the host controller 124 is in sector units (for example, 512 bytes) may generate I / O commands for the storage device 140 to process the I / O commands of the file system 122.
  • the host controller 124 may include a data input / output queue 126.
  • the data input / output queue 126 is a temporary storage space for collecting and processing consecutive write requests from the file system 122 when they are related to the same storage logical page.
  • the meaning of the data input / output queue 126 is temporary storage space. It should be construed as including all data structures (e.g., linked lists, priority queues, etc.) that function as a. If the size of the storage logical page is larger than the host logical page, if writes to the same storage logical page are sent in multiple write requests, the overall performance of the storage system 100 may be degraded and the lifetime may be shortened.
  • the queue 126 may serve to compensate for this.
  • the host controller 124 may divide all data stored in the data input / output queue 126 into a complete storage logical page and an incomplete storage logical page. In this case, if all data of each storage logical page stored in the data input / output queue 126 or temporary storage space is completely, the storage logical page is called a full storage logical page.
  • a case as a partial storage logical page. In one embodiment, whether or not the complete storage logical page is a complete storage logical page if it contains data corresponding to the last portion of the storage logical page, otherwise it may be determined as an incomplete storage logical page.
  • the host controller 124 compares the storage logical page size with the size of data corresponding to the same storage logical page in the data I / O queue 126, and determines that the storage logical page is a complete storage logical page if the sizes are the same. If the size of the data determined to correspond to the same storage logical page in the data I / O queue is smaller than the storage logical page size, it may be determined to be an incomplete storage logical page.
  • the host controller 124 may transmit data corresponding to the complete storage logical page to the storage device 140.
  • data corresponding to an incomplete storage logical page in the data input / output queue 126 may remain in the data input / output queue 126 and wait for the next write request. If data corresponding to an incomplete storage logical page remains in the data input / output queue 126 and waits for the next write request, data corresponding to the same storage logical page may be merged and processed in the next write request.
  • host controller 124 determines whether the write data is sent to the storage device 140.
  • host controller 124 corresponds to a complete storage logical page when the write data associated with the write request includes a complete storage logical page, so that the data corresponding to the complete storage logical page does not have to wait for the next write request.
  • the data may be immediately transmitted to the storage device 140 without storing the data in the data input / output queue 126.
  • the host controller 124 may, in the next write request, if the write data does not contain data from the storage logical page corresponding to the residual data associated with the previous write request stored in the data input / output queue 126. Since it is difficult to expect data that is the same storage logical page as the residual data, the residual data may be transmitted to the storage device 140 as an incomplete storage logical page. In one embodiment, the host controller 124 may re-merge the data corresponding to the complete storage logical page into one I / O request and send it to the storage device 140.
  • the host controller 124 may enter the current data input / output queue 126. All stored data may be transmitted to the storage device 140.
  • the host controller 124 should be interpreted to include all programs that process the transfer request in units of storage logical pages using the data input / output queue 126 between the file system 122 and the storage device 140.
  • the host controller 124 may be implemented in a device driver, a flash translation layer included in the device driver, or a program having a function similar to the flash translation layer.
  • the host controller 124 including the data input / output queue 126 may be implemented in a device driver that does not support the host flash translation layer function so that the transfer request may be performed in units of storage logical pages.
  • the host controller 124 including the data input / output queue 126 may be implemented in the host flash translation layer included in the device driver so that the transfer request may be performed in units of storage logical pages.
  • the host device 120 may further include other hardware or software components in addition to the file system 122 and the host controller 124, and the host controller 124 may also include data.
  • the input / output queue 126 may further include other hardware or software components.
  • FIG. 2A is a diagram illustrating an example in which a host controller operates in response to a write request of a file system in a conventional storage system
  • FIG. 2B is a diagram illustrating an operation of the host controller in response to a write request of a file system in the storage system of FIG. 1. It is a figure which shows an example.
  • FIG. 2A illustrates a method in which a host controller 24 that does not have a data input / output queue processes a write request of the file system 22
  • FIG. 2B illustrates a host controller (using the data input / output queue 126).
  • 124 illustrates the manner in which the file system 122 handles the write request.
  • 2A and 2B illustrate the case where the size of the storage logical page is four times the size of the host logical page. For example, the size of the host logical page may be 4 KB, and the size of the storage logical page may be 16 KB.
  • the file system writes consecutive write requests for the storage logical pages L0, L1, and L2 to the first write request (L0-0, L0-1) and the second write request (L0-2, L0-3).
  • the third write request (L2-2, L2-3) are divided into three requests .
  • Lx represents the storage logical page number
  • Lx-y represents the yth host logical page of the storage logical page Lx).
  • the host controller 24 having no conventional data input / output queue receives a write request from the file system 22 and immediately transfers write data to the storage device 40.
  • WR1 represents write data received from the file system 22
  • DT1 represents write data transferred to the storage device 40.
  • the host logical page from the file system 22 is represented.
  • the write data (L0) is transmitted to the storage device 40, even though it is an incomplete storage page, and then the host logic If a second write request (L0-2, L0-3, L1-0, L1-1, L1-2, L1-3, L2-0, L2-1) that is eight times the page size occurs, the host The controller 24 transmits write data L0, L1, and L2 for each storage logical page to the storage device 40, respectively. Subsequently, when a third write request (L2-2, L2-3), which is twice the size of the host logical page, occurs, the write data (L2) corresponding to the same storage logical page as the previously transmitted write data is transmitted. do.
  • the host controller 24 sends two write requests for the storage logical page L0 and two write requests for L2.
  • a write to the same storage logical page is transmitted in a plurality of write requests for a write request received from the file system 22. Frequently, this degrades the overall performance of the storage system and shortens its lifespan.
  • the host controller 124 including the data input / output queue 126 writes a plurality of write requests to the same storage logical page for a write request received from the file system 122. Can be prevented.
  • the host controller 124 receives a write request from the file system 122 and stores write data associated with the write request in the data input / output queue 126.
  • the controller 124 divides all data stored in the data input / output queue 126 into complete storage logical pages and incomplete storage logical pages so that data corresponding to the complete storage logical pages is transferred to the storage device 140 and is incomplete. Data corresponding to the storage logical page remains in the data input / output queue 126.
  • WR2 represents write data received from the file system 122
  • DT2 represents write data transmitted to the storage device 140
  • RD represents data corresponding to a complete storage logical page.
  • the data stored in the data input / output queue 126 after being transmitted to the data input / output queue 126 is shown.
  • FIGS. 2A and 2B a case in which the host controller 124 uses the data input / output queue 126 is illustrated in FIGS. 2A and 2B.
  • the first write request L0-0, L0-1
  • Host controller 124 stores data associated with the first write request in data input / output queue 126, and there is no complete storage logical page in data input / output queue 126. Therefore it does not transmit the data to the storage device 140. This is because data corresponding to an incomplete storage logical page is not transmitted to the storage device 140 until a write request of related data is completed to process data corresponding to the same storage logical page at a time. Subsequently, second write requests L0-2, L0-3, L1-0, L1-1, L1-2, L1-3, L2-0, and L2-1, which are eight times the size of the host logical page size, occur.
  • the host controller 124 stores the write data associated with the second write request in the data input / output queue 126, and since the complete storage logical pages L0 and L1 exist in the data input / output queue 126, the storage device ( At 140, data L0 and L1 corresponding to the complete storage logical page are dequeueed from the data input / output queue 126 and transmitted. At this time, the host controller 124 may re-merge the data (L0, L1) corresponding to the complete storage logical page and transmit it as one I / O request.
  • the host controller 124 writes data associated with the third write request to the data input / output queue 126. And a complete storage logical page (L2) exists in the data input / output queue (126), so that the data (L2) corresponding to the complete storage logical page in the storage device 140 is taken from the data input / output queue (126) and transmitted. .
  • the number of write data transfers is reduced (in the above example, the number of write data transfers in FIG. 2A is five times, but is reduced three or two times in FIG. 2B).
  • the overall performance of the storage system 100 can be improved and its life can be extended.
  • FIG. 3 is a diagram illustrating an example in which a host controller operates in response to a flush request of a file system in the storage system of FIG. 1.
  • the host controller 124 processes the process.
  • the host controller 124 receives a write request from the file system 122, stores write data related to the write request in the data input / output queue 126, and stores data stored in the data input / output queue 126.
  • data is transmitted to the storage device 140.
  • WR2 represents write data received from the file system 122
  • DT2 represents write data transmitted to the storage device 140
  • RD transfers write data to the storage device 140.
  • Data stored in the data I / O queue 126 For example, assuming that the size of the storage logical page is four times the size of the host logical page, the file system 122 has twice the size of the host logical page.
  • the host controller 124 stores the write data associated with the first write request in the data input / output queue 126 and the data input / output queue 126. ) Does not transmit data to the storage device 140 because no complete storage logical page exists. Subsequently, second write requests L0-2, L0-3, L1-0, L1-1, L1-2, L1-3, L2-0, and L2-1, which are eight times the size of the host logical page size, occur.
  • the host controller 124 stores the write data associated with the second write request in the data input / output queue 126, and since the complete storage logical pages L0 and L1 exist in the data input / output queue 126, the storage device ( Data L0 and L1 corresponding to the complete storage logical page at 140 are taken from the data input / output queue 126 and transmitted. At this time, the host controller 124 may re-merge the data (L0, L1) corresponding to the complete storage logical page and transmit it as one I / O request.
  • the host controller 124 when the host controller 124 receives a flush request from the file system 122, the host controller 124 transfers all data L2-0 and L2-1 stored in the data input / output queue 126 to the data input / output queue 126. ) Is transferred to the storage device 140. Subsequently, when a third write request (L3-0, L3-1), which is twice the size of the host logical page size, occurs, the host controller 124 writes data associated with the third write request to the data input / output queue 126. And write data is not transmitted to the storage device 140 because a complete storage logical page does not exist in the data input / output queue 126.
  • L3-0, L3-1 which is twice the size of the host logical page size
  • the file system 122 makes a third write request, even though there is space available for the storage logical page requested in the second write request (L2-2, L2-3).
  • An example of skipping and using storage logical pages is shown. This is to avoid the write request for the remaining space because a plurality of write requests are sent to the corresponding storage logical page, which may cause a full merge in the storage controller.
  • FIG. 4 is a flowchart illustrating a write data processing method of a storage system according to example embodiments.
  • the host controller may store write data associated with the new write request in the data input / output queue (Step S130). All data stored in the data I / O queue (including residual data related to previous write requests stored in the data I / O queue) may be divided into complete storage logical pages and incomplete storage logical pages (Step S150). In this case, the host controller transmits data corresponding to a complete storage logical page to the storage device in response to the write request (Step S170), while inputting / outputting data corresponding to an incomplete storage logical page in response to the write request. Can remain in the queue (Step S190).
  • the file system reads data in block units and makes a new write request (Step S110), and the host controller processes the write data related to the write request of the file system as the host logical page size and stores it in the data input / output queue (Step S130). )can do.
  • the host controller may transmit the data corresponding to the complete storage logical page to the storage device without storing the data in the data input / output queue (Step S112).
  • the data corresponding to the complete storage logical page does not need to wait for the next write request, so performance can be improved by transferring it to the storage device rather than storing it in a data I / O queue.
  • Step S114 it is determined whether the write data associated with the new write request includes data of the storage logical page corresponding to the residual data associated with the previous write request (Step S114), and if not, the same as the residual data in the next write request. Since data that is a storage logical page is difficult to expect, residual data may be transferred to the storage device (Step S116).
  • Step S116 determining whether the write data associated with the new write request includes data of the storage logical page corresponding to the residual data associated with the previous write request (Step S114) and transmitting the residual data to the storage device (Step S116). Regardless of the step and order of storing the data in the data input / output queue (Step S130), it may be determined and transmitted.
  • the host controller may divide all data stored in the data I / O queue into a complete storage logical page and an incomplete storage logical page (Step S150). In one embodiment, whether or not the complete storage logical page is a complete storage logical page if it contains data corresponding to the last portion of the storage logical page, otherwise it may be determined as an incomplete storage logical page. In one embodiment, whether the data stored in the data I / O queue is a complete storage logical page compares the storage logical page size with the size of the data that is determined to correspond to the same storage logical page within the data I / O queue.
  • the host controller may take data corresponding to a complete storage logical page from the data input / output queue and transmit the data to the storage device (Step S170).
  • the host controller may re-merge the data corresponding to the complete storage logical page into one I / O request and then send it to the storage device.
  • the host controller may leave data corresponding to an incomplete storage logical page in a data input / output queue (Step S190).
  • the host controller may transmit all data stored in the data input / output queue to the storage device to process data related to all write requests.
  • the present invention can be applied to a storage system having a storage device (ie, a flash memory device).
  • a storage device ie, a flash memory device
  • the present invention can be applied to a storage system having a solid state drive (SSD), an embedded multimedia card (EMMC), a secure digital card (SD card), and the like.
  • SSD solid state drive
  • EMMC embedded multimedia card
  • SD card secure digital card
  • storage system 120 host device
  • file system 124 host controller
  • storage controller 146 flash memory

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

스토리지 시스템의 쓰기 데이터 처리 방법은 파일시스템이 쓰기 요청을 하는 경우, 쓰기 요청과 관련된 쓰기 데이터를 데이터 입출력 큐에 저장하고, 데이터 입출력 큐에 저장되어 있는 모든 데이터를 완전한 스토리지 논리 페이지와 불완전한 스토리지 논리 페이지로 구분하며, 쓰기 요청에 응답하여 완전한 스토리지 논리 페이지에 해당하는 데이터를 스토리지 장치로 전송하고, 쓰기 요청에 응답하여 불완전한 스토리지 논리 페이지에 해당하는 데이터를 데이터 입출력 큐에 잔류시킨다.

Description

스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법
본 발명은 반도체 메모리 시스템에 관한 것으로, 보다 상세하게는 호스트 장치와 스토리지 장치(예를 들어, 플래시 메모리 장치)로 구성된 스토리지 시스템 및 이의 쓰기 데이터 처리 방법에 관한 것이다.
반도체 메모리 장치는 전원이 공급되지 않는 상태에서 데이터를 보존할 수 있는지에 따라 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분될 수 있다. 최근에는, 반도체 메모리 장치의 소형화 및 대용량 추세에 따라, 비휘발성 메모리 장치 중에서 낸드 플래시 메모리 장치(NAND flash memory device)가 소형화 및 대용량에 적합하여 널리 사용되고 있고, 낸드 플래시 메모리 장치 형태의 스토리지 장치(예를 들어, 솔리드 스테이트 드라이브(solid state drive; SSD) 등)가 하드 디스크 드라이브(hard disk drive; HDD)를 대체하고 있는 추세이다. 이 때, 스토리지 장치는 적어도 하나 이상의 낸드 플래시 메모리 및 이를 제어하기 위한 스토리지 컨트롤러를 포함할 수 있고, 호스트 장치는 파일시스템(file system) 및 상기 스토리지 컨트롤러와 인터액션(interaction)을 수행하기 위한 호스트 컨트롤러를 포함할 수 있다.
최근, 낸드 플래시 메모리에 대한 읽기(read) 동작, 쓰기(write) 동작, 소거(erase) 동작, 병합(merge) 동작, 카피백(copyback) 동작, 컴팩션(compaction) 동작, 가비지 콜렉션(garbage collection) 동작, 웨어 레벨링(wear leveling) 동작, 어드레스 맵핑(address mapping) 동작 등을 제어함으로써 파일시스템을 지원하는 플래시 변환 레이어(flash translation layer; FTL)의 기능을 스토리지 장치와 호스트 장치에 분산시키려는 시도가 이루어지고 있다. 예를 들어, 호스트 컨트롤러에 호스트 플래시 변환 레이어가 구비될 수 있고, 스토리지 컨트롤러에 스토리지 플래시 변환 레이어가 구비될 수 있다.
이 때, 호스트 장치에서 사용하는 읽기 동작과 쓰기 동작의 기본 단위는 블록 단위(예를 들어, 1KB, 2KB, 4KB 등)이며 호스트 장치에서 사용하는 호스트 논리 페이지 크기는 파일시스템의 블록 크기를 고려하여 설정한다. 반면에, 스토리지 장치에서 사용하는 읽기 동작과 쓰기 동작의 기본 단위는 플래시 메모리의 물리 페이지의 배수(예를 들어, 16KB 이상)이며, 최근에는 스토리지 장치의 연속 쓰기 성능 향상과 매핑 테이블 크기를 감소시키는 등의 효과를 위해 스토리지 장치의 논리 페이지 크기가 커지고 있다. 이에 따라, 스토리지 논리 페이지의 크기가 호스트 논리 페이지의 크기보다 큰 경향이 있다.
이와 같이, 스토리지 논리 페이지의 크기가 호스트 논리 페이지의 크기보다 커짐에 따라 동일한 스토리지 논리 페이지에 대한 쓰기가 복수의 쓰기로 요청되는 경우가 빈번히 발생한다. 이는 덮어쓰기가 지원되지 않고, 페이지 단위로 읽기 동작, 쓰기 동작을 수행하고 블록 단위로 삭제 동작을 수행하는 플래시 메모리의 특성상 성능을 크게 저하시키고 수명을 단축시키는 문제점을 가지고 있다.
본 발명의 일 목적은 스토리지 장치에서 동일한 스토리지 논리 페이지에 대하여 쓰기 동작이 여러 차례에 걸쳐서 나누어 수행되는 것을 방지할 수 있는 스토리지 시스템의 쓰기 데이터 처리 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 쓰기 데이터 처리 방법을 채용한 스토리지 시스템을 제공하는 것이다.
다만, 본 발명의 목적은 상기 목적들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 스토리지 시스템의 쓰기 데이터 처리 방법은, 파일시스템이 하나 또는 그 이상의 블록에 대한 쓰기 요청을 하는 경우, 호스트 컨트롤러는 상기 쓰기 요청과 관련된 쓰기 데이터를 데이터 입출력 큐(queue)에 저장하고, 상기 데이터 입출력 큐에 저장되어 있는 모든 데이터를 완전한(full) 스토리지 논리 페이지와 불완전한 스토리지 논리 페이지로 구분하여 상기 완전한 스토리지 논리 페이지에 해당하는 데이터는 스토리지 장치로 전송하고 상기 불완전한 스토리지 논리 페이지에 해당하는 데이터는 다음 쓰기 데이터와 병합되어 완전한 스토리지 논리 페이지가 될 수 있도록 상기 데이터 입출력 큐에 잔류시키고 다음 쓰기 데이터를 기다리도록 하는 것이다.
일 실시예에 의하면, 상기 쓰기 데이터가 상기 완전한 스토리지 논리 페이지를 포함하는 경우, 상기 완전한 스토리지 논리 페이지에 해당하는 데이터는 상기 데이터 입출력 큐에 저장하지 않고 상기 스토리지 장치로 전송할 수 있다.
일 실시예에 의하면, 상기 쓰기 데이터가 상기 데이터 입출력 큐에 저장되어 있는 이전 쓰기 요청과 관련된 잔류 데이터에 해당하는 스토리지 논리 페이지의 데이터를 포함하고 있지 않은 경우, 상기 잔류 데이터를 추가로 잔류시켜도 완전한 스토리지 논리 페이지가 될 가능성이 낮으므로, 상기 잔류 데이터를 불완전한 논리 페이지로 상기 스토리지 장치에 전송할 수 있다.
일 실시예에 의하면, 상기 완전한 스토리지 논리 페이지와 상기 불완전한 스토리지 논리 페이지는 상기 스토리지 장치에 설정되어 있는 스토리지 논리 페이지 크기에 기초하여 구분할 수 있다.
일 실시예에 의하면, 상기 파일시스템이 플러시(flush) 요청을 하는 경우, 상기 데이터 입출력 큐에 저장되어 있는 모든 데이터를 상기 스토리지 장치로 전송할 수 있다.
본 발명의 다른 목적을 달성하기 위하여, 발명의 실시예들에 따른 스토리지 시스템은 스토리지 장치와 호스트 장치를 포함할 수 있다. 상기 스토리지 장치는 적어도 하나 이상의 플래시 메모리 및 상기 플래시 메모리를 제어하는 스토리지 컨트롤러를 구비할 수 있다. 상기 호스트 장치는 파일시스템 및 상기 스토리지 컨트롤러와 인터액션(interaction)을 수행하는 호스트 컨트롤러를 구비할 수 있다. 이 때, 상기 호스트 컨트롤러는 상기 파일시스템이 쓰기 요청을 하는 경우, 상기 쓰기 요청과 관련된 쓰기 데이터를 데이터 입출력 큐에 저장하고, 상기 데이터 입출력 큐에 저장되어 있는 모든 데이터를 완전한 스토리지 논리 페이지와 불완전한 스토리지 논리 페이지로 구분하여 상기 완전한 스토리지 논리 페이지에 해당하는 데이터를 상기 스토리지 장치로 전송할 수 있다.
일 실시예에 의하면, 상기 호스트 컨트롤러는 상기 쓰기 데이터가 상기 완전한 스토리지 논리 페이지를 포함하는 경우, 상기 완전한 스토리지 논리 페이지에 해당하는 데이터를 상기 데이터 입출력 큐에 저장하지 않고 상기 스토리지 장치로 전송할 수 있다.
일 실시예에 의하면, 상기 호스트 컨트롤러는 상기 쓰기 데이터가 상기 데이터 입출력 큐에 저장되어 있는 이전 쓰기 요청과 관련된 잔류 데이터에 해당하는 스토리지 논리 페이지의 데이터를 포함하고 있지 않은 경우, 상기 잔류 데이터를 상기 스토리지 장치로 전송할 수 있다.
일 실시예에 의하면, 상기 호스트 컨트롤러는 상기 완전한 스토리지 논리 페이지와 상기 불완전한 스토리지 논리 페이지를 상기 스토리지 장치에 설정되어 있는 스토리지 논리 페이지 크기에 기초하여 구분할 수 있다.
일 실시예에 의하면, 상기 호스트 컨트롤러는 상기 파일시스템이 플러시(flush) 요청을 하는 경우, 상기 데이터 입출력 큐에 저장되어 있는 모든 데이터를 상기 스토리지 장치로 전송할 수 있다.
최근 플래시 메모리의 논리 페이지 크기가 커짐에 따라 호스트 논리 페이지의 크기보다 스토리지 논리 페이지의 크기가 큰 경향이 있다. 이에 파일시스템의 쓰기 요청에 대해 동일한 스토리지 논리 페이지에 대한 쓰기가 복수의 쓰기로 요청되는 경우가 발생한다.
호스트 논리 페이지의 크기보다 스토리지 논리 페이지의 크기가 큰 경우, 본 발명의 실시예에 따른 스토리지 시스템과 스토리지 시스템의 쓰기 데이터 처리 방법을 이용하면 호스트 컨트롤러에 데이터 입출력 큐를 구비하여 쓰기 요청과 관련된 쓰기 데이터를 스토리지 논리 페이지 크기 단위로 합쳐서 전송할 수 있다. 이는 불필요한 쓰기 요청 전송을 감소시키고, 스토리지 FTL에서 가비지 콜렉션(garbage collection)처리 시 풀 병합(full merge) 횟수를 줄여줌으로써 상기 스토리지 시스템의 성능을 크게 향상시키고 스토리지 시스템의 수명을 늘릴 수 있다.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 실시예들에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2a는 종래의 스토리지 시스템에서 파일시스템의 쓰기 요청에 응답하여 호스트 컨트롤러가 동작하는 일 예를 나타내는 도면이다.
도 2b는 도 1의 스토리지 시스템에서 파일시스템의 쓰기 요청에 응답하여 호스트 컨트롤러가 동작하는 일 예를 나타내는 도면이다.
도 3은 도 1의 스토리지 시스템에서 파일시스템의 플러시 요청에 응답하여 호스트 컨트롤러가 동작하는 일 예를 나타내는 도면이다.
도 4는 본 발명의 실시예들에 따른 스토리지 시스템의 쓰기 데이터 처리 방법을 나타내는 순서도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(100)은 호스트 장치(120) 및 스토리지 장치(140)를 포함할 수 있다.
스토리지 장치(140)는 낸드 플래시 메모리 장치에 상응할 수 있고, 솔리드 스테이트 드라이브(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) 등으로 구현될 수 있다. 다만, 이것은 예시적인 것으로서, 스토리지 장치(140)의 종류가 그에 한정되는 것은 아니다. 스토리지 장치(140)는 서로 인터액션을 수행하는 제 1 내지 제 n(단, n은 1이상의 정수) 플래시 메모리들(146-1, ..., 146-n)과 스토리지 컨트롤러(142)를 구비할 수 있다. 스토리지 장치(140)는 스토리지 컨트롤러(142)가 플래시 변환 레이어를 이용하여 파일시스템(122)을 지원함으로써, 읽기 동작, 쓰기 동작, 소거 동작, 병합 동작, 카피백 동작, 컴팩션 동작, 가비지 콜렉션 동작, 웨어 레벨링 동작 등을 수행할 수 있다. 한편, 도 1에 도시되지는 않았지만, 스토리지 장치(140)는 제 1 내지 제 n 플래시 메모리들(146-1, ..., 146-n) 및 스토리지 컨트롤러(142) 외에 다른 하드웨어적 또는 소프트웨어적 구성 요소들을 더 포함할 수 있다.
호스트 장치(120)는 서로 인터액션을 수행하는 파일시스템(122)과 호스트 컨트롤러(124)를 구비할 수 있다. 이 때, 파일시스템(122)는 블록 단위(이하, 호스트 논리 페이지라 함)로 호스트 컨트롤러(124)에 대한 I/O 명령을 생성하고, 호스트 컨트롤러(124)는 섹터 단위로(예를 들어, 512byte) 스토리지 장치(140)에 대한 I/O 명령을 생성하여 파일시스템(122)의 I/O 명령을 처리할 수 있다.
호스트 컨트롤러(124)는 데이터 입출력 큐(queue)(126)를 구비할 수 있다. 데이터 입출력 큐(126)는 파일시스템(122)으로부터의 연속된 쓰기 요청이 동일한 스토리지 논리 페이지에 관한 것일 경우, 이를 모아서 처리하기 위한 임시 저장 공간이며, 데이터 입출력 큐(126)의 의미는 임시 저장 공간으로서 기능하는 모든 데이터 구조(예를 들면, 연결리스트, 우선순위 큐 등)를 포함하는 것으로 해석되어야 한다. 호스트 논리 페이지보다 스토리지 논리 페이지의 크기가 큰 경우, 동일한 스토리지 논리 페이지에 대한 쓰기가 복수의 쓰기 요청으로 전송되면, 스토리지 시스템(100)의 전반적인 성능이 저하되고, 수명이 짧아질 수 있으므로, 데이터 입출력 큐(126)는 이를 보완하는 역할을 할 수 있다.
또한, 호스트 컨트롤러(124)는 데이터 입출력 큐(126)에 저장되어 있는 모든 데이터를 완전한 스토리지 논리 페이지와 불완전한 스토리지 논리 페이지로 구분할 수 있다. 여기서, 데이터 입출력 큐(126) 또는 임시 저장 공간에 저장되어 있는 각 스토리지 논리 페이지 중에서 해당 스토리지 논리 페이지의 모든 데이터가 완전하게 있는 경우 해당 스토리지 논리 페이지를 완전한(full) 스토리지 논리 페이지라 하고, 그렇지 않은 경우를 불완전한(partial) 스토리지 논리 페이지라고 정의한다. 일 실시예에서, 완전한 스토리지 논리 페이지인지 여부는 스토리지 논리 페이지의 마지막 부분에 해당하는 데이터를 포함하는 경우 완전한 스토리지 논리 페이지로 판단하고, 그렇지 않은 경우 불완전한 스토리지 논리 페이지로 판단할 수 있다. 일 실시예에서, 호스트 컨트롤러(124)는 스토리지 논리 페이지 크기와 데이터 입출력 큐(126) 내에서 동일한 스토리지 논리 페이지에 해당하는 데이터의 크기를 비교하여, 크기가 동일한 경우 완전한 스토리지 논리 페이지로 판단하고, 스토리지 논리 페이지 크기보다 데이터 입출력 큐 내에서 동일한 스토리지 논리 페이지에 해당하는 것으로 판단되는 데이터의 크기가 작은 경우 불완전한 스토리지 논리 페이지라고 판단할 수 있다.
호스트 컨트롤러(124)는 데이터 입출력 큐(126)에 완전한 스토리지 논리 페이지가 존재하는 경우, 완전한 스토리지 논리 페이지에 해당하는 데이터를 스토리지 장치(140)에 전송할 수 있다. 반면에, 데이터 입출력 큐(126) 내에서 불완전한 스토리지 논리 페이지에 해당하는 데이터는 데이터 입출력 큐(126)에 잔류시키고 다음 쓰기 요청을 기다릴 수 있다. 불완전한 스토리지 논리 페이지에 해당하는 데이터를 데이터 입출력 큐(126)에 잔류시키고 다음 쓰기 요청을 기다림으로써 다음 쓰기 요청에서 동일한 스토리지 논리 페이지에 해당하는 데이터가 존재하는 경우 이를 병합하여 처리할 수 있다. 즉, 쓰기 요청과 관련된 쓰기 데이터의 일부와 데이터 입출력 큐(126)에 저장되어 있는 이전 쓰기 요청과 관련된 잔류 데이터가 동일한 스토리지 논리 페이지에 대한 것일 경우 병합되고, 병합된 논리페이지에 대해서 완전한 스토리지 논리 페이지 여부가 구분될 수 있다.
그 밖에도, 호스트 컨트롤러(124)는 완전한 스토리지 논리 페이지를 즉시 전송 할 수 있는 경우 또는 다음 쓰기 요청에서 잔류 데이터와 동일한 스토리지 논리 페이지인 데이터를 기대하기 어려운 경우, 쓰기 데이터를 스토리지 장치(140)로 전송할 수 있다. 일 실시예에서, 호스트 컨트롤러(124)는 쓰기 요청과 관련된 쓰기 데이터가 완전한 스토리지 논리 페이지를 포함하는 경우, 완전한 스토리지 논리 페이지에 해당하는 데이터는 다음 쓰기 요청을 기다릴 필요가 없으므로 완전한 스토리지 논리 페이지에 해당하는 데이터를 상기 데이터 입출력 큐(126)에 저장하지 않고 스토리지 장치(140)로 즉시 전송할 수 있다. 일 실시예에서, 호스트 컨트롤러(124)는 쓰기 데이터가 데이터 입출력 큐(126)에 저장되어 있는 이전 쓰기 요청과 관련된 잔류 데이터에 해당하는 스토리지 논리 페이지의 데이터를 포함하고 있지 않은 경우, 다음 쓰기 요청에서 잔류 데이터와 동일한 스토리지 논리 페이지인 데이터를 기대하기 어려우므로 잔류 데이터를 불완전한 스토리지 논리 페이지로 스토리지 장치(140)에 전송할 수 있다. 일 실시예에서, 호스트 컨트롤러(124)는 완전한 스토리지 논리 페이지에 해당하는 데이터들을 하나의 I/O 요청으로 재병합하여 스토리지 장치(140)에 전송할 수 있다.
또한, 호스트 컨트롤러(124)는 요청된 쓰기 데이터에 대한 처리를 완료시키기 위한 파일시스템(122)의 플러시(flush) 요청(이하, 플러시 요청이라고 함)이 있는 경우, 현재 데이터 입출력 큐(126)에 저장된 모든 데이터를 스토리지 장치(140)로 전송할 수 있다.
호스트 컨트롤러(124)는 파일시스템(122)과 스토리지 장치(140) 사이에서 데이터 입출력 큐(126)를 사용하여 스토리지 논리 페이지 단위로 전송 요청할 수 있도록 처리하는 모든 프로그램을 포함하는 의미로 해석되어야 한다. 예를 들어, 호스트 컨트롤러(124)는 디바이스 드라이버(device driver), 디바이스 드라이버에 포함된 플래시 변환 레이어 또는 플래시 변환 레이어와 유사한 기능을 하는 프로그램에서 구현될 수 있다. 일 실시예에서, 호스트 플래시 변환 레이어 기능을 지원하지 않는 디바이스 드라이버에서 데이터 입출력 큐(126)를 구비한 호스트 컨트롤러(124)를 구현함으로써 스토리지 논리 페이지 단위로 전송 요청할 수 있도록 처리할 수 있다. 일 실시예에서, 디바이스 드라이버에 포함된 호스트 플래시 변환 레이어에서 데이터 입출력 큐(126)를 구비한 호스트 컨트롤러(124)를 구현함으로써 스토리지 논리 페이지 단위로 전송 요청할 수 있도록 처리할 수 있다.
한편, 도 1에 도시되지는 않았지만, 호스트 장치(120)는 파일시스템(122) 및 호스트 컨트롤러(124) 외에 다른 하드웨어적 또는 소프트웨어적 구성 요소들을 더 포함할 수 있으며, 호스트 컨트롤러(124)도 데이터 입출력 큐(126) 외에 다른 하드웨어적 또는 소프트웨어적 구성 요소들을 더 포함할 수 있다.
도 2a는 종래의 스토리지 시스템에서 파일시스템의 쓰기 요청에 응답하여 호스트 컨트롤러가 동작하는 일 예를 나타내는 도면이고, 도 2b는 도 1의 스토리지 시스템에서 파일시스템의 쓰기 요청에 응답하여 호스트 컨트롤러가 동작하는 일 예를 나타내는 도면이다.
도 2a 및 도 2b를 참조하면, 호스트 컨트롤러(124)의 쓰기 데이터 전송 방식에 따른 효과가 도시되어 있다. 구체적으로, 도 2a는 데이터 입출력 큐를 구비하지 않는 호스트 컨트롤러(24)가 파일시스템(22)의 쓰기 요청을 처리하는 방식을 나타내고 있고, 도 2b는 데이터 입출력 큐(126)를 이용하여 호스트 컨트롤러(124)가 파일시스템(122)의 쓰기 요청을 처리하는 방식을 나타내고 있다. 도 2a 및 도 2b에서는 스토리지 논리 페이지의 크기가 호스트 논리 페이지 크기의 4배인 경우를 나타내었다. 예를 들어, 호스트 논리 페이지의 크기는 4KB일 수 있고, 스토리지 논리 페이지의 크기는 16KB일 수 있다. 도 2a 및 도 2b에서 파일시스템이 스토리지 논리 페이지 L0, L1, L2에 대한 연속된 쓰기 요청을 제 1 쓰기 요청(L0-0, L0-1), 제2 쓰기 요청(L0-2, L0-3, L1-0, L1-1, L1-2, L1-3, L2-0, L2-1), 제 3 쓰기 요청(L2-2, L2-3)으로 세 차례에 걸쳐서 나누어서 요청하는 것을 가정하였다. (여기서, Lx는 스토리지 논리 페이지 번호를 의미하며, Lx-y는 스토리지 논리 페이지 Lx의 y번째 호스트 논리 페이지를 나타낸다.)
도 2a에 도시된 바와 같이, 종래의 데이터 입출력 큐를 구비하지 않는 호스트 컨트롤러(24)는 파일시스템(22)에서 쓰기 요청을 수신하고, 즉시 스토리지 장치(40)로 쓰기 데이터를 전송한다. (도 2a에서, WR1은 파일시스템(22)으로부터 쓰기 요청 받은 쓰기 데이터를 나타내며, DT1은 스토리지 장치(40)로 전송한 쓰기 데이터를 나타낸다.) 예를 들어, 파일시스템(22)으로부터 호스트 논리 페이지 크기의 2배 크기인 제 1 쓰기 요청(L0-0, L0-1)이 발생하는 경우, 이는 불완전한 스토리지 페이지임에도 불구하고, 스토리지 장치(40)에 쓰기 데이터(L0)를 전송하고, 이어 호스트 논리 페이지 크기의 8배 크기인 제 2 쓰기 요청(L0-2, L0-3, L1-0, L1-1, L1-2, L1-3, L2-0, L2-1)이 발생하는 경우, 호스트 컨트롤러(24)는 스토리지 장치(40)에 각 스토리지 논리 페이지에 대한 쓰기 데이터들(L0, L1, L2)을 각각 전송한다. 이어 호스트 논리 페이지 크기의 2배 크기인 제 3 쓰기 요청(L2-2, L2-3)이 발생하는 경우, 이전에 이미 전송한 쓰기 데이터와 동일한 스토리지 논리 페이지에 해당하는 쓰기 데이터(L2)를 전송한다. 상기 예에서, 호스트 컨트롤러(24)는 스토리지 논리 페이지 L0에 대해서 두 번의 쓰기 요청, L2에 대해서 두 번의 쓰기 요청으로 전송한다. 이와 같이, 종래의 데이터 입출력 큐를 구비하지 않는 호스트 컨트롤러(24)를 사용하는 경우 파일시스템(22)으로부터 수신한 쓰기 요청에 대해 동일한 스토리지 논리 페이지에 대한 쓰기가 복수의 쓰기 요청으로 전송되는 경우가 빈번하게 되고, 이는 스토리지 시스템의 전반적인 성능을 저하시키고, 수명을 단축시킨다.
반면에, 도 2b에 도시된 바와 같이, 데이터 입출력 큐(126)를 포함하는 호스트 컨트롤러(124)는 파일시스템(122)으로부터 수신한 쓰기 요청에 대해 동일한 스토리지 논리 페이지에 대한 쓰기가 복수의 쓰기 요청으로 전송되는 경우를 방지할 수 있다. 구체적으로, 호스트 컨트롤러(124)는 파일시스템(122)에서 쓰기 요청을 받고 쓰기 요청과 관련된 쓰기 데이터를 데이터 입출력 큐(126)에 저장한다. 컨트롤러(124)는 데이터 입출력 큐(126)에 저장되어 있는 모든 데이터를 완전한 스토리지 논리 페이지와 불완전한 스토리지 논리 페이지로 구분하여, 완전한 스토리지 논리 페이지에 해당하는 데이터는 스토리지 장치(140)로 전송하고, 불완전한 스토리지 논리 페이지에 해당하는 데이터는 데이터 입출력 큐(126)에 잔류시킨다. (도 2b에서, WR2은 파일시스템(122)으로부터 쓰기 요청 받은 쓰기 데이터를 나타내고, DT2은 스토리지 장치(140)로 전송한 쓰기 데이터를 나타내며, RD는 완전한 스토리지 논리 페이지에 해당하는 데이터를 스토리지 장치(140)로 전송한 후 데이터 입출력 큐(126)에 저장되어 있는 데이터를 나타낸다.) 이와 같이, 호스트 컨트롤러(124)가 데이터 입출력 큐(126)를 이용하는 경우를 살펴보면, 도 2a 및 도 2b에 도시된 상황(즉, 스토리지 논리 페이지의 크기가 호스트 논리 페이지 크기의 4배인 경우)에서 파일시스템(122)으로부터 호스트 논리 페이지 크기의 2배 크기인 제 1 쓰기 요청(L0-0, L0-1)이 발생하는 경우, 호스트 컨트롤러(124)는 데이터 입출력 큐(126)에 제 1 쓰기 요청과 관련된 데이터를 저장하고, 데이터 입출력 큐(126)에 완전한 스토리지 논리 페이지가 존재하지 않으므로 스토리지 장치(140)로 데이터를 전송하지 않는다. 이는 동일한 스토리지 논리 페이지에 해당하는 데이터를 한번에 처리하기 위해 관련된 데이터의 쓰기 요청이 완료될 때까지 불완전한 스토리지 논리 페이지에 해당하는 데이터를 스토리지 장치(140)로 전송하지 않는 것이다. 이어서, 호스트 논리 페이지 크기의 8배 크기인 제 2 쓰기 요청(L0-2, L0-3, L1-0, L1-1, L1-2, L1-3, L2-0, L2-1)이 발생하는 경우, 호스트 컨트롤러(124)는 데이터 입출력 큐(126)에 제 2 쓰기 요청과 관련된 쓰기 데이터를 저장하고, 데이터 입출력 큐(126)에 완전한 스토리지 논리 페이지(L0, L1)가 존재하므로 스토리지 장치(140)에 완전한 스토리지 논리 페이지에 해당하는 데이터(L0, L1)를 데이터 입출력 큐(126)로부터 가져와서(dequeue) 전송한다. 이 때, 호스트 컨트롤러(124)는 완전한 스토리지 논리 페이지에 해당하는 데이터(L0, L1)를 재병합하여 하나의 I/O요청으로 전송할 수도 있다. 이어서, 호스트 논리 페이지 크기의 2배 크기인 제 3 쓰기 요청(L2-2, L2-3)이 발생하는 경우, 호스트 컨트롤러(124)는 데이터 입출력 큐(126)에 제 3 쓰기 요청과 관련된 쓰기 데이터를 저장하고, 데이터 입출력 큐(126)에 완전한 스토리지 논리 페이지(L2)가 존재하므로 스토리지 장치(140)에 완전한 스토리지 논리 페이지에 해당하는 데이터(L2)를 데이터 입출력 큐(126)로부터 가져와서 전송한다. 이와 같이 호스트 컨트롤러(124)가 데이터 입출력 큐(126)를 이용하는 경우 쓰기 데이터 전송 횟수를 줄이고(상기 예에서, 도 2a의 쓰기 데이터 전송 횟수는 5회임에 비하여, 도 2b에서는 3회 또는 2회로 감소됨), 파일시스템의 연속 쓰기에서 동일한 논리 페이지에 대해 중복해서 쓰기가 요청되는 것을 피함으로써 스토리지 시스템(100)의 전반적인 성능을 높이고, 수명도 연장시킬 수 있다. 또한, 플래시 변환 레이어에서 가비지 콜렉션 처리 시 풀 병합(full merge) 횟수를 줄일 수 있는 장점이 있다.
도 3은 도 1의 스토리지 시스템에서 파일시스템의 플러시 요청에 응답하여 호스트 컨트롤러가 동작하는 일 예를 나타내는 도면이다.
도 3을 참조하면, 파일시스템(122)으로부터 플러시 요청이 있는 경우, 호스트 컨트롤러(124)가 이를 처리하는 과정이 도시되어 있다.
구체적으로, 도 3에서 호스트 컨트롤러(124)는 파일시스템(122)에서 쓰기 요청을 받고, 쓰기 요청과 관련된 쓰기 데이터를 데이터 입출력 큐(126)에 저장하며, 데이터 입출력 큐(126)에 저장된 데이터가 완전한 스토리지 논리 페이지를 포함하는 경우 혹은 파일시스템으로부터 플러시 요청이 있는 경우 스토리지 장치(140)로 데이터를 전송한다. (도 3에서, WR2은 파일시스템(122)으로부터 쓰기 요청 받은 쓰기 데이터를 나타내고, DT2은 스토리지 장치(140)로 전송한 쓰기 데이터를 나타내며, RD는 쓰기 데이터를 스토리지 장치(140)로 전송한 후 데이터 입출력 큐(126)에 저장되어 있는 데이터를 나타낸다.) 예를 들어, 스토리지 논리 페이지의 크기가 호스트 논리 페이지 크기의 4배인 경우로 가정하면, 파일시스템(122)으로부터 호스트 논리 페이지 크기의 2배 크기인 제 1 쓰기 요청(L0-0, L0-1)이 발생하는 경우, 호스트 컨트롤러(124)는 데이터 입출력 큐(126)에 제 1 쓰기 요청과 관련된 쓰기 데이터를 저장하고, 데이터 입출력 큐(126)에 완전한 스토리지 논리 페이지가 존재하지 않으므로 스토리지 장치(140)로 데이터를 전송하지 않는다. 이어서, 호스트 논리 페이지 크기의 8배 크기인 제 2 쓰기 요청(L0-2, L0-3, L1-0, L1-1, L1-2, L1-3, L2-0, L2-1)이 발생하는 경우, 호스트 컨트롤러(124)는 데이터 입출력 큐(126)에 제 2 쓰기 요청과 관련된 쓰기 데이터를 저장하고, 데이터 입출력 큐(126)에 완전한 스토리지 논리 페이지(L0, L1)가 존재하므로 스토리지 장치(140)에 완전한 스토리지 논리 페이지에 해당하는 데이터(L0, L1)를 데이터 입출력 큐(126)로부터 가져와서 전송한다. 이 때, 호스트 컨트롤러(124)는 완전한 스토리지 논리 페이지에 해당하는 데이터(L0, L1)를 재병합하여 하나의 I/O요청으로 전송할 수도 있다. 이어서 호스트 컨트롤러(124)가 파일시스템(122)로부터 플러시 요청을 받는 경우, 호스트 컨트롤러(124)는 데이터 입출력 큐(126)에 저장된 모든 데이터(L2-0, L2-1)를 데이터 입출력 큐(126)로부터 가져와서 스토리지 장치(140)로 전송한다. 이어서, 호스트 논리 페이지 크기의 2배 크기인 제 3 쓰기 요청(L3-0, L3-1)이 발생하는 경우, 호스트 컨트롤러(124)는 데이터 입출력 큐(126)에 제 3 쓰기 요청과 관련된 쓰기 데이터를 저장하고, 데이터 입출력 큐(126)에 완전한 스토리지 논리 페이지가 존재하지 않으므로 스토리지 장치(140)에 쓰기 데이터를 전송하지 않는다. 여기서 플러시 요청이 발생되는 경우 파일시스템(122)이 제 3 쓰기 요청을 함에 있어서, 제 2 쓰기 요청에서 요청했던 스토리지 논리 페이지에 사용할 수 있는 공간이 남아 있더라도(L2-2, L2-3), 해당 스토리지 논리 페이지를 건너 뛰고 사용하는 것을 예시하였다. 이는 남은 공간에 쓰기를 요청하면 해당 스토리지 논리 페이지에 복수의 쓰기 요청이 전송되고, 이로 인해 스토리지 컨트롤러 내에서 풀 병합 (full merge)가 발생할 수 있기 때문에 이를 피하기 위해서이다.
도 4는 본 발명의 실시예들에 따른 스토리지 시스템의 쓰기 데이터 처리 방법을 나타내는 순서도이다.
도 4를 참조하면, 파일시스템으로부터 새로운 쓰기 요청이 들어오는(Step S110) 경우, 호스트 컨트롤러는 새로운 쓰기 요청과 관련된 쓰기 데이터를 데이터 입출력 큐에 저장(Step S130)할 수 있다. 데이터 입출력 큐에 저장되어 있는 모든 데이터(데이터 입출력 큐에 저장되어 있는 이전 쓰기 요청과 관련된 잔류 데이터를 포함)를 완전한 스토리지 논리 페이지와 불완전한 스토리지 논리 페이지로 구분(Step S150)할 수 있다. 이 때, 호스트 컨트롤러는 상기 쓰기 요청에 응답하여 완전한 스토리지 논리 페이지에 해당하는 데이터를 스토리지 장치로 전송(Step S170)하는 반면에, 상기 쓰기 요청에 응답하여 불완전한 스토리지 논리 페이지에 해당하는 데이터를 데이터 입출력 큐에 잔류(Step S190)시킬 수 있다.
구체적으로, 파일시스템은 블록 단위로 데이터를 읽고 새로운 쓰기 요청을 하며(Step S110), 호스트 컨트롤러는 파일시스템의 쓰기 요청과 관련된 쓰기 데이터를 호스트 논리 페이지 크기로 처리하여 데이터 입출력 큐에 저장(Step S130)할 수 있다. 일 실시예에서 호스트 컨트롤러는 쓰기 데이터가 완전한 스토리지 논리 페이지를 포함하는 경우, 완전한 스토리지 논리 페이지에 해당하는 데이터는 데이터 입출력 큐에 저장하지 않고 스토리지 장치로 전송(Step S112)할 수 있다. 완전한 스토리지 논리 페이지에 해당하는 데이터는 다음 쓰기 요청을 기다릴 필요가 없으므로 데이터 입출력 큐에 저장하지 않고 스토리지 장치로 전송함으로써 성능을 향상 시킬 수 있다. 일 실시예에서 새로운 쓰기 요청과 관련된 쓰기 데이터가 이전 쓰기 요청과 관련된 잔류 데이터에 해당하는 스토리지 논리 페이지의 데이터를 포함하는지 판단(Step S114)하여, 포함하고 있지 않은 경우 다음 쓰기 요청에서 잔류 데이터와 동일한 스토리지 논리 페이지인 데이터를 기대하기 어려우므로 잔류 데이터를 스토리지 장치로 전송(Step S116)할 수 있다. 여기서, 새로운 쓰기 요청과 관련된 쓰기 데이터가 이전 쓰기 요청과 관련된 잔류 데이터에 해당하는 스토리지 논리 페이지의 데이터를 포함하는지 판단(Step S114)하는 단계와 잔류 데이터를 스토리지 장치로 전송(Step S116)하는 단계는 데이터 입출력 큐에 저장(Step S130)하는 단계와 순서에 관계없이 판단되어 전송할 수 있다. 호스트 컨트롤러는 데이터 입출력 큐에 저장되어 있는 모든 데이터를 완전한 스토리지 논리 페이지와 불완전한 스토리지 논리 페이지로 구분(Step S150)할 수 있다. 일 실시예에서, 완전한 스토리지 논리 페이지인지 여부는 스토리지 논리 페이지의 마지막 부분에 해당하는 데이터를 포함하는 경우 완전한 스토리지 논리 페이지로 판단하고, 그렇지 않은 경우 불완전한 스토리지 논리 페이지로 판단할 수 있다. 일 실시예에서, 데이터 입출력 큐에 저장되어 있는 데이터가 완전한 스토리지 논리 페이지인지 여부는 스토리지 논리 페이지 크기와 데이터 입출력 큐 내에서 동일한 스토리지 논리 페이지에 해당하는 것으로 판단되는 데이터의 크기를 비교하여, 크기가 동일한 경우 완전한 스토리지 논리 페이지로 판단하고, 스토리지 논리 페이지 크기보다 데이터 입출력 큐 내에서 동일한 스토리지 논리 페이지에 해당하는 것으로 판단되는 데이터의 크기가 작은 경우 불완전한 스토리지 논리 페이지라고 판단할 수 있다. 이후, 호스트 컨트롤러는 완전한 스토리지 논리 페이지에 해당하는 데이터를 데이터 입출력 큐로부터 가져와서 스토리지 장치로 전송(Step S170)할 수 있다. 일 실시예에서, 호스트 컨트롤러는 완전한 스토리지 논리 페이지에 해당하는 데이터들을 하나의 I/O 요청으로 재병합한 후 스토리지 장치로 전송할 수 있다. 반면에, 호스트 컨트롤러는 불완전한 스토리지 논리 페이지에 해당하는 데이터를 데이터 입출력 큐에 잔류(Step S190)시킬 수 있다. 한편, 실시예에 따라, 파일시스템으로부터 플러시 요청이 호스트 컨트롤러로 들어오는 경우, 호스트 컨트롤러는 모든 쓰기 요청과 관련된 데이터를 처리하기 위해 데이터 입출력 큐에 저장되어 있는 모든 데이터를 스토리지 장치로 전송할 수 있다.
이상, 본 발명의 실시예들에 따른 스토리지 시스템 및 이의 쓰기 데이터 처리 방법에 대해 도면을 참조하여 설명하였지만, 상기 설명은 예시적인 것으로서 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 수정 및 변경될 수 있을 것이다.
본 발명은 스토리지 장치(즉, 플래시 메모리 장치)를 구비한 스토리지 시스템에 적용될 수 있다. 예를 들어, 본 발명은 솔리드 스테이트 드라이브(SSD), 임베디드 멀티미디어 카드(EMMC), 시큐어 디지털 카드(SD카드) 등을 구비한 스토리지 시스템에 적용될 수 있다.
이상에서는 본 발명의 예시적인 실시예들을 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
* 부호의 설명
100: 스토리지 시스템 120: 호스트 장치
122: 파일시스템 124: 호스트 컨트롤러
126: 데이터 입출력 큐 140: 스토리지 장치
142: 스토리지 컨트롤러 146: 플래시 메모리

Claims (10)

  1. 파일시스템이 쓰기 요청을 하는 경우, 상기 쓰기 요청과 관련된 쓰기 데이터를 데이터 입출력 큐(queue)에 저장하는 단계;
    상기 데이터 입출력 큐에 저장되어 있는 모든 데이터를 완전한(full) 스토리지 논리 페이지와 불완전한 스토리지 논리 페이지로 구분하는 단계;
    상기 쓰기 요청에 응답하여 상기 완전한 스토리지 논리 페이지에 해당하는 데이터를 스토리지 장치로 전송하는 단계; 및
    상기 쓰기 요청에 응답하여 상기 불완전한 스토리지 논리 페이지에 해당하는 데이터를 상기 데이터 입출력 큐에 잔류시키는 단계를 포함하는 스토리지 시스템의 쓰기 데이터 처리 방법.
  2. 제 1 항에 있어서, 상기 쓰기 데이터가 상기 완전한 스토리지 논리 페이지를 포함하는 경우, 상기 완전한 스토리지 논리 페이지에 해당하는 데이터는 상기 데이터 입출력 큐에 저장하지 않고 상기 스토리지 장치로 전송되는 것을 특징으로 하는 스토리지 시스템의 쓰기 데이터 처리 방법.
  3. 제 1 항에 있어서, 상기 쓰기 데이터가 상기 데이터 입출력 큐에 저장되어 있는 이전 쓰기 요청과 관련된 잔류 데이터에 해당하는 스토리지 논리 페이지의 데이터를 포함하고 있지 않은 경우, 상기 잔류 데이터는 상기 스토리지 장치로 전송되는 것을 특징으로 하는 스토리지 시스템의 쓰기 데이터 처리 방법.
  4. 제 1 항에 있어서, 상기 완전한 스토리지 논리 페이지와 상기 불완전한 스토리지 논리 페이지는 상기 스토리지 장치에 설정되어 있는 스토리지 논리 페이지 크기에 기초하여 구분되는 것을 특징으로 하는 스토리지 시스템의 쓰기 데이터 처리 방법.
  5. 제 1 항에 있어서,
    상기 파일시스템이 플러시(flush) 요청을 하는 경우, 상기 데이터 입출력 큐에 저장되어 있는 모든 데이터를 상기 스토리지 장치로 전송하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 시스템의 쓰기 데이터 처리 방법.
  6. 적어도 하나 이상의 플래시 메모리 및 스토리지 플래시 변환 레이어를 이용하여 상기 플래시 메모리를 제어하는 스토리지 컨트롤러를 구비한 스토리지 장치; 및
    파일시스템 및 상기 스토리지 컨트롤러와 인터액션(interaction)을 수행하는 호스트 컨트롤러를 구비한 호스트 장치를 포함하고,
    상기 호스트 컨트롤러는 상기 파일시스템이 쓰기 요청을 하는 경우, 상기 쓰기 요청과 관련된 쓰기 데이터를 데이터 입출력 큐에 저장하고, 상기 데이터 입출력 큐에 저장되어 있는 모든 데이터를 완전한 스토리지 논리 페이지와 불완전한 스토리지 논리 페이지로 구분하여 상기 완전한 스토리지 논리 페이지에 해당하는 데이터를 상기 스토리지 장치로 전송하는 것을 특징으로 하는 스토리지 시스템.
  7. 제 6 항에 있어서, 상기 호스트 컨트롤러는 상기 쓰기 데이터가 상기 완전한 스토리지 논리 페이지를 포함하는 경우, 상기 완전한 스토리지 논리 페이지에 해당하는 데이터를 상기 데이터 입출력 큐에 저장하지 않고 상기 스토리지 장치로 전송하는 것을 특징으로 하는 스토리지 시스템.
  8. 제 6 항에 있어서, 상기 호스트 컨트롤러는 상기 쓰기 데이터가 상기 데이터 입출력 큐에 저장되어 있는 이전 쓰기 요청과 관련된 잔류 데이터에 해당하는 스토리지 논리 페이지의 데이터를 포함하고 있지 않은 경우, 상기 잔류 데이터를 상기 스토리지 장치로 전송하는 것을 특징으로 하는 스토리지 시스템.
  9. 제 6 항에 있어서, 상기 호스트 컨트롤러는 상기 완전한 스토리지 논리 페이지와 상기 불완전한 스토리지 논리 페이지를 상기 스토리지 장치에 설정되어 있는 스토리지 논리 페이지 크기에 기초하여 구분하는 것을 특징으로 하는 스토리지 시스템.
  10. 제 6 항에 있어서, 상기 호스트 컨트롤러는 상기 파일시스템이 플러시 요청을 하는 경우, 상기 데이터 입출력 큐에 저장되어 있는 모든 데이터를 상기 스토리지 장치로 전송하는 것을 특징으로 하는 스토리지 시스템.
PCT/KR2014/000867 2013-04-17 2014-01-29 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법 WO2014171618A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/785,073 US20160162187A1 (en) 2013-04-17 2014-01-29 Storage System And Method For Processing Writing Data Of Storage System

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0042152 2013-04-17
KR1020130042152A KR101478168B1 (ko) 2013-04-17 2013-04-17 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법

Publications (1)

Publication Number Publication Date
WO2014171618A1 true WO2014171618A1 (ko) 2014-10-23

Family

ID=51731529

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/000867 WO2014171618A1 (ko) 2013-04-17 2014-01-29 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법

Country Status (3)

Country Link
US (1) US20160162187A1 (ko)
KR (1) KR101478168B1 (ko)
WO (1) WO2014171618A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106802770A (zh) * 2015-11-25 2017-06-06 爱思开海力士有限公司 存储器系统及其操作方法

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753936B1 (en) * 2014-12-01 2017-09-05 Amazon Technologies, Inc. Metering data in distributed storage environments
CN104679609B (zh) * 2015-02-11 2017-12-15 北京配天技术有限公司 数控系统
US10235397B1 (en) 2016-09-30 2019-03-19 EMC IP Holding Company LLC Trees and graphs in flash memory
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
TWI639921B (zh) 2017-11-22 2018-11-01 大陸商深圳大心電子科技有限公司 指令處理方法及使用所述方法的儲存控制器
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US10871921B2 (en) * 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
KR20210121660A (ko) 2020-03-31 2021-10-08 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055603A (en) * 1997-09-18 2000-04-25 Emc Corporation Method and apparatus for performing pre-request operations in a cached disk array storage system
JP2006092169A (ja) * 2004-09-22 2006-04-06 Toshiba Corp メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
KR20110000876A (ko) * 2009-06-29 2011-01-06 주식회사 하이닉스반도체 낸드 플래시 메모리 장치와 그의 컨트롤러 및 이들의 라이트 오퍼레이션 방법
KR20120034976A (ko) * 2010-10-04 2012-04-13 한국과학기술원 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8601222B2 (en) * 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
KR20140042431A (ko) * 2012-09-28 2014-04-07 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
US8526234B1 (en) * 2012-11-16 2013-09-03 Avalanche Technology, Inc. Controller management of memory array of storage device using magnetic random access memory (MRAM)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055603A (en) * 1997-09-18 2000-04-25 Emc Corporation Method and apparatus for performing pre-request operations in a cached disk array storage system
JP2006092169A (ja) * 2004-09-22 2006-04-06 Toshiba Corp メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
KR20110000876A (ko) * 2009-06-29 2011-01-06 주식회사 하이닉스반도체 낸드 플래시 메모리 장치와 그의 컨트롤러 및 이들의 라이트 오퍼레이션 방법
KR20120034976A (ko) * 2010-10-04 2012-04-13 한국과학기술원 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106802770A (zh) * 2015-11-25 2017-06-06 爱思开海力士有限公司 存储器系统及其操作方法
CN106802770B (zh) * 2015-11-25 2020-08-25 爱思开海力士有限公司 存储器系统及其操作方法

Also Published As

Publication number Publication date
KR20140124537A (ko) 2014-10-27
US20160162187A1 (en) 2016-06-09
KR101478168B1 (ko) 2014-12-31

Similar Documents

Publication Publication Date Title
WO2014171618A1 (ko) 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법
CN113377283B (zh) 具有分区命名空间的存储器系统及其操作方法
WO2013165108A1 (ko) 비휘발성 메모리 시스템
CN109542332B (zh) 存储器系统及控制非易失性存储器的控制方法
EP2631916B1 (en) Data deletion method and apparatus
EP2598996B1 (en) Apparatus, system, and method for conditional and atomic storage operations
KR100939145B1 (ko) 메모리 디바이스
JP5518197B2 (ja) ストレージを割り当てるための装置、システム、および方法
CN112930520B (zh) 用于使用以太网驱动器及以太网络开放通道驱动器存储数据的系统及方法
US20160306552A1 (en) Low write amplification in solid state drive
US20080195833A1 (en) Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit
CN110389718A (zh) 存储系统及非易失性存储器的控制方法
TW200935220A (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
JP4441577B2 (ja) 固定サイズ格納ブロックを有するメモリシステムにおける変換データ単位格納
US20130103893A1 (en) System comprising storage device and related methods of operation
WO2016195242A1 (ko) 비휘발성 메모리 시스템
EP3771976B1 (en) Storage device
US20200218646A1 (en) System and method of fpga-executed flash translation layer in multiple solid state drives
JP2006268776A (ja) メモリカード
CN112599170A (zh) 用于在存储器系统中提供多流操作的设备和方法
JP2009519555A (ja) 論理アドレス形ファイル記憶
WO2014142427A1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
US7969781B2 (en) Method of controlling memory system
US20170139607A1 (en) Method and system for shared direct access storage
TW202322129A (zh) 用於改善存儲裝置的資料輸入/輸出性能的設備和方法

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14785073

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

Country of ref document: EP

Kind code of ref document: A1