KR102134905B1 - 비휘발성 메모리를 이용한 데이터처리 장치 및 방법 - Google Patents

비휘발성 메모리를 이용한 데이터처리 장치 및 방법 Download PDF

Info

Publication number
KR102134905B1
KR102134905B1 KR1020160060915A KR20160060915A KR102134905B1 KR 102134905 B1 KR102134905 B1 KR 102134905B1 KR 1020160060915 A KR1020160060915 A KR 1020160060915A KR 20160060915 A KR20160060915 A KR 20160060915A KR 102134905 B1 KR102134905 B1 KR 102134905B1
Authority
KR
South Korea
Prior art keywords
file
data
metadata
memory
execution unit
Prior art date
Application number
KR1020160060915A
Other languages
English (en)
Other versions
KR20170130180A (ko
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/ko
Publication of KR20170130180A publication Critical patent/KR20170130180A/ko
Application granted granted Critical
Publication of KR102134905B1 publication Critical patent/KR102134905B1/ko

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
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

비휘발성 메모리를 이용한 데이터처리 장치 및 방법을 개시한다.
본 실시예의 일 측면에 의하면, 데이터의 메타 데이터를 별도로 저장하는 비휘발성 메모리를 이용하여 데이터의 처리 속도를 향상시킨 데이터처리 장치 및 방법을 제공하는 데 일 목적이 있다.

Description

비휘발성 메모리를 이용한 데이터처리 장치 및 방법{Method and Apparatus for Processing Data Using Non-Volatile Memory}
본 실시예는 비휘발성 메모리를 이용한 하이브리드 데이터처리 장치 및 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
도 1은 기존의 데이터처리 장치가 데이터를 처리하기 위한 과정을 도시한 도면이다.
애플리케이션 실행부(110)는 파일 시스템(113)으로 데이터에 대한 오픈(Open) 요청을 한다(S120). 기존의 데이터처리 장치는 어떠한 데이터에 대해 쓰기(Write) 명령 또는 읽기(Read) 명령을 수행하기 위해서는 해당 데이터에 대한 오픈 요청을 하여, 해당 데이터의 메타 데이터(Meta Data)를 요청한다.
파일 시스템(113)은 요청에 따라 해당 데이터의 메타 데이터의 검색을 요청한다(S125). 파일 시스템(113)은 애플리케이션 실행부(110)로부터 특정 데이터에 대한 오픈 요청을 수신하는 경우, 이를 해당 데이터의 메타 데이터의 검색의 요청으로 해석한다. 이에 따라, 파일 시스템(113)은 저장장치(116)로 해당 데이터의 메타 데이터의 검색을 요청한다.
저장장치(116)는 해당 데이터의 메타 데이터의 검색 요청에 따라 메타 데이터를 검색하며, 메타 데이터의 검색완료 메시지를 전송한다(S130). 저장장치(116)는 파일 시스템(113)으로부터 해당 데이터의 메타 데이터의 검색 요청을 수신하는 경우, 해당 데이터의 메타 데이터를 검색한다. 해당 데이터의 메타 데이터의 검색 요청은 저장장치(116)를 관리하는 장치 드라이버(Device Driver, 미도시)를 거쳐 저장장치(116)까지 전달될 수 있다. 장치 드라이버는 해당 데이터의 메타 데이터의 검색 요청을 수신하는 경우, 저장장치(116)를 제어하여 저장장치 내에 저장된 데이터들의 메타데이터를 검색하도록 한다. 저장장치(116)가 해당 데이터의 메타 데이터의 검색을 완료한 경우, 파일 시스템(113)으로 해당 데이터의 메타 데이터의 검색완료 메시지를 전송한다.
파일 시스템(113)은 데이터의 오픈 요청에 대한 결과를 전송한다(S135).
애플리케이션 실행부(110)는 데이터에 대해 읽기 또는 쓰기 명령을 전송한다(S140). 데이터의 오픈 요청을 통해 액세스하려는 데이터의 메타 데이터가 파일 시스템(113) 내에 저장된 상황이므로, 애플리케이션 실행부(110)는 데이터에 대해 읽기 또는 쓰기 명령을 파일 시스템(113)으로 전송한다.
파일 시스템(113)은 저장장치(116)로 메타 데이터의 업데이트 및 데이터에 대해 쓰기 또는 읽기를 요청한다(S145). 데이터에 대해 쓰기 또는 읽기를 수행하기 위해 저장장치(116)에 저장된 데이터에 접근이 발생하는 경우, 파일 시스템의 로그 또는 데이터의 액세스 타임(Access Time)과 같은 메타 데이터에 변경이 발생하게 된다. 따라서 파일 시스템(113)은 저장장치(116)로 데이터에 대해 쓰기 또는 읽기를 요청하며, 해당 데이터의 메타 데이터에 대해 업데이트를 함께 요청한다. 저장장치(116)는 데이터와 메타 데이터를 함께 저장하고 있기 때문에, 파일 시스템(113)은 저장장치(116)로 메타 데이터의 업데이트 및 데이터에 대해 쓰기 또는 읽기를 한꺼번에 요청한다.
저장장치(116)는 데이터에 대해 쓰기 또는 읽기를 수행하며, 파일 시스템(113)으로 수행완료 메시지 및 읽은 데이터를 전달한다(S150). 저장장치(116)는 파일 시스템(113)으로부터 데이터에 대해 쓰기 또는 읽기 요청을 수신한 경우, 저장장치(116) 내에 저장된 데이터에 대해 쓰기 또는 읽기를 수행하고, 이를 알리는 수행완료 메시지를 파일 시스템(113)으로 전달한다. 또한 저장장치(116)는 파일 시스템으로부터 데이터에 대해 읽기 요청을 수신한 경우, 해당 데이터에 대해 읽기를 수행하며 읽은 데이터를 수행완료 메시지와 함께 파일 시스템(113)으로 전달한다.
파일 시스템(113)은 데이터의 읽기 또는 쓰기 요청에 대한 결과를 전송한다(S155).
애플리케이션 실행부(110)는 해당 데이터에 대해 클로우즈(Close) 요청을 한다. 애플리케이션 실행부(110)는 해당 데이터에 대해 읽기 또는 쓰기 수행이 완료된 상황이므로, 파일 시스템(113)으로 해당 데이터에 대한 접근이 완료되었음을 알리는 클로우즈 요청을 한다. 파일 시스템(113)은 클로우즈 요청을 수신하는 경우, 저장하고 있던 해당 데이터의 메타 데이터를 삭제(Free)한다.
기존의 데이터처리 장치의 애플리케이션 수행부(110)는 사용자 모드(User Mode)에서 동작하며, 파일 시스템(113)과 저장장치(116)는 커널 모드(Kernal Mode)에서 동작한다. 이처럼, 애플리케이션 수행부(110)와 파일 시스템(113)과 저장장치(116)는 서로 상이한 모드에서 동작하고 있기 때문에, 서로에게 어떠한 요청을 하기 위해서는 컨텍스트 스위칭(Context Switching)이 이루어져야 한다. 예를 들어, 전술한 과정의 S120에서 애플리케이션 실행부(110)가 파일 시스템(113)으로 데이터에 대해 오픈 요청을 함에 있어서도 컨텍스트 스위칭이 이루어져야 하며, S135에서 파일 시스템(113)이 요청에 대한 결과를 전송함에 있어서도 컨텍스트 스위칭이 이루어져야 한다. 기존의 데이터처리 장치에서는 저장장치에 데이터와 메타데이터가 모두 저장되어 있어, 데이터의 읽기 또는 쓰기를 수행하기 위해 메타데이터에 접근하는 과정에서도 컨텍스트 스위칭이 이루어지게 된다. 이에 따라, 기존의 데이터처리 장치에서는 데이터의 읽기 또는 쓰기를 수행함에 있어서도, 수 회의 컨텍스트 스위칭이 이루어져야 하기 때문에, 컨텍스트 스위칭으로 인한 오버헤드가 발생할 수 있고, 모드의 변경에 따른 부가연산으로 연산의 지연(Latency)가 발생하는 문제점이 존재한다.
이러한, 파일 시스템은 한국공개특허 제2010-0055374호에 개시되어 있다.
본 실시예는, 데이터의 메타 데이터를 별도로 저장하는 비휘발성 메모리를 이용하여 데이터의 처리 속도를 향상시킨 데이터처리 장치 및 방법을 제공하는 데 일 목적이 있다.
본 실시예의 일 측면에 의하면, 파일 시스템 및 저장장치를 포함하는 데이터처리 장치에 있어서, 상기 저장장치 내 저장된 데이터의 메타 데이터(Meta Data)를 상기 저장장치와 분리하여 별도로 저장하는 비휘발성 메모리와 상기 비휘발성 메모리와 대응되어 있어 상기 비휘발성 메모리의 주소로 직접 접근가능한 메모리 및 상기 파일 시스템으로 전송할 기 설정된 함수에 포함된 파일의 식별자를 파악하고, 상기 메모리에서 상기 파일의 식별자에 대응하는 파일의 메타 데이터를 확인하며, 상기 파일의 메타 데이터를 상기 기 설정된 함수에 포함시켜 상기 파일 시스템으로 전송하는 애플리케이션 실행부를 포함하는 것을 특징으로 하는 데이터처리 장치를 제공한다.
또한, 본 실시예의 다른 측면에 의하면, 비휘발성 메모리, 메모리, 파일 시스템 및 저장장치를 포함하는 데이터처리 장치가 파일을 처리하는 방법에 있어서, 상기 파일 시스템으로 전송할 기 설정된 함수에 포함된 파일의 식별자를 파악하는 과정과 상기 메모리에서 상기 파일의 식별자에 대응하는 메타 데이터를 확인하는 과정과 상기 파일의 메타데이터가 존재하는 경우, 상기 파일의 메타 데이터를 상기 기 설정된 함수에 포함시켜 상기 파일 시스템으로 전송하는 과정을 포함하되, 상기 메모리는 상기 저장장치 내 저장된 데이터의 메타 데이터(Meta Data)를 상기 저장장치와 분리하여 별도로 저장하는 비휘발성 메모리의 주소로 직접 접근하여 상기 파일의 메타데이터의 존부를 파악하는 것을 특징으로 하는 파일처리 방법을 제공한다.
이상에서 설명한 바와 같이 본 실시예의 일 측면에 따르면, 본 발명의 일 실시예에 따른 데이터처리 장치 및 방법은 비휘발성 메모리를 구비하여 데이터의 메타 데이터를 별도로 저장하도록 데이터처리 장치의 구조를 변경함으로써, 시스템 콜의 사용 횟수를 줄여 컨텍스트 스위칭의 횟수를 줄일 수 있고, 이에 따라 메타 데이터에 대한 처리 속도를 월등히 향상시켜 전체적인 데이터의 처리 속도를 향상시킬 수 있는 장점이 있다.
도 1은 기존의 데이터처리 장치가 데이터를 처리하기 위한 과정을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터처리 장치의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 데이터처리 장치가 데이터를 처리하기 위한 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 애플리케이션 실행부가 데이터를 처리하는 방법을 도시한 순서도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 데이터처리 장치의 구성을 도시한 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 데이터처리 장치(200)는 애플리케이션 실행부(210), 파일 시스템(220), 저장장치(230), 메모리(240) 및 비휘발성 메모리(250)를 포함하여 구성된다.
애플리케이션 실행부(210)는 데이터처리 장치(200)의 사용자가 실행하고자 하는 애플리케이션 또는 소프트웨어 등을 실행한다. 애플리케이션 실행부(210)는 애플리케이션 또는 소프트웨어 등을 실행하기 위해, 저장장치(230)에 저장된 데이터로의 접근을 해야 한다. 즉, 애플리케이션 실행부(210)는 애플리케이션 또는 소프트웨어 등의 실행을 위해 기 정의된 함수를 이용해 파일 시스템(220)을 거쳐 저장장치(230)에 저장된 데이터로 접근한다.
파일 시스템(220)은 저장장치(230)에 데이터를 기록하고 사용하기 위한 구성이다. 파일 시스템(220)은 저장장치(230)에 데이터의 이름을 지정하고, 저장하고, 읽고, 검색하는 등 데이터를 기록하고 사용하는 모든 작업을 제어한다.
저장장치(230)는 데이터처리 장치(200)에서 처리할 수 있는 데이터를 저장한다. 저장장치(230)는 HDD(Hard Disk Drive) 또는 SSD(Solid State Drive) 등으로 구현 가능하다. 다만, 저장장치(230)는 기존의 데이터처리 장치의 저장장치와는 달리, 데이터처리 장치(200)에서 처리할 수 있는 데이터만을 저장하며, 저장되어 있는 데이터의 메타 데이터(Meta Data)는 저장하지 않는다.
메모리(240)는 애플리케이션 실행부(210)의 애플리케이션 실행에 있어, 실행과정 상에서 저장해야 할 일시적인 데이터를 저장한다. 메모리(240)는 애플리케이션 실행부(210)의 실행 과정 상에서 생성되는 일시적인 데이터를 저장하기 위한 고속의 메모리로서, 캐시메모리(Cache Memory) 등으로 구현될 수 있다.
또한, 메모리(240)는 비휘발성 메모리(250)와 대응되어 있어, 비휘발성 메모리(250)의 주소로 직접 접근이 가능하다. 메모리(240)는 메모리 매핑(Memory Mapping) 등을 이용하여 비휘발성 메모리(250)와 직접 대응된다. 이처럼 메모리(240)는 비휘발성 메모리(250)와 직접 대응됨에 따라, 애플리케이션 실행부(210)는 메모리(240)로 접근하여 비휘발성 메모리(250) 내에 저장된 데이터로 접근할 수 있다.
비휘발성 메모리(250)는 저장장치(230)에 저장된 데이터의 메타 데이터를 저장한다. 비휘발성 메모리(250)는 기존의 데이터처리 장치의 저장장치에서 데이터와 함께 저장하고 있던 데이터의 메타 데이터들을 저장장치(230)와 별도로 저장한다. 비휘발성 메모리(250)는 메타 데이터들을 저장하기 위한 구성으로 NVDIMM(Non-Volatile Dual In-Line Memory Module)으로 구현될 수 있으나, 반드시 이에 한정되는 것은 아니고 적은 양의 데이터를 빠르게 처리할 수 있는 비휘발성 메모리는 어떠한 것도 대체 가능하다.
본 발명의 일 실시예에 따른 데이터처리 장치(200)는 사용자 모드(User Mode, 260)와 커널 모드(Kernal Mode, 270)로 구분된다. 사용자 모드는 시스템 메모리와 CPU 인스트럭션으로의 접근에 일정한 제한이 존재하는 프로세스 실행 모드를 의미하며, 커널 모드는 모든 시스템 메모리와 모든 CPU 인스트럭션에 접근이 허가된 프로세스 실행 모드를 의미한다. 즉, 데이터처리 장치(200)는 사용자 모드보다 커널 모드에 높은 권한을 줌으로써, 오동작을 유발할 수 있는 어플리케이션 등이 데이터처리 장치(200) 전체의 안전성을 해치지 않도록 한다.
사용자 모드에서 커널 모드로 특정 시스템 동작을 수행하도록 요청하기 위해서는 미리 정해진 인터페이스(Interface)를 이용해 커널 모드로 요청하여야 한다. 이러한 인터페이스를 시스템 콜(System Call)이라 한다. 애플리케이션 실행부(210)가 애플리케이션을 수행하며 시스템 콜을 함에 있어, 컨텍스트 스위칭(Context Switching)이 이루어진다. 사용자 모드에서 특정 시스템 동작의 수행 요청은 컨텍스트 스위칭이 이루어진 후, 커널 모드로 진입된다.
본 발명의 일 실시예에 따른 데이터처리 장치(200)에 있어, 애플리케이션 실행부(210) 및 메모리(240)는 사용자 모드(260) 상에서 동작하며, 파일 시스템(220), 저장장치(230) 및 비휘발성 메모리(250)는 커널 모드(270) 상에서 동작한다. 따라서 애플리케이션 실행부(210)가 파일 시스템(220)으로 특정 시스템 동작의 수행을 요청하거나, 파일 시스템(220)이 애플리케이션 실행부(210)로 수행 요청에 따른 결과나 데이터를 전송함에 있어 컨텍스트 스위칭이 이루어진다. 그러나 동일한 사용자 모드 내에 위치하고 있는 애플리케이션 실행부(210)와 메모리(240) 상에서는 컨텍스트 스위칭이 이루어질 필요가 없다. 메모리(240)와 비휘발성 메모리(250)의 관계를 보면, 상호 간에 요청 또는 데이터의 송수신에도 컨텍스트 스위칭이 이루어져야 하는 것처럼 보인다. 그러나 비휘발성 메모리(250)가 메모리(240)에 메모리 매핑 등을 이용해 대응되어 있기 때문에, 별도의 컨텍스트 스위칭 없이도 메모리와 비휘발성 메모리 상호 간의 접근이 가능하다.
도 3은 본 발명의 일 실시예에 따른 데이터처리 장치가 데이터를 처리하기 위한 과정을 도시한 흐름도이다.
애플리케이션 실행부(210)는 메모리(240)로 처리하고자 하는 파일의 식별자를 파악한다(S310). 애플리케이션 실행부(210)는 애플리케이션 또는 소프트웨어 등의 실행을 위해 기 정의된 함수를 이용하는데, 기 정의된 함수 내에 포함된 파일의 식별자를 파악한다. 예를 들어, 기 정의된 함수는 해당 파일에 대해 쓰기 명령을 처리하고자 하는 경우, Write_flash와 같은 함수를 사용할 수 있으며, 해당 파일에 대해 읽기 명령을 처리하고자 하는 경우, Read_flash와 같은 함수를 사용할 수 있다. 또한, 기 정의된 함수는 파일의 식별자를 함께 포함하는데, 이때, 파일의 식별자는 각각의 파일을 식별하기 위한 인자이다. 파일의 식별자는 OID(Object Identifier), 파일의 고유키 값(Unique Key) 또는 파일의 파일명(Filename)을 포함한다. 파일의 식별자 중 OID(Object Identifier) 또는 파일의 고유키 값(Unique Key)은 각각의 파일마다 고유한 값을 가지나, 파일의 파일명은 서로 다른 파일이라도 동일한 파일명을 가질 우려가 있다. 따라서 애플리케이션 실행부(210)는 파일의 식별자가 파일의 파일명인 경우, 파일명으로부터 파일의 고유 값을 생성한다. 예를 들어, 애플리케이션 실행부(210)는 해쉬(Hash)함수를 이용하여 해당 파일의 고유 값을 생성할 수 있다.
애플리케이션 실행부(210)는 메모리(240)에서 파일의 식별자에 대응하는 파일의 메타 데이터를 확인한다(S320). 메타 데이터는 데이터의 크기, 저장 위치, 식별자, 접근의 허가여부, 수정된 시간 등 데이터의 속성을 나타내는 데이터이다. 메모리(240)는 비휘발성 메모리(250)와 메모리 매핑 등을 이용해 대응되어 있기 때문에, 별도의 컨텍스트 스위칭 없이도 비휘발성 메모리(250)의 주소로 직접 접근이 가능하다. 애플리케이션 실행부(210)는 파일의 메타 데이터를 확인하기 위해 비휘발성 메모리(250)로 접근할 필요 없이 메모리(240)로부터 확인 가능하다. 따라서 애플리케이션 실행부(210)는 메모리(240)에서 전술한 과정을 이용해 파악한 파일의 식별자에 대응하는 파일의 메타 데이터를 확인한다. 비휘발성 메모리(250) 내에 저장되어 있는 메타 데이터는 오름차순 또는 내림차순 등과 같이 일정한 기준에 대해 순차적으로 저장되어 있기 때문에, 애플리케이션 실행부(210)는 파일의 식별자에 대응하는 파일의 메타 데이터를 확인할 수 있다. 여러 번의 컨텍스트 스위칭 과정을 거치며 메타 데이터를 확인해야 했던 기존의 데이터처리 장치와는 달리, 애플리케이션 실행부(210)는 이와 같이 처리하고자 하는 파일의 메타 데이터를 메모리(240)로부터 간단히 확인할 수 있다.
애플리케이션 실행부(210)는 해당 파일에 대해 읽기 또는 쓰기 명령을 파일 시스템(220)으로 요청한다(S330). 애플리케이션 실행부(210)는 파일 시스템(220)으로 기 정의된 함수를 이용하여 해당 파일에 대해 읽기 또는 쓰기 명령을 요청한다. 이때, 읽기 또는 쓰기 명령은 컨텍스트 스위칭되어 파일 시스템(220)으로 전달된다. 애플리케이션 실행부(210)는 읽기 또는 쓰기 명령을 요청함에 있어, 메모리(240)에서 확인한 메타 데이터를 읽기 또는 쓰기 명령에 포함시켜 요청한다. 특히, 애플리케이션 실행부(210)는 메타 데이터 중 데이터의 저장 위치에 관한 정보를 읽기 또는 쓰기 명령에 포함시켜 요청할 수 있다. 기존의 데이터처리 장치와 같이 메타 데이터 확인 과정을 거치며 파일 시스템에 메타 데이터를 저장해두는 과정을 거치지 않더라도, 읽기 또는 쓰기 명령에 메타 데이터를 포함시켜 요청하기 때문에 데이터에 대한 읽기 또는 쓰기 명령의 처리에 아무런 장애가 발생하지 않게 된다.
애플리케이션 실행부(210)는 메모리(240)로 메타 데이터의 업데이트를 요청한다(S335). 애플리케이션 실행부(210)에 의해 읽기 또는 쓰기 명령이 요청된 파일은 데이터로의 접근 또는 데이터의 수정이 발생할 것이기 때문에, 애플리케이션 실행부(210)는 메모리(240)로 메타 데이터의 업데이트를 요청한다.
메모리(240)는 애플리케이션 실행부(210)로부터 메타 데이터의 업데이트 요청을 수신한 경우, 해당 파일의 메타 데이터를 업데이트 한다(S340). 메모리(240)는 전술한 바와 같이 비휘발성 메모리(250)와 대응되어 있기 때문에, 용이하게 메타 데이터의 업데이트가 가능하다.
파일 시스템(220)은 저장장치(230)로 해당 파일의 읽기 또는 쓰기의 수행을 요청한다(S350). 파일 시스템(220)은 저장장치(230)로 해당 파일의 읽기 또는 쓰기의 수행을 요청함에 있어, 함께 수신한 해당 파일의 메타 데이터를 함께 전달한다. 이와 같이, 메타 데이터를 함께 전달함으로써 저장장치(230)에서 해당 파일의 읽기 또는 쓰기의 수행이 가능해진다. 저장장치(116)는 파일 시스템(220)으로부터 해당 파일의 읽기 또는 쓰기의 수행 요청을 받은 경우, 저장장치(116) 내에 저장된 데이터에 대해 쓰기 또는 읽기를 수행한다.
저장장치(230)는 해당 파일에 대해 쓰기 또는 읽기를 수행하며, 파일 시스템(220)으로 수행완료 메시지 및 읽은 데이터를 전달한다(S360). 저장장치(230)는 저장장치(230) 내에 저장된 해당 파일에 대해 쓰기 또는 읽기를 수행하고, 이를 알리는 수행완료 메시지를 파일 시스템(220)으로 전달한다. 또한 저장장치(230)는 파일 시스템(220)으로부터 데이터에 대해 읽기의 수행을 요청받은 경우, 해당 파일에 대해 읽기를 수행하며 읽은 데이터를 수행완료 메시지와 함께 파일 시스템(220)으로 전달한다.
파일 시스템(220)은 파일의 읽기 또는 쓰기의 수행 요청에 대한 결과를 애플리케이션 실행부(210)로 전송한다(S370).
종래의 데이터처리 장치는 메타 데이터를 저장장치에 저장해두며 특정 파일의 처리 시 해당 메타데이터를 파일 시스템 내에 저장해 두는 형태이다. 이 때문에, 종래의 데이터처리 장치 내의 애플리케이션 실행부는 특정 데이터의 읽기 또는 쓰기 명령에 따라 특정 데이터의 메타데이터를 요청하기 위해 파일 시스템으로 오픈 요청을 함에 있어, 모드가 상이한 구성 간에 이루어지기 때문에 시스템 콜이 사용되어야 하며 이에 따라 컨텍스트 스위칭 과정이 발생한다. 또한 데이터처리 장치 내의 저장장치에서 메타데이터의 검색이 완료되어 파일 시스템이 오픈 요청에 대한 결과를 전송함에 있어서도, 시스템 콜이 사용되어야 한다. 또한, 특정 데이터의 읽기 또는 쓰기 명령에 따른 처리 완료 시 클로우즈(Close) 요청을 하여 파일 시스템 내에 저장된 메타 데이터를 제거하는 과정이 필요하다. 이러한 과정 역시 시스템 콜이 사용되어야 한다. 이처럼 종래의 데이터처리 장치에 따르면, 특정 데이터의 읽기 또는 쓰기 명령을 처리함에 있어, 메타데이터를 검색하고 검색 완료사실을 알려주는 과정 및 특정 데이터의 읽기 또는 쓰기 명령에 따른 처리 완료 시 클로우즈(Close) 요청을 하는 과정에 있어서 시스템 콜이 사용되어야 하며 이에 따라 컨텍스트 스위칭 과정이 발생한다. 그러나 본 발명의 일 실시예에 따른 데이터처리 장치(200)는 메타 데이터를 파일 시스템(220)이 아닌 비휘발성 메모리(250)에 저장해두며 관리하고 메모리(240)와 비휘발성 메모리(250)가 대응되어 있기 때문에, 메타데이터의 검색과정에서 시스템 콜이 사용되지 않으며, 해당 파일의 처리가 완료되더라도 별도의 클로우즈 요청은 불필요하다. 따라서 종래의 데이터처리 장치에서 특정한 데이터의 읽기 또는 쓰기명령을 수행함에 있어, 오픈 요청, 읽기 또는 쓰기 명령 요청 및 클로우즈 요청 총 3 번의 시스템 콜이 사용되어야 하는 반면, 본 발명의 일 실시예에 따른 데이터처리 장치는 읽기 또는 쓰기의 수행 요청에서 한 번의 시스템 콜이 사용된다. 이에 따라 본 발명의 일 실시예에 따른 데이터처리 장치는 종래의 데이터처리 장치에 비해 사용되는 시스템 콜 수가 현저히 줄어들어 컨텍스트 스위칭 과정이 줄어들기 때문에 데이터의 처리에 있어 빠른 처리속도를 가질 수 있다.
데이터처리 장치의 애플리케이션의 실행부(210)는 데이터처리 장치의 사용자의 요청에 따라 파일의 읽기 또는 쓰기를 수행할 경우도 있으나, 단순히 파일의 메타 데이터의 확인만이 필요한 경우도 존재할 수 있다. 예를 들어, 애플리케이션 실행부(210)가 Stat 함수(특정 데이터의 메타 데이터 정보를 확인하기 위한 함수) 또는 readdir 함수(디렉토리에서 파일이나 하위 디렉토리를 찾기 위한 함수) 등을 이용하여 메타 데이터의 확인만을 수행할 수 있다. 이러한 경우, 종래의 데이터처리 장치는 전술한 바와 같이 오픈 요청 및 오픈 요청에 따른 결과를 수신하는데 시스템 콜이 사용되어야 하며 이에 따라 컨텍스트 스위칭이 발생한다. 그러나 본 발명의 일 실시예에 따른 데이터처리 장치는 전술한 S310 내지 S330 과정을 거치면 메타 데이터를 확인할 수 있다. 전술한 S310 내지 S330 과정에서는 시스템 콜이 사용될 필요가 없어 컨텍스트 스위칭이 발생하지 않는다. 이에 따라 본 발명의 일 실시예에 따른 데이터처리 장치는 메타 데이터의 확인만을 수행하는 경우, 종래의 데이터처리 장치에 비해 현저히 빠른 처리속도를 가질 수 있다.
도 4는 본 발명의 일 실시예에 따른 애플리케이션 실행부가 데이터를 처리하는 방법을 도시한 순서도이다.
실행하고자 하는 함수 내에 포함된 파일의 식별자를 확인한다(S410). 애플리케이션 실행부(210)는 애플리케이션 또는 소프트웨어 등의 실행을 위해 기 정의된 함수를 이용하는데, 기 정의된 함수 내에 포함된 파일의 식별자를 파악한다.
파일의 식별자가 파일명인지 여부를 확인한다(S420). 파일의 식별자는 각각의 파일을 식별하기 위한 인자로서, OID(Object Identifier), 파일의 고유키 값(Unique Key) 또는 파일의 파일명(Filename) 등을 포함한다.
파일의 식별자가 파일명인 경우, 파일명으로부터 고유값을 생성한다(S430). 파일의 식별자 중 OID(Object Identifier) 또는 파일의 고유키 값(Unique Key)은 각각의 파일마다 고유한 값을 가지나, 파일의 파일명은 서로 다른 파일이라도 동일한 파일명을 가질 우려가 있다. 따라서 애플리케이션 실행부(210)는 파일의 식별자가 파일명인 경우, 파일명으로부터 파일의 고유값을 생성한다. 예를 들어, 애플리케이션 실행부(210)는 해쉬(Hash)함수를 이용하여 해당 파일의 고유 값을 생성할 수 있다.
메모리에서 파일의 식별자에 대응하는 메타 데이터를 확인한다(S440). 파일의 식별자가 파일명이 아니거나 고유값이 생성된 경우, 메모리에서 해당 파일의 식별자에 대응하는 메타 데이터를 확인한다. 도 2를 참조하여 전술한 바와 같이, 애플리케이션 실행부(210)는 메모리(240)와 비휘발성 메모리(250)가 대응되어 있어 컨텍스트 스위칭 없이도 간편하게 메모리(240)에서 파일의 메타 데이터를 확인할 수 있다.
메타 데이터가 존재하는지 여부를 확인한다(S450). 애플리케이션 실행부(210)는 메모리에서 파일의 식별자에 대응하는 메타 데이터가 존재하는지 여부를 확인한다.
해당 파일의 메타 데이터가 존재하는 경우, 메타 데이터를 포함한 읽기 또는 쓰기 명령을 요청한다(S460). 메모리(240)에서 파일의 식별자에 대응하는 메타 데이터의 존재를 확인한 경우, 애플리케이션 실행부(210)는 해당 메타 데이터를 읽기 또는 쓰기 명령에 포함시켜 요청한다. 특히, 애플리케이션 실행부(210)는 메타 데이터 중 데이터의 저장 위치에 관한 정보를 읽기 또는 쓰기 명령에 포함시켜 요청할 수 있다. 기존의 데이터처리 장치와 같이 메타 데이터 확인 과정을 거치며 파일 시스템에 메타 데이터를 저장해두는 과정을 거치지 않더라도, 읽기 또는 쓰기 명령에 메타 데이터를 포함시켜 요청하기 때문에 데이터에 대한 읽기 또는 쓰기 명령의 처리에 아무런 장애가 발생하지 않게 된다.
도 3 및 도 4에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 각각의 도면에 기재된 과정의 순서를 변경하여 실행하거나 과정 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 3 및 도 4는 시계열적인 순서로 한정되는 것은 아니다.
한편, 도 3 및 도 4에 도시된 과정들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110, 210: 애플리케이션 실행부 113, 220: 파일 시스템
116, 230: 저장장치 200: 데이터처리 장치
240: 메모리 250: 비휘발성 메모리

Claims (8)

  1. 파일 시스템 및 저장장치를 포함하는 데이터처리 장치에 있어서,
    상기 저장장치 내 저장된 데이터의 메타 데이터(Meta Data)를 상기 저장장치와 분리하여 별도로 저장하는 비휘발성 메모리;
    상기 비휘발성 메모리와 대응되어 상기 비휘발성 메모리의 주소로 직접 접근하여 상기 메타 데이터의 존재 여부를 파악하는 메모리; 및
    상기 파일 시스템으로 전송할 쓰기(Write) 함수 또는 읽기(Read) 함수에 포함된 파일의 식별자를 파악한 후 상기 파일의 식별자에 대응하는 파일의 메타 데이터가 존재하면 상기 메타 데이터를 상기 쓰기 함수 또는 읽기 함수에 포함시킨 읽기 또는 쓰기 명령을 상기 파일 시스템으로 전송하는 애플리케이션 실행부
    를 포함하는 것을 특징으로 하는 데이터처리 장치.
  2. 제1항에 있어서,
    상기 메모리는,
    메모리 매핑(memory Mapping)과정을 거쳐 상기 비휘발성 메모리와 대응되는 것을 특징으로 하는 데이터처리 장치.
  3. 제1항에 있어서,
    상기 파일의 식별자는,
    파일명, 고유키 값(unique Key) 또는 OID(Object Identifier) 중 어느 하나인 것을 특징으로 하는 데이터처리 장치.
  4. 제3항에 있어서,
    상기 애플리케이션 실행부는,
    상기 파일의 식별자가 상기 파일명인 경우, 상기 파일명으로부터 상기 파일의 고유값을 생성하는 것을 특징으로 하는 데이터처리 장치.
  5. 제4항에 있어서,
    상기 애플리케이션 실행부는,
    상기 파일명으로부터 상기 파일의 고유값을 생성함에 있어, 해쉬(Hash) 함수를 사용하는 것을 특징으로 하는 데이터처리 장치.
  6. 제1항에 있어서,
    상기 애플리케이션 실행부는,
    상기 쓰기 함수 또는 읽기 함수를 상기 파일 시스템으로 전송하며, 상기 메모리로 상기 메모리가 전송한 메타데이터의 업데이트를 요청하는 것을 특징으로 하는 데이터처리 장치.
  7. 제1항에 있어서,
    상기 애플리케이션 실행부는,
    상기 쓰기 함수 또는 읽기 함수에 상기 파일이 상기 저장장치 중 어느 위치에 저장되어 있는지에 관한 정보를 포함시켜 상기 파일 시스템으로 전송하는 것을 특징으로 하는 데이터처리 장치.
  8. 애플리케이션 실행부에서 파일 시스템으로 전송할 쓰기(Write) 함수 또는 읽기(Read) 함수에 포함된 파일의 식별자를 파악하는 과정;
    메모리에서 저장장치 내 저장된 데이터의 메타 데이터(Meta Data)를 저장장치와 분리하여 별도로 저장하는 비휘발성 메모리의 주소로 직접 접근하여 상기 파일의 메타데이터의 존재 여부를 파악하는 과정; 및
    상기 애플리케이션 실행부에서 상기 파일의 메타데이터가 존재하는 경우, 상기 파일의 메타 데이터를 상기 쓰기 함수 또는 읽기 함수에 포함시킨 읽기 또는 쓰기 명령을 파일 시스템으로 전송하는 과정
    을 포함하는 것을 특징으로 하는 파일처리 방법.
KR1020160060915A 2016-05-18 2016-05-18 비휘발성 메모리를 이용한 데이터처리 장치 및 방법 KR102134905B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160060915A KR102134905B1 (ko) 2016-05-18 2016-05-18 비휘발성 메모리를 이용한 데이터처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160060915A KR102134905B1 (ko) 2016-05-18 2016-05-18 비휘발성 메모리를 이용한 데이터처리 장치 및 방법

Publications (2)

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

Family

ID=60811361

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160060915A KR102134905B1 (ko) 2016-05-18 2016-05-18 비휘발성 메모리를 이용한 데이터처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102134905B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113467698A (zh) * 2020-03-30 2021-10-01 珠海全志科技股份有限公司 基于文件系统的写方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100801072B1 (ko) 2005-09-30 2008-02-11 삼성전자주식회사 플래시 메모리, 이를 위한 맵핑 장치 및 방법
JP2009025899A (ja) 2007-07-17 2009-02-05 Panasonic Corp メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶装置システム
JP2016024678A (ja) * 2014-07-22 2016-02-08 株式会社東芝 メモリシステム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100055374A (ko) * 2010-04-19 2010-05-26 한양대학교 산학협력단 파일 관리 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100801072B1 (ko) 2005-09-30 2008-02-11 삼성전자주식회사 플래시 메모리, 이를 위한 맵핑 장치 및 방법
JP2009025899A (ja) 2007-07-17 2009-02-05 Panasonic Corp メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶装置システム
JP2016024678A (ja) * 2014-07-22 2016-02-08 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
KR20170130180A (ko) 2017-11-28

Similar Documents

Publication Publication Date Title
US10983955B2 (en) Data unit cloning in memory-based file systems
US10642794B2 (en) Computer storage deduplication
US11347443B2 (en) Multi-tier storage using multiple file sets
EP2863310B1 (en) Data processing method and apparatus, and shared storage device
JP4892072B2 (ja) ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
US9396290B2 (en) Hybrid data management system and method for managing large, varying datasets
US7765189B2 (en) Data migration apparatus, method, and program for data stored in a distributed manner
US10579267B2 (en) Memory controller and memory system
US20140195551A1 (en) Optimizing snapshot lookups
US8751547B2 (en) Multiple file system and/or multi-host single instance store techniques
US9817865B2 (en) Direct lookup for identifying duplicate data in a data deduplication system
US20090164738A1 (en) Process Based Cache-Write Through For Protected Storage In Embedded Devices
US10241934B2 (en) Shared memory controller, shared memory module, and memory sharing system
WO2015118865A1 (ja) 情報処理装置、情報処理システム及びデータアクセス方法
US20170083537A1 (en) Mapping logical identifiers using multiple identifier spaces
US10901914B2 (en) Method for writing multiple copies into storage device, and storage device
KR102134905B1 (ko) 비휘발성 메모리를 이용한 데이터처리 장치 및 방법
US11520818B2 (en) Method, apparatus and computer program product for managing metadata of storage object
US9009204B2 (en) Storage system
US20170039110A1 (en) Computer
CN112748854B (zh) 对快速存储设备的优化访问
US10445289B1 (en) Method and apparatus for automatic cleanup of disfavored content
KR102237566B1 (ko) 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법
KR102405890B1 (ko) 데이터 초기 복제 방법 및 이를 수행하기 위한 컴퓨팅 장치
US9864761B1 (en) Read optimization operations in a storage system

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