KR101426806B1 - Method, computer system and storage system for controlling materialization in a storage medium based on object id and storage system - Google Patents

Method, computer system and storage system for controlling materialization in a storage medium based on object id and storage system Download PDF

Info

Publication number
KR101426806B1
KR101426806B1 KR1020120139868A KR20120139868A KR101426806B1 KR 101426806 B1 KR101426806 B1 KR 101426806B1 KR 1020120139868 A KR1020120139868 A KR 1020120139868A KR 20120139868 A KR20120139868 A KR 20120139868A KR 101426806 B1 KR101426806 B1 KR 101426806B1
Authority
KR
South Korea
Prior art keywords
persistence
write
persistent
write commands
storage medium
Prior art date
Application number
KR1020120139868A
Other languages
Korean (ko)
Other versions
KR20130108967A (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 서울대학교산학협력단
Publication of KR20130108967A publication Critical patent/KR20130108967A/en
Application granted granted Critical
Publication of KR101426806B1 publication Critical patent/KR101426806B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller

Abstract

저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성하는 단계, 복수의 쓰기 커맨드들 각각에 오브젝트 아이디를 할당하는 단계, 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단하는 단계, 및 판단 결과에 기초하여 복수의 쓰기 커맨드들을 처리하는 단계를 포함하는 저장 매체에서의 영속화를 제어하는 방법을 제공할 수 있다.The method comprising the steps of: generating a plurality of write commands for writing data to a storage medium; assigning an object ID to each of the plurality of write commands; writing the plurality of write commands between the plurality of write commands using an object ID assigned to each of the plurality of write commands; Determining persistence order or persistence atomicity of the storage medium, and processing the plurality of write commands based on the determination result.

Description

오브젝트 아이디에 기반하여 저장 매체에서의 영속화를 제어하는 방법, 그 컴퓨터 시스템 및 스토리지 시스템{METHOD, COMPUTER SYSTEM AND STORAGE SYSTEM FOR CONTROLLING MATERIALIZATION IN A STORAGE MEDIUM BASED ON OBJECT ID AND STORAGE SYSTEM}FIELD OF THE INVENTION The present invention relates to a computer system and a storage system for controlling persistence in a storage medium based on an object ID,

본 발명은 오브젝트 아이디에 기반하여 저장 매체에서의 영속화를 제어하는 방법, 그 컴퓨터 시스템 및 스토리지 시스템에 관한 것이다.The present invention relates to a method for controlling persistence in a storage medium based on an object ID, a computer system thereof, and a storage system.

호스트 시스템의 파일 시스템(File System) 혹은 데이터베이스 관리 시스템(Data Base Management System; DBMS)와 같은 상위 추상화 계층은 저장 장치에 대한 쓰기 요청이 순서를 보장하며 영속화 될 것을 요구한다. 하지만, 일반적인 인터페이스 기술은 하드 디스크의 구조적인 특성에 최적화된 제한적인 도구(예를 들어, write-through 방법, 버퍼 플러시 커맨드, FUA 옵션 등의 즉각 영속화 방법)만을 제공한다. A higher abstraction layer, such as the file system of the host system or the database management system (DBMS), requires write requests to the storage device to be guaranteed and orderly. However, generic interface technologies provide only limited tools (eg, write-through methods, buffer flush commands, immediate persistence methods such as the FUA option) optimized for the structural characteristics of the hard disk.

그렇기 때문에, 저장 장치 시스템에서는 영속화 순서를 제어할 필요가 있는 두 쓰기 요청 사이에 즉각 영속화 방법을 사용하여 쓰기 요청 간의 동기화를 수행한다. 하지만, 즉각 영속화를 통한 동기화 작업은 매우 큰 오버헤드를 발생시키는 것으로, 저장 장치에 대한 쓰기 동작의 성능 저하에 결정적인 영향을 미친다.Thus, storage systems perform synchronization between write requests using an immediate persistence method between two write requests that need to control the persistence order. However, the synchronization operation through immediate persistence causes a very large overhead, which has a decisive influence on the performance degradation of the write operation to the storage device.

본 발명의 실시예들은 영속화 순서(ordering) 제어와 영속화 원자성(atomicity) 요구를 저장 장치에 직접 전달하여 호스트 시스템 및 호스트 인터페이스에서의 즉각 영속화를 통한 동기화 없이도 쓰기 데이터가 영속화되는 형상(configuration)을 직접적으로 제어할 수 있다.Embodiments of the present invention provide for a configuration in which write data is persistent without synchronization through immediate persistence in the host system and host interface by directing persistent ordering control and persistent atomicity requests to the storage device Can be directly controlled.

또한, 본 발명의 실시예들은 쓰기 데이터들 간의 영속화 순서를 강제하고, 일련의 데이터가 원자성을 가지고 영속화될 수 있도록 제어할 수 있다. In addition, embodiments of the present invention can enforce a persistence order between write data and control a series of data to be persistent with atomicity.

일 실시예에 따르면, 저장 매체에서의 영속화를 제어하는 방법은 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성하는 단계; 상기 복수의 쓰기 커맨드들 각각에 오브젝트 아이디를 할당하는 단계; 상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단하는 단계; 및 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 단계를 포함할 수 있다. According to one embodiment, a method of controlling persistence in a storage medium includes generating a plurality of write commands for writing data to a storage medium; Assigning an object ID to each of the plurality of write commands; Determining a persistence order or persistence atomicity among the plurality of write commands using an object ID assigned to each of the plurality of write commands; And processing the plurality of write commands based on the determination result.

상기 오브젝트 아이디를 할당하는 단계는 상기 복수의 쓰기 커맨드들 중 하나의 그룹에 포함되는 적어도 하나의 쓰기 커맨드에 동일한 오브젝트 아이디를 할당하는 단계를 포함할 수 있다. The step of assigning the object ID may include assigning the same object ID to at least one write command included in one of the plurality of write commands.

상기 복수의 쓰기 커맨드들 사이의 영속화 순서를 판단하는 단계는 상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는지 여부를 판단하는 단계를 포함할 수 있다. The step of determining the persistence order among the plurality of write commands may include determining whether there is information indicating a persistence order corresponding to the object ID.

상기 영속화 순서를 나타내는 정보는 상기 복수의 쓰기 커맨드들 중 상기 저장 매체에서 해당 쓰기 커맨드에 대하여 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드의 개수 및 상기 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드에 할당된 오브젝트 아이디를 포함할 수 있다. Wherein the information indicating the persistence order includes at least one of the plurality of write commands, the number of at least one write command to be persistently prioritized with respect to the write command in the storage medium, and the at least one write command to be allocated to at least one write command And may include an object ID.

상기 복수의 쓰기 커맨드들을 처리하는 단계는 상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보에 따라 상기 적어도 하나의 쓰기 커맨드를 우선적으로 상기 저장 매체에 영속화하는 단계를 포함할 수 있다. The processing of the plurality of write commands may include persisting the at least one write command preferentially to the storage medium according to information indicating a persistence order corresponding to the object ID.

상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 저장 매체에서 상기 복수의 쓰기 커맨드들 사이의 영속화되는 순서를 나타내는 정보를 생성하는 단계를 더 포함할 수 있다. And generating information indicating an order of persistence between the plurality of write commands in the storage medium by using an object ID allocated to each of the plurality of write commands.

상기 영속화 원자성을 판단하는 단계는 상기 오브젝트 아이디에 대응하는 상기 영속화 원자성을 나타내는 정보가 있는지 여부를 기초로 상기 영속화 원자성을 판단하는 단계를 포함할 수 있다. The step of determining the persistent atomicity may include determining the persistent atomicity based on whether or not there is information indicating the persistent atomicity corresponding to the object ID.

상기 복수의 쓰기 커맨드들을 처리하는 단계는 상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대한 영속화의 진행 중에 상기 영속화가 중단된 경우, 상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 주는 단계를 더 포함할 수 있다. Wherein the processing of the plurality of write commands comprises: when the persistence is interrupted while the persistence of the write commands to which the information indicating persistent atomicity is added is performed, the write commands having information indicating the persistent atomicity are added to the write commands And making all the included information non-persistent.

상기 복수의 쓰기 커맨드들 중 상기 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들에 대하여 영속화 원자성을 나타내는 정보를 부가하는 단계를 더 포함할 수 있다. And adding information indicating persistent atomicity to write commands that are to be permanently persistent in the storage medium among the plurality of write commands.

일 실시예에 따르면, 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템은 호스트 시스템 및 저장 장치를 포함하고, 상기 호스트 시스템은 상기 저장 장치 내 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드 및 상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 상기 저장 장치로 제공하고, 상기 저장 장치는 상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단하고, 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리할 수 있다. According to one embodiment, a computer system for controlling persistence in a storage medium includes a host system and a storage device, wherein the host system includes a plurality of write commands for writing data to a storage medium in the storage device, Wherein the storage system provides an object ID assigned to each of the plurality of write commands to the storage apparatus, and the storage apparatus uses the object ID assigned to each of the plurality of write commands to set a persistence order or persistence atomicity between the plurality of write commands And process the plurality of write commands based on the determination result.

상기 호스트 시스템은 상기 복수의 쓰기 커맨드들 중 하나의 그룹에 포함되는 적어도 하나의 쓰기 커맨드에 동일한 오브젝트 아이디를 할당할 수 있다. The host system may assign the same object ID to at least one write command included in one of the plurality of write commands.

상기 저장 장치는 상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는지 여부에 기초하여 상기 복수의 쓰기 커맨드들 사이의 영속화 순서를 판단할 수 있다. The storage device may determine a persistence order among the plurality of write commands based on whether information indicating a persistence order corresponding to the object ID exists.

상기 영속화 순서를 나타내는 정보는 상기 복수의 쓰기 커맨드들 중 상기 저장 매체에서 해당 쓰기 커맨드에 대하여 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드의 개수 및 상기 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드에 할당된 오브젝트 아이디를 포함할 수 있다. Wherein the information indicating the persistence order includes at least one of the plurality of write commands, the number of at least one write command to be persistently prioritized with respect to the write command in the storage medium, and the at least one write command to be allocated to at least one write command And may include an object ID.

상기 저장 장치는 상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보에 따라 상기 적어도 하나의 쓰기 커맨드를 우선적으로 상기 저장 매체에 영속화할 수 있다. The storage device may persist the at least one write command to the storage medium according to information indicating a persistence order corresponding to the object ID.

상기 호스트 시스템은 상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 저장 매체에서 상기 복수의 쓰기 커맨드들 사이의 영속화되는 순서를 나타내는 정보를 생성할 수 있다. The host system may generate information indicating an order of persistence between the plurality of write commands in the storage medium by using an object ID assigned to each of the plurality of write commands.

상기 저장 장치는 상기 오브젝트 아이디에 대응하는 상기 영속화 원자성을 나타내는 정보가 있는지 여부를 기초로 상기 영속화 원자성을 판단할 수 있다. The storage device may determine the persistent atomicity based on whether or not there is information indicating the persistent atomicity corresponding to the object ID.

상기 저장 장치는 상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대한 영속화의 진행 중에 상기 영속화가 중단된 경우, 상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 줄 수 있다. When the persistence is interrupted while the persistence of the write commands with the information indicating the persistent atomicity is suspended, the storage apparatus permanently stores information included in the write commands to which the information indicating persistent atomicity is added, It is possible to make it in a state that it is not.

상기 호스트 시스템은 상기 복수의 쓰기 커맨드들 중 상기 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들에 대하여 영속화 원자성을 나타내는 정보를 부가할 수 있다. The host system may add information indicating persistence atomicity to write commands that are to be permanently persistent in the storage medium among the plurality of write commands.

상기 저장 장치는 해당 저장 장치가 상기 영속화 순서 또는 상기 영속화 원자성과 관련된 영속화 형상 제어가 가능한 장치임을 호스트 인터페이스를 통해 상기 호스트 시스템에게 알릴 수 있다. The storage device can notify the host system via the host interface that the storage device is a device capable of controlling the persistent configuration related to the persistence order or the persistent atomicity.

상기 호스트 시스템은 상기 영속화 형상 제어가 가능한 저장 장치가 상기 영속화 형상 제어 기능을 사용하도록 설정하는 정보를 상기 호스트 인터페이스를 통해 상기 저장 장치에게 전송할 수 있다. The host system may transmit information to the storage device through the host interface to enable the storage device capable of the persistent configuration control to use the persistent configuration control function.

일 실시예에 따르면, 저장 매체에서의 영속화를 제어하는 스토리지 시스템은 호스트 시스템으로부터 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드 및 상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 수신하는 호스트 인터페이스; 상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단하고, 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 컨트롤러; 및 상기 처리 결과에 따라 상기 복수의 쓰기 커맨드들을 영속화하기 위한 저장 매체를 포함할 수 있다. According to an embodiment, a storage system for controlling persistence in a storage medium includes: a host interface for receiving a plurality of write commands for writing data to a storage medium from a host system and an object ID assigned to each of the plurality of write commands; A controller for determining a persistence order or persistence atomicity between the plurality of write commands by using an object ID assigned to each of the plurality of write commands and processing the plurality of write commands based on the determination result; And a storage medium for perpetuating the plurality of write commands according to the processing result.

상기 컨트롤러는 상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는지 여부를 기초로 상기 복수의 쓰기 커맨드들 사이의 영속화 순서를 판단할 수 있다. The controller may determine a persistence order among the plurality of write commands based on whether information indicating a persistence order corresponding to the object ID exists.

상기 영속화 순서를 나타내는 정보는 상기 복수의 쓰기 커맨드들 중 상기 저장 매체에서 해당 쓰기 커맨드에 대하여 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드의 개수 및 상기 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드에 할당된 오브젝트 아이디를 포함할 수 있다. Wherein the information indicating the persistence order includes at least one of the plurality of write commands, the number of at least one write command to be persistently prioritized with respect to the write command in the storage medium, and the at least one write command to be allocated to at least one write command And may include an object ID.

상기 컨트롤러는 상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보에 따라 상기 적어도 하나의 쓰기 커맨드를 우선적으로 상기 저장 매체에 영속화할 수 있다.The controller may persist the at least one write command to the storage medium according to information indicating a persistence order corresponding to the object ID.

상기 컨트롤러는 상기 오브젝트 아이디에 대응하는 상기 영속화 원자성을 나타내는 정보가 있는지 여부를 기초로 상기 영속화 원자성을 판단할 수 있다. The controller may determine the persistent atomicity based on whether or not there is information indicating the persistent atomicity corresponding to the object ID.

상기 컨트롤러는 상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대한 영속화의 진행 중에 상기 영속화가 중단된 경우, 상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 줄 수 있다.When the persistence is interrupted while the persistence of the write commands with the information indicating the persistent atomicity is suspended, all of the information included in the write commands to which the information indicating the persistent atomicity is added are not persistent You can make it untouched.

일 실시예에 따르면, 영속화의 순서 제어 요구를 저장 장치에 직접 전달함으로써 정확하면서도 보다 효율적인 영속화를 수행할 수 있다.According to one embodiment, accurate and more efficient persistence can be achieved by passing the sequencing control request of persistence directly to the storage device.

또한, 일 실시예에 따르면, 커맨드 혹은 커맨드 그룹으로 구성된 영속화 단위를 정의하고 영속화 단위 별로 원자적 영속화를 강제함으로써 파일 시스템과 같은 호스트 시스템의 상위 추상화 계층이 요구하는 다수의 쓰기 요청에 대한 영속화 의도를 보다 효과적으로 저장 장치에 전달할 수 있다. In addition, according to one embodiment, a persistence unit composed of a command or a command group is defined, and atomic persistence is enforced per persistence unit, so that a persistence intention for a plurality of write requests required by a higher abstraction layer of a host system such as a file system It can be more effectively delivered to the storage device.

또한, 일 실시예에 따르면, 영속화의 순서 제어 요구를 저장 장치에 직접 전달하여 호스트 시스템 상에서의 쓰기 동기화를 위한 작업을 제거함으로써, 호스트 시스템의 파일 시스템과 버퍼 캐시, I/O 스케줄러 등의 구조를 보다 단순화하여 최적화하는 동시에 호스트 시스템의 개발, 유지 및 보수 비용을 크게 절감할 수 있다.In addition, according to one embodiment, the structure of the file system of the host system, the buffer cache, and the I / O scheduler can be obtained by directly transferring the sequential control request of the persistence to the storage device to eliminate the work for writing synchronization on the host system It is possible to simplify and simplify the system more easily and to greatly reduce the cost of development, maintenance and repair of the host system.

도 1은 저장 장치를 포함하는 컴퓨터 시스템의 계층 구조를 개념적으로 나타낸 도면이다.
도 2는 파일 시스템의 쓰기 요청이 저장 장치에서 동기적으로 수행되는 과정을 나타낸 도면이다.
도 3은 파일 시스템의 쓰기 요청이 저장 장치에서 비동기적으로 수행되는 과정을 나타낸 도면이다.
도 4는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 나타낸 플로우차트이다.
도 5는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 쓰기 커맨드에 대하여 영속화 단위를 표현하는 방법을 나타낸 도면이다.
도 6은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 영속화 순서 및 영속화 원자성 요청을 표현하는 방법을 나타낸 도면이다.
도 7은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 일부 영속화 단위가 영속화 순서 및 영속화 원자성의 제어를 필요로 하는 경우의 표현 방법을 나타낸 도면이다.
도 8은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 영속화 원자성의 제어만이 필요한 경우의 표현 방법을 나타낸 도면이다.
도 9는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 모든 영속화 단위가 영속화 순서의 제어를 필요로 하는 경우의 표현 방법을 나타낸 도면이다.
도 10은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 모든 영속화 단위에 대한 영속화가 완료되었음을 표현하는 방법을 나타낸 도면이다.
도 11은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 Serial ATA(SATA) 인터페이스 규약의 Non-NCQ 커맨드에 적용한 결과를 나타낸 도면이다.
도 12는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 Serial ATA(SATA) 인터페이스 규약의 NCQ 커맨드에 적용한 결과를 나타낸 도면이다.
도 13은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 Serial ATA(SATA) 인터페이스 규약에 적용하여 영속화 완료 응답을 제공하는 방법을 나타낸 도면이다.
도 14는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템의 블록도이다.
도 15는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 스토리지 시스템의 블록도이다.
1 is a conceptual diagram illustrating a hierarchical structure of a computer system including a storage device.
2 is a diagram illustrating a process in which a write request of a file system is synchronously performed in a storage device.
3 is a diagram illustrating a process in which a write request of a file system is performed asynchronously in a storage device.
4 is a flowchart illustrating a method for controlling persistence in a storage medium according to one embodiment.
5 is a diagram illustrating a method of representing a persistence unit for a write command according to a method for controlling persistence in a storage medium according to an exemplary embodiment.
FIG. 6 is a diagram illustrating a method for expressing a persistence order and a persistent atomicity request according to a method for controlling persistence in a storage medium according to an embodiment.
FIG. 7 is a diagram illustrating a method of representing a case where some persistence units require control of persistence order and persistence atomicity according to a method of controlling persistence in a storage medium according to an embodiment.
8 is a view illustrating a method of representing a case where only persistent atomicity control is required according to a method of controlling persistence in a storage medium according to an embodiment.
FIG. 9 is a diagram illustrating a method of representing a case where all persistence units need to control the persistence order according to a method of controlling persistence in a storage medium according to an embodiment.
FIG. 10 is a diagram illustrating a method for representing persistence of all persistence units according to a method of controlling persistence in a storage medium according to an exemplary embodiment of the present invention. Referring to FIG.
11 is a diagram illustrating a result of applying a method of controlling persistence in a storage medium according to an embodiment to a Non-NCQ command of a Serial ATA (SATA) interface protocol.
12 is a diagram illustrating a result of applying a method of controlling persistence in a storage medium according to an embodiment to an NCQ command of a Serial ATA (SATA) interface protocol.
FIG. 13 is a diagram illustrating a method of applying a method of controlling persistence in a storage medium according to an embodiment to a Serial ATA (SATA) interface protocol to provide a persistent completion response.
14 is a block diagram of a computer system for controlling persistence in a storage medium according to one embodiment.
15 is a block diagram of a storage system that controls persistence in a storage medium according to one embodiment.

이하, 실시 예들은 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 일실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. In addition, the same reference numerals shown in the drawings denote the same members.

PC나 서버 시스템과 같은 전통적인 시스템으로부터 최근에 더욱 널리 사용되는 휴대용 기기들(예를 들어, 스마트 폰, 태블릿 PC, PMP, MP3P, 디지털 카메라 등)에 이르기까지 다양한 환경에서 저장 장치가 사용되고 있다. 표준화된 인터페이스를 이용하여 연결된 저장 장치들은 사용자에 의해 직접적으로 접근되기도 하지만, 파일 시스템과 같은 추상화를 통해 접근되는 것이 더욱 일반적이다.Storage devices are used in a variety of environments ranging from traditional systems such as PCs and server systems to more recently used portable devices (e.g., smart phones, tablet PCs, PMPs, MP3Ps, digital cameras, etc.). Storage devices connected using a standardized interface may be accessed directly by the user, but it is more common to be accessed through an abstraction such as a file system.

파일 시스템은 사용자가 만들고 저장한 파일 및 디렉터리를 어떠한 상황에서도 다시 인출해 주어야 한다. 그렇게 하기 위해서는 기록된 파일 데이터 및 디렉터리 엔트리(directory entry)의 내용도 중요하지만, 예를 들어, inode와 같은 메타 데이터가 기록된 상태 그대로 정확히 인출되는 것이 더욱 중요해 진다. 이와 같이 기록된 데이터가 기록된 상태 그대로 정확히 인출되도록 하는 것을 파일 시스템의 일관된 상태(일관성, consistency)라 하며, 일관성을 유지하기 위해서는 메타 데이터가 무결성(integrity)과 내구성(durability)을 가져야 한다.The file system should fetch the files and directories that the user created and saved under any circumstances. In order to do so, the contents of the recorded file data and the directory entry are important, but it becomes more important that the metadata such as the inode is correctly fetched in the recorded state. The consistency of the file system to ensure that the recorded data is retrieved exactly as it is recorded must be integrity and durability in order to maintain consistency.

특히, 예상치 못한 시점에서의 전원 공급의 중단(unexpected power failure)이나 사용자의 저장 장치 분리(unexpected unmount), 갑작스런 시스템 오류로 인한 동작 중단과 같은 크래시(crash) 상황에서의 일관성 유지가 필요가 있다. In particular, it is necessary to maintain consistency in a crash situation such as an unexpected power failure at an unexpected time, unexpected unmount of a user, or a sudden system failure.

배터리를 이용하여 동작하는 휴대용 기기(mobile device)의 사용이 점차 늘어가고, 이동식 저장 장치(removable storage)의 형태로 장치의 장착/분리가 빈번해 짐에 따라, 과거의 전통적인 시스템에서 보다 더욱 높은 빈도로 크래시 상황이 발생할 수 있다. As the use of mobile devices operating with batteries is increasingly used and the mounting / dismounting of devices in the form of removable storage becomes more frequent, A crash situation may occur.

저장 장치에 기록된 메타 데이터를 읽어 들여 자신의 상태를 알 수 있는 상태로 만드는 복구 과정을 통하여 파일 시스템은 다시 일관성을 유지할 수 있게 된다. 그러므로, 크래시 상황 이후에 파일 시스템은 자신의 상태를 복구(recovery)해내는 과정을 필요로 한다.The file system can maintain consistency again through the recovery process of reading the metadata recorded in the storage device and making its state known. Therefore, after a crash situation, the file system needs a process to recover its state.

때문에 파일 시스템에서는 일관성(consistency)을 유지하기 위해 요청한 순서대로 쓰기 데이터가 저장 장치에 영속화될 것을 원한다. 쓰기 데이터가 영속화될 때에 순서성(ordering)이 보장되어야 다시 일관된 상태로 복구할 수 있기 때문이다. Because of this, the file system wants the write data to be persisted to the storage device in the requested order in order to maintain consistency. This is because when the write data is persisted, ordering can be restored to a consistent state again.

하지만, 복구 시에 저장 장치에서 영속화된 데이터가 파일 시스템이 의도한 상태와 달라 복구 과정이 실패하면, 예를 들어, 메타 데이터가 손상되어 파일 시스템의 전체 구조를 잃어버리는 경우, 파일 시스템의 구조는 복원되었으나 메타 데이터가 가리키는 파일 데이터가 손실된 경우, 파일 데이터는 남아있으나 메타 데이터가 잘못된 경우 등과 같은 여러 가지 문제 상황이 발생할 수 있다.However, if the data that is persisted in the storage at the time of recovery is different from the intended state of the file system and the recovery process fails, for example, if the metadata is corrupted and the entire structure of the file system is lost, When the file data is restored but the metadata pointed to by the metadata is lost, various problem situations such as the case where the file data remains but the metadata is wrong may occur.

하드 디스크 드라이브(HDD)는 논리 블락 주소(Logic Block Address; LBA)로의 무작위 접근(random access)이 가능한 장치로서 단위 용량당 가격이 매우 저렴한 장점을 가지고 있어 오늘날 범용 컴퓨터 시스템에서 저장 장치로 가장 널리 사용되고 있다. 이러한 이유로 현재의 호스트 인터페이스 표준 규약과 호스트 시스템의 파일 시스템을 비롯한 저장 장치 접근을 위한 계층들은 묵시적으로 하드 디스크가 저장 장치로 사용되는 것을 가정하여 발전해왔다.A hard disk drive (HDD) is a device capable of random access to a logical block address (LBA), and has a very low price per unit capacity. It is most widely used today as a storage device in a general computer system have. For this reason, layers for storage access, including the current host interface standard protocol and the file system of the host system, have been developed assuming that the hard disk is used as a storage device implicitly.

하지만, 하드 디스크는 구조적인 특징으로 인하여 저장 장치 인터페이스를 통해 전달된 쓰기 요청들을 순서대로 처리하는 경우 극심한 성능 저하를 유발할 수 있다. 이는 하드 디스크 내에 있는 저장 매체 상의 특정 데이터에 접근하기 위해 헤드(Head)를 데이터가 물리적으로 존재하는 위치로 움직이기 위해 헤드-암-어셈블리(HAA)를 기계적으로 동작 시켜야 하기 때문이다. 따라서, 하드 디스크의 구조적 제약을 극복하기 위하여 저장 장치 내에 쓰기 버퍼를 두어 몇 가지 문제를 해결하였다. However, due to the structural characteristics of the hard disk, when the write requests transmitted through the storage interface are processed in order, it may cause severe performance degradation. This is because the head-arm-assembly (HAA) must be mechanically operated to move the head to a position where the data physically exists to access certain data on the storage medium in the hard disk. Therefore, in order to overcome the structural limitation of the hard disk, a write buffer is provided in the storage device to solve some problems.

첫 번째는 쓰기 데이터를 실제 저장 매체에 기록하지 않고 쓰기 버퍼 상에만 저장한 후 쓰기 커맨드에 대한 완료 응답을 함으로써 호스트 시스템에 빠른 응답 속도를 보일 수 있게 된 것이다. The first is that the write data is not written to the actual storage medium but stored on the write buffer, and then the completion response to the write command is given to the host system.

두 번째는 쓰기 버퍼를 통해 인터페이스 커맨드 처리와 저장 매체 접근 동작을 서로 독립적으로 처리할 수 있게 되어 명령어 대기열(command queuing) 기법을 적용할 수 있게 된 것이다. Second, it is possible to independently process the interface command processing and the storage medium access operation through the write buffer, so that the command queuing method can be applied.

세 번째는 쓰기 데이터를 버퍼에 우선 저장한 다음 실제 저장 매체에 기록하는 순서를 뒤바꾸어(reorder) 기계적으로 동작하는 헤드-암-어셈블리의 움직임을 최적화시켜 데이터를 저장 매체에 비휘발적으로 기록하는 성능(영속화 성능)을 개선할 수 있게 된 것이다.Third, write data is first stored in the buffer and then reordered to write to the actual storage medium. The movement of the mechanically operating head-arm assembly is optimized to write data to the storage medium in a non-volatile manner Performance (persistence performance) can be improved.

저장 장치는 일반적인 경우(common case)의 성능을 향상시키기 위해서 가능하면 모든 쓰기를 비동기적으로 처리하기를 원한다. 쓰기 버퍼의 사용으로 인해 도 3과 같이 비동기적으로 저장 장치에 접근할 수 있게 됨에 따라, 저장 장치 시스템의 성능을 보다 높일 수 있고 쓰기 요청을 보다 효율적으로 처리할 수 있게 되었다. 하지만, 쓰기 요청의 처리 순서가 뒤바뀔 수 있게 되므로, 호스트 시스템은 쓰기 요청된 데이터가 실제 비휘발성 저장 매체에서 어떤 방법으로 영속화되고 있는지 알 수 없다. 때문에 갑작스러운 크래시 상황에서 파일 시스템이 일관성을 잃을 수 있는 위험이 더욱 커졌다.The storage device wants to handle all writes asynchronously, if possible, to improve the performance of the common case. As a result of the use of the write buffer, the storage device can be accessed asynchronously as shown in FIG. 3, so that the performance of the storage system can be improved and the write request can be processed more efficiently. However, since the processing order of the write request can be reversed, the host system can not know how the write-requested data is actually persistent in the non-volatile storage medium. This increases the risk of file system inconsistencies in sudden crash situations.

그러므로, 크래시 상황과 같은 드문 경우(rare case)에서도 파일 시스템이 일관성을 유지하도록 하기 위해서는 파일 시스템의 쓰기 요청이 저장 매체에 기록되는 순서를 정확하게 지켜줄 필요가 있다. Therefore, in order to keep the file system consistent even in rare cases such as a crash situation, it is necessary to accurately keep the order in which file system write requests are written to the storage medium.

현재의 호스트 인터페이스 기술은 후술하는 도 2와 같이 쓰기 요청을 동기적으로 처리함으로써 쓰기 데이터가 저장 매체에서 영속화되는 순서를 제어하는 방법을 제공한다. 하지만, 파일 시스템의 일관성을 보장하기 위하여 쓰기 데이터가 저장 매체에서 영속화되는 순서가 정확하도록 동기적 쓰기를 강요하는 경우 불필요한 성능 저하를 유발할 수 있다. Current host interface techniques provide a way to control the order in which write data is persisted on a storage medium by synchronously processing write requests as in FIG. 2, described below. However, unnecessary performance degradation may be caused by forcing synchronous writing so that the order in which write data is persisted in the storage medium is correct in order to ensure the consistency of the file system.

따라서, 호스트 시스템에서는 저장 장치로의 쓰기 요청을 효율적으로 처리하기 위하여 기본적으로 비동기적 저장 장치 쓰기 방법을 사용한다. Therefore, the host system basically uses the asynchronous storage write method in order to efficiently process the write request to the storage device.

비동기적 저장 장치 쓰기 방법의 경우 후술하는 도 3과 같이 호스트 시스템의 버퍼 캐시와 저장 장치의 쓰기 버퍼에서 각각 순서 재배열(reordering) 작업이 일어난다. 버퍼 캐시에서 일어나는 순서 재배열의 경우, 호스트 시스템 내에서 일어나는 작업이므로, 파일 시스템과의 내부 통신을 통하여 재배열 여부를 확인할 수 있고, 또 내부 통신을 통하여 쓰기 요청 처리를 최적화할 수 있는 여지를 제공한다.In the case of the asynchronous storage device writing method, reordering is performed in the buffer cache of the host system and the write buffer of the storage device, respectively, as shown in FIG. 3, which will be described later. In the case of the order reordering sequence occurring in the buffer cache, since it is an operation occurring in the host system, it is possible to confirm reordering through internal communication with the file system, and also provides a room for optimizing write request processing through internal communication .

하지만, 저장 장치의 쓰기 버퍼에서 일어나는 순서 재배열은 문제가 다르다. 호스트 시스템은 저장 장치의 인터페이스를 통해서만 저장 장치에 접근할 수 있는데, 현재 저장 장치의 인터페이스 기술은 쓰기 데이터의 영속화 순서를 직접적으로 저장 장치에 전달할 수 있는 방법을 제공하지 않는다. 그러므로, 호스트 시스템은 저장 장치가 쓰기 버퍼 내의 데이터에 대해 영속화의 순서가 재배열되었는지 여부를 알지 못한다.However, the order reordering that occurs in the write buffer of the storage device has a different problem. The host system can only access the storage device through the interface of the storage device. Currently, the interface technology of the storage device does not provide a method of directly transmitting the write data persistence order to the storage device. Therefore, the host system does not know whether or not the storage device has rearranged the order of persistence for data in the write buffer.

호스트 시스템은 저장 장치로 쓰기 커맨드를 전달하고, 커맨드 완료를 응답 받아 쓰기 커맨드의 처리가 완료되었음을 알 수 있다. 하지만, 쓰기 커맨드 완료가 곧 데이터 영속화의 완료를 의미하지 않는다. The host system transfers the write command to the storage device, and upon receipt of the command completion, the host system can recognize that the processing of the write command is completed. However, the completion of the write command does not mean the completion of the data persistence.

일반적인 경우, 쓰기 버퍼를 사용하는 저장 장치의 경우, 데이터가 쓰기 버퍼에 성공적으로 저장되면 쓰기 커맨드의 완료를 응답한다. 쓰기 버퍼 상의 데이터를 저장 매체에 영속화시키는 것은 저장 장치가 내부적으로 수행하는 독립적인 작업이므로, 호스트 시스템은 완료 응답된 쓰기 커맨드의 데이터가 영속화 되었는지 알 수 없다. 또한, 다수의 쓰기 커맨드가 전달되었을 때, 각 커맨드에 대한 쓰기 데이터가 어떠한 순서로 저장 매체에 영속화되는지 역시 알 수가 없다.In general, for a storage device that uses write buffers, it responds to completion of the write command if the data is successfully stored in the write buffer. Since it is an independent task that the storage device internally performs to persist data in the write buffer to the storage medium, the host system can not know whether the data of the write command that has been completed is persistent. In addition, when a plurality of write commands are transmitted, it is also impossible to know in what order the write data for each command is made persistent to the storage medium.

때문에 일반적인 호스트 인터페이스 기술에서는 다음과 같은 세 가지 방법을 통하여 쓰기 데이터의 영속화 순서를 제어하고 있다.Therefore, the general host interface technology controls the persistence order of write data through the following three methods.

첫 번째는 동시 기록(write-through) 방법이다. 이 방법은 저장 장치의 쓰기 버퍼를 사용하지 않도록 설정하거나 쓰기 버퍼를 우회하여, 모든 쓰기 커맨드를 처리할 때 데이터를 곧바로 저장 매체에 영속화 시키는 방법이다. 이 방법은 후술하는 도 2와 같이 매 쓰기 요청을 동기적 저장 장치 쓰기 방법으로 처리하여, 쓰기 커맨드에 대한 완료 응답시간이 매우 길어져 성능 저하를 일으킬 수 있다. The first is a write-through method. This method disables the write buffer of the storage device, bypasses the write buffer, and persists the data directly to the storage medium when all write commands are processed. In this method, each write request is processed by a synchronous storage write method as shown in FIG. 2, which will be described later, and the completion response time for the write command becomes very long, which may cause performance degradation.

두 번째는 버퍼 플러시 커맨드를 이용하는 방법으로, 쓰기 커맨드의 처리는 비동기적 저장 장치 쓰기 방법으로 처리하되, 영속화 순서를 제어할 필요가 있을 경우 버퍼 플러시 커맨드를 통해 동기화를 수행하는 방법이다. The second is a method of using a buffer flush command, a processing of a write command by an asynchronous storage write method, and a method of performing a synchronization through a buffer flush command when it is necessary to control a persistence order.

버퍼 플러시 커맨드는 동기적으로 작용하는 커맨드로, 저장 장치 내에 휘발적으로 저장되어있는 쓰기 데이터를 모두 저장 매체에 비휘발적으로 저장하라는 의미를 가진다. 저장 장치는 버퍼 플러시 커맨드를 받으면 쓰기 버퍼 상의 모든 데이터를 영속화 시키고, 영속화 작업이 완료된 다음 버퍼 플러시 커맨드 완료를 응답한다. 이는 일종의 배리어 동기화(barrier synchronization) 방법으로 동기적으로 처리되므로 버퍼 플러시 커맨드가 처리되는 동안 다른 쓰기 커맨드는 저장 장치로 전달될 수 없다. 뿐만 아니라, 버퍼 플러시 커맨드의 완료 응답 시간은 영속화 작업에 소요되는 시간을 포함하므로 시스템 전체의 성능 저하의 주된 요인으로 작용한다. The buffer flush command is a command that operates synchronously, meaning that all write data stored voluntarily in the storage device is stored non-volatile on the storage medium. Upon receipt of the buffer flush command, the storage device perpetuates all data on the write buffer and responds to completion of the buffer flush command after the persistence operation is completed. This is handled synchronously with a kind of barrier synchronization method, so that other write commands can not be transferred to the storage while the buffer flush command is being processed. In addition, since the completion response time of the buffer flush command includes the time required for the persistence operation, it is a main factor for the performance degradation of the entire system.

그러므로, 쓰기 버퍼의 크기가 큰 저장 장치의 경우, 또는 쓰기 버퍼에 많은 데이터를 휘발적 상태로 남겨놓는 정책을 사용하였을 경우에 버퍼 플러시의 응답 시간은 더욱 길어질 수 있다.Therefore, in the case of a storage device having a large write buffer size or a policy of leaving a lot of data in a volatile state in the write buffer, the response time of the buffer flush may be longer.

세 번째는 FUA 옵션을 이용하는 방법이다. FUA는 저장 매체 강제 접근(Forced Unit Access)의 의미를 가지는 것으로, 커맨드마다 개별적으로 적용될 수 있는 옵션이다. FUA 옵션이 설정된 쓰기 커맨드의 경우 쓰기 버퍼를 우회(bypass)하여 처리되며, 반드시 쓰기 데이터를 저장 매체에 영속화 시킨 후에 커맨드 완료 응답을 보내야 한다. FUA 옵션은 개별 커맨드에만 작용하는 것으로, FUA 커맨드와 다른 FUA 커맨드, 혹은 FUA 커맨드와 FUA가 아닌 커맨드 사이에는 영속화 순서에 대한 규칙은 없다.The third is to use the FUA option. The FUA has the meaning of storage medium forced access (Forced Unit Access) and is an option that can be individually applied to each command. In the case of a write command with the FUA option set, the write buffer is bypassed, and the write completion data must be persisted to the storage medium before the command completion response is sent. The FUA option only works for individual commands, and there is no rule for the persistence order between the FUA command and other FUA commands, or between FUA commands and non-FUA commands.

이러한 세 가지 방법 모두 동기적 저장 장치 쓰기를 이용한 것으로, 이를 '즉각 영속화(immediate materialization)'라 부를 수 있다. All three methods use synchronous storage writes, which can be referred to as 'immediate materialization'.

호스트 시스템은 영속화의 순서제어가 필요한 경우, 다수의 쓰기 커맨드를 각각 동기적 쓰기 방법으로 처리하거나, 쓰기 커맨드는 비동기적으로 처리하되, 동기적으로 동작하는 버퍼 플러시 커맨드를 뒤이어 전달하여 영속화의 동기화 과정을 거친다.If the host system needs sequential control of the persistence, it processes each of the plurality of write commands in a synchronous write manner, or writes the write command asynchronously, followed by a synchronous buffer flush command, .

결국, 호스트 시스템이 원하는 것은 쓰기 요청된 데이터가 파일 시스템이 원하는 순서대로 저장 매체에 저장될 수 있도록 영속화의 순서를 보장해주는 것이다. 하지만, 기존 저장 장치의 인터페이스는 하드 디스크의 구조적인 특성에 최적화되어 제한된 도구만을 제공하고 있다. 따라서, 쓰기 데이터 간의 영속화 순서를 제어하고자 할 때 동기적 저장 장치 쓰기 방법을 사용하여 호스트 시스템이 주체가 된 동기화가 일어난다. 하지만, 호스트 시스템과 저장 장치 사이에 큰 성능 저하를 유발할 수 있는 동기화가 과도하게 유발되어 저장 장치 시스템의 성능을 크게 떨어뜨리고 있는 일종의 영속성 병목현상(durability bottleneck)이 발생하고 있다.As a result, what the host system wants is to ensure the order of persistence so that the write-requested data can be stored on the storage medium in the order desired by the file system. However, the interface of the existing storage device is optimized only for the structural characteristics of the hard disk, thus providing limited tools. Therefore, in order to control the order of persistence between write data, synchronization occurs when the host system becomes the subject by using the synchronous storage write method. However, there is a kind of durability bottleneck that causes excessive degradation of the performance of the storage system due to excessive synchronization between the host system and the storage device, which may cause a large performance degradation.

그러므로, 쓰기 요청된 데이터를 저장 매체에 영속화하는 것에 대해 호스트 시스템이 원하는 정확성을 보장하면서도 가장 효율적으로 처리하도록 저장 장치 인터페이스를 확장하여 수정할 필요가 있다.Therefore, there is a need to expand and modify the storage device interface so that the host system can handle the most efficiently while ensuring the desired accuracy of the persistent write-requested data to the storage medium.

최근 낸드(NAND) 플래시 메모리 기반의 SSD나 NVRAM을 이용한 저장 장치 등과 같은 메모리 기반의 저장 장치가 등장하여 하드 디스크의 영역을 점진적으로 대체하고 있다. 이와 같은 메모리 기반의 저장 장치는 연속적인 영역에 대한 순차적 접근과 불연속적인 영역에 대한 무작위 접근의 성능 차이가 거의 없다. 즉, 하드 디스크에서 성능 향상을 위해 쓰기 요청된 순서를 뒤바꾸어 비휘발성 저장 매체에 기록해야 했던 것과는 달리, 메모리 기반의 저장 장치는 파일 시스템이 요청하는 데이터 영속화의 순서를 성능 저하 없이 그대로 지켜줄 수 있다. 다시 말해, 새로운 저장 매체 하의 환경에서는 하드 디스크와 달리 저장 장치가 저장 매체에 쓰기 데이터를 영속화하는 순서를 제어하기가 쉽고, 호스트 시스템이 요청하는 영속화 순서 제어 요구를 쉽게 보장할 수 있다.Recently, a memory-based storage device such as an SSD based on NAND flash memory or a storage device using NVRAM has appeared, gradually replacing the area of the hard disk. Such a memory - based storage device has little difference in performance between sequential access to continuous areas and random access to discrete areas. In other words, memory-based storage devices can keep the order of data persistence requested by the file system as it is without degrading performance, as opposed to having to write back to the nonvolatile storage medium in order to improve performance on the hard disk . In other words, in an environment under a new storage medium, unlike a hard disk, it is easy to control the order in which the storage device permanently writes data to the storage medium, and the persistence order control request requested by the host system can be easily ensured.

이러한 장점에도 불구하고, 기존의 저장 장치 시스템 구성 요소 및 호스트 인터페이스 기술이 역사적으로 하드 디스크의 구조적 특성에 최적화된 방향으로 발전해왔기 때문에 새로운 저장 매체를 사용한 저장 장치에서도 동기적인 즉각 영속화 요구가 빈번하게 발생하여 부득이하게 성능이 저하될 수 있다. 따라서, 새로운 미디어의 특성을 잘 반영하여 보다 효율적으로 영속화 동작이 이루어지도록 개선이 필요하다.
Despite these advantages, existing storage system components and host interface technologies have historically evolved to be optimized for the structural characteristics of hard disks. Therefore, synchronous immediate persistence requests frequently occur in storage devices using new storage media The performance may inevitably be degraded. Therefore, it is necessary to improve the persistence operation more efficiently by reflecting the characteristics of the new media.

도 1은 저장 장치를 포함하는 컴퓨터 시스템의 계층 구조를 개념적으로 나타낸 도면이다. 1 is a conceptual diagram illustrating a hierarchical structure of a computer system including a storage device.

도 1을 참조하면, 컴퓨터 시스템은 호스트 시스템(110), 호스트 인터페이스(130) 및 저장 장치(150)를 포함할 수 있다. 1, a computer system may include a host system 110, a host interface 130, and a storage device 150.

호스트 시스템(110)은 일반적으로 운영 체제(OS)를 기반으로 동작하며, 사용자의 직접적인 요청, 혹은 사용자가 구동한 어플리케이션이 만들어내는 요청에 의해 저장 장치(150)에 데이터를 쓰고 읽는 작업을 시작한다.The host system 110 generally operates based on an operating system (OS) and starts a task of writing and reading data to the storage device 150 by a direct request from the user or a request generated by an application driven by the user .

이때, 운영 체제는 파일 시스템(file system)이나 데이터베이스 관리 시스템(DBMS)과 같은 계층으로 저장 장치(150)를 추상화 시켜서 보여주는데, 저장 장치(150)는 예를 들어, 파일 시스템의 파일이나 디렉터리, 데이터베이스 관리 시스템(DBMS)의 테이블과 레코드 등과 같은 사용자 데이터뿐만 아니라, 파일 시스템의 inode 와 같은 메타 데이터를 저장할 수 있다. At this time, the operating system abstracts and displays the storage device 150 as a layer such as a file system or a database management system (DBMS). The storage device 150 may be, for example, a file or directory of a file system, It can store metadata such as the inode of the file system, as well as user data such as tables and records of the management system (DBMS).

호스트 인터페이스(130)는 저장 장치(150)를 저장 공간의 기본 단위인 섹터(512B) 혹은 블락(Block)의 집합으로 보여주며, 이를 연속된 공간인 논리 블락 주소(LBA, logical block address) 공간으로 추상화시켜 호스트 시스템(110)이 접근할 수 있도록 한다.The host interface 130 shows the storage device 150 as a set of sectors 512B or blocks that are basic units of the storage space and stores the same as a logical block address space (LBA) Thereby making the host system 110 accessible.

저장 장치(storage device)(150)란 그 의미 그대로 데이터를 저장(store, 혹은 쓰기)할 수 있고, 저장된 데이터를 기록한 그대로 다시 꺼낼(retrieve, 혹은 읽기) 수 있도록 하는 보조 기억 장치를 말한다.A storage device 150 refers to an auxiliary storage device capable of storing (storing or writing) data in a meaningful manner and retrieving stored data as it is retrieved (read or read).

저장 장치(150)는 ATA나 SCSI와 같은 표준화된 인터페이스(host interface, 혹은 storage interface)를 통해 호스트 시스템(110)에 연결될 수 있으며, 호스트 시스템(110)이 생성한 인터페이스 명령을 전달받아 데이터의 저장(쓰기) 및 인출(읽기) 동작을 수행할 수 있다.The storage device 150 may be connected to the host system 110 through a standardized interface such as ATA or SCSI and may receive the interface command generated by the host system 110, (Write) and fetch (read) operations.

이하에서는 설명을 간단히 하고 이해를 돕기 위하여 파일 시스템이 사용되는 경우를 가정하기로 한다.Hereinafter, it is assumed that a file system is used in order to simplify the explanation and facilitate understanding.

파일 시스템(111)의 쓰기 요청(①)은 여러 계층을 거쳐 저장 장치(150)로 전달되는데, 이렇게 쓰기 요청된 데이터가 실제 저장 매체(155)에 완전하게(비휘발적으로) 기록되는 과정을 '영속화'(materialization 혹은 persistent write)라 정의한다. The write request (1) of the file system 111 is transferred to the storage device 150 through several layers. The process of writing the data requested to be written completely (nonvolatilely) to the actual storage medium 155 It is defined as materialization or persistent write.

파일 시스템(111)의 요청이 호스트 시스템(110)의 여러 계층과 호스트 인터페이스(130), 저장 장치(150) 내의 쓰기 버퍼(153)와 같은 여러 단계를 거쳐 저장 장치(150)의 저장 매체(155)에 영속화되기까지의 과정을 간략히 살펴보면 다음과 같다.The request of the file system 111 is transferred to the storage medium 155 of the storage device 150 through various steps such as the host interface 130 and the write buffer 153 in the storage device 150, The following is a brief description of the process of being perpetuated.

먼저 파일 시스템(111)의 쓰기 요청(①)이 발생하면, 해당 쓰기 요청은 버퍼 캐시(113)에 저장이 된다. 버퍼 캐시(113)는 상대적으로 느린 저장 장치에 대한 접근에 따른 병목 현상을 완화시키기 위하여 휘발성 메모리의 일부분을 파일 시스템(111)이 접근하는 블락을 캐싱(Caching)하는 데에 사용하기 위한 것이다. 이와 같은 버퍼 캐시(113)를 사용함으로써 불필요한 저장 장치의 입출력(I/O) 동작을 줄이고, 서로 다른 프로세스 간의 데이터 블락으로의 접근을 동기화할 수 있다. First, when a write request (1) of the file system 111 occurs, the write request is stored in the buffer cache 113. The buffer cache 113 is intended to be used to cache a block accessed by the file system 111, in order to alleviate the bottleneck due to access to a relatively slow storage device. By using such a buffer cache 113, unnecessary input / output (I / O) operations of the storage device can be reduced and access to data blocks between different processes can be synchronized.

버퍼 캐시(113)에 저장된 쓰기 요청 및 쓰기 데이터는 정해진 정책에 따라 디바이스 드라이버(115)로의 I/O 요청(②)으로 변환될 수 있다. I/O 스케줄러(113)는 저장 장치(150)에 대한 접근의 효율성을 높이기 위하여 버퍼 캐시(113) 내의 쓰기 요청을 서로 합치거나(merge), 순서를 뒤바꿀(reorder) 수 있다.The write request and write data stored in the buffer cache 113 may be converted into an I / O request (2) to the device driver 115 according to a predetermined policy. The I / O scheduler 113 may merge and reorder write requests in the buffer cache 113 to increase the efficiency of access to the storage device 150.

디바이스 드라이버(115)로 전달된 I/O 요청(②)은 호스트 인터페이스의 커맨드(③)로 변환되어 저장 장치(150)에게 전달되며, 쓰기 커맨드를 통해 전달된 쓰기 데이터는 저장 장치(150) 내의 휘발성 메모리인 쓰기 버퍼(153)에 기록된다. The I / O request (2) transferred to the device driver 115 is converted into a command (3) of the host interface and transferred to the storage device 150. The write data transferred through the write command is stored in the storage device 150 And is written to the write buffer 153 which is a volatile memory.

쓰기 버퍼(153)의 데이터는 저장 장치 컨트롤러(151)에 의해 저장 매체(155)에 영속화되는데, 호스트 시스템의 I/O 스케줄러의 경우와 마찬가지로, 영속화 요청(④)은 저장 장치(150) 내부의 정책에 의해 서로 합쳐지거나 순서가 뒤바뀔 수 있다. 도 1에서 각각의 단계는 하위 단계로 요청을 전달하고, 하위 단계로부터의 응답들(⑤, ⑥, ⑦, ⑧)을 통해 요청의 완료 여부를 알 수 있다. The data in the write buffer 153 is persistent to the storage medium 155 by the storage controller 151. As in the case of the I / O scheduler of the host system, the persistent request (4) They can be merged or reversed in order by policy. In FIG. 1, each step conveys the request to the lower level, and the completion of the request can be known through the responses (⑤, ⑥, ⑦, ⑧) from the lower level.

이러한 파일 시스템의 쓰기 요청에 대한 처리는 호스트 시스템(110)의 버퍼 캐시(113)와 저장 장치(150)의 쓰기 버퍼(153)의 사용과 관련하여 크게 동기적 저장 장치 쓰기 방법 및 비동기적 저장 장치 쓰기 방법의 두 가지로 나뉠 수 있다. The processing of such a file system write request is largely accomplished in synchronous with the use of the buffer cache 113 of the host system 110 and the write buffer 153 of the storage device 150, And writing methods.

이하에서, 동기적 저장 장치 쓰기 방법은 도 2를 통해, 비동기적 저장 장치 쓰기 방법은 도 3을 통해 설명한다.
Hereinafter, the synchronous storage write method will be described with reference to FIG. 2, and the asynchronous storage write method will be described with reference to FIG.

도 2는 파일 시스템의 쓰기 요청이 저장 장치에서 동기적으로 수행되는 과정을 나타낸 도면이다. 2 is a diagram illustrating a process in which a write request of a file system is synchronously performed in a storage device.

도 2를 참조하면, 동기적 저장 장치 쓰기 방법에 따라 파일 시스템의 요청부터 저장 매체로의 접근까지, 그리고 저장 매체의 영속화 완료로부터 파일 시스템의 쓰기 완료까지의 과정이 직렬화되어 봉쇄적으로 일어나는 것을 볼 수 있다. Referring to FIG. 2, according to the synchronous storage device writing method, it is seen that the process from the request of the file system to the access to the storage medium, and the process from the completion of the persistence of the storage medium to the completion of the writing of the file system are serialized .

이 경우, 파일 시스템의 입장에서는 쓰기 요청에 대한 쓰기 완료 응답을 받게 되기까지 걸리는 시간(response time)이 무척 길어진다. 뿐만 아니라, 동기적 저장 장치 쓰기 방법에서는 하나의 쓰기 요청이 완료되기 전까지는 다른 쓰기 요청을 처리할 수 없기 때문에 매우 비효율적이다.
In this case, the response time for receiving the write completion response to the write request becomes very long in the file system. In addition, the synchronous storage write method is very inefficient because one write request can not be processed until another write request is completed.

도 3은 파일 시스템의 쓰기 요청이 저장 장치에서 비동기적으로 수행되는 과정을 나타낸 도면이다. 3 is a diagram illustrating a process in which a write request of a file system is performed asynchronously in a storage device.

도 3을 참조하면, 비동기적 저장 장치 쓰기 방법에 따른 처리 과정을 살펴볼 수 있다. Referring to FIG. 3, a process according to the asynchronous storage device writing method can be examined.

비동기적 저장 장치 쓰기 방법에 따르면, 버퍼 캐시는 쓰기 요청(①)을 받아들이는 즉시 파일 시스템에 쓰기 완료 응답(⑧)을 보낸다. 이에 따라, 파일 시스템은 실제 쓰기 요청된 데이터가 저장 장치에 보내지지 않았음에도 이를 쓰기 완료된 것으로 받아들이고, 다음 쓰기 요청을 버퍼 캐시에 전달할 수 있다. According to the asynchronous storage write method, the buffer cache sends a write complete response (8) to the file system immediately after receiving the write request (1). Accordingly, the file system can accept the write-completed data even though the actual write-requested data is not sent to the storage device, and can forward the next write request to the buffer cache.

호스트 시스템의 버퍼 캐시에 쌓여진 쓰기 데이터는 I/O 스케줄러에 의해 합쳐지거나(merge), 순서가 뒤바뀌어(reorder) I/O 요청(②)으로 변환되고, 호스트 인터페이스의 커맨드 형태(③)로 저장 장치에 전달된다. The write data accumulated in the buffer cache of the host system is merged or reordered by the I / O scheduler, converted into an I / O request (2), and stored in the form of a command (3) of the host interface Device.

저장 장치는 쓰기 데이터를 저장 장치 내의 쓰기 버퍼에 저장한 후 쓰기 커맨드 완료(⑥)를 응답하여 호스트 시스템에 쓰기 I/O가 끝났음(⑦)을 알린다. 이후 저장 장치 컨트롤러는 저장 장치 내의 쓰기 버퍼 상의 데이터를 저장 매체에 영속화시킨다(④, ⑤).The storage device stores the write data in the write buffer in the storage device, then notifies the host system of the completion of the write I / O (7) in response to the completion of the write command (6). The storage controller then makes the data on the write buffer in the storage device persistent to the storage medium (4) and (5).

이와 같은 비동기적 저장 장치 쓰기 방법에서는 쓰기 버퍼의 사용을 통하여 상위 계층에서 보다 짧은 응답 시간으로 요청을 완료할 수 있게 되어 보다 좋은 처리 성능을 얻을 수 있다. 또한, 호스트 시스템과 저장 장치 내에 쓰기 버퍼를 사용함으로써, 파일 시스템의 쓰기 요청과 호스트 인터페이스의 쓰기 커맨드, 저장 장치의 데이터 영속화 과정이 각기 독립적으로 진행될 수 있어서 전체 저장 장치 시스템을 보다 효율적으로 이용할 수 있다. In such an asynchronous storage write method, it is possible to complete a request with a shorter response time in an upper layer through use of a write buffer, thereby obtaining better processing performance. Also, by using the write buffer in the host system and the storage device, the write request of the file system, the write command of the host interface, and the data persistence process of the storage device can be independently performed, and the entire storage system can be used more efficiently .

하지만, 상위 계층에 완료 응답을 함에 있어서 실제로 작업이 끝나지 않았음에도 끝났다고 알리므로 전원 공급 중단과 같은 크래시 상황에서 문제가 생길 수 있다. 더구나 휘발성의 쓰기 버퍼를 사용하므로 데이터가 소실될 수 있는 문제가 발생한다. 그러므로, 비동기적 저장 장치 쓰기 방법이라 할지라도 독립적인 과정들 사이에 동기화 작업이 반드시 필요하다.
However, when the completion response to the upper layer is notified that the operation is not finished, the problem may occur in a crash situation such as power supply interruption. Furthermore, since the volatile write buffer is used, there is a problem that data may be lost. Therefore, even in the case of an asynchronous storage write method, synchronization between independent processes is indispensable.

일반적인 저장 장치의 인터페이스 기술에 따른 제약을 요약하면 다음과 같다.The limitations of the general storage device interface technology are summarized as follows.

먼저 호스트 시스템의 요청을 인터페이스 커맨드 단위로 처리하고 있기 때문에, 데이터 전송 및 처리가 커맨드 단위로 이루어진다. 때문에 파일 시스템의 쓰기 요청에 대해 다수의 데이터가 저장 매체에 영속화되는 형상(configuration)을 효율적으로 제어할 수 없다. 따라서, 호스트 시스템에서의 부가적인 동기화를 필요로 하여 전체 쓰기 성능을 저하시킨다.First, since the request of the host system is processed in units of interface commands, data transmission and processing are performed on a command-by-command basis. Therefore, it is impossible to efficiently control a configuration in which a plurality of data is persistent to a storage medium in response to a write request of the file system. Thus, additional synchronization in the host system is required and the overall write performance is degraded.

다음으로 쓰기 명령의 경우, 인터페이스를 통하여 호스트 시스템으로부터 저장 장치로의 데이터 전송 순서를 직접적으로 제어할 수 있지만, 데이터가 저장 매체에 영속화되는 순서를 제어할 수 있는 방법을 제공하지 못한다. 때문에 영속화의 순서 제어를 위해 호스트 시스템이 주체가 된 동기화를 수행하고 있어, 성능을 저하시키게 된다.Next, in the case of the write command, although the order of data transmission from the host system to the storage device through the interface can be directly controlled, a method of controlling the order in which data is persistent to the storage medium can not be provided. Therefore, in order to control the order of persistence, the host system performs the synchronization which is the subject, which degrades the performance.

따라서, 일 실시예에서는 다수의 쓰기 요청에 대해 파일 시스템의 영속화 의도를 정확하게 전달할 수 있도록, 쓰기 데이터를 커맨드 단위 혹은 커맨드의 그룹 단위로 나누어 각 단위에 구별 가능한 식별자(object id)를 부여하여 영속화 단위(materialization unit)를 정의한다. 그리고, 쓰기 데이터가 영속화되는 순서를 저장 장치에 직접적으로 전달할 수 있도록 하여, 모든 요청을 비동기적으로 수행하면서도 영속화 단위 간의 영속화 순서를 제어할 수 있도록 한다. Accordingly, in one embodiment, in order to correctly transmit the persistence intention of the file system to a plurality of write requests, the write data is divided into a command unit or a command group group, and an object id distinguishable from each unit is given, (materialization unit). Also, it is possible to directly transmit the order in which the write data is persistent to the storage device so that the persistence order among the persistence units can be controlled while performing all requests asynchronously.

이 밖에도, 일 실시예에서는 각 영속화 단위에 속하는 쓰기 데이터가 저장 매체에 쓰여지는 데에 있어 원자성(atomicity)을 가지고 영속화될 수 있도록 한다. In addition, in one embodiment, write data belonging to each persistent unit is made persistent with atomicity in writing to the storage medium.

또한, 일 실시예에서는 일반적인 저장 장치의 인터페이스와의 호환성을 유지하기 위해 커맨드 단위의 요청과, 요청 완료 응답의 방법은 그대로 유지하되, 영속화 단위의 정의와 영속화 순서에 대한 제어 요청, 영속화 원자성에 대한 제어 요청을 커맨드에 부가적인 정보를 추가하여 표현할 수 있다.
In addition, in one embodiment, in order to maintain compatibility with a general storage device interface, a command-based request and a request completion response method are maintained as they are, while definition of a persistence unit and a control request for a persistence order, The control request can be expressed by adding additional information to the command.

도 4는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 나타낸 플로우차트이다. 4 is a flowchart illustrating a method for controlling persistence in a storage medium according to one embodiment.

도 4를 참조하면, 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 호스트 시스템은 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성할 수 있다(410).Referring to FIG. 4, a host system for controlling persistence in a storage medium according to an exemplary embodiment may generate 410 a plurality of write commands for writing data to a storage medium.

호스트 시스템은 복수의 쓰기 커맨드들 각각에 오브젝트 아이디를 할당할 수 있다(420). 이때, 호스트 시스템은 복수의 쓰기 커맨드들 중 하나의 그룹에 포함되는 적어도 하나의 쓰기 커맨드에 동일한 오브젝트 아이디를 할당할 수 있다. The host system may assign an object ID to each of a plurality of write commands (420). At this time, the host system may assign the same object ID to at least one write command included in one of the plurality of write commands.

호스트 시스템은 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 저장 매체에서 복수의 쓰기 커맨드들 사이의 영속화되는 순서를 나타내는 정보를 생성할 수 있다(430).The host system may generate information indicating an order of persistence between a plurality of write commands in the storage medium using an object ID assigned to each of the plurality of write commands (430).

여기서, 영속화 순서를 나타내는 정보는 복수의 쓰기 커맨드들 중 저장 매체에서 해당 쓰기 커맨드에 대하여 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드의 개수 및 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드에 할당된 오브젝트 아이디를 포함할 수 있다. 영속화 순서를 나타내는 정보를 생성하는 방법에 대하여는 도 6을 참조하여 상세히 설명한다. Here, the information indicating the persistence order may include at least one of the plurality of write commands, the number of at least one write command to be persistently prioritized with respect to the write command in the storage medium, and the object ID assigned to at least one write command . ≪ / RTI > A method of generating information indicating the persistence order will be described in detail with reference to FIG.

호스트 시스템은 복수의 쓰기 커맨드들 중 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들에 대하여 영속화 원자성을 나타내는 정보를 부가할 수 있다(440). 이때, 영속화 순서를 나타내는 정보 또는 영속화 원자성을 나타내는 정보는 예를 들어, 도 5 혹은 도 6과 같이 해당 커맨드의 자료 구조에 부가되거나, 쓰기 데이터 영역 이외의 스페어 데이터 영역에 부가될 수 있으며, 독립된 커맨드의 형태로 정의될 수도 있다. The host system may add information indicating the persistence atomicity to the write commands among the plurality of write commands that must be made persistent in the storage medium (440). At this time, the information indicating the persistence order or the information indicating the persistence atomicity may be added to the data structure of the command or appended to the spare data area other than the write data area, for example, as shown in FIG. 5 or 6, It can also be defined in the form of a command.

저장 장치는 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단할 수 있다(450). 저장 장치는 복수의 쓰기 커맨드들 사이의 영속화 순서를 판단하기 위해 해당 쓰기 커맨드의 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는지 여부를 판단할 수 있다. 또한, 저장 장치는 해당 쓰기 커맨드의 오브젝트 아이디에 대응하는 영속화 원자성을 나타내는 정보가 있는지 여부를 기초로 영속화 원자성을 판단할 수 있다. The storage device may determine the persistence order or persistence atomicity among the plurality of write commands using the object ID allocated to each of the plurality of write commands. The storage device can determine whether there is information indicating a persistence order corresponding to the object ID of the write command in order to judge the persistence order between the plurality of write commands. Further, the storage device can determine the persistence atomicity based on whether or not there is information indicating persistent atomicity corresponding to the object ID of the write command.

저장 장치는 판단 결과에 기초하여 복수의 쓰기 커맨드들을 처리할 수 있다(460). 450에서 해당 쓰기 커맨드의 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는 경우, 저장 장치는 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보에 따라 적어도 하나의 쓰기 커맨드를 우선적으로 저장 매체에 영속화할 수 있다. 또한, 450에서 오브젝트 아이디에 대응하는 영속화 원자성을 나타내는 정보가 있다고 판단되면, 저장 장치는 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대하여 일체로 영속화를 진행할 수 있다. The storage device may process a plurality of write commands based on the determination result (460). 450 has information indicating the persistence order corresponding to the object ID of the write command, the storage apparatus can persist the at least one write command to the storage medium preferentially according to the information indicating the persistence order corresponding to the object ID . Further, if it is determined at 450 that there is information indicating persistent atomicity corresponding to the object ID, the storage device can perform persistence integrally with the write commands appended with information indicating persistent atomicity.

하지만, 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대한 영속화의 진행 중에 상술한 크래시 상황 등으로 인하여 영속화가 중단된 경우, 저장 장치는 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만든 후, 다시 영속화를 수행할 수 있다.
However, if the persistence is stopped due to the above-mentioned crash state or the like during the persistence of write commands with information indicating persistent atomicity, the storage device is included in the write commands to which persistent atomicity information is added All information can be made non-persistent, and persistence can be performed again.

도 5는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 쓰기 커맨드에 대하여 영속화 단위를 표현하는 방법을 나타낸 도면이다.5 is a diagram illustrating a method of representing a persistence unit for a write command according to a method for controlling persistence in a storage medium according to an exemplary embodiment.

도 5를 참조하면, 510은 기존의 인터페이스 방법을 따르는 커맨드 단위의 쓰기 요청으로서, 호스트 시스템이 생성한 W0, W1, .. , W9의 쓰기 커맨드를 저장 장치에 요청하는 방법이다. 이때, 기존의 인터페이스 방법으로는 저장 장치에 영속화 단위에 대한 정보를 전달할 수 없으므로, 호스트 시스템은 즉각적 영속화 방법을 사용하여 쓰기 데이터의 영속화를 간접적으로 제어할 수 밖에 없다. 도 530은 510과 같이 전달되는 쓰기 커맨드에 오브젝트 ID를 부여하여 영속화 형상을 추상화 하여 표현한 것으로, 이 방법에 따르면 550과 같은 개념적인 영속화 형상을 나타낼 수 있다. 이때, 영속화 단위는 하나의 쓰기 커맨드(write command), 혹은 다수의 쓰기 커맨드로 이루어진 커맨드 그룹(group of write commands)이 될 수 있다. Referring to FIG. 5, 510 is a command-based write request according to the existing interface method, and requests write commands of W 0 , W 1 , .., W 9 generated by the host system to the storage device. In this case, since the conventional interface method can not transmit the information about the persistence unit to the storage device, the host system can indirectly control the persistence of the write data using the immediate persistence method. 530 is an abstract representation of a persistent shape by assigning an object ID to a write command to be transmitted as shown at 510. According to this method, a conceptual persistent shape such as 550 can be represented. At this time, the persistence unit may be a write command or a group of write commands consisting of a plurality of write commands.

오브젝트 ID는 명령어 대기열(command queuing) 기법에서 사용되는 ID 태그와는 다른 독립적인 것으로, 영속화 순서 제어 및 영속화 원자성 제어가 필요한 데이터 단위에 대해 부여할 수 있다. 오브젝트 ID의 부여 시에는 저장 장치의 쓰기 버퍼 내에 존재하는 데이터 오브젝트에 대해서도 영속화 순서를 제어할 수 있도록 충분히 넓은 ID 공간을 갖도록 할 수 있다. The object ID is independent of the ID tag used in the command queuing scheme, and can be assigned to a data unit requiring persistence control and persistence atomicity control. At the time of providing the object ID, the data object existing in the write buffer of the storage device can have a sufficiently wide ID space so that the persistence order can be controlled.

영속화 단위는 오브젝트 ID와 그룹 시작(Group Start; GS), 그룹 끝(Group End; GE) 정보를 530과 같이 커맨드에 대한 부가 정보의 형태로 표현함으로써 나타낼 수 있다. 하나의 쓰기 커맨드를 영속화 단위로 표현하는 것은 530의 W8과 같이 커맨드에 오브젝트 ID를 부여함으로써 이루어질 수 있다.The persistence unit can be represented by representing the object ID, the group start (GS), and the group end (GE) information in the form of additional information for the command, such as 530. [ To represent a single write command to the persistent unit may be formed by giving the object ID of the command as a 530 W 8.

커맨드 그룹을 영속화 단위로 표현하기 위해서는 우선 쓰기 커맨드의 집합에 대해 그룹의 시작과 끝을 표시해 줄 수 있다. 즉, 그룹을 이루는 커맨드 중 가장 선행되는 것에 “그룹 시작(GS)”을 설정하고, 가장 나중에 오는 커맨드에 “그룹 끝(GE)”을 설정할 수 있다. 그룹의 시작과 끝 사이에 도착되는 커맨드 중 동일한 오브젝트 ID를 가지는 커맨드들은 같은 영속화 단위에 속할 수 있다.To represent a command group in persistence units, you can first mark the beginning and end of a group for a set of write commands. That is, it is possible to set "group start (GS)" to the earliest among the groups of commands and to set "group end (GE)" to the latest command. Commands having the same object ID among the commands arriving between the beginning and the end of the group can belong to the same persistence unit.

일 실시예에서는 510과 같이 호스트 인터페이스를 통해 도착된 W0, W1, W2, ..., W9의 쓰기 커맨드들에 530과 같이 오브젝트 ID와 “그룹 시작”, “그룹 끝”의 정보를 부가하여 쓰기 커맨드들을 550과 같은 세 개의 논리적인 영속화 단위를 표현할 수 있다. 일 실시예에서는 오브젝트 ID를 사용함으로써 연속적으로 도착되는 커맨드가 아니라 할지라도 같은 커맨드 그룹에 속하도록 표현할 수 있다.
In one embodiment, write commands for W 0 , W 1 , W 2 , ..., W 9 received via the host interface, such as 510, include object IDs and information of "group start" To represent three logical persistence units, such as 550, write commands. In one embodiment, by using the object ID, even if the command is not continuously received, it can be represented to belong to the same command group.

도 6은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 영속화 순서 및 영속화 원자성 제어 요청을 표현하는 방법을 나타낸 도면이다. 6 is a diagram illustrating a method for expressing a persistence order and a persistence atomicity control request according to a method of controlling persistence in a storage medium according to an embodiment.

도 6을 참조하면, 도 5와 같은 과정을 통해 정의된 영속화 단위에 영속화 순서 의존성(materialization ordering dependency)을 표현하여 데이터 영속화의 순서를 제어할 수 있다. Referring to FIG. 6, it is possible to control the order of data persistence by expressing a materialization ordering dependency in a persistence unit defined through the process as shown in FIG.

여기서, '영속화 순서 의존성'이란, 현재의 영속화 단위와, 현재의 영속화 단위에 앞서 반드시 먼저 영속화되어야만 하는 선행 영속화 단위와의 관계를 말한다. 호스트 시스템은 현재 영속화 단위에 대하여 영속화 순서 의존성을 가지는 영속화 단위의 오브젝트 ID(610)를 650과 같이 영속화 단위의 첫 번째 커맨드의 자료 구조에 표현하여 저장 장치에 전달할 수 있다. 이에 따라, 저장 장치는 직접적으로 표현된 순서 의존성을 이용하여 호스트 시스템의 의도를 거스르지 않으면서도 가장 효율적으로 데이터를 영속화 시킬 수 있다.Here, 'persistence order dependency' refers to the relationship between the current persistence unit and the preceding persistence unit that must be persisted before the current persistence unit. The host system can express the object ID 610 of the persistence unit having the persistence order dependency for the current persistence unit in the data structure of the first command of the persistence unit as 650 and transmit it to the storage device. Thus, the storage device can use the directly expressed order dependency to perpetuate the data most efficiently without violating the intention of the host system.

또한, 호스트 시스템은 데이터 영속화 순서성 대한 제어 요청과는 별개로, 각 영속화 단위에 대해 원자성(atomicity)을 가지고 영속화해 줄 것을 저장 장치에게 요청할 수 있다. 여기서, '영속화 원자성'이란 영속화 단위 내의 모든 쓰기 데이터가 저장 매체에 "all or nothing"으로 영속화되는 것을 말한다. In addition, the host system may request the storage device to persist for each persistence unit with atomicity, independent of the control request for data persistence order. Here, 'persistent atomicity' means that all write data in the persistent unit is persistent to the storage medium as "all or nothing".

따라서, 만약 영속화가 진행되는 도중 크래시 상황이 발생하여 원자성이 요청된 영속화 단위 전체에 대한 영속화가 완료되지 않았을 경우, 저장 장치는 해당 영속화 단위의 데이터를 모두 영속화되지 않은 상태로 만들어줄 수 있다. Therefore, if the persistence of the entire persistence unit requested by the atomicity is not completed due to the occurrence of a crash state during the persistence, the storage apparatus can make all data of the persistence unit not persistent.

이러한 영속화 원자성 요청(630)도 순서 의존성 정보(650)과 마찬가지로 각 영속화 단위의 첫 번째 커맨드의 자료 구조에 표현할 수 있다. This persistence atomicity request 630 can be expressed in the data structure of the first command of each persistence unit as well as the order dependency information 650.

영속화 원자성이 요청된 커맨드 그룹의 경우, 전체 그룹이 원자적으로 영속화되기만 하면 되고, 그룹 내 커맨드들 간의 영속화 순서는 무의미하다.In the case of a command group for which persistence atomicity is requested, the entire group only needs to be atomically persisted, and the order of persistence among the commands in the group is meaningless.

일 실시예에서는 기존의 호스트 인터페이스 기술과의 호환성(backwards compatibility)을 제공하며, 최소한의 변경으로도 영속화 형상 제어를 지원할 수 있도록, 기존과 같이 커맨드 단위(command-based)의 요청/응답 방식은 그대로 유지한다. 여기서, 커맨드의 자료 구조에 610 내지 650과 같은 부가적인 정보를 추가함으로써 호스트 시스템에서 저장 장치의 저장 매체로의 쓰기 데이터가 영속화되는 형상을 제어할 수 있다. In one embodiment, the conventional command-based request / response scheme can be used to provide backwards compatibility with existing host interface technologies and to support persistent configuration control with minimal modification. . Here, by adding additional information such as 610 to 650 to the command data structure, it is possible to control the form in which the write data from the host system to the storage medium of the storage device is made persistent.

특히, 순서 의존성 정보(650)의 경우, 보다 일반적인 표현을 가능하게 하기 위하여, 의존성을 가지는 오브젝트의 개수(651)와 의존성을 가지는 해당 오브젝트 ID(653)를 가변 길이를 가지는 리스트의 형태로 표현할 수 있다. In particular, in order dependency information 650, the number 651 of objects having dependency and the corresponding object ID 653 having dependency can be expressed in the form of a list having a variable length in order to enable a more general expression have.

실시예에 따라서는 고정 개수의 의존성을 표현할 수 있는 배열의 형태, 혹은 비트 벡터(bit vector)를 사용하여 벡터의 각 비트가 유의미하게(bit-wise) 의존성을 가지는 오브젝트 ID를 가리키는 것과 같은 다양한 방식으로 순서 의존성을 표현할 수 있다. 하지만, 일 실시예에는 개념적으로 이해가 쉬운 리스트 형태로 예로 들어 설명한다. Depending on the embodiment, various types of arrangements can be used, such as a type of array that can represent a fixed number of dependencies, or a bit vector, to indicate an object ID where each bit of the vector has a bit-wise dependency Order dependency can be expressed by. However, one embodiment will be described by way of example in the form of a conceptually easy-to-understand list.

이 외에도, 실시예에 따라서 일 실시예와 같이 커맨드 자료 구조에 부가하여 표현하는 방식이 아닌 다른 방법으로 표현할 수 있다. 예를 들어, 오브젝트 ID(610), 영속화 그룹의 시작(613)/끝(616), 영속화 원자성 요청(630) 및 순서 의존성 정보(650) 등은 독립된 커맨드를 정의하여 영속화 형상 제어에 관한 정보를 표현하는 형태나, 쓰기 데이터의 대역 외 스페어 데이터 영역(out-of-band spare data area)에 표현하는 형태로 구현될 수도 있다. 아울러 스토리지 시스템에서 호스트 시스템과 저장 장치 시스템이 물리적으로 동일한 시스템에 존재하는 경우라 할지라도, 저장장치 시스템이 논리적으로 구분이 되는 환경에서 임의의 요청 전송을 통해 저장 매체에서의 영속화를 제어할 수 있도록 응용될 수도 있다.In addition to this, according to the embodiment, it can be expressed by a method other than the method of representing in addition to the command data structure as in the embodiment. For example, the object ID 610, the start / end 616 of the persistence group, the persistence request 630, and the order dependency information 650 define independent commands, Or in an out-of-band spare data area of the write data. In addition, even if the host system and the storage system are physically present in the same system in the storage system, the storage system can control the persistence in the storage medium through arbitrary request transmission in a logically distinct environment It may be applied.

이는 일반적인 하드디스크(HDD) 및 SSD와 같이 물리적으로 분리된 저장 장치가 SATA나 SAS와 같은 표준 인터페이스를 통해 연결된 구조가 아닌, 저장 장치와 호스트 시스템이 물리적으로 하나의 시스템(예를 들면 동일한 칩 내)에 존재하고, 저장 장치가 시스템 내부의 다양한 요청 전달 방식(예를 들면 function call이나 message 전송)을 통해 요청을 받는 경우까지도 포함되도록 하기 위함이다.
This is not a structure in which a physically separated storage device such as a general hard disk (HDD) and an SSD is connected via a standard interface such as SATA or SAS, but a storage device and a host system are physically connected to one system ), And even when the storage device receives a request through various request delivery methods (for example, function call or message transfer) inside the system.

도 7은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 일부 영속화 단위가 영속화 순서 및 영속화 원자성의 제어를 필요로 하는 경우의 표현 방법을 나타낸 도면이다. FIG. 7 is a diagram illustrating a method of representing a case where some persistence units require control of persistence order and persistence atomicity according to a method of controlling persistence in a storage medium according to an embodiment.

이하에서는, 일부의 영속화 단위 사이에서만 영속화 순서를 제어하는 방법을 살펴볼 수 있다.Hereinafter, a method of controlling the persistence order only between some persistence units can be examined.

상술한 바와 같이 일 실시예에서는 인터페이스 확장 기술의 부가 정보를 추가하여 일련의 쓰기 커맨드를 쓰기 커맨드 또는 쓰기 커맨드 그룹으로 구성되는 영속화 단위로 정의할 수 있다. 즉, 여기서 영속화 단위는 하나의 오브젝트 ID에 해당하는 커맨드(의 그룹)을 의미할 수 있다. As described above, in one embodiment, by adding the additional information of the interface extension technique, a series of write commands can be defined as a write command or a persistence unit composed of a write command group. That is, the persistence unit may mean (group of) commands corresponding to one object ID.

이에 따라, 하나의 커맨드로 이루어진 영속화 단위로는 오브젝트 ID ③, ④, ⑤, ⑥에 해당하는 커맨드들이 있고, 커맨드의 그룹으로 이루어진 영속화 단위로는 오브젝트 ID ①, ②, ⑦에 해당하는 커맨드의 그룹들이 있다. 이 중, 영속화 단위 ②와 ⑤는 원자성을 가지고 영속화 되도록 요청될 수 있다. 또한, 순서 의존성에 대한 정보가 부가된 영속화 단위는 ③, ⑤, ⑦ 일 수 있다.Accordingly, there are commands corresponding to object IDs 3, 4, 5, and 6 as a unit of persistence composed of one command, and a group of commands corresponding to object IDs 1, 2, . Among them, the persistence units (2) and (5) can be requested to be persistent with atomicity. In addition, the persistence unit to which information on the order dependency is added may be ③, ⑤, ⑦.

이 경우, 저장 장치로 전달되는 커맨드들은 도 7의 위쪽 도면과 같은 형태의 자료 구조로 표현될 수 있다. In this case, the commands to be transmitted to the storage device can be represented by a data structure of the same type as the upper diagram of FIG.

따라서, 이와 같은 형태의 자료 구조에 대해 저장 장치는 순서 의존성이 있는 영속화 단위 ③->①, ⑤->①, ⑤->③, ⑤->④, ⑦->②, ⑦->⑤ 에 대해서만 순서를 지켜 영속화하고, 나머지 ①-②, ①-④, ①-⑥, ②-③, ②-④, ②-⑤, ②-⑥, ③- ⑥, ④-⑥, ⑤-⑥ 사이에서는 순서에 무관하게 영속화 할 수 있다. 여기서,'③ ->①'은 '오브젝트 ID ①에 해당하는 커맨드가 반드시 오브젝트 ID ③에 해당하는 커맨드에 우선적으로 영속화되어야 함' 또는 '영속화 단위 ①이 영속화 단위 ③ 보다 반드시 먼저 영속화 되어야 함'을 나타낸다. Therefore, for this type of data structure, the storage device is only for the order dependency units ③-> ①, ⑤-> ①, ⑤-> ③, ⑤-> ④, ⑦-> ②, ⑦-> ⑤ Keep the order and keep it in order, and make the order in the order of ①-②, ①-④, ①-⑥, ②-③, ②-④, ②-⑤, ②-⑥, ③- ⑥, ④-⑥, It can be perpetuated irrelevantly. Here, '③ -> ①' means that the command corresponding to 'Object ID ① must be made persistent to the command corresponding to object ID ③' or 'Persistence unit ① must be persisted before persistence unit ③' .

또한, 각 영속화 단위는 선행 영속화 단위 중 닫혀있는 것(closed)에 대해서만 의존 관계를 가질 수 있다. 그리고, 아직 닫혀있지 않은 영속화 단위의 경우 아직 정의되지 않은 것으로 간주되어 의존 관계를 가질 수 없다. 도 7에서 W7이 쓰기 요청된 시점에서는 영속화 단위 ②는 아직 닫히지 않은 상태이다. 그러므로, 영속화 단위 ③, ④, ⑤, ⑥는 영속화 단위 ② 에 대해 의존 관계를 가질 수 없다.In addition, each persistence unit may have a dependency relationship only on the closed of the preceding persistence units. In the case of a persistence unit that has not yet been closed, it is regarded as undefined and can not have a dependency relationship. In FIG. 7, when W 7 is requested to be written, the persistence unit (2) is not yet closed. Therefore, the persistence units ③, ④, ⑤, and ⑥ can not depend on the persistence unit ②.

이와 같이 영속화 단위 간의 영속화 순서 제어 및 영속화 원자성에 따른 제어 결과는 도 7의 아래쪽 도면과 같이 표현될 수 있다. The control result according to persistence order control and persistence atomicity between persistence units can be expressed as shown in the lower drawing of FIG.

도 7의 아래쪽 도면에서 영속화 단위 ②, ⑤와 관련하여 굵게 표시된 원형은 이들이 일체로 영속화되어야 하는 원자성을 가짐을 나타낸다. 또한, 영속화 단위 간의 화살표는 해당 영속화 단위에 대하여 우선적으로 영속화되어야 하는 영속화 단위들의 관계를 나타낼 수 있다.
In the lower drawing of Fig. 7, circles indicated in bold with respect to the persistence units [2] and [5] indicate that they have atomicity which must be permanently fixed. Also, the arrow between the persistence units may indicate the relationship of the persistence units that should be persisted first over the persistence unit.

도 8은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 영속화 원자성의 제어만이 필요한 경우의 표현 방법을 나타낸 도면이다. 8 is a view illustrating a method of representing a case where only persistent atomicity control is required according to a method of controlling persistence in a storage medium according to an embodiment.

도 8을 참조하면, 각 영속화 단위들에 대한 순서 의존성 정보가 존재하지 않으므로, 정의된 영속화 단위 ①, ②, ③, ④, ⑤, ⑥, ⑦는 순서에 관계없이 영속화될 수 있다. 따라서, 저장 장치는 도 8의 아래 도면과 같이, 영속화 단위 ②와 ⑤가 원자적으로 영속화 될 것만을 보장해주면 된다.
Referring to FIG. 8, since there is no order dependency information for each persistence unit, the defined persistence units 1, 2, 3, 4, 5, 6, 7 can be persisted regardless of the order. Therefore, the storage device only needs to ensure that the persistence units 2 and 5 are atomically persistent, as shown in the lower diagram of FIG.

도 9는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 모든 영속화 단위가 영속화 순서의 제어를 필요로 하는 경우의 표현 방법을 나타낸 도면이다. FIG. 9 is a diagram illustrating a method of representing a case where all persistence units need to control the persistence order according to a method of controlling persistence in a storage medium according to an embodiment.

도 9를 참조하면, 모든 영속화 단위가 영속화 순서 의존성을 가지는 것을 볼 수 있다. 이때, 각 영속화 단위는 선행 영속화 단위에 대해 순차적으로 순서 의존성을 가지고 있다. 그러므로, 모든 영속화 단위는 ⑩->③->②->⑤->④->⑧->⑨->①의 순서 의존성을 지켜, 입력된 순서대로 영속화된다. 이때, 하나의 커맨드 그룹을 이루고 있는 커맨드 W6, W7, W8 들(즉, 영속화 단위 ③에 해당하는 커맨드들)은 서로 간에 순서에 무관하게 영속화될 수 있으며, 단지 그룹이 원자적으로 영속화되기만 하면 된다. Referring to FIG. 9, it can be seen that all persistence units have a persistence order dependency. In this case, each persistence unit has a sequential dependency on the preceding persistence unit. Therefore, all persistence units are persisted in the order in which they are entered, observing the order dependency of ⑩->③->②->⑤->④->⑧->⑨-> ①. At this time, the commands W 6 , W 7 , and W 8 (that is, commands corresponding to the persistence unit 3) constituting one command group can be made persistent regardless of order, Only.

이렇게 전체 데이터에 대하여 영속화의 순서를 강제하는 경우, 저장 장치의 저장 매체 특성에 따라서는 성능 저하가 있을 수도 있다. 예를 들어, 하드 디스크의 경우 기계적인 동작으로 인한 특징으로 순서가 강제될 경우 성능 저하가 극심하지만, SSD(Solid State Disk)의 경우는 영속화 순서가 강제되어도 별다른 성능 저하 없이 순서 제어 요청을 이루어 낼 수 있다.
When the order of persistence is enforced for the entire data in this way, performance may be degraded depending on the characteristics of the storage medium of the storage device. For example, in the case of a hard disk, the performance is degraded if the order is enforced due to the characteristic of the mechanical operation. However, in the case of the solid state disk (SSD), the order control request is performed without any performance degradation even if the persistence order is enforced .

도 10은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 모든 영속화 단위에 대한 영속화가 완료되었음을 표현하는 방법을 나타낸 도면이다.FIG. 10 is a diagram illustrating a method for representing persistence of all persistence units according to a method of controlling persistence in a storage medium according to an exemplary embodiment of the present invention. Referring to FIG.

호스트 시스템으로부터 전달된 영속화 원자성 제어 요청 혹은 영속화 순서 제어 요청 등과 같은 영속화 형상 제어 요청을 지키며 영속화를 진행하면, 어떤 시점에서 크래시 상황이 발생하여도 저장 장치는 파일 시스템에게 항상 일관된 영속화 형상을 제공할 수 있다. If a persistent configuration control request such as a persistent atomic control request or a persistent sequential control request transmitted from a host system is persisted and persisted, the storage device always provides a consistent persistent configuration to the file system even if a crash situation occurs .

따라서, 파일 시스템은 언제든 일관된 상태로 복구할 수 있을 것이므로, 영속화 형상 제어 요청의 결과를 반드시 호스트 시스템에 알려줄 필요는 없다. 단지, 영속화되는 시점은 조금 늦춰질 뿐이지만, 저장 장치는 호스트 시스템이 의도한 대로 영속화 과정을 수행할 것이기 때문이다.Therefore, it is not necessary to notify the host system of the result of the persistent configuration control request, since the file system will always be able to recover to a consistent state. Just because the point of persistence is only slightly delayed, the storage device will perform the persistence process as intended by the host system.

하지만, 만약 호스트 시스템이 저장 장치로부터 영속화 형상 제어의 응답을 받아보기를 원하는 경우, 저장 장치는 도 10과 같은 형태로 커맨드 완료 응답의 자료 구조에 영속화 완료 정보(1010)를 부가하여 호스트 시스템에 응답할 수 있다. 이 경우, 커맨드에 영속화 의존성 정보를 리스트의 형태로 보냈던 것과 마찬가지로 영속화 의존성을 가지는 오브젝트의 개수(1011)와 의존성을 가지는 해당 오브젝트 ID(1013)를 여러 가지 형태로 표현할 수 있다. 원자성 요청이 있었던 영속화 단위에 대한 영속화 완료는 모든 데이터가 원자적으로 영속화 되었음을 의미할 수 있다. However, if the host system desires to receive the response of the persistent configuration control from the storage device, the storage device adds the persistent completion information 1010 to the data structure of the command completion response in the form of FIG. 10, can do. In this case, as in the case where persistence dependency information is sent to the command in the form of a list, the number of objects having persistence dependency 1011 and the corresponding object ID 1013 having dependency can be expressed in various forms. Persistence completion on a persistence unit that has an atomic request can mean that all data is atomically persistent.

이하의 도 11 및 도 12에서는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따른 인터페이스 확장 기술을 설명한다. 11 and 12, an interface extension technique according to a method of controlling persistence in a storage medium according to an embodiment will be described.

이하에서 설명하는 인터페이스 확장 기술은 현재 PC나 노트북과 같은 일반 사용자를 위한 컴퓨터 시스템에서 널리 사용되고 있는 Serial ATA(SATA) 인터페이스 규약을 대상으로 한 것이다. 보다 구체적으로, Serial ATA의 커맨드 자료 구조를 확장하여, 영속화 단위를 정의할 수 있고, 영속화 단위의 원자성 요청과 영속화 단위 간 영속화 순서 제어 요청을 표현할 수 있다.
The interface extension technology described below is targeted at the Serial ATA (SATA) interface protocol widely used in computer systems for general users such as PCs and notebooks. More specifically, the command data structure of Serial ATA can be extended to define a persistence unit, and a persistence order control request between a persistence unit request and a persistence unit can be expressed.

도 11은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 Serial ATA(SATA) 인터페이스 규약의 Non-NCQ 커맨드에 적용한 결과를 나타낸 도면이다. 11 is a diagram illustrating a result of applying a method of controlling persistence in a storage medium according to an embodiment to a Non-NCQ command of a Serial ATA (SATA) interface protocol.

도 11을 참조하면, SATA의 명령어 대기열 기법(NCQ, native command queuing)을 사용하여 기존 인터페이스에서 사용하지 않는 4번 dword(1110)를 활용하여 오브젝트 ID와 그룹 시작 비트(GS)와 그룹 끝 비트(GE), 그리고 영속화 원자성 요청 비트(atomicity)를 표현할 수 있다. Referring to FIG. 11, an object ID, a group start bit GS, and a group end bit (GS) are generated using a fourth dword 1110 which is not used in an existing interface by using SATA command command queuing (NCQ) GE), and persistent atomicity request bits (atomicity).

영속화 순서 의존성의 경우 가변의 길이를 가질 수 있는데, 순서 의존성이 있는 영속화 단위의 개수를 1130과 같이 4번 dword의 "# of dependencies" 필드에 적어주고, 실제 의존성이 있는 오브젝트 ID를 나열할 수 있다. For persistence order dependencies, you can have a varying length. You can list the number of persistent units with order dependencies in the # of dependencies field of # 4 dword, as in 1130, and list the object IDs with actual dependencies .

그리고, 순서 의존성의 길이에 따라 커맨드의 자료 구조 길이를 늘려 표현할 수 있도록 5번 dword를 확장할 수 있다. 만약, 커맨드들 간에 순서 의존성이 없고, 원자성 요청이 없는 경우라면, 해당 필드들을 ‘0’으로 설정해주고, 오브젝트 ID 필드를 비워놓음으로써 기존 인터페이스 기술(1110)과 동일하게 사용할 수 있다.
It is also possible to extend the dword 5 so that the data structure length of the command is increased according to the length of the order dependency. If there is no order dependency between the commands and there is no atomic request, the fields can be used in the same manner as the existing interface description 1110 by setting the corresponding fields to '0' and leaving the object ID field blank.

도 12는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 Serial ATA(SATA) 인터페이스 규약의 NCQ 커맨드에 적용한 결과를 나타낸 도면이다. 12 is a diagram illustrating a result of applying a method of controlling persistence in a storage medium according to an embodiment to an NCQ command of a Serial ATA (SATA) interface protocol.

도 12를 참조하면, Serial ATA 인터페이스 규약의 경우, 명령어 대기열 기법을 사용하는 경우에 커맨드의 자료 구조에서 필드들의 배치가 도 11의 Non-NCQ 커맨드와 다르다. 그렇지만 일 실시예에 따른 인터페이스 확장 기술은 NCQ 커맨드에서도 Non-NCQ 커맨드의 경우와 동일하게 적용할 수 있다. Referring to FIG. 12, in the case of the Serial ATA interface protocol, the arrangement of fields in the data structure of the command differs from the Non-NCQ command of FIG. 11 when the command queue technique is used. However, the interface extension technique according to one embodiment can be applied to the NCQ command in the same way as in the case of the Non-NCQ command.

즉, 사용하지 않았던 4번 dword(1210)를 활용하여 부가적인 정보를 표현할 수 있고, 순서 의존성을 더 많이 표현해야 하는 경우 1230과 같이 커맨드 자료 구조의 길이를 늘릴 수 있다. That is, additional information can be expressed using the fourth dword (1210) which has not been used, and the length of the command data structure can be increased as in 1230 when the order dependency is to be expressed more.

NCQ 커맨드에는 호스트 시스템으로부터 저장 장치로 동시에 요청되는 커맨드들 간의 구분을 위해 ID Tag 필드가 포함되어 있다. 도 12에서 영속화를 위한 오브젝트 ID는 NCQ 기법을 위한 ID Tag (dword 3의 [4:0] 비트) 필드와는 별개로 1230의 Object id 필드와 같이 주어질 수 있으며, 충분히 넓은 ID 공간을 활용할 수 있도록 확장하였다.
The NCQ command includes an ID Tag field for distinguishing between commands simultaneously requested from the host system to the storage device. In FIG. 12, the object ID for persistence can be given as an Object id field of 1230 independent of the ID Tag ([4: 0] bits of dword 3) field for the NCQ scheme, Respectively.

도 13은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 Serial ATA(SATA) 인터페이스 규약에 적용하여 영속화 완료 응답을 제공하는 방법을 나타낸 도면이다. FIG. 13 is a diagram illustrating a method of applying a method of controlling persistence in a storage medium according to an embodiment to a Serial ATA (SATA) interface protocol to provide a persistent completion response.

앞서 설명한 것처럼 저장 장치로부터 호스트 시스템으로 향하는 영속화 완료 응답은 일반적인 경우 불필요하다. 하지만, 호스트 시스템이 영속화 완료 응답을 받기를 원하는 경우, 도 13과 같은 자료 구조를 이용하여 저장 장치로부터 영속화 완료를 응답 받을 수 있다.As described above, the persistent completion response from the storage device to the host system is generally unnecessary. However, if the host system desires to receive a persistent completion response, it can receive a persistent completion response from the storage device using the data structure shown in FIG.

도 13을 참조하면, 1310과 같이 Non-NCQ 커맨드 완료 응답에 영속화 완료 응답을 포함하여 전달하는 경우와 1330과 같이 NCQ 커맨드 완료 응답에 영속화 완료 응답을 포함하여 전달하는 경우를 볼 수 있다. Referring to FIG. 13, a case where a non-NCQ command completion response is transmitted including a persistence completion response as in 1310 and a case where a completion response is included in a NCQ command completion response as shown in 1330 can be seen.

일 실시예에서는 기존의 커맨드 완료 응답의 자료 구조에 영속화 완료 응답을 부가하여 사용하였지만, 커맨드 완료 응답과 영속화 완료 응답은 서로 독립적으로 사용할 수 있다. 예를 들어, 완료된 커맨드가 없고 영속화 완료만을 응답하고자 하는 경우, 1310에서 dword 0,1,2,3, 혹은 1330에서 dword 0,1을 의미를 갖지 않는 값으로 채워서 전송할 수 있다.
In one embodiment, the persistence completion response is added to the data structure of the existing command completion response, but the command completion response and the persistence completion response can be used independently of each other. For example, if there is no completed command and only persistent completion is desired to be answered, dword 0,1, dword 0,1 in dword 0, 1, 2, 3, or 1330 may be filled with a meaningless value at 1310.

도 14는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템의 블록도이다. 14 is a block diagram of a computer system for controlling persistence in a storage medium according to one embodiment.

도 14를 참조하면, 일 실시예에 따른 컴퓨터 시스템(1400)은 호스트 시스템(1410) 및 저장 장치(1430)를 포함할 수 있다. 14, a computer system 1400 in accordance with one embodiment may include a host system 1410 and a storage device 1430.

호스트 시스템(1410)은 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드 및 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 저장 매체로 제공할 수 있다. 호스트 시스템(1410)은 복수의 쓰기 커맨드들 중 하나의 그룹에 포함되는 적어도 하나의 쓰기 커맨드에 동일한 오브젝트 아이디를 할당할 수 있다. The host system 1410 may provide a plurality of write commands for writing data to the storage medium and an object ID assigned to each of the plurality of write commands to the storage medium. The host system 1410 may assign the same object ID to at least one write command included in one of the plurality of write commands.

호스트 시스템(1410)은 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 저장 매체에서 복수의 쓰기 커맨드들 사이의 영속화되는 순서를 나타내는 정보를 생성할 수 있다. The host system 1410 may generate information indicating the order of persistence among the plurality of write commands in the storage medium using the object ID assigned to each of the plurality of write commands.

호스트 시스템(1410)은 복수의 쓰기 커맨드들 중 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들에 대하여 영속화 원자성을 나타내는 정보를 부가할 수 있다. The host system 1410 may add information indicating persistence atomicity to write commands that are to be permanently persistent in a storage medium among a plurality of write commands.

또한, 저장 장치(1430)는 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단하고, 판단 결과에 기초하여 복수의 쓰기 커맨드들을 처리할 수 있다. In addition, the storage device 1430 determines the persistence order or persistence atomicity between the plurality of write commands using the object ID assigned to each of the plurality of write commands, and processes the plurality of write commands based on the determination result can do.

저장 장치(1430)는 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는지 여부에 기초하여 복수의 쓰기 커맨드들 사이의 영속화 순서를 판단할 수 있다. 여기서, 영속화 순서를 나타내는 정보는 복수의 쓰기 커맨드들 중 저장 매체에서 해당 쓰기 커맨드에 대하여 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드의 개수 및 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드에 할당된 오브젝트 아이디를 포함할 수 있다. The storage device 1430 can determine the persistence order among the plurality of write commands based on whether or not there is information indicating the persistence order corresponding to the object ID. Here, the information indicating the persistence order may include at least one of the plurality of write commands, the number of at least one write command to be persistently prioritized with respect to the write command in the storage medium, and the object ID assigned to at least one write command . ≪ / RTI >

저장 장치(1430)는 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보에 따라 적어도 하나의 쓰기 커맨드를 우선적으로 저장 매체에 영속화할 수 있다. The storage device 1430 may persist the at least one write command to the storage medium in preference to the information indicating the persistence order corresponding to the object ID.

저장 장치(1430)는 오브젝트 아이디에 대응하는 영속화 원자성을 나타내는 정보가 있는지 여부를 기초로 영속화 원자성을 판단할 수 있다. The storage device 1430 can determine persistent atomicity based on whether or not there is information indicating persistent atomicity corresponding to the object ID.

저장 장치(1430)는 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대한 영속화의 진행 중에 영속화가 중단된 경우, 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 줄 수 있다. When the persistence is stopped during the persistence of the write commands with the information indicating the persistent atomicity, the storage device 1430 does not persist all the information included in the write commands to which the information indicating persistent atomicity is added You can make it untouched.

저장 장치(1430)는 해당 저장 장치가 영속화 순서 또는 영속화 원자성과 관련된 영속화 형상 제어가 가능한 장치임을 호스트 인터페이스를 통해 호스트 시스템(1410)에게 알릴 수 있다. The storage device 1430 can inform the host system 1410 via the host interface that the storage device is a device capable of persistent configuration control or persistent configuration control related to persistent atomicity.

또한, 호스트 시스템(1410)은 영속화 형상 제어가 가능한 저장 장치가 영속화 형상 제어 기능을 사용하도록 설정하는 정보를 호스트 인터페이스를 통해 저장 장치(1430)로 전송할 수 있다.
In addition, the host system 1410 may transmit information to the storage device 1430 through the host interface to set the storage device capable of the persistent configuration control to use the persistent configuration control function.

도 15는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 스토리지 시스템의 블록도이다.15 is a block diagram of a storage system that controls persistence in a storage medium according to one embodiment.

도 15를 참조하면, 일 실시예에 따른 스토리지 시스템(1500)은 호스트 인터페이스(1510), 컨트롤러(1530) 및 저장 매체(1550)를 포함할 수 있다. Referring to FIG. 15, a storage system 1500 according to an embodiment may include a host interface 1510, a controller 1530, and a storage medium 1550.

호스트 인터페이스(1510)는 호스트 시스템으로부터 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드 및 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 수신할 수 있다. The host interface 1510 may receive a plurality of write commands for writing data to the storage medium from the host system and an object ID assigned to each of the plurality of write commands.

컨트롤러(1530)는 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단하고, 판단 결과에 기초하여 복수의 쓰기 커맨드들을 처리할 수 있다. The controller 1530 can determine the persistence order or persistence atomicity between the plurality of write commands using the object ID assigned to each of the plurality of write commands and process the plurality of write commands based on the determination result .

컨트롤러(1530)는 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는지 여부를 기초로 복수의 쓰기 커맨드들 사이의 영속화 순서를 판단할 수 있다. 여기서, 영속화 순서를 나타내는 정보는 복수의 쓰기 커맨드들 중 저장 매체에서 해당 쓰기 커맨드에 대하여 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드의 개수 및 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드에 할당된 오브젝트 아이디를 포함할 수 있다. The controller 1530 can determine the persistence order between the plurality of write commands based on whether or not there is information indicating the persistence order corresponding to the object ID. Here, the information indicating the persistence order may include at least one of the plurality of write commands, the number of at least one write command to be persistently prioritized with respect to the write command in the storage medium, and the object ID assigned to at least one write command . ≪ / RTI >

컨트롤러(1530)는 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보에 따라 적어도 하나의 쓰기 커맨드를 우선적으로 저장 매체에 영속화할 수 있다. The controller 1530 may persist the at least one write command to the storage medium in preference to the information indicating the persistence order corresponding to the object ID.

컨트롤러(1530)는 오브젝트 아이디에 대응하는 영속화 원자성을 나타내는 정보가 있는지 여부를 기초로 영속화 원자성을 판단할 수 있다. The controller 1530 can determine the persistence atomicity based on whether or not there is information indicating persistent atomicity corresponding to the object ID.

또한, 컨트롤러(1530)는 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대한 영속화의 진행 중에 영속화가 중단된 경우, 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 줄 수 있다. In addition, when the persistence is stopped during the persistence of the write commands to which the information indicating persistent atomicity is added, the controller 1530 performs persistence of all the information included in the write commands to which the information indicating persistent atomicity is added It is possible to make it in a state that it is not.

저장 매체(1550)는 컨트롤러(1530)의 처리 결과에 따라 복수의 쓰기 커맨드들을 영속화할 수 있다. The storage medium 1550 may persist the plurality of write commands according to the processing result of the controller 1530. [

일반적으로 플래시 메모리 기반의 저장 장치는 저장 매체 상의 저장 위치에 상관없이 균일한 성능을 보이므로 영속화 순서 제어를 효율적으로 구현할 수 있다. 또한, 플래시 메모리 기반의 저장 장치는 덮어쓰기 동작 대신에 메모리 내부의 사상 계층을 통해 데이터가 재사상 되는 방법으로 동작하므로 원자성 제어를 용이하게 구현할 수 있다. 이러한 플래시 메모리의 특성으로 인하여, 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법 또한 플래시 메모리 기반의 저장 장치에도 쉽게 적용할 수 있으며, 보다 효율적으로 구현될 수 있다.In general, since the flash memory based storage device exhibits uniform performance irrespective of the storage location on the storage medium, the persistence order control can be implemented efficiently. In addition, the flash memory based storage device operates in a manner that data is re-mapped through a mapping layer in the memory instead of the overwrite operation, so that the atomicity control can be easily implemented. Due to the characteristics of such a flash memory, the method of controlling persistence in a storage medium according to an embodiment can be easily applied to a flash memory based storage device, and can be implemented more efficiently.

일 실시예에 따르면, 영속화 순서의 제어 및 원자성 강제 요청을 통하여 성능 저하를 유발할 수 있는 즉각 영속화를 제거하고, 영속화 순서에 대한 최소한의 제어 요청을 통하여 저장 장치로 하여금 영속화의 자유도를 최대한으로 보장해줄 수 있다. 그러므로, 하드 디스크 저장 장치에서도 충분히 효과적으로 적용되어 정확하면서도 효율적인 영속화를 구현할 수 있다.
According to an embodiment, it is possible to eliminate the immediate persistence that may cause performance degradation through the persistence order control and the atomic force request, and to allow the storage device to maximize the degree of freedom of persistence through the minimum control request for the persistence order I can do it. Therefore, even hard disk storage devices can be applied effectively enough to implement accurate and efficient persistence.

상술한 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The above-described methods may be implemented in the form of program instructions 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 recorded on the medium may be those specially designed and constructed for the present invention 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 present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

110: 호스트 시스템
111: 파일 시스템
113: 버퍼 캐시 및 I/O 스케줄러
115: 디바이스 드라이버
130: 호스트 인터페이스
150: 저장 장치
151: 저장 장치 컨트롤러
153: 쓰기 버퍼
155: 저장 매체
110: host system
111: File system
113: Buffer Cache and I / O Scheduler
115: Device driver
130: Host interface
150: Storage device
151: Storage controller
153: write buffer
155: Storage medium

Claims (27)

저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성하는 단계;
상기 복수의 쓰기 커맨드들 각각에 오브젝트 아이디를 할당하는 단계;
상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단하는 단계; 및
상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 단계
를 포함하고,
상기 복수의 쓰기 커맨드들을 처리하는 단계는,
상기 복수의 쓰기 커맨드들 중 상기 오브젝트 아이디에 대응하는 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대한 영속화의 진행 중에 상기 영속화가 중단된 경우, 상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 주는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
Generating a plurality of write commands for writing data to a storage medium;
Assigning an object ID to each of the plurality of write commands;
Determining a persistence order or persistence atomicity among the plurality of write commands using an object ID assigned to each of the plurality of write commands; And
Processing the plurality of write commands based on the determination result
Lt; / RTI >
Wherein processing the plurality of write commands comprises:
When persistence is interrupted while persistence of write commands to which information indicating persistent atomicity corresponding to the object ID is added among the plurality of write commands is terminated, a write command with information indicating persistent atomicity To make all of the information contained in the file < RTI ID = 0.0 >
≪ / RTI >
제1항에 있어서,
상기 오브젝트 아이디를 할당하는 단계는
상기 복수의 쓰기 커맨드들 중 하나의 그룹에 포함되는 적어도 하나의 쓰기 커맨드에 동일한 오브젝트 아이디를 할당하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
The step of allocating the object ID
Assigning the same object ID to at least one write command included in one of the plurality of write commands
≪ / RTI >
제1항에 있어서,
상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 저장 매체에서 상기 복수의 쓰기 커맨드들 사이의 영속화되는 순서를 나타내는 정보를 생성하는 단계
를 더 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
Generating information indicating an order of persistence between the plurality of write commands in the storage medium by using an object ID assigned to each of the plurality of write commands
≪ / RTI > further comprising the steps of:
제1항에 있어서,
상기 복수의 쓰기 커맨드들 중 상기 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들에 대하여 영속화 원자성을 나타내는 정보를 부가하는 단계
를 더 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
Adding information indicative of persistent atomicity to write commands that are to be permanently persistent in the storage medium among the plurality of write commands;
≪ / RTI > further comprising the steps of:
제1항에 있어서,
상기 복수의 쓰기 커맨드들 사이의 영속화 순서를 판단하는 단계는
상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는지 여부를 판단하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
The step of determining the persistence order between the plurality of write commands
Determining whether there is information indicating a persistence order corresponding to the object ID
≪ / RTI >
제5항에 있어서,
상기 영속화 순서를 나타내는 정보는
상기 복수의 쓰기 커맨드들 중 상기 저장 매체에서 해당 쓰기 커맨드에 대하여 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드의 개수 및 상기 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드에 할당된 오브젝트 아이디를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
6. The method of claim 5,
The information indicating the persistence order is
Wherein the storage medium includes at least one write command to be persistent prior to the write command in the storage medium, and an object ID assigned to at least one write command to be persistently prioritized, Lt; / RTI >
제6항에 있어서,
상기 복수의 쓰기 커맨드들을 처리하는 단계는
상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보에 따라 상기 적어도 하나의 쓰기 커맨드를 우선적으로 상기 저장 매체에 영속화하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 6,
The processing of the plurality of write commands
Persistent the at least one write command on the storage medium in preference to the information indicating the persistence order corresponding to the object ID
≪ / RTI >
제1항에 있어서,
상기 영속화 원자성을 판단하는 단계는
상기 오브젝트 아이디에 대응하는 상기 영속화 원자성을 나타내는 정보가 있는지 여부를 기초로 상기 영속화 원자성을 판단하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
The step of determining the persistent atomicity
Determining persistent atomicity based on whether or not there is information indicating the persistent atomicity corresponding to the object ID
≪ / RTI >
삭제delete 제1항 내지 제8항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.9. A computer-readable recording medium on which a program for carrying out the method according to any one of claims 1 to 8 is recorded. 호스트 시스템; 및
저장 장치
을 포함하고,
상기 호스트 시스템은
상기 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드 및 상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 상기 저장 매체로 제공하고,
상기 저장 장치는
상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단하고, 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하며,
상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대한 영속화의 진행 중에 상기 영속화가 중단된 경우, 상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 주는, 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
Host system; And
Storage device
/ RTI >
The host system
A plurality of write commands for writing data to the storage medium and an object ID assigned to each of the plurality of write commands to the storage medium,
The storage device
Determining a persistence order or persistence atomicity between the plurality of write commands by using an object ID allocated to each of the plurality of write commands, processing the plurality of write commands based on the determination result,
When the persistence is interrupted while the persistence of the write commands with the information indicating the persistent atomicity is in progress, the information included in the write commands to which the information representing the persistent atomicity is added is not persistent A computer system for controlling persistence in a storage medium.
제11항에 있어서,
상기 호스트 시스템은
상기 복수의 쓰기 커맨드들 중 하나의 그룹에 포함되는 적어도 하나의 쓰기 커맨드에 동일한 오브젝트 아이디를 할당하는 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
12. The method of claim 11,
The host system
Wherein at least one write command included in one of the plurality of write commands is assigned the same object ID.
제11항에 있어서,
상기 호스트 시스템은
상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 저장 장치에서 상기 복수의 쓰기 커맨드들 사이의 영속화되는 순서를 나타내는 정보를 생성하는 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
12. The method of claim 11,
The host system
Wherein the object IDs assigned to each of the plurality of write commands are used to generate information indicating the order of persistence between the plurality of write commands in the storage device.
제11항에 있어서,
상기 호스트 시스템은
상기 복수의 쓰기 커맨드들 중 상기 저장 장치에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들에 대하여 영속화 원자성을 나타내는 정보를 부가하는 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
12. The method of claim 11,
The host system
Wherein persistence in the storage medium is controlled by adding information indicating persistence atomicity to write commands that are to be permanently persistent in the storage device among the plurality of write commands.
제11항에 있어서,
상기 저장 장치는
상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는지 여부에 기초하여 상기 복수의 쓰기 커맨드들 사이의 영속화 순서를 판단하는 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
12. The method of claim 11,
The storage device
Wherein the persistence order in the storage medium is determined based on whether or not there is information indicating a persistence order corresponding to the object ID, the persistence order between the plurality of write commands.
제15항에 있어서,
상기 영속화 순서를 나타내는 정보는
상기 복수의 쓰기 커맨드들 중 상기 저장 장치에서 해당 쓰기 커맨드에 대하여 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드의 개수 및 상기 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드에 할당된 오브젝트 아이디를 포함하는 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
16. The method of claim 15,
The information indicating the persistence order is
A storage medium having a storage medium storing an object ID assigned to at least one write command to be persisted in priority and a number of at least one write command to be persistently prioritized with respect to a write command in the storage device among the plurality of write commands, In a computer system.
제16항에 있어서,
상기 저장 장치는
상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보에 따라 상기 적어도 하나의 쓰기 커맨드를 우선적으로 상기 저장 장치에 영속화하는 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
17. The method of claim 16,
The storage device
Wherein the at least one write command is preferentially persistent to the storage device according to information indicating a persistence order corresponding to the object ID.
제11항에 있어서,
상기 저장 장치는
상기 오브젝트 아이디에 대응하는 상기 영속화 원자성을 나타내는 정보가 있는지 여부를 기초로 상기 영속화 원자성을 판단하는 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
12. The method of claim 11,
The storage device
Wherein the persistent atomicity is determined based on whether or not there is information indicating the persistent atomic nature corresponding to the object ID.
삭제delete 제11항에 있어서,
상기 저장 장치는
해당 저장 장치가 상기 영속화 순서 또는 상기 영속화 원자성과 관련된 영속화 형상 제어가 가능한 장치임을 호스트 인터페이스를 통해 상기 호스트 시스템에게 알리는 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
12. The method of claim 11,
The storage device
And notifies the host system via the host interface that the storage device is a device capable of controlling the persistent configuration related to the persistence order or the persistent atomicity.
제20항에 있어서,
상기 호스트 시스템은
상기 영속화 형상 제어가 가능한 저장 장치가 상기 영속화 형상 제어 기능을 사용하도록 설정하는 정보를 상기 호스트 인터페이스를 통해 상기 저장 장치에게 전송하는 저장 매체에서의 영속화를 제어하는 컴퓨터 시스템.
21. The method of claim 20,
The host system
Wherein the persistent configuration control function controls persistence in a storage medium that transmits information to the storage device via the host interface, the persistent configuration control being enabled by the storage device.
호스트 시스템으로부터 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드 및 상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 수신하는 호스트 인터페이스;
상기 복수의 쓰기 커맨드들 각각에 할당된 오브젝트 아이디를 이용하여 상기 복수의 쓰기 커맨드들 사이의 영속화 순서 또는 영속화 원자성을 판단하고, 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 컨트롤러; 및
상기 처리 결과에 따라 상기 복수의 쓰기 커맨드들을 영속화하는 저장 매체
를 포함하고,
상기 컨트롤러는,
상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 대한 영속화의 진행 중에 상기 영속화가 중단된 경우, 상기 영속화 원자성을 나타내는 정보가 부가된 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 주는, 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
A host interface for receiving a plurality of write commands for writing data to a storage medium from a host system and an object ID assigned to each of the plurality of write commands;
A controller for determining a persistence order or persistence atomicity between the plurality of write commands by using an object ID assigned to each of the plurality of write commands and processing the plurality of write commands based on the determination result; And
And a storage medium for holding the plurality of write commands in accordance with the processing result
Lt; / RTI >
The controller comprising:
When the persistence is interrupted while the persistence of the write commands with the information indicating the persistent atomicity is in progress, the information included in the write commands to which the information representing the persistent atomicity is added is not persistent A storage system that controls the persistence of storage media.
제22항에 있어서,
상기 컨트롤러는 상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보가 있는지 여부를 기초로 상기 복수의 쓰기 커맨드들 사이의 영속화 순서를 판단하는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
23. The method of claim 22,
Wherein the controller controls persistence in a storage medium that determines a persistence order among the plurality of write commands based on whether information indicating a persistence order corresponding to the object ID exists.
제23항에 있어서,
상기 영속화 순서를 나타내는 정보는
상기 복수의 쓰기 커맨드들 중 상기 저장 매체에서 해당 쓰기 커맨드에 대하여 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드의 개수 및 상기 우선적으로 영속화되어야 하는 적어도 하나의 쓰기 커맨드에 할당된 오브젝트 아이디를 포함하는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
24. The method of claim 23,
The information indicating the persistence order is
Wherein the storage medium includes at least one write command to be persistent prior to the write command in the storage medium, and an object ID assigned to at least one write command to be persistently prioritized, A storage system that controls persistence in a storage system.
제24항에 있어서,
상기 컨트롤러는
상기 오브젝트 아이디에 대응하는 영속화 순서를 나타내는 정보에 따라 상기 적어도 하나의 쓰기 커맨드를 우선적으로 상기 저장 매체에 영속화하는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
25. The method of claim 24,
The controller
Wherein the at least one write command is persistent to the storage medium according to information indicating a persistence order corresponding to the object ID.
제22항에 있어서,
상기 컨트롤러는
상기 오브젝트 아이디에 대응하는 상기 영속화 원자성을 나타내는 정보가 있는지 여부를 기초로 상기 영속화 원자성을 판단하는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
23. The method of claim 22,
The controller
Wherein persistence in the storage medium is controlled based on whether or not there is information indicating the persistent atomicity corresponding to the object ID.
삭제delete
KR1020120139868A 2012-03-26 2012-12-04 Method, computer system and storage system for controlling materialization in a storage medium based on object id and storage system KR101426806B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120030728 2012-03-26
KR20120030728 2012-03-26

Publications (2)

Publication Number Publication Date
KR20130108967A KR20130108967A (en) 2013-10-07
KR101426806B1 true KR101426806B1 (en) 2014-08-05

Family

ID=49631494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120139868A KR101426806B1 (en) 2012-03-26 2012-12-04 Method, computer system and storage system for controlling materialization in a storage medium based on object id and storage system

Country Status (1)

Country Link
KR (1) KR101426806B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180002259A (en) 2016-06-29 2018-01-08 주식회사 파두 Structure and design method of flash translation layer

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009146387A (en) * 2007-11-19 2009-07-02 Ricoh Co Ltd Information processing apparatus, information processing method and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009146387A (en) * 2007-11-19 2009-07-02 Ricoh Co Ltd Information processing apparatus, information processing method and program

Also Published As

Publication number Publication date
KR20130108967A (en) 2013-10-07

Similar Documents

Publication Publication Date Title
US11354235B1 (en) Memory controller for nonvolatile memory that tracks data write age and fulfills maintenance requests targeted to host-selected memory space subset
US11314636B1 (en) Nonvolatile/persistent memory drive with address subsections configured for respective read bandwidths
KR101086857B1 (en) Control Method of Solid State Storage System for Data Merging
EP3118745B1 (en) A heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US8521949B2 (en) Data deleting method and apparatus
US8924659B2 (en) Performance improvement in flash memory accesses
JP6007332B2 (en) Storage system and data write method
US9778860B2 (en) Re-TRIM of free space within VHDX
JP2013242908A (en) Solid state memory, computer system including the same, and operation method of the same
KR20130017748A (en) Memory controller and data management method
JP6139381B2 (en) Memory system and method
KR20150083264A (en) System and method for efficient address translation on Flash memory device
CN108628542B (en) File merging method and controller
KR20170038853A (en) Host-managed non-volatile memory
US20200341908A1 (en) Method for management of multi-core solid state drive
KR20000022716A (en) Efficient volume copy using pre-configuration of log structured target storage
KR20140032789A (en) Controller of nonvolatile memory device and command scheduling method thereof
WO2017006675A1 (en) Information processing system, storage control device, storage control method, and storage control program
KR20200141212A (en) Memory system for garbage collection operation and operating method thereof
CN113419675A (en) Write operation method and read operation method for memory
JP2013210749A (en) Program, control method, storage device, and system
WO2021035555A1 (en) Data storage method and apparatus for solid state disk and solid state disk (ssd)
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
KR101426806B1 (en) Method, computer system and storage system for controlling materialization in a storage medium based on object id and storage system
EP2381354A2 (en) Data recording device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20160224

Year of fee payment: 6