KR20170130180A - Method and Apparatus for Processing Data Using Non-Volatile Memory - Google Patents

Method and Apparatus for Processing Data Using Non-Volatile Memory Download PDF

Info

Publication number
KR20170130180A
KR20170130180A KR1020160060915A KR20160060915A KR20170130180A KR 20170130180 A KR20170130180 A KR 20170130180A KR 1020160060915 A KR1020160060915 A KR 1020160060915A KR 20160060915 A KR20160060915 A KR 20160060915A KR 20170130180 A KR20170130180 A KR 20170130180A
Authority
KR
South Korea
Prior art keywords
file
memory
data
metadata
storage device
Prior art date
Application number
KR1020160060915A
Other languages
Korean (ko)
Other versions
KR102134905B1 (en
Inventor
오명원
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to KR1020160060915A priority Critical patent/KR102134905B1/en
Publication of KR20170130180A publication Critical patent/KR20170130180A/en
Application granted granted Critical
Publication of KR102134905B1 publication Critical patent/KR102134905B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F17/301
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • G06F17/3012
    • G06F17/30218
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

Disclosed are a data processing apparatus using a nonvolatile memory and a method thereof. According to an embodiment of the present invention, the data processing apparatus improves data processing speed by using nonvolatile memory separately storing metadata of data. The data processing apparatus comprises: a nonvolatile memory; a memory; and an application execution part.

Description

비휘발성 메모리를 이용한 데이터처리 장치 및 방법{Method and Apparatus for Processing Data Using Non-Volatile Memory}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a non-volatile memory,

본 실시예는 비휘발성 메모리를 이용한 하이브리드 데이터처리 장치 및 방법에 관한 것이다.The present embodiment relates to an apparatus and method for processing hybrid data using a nonvolatile memory.

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.

도 1은 기존의 데이터처리 장치가 데이터를 처리하기 위한 과정을 도시한 도면이다. 1 is a diagram illustrating a process of an existing data processing apparatus for processing data.

애플리케이션 실행부(110)는 파일 시스템(113)으로 데이터에 대한 오픈(Open) 요청을 한다(S120). 기존의 데이터처리 장치는 어떠한 데이터에 대해 쓰기(Write) 명령 또는 읽기(Read) 명령을 수행하기 위해서는 해당 데이터에 대한 오픈 요청을 하여, 해당 데이터의 메타 데이터(Meta Data)를 요청한다.The application execution unit 110 makes an open request to the file system 113 (S120). In order to execute a write command or a read command with respect to certain data, an existing data processing apparatus makes an open request for the corresponding data and requests the meta data of the data.

파일 시스템(113)은 요청에 따라 해당 데이터의 메타 데이터의 검색을 요청한다(S125). 파일 시스템(113)은 애플리케이션 실행부(110)로부터 특정 데이터에 대한 오픈 요청을 수신하는 경우, 이를 해당 데이터의 메타 데이터의 검색의 요청으로 해석한다. 이에 따라, 파일 시스템(113)은 저장장치(116)로 해당 데이터의 메타 데이터의 검색을 요청한다.The file system 113 requests the retrieval of the metadata of the corresponding data according to the request (S125). When the file system 113 receives an open request for specific data from the application execution unit 110, the file system 113 interprets the open request as a request for retrieving the metadata of the corresponding data. Accordingly, the file system 113 requests the storage device 116 to retrieve the metadata of the corresponding data.

저장장치(116)는 해당 데이터의 메타 데이터의 검색 요청에 따라 메타 데이터를 검색하며, 메타 데이터의 검색완료 메시지를 전송한다(S130). 저장장치(116)는 파일 시스템(113)으로부터 해당 데이터의 메타 데이터의 검색 요청을 수신하는 경우, 해당 데이터의 메타 데이터를 검색한다. 해당 데이터의 메타 데이터의 검색 요청은 저장장치(116)를 관리하는 장치 드라이버(Device Driver, 미도시)를 거쳐 저장장치(116)까지 전달될 수 있다. 장치 드라이버는 해당 데이터의 메타 데이터의 검색 요청을 수신하는 경우, 저장장치(116)를 제어하여 저장장치 내에 저장된 데이터들의 메타데이터를 검색하도록 한다. 저장장치(116)가 해당 데이터의 메타 데이터의 검색을 완료한 경우, 파일 시스템(113)으로 해당 데이터의 메타 데이터의 검색완료 메시지를 전송한다.The storage device 116 searches the meta data according to a search request of the meta data of the corresponding data, and transmits a search completion message of the meta data (S130). When the storage device 116 receives a request for retrieving the metadata of the corresponding data from the file system 113, the storage device 116 retrieves the metadata of the corresponding data. The retrieval request of the metadata of the corresponding data may be transmitted to the storage device 116 via a device driver (not shown) for managing the storage device 116. When the device driver receives the retrieval request of the metadata of the data, the device driver controls the storage device 116 to retrieve the metadata of the data stored in the storage device. When the storage device 116 completes the retrieval of the metadata of the corresponding data, the retrieval completion message of the metadata of the corresponding data is transmitted to the file system 113.

파일 시스템(113)은 데이터의 오픈 요청에 대한 결과를 전송한다(S135). The file system 113 transmits the result of the open request of the data (S135).

애플리케이션 실행부(110)는 데이터에 대해 읽기 또는 쓰기 명령을 전송한다(S140). 데이터의 오픈 요청을 통해 액세스하려는 데이터의 메타 데이터가 파일 시스템(113) 내에 저장된 상황이므로, 애플리케이션 실행부(110)는 데이터에 대해 읽기 또는 쓰기 명령을 파일 시스템(113)으로 전송한다.The application execution unit 110 transmits a read or write command to the data (S140). Since the metadata of the data to be accessed through the open request of the data is stored in the file system 113, the application execution unit 110 transmits a read or write command to the file system 113.

파일 시스템(113)은 저장장치(116)로 메타 데이터의 업데이트 및 데이터에 대해 쓰기 또는 읽기를 요청한다(S145). 데이터에 대해 쓰기 또는 읽기를 수행하기 위해 저장장치(116)에 저장된 데이터에 접근이 발생하는 경우, 파일 시스템의 로그 또는 데이터의 액세스 타임(Access Time)과 같은 메타 데이터에 변경이 발생하게 된다. 따라서 파일 시스템(113)은 저장장치(116)로 데이터에 대해 쓰기 또는 읽기를 요청하며, 해당 데이터의 메타 데이터에 대해 업데이트를 함께 요청한다. 저장장치(116)는 데이터와 메타 데이터를 함께 저장하고 있기 때문에, 파일 시스템(113)은 저장장치(116)로 메타 데이터의 업데이트 및 데이터에 대해 쓰기 또는 읽기를 한꺼번에 요청한다.The file system 113 requests the storage device 116 to update the metadata and write or read data (S145). When access to data stored in the storage device 116 occurs to perform writing or reading of data, a change occurs in metadata such as the access time of the log or data of the file system. Therefore, the file system 113 requests the storage device 116 to write or read data, and requests update of the metadata of the data. Since the storage device 116 stores the data and the metadata together, the file system 113 requests the storage device 116 to update the metadata and write or read the data at once.

저장장치(116)는 데이터에 대해 쓰기 또는 읽기를 수행하며, 파일 시스템(113)으로 수행완료 메시지 및 읽은 데이터를 전달한다(S150). 저장장치(116)는 파일 시스템(113)으로부터 데이터에 대해 쓰기 또는 읽기 요청을 수신한 경우, 저장장치(116) 내에 저장된 데이터에 대해 쓰기 또는 읽기를 수행하고, 이를 알리는 수행완료 메시지를 파일 시스템(113)으로 전달한다. 또한 저장장치(116)는 파일 시스템으로부터 데이터에 대해 읽기 요청을 수신한 경우, 해당 데이터에 대해 읽기를 수행하며 읽은 데이터를 수행완료 메시지와 함께 파일 시스템(113)으로 전달한다.The storage device 116 writes or reads data, and transmits the execution completion message and the read data to the file system 113 (S150). When the storage device 116 receives a write or read request for data from the file system 113, the storage device 116 writes or reads data stored in the storage device 116, 113). When the storage device 116 receives a read request for data from the file system, the storage device 116 reads the data and transfers the read data to the file system 113 together with the execution completion message.

파일 시스템(113)은 데이터의 읽기 또는 쓰기 요청에 대한 결과를 전송한다(S155). The file system 113 transmits the result of the data read or write request (S155).

애플리케이션 실행부(110)는 해당 데이터에 대해 클로우즈(Close) 요청을 한다. 애플리케이션 실행부(110)는 해당 데이터에 대해 읽기 또는 쓰기 수행이 완료된 상황이므로, 파일 시스템(113)으로 해당 데이터에 대한 접근이 완료되었음을 알리는 클로우즈 요청을 한다. 파일 시스템(113)은 클로우즈 요청을 수신하는 경우, 저장하고 있던 해당 데이터의 메타 데이터를 삭제(Free)한다.The application execution unit 110 makes a close request for the data. The application execution unit 110 issues a close request notifying the file system 113 that the access to the data has been completed since the application or the data has been read or written to the corresponding data. When the file system 113 receives the close request, the file system 113 deletes the metadata of the stored data.

기존의 데이터처리 장치의 애플리케이션 수행부(110)는 사용자 모드(User Mode)에서 동작하며, 파일 시스템(113)과 저장장치(116)는 커널 모드(Kernal Mode)에서 동작한다. 이처럼, 애플리케이션 수행부(110)와 파일 시스템(113)과 저장장치(116)는 서로 상이한 모드에서 동작하고 있기 때문에, 서로에게 어떠한 요청을 하기 위해서는 컨텍스트 스위칭(Context Switching)이 이루어져야 한다. 예를 들어, 전술한 과정의 S120에서 애플리케이션 실행부(110)가 파일 시스템(113)으로 데이터에 대해 오픈 요청을 함에 있어서도 컨텍스트 스위칭이 이루어져야 하며, S135에서 파일 시스템(113)이 요청에 대한 결과를 전송함에 있어서도 컨텍스트 스위칭이 이루어져야 한다. 기존의 데이터처리 장치에서는 저장장치에 데이터와 메타데이터가 모두 저장되어 있어, 데이터의 읽기 또는 쓰기를 수행하기 위해 메타데이터에 접근하는 과정에서도 컨텍스트 스위칭이 이루어지게 된다. 이에 따라, 기존의 데이터처리 장치에서는 데이터의 읽기 또는 쓰기를 수행함에 있어서도, 수 회의 컨텍스트 스위칭이 이루어져야 하기 때문에, 컨텍스트 스위칭으로 인한 오버헤드가 발생할 수 있고, 모드의 변경에 따른 부가연산으로 연산의 지연(Latency)가 발생하는 문제점이 존재한다.The application execution unit 110 of the existing data processing apparatus operates in a user mode and the file system 113 and the storage apparatus 116 operate in a kernel mode. Since the application executing unit 110, the file system 113, and the storage device 116 operate in different modes, context switching must be performed in order to make a request to each other. For example, when the application execution unit 110 issues an open request to the file system 113 in S120 of the above-described process, context switching must be performed. In S135, the file system 113 sends the result Context switching must also be performed in the transmission. In a conventional data processing apparatus, both data and meta data are stored in the storage device, and context switching is performed in the process of accessing the metadata in order to read or write data. Accordingly, in the conventional data processing apparatus, even when data is read or written, it is necessary to perform context switching several times. Therefore, an overhead due to context switching may occur. In addition, There is a problem that latency occurs.

본 실시예는, 데이터의 메타 데이터를 별도로 저장하는 비휘발성 메모리를 이용하여 데이터의 처리 속도를 향상시킨 데이터처리 장치 및 방법을 제공하는 데 일 목적이 있다.An object of the present embodiment is to provide a data processing apparatus and method that improves the data processing speed by using a nonvolatile memory that separately stores meta data of data.

본 실시예의 일 측면에 의하면, 파일 시스템 및 저장장치를 포함하는 데이터처리 장치에 있어서, 상기 저장장치 내 저장된 데이터의 메타 데이터(Meta Data)를 상기 저장장치와 분리하여 별도로 저장하는 비휘발성 메모리와 상기 비휘발성 메모리와 대응되어 있어 상기 비휘발성 메모리의 주소로 직접 접근가능한 메모리 및 상기 파일 시스템으로 전송할 기 설정된 함수에 포함된 파일의 식별자를 파악하고, 상기 메모리에서 상기 파일의 식별자에 대응하는 파일의 메타 데이터를 확인하며, 상기 파일의 메타 데이터를 상기 기 설정된 함수에 포함시켜 상기 파일 시스템으로 전송하는 애플리케이션 실행부를 포함하는 것을 특징으로 하는 데이터처리 장치를 제공한다.According to an aspect of the present invention, there is provided a data processing apparatus including a file system and a storage device, comprising: a nonvolatile memory for storing meta data of data stored in the storage device separately from the storage device; Volatile memory, a memory capable of directly accessing an address of the non-volatile memory, and an identifier of a file included in a predetermined function to be transmitted to the file system, and acquiring an identifier of a file corresponding to the identifier of the file in the memory And an application executor for confirming the data and including the metadata of the file in the predetermined function and transmitting the metadata to the file system.

또한, 본 실시예의 다른 측면에 의하면, 비휘발성 메모리, 메모리, 파일 시스템 및 저장장치를 포함하는 데이터처리 장치가 파일을 처리하는 방법에 있어서, 상기 파일 시스템으로 전송할 기 설정된 함수에 포함된 파일의 식별자를 파악하는 과정과 상기 메모리에서 상기 파일의 식별자에 대응하는 메타 데이터를 확인하는 과정과 상기 파일의 메타데이터가 존재하는 경우, 상기 파일의 메타 데이터를 상기 기 설정된 함수에 포함시켜 상기 파일 시스템으로 전송하는 과정을 포함하되, 상기 메모리는 상기 저장장치 내 저장된 데이터의 메타 데이터(Meta Data)를 상기 저장장치와 분리하여 별도로 저장하는 비휘발성 메모리의 주소로 직접 접근하여 상기 파일의 메타데이터의 존부를 파악하는 것을 특징으로 하는 파일처리 방법을 제공한다.According to another aspect of the present invention, there is provided a method of processing a file by a data processing apparatus including a nonvolatile memory, a memory, a file system, and a storage device, the method comprising: Checking metadata corresponding to an identifier of the file in the memory; and if metadata of the file exists, transmitting the metadata of the file to the file system by including the metadata in the predetermined function Wherein the memory directly accesses an address of a nonvolatile memory separately storing meta data of the data stored in the storage device from the storage device to identify whether or not the metadata of the file is present A file processing method, and a file processing method.

이상에서 설명한 바와 같이 본 실시예의 일 측면에 따르면, 본 발명의 일 실시예에 따른 데이터처리 장치 및 방법은 비휘발성 메모리를 구비하여 데이터의 메타 데이터를 별도로 저장하도록 데이터처리 장치의 구조를 변경함으로써, 시스템 콜의 사용 횟수를 줄여 컨텍스트 스위칭의 횟수를 줄일 수 있고, 이에 따라 메타 데이터에 대한 처리 속도를 월등히 향상시켜 전체적인 데이터의 처리 속도를 향상시킬 수 있는 장점이 있다.As described above, according to an aspect of the present invention, a data processing apparatus and method according to an embodiment of the present invention includes a nonvolatile memory, and changes the structure of a data processing apparatus to separately store meta data of data, It is possible to reduce the number of times of context switching by reducing the number of times of use of the system call, thereby improving the processing speed of the entire data by greatly improving the processing speed for the metadata.

도 1은 기존의 데이터처리 장치가 데이터를 처리하기 위한 과정을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터처리 장치의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 데이터처리 장치가 데이터를 처리하기 위한 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 애플리케이션 실행부가 데이터를 처리하는 방법을 도시한 순서도이다.
1 is a diagram illustrating a process of an existing data processing apparatus for processing data.
2 is a diagram showing a configuration of a data processing apparatus according to an embodiment of the present invention.
3 is a flowchart illustrating a process for processing data by a data processing apparatus according to an embodiment of the present invention.
4 is a flow chart illustrating a method for an application executor to process data according to an embodiment of the present invention.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. It should be noted that, in adding reference numerals to the constituent elements of the drawings, the same constituent elements are denoted by the same reference numerals even though they are shown in different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In describing the components of the present invention, terms such as first, second, A, B, (a), and (b) may be used. These terms are intended to distinguish the constituent elements from other constituent elements, and the terms do not limit the nature, order or order of the constituent elements. Throughout the specification, when an element is referred to as being "comprising" or "comprising", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise . In addition, '... Quot ;, " module ", and " module " refer to a unit that processes at least one function or operation, and may be implemented by hardware or software or a combination of hardware and software.

도 2는 본 발명의 일 실시예에 따른 데이터처리 장치의 구성을 도시한 도면이다.2 is a diagram showing a configuration of a data processing apparatus according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 데이터처리 장치(200)는 애플리케이션 실행부(210), 파일 시스템(220), 저장장치(230), 메모리(240) 및 비휘발성 메모리(250)를 포함하여 구성된다.2, a data processing apparatus 200 according to an embodiment of the present invention includes an application execution unit 210, a file system 220, a storage device 230, a memory 240, and a nonvolatile memory 250 ).

애플리케이션 실행부(210)는 데이터처리 장치(200)의 사용자가 실행하고자 하는 애플리케이션 또는 소프트웨어 등을 실행한다. 애플리케이션 실행부(210)는 애플리케이션 또는 소프트웨어 등을 실행하기 위해, 저장장치(230)에 저장된 데이터로의 접근을 해야 한다. 즉, 애플리케이션 실행부(210)는 애플리케이션 또는 소프트웨어 등의 실행을 위해 기 정의된 함수를 이용해 파일 시스템(220)을 거쳐 저장장치(230)에 저장된 데이터로 접근한다.The application execution unit 210 executes an application or software that the user of the data processing apparatus 200 wants to execute. The application executing section 210 has to access data stored in the storage device 230 in order to execute an application or software or the like. That is, the application executing unit 210 accesses the data stored in the storage device 230 via the file system 220 using a predefined function for execution of an application or software.

파일 시스템(220)은 저장장치(230)에 데이터를 기록하고 사용하기 위한 구성이다. 파일 시스템(220)은 저장장치(230)에 데이터의 이름을 지정하고, 저장하고, 읽고, 검색하는 등 데이터를 기록하고 사용하는 모든 작업을 제어한다.The file system 220 is a configuration for recording and using data in the storage device 230. The file system 220 controls all operations to record and use data, such as naming, storing, reading, and retrieving data in the storage device 230.

저장장치(230)는 데이터처리 장치(200)에서 처리할 수 있는 데이터를 저장한다. 저장장치(230)는 HDD(Hard Disk Drive) 또는 SSD(Solid State Drive) 등으로 구현 가능하다. 다만, 저장장치(230)는 기존의 데이터처리 장치의 저장장치와는 달리, 데이터처리 장치(200)에서 처리할 수 있는 데이터만을 저장하며, 저장되어 있는 데이터의 메타 데이터(Meta Data)는 저장하지 않는다. The storage device 230 stores data that can be processed by the data processing apparatus 200. The storage device 230 may be implemented by a hard disk drive (HDD) or a solid state drive (SSD). Unlike the storage device of the existing data processing device, the storage device 230 stores only data that can be processed by the data processing device 200 and stores the meta data of the stored data Do not.

메모리(240)는 애플리케이션 실행부(210)의 애플리케이션 실행에 있어, 실행과정 상에서 저장해야 할 일시적인 데이터를 저장한다. 메모리(240)는 애플리케이션 실행부(210)의 실행 과정 상에서 생성되는 일시적인 데이터를 저장하기 위한 고속의 메모리로서, 캐시메모리(Cache Memory) 등으로 구현될 수 있다.The memory 240 stores temporary data to be stored during execution of the application of the application executing section 210. [ The memory 240 is a high-speed memory for storing temporary data generated in the course of execution of the application executing unit 210, and can be implemented as a cache memory or the like.

또한, 메모리(240)는 비휘발성 메모리(250)와 대응되어 있어, 비휘발성 메모리(250)의 주소로 직접 접근이 가능하다. 메모리(240)는 메모리 매핑(Memory Mapping) 등을 이용하여 비휘발성 메모리(250)와 직접 대응된다. 이처럼 메모리(240)는 비휘발성 메모리(250)와 직접 대응됨에 따라, 애플리케이션 실행부(210)는 메모리(240)로 접근하여 비휘발성 메모리(250) 내에 저장된 데이터로 접근할 수 있다. In addition, the memory 240 is associated with the non-volatile memory 250 and is directly accessible to the address of the non-volatile memory 250. The memory 240 directly corresponds to the non-volatile memory 250 using a memory mapping or the like. As described above, since the memory 240 directly corresponds to the non-volatile memory 250, the application executing unit 210 can access the memory 240 and access the data stored in the non-volatile memory 250.

비휘발성 메모리(250)는 저장장치(230)에 저장된 데이터의 메타 데이터를 저장한다. 비휘발성 메모리(250)는 기존의 데이터처리 장치의 저장장치에서 데이터와 함께 저장하고 있던 데이터의 메타 데이터들을 저장장치(230)와 별도로 저장한다. 비휘발성 메모리(250)는 메타 데이터들을 저장하기 위한 구성으로 NVDIMM(Non-Volatile Dual In-Line Memory Module)으로 구현될 수 있으나, 반드시 이에 한정되는 것은 아니고 적은 양의 데이터를 빠르게 처리할 수 있는 비휘발성 메모리는 어떠한 것도 대체 가능하다.Non-volatile memory 250 stores metadata of data stored in storage device 230. The nonvolatile memory 250 stores the metadata of the data stored in the storage device of the existing data processing apparatus together with the data separately from the storage device 230. The nonvolatile memory 250 may be implemented as a non-volatile dual in-line memory module (NVDIMM) in a configuration for storing meta data, but is not limited thereto. For example, Any volatile memory can be substituted.

본 발명의 일 실시예에 따른 데이터처리 장치(200)는 사용자 모드(User Mode, 260)와 커널 모드(Kernal Mode, 270)로 구분된다. 사용자 모드는 시스템 메모리와 CPU 인스트럭션으로의 접근에 일정한 제한이 존재하는 프로세스 실행 모드를 의미하며, 커널 모드는 모든 시스템 메모리와 모든 CPU 인스트럭션에 접근이 허가된 프로세스 실행 모드를 의미한다. 즉, 데이터처리 장치(200)는 사용자 모드보다 커널 모드에 높은 권한을 줌으로써, 오동작을 유발할 수 있는 어플리케이션 등이 데이터처리 장치(200) 전체의 안전성을 해치지 않도록 한다. The data processing apparatus 200 according to an embodiment of the present invention is divided into a user mode 260 and a kernel mode 270. User mode refers to a process execution mode with certain restrictions on access to system memory and CPU instructions, while kernel mode refers to a process execution mode that allows access to all system memory and all CPU instructions. That is, the data processing apparatus 200 gives a higher privilege to the kernel mode than the user mode, thereby preventing an application or the like that may cause malfunctions from harming the safety of the data processing apparatus 200 as a whole.

사용자 모드에서 커널 모드로 특정 시스템 동작을 수행하도록 요청하기 위해서는 미리 정해진 인터페이스(Interface)를 이용해 커널 모드로 요청하여야 한다. 이러한 인터페이스를 시스템 콜(System Call)이라 한다. 애플리케이션 실행부(210)가 애플리케이션을 수행하며 시스템 콜을 함에 있어, 컨텍스트 스위칭(Context Switching)이 이루어진다. 사용자 모드에서 특정 시스템 동작의 수행 요청은 컨텍스트 스위칭이 이루어진 후, 커널 모드로 진입된다.In order to request a specific system operation from user mode to kernel mode, it should be requested in kernel mode using a predetermined interface. This interface is called a system call. Context switching is performed when the application execution unit 210 executes an application and makes a system call. In the user mode, the execution request of the specific system operation enters the kernel mode after the context switching is performed.

본 발명의 일 실시예에 따른 데이터처리 장치(200)에 있어, 애플리케이션 실행부(210) 및 메모리(240)는 사용자 모드(260) 상에서 동작하며, 파일 시스템(220), 저장장치(230) 및 비휘발성 메모리(250)는 커널 모드(270) 상에서 동작한다. 따라서 애플리케이션 실행부(210)가 파일 시스템(220)으로 특정 시스템 동작의 수행을 요청하거나, 파일 시스템(220)이 애플리케이션 실행부(210)로 수행 요청에 따른 결과나 데이터를 전송함에 있어 컨텍스트 스위칭이 이루어진다. 그러나 동일한 사용자 모드 내에 위치하고 있는 애플리케이션 실행부(210)와 메모리(240) 상에서는 컨텍스트 스위칭이 이루어질 필요가 없다. 메모리(240)와 비휘발성 메모리(250)의 관계를 보면, 상호 간에 요청 또는 데이터의 송수신에도 컨텍스트 스위칭이 이루어져야 하는 것처럼 보인다. 그러나 비휘발성 메모리(250)가 메모리(240)에 메모리 매핑 등을 이용해 대응되어 있기 때문에, 별도의 컨텍스트 스위칭 없이도 메모리와 비휘발성 메모리 상호 간의 접근이 가능하다.The application executing unit 210 and the memory 240 are operated in the user mode 260 and include the file system 220, the storage device 230, Non-volatile memory 250 operates on kernel mode 270. Accordingly, when the application execution unit 210 requests the file system 220 to perform a specific system operation or when the file system 220 transmits the result or data according to the execution request to the application execution unit 210, . However, context switching does not need to be performed on the application execution unit 210 and the memory 240 located in the same user mode. In view of the relationship between the memory 240 and the nonvolatile memory 250, it seems that context switching is required even for mutual request or transmission / reception of data. However, since the non-volatile memory 250 is mapped to the memory 240 using memory mapping or the like, access between the memory and the non-volatile memory is possible without any context switching.

도 3은 본 발명의 일 실시예에 따른 데이터처리 장치가 데이터를 처리하기 위한 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process for processing data by a data processing apparatus according to an embodiment of the present invention.

애플리케이션 실행부(210)는 메모리(240)로 처리하고자 하는 파일의 식별자를 파악한다(S310). 애플리케이션 실행부(210)는 애플리케이션 또는 소프트웨어 등의 실행을 위해 기 정의된 함수를 이용하는데, 기 정의된 함수 내에 포함된 파일의 식별자를 파악한다. 예를 들어, 기 정의된 함수는 해당 파일에 대해 쓰기 명령을 처리하고자 하는 경우, Write_flash와 같은 함수를 사용할 수 있으며, 해당 파일에 대해 읽기 명령을 처리하고자 하는 경우, Read_flash와 같은 함수를 사용할 수 있다. 또한, 기 정의된 함수는 파일의 식별자를 함께 포함하는데, 이때, 파일의 식별자는 각각의 파일을 식별하기 위한 인자이다. 파일의 식별자는 OID(Object Identifier), 파일의 고유키 값(Unique Key) 또는 파일의 파일명(Filename)을 포함한다. 파일의 식별자 중 OID(Object Identifier) 또는 파일의 고유키 값(Unique Key)은 각각의 파일마다 고유한 값을 가지나, 파일의 파일명은 서로 다른 파일이라도 동일한 파일명을 가질 우려가 있다. 따라서 애플리케이션 실행부(210)는 파일의 식별자가 파일의 파일명인 경우, 파일명으로부터 파일의 고유 값을 생성한다. 예를 들어, 애플리케이션 실행부(210)는 해쉬(Hash)함수를 이용하여 해당 파일의 고유 값을 생성할 수 있다. The application execution unit 210 determines the identifier of the file to be processed by the memory 240 (S310). The application execution unit 210 uses a predefined function for execution of an application or software, and identifies an identifier of a file included in a predefined function. For example, a predefined function can use a function such as Write_flash if it wants to process a write command for the file. If you want to process a read command for that file, you can use a function like Read_flash . Also, the predefined function includes an identifier of the file, where the identifier of the file is an argument for identifying each file. The identifier of the file includes an Object Identifier (OID), a unique key value of the file (Unique Key), or a filename of the file (Filename). An OID (Object Identifier) or a unique key value (Unique Key) of an identifier of a file has a value unique to each file, but a file name of a file may have the same file name. Therefore, when the file identifier is a file name of a file, the application execution unit 210 generates a unique value of the file from the file name. For example, the application executing unit 210 may generate a unique value of a corresponding file using a hash function.

애플리케이션 실행부(210)는 메모리(240)에서 파일의 식별자에 대응하는 파일의 메타 데이터를 확인한다(S320). 메타 데이터는 데이터의 크기, 저장 위치, 식별자, 접근의 허가여부, 수정된 시간 등 데이터의 속성을 나타내는 데이터이다. 메모리(240)는 비휘발성 메모리(250)와 메모리 매핑 등을 이용해 대응되어 있기 때문에, 별도의 컨텍스트 스위칭 없이도 비휘발성 메모리(250)의 주소로 직접 접근이 가능하다. 애플리케이션 실행부(210)는 파일의 메타 데이터를 확인하기 위해 비휘발성 메모리(250)로 접근할 필요 없이 메모리(240)로부터 확인 가능하다. 따라서 애플리케이션 실행부(210)는 메모리(240)에서 전술한 과정을 이용해 파악한 파일의 식별자에 대응하는 파일의 메타 데이터를 확인한다. 비휘발성 메모리(250) 내에 저장되어 있는 메타 데이터는 오름차순 또는 내림차순 등과 같이 일정한 기준에 대해 순차적으로 저장되어 있기 때문에, 애플리케이션 실행부(210)는 파일의 식별자에 대응하는 파일의 메타 데이터를 확인할 수 있다. 여러 번의 컨텍스트 스위칭 과정을 거치며 메타 데이터를 확인해야 했던 기존의 데이터처리 장치와는 달리, 애플리케이션 실행부(210)는 이와 같이 처리하고자 하는 파일의 메타 데이터를 메모리(240)로부터 간단히 확인할 수 있다. The application executing unit 210 checks the metadata of the file corresponding to the identifier of the file in the memory 240 (S320). Metadata is data representing attributes of data such as size of data, storage location, identifier, permission of access, and modified time. Since the memory 240 is mapped to the nonvolatile memory 250 using memory mapping or the like, it is possible to directly access the address of the nonvolatile memory 250 without further context switching. The application execution unit 210 can check the memory 240 without having to access the nonvolatile memory 250 to check the metadata of the file. Accordingly, the application executing unit 210 checks the metadata of the file corresponding to the identifier of the file identified by using the above-described process in the memory 240. [ Since the metadata stored in the nonvolatile memory 250 is sequentially stored with respect to a certain reference such as an ascending order or a descending order, the application executing unit 210 can confirm the metadata of the file corresponding to the identifier of the file . Unlike the conventional data processing apparatus which has to check the metadata through a plurality of context switching processes, the application executing unit 210 can simply check the metadata of the file to be processed from the memory 240.

애플리케이션 실행부(210)는 해당 파일에 대해 읽기 또는 쓰기 명령을 파일 시스템(220)으로 요청한다(S330). 애플리케이션 실행부(210)는 파일 시스템(220)으로 기 정의된 함수를 이용하여 해당 파일에 대해 읽기 또는 쓰기 명령을 요청한다. 이때, 읽기 또는 쓰기 명령은 컨텍스트 스위칭되어 파일 시스템(220)으로 전달된다. 애플리케이션 실행부(210)는 읽기 또는 쓰기 명령을 요청함에 있어, 메모리(240)에서 확인한 메타 데이터를 읽기 또는 쓰기 명령에 포함시켜 요청한다. 특히, 애플리케이션 실행부(210)는 메타 데이터 중 데이터의 저장 위치에 관한 정보를 읽기 또는 쓰기 명령에 포함시켜 요청할 수 있다. 기존의 데이터처리 장치와 같이 메타 데이터 확인 과정을 거치며 파일 시스템에 메타 데이터를 저장해두는 과정을 거치지 않더라도, 읽기 또는 쓰기 명령에 메타 데이터를 포함시켜 요청하기 때문에 데이터에 대한 읽기 또는 쓰기 명령의 처리에 아무런 장애가 발생하지 않게 된다. The application executing unit 210 requests the file system 220 to read or write a corresponding file (S330). The application execution unit 210 requests a read or write command to the file using the function defined in the file system 220. At this time, the read or write command is context switched and transferred to the file system 220. In requesting a read or write command, the application execution unit 210 requests the read or write command by including metadata read from the memory 240 in a read or write command. In particular, the application execution unit 210 may include information on the storage location of data in the metadata by including it in a read or write command. Even if metadata is not stored in the file system through the metadata checking process as in the conventional data processing apparatus, since the metadata is included in the read or write command, no processing is performed on the data read or write command The failure does not occur.

애플리케이션 실행부(210)는 메모리(240)로 메타 데이터의 업데이트를 요청한다(S335). 애플리케이션 실행부(210)에 의해 읽기 또는 쓰기 명령이 요청된 파일은 데이터로의 접근 또는 데이터의 수정이 발생할 것이기 때문에, 애플리케이션 실행부(210)는 메모리(240)로 메타 데이터의 업데이트를 요청한다.The application execution unit 210 requests the memory 240 to update the metadata (S335). The application execution unit 210 requests the memory 240 to update the metadata because the file to which the read or write command is requested by the application execution unit 210 is to access the data or modify the data.

메모리(240)는 애플리케이션 실행부(210)로부터 메타 데이터의 업데이트 요청을 수신한 경우, 해당 파일의 메타 데이터를 업데이트 한다(S340). 메모리(240)는 전술한 바와 같이 비휘발성 메모리(250)와 대응되어 있기 때문에, 용이하게 메타 데이터의 업데이트가 가능하다. The memory 240 updates the meta data of the corresponding file when receiving the metadata update request from the application executing unit 210 (S340). Since the memory 240 is associated with the nonvolatile memory 250 as described above, it is possible to easily update the metadata.

파일 시스템(220)은 저장장치(230)로 해당 파일의 읽기 또는 쓰기의 수행을 요청한다(S350). 파일 시스템(220)은 저장장치(230)로 해당 파일의 읽기 또는 쓰기의 수행을 요청함에 있어, 함께 수신한 해당 파일의 메타 데이터를 함께 전달한다. 이와 같이, 메타 데이터를 함께 전달함으로써 저장장치(230)에서 해당 파일의 읽기 또는 쓰기의 수행이 가능해진다. 저장장치(116)는 파일 시스템(220)으로부터 해당 파일의 읽기 또는 쓰기의 수행 요청을 받은 경우, 저장장치(116) 내에 저장된 데이터에 대해 쓰기 또는 읽기를 수행한다. The file system 220 requests the storage device 230 to perform reading or writing of the file (S350). The file system 220 requests the storage device 230 to read or write the file, and transmits the metadata of the file together with the file system 220. By transmitting the meta data together, it becomes possible to read or write the corresponding file in the storage device 230. [ The storage device 116 writes or reads data stored in the storage device 116 when receiving a request to read or write the file from the file system 220.

저장장치(230)는 해당 파일에 대해 쓰기 또는 읽기를 수행하며, 파일 시스템(220)으로 수행완료 메시지 및 읽은 데이터를 전달한다(S360). 저장장치(230)는 저장장치(230) 내에 저장된 해당 파일에 대해 쓰기 또는 읽기를 수행하고, 이를 알리는 수행완료 메시지를 파일 시스템(220)으로 전달한다. 또한 저장장치(230)는 파일 시스템(220)으로부터 데이터에 대해 읽기의 수행을 요청받은 경우, 해당 파일에 대해 읽기를 수행하며 읽은 데이터를 수행완료 메시지와 함께 파일 시스템(220)으로 전달한다.The storage device 230 writes or reads the file, and transmits the completion message and the read data to the file system 220 (S360). The storage device 230 writes or reads a corresponding file stored in the storage device 230, and transmits an execution completion message to the file system 220. Also, when the storage device 230 is requested to read data from the file system 220, the storage device 230 reads the file and transfers the read data to the file system 220 together with the execution completion message.

파일 시스템(220)은 파일의 읽기 또는 쓰기의 수행 요청에 대한 결과를 애플리케이션 실행부(210)로 전송한다(S370).The file system 220 transmits the result of the file read or write request to the application execution unit 210 (S370).

종래의 데이터처리 장치는 메타 데이터를 저장장치에 저장해두며 특정 파일의 처리 시 해당 메타데이터를 파일 시스템 내에 저장해 두는 형태이다. 이 때문에, 종래의 데이터처리 장치 내의 애플리케이션 실행부는 특정 데이터의 읽기 또는 쓰기 명령에 따라 특정 데이터의 메타데이터를 요청하기 위해 파일 시스템으로 오픈 요청을 함에 있어, 모드가 상이한 구성 간에 이루어지기 때문에 시스템 콜이 사용되어야 하며 이에 따라 컨텍스트 스위칭 과정이 발생한다. 또한 데이터처리 장치 내의 저장장치에서 메타데이터의 검색이 완료되어 파일 시스템이 오픈 요청에 대한 결과를 전송함에 있어서도, 시스템 콜이 사용되어야 한다. 또한, 특정 데이터의 읽기 또는 쓰기 명령에 따른 처리 완료 시 클로우즈(Close) 요청을 하여 파일 시스템 내에 저장된 메타 데이터를 제거하는 과정이 필요하다. 이러한 과정 역시 시스템 콜이 사용되어야 한다. 이처럼 종래의 데이터처리 장치에 따르면, 특정 데이터의 읽기 또는 쓰기 명령을 처리함에 있어, 메타데이터를 검색하고 검색 완료사실을 알려주는 과정 및 특정 데이터의 읽기 또는 쓰기 명령에 따른 처리 완료 시 클로우즈(Close) 요청을 하는 과정에 있어서 시스템 콜이 사용되어야 하며 이에 따라 컨텍스트 스위칭 과정이 발생한다. 그러나 본 발명의 일 실시예에 따른 데이터처리 장치(200)는 메타 데이터를 파일 시스템(220)이 아닌 비휘발성 메모리(250)에 저장해두며 관리하고 메모리(240)와 비휘발성 메모리(250)가 대응되어 있기 때문에, 메타데이터의 검색과정에서 시스템 콜이 사용되지 않으며, 해당 파일의 처리가 완료되더라도 별도의 클로우즈 요청은 불필요하다. 따라서 종래의 데이터처리 장치에서 특정한 데이터의 읽기 또는 쓰기명령을 수행함에 있어, 오픈 요청, 읽기 또는 쓰기 명령 요청 및 클로우즈 요청 총 3 번의 시스템 콜이 사용되어야 하는 반면, 본 발명의 일 실시예에 따른 데이터처리 장치는 읽기 또는 쓰기의 수행 요청에서 한 번의 시스템 콜이 사용된다. 이에 따라 본 발명의 일 실시예에 따른 데이터처리 장치는 종래의 데이터처리 장치에 비해 사용되는 시스템 콜 수가 현저히 줄어들어 컨텍스트 스위칭 과정이 줄어들기 때문에 데이터의 처리에 있어 빠른 처리속도를 가질 수 있다.A conventional data processing apparatus stores metadata in a storage device and stores the metadata in a file system when processing a specific file. Therefore, the application executing unit in the conventional data processing apparatus makes an open request to the file system in order to request the metadata of the specific data according to the read or write command of the specific data. And thus a context switching process occurs. In addition, the system call must be used in the case where the retrieval of the metadata in the storage device in the data processing apparatus is completed and the file system transmits the result of the open request. In addition, a process of removing metadata stored in the file system by performing a close request upon completion of processing according to a read or write command of specific data is required. This process also requires system calls to be used. According to the conventional data processing apparatus, when a specific data read or write command is processed, a process of searching for metadata and notifying of completion of the search, and a process of closing / In the requesting process, the system call must be used and context switching occurs accordingly. However, the data processing apparatus 200 according to an embodiment of the present invention stores and manages meta data in the non-volatile memory 250 rather than the file system 220, and the memory 240 and the non-volatile memory 250 correspond to each other The system call is not used in the process of retrieving the metadata. Even if the processing of the file is completed, a separate close request is unnecessary. Therefore, in order to execute a specific data read or write command in the conventional data processing apparatus, three system calls in total, that is, an open request, a read or write command request and a close request, must be used. On the other hand, The processing unit uses one system call in a read or write execution request. Accordingly, the data processing apparatus according to an embodiment of the present invention can reduce the number of system calls used compared with the conventional data processing apparatus, thereby reducing the context switching process, and thus can have a high processing speed in data processing.

데이터처리 장치의 애플리케이션의 실행부(210)는 데이터처리 장치의 사용자의 요청에 따라 파일의 읽기 또는 쓰기를 수행할 경우도 있으나, 단순히 파일의 메타 데이터의 확인만이 필요한 경우도 존재할 수 있다. 예를 들어, 애플리케이션 실행부(210)가 Stat 함수(특정 데이터의 메타 데이터 정보를 확인하기 위한 함수) 또는 readdir 함수(디렉토리에서 파일이나 하위 디렉토리를 찾기 위한 함수) 등을 이용하여 메타 데이터의 확인만을 수행할 수 있다. 이러한 경우, 종래의 데이터처리 장치는 전술한 바와 같이 오픈 요청 및 오픈 요청에 따른 결과를 수신하는데 시스템 콜이 사용되어야 하며 이에 따라 컨텍스트 스위칭이 발생한다. 그러나 본 발명의 일 실시예에 따른 데이터처리 장치는 전술한 S310 내지 S330 과정을 거치면 메타 데이터를 확인할 수 있다. 전술한 S310 내지 S330 과정에서는 시스템 콜이 사용될 필요가 없어 컨텍스트 스위칭이 발생하지 않는다. 이에 따라 본 발명의 일 실시예에 따른 데이터처리 장치는 메타 데이터의 확인만을 수행하는 경우, 종래의 데이터처리 장치에 비해 현저히 빠른 처리속도를 가질 수 있다.The execution unit 210 of the application of the data processing apparatus may read or write the file at the request of the user of the data processing apparatus. However, there may be a case where merely checking the metadata of the file is necessary. For example, when the application execution unit 210 uses the Stat function (a function for checking metadata information of a specific data) or the readdir function (a function for searching a file or a subdirectory in a directory) Can be performed. In this case, the conventional data processing apparatus should use the system call to receive the result of the open request and the open request as described above, and context switching occurs accordingly. However, the data processing apparatus according to an embodiment of the present invention can confirm the metadata through steps S310 to S330. In S310 to S330 described above, the system call does not need to be used and context switching does not occur. Accordingly, when the data processing apparatus according to an embodiment of the present invention performs only the verification of the metadata, it can have a significantly faster processing speed than the conventional data processing apparatus.

도 4는 본 발명의 일 실시예에 따른 애플리케이션 실행부가 데이터를 처리하는 방법을 도시한 순서도이다.4 is a flow chart illustrating a method for an application executor to process data according to an embodiment of the present invention.

실행하고자 하는 함수 내에 포함된 파일의 식별자를 확인한다(S410). 애플리케이션 실행부(210)는 애플리케이션 또는 소프트웨어 등의 실행을 위해 기 정의된 함수를 이용하는데, 기 정의된 함수 내에 포함된 파일의 식별자를 파악한다.The identifier of the file included in the function to be executed is confirmed (S410). The application execution unit 210 uses a predefined function for execution of an application or software, and identifies an identifier of a file included in a predefined function.

파일의 식별자가 파일명인지 여부를 확인한다(S420). 파일의 식별자는 각각의 파일을 식별하기 위한 인자로서, OID(Object Identifier), 파일의 고유키 값(Unique Key) 또는 파일의 파일명(Filename) 등을 포함한다. It is checked whether the file identifier is a file name (S420). The identifier of the file is an argument for identifying each file, and includes an OID (Object Identifier), a unique key value of the file (Unique Key), or a file name (Filename) of the file.

파일의 식별자가 파일명인 경우, 파일명으로부터 고유값을 생성한다(S430). 파일의 식별자 중 OID(Object Identifier) 또는 파일의 고유키 값(Unique Key)은 각각의 파일마다 고유한 값을 가지나, 파일의 파일명은 서로 다른 파일이라도 동일한 파일명을 가질 우려가 있다. 따라서 애플리케이션 실행부(210)는 파일의 식별자가 파일명인 경우, 파일명으로부터 파일의 고유값을 생성한다. 예를 들어, 애플리케이션 실행부(210)는 해쉬(Hash)함수를 이용하여 해당 파일의 고유 값을 생성할 수 있다.If the file identifier is a file name, a unique value is generated from the file name (S430). An OID (Object Identifier) or a unique key value (Unique Key) of an identifier of a file has a value unique to each file, but a file name of a file may have the same file name. Therefore, when the file identifier is a file name, the application execution unit 210 generates a unique value of the file from the file name. For example, the application executing unit 210 may generate a unique value of a corresponding file using a hash function.

메모리에서 파일의 식별자에 대응하는 메타 데이터를 확인한다(S440). 파일의 식별자가 파일명이 아니거나 고유값이 생성된 경우, 메모리에서 해당 파일의 식별자에 대응하는 메타 데이터를 확인한다. 도 2를 참조하여 전술한 바와 같이, 애플리케이션 실행부(210)는 메모리(240)와 비휘발성 메모리(250)가 대응되어 있어 컨텍스트 스위칭 없이도 간편하게 메모리(240)에서 파일의 메타 데이터를 확인할 수 있다. The metadata corresponding to the identifier of the file is checked in the memory (S440). If the file identifier is not a filename or a unique value is generated, the metadata corresponding to the identifier of the file is confirmed in the memory. As described above with reference to FIG. 2, since the memory 240 and the non-volatile memory 250 correspond to each other, the application executing unit 210 can easily check the metadata of the file in the memory 240 without context switching.

메타 데이터가 존재하는지 여부를 확인한다(S450). 애플리케이션 실행부(210)는 메모리에서 파일의 식별자에 대응하는 메타 데이터가 존재하는지 여부를 확인한다. It is checked whether metadata exists (S450). The application executing unit 210 checks whether metadata corresponding to an identifier of a file exists in the memory.

해당 파일의 메타 데이터가 존재하는 경우, 메타 데이터를 포함한 읽기 또는 쓰기 명령을 요청한다(S460). 메모리(240)에서 파일의 식별자에 대응하는 메타 데이터의 존재를 확인한 경우, 애플리케이션 실행부(210)는 해당 메타 데이터를 읽기 또는 쓰기 명령에 포함시켜 요청한다. 특히, 애플리케이션 실행부(210)는 메타 데이터 중 데이터의 저장 위치에 관한 정보를 읽기 또는 쓰기 명령에 포함시켜 요청할 수 있다. 기존의 데이터처리 장치와 같이 메타 데이터 확인 과정을 거치며 파일 시스템에 메타 데이터를 저장해두는 과정을 거치지 않더라도, 읽기 또는 쓰기 명령에 메타 데이터를 포함시켜 요청하기 때문에 데이터에 대한 읽기 또는 쓰기 명령의 처리에 아무런 장애가 발생하지 않게 된다.If metadata of the corresponding file exists, a read or write command including metadata is requested (S460). When the presence of the metadata corresponding to the identifier of the file is confirmed in the memory 240, the application executing unit 210 requests the metadata including the read or write command. In particular, the application execution unit 210 may include information on the storage location of data in the metadata by including it in a read or write command. Even if metadata is not stored in the file system through the metadata checking process as in the conventional data processing apparatus, since the metadata is included in the read or write command, no processing is performed on the data read or write command The failure does not occur.

도 3 및 도 4에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 각각의 도면에 기재된 과정의 순서를 변경하여 실행하거나 과정 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 3 및 도 4는 시계열적인 순서로 한정되는 것은 아니다.In FIGS. 3 and 4, it is described that each process is sequentially executed, but this is merely illustrative of the technical idea of an embodiment of the present invention. In other words, those skilled in the art will appreciate that various changes and modifications may be made without departing from the essential characteristics of one embodiment of the present invention, And FIG. 4 are not limited to the time-series order because they can be variously modified and modified by being executed in parallel.

한편, 도 3 및 도 4에 도시된 과정들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.3 and 4 may be embodied as computer-readable codes on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. That is, a computer-readable recording medium includes a magnetic storage medium (e.g., ROM, floppy disk, hard disk, etc.), an optical reading medium (e.g., CD ROM, And the like). The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present embodiment, and various modifications and changes may be made to those skilled in the art without departing from the essential characteristics of the embodiments. Therefore, the present embodiments are to be construed as illustrative rather than restrictive, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be construed according to the following claims, and all technical ideas within the scope of equivalents thereof should be construed as being included in the scope of the present invention.

110, 210: 애플리케이션 실행부 113, 220: 파일 시스템
116, 230: 저장장치 200: 데이터처리 장치
240: 메모리 250: 비휘발성 메모리
110, 210: Application execution unit 113, 220: File system
116 and 230: storage device 200: data processing device
240: memory 250: nonvolatile memory

Claims (8)

파일 시스템 및 저장장치를 포함하는 데이터처리 장치에 있어서,
상기 저장장치 내 저장된 데이터의 메타 데이터(Meta Data)를 상기 저장장치와 분리하여 별도로 저장하는 비휘발성 메모리;
상기 비휘발성 메모리와 대응되어 있어 상기 비휘발성 메모리의 주소로 직접 접근가능한 메모리; 및
상기 파일 시스템으로 전송할 기 설정된 함수에 포함된 파일의 식별자를 파악하고, 상기 메모리에서 상기 파일의 식별자에 대응하는 파일의 메타 데이터를 확인하며, 상기 파일의 메타 데이터를 상기 기 설정된 함수에 포함시켜 상기 파일 시스템으로 전송하는 애플리케이션 실행부
를 포함하는 것을 특징으로 하는 데이터처리 장치.
A data processing apparatus comprising a file system and a storage device,
A nonvolatile memory for storing meta data of data stored in the storage device separately from the storage device;
A memory corresponding to the nonvolatile memory and directly accessible to an address of the nonvolatile memory; And
Determining an identifier of a file included in a predetermined function to be transmitted to the file system, checking metadata of a file corresponding to the identifier of the file in the memory, and storing metadata of the file in the predetermined function, An application execution unit
The data processing apparatus comprising:
제1항에 있어서,
상기 메모리는,
메모리 매핑(memory Mapping)과정을 거쳐 상기 비휘발성 메모리와 대응되는 것을 특징으로 하는 데이터처리 장치.
The method according to claim 1,
The memory comprising:
Volatile memory through a memory mapping process. ≪ Desc / Clms Page number 19 >
제1항에 있어서,
상기 파일의 식별자는,
파일명, 고유키 값(unique Key) 또는 OID(Object Identifier) 중 어느 하나인 것을 특징으로 하는 데이터처리 장치.
The method according to claim 1,
The identifier of the file is,
A file name, a unique key value, or an OID (Object Identifier).
제3항에 있어서,
상기 애플리케이션 실행부는,
상기 파일의 식별자가 상기 파일명인 경우, 상기 파일명으로부터 상기 파일의 고유값을 생성하는 것을 특징으로 하는 데이터처리 장치.
The method of claim 3,
The application execution unit,
And generates an eigenvalue of the file from the file name if the identifier of the file is the file name.
제4항에 있어서,
상기 애플리케이션 실행부는,
상기 파일명으로부터 상기 파일의 고유값을 생성함에 있어, 해쉬(Hash) 함수를 사용하는 것을 특징으로 하는 데이터처리 장치.
5. The method of claim 4,
The application execution unit,
Wherein a hash function is used to generate the eigenvalue of the file from the file name.
제1항에 있어서,
상기 애플리케이션 실행부는,
상기 기 설정된 함수를 상기 파일 시스템으로 전송하며, 상기 메모리로 상기 메모리가 전송한 메타데이터의 업데이트를 요청하는 것을 특징으로 하는 데이터처리 장치.
The method according to claim 1,
The application execution unit,
Transmits the predetermined function to the file system, and requests the memory to update the metadata transmitted from the memory.
제1항에 있어서,
상기 애플리케이션 실행부는,
상기 기 설정된 함수에 상기 파일이 상기 저장장치 중 어느 위치에 저장되어 있는지에 관한 정보를 포함시켜 상기 파일 시스템으로 전송하는 것을 특징으로 하는 데이터처리 장치.
The method according to claim 1,
The application execution unit,
Wherein the predetermined function includes information on which of the storage devices the file is stored, and transmits the file to the file system.
비휘발성 메모리, 메모리, 파일 시스템 및 저장장치를 포함하는 데이터처리 장치가 파일을 처리하는 방법에 있어서,
상기 파일 시스템으로 전송할 기 설정된 함수에 포함된 파일의 식별자를 파악하는 과정;
상기 메모리에서 상기 파일의 식별자에 대응하는 메타 데이터를 확인하는 과정;
상기 파일의 메타데이터가 존재하는 경우, 상기 파일의 메타 데이터를 상기 기 설정된 함수에 포함시켜 상기 파일 시스템으로 전송하는 과정을 포함하되,
상기 메모리는 상기 저장장치 내 저장된 데이터의 메타 데이터(Meta Data)를 상기 저장장치와 분리하여 별도로 저장하는 비휘발성 메모리의 주소로 직접 접근하여 상기 파일의 메타데이터의 존부를 파악하는 것을 특징으로 하는 파일처리 방법.
CLAIMS What is claimed is: 1. A method for processing a file by a data processing apparatus comprising a non-volatile memory, a memory, a file system and a storage device,
Determining an identifier of a file included in a predetermined function to be transmitted to the file system;
Checking metadata corresponding to an identifier of the file in the memory;
If the metadata of the file exists, including metadata of the file in the predetermined function and transmitting the meta data to the file system,
Wherein the memory directly accesses an address of a nonvolatile memory separately storing meta data of the data stored in the storage device to identify the presence or absence of metadata of the file. Processing method.
KR1020160060915A 2016-05-18 2016-05-18 Method and Apparatus for Processing Data Using Non-Volatile Memory KR102134905B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160060915A KR102134905B1 (en) 2016-05-18 2016-05-18 Method and Apparatus for Processing Data Using Non-Volatile Memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160060915A KR102134905B1 (en) 2016-05-18 2016-05-18 Method and Apparatus for Processing Data Using Non-Volatile Memory

Publications (2)

Publication Number Publication Date
KR20170130180A true KR20170130180A (en) 2017-11-28
KR102134905B1 KR102134905B1 (en) 2020-08-26

Family

ID=60811361

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160060915A KR102134905B1 (en) 2016-05-18 2016-05-18 Method and Apparatus for Processing Data Using Non-Volatile Memory

Country Status (1)

Country Link
KR (1) KR102134905B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113467698A (en) * 2020-03-30 2021-10-01 珠海全志科技股份有限公司 Writing method and device based on file system, computer equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070037022A (en) * 2005-09-30 2007-04-04 삼성전자주식회사 Flash memory device, mapping apparatus and method for the same
JP2009025899A (en) * 2007-07-17 2009-02-05 Panasonic Corp Memory controller, nonvolatile storage, and nonvolatile storage system
KR20100055374A (en) * 2010-04-19 2010-05-26 한양대학교 산학협력단 File management system and method
JP2016024678A (en) * 2014-07-22 2016-02-08 株式会社東芝 Memory system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070037022A (en) * 2005-09-30 2007-04-04 삼성전자주식회사 Flash memory device, mapping apparatus and method for the same
KR100801072B1 (en) * 2005-09-30 2008-02-11 삼성전자주식회사 Flash memory device, mapping apparatus and method for the same
JP2009025899A (en) * 2007-07-17 2009-02-05 Panasonic Corp Memory controller, nonvolatile storage, and nonvolatile storage system
KR20100055374A (en) * 2010-04-19 2010-05-26 한양대학교 산학협력단 File management system and method
JP2016024678A (en) * 2014-07-22 2016-02-08 株式会社東芝 Memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113467698A (en) * 2020-03-30 2021-10-01 珠海全志科技股份有限公司 Writing method and device based on file system, computer equipment and storage medium

Also Published As

Publication number Publication date
KR102134905B1 (en) 2020-08-26

Similar Documents

Publication Publication Date Title
US9563636B2 (en) Allowing writes to complete without obtaining a write lock to a file
US9817765B2 (en) Dynamic hierarchical memory cache awareness within a storage system
US9996421B2 (en) Data storage method, data storage apparatus, and storage device
WO2015166540A1 (en) Storage apparatus, data-processing method therefor, and storage system
US20170038971A1 (en) Memory controller and memory system
US9710283B2 (en) System and method for pre-storing small data files into a page-cache and performing reading and writing to the page cache during booting
JP2013511104A (en) Virtual hard drive management as a blob
US10241934B2 (en) Shared memory controller, shared memory module, and memory sharing system
US20180364915A1 (en) Method and system for distributed storage using client-side global persistent cache
US20170329852A1 (en) Page query method and data processing node in oltp cluster database
US10719240B2 (en) Method and device for managing a storage system having a multi-layer storage structure
US9195658B2 (en) Managing direct attached cache and remote shared cache
US11550913B2 (en) System and method for performing an antivirus scan using file level deduplication
US11003577B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program of access control with respect to semiconductor device memory
US11520818B2 (en) Method, apparatus and computer program product for managing metadata of storage object
US10430287B2 (en) Computer
KR102134905B1 (en) Method and Apparatus for Processing Data Using Non-Volatile Memory
US9323476B2 (en) Hardware based cache scan with divert node handling
CN111625477B (en) Processing method and device for read request for accessing erase block
KR102237566B1 (en) System and Method for Caching Disk Image File of Full-Cloned Virtual Machine
US20160062841A1 (en) Database and data accessing method thereof
US10599617B2 (en) Methods and apparatus to modify a binary file for scalable dependency loading on distributed computing systems
US7206906B1 (en) Physical address mapping framework
US10445289B1 (en) Method and apparatus for automatic cleanup of disfavored content
CN112748854B (en) Optimized access to a fast storage device

Legal Events

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