KR101887663B1 - Method and apparatus for processing data using dummy page - Google Patents

Method and apparatus for processing data using dummy page Download PDF

Info

Publication number
KR101887663B1
KR101887663B1 KR1020160137688A KR20160137688A KR101887663B1 KR 101887663 B1 KR101887663 B1 KR 101887663B1 KR 1020160137688 A KR1020160137688 A KR 1020160137688A KR 20160137688 A KR20160137688 A KR 20160137688A KR 101887663 B1 KR101887663 B1 KR 101887663B1
Authority
KR
South Korea
Prior art keywords
write request
write
storage device
dummy page
aligned
Prior art date
Application number
KR1020160137688A
Other languages
Korean (ko)
Other versions
KR20180044071A (en
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 KR1020160137688A priority Critical patent/KR101887663B1/en
Publication of KR20180044071A publication Critical patent/KR20180044071A/en
Application granted granted Critical
Publication of KR101887663B1 publication Critical patent/KR101887663B1/en

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/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

더미 페이지를 이용한 데이터 처리 방법 및 장치가 개시된다. 개시된 데이터 처리 방법은 저장 장치에 데이터를 기록하고자 하는 쓰기 요청이 저장 장치의 쓰기 단위에 정렬(align)되는지 여부를 판단하고, 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되지 않는 경우, 유효하지 않은 데이터를 포함하는 더미 페이지를 쓰기 요청에 추가함으로써 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시키며, 정렬된 쓰기 요청을 반환(return)한다. 그리고, 저장 장치에 정렬된 쓰기 요청에 대응하는 데이터가 기록된다.A data processing method and apparatus using a dummy page are disclosed. The disclosed data processing method determines whether a write request to write data to a storage device is aligned to a write unit of the storage device and, if the write request is not aligned to a write unit of the storage device, To the write request, thereby aligning the write request with the write unit of the storage device and returning the aligned write request. Then, data corresponding to the write request aligned in the storage device is recorded.

Description

더미 페이지를 이용한 데이터 처리 방법 및 장치{METHOD AND APPARATUS FOR PROCESSING DATA USING DUMMY PAGE}TECHNICAL FIELD [0001] The present invention relates to a method and apparatus for processing data using a dummy page,

아래의 설명은 더미 페이지를 이용한 데이터 처리 방법 및 장치에 관한 것으로, 보다 구체적으로는 발생한 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되지 않은 경우에 더미 페이지를 쓰기 요청에 추가함으로써 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시키는 방법 및 장치에 관한 것이다.The following description relates to a method and apparatus for processing data using a dummy page, and more particularly, to a method and apparatus for processing a write request by adding a dummy page to a write request when the write request is not aligned with the write unit of the storage device Write units in a memory device.

플래시 메모리 기반 저장 장치는 미리 결정된 쓰기 단위(예컨대, 페이지 크기)로 데이터 쓰기를 수행하며, 페이지의 크기는 제조사마다 4~32Kbype 등으로 다양하다. 만약 호스트에서 페이지 단위보다 작은 크기의 업데이트 요청이 저장 장치로 전달되면, 저장 장치는 페이지 부분 쓰기(Page Partial Write)를 수행한다. 저장 장치는 페이지 부분 쓰기를 위해 저장 장치의 내부 메모리에 페이지 크기의 영역을 버퍼로 할당하고, 업데이트할 데이터가 저장된 페이지를 메모리 버퍼로 읽어온다. 그리고, 저장 장치는 호스트에서 전달된 업데이트 데이터를 버퍼에 반영한 뒤, 버퍼의 데이터를 페이지 크기로 기록한다. 이러한 일련의 동작을 read-modify-write이라 한다. 업데이트된 데이터는 저장 장치 내에서 새로운 영역에 저장되므로, 변경된 위치를 기록할 자료구조가 필요하며, 이러한 자료구조를 매핑 테이블(mapping table)이라 한다.The flash memory based storage device performs data writing in a predetermined writing unit (e.g., page size), and the size of the page varies from 4 to 32 Kbytes for each manufacturer. If an update request of a size smaller than a page unit is transmitted to the storage device at the host, the storage device performs a page partial write. The storage device allocates a page size area as a buffer to the internal memory of the storage device for writing a page portion, and reads the page storing the data to be updated into the memory buffer. Then, the storage device reflects the update data transferred from the host in the buffer, and records the data of the buffer in page size. This sequence of operations is called read-modify-write. Since the updated data is stored in a new area in the storage device, a data structure for recording the changed location is required. Such a data structure is called a mapping table.

만일 저장 장치가 매핑 테이블을 관리하지 않고 호스트가 직접 매핑 테이블을 관리하는 경우, 호스트는 직접 read-modify-write을 수행하고 저장 장치의 쓰기 단위로 정렬된 쓰기 요청을 저장 장치에 전달해주어야 한다. 다시 말해, 생성된 쓰기 요청이 페이지 단위로 정렬되어 있지 않은 경우, 호스트는 내부 메모리에 저장 장치의 페이지 크기의 버퍼를 할당하고, 업데이트할 데이터를 저장 장치로부터 읽어온 뒤 데이터를 업데이트하고, 저장 장치의 쓰기 단위로 다시 저장 장치로 전달해야 한다. 그러나 이러한 방식은 저장 장치로부터 데이터를 읽어오는 오버헤드(overhead)가 발생한다.If the storage device does not manage the mapping table and the host directly manages the mapping table, the host must directly read-modify-write and pass the write request aligned to the write unit of the storage device to the storage device. In other words, if the generated write request is not arranged page by page, the host allocates a buffer of the page size of the storage device to the internal memory, updates the data after reading the data to be updated from the storage device, To the storage device as a write unit of the < / RTI > However, this approach causes an overhead in reading data from the storage device.

또 다른 방법으로는, 해당 쓰기 요청과 병합될 수 있는 다음 쓰기 요청을 기다리는 방법이 있을 수 있다. 만일 다음 쓰기 요청이 해당 쓰기 요청과 연속된 블록 주소를 갖는다면, 다음 쓰기 요청과 해당 쓰기 요청은 병합되어 처리될 수 있다. 그러나 이러한 방법은 다음과 같은 몇 가지 문제점을 갖는다. 첫 번째로, 다음 쓰기 요청이 언제 발생할지 알 수 없으며, 다음 쓰기 요청이 전달될 때까지 무기한 대기를 해야 할 수도 있다. 두 번째로, 동기화 명령(fsync() 등)이 발생하여 해당 쓰기 요청을 즉시 저장 장치로 전달해야 하는 경우에는 다음 쓰기 요청을 기다리지 못하고 해당 쓰기 요청을 저장 장치로 전달해야 한다. 세 번째로, 해당 쓰기 요청과 다음 쓰기 요청이 병합되었으나, 병합된 쓰기 요청의 크기가 저장 장치의 쓰기 단위로 정렬되지 않을 수도 있다.Alternatively, there may be a way to wait for the next write request that can be merged with the write request. If the next write request has a contiguous block address with the write request, the next write request and the corresponding write request can be merged and processed. However, this method has several problems as follows. First, you do not know when the next write request will occur, and you may have to wait indefinitely for the next write request to be delivered. Second, if a synchronization command (such as fsync ()) occurs and the write request must be immediately transferred to the storage device, the write request must be forwarded to the storage device without waiting for the next write request. Third, the write request and the next write request are merged, but the size of the merged write request may not be aligned with the write unit of the storage device.

본 발명은 더미 페이지를 이용하여 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시킴으로써, 호스트가 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시키거나 페이지 부분 쓰기를 수행할 때 발생하는 오버헤드를 효과적으로 방지할 수 있다.By arranging the write request to the write unit of the storage device by using the dummy page, the present invention can effectively prevent the overhead that occurs when the host aligns the write request to the write unit of the storage device or performs the page portion write have.

본 발명은 쓰기 요청에 유효하지 않은 데이터를 포함하는 더미 페이지를 추가하여 쓰기 요청을 저장 장치의 쓰기 단위의 배수로 정렬시킴으로써, 저장 장치가 쓰기 단위로 정렬된 쓰기 요청만을 처리 가능한 경우에도 효율적으로 쓰기 요청을 처리할 수 있다.The present invention adds a dummy page containing invalid data to a write request and aligns the write request to a multiple of the write unit of the storage device so that even if the storage device can process only write requests aligned in write units, Lt; / RTI >

본 발명은 정렬된 쓰기 요청을 처리한 후 정렬된 쓰기 요청에 포함된 더미 페이지를 제거함으로써, 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시키기 위한 더미 페이지를 효과적으로 활용할 수 있다.The present invention can effectively utilize the dummy page for aligning the write request to the write unit of the storage device by removing the dummy page included in the aligned write request after processing the aligned write request.

일 실시예에 따른 데이터 처리 방법은 저장 장치에 데이터를 기록하고자 하는 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬(align)되는지 여부를 판단하는 단계; 상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되지 않는 경우, 유효하지 않은 데이터를 포함하는 더미 페이지를 상기 쓰기 요청에 추가하는데 있어 상기 쓰기 요청된 데이터의 크기와 더미 페이지의 크기의 합을 상기 저장 장치의 쓰기 단위의 배수로 결정하여 상기 저장 장치의 쓰기 단위로 정렬시키는 단계; 및 상기 정렬된 쓰기 요청을 반환(return)하는 단계를 포함하고, 상기 저장 장치에 상기 정렬된 쓰기 요청에 대응하는 데이터가 기록된다.A method of processing data according to an exemplary embodiment of the present invention includes: determining whether a write request to write data to a storage device is aligned with a write unit of the storage device; When the write request is not aligned with the write unit of the storage device, adding a dummy page including invalid data to the write request, the sum of the size of the write requested data and the size of the dummy page, Determining a multiple of a write unit of the device and aligning the write unit of the device with the write unit; And returning the aligned write request, wherein data corresponding to the aligned write request is written to the storage device.

일 실시예에 따른 데이터 처리 방법에서 상기 더미 페이지의 크기는, 상기 쓰기 요청의 크기 및 상기 저장 장치의 쓰기 단위의 배수에 기초하여 결정될 수 있다.In a data processing method according to an exemplary embodiment, the size of the dummy page may be determined based on a size of the write request and a multiple of a write unit of the storage device.

일 실시예에 따른 데이터 처리 방법에서 상기 쓰기 요청을 상기 저장 장치의 쓰기 단위로 정렬시키는 단계는, 페이지 캐시에서 할당된 더미 페이지와 파일시스템에서 할당된 블록을 매핑하여 상기 쓰기 요청에 추가할 수 있다.In the data processing method according to an exemplary embodiment, the step of aligning the write request to the write unit of the storage device may add the dummy page allocated in the page cache and the block allocated in the file system to the write request .

일 실시예에 따른 데이터 처리 방법에서 상기 파일시스템에서 할당된 블록은, 상기 쓰기 요청에 연속되는 블록으로 할당될 수 있다.In a data processing method according to an exemplary embodiment, a block allocated in the file system may be allocated to a block subsequent to the write request.

일 실시예에 따른 데이터 처리 방법에서 상기 파일시스템의 메타데이터는, 상기 더미 페이지에 할당된 블록에 유효한 데이터가 포함되지 않음을 나타내는 정보를 포함할 수 있다.In the data processing method according to an exemplary embodiment, the meta data of the file system may include information indicating that valid data is not included in a block allocated to the dummy page.

일 실시예에 따른 데이터 처리 방법에서 상기 파일시스템의 메타데이터는, 유효 비트맵(valid bitmap)을 포함하고, 상기 더미 페이지가 기록될 블록 주소는, 상기 유효 비트맵에서 무효처리(invalidation)될 수 있다.In the data processing method according to an exemplary embodiment, the metadata of the file system includes a valid bitmap, and the block address in which the dummy page is to be written may be invalidated in the valid bitmap have.

일 실시예에 따른 데이터 처리 방법에서 상기 더미 페이지는, 상기 정렬된 쓰기 요청이 처리된 후 프리(free) 공간으로 회수될 수 있다.In a data processing method according to an exemplary embodiment, the dummy page may be recovered to a free space after the aligned write request is processed.

일 실시예에 따른 데이터 처리 방법에서 상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되는지 여부를 판단하는 단계는, 상기 쓰기 요청의 크기가 상기 저장 장치의 쓰기 단위의 배수로 정렬되는지 여부를 판단할 수 있다.In a data processing method according to an exemplary embodiment, the step of determining whether the write request is aligned with a write unit of the storage device may include determining whether a size of the write request is a multiple of a write unit of the storage device have.

일 실시예에 따른 데이터 처리 방법은 상기 쓰기 요청이 발생하기 전에 존재하던 기존의 쓰기 요청에 상기 저장 장치에 대한 쓰기 요청이 병합될 수 있는지 여부를 판단하는 단계를 더 포함하고, 상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되는지 여부를 판단하는 단계는, 상기 쓰기 요청이 상기 기존의 쓰기 요청에 병합되지 않는 경우, 상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되는지 여부를 판단할 수 있다.The data processing method according to an embodiment may further include determining whether a write request for the storage device can be merged into an existing write request that existed before the write request is generated, The step of determining whether or not the write request is aligned with the write unit of the storage device may determine whether the write request is aligned with the write unit of the storage device when the write request is not merged with the existing write request.

일 실시예에 따른 데이터 처리 방법은 처리된 쓰기 요청에 유효하지 않은 데이터를 포함하는 더미 페이지가 포함되어 있는지 여부를 판단하는 단계; 상기 쓰기 요청에 더미 페이지가 포함되어 있는 경우, 상기 쓰기 요청에서 더미 페이지의 제거를 요청하는 단계; 및 상기 더미 페이지가 제거된 쓰기 요청을 반환하는 단계를 포함한다.A method of processing data according to an exemplary embodiment of the present invention includes: determining whether a dummy page including invalid data is included in a processed write request; Requesting removal of a dummy page in the write request if the write request includes a dummy page; And returning a write request in which the dummy page is removed.

일 실시예에 따른 데이터 처리 방법에서 상기 더미 페이지는, 상기 더미 페이지에 할당된 페이지 캐시 상의 메모리 영역이 해제됨으로써 상기 쓰기 요청에서 제거될 수 있다.In a data processing method according to an embodiment, the dummy page may be removed from the write request by releasing a memory area on a page cache allocated to the dummy page.

일 실시예에 따른 데이터 처리 방법에서 상기 쓰기 요청에 더미 페이지가 포함되어 있는지 여부를 판단하는 단계는, 상기 쓰기 요청의 자료 구조를 확인함으로써, 상기 쓰기 요청이 더미 페이지를 통해 저장 장치의 쓰기 단위에 정렬되었는지 여부를 판단할 수 있다.The step of determining whether or not a dummy page is included in the write request in the data processing method according to an exemplary embodiment includes checking the data structure of the write request so that the write request is written to the write unit of the storage device through the dummy page It is possible to judge whether or not it is aligned.

일 실시예에 따른 데이터 처리 장치는 저장 장치에 데이터를 기록하고자 하는 쓰기 요청을 처리하는 프로세서를 포함하고, 상기 프로세서는, 저장 장치에 대한 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬(align)되는지 여부를 판단하고, 상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되지 않는 경우, 유효하지 않은 데이터를 포함하는 더미 페이지를 상기 쓰기 요청에 추가하는데 있어 상기 쓰기 요청된 데이터의 크기와 더미 페이지의 크기의 합을 상기 저장 장치의 쓰기 단위의 배수로 결정하여 상기 저장 장치의 쓰기 단위로 정렬시키며, 상기 정렬된 쓰기 요청을 반환하고, 상기 저장 장치에 상기 정렬된 쓰기 요청에 대응하는 데이터가 기록된다.A data processing apparatus according to an embodiment includes a processor for processing a write request to write data to a storage device, the processor being configured to determine whether a write request for the storage device is aligned with a write unit of the storage device And if the write request is not aligned with the write unit of the storage device, adding a dummy page including invalid data to the write request causes the size of the write requested data and the size of the dummy page Is determined as a multiple of a write unit of the storage device and is aligned with a write unit of the storage device, the aligned write request is returned, and data corresponding to the aligned write request is recorded in the storage device.

일 실시예에 따른 데이터 처리 장치에서 상기 더미 페이지의 크기는, 상기 쓰기 요청의 크기 및 상기 저장 장치의 쓰기 단위의 배수에 기초하여 결정될 수 있다.In a data processing apparatus according to an exemplary embodiment, the size of the dummy page may be determined based on a size of the write request and a multiple of a write unit of the storage device.

일 실시예에 따른 데이터 처리 장치에서 상기 프로세서는, 페이지 캐시에서 할당된 더미 페이지와 파일시스템에서 할당된 블록을 매핑하여 상기 쓰기 요청에 추가할 수 있다.In the data processing apparatus according to an embodiment, the processor may add a dummy page allocated in the page cache and a block allocated in the file system to the write request.

일 실시예에 따른 데이터 처리 장치는 저장 장치에 대한 쓰기 요청을 처리하는 프로세서를 포함하고, 상기 프로세서는, 처리된 쓰기 요청에 유효한 데이터를 포함하지 않는 더미 페이지가 포함되어 있는지 여부를 판단하고, 상기 쓰기 요청에 더미 페이지가 포함되어 있는 경우, 상기 쓰기 요청에서 더미 페이지의 제거를 요청하며, 상기 더미 페이지가 제거된 쓰기 요청을 반환한다.A data processing apparatus according to an embodiment includes a processor for processing a write request to a storage device, the processor determining whether a processed write request includes a dummy page that does not contain valid data, If the write request includes a dummy page, the write request requests removal of the dummy page, and the write request with the dummy page removed is returned.

일 실시예에 따른 데이터 처리 장치에서 상기 더미 페이지는, 상기 더미 페이지에 할당된 페이지 캐시 상의 메모리 영역이 해제됨으로써 상기 쓰기 요청에서 제거될 수 있다.In a data processing apparatus according to an embodiment, the dummy page can be removed from the write request by releasing a memory area on a page cache allocated to the dummy page.

일 실시예에 따르면, 더미 페이지를 이용하여 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시킴으로써, 호스트가 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시키거나 페이지 부분 쓰기를 수행할 때 발생하는 오버헤드를 효과적으로 방지할 수 있다.According to one embodiment, by arranging a write request to a write unit of a storage device using a dummy page, it is possible to efficiently allocate the overhead that occurs when the host aligns a write request to a write unit of a storage device or performs a page portion write .

일 실시예에 따르면, 쓰기 요청에 유효하지 않은 데이터를 포함하는 더미 페이지를 추가하여 쓰기 요청을 저장 장치의 쓰기 단위의 배수로 정렬시킴으로써, 저장 장치가 쓰기 단위로 정렬된 쓰기 요청만을 처리 가능한 경우에도 효율적으로 쓰기 요청을 처리할 수 있다.According to an embodiment, by adding a dummy page including invalid data to a write request to align a write request to a multiple of a write unit of the storage device, even if the storage device can process only write requests aligned in write units, To process the write request.

일 실시예에 따르면, 정렬된 쓰기 요청을 처리한 후 정렬된 쓰기 요청에 포함된 더미 페이지를 제거함으로써, 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시키기 위한 더미 페이지를 효과적으로 활용할 수 있다.According to one embodiment, a dummy page for aligning a write request to a write unit of a storage device can be effectively utilized by removing the dummy page included in the aligned write request after processing the aligned write request.

도 1은 일 실시예에 따라 쓰기 요청이 정렬되는 과정을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 쓰기 요청에 대한 패치 동작을 설명하기 위한 도면이다.
도 3은 일 실시예에 따라 새로운 쓰기 요청을 처리하는 과정을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 쓰기 요청에 대한 언패치(unpatch) 동작을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 데이터 처리 방법을 나타낸 도면이다.
도 6은 다른 일 실시예에 따른 데이터 처리 방법을 나타낸 도면이다.
1 is a diagram illustrating a process of arranging write requests according to an embodiment.
2 is a view for explaining a patch operation for a write request according to an embodiment.
3 is a diagram for explaining a process of processing a new write request according to an embodiment.
4 is a diagram for explaining an unpatch operation for a write request according to an embodiment.
5 is a diagram illustrating a data processing method according to an embodiment.
6 is a diagram illustrating a data processing method according to another embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of embodiments are set forth for illustration purposes only and may be embodied with various changes and modifications. Accordingly, the embodiments are not intended to be limited to the specific forms disclosed, and the scope of the disclosure includes changes, equivalents, or alternatives included in the technical idea.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first or second, etc. may be used to describe various elements, but such terms should be interpreted solely for the purpose of distinguishing one element from another. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected or connected to the other element, although other elements may be present in between.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", and the like, are used to specify one or more of the described features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

하기에서 설명될 실시예들은 데이터를 처리하는데 사용될 수 있다. 이하, 데이터를 처리하는 동작은 데이터를 저장 장치에 기록할 것을 요청하는 쓰기 요청을 처리하는 동작, 쓰기 요청에 따라 데이터를 저장 장치에 기록하는 동작 및 처리된 쓰기 요청에서 유효한 데이터를 포함하지 않는 메모리 영역을 제거하는 동작 중 적어도 하나를 포함할 수 있다.The embodiments described below can be used to process data. Hereinafter, an operation of processing data includes an operation of processing a write request requesting to write data to a storage device, an operation of writing data to a storage device in response to a write request, And removing an area.

실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 웨어러블 장치, 스마트 가전 기기, 지능형 자동차, 키오스크 등 저장 장치가 포함된 다양한 형태의 제품으로 구현될 수 있다. 예를 들어, 실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 스마트 폰 등에서 데이터를 처리하는데 적용될 수 있다. 이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Embodiments may be implemented in various forms of products including personal computers, laptop computers, tablet computers, smart phones, wearable devices, smart home appliances, intelligent vehicles, kiosks, and other storage devices. For example, embodiments may be applied to processing data in personal computers, laptop computers, smart phones, and the like. Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.

도 1은 일 실시예에 따라 쓰기 요청이 정렬되는 과정을 설명하기 위한 도면이다.1 is a diagram illustrating a process of arranging write requests according to an embodiment.

도 1을 참조하면, 파일시스템에서 발생된 쓰기 요청(110)이 도시된다.Referring to FIG. 1, a write request 110 generated in the file system is shown.

쓰기 요청(110)은 저장 장치에 데이터를 기록하고자 하는 요청으로서, 기록하고자 하는 데이터의 크기를 가질 수 있다. 쓰기 요청(110)은 저장 장치에 데이터를 기록하고자 하는 요청이 발생하면 파일시스템에서 생성될 수 있다. 파일시스템은 로그 기반 파일시스템으로서, 호스트(host)에서 동작할 수 있다. 호스트는 저장 장치의 물리 주소를 이용하여 저장 장치에 데이터를 기록(write)하거나 저장 장치에 기록된 데이터를 판독(read)할 수 있다.The write request 110 is a request to write data to the storage device, and may have a size of data to be recorded. The write request 110 may be generated in the file system when a request to write data to the storage device occurs. A file system is a log-based file system that can operate on a host. The host can write data to the storage device or read data stored in the storage device using the physical address of the storage device.

쓰기 요청(110)은 저장 장치의 쓰기 단위로 정렬되어 저장 장치로 전달됨으로써, 쓰기 요청(110)에 따른 데이터가 저장 장치에 기록될 수 있다.The write request 110 is arranged in the write unit of the storage device and transferred to the storage device, so that data according to the write request 110 can be recorded in the storage device.

저장 장치는 데이터를 저장할 수 있는 장치로서, 예를 들어, 플래시 메모리(flash memory), SSD(Solid State Drive) 등을 포함할 수 있다. 데이터는 저장 장치에 기록될 수 있고, 저장 장치에 기록된 데이터는 판독되거나 삭제(delete)될 수 있다.The storage device may be a device capable of storing data, for example, a flash memory, a solid state drive (SSD), or the like. The data can be written to the storage device, and the data recorded in the storage device can be read or deleted.

저장 장치는 미리 결정된 쓰기 단위를 가질 수 있으며, 미리 결정된 쓰기 단위에 정렬된 쓰기 요청만이 저장 장치에서 처리될 수 있다. 그래서, 커널(kernel)은 쓰기 요청을 저장 장치의 쓰기 단위로 정렬한 뒤에 저장 장치로 전달해야 한다. 예를 들어, 저장 장치가 8Kbyte의 배수로 정렬된 쓰기 요청만을 처리할 수 있는 경우, 12Kbyte 크기의 쓰기 요청은 해당 저장 장치에서 처리될 수 없다.The storage device may have a predetermined write unit, and only write requests aligned to a predetermined write unit may be processed in the storage device. So, the kernel must arrange the write request to the storage unit's write unit and then pass it to the storage unit. For example, a 12Kbyte write request can not be processed by a storage device if the storage device can only process write requests aligned in multiples of 8Kbytes.

여기서, 쓰기 단위는 한 번에 기록될 수 있는 데이터의 최소 크기를 의미할 수 있다. 다시 말해, 쓰기 단위의 n배보다는 크고 n+1배보다는 작은 데이터를 저장 장치에 기록하기 위해서는 쓰기 단위의 n+1배에 해당하는 저장 장치의 메모리 영역이 요구된다.Here, a write unit may mean a minimum size of data that can be recorded at one time. In other words, a memory area of the storage device corresponding to n + 1 times the writing unit is required to write data to the storage device that is larger than n times the writing unit and smaller than n + 1 times.

쓰기 단위는 저장 장치의 페이지 크기일 수 있다. 또한, 저장 장치의 읽기 단위도 쓰기 단위와 마찬가지로 페이지 크기를 가질 수 있다. 페이지 단위는 저장 장치의 제조사마다 서로 다를 수 있다(예를 들어, 4Kbyte ~ 32 Kbyte 등).The write unit may be the page size of the storage device. Also, the read unit of a storage device may have a page size as in a write unit. The page unit may be different for each manufacturer of the storage device (for example, 4 Kbytes to 32 Kbytes).

도 1에 예시적으로 도시된 쓰기 요청(110)은 저장 장치의 쓰기 단위로 정렬되지 않은 쓰기 요청을 나타낸다. 도 1에 도시된 빗금은 저장 장치의 쓰기 단위의 크기를 나타낼 수 있다. 예를 들어, 저장 장치의 쓰기 단위가 8Kbyte이고, 쓰기 요청(110)의 크기가 4Kbyte, 12Kbyte 또는 20Kbyte 등인 경우, 쓰기 요청(110)은 저장 장치의 쓰기 단위에 정렬되지 않는다.Write request 110, illustratively shown in FIG. 1, represents a write request that is not aligned to the write unit of the storage device. The shadows shown in FIG. 1 may indicate the size of the writing unit of the storage device. For example, if the write unit 110 of the storage device is 8 Kbytes and the size of the write request 110 is 4 Kbytes, 12 Kbytes, or 20 Kbytes, the write request 110 is not aligned with the write unit of the storage device.

이 경우, 쓰기 요청(110)을 저장 장치의 쓰기 단위로 정렬시키기 위해, 더미 페이지(120)가 쓰기 요청(110)에 추가될 수 있다. 예를 들어, 쓰기 요청(110)에 연속되는 메모리 공간에 더미 페이지(120)가 추가될 수 있다.In this case, a dummy page 120 may be added to the write request 110 to align the write request 110 with the write unit of the storage device. For example, a dummy page 120 may be added to a contiguous memory space in a write request 110. [

더미 페이지(120)는 유효하지 않은 데이터를 포함하는 페이지일 수 있다. 더미 페이지(120)는 쓰기 요청(110)을 저장 장치의 쓰기 단위에 정렬시키기 위해 쓰기 요청(110)에 추가될 수 있다.Dummy page 120 may be a page containing invalid data. The dummy page 120 may be added to the write request 110 to align the write request 110 to the write unit of the storage device.

더미 페이지(120)는 쓰기 요청(110)의 크기와 저장 장치의 쓰기 단위에 기초하여 결정된 크기를 가질 수 있다. 더미 페이지(120)의 크기는 쓰기 요청(110)의 크기와 저장 장치의 쓰기 단위의 배수에 기초하여 결정될 수 있다.The dummy page 120 may have a size determined based on the size of the write request 110 and the write unit of the storage device. The size of the dummy page 120 may be determined based on the size of the write request 110 and a multiple of the write unit of the storage device.

일 실시예에 따른 더미 페이지(120)의 크기는 쓰기 요청(110)의 크기를 초과하는 쓰기 단위의 배수들 중에서 쓰기 요청(110)의 크기에 가장 근접한 값을 가지는 배수 및 쓰기 요청(110)의 크기 간의 차이에 기초하여 결정될 수 있다. 예를 들어, 쓰기 요청(110)의 크기가 쓰기 단위의 k배수보다는 크고 및 k+1배수보다는 작은 경우, 쓰기 단위의 k+1배수에서 쓰기 요청(110)의 크기를 뺀 값이 더미 페이지(120)의 크기로 결정될 수 있다.The size of the dummy page 120 according to one embodiment may be a multiple of the write request 110 having a value closest to the size of the write request 110 among the multiple of the write units exceeding the size of the write request 110 Size can be determined based on the difference between the sizes. For example, if the size of the write request 110 is greater than k times the write unit and less than k + 1 times, then the value obtained by subtracting the size of the write request 110 from the k + 120). ≪ / RTI >

정렬된 쓰기 요청(130)은 더미 페이지(120)가 추가됨으로써 쓰기 요청(110)이 저장 장치의 쓰기 단위에 정렬된 쓰기 요청을 나타낸다. 정렬된 쓰기 요청(130)은 저장 장치의 쓰기 단위의 배수에 해당하는 크기를 가질 수 있다. 그래서, 정렬된 쓰기 요청(130)에 따른 데이터가 저장 장치에 정상적으로 기록될 수 있다.The aligned write request 130 represents a write request in which the write request 110 is aligned to the write unit of the storage device by adding a dummy page 120. [ The aligned write request 130 may have a size corresponding to a multiple of a write unit of the storage device. Thus, data according to the aligned write request 130 can be normally written to the storage device.

상술된 예시에서 쓰기 요청(110)을 정렬시키기 위해 쓰기 요청(110)에 4Kbyte 크기의 더미 페이지(120)가 추가될 수 있다. 그러면, 정렬된 쓰기 요청(130)은 8Kbyte, 16Kbyte 또는 24Kbyte 등 저장 장치의 쓰기 단위인 8Kbyte의 배수의 크기를 가질 수 있다.A dummy page 120 of size 4 Kbytes may be added to the write request 110 to align the write request 110 in the above-described example. The aligned write request 130 may then have a multiple of 8 Kbytes, which is the write unit of the storage device, such as 8 Kbytes, 16 Kbytes, or 24 Kbytes.

다시 말해, 저장 장치의 쓰기 단위에 정렬되지 않은 크기로 발생한 쓰기 요청(110)에 더미 페이지(120)를 임시로 추가함으로써, 정렬된 쓰기 요청(130)을 생성할 수 있으며, 정렬된 쓰기 요청(130)은 저장 장치의 쓰기 단위로 맞춰진 쓰기 요청일 수 있다.In other words, an ordered write request 130 can be generated by temporarily adding a dummy page 120 to a write request 110 that occurs at an unaligned size in the write unit of the storage device, 130) may be a write request tailored to the write unit of the storage device.

더미 페이지(120)는 정렬된 쓰기 요청(130)이 처리된 후에 호스트 또는 호스트에서 구동되는 가비지 컬렉터(garbage collector)에 의해 프리(free) 공간으로 회수될 수 있다.The dummy page 120 may be retrieved to a free space by a garbage collector running on the host or host after the aligned write request 130 has been processed.

쓰기 요청(110)에 더미 페이지(120)를 추가하는 과정을 패치(patch) 동작이라 하며, 이러한 패치 동작에 관해서는 도 2 및 도 3에서 상세히 설명한다. 또한, 처리된 쓰기 요청에서 더미 페이지(120)를 제거하는 과정을 언패치(unpatch) 동작이라 하며, 이러한 언패치 동작에 관해서는 도 5에서 상세히 설명한다.The process of adding the dummy page 120 to the write request 110 is referred to as a patch operation, and such patch operation will be described in detail with reference to FIG. 2 and FIG. Also, the process of removing the dummy page 120 from the processed write request is referred to as an unpatch operation, and the unpacking operation will be described in detail with reference to FIG.

도 2는 일 실시예에 따른 쓰기 요청에 대한 패치 동작을 설명하기 위한 도면이다.2 is a view for explaining a patch operation for a write request according to an embodiment.

도 2를 참조하면, 패치 동작과 관련된 파일시스템(210), 패치 매니저(patch manage)(220), 페이지 캐시(page cache)(230)가 도시된다. 패치 매니저(220)는 쓰기 요청에 패치(예컨대, 더미 페이지)를 추가하여 쓰기 요청의 크기를 정렬하는 동작을 수행하는 커널의 모듈 또는 계층을 포함할 수 있다. 다시 말해, 패치 매니저(220)는 파일시스템(210)에서 발생한 쓰기 요청을 저장 장치의 쓰기 단위에 정렬시키는 동작을 수행할 수 있다. 페이지 캐시(230)는 파일시스템(210)의 캐시 메모리로서, 더미 페이지에 메모리 주소를 할당할 수 있다. 도 2에 도시된 단계들을 수행하는 파일시스템(210), 패치 매니저(220), 페이지 캐시(230)는 호스트(host)에서 동작할 수 있다.Referring to FIG. 2, a file system 210, a patch manager 220, and a page cache 230 associated with a patch operation are shown. The patch manager 220 may include a module or layer of the kernel that performs operations to add a patch (e. G., A dummy page) to the write request to sort the size of the write request. In other words, the patch manager 220 can perform an operation of aligning the write request that occurs in the file system 210 to the write unit of the storage device. The page cache 230 is a cache memory of the file system 210 and can allocate memory addresses to dummy pages. The file system 210, the patch manager 220, and the page cache 230, which perform the steps shown in FIG. 2, may operate on a host.

단계(201)에서, 파일시스템(210)은 패치 매니저(220)로 쓰기 요청을 전달할 수 있다. 파일시스템(210)은 쓰기 요청(예컨대, bio; Block IO)을 블록 IO(Block IO) 계층으로 전달하기에 앞서 패치 매니저(220)로 전달할 수 있다.At step 201, the file system 210 may forward the write request to the patch manager 220. [ The file system 210 may forward the write request (e.g., block IO) to the patch manager 220 prior to transferring the block request to the block IO layer.

단계(202)에서, 패치 매니저(220)는 저장 장치에 대한 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되는지 여부를 판단한다. 예를 들어, 패치 매니저(220)는 쓰기 요청의 크기가 저장 장치의 쓰기 크기의 배수로 정렬되는지 여부를 판단할 수 있다. 쓰기 요청의 크기가 저장 장치의 쓰기 크기의 배수에 해당되는 경우, 패치 매니저(220)는 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되는 것으로 판단할 수 있다. 반대로, 쓰기 요청의 크기가 저장 장치의 쓰기 크기의 배수에 해당되지 않는 경우, 패치 매니저(220)는 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되지 않는 것으로 판단할 수 있다.In step 202, the patch manager 220 determines whether the write request for the storage device is aligned with the write unit of the storage device. For example, the patch manager 220 may determine whether the size of the write request is aligned to a multiple of the write size of the storage device. If the size of the write request corresponds to a multiple of the write size of the storage device, the patch manager 220 may determine that the write request is aligned to the write unit of the storage device. Conversely, if the size of the write request does not correspond to a multiple of the write size of the storage device, the patch manager 220 may determine that the write request is not aligned with the write unit of the storage device.

예를 들어, 저장 장치의 쓰기 단위가 8Kbyte이고, 파일시스템(210)으로부터 전달된 쓰기 요청의 크기가 4Kbyte인 경우, 패치 매니저(220)는 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되지 않은 것으로 판단할 수 있다.For example, if the write unit of the storage device is 8 Kbytes and the size of the write request transmitted from the file system 210 is 4 Kbytes, the patch manager 220 determines that the write request is not aligned with the write unit of the storage device can do.

단계(203)에서, 패치 매니저(220)는 쓰기 요청을 정렬시키기 위하여 페이지 캐시(230)에 더미 페이지의 할당을 요청할 수 있다. 패치 매니저(220)는 쓰기 요청을 정렬시키기 위해 필요로 되는 페이지 개수만큼 페이지 할당을 요청할 수 있다.At step 203, the patch manager 220 may request allocation of a dummy page to the page cache 230 to align the write request. The patch manager 220 can request page allocation as many as the number of pages required to align the write request.

단계(204)에서, 패치 매니저(220)는 페이지 캐시(230)로부터 더미 페이지로 할당된 메모리 주소를 반환(return) 받을 수 있다.In step 204, the patch manager 220 may return a memory address allocated from the page cache 230 to the dummy page.

단계(205)에서, 패치 매니저(220)는 더미 페이지를 기록할 블록 주소를 파일시스템(210)에 요청할 수 있다.At step 205, the patch manager 220 may request the file system 210 for the block address to which the dummy page is to be written.

단계(206)에서, 파일시스템(210)은 패치 매니저(220)의 요청에 따라 더미 페이지를 기록할 블록 주소를 할당할 수 있다. 이 때, 파일시스템(210)은 쓰기 요청과 연속되는 블록을 더미 페이지를 기록할 블록으로 할당할 수 있다. 이 때, 파일시스템(210)에서 할당된 블록은 반드시 쓰기 요청에 연속되는 블록으로 할당되어야 한다.At step 206, the file system 210 may allocate a block address to write a dummy page upon request of the patch manager 220. [ At this time, the file system 210 can allocate the write request and the consecutive blocks as a block to record the dummy page. At this time, the blocks allocated in the file system 210 must be allocated as consecutive blocks in the write request.

그리고, 파일시스템(210)은 할당된 블록에 유효한 데이터가 포함되지 않음을 나타내는 정보를 파일시스템(210)의 메타데이터에 포함시킬 수 있다. 이를 위해, 파일시스템(210)은 더미페이지에 할당한 블록 주소를 파일시스템(210)의 메타데이터인 유효 비트맵(valid bitmap)에서 무효처리(invalidation)할 수 있다.The file system 210 may include information indicating that valid data is not included in the allocated block in the meta data of the file system 210. [ To this end, the file system 210 may invalidate the block address allocated to the dummy page from the valid bitmap, which is the meta data of the file system 210.

단계(207)에서, 파일시스템(210)은 할당된 블록 주소를 패치 매니저(220)로 전달할 수 있다.In step 207, the file system 210 may forward the assigned block address to the patch manager 220. [

단계(208)에서, 패치 매니저(220)는 파일시스템(210) 및 페이지 캐시(230)로부터 반환된 정보에 기초하여 쓰기 요청에 더미 페이지를 추가하여 쓰기 요청을 저장 장치의 쓰기 단위에 정렬시킬 수 있다. 예를 들어, 패치 매니저(220)는 페이지 캐시(230)에서 할당된 메모리 주소 및 파일시스템(210)에서 할당된 블록에 기초하여 페이지 캐시(230)에서 할당된 더미 페이지와 파일시스템(210)에서 할당된 블록을 매핑하여 쓰기 요청에 추가할 수 있다.At step 208, the patch manager 220 may add a dummy page to the write request based on the information returned from the file system 210 and the page cache 230 to align the write request to the write unit of the storage device have. For example, the patch manager 220 may determine that the dummy pages allocated in the page cache 230 and the dummy pages allocated in the file system 210 based on the allocated memory addresses in the page cache 230 and the blocks allocated in the file system 210 The allocated blocks can be mapped and added to the write request.

패치 매니저(220)는 쓰기 요청에 더미 페이지를 추가함으로써 저장 장치의 쓰기 단위로 정렬되도록 쓰기 요청의 크기를 증가시킬 수 있다.The patch manager 220 may increase the size of the write request to be aligned with the write unit of the storage device by adding a dummy page to the write request.

단계(209)에서, 패치 매니저(220)는 정렬된 쓰기 요청을 파일시스템(210)으로 반환할 수 있다.At step 209, the patch manager 220 may return the aligned write request to the file system 210. [

파일 시스템(210)은 정렬된 쓰기 요청을 블록 IO 계층에 전달할 수 있다. 정렬된 쓰기 요청에 따른 데이터는 저장 장치에 정상적으로 기록될 수 있다.The file system 210 may forward the aligned write request to the block IO layer. The data according to the aligned write request can be normally recorded in the storage device.

만약, 단계(202)에서 쓰기 요청이 저장 장치의 쓰기 단위로 정렬되어 있는 것으로 판단된 경우, 상술된 단계(203) 내지 단계(209)가 수행되지 않는다. 대신, 패치 매니저(220)는 쓰기 요청이 저장 장치의 쓰기 단위로 정렬되어 있다는 정보를 파일시스템(210)으로 반환할 수 있다.If it is determined in step 202 that the write request is arranged in the write unit of the storage device, the above-described steps 203 to 209 are not performed. Instead, the patch manager 220 may return information to the file system 210 that the write request is aligned to the write unit of the storage device.

도 3은 일 실시예에 따라 새로운 쓰기 요청을 처리하는 과정을 설명하기 위한 도면이다.3 is a diagram for explaining a process of processing a new write request according to an embodiment.

도 3을 참조하면, 새로운(new) 쓰기 요청을 처리하는 과정이 도시되어 있으며, 이러한 과정은 호스트에서 수행될 수 있다. 이하, 설명의 편의를 위해 호스트는 데이터 처리 장치로 지칭될 수 있다.Referring to FIG. 3, a process of processing a new write request is shown, and this process can be performed in the host. Hereinafter, for convenience of explanation, the host may be referred to as a data processing apparatus.

단계(301)에서, 데이터 처리 장치는 새로운 쓰기 요청을 처리할 블록 주소를 할당할 수 있다.In step 301, the data processing apparatus can allocate a block address to process a new write request.

단계(302)에서, 데이터 처리 장치는 새로운 쓰기 요청이 기존의 쓰기 요청과 병합 가능한지를 판단할 수 있다. 기존의 쓰기 요청은 새로운 쓰기 요청이 발생하기에 앞서 미리 발생한 쓰기 요청으로서, 아직 처리되지 않은 쓰기 요청일 수 있다. 데이터 처리 장치는 새로운 쓰기 요청이 발생하기 전에 기존의 쓰기 요청에 대한 동기화 명령(예컨대, fsync() 등)이 발생하는 경우, 새로운 쓰기 요청이 발생한 시점에 처리되지 않은 기존의 쓰기 요청이 존재하지 않는 경우 등에 대해서 새로운 쓰기 요청 및 기존의 쓰기 요청 간의 병합이 불가능한 것으로 판단할 수 있다.In step 302, the data processing device may determine whether a new write request is incompatible with an existing write request. An existing write request may be a write request that occurred before a new write request occurred, which has not yet been processed. When a synchronization command (for example, fsync (), etc.) for an existing write request occurs before a new write request occurs, the data processing apparatus generates a new write request It can be determined that merging between a new write request and an existing write request is impossible.

새로운 쓰기 요청이 기존의 쓰기 요청과 병합 가능한 경우, 단계(303)에서 데이터 처리 장치는 새로운 쓰기 요청을 기존의 쓰기 요청에 병합할 수 있다. 이 경우, 데이터 처리 장치는 새로운 쓰기 요청을 기존의 쓰기 요청에 따라 처리할 수 있다.If the new write request can be merged with an existing write request, then at step 303 the data processing device may merge the new write request into the existing write request. In this case, the data processing apparatus can process the new write request according to the existing write request.

새로운 쓰기 요청이 기존의 쓰기 요청과 병합 가능하지 않은 경우, 단계(304)에서 데이터 처리 장치는 새로운 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되는지 여부를 판단할 수 있다. 데이터 처리 장치는 새로운 쓰기 요청의 크기가 저장 장치의 쓰기 단위의 배수로 정렬되는지 여부를 판단할 수 있다. 만약 새로운 쓰기 요청의 크기가 저장 장치의 쓰기 단위의 배수에 해당되는 경우, 데이터 처리 장치는 새로운 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되는 것으로 판단할 수 있다. 반대로, 새로운 쓰기 요청의 크기가 저장 장치의 쓰기 단위의 배수에 해당되지 않는 경우, 데이터 처리 장치는 새로운 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되지 않는 것으로 판단할 수 있다.If the new write request is not incompatible with the existing write request, then at step 304 the data processing device may determine whether the new write request is aligned to the write unit of the storage device. The data processing apparatus can determine whether or not the size of the new write request is aligned to a multiple of the write unit of the storage device. If the size of the new write request corresponds to a multiple of the write unit of the storage device, the data processing device may determine that the new write request is aligned with the write unit of the storage device. Conversely, if the size of the new write request does not correspond to a multiple of the write unit of the storage device, the data processing device may determine that the new write request is not aligned with the write unit of the storage device.

새로운 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되지 않는 것으로 판단된 경우, 단계(305)에서 데이터 처리 장치는 새로운 쓰기 요청에 더미 페이지를 추가함으로써 새로운 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시킬 수 있다. 이 때, 더미 페이지는 유효하지 않은 데이터를 포함하는 페이지로서, 새로운 쓰기 요청의 크기가 저장 장치의 쓰기 단위의 배수로 정렬되기 위해 요구되는 크기를 가질 수 있다.If it is determined that the new write request is not aligned with the write unit of the storage device, the data processing device in step 305 may align the new write request with the write unit of the storage device by adding a dummy page to the new write request . At this time, the dummy page is a page containing invalid data, and may have a size required for the size of the new write request to be aligned to a multiple of the write unit of the storage device.

단계(306)에서, 데이터 처리 장치는 단계(304)에서 정렬된 것으로 판단된 새로운 쓰기 요청 또는 단계(305)에서 정렬된 새로운 쓰기 요청을 블록 IO 계층을 전달할 수 있다. 단계(304)에서 정렬된 것으로 판단된 새로운 쓰기 요청 또는 단계(305)에서 정렬된 새로운 쓰기 요청에 따른 데이터는 저장 장치에 정상적으로 기록될 수 있다.At step 306, the data processing device may forward the new write request determined to be aligned at step 304 or the new write request aligned at step 305 to the block IO layer. The new write request determined to be aligned in step 304 or the new write request aligned in step 305 may be written to the storage device normally.

도 4는 일 실시예에 따른 쓰기 요청에 대한 언패치(unpatch) 동작을 설명하기 위한 도면이다.4 is a diagram for explaining an unpatch operation for a write request according to an embodiment.

도 4를 참조하면, 언패치 동작과 관련된 파일시스템(410), 패치 매니저(420), 페이지 캐시(430)가 도시된다.Referring to FIG. 4, a file system 410, a patch manager 420, and a page cache 430 associated with an un-patch operation are shown.

정렬된 쓰기 요청에 따라 데이터가 저장 장치에 기록됨으로써, 정렬된 쓰기 요청은 저장 장치에서 처리될 수 있다. 정렬된 쓰기 요청이 처리되고 나면, 패치 매니저(420)는 처리된 쓰기 요청에 대해 언패치 동작을 수행할 수 있다. 다시 말해, 패치 매니저(420)는 더미 페이지를 다음 쓰기 요청에 추가하기 위해 페이지 캐시(430)에서 할당된 메모리 영역을 할당 해제할 수 있다. 도 4에 도시된 단계들을 수행하는 파일시스템(410), 패치 매니저(420), 페이지 캐시(430)는 호스트에서 동작할 수 있다.Data is written to the storage device in accordance with the aligned write request, so that the aligned write request can be processed in the storage device. Once the aligned write request is processed, the patch manager 420 may perform an un-patch operation on the processed write request. In other words, the patch manager 420 may deallocate the allocated memory area in the page cache 430 to add the dummy page to the next write request. The file system 410, the patch manager 420, and the page cache 430, which perform the steps shown in FIG. 4, may operate on the host.

저장 장치에서 처리 완료된 쓰기 요청은 파일시스템(410)의 쓰기 완료 함수를 호출하여 해당 동작을 종료할 수 있다.The write request completed in the storage device may terminate the corresponding write request by calling the write completion function of the file system 410. [

단계(401)에서, 파일시스템(410)은 처리된 쓰기 요청(예컨대, bio; Block IO)을 패치 매니저(420)로 전달할 수 있다.In step 401, the file system 410 may pass the processed write request (e.g., block IO) to the patch manager 420.

단계(402)에서, 패치 매니저(420)는 파일시스템(410)에서 전달된 쓰기 요청의 자료구조를 확인하고, 해당 쓰기 요청이 패치 동작을 통해 정렬된 쓰기 요청인지 여부를 판단할 수 있다. 다시 말해, 패치 매니저(420)는 해당 쓰기 요청에 유효하지 않은 데이터를 포함하는 더미 페이지가 포함되어 있는지 여부를 판단한다.In step 402, the patch manager 420 may check the data structure of the write request transmitted from the file system 410 and determine whether the write request is an aligned write request through a patch operation. In other words, the patch manager 420 determines whether the write request includes a dummy page including invalid data.

만약 해당 쓰기 요청에 더미 페이지가 포함되어 있는 경우, 단계(403)에서 패치 매니저(420)는 페이지 캐시(430)로 더미 페이지의 할당 해제를 요청한다.If the write request includes a dummy page, the patch manager 420 requests the page cache 430 to deallocate the dummy page in step 403.

페이지 캐시(430)로 더미 페이지의 할당 해제가 요청되면, 페이지 캐시(430)에서는 페이지 할당 해제에 대한 인터페이스를 이용하여 더미 페이지에 할당된 메모리 공간이 해제될 수 있다. 더미 페이지에 할당된 메모리 공간이 해제됨에 따라 쓰기 요청에서 더미 페이지가 제거될 수 있다.When the page cache 430 is requested to deallocate the dummy page, the memory space allocated to the dummy page can be released using the interface for page deallocation in the page cache 430. [ The dummy page may be removed from the write request as the memory space allocated to the dummy page is released.

단계(404)에서, 페이지 캐시(430)는 더미 페이지의 할당 해제에 대한 결과를 패치 매니저(420)로 전달할 수 있다.At step 404, the page cache 430 may forward the results of the deallocation of the dummy page to the patch manager 420. [

단계(405)에서, 패치 매니저(420)는 더미 페이지가 제거된 쓰기 요청을 파일시스템(410)으로 반환한다.At step 405, the patch manager 420 returns the write request to the file system 410 with the dummy page removed.

도 5는 일 실시예에 따른 데이터 처리 방법을 나타낸 도면이다.5 is a diagram illustrating a data processing method according to an embodiment.

도 5를 참조하면, 데이터 처리 장치에 구비된 프로세서에서 수행되는 데이터 처리 방법이 도시되어 있다. 데이터 처리 장치는 도 2에서 설명한 호스트를 포함할 수 있다.Referring to FIG. 5, a data processing method performed in a processor included in a data processing apparatus is illustrated. The data processing apparatus may include the host described in Fig.

단계(501)에서, 데이터 처리 장치는 저장 장치에 대한 쓰기 요청이 저장 장치의 쓰기 단위에 정렬되는지 여부를 판단한다. 예를 들어, 데이터 처리 장치는 쓰기 요청의 크기가 저장 장치의 쓰기 단위의 배수로 정렬되는지 여부를 판단할 수 있다.In step 501, the data processing apparatus determines whether the write request for the storage device is aligned with the write unit of the storage device. For example, the data processing apparatus can determine whether the size of the write request is aligned to a multiple of the write unit of the storage device.

쓰기 요청이 저장 장치의 쓰기 단위에 정렬되지 않는 경우, 단계(502)에서 데이터 처리 장치는 유효하지 않은 데이터를 포함하는 더미 페이지를 쓰기 요청에 추가함으로써 쓰기 요청을 저장 장치의 쓰기 단위로 정렬시킨다.If the write request is not aligned to the write unit of the storage device, the data processing device in step 502 aligns the write request with the write unit of the storage device by adding a dummy page containing invalid data to the write request.

더미 페이지의 크기는 쓰기 요청의 크기 및 저장 장치의 쓰기 단위의 배수에 기초하여 결정될 수 있다. 더미 페이지의 크기는 쓰기 요청의 크기를 초과하는 쓰기 단위의 배수들 중에서 쓰기 요청의 크기에 가장 근접한 값을 가지는 배수 및 쓰기 요청의 크기 간의 차이에 기초하여 결정될 수 있다.The size of the dummy page may be determined based on the size of the write request and a multiple of the write unit of the storage device. The size of the dummy page may be determined based on the difference between the magnitude of the multiple that has the closest value to the size of the write request and the size of the write request among the multiple of write units that exceeds the size of the write request.

데이터 처리 장치는 페이지 캐시로부터 더미 페이지에 할당된 메모리 주소를 수신하고, 파일시스템으로부터 더미 페이지가 기록될 블록 주소를 수신하며, 메모리 주소와 블록 주소에 기초하여 페이지 캐시에서 할당된 더미 페이지와 파일시스템에서 할당된 블록을 매핑하여 쓰기 요청에 추가할 수 있다. 여기서, 파일시스템에서 할당된 블록은 쓰기 요청에 연속되는 블록으로 할당될 수 있다. 또한, 파일시스템의 메타데이터는 더미 페이지에 할당된 블록에 유효한 데이터가 포함되지 않음을 나타내는 정보를 포함할 수 있다. 또한, 파일시스템의 메타데이터는 유효 비트맵을 포함하고, 더미 페이가 기록될 블록 주소는 유효 비트맵에서 무효처리될 수 있다.The data processing apparatus receives the memory address allocated to the dummy page from the page cache, receives the block address from which the dummy page is to be written from the file system, and allocates the dummy page allocated from the page cache and the file system Can be mapped and added to the write request. Here, the blocks allocated in the file system can be allocated to consecutive blocks in the write request. Further, the meta data of the file system may include information indicating that valid data is not included in the block allocated to the dummy page. In addition, the metadata of the file system includes the valid bitmap, and the block address to which the dummy payload is to be written can be invalidated in the valid bitmap.

단계(503)에서, 데이터 처리 장치는 정렬된 쓰기 요청을 반환한다. 데이터 처리 장치는 정렬된 쓰기 요청을 파일시스템으로 반환할 수 있다.In step 503, the data processing device returns an aligned write request. The data processing device may return an ordered write request to the file system.

더미 페이지는 정렬된 쓰기 요청이 처리된 후 프리 공간으로 회수될 수 있다.The dummy page may be retrieved to the free space after the aligned write request is processed.

도 5에 도시된 각 단계들에는 도 1 내지 도 4를 통하여 전술한 사항들이 그대로 적용되므로, 보다 상세한 설명은 생략한다.The steps described above with reference to FIGS. 1 to 4 are applied to each step shown in FIG. 5, so that detailed description will be omitted.

도 6은 다른 일 실시예에 따른 데이터 처리 방법을 나타낸 도면이다.6 is a diagram illustrating a data processing method according to another embodiment.

도 6을 참조하면, 데이터 처리 장치에 구비된 프로세서에서 수행되는 데이터 처리 방법이 도시되어 있다. 데이터 처리 장치는 도 4에서 설명한 호스트를 포함할 수 있다.Referring to FIG. 6, a data processing method performed in a processor included in a data processing apparatus is illustrated. The data processing apparatus may include the host described in Fig.

단계(601)에서, 데이터 처리 장치는 처리된 쓰기 요청에 유효하지 않은 데이터를 포함하는 더미 페이지가 포함되어 있는지 여부를 판단한다. 데이터 처리 장치는 쓰기 요청의 자료구조를 확인함으로써, 쓰기 요청이 더미 페이지를 통해 저장 장치의 쓰기 단위에 정렬되었는지 여부를 판단할 수 있다.In step 601, the data processing apparatus determines whether or not the processed write request includes a dummy page including invalid data. The data processing device can determine whether the write request is aligned with the write unit of the storage device through the dummy page by checking the data structure of the write request.

쓰기 요청에 더미 페이지가 포함되어 있는 경우, 단계(602)에서 데이터 처리 장치는 쓰기 요청에서 더미 페이지의 제거를 페이지 캐시로 요청한다. 예를 들어, 더미 페이지는 더미 페이지에 할당된 페이지 캐시 상의 메모리 영역이 해제됨으로써 쓰기 요청에서 제거될 수 있다.If the write request includes a dummy page, the data processing device in step 602 requests removal of the dummy page from the write request to the page cache. For example, a dummy page may be removed from a write request by releasing the memory area on the page cache allocated to the dummy page.

단계(603)에서, 데이터 처리 장치는 더미 페이지가 제거된 쓰기 요청을 반환한다. 데이터 처리 장치는 더미 페이지가 제거된 쓰기 요청을 파일시스템으로 반환할 수 있다.In step 603, the data processing device returns a write request with the dummy page removed. The data processing device may return a write request with the dummy page removed to the file system.

도 6에 도시된 각 단계들에는 도 1 내지 도 4를 통하여 전술한 사항들이 그대로 적용되므로, 보다 상세한 설명은 생략한다.The steps described above with reference to FIGS. 1 to 4 are applied to each step shown in FIG. 6, so that a detailed description will be omitted.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented in hardware components, software components, and / or a combination of hardware components and software components. For example, the devices, methods, and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, such as an array, a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various technical modifications and variations may be applied to those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

110: 쓰기 요청
120: 더미 페이지
130: 정렬된 쓰기 요청
110: Write request
120: Dummy page
130: Aligned write request

Claims (17)

저장 장치에 데이터를 기록하고자 하는 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬(align)되는지 여부를 판단하는 단계;
상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되지 않는 경우, 유효하지 않은 데이터를 포함하는 더미 페이지를 상기 쓰기 요청에 추가하는데 있어 상기 쓰기 요청된 데이터의 크기와 더미 페이지의 크기의 합을 상기 저장 장치의 쓰기 단위의 배수로 결정하여 상기 저장 장치의 쓰기 단위로 정렬시키는 단계; 및
상기 정렬된 쓰기 요청을 반환(return)하는 단계
를 포함하고,
상기 저장 장치에 상기 정렬된 쓰기 요청에 대응하는 데이터가 기록되는 데이터 처리 방법.
Determining whether a write request to write data to a storage device is aligned with a write unit of the storage device;
When the write request is not aligned with the write unit of the storage device, adding a dummy page including invalid data to the write request, the sum of the size of the write requested data and the size of the dummy page, Determining a multiple of a write unit of the device and aligning the write unit of the device with the write unit; And
Returning the aligned write request;
Lt; / RTI >
Wherein data corresponding to the aligned write request is written to the storage device.
제1항에 있어서,
상기 더미 페이지의 크기는,
상기 쓰기 요청의 크기 및 상기 저장 장치의 쓰기 단위의 배수에 기초하여 결정되는, 데이터 처리 방법.
The method according to claim 1,
The size of the dummy page is,
The size of the write request, and a multiple of a write unit of the storage device.
제1항에 있어서,
상기 쓰기 요청을 상기 저장 장치의 쓰기 단위로 정렬시키는 단계는,
페이지 캐시에서 할당된 더미 페이지와 파일시스템에서 할당된 블록을 매핑하여 상기 쓰기 요청에 추가하는, 데이터 처리 방법.
The method according to claim 1,
Wherein the step of aligning the write request to a write unit of the storage device comprises:
And mapping the allocated dummy page in the page cache and the allocated block in the file system to the write request.
제3항에 있어서,
상기 파일시스템에서 할당된 블록은, 상기 쓰기 요청에 연속되는 블록으로 할당되는, 데이터 처리 방법.
The method of claim 3,
Wherein a block allocated in the file system is allocated to a block contiguous to the write request.
제3항에 있어서,
상기 파일시스템의 메타데이터는,
상기 더미 페이지에 할당된 블록에 유효한 데이터가 포함되지 않음을 나타내는 정보를 포함하는, 데이터 처리 방법.
The method of claim 3,
Wherein the metadata of the file system includes:
And information indicating that valid data is not included in the block allocated to the dummy page.
제3항에 있어서,
상기 파일시스템의 메타데이터는, 유효 비트맵(valid bitmap)을 포함하고,
상기 더미 페이지가 기록될 블록 주소는, 상기 유효 비트맵에서 무효처리(invalidation)되는, 데이터 처리 방법.
The method of claim 3,
The metadata of the file system includes a valid bitmap,
Wherein the block address to which the dummy page is to be written is invalidated in the valid bitmap.
제1항에 있어서,
상기 더미 페이지는,
상기 정렬된 쓰기 요청이 처리된 후 프리(free) 공간으로 회수되는, 데이터 처리 방법.
The method according to claim 1,
The dummy page includes:
Wherein the sorted write request is processed and recovered to a free space.
제1항에 있어서,
상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되는지 여부를 판단하는 단계는,
상기 쓰기 요청의 크기가 상기 저장 장치의 쓰기 단위의 배수로 정렬되는지 여부를 판단하는, 데이터 처리 방법.
The method according to claim 1,
Wherein the step of determining whether the write request is aligned with the write unit of the storage device comprises:
And determines whether the size of the write request is aligned with a multiple of a write unit of the storage device.
제1항에 있어서,
상기 쓰기 요청이 발생하기 전에 존재하던 기존의 쓰기 요청에 상기 저장 장치에 대한 쓰기 요청이 병합될 수 있는지 여부를 판단하는 단계
를 더 포함하고,
상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되는지 여부를 판단하는 단계는,
상기 쓰기 요청이 상기 기존의 쓰기 요청에 병합되지 않는 경우, 상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되는지 여부를 판단하는, 데이터 처리 방법.
The method according to claim 1,
Determining whether a write request for the storage device can be merged into an existing write request that existed before the write request
Further comprising:
Wherein the step of determining whether the write request is aligned with the write unit of the storage device comprises:
And if the write request is not merged with the existing write request, determines whether the write request is aligned with the write unit of the storage device.
제1항 내지 제9항의 어느 한 항의 데이터 처리 방법에 있어서,
처리된 상기 쓰기 요청에 유효하지 않은 데이터를 포함하는 더미 페이지가 포함되어 있는지 여부를 판단하는 단계;
상기 쓰기 요청에 더미 페이지가 포함되어 있는 경우, 상기 쓰기 요청에서 더미 페이지의 제거를 요청하는 단계; 및
상기 더미 페이지가 제거된 쓰기 요청을 반환하는 단계
를 더 포함하는 데이터 처리 방법.
10. A data processing method according to any one of claims 1 to 9,
Determining whether the write request that is processed includes a dummy page including invalid data;
Requesting removal of a dummy page in the write request if the write request includes a dummy page; And
Returning a write request in which the dummy page is removed
Further comprising the steps of:
제10항에 있어서,
상기 더미 페이지는,
상기 더미 페이지에 할당된 페이지 캐시 상의 메모리 영역이 해제됨으로써 상기 쓰기 요청에서 제거되는, 데이터 처리 방법.
11. The method of claim 10,
The dummy page includes:
Wherein the memory area on the page cache allocated to the dummy page is removed from the write request by being released.
제10항에 있어서,
상기 쓰기 요청에 더미 페이지가 포함되어 있는지 여부를 판단하는 단계는,
상기 쓰기 요청의 자료 구조를 확인함으로써, 상기 쓰기 요청이 더미 페이지를 통해 저장 장치의 쓰기 단위에 정렬되었는지 여부를 판단하는, 데이터 처리 방법.
11. The method of claim 10,
Wherein the step of determining whether the write request includes a dummy page includes:
And determining by the data structure of the write request whether the write request is aligned with the write unit of the storage device via the dummy page.
저장 장치에 대한 쓰기 요청을 처리하는 프로세서
를 포함하고,
상기 프로세서는,
저장 장치에 데이터를 기록하고자 하는 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬(align)되는지 여부를 판단하고, 상기 쓰기 요청이 상기 저장 장치의 쓰기 단위에 정렬되지 않는 경우, 유효하지 않은 데이터를 포함하는 더미 페이지를 상기 쓰기 요청에 추가하는데 있어 상기 쓰기 요청된 데이터의 크기와 더미 페이지의 크기의 합을 상기 저장 장치의 쓰기 단위의 배수로 결정하여 상기 저장 장치의 쓰기 단위로 정렬시키며, 상기 정렬된 쓰기 요청을 반환하고,
상기 저장 장치에 상기 정렬된 쓰기 요청에 대응하는 데이터가 기록되는 데이터 처리 장치.
A processor that processes write requests to the storage device
Lt; / RTI >
The processor comprising:
Determining whether a write request to write data to a storage device is aligned with a write unit of the storage device; and if the write request is not aligned with a write unit of the storage device, The size of the write request data and the size of the dummy page are determined as a multiple of the write unit of the storage device and are aligned in the write unit of the storage device when the dummy page is added to the write request, Return the request,
Wherein data corresponding to the aligned write request is recorded in the storage device.
제13항에 있어서,
상기 더미 페이지의 크기는,
상기 쓰기 요청의 크기 및 상기 저장 장치의 쓰기 단위의 배수에 기초하여 결정되는, 데이터 처리 장치.
14. The method of claim 13,
The size of the dummy page is,
The size of the write request and a multiple of a write unit of the storage device.
제13항에 있어서,
상기 프로세서는,
페이지 캐시에서 할당된 더미 페이지와 파일시스템에서 할당된 블록을 매핑하여 상기 쓰기 요청에 추가하는, 데이터 처리 장치.
14. The method of claim 13,
The processor comprising:
And adds the dummy page allocated in the page cache and the block allocated in the file system to the write request.
제13항 내지 제15항의 어느 한 항의 데이터 처리 장치에 있어서,
저장 장치에 대한 쓰기 요청을 처리하는 프로세서
를 포함하고,
상기 프로세서는,
처리된 상기 쓰기 요청에 유효한 데이터를 포함하지 않는 더미 페이지가 포함되어 있는지 여부를 판단하고,
상기 쓰기 요청에 더미 페이지가 포함되어 있는 경우, 상기 쓰기 요청에서 더미 페이지의 제거를 요청하며,
상기 더미 페이지가 제거된 쓰기 요청을 반환하는 데이터 처리 장치.
The data processing apparatus according to any one of claims 13 to 15,
A processor that processes write requests to the storage device
Lt; / RTI >
The processor comprising:
Judges whether or not a dummy page which does not contain valid data is included in the processed write request,
Requesting removal of a dummy page in the write request if the write request includes a dummy page,
And returns a write request in which the dummy page is removed.
제16항에 있어서,
상기 더미 페이지는,
상기 더미 페이지에 할당된 페이지 캐시 상의 메모리 영역이 해제됨으로써 상기 쓰기 요청에서 제거되는, 데이터 처리 장치.
17. The method of claim 16,
The dummy page includes:
Wherein the memory area on the page cache allocated to the dummy page is removed from the write request by being released.
KR1020160137688A 2016-10-21 2016-10-21 Method and apparatus for processing data using dummy page KR101887663B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160137688A KR101887663B1 (en) 2016-10-21 2016-10-21 Method and apparatus for processing data using dummy page

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160137688A KR101887663B1 (en) 2016-10-21 2016-10-21 Method and apparatus for processing data using dummy page

Publications (2)

Publication Number Publication Date
KR20180044071A KR20180044071A (en) 2018-05-02
KR101887663B1 true KR101887663B1 (en) 2018-08-13

Family

ID=62183947

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160137688A KR101887663B1 (en) 2016-10-21 2016-10-21 Method and apparatus for processing data using dummy page

Country Status (1)

Country Link
KR (1) KR101887663B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259460A (en) * 1999-03-12 2000-09-22 Nec Corp Database system and data updating system therefor
JP2015026409A (en) * 2013-07-26 2015-02-05 株式会社日立エルジーデータストレージ Information recording and reproduction device and recording method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100970946B1 (en) * 2008-02-05 2010-07-20 부경대학교 산학협력단 Delayed Write Method in Flash Memory Based Embedded Database System And System for Performing It

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259460A (en) * 1999-03-12 2000-09-22 Nec Corp Database system and data updating system therefor
JP2015026409A (en) * 2013-07-26 2015-02-05 株式会社日立エルジーデータストレージ Information recording and reproduction device and recording method

Also Published As

Publication number Publication date
KR20180044071A (en) 2018-05-02

Similar Documents

Publication Publication Date Title
US9563636B2 (en) Allowing writes to complete without obtaining a write lock to a file
US9524107B2 (en) Host-based device drivers for enhancing operations in redundant array of independent disks systems
US10223208B2 (en) Annotated atomic write
US9547591B1 (en) System and method for cache management
JP5592942B2 (en) Shortcut I / O in virtual machine system
CN105843551B (en) Data integrity and loss resistance in high performance and large capacity storage deduplication
US8161128B2 (en) Sharing of data across disjoint clusters
KR102275563B1 (en) Host-managed non-volatile memory
US9779026B2 (en) Cache bypass utilizing a binary tree
US11630578B2 (en) Electronic system with storage management mechanism and method of operation thereof
KR101729097B1 (en) Method for sharing reference data among application programs executed by a plurality of virtual machines and Reference data management apparatus and system therefor
US7330947B2 (en) Method and apparatus for backing up data in virtual storage medium
US20170192718A1 (en) Storage apparatus and data processing method thereof, and storage system
CN107656834B (en) System and method for recovering host access based on transaction log and storage medium
US11269846B2 (en) Efficient database journaling using non-volatile system memory
KR102434170B1 (en) hybrid memory system
US20180136840A1 (en) Storage operation queue
US9658799B2 (en) Data storage device deferred secure delete
KR20190105066A (en) Load and store controls that control the operation of the protected storage facility
US20190042355A1 (en) Raid write request handling without prior storage to journaling drive
US20140344503A1 (en) Methods and apparatus for atomic write processing
KR102443593B1 (en) hybrid memory system
US10402101B2 (en) System and method for using persistent memory to accelerate write performance
US9384135B2 (en) System and method of caching hinted data
KR101887663B1 (en) Method and apparatus for processing data using dummy page

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant