KR20180016660A - Data processing apparatus in storage and controlling method thereof - Google Patents
Data processing apparatus in storage and controlling method thereof Download PDFInfo
- Publication number
- KR20180016660A KR20180016660A KR1020160099293A KR20160099293A KR20180016660A KR 20180016660 A KR20180016660 A KR 20180016660A KR 1020160099293 A KR1020160099293 A KR 1020160099293A KR 20160099293 A KR20160099293 A KR 20160099293A KR 20180016660 A KR20180016660 A KR 20180016660A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- logical block
- block address
- transmitted
- storage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Abstract
Description
본 발명은 스토리지 내의 데이터 처리 장치 및 그 제어 방법에 관한 것이다.The present invention relates to a data processing apparatus in a storage and a control method thereof.
파일 시스템(file system)과 디바이스 드라이버(device driver)가 구축된 운영체제(operating systems)를 이용하여 파일 관리를 실시하는 호스트(host)의 동작 제어부는 스토리지 인터페이스의 플러쉬 커맨드(FLUSH command)를 이용하여 전원 공급이 차단될 경우에도 저장된 데이터 중 변경된 부분이 안전하게 저장될 수 있도록 한다.An operation control unit of a host that manages a file using operating systems in which a file system and a device driver are built uses a FLUSH command of a storage interface Even when the supply is interrupted, the changed part of the stored data can be safely stored.
플러쉬 커맨드는 호스트에서 스토리지(storage)로 전달되어, 스토리지의 데이터 저장 동작을 제어하기 위한 명령어로서, 스토리지 내부에 존재하는 휘발성 버퍼 메모리부에 있는 모든 데이터를 스토리지의 비휘발성 저장부에 저장하기 위한 것이다.The flush command is a command for transferring data from the host to the storage and controlling the data storage operation of the storage. The command is for storing all the data in the volatile buffer memory portion existing in the storage in the nonvolatile storage portion of the storage .
이때, 호스트는 통상 중앙 처리장치(CPU)인 동작 제어부와 주 메모리(Main memory) 및 각종 입출력(I/O) 인터페이스로 구성된 부분을 의미하며, 스토리지는 하드 디스크(hard disk), SSD(solid state disk or solid state drive), 플래시 메모리(flash memory), 또는 비휘발성 메모리 (Non-volatile Memory) 등과 같은 비휘발성 저장 매체일 수 있다.In this case, the host generally refers to a part composed of an operation control unit, a central processing unit (CPU), a main memory and various input / output (I / O) interfaces. The storage includes a hard disk, a solid state disk or solid state drive, a flash memory, or a non-volatile memory.
호스트와 스토리지로 구성된 컴퓨터 시스템은 개인용 컴퓨터(personal computer), 서버(server) 또는 스마트 폰(smart phone)과 같은 모바일 기기(mobile devices) 등일 수 있다. A computer system composed of a host and storage may be a mobile computer, such as a personal computer, a server or a smart phone.
사용자의 동작 등에 의해 데이터 변경 후 일정 시간이 경과한 후 또는 명시적인 동기화 명령과 같이 영구적으로 데이터를 저장하는 명령이 운영체제에 요청되면, 호스트의 운영체제는 스토리지로 플러쉬 커맨드를 전송하고, 스토리지의 장치 제어부는 전송된 플러쉬 커맨드에 따라 버퍼 메모리부에 존재하는 모든 데이터를 비휘발성 저장부에 쓰기 동작을 실시하여 해당 데이터의 영구 저장 동작이 이루어지도록 한다.When an operating system requests an instruction to permanently store data, such as an explicit synchronization command, after a certain period of time has elapsed since the data was changed by the user's operation, the operating system of the host transmits a flush command to the storage, Writes all data present in the buffer memory unit to the nonvolatile storage unit in accordance with the transmitted flush command so that the data is permanently stored.
하지만, 현재 스토리지 구조에서는 특정 사용자 프로그램에 의해 촉발된 플러쉬 커맨드에 의해 쓰기 동작이 행해질 때 해당 프로그램에 속한 데이터뿐만 아니라 버퍼 메모리부에 존재하는 모든 데이터가 비휘발성 저장부에 쓰여지게 된다.However, in a current storage structure, when a write operation is performed by a flush command triggered by a specific user program, not only the data belonging to the program but also all data existing in the buffer memory are written to the nonvolatile storage unit.
이처럼, 즉시 영속성을 보장받지 않아도 되는 데이터까지 즉각적으로 비휘발성 저장부에 쓰는 동작은 버퍼링 효과를 감소시켜 불필요한 쓰기 트래픽(traffic)을 발생시킨다.As described above, the operation of immediately writing data to the nonvolatile storage unit that does not require immediate persistence reduces the buffering effect and generates unnecessary write traffic.
또한, 트래픽 증가로 인해, 스토리지의 데이터 처리시간이 지연되고 불필요한 쓰기 동작으로 스토리지의 수명이 저하되는 결과가 초래된다. In addition, due to the increase in traffic, the data processing time of the storage is delayed, and unnecessary write operation results in degradation of storage life.
따라서 본 발명이 이루고자 하는 기술적 과제는 동기화가 요청된 데이터에 대한 정보를 호스트와 스토리지 간에 공유하여 불필요한 쓰기를 줄이고 스토리지의 성능 및 내구성을 향상시키는 것이다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made to solve the above-mentioned problems occurring in the prior art, and it is an object of the present invention to provide a method and apparatus for synchronizing data between a host and a storage system.
본 발명의 한 특징에 따른 스토리지 내의 데이터 처리 장치는 응용 프로그램부의 쓰기 요청 발생 시 쓰여질 데이터의 논리 블록 주소를 판정하여 쓰기 커맨드와 함께 판정된 논리 블록 주소 및 쓰여질 데이터를 전송하고, 동기화 요청이 발생하면, 전송된 파일 식별 번호를 이용하여 영구 저장될 데이터의 논리 블록 주소를 검색하여 검색된 논리 블록 주소를 구비한 범위 플러쉬 커맨드를 생성해 전송하는 운영체제, 그리고 상기 운영체제로부터 쓰기 커맨드가 전송되면 상기 쓰기 커맨드와 함께 전송된 쓰여질 데이터를 버퍼 메모리부에 저장하고, 상기 범위 플러쉬 커맨드가 전송되면 상기 버퍼 메모리부의 데이터 중에서 상기 범위 플러쉬 커맨드와 함께 전송된 상기 논리 블록 주소에 해당하는 데이터를 비휘발성 저장부의 상기 논리 블록 주소의 위치에 기록하는 장치 제어부를 포함한다.A data processing apparatus in a storage according to an aspect of the present invention determines a logical block address of data to be written when a write request of an application program unit is generated and transmits a logical block address and data to be written together with a write command, An operating system for searching for a logical block address of data to be permanently stored by using the transferred file identification number, and generating and transmitting a range flush command having a retrieved logical block address, and when the write command is transmitted from the operating system, Wherein the data to be written together is stored in a buffer memory unit, and when the range flush command is transmitted, data corresponding to the logical block address transmitted together with the range flush command among the data in the buffer memory unit is written into the logical block Above address The device comprises a control unit for recording.
상기 영구 저장될 데이터의 논리 블록 주소는 특정 파일에 속한 모든 데이터의 논리 블록 주소, 특정 파일에서 변경된 데이터만의 논리 블록 주소, 또는 특정 파일과 무관하게 영구 저장될 변경된 데이터의 논리 블록 주소일 수 있다.The logical block address of the data to be permanently stored may be a logical block address of all data belonging to a specific file, a logical block address of only changed data in a specific file, or a logical block address of changed data to be permanently stored regardless of a specific file .
상기 운영체제는 더티 비트(dirty bit)를 이용하여 변경된 데이터를 판정할 수 있다.The operating system may determine changed data using a dirty bit.
본 발명의 다른 특징에 따른 스토리지 내의 데이터 처리 장치의 제어 방법은 응용 프로그램부는 쓰기 요청과 함께 쓰여질 데이터, 파일 식별 정보를 운영체제로 전송하는 단계, 상기 운영체제는 상기 쓰기 요청이 전송되면 파일 식별 정보를 이용하여 쓰여질 데이터의 논리 블록 주소를 판정한 후 쓰기 커맨드와 함께 쓰여질 데이터와 판정된 논리 블록 주소를 장치 제어부로 전송하는 단계, 상기 장치 제어부는 전송된 쓰여질 데이터를 버퍼 메모리부에 기록하는 단계, 상기 운영체제는 동기화 요청이 발생하거나 정해진 시간에 따라 영구 저장 요청이 발생하면, 응용 프로그램부로부터 전송된 파일 식별 정보를 이용하여 영구 저장될 데이터에 대한 논리 블록 주소를 검색하는 단계, 상기 운영체제는 검색된 영구 저장될 데이터에 대한 논리 블록 주소와 함께 범위 플러쉬 커맨드를 생성하여 상기 장치 제어부로 전송하는 단계, 그리고 상기 장치 제어부는 상기 버퍼 메모리부에 임시 저장되어 있는 데이터 중에서 영구 저장될 데이터에 대한 논리 블록 주소에 해당하는 데이터를 비휘발성 제어부의 논리 블록 주소에 영구적으로 저장하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of controlling a data processing apparatus in a storage, the method comprising: transmitting data and file identification information to be written along with a write request to an operating system; Determining a logical block address of data to be written and then transmitting the data to be written together with the write command and the determined logical block address to the device control unit, the device control unit recording the transferred data to be written in the buffer memory unit, Searching for a logical block address of data to be permanently stored using the file identification information transmitted from the application program unit when a synchronization request is generated or a permanent storage request is generated according to a predetermined time, The logical block address for the data Generating a range flush command, and transmitting the generated range flush command to the device control unit; and the device control unit transmits data corresponding to a logical block address of data to be permanently stored among the data temporarily stored in the buffer memory unit, And storing it permanently at the block address.
상기 영구 저장될 데이터의 논리 블록 주소는 특정 파일에 속한 모든 데이터의 논리 블록 주소, 특정 파일에서 변경된 데이터만의 논리 블록 주소, 또는 특정 파일과 무관하게 영구 저장될 변경된 데이터의 논리 블록 주소일 수 있다.The logical block address of the data to be permanently stored may be a logical block address of all data belonging to a specific file, a logical block address of only changed data in a specific file, or a logical block address of changed data to be permanently stored regardless of a specific file .
상기 운영체제는 더티 비트(dirty bit)를 이용하여 변경된 데이터를 판정할 수 있다.The operating system may determine changed data using a dirty bit.
이러한 특징에 따르면, 비휘발성 저장부에 즉시 동기화가 필요한 데이터만의 저장 동작이 이루어져 버퍼링 및 스케줄링의 효율성이 높아져 쓰기 동작을 실시해야 되는 데이터의 양이 감소하고 응답 시간이 줄어들어 처리 효율이 향상된다.According to this aspect, the storage operation of only data requiring immediate synchronization is performed in the nonvolatile storage unit, thereby increasing the efficiency of buffering and scheduling, thereby reducing the amount of data to be subjected to the write operation and reducing the response time, thereby improving the processing efficiency.
도 1은 본 발명의 한 실시예에 따른 스토리지 내의 데이터 처리 장치에 대한 개략적인 블록도이다.
도 2는 본 발명의 한 실시예에 따른 스토리지 내의 데이터 처리 장치에 대한 데이터 흐름도이다.
도 3는 본 발명의 한 실시예에 따른 스토리지 내의 데이터 처리 장치의 동작에 의한 스토리지 내로의 데이터 저장 동작에 대한 개념도이다.1 is a schematic block diagram of a data processing apparatus in a storage according to an embodiment of the present invention.
2 is a data flow diagram for a data processing apparatus in a storage according to an embodiment of the present invention.
3 is a conceptual diagram illustrating an operation of storing data into a storage by operation of a data processing apparatus in the storage according to an embodiment of the present invention.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
어떤 구성요소가 다른 구성요소에 "접속되어" 있다거나 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 접속되어 있거나 연결되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 접속되어" 있다거나 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but it should be understood that there may be other elements in between do. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
그러면 첨부한 도면을 참고로 하여 본 발명의 한 실시예에 따른 스토리지 내의 데이터 처리 장치 및 그 제어 방법에 대하여 설명한다.An apparatus and method for controlling data in a storage according to an embodiment of the present invention will now be described with reference to the accompanying drawings.
먼저, 도 1을 참고로 하여 본 발명의 한 실시예에 따른 스토리지 내의 데이터 처리 장치에 대하여 상세하게 설명한다.First, a data processing apparatus in a storage according to an embodiment of the present invention will be described in detail with reference to FIG.
도 1에 도시한 본 발명의 한 실시예에 따른 스토리지 내의 데이터 처리 장치는 호스트(host)(100)와 호스트(100)와 연결되어 있는 스토리지(200)를 구비한다.The data processing apparatus in the storage according to an embodiment of the present invention shown in FIG. 1 includes a
호스트(100)는 동작 제어부(110), 주 메모리(Main Memory)(120) 및 각종 입출력 인터페이스(도시하지 않음)가 구비되어 있는 시스템이다.The
이러한 호스트(100)는 동작 제어부(110)에 의해 주 메모리(120)와 입출력 인터페이스의 동작이 제어된다.In the
동작 제어부(110)는 특정 작업을 수행하는 응용 프로그램부(111), 그리고 응용 프로그램부(111)에서 전달되는 명령에 따라 대응되는 하드웨어 등의 동작이 이루어지도록 하는 운영체제(112)를 구비한다.The operation control unit 110 includes an
주 메모리(120)는 컴퓨터 시스템인 데이터 처리 장치의 동작 시 접근하는 데이터를 임시적으로 저장하는 빠른 저장 공간이다. 이러한 주 메모리(120)는 스토리지(200)의 데이터를 캐슁(caching)하거나 버퍼링(buffering)하는 용도로 사용되며 통상 램(RAM, random access memory) 등과 같이 랜덤 액세스(random access)가 가능한 고속의 휘발성 또는 비휘발성 메모리일 수 있다.The main memory 120 is a fast storage area for temporarily storing data accessed when a data processing apparatus is a computer system. The main memory 120 is used for caching or buffering the data of the storage 200 and is a high speed volatile memory capable of random access such as a random access memory (RAM) Or non-volatile memory.
스토리지(200)는 호스트(100)의 명령에 따라 호스트(100)의 주 메모리(120)에 저장된 데이터를 전원이 차단되어도 영속적으로 저장하기 위한 저장 매체로서, 하드디스크, SSD 또는 플래시 메모리 등과 같은 비휘발성 저장 매체이다.The storage 200 is a storage medium for permanently storing data stored in the main memory 120 of the
이러한 스토리지(200)는 스토리지(200)의 동작을 제어하는 장치 제어부(210)와 데이터를 영속적으로 저장하는 스토리지부(220)를 구비한다.The storage 200 includes a
장치 제어부(210)는 호스트(100)로부터 전송되는 명령에 따라 스토리지부(220)의 데이터를 읽어온 후 호스트(100)로 전송하거나 호스트(100)로부터 전송되는 데이터를 스토리지부(220)의 해당 위치에 쓰기 동작한다.The
스토리지부(220)는 장치 제어부(210)에 연결되어 있는 버퍼 메모리부(221)와 장치 제어부(210)에 연결되어 있는 비휘발성 저장부(222)를 구비한다.The
버퍼 메모리부(221)는 호스트(100)의 동작 제어부(110)의 제어에 따라 전송되는 데이터를 임시 저장하고 있는 저장 공간이고, 비휘발성 저장부(222)는 데이터가 영구적으로 저장되는 물리적 저장 공간이다.The
이러한 구조를 갖는 데이터 처리 장치의 동작에 대하여 도 2를 참고로 하여 설명한다.The operation of the data processing apparatus having such a structure will be described with reference to FIG.
먼저, 동작 제어부(110)의 응용 프로그램부(111)는 사용자의 동작이나 정해진 동작 패턴에 따라 운영체제(112)로 쓰기 요청(write system call)과 함께 쓰기 동작이 행해질 데이터(즉, 쓰여질 데이터)와 파일 정보를 전송한다(S11). First, the
응용 프로그램부(111)로부터 쓰기 요청이 전송되면, 운영체제(112)는 쓰기 요청과 함께 전송된 파일 정보와 데이터를 판독한다(S12).When the write request is transmitted from the
이때, 응용 프로그램부(111)로부터 전송된 파일 정보는 전송된 데이터가 쓰여질 파일의 식별번호(ID) 즉, 파일 식별번호, 주 메모리(120)에 저장되어 있는 쓰여질 데이터의 위치, 전송된 데이터가 쓰여질 어드레스(address)의 시작 위치를 나타내는 오프셋(offset) 및 전송된 데이터가 쓰여질 어드레스의 크기를 나타내는 길이(length)를 포함한다.In this case, the file information transmitted from the
따라서, 운영체제(112)는 전송된 파일 정보의 파일 식별번호를 이용하여 해당 파일을 판정하고 판정된 파일에 대한 메타 데이터(meta data)등을 이용하여 전송된 데이터가 쓰여질 스토리지(200) 내의 주소인 논리 블록 주소(LBA, Logical Block Address)를 판정한다(S13). Accordingly, the
다음, 운영체제(112)는 쓰여질 데이터(즉, 전송된 데이터)와 논리 블록 주소를 스토리지(200)의 장치 제어부(210)로 쓰기 커맨드(write command)를 통해 전송한다(S14).Next, the
이때, 쓰기 커맨드는 스토리지(200)와 호스트(100) 간에 정해진 인터페이스(interface)에서 정한 규약을 따라 생성되며, 이때, 인터페이스는 SATA[serial ATA(AT attachment)], SAS(single attachment station), SCSI(small computer system interface), 또는 NVMe[NVM(non-volatile memory) express], PCIe[PCI(peripheral component interconnect) express] 등의 표준 스토리지 인터페이스를 통칭한다. At this time, a write command is generated according to a protocol defined by an interface defined between the storage 200 and the
스토리지(200)의 장치 제어부(210)는 쓰기 커맨드에 따라 전송된 쓰여질 데이터를 버퍼 메모리부(221)에 기록한다(S15). 이때, 버퍼 메모리부(221)의 기록 위치는 장치 제어부(210)에 의해 판정된 버퍼 메모리부(221)의 상태에 따라 정해진다.The
이처럼, 운영체제(112)로부터 쓰기 커맨드가 전송되면, 장치 제어부(210)는 스토리지(200)의 쓰기 성능을 높이기 위하여 먼저 고속의 버퍼 메모리부(221)에 해당 데이터를 기록한다. In this way, when the write command is transmitted from the
이때, 버퍼 메모리부(221)에 기록된 데이터에 대한 주소 정보(Logical Block Address)는 장치 제어부(210)에서 관리하고 있다. 장치 제어부(210)의 제어에 따라 버퍼 메모리부(221)에 기록되어 있는 데이터는 장치 제어부(210)의 입출력의 성능을 최대화 시킬 수 있도록 제어하는 정책 등에 따라 비휘발성 저장부(222)에 기록될 수 있고, 비휘발성 저장부(222)에 기록되는 것은 임의의 시점에 이루어질 수 있다. At this time, the
호스트(100)와 스토리지(200) 간의 쓰기 커맨드에 의해 스토리지(200)의 버퍼 메모리부(221)에는 해당 데이터에 대한 쓰기 동작이 행해져 스토리지(200)에 저장된다.A write operation is performed on the data in the
스토리지(200)의 버퍼 메모리(221)에 파일의 데이터가 저장되어 있는 상태에서, 정해진 시간이 경과하거나 응용 프로그램부(111)로부터 명시적인 동기화 요청이 발생하면(S16) 호스트(100)의 운영체제(112)는 영구적으로 저장될 데이터의 논리 블록 주소의 정보를 포함한 범위 플러쉬(Range FLUSH) 커맨드를 스토리지(200)의 장치 제어부(210)로 전송하게 된다. If a predetermined time has elapsed in the state where file data is stored in the
응용 프로그램부(111)에 의한 동기화 요청은 fsync 또는 fdatasync와 같은 시스템 콜(system call)을 통해 발생하며 특정 파일에 속한 데이터를 즉시 영구적으로 저장하라는 의미로, 응용 프로그램부(111)는 저장 명령의 대상이 되는 파일에 대한 파일 식별번호를 운영체제(112)로 전송하게 된다.A synchronization request by the
운영체제(112)는 응용 프로그램부(111)로부터의 동기화 요청 발생하거나 정해진 시간에 따라 영구 저장 요청이 발생할 시(S16) 응용 프로그램부(111)로부터 전송된 파일 식별 번호에 대응하는 파일의 메타 데이터를 이용하여 영구 저장될 데이터들에 대한 논리 블록 주소를 검색한 후(S17), 검색된 논리 블록 주소와 함께 범위 플러쉬 커맨드(Range Flush)을 만들어 스토리지(200)의 장치 제어부(210)로 전송한다(S18, S19). The
호스트(100)의 운영체제(112)로부터 범위 플러쉬 커맨드와 함께 동기화가 되어야 할 데이터의 논리 블록 주소가 전송되면(S19), 장치 제어부(210)는 버퍼 메모리부(221)에 임시 저장되어 있는 데이터들 중에서 전송된 논리 블록 주소에 해당하는 데이터를 판정하고(S20), 당 데이터를 비휘발성 저장부(222)의 해당 위치에 쓰기 동작을 실시하여 비휘발성 저장부(222)에 저장한다(S21).The
운영체제(112)가 범위 플러쉬(Range Flush) 커맨드 전송 시 함께 보내는 비휘발성 저장부(222)에 저장되어야 할 데이터의 논리 블록 주소는 특정 파일에 속한 모든 데이터의 논리 블록 주소를 모두 보내는 방법, 특정 파일에서 변경된 데이터만을 판별하여 판별된 변경된 데이터만의 논리 블록 주소를 보내는 방법, 특정 파일과 무관하게 영구 저장될 변경된 데이터의 논리 블록 주소들을 지정하여 보내는 방법을 포함한다. The logical block address of the data to be stored in the
운영체제(112)가 특정 파일에 속한 데이터 중 변경된 데이터를 판별하는 방법은 운영체제(112) 내에 유지하고 있는 스토리지(200)의 데이터에 대한 정보를 이용할 수 있으며, 이때 이용되는 스토리지(200)의 데이터에 대한 정보는 더티 비트(dirty bit) 등이 대표적인 예이지만, 이에 한정되지 않고 운영체제(112)가 변경된 데이터를 판별할 수 있는 다른 자료구조를 활용할 수 있다. 이 경우, 운영체제(112)는 더티 비트를 이용하여 비휘발성 저장부(222)에 영구 저장될 변경된 데이터의 논리 블록 주소를 판정하여 판정된 변경된 데이터에 대한 논리 블록 주소를 장치 제어부(210)로 전송하게 된다.A method for the
스토리지(200)의 장치 제어부(210)는 종래의 플러쉬 커맨드 대신 범위 플러쉬 커맨드가 전송되면 버퍼 메모리부(221)에 임시 저장되어 있는 모든 데이터를 비휘발성 저장부(222)에 저장하는 대신, 특정 논리 블록 주소에 해당하는 데이터만을 비휘발성 저장부(222)에 저장하게 된다.The
예를 들어, 도 3과 같이, 범위 플러쉬 커맨드와 함께 '11'의 논리 블록 주소가 호스트(100)의 운영체제(112)로부터 전송되면, 장치 제어부(210)는 버퍼 메모리부(221)에서 '11'의 논리 블록 주소를 갖는 데이터(C')가 있다면 비휘발성 저장부(222)에서 '11'의 논리 블록 주소에 해당 데이터(C')를 기록하게 된다.For example, as shown in FIG. 3, when the logical block address of '11' is transmitted from the
이로 인해, 스토리지(200)의 비휘발성 저장부(222)에 즉시 동기화가 필요한 데이터만의 저장 동작이 이루어져 버퍼링 및 스케줄링의 효율성이 높아져 쓰기 동작을 실시해야 되는 데이터의 양이 감소하고 응답 시간이 줄어들어 처리 효율이 향상된다.Accordingly, only the data required to be immediately synchronized is stored in the
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.
100: 호스트
110: 동작 제어부
120: 주 메모리
111: 응용 프로그램부
112: 운영체제
200: 스토리지
210: 장치 제어부
220: 스토리지부
221: 버퍼 메모리부
222: 비휘발성 저장부100: host 110: operation control unit
120: main memory 111: application program unit
112: Operating system 200: Storage
210: device control unit 220:
221: buffer memory unit 222: nonvolatile storage unit
Claims (6)
상기 운영체제로부터 쓰기 커맨드가 전송되면 상기 쓰기 커맨드와 함께 전송된 쓰여질 데이터를 버퍼 메모리부에 저장하고, 상기 범위 플러쉬 커맨드가 전송되면 상기 버퍼 메모리부의 데이터 중에서 상기 범위 플러쉬 커맨드와 함께 전송된 상기 논리 블록 주소에 해당하는 데이터를 비휘발성 저장부의 상기 논리 블록 주소의 위치에 기록하는 장치 제어부를 포함하는 스토리지 내의 데이터 처리 장치.
The logical block address of the data to be written when the write request of the application program unit is generated is determined, and the logical block address and the data to be written together with the write command are transmitted together with the write command. When the synchronization request is generated, And generates and transmits a range flush command having the retrieved logical block address, and
Wherein when a write command is transmitted from the operating system, data to be written transmitted together with the write command is stored in a buffer memory unit, and when the range flush command is transmitted, the logical block address To a location of the logical block address of the non-volatile storage unit.
상기 영구 저장될 데이터의 논리 블록 주소는 특정 파일에 속한 모든 데이터의 논리 블록 주소, 특정 파일에서 변경된 데이터만의 논리 블록 주소, 또는 특정 파일과 무관하게 영구 저장될 변경된 데이터의 논리 블록 주소인 스토리지 내의 데이터 처리 장치.The method of claim 1,
The logical block address of the data to be permanently stored may be a logical block address of all data belonging to a specific file, a logical block address of only changed data in a specific file, or a logical block address of the changed data to be permanently stored irrespective of a specific file Data processing device.
상기 운영체제는 더티 비트(dirty bit)를 이용하여 변경된 데이터를 판정하는 스토리지 내의 데이터 처리 장치.
3. The method of claim 2,
Wherein the operating system determines the changed data using a dirty bit.
상기 운영체제는 상기 쓰기 요청이 전송되면 파일 식별 정보를 이용하여 쓰여질 데이터의 논리 블록 주소를 판정한 후 쓰기 커맨드와 함께 쓰여질 데이터와 판정된 논리 블록 주소를 장치 제어부로 전송하는 단계,
상기 장치 제어부는 전송된 쓰여질 데이터를 버퍼 메모리부에 기록하는 단계,
상기 운영체제는 동기화 요청이 발생하거나 정해진 시간에 따라 영구 저장 요청이 발생하면, 응용 프로그램부로부터 전송된 파일 식별 정보를 이용하여 영구 저장될 데이터에 대한 논리 블록 주소를 검색하는 단계,
상기 운영체제는 검색된 영구 저장될 데이터에 대한 논리 블록 주소와 함께 범위 플러쉬 커맨드를 생성하여 상기 장치 제어부로 전송하는 단계, 그리고
상기 장치 제어부는 상기 버퍼 메모리부에 임시 저장되어 있는 데이터 중에서 영구 저장될 데이터에 대한 논리 블록 주소에 해당하는 데이터를 비휘발성 제어부의 논리 블록 주소에 영구적으로 저장하는 단계를 포함하는 스토리지 내의 데이터 처리 장치의 제어 방법.
The application program part transmits the data to be written together with the write request, the file identification information to the operating system,
Wherein the operating system determines a logical block address of data to be written using the file identification information when the write request is transmitted, and transmits data to be written together with a write command and a determined logical block address to a device controller,
Wherein the apparatus control unit records the transmitted data to be written in the buffer memory unit,
Wherein the operating system searches for a logical block address for data to be permanently stored using file identification information transmitted from an application program unit when a synchronization request is generated or a persistent storage request is generated according to a predetermined time,
The operating system generates a range flush command together with the logical block address of the retrieved permanently stored data and transmits the command to the device controller;
Wherein the apparatus control unit permanently stores data corresponding to a logical block address of data to be permanently stored in the buffer memory unit in the logical block address of the nonvolatile controller, / RTI >
상기 영구 저장될 데이터의 논리 블록 주소는 특정 파일에 속한 모든 데이터의 논리 블록 주소, 특정 파일에서 변경된 데이터만의 논리 블록 주소, 또는 특정 파일과 무관하게 영구 저장될 변경된 데이터의 논리 블록 주소인 스토리지 내의 데이터 처리 장치의 제어 방법.
5. The method of claim 4,
The logical block address of the data to be permanently stored may be a logical block address of all data belonging to a specific file, a logical block address of only changed data in a specific file, or a logical block address of the changed data to be permanently stored irrespective of a specific file A method of controlling a data processing apparatus.
상기 운영체제는 더티 비트(dirty bit)를 이용하여 변경된 데이터를 판정하는 스토리지 내의 데이터 처리 장치의 제어 방법.The method of claim 5,
Wherein the operating system determines changed data by using a dirty bit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160099293A KR101831126B1 (en) | 2016-08-04 | 2016-08-04 | The controlling method of the data processing apparatus in storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160099293A KR101831126B1 (en) | 2016-08-04 | 2016-08-04 | The controlling method of the data processing apparatus in storage |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180016660A true KR20180016660A (en) | 2018-02-19 |
KR101831126B1 KR101831126B1 (en) | 2018-02-23 |
Family
ID=61387179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160099293A KR101831126B1 (en) | 2016-08-04 | 2016-08-04 | The controlling method of the data processing apparatus in storage |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101831126B1 (en) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104937564B (en) * | 2013-03-28 | 2017-09-12 | 慧与发展有限责任合伙企业 | The data flushing of group form |
-
2016
- 2016-08-04 KR KR1020160099293A patent/KR101831126B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR101831126B1 (en) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101790913B1 (en) | Speculative prefetching of data stored in flash memory | |
EP3673377B1 (en) | Logical to physical mapping | |
US10126981B1 (en) | Tiered storage using storage class memory | |
JP5349897B2 (en) | Storage system | |
KR20170088743A (en) | Dynamic garbage collection p/e policies for redundant storage blocks and distributed software stacks | |
US20110231598A1 (en) | Memory system and controller | |
US20100185806A1 (en) | Caching systems and methods using a solid state disk | |
US11630767B2 (en) | Garbage collection—automatic data placement | |
US9104578B2 (en) | Defining address ranges used to cache speculative read data | |
US9396141B2 (en) | Memory system and information processing device by which data is written and read in response to commands from a host | |
US11200178B2 (en) | Apparatus and method for transmitting map data in memory system | |
KR20130112210A (en) | Page replace method and memory system using the same | |
US11188256B2 (en) | Enhanced read-ahead capability for storage devices | |
US10037281B2 (en) | Method for disk defrag handling in solid state drive caching environment | |
KR20130024271A (en) | Storage system including hdd and nvm | |
WO2015130315A1 (en) | Delay destage of data based on sync command | |
US9927988B2 (en) | Data move engine to move a block of data | |
JP2006099802A (en) | Storage controller, and control method for cache memory | |
CN110515861B (en) | Memory device for processing flash command and method thereof | |
WO2015170702A1 (en) | Storage device, information processing system, storage control method and program | |
KR101831126B1 (en) | The controlling method of the data processing apparatus in storage | |
JP7170093B2 (en) | Improved read-ahead capabilities for storage devices | |
CN113254363A (en) | Non-volatile memory controller with partial logical to physical address translation table | |
US11941246B2 (en) | Memory system, data processing system including the same, and operating method thereof | |
JP6066831B2 (en) | Computer system and cache control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) |