KR101412885B1 - Method and storage system for controlling materialization in a storage medium using mode setting and delimiter - Google Patents

Method and storage system for controlling materialization in a storage medium using mode setting and delimiter Download PDF

Info

Publication number
KR101412885B1
KR101412885B1 KR1020120139867A KR20120139867A KR101412885B1 KR 101412885 B1 KR101412885 B1 KR 101412885B1 KR 1020120139867 A KR1020120139867 A KR 1020120139867A KR 20120139867 A KR20120139867 A KR 20120139867A KR 101412885 B1 KR101412885 B1 KR 101412885B1
Authority
KR
South Korea
Prior art keywords
persistence
mode
group
write commands
write
Prior art date
Application number
KR1020120139867A
Other languages
Korean (ko)
Other versions
KR20130108966A (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 KR20130108966A publication Critical patent/KR20130108966A/en
Application granted granted Critical
Publication of KR101412885B1 publication Critical patent/KR101412885B1/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성하는 단계; 상기 복수의 쓰기 커맨드들 사이에 상기 복수의 쓰기 커맨드들에 대한 적어도 하나의 그룹의 시작을 나타내는 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹의 종료를 나타내는 적어도 하나의 그룹 종료 구분자를 삽입하는 단계; 상기 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹 종료 구분자를 이용하여 상기 복수의 쓰기 커맨드들로부터 적어도 하나의 그룹을 식별하는 단계; 상기 식별된 적어도 하나의 그룹에 기초하여 상기 복수의 쓰기 커맨드들에 대하여 영속화 순서 또는 영속화 원자성을 판단하는 단계; 및 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 단계를 포함하는 저장 매체에서의 영속화를 제어하는 방법을 제공할 수 있다.Generating a plurality of write commands for writing data to a storage medium; Inserting at least one group start delimiter indicating the start of at least one group for the plurality of write commands between the plurality of write commands and at least one group end delimiter indicating the end of the at least one group ; Identifying at least one group from the plurality of write commands using the at least one group start delimiter and the at least one group end delimiter; Determining a persistence order or persistence atomicity for the plurality of write commands based on the identified at least one group; And processing the plurality of write commands based on the determination result.

Description

모드 설정 및 구분자를 이용하여 저장 매체에서의 영속화를 제어하는 방법 및 그 스토리지 시스템{METHOD AND STORAGE SYSTEM FOR CONTROLLING MATERIALIZATION IN A STORAGE MEDIUM USING MODE SETTING AND DELIMITER}METHOD AND STORAGE SYSTEM FOR CONTROLLING MATERIALIZATION IN A STORAGE MEDIUM USING MODE SETTING AND DELIMITER BACKGROUND OF THE INVENTION 1. Field of the Invention [

본 발명은 모드 설정 및 구분자를 이용하여 저장 매체에서의 영속화를 제어하는 방법 및 그 스토리지 시스템에 관한 것이다.The present invention relates to a method and a storage system for controlling persistence in a storage medium using mode setting and delimiter.

호스트 시스템의 파일 시스템(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; Inserting at least one group start delimiter indicating the start of at least one group for the plurality of write commands between the plurality of write commands and at least one group end delimiter indicating the end of the at least one group ; Identifying at least one group from the plurality of write commands using the at least one group start delimiter and the at least one group end delimiter; Determining a persistence order or persistence atomicity for the plurality of write commands based on the identified at least one group; And processing the plurality of write commands based on the determination result.

상기 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹 종료 구분자를 삽입하는 단계는 상기 복수의 쓰기 커맨드들 중 상기 적어도 하나의 그룹에 포함되어 상기 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 상기 그룹 시작 구분자를 삽입하는 단계; 및 상기 첫 번째 쓰기 커맨드와 동일한 그룹에 포함된 마지막 쓰기 커맨드에 상기 그룹 종료 구분자를 삽입하는 단계를 포함할 수 있다. Wherein the step of inserting the at least one group start delimiter and the at least one group end delimiter comprises the steps of writing at least one of write commands included in the at least one group of the plurality of write commands, Inserting the group start delimiter into a first write command; And inserting the group end delimiter into a last write command included in the same group as the first write command.

상기 복수의 쓰기 커맨드들에 대하여 영속화 원자성을 판단하는 단계는 상기 적어도 하나의 그룹 시작 구분자에 의해 시작되고, 상기 적어도 하나의 그룹 종료 구분자에 의해 종료되는 적어도 하나의 그룹의 사이에 상기 적어도 하나의 그룹을 다른 그룹과 구분하기 위한 그룹 구분자가 포함되어 있는지 여부를 판단하는 단계를 포함할 수 있다.Wherein the determining persistent atomicity for the plurality of write commands comprises determining at least one group start identifier among at least one group that begins with the at least one group start delimiter and ends with the at least one group end delimiter. Determining whether a group identifier for distinguishing the group from another group is included.

상기 복수의 쓰기 커맨드들을 처리하는 단계는 상기 복수의 쓰기 커맨드들 중 상기 적어도 하나의 그룹 시작 구분자에 의해 원자적 영속화 모드가 설정된 이후부터, 상기 적어도 하나의 그룹 종료 구분자에 의해 상기 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 대하여 진행되던 영속화가 완료되기 이전에 중단된 경우, 상기 원자적 영속화 모드가 설정된 이후부터 상기 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 주는 단계를 더 포함하고, 상기 원자적 영속화 모드는 상기 쓰기 커맨드들에 대하여 상기 저장 매체에서의 영속화가 일체로 이루어지도록 하는 모드일 수 있다. Wherein the processing of the plurality of write commands comprises starting the atomic persistence mode by the at least one group start delimiter among the plurality of write commands, The information contained in the write commands from the time when the atomic persistence mode is set until the atomic persistence mode is released, Wherein the atomic persistence mode is a mode in which persistence in the storage medium is made integral with respect to the write commands.

상기 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 순차적 영속화 모드의 설정을 위한 모드 시작 구분자를 삽입하는 단계; 및 상기 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자를 삽입하는 단계를 더 포함하고, 상기 순차적 영속화 모드는 상기 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드일 수 있다. Inserting a mode start delimiter for setting a sequential persistence mode in a first write command among write commands in which persistence in the storage medium must be performed in order; And inserting a mode termination delimiter for releasing the sequential persistence mode into the last write command among the write commands that must be performed in order of the persistence, wherein the sequential persistence mode further comprises: The write data may be written in the write mode.

상기 쓰기 데이터들에 대하여 영속화 순서를 판단하는 단계는 상기 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 상기 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자가 삽입되어 있는지 여부를 판단하는 단계를 포함할 수 있다. The step of determining the persistence order for the write data may include determining whether a mode start delimiter indicating the start of the sequential persistence mode and a mode end delimiter indicating the end of the sequential persistence mode are inserted .

상기 복수의 쓰기 커맨드들을 처리하는 단계는 상기 복수의 쓰기 커맨드들 중 상기 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 상기 모드 종료 구분자에 의해 상기 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 상기 저장 매체에 순차적으로 영속화하는 단계를 포함할 수 있다. Wherein the step of processing the plurality of write commands includes a step of writing the write commands after the sequential persistence mode is set by the mode start delimiter among the plurality of write commands and before the sequential persistence mode is released by the mode term identifier, And sequentially writing the write data corresponding to the write data to the storage medium in order of transmission through the host interface.

일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법은 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성하는 단계; 상기 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 상기 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자를 삽입하는 단계; 상기 모드 시작 구분자 및 상기 모드 종료 구분자를 이용하여 상기 복수의 쓰기 커맨드들에 대하여 영속화 순서를 판단하는 단계; 및 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 단계를 포함하고, 상기 순차적 영속화 모드는 상기 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드일 수 있다. A method of controlling persistence in a storage medium, in accordance with an embodiment, includes generating a plurality of write commands for writing data to a storage medium; Inserting a mode start delimiter indicating the start of the sequential persistence mode and a mode end delimiter indicating an end of the sequential persistence mode; Determining a persistence order for the plurality of write commands using the mode start delimiter and the mode end delimiter; And processing the plurality of write commands based on the determination result, wherein the sequential persistence mode may be a mode for setting a persistence order between write data corresponding to a plurality of write commands in the storage medium .

상기 모드 시작 구분자 및 상기 모드 종료 구분자를 삽입하는 단계는 상기 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 순차적 영속화 모드의 설정을 위한 모드 시작 구분자를 삽입하는 단계; 및 상기 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자를 삽입하는 단계를 포함할 수 있다. Inserting the mode start delimiter and the mode termination delimiter comprises: inserting a mode start delimiter for setting a sequential persistence mode in a first write command among write commands to be persistent in the storage medium; And inserting a mode termination delimiter for releasing the sequential persistence mode into the last write command among the write commands which must be executed in order of persistence.

상기 복수의 쓰기 커맨드들에 대하여 영속화 순서를 판단하는 단계는 상기 복수의 쓰기 커맨드들에 상기 순차적 영속화 모드의 설정을 위한 모드 시작 구분자 및 상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자가 삽입되어 있는지 여부를 판단하는 단계를 포함할 수 있다. Wherein the determining of the persistence order for the plurality of write commands includes determining whether a mode start delimiter for setting the sequential persistence mode and a mode end delimiter for releasing the sequential persistence mode are inserted into the plurality of write commands And a step of judging whether or not the received signal is transmitted.

상기 복수의 쓰기 커맨드들을 처리하는 단계는 상기 복수의 쓰기 커맨드들 중 상기 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 상기 모드 종료 구분자에 의해 상기 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 상기 저장 매체에 순차적으로 영속화하는 단계를 포함할 수 있다. Wherein the step of processing the plurality of write commands includes a step of writing the write commands after the sequential persistence mode is set by the mode start delimiter among the plurality of write commands and before the sequential persistence mode is released by the mode term identifier, And sequentially writing the write data corresponding to the write data to the storage medium in order of transmission through the host interface.

일 실시예에 따른 저장 매체에서의 영속화를 제어하는 스토리지 시스템은 호스트 시스템으로부터 저장 장치 내의 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들 및 상기 복수의 쓰기 커맨드들 사이에 삽입된 적어도 하나의 그룹의 시작을 나타내는 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹의 종료를 나타내는 적어도 하나의 그룹 종료 구분자를 수신하는 호스트 인터페이스; 상기 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹 종료 구분자를 이용하여 상기 복수의 쓰기 커맨드들로부터 적어도 하나의 그룹을 식별하고, 상기 식별된 적어도 하나의 그룹에 기초하여 상기 복수의 쓰기 커맨드들에 대하여 영속화 순서 또는 영속화 원자성을 판단하며, 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 컨트롤러; 및 상기 처리 결과에 따라 상기 복수의 쓰기 커맨드들을 영속화하기 위한 저장 매체를 포함할 수 있다. A storage system that controls persistence in a storage medium according to one embodiment includes a plurality of write commands for writing data to a storage medium in a storage device from a host system and at least one group of write commands A host interface for receiving at least one group start delimiter indicating start and at least one group end delimiter indicating an end of said at least one group; Identifying at least one group from the plurality of write commands using the at least one group start delimiter and the at least one group end delimiter, and identifying at least one group from among the plurality of write commands based on the identified at least one group A controller for determining the persistence order or the persistence atomicity 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.

상기 그룹 시작 구분자는 상기 복수의 쓰기 커맨드들 중 상기 적어도 하나의 그룹에 포함되어 상기 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 삽입되고, 상기 그룹 종료 구분자는 상기 첫 번째 쓰기 커맨드와 동일한 그룹에 포함된 마지막 쓰기 커맨드에 삽입될 수 있다. Wherein the group start delimiter is inserted into a first write command among write commands included in the at least one group among the plurality of write commands and to be permanently persistent in the storage medium, Th write command and the last write command included in the same group as the first write command.

상기 컨트롤러는 상기 적어도 하나의 그룹 시작 구분자에 의해 시작되고, 상기 적어도 하나의 그룹 종료 구분자에 의해 종료되는 적어도 하나의 그룹의 사이에 상기 적어도 하나의 그룹을 다른 그룹과 구분하기 위한 그룹 구분자가 포함되어 있는지 여부를 판단할 수 있다. Wherein the controller includes group delimiters for distinguishing the at least one group from the other groups among at least one group initiated by the at least one group start delimiter and terminated by the at least one group term delimiter Or not.

상기 컨트롤러는 상기 복수의 쓰기 커맨드들 중 상기 적어도 하나의 그룹 시작 구분자에 의해 원자적 영속화 모드가 설정된 이후부터, 상기 적어도 하나의 그룹 종료 구분자에 의해 상기 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 대하여 진행되던 영속화가 완료되기 이전에 중단된 경우, 상기 원자적 영속화 모드가 설정된 이후부터 상기 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 주고, 상기 원자적 영속화 모드는 상기 쓰기 커맨드들에 대하여 상기 저장 매체에서의 영속화가 일체로 이루어지도록 하는 모드일 수 있다.Wherein the controller writes the write command from the at least one group start delimiter to the at least one group termination delimiter after the at least one group delimiter is set by the at least one group delimiter, The information contained in the write commands from the time when the atomic persistence mode is set to before the atomic persistence mode is released is made to be in a non-persistent state And the atomic persistence mode may be a mode in which persistence in the storage medium is made integral with respect to the write commands.

순차적 영속화 모드의 설정을 위한 모드 시작 구분자는 상기 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 삽입되고, 상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자는 상기 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 삽입되며, 상기 순차적 영속화 모드는 상기 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드일 수 있다. A mode start delimiter for setting a sequential persistence mode is inserted into a first write command among write commands that are to be permanently persistent in the storage medium and a mode end delimiter for releasing the sequential persistence mode, , And the sequential persistent mode may be a mode for setting a persistence order between write data corresponding to a plurality of write commands in the storage medium.

상기 컨트롤러는 상기 복수의 쓰기 커맨드들 사이에 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 상기 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자가 삽입되어 있는지 여부를 판단할 수 있다. The controller may determine whether a mode start delimiter indicating the start of the sequential persistence mode and a mode end delimiter indicating the end of the sequential persistence mode are inserted between the plurality of write commands.

상기 컨트롤러는 상기 복수의 쓰기 커맨드들 중 상기 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 상기 모드 종료 구분자에 의해 상기 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 상기 저장 매체에 순차적으로 영속화할 수 있다. Wherein the controller writes the write data corresponding to the write commands until the sequential persistence mode is released by the mode termination delimiter after the sequential persistence mode is set by the mode start delimiter among the plurality of write commands , And sequentially persistent to the storage medium in order of transmission through the host interface.

상기 저장 장치는 해당 저장 장치가 상기 영속화 순서 또는 상기 영속화 원자성과 관련된 영속화 형상 제어가 가능한 장치임을 상기 호스트 인터페이스를 통해 상기 호스트 시스템에게 알릴 수 있다. The storage device can notify the host system through 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.

일 실시예에 따른 저장 매체에서의 영속화를 제어하는 스토리지 시스템은 호스트 시스템으로부터 저장 장치 내의 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들 및 상기 복수의 쓰기 커맨드들 사이에 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 상기 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자를 수신하는 호스트 인터페이스; 상기 모드 시작 구분자 및 상기 모드 종료 구분자를 이용하여 상기 복수의 쓰기 커맨드들에 대하여 영속화 순서를 판단하고, 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 컨트롤러; 및 상기 처리 결과에 따라 상기 복수의 쓰기 커맨드들을 영속화하는 저장 매체를 포함하고, 상기 순차적 영속화 모드는 상기 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드일 수 있다. A storage system that controls persistence in a storage medium according to one embodiment includes a plurality of write commands for writing data to a storage medium in a storage device from a host system and a plurality of write commands for indicating the start of a sequential persistence mode A host interface for receiving a mode start delimiter and a mode end delimiter indicating the end of the sequential persistence mode; A controller for determining a persistence order for the plurality of write commands using the mode start delimiter and the mode end delimiter and processing the plurality of write commands based on the determination result; And a storage medium for holding the plurality of write commands according to a result of the processing, wherein the sequential persistence mode may be a mode for setting a persistence order between write data corresponding to a plurality of write commands in the storage medium .

상기 모드 시작 구분자는 상기 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 삽입되고, 상기 모드 종료 구분자는 상기 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 삽입될 수 있다. Wherein the mode start delimiter is inserted into a first write command among write commands to be persistent in the storage medium and the mode end delimiter is inserted into the last write command among the write commands that must be executed in order .

상기 컨트롤러는 상기 복수의 쓰기 커맨드들에 상기 순차적 영속화 모드의 설정을 위한 모드 시작 구분자 및 상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자가 삽입되어 있는지 여부를 판단할 수 있다. The controller may determine whether a mode start delimiter for setting the sequential persistence mode and a mode term delimiter for releasing the sequential persistence mode are inserted into the plurality of write commands.

상기 컨트롤러는 상기 복수의 쓰기 커맨드들 중 상기 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 상기 모드 종료 구분자에 의해 상기 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여 상기 저장 매체에 순차적으로 영속화할 수 있다.Wherein the controller writes the write data corresponding to the write commands until the sequential persistence mode is released by the mode termination delimiter after the sequential persistence mode is set by the mode start delimiter among the plurality of write commands And sequentially persistent to the storage medium.

일 실시예에 따르면, 모드 설정 및 구분자를 이용하여 영속화의 순서 또는 원자성 제어 요구를 저장 장치에 직접 전달함으로써 정확하면서도 효율적인 영속화를 수행할 수 있다.According to an embodiment, accurate and efficient persistence can be performed by directly transmitting a persistence order or atomicity control request to a storage device using a mode setting and a delimiter.

또한, 일 실시예에 따르면, 구분자를 이용하여 커맨드 혹은 커맨드 그룹으로 구성된 영속화 단위를 정의하고 영속화 단위 별로 원자적 영속화를 강제함으로써 다수의 쓰기 요청에 대한영속화 의도를 보다 효과적으로 저장 장치에 전달할 수 있다. In addition, according to one embodiment, a persistence unit composed of commands or command groups is defined using a delimiter, and atomic persistence is enforced per persistence unit, so that persistence intention for a plurality of write requests can be more effectively transmitted to the storage apparatus.

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

도 1은 저장 장치를 포함하는 컴퓨터 시스템의 계층 구조를 개념적으로 나타낸 도면이다.
도 2는 파일 시스템의 쓰기 요청이 저장 장치에서 동기적으로 수행되는 과정을 나타낸 도면이다.
도 3은 파일 시스템의 쓰기 요청이 저장 장치에서 비동기적으로 수행되는 과정을 나타낸 도면이다.
도 4는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 나타낸 플로우차트이다.
도 5는 다른 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 나타낸 플로우차트이다.
도 6은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 원자적 영속화 요청을 표현하는 방법을 나타낸 도면이다.
도 7은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 나타낸 플로우차트이다.
도 8은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 영속화 순서 및 영속화 원자성 요청을 표현하는 방법을 나타낸 도면이다.
도 9는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 일부의 쓰기 커맨드에 대한 순차적 영속화 요청을 전달하는 방법을 나타낸 도면이다.
도 10은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 원자적 영속화 요청을 전달하는 방법을 나타낸 도면이다.
도 11은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 순차적 영속화 모드와 원자적 영속화 모드를 조합하여 사용하는 방법을 나타낸 도면이다.
도 12는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 Serial ATA(SATA) Set Features 커맨드의 자료 구조에 적용한 결과를 나타낸 도면이다.
도 13은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 스토리지 시스템의 블록도이다.
도 14는 다른 실시예에 따른 저장 매체에서의 영속화를 제어하는 스토리지 시스템의 블록도이다.
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 flowchart illustrating a method for controlling persistence in a storage medium according to another embodiment.
FIG. 6 illustrates a method of representing an atomic persistence request according to a method of controlling persistence in a storage medium according to an exemplary embodiment of the present invention. Referring to FIG.
7 is a flowchart illustrating a method for controlling persistence in a storage medium according to an embodiment.
FIG. 8 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.
9 is a diagram illustrating a method for transferring a sequential persistence request for a part of write commands according to a method of controlling persistence in a storage medium according to an exemplary embodiment.
10 is a diagram illustrating a method for transferring an atomic persistence request according to a method of controlling persistence in a storage medium according to an exemplary embodiment of the present invention.
11 is a diagram illustrating a method of using a sequential persistence mode and an atomic persistence mode according to a method of controlling persistence in a storage medium according to an exemplary embodiment of the present invention.
12 is a diagram illustrating a result of applying a method of controlling persistence in a storage medium according to an embodiment to a data structure of a Serial ATA (SATA) Set Features command.
13 is a block diagram of a storage system that controls persistence in a storage medium according to one embodiment.
14 is a block diagram of a storage system that controls persistence in a storage medium according to another 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.

이러한 세 가지 방법 모두 동기적 저장 장치 쓰기를 이용한 것으로, 이를 'W즉각 영속화(immediate materialization)'라 부를 수 있다. All three methods use synchronous storage writes, which can be referred to as 'W 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(Soli State Drive)나 NVRAM(Non-volatile memory)을 이용한 저장 장치 등과 같은 메모리 기반의 저장 장치가 등장하여 하드 디스크의 영역을 점진적으로 대체하고 있다. 이와 같은 메모리 기반의 저장 장치는 연속적인 영역에 대한 순차적 접근과 불연속적인 영역에 대한 무작위 접근의 성능 차이가 거의 없다. Memory-based storage devices such as SSD (Soli State Drive) or NVRAM (Non-volatile memory) storage devices based on NAND flash memory have recently appeared and gradually replace 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, even in a storage device using a new storage medium, synchronous immediate persistence requests frequently occur, which may inevitably degrade performance. 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 it is possible to directly control the data transfer order from the host system to the storage device through the interface, it does not provide a method of controlling the order in which data is persistent to the storage medium. Therefore, in order to control the order of persistence, the host system performs the synchronization which is the subject, which degrades the performance.

따라서, 일 실시예에서는 다수의 쓰기 요청에 대해 파일 시스템의 영속화 의도를 정확하게 전달할 수 있도록, 저장장치의 모드 설정을 통해 쓰기 데이터를 커맨드 단위 혹은 커맨드의 그룹 단위로 나누어 영속화 단위(materialization unit)을 정의하고, 각 영속화 단위에 속하는 쓰기 데이터가 저장 매체에 쓰여지는 데에 있어 원자성(atomicity)을 가지고 영속화되도록 할 수 있다. 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 group of commands through a mode setting of the storage device to define a materialization unit And write data belonging to each persistent unit can be made persistent with atomicity in writing to the storage medium.

또한, 일 실시예에서는 각 영속화 단위에 속하는 쓰기 데이터가 저장 매체에 쓰여지는 데에 있어 원자성(atomicity)을 가지고 영속화 될 수 있고, 저장 장치 모드 설정을 통하여 호스트 인터페이스에 전송되는 순서대로 순차적으로 저장 매체에 기록할 수 있도록 하여 영속화의 순서를 제어할 수 있도록 한다.
In addition, in one embodiment, write data belonging to each persistent unit may be persisted with atomicity in writing to the storage medium, and sequentially stored in the order of being transmitted to the host interface through the storage device mode setting So that the order of persistence can be controlled.

도 4는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 나타낸 플로우차트이다. 도 4를 참조하면, 원자적 영속화 모드에 따른 스토리지 시스템의 동작을 살펴볼 수 있다. 4 is a flowchart illustrating a method for controlling persistence in a storage medium according to one embodiment. Referring to FIG. 4, the operation of the storage system according to the atomic persistence mode can be examined.

일 실시예에 따른 호스트 시스템은 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성할 수 있다(410).A host system according to one embodiment may generate 410 a plurality of write commands for writing data to a storage medium.

호스트 시스템은 복수의 쓰기 커맨드들 사이에 적어도 하나의 그룹 시작 구분자 및 적어도 하나의 그룹 종료 구분자를 삽입할 수 있다(420). 그룹 시작 구분자는 복수의 쓰기 커맨드들에 대한 적어도 하나의 그룹의 시작을 나타내는 구분자이다. 그룹 시작 구분자는 예를 들어, 도 6의 630에서와 같이 Gstart의 형태를 가질 수 있다. The host system may insert at least one group start delimiter and at least one group end delimiter between the plurality of write commands (420). The group start delimiter is a delimiter indicating the start of at least one group for a plurality of write commands. The group start delimiter may, for example, take the form of G start as in 630 of FIG.

또한, 그룹 종료 구분자는 복수의 쓰기 커맨드들에 대한 적어도 하나의 그룹의 종료를 나타내는 구분자이다. 그룹 종료 구분자는 예를 들어, 도 6의 630에서와 같이 GEnd의 형태를 가질 수 있다. Also, the group end delimiter is an identifier indicating the end of at least one group for a plurality of write commands. The group end delimiter may, for example, have the form of G End as in 630 of FIG.

420에서 호스트 시스템은 복수의 쓰기 커맨드들 중 적어도 하나의 그룹에 포함되어 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 그룹 시작 구분자를 삽입할 수 있다. 그리고, 호스트 시스템은 첫 번째 쓰기 커맨드와 동일한 그룹에 포함된 마지막 쓰기 커맨드에 그룹 종료 구분자를 삽입할 수 있다. 이와 같은 그룹 시작 구분자와 그룹 종료 구분자의 삽입에 의해 원자적 영속화 모드를 설정 및 해제할 수 있다. At 420, the host system may include a group start delimiter in the first write command among the write commands that are included in at least one group of the plurality of write commands and must be permanently persistent in the storage medium. Then, the host system can insert the group end delimiter into the last write command included in the same group as the first write command. The atomic persistence mode can be set and released by inserting such group start delimiter and group end delimiter.

저장 장치는 적어도 하나의 그룹 시작 구분자 및 적어도 하나의 그룹 종료 구분자를 이용하여 복수의 쓰기 커맨드들로부터 적어도 하나의 그룹을 식별할 수 있다(430).The storage device may identify at least one group from the plurality of write commands using at least one group start delimiter and at least one group end delimiter (430).

저장 장치는 식별된 적어도 하나의 그룹에 기초하여 복수의 쓰기 커맨드들에 대하여 영속화 순서 또는 영속화 원자성을 판단할 수 있다(440).The storage device may determine persistence order or persistence atomicity for a plurality of write commands based on the identified at least one group (440).

이때, 영속화 원자성을 판단하기 위해, 저장 장치는 그룹의 사이에 하나의 그룹을 다른 그룹과 구분하기 위한 그룹 구분자가 포함되어 있는지 여부를 판단할 수 있다. 여기서 하나의 그룹은 그룹 시작 구분자에 의해 시작되고, 그룹 종료 구분자에 의해 종료될 수 있다. At this time, in order to determine the persistent atomicity, the storage device can determine whether a group identifier for distinguishing one group from another group among the groups is included. Here, one group is started by the group start delimiter and can be ended by the group end delimiter.

그룹 구분자는 예를 들어, 도 6의 630에서 GDelim과 같은 형태를 가질 수 있다. The group delimiter may have the form of, for example, G Delim at 630 in FIG.

그룹 시작 구분자에 의해 시작되고, 그룹 종료 구분자에 의해 종료되는 하나의 그룹이더라도 그 사이에 그룹 종료 구분자가 포함된 경우, 해당 그룹 종료 구분자를 기준으로 각각의 그룹이 구분될 수 있다. If the group end delimiter is included in a single group that is started by the group start delimiter and terminated by the group end delimiter, each group can be distinguished based on the group end delimiter.

저장 장치는 판단 결과에 기초하여 복수의 쓰기 커맨드들을 처리할 수 있다(450).The storage device may process a plurality of write commands based on the determination result (450).

원자적 영속화 모드에 따른 스토리지 시스템의 구체적인 동작은 도 6을 참조하여 상세히 설명한다.
The specific operation of the storage system according to the atomic persistence mode will be described in detail with reference to FIG.

도 5는 다른 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 나타낸 플로우차트이다. 도 5를 참조하면, 일 실시예에 따른 원자적 영속화 모드와 순차적 영속화 모드가 혼합된 경우에 스토리지 시스템의 동작을 살펴볼 수 있다. 5 is a flowchart illustrating a method for controlling persistence in a storage medium according to another embodiment. Referring to FIG. 5, operation of the storage system can be examined when the atomic persistence mode and the sequential persistence mode are mixed according to an embodiment.

호스트 시스템은 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성할 수 있다(510).The host system may generate a plurality of write commands for writing data to the storage medium (510).

호스트 시스템은 복수의 쓰기 커맨드들 사이에 적어도 하나의 그룹 시작 구분자 및 적어도 하나의 그룹 종료 구분자를 삽입할 수 있다(520).The host system may insert at least one group start delimiter and at least one group end delimiter between the plurality of write commands (520).

여기서, 적어도 하나의 그룹 시작 구분자는 복수의 쓰기 커맨드들에 대한 적어도 하나의 그룹의 시작을 나타낸다. 그리고, 적어도 하나의 그룹 종료 구분자는 복수의 쓰기 커맨드들에 대한 적어도 하나의 그룹의 종료를 나타낼 수 있다. Wherein at least one group start delimiter indicates the start of at least one group for a plurality of write commands. And at least one group termination delimiter may indicate termination of at least one group for a plurality of write commands.

또한, 호스트 시스템은 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 모드 시작 구분자를 삽입하고, 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 모드 종료 구분자를 삽입할 수 있다(530). In addition, the host system inserts the mode start delimiter into the first write command among the write commands that must be made persistent in the storage medium, inserts the mode end delimiter into the last write command among the write commands that must be executed in order, (530).

여기서, 모드 시작 구분자는 순차적 영속화 모드의 설정을 위한 것이고, 모드 종료 구분자는 순차적 영속화 모드의 해제를 위한 것이다. 순차적 영속화 모드는 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드이다. 순차적 영속화 모드가 설정되어 있는 동안에는 모드 설정에 영향 받는 쓰기 커맨드들에 대해 호스트 인터페이스를 통해 입력된 순서대로 쓰기 데이터의 영속화가 이루어질 수 있다. 이는 서로 다른 쓰기 커맨드에 해당되는 쓰기 데이터가 뒤섞여 입력되는 경우를 포함한다.모드 시작 구분자는 예를 들어, 도 9의 OStart와 같은 형태를 가질 수 있으며, 모드 종료 구분자는 예를 들어, 도 9의 OEnd와 같은 형태를 가질 수 있다. Here, the mode start delimiter is for setting a sequential persistence mode, and the mode end delimiter is for canceling a sequential persistence mode. The sequential persistence mode is a mode for setting a persistence order between write data corresponding to a plurality of write commands in a storage medium. While the sequential persistence mode is set, persistence of the write data may be performed in the order inputted through the host interface with respect to the write commands affected by the mode setting. The mode start delimiter may have the same form as, for example, O Start in FIG. 9, and the mode end delimiter may be, for example, as shown in FIG. 9 O End of the same.

저장 장치는 적어도 하나의 그룹 시작 구분자 및 적어도 하나의 그룹 종료 구분자를 이용하여 복수의 쓰기 커맨드들로부터 적어도 하나의 그룹을 식별할 수 있다(540).The storage device may identify at least one group from the plurality of write commands using at least one group start delimiter and at least one group end delimiter (540).

저장 장치는 식별된 적어도 하나의 그룹에 기초하여 복수의 쓰기 커맨드들에 대하여 영속화 순서 또는 영속화 원자성을 판단할 수 있다(550).The storage device may determine a persistence order or persistence atomicity for a plurality of write commands based on the identified at least one group (550).

550에서 저장 장치는 복수의 쓰기 커맨드들 사이에 모드 시작 구분자 및 모드 종료 구분자가 삽입되어 있는지 여부에 따라 영속화 순서를 판단할 수 있다. The storage device can determine the persistence order according to whether a mode start delimiter and a mode end delimiter are inserted between a plurality of write commands.

550에서 복수의 쓰기 커맨드들에 대하여 영속화 순서가 있다고 판단되면, 저장 장치는 복수의 쓰기 커맨드들 중 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 모드 종료 구분자에 의해 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 저장 매체에 순차적으로 영속화할 수 있다(560). If it is determined in step 550 that there is a persistence order for a plurality of write commands, the storage device stores the write command after the sequential persistence mode is set by the mode start delimiter among the plurality of write commands and before the sequential persistence mode is released by the mode end delimiter The write data corresponding to the write commands up to the write command can be sequentially persisted to the storage medium in order to be transmitted through the host interface (560).

저장 장치는 복수의 쓰기 커맨드들 중 적어도 하나의 그룹 시작 구분자에 의해 원자적 영속화 모드가 설정된 이후부터, 적어도 하나의 그룹 종료 구분자에 의해 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 대하여 진행되던 영속화가 완료되기 이전에 중단되었는지 여부를 판단할 수 있다(570). 여기서, 원자적 영속화 모드는 쓰기 커맨드들에 대하여 저장 매체에서의 영속화가 일체로 이루어지도록 하는 모드일 수 있다. The storage device may be configured to execute the write commands from at least one of the plurality of write commands after the atomic persistence mode is set by the group start delimiter to at least one group termination delimiter before the atomic persistence mode is released. (570) whether or not the suspended persistence has been completed. Herein, the atomic persistence mode may be a mode in which persistence in a storage medium is made integral with respect to write commands.

570에서 영속화가 완료되기 이전에 중단된 경우, 저장 장치는 원자적 영속화 모드가 설정된 이후부터 상기 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 줄 수 있다(580). In step 570, if the storage device is stopped before completion of the persistence, the storage device makes all the information included in the write commands until the atomic persistence mode is released after the atomic persistence mode is set to the non-persistent state (580).

하지만, 570에서 영속화가 완료된 이후에 동작이 중단된 경우, 저장 장치는 추가적인 동작의 수행 없이 바로 동작을 종료할 수 있다. However, if the operation is interrupted after the persistence is completed at 570, the storage device may terminate the operation immediately without performing additional operations.

원자적 영속화 모드와 순차적 영속화 모드가 혼합된 경우에 스토리지 시스템의 구체적인 동작에 대하여는 도 11을 참조하여 설명한다.
The specific operation of the storage system when the atomic persistence mode and the sequential persistence mode are mixed will be described with reference to FIG.

도 6은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 원자적 영속화 요청을 표현하는 방법을 나타낸 도면이다. FIG. 6 illustrates a method of representing an atomic persistence request according to a method of controlling persistence in a storage medium according to an exemplary embodiment of the present invention. Referring to FIG.

도 6을 참조하면, 쓰기 데이터들을 영속화 단위로 추상화한 것을 살펴볼 수 있다. 여기서, 영속화 단위는 하나의 쓰기 커맨드(write command), 혹은 다수의 쓰기 커맨드로 이루어진 커맨드 그룹(group of write commands)이 될 수 있다.Referring to FIG. 6, it can be seen that the write data is abstracted in units of persistence. Here, the persistence unit may be a write command or a group of write commands consisting of a plurality of write commands.

610과 같은 복수의 쓰기 커맨드들에 대하여 영속화 단위를 표현하기 위해서, 호스트 시스템은 630과 같이 하나의 영속화 단위에 포함되어야 하는 첫 번째 쓰기 커맨드(예를 들어, W0)의 앞에 그룹 시작 구분자(GStart)를 삽입하여 원자적 영속화 모드를 설정할 수 있다. 또한, 호스트 시스템은 하나의 영속화 단위에 포함되어야 하는 마지막 쓰기 커맨드(예를 들어, W2)의 뒤에 그룹 종료 구분자(GEnd)를 삽입하여 원자적 영속화 모드를 해제시킬 수 있다. In order to represent a persistence unit for a plurality of write commands, such as 610, the host system prepares a group start delimiter (G) in front of a first write command (e.g., W 0 ) that should be included in one persistence unit, Start ) to insert the atomic persistence mode. In addition, the host system may release the atomic persistence mode by inserting a group end delimiter (G End ) after the last write command (e.g., W 2 ) that should be included in a persistence unit.

즉, 원자적 영속화 모드가 설정되어 있는 동안 입력된 쓰기 커맨드는 하나의 그룹으로 표현하여 원자성을 가지고 영속화 되도록 하는 의도를 전달할 수 있다. 이를 위해, 일 실시예에서는 “원자적 영속화 모드 설정”, “원자적 영속화 모드 해제”를 기존의 저장 장치의 모드 변경 커맨드의 부명령(sub-command)으로 추가할 수 있다. That is, while the atomic persistence mode is set, the write commands entered can be expressed as a group to convey the intention to be persistent with atomicity. For this purpose, in one embodiment, "setting the atomic persistence mode" and "releasing the atomic persistence mode" can be added as a sub-command of the mode change command of the existing storage device.

예를 들어, ATA 인터페이스는 Set Features 커맨드를 제공하여 호스트 시스템이 저장 장치의 동작 모드를 변경하도록 할 수 있다. 따라서, 일 실시예에서는 원자적 영속화 모드 설정/해제 기능을 Set Features 커맨드의 부명령으로 추가하여 ATA 인터페이스에서 구현할 수 있다.For example, the ATA interface may provide the Set Features command to cause the host system to change the operating mode of the storage device. Thus, in one embodiment, ATD interface can be implemented by adding / disabling the atomic persistence mode as a sub command of the Set Features command.

또한, 원자적 영속화 모드가 설정 되어있는 상태에서 그룹 구분자(group delimiter)(GDelim)가 입력되면, 그룹 구분자를 경계로 새로운 원자적 영속화 그룹(atomic group)이 시작될 수 있다. In addition, when a group delimiter (G delim ) is input while the atomic persistence mode is set, a new atomic group can be started with the group delimiter as a boundary.

그룹 구분자 역시 저장 장치 모드 변경 커맨드의 부명령으로 구현할 수 있다. The group delimiter can also be implemented as a subcommand of the storage device mode change command.

일 실시예에서는 이와 같은 방법으로 연속적으로 전달된 쓰기 커맨드들이 같은 영속화 그룹에 속하도록 하여 영속화의 원자성 요구를 전달할 수 있다. 하나의 영속화 그룹 내의 쓰기 커맨드들은 순서에 무관하게 영속화 될 수 있고 영속화의 원자성만을 보장하면 된다.In one embodiment, consecutive write commands in this manner may belong to the same persistence group to convey the atomicity requirement of persistence. Write commands within a persistence group can be persisted in any order and only atomicity of persistence can be guaranteed.

일 실시예에서는 호스트 인터페이스를 통해 도착된 W0, W1, W2, … W9의 쓰기 커맨드들(610)에 630과 같이 그룹 시작 구분자(GStart), 그룹 종료 구분자(GEnd) 및 그룹 구분자(GDelim)를 삽입하여 원자적 영속화 모드의 설정 및 해제를 설정하여 저장 장치에게 전달할 수 있다. In one embodiment, W 0 , W 1 , W 2 , ... The group start delimiter (G Start ), the group end delimiter (G End ), and the group delimiter (G delim ) are inserted in the write commands 610 of W 9 to set and release the atomic persistence mode Device.

저장 장치는 이를 통하여 650과 같이 논리적인 원자적 영속화 단위를 추출해 낼 수 있다.
Through this, the storage device can extract a logical atomic persistence unit such as 650.

도 7은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 나타낸 플로우차트이다. 도 7을 참조하면, 순차적 영속화 모드에 따른 스토리지 시스템의 동작을 살펴볼 수 있다. 7 is a flowchart illustrating a method for controlling persistence in a storage medium according to an embodiment. Referring to FIG. 7, the operation of the storage system according to the sequential persistence mode can be examined.

일 실시예에 따른 호스트 시스템은 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성할 수 있다(710). A host system according to one embodiment may generate 710 a plurality of write commands for writing data to a storage medium.

호스트 시스템은 복수의 쓰기 커맨드들 사이에 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자를 삽입할 수 있다. The host system may insert a mode start delimiter indicating the start of the sequential persistence mode and a mode end delimiter indicating the end of the sequential persistence mode between a plurality of write commands.

보다 구체적으로, 호스트 시스템은 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 순차적 영속화 모드의 설정을 위한 모드 시작 구분자를 삽입할 수 있다(720).More specifically, the host system may insert a mode start delimiter for setting the sequential persistence mode in the first write command among the write commands in which persistence in the storage medium must be performed in order (720).

호스트 시스템은 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 순차적 영속화 모드의 해제를 위한 모드 종료 구분자를 삽입할 수 있다(730). The host system may insert a mode termination delimiter for releasing the sequential persistence mode to the last write command among the write commands that must be performed in order of persistence (730).

여기서, 순차적 영속화 모드는 저장 매체에서 복수의 쓰기 커맨드들 사이의 영속화 순서를 설정하는 모드로서, 모드 시작 구분자의 삽입에 의해 설정되고, 모드 종료 구분자의 삽입에 의해 해제될 수 있다. Here, the sequential persistent mode is a mode for setting a persistence order between a plurality of write commands in the storage medium, which is set by inserting a mode start delimiter, and can be released by inserting a mode end delimiter.

저장 장치는 모드 시작 구분자 및 모드 종료 구분자를 이용하여 복수의 쓰기 커맨드들에 대하여 영속화 순서를 판단할 수 있다(740).The storage device may determine a persistence order for a plurality of write commands using a mode start delimiter and a mode end delimiter (740).

이때, 저장 장치는 복수의 쓰기 커맨드들에 순차적 영속화 모드의 설정을 위한 모드 시작 구분자 및 순차적 영속화 모드의 해제를 위한 모드 종료 구분자가 삽입되어 있는지 여부를 기초로 영속화 순서를 판단할 수 있다. At this time, the storage device can determine the persistence order based on whether a mode start delimiter for setting a sequential persistence mode and a mode end delimiter for releasing a sequential persistence mode are inserted into a plurality of write commands.

즉, 저장 장치는 모드 시작 구분자 및 모드 종료 구분자가 삽입되어 있는 경우에는 쓰기 커맨드들 간에 영속화 순서가 있는 것으로 판단할 수 있다. That is, when the mode start delimiter and the mode end delimiter are inserted, the storage device can determine that there is a persistence order among the write commands.

저장 장치는 740의 판단 결과에 기초하여 복수의 쓰기 커맨드들을 처리할 수 있다. The storage device may process a plurality of write commands based on the determination result of 740. [

즉, 저장 장치는 복수의 쓰기 커맨드들 중 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 모드 종료 구분자에 의해 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 저장 매체에 순차적으로 영속화할 수 있다(750). That is, after the sequential persistence mode is set by the mode start delimiter among the plurality of write commands, and the write data corresponding to the write commands until the sequential persistence mode is released by the mode end delimiter, And sequentially persisted to the storage medium in order of transmission through the interface (750).

순차적 영속화 모드에 따른 스토리지 시스템의 구체적인 동작에 대하여는 도 11을 참조하여 설명한다.
The specific operation of the storage system according to the sequential persistence mode will be described with reference to FIG.

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

도 8을 참조하면, 기존의 호스트 인터페이스 기술과의 호환성(backwards compatibility)을 최대한으로 유지하며, 일 실시예에 따른 저장 매체에서의 영속화를 수행하는 인터페이스 기술의 확장을 살펴볼 수 있다. Referring to FIG. 8, an extension of the interface technology for maintaining backwards compatibility with existing host interface technology and performing persistence in a storage medium according to an exemplary embodiment can be examined.

도 8에 나타낸 것처럼 기존의 저장 장치의 모드 변경 커맨드에 "순차적 영속화 모드"와 "원자적 영속화 모드"를 설정/해제, "그룹 구분자"의 부명령을 추가하여 저장 장치 동작 모드를 변경할 수 있다. 이때, 부명령은 기존에 정의되어있는 부명령의 식별 코드와 겹치지 않는 것으로 선택할 수 있다. 예를 들어, 기존에 제공되던 쓰기 캐시 활성화/비활성화 부명령의 식별코드와 다른 것을 선택하여 기존 기술과의 호환성을 유지할 수 있다. The storage device operation mode can be changed by adding / deleting the " sequential persistence mode "and" atomic persistence mode "to the mode change command of the existing storage device as shown in FIG. At this time, the sub-command can be selected so as not to overlap the identification code of the sub-command defined previously. For example, compatibility with the existing technology can be maintained by selecting a different code from the existing code cache enable / disable command.

순차적 영속화 모드의 설정/해제와 원자적 영속화 모드의 설정/해제, 그리고 그룹 구분자를 명기하는 방법은 실시예에 따라 다양하게 구현될 수 있다. The method of setting / releasing the sequential persistence mode, setting / releasing the atomic persistence mode, and specifying the group identifier can be variously implemented according to the embodiment.

도 8에 나타낸 것과 같이 저장 장치 모드 변경 커맨드의 부명령으로 전달하는 방법 이외에도, 기존의 커맨드 자료 구조에 사용하지 않는 필드에 다섯 가지 정보(순차적 영속화 모드의 설정/해제와 원자적 영속화 모드의 설정/해제, 및 그룹 구분자)를 삽입하여 전달할 수도 있고, 독립된 커맨드를 정의할 수도 있다. 이 밖에도, 쓰기 데이터의 대역 외 스페어 데이터 영역(out-of-band spare data area)에 해당 정보들을 포함하는 구현도 가능하다. In addition to the method of transferring to the subcommand of the storage device mode change command as shown in FIG. 8, there are five kinds of information (setting / release of the sequential persistence mode and setting of the atomic persistence mode / Release, and group delimiter) can be inserted and transmitted, or an independent command can be defined. In addition, it is also possible to include such information in an out-of-band spare data area of 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.

일 실시예에서는 설명의 편의를 위하여 저장 장치 모드 변경 커맨드의 부명령으로 전달하는 방법에 따라 설명한다.
In an embodiment, for convenience of explanation, a method of transferring to a sub command of a storage device mode change command will be described.

도 9는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 일부의 쓰기 커맨드에 대한 순차적 영속화 요청을 전달하는 방법을 나타낸 도면이다. 9 is a diagram illustrating a method for transferring a sequential persistence request for a part of write commands according to a method of controlling persistence in a storage medium according to an exemplary embodiment.

원자적 영속화 요청의 표현 방법과 마찬가지로 순차적 영속화 모드가 설정된 동안 입력된 쓰기 커맨드들에 해당되는 쓰기 데이터는 순차적 영속화 모드가 해제될 때까지 순차적으로 영속화될 수 있다. Like the atomic persistence request, the write data corresponding to the write commands entered while the sequential persistence mode is set can be sequentially persisted until the sequential persistence mode is released.

이를 위하여, "순차적 영속화 모드 설정" 및 "순차적 영속화 모드 해제"를 저장 장치 모드 변경 커맨드의 부명령으로 추가할 수 있다. To this end, it is possible to add "sequential persistence mode setting" and "sequential persistence mode release" as subcommands of the storage device mode change command.

일 실시예에서는 일련의 쓰기 커맨드에 인터페이스 확장 기술을 적용하여 일부의 쓰기 커맨드에 대한 순차적 영속화 요청을 전달할 수 있다. In one embodiment, an interface extension technique may be applied to a series of write commands to deliver sequential persistence requests for some write commands.

도 9를 참조하면, 쓰기 커맨드 W0와 W1 사이에 모드 시작 구분자(OStart)를 삽입하여 순차적 영속화 모드를 설정하고, 쓰기 커맨드 W2와 W3 사이에 모드 종료 구분자(OEnd)를 삽입하여 순차적 영속화 모드를 해제할 수 있다. 9, a sequential persistence mode is set by inserting a mode start delimiter (O Start ) between write commands W 0 and W 1 , and a mode end delimiter (O End ) is inserted between write commands W 2 and W 3 So that the sequential persistence mode can be released.

또한, 쓰기 커맨드 W4와 W5 사이에 모드 시작 구분자(OStart)를 삽입하여 순차적 영속화 모드를 설정하고, W8과 W9 사이에 모드 종료 구분자(OEnd)를 삽입하여 순차적 영속화 모드를 해제시킬 수 있다. In addition, a sequential persistence mode is set by inserting a mode start delimiter (O Start ) between write commands W 4 and W 5 , and a mode end delimiter (O End ) is inserted between W 8 and W 9 to release the sequential persistence mode .

이 경우, 저장 장치는 순차적 영속화가 강제된 W2-> W1과 W8 -> W7-> W6 ->W5 에 대해서만 순차적 영속화를 보장하고, 나머지에 대해서는 순서에 상관없이 영속화할 수 있다. 또한, W2-> W1과 W8 -> W7-> W6 ->W5 쓰기 순서열에 대해서도 상호간에 순서를 보장할 필요 없이 독립적으로 영속화할 수 있다.
In this case, the storage device is made up of W 2 -> W 1 and W 8 -> W 7 -> W 6 -> W 5 , and the rest can be persisted in any order. In addition, W 2 -> W 1 and W 8 -> W 7 -> W 6 -> W 5 Write order columns can also be independently persisted without having to guarantee mutual order.

도 10은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 원자적 영속화 요청을 전달하는 방법을 나타낸 도면이다. 도 10을 참조하면, 순차적 영속화 모드를 사용하지 않을 때에 원자적 영속화 모드에서의 스토리지 시스템의 동작을 살펴볼 수 있다. 10 is a diagram illustrating a method for transferring an atomic persistence request according to a method of controlling persistence in a storage medium according to an exemplary embodiment of the present invention. Referring to FIG. 10, the operation of the storage system in the atomic persistence mode can be examined when the sequential persistence mode is not used.

스토리지 시스템은 원자적 영속화 모드의 설정/해제와 그룹 구분자를 일련의 쓰기 커맨드 사이에 삽입하여 원자적으로 영속화되어야 할 영속화 단위를 정의할 수 있다. 이 경우, 저장 장치는 영속화 그룹 (W1, W2), (W5), (W6,W7,W8), (W9) 에 대하여 각각을 원자적으로 영속화해주어야 하며, 각 영속화 그룹 사이의 순서 의존성은 존재하지 않는다.
The storage system can define a persistence unit that is atomically persistent by inserting / disabling atomic persistence mode and group delimiters between a series of write commands. In this case, the storage device must atomically persist each of the persistent groups W 1 , W 2 , W 5 , W 6 , W 7 , W 8 , and W 9 , There is no order dependency between the two.

도 11은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법에 따라 순차적 영속화 모드와 원자적 영속화 모드를 조합하여 사용하는 방법을 나타낸 도면이다. 도 11을 참조하면, 순차적 영속화 모드와 원자적 영속화 모드가 조합된 경우에 스토리지 시스템의 동작을 살펴볼 수 있다. 11 is a diagram illustrating a method of using a sequential persistence mode and an atomic persistence mode according to a method of controlling persistence in a storage medium according to an exemplary embodiment of the present invention. Referring to FIG. 11, the operation of the storage system can be examined when the sequential persistence mode and the atomic persistence mode are combined.

일 실시예에 따른 순차적 영속화 모드와 원자적 영속화 모드는 조합될 수 있으며, 아래의 [표 1]을 통해 두 모드를 조합하여 사용하였을 경우의 효과를 살펴볼 수 있다. The sequential persistence mode and the atomic persistence mode according to an embodiment can be combined, and the effect of using the two modes in combination can be examined through Table 1 below.

순차적 영속화 모드와 원자적 영속화 모드가 모두 설정되었을 경우, 그룹 간의 영속화 순서도 제어할 수 있다.If both the sequential persistence mode and the atomic persistence mode are set, the persistence sequence between the groups can also be controlled.

Figure 112012100639398-pat00001
Figure 112012100639398-pat00001

전체의 쓰기 커맨드들은 모두 순차적 영속화 모드가 설정된 상태에서 입력되었고, (W1,W2), (W3,W4), (W7,W8,W9)에 대해서는 원자적으로 영속화 해줄 것이 요구되었다. All write commands are entered with the sequential persistence mode set and atomically persistent for (W 1 , W 2 ), (W 3 , W 4 ), (W 7 , W 8 , W 9 ) Required.

이 경우, 저장 장치는 (W7,W8,W9)-> W6-> W5-> (W3,W4)-> (W1 ,W2) -> W1 의 순서 의존성을 지켜 영속화를 처리할 수 있다. 이때, 도 10의 경우와 마찬가지로 같은 원자적 영속화 그룹에 속해있는 쓰기 커맨드들은 순서에 상관없이 영속화되어도 무관하다.In this case, the storage device has an order dependency of (W 1 , W 2 ) -> W 1 - (W 7 , W 8 , W 9 ) -> W 6 -> W 5 -> (W 3 , W 4 ) You can keep and handle persistence. In this case, as in the case of FIG. 10, the write commands belonging to the same atomic persistence group may be persistent regardless of the order.

호스트 시스템으로부터 전달된 영속화 형상 제어 요청(예를 들어, 영속화 원자성/순서성 제어 요청)을 지키며 영속화를 진행하면 어떤 시점에서 크래시 상황이 발생하여도, 저장 장치는 파일 시스템에 항상 일관된 영속화 형상을 제공할 수 있다. 따라서, 파일 시스템은 언제든 쓰기 커맨드들을 일관된 상태로 복구할 수 있으므로, 영속화 형상 제어 요청의 결과를 반드시 호스트 시스템에 알려줄 필요는 없다. 단지, 영속화되는 시점이 조금 늦춰질 뿐, 저장 장치는 호스트 시스템이 의도한 대로 영속화 과정을 수행할 것이기 때문이다.
If a persistent configuration control request (for example, a persistent atomicity / order control request) from a host system is followed and persisted, the storage device always maintains a consistent persistence form on the file system . Thus, the file system can always restore the write commands to a consistent state, so it is not necessary to inform the host system of the result of the persistence control request. Just because the point of persistence is slowed down a bit, the storage device will perform the persistence process as intended by the host system.

도 12는 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 방법을 Serial ATA(SATA) Set Features 커맨드의 자료 구조에 적용한 결과를 나타낸 도면이다. 도 12 및 아래의 [표 3]을 참조하면, SATA 인터페이스 확장 기술의 부명령 코드 표에 대한 실시예를 살펴볼 수 있다. 12 is a diagram illustrating a result of applying a method of controlling persistence in a storage medium according to an embodiment to a data structure of a Serial ATA (SATA) Set Features command. Referring to FIG. 12 and the following Table 3, an embodiment of the sub-command code table of the SATA interface expansion technique can be examined.

이는 현재 PC나 노트북과 같은 일반 사용자를 위한 컴퓨터 시스템에서 널리 사용되고 있는 Serial ATA를 대상으로 한 것으로, Serial ATA의 Set Features 커맨드의 부명령(sub-command)를 확장하여, 순차적 영속화를 요청하고, 원자적 영속화 그룹을 정의할 수 있음을 볼 수 있다. It is aimed at Serial ATA, which is widely used in computer systems for general users such as PCs and laptops. It extends sub-command of Serial ATA's Set Features command to request sequential persistence, You can see that you can define persistent persistence groups.

Figure 112012100639398-pat00002
Figure 112012100639398-pat00002

도 12는 SATA 인터페이스의 Set Features 커맨드에 대한 자료 구조를 나타낸다. 여기서, 0번째 dword의 Byte 2에 커맨드 코드 EFh를 적어주면 Set Features 커맨드로 인식하는데, 0번째 dword의 Byte 3에 적히는 sub-command의 코드에 따라 호스트 시스템은 저장 장치의 동작 모드를 변경할 수 있다. 일 실시예에 따른 영속화 형상을 제어를 할 수 있는 부명령의 코드는 [표 2]를 통해 살펴볼 수 있다. 12 shows a data structure of the Set Features command of the SATA interface. Here, if the command code EFh is written in the Byte 2 of the 0th dword, it is recognized as the Set Features command, and the host system can change the operation mode of the storage device according to the code of the sub-command written in Byte 3 of the 0th dword . The code of the sub-instruction that can control the persistent shape according to the embodiment is shown in [Table 2].

새로 추가된 부명령의 코드는 [표 3]에 나타낸 기존의 SATA 인터페이스에서 활용하는 부명령의 코드와 겹치는 것이 없으므로, 기존 인터페이스와의 호환성을 유지하면서도 영속화 형상 제어를 위한 기능을 확장하여 표현할 수 있다.Since the code of the newly added subcommand does not overlap with the code of the subcommand used in the existing SATA interface shown in [Table 3], it is possible to express the function for controlling the persistent shape while maintaining compatibility with the existing interface .

Figure 112012100639398-pat00003
Figure 112012100639398-pat00003

도 13은 일 실시예에 따른 저장 매체에서의 영속화를 제어하는 스토리지 시스템의 블록도이다. 도 13을 참조하면, 일 실시예에 따른 스토리지 시스템(1300)은 호스트 인터페이스(1310), 컨트롤러(1330) 및 저장 매체(1350)를 포함할 수 있다. 여기서, 저장 매체(1350)는 저장 장치에 포함될 수 있다.호스트 인터페이스(1310)는 호스트 시스템으로부터 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들 및 복수의 쓰기 커맨드들 사이에 삽입된 적어도 하나의 그룹의 시작을 나타내는 적어도 하나의 그룹 시작 구분자 및 적어도 하나의 그룹의 종료를 나타내는 적어도 하나의 그룹 종료 구분자를 수신할 수 있다. 13 is a block diagram of a storage system that controls persistence in a storage medium according to one embodiment. 13, a storage system 1300 according to one embodiment may include a host interface 1310, a controller 1330, and a storage medium 1350. The host interface 1310 may include a plurality of write commands for writing data to the storage medium from the host system and at least one group of write commands inserted between the plurality of write commands, At least one group start delimiter indicating the start of at least one group and at least one group end delimiter indicating the end of at least one group.

여기서, 그룹 시작 구분자는 복수의 쓰기 커맨드들 중 적어도 하나의 그룹에 포함되어 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 삽입될 수 있다. Here, the group start delimiter may be included in at least one group of the plurality of write commands and inserted into the first write command among the write commands that must be permanently persistent in the storage medium.

또한, 그룹 종료 구분자는 첫 번째 쓰기 커맨드와 동일한 그룹에 포함된 마지막 쓰기 커맨드에 삽입될 수 있다. Also, the group end delimiter may be inserted into the last write command included in the same group as the first write command.

컨트롤러(1330)는 적어도 하나의 그룹 시작 구분자 및 적어도 하나의 그룹 종료 구분자를 이용하여 복수의 쓰기 커맨드들로부터 적어도 하나의 그룹을 식별할 수 있다. 그리고, 컨트롤러(1330)는 식별된 적어도 하나의 그룹에 기초하여 복수의 쓰기 커맨드들에 대하여 영속화 순서 또는 영속화 원자성을 판단하며, 판단 결과에 기초하여 복수의 쓰기 커맨드들을 처리할 수 있다. The controller 1330 may identify at least one group from the plurality of write commands using at least one group start delimiter and at least one group end delimiter. The controller 1330 determines a persistence order or persistence atomicity for a plurality of write commands based on the identified at least one group, and can process a plurality of write commands based on the determination result.

컨트롤러(1330)는 적어도 하나의 그룹 시작 구분자에 의해 시작되고, 적어도 하나의 그룹 종료 구분자에 의해 종료되는 적어도 하나의 그룹의 사이에 적어도 하나의 그룹을 다른 그룹과 구분하기 위한 그룹 구분자가 포함되어 있는지 여부를 판단할 수 있다. The controller 1330 determines whether at least one group started by at least one group start delimiter and ending by at least one group end delimiter includes a group delimiter for distinguishing at least one group from another group Can be determined.

컨트롤러(1330)는 복수의 쓰기 커맨드들 중 적어도 하나의 그룹 시작 구분자에 의해 원자적 영속화 모드가 설정된 이후부터, 적어도 하나의 그룹 종료 구분자에 의해 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 대하여 진행되던 영속화가 완료되기 이전에 중단된 경우, 원자적 영속화 모드가 설정된 이후부터 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 줄 수 있다. The controller 1330 determines whether or not at least one of the plurality of write commands includes at least one group start delimiter after the atomic persistence mode is set by the at least one group start delimiter, The information contained in the write commands from the time when the atomic persistence mode is set to the time when the atomic persistence mode is released can be made non-persistent.

여기서, 원자적 영속화 모드는 쓰기 커맨드들에 대하여 저장 매체에서의 영속화가 일체로 이루어지도록 하는 모드일 수 있다. Herein, the atomic persistence mode may be a mode in which persistence in a storage medium is made integral with respect to write commands.

순차적 영속화 모드의 설정을 위한 모드 시작 구분자는 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 삽입될 수 있다. 또한, 순차적 영속화 모드의 해제를 위한 모드 종료 구분자는 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 삽입될 수 있다. The mode start delimiter for setting the sequential persistence mode may be inserted into the first write command among the write commands that must be made persistent in the storage medium in order. Also, the mode termination delimiter for releasing the sequential persistence mode can be inserted into the last write command among the write commands for which persistence is to be performed in order.

순차적 영속화 모드는 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드일 수 있다. The sequential persistence mode may be a mode for setting a persistence order between write data corresponding to a plurality of write commands in the storage medium.

컨트롤러(1330)는 복수의 쓰기 커맨드들 사이에 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자가 삽입되어 있는지 여부를 판단할 수 있다. The controller 1330 can determine whether a mode start delimiter indicating the start of the sequential persistence mode and a mode end delimiter indicating the end of the sequential persistence mode are inserted between the plurality of write commands.

컨트롤러(1330)는 복수의 쓰기 커맨드들 중 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 모드 종료 구분자에 의해 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 저장 매체에 순차적으로 영속화할 수 있다. The controller 1330 writes the write data corresponding to the write commands until the sequential persistence mode is released by the mode end delimiter after the sequential persistence mode is set by the mode start delimiter among the plurality of write commands, It is possible to sequentially perform persistence on the storage medium in the order in which they are transmitted through the interface.

저장 매체(1350)에는 처리 결과에 따라 복수의 쓰기 커맨드들이 영속화될 수 있다. In the storage medium 1350, a plurality of write commands may be made persistent according to the processing result.

이때, 저장 매체(1350)를 포함하는 저장 장치는 해당 저장 장치가 영속화 순서 또는 영속화 원자성과 관련된 영속화 형상 제어가 가능한 장치임을 호스트 인터페이스(1310)를 통해 호스트 시스템에게 알릴 수 있다. At this time, the storage device including the storage medium 1350 can notify the host system through the host interface 1310 that the storage device is a device capable of controlling the persistent configuration related to persistence order or persistent atomicity.

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

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

도 14를 참조하면, 다른 실시예에 따른 스토리지 시스템(1400)은 호스트 인터페이스(1410), 컨트롤러(1430) 및 저장 매체(1450)를 포함할 수 있다. 14, a storage system 1400 according to another embodiment may include a host interface 1410, a controller 1430, and a storage medium 1450.

호스트 인터페이스(1410)는 호스트 시스템으로부터 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들 및 복수의 쓰기 커맨드들 사이에 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자를 수신할 수 있다. The host interface 1410 includes a plurality of write commands for writing data to the storage medium from the host system, a mode start delimiter indicating the start of the sequential persistence mode and a mode end delimiter indicating the end of the sequential persistence mode Lt; / RTI >

여기서, 순차적 영속화 모드는 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드일 수 있다. 또한, 모드 시작 구분자는 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 삽입될 수 있다. 모드 종료 구분자는 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 삽입될 수 있다. Here, the sequential persistence mode may be a mode for setting a persistence order between write data corresponding to a plurality of write commands in the storage medium. Also, the mode start delimiter may be inserted into the first write command among the write commands that must be made persistent in the storage medium in order. The mode termination delimiter can be inserted into the last write command among the write commands in which persistence must be performed in order.

컨트롤러(1430)는 모드 시작 구분자 및 모드 종료 구분자를 이용하여 복수의 쓰기 커맨드들에 대하여 영속화 순서를 판단하고, 판단 결과에 기초하여 복수의 쓰기 커맨드들을 처리할 수 있다. The controller 1430 can determine a persistence order for a plurality of write commands using the mode start delimiter and the mode end delimiter, and process the plurality of write commands based on the determination result.

컨트롤러(1430)는 복수의 쓰기 커맨드들에 순차적 영속화 모드의 설정을 위한 모드 시작 구분자 및 순차적 영속화 모드의 해제를 위한 모드 종료 구분자가 삽입되어 있는지 여부를 판단할 수 있다. The controller 1430 can determine whether a mode start delimiter for setting the sequential persistence mode and a mode term delimiter for releasing the sequential persistence mode are inserted into a plurality of write commands.

컨트롤러(1430)는 복수의 쓰기 커맨드들 중 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 모드 종료 구분자에 의해 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 저장 매체에 순차적으로 영속화할 수 있다. The controller 1430 writes the write data corresponding to the write commands before the sequential persistence mode is released by the mode end delimiter after the sequential persistence mode is set by the mode start delimiter among the plurality of write commands, It is possible to sequentially perform persistence on the storage medium in the order in which they are transmitted through the interface.

저장 매체(1450)에는 처리 결과에 따라 복수의 쓰기 커맨드들이 영속화될 수 있다.
A plurality of write commands may be persisted in the storage medium 1450 according to the processing result.

상술한 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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 (25)

저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성하는 단계;
상기 복수의 쓰기 커맨드들 사이에 상기 복수의 쓰기 커맨드들에 대한 적어도 하나의 그룹의 시작을 나타내는 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹의 종료를 나타내는 적어도 하나의 그룹 종료 구분자를 삽입하는 단계;
상기 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹 종료 구분자를 이용하여 상기 복수의 쓰기 커맨드들로부터 적어도 하나의 그룹을 식별하는 단계;
상기 식별된 적어도 하나의 그룹에 기초하여 상기 복수의 쓰기 커맨드들에 대하여 영속화 순서 또는 영속화 원자성을 판단하는 단계; 및
상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 단계
를 포함하고,
상기 복수의 쓰기 커맨드들을 처리하는 단계는
상기 적어도 하나의 그룹에 상기 적어도 하나의 그룹을 다른 그룹과 구분하기 위한 그룹 구분자가 포함되어 있지 않는 경우, 상기 적어도 하나의 그룹에 포함된 적어도 하나의 쓰기 커맨드의 영속화를 일체로 수행하는, 저장 매체에서의 영속화를 제어하는 방법.
Generating a plurality of write commands for writing data to a storage medium;
Inserting at least one group start delimiter indicating the start of at least one group for the plurality of write commands between the plurality of write commands and at least one group end delimiter indicating the end of the at least one group ;
Identifying at least one group from the plurality of write commands using the at least one group start delimiter and the at least one group end delimiter;
Determining a persistence order or persistence atomicity for the plurality of write commands based on the identified at least one group; And
Processing the plurality of write commands based on the determination result
Lt; / RTI >
The processing of the plurality of write commands
Wherein the at least one group performs at least one persistence of at least one write command included in the at least one group when the at least one group does not include a group identifier for distinguishing the at least one group from another group, Lt; / RTI >
제1항에 있어서,
상기 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹 종료 구분자를 삽입하는 단계는
상기 복수의 쓰기 커맨드들 중 상기 적어도 하나의 그룹에 포함되어 상기 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 상기 그룹 시작 구분자를 삽입하는 단계; 및
상기 첫 번째 쓰기 커맨드와 동일한 그룹에 포함된 마지막 쓰기 커맨드에 상기 그룹 종료 구분자를 삽입하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
Wherein inserting the at least one group start delimiter and the at least one group end delimiter comprises:
Inserting the group start delimiter into a first write command among write commands included in the at least one group among the plurality of write commands and to be permanently persistent in the storage medium; And
Inserting the group end delimiter into a last write command included in the same group as the first write command
≪ / RTI >
제1항에 있어서,
상기 복수의 쓰기 커맨드들에 대하여 영속화 원자성을 판단하는 단계는
상기 적어도 하나의 그룹 시작 구분자에 의해 시작되고, 상기 적어도 하나의 그룹 종료 구분자에 의해 종료되는 적어도 하나의 그룹의 사이에 상기 적어도 하나의 그룹을 다른 그룹과 구분하기 위한 그룹 구분자가 포함되어 있는지 여부를 판단하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
Wherein the step of determining persistent atomicity for the plurality of write commands comprises:
Whether or not a group delimiter for distinguishing the at least one group from another group is included among at least one group started by the at least one group start delimiter and terminated by the at least one group end delimiter Step to judge
≪ / RTI >
제1항에 있어서,
상기 복수의 쓰기 커맨드들을 처리하는 단계는
상기 복수의 쓰기 커맨드들 중 상기 적어도 하나의 그룹 시작 구분자에 의해 원자적 영속화 모드가 설정된 이후부터, 상기 적어도 하나의 그룹 종료 구분자에 의해 상기 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 대하여 진행되던 영속화가 완료되기 이전에 중단된 경우,
상기 원자적 영속화 모드가 설정된 이후부터 상기 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 주는 단계
를 더 포함하고,
상기 원자적 영속화 모드는
상기 쓰기 커맨드들에 대하여 상기 저장 매체에서의 영속화가 일체로 이루어지도록 하는 모드인 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
The processing of the plurality of write commands
Wherein at least one of the plurality of write commands includes at least one group start delimiter and at least one group end delimiter for each write command from the time at which the atomic persistence mode is set by the at least one group start delimiter until the atomic persistence mode is released by the at least one group end delimiter, If the ongoing persistence is stopped before completion,
Making all the information included in the write commands until the atomic persistence mode is released after the atomic persistence mode is set to a state in which the information contained in the write commands is not persistent
Further comprising:
The atomic persistence mode
Wherein the persistence in the storage medium is consistent with the write commands in the storage medium.
제1항에 있어서,
상기 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 순차적 영속화 모드의 설정을 위한 모드 시작 구분자를 삽입하는 단계; 및
상기 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자를 삽입하는 단계
를 더 포함하고,
상기 순차적 영속화 모드는
상기 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드인 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
Inserting a mode start delimiter for setting a sequential persistence mode in a first write command among write commands in which persistence in the storage medium must be performed in order; And
Inserting a mode termination delimiter for releasing the sequential persistence mode into the last write command among the write commands that must be performed in order of persistence
Further comprising:
The sequential persistence mode
Wherein a persistence order is set between write data corresponding to a plurality of write commands in the storage medium.
제1항에 있어서,
상기 복수의 쓰기 커맨드들에 대하여 영속화 순서를 판단하는 단계는
상기 복수의 쓰기 커맨드들 사이에 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 상기 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자가 삽입되어 있는지 여부를 판단하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 1,
The step of determining the persistence order for the plurality of write commands
Determining whether a mode start delimiter indicating the start of the sequential persistence mode and a mode end delimiter indicating the end of the sequential persistence mode are inserted between the plurality of write commands
≪ / RTI >
제6항에 있어서,
상기 복수의 쓰기 커맨드들을 처리하는 단계는
상기 복수의 쓰기 커맨드들 중 상기 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 상기 모드 종료 구분자에 의해 상기 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 상기 저장 매체에 순차적으로 영속화하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
The method according to claim 6,
The processing of the plurality of write commands
Wherein the writing control unit is configured to write data corresponding to write commands from the plurality of write commands until the sequential persistence mode is set by the mode start delimiter and before the sequential persistence mode is released by the mode term identifier, Sequentially sequential to the storage medium in the order in which they are transmitted through the storage medium
≪ / RTI >
저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들을 생성하는 단계;
상기 복수의 쓰기 커맨드들 사이에 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 상기 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자를 삽입하는 단계;
상기 모드 시작 구분자 및 상기 모드 종료 구분자를 이용하여 상기 복수의 쓰기 커맨드들에 대하여 영속화 순서를 판단하는 단계; 및
상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 단계
를 포함하고,
상기 순차적 영속화 모드는
상기 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드이며,
상기 복수의 쓰기 커맨트들을 처리하는 단계는
상기 판단 결과에 기초하여, 상기 복수의 쓰기 커맨드들 중 상기 순차적 영속화 모드가 설정된 동안 입력된 쓰기 커맨드들에 해당되는 쓰기 데이터를 상기 순차적 영속화 모드가 해제될 때까지 순차적으로 영속화하는, 저장 매체에서의 영속화를 제어하는 방법.
Generating a plurality of write commands for writing data to a storage medium;
Inserting a mode start delimiter indicating the start of the sequential persistence mode and a mode end delimiter indicating the end of the sequential persistence mode between the plurality of write commands;
Determining a persistence order for the plurality of write commands using the mode start delimiter and the mode end delimiter; And
Processing the plurality of write commands based on the determination result
Lt; / RTI >
The sequential persistence mode
A mode for setting a persistence order between write data corresponding to a plurality of write commands in the storage medium,
The processing of the plurality of write comments
Wherein the write data corresponding to the write commands inputted while the sequential persistence mode is set among the plurality of write commands is sequentially persistent until the sequential persistence mode is released based on the determination result How to control persistence.
제8항에 있어서,
상기 모드 시작 구분자 및 상기 모드 종료 구분자를 삽입하는 단계는
상기 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 순차적 영속화 모드의 설정을 위한 모드 시작 구분자를 삽입하는 단계; 및
상기 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자를 삽입하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
9. The method of claim 8,
The step of inserting the mode start delimiter and the mode end delimiter
Inserting a mode start delimiter for setting a sequential persistence mode in a first write command among write commands in which persistence in the storage medium must be performed in order; And
Inserting a mode termination delimiter for releasing the sequential persistence mode into the last write command among the write commands that must be performed in order of persistence
≪ / RTI >
제8항에 있어서,
상기 복수의 쓰기 커맨드들에 대하여 영속화 순서를 판단하는 단계는
상기 복수의 쓰기 커맨드들에 상기 순차적 영속화 모드의 설정을 위한 모드 시작 구분자 및 상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자가 삽입되어 있는지 여부를 판단하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
9. The method of claim 8,
The step of determining the persistence order for the plurality of write commands
Determining whether a mode start delimiter for setting the sequential persistence mode and a mode end delimiter for releasing the sequential persistence mode are inserted into the plurality of write commands
≪ / RTI >
제10항에 있어서,
상기 복수의 쓰기 커맨드들을 처리하는 단계는
상기 복수의 쓰기 커맨드들 중 상기 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 상기 모드 종료 구분자에 의해 상기 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 상기 저장 매체에 순차적으로 영속화하는 단계
를 포함하는 저장 매체에서의 영속화를 제어하는 방법.
11. The method of claim 10,
The processing of the plurality of write commands
Wherein the writing control unit is configured to write data corresponding to write commands from the plurality of write commands until the sequential persistence mode is set by the mode start delimiter and before the sequential persistence mode is released by the mode term identifier, Sequentially sequential to the storage medium in the order in which they are transmitted through the storage medium
≪ / RTI >
제1항 내지 제11항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method according to any one of claims 1 to 11. 호스트 시스템으로부터 저장 장치 내의 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들 및 상기 복수의 쓰기 커맨드들 사이에 삽입된 적어도 하나의 그룹의 시작을 나타내는 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹의 종료를 나타내는 적어도 하나의 그룹 종료 구분자를 수신하는 호스트 인터페이스;
상기 적어도 하나의 그룹 시작 구분자 및 상기 적어도 하나의 그룹 종료 구분자를 이용하여 상기 복수의 쓰기 커맨드들로부터 적어도 하나의 그룹을 식별하고, 상기 식별된 적어도 하나의 그룹에 기초하여 상기 복수의 쓰기 커맨드들에 대하여 영속화 순서 또는 영속화 원자성을 판단하며, 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 컨트롤러; 및
상기 처리 결과에 따라 상기 복수의 쓰기 커맨드들을 영속화하는 저장 장치
를 포함하고,
상기 컨트롤러는,
상기 적어도 하나의 그룹에 상기 적어도 하나의 그룹을 다른 그룹과 구분하기 위한 그룹 구분자가 포함되어 있지 않는 경우, 상기 적어도 하나의 그룹에 포함된 적어도 하나의 쓰기 커맨드의 영속화를 일체로 수행하는, 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
A plurality of write commands for writing data to a storage medium in the storage device from the host system and at least one group start delimiter indicating the start of at least one group inserted between the plurality of write commands, A host interface for receiving at least one group termination delimiter indicating termination;
Identifying at least one group from the plurality of write commands using the at least one group start delimiter and the at least one group end delimiter, and identifying at least one group from among the plurality of write commands based on the identified at least one group A controller for determining the persistence order or the persistence atomicity and processing the plurality of write commands based on the determination result; And
And a storage device for holding the plurality of write commands in accordance with the processing result
Lt; / RTI >
The controller comprising:
Wherein the at least one group performs at least one persistence of at least one write command included in the at least one group when the at least one group does not include a group identifier for distinguishing the at least one group from another group, A storage system that controls persistence in a storage system.
제13항에 있어서,
상기 그룹 시작 구분자는
상기 복수의 쓰기 커맨드들 중 상기 적어도 하나의 그룹에 포함되어 상기 저장 매체에서의 영속화가 일체로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 삽입되고,
상기 그룹 종료 구분자는
상기 첫 번째 쓰기 커맨드와 동일한 그룹에 포함된 마지막 쓰기 커맨드에 삽입되는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
14. The method of claim 13,
The group start delimiter
Wherein the at least one of the plurality of write commands is embedded in a first write command among write commands that are included in at least one group and must be permanently persistent in the storage medium,
The group end identifier
Wherein the persistence in the storage medium inserted in the last write command included in the same group as the first write command is controlled.
제13항에 있어서,
상기 컨트롤러는
상기 적어도 하나의 그룹 시작 구분자에 의해 시작되고, 상기 적어도 하나의 그룹 종료 구분자에 의해 종료되는 적어도 하나의 그룹의 사이에 상기 적어도 하나의 그룹을 다른 그룹과 구분하기 위한 그룹 구분자가 포함되어 있는지 여부를 판단하는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
14. The method of claim 13,
The controller
Whether or not a group delimiter for distinguishing the at least one group from another group is included among at least one group started by the at least one group start delimiter and terminated by the at least one group end delimiter A storage system for controlling persistence in a storage medium to be determined.
제13항에 있어서,
상기 컨트롤러는
상기 복수의 쓰기 커맨드들 중 상기 적어도 하나의 그룹 시작 구분자에 의해 원자적 영속화 모드가 설정된 이후부터, 상기 적어도 하나의 그룹 종료 구분자에 의해 상기 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 대하여 진행되던 영속화가 완료되기 이전에 중단된 경우,
상기 원자적 영속화 모드가 설정된 이후부터 상기 원자적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 포함된 정보를 모두 영속화되지 않은 상태로 만들어 주고,
상기 원자적 영속화 모드는
상기 쓰기 커맨드들에 대하여 상기 저장 매체에서의 영속화가 일체로 이루어지도록 하는 모드인 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
14. The method of claim 13,
The controller
Wherein at least one of the plurality of write commands includes at least one group start delimiter and at least one group end delimiter for each write command from the time at which the atomic persistence mode is set by the at least one group start delimiter until the atomic persistence mode is released by the at least one group end delimiter, If the ongoing persistence is stopped before completion,
The information included in the write commands from the time when the atomic persistence mode is set until the atomic persistence mode is released to the state where the atomic persistence mode is released,
The atomic persistence mode
Wherein the persistence in the storage medium is controlled in such a manner that persistence in the storage medium is made integral with respect to the write commands.
제13항에 있어서,
순차적 영속화 모드의 설정을 위한 모드 시작 구분자는
상기 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 삽입되고,
상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자는
상기 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 삽입되며,
상기 순차적 영속화 모드는
상기 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드인 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
14. The method of claim 13,
The mode start delimiter for setting the sequential persistence mode is
Wherein persistence in the storage medium is inserted into a first write command of write commands that must be performed in order,
The mode termination identifier for releasing the sequential persistence mode is
The persistence is inserted into the last write command among the write commands to be executed in order,
The sequential persistence mode
Which is a mode for setting a persistence order between write data corresponding to a plurality of write commands in the storage medium.
제13항에 있어서,
상기 컨트롤러는
상기 복수의 쓰기 커맨드들 사이에 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 상기 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자가 삽입되어 있는지 여부를 판단하는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
14. The method of claim 13,
The controller
Wherein a mode start delimiter indicating a start of a sequential persistence mode and a mode end delimiter indicating an end of the sequential persistence mode are inserted between the plurality of write commands.
제18항에 있어서,
상기 컨트롤러는
상기 복수의 쓰기 커맨드들 중 상기 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 상기 모드 종료 구분자에 의해 상기 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여, 호스트 인터페이스를 통해 전송되는 순서대로 상기 저장 매체에 순차적으로 영속화하는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
19. The method of claim 18,
The controller
Wherein the writing control unit is configured to write data corresponding to write commands from the plurality of write commands until the sequential persistence mode is set by the mode start delimiter and before the sequential persistence mode is released by the mode term identifier, Wherein the persistence control unit controls persistence in a storage medium that is sequentially persistent to the storage medium in order of transmission through the storage medium.
제13항에 있어서,
상기 저장 장치는
해당 저장 장치가 상기 영속화 순서 또는 상기 영속화 원자성과 관련된 영속화 형상 제어가 가능한 장치임을 상기 호스트 인터페이스를 통해 상기 호스트 시스템에게 알리는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
14. The method of claim 13,
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 unit controls persistence in a storage medium that transmits information to the storage apparatus via the host interface, the information enabling the storage apparatus capable of persistent configuration control to use the persistent configuration control function.
호스트 시스템으로부터 저장 장치 내의 저장 매체에 데이터를 쓰기 위한 복수의 쓰기 커맨드들 및 상기 복수의 쓰기 커맨드들 사이에 순차적 영속화 모드의 시작을 나타내는 모드 시작 구분자 및 상기 순차적 영속화 모드의 종료를 나타내는 모드 종료 구분자를 수신하는 호스트 인터페이스;
상기 모드 시작 구분자 및 상기 모드 종료 구분자를 이용하여 상기 복수의 쓰기 커맨드들에 대하여 영속화 순서를 판단하고, 상기 판단 결과에 기초하여 상기 복수의 쓰기 커맨드들을 처리하는 컨트롤러; 및
상기 처리 결과에 따라 상기 복수의 쓰기 커맨드들을 영속화하는 저장 매체
를 포함하고,
상기 순차적 영속화 모드는
상기 저장 매체에서 복수의 쓰기 커맨드들에 해당되는 쓰기 데이터 사이의 영속화 순서를 설정하는 모드이며,
상기 컨트롤러는,
상기 판단 결과에 기초하여, 상기 복수의 쓰기 커맨드들 중 상기 순차적 영속화 모드가 설정된 동안 입력된 쓰기 커맨드들에 해당되는 쓰기 데이터를 상기 순차적 영속화 모드가 해제될 때까지 순차적으로 영속화하는, 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
A plurality of write commands for writing data to a storage medium in a storage device from a host system and a mode start delimiter indicating a start of a sequential persistence mode and a mode end delimiter indicating an end of the sequential persistence mode, A receiving host interface;
A controller for determining a persistence order for the plurality of write commands using the mode start delimiter and the mode end delimiter 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 sequential persistence mode
A mode for setting a persistence order between write data corresponding to a plurality of write commands in the storage medium,
The controller comprising:
Wherein the write data corresponding to the write commands inputted while the sequential persistence mode is set among the plurality of write commands is sequentially persistent until the sequential persistence mode is released based on the determination result A storage system that controls persistence.
제22항에 있어서,
상기 모드 시작 구분자는
상기 저장 매체에서의 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 첫 번째 쓰기 커맨드에 삽입되고,
상기 모드 종료 구분자는
상기 영속화가 순서대로 이루어져야 하는 쓰기 커맨드들 중 마지막 쓰기 커맨드에 삽입되는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
23. The method of claim 22,
The mode start delimiter
Wherein persistence in the storage medium is inserted into a first write command of write commands that must be performed in order,
The mode term identifier
Wherein persistence in the storage medium is inserted in the last write command among the write commands in which the persistence is to be performed in order.
제22항에 있어서,
상기 컨트롤러는
상기 복수의 쓰기 커맨드들에 상기 순차적 영속화 모드의 설정을 위한 모드 시작 구분자 및 상기 순차적 영속화 모드의 해제를 위한 모드 종료 구분자가 삽입되어 있는지 여부를 판단하는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
23. The method of claim 22,
The controller
Wherein the controller determines whether a mode start delimiter for setting the sequential persistence mode and a mode termination delimiter for releasing the sequential persistence mode are inserted into the plurality of write commands.
제24항에 있어서,
상기 컨트롤러는
상기 복수의 쓰기 커맨드들 중 상기 모드 시작 구분자에 의해 순차적 영속화 모드가 설정된 이후부터, 상기 모드 종료 구분자에 의해 상기 순차적 영속화 모드가 해제되기 이전까지의 쓰기 커맨드들에 해당되는 쓰기 데이터에 대하여 상기 저장 매체에 순차적으로 영속화하는 저장 매체에서의 영속화를 제어하는 스토리지 시스템.
25. The method of claim 24,
The controller
Wherein the write command is written to the storage medium after the sequential persistence mode is set by the mode start delimiter among the plurality of write commands until the sequential persistence mode is released by the mode term identifier, Wherein the persistent storage in the storage medium is a persistent storage medium.
KR1020120139867A 2012-03-26 2012-12-04 Method and storage system for controlling materialization in a storage medium using mode setting and delimiter KR101412885B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120030729 2012-03-26
KR20120030729 2012-03-26

Publications (2)

Publication Number Publication Date
KR20130108966A KR20130108966A (en) 2013-10-07
KR101412885B1 true KR101412885B1 (en) 2014-06-26

Family

ID=49631493

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120139867A KR101412885B1 (en) 2012-03-26 2012-12-04 Method and storage system for controlling materialization in a storage medium using mode setting and delimiter

Country Status (1)

Country Link
KR (1) KR101412885B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653659B1 (en) * 2019-07-05 2024-04-03 에스케이하이닉스 주식회사 Memory system, memory controller, and operating method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3100721B2 (en) * 1990-12-21 2000-10-23 エスジーエス‐トムソン、マイクロエレクトロニクス、リミテッド Apparatus and method for issuing multiple instructions
JP3759398B2 (en) * 1999-10-14 2006-03-22 ヒューレット・パッカード・カンパニー System for detecting hazards in computer programs
JP2009146387A (en) * 2007-11-19 2009-07-02 Ricoh Co Ltd Information processing apparatus, information processing method and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3100721B2 (en) * 1990-12-21 2000-10-23 エスジーエス‐トムソン、マイクロエレクトロニクス、リミテッド Apparatus and method for issuing multiple instructions
JP3759398B2 (en) * 1999-10-14 2006-03-22 ヒューレット・パッカード・カンパニー System for detecting hazards in computer programs
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
KR20130108966A (en) 2013-10-07

Similar Documents

Publication Publication Date Title
US11797191B2 (en) Systems and methods for storing data in SSD
US8924659B2 (en) Performance improvement in flash memory accesses
US8521949B2 (en) Data deleting method and apparatus
KR101086857B1 (en) Control Method of Solid State Storage System for Data Merging
US8954985B2 (en) Dependency management in task scheduling
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
JP6691669B2 (en) Information processing system, storage control device, storage control method, and storage control program
CN111007991B (en) Method for separating read-write requests based on NVDIMM and computer thereof
US9778860B2 (en) Re-TRIM of free space within VHDX
US9182912B2 (en) Method to allow storage cache acceleration when the slow tier is on independent controller
CN108628542B (en) File merging method and controller
US8862819B2 (en) Log structure array
WO2017006675A1 (en) Information processing system, storage control device, storage control method, and storage control program
US20190243758A1 (en) Storage control device and storage control method
US20150088858A1 (en) Data storage device deferred secure delete
JP2013210749A (en) Program, control method, storage device, and system
US20140331007A1 (en) Virtual library controller and control method
US11474750B2 (en) Storage control apparatus and storage medium
WO2016091124A1 (en) File intercepting method and device
KR101412885B1 (en) Method and storage system for controlling materialization in a storage medium using mode setting and delimiter
KR101426806B1 (en) Method, computer system and storage system for controlling materialization in a storage medium based on object id and storage system
CN110658978A (en) Data processing method and device, electronic equipment and readable storage medium
CN104424124A (en) Memory device, electronic equipment and method for controlling memory device
CN109284237A (en) A kind of full rubbish recovering method and system dodged in storage array
US20200057576A1 (en) Method and system for input/output processing for write through to enable hardware acceleration

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160224

Year of fee payment: 6