KR20230034695A - 전자장치 및 그 제어방법 - Google Patents

전자장치 및 그 제어방법 Download PDF

Info

Publication number
KR20230034695A
KR20230034695A KR1020210117757A KR20210117757A KR20230034695A KR 20230034695 A KR20230034695 A KR 20230034695A KR 1020210117757 A KR1020210117757 A KR 1020210117757A KR 20210117757 A KR20210117757 A KR 20210117757A KR 20230034695 A KR20230034695 A KR 20230034695A
Authority
KR
South Korea
Prior art keywords
file
data
area
memory
stored
Prior art date
Application number
KR1020210117757A
Other languages
English (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 KR1020210117757A priority Critical patent/KR20230034695A/ko
Priority to PCT/KR2022/013184 priority patent/WO2023033584A1/ko
Priority to EP22865086.7A priority patent/EP4365750A1/en
Publication of KR20230034695A publication Critical patent/KR20230034695A/ko
Priority to US18/417,395 priority patent/US20240152272A1/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/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/17Details of further file system functions
    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

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

Abstract

전자장치는, 스토리지에 저장된 재기록 가능 타입의 제1파일 또는 읽기 전용 타입의 제2파일의 데이터를 메모리의 제1영역에 저장하고, 메모리에 대한 공간 확보 이벤트에 응답하여, 메모리의 제1영역에 저장된 데이터에 대응하는 파일의 타입을 식별하고, 식별된 파일이 재기록 가능 타입인 제1파일인 것에 기초하여, 제1파일의 데이터를 제1영역에서 삭제하고, 식별된 파일이 읽기 전용 타입인 제2파일인 것에 기초하여, 제2파일의 데이터를 메모리의 제2영역에 저장하며 제1영역에서 삭제하고, 제1파일의 데이터에 대한 접근 이벤트에 응답하여, 스토리지에 저장된 제1파일에 기초하여 제1파일의 데이터를 제1영역에 복원하고, 제2파일의 데이터에 대한 접근 이벤트에 응답하여, 제2영역에 저장된 제2파일의 데이터를 제1영역에 복원하는 프로세서를 포함한다.

Description

전자장치 및 그 제어방법 {ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF}
본 발명은 파일이 저장되는 스토리지 및 이 파일에 대응하는 페이지가 처리 가능하게 로딩되는 메모리를 포함하는 전자장치 및 그 제어방법에 관한 것으로서, 상세하게는 메모리의 가용용량을 확보할 수 있는 전자장치 및 그 제어방법에 관한 것이다.
소정의 정보를 특정 프로세스에 따라서 연산 및 처리하기 위해, 연산을 위한 CPU, 칩셋, 메모리 등의 전자부품들을 기본적으로 포함하는 전자장치는, 처리 대상이 되는 정보 또는 사용 용도가 무엇인지에 따라서 다양한 종류로 구분될 수 있다. 예를 들면, 전자장치에는 범용의 정보를 처리하는 PC(personal computer)나 서버 등의 정보처리장치, 영상데이터를 처리하는 영상처리장치, 오디오를 처리하는 오디오장치, 가정 내 잡무를 수행하는 생활가전 등이 있다. 영상처리장치는 처리된 영상데이터를 자체 구비한 디스플레이 패널(display panel) 상에 영상으로 표시하는 디스플레이장치로 구현될 수 있다. 특히, 디스플레이장치 중에는 휴대가 가능하도록 소형화된 모바일기기가 있으며, 그 예시로는 스마트폰 또는 태블릿 등이 있다.
전자장치는, 다양한 어플리케이션의 파일(file)이 저장되는 플래시메모리와, 파일의 데이터가 로딩되게 마련된 램(RAM; random access memory)과, 램에 로딩된 데이터(통상적으로 페이지(page) 또는 페이지 캐시(page cache)라고 지칭)를 처리함으로써 어플리케이션을 실행하는 프로세서를 포함한다. 램에 대한 처리속도는 플래시메모리에 대한 처리속도에 비해 월등히 빠르므로, 이러한 데이터의 처리 방식은 어플리케이션의 실행 속도를 향상시킨다.
전자장치의 사용 시간이 경과함에 따라서 자연스럽게 램에 저장되는 페이지 캐시의 총량이 증가하면, 램의 가용용량을 확보하기 위해 전체 페이지 중에서 일부를 램으로부터 삭제하는 페이지 드롭(page drop) 동작이 요구된다. 페이지 드롭에 의해 어느 페이지가 램에서 삭제되었다는 것은, 이후 해당 페이지에 대한 프로세스의 접근이 발생하였을 때에, 프로세서가 다시 해당 페이지에 대응하는 파일을 플래시메모리로부터 읽어와야 한다는 것을 의미한다. 이 때에 플래시메모리에 대한 데이터의 입출력이 발생하므로, 전체적인 어플리케이션의 실행 속도가 저하된다.
물론, 입출력 속도가 빠른 플래시메모리 또는 저장용량이 큰 램을 전자장치에 적용함으로써, 이러한 실행 속도의 저하를 줄일 수 있다. 그러나, 이러한 방법은 기본적으로 하드웨어를 변경해야 하므로, 전자장치가 고성능 프로세싱에 대한 요구가 적고 단가 상승이 민감한 성격을 가진 임베디드 장치(예를 들면, TV)인 경우, 채택되기가 곤란할 수 있다. 현재 많은 임베디드 장치에는 제한적인 용량의 램과, eMMC(embedded multi media card)와 같은 저속의 플래시메모리가 적용되고 있다. 이러한 전자장치에서는 플래시메모리에 대한 데이터 입출력이 집중되면, 전자장치 자체의 성능을 현저히 저하시킬 수 있다.
이러한 관점에서, 램의 가용용량을 확보하면서도 퍼포먼스의 저하를 최소화시킬 수 있는 전자장치가 요구될 수 있다.
본 발명의 실시예에 따른 전자장치는, 스토리지와, 메모리와, 상기 스토리지에 저장된 재기록 가능 타입의 제1파일 또는 읽기 전용 타입의 제2파일의 데이터를 상기 메모리의 제1영역에 저장하고, 상기 메모리에 대한 공간 확보 이벤트에 응답하여, 상기 메모리의 제1영역에 저장된 데이터에 대응하는 파일의 타입을 식별하고, 상기 식별된 파일이 상기 재기록 가능 타입인 제1파일인 것에 기초하여, 상기 제1파일의 데이터를 상기 제1영역에서 삭제하고, 상기 식별된 파일이 상기 읽기 전용 타입인 제2파일인 것에 기초하여, 상기 제2파일의 데이터를 상기 메모리의 제2영역에 저장하며 상기 제1영역에서 삭제하고, 상기 제1파일의 데이터에 대한 접근 이벤트에 응답하여, 상기 스토리지에 저장된 상기 제1파일에 기초하여 상기 제1파일의 데이터를 상기 제1영역에 복원하고, 상기 제2파일의 데이터에 대한 접근 이벤트에 응답하여, 상기 제2영역에 저장된 상기 제2파일의 데이터를 상기 제1영역에 복원하는 프로세서를 포함한다.
또한, 상기 프로세서는, 상기 제2파일 데이터를 압축시킨 압축데이터를 상기 제2영역에 저장할 수 있다.
또한, 상기 프로세서는, 상기 제2파일 데이터가 저장된 상기 제1영역의 주소 및 기 설정된 오프셋값에 기초하여 상기 제2파일 데이터가 저장된 상기 제2영역의 주소를 획득할 수 있다.
또한, 상기 프로세서는, 상기 제2파일 데이터에 대한 접근 이벤트에 응답하여, 상기 제2영역에 상기 제2파일 데이터가 저장되지 않은 것으로 식별되면, 상기 스토리지에 저장된 제2파일에 기초하여 상기 제2파일 데이터를 복원시킬 수 있다.
또한, 상기 프로세서는, 상기 메모리의 공간 확보 이벤트에 응답하여, 상기 제1영역에 저장된 복수의 상기 제2파일 데이터 중에서, 압축률이 높다고 식별된 하나 이상의 제2파일 데이터를 상기 제2영역에 저장할 수 있다.
또한, 상기 프로세서는, 상기 제2파일 데이터의 데이터 엔트로피 값이 문턱값보다 높은지 여부에 기초하여 상기 압축률이 높다고 식별할 수 있다.
또한, 상기 프로세서는, 상기 메모리의 상기 제2영역에 대한 사용 이벤트에 응답하여, 상기 제2영역에 저장된 상기 제2파일 데이터를 삭제할 수 있다.
또한, 상기 제2영역에 대한 사용 이벤트는, 상기 제2영역을 사용하도록 사전에 할당된 디바이스의 DMA(direct memory access) 기능에 의해 발생할 수 있다.
또한, 상기 프로세서는, 제1유저 데이터를 상기 제1영역에 저장하고, 상기 메모리의 공간 확보 이벤트에 응답하여, 상기 제1유저데이터를 압축시킨 제2압축데이터를 상기 제1영역에 저장하며 상기 제1영역에 저장된 상기 제1유저데이터를 삭제할 수 있다.
또한, 상기 프로세서는, 상기 제1유저데이터에 대한 접근 이벤트에 응답하여, 상기 제1영역에 저장된 상기 제2압축데이터로부터 상기 제1유저데이터를 획득하여 상기 제1영역으로 복원시키고, 상기 제2압축데이터를 삭제할 수 있다.
또한, 상기 프로세서는, 제2유저 데이터를 상기 제2영역에 저장하고, 상기 메모리의 상기 제2영역에 대한 사용 이벤트에 응답하여, 상기 제2유저데이터를 상기 제2영역으로부터 상기 제1영역으로 이동시킬 수 있다.
또한, 상기 메모리의 입출력 속도는 상기 스토리지의 입출력 속도에 비해 빠를 수 있다.
또한, 상기 메모리는 램(RAM)을 포함할 수 있다.
또한, 상기 제2영역은 CMA(contiguous memory allocator) 영역을 포함할 수 있다.
또한, 본 발명의 실시예에 따른 전자장치의 제어방법은, 스토리지에 저장된 재기록 가능 타입의 제1파일 또는 읽기 전용 타입의 제2파일의 데이터를 메모리의 제1영역에 저장하는 단계와, 상기 메모리에 대한 공간 확보 이벤트에 응답하여, 상기 메모리의 제1영역에 저장된 데이터에 대응하는 파일의 타입을 식별하는 단계와, 상기 식별된 파일이 상기 재기록 가능 타입인 제1파일인 것에 기초하여, 상기 제1파일의 데이터를 상기 제1영역에서 삭제하는 단계와, 상기 식별된 파일이 상기 읽기 전용 타입인 제2파일인 것에 기초하여, 상기 제2파일의 데이터를 상기 메모리의 제2영역에 저장하며 상기 제1영역에서 삭제하는 단계와, 상기 제1파일의 데이터에 대한 접근 이벤트에 응답하여, 상기 스토리지에 저장된 상기 제1파일에 기초하여 상기 제1파일의 데이터를 상기 제1영역에 복원하는 단계와, 상기 제2파일의 데이터에 대한 접근 이벤트에 응답하여, 상기 제2영역에 저장된 상기 제2파일의 데이터를 상기 제1영역에 복원하는 단계를 포함한다.
도 1은 전자장치의 구성 블록도이다.
도 2는 전자장치의 제어방법을 나타내는 플로우차트이다.
도 3은 각 파일시스템이 마운트에 의해 특성을 부여받는 원리를 나타내는 예시도이다.
도 4는 스토리지에 저장된 파일에 대응하는 데이터가 메모리에 로딩되는 방식을 나타내는 예시도이다.
도 5는 메모리의 공간 확보 이벤트 시의 데이터의 정리 방법을 나타내는 예시도이다.
도 6은 데이터의 정리에 의해 공간이 확보된 메모리를 나타내는 예시도이다.
도 7은 메모리에서 삭제된 데이터에 대한 접근 이벤트 시, 삭제된 데이터를 복원하는 방법을 나타내는 예시도이다.
도 8은 제2영역에 대한 사용 이벤트 시에 제2영역을 정리하는 방법을 나타내는 예시도이다.
도 9는 파일 폴트가 발생할 때의 전자장치의 동작을 나타내는 플로우차트이다.
이하에서는 첨부도면을 참조하여 본 발명에 따른 실시예들에 관해 상세히 설명한다. 각 도면을 참조하여 설명하는 실시예들은 특별한 언급이 없는 한 상호 배타적인 구성이 아니며, 하나의 장치 내에서 복수 개의 실시예가 선택적으로 조합되어 구현될 수 있다. 이러한 복수의 실시예의 조합은 본 발명의 기술분야에서 숙련된 기술자가 본 발명의 사상을 구현함에 있어서 임의로 선택되어 적용될 수 있다.
만일, 실시예에서 제1구성요소, 제2구성요소 등과 같이 서수를 포함하는 용어가 있다면, 이러한 용어는 다양한 구성요소들을 설명하기 위해 사용되는 것이며, 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 바, 이들 구성요소는 용어에 의해 그 의미가 한정되지 않는다. 실시예에서 사용하는 용어는 해당 실시예를 설명하기 위해 적용되는 것으로서, 본 발명의 사상을 한정하지 않는다.
또한, 본 명세서에서의 복수의 구성요소 중 "적어도 하나(at least one)"라는 표현이 나오는 경우에, 본 표현은 복수의 구성요소 전체 뿐만 아니라, 복수의 구성요소 중 나머지를 배제한 각 하나 혹은 이들의 조합 모두를 지칭한다.
도 1은 전자장치의 구성 블록도이다.
도 1에 도시된 바와 같이, 본 실시예는 전자장치(1)에 관한 것이다. 전자장치(1)는 다양한 종류의 장치로 구현될 수 있는 바, 예를 들면 PC, 서버 등을 포함하는 정보처리장치이거나; TV, 모니터, 디지털 사이니지(signage), 전자칠판, 전자액자 등을 포함하는 고정형 디스플레이장치이거나; 스마트폰, 태블릿기기, 휴대용 멀티미디어 재생기기 등을 포함하는 모바일기기이거나; 셋탑박스, 광학미디어 재생기기 등을 포함하는 영상처리장치이거나; 냉장고, 세탁기, 의류관리기기, 공기조화기 등을 포함하는 생활가전이거나; IoT(internet of things) 환경을 구축하는 게이트웨이, 허브, 호스트장치, 슬레이브장치이거나; 사람이 착용할 수 있는 웨어러블 디바이스(wearable device) 등으로 구현될 수 있다.
전자장치(1)는 동작을 위해 다양한 하드웨어 요소들을 포함한다. 본 실시예에서는 전자장치(1)가 디스플레이장치로 구현되는 경우에 관해 설명한다. 그러나, 앞서 설명한 바와 같이 전자장치(1)는 다양한 종류의 장치로 구현될 수 있으므로, 이하 설명하는 구성은 다양한 구현 예시 중 하나에 불과함을 밝힌다.
전자장치(1)는 인터페이스부(10)를 포함할 수 있다. 인터페이스부(10)는 전자장치(1)가 다양한 종류의 외부장치와 통신을 수행하고, 또한 데이터를 송수신하기 위한 인터페이스 회로를 포함한다. 인터페이스부(10)는 연결 방식에 따라서, 유선 통신연결을 위한 하나 이상의 유선인터페이스부(11), 또는 무선 통신연결을 위한 하나 이상의 무선인터페이스부(12) 중 적어도 하나를 포함한다.
유선인터페이스부(11)는 기 정의된 전송규격의 케이블이 접속되는 커넥터 또는 포트를 포함한다. 예를 들면, 유선인터페이스부(11)는 방송신호를 수신하도록 지상파 또는 위성방송 안테나에 접속되거나 케이블방송의 케이블이 접속되는 포트를 포함한다. 또는, 유선인터페이스부(11)는 다양한 영상처리장치와 접속하도록 HDMI, DP(DisplayPort), DVI, 컴포넌트, 컴포지트, S-Video, 썬더볼트(Thunderbolt) 등 다양한 유선전송규격의 케이블이 접속되는 포트를 포함한다. 또는, 유선인터페이스부(11)는 USB 기기와 접속하기 위한 USB 규격의 포트를 포함한다. 또는, 유선인터페이스부(11)는 광케이블이 접속되는 광포트를 포함한다. 또는, 유선인터페이스부(11)는 외부 마이크로폰이 접속되는 오디오 입력 포트와, 헤드셋, 이어폰, 외부 스피커 등이 접속되는 오디오 출력 포트를 포함한다. 또는, 유선인터페이스부(11)는 광역 네트워크에 접속하기 위해 게이트웨이, 라우터, 허브 등에 접속하는 이더넷 포트를 포함한다.
무선인터페이스부(12)는 다양한 종류의 무선통신 프로토콜에 대응하는 통신모듈, 통신칩 등의 구성요소들 중 적어도 하나 이상을 포함하는 양방향 통신회로를 포함한다. 예를 들면, 무선인터페이스부(12)는 와이파이(Wi-Fi) 방식에 따라서 AP(Access Point)와 무선통신을 수행하는 와이파이 통신칩과, 블루투스, Zigbee, Z-Wave, WirelessHD, WiGig, NFC 등의 무선통신을 수행하는 통신칩, IR 통신을 위한 IR 모듈, 모바일기기와 이동통신을 수행하는 이동통신칩 등을 포함한다.
전자장치(20)는 디스플레이부(20)를 포함할 수 있다. 디스플레이부(20)는 프로세서(270)에 의해 처리되는 영상신호를 영상으로 표시하기 위한 화면을 형성한다. 디스플레이부(20)는 디스플레이 패널을 포함하는데, 디스플레이 패널의 구조에는 여러 가지 설계방식이 적용될 수 있다. 예를 들면, 디스플레이부(20)는 액정과 같은 수광형 구조의 디스플레이 패널 및 이에 광을 제공하는 백라이트를 포함할 수 있다. 또는, 디스플레이부(20)는 OLED(organic light emitting diodes)와 같은 자발광 구조의 디스플레이 패널을 포함할 수 있다. 또는, 디스플레이부(20)는 복수의 마이크로 LED 모듈이 타일 형태로 조합되어 대화면을 형성하는 구조일 수도 있다.
전자장치(1)는 사용자입력부(30)를 포함할 수 있다. 사용자입력부(30)는 사용자의 입력을 수행하기 위해 사용자가 조작할 수 있도록 마련된 다양한 종류의 사용자 입력 인터페이스 관련 회로를 포함한다. 사용자입력부(30)는 전자장치(1)의 종류에 따라서 여러 가지 형태의 구성이 가능하며, 예를 들면 전자장치(1)의 기계 버튼부 또는 전자 버튼부; 다양한 종류의 센서; 터치패드; 디스플레이부(20)에 설치된 터치스크린; 전자장치(1)와 분리되며 인터페이스부(10)를 통해 연결된 키보드, 마우스, 리모트 컨트롤러와 같은 외부입력기기 등이 있다.
전자장치(1)는 저장부(140)를 포함할 수 있다. 저장부(140)는 디지털화된 데이터를 저장한다. 저장부(140)는, 프로세서(170)에 의해 처리되기 위한 데이터가 로딩되며 전원이 제공되지 않으면 데이터를 보존할 수 없는 휘발성 속성을 가진 하나 이상의 메모리(memory)(41)와, 전원의 제공 유무와 무관하게 데이터를 보존할 수 있는 비휘발성 속성을 가진 하나 이상의 스토리지(storage)(42)를 포함한다. 메모리(41)에는 버퍼(buffer), 램(RAM; Random Access Memory) 등이 있으며, 스토리지(42)에는 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) ROM(Read Only Memory) 등이 있다.
스토리지(42)는 데이터를 파일 형식으로 저장한다. 파일은 소정의 처리 목적에 맞도록 조직적으로 정리된 데이터의 묶음 단위를 의미하며, 통상적으로 해당 파일의 이름에 의해 검색이 이루어진다. 파일은 파일명과 함께, 해당 파일의 특성을 나타내도록 사전 설정된 확장자가 부여될 수 있다. 스토리지(42)에 저장되는 파일은, 예를 들면 운영체제, 어플리케이션, 라이브러리, 멀티미디어 컨텐트 등 다양한 종류의 소프트웨어 또는 컨텐트데이터를 포함할 수 있다.
반면에, 메모리(41)는 파일의 데이터를 페이지 형식으로 저장한다. 메모리(41)의 전체 저장영역은 동일한 크기를 가진 복수의 저장블록으로 구분되는데, 이러한 저장블록을 페이지라고 지칭한다. 페이지는 메모리(41)의 주소에 의해 검색이 이루어진다. 스토리지(42)에 저장된 소정 파일의 데이터는 메모리(41)로 전달되고, 메모리(41)에서 하나 이상의 저장블록에 저장됨으로써 해당 파일에 대응하는 페이지를 형성한다. 메모리(41)에 저장된 페이지에 대해 프로세스의 접근이 수행되고, 프로세스에 의한 페이지의 수정이 이루어진다. 메모리(41)에 저장되어 있는 수정된 페이지는, 스토리지(42)에 저장되어 있는 파일에 동기화됨으로써 해당 파일에 페이지의 수정사항이 반영된다.
전자장치(1)는 프로세서(50)를 포함할 수 있다. 프로세서(50)는 인쇄회로기판 상에 장착되는 CPU, 칩셋, 버퍼, 회로 등으로 구현되는 하나 이상의 하드웨어 프로세서를 포함하며, 설계 방식에 따라서는 SOC(system on chip)로 구현될 수도 있다. 전자장치(1)가 디스플레이장치인 경우에, 프로세서(50)는 영상컨텐트를 영상으로 표시하기 위해 디멀티플렉서, 디코더, 스케일러, 오디오 DSP(Digital Signal Processor), 앰프 등의 다양한 프로세스에 대응하는 모듈들을 포함한다. 여기서, 이러한 모듈들 중 일부 또는 전체가 SOC로 구현될 수 있다. 예를 들면, 디멀티플렉서, 디코더, 스케일러 등 영상처리와 관련된 모듈이 영상처리 SOC로 구현되고, 오디오 DSP는 SOC와 별도의 칩셋으로 구현되는 것이 가능하다.
프로세서(50)에 의해 소정의 어플리케이션이 실행되는 절차는 다음과 같다. 먼저, 전자장치(1)의 전원이 턴온되면, 프로세서(50)가 사전에 지정된 부팅코드를 실행함으로써 전자장치(1)가 부팅되고 운영체제의 구동이 개시된다. 스토리지(42)에 저장된 운영체제의 파일의 데이터는 메모리(41)에 저장되어 실행된다. 운영체제가 실행된 이후, 스토리지(42)에 저장된 어플리케이션의 파일의 데이터는 메모리(41)에 저장되어 운영체제 상에서 실행된다.
그런데, 전자장치(1)의 사용시간이 경과함에 따라서, 다양한 어플리케이션이 실행되며, 자연히 메모리(41)에는 파일 데이터의 양이 늘어나게 된다. 메모리(41)에 저장되어 있는 파일 데이터의 용량이 문턱값을 넘으면, 즉 파일 데이터를 메모리(41)에 저장할 수 있는 가용용량이 어느 수준 이하로 낮아지면, 메모리(41)의 가용용량을 확보하기 위한 이벤트가 발생한다. 본 이벤트에 응답하여, 프로세서(50)는 메모리(41)에 저장되어 있는 복수의 파일 데이터 중에서 기 설정된 조건에 따라서 파일 데이터들을 선택하고, 선택된 파일 데이터들을 메모리(41)에서 정리함으로써 메모리(41)의 가용용량을 확보한다(본 조건에 관해서는 후술함).
본 실시예에 따른 전자장치(1)는 메모리(41)의 가용용량을 확보하면서도, 전자장치(1)의 퍼포먼스 성능이 저하되는 것을 최소화하기 위해, 다음과 같이 동작한다.
도 2는 전자장치의 제어방법을 나타내는 플로우차트이다.
도 1 및 도 2에 도시된 바와 같이, 다음 동작은 전자장치(1)의 프로세서(50)에 의해 수행된다.
100 단계에서 전자장치(1)는 스토리지(42)에 저장된 재기록 가능(rewritable) 타입의 제1파일 또는 읽기 전용(read only) 타입의 제2파일의 데이터를 메모리(41)의 제1영역에 저장한다.
110 단계에서 전자장치(1)는 메모리(41)의 공간 확보 이벤트를 감지한다.
메모리(41)의 공간 확보 이벤트에 응답하여, 120 단계에서 전자장치(1)는 제1영역에 저장된 데이터에 대응하는 파일의 타입을 식별한다.
130 단계에서 전자장치(1)는 식별된 파일 타입이 읽기 전용 타입인 제2파일인지를 식별한다.
식별된 파일 타입이 읽기 전용 타입인 제2파일로 식별되면(130 단계에서 "Yes"), 140 단계에서 전자장치(1)는 제2파일의 데이터를 메모리(41)의 제2영역에 저장하고, 제1영역에서 삭제한다.
반면에, 식별된 파일 타입이 읽기 전용 타입인 제2파일이 아니라고 식별되면(130 단계에서 "No"), 즉 식별된 파일 타입이 재기록 가능 타입인 제1파일로 식별되면, 150 단계에서 전자장치(1)는 제1파일의 데이터를 메모리(41)의 제1영역에서 삭제한다.
160 단계에서 전자장치(1)는 제2파일의 데이터에 대한 접근 이벤트를 감지한다.
제2파일의 데이터에 대한 접근 이벤트에 응답하여, 170 단계에서 전자장치(1)는 메모리(41)의 제2영역에 저장된 제2파일의 데이터를 제1영역으로 복원시킨다. 전자장치(1)는 제2파일의 데이터를 제1영역으로 복원한 이후, 제2영역에서 제2파일의 데이터를 삭제할 수 있다.
이와 같이, 전자장치(1)는 메모리(41)의 제1영역의 가용용량을 확보할 때에, 파일 타입이 재기록 가능인 경우 및 읽기 전용인 경우를 구분하고, 읽기 전용 타입의제2파일의 데이터를 메모리(41)의 제2영역에 이동시킨다. 전자장치(1)는 삭제된 제2파일의 데이터에 대한 접근이 발생하면, 제2영역에 저장된 제2파일의 데이터를 제1영역에 복원시킨다.
읽기 전용 타입의 제2파일의 데이터를 메모리(41)의 제2영역에 이동시키는 이유는 다음과 같다. 재기록 가능 타입의 제1파일의 데이터는 제1영역에서 삭제될 때에 스토리지(42)에 저장된 제1파일과 동기화가 필요하다. 이에 비해, 제2파일의 데이터의 원본은 스토리지(42)에 제2파일로 저장되어 있으며, 변경되지 않는다. 제2파일의 데이터는 파일의 데이터의 수정사항을 파일에 반영하는 동기화의 필요가 없으며, 항상 원본이 존재하므로, 메모리(41) 상에서 삭제하는 것만으로도 제1영역의 가용용량을 빠르게 확보할 수 있다.
한편, 제1파일의 데이터를 제2파일의 데이터의 경우와 동일하게 제2영역에 이동시키게 되는 방법을 고려할 수 있다. 제1파일의 데이터는 제2영역에 대한 사용 이벤트 시에 동기화의 제약(즉, 제1파일의 데이터를 제1파일에 동기화시키는 작업이 필요)으로 인해 바로 제2영역에서 삭제하는 것이 곤란하며, 또한 동기화로 인한 프로세서(50)의 부하가 증가한다. 따라서, 제1파일의 데이터를 제2영역으로 이동시키는 방법은 제2파일의 데이터의 경우보다 적합하지 않다.
이로써, 전자장치(1)는 메모리(41)의 가용용량을 확보하면서도, 가용용량의 확보 동작으로 인한 퍼포먼스의 성능 저하를 최소화시킬 수 있다.
스토리지(42) 및 메모리(41) 각각의 소정 제품의 실험 예시를 통해 입출력속도를 서로 비교할 수 있다. 실험 예시에서, 메모리(41)인 소정의 램의 입출력 속도는, 읽기 속도가 358,24, 쓰기 속도가 284.63, 압축 및 읽기 속도가 36.14, 압축해제 및 쓰기 속도가 31.40 (이상 단위는 MB/s)로 계측되었다. 이에 비해, 스토리지(42)인 MLC 플래시메모리의 입출력 속도는, 순차적인 읽기 속도가 151.65, 순차적인 쓰기 속도가 22.43, 무작위 읽기 속도가 2.28, 무작위 쓰기 속도가 0.25 (이상 단위는 MB/s)로 계측되었다. 이와 같이, 스토리지(42)의 입출력 속도는 메모리(41)의 입출력 속도에 비해 느리다.
본 실시예에 따른 전자장치(1)는 스토리지(42)의 입출력 빈도를 줄임으로써, 메모리(41)의 공간 확보에 따라서 발생할 수 있는 퍼포먼스의 저하를 줄인다.
한편, 전자장치(1)의 프로세서(50)는 상기와 같이 각 이벤트에 응답하여 파일 데이터를 삭제, 저장, 복원하는 동작을 수행하기 위한 데이터 분석, 처리, 및 결과 정보 생성 중 적어도 일부를 규칙 기반 또는 인공지능(Artificial Intelligence) 알고리즘으로서 기계학습, 신경망 네트워크(neural network), 또는 딥러닝 알고리즘 중 적어도 하나를 이용하여 수행할 수 있다. 예를 들어, 프로세서(50)는 인공지능 알고리즘에 기반하여, 제1영역(310)에 저장되어 있는 복수의 파일 데이터 중에서 제1영역(310)의 공간확보를 위해 정리하기 위한 파일 데이터들을 선택할 수 있다.
일 예로, 전자장치(1)의 프로세서(50)는 학습부 및 인식부의 기능을 함께 수행할 수 있다. 학습부는 학습된 신경망 네트워크를 생성하는 기능을 수행하고, 인식부는 학습된 신경망 네트워크를 이용하여 데이터를 인식(또는, 추론, 예측, 추정, 판단)하는 기능을 수행할 수 있다. 학습부는 신경망 네트워크를 생성하거나 갱신할 수 있다. 학습부는 신경망 네트워크를 생성하기 위해서 학습 데이터를 획득할 수 있다. 일 예로, 학습부는 학습 데이터를 전자장치(1)의 저장부 또는 외부로부터 획득할 수 있다. 학습 데이터는, 신경망 네트워크의 학습을 위해 이용되는 데이터일 수 있으며, 상기한 동작을 수행한 데이터를 학습데이터로 이용하여 신경망 네트워크를 학습시킬 수 있다.
학습부는 학습 데이터를 이용하여 신경망 네트워크를 학습시키기 전에, 획득된 학습 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 학습 데이터들 중에서 학습에 이용될 데이터를 선별할 수 있다. 일 예로, 학습부는 학습 데이터를 기 설정된 포맷으로 가공하거나, 필터링하거나, 또는 노이즈를 추가/제거하여 학습에 적절한 데이터의 형태로 가공할 수 있다. 학습부는 전처리된 학습 데이터를 이용하여 상기한 동작을 수행하도록 설정된 신경망 네트워크를 생성할 수 있다.
학습된 신경망 네트워크는, 복수의 신경망 네트워크(또는, 레이어)들로 구성될 수 있다. 복수의 신경망 네트워크의 노드들은 가중치를 가지며, 복수의 신경망 네트워크들은 일 신경망 네트워크의 출력 값이 다른 신경망 네트워크의 입력 값으로 이용되도록 서로 연결될 수 있다. 신경망 네트워크의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN (Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks)과 같은 모델을 포함할 수 있다.
한편 인식부는 상기한 동작을 수행하기 위해, 타겟 데이터를 획득할 수 있다. 타겟 데이터는 전자장치(1)의 저장부 또는 외부로부터 획득된 것일 수 있다. 타겟 데이터는 신경망 네트워크의 인식 대상이 되는 데이터일 수 있다. 인식부는 타겟 데이터를 학습된 신경망 네트워크에 적용하기 전에, 획득된 타겟 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 타겟 데이터들 중에서 인식에 이용될 데이터를 선별할 수 있다. 일 예로, 인식부는 타겟 데이터를 기 설정된 포맷으로 가공하거나, 필터링 하거나, 또는 노이즈를 추가/제거하여 인식에 적절한 데이터의 형태로 가공할 수 있다. 인식부는 전처리된 타겟 데이터를 신경망 네트워크에 적용함으로써, 신경망 네트워크로부터 출력되는 출력값을 획득할 수 있다. 인식부는 출력값과 함께, 확률값 또는 신뢰도값을 획득할 수 있다.
이하, 파일의 타입에 관해 설명한다.
도 3은 각 파일시스템이 마운트에 의해 특성을 부여받는 원리를 나타내는 예시도이다.
도 1 및 도 3에 도시된 바와 같이, 스토리지(42)는 플래시메모리(210), USB 미디어(220), CD(230) 등과 같은 다양한 기록매체를 포함할 수 있으며, 각 기록매체는 개별적으로 파일시스템(file system)을 가진다. 여기서, 본 실시예와 같이 하나의 기록매체가 하나의 파티션(partition)(즉, 하나의 파일시스템)을 가질 수도 있고, 하나의 기록매체가 복수의 파티션(즉, 복수의 파일시스템)을 가질 수도 있다. 파일시스템은 전자장치(1)에서 파일을 관리하기 위한 구조로서, 계층적인 디렉토리 형식을 가진다. 이러한 파일시스템은, 예를 들면 FAT(file allocation table), exFAT(extended file allocation table), NTFS(new technology file system), ext(extended file system), HFS(hierarchical file system) 등이 있다.
각 기록매체의 파일시스템은 동일하거나 서로 상이할 수 있는데, 운영체제는 가상 파일시스템(virtual file system; VFS)을 통해 서로 상이한 복수의 파일시스템을 통합적으로 관리할 수 있다. 즉, 복수의 물리적인 파일시스템 상에 VFS가 구동함으로써, 복수의 물리적인 파일시스템이 하나의 논리적인 파일시스템으로 통합되어 관리된다.
예를 들어 전자장치(1)에 마련된 복수의 스토리지(42) 중 플래시메모리(210)에 운영체제가 저장되어 있는 경우를 고려한다. 메인 스토리지로서의 플래시메모리(210)에 저장되는 파일 경로는, 예를 들면 root 경로 아래에 bin, dev, boot, mnt, sbin, usr 등의 하위 경로를 포함한다. 전자장치(1)가 부팅되면, 운영체제는 메인 스토리지인 플래시메모리(210)의 저장 경로에 서브 스토리지인 USB 미디어(220) 및 CD(230)를 연결시키는 마운트(mount) 동작을 수행한다. 예를 들면, 운영체제는 플래시메모리(210)의 mnt 경로 하에 USB 미디어(220) 및 CD(230)를 마운트시킴으로써 복수의 스토리지(42)의 계층화된 저장 경로를 형성한다.
여기서, 운영체제는 각 저장 경로에 대해, 또는 각 저장 경로에 저장되어 있는 파일(예를 들어 file1, file2, file3, file4, file5 등)에 대해 특성을 부여한다. 예를 들면, 운영체제는 플래시메모리(210)의 root 이하 bin, dev, boot, mnt, sbin, usr 경로에 대해서는 쓰기 불가 특성을, USB 미디어(220)의 mnt/usb 경로(USB 미디어(220)가 플래시메모리(210)의 mnt 경로 아래에 마운트됨을 의미)에 대해서는 재기록 가능 타입의 특성을, CD(230)의 mnt/CDrom 경로(CD(230)가 플래시메모리(210)의 mnt 경로 아래에 마운트됨을 의미)에 대해서는 읽기 전용 타입의 특성을 각각 부여한다. 운영체제가 각 경로에 어떠한 특성을 부여할 것인가에 관해서는 사전에 지정된 설정에 따른다. 이와 같은 저장 경로 별 특성은, 전자장치(1)의 부팅 시 운영체제에 의해 부여된다. 따라서, 설정이 바뀌고 전자장치(1)가 재부팅되면, 저장 경로 별 특성은 이전과 달라지게 된다. 이하, 파일의 타입 중에서 재기록 가능 타입을 RW(read and write; rewritable)로, 읽기 전용 타입을 RO(read only)로 간단히 나타낸다.
각 저장 경로에 부여된 특성은, 각 파일시스템의 수퍼블록(superblock)(211, 221, 231)에 기록된다. 수퍼블록(211, 221, 231)은 운영체제가 현재 사용중인(즉, 마운트된) 파일시스템마다 할당된다. VFS는 관리 대상인 각 파일시스템마다, 해당 파일시스템에 관한 고유한 정보를 기록하기 위한 기록영역인 수퍼블록(211, 221, 231)을 정의한다. 즉, 어느 한 파일시스템의 수퍼블록(211, 221, 231)은, 해당 파일시스템의 메타데이터에 해당한다. 예를 들어, USB 미디어(220)의 수퍼블록(221)에는, USB 미디어(220) 내의 mnt/usb 경로에 대해 RW 특성이 부여되어 있다는 정보가 기록되어 있다.
이하, 스토리지(42)에 저장된 파일에 대응하는 파일 데이터가 메모리(41)에 저장되는 예시에 관해 설명한다.
도 4는 스토리지에 저장된 파일에 대응하는 데이터가 메모리에 로딩되는 방식을 나타내는 예시도이다.
도 1 및 도 4에 도시된 바와 같이, 스토리지(42)는 복수의 파일(410, 420)을 저장하고, 메모리(41)는 각 파일(410, 420)에 대응하는 파일 데이터(510, 520)가 저장되도록 마련된다. 본 실시예에 따른 구체적인 동작을 설명하기에 앞서, 두 가지의 전제에 관한 설명이 필요하다. 하나는 메모리(41)가 제1영역(310) 및 제2영역(320)을 포함하는 점이고, 다른 하나는 메모리(41)의 데이터(510, 520, 530, 540)가 RW 또는 RO타입인 파일의 파일 데이터(file data), 또는 유저 데이터(user data) 중 어느 한 특성을 가진다는 점이다. 이하, 메모리(41)의 제1영역(310) 및 제2영역(320)에 관해 설명한다.
제1영역(310)은 메모리(41)에서 프리 메모리(free memory) 영역으로 지칭되며, 임의의 데이터가 저장되는 저장 영역이다. 예를 들면, 스토리지(42)에 저장된 파일(410, 420)(예를 들면, 운영체제, 어플리케이션, 드라이버, 기타 멀티미디어 컨텐트 등)에 대응하는 데이터는 기본적으로 제1영역(310)에 저장된다. 메모리(41)의 가용용량은 제1영역(310)의 가용용량을 지칭하는 바, 전자장치(1)에서 메모리(41)의 공간 확보 이벤트(즉, 메모리(41)의 가용용량이 부족할 때에 메모리(41)의 정리를 통해 가용용량을 확보하고자 하는 이벤트)는 제1영역(310)의 가용용량이 부족할 때에 발생한다.
제2영역(320)은 제1영역(310)과 상이한, 메모리(41) 내 특수 목적의 예비 저장영역이다. 본 실시예에서 메모리(41)의 저장용량으로 지칭되는 것은 제1영역(310)의 저장용량만을 포함하며, 제2영역(320)의 저장용량을 포함하지 않는다. 즉, 메모리(41)의 공간 확보 이벤트의 발생 여부는 제2영역(320)의 가용용량과 무관하다. 상기한 특수 목적에 따라서 제2영역(320)은 여러 가지 종류로 구현될 수 있는 바, 예를 들면 CMA(contiguous memory allocator) 영역, emergency pool, atomic pool 등을 포함할 수 있다. 본 실시예에서는 제2영역(320)이 CMA 영역인 경우를 예시로 들며, 이하 CMA 영역에 관해 설명한다.
전자장치(1)의 운영체제는 대부분 VFS 방식의 메모리(41) 관리를 적용하므로, 운영체제 상에서 동작하는 어플리케이션은 메모리 분절화(memory fragmentation)의 문제(프로세스가 필요로 하는 메모리의 저장영역이 분절됨으로써 해당 프로세스에 대한 메모리 할당이 실패하는 문제)를 고려할 필요 없이 메모리(41)를 사용할 수 있다. 만일 어플리케이션이 메모리(41)에서 연속된 저장영역을 필요로 하더라도, 굳이 메모리(41)의 물리적으로 연속된 저장영역이 어플리케이션에 할당될 필요 없이, VFS의 가상화를 통해 논리적으로 연속된 저장영역이 어플리케이션에 할당되기만 하면 된다. 이러한 동작은 CPU, MMU(memory management unit)를 비롯한 프로세서(50)에 의해 수행된다. MMU는 CPU 및 메모리(41) 사이에서, CPU가 사용하는 논리 주소를 메모리(41)의 물리 주소에 맵핑시키는 구성요소이다.
한편, 전자장치(1)에는 CPU 말고도 다양한 하드웨어 또는 드라이버를 포함하는 디바이스들이 포함되거나 또는 연결되며, 이 디바이스들 역시 메모리(41)에 접근한다. 모든 디바이스의 메모리(41) 접근을 CPU가 대신하게 될 경우에는 전자장치(1)의 성능이 떨어질 수 있다. 따라서 전자장치(1)는 디바이스가 CPU의 도움 없이(즉, CPU를 경유하지 않고) 직접 메모리(41)에 접근할 수 있는 환경을 제공하는데, 이를 DMA(direct memory access)라고 한다. 여기서, MMU는 CPU와 메모리(41) 사이에 존재하기 때문에 DMA를 수행하는 디바이스는 메모리(41)에 물리 주소를 사용해 접근할 수밖에 없다. 따라서, 상기한 디바이스의 경우에는 메모리(41)에서 물리적으로 연속된 저장 영역을 필요로 하는 경우가 발생한다. 이 외에도 메모리(41) 성능상의 필요로 인해, 물리 주소에 기반을 둔 메모리(41) 접근을 해야 하는 경우들이 존재한다. 여러 개의 CPU가 존재하며 CPU마다 특정 물리적 메모리 영역으로의 접근 속도와 다른 물리적 메모리 영역으로의 접근 속도가 다른 NUMA(non-uniform memory access) 구조의 시스템 등이 한 예이다. 운영체제에서는 메모리(41)의 사용량이 많고 성능 측면에서 메모리(41) 접근 속도가 중요한 경우에, TLB(translation lookaside buffer) 캐시 미스를 최소화하기 위해 huge page 기능을 제공한다. 이 경우에도 huge page를 확보하기 위해 메모리(41)에서 연속된 물리 주소 영역이 필요하다. CMA 영역은 메모리(41)에서 상기와 같은 경우에 사용될 수 있도록, 연속된 물리 주소를 할당하기 위해 마련된 예비 저장영역을 지칭한다.
운영체제는 전자장치(1)의 부팅 시에 메모리(41)에서 CMA 영역, 즉 본 실시예에서의 제2영역(320)을 동적으로 할당한다. 사전에 할당된 디바이스가 사용하도록 제2영역(320)이 할당되기는 하지만, 상기한 디바이스가 제2영역(320)을 사용하지 않는 동안에는 페이지 단위로 저장되는 데이터(510, 520, 530, 540)가 제2영역(320)을 임시로 빌려서 사용할 수도 있다. 제2영역(320)을 사용하는 우선권은, 첫번째가 사전 할당된 디바이스, 두번째가 유저 데이터, 세번째가 RW 또는 RO 타입의 파일 데이터이다. 낮은 우선순위를 가진 대상이 제2영역(320)을 사용하는 동안에 높은 우선순위를 가진 대상이 제2영역(320)을 사용하고자 하면, 낮은 우선순위를 가진 대상은 높은 우선순위를 가진 대상에게 제2영역(320)의 사용권을 넘겨야 한다. 이 경우에, 낮은 우선순위를 가진 대상의 데이터는 제2영역(320)에서 삭제되어야 하는데, 이에 관한 자세한 설명은 후술한다.
이하, RW 또는 RO 타입의 파일의 파일 데이터 및 유저 데이터의 차이에 관해 설명한다.
메모리(41)에 저장되는 데이터(510, 520, 530, 540)는, RW 또는 RO 타입의 파일에 대응하는 파일 데이터(510, 520)와, 유저 데이터(530, 540)로 구분된다. 파일 데이터(510, 520)는, 메모리(41)에 저장되어 있는 파일 데이터(510, 520)의 원본 데이터가 스토리지(42)에 파일(410, 420)로서 존재하는 경우에 해당한다. 즉, 이러한 파일 데이터(510, 520)는 스토리지(42)에 저장된 파일(410, 420)의 데이터가 메모리(41)에 저장됨으로써 생성된 것이다.
반면에, 유저 데이터(530, 540)는, 메모리(41)에 저장되어 있는 유저 데이터(530, 540)의 원본 데이터가 스토리지(42)에 존재하지 않는 경우에 해당한다. 즉, 유저 데이터(530, 540)는 스토리지(42)에 저장된 파일과 무관하며, 소정의 프로세스에 의해 생성된 이후 메모리(41)에 저장된 경우이다. 물론, 유저 데이터(530, 540)가 차후 스토리지(42)에 파일로서 저장될 수도 있다.
즉, 메모리(41)에 저장된 데이터(510, 520)에 대응하는 파일(410, 420)이 스토리지(42)에 존재하면 RW 또는 RO 타입의 파일 데이터(510, 520)이고, 메모리(41)에 저장된 데이터(530, 540)에 대응하는 파일이 스토리지(42)에 존재하지 않으면 유저 데이터(530, 540)인 것으로 정리될 수 있다.
이하, 메모리(41)에 데이터(510, 520, 530, 540)가 최초 저장되는 예시에 관해 설명한다. 본 예시는 앞서 도 2의 100 단계에 대응한다.
전자장치(1)는 스토리지(42)에 저장된 RW 타입의 제1파일(410)에 대응하는 제1파일 데이터(510)를 메모리(41)의 제1영역(310)에 저장할 수 있다. 전자장치(1)는 스토리지(42)에 저장된 RO 타입의 제2파일(420)에 대응하는 제2파일 데이터(520)를 제1영역(310)에 저장할 수 있다.
한편, 전자장치(1)는 제1유저 데이터(530)를 메모리(41)의 제1영역(310)에 저장할 수 있다. 또한, 메모리(41)의 제2영역(320)이 사전에 할당된 디바이스에 의해 사용되지 않을 때, 전자장치(1)는 유저 데이터 특성의 제2유저 데이터(540)를 제2영역에 저장할 수도 있다.
메모리(41)의 가용용량, 즉 제1영역(310)의 가용용량이 소정의 문턱값 이하로 내려가면, 제1영역(310)의 가용용량 확보를 위한 메모리(41)의 공간 확보 이벤트가 발생한다. 이하, 메모리(41)의 공간 확보 이벤트 시의 동작에 관해 설명한다.
도 5는 메모리의 공간 확보 이벤트 시의 데이터의 정리 방법을 나타내는 예시도이다.
도 6은 데이터의 정리에 의해 공간이 확보된 메모리를 나타내는 예시도이다.
도 1 및 도 5에 도시된 바와 같이, 메모리(41)의 공간 확보 이벤트가 발생하면, 제1영역(310)에 저장되어 있는 여러 데이터 중 정리 대상의 데이터(510, 520, 530)가 선택된다. 본 실시예의 메모리(41)의 공간 확보를 위한 동작은 제1영역(310)을 대상으로 한다. 본 예시는 앞선 도 2의 110 단계에 해당한다. 정리 대상의 데이터(510, 520, 530)를 선택하는 방법은 여러 가지가 가능한데, 이에 관한 내용은 후술한다.
예를 들어 제1영역(310)에 저장된 제1파일 데이터(510), 제2파일 데이터(520) 및 제1유저 데이터(530)가 제1영역(310)의 가용용량 확보를 위한 정리 대상으로 선택될 수 있다. 전자장치(1)는 정리 대상인 데이터(510, 520, 530) 각각의 특성을 식별하고, 식별된 특성에 대응하여 각 데이터(510, 520, 530)를 정리한다. 본 예시는 앞선 도 2의 120 내지 150 단계에 해당한다.
전자장치(1)는 제1파일 데이터(510)가 RW 타입인 제1파일에 기초한 것으로 식별되면, 제1파일 데이터(510)를 제1영역(310)에서 삭제한다. 즉, 전자장치(1)는 RW 타입인 제1파일의 제1파일 데이터(510)에 대해 페이지 드롭 동작만을 수행한다.
전자장치(1)는 제2파일 데이터(520)가 RO 타입인 제2파일에 기초한 것으로 식별되면, 제2파일 데이터(520)를 기 설정된 압축포맷에 의해 압축시킨 제1압축데이터(521)를 생성하고, 제1압축데이터(521)를 제2영역(320)에 저장하고, 제1영역(310)에서 제2파일 데이터(520)를 삭제한다. 즉, 전자장치는 RO 타입의 제2파일의 제2파일 데이터(520)를 제2영역(320)으로 압축시켜 복사한 이후 페이지 드롭 동작을 수행한다. 설계 방식에 따라서는, 전자장치(1)가 제2파일 데이터(520)를 압축시키지 않고 제1영역(310)으로부터 제2영역(320)으로 이동시킬 수도 있으나, 메모리(41)의 저장 영역을 효율적으로 사용하는 측면에서 제2파일 데이터(520)를 제1압축데이터(521)로 압축시키는 것이 바람직하다.
전자장치(1)는 제2파일 데이터(520)의 저장 주소 및 제1압축데이터(521)의 저장 주소를 맵핑시킨 리스트를 관리할 수도 있고, 제2파일 데이터(520)의 저장 주소에 기초하여 제1압축데이터(521)의 저장 주소를 지정할 수 있다. 예를 들어, 제2파일 데이터(520)의 저장 주소가 메모리(41)의 저장 블록마다 부여되는 인덱스 넘버로 지정된다고 한다. 전자장치(1)는 제2파일 데이터(520)의 저장 주소의 제1인덱스 넘버에, 기 설정된 오프셋값인 제2인덱스 넘버를 더함으로써, 제1압축데이터(521)의 저장 주소를 획득한다. 이러한 오프셋값은 사전에 설정된 값이다.
전자장치(1)는 제1유저 데이터(530)가 유저 데이터 특성을 가지는 것으로 식별되면, 제1유저 데이터(530)를 기 설정된 압축포맷에 의해 압축시킨 제2압축데이터(531)를 생성하고, 제2압축데이터(531)를 제1영역(310)에 저장하고, 제1영역(310)에서 제1유저 데이터(530)를 삭제한다. 즉, 전자장치(1)는 유저 데이터 특성을 가진 제1유저 데이터(530)를 제1영역(310)으로 압축시켜 복사한 이후 페이지 드롭 동작을 수행한다. 제1유저 데이터(530)의 경우에는 제1유저 데이터(530) 및 제2압축데이터(531)가 동일한 제1영역(310)에 저장되므로, 메모리(41) 공간 확보를 위해서는 제1유저 데이터(530)의 정리 시에 제1유저 데이터(530)의 압축이 필요하다.
결과적으로 도 6에 도시된 바와 같이, 제2영역(320)에는 제1압축데이터(521)가 저장되고, 제1영역(310)에는 제2압축데이터(531)가 저장됨으로써, 제1영역(310)의 가용용량이 증가한다.
이하, 공간이 확보된 메모리(41)에서, 삭제된 데이터(510, 520, 530)에 대한 접근 이벤트가 발생하는 경우의 동작에 관해 설명한다.
도 7은 메모리에서 삭제된 데이터에 대한 접근 이벤트 시, 삭제된 데이터를 복원하는 방법을 나타내는 예시도이다.
도 1, 도 5 및 도 7에 도시된 바와 같이, 제1영역(310)에서 삭제된 데이터(510, 520, 530, 도 5 참조)에 대한 소정 프로세스의 접근이 발생하면, 전자장치(1)는 삭제된 데이터 각각의 특성에 대응하여, 상이한 방식으로 복원을 수행한다. 전자장치(1)가 삭제된 데이터의 특성을 식별하는 방법에 관해서는 후술한다.
전자장치(1)는 삭제된 제1파일 데이터(510)(RW 타입)에 대한 접근이 발생하면, 스토리지(42)에 저장된 제1파일(410)에 기초하여 제1파일 데이터(550)를 제1영역(310)에 복원시킨다.
전자장치(1)는 삭제된 제2파일 데이터(520)(RO 타입)에 대한 접근이 발생하면, 삭제된 제2파일 데이터(520)에 대응하는 제1압축데이터(521)를 제2영역(320)으로부터 획득한다. 전자장치(1)는 제1압축데이터(521)의 압축을 풀어서 제2파일 데이터(560)를 획득하고, 획득한 제2파일 데이터(560)를 제1영역(310)에 복원시킨다. 이후, 전자장치(1)는 제1압축데이터(521)를 제2영역(320)에서 삭제할 수 있다. 즉, 전자장치(1)는 스토리지(42)에 저장된 제2파일(420)에 기초하여 제2파일 데이터(560)를 복원하는 것이 아니라, 제2영역(320)에 저장된 제1압축데이터(521)에 기초하여 제2파일 데이터(560)를 복원한다. 본 예시는 앞선 도 2의 160 단계 및 170 단계에 해당한다.
한편, 삭제된 제2파일 데이터(520)에 대응하는 제1압축데이터(521)가 제2영역(320)에 저장되어 있지 않을 수도 있다. 이러한 상황은, 제2영역(320)의 사용 이벤트에 의해 제2영역(320)에서 제1압축데이터(521)가 삭제된 경우에 해당하며, 이에 관한 설명은 후술한다. 전자장치(1)는 제1압축데이터(521)가 제2영역(320)에 저장되지 않았다고 식별되면, 스토리지(42)에서 제2파일 데이터(520)에 대응하는 제2파일(420)에 기초하여 제2파일 데이터(560)를 제1영역(310)에 복원시킨다.
전자장치(1)는 삭제된 제1유저 데이터(530)(유저 데이터 특성)에 대한 접근이 발생하면, 삭제된 제1유저 데이터(530)에 대응하는 제2압축데이터(531)를 제1영역(310)으로부터 획득한다. 전자장치(1)는 제2압축데이터(531)의 압축을 풀어서 제1유저 데이터(570)를 획득하고, 획득한 제1유저 데이터(570)를 제1영역(310)에 복원시킨다. 이후, 전자장치(1)는 제2압축데이터(531)를 제1영역(310)에서 삭제할 수 있다.
이로써, 프로세스가 제1영역(310)에 복원된 데이터(550, 560, 570)에 접근할 수 있다.
한편, 앞서 설명한 동작들 중 소정 시점에서, 사전 설정된 디바이스가 제2영역(320)을 사용하고자 하는 경우가 발생할 수 있다. 이하, 이러한 실시예에 관해 설명한다.
도 8은 제2영역에 대한 사용 이벤트 시에 제2영역을 정리하는 방법을 나타내는 예시도이다.
도 1 및 도 8에 도시된 바와 같이, 제1영역(310)에 대한 정리 이후, 메모리(41)의 제2영역(320)에 대해 기 설정된 디바이스에 의한 사용 이벤트가 발생할 수 있다. 이 때, 전자장치(1)는 제2영역(320)에 대한 정리를 수행하여 기 설정된 디바이스가 사용할 수 있도록 제2영역(320)의 가용용량을 확보한다. 예를 들어, 제2영역(320)에 제1압축데이터(521) 및 제2유저 데이터(540)가 저장되어 있는 경우(도 6)의 전자장치(1)의 동작에 관해 이하 설명한다.
전자장치(1)는 제2유저 데이터(540)가 유저 데이터 특성을 가지는 것으로 식별되면, 제2유저 데이터(540)를 제1영역(310)으로 이동시킨다. 이러한 동작을 마이그레이션(migration)이라고 한다.
한편, 전자장치(1)는 제1압축데이터(521)가 RO 타입을 가진 제2파일에 기초한 제2파일 데이터(520, 도 5 참조)를 압축한 것이라고 식별되면, 제1압축데이터(521)를 삭제한다. 제1압축데이터(521)를 삭제한 이후에 제2파일 데이터(520)에 대한 접근 이벤트가 발생할 때의 전자장치(1)의 동작은 앞서 설명한 바와 같다. 또는, 전자장치(1)는 제2영역(320)에 RW 또는 RO 타입의 다른 파일 데이터가 있는 경우에, 해당 파일 데이터를 삭제할 수 있다.
즉, 사전 할당된 하드웨어 디바이스에 의한 제2영역(320)의 사용 이벤트가 발생하면, 전자장치(1)는 디바이스보다 제2영역(320)의 우선권이 낮은 유저 데이터 또는 파일 데이터를 제2영역(320)에서 삭제한다.
한편, 제2영역(320)에 많은 파일 데이터가 저장되어 있을 때, 전자장치(1)는 다양한 방식의 파일 데이터 교체 알고리즘을 사용하여 제2영역(320)의 공간을 확보할 수 있다. 예를 들면, 전자장치(1)는 LRU(least recently used) 알고리즘을 사용하여, 가장 오래된 파일 데이터를 우선적으로 삭제하고 최신의 파일 데이터가 유지되도록 할 수 있다.
한편, 파일 폴트가 발생하는 경우의 전자장치(1)의 동작에 관해 설명한다.
도 9는 파일 폴트가 발생할 때의 전자장치의 동작을 나타내는 플로우차트이다.
도 1 및 도 9에 도시된 바와 같이, 전자장치(1)의 프로세서(50)에 의해 실행되는 운영체제가 하기 동작을 수행한다. 본 예시는 앞선 도 2의 160 단계 및 170 단계와 관련된다.
610 단계에서 전자장치(1)는 파일 폴트의 발생을 감지한다. 파일 폴트는 사용자 스페이스(user space)에서 소정의 프로세스에 의해 소정 파일에 대한 시스템 콜(system call)이 수행되었는데, 해당 파일이 해당 프로세스에 정상적으로 반환되지 않는 경우에 발생하는 에러이다.
620 단계에서 전자장치(1)는 폴트가 발생한 파일에 대응하는 파일 데이터의 제1영역(310)의 주소를 획득한다.
630 단계에서 전자장치(1)는 획득한 주소에서 파일 데이터가 획득되는지 식별한다. 획득한 주소에서 파일 데이터가 획득되면(630 단계에서 "Yes"), 전자장치(1)는 660 단계로 이행한다.
반면에, 획득한 주소에서 파일 데이터가 획득되지 않으면(630 단계에서 "No"), 640 단계에서 전자장치(1)는 제2영역(320)에서 상기한 파일 데이터에 대응하는 압축된 데이터가 획득되는지 식별한다. 압축된 데이터가 획득되면(640 단계에서 "Yes"), 660 단계로 이행한다.
반면에, 압축된 데이터가 획득되지 않으면(640 단계에서 "No"), 650 단계에서 전자장치(1)는 스토리지(42)에 저장된 해당 파일에 기초하여 제1영역(310)에 파일 데이터를 저장한다.
660 단계에서 전자장치(1)는 획득한 파일 데이터를 프로세스에 반환한다.
이하, 메모리(41)의 공간 확보 이벤트 시에 정리 대상의 파일 데이터를 선별하는 방법에 관해 설명한다.
전자장치(1)는 정리 대상이 되는 파일 데이터를 선별하기 위해, 각 파일 데이터의 페이지 디스크립터(page descriptor)인 스트럭쳐 페이지(structure page) 내부의 아이노드(inode) 정보를 확인한다. 스트럭쳐 페이지는 모든 페이지에 대해 존재하는 데이터이다. 아이노드는 페이지에 대응하는 파일을 기술하는 기록매체 상의 데이터 구조로서, 파일의 데이터 블록이 기록매체에서 어느 주소에 있는지와 같이 파일에 대한 중요한 정보를 포함한다. 파일마다 고유한 아이노드 번호를 가지는 바, 아이노드는 파일의 고유 식별정보의 역할을 한다. 아이노드는 수퍼블록과 연결되므로, 전자장치(1)는 각 파일 데이터에 대응하는 파일의 타입(RW 또는 RO 여부)을 확인할 수 있다.
전자장치(1)는 프로세스의 접근 빈도가 적거나, 프로세스가 마지막으로 접근한 시점이 소정 시간을 경과한 파일 데이터를 정리 대상으로 선별할 수 있다. 또는, 전자장치(1)는 RO 타입의 파일의 파일 데이터 중에서 압축했을때의 압축률이 높은 파일 데이터를 정리 대상으로 선별할 수도 있다.
전자장치(1)는 소정 파일 데이터의 전체 또는 일부 데이터(예를 들면, 512Byte)를 사용하여 해당 파일 데이터의 데이터 엔트로피(data entropy)를 산출한다. 데이터 엔트로피는 Σ(Pilog2(Pi))에 의해 산출되는데(Pi는 1개 Byte가 i값을 가지는 확률), 데이터 엔트로피가 높은 데이터는 통상적으로 압축률이 높다. 압축률이 높다는 것은 메모리(41)의 공간을 보다 효율적으로 사용할 수 있다는 것을 의미한다. 전자장치(1)는 데이터 엔트로피가 문턱값보다 높은 파일 데이터를 정리 대상으로 선별할 수 있다.
본 발명의 예시적 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이러한 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 삭제 가능 또는 재기록 가능 여부와 상관없이, USB 메모리장치와 같은 비휘발성 저장 장치, 또는 예를 들어 RAM, ROM, 플래시메모리, 메모리 칩, 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 이동 단말 내에 포함될 수 있는 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 본 저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어의 기술 분야에서 숙련된 기술자에게 공지되어 사용 가능한 것일 수도 있다. 또는, 본 컴퓨터 프로그램 명령은 컴퓨터 프로그램 프로덕트에 의해 구현될 수도 있다.
1 : 전자장치
40 : 저장부
41 : 메모리
42 : 스토리지
50 : 프로세서

Claims (15)

  1. 전자장치에 있어서,
    스토리지와,
    메모리와,
    상기 스토리지에 저장된 재기록 가능 타입의 제1파일 또는 읽기 전용 타입의 제2파일의 데이터를 상기 메모리의 제1영역에 저장하고,
    상기 메모리에 대한 공간 확보 이벤트에 응답하여, 상기 메모리의 제1영역에 저장된 데이터에 대응하는 파일의 타입을 식별하고,
    상기 식별된 파일이 상기 재기록 가능 타입인 제1파일인 것에 기초하여, 상기 제1파일의 데이터를 상기 제1영역에서 삭제하고,
    상기 식별된 파일이 상기 읽기 전용 타입인 제2파일인 것에 기초하여, 상기 제2파일의 데이터를 상기 메모리의 제2영역에 저장하며 상기 제1영역에서 삭제하고,
    상기 제1파일의 데이터에 대한 접근 이벤트에 응답하여, 상기 스토리지에 저장된 상기 제1파일에 기초하여 상기 제1파일의 데이터를 상기 제1영역에 복원하고,
    상기 제2파일의 데이터에 대한 접근 이벤트에 응답하여, 상기 제2영역에 저장된 상기 제2파일의 데이터를 상기 제1영역에 복원하는 프로세서를 포함하는 전자장치.
  2. 제1항에 있어서,
    상기 프로세서는, 상기 제2파일 데이터를 압축시킨 압축데이터를 상기 제2영역에 저장하는 전자장치.
  3. 제1항에 있어서,
    상기 프로세서는, 상기 제2파일 데이터가 저장된 상기 제1영역의 주소 및 기 설정된 오프셋값에 기초하여 상기 제2파일 데이터가 저장된 상기 제2영역의 주소를 획득하는 전자장치.
  4. 제1항에 있어서,
    상기 프로세서는, 상기 제2파일 데이터에 대한 접근 이벤트에 응답하여, 상기 제2영역에 상기 제2파일 데이터가 저장되지 않은 것으로 식별되면, 상기 스토리지에 저장된 제2파일에 기초하여 상기 제2파일 데이터를 복원시키는 전자장치.
  5. 제1항에 있어서,
    상기 프로세서는, 상기 메모리의 공간 확보 이벤트에 응답하여, 상기 제1영역에 저장된 복수의 상기 제2파일 데이터 중에서, 압축률이 높다고 식별된 하나 이상의 제2파일 데이터를 상기 제2영역에 저장하는 전자장치.
  6. 제5항에 있어서,
    상기 프로세서는, 상기 제2파일 데이터의 데이터 엔트로피 값이 문턱값보다 높은지 여부에 기초하여 상기 압축률이 높다고 식별하는 전자장치.
  7. 제1항에 있어서,
    상기 프로세서는, 상기 메모리의 상기 제2영역에 대한 사용 이벤트에 응답하여, 상기 제2영역에 저장된 상기 제2파일 데이터를 삭제하는 전자장치.
  8. 제7항에 있어서,
    상기 제2영역에 대한 사용 이벤트는, 상기 제2영역을 사용하도록 사전에 할당된 디바이스의 DMA(direct memory access) 기능에 의해 발생하는 전자장치.
  9. 제1항에 있어서,
    상기 프로세서는, 제1유저 데이터를 상기 제1영역에 저장하고,
    상기 메모리의 공간 확보 이벤트에 응답하여, 상기 제1유저데이터를 압축시킨 제2압축데이터를 상기 제1영역에 저장하며 상기 제1영역에 저장된 상기 제1유저데이터를 삭제하는 전자장치.
  10. 제9항에 있어서,
    상기 프로세서는, 상기 제1유저데이터에 대한 접근 이벤트에 응답하여, 상기 제1영역에 저장된 상기 제2압축데이터로부터 상기 제1유저데이터를 획득하여 상기 제1영역으로 복원시키고, 상기 제2압축데이터를 삭제하는 전자장치.
  11. 제9항에 있어서,
    상기 프로세서는, 제2유저 데이터를 상기 제2영역에 저장하고,
    상기 메모리의 상기 제2영역에 대한 사용 이벤트에 응답하여, 상기 제2유저데이터를 상기 제2영역으로부터 상기 제1영역으로 이동시키는 전자장치.
  12. 제1항에 있어서,
    상기 메모리의 입출력 속도는 상기 스토리지의 입출력 속도에 비해 빠른 전자장치.
  13. 제1항에 있어서,
    상기 메모리는 램(RAM)을 포함하는 전자장치.
  14. 제12항에 있어서,
    상기 제2영역은 CMA(contiguous memory allocator) 영역을 포함하는 전자장치.
  15. 전자장치의 제어방법에 있어서,
    스토리지에 저장된 재기록 가능 타입의 제1파일 또는 읽기 전용 타입의 제2파일의 데이터를 메모리의 제1영역에 저장하는 단계와,
    상기 메모리에 대한 공간 확보 이벤트에 응답하여, 상기 메모리의 제1영역에 저장된 데이터에 대응하는 파일의 타입을 식별하는 단계와,
    상기 식별된 파일이 상기 재기록 가능 타입인 제1파일인 것에 기초하여, 상기 제1파일의 데이터를 상기 제1영역에서 삭제하는 단계와,
    상기 식별된 파일이 상기 읽기 전용 타입인 제2파일인 것에 기초하여, 상기 제2파일의 데이터를 상기 메모리의 제2영역에 저장하며 상기 제1영역에서 삭제하는 단계와,
    상기 제1파일의 데이터에 대한 접근 이벤트에 응답하여, 상기 스토리지에 저장된 상기 제1파일에 기초하여 상기 제1파일의 데이터를 상기 제1영역에 복원하는 단계와,
    상기 제2파일의 데이터에 대한 접근 이벤트에 응답하여, 상기 제2영역에 저장된 상기 제2파일의 데이터를 상기 제1영역에 복원하는 단계를 포함하는 전자장치의 제어방법.
KR1020210117757A 2021-09-03 2021-09-03 전자장치 및 그 제어방법 KR20230034695A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210117757A KR20230034695A (ko) 2021-09-03 2021-09-03 전자장치 및 그 제어방법
PCT/KR2022/013184 WO2023033584A1 (ko) 2021-09-03 2022-09-02 전자장치 및 그 제어방법
EP22865086.7A EP4365750A1 (en) 2021-09-03 2022-09-02 Electronic device and control method therefor
US18/417,395 US20240152272A1 (en) 2021-09-03 2024-01-19 Electronic apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210117757A KR20230034695A (ko) 2021-09-03 2021-09-03 전자장치 및 그 제어방법

Publications (1)

Publication Number Publication Date
KR20230034695A true KR20230034695A (ko) 2023-03-10

Family

ID=85411400

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210117757A KR20230034695A (ko) 2021-09-03 2021-09-03 전자장치 및 그 제어방법

Country Status (4)

Country Link
US (1) US20240152272A1 (ko)
EP (1) EP4365750A1 (ko)
KR (1) KR20230034695A (ko)
WO (1) WO2023033584A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101190001B1 (ko) * 2010-05-25 2012-10-12 한국과학기술원 비휘발성 메모리를 포함한 메인 메모리상에서 파일시스템의 접근을 지원하기 위한 가상 메모리 시스템
US9703706B2 (en) * 2011-02-28 2017-07-11 Oracle International Corporation Universal cache management system
US9235505B2 (en) * 2013-05-17 2016-01-12 Ab Initio Technology Llc Managing memory and storage space for a data operation
KR102343642B1 (ko) * 2014-07-24 2021-12-28 삼성전자주식회사 데이터 운용 방법 및 전자 장치
KR101954976B1 (ko) * 2018-10-02 2019-03-06 이현욱 데이터 백업 관리 시스템 및 그 방법

Also Published As

Publication number Publication date
EP4365750A1 (en) 2024-05-08
US20240152272A1 (en) 2024-05-09
WO2023033584A1 (ko) 2023-03-09

Similar Documents

Publication Publication Date Title
EP3108371B1 (en) Modified memory compression
US9612774B2 (en) Metadata structures for low latency and high throughput inline data compression
JP5886447B2 (ja) ロケーション非依存のファイル
US10678446B2 (en) Bitmap processing for log-structured data store
KR20150057068A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11409648B2 (en) Electronic apparatus and controlling method for performing memory swapping to reduce resource usage
US9619336B2 (en) Managing production data
US11256418B2 (en) Logical address history management in memory device
US11907568B2 (en) Storage controller, storage device, and operation method of storage device
KR20230034695A (ko) 전자장치 및 그 제어방법
US11354233B2 (en) Method and system for facilitating fast crash recovery in a storage device
KR102534744B1 (ko) 메모리를 제어하는 전자 장치 및 제어 방법
US8825970B1 (en) System and method for mounting a storage volume utilizing a block reference list
US20230259457A1 (en) Electronic apparatus and control method thereof
US20220291864A1 (en) Operation method of storage device configured to support multi-stream
US20230229493A1 (en) Electronic system, operating method thereof, and operating method of memory device
US10534751B1 (en) Metadata space efficient snapshot operation in page storage
KR101175355B1 (ko) 스토리지 제어 장치, 이를 포함하는 모바일 장치 및 스토리지 제어 방법
KR20220169695A (ko) 전자장치 및 그 제어방법
KR20210150859A (ko) 멀티미디어 데이터 저장 시스템 및 방법
CN115480700A (zh) 数据存储方法、存储设备以及主机
KR20210039617A (ko) 전자장치 및 그 제어방법
CN113330410A (zh) 用于管理非易失性存储器和闪存作为计算对象接口固态驱动器的方法和装置