KR20200107716A - 전자 장치 및 그의 저장 공간 이용 방법 - Google Patents

전자 장치 및 그의 저장 공간 이용 방법 Download PDF

Info

Publication number
KR20200107716A
KR20200107716A KR1020190070430A KR20190070430A KR20200107716A KR 20200107716 A KR20200107716 A KR 20200107716A KR 1020190070430 A KR1020190070430 A KR 1020190070430A KR 20190070430 A KR20190070430 A KR 20190070430A KR 20200107716 A KR20200107716 A KR 20200107716A
Authority
KR
South Korea
Prior art keywords
space
storage
data
memory
data storage
Prior art date
Application number
KR1020190070430A
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 PCT/KR2020/002762 priority Critical patent/WO2020180045A1/en
Priority to US16/802,903 priority patent/US11487452B2/en
Priority to CN202010134718.5A priority patent/CN111666224B/zh
Priority to EP20161485.6A priority patent/EP3706003B1/en
Publication of KR20200107716A publication Critical patent/KR20200107716A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space 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/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Abstract

본 문서에 개시된 다양한 실시예에 따른 전자 장치는 디스플레이, 데이터가 저장되지 않은 제1 공간과 데이터가 저장된 제2 공간을 포함하는 메모리 및 프로세서를 포함할 수 있다. 다양한 실시예에 따르면, 상기 프로세서는, 상기 메모리의 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신하고, 상기 전자 장치의 파일 시스템의 가용 공간 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 임시 저장 공간으로 할당하고, 상기 제1 공간 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 차용 공간으로 할당하도록 상기 메모리를 제어하고, 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트 발생 여부를 확인하고, 차용 공간을 이용하여 상기 데이터 고속 저장 방식을 통한 데이터 저장을 수행하도록 상기 메모리를 제어할 수 있다. 이 밖의 다양한 실시예들이 가능하다.

Description

전자 장치 및 그의 저장 공간 이용 방법{ELECTRONIC DEVICE AND METHOD OF UTILIZING MEMORY SPACE THEREOF}
본 문서에 개시된 다양한 실시예들은, 전자 장치 및 그의 저장 공간 이용 방법에 관한 것으로, 예를 들어, 메모리의 데이터 고속 저장 방식을 파일 시스템을 통해 수행할 수 있는 전자 장치 및 그의 저장 공간 이용 방법에 관한 것이다.
휴대 단말 장치(이하, 전자 장치)에 많은 양의 데이터를 저장하기 위해서는 데이터 집적도가 높은 저장 방식을 이용하는 메모리를 사용할 수 있다.
전자 장치의 메모리에 데이터를 저장할 때, 데이터 집적도가 높은 저장 방식을 사용하는 경우, 데이터 집적도가 낮은 저장 방식에 비해서 많은 양의 데이터를 저장할 수 있지만 데이터 저장 속도는 상대적으로 느릴 수 있다. 고속 데이터 전송 기술이 발달함에 따라 전송 받은 데이터를 메모리에 빠르게 저장하기 위한 기술이 발달하고 있다.
메모리의 데이터 저장 속도를 높이기 위해서, 메모리는 저장 공간의 일부를 데이터 집적도가 낮은 저장 방식을 이용하여 임시로 데이터를 저장하고, 추후에 데이터 집적도가 높은 저장 방식을 이용하여 다시 저장하는, 데이터를 고속으로 저장하기 위한 저장 방식을 사용할 수 있다. 전자 장치의 메모리가 상기 저장 방식을 사용하는 경우, 메모리가 자체적으로 메모리의 저장 공간 중 일정 크기를 임시 데이터를 저장하기 위한 크기로 할당하므로, 전자 장치의 프로세서는 메모리가 임시로 데이터를 저장하기 위해 할당한 크기를 확인하지 못할 수 있다.
전자 장치의 메모리가 상기 저장 방식을 사용하는 중 프로세서는, 임시로 데이터가 저장되는 메모리의 일정 크기에 대해, 데이터를 저장하기 위한 쓰기 입출력 요청(write I/O)을 중복으로 발생시킬 수 있다. 상기 입출력 요청에 의하여 메모리는 임시 데이터가 저장된 일부 영역을 비워서 빈 영역으로 반환해야 하므로 데이터 처리 시간이 지연될 수 있다.
전자 장치가 메모리의 데이터 고속 저장 방식을 계속적으로 활성화시켜서 사용하는 경우, 불필요한 저장 공간 낭비 및 메모리의 수명 저하가 발생할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치는 디스플레이, 데이터가 저장되지 않은 제1 공간과 데이터가 저장된 제2 공간을 포함하는 메모리 및 프로세서를 포함할 수 있다. 다양한 실시예에 따르면, 상기 프로세서는, 상기 메모리의 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신하고, 상기 데이터 고속 저장 방식에 관한 설정 값에 기초하여, 상기 전자 장치의 파일 시스템의 가용 공간 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 임시 저장 공간으로 할당하고, 상기 임시 저장 공간의 크기에 대응하여, 상기 제1 공간 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 차용 공간으로 할당하도록 상기 메모리를 제어하고, 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트 발생 여부를 확인하고, 상기 이벤트의 발생에 응답하여, 상기 할당된 일정 크기의 차용 공간을 이용하여 상기 데이터 고속 저장 방식을 통한 데이터 저장을 수행하도록 상기 메모리를 제어할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치의 메모리 저장 공간 이용 방법은, 메모리의 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신하는 동작, 상기 데이터 고속 저장 방식에 관한 설정 값에 기초하여, 상기 전자 장치의 파일 시스템의 가용 공간 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 임시 저장 공간으로 할당하는 동작, 상기 임시 저장 공간의 크기에 대응하여, 데이터가 저장되지 않은 메모리의 제1 공간의 일정 크기를 상기 데이터 고속 저장 방식을 위한 차용 공간으로 할당하는 동작, 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트 발생 여부를 확인하는 동작 및 상기 이벤트의 발생에 응답하여, 상기 메모리가 상기 할당된 일정 크기의 차용 공간을 이용하여 데이터 고속 저장 방식을 통한 데이터 저장을 수행하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예에 따른 전자 장치는, 메모리의 저장 공간 중 데이터 고속 저장 방식을 위하여 임시적으로 할당하는 공간의 크기를 사용자가 파일 시스템을 통해 설정 및 관리함으로써, 메모리의 내부적인 데이터 입출력 요청과 파일 시스템을 통한 사용자의 데이터 입출력 요청이 중복되지 않아서, 데이터 처리 지연 및 성능 저하를 줄일 수 있다.
본 개시의 다양한 실시예에 따른 전자 장치는, 메모리의 데이터 고속 저장 방식을 활성화/비활성화시킬 시점을 판단함으로써, 효율적으로 메모리의 데이터 고속 저장 방식을 사용할 수 있다.
도 1은 본 개시의 다양한 실시예에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 2a 내지 도 2c는 본 개시의 다양한 실시예에 따른, 전자 장치의 하드웨어 및 소프트웨어 계층 구조를 도시한 블록도이다.
도 3a 내지 도 3d는 본 개시의 다양한 실시예에 따른 파일 시스템을 통해 확인되는 스토리지의 저장 공간들의 크기와 실제 스토리지 내부의 저장 공간들의 크기를 개념화하여 도시한 블록도이다.
도 4는 본 개시의 다양한 실시예에 따른 하드웨어 및 소프트웨어 계층 구조를 도시한 블록도이다.
도 5는 본 개시의 다양한 실시예에 따른 전자 장치의 동작흐름도이다.
도 6은 본 개시의 다양한 실시예에 따른 사용자의 설정 값에 기초하여 데이터 고속 저장 방식을 위한 차용 공간을 설정하는 설정 동작 수행 시 전자 장치의 동작을 도시한 블록도이다.
도 7은 본 개시의 다양한 실시예에 따른 전자 장치의 동작흐름도이다.
도 8a 및 도 8b는 본 개시의 다양한 실시예에 따른 데이터 고속 저장이 시작되는 경우의 전자 장치의 동작을 도시한 블록도이다.
도 9는 본 개시의 다양한 실시예에 따른 전자 장치의 동작흐름도이다.
도 10은 본 개시의 다양한 실시예에 따른 전자 장치의 동작흐름도이다.
도 11은 본 개시의 다양한 실시예에 따른 발생한 스토리지 쓰기 입출력 요청의 양 또는 수에 기초하여 데이터 고속 저장 방식을 위한 차용 공간을 설정하는 설정 동작 수행 시 전자 장치의 동작을 도시한 블록도이다.
도 12는 본 개시의 다양한 실시예에 따른 전자 장치의 동작흐름도이다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드된 채 구현될 수 있다
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)는, 예를 들면, 마이크, 마우스, 키보드, 또는 디지털 펜(예:스타일러스 펜)을 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)는, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)) (예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(388)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 하나의 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복`수의 안테나들을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC)이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104, or 108) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다.. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2a 내지 도 2c는 본 개시의 다양한 실시예에 따른, 전자 장치의 하드웨어 및 소프트웨어 계층 구조를 도시한 블록도이다.
도 2a를 참조하면, 다양한 실시예에 따른 전자 장치(101)는 호스트(220) 및 스토리지(230)(예: 도 1의 메모리(130))를 포함할 수 있다. 도 2에 도시된 구성 중 일부가 생략 또는 치환 되더라도 본 문서에 개시된 다양한 실시예를 구현함에는 지장이 없을 것이다. 다양한 실시예에 따른 전자 장치(101)는 디스플레이(미도시)(예: 도 1의 표시 장치(160)), 배터리(미도시)(예: 도1 의 배터리(189)) 또는 전력 관리 모듈(미도시)(예: 도 1의 전력 관리 모듈(188))을 더 포함할 수 있다. 다양한 실시예에 따른 전자 장치(101)는, 카메라(예: 도 1의 카메라 모듈(180)), LCD(예: 도 1의 표시 장치(160)), 스피커(예: 도 1의 음향 출력 장치(155)), 터치 스크린(예: 도 1의 표시 장치(160)), 통신 회로(예: 도 1의 통신 모듈(190)) 또는 USB(예: 도 1의 연결 단자(178)) 중 적어도 하나를 더 포함할 수 있다.
다양한 실시예에 따르면, 호스트(220)는 사용자 어플리케이션과 운영 체제(operating system, OS)를 포함하는 소프트웨어가 동작하는 환경일 수 있다. 다양한 실시예에 따른 호스트(220)는 소프트웨어 동작 중 발생하는 데이터에 대한 다양한 요청(data I/O request)을 스토리지(230)으로 전달할 수 있다. 호스트(220)는, 예를 들어, 전자 장치(101)의 각종 어플리케이션의 작동과 그래픽 처리를 담당하는 칩셋의 기능을 포함하는 SoC(system on chip)일 수 있다. 다양한 실시예에 따르면 어플리케이션 프로세서(예: 도 1의 프로세서(120))를 통하여 스토리지(230)를 제어하는 구성을 호스트라고 부를 수 있다.
다양한 실시예에 따른 호스트(220)는 어플리케이션 프로세서(미도시)(application processor, AP)(예: 도 1의 프로세서(120))를 포함할 수 있고, 어플리케이션 프로세서의 제어 하에 전자 장치(101)의 각 구성 요소들의 동작을 제어할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서는, 전자 장치(101)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행할 수 있는 구성으로써, 도 1의 프로세서(120)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다. 어플리케이션 프로세서는, 예를 들어, 전자 장치(101)의 구성 요소들과 작동적으로 연결될 수 있다.
다양한 실시예에 따르면 호스트(220)는, 어플리케이션(221), 스토리지 드라이버(223), 컨트롤러(225) 또는 스토리지 인터페이스(227)를 포함할 수 있다. 점선으로 표시된 어플리케이션(221) 및 스토리지 드라이버(223)는 소프트웨어 프로그램일 수 있으며, 어플리케이션 프로세서에 포함되는 소프트웨어 프로그램일 수 있다.
다양한 실시예에 따른 컨트롤러(225)는 호스트(220)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행하는 구성일 수 있다. 다양한 실시예에 따른 컨트롤러(225)는 전자 장치(101)의 각각의 구성요소를 제어하는 컨트롤러를 포함할 수 있다. 예를 들어, 컨트롤러(225)는 스토리지(230)의 동작을 제어하는 스토리지 호스트 컨트롤러(225a)를 포함할 수 있다.
다양한 실시예에 따른 컨트롤러(225)는 호스트(220)의 스토리지 인터페이스(227)를 통하여 스토리지(230)에 다양한 제어 명령을 전달할 수 있다. 예를 들어, 컨트롤러(225)의 스토리지 호스트 컨트롤러(225a)는 어플리케이션(221)으로부터 발생한 데이터 저장 요청을 스토리지 드라이버(223)를 통해 수신하고, 상기 데이터 저장 요청에 응답하여 상기 스토리지 인터페이스(227)를 통해 스토리지(230)로 데이터 쓰기 입출력 요청을 전송할 수 있다. 다양한 실시예에 따른 호스트(220)의 스토리지 인터페이스(227)는, 데이터 링크 기능을 제공하는 다양한 링크 인터페이스(link-interface)를 포함할 수 있다. 다양한 실시예에 따른 호스트(220)의 스토리지 인터페이스(227)는 MIPI alliance 에서 정의한 MIPI M-PHY 인터페이스 또는 MIPI unipro 인터페이스를 포함할 수 있다. 호스트(220)는, 예를 들어, MIPI M-PHY 인터페이스 또는 MIPI unipro 인터페이스를 통해 스토리지(230)와 고속 데이터 통신을 수행할 수 있다.
다양한 실시예에 따르면, 디스플레이(미도시)는 프로세서의 제어 하에 다양한 화면을 출력할 수 있다. 디스플레이(미도시)는, 예를 들어, 다양한 외부 객체의 접촉 또는 근접 (예를 들면, 호버링)을 인식할 수 있는 터치 센서 패널(touch sensor panel, TSP)을 포함할 수 있다. 터치 센서 패널은 다양한 구조 및 타입을 가질 수 있으며, 본 발명의 내용은 터치 센서 패널의 구조 및 타입과 관계없이 모두 적용될 수 있다.
다양한 실시예에 따르면, 스토리지(230)는 전자 장치(101)의 적어도 하나의 구성요소(예: 어플리케이션 프로세서)에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다.
다양한 실시예에 따르면 스토리지(230)는, 플래시 메모리(231), 스토리지 디바이스 컨트롤러(233) 또는 스토리지 인터페이스(235)를 포함할 수 있다.
다양한 실시예에 따른 플래시 메모리(231)는, 예를 들어, 비휘발성 메모리(예: 도 1의 비휘발성 메모리(134))일 수 있다. 플래시 메모리(231)는, 예를 들어, UFS(universal flash storage, 범용 플래시 스토리지(230)) 표준 규격을 만족하는 낸드 플래시 메모리(231)(NAND flash memory)를 포함할 수 있다. 다양한 실시예에 따른 스토리지 디바이스 컨트롤러(233)는, 스토리지(230)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행하는 구성일 수 있다. 다양한 실시예에 따른 스토리지 디바이스 컨트롤러(233)는 스토리지(230)의 스토리지 인터페이스(235)를 통하여 호스트(220)로부터 다양한 제어 명령을 수신할 수 있다. 예를 들어, 스토리지 디바이스 컨트롤러(233)는 스토리지(230)의 스토리지 인터페이스(235)를 통해 호스트(220)로부터 전송된 데이터 쓰기 요청(data write I/O), 데이터 읽기 요청(data read I/O) 또는 데이터 삭제 요청(data delete I/O)을 포함하는 데이터 요청을 수신할 수 있다. 다양한 실시예에 따른 스토리지(230)의 스토리지 인터페이스(33)는, 데이터 링크 기능을 제공하는 다양한 링크 인터페이스(link-interface)를 포함할 수 있다. 다양한 실시예에 따른 스토리지(230)의 스토리지 인터페이스(235)는 MIPI alliance 에서 정의한 MIPI M-PHY 인터페이스 또는 MIPI unipro 인터페이스를 포함할 수 있다.
다양한 실시예에 따른 스토리지 디바이스 컨트롤러(233)의 스토리지 관리 유닛(233a)은 적어도 하나의 논리 유닛(233b)을 구성 및 제어할 수 있다. 적어도 하나의 논리 유닛(233b)은, 예를 들어, 플래시 메모리(231)의 적어도 하나의 저장 유닛(231a)과 대응하여 데이터를 저장할 수 있다.
다양한 실시예에 따르면, 스토리지(230)의 플래시 메모리(231)는 하나의 셀에 저장할 수 있는 데이터 비트 수에 따라 다양한 데이터 저장 방식을 사용할 수 있다. 예를 들어, SLC(single level cell) 방식의 경우 하나의 셀에 1 bit의 데이터를 저장하는 방식이고, MLC(multi level cell) 방식의 경우 하나의 셀에 2 bit의 데이터를 저장하는 방식이고, TLC(triple level cell) 방식의 경우 하나의 셀에 3 bit의 데이터를 저장하는 방식일 수 있다. TLC 방식을 사용하는 스토리지의 경우 SLC, MLC 방식을 사용하는 스토리지보다 데이터 집적도가 상대적으로 높고, 데이터 저장 속도(또는 쓰기 속도)는 느릴 수 있다.
다양한 실시예에 따르면, 스토리지(230)는 2개의 저장 방식을 전환할 수 있다. 스토리지(230)는, 예를 들어, TLC 방식으로 플래시 메모리(231)에 데이터를 저장하다가, 고속으로 데이터를 저장해야 하는 경우, 임시로 저장 방식을 SLC 방식으로 전환하여 데이터를 저장하는 방식(이하, 데이터 고속 저장 방식)을 사용할 수 있다.
다양한 실시예에 따르면, TLC 방식을 사용하는 스토리지(230)의 경우, 상기 데이터 고속 저장 방식을 사용하여 저장 속도(또는 쓰기 속도)를 개선할 수 있다. 데이터 고속 저장 방식은, 예를 들어, 스토리지(230)에 저장되는 데이터를 임시로 SLC 방식을 이용하여 임시 저장하고, 추후에 스토리지(230) 내부적으로 TLC 방식으로 다시 저장하는 방식일 수 있다. 스토리지(230)는 데이터를 SLC 방식으로 임시로 저장하는 과정에서, 스토리지(230)의 빈 공간(데이터가 저장되지 않은 공간) 중 일정 크기를 차용 공간으로 할당하여 사용하고, 추후 스토리지(230) 내부적으로 TLC 방식으로 다시 저장할 수 있다. 상기 다시 저장하는 과정은, 예를 들어, UFS 표준 터보 라이트 방식의 플러시(FLUSH) 과정(또는 migration 과정)일 수 있다. 상기 다시 저장하는 과정에서 일정 크기를 할당한 차용 공간에 임시로 저장된 데이터를 삭제하여 상기 일정 크기의 차용 공간을 빈 공간으로 반환할 수 있다. 예를 들어, 스토리지(230)의 빈 공간 중 일정 크기를, SLC 방식으로 데이터가 임시 저장되는 고속 쓰기 버퍼 공간으로 차용하고, 전자 장치(101)의 파일 시스템을 통해 전달된 데이터는 상기 고속 쓰기 버퍼 공간에 1차적으로 임시 저장되고, 추후 상기 고속 쓰기 버퍼 공간에 1차적으로 저장된 데이터를 스토리지(230)의 TLC 방식으로 2차적으로 다시 쓰기 하는 과정을 통해 이동 저장할 수 있다. 상기 TLC 방식으로 다시 쓰기 하는 과정은 스토리지(230)의 내부적인 동작으로써 파일 시스템을 통해 확인되지 않을 수 있어서, 사용자 입장에서는 단순히 저장 속도가 빨라졌다고 인식할 수 있다. 다양한 실시예에 따르면 데이터 고속 저장 방식은, 예를 들어, JEDEC 표준 UFS 3.1의 터보 라이트(turbo write) 방식일 수 있다.
다양한 실시예에 따르면, 호스트(220)의 어플리케이션 프로세서(예: 도 1의 프로세서(120))는 전자 장치(101)의 파일 시스템(file system)을 통해 스토리지(230)에 파일 형태의 데이터를 저장할 수 있다. 파일 시스템은, 예를 들어, 어플리케이션 프로세서가 스토리지(230)에 데이터를 저장하기 위해 관리하는 자료 구조를 의미할 수 있다. 전자 장치(101)는 스토리지(230)에 데이터를 쓰거나, 스토리지(230)에 저장된 데이터를 읽는 것을 효율적으로 하기 위하여 파일 시스템을 활용할 수 있다. 예를 들어, 어플리케이션 프로세서가 파일 시스템을 통해 스토리지(230)에 데이터를 저장하는 경우, 어플리케이션 프로세서는 스토리지(230)로 데이터 저장을 위한 스토리지(230) 쓰기 입출력 요청(memory write I/O or storage write I/O)을 전달할 수 있다. 파일 시스템은, 예를 들어, FAT16(file allocation table 16), FAT32(file allocation table 32), NTFS(new technology file system), ext2(second extended file system), ext3, ext4, F2FS(flash friendly file system), reiserFS를 포함할 수 있다.
다양한 실시예에 따르면, 통신 회로(미도시)는 외부 장치와 통신 채널을 설립하고, 외부 장치와 다양한 데이터를 송수신할 수 있다. 다양한 실시예에 따르면, 통신 회로는 셀룰러 통신 모듈을 포함하여 셀룰러 네트워크(예: 3G, LTE, 5G, Wibro 또는 Wimax)에 연결되도록 구성할 수 있다. 다양한 실시예에 따르면, 통신 회로는 근거리 통신 모듈을 포함하여 근거리 통신(예를 들면, Wi-Fi, Bluetooth, Bluetooth Low Energy(BLE), UWB)을 이용해 외부 장치와 데이터 송수신을 할 수 있으나, 이에 제한되지 않는다.
다양한 실시예에 따르면, 연결 단자(미도시)는 외부 장치(예: USB 메모리)와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 다양한 실시예에 따르면, 연결 단자는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다. 예를 들어, 전자 장치(101)는 USB 3.1 또는 USB 3.0 표준을 만족하는 USB와 연결 단자를 통해 외부 장치와 연결될 수 있다.
도 2b는 본 개시의 다양한 실시예에 따른 전자 장치의 블록도이다. 도 2b는 다양한 실시예에 따른 외부로부터 전자 장치로 대용량의 데이터가 전송되는 경우에 전자 장치의 동작을 도시한 블록도이다.
도 2b를 참조하면, 다양한 실시예에 따르면 전자 장치(101)의 호스트(220)는, 네트워크(241), 연결 단자(243) 또는 센서(미도시)를 통하여 대용량의 데이터를 수신할 수 있다. 호스트(220)의 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는, 예를 들어, 외부로부터 고속으로 대용량의 데이터가 수신되는 경우, 스토리지(230)에 고속으로 대용량의 데이터를 저장해야 할 수 있다. 스토리지(230)는 대용량의 데이터를 저장하기 위하여 집적도가 높은 저장 방식(예: TLC, QLC)를 사용해야 하므로, 집적도가 높은 저장 방식을 사용하면서도 고속으로 데이터를 저장하는 기술이 필요할 수 있다. 스토리지(230)의 데이터 저장 속도를 높이기 위해서, 스토리지(230)는 저장 공간의 일부를 데이터 집적도가 낮은 저장 방식(예: SLC)을 이용하여 임시로 데이터를 저장하고, 추후에 데이터 집적도가 높은 저장 방식(예: MLC, TLC 또는 QLC)을 이용하여 다시 저장하는, 데이터를 고속으로 저장하기 위한 저장 방식을 사용할 수 있다. 데이터 고속 저장 방식은, 예를 들어, JEDEC 표준 UFS 3.1의 터보 라이트(turbo write) 방식일 수 있다.
도 2c는 본 개시의 다양한 실시예에 따른 전자 장치의 블록도이다. 도 2c는 다양한 실시예에 따른 전자 장치의 스토리지의 데이터 고속 저장 기능을 활성화하여 데이터를 저장하는 방식을 도시한 블록도이다.
도 2c를 참조하면, 다양한 실시예에 따른 호스트(220)는 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))의 제어 하에, 스토리지(230)의 데이터 고속 저장 방식을 활성화(ON)/비활성화(OFF)할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 스토리지(230)가 데이터 고속 저장 방식(예: 터보 라이트 방식)을 통한 데이터 저장을 수행하도록 하는 제어 명령을 스토리지(230)로 전송할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(229)는 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 설정된 특정 이벤트의 발생 여부를 확인할 수 있고, 상기 이벤트의 발생에 응답하여, 스토리지(230)가 데이터 고속 저장 방식을 통한 데이터 저장을 수행하도록 하는 제어 명령을 스토리지(230)로 전송할 수 있다.
다양한 실시예에 따른 스토리지(230)의 플래시 메모리(231)의 저장 공간(예: 도 2a의 저장 유닛(231a))은 버퍼 공간(231b) 및 일반 저장 공간(231c)을 포함할 수 있다. 버퍼 공간(231b)은 SLC 방식을 사용하여 데이터를 고속으로 저장하기 위하여 할당된 차용 공간일 수 있다. 일반 저장 공간(231c)은, TLC(또는 MLC, QLC)방식을 사용하여 데이터를 저장하는 저장 공간일 수 있다. 버퍼 공간(231b)은, 예를 들어, 데이터 고속 저장 방식을 위하여 스토리지(230)의 일반 저장 공간(231c)의 빈 공간 중 일부를 차용한 공간일 수 있으므로 특정된 저장 공간이 아닐 수 있다. 다양한 실시예에 따르면, 스토리지(230)는 필요에 따라 일반 저장 공간(231c)의 빈 공간 중 일정 크기의 공간을 데이터 고속 저장 방식을 위한 차용 공간으로 할당할 수 있다. 다양한 실시예에 따르면, 스토리지(230)는 데이터 고속 저장 방식이 사용되지 않는 경우, 할당한 버퍼 공간(231b)을 일반 저장 공간(231c)로 반환할 수 있다.
다양한 실시예에 따른 스토리지(230)는, 호스트(220)의 어플리케이션 프로세서(229)로부터 데이터 고속 저장 방식을 통한 데이터 저장을 수행하도록 하는 제어 명령을 수신하는 경우, 플래시 메모리의 저장 공간 중 일부를 데이터 고속 저장 방식을 위한 버퍼 공간(231a)로 할당할 수 있다.
다양한 실시예에 따르면, 사용자가 데이터 고속 저장 방식에 관하여 설정한 설정 값에 기초하여, 스토리지(230)의 버퍼 공간(231b)의 크기를 결정할 수 있다. 스토리지(230)의 플래시 메모리(231)는 일반 저장 공간에는 TLC 방식으로 데이터 고속 저장 방식을 위한 버퍼 공간에는 SLC 방식을 사용하여 데이터를 저장한다고 가정하자. 예를 들어, 사용자가 10GB 크기의 데이터 쓰기 요청을 발생시키는 경우, 스토리지(230)는 버퍼 공간(231b)의 크기를 30GB로 설정하여 할당할 수 있다. 상기 데이터 크기 및 데이터 저장 방식은 이해를 돕기 위해 가정한 값이며 다양한 데이터 크기 및 데이터 저장 방식에 상기 기술적 특징이 적용될 수 있음은 당연하다.
도 3a 내지 도 3d는 본 개시의 다양한 실시예에 따른 파일 시스템을 통해 확인되는 스토리지(230)(예: 도 1의 비휘발성 메모리(134))의 저장 공간들의 크기와 실제 스토리지(230) 내부의 저장 공간들의 크기를 개념화하여 도시한 블록도이다.
도 3a 및 도 3b는 본 개시의 다양한 실시예에 따른, 스토리지(230)(예: 도 1의 비휘발성 메모리(134), 도 2a의 스토리지(230))의 데이터 고속 저장 방식을 수행할 때, 파일 시스템을 통해 확인되는 스토리지(230)의 저장 공간들의 크기를 개념화하여 도시한 블록도(310)와 실제 스토리지(230) 내부의 저장 공간들의 크기를 개념화하여 도시한 블록도(320)이다.
도 3a 및 도 3b를 참조하면, 다양한 실시예에 따르면, 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는 파일 시스템을 통해 스토리지(230)(예: 도 1의 비휘발성 메모리(134))의 저장 공간들을 확인 및 관리할 수 있다. 어플리케이션 프로세서(229)는, 파일 시스템을 통해 스토리지(230)에 데이터를 저장할 수 있다. 파일 시스템을 통해 확인한 스토리지(230)의 저장 공간(이하, 파일 시스템의 저장 공간)들은, 아직 데이터가 저장되지 않은 가용 공간(311)(free space)(이하, 파일 시스템의 가용 공간) 및 데이터가 저장된 공간(313)을 포함할 수 있다. 상기 데이터가 저장된 공간(313)은, 예를 들어, 사용자 데이터가 저장된 사용자 데이터 공간(user data space)(이하, 파일 시스템의 사용자 데이터 공간) 및 시스템 데이터가 저장된 시스템 데이터 공간(system data space)(이하, 파일 시스템의 시스템 데이터 공간)를 포함할 수 있다.
다양한 실시예에 따르면, 스토리지(230) 내부의 저장 공간은, 데이터가 저장되지 않은 빈 공간(321)(empty space), 어플리케이션 프로세서(229)에 의해 데이터가 저장되어 있는 사용된 공간(323)(used space) 및 스토리지(230) 자체적으로 사용되는 메타 데이터를 저장하는 메타 데이터 공간(325)(meta data space)을 포함할 수 있다. 상기 빈 공간(321), 사용된 공간(323) 및 메타 데이터 공간(325)은, 예를 들어, 기 설정된 저장 방식(예: TLC)을 통해 데이터를 저장하는 공간으로써, 도 2c의 일반 저장 공간(231c)일 수 있다. 메타 데이터 공간(325)은, 예를 들어, 파일 시스템에서는 확인되지 않는 숨겨진 공간(hidden space)일 수 있다. 다양한 실시예에 따르면, 파일 시스템의 가용 공간(311)은 스토리지(230)의 빈 공간(321)과 대응될 수 있고, 파일 시스템의 사용자 데이터 공간 및 시스템 데이터 공간은 스토리지(230)의 사용된 공간(323)과 대응될 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(229)가 파일 시스템의 가용 공간(311)에 데이터를 저장하기 위한 데이터 쓰기 입출력 요청(storage write I/O 또는 memory write I/O)을 수신하는 경우, 스토리지(230)의 빈 공간(321)에 데이터가 저장되도록 스토리지(230)를 제어할 수 있다.
다양한 실시예에 따르면 스토리지(230)가 데이터 고속 저장 방식을 통한 데이터 저장을 수행하는 경우, 스토리지(230)는 빈 공간(321) 중 일정 크기를 차용 공간(322)(예: 도 2c의 버퍼 공간(231b))으로 할당하여 데이터 고속 저장 방식을 위한 임시적인 공간으로 활용할 수 있다. 예를 들어, 스토리지(230)의 데이터 고속 저장 방식이 UFS의 터보 라이트 기능인 경우, 상기 일정 크기를 갖는 차용 공간(322)에 SLC 방식으로 데이터를 임시적으로 저장하고, 추후에 차용 공간(322)에 저장된 데이터를, TLC 방식(또는 MLC 방식)으로 스토리지(230)의 차용 공간(322)을 제외한 빈 공간에 다시 쓰기하여 이동 저장할 수 있고, 상기 차용 공간(322)을 다시 빈 공간(321)으로 반환할 수 있다. 다양한 실시예에 따르면, 스토리지(230)가 데이터 고속 저장 방식을 통한 데이터 저장을 수행하는 경우, 스토리지(230)는 메타 데이터 공간(325) 중 일정 크기를 차용 공간(322)으로 할당할 수도 있다. 예를 들어, 스토리지(230)의 빈 공간의 크기가 40GB인 경우, 빈 공간 중 3GB를 데이터 고속 저장 방식을 위한 차용 공간으로 할당할 수 있다. 다양한 실시예에 따르면, 상기 데이터 고속 저장 방식을 위해 할당되는 일정 크기는, 임의로 설정될 수 있다.
다양한 실시예에 따르면, 데이터 고속 저장 방식에 관련된 동작은 스토리지(230) 내부의 동작(자체적인 동작)이므로, 어플리케이션 프로세서(229)는 파일 시스템을 통하여, 데이터 고속 저장 방식을 위하여 할당한 스토리지(230)의 차용 공간(322)에 대한 정보(예: 차용 공간(322)의 크기)를 확인하지 못할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(229)가 차용 공간(322)에 대한 정보를 확인하지 못하는 경우, 스토리지(230)가 차용 공간(322)을 이용하여 데이터 고속 저장 방식을 수행하는 중 사용 중인 상기 차용 공간(322)의 크기에도 추가적인 데이터를 저장하기 위한 데이터 쓰기 입출력 요청이 스토리지(230)로 전달될 수 있다. 스토리지(230)는, 추가적인 데이터 쓰기 입출력 요청에 응답하여, 차용 공간(322)의 크기에 임시적으로 저장된 데이터를 지우고 상기 차용 공간을 빈 공간(321)으로 반환해야 할 수 있다.
도 3b에 도시된 내용을 참조하면, 파일 시스템을 통해서 데이터 고속 저장 방식을 위해 할당된 차용 공간(322)의 크기를 확인하지 못하는 경우로 가정하자. 또한 플래시 메모리(231)의 일반 저장 공간(231c)에는 TLC 방식으로, 버퍼 공간(231b)에는 SLC 방식으로 데이터를 저장하는 것으로 가정하자. 도 3b에 개시된 실시예를 참조하면, 어플리케이션 프로세서(229)는 파일 시스템(310)을 통해 스토리지(230)의 저장 공간이 총 100GB이며, 10GB가 사용된 것을 확인할 수 있다. 어플리케이션 프로세서(229)는 파일 시스템(310)을 통해 총 100GB의 저장 공간 중 가용 공간(311)(free space)의 크기는 90GB 데이터가 저장된 공간(used space)(313)의 크기는 10GB인 것을 확인할 수 있다.
다양한 실시예에 따른 스토리지(230)는, 데이터 고속 저장 기능이 활성화되어 있는 경우, 상기 10GB의 데이터를 데이터 고속 저장 방식을 통하여 저장하기 위하여, 메모리(231)의 100GB의 저장 공간 중 30GB를 SLC 방식으로 저장하기 위한 버퍼 공간(예: 도 3a의 차용 공간(322))으로 할당하여, 상기 데이터를 저장할 수 있다. 예를 들어, TLC 방식으로 저장할 때 10GB의 공간을 사용하는 데이터는, SLC 방식으로 저장할 때 30GB의 공간을 사용하게 된다. 상기의 경우, 호스트(220)의 어플리케이션 프로세서(229)가 인식하고 있는 가용 공간(311)과 실제 스토리지(230)의 플래시 메모리(231)의 빈 공간(321a)의 차이가 발생할 수 있다.
이후 어플리케이션 프로세서(229)가 파일 시스템을 통해 확인한 가용 공간(311)의 크기는 90GB 이므로, 추가적인 80GB 크기의 데이터 쓰기 요청이 발생할 수 있다. 추가적인 80GB 크기의 데이터 쓰기 요청이 발생하는 경우, 실제 플래시 메모리(231)의 일반 저장 공간(231c) 중 빈 공간은 70GB이므로, 상기 80GB의 데이터를 저장하기 위한 저장 공간이 부족할 수 있다. 상기의 경우, 호스트(220)의 어플리케이션 프로세서(229)는 스토리지(230)의 데이터 고속 저장 방식을 비활성화하여, 플래시 메모리(231)의 버퍼 공간(231b)을 일반 저장 공간(231c)으로 반환하도록 스토리지(230)를 제어해야 할 수 있다. 상기 데이터 크기 및 데이터 저장 방식은 이해를 돕기 위해 가정한 값이며 다양한 데이터 크기 및 데이터 저장 방식에 상기 기술적 특징이 적용될 수 있음은 당연하다.
도 3c 및 도 3d는 본 개시의 다양한 실시예에 따른, 스토리지(230)의 데이터 고속 저장 방식을 수행할 때, 파일 시스템을 통해 확인되는 스토리지(230)의 저장 공간들의 크기를 개념화하여 도시한 블록도(310)와 실제 스토리지(230) 내부의 저장 공간들의 크기를 개념화하여 도시한 블록도(320)이다. 도 3a와 중복되는 내용은 설명을 생략한다.
도 3c 및 도 3d를 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는 파일 시스템의 가용 공간(311) 중 일정 크기를 데이터 고속 저장 방식을 위한 임시 저장 공간(312)으로 할당할 수 있다.
다양한 실시예에 따르면 어플리케이션 프로세서(229)는, 데이터 고속 저장 방식을 이용하여 데이터를 저장하기에 앞서, 미리 데이터 고속 저장 방식을 이용하기 위한 일정 크기의 차용 공간을 할당하도록 설정할 수 있다. 다양한 실시예에 따르면 어플리케이션 프로세서(229)는 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신할 수 있다. 데이터 고속 저장 방식에 관한 설정 값은, 예를 들어, 데이터 고속 저장 방식을 수행하기 위한 차용 공간(322)의 크기에 관한 정보 및 상기 데이터 고속 저장 방식 사용 여부에 관한 정보를 포함할 수 있다. 어플리케이션 프로세서(229)는 상기 데이터 고속 저장 방식에 관한 설정 값에 기초하여, 파일 시스템의 가용 공간(311) 중 일부를 데이터 고속 저장 방식을 위한 임시 저장 공간(312)으로 할당할 수 있다. 예를 들어, 가용 공간(311)의 크기가 40GB인 스토리지(230)에 사용자가 데이터 고속 저장 방식을 위한 차용 공간의 크기를 3GB로 설정한 경우, 어플리케이션 프로세서(229)는 파일 시스템의 가용 공간(311) 중 3GB를 임시 저장 공간(312)으로 할당할 수 있다. 상기의 경우, 파일 시스템의 가용 공간의 크기는 40GB에서 37GB로 감소되어 디스플레이를 통해 표시될 수 있다.
다양한 실시예에 따르면, 파일 시스템의 가용 공간(311) 중 일정 크기를 임시 저장 공간(312)으로 할당하는 방법은, 예를 들어, 직접적으로 파일 시스템의 가용 공간의 크기를, 할당하기 전 가용 공간(311)의 크기에서 사용자가 설정한 차용 공간(322)의 크기만큼 줄이는 방법일 수 있다. 파일 시스템의 가용 공간(311) 일부를 임시 저장 공간(312)으로 할당하는 방법은, 예를 들어, 사용자가 설정한 차용 공간의 크기를 갖는 파일을 생성하여 파일 시스템의 가용 공간의 크기를 줄이는 간접적인 방법일 수도 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식에 관한 설정 값을 스토리지(230)에 전달할 수 있다. 예를 들어, 사용자가 데이터 고속 저장 방식을 위한 차용 공간의 크기를 3GB로 설정한 경우, 어플리케이션 프로세서(229)는 상기 설정한 차용 공간의 크기를 3GB로 설정하는 설정 값에 관한 정보를 스토리지(230)에 전달할 수 있다.
다양한 실시예에 따르면, 스토리지(230)는 상기 설정 값에 기초하여 데이터 고속 저장 방식을 위한 일정 크기의 차용 공간(322)을 미리 할당할 수 있다. 스토리지(230)의 차용 공간(322)의 크기는 파일 시스템의 임시 저장 공간(312)의 크기와 동일할 수 있다. 예를 들어, 어플리케이션 프로세서(229)로부터 차용 공간의 크기를 3GB로 설정하는 설정 값에 관한 정보를 수신한 경우, 스토리지(230)는 빈 공간(321) 중 3GB를 차용 공간(322)으로 할당할 수 있다. 다양한 실시예에 따르면 어플리케이션 프로세서(229)는, 파일 시스템의 임시 저장 공간(312)을 시스템 데이터 저장 공간과 동일하게 인식할 수 있다.
다양한 실시예에 따르면, 파일 시스템의 가용 공간(311) 중 일정 크기를 임시 저장 공간(312)으로 할당한 경우, 어플리케이션 프로세서(229)는, 디스플레이를 통해 데이터 고속 저장 방식에 관한 설정을 완료했다는 정보를 표시할 수 있다. 다양한 실시예에 따르면, 파일 시스템의 가용 공간(311) 중 일정 크기를 임시 저장 공간(312)으로 할당한 경우, 어플리케이션 프로세서(229)는, 디스플레이를 통해 파일 시스템의 가용 공간(311)의 크기가 임시 저장 공간(312)의 크기만큼 줄어들었음을 표시할 수 있다. 어플리케이션 프로세서(229)는 파일 시스템의 임시 저장 공간(312)에 대응하는 스토리지(230)의 차용 공간(322)에 대해서는 추가적인 데이터 저장을 위한 사용자 입출력 요청이 발생되지 않도록 할 수 있다. 스토리지(230)의 차용 공간에 대해서 추가적인 데이터 저장을 위한 사용자 입출력 요청이 발생되지 않는 경우, 스토리지(230) 내부의 자체적으로 발생하는 데이터 고속 저장 방식에 관한 쓰기 입출력 요청과 중복되지 않을 수 있다. 상기의 경우, 쓰기 입출력 요청의 중복에 따른 데이터 처리 지연 및 스토리지(230)의 쓰기 성능 저하가 발생하지 않을 수 있다.
도 3d에 도시된 내용을 참조하면, 파일 시스템(310)의 가용 공간(311) 중 일정 크기를 임시 저장 공간(312)으로 할당하여, 어플리케이션 프로세서(229)가 파일 시스템을 통해서 데이터 고속 저장 방식을 위해 할당된 차용 공간(322)의 크기를 확인할 수 있는 경우로 가정하자. 예를 들어, 호스트(220)의 어플리케이션 프로세서(229)는 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신할 수 있고, 상기 설정 값에 기초하여 파일 시스템의 가용 공간(311) 중 일부를 데이터 고속 저장 방식을 위한 임시 저장 공간(312)로 할당할 수 있다. 예를 들어, 호스트(220)의 어플리케이션 프로세서(229)는 파일 시스템(310)을 통해 저장 공간 중 30GB 크기를 데이터 고속 저장 방식을 위한 임시 저장 공간(312)로 할당할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(229)는 데이터 고속 저장 방식에 관한 설정 값을 스토리지(230)에 전달할 수 있다. 예를 들어, 스토리지(230)는 어플리케이션 프로세서(229)로부터 수신한 설정 값에 기초하여, 데이터 고속 저장 방식을 위한 차용 공간(322)을 30GB로 할당할 수 있다. 스토리지(230)의 차용 공간(322)의 크기는 파일 시스템에서 설정한 임시 저장 공간(312)의 크기와 동일할 수 있다. 상기의 경우, 호스트(220)의 어플리케이션 프로세서(229)가 인식하고 있는 가용 공간(311a)의 크기와 실제 스토리지(230)의 플래시 메모리(231)의 빈 공간(321a)의 크기를 동기화할 수 있다.
어플리케이션 프로세서(229)가 파일 시스템을 통해 확인한 가용 공간(311a)의 크기는 60GB 이므로, 추가적인 데이터 쓰기 요청은 60GB 까지만 발생할 수 있다. 상기의 경우, 추가적인 데이터 쓰기 요청을 수행하기 위하여 플래시 메모리(321)의 차용 공간(322)을 빈 공간(321)으로 반환하는 문제가 발생하지 않을 수 있으므로, 데이터 쓰기 성능 및 속도를 향상시킬 수 있다. 상기 데이터 크기 및 데이터 저장 방식은 이해를 돕기 위해 가정한 값이며 다양한 데이터 크기 및 데이터 저장 방식에 상기 기술적 특징이 적용될 수 있음은 당연하다.
도 4는 본 개시의 다양한 실시예에 따른 하드웨어 및 소프트웨어 계층 구조를 도시한 블록도이다.
계층 410을 참조하면, 다양한 실시예에 따르면 프로그램(140)은 사용자 인터페이스(411), 적어도 하나의 어플리케이션(413, 415, 417), 파일 시스템(421), 블록 계층(423), 스토리지 드라이버(425)를 포함할 수 있다. 각각의 프로그램(140)은 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))의 제어 하에 각각의 기능을 수행할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는, 예를 들어, 디스플레이를 통해 데이터 고속 저장 방식에 관한 설정 값을 입력할 수 있는 사용자 인터페이스(411)(예: UX 인터페이스)를 출력할 수 있다. 예를 들어, 전자 장치(101)(예: 도 1의 전자 장치(101))는 사용자 인터페이스(411)를 통해 데이터 고속 저장 방식을 위한 차용 공간(322)의 크기 및 데이터 고속 저장 방식 사용 여부를 설정하는 사용자 입력을 수신할 수 있다.
다양한 실시예에 따르면 어플리케이션 프로세서(229)는, 사용자 인터페이스(411)를 통해 수신한 사용자 입력의 설정 값에 기초하여, 파일 시스템(421)의 가용 공간(311) 중 일정 크기를 데이터 고속 저장 방식을 위한 임시 저장 공간(312)으로 할당할 수 있다. 어플리케이션 프로세서(229)는 일정 크기를 임시 저장 공간(312)으로 할당한 것에 대한 응답으로, 예를 들어, 파일 시스템의 가용 공간(311)의 크기를 임시 저장 공간(312)의 크기만큼 줄이도록 설정할 수 있다. 예를 들어, 사용자가 설정한 차용 공간(322)의 크기가 3GB이고 기존의 파일 시스템의 가용 공간(311)의 크기가 40GB인 경우, 어플리케이션 프로세서(229)는 파일 시스템(421)을 통해 가용 공간(311)의 크기를 37GB로 설정하고, 40GB 중 3GB를 임시 저장 공간(312)으로 할당할 수 있다. 어플리케이션 프로세서(229)는 파일 시스템의 임시 저장 공간(312)을 시스템 데이터 공간과 동일하게 인식할 수 있다.
다양한 실시예에 따르면 어플리케이션 프로세서(229)는, 예를 들어, 스토리지 드라이버(425)를 통해 데이터 고속 저장 방식에 관한 설정 값을 스토리지(230)로 전달할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 스토리지 드라이버(425)를 통해 사용자가 설정한 데이터 고속 저장 방식을 위한 차용 공간(322)의 크기에 관한 정보를 스토리지(230)로 전달할 수 있다. 스토리지 드라이버(425)는, 예를 들어, UFS 드라이버일 수 있다. 예를 들어, 사용자가 설정한 차용 공간(322)의 크기가 3GB인 경우, 어플리케이션 프로세서(229)는 상기 설정한 차용 공간(322)의 크기에 관한 정보를 스토리지(230)로 전송할 수 있다. 어플리케이션 프로세서(229)는 스토리지(230)가 빈 공간(321) 중 3GB를 데이터 고속 저장 방식을 위한 차용 공간(322)으로 할당하도록 제어할 수 있다.
계층 420을 참조하면, 다양한 실시예에 따르면 스토리지(230)(예: 도 1의 비휘발성 메모리(134))는, 어플리케이션 프로세서(229) 제어 하에, 스토리지(230)의 빈 공간(321) 중 3GB를 데이터 고속 저장 방식을 위한 차용 공간(322)으로 할당할 수 있다.
다양한 실시예에 따르면, 스토리지(230)의 차용 공간의 할당이 완료된 경우, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식에 관한 설정이 완료되었다는 정보를 디스플레이를 통해 출력할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트 발생 여부를 확인할 수 있다. 프로세서는, 예를 들어, 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트가 발생하였다고 판단하는 경우, 상기 할당한 일정 크기의 차용 공간(322)을 이용하여 데이터 고속 저장 방식을 통한 데이터 저장을 수행하도록 스토리지(230)를 제어할 수 있다. 예를 들어, 스토리지(230)가 터보 라이트 기능을 통해 데이터 저장을 시작하는 경우, 상기 일정 크기의 차용 공간(322)은 데이터를 SLC 방식으로 임시로 저장하는 용도로 사용될 수 있다. 예를 들어, 3GB 크기가 차용 공간으로 할당된 경우, 3GB 한도 내에서 SLC 방식으로 데이터를 저장할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 디스플레이를 통해, 데이터 고속 저장 방식에 관한 정보(예: 파일 시스템의 저장 공간별 크기 정보)를 포함하고 데이터 고속 저장 방식에 관한 설정 값을 입력할 수 있는 사용자 인터페이스(411)를 표시할 수 있다. 다양한 실시예에 따르면 스토리지(230)의 빈 공간(321) 일부를 차용 공간(322)으로 할당한 경우, 어플리케이션 프로세서(229)는 사용자 인터페이스(411)를 통해 데이터 고속 저장 방식을 위한 차용이 완료 되었다는 정보 및 데이터 고속 저장 방식을 사용할 수 있음을 표시할 수 있다.
다양한 실시예에 따르면, 사용자가 설정한 차용 공간(322)의 크기가 스토리지(230)의 빈 공간(321)의 크기를 초과하는 경우, 어플리케이션 프로세서(229)는 사용자 인터페이스(411)를 통해 데이터 고속 저장 방식을 사용할 수 없음을 표시할 수 있다. 예를 들어, 스토리지(230)의 빈 공간(321)의 크기가 2GB인데, 사용자가 설정한 차용 공간(322)의 크기가 3GB인 경우, 어플리케이션 프로세서(229)는 사용자 인터페이스(411)를 통해 데이터 고속 저장 방식을 사용할 수 없음을 표시할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트의 발생 여부를 확인할 수 있다. 다양한 실시예에 따르면 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트는, 예를 들어, 스토리지에 데이터를 저장하기 위해 발생한 저장 입출력 요청(storage write I/O)의 수가 기 설정된 임계값 이상인 경우(예: 20개 이상의 storage write I/O 발생), 스토리지에 데이터를 저장하기 위해 발생한 저장 입출력 요청의 양이 기 설정된 임계값 이상인 경우(예: 총 100MB 이상의 storage write I/O 발생), 전자 장치가 통신 회로를 통해 5G 네트워크에 연결되어 데이터 통신을 수행하는 경우, 5G 모뎀이 활성화(예: 부팅)되는 경우, 데이터 고속 다운로드 기능(예: download boost 기능)이 동작되거나 활성화 되는 경우, FTP(file transfer protocol)를 이용하여 파일을 다운로드 하는 경우, 전자 장치에 고속 데이터 전송이 가능한 외부 전자 장치(예: USB, PCIe device)가 연결되는 경우, 또는 연결된 외부 전자 장치로부터 고속 데이터 전송이 시작되는 경우 중 적어도 하나를 포함할 수 있다. 상기 전자 장치에 고속 데이터 전송이 가능한 외부 전자 장치가 연결되는 경우는, 예를 들어, USB 3.0 이상의 USB 장치가 연결되는 경우 및/또는 대규모 저장소 클래스(class) 또는 통신 장치 클래스(class)와 같은 특정 클래스의 USB 장치가 연결되는 경우를 포함할 수 있다.
데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트가 발생하는 경우, 어플리케이션 프로세서(229)는 할당된 일정 크기의 차용 공간(322)을 이용하여 데이터 고속 저장 방식을 통한 데이터 저장을 수행하도록 스토리지(230)를 제어할 수 있다. 어플리케이션 프로세서(229)는 스토리지 드라이버(425)를 통해 스토리지(230)의 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 하는 명령을 전달할 수 있다. 스토리지(230)의 데이터 고속 저장 방식을 통한 데이터 저장이 시작된 경우, 스토리지(230)는 할당된 일정 크기의 차용 공간(322)을 이용하여 데이터 고속 저장을 수행할 수 있다. 예를 들어, 스토리지(230)의 터보 라이트 기능이 활성화된 경우, 스토리지(230)는 저장할 데이터를 차용 공간(322)의 크기만큼 SLC 방식으로 임시로 저장하고, 추후에 임시로 저장한 데이터를 TLC 방식으로 다시 저장하는 과정을 통해 스토리지(230)의 차용 공간(322)을 제외한 빈 공간(321)으로 이동 저장시킬 수 있다.
다양한 실시예에 따르면, 데이터 고속 저장 방식을 통한 데이터 저장 수행 중, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식을 통한 데이터 저장을 종료하기 위한 이벤트의 발생 여부를 확인할 수 있다. 다양한 실시예에 따르면 데이터 고속 저장 방식을 통한 데이터 저장을 종료하기 위한 이벤트는, 예를 들어, 스토리지에 데이터를 저장하기 위해 발생한 저장 입출력 요청(storage write I/O)의 수가 기 설정된 임계값 이하로 줄어든 경우(예: 5개 이하의 storage write I/O 발생), 스토리지에 데이터를 저장하기 위해 발생한 저장 입출력 요청의 양이 기 설정된 임계값 이하로 줄어든 경우(예: 총 5MB 이하의 storage write I/O 발생), 전자 장치가 5G 네트워크와 연결이 해제 경우, 5G 모뎀이 비활성화되는 경우, 데이터 고속 다운로드 기능(download boost)이 중단되는 경우, FTP(file transfer protocol)를 이용한 파일 다운로드를 중단하는 경우, 전자 장치에 고속 데이터 전송이 가능한 외부 전자 장치(예: USB, PCIe device)의 연결이 해제되는 경우, 또는 연결된 외부 전자 장치로부터 고속 데이터 전송이 종료되는 경우를 포함할 수 있다. 상기 고속 데이터 전송이 가능한 외부 전자 장치의 연결이 해제되는 경우는, 예를 들어, USB 3.0 이상의 USB 장치가 연결 해제되는 경우 및 대규모 저장소 클래스(class) 또는 통신 장치 클래스(class)와 같은 특정 클래스의 USB 장치가 연결 해제되는 경우를 포함할 수 있다.
다양한 실시예에 따르면, 프로세서는 데이터 고속 저장 방식을 통한 데이터 저장을 종료하기 위한 이벤트가 발생한 경우, 데이터 고속 저장 방식이 아닌 기본적으로 설정된 저장 방식을 통해 데이터 저장을 수행할 수 있다. 예를 들어, 터보 라이트 기능을 종료하기 위한 이벤트가 발생한 경우, 어플리케이션 프로세서(229)는 터보 라이트 방식이 아닌 기본적으로 설정된 TLC 방식을 통해 데이터 저장을 수행하도록 스토리지(230)를 제어할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 스토리지(230)에 데이터를 저장하기 위한 스토리지 쓰기 입출력 요청의 수 및 양 중 적어도 하나에 기초하여, 데이터 고속 저장 방식을 통한 데이터 저장을 시작할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 적어도 하나의 어플리케이션(413, 415, 417)으로부터 데이터 저장 요청을 수신할 수 있다. 어플리케이션 프로세서(229)는 상기 데이터 저장 요청에 응답하여, 파일 시스템의 가용 공간(311) 중 임시 저장 공간(312)의 크기를 제외한 공간의 크기 한도 내에서 데이터 저장 요청을 허용할 수 있다. 스토리지(230)는, 어플리케이션 프로세서(229) 제어 하에, 스토리지(230)의 빈 공간(321) 중 차용 공간(322)의 크기를 제외한 공간의 크기 한도 내에서 추가적인 데이터 저장을 수행할 수 있다. 예를 들어, 3GB를 임시 저장 공간(312)으로 할당하여 가용 공간(311)의 크기가 40GB에서 37GB로 줄어든 경우, 어플리케이션 프로세서(229)는 37GB 크기에 한하여 어플리케이션(413, 415, 417)의 데이터 저장 요청을 허용할 수 있다. 어플리케이션(413, 415, 417)의 데이터 저장 요청은 블록 계층(423)(block layer)을 통해 스토리지 쓰기 입출력 요청(storagewrite I/O)로 전환될 수 있다. 상기 스토리지 쓰기 입출력 요청은 스토리지 드라이버(425)를 통해 스토리지(230)로 전달될 수 있다.
다양한 실시예에 따르면, 스토리지 쓰기 입출력 요청은 복수개가 동시 다발적으로 발생할 수 있다. 어플리케이션 프로세서(229)는 스토리지(230)로 전달 예정인 프로그램(140) 상의 스토리지 쓰기 입출력 요청의 수 및 스토리지 쓰기 입출력 요청의 양 중 적어도 하나를 확인할 수 있다. 어플리케이션 프로세서(229)는, 예를 들어, 휘발성 메모리(예: 도 1의 휘발성 메모리(132))의 쓰기 버퍼(write buffer)나, 파일 시스템(421), 또는 블록 계층(423)에서의 스토리지 쓰기 입출력 요청의 수 및 양 중 적어도 하나를 지속적으로 모니터링 할 수 있다.
다양한 실시예에 따르면, 확인한 스토리지 쓰기 입출력 요청의 수 또는 양이 기 설정된 제1 임계값 이상인 경우, 어플리케이션 프로세서(229)는 스토리지(230)의 데이터 고속 저장 방식을 통한 데이터 저장(데이터 고속 저장)을 시작할 수 있다. 예를 들어, 20개 이상의 스토리지 쓰기 입출력 요청이 동시에 발생하는 경우, 어플리케이션 프로세서(229)는 스토리지(230)의 데이터 고속 저장 방식을 통한 데이터 저장을 시작할 수 있다. 예를 들어, 100MB 이상의 스토리지 쓰기 입출력 요청이 동시에 발생하는 경우, 어플리케이션 프로세서(229)는 스토리지(230)의 데이터 고속 저장 방식을 통한 데이터 저장을 시작할 수 있다.
다양한 실시예에 따르면, 스토리지(230)로 전달 예정인 스토리지 쓰기 입출력 요청의 수 또는 양이 기 설정된 제2 임계값 이하로 줄어드는 경우, 어플리케이션 프로세서(229)는 스토리지(230)의 데이터 고속 저장 방식을 통한 데이터 저장을 종료할 수 있다. 예를 들어, 동시에 발생한 스토리지 쓰기 입출력 요청의 개수가 5개 이하로 줄어드는 경우, 어플리케이션 프로세서(229)는 데이터 고속 저장을 종료하도록 스토리지(230)를 제어할 수 있다. 예를 들어, 동시에 발생한 스토리지 쓰기 입출력 요청의 양이 10MB 이하로 줄어드는 경우, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식을 통한 데이터 저장을 종료하도록 스토리지(230)를 제어할 수 있다. 다양한 실시예에 따르면, 스토리지(230)의 데이터 고속 저장 방식을 통한 데이터 저장이 종료된 경우, 스토리지(230)는 데이터를 차용 공간(322) 외의 빈 공간(321)에, 데이터 고속 저장 방식이 아닌 기본적으로 설정된 저장 방식을 이용하여 데이터를 저장할 수 있다. 예를 들어, 스토리지(230)의 터보 라이트 기능 수행 중 터보 라이트 기능이 비활성화된 경우, 스토리지(230)는 데이터를 TLC 방식으로, 차용 공간(322)이 아닌 빈 공간(321)에 바로 저장할 수 있다.
다양한 실시예에 따르면, 스토리지(230)는 어플리케이션 프로세서(229)로부터 스토리지 쓰기 입출력 요청을 일정 시간 동안 수신하지 못하는 경우, 차용 공간(322)에 임시로 저장한 데이터를 빈 공간(321)으로 다시 쓰기하여 이동 저장할 수 있고, 차용 공간(322)에 저장된 데이터를 삭제하여 빈 공간(321)으로 반환할 수 있다. 예를 들어, 스토리지(230)가 어플리케이션 프로세서(229)로부터 10ms 동안 스토리지 쓰기 입출력 요청을 수신하지 않는 경우, 스토리지(230)는 차용 공간(322)에 임시로 저장한 데이터를 빈 공간(321)으로 다시 쓰기하여 이동 저장할 수 있다. 예를 들어, 스토리지(230)는 터보 라이트 기능을 통해 차용 공간(322)에 SLC 방식으로 임시로 저장한 데이터를, TLC 방식으로 빈 공간(321)에 다시 쓰기하여 이동 저장할 수 있고, 차용 공간(322)에 임시로 저장한 데이터를 삭제할 수 있다. 상기 이동 저장하는 과정은 TLC 이송(TLC migration) 과정일 수 있다. 다양한 실시예에 따르면, 이동 저장하는 과정 수행 중 추가적인 스토리지 쓰기 입출력 요청이 발생하는 경우, 어플리케이션 프로세서(229)는 스토리지 드라이버(425)를 통해 이동 저장하는 과정을 중단시키는 명령을 전달할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 외부 장치로부터 데이터가 수신되는 속도인 데이터 전송 속도에 기초하여, 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 스토리지(230)를 제어할 수 있다. 예를 들어, 전자 장치(101)가 통신 회로를 통해 5G 네트워크에 연결되고, 전자 장치(101)는 5G 네트워크를 통해 기 설정된 값 이상의 속도로 데이터를 수신할 수 있다. 예를 들어, 전자 장치(101)가 연결 단자를 통해 USB 3.0 또는 USB 3.1 표준을 만족하는 USB가 연결되고, 전자 장치(101)는 USB로부터 기 설정된 값 이상의 속도로 데이터를 수신할 수 있다.
다양한 실시예에 따르면 어플리케이션 프로세서(229)는 외부 장치로부터 데이터를 수신하는 경우, 단위 시간 동안 수신되는 데이터 처리량(throughput)을 확인하여 데이터 전송 속도를 확인할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 외부 장치로부터 기 설정된 값 이상의 속도로 데이터를 수신하는 것에 응답하여 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 스토리지(230)를 제어할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 FTP(file transfer protocol)를 통해 고속 파일 다운로드를 수행하는 것에 응답하여 데이터 고속 저장 방식을 활성화할 수 있다.
도 5는 본 개시의 다양한 실시예에 따른 전자 장치의 동작흐름도이다.
도 5는 다양한 실시예에 따른 전자 장치의, 사용자의 설정 값에 기초하여 데이터 고속 저장 방식을 위한 차용 공간을 설정하는 설정 동작(예: 정적(static) 할당 동작)에 관한 동작흐름도이다.
동작흐름도 500을 참조하면, 다양한 실시예에 따른 전자 장치(예: 도 1의 전자 장치(101))는, 메모리(예: 도 1의 비휘발성 메모리(134), 도 2a의 스토리지(230))가 데이터 고속 저장을 수행하기 전에 미리 데이터 고속 저장 방식을 위한 차용 공간을 설정할 수 있다.
동작 510에서, 다양한 실시예에 따른 전자 장치(101)의 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는 디스플레이에 표시된 사용자 인터페이스(예: 도 4의 사용자 인터페이스(411))를 통해 데이터 고속 저장 방식의 설정값을 입력하는 사용자 입력을 수신할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 디스플레이를 통해 스토리지(230)의 데이터 고속 저장 방식에 관한 정보를 포함하는 사용자 인터페이스를 표시할 수 있다. 예를 들어, 전자 장치(101)는 디스플레이를 통해 표시된 사용자 인터페이스를 통하여, 스토리지(230)의 데이터 고속 저장 방식에 관한 정보를 표시할 수 있고, 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신할 수 있다. 상기 데이터 고속 저장 방식에 관한 설정값은, 예를 들어, 상기 데이터 고속 저장 방식을 수행하기 위한 차용 공간(예: 도 3a의 차용 공간(322))의 크기에 관한 정보 및 상기 데이터 고속 저장 방식 사용 여부에 관한 정보를 포함할 수 있다.
동작 520에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는, 파일 시스템의 가용 공간(예: 도 3a의 가용 공간(311)) 중 일정 크기를 임시 저장 공간(예: 도 3a의 임시 저장 공간(312))으로 할당할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식에 관한 설정 값에 기초하여, 파일 시스템의 가용 공간 중 일정 크기를 데이터 고속 저장 방식을 위한 임시 저장 공간으로 할당할 수 있다. 예를 들어, 데이터 고속 저장 방식을 수행하기 위한 차용 공간의 크기에 관한 정보에 기초하여, 파일 시스템의 가용 공간 중 일정 크기를 데이터 고속 저장 방식을 위한 임시 저장 공간으로 할당할 수 있다.
동작 530에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는, 스토리지(230)의 빈 공간(예: 도 3a의 빈 공간(321)) 중 일정 크기를 데이터 고속 저장 방식을 위한 차용 공간으로 할당하도록 스토리지(230)를 제어할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 임시 저장 공간의 크기에 대응하여, 스토리지(230)의 빈 공간 중 일정 크기를 차용 공간으로 할당하도록 스토리지(230)를 제어할 수 있다. 상기 파일 시스템의 임시 저장 공간의 크기는 스토리지(230)의 차용 공간의 크기와 동일할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식에 관한 설정 값을 스토리지(230)로 전달할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 사용자가 설정한 데이터 고속 저장 방식을 위한 차용 공간의 크기에 관한 정보를 스토리지(230)로 전달할 수 있다. 스토리지(230)는, 예를 들어, 전달 받은 데이터 고속 저장 방식에 관한 설정 값에 기초하여 빈 공간 중 일정 크기를 차용 공간으로 할당할 수 있다.
동작 540에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는, 디스플레이를 통해 데이터 고속 저장 방식에 관한 설정이 완료되었다는 정보를 표시할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 일정 크기의 차용 공간이 할당된 것에 응답하여, 데이터 고속 저장 방식을 위한 차용 공간 할당이 완료되었다는 정보 및 데이터 고속 저장 방식을 통한 데이터 저장을 시작할 수 있다는 정보를 표시할 수 있다.
도 6은 본 개시의 다양한 실시예에 따른 사용자의 설정 값에 기초하여 데이터 고속 저장 방식을 위한 차용 공간을 설정하는 설정 동작(예: 정적(static) 할당 동작) 수행 시 전자 장치의 동작을 도시한 블록도이다.
도 6을 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는 디스플레이를 통해 사용자 인터페이스(411)(user interface, UI)를 표시할 수 있다. 사용자 인터페이스(411)는, 파일 시스템의 저장 공간들을 표시할 수 있고, 데이터 고속 저장 방식의 설정 값을 입력하는 설정 영역 및 데이터 고속 저장 방식에 관한 설정을 해제(예: 데이터 고속 저장 방식 활성화/비활성화 설정)하는 영역을 포함할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 사용자 인터페이스를 통해 10GB의 데이터를 데이터 고속 저장 방식을 통해 저장하도록 설정할 수 있다. 스토리지(230)의 플래시 메모리(321)의 기 설정된 저장 방식은 TLC 방식인 것으로 가정하면, 파일 시스템을 통해 표시되는 저장 공간의 크기는 TLC 방식의 저장 공간의 크기이고, 데이터 고속 저장 방식을 통해 임시적으로 SLC 방식으로 저장되므로, 어플리케이션 프로세서(229)는 10GB의 데이터 저장을 위하여 임시 저장 공간(312)의 크기를 30GB로 설정할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 스토리지(230)으로 데이터 고속 저장 방식을 위한 차용 공간(322)의 크기를 30GB 할당하도록 하는 제어 명령을 전송할 수 있다. 스토리지(230)는 플래시 메모리(231)의 빈 공간(321) 중 30GB를 데이터 고속 저장 방식을 위한 차용 공간(322)으로 할당 할 수 있다. 다양한 실시예에 따르면, 스토리지(230)는 차용 공간(322)에 SLC 방식을 이용하여 데이터를 고속으로 저장할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(229)는 데이터 고속 저장 방식에 관한 설정을 해제하기 위한 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 사용자 인터페이스를 통해 데이터 고속 저장 방식을 사용하지 않는 것으로 설정할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 할당된 메모리의 차용 공간을 반환하도록 하는 사용자 입력을 수신할 수 있다. 다양한 실시예에 따르면, 파일 시스템을 통해 설정된 임시 저장 공간(312)은, 데이터 고속 저장 방식에 관한 설정을 해제하기 위한 사용자 입력을 수신하기 전까지 유지될 수 있다.
도 7은 본 개시의 다양한 실시예에 따른 전자 장치의 동작흐름도이다.
도 7은 다양한 실시예에 따른 전자 장치(예: 도 1의 전자 장치(101))의, 데이터 고속 저장을 위한 설정이 완료된 이후 데이터 고속 저장을 통한 데이터 저장(이하, 데이터 고속 저장)을 수행하는 저장 동작에 관한 동작흐름도이다.
동작흐름도 700을 참조하면, 다양한 실시예에 따른 전자 장치(101)는 미리 할당한 일정 크기의 차용 공간을 이용하여 데이터 고속 저장을 수행할 수 있다.
동작 710에서, 다양한 실시예에 따른 전자 장치(101)의 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는, 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트의 발생 여부를 확인할 수 있다. 다양한 실시예에 따르면 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트는, 예를 들어, 메모리(예: 도 1의 비휘발성 메모리(134),도 2a의 스토리지(230))에 데이터를 저장하기 위해 발생한 저장 입출력 요청(storage write I/O)의 수가 기 설정된 임계값 이상인 경우(예: 20개 이상의 storage write I/O 발생), 메모리(예: 도 1의 비휘발성 메모리(134), 도 2a의 스토리지(230))에 데이터를 저장하기 위해 발생한 저장 입출력 요청의 양이 기 설정된 임계값 이상인 경우(예: 총 100MB 이상의 storage write I/O 발생), 전자 장치가 통신 회로를 통해 5G 네트워크에 연결되어 데이터 통신을 수행하는 경우, 5G 모뎀이 활성화(예: 부팅)되는 경우, 데이터 고속 다운로드 기능(download boost)이 동작되는 경우, FTP(file transfer protocol)를 이용하여 파일을 다운로드 하는 경우, 전자 장치에 고속 데이터 전송이 가능한 외부 전자 장치(예: USB, PCIe device)가 연결되는 경우, 또는 연결된 외부 전자 장치로부터 고속 데이터 전송이 시작되는 경우 중 적어도 하나를 포함할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 메모리에 데이터를 저장하기 위한 쓰기 입출력 요청의 수 및 양 중 적어도 하나에 기초하여, 데이터 고속 저장 방식을 통한 데이터 저장의 시작 여부를 결정할 수 있다. 다양한 실시예에 따르면 어플리케이션 프로세서(229)는 외부 장치로부터 데이터가 수신되는 속도인 데이터 전송 속도에 기초하여, 스토리지(230)의 데이터 고속 저장의 시작 여부를 결정할 수 있다.
동작 720에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는, 데이터 고속 저장을 시작하기 위한 이벤트의 발생에 응답하여, 메모리가 할당된 일정 크기의 차용 공간을 이용하여 데이터 고속 저장을 수행하도록 제어할 수 있다. 예를 들어, 메모리의 데이터 고속 저장이 시작된 경우, 메모리는 할당된 일정 크기의 차용 공간을 이용하여 데이터 고속 저장을 수행할 수 있다. 예를 들어, 메모리의 데이터 고속 저장 방식은 UFS 표준을 만족하는 터보 라이트 기능일 수 있다. 메모리의 터보 라이트 기능을 통한 데이터 고속 저장이 시작된 경우, 메모리는 저장할 데이터를 일정 크기의 차용 공간에 SLC 방식으로 임시로 저장하고, 추후에 임시로 저장한 데이터를 TLC 방식으로 다시 쓰기하여 스토리지(230)의 빈 공간으로 이동 저장시킬 수 있다.
동작 730에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는, 데이터 고속 저장을 종료하기 위한 이벤트의 발생 여부를 확인할 수 있다. 다양한 실시예에 따르면 데이터 고속 저장 방식을 통한 데이터 저장을 종료하기 위한 이벤트는, 예를 들어, 메모리에 데이터를 저장하기 위해 발생한 저장 입출력 요청(storage write I/O)의 수가 기 설정된 임계값 이하로 줄어든 경우(예: 5개 이하의 storage write I/O 발생), 메모리에 데이터를 저장하기 위해 발생한 저장 입출력 요청의 양이 기 설정된 임계값 이하로 줄어든 경우(예: 총 5MB 이하의 storage write I/O 발생), 전자 장치가 5G 네트워크와 연결이 해제 경우, 5G 모뎀이 비활성화되는 경우, 데이터 고속 다운로드 기능(download boost)이 중단되는 경우, FTP(file transfer protocol)를 이용한 파일 다운로드를 중단하는 경우, 전자 장치에 고속 데이터 전송이 가능한 외부 전자 장치(예: USB, PCIe device)의 연결이 해제되는 경우, 또는 연결된 외부 전자 장치로부터 고속 데이터 전송이 종료되는 경우 중 적어도 하나를 포함할 수 있다
동작 740에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는 데이터 고속 저장을 종료하기 위한 이벤트의 발생에 응답하여, 데이터 고속 저장 방식이 아닌 기본적으로 설정된 저장 방식을 통해 데이터 저장을 수행할 수 있다. 예를 들어, 터보 라이트 기능을 종료하기 위한 이벤트가 발생한 경우, 프로세서는 터보 라이트 방식이 아닌 기본적으로 설정된 TLC 방식을 통해 데이터 저장을 수행하도록 메모리를 제어할 수 있다.
도 8a 및 도 8b는 본 개시의 다양한 실시예에 따른 데이터 고속 저장이 시작되는 경우의 전자 장치의 동작을 도시한 블록도이다. 도 8a는 본 개시의 다양한 실시예에 따른 스토리지 쓰기 입출력 요청(storage write I/O request 또는 data write I/O request)의 양 또는 수에 기초하여, 데이터 고속 저장 방식을 통한 데이터 고속 저장을 수행하는 전자 장치(101)의 동작을 도시한 블록도이다. 도 8b는 본 개시의 다양한 실시예에 따른 데이터 처리량(data through-put)에 기초하여 데이터 고속 저장 방식을 통한 데이터 고속 저장을 수행하는 전자 장치(101)의 동작을 도시한 도면이다.
도 8a를 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는 데이터 고속 저장 방식(예: 터보 라이트 방식)을 통한 데이터 저장을 시작하기 위한 이벤트의 발생 여부를 확인할 수 있고, 상기 이벤트의 발생에 응답하여, 데이터 고속 저장 방식을 통한 데이터 저장을 수행하도록 스토리지(230)를 제어할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(229)는 메모리에 데이터를 저장하기 위해 발생한 스토리지 쓰기 입출력 요청의 수 및 양 중 적어도 하나에 기초하여, 데이터 고속 저장 방식을 통한 데이터 저장의 시작 여부를 결정할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(229)는, 스토리지(230)로 전달 예정인 프로그램(140) 상의 스토리지 쓰기 입출력 요청의 수 및 스토리지 쓰기 입출력 요청의 양 중 적어도 하나를 확인할 수 있다. 스토리지 쓰기 입출력 요청은 복수개가 동시 다발적으로 발생할 수 있으며, 어플리케이션 프로세서(229)는 스토리지(230)으로 전달 예정인 프로그램(140) 상의 스토리지 쓰기 입출력 요청의 수 및 스토리지 쓰기 입출력 요청의 양 중 적어도 하나를 확인할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 아직 스토리지(230)으로 전달되지 않고 프로그램(140) 상에 존재하는 스토리지 쓰기 입출력 요청의 수 및 양 중 적어도 하나를 확인할 수 있다.
예를 들어, 어플리케이션 프로세서(229)의 입출력 스케줄러(I/O scheduler)에 존재하는 스토리지 쓰기 입출력 요청의 양이 30MB 이상일 경우, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식(예: 터보 라이트 방식)을 통하여 데이터 저장을 수행하도록 결정할 수 있고, 스토리지 호스트 컨트롤러(225a)를 통해 스토리지(230)가 데이터 고속 저장 방식을 통하여 데이터 저장을 수행하도록 제어할 수 있다. 예를 들어, 상기의 경우 어플리케이션 프로세서(229)는 데이터 고속 저장 방식을 활성화하는 제어 명령을 스토리지(230)에 전달함으로써, 스토리지(230)의 데이터 고속 저장 기능을 활성화할 수 있다. 입출력 스케줄러는, 예를 들어, 호스트(220)에 대기가 발생했을 때, 우선 순위 등에 의해 다음에 해야 할 처리를 선택하는 기능을 분담하는 프로그램일 수 있다. 입출력 대기 행렬(I/O queue)는, 예를 들어, 입출력 요청의 대기 행렬을 기억하는 프로그램일 수 있다. 상기 30MB는 설명을 위해 임의로 설정한 값이며, 사용자의 설정에 의해 다양한 값으로 변경될 수 있다.
도 8b를 참조하면, 다양한 실시예에 따르면 어플리케이션 프로세서(229)는 외부 장치로부터 데이터가 수신되는 속도인 데이터 전송 속도에 기초하여, 스토리지(230)의 데이터 고속 저장 방식을 통한 데이터 저장을 시작할지 여부를 결정할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(229)는 전자 장치(101)의 호스트(220)의 구성 요소(예: 통신 회로, 카메라, 연결 단자)를 통해 수신되는 데이터 처리량(data through-put)을 확인할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는, 호스트(220)의 통신 회로(예: 5G 통신 모듈(222a), Wi-Fi 통신 모듈(222b)), 연결 단자(예: USB 3.1 연결 단자(222c)) 또는 카메라(222d)를 통해 단위 시간당 전달되는 데이터 처리량을 확인하여 데이터 전송 속도를 확인할 수 있다. 어플리케이션 프로세서(229)는 외부 장치로부터 기 설정된 값 이상의 속도로 데이터를 수신하는 것에 응답하여 데이터 고속 저장을 시작하도록 스토리지(230)를 제어할 수 있다.
예를 들어, 5G 네트워크 망으로부터 전자 장치(101)의 통신 회로를 통해 어플리케이션 프로세서(229)로 전달되는 단위 시간당 데이터 처리량(데이터 전속 속도)가 300MB/s 이상인 경우, 어플리케이션 프로세서(229)는 스토리지 호스트 컨트롤러(225a)를 통해 스토리지 호스트 컨트롤러(225a)를 통해 스토리지(230)가 데이터 고속 저장 방식을 통하여 데이터 저장을 수행하도록 제어할 수 있다. 예를 들어, 상기의 경우 어플리케이션 프로세서(229)는 스토리지(230)의 데이터 고속 저장 기능을 활성화할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 FTP(file transfer protocol)를 통해 고속 파일 다운로드를 수행하는 것에 응답하여 데이터 고속 저장 방식을 활성화할 수 있다. 상기 300MB/s는 설명을 위해 임의로 설정한 값이며, 사용자의 설정에 의해 다양한 값으로 변경될 수 있다. 도 9는 본 문서에 개시된 다양한 실시예에 따른 전자 장치의 동작 흐름도이다.
동작흐름도 900을 참조하면, 동작 901에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는, 디스플레이에 표시된 사용자 인터페이스(예: 도 4의 사용자 인터페이스(411))를 통해 데이터 고속 저장 방식의 설정 값을 입력하는 사용자 입력을 수신할 수 있다. 상기 데이터 고속 저장 방식에 관한 설정 값은, 예를 들어, 상기 데이터 고속 저장 방식을 수행하기 위한 차용 공간(예: 도 3c의 차용 공간(322))의 크기에 관한 정보 및 상기 데이터 고속 저장 방식 사용 여부에 관한 정보를 포함할 수 있다.
동작 903에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는 파일 시스템의 가용 공간(예: 도 3c의 가용 공간(311))에, 상기 데이터 고속 저장 방식의 설정값에 대응하는 크기를 임시 저장 공간(예: 도 3c의 임시 저장 공간(312))을 할당할 수 있는지 판단할 수 있다. 예를 들어, 사용자가 데이터 고속 저장 방식을 위한 차용 공간의 크기를 3GB로 설정한 경우, 어플리케이션 프로세서(229)는 파일 시스템의 가용 공간에 3GB 크기를 임시 저장 공간을 할당할 수 있는지 판단할 수 있다. 예를 들어, 파일 시스템의 가용 공간의 크기가 3GB 미만인 경우, 어플리케이션 프로세서(229)는 가용 공간 일부에 임시 저장 공간을 할당할 수 없다고 판단할 수 있다. 예를 들어, 파일 시스템의 가용 공간의 크기가 3GB 이상인 경우, 어플리케이션 프로세서(229)는 가용 공간 일부에 임시 저장 공간을 할당할 수 있다고 판단할 수 있다.
다양한 실시예에 따르면, 파일 시스템의 가용 공간에 임시 저장 공간을 할당할 수 없다고 판단하는 경우(NO), 동작 906으로 분기하여, 어플리케이션 프로세서(229)는 디스플레이를 통해 메모리(예: 도 1의 비휘발성 메모리(134), 도 2a의 스토리지(230))의 데이터 고속 저장 방식을 통한 데이터 저장을 수행할 수 없다는 사용 불가 정보를 표시할 수 있다.
다양한 실시예에 따르면, 파일 시스템의 가용 공간에 임시 저장 공간을 할당할 수 있다고 판단하는 경우(YES), 동작 905으로 분기하여, 어플리케이션 프로세서(229)는 파일 시스템의 가용 공간 중 일정 크기를 데이터 고속 저장 방식을 위한 임시 저장 공간으로 할당할 수 있다.
동작 907에서, 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 메모리의 빈 공간 중 일정 크기를 데이터 고속 저장 방식을 위한 차용 공간으로 할당하도록 메모리를 제어할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 사용자가 설정한 데이터 고속 저장 방식을 위한 차용 공간의 크기에 관한 정보를 메모리로 전달할 수 있다. 메모리는, 예를 들어, 전달 받은 데이터 고속 저장 방식을 위한 차용 공간의 크기에 관한 정보에 기초하여 빈 공간 중 일정 크기를 차용 공간으로 할당할 수 있다.
동작 909에서, 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 디스플레이를 통해 메모리의 데이터 고속 저장 방식을 사용할 수 있다는 사용 가능 정보를 표시할 수 있고, 파일 시스템의 저장 공간별로 각각의 크기를 표시할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 디스플레이를 통해 파일 시스템의 가용 공간, 사용자 데이터 공간 및 시스템 데이터 공간 각각의 크기를 표시할 수 있다. 다양한 실시예에 따르면, 데이터 고속 저장 방식을 위해 일정 크기를 할당한 임시 저장 공간은, 시스템 데이터 공간으로 인식될 수 있다. 예를 들어, 데이터 고속 저장 방식을 위해 할당한 임시 저장 공간의 크기만큼 가용 공간의 크기는 감소하고, 시스템 데이터 공간의 크기는 증가하여 표시될 수 있다.
동작 911에서, 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 메모리의 데이터 고속 저장 방식을 통한 데이터 저장(이하, 데이터 고속 저장)을 시작하기 위한 이벤트의 발생 여부를 확인할 수 있다.
동작 913에서, 다양한 실시예에 따르면, 어플리케이션 프로세서(229)는 데이터 고속 저장을 시작하기 위한 이벤트가 발생된 것에 응답하여, 메모리가 할당한 일정 크기의 차용 공간을 이용하여 데이터 고속 저장을 수행하도록 메모리를 제어할 수 있다. 예를 들어, 메모리는 할당한 일정 크기의 차용 공간을 이용하여 데이터 고속 저장 방식을 수행할 수 있다.
도 10은 본 개시의 다양한 실시예에 따른 전자 장치의 동작흐름도이다.
도 10은, 다양한 실시예에 따른 전자 장치(예: 도 1의 전자 장치(101))가 발생한 저장 입출력 요청의 양에 기초하여 데이터 고속 저장 방식을 위한 차용 공간을 설정하는 설정 동작(예: 동적(dynamic) 할당 동작)에 관한 동작흐름도이다.
동작흐름도 1000을 참조하면, 동작 1001에서 다양한 실시예에 따른 전자 장치(101)의 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는 데이터 고속 저장 방식에 관한 설정값을 입력하는 사용자 입력을 수신할 수 있다.
동작 1003에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는 발생한 데이터 저장을 위한 입출력 요청(스토리지 쓰기 입출력 요청)(write I/O)을 확인할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(229)는 발생한 입출력 요청의 양이 기 설정된 임계값 이상인 경우, 데이터 고속 저장 방식을 통한 데이터 저장(이하, 데이터 고속 저장)을 시작하도록 메모리(예: 도 1의 비휘발성 메모리(134), 도 2a의 스토리지(230))를 제어할 수 있다.
동작 1005에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는 확인한 입출력 요청의 양에 기초하여, 파일 시스템의 가용 공간 중 일정 크기를 임시 저장 공간으로 할당할 수 있다. 예를 들어, 임시 저장 공간의 크기는 확인한 입출력 요청의 양에 기초하여 결정되며, 사용자가 입력한 설정값 한도 내에서 정해질 수 있다. 예를 들어, 사용자가 차용 공간의 크기를 3GB로 설정하고, 실제로 발생한 스토리지 쓰기 입출력 요청의 양이 1GB인 경우, 프로세서는 파일 시스템의 가용 공간 중 1GB를 임시 저장 공간의 크기로 설정할 수 있다. 예를 들어, 사용자가 차용 공간의 크기를 3GB로 설정하고, 실제로 발생한 스토리지 쓰기 입출력 요청의 양이 4GB인 경우, 프로세서는 파일 시스템의 가용 공간 중 3GB를 임시 저장 공간의 크기로 설정할 수 있다.
동작 1007에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는 임시 저장 공간의 크기에 대응하여, 메모리의 빈 공간 중 일정 크기를 차용 공간으로 할당하도록 메모리를 제어할 수 있다.
동작 1009에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는 할당한 일정 크기의 차용 공간을 이용하여 데이터 고속 저장을 수행할 수 있다.
동작 1011에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는 데이터 고속 저장 방식을 통한 데이터 저장을 수행하는 중, 현재 차용 공간의 사용량을 확인할 수 있다. 예를 들어, 사용자 인터페이스(예: 도 4의 사용자 인터페이스(411))를 통해 데이터 고속 저장 방식을 위한 차용 공간의 크기를 3GB로 설정하였더라도, 현재 메모리로 전달된 스토리지 쓰기 입출력 요청의 양이 1GB인 경우, 차용 공간 중 1GB만이 사용될 수 있다. 상기의 경우 메모리는 어플리케이션 프로세서(229)로 현재 차용 공간의 사용량에 관한 정보를 전달할 수 있다. 어플리케이션 프로세서(229)는 현재 메모리의 차용 공간의 사용량이 1GB인 것을 확인할 수 있다.
동작 1013에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는, 확인한 차용 공간 사용량에 기초하여, 파일 시스템의 임시 저장 공간의 크기를 조절할 수 있다. 예를 들어, 사용자가 설정한 차용 공간의 크기가 3GB이고, 확인한 현재 차용 공간의 사용량이 1GB인 경우, 어플리케이션 프로세서(229)는 파일 시스템의 임시 저장 공간(312)의 크기를 1GB로 조절할 수 있다.
동작 1015에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는, 디스플레이를 통해 변경된 파일 시스템의 저장 공간별로 각각의 크기를 표시할 수 있다. 예를 들어, 파일 시스템의 임시 저장 공간의 크기가 3GB에서 1GB로 조절된 경우, 파일 시스템의 가용 공간(예: 도 3a의 가용 공간(311))의 크기가 2GB 만큼 늘어난 것으로 표시될 수 있다.
도 11은 본 개시의 다양한 실시예에 따른 발생한 스토리지 쓰기 입출력 요청의 양 또는 수에 기초하여 데이터 고속 저장 방식을 위한 차용 공간을 설정하는 설정 동작(예: 동적(dynamic) 할당 동작) 수행 시 전자 장치의 동작을 도시한 블록도이다.
도 11을 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는, 어플리케이션 프로세서(229)는 발생한 데이터 저장을 위한 입출력 요청(write I/O)을 확인할 수 있다. 어플리케이션 프로세서(229)는, 예를 들어, 발생한 스토리지 쓰기 입출력 요청의 양을 확인할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(229)는, 확인한 스토리지 쓰기 입출력 요청의 양에 기초하여, 파일 시스템의 가용 공간 중 일정 크기를 임시 저장 공간으로 할당할 수 있다. 예를 들어, 임시 저장 공간의 크기는 확인한 입출력 요청의 양에 기초하여 결정될 수 있고, 사용자가 입력한 설정 값 한도 내에서 정해질 수 있다. 예를 들어, 발생한 스토리지 쓰기 입출력 요청의 양이 700MB인 경우, 어플리케이션 프로세서(229)는 파일 시스템의 가용 공간 중 700MB 보다 큰 1GB를 임시 저장 공간의 크기로 설정할 수 있다. 어플리케이션 프로세서(229)는 1GB 임시 저장 공간의 크기에 대응하여, 메모리의 빈 공간 중 1GB를 차용 공간으로 할당하도록 메모리를 제어할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(229)는, 할당된 차용 공간을 유지할 필요가 없다고 판단하는 경우, 파일 시스템의 임시 저장 공간(312)의 크기를 조절하여, 메모리의 차용 공간의 크기를 조절할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식을 통한 데이터 저장을 수행하는 중, 현재 차용 공간의 사용량을 확인할 수 있다. 상기 확인 결과, 현재 차용 공간이 사용되고 있지 않은 경우, 어플리케이션 프로세서(229)는 파일 시스템의 할당된 임시 저장 공간을 다시 해제(파일 시스템의 임시 저장 공간의 크기를 0GB로 조절)할 수 있다. 상기의 경우, 어플리케이션 프로세서(229)는, 메모리에 할당된 차용 공간 역시 해제되도록(메모리의 차용 공간의 크기를 0GB로 조절) 메모리를 제어할 수 있다.
도 12는 본 개시의 다양한 실시예에 따른 전자 장치의 동작흐름도이다.
동작흐름도 1200은 메모리(예: 도 1의 비휘발성 메모리(134), 도 2a의 스토리지(230))의 데이터 고속 저장 방식에 관한 설정을 해제하는 동작에 관한 것이다.
동작흐름도 1200을 참조하면, 동작 1210에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)(예: 도 1의 프로세서(120))는 디스플레이에 표시된 사용자 인터페이스(예: 도 4의 사용자 인터페이스(411))를 통하여 데이터 고속 저장 방식에 관한 설정을 해제하기 위한 사용자 입력을 수신할 수 있다. 예를 들어, 사용자는 사용자 인터페이스를 통해 데이터 고속 저장 방식을 사용하지 않는 것으로 설정할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 할당된 메모리의 차용 공간을 반환하도록 하는 사용자 입력을 수신할 수 있다.
동작 1220에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는 메모리(예: 도 2a의 스토리지(230))가 일정 크기의 차용 공간을 반환하도록 제어할 수 있다. 예를 들어, 데이터 고속 저장 방식을 비활성화 하는 사용자 입력을 수신한 것에 대한 응답으로, 어플리케이션 프로세서(229)는 데이터 고속 저장 방식을 비활성화하도록 제어하는 명령을 메모리로 전달할 수 있다. 메모리는 상기 명령을 전달받은 것에 대한 응답으로, 차용 공간(예: 도 3b의 차용 공간(322))에 임시로 저장한 데이터를, 차용 공간을 제외한 빈 공간(예: 도 3b의 빈 공간(321))에 다시 쓰기하여 데이터를 이동 저장할 수 있다. 메모리는 차용 공간의 크기에 임시로 저장된 데이터를 삭제할 수 있다. 메모리는 차용 공간의 크기에 임시로 저장한 데이터를 빈 공간(321)으로 모두 이동 저장한 경우, 차용 공간을 빈 공간으로 반환하고, 데이터 고속 저장 방식에 관한 설정이 해제되었다는 정보를 어플리케이션 프로세서(229)에 전달할 수 있다. 예를 들어, 메모리는 할당된 차용 공간이 빈 공간으로 반환되었다는 정보를 어플리케이션 프로세서(229)에 전달할 수 있다.
동작 1230에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는, 파일 시스템의 임시 저장 공간을 가용 공간으로 반환할 수 있다. 예를 들어, 어플리케이션 프로세서(229)는 메모리로부터 데이터 고속 저장 방식에 관한 설정이 해제되었다는 정보를 전달받은 것에 대한 응답으로, 데이터 고속 저장 방식을 위해 할당한 임시 저장 공간을 다시 가용 공간으로 반환할 수 있다. 파일 시스템의 가용 공간의 크기는 반환한 임시 저장 공간의 크기만큼 다시 증가할 수 있다.
동작 1240에서, 다양한 실시예에 따른 어플리케이션 프로세서(229)는, 메모리의 데이터 고속 저장 방식에 관한 설정이 해제되었다는 정보를 디스플레이를 통해 표시할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(229)는, 동작 1220 내지 1230을 수행하는 중 디스플레이를 통해 데이터 고속 저장 방식에 관한 설정을 해제 중이라는 정보, 데이터 고속 저장 방식을 위해 차용한 차용 공간을 빈 공간으로 반환하는데 걸리는 시간 및 메모리 성능 저하에 관한 정보를 표시할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)는, 디스플레이, 데이터가 저장되지 않은 제1 공간(321)과 데이터가 저장된 제2 공간(323, 325)을 포함하는 메모리(예: 도 1의 비휘발성 메모리(134), 도 2a의 스토리지(230)) 및 프로세서(예: 도 1의 프로세서(120), 도 2b의 어플리케이션 프로세서(229))를 포함하고, 상기 프로세서(229)는, 상기 메모리의 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신하고, 상기 데이터 고속 저장 방식에 관한 설정 값에 기초하여, 상기 전자 장치(101)의 파일 시스템의 가용 공간(311) 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 임시 저장 공간(312)으로 할당하고, 상기 임시 저장 공간(312)의 크기에 대응하여, 상기 제1 공간(321) 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 차용 공간(322)으로 할당하도록 상기 메모리를 제어하고, 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트 발생 여부를 확인하고, 상기 이벤트의 발생에 응답하여, 상기 할당된 일정 크기의 차용 공간(322)을 이용하여 상기 데이터 고속 저장 방식을 통한 데이터 저장을 수행하도록 상기 메모리를 제어할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서, 상기 데이터 고속 저장 방식에 관한 설정 값은, 상기 데이터 고속 저장 방식을 수행하기 위한 차용 공간(322)의 크기에 관한 정보 및 상기 데이터 고속 저장 방식의 사용 여부에 관한 정보를 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(229)는, 상기 일정 크기의 임시 저장 공간(312)이 할당된 것에 대한 응답으로, 상기 디스플레이를 통해 상기 파일 시스템의 가용 공간(311)의 크기를 상기 임시 저장 공간(312)의 크기만큼 감소시키거나, 상기 임시 저장 공간(312)의 크기를 갖는 파일을 생성하여 파일 시스템의 가용 공간(311)의 크기를 감소시켜 표시할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(229)는, 상기 메모리에 데이터를 저장하기 위해 발생하여 상기 메모리로 전달 예정인 쓰기 입출력 요청의 수 및 쓰기 입출력 요청의 양 중 적어도 하나를 확인하고, 상기 확인한 값이 기 설정된 제1 임계 값 이상인 경우 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 상기 메모리를 제어할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(229)는, 상기 메모리에 데이터를 저장하기 위해 발생하여 상기 메모리로 전달 예정인 쓰기 입출력 요청의 수 및 쓰기 입출력 요청의 양 중 적어도 하나를 주기적으로 확인하고, 상기 확인한 값이 기 설정된 제2 임계 값 이하인 경우, 상기 데이터 고속 저장 방식을 통한 데이터 저장을 종료하도록 상기 메모리를 제어할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(229)는 상기 데이터 고속 저장 방식 수행 중 상기 할당된 차용 공간(322) 이상의 추가적인 데이터 저장을 위한 쓰기 입출력 요청이 발생한 것에 응답하여, 상기 메모리의 제1 공간(321)의 크기 중 상기 차용 공간(322)의 크기를 제외한 공간의 크기 한도 내에서 추가적인 데이터 저장을 수행하도록 상기 메모리를 제어할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(229)는, 상기 차용 공간(322) 중 상기 데이터 고속 저장 방식을 통한 데이터 저장을 수행하기 위해 현재 사용 중인 공간의 크기에 관한 정보를 상기 메모리로부터 수신하고, 상기 수신한 정보에 기초하여 상기 임시 저장 공간(312)의 크기를 조절할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(229)는, 상기 메모리의 데이터 고속 저장 방식에 관한 설정을 해제하기 위한 사용자 입력을 수신하고, 상기 메모리의 차용 공간(322)에 임시적으로 저장된 데이터를 상기 메모리의 상기 제1 공간(321) 중 상기 차용 공간(322)을 제외한 공간에 다시 저장하고, 상기 차용 공간(322)에 임시적으로 저장된 데이터를 삭제하도록 상기 메모리를 제어하고, 상기 파일 시스템의 임시 저장 공간(312)을 상기 가용 공간(311)으로 반환하도록 동작할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)는 통신 회로를 더 포함할 수 있고, 상기 프로세서(229)는, 상기 통신 회로를 통해 외부 장치로부터 기 설정된 값 이상의 전송 속도로 데이터가 수신되는 것에 응답하여, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 동작할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)는 연결 단자를 더 포함할 수 있고, 상기 프로세서(229)는, 상기 연결 단자를 통해 외부 장치가 연결된 것을 감지하고, 상기 외부 장치로부터 기 설정된 값 이상의 전송 속도로 데이터가 수신되는 것에 응답하여, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 동작할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법은, 메모리의 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신하는 동작, 상기 데이터 고속 저장 방식에 관한 설정 값에 기초하여, 상기 전자 장치(101)의 파일 시스템의 가용 공간(311) 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 임시 저장 공간(312)으로 할당하는 동작, 상기 임시 저장 공간(312)의 크기에 대응하여, 데이터가 저장되지 않은 메모리의 제1 공간(321)의 일정 크기를 상기 데이터 고속 저장 방식을 위한 차용 공간(322)으로 할당하는 동작, 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트 발생 여부를 확인하는 동작 및 상기 이벤트의 발생에 응답하여, 상기 메모리가 상기 할당된 일정 크기의 차용 공간(322)을 이용하여 데이터 고속 저장 방식을 통한 데이터 저장을 수행하는 동작을 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법에서, 상기 데이터 고속 저장 방식에 관한 설정 값은, 상기 데이터 고속 저장 방식을 수행하기 위한 차용 공간(322)의 크기에 관한 정보 및 상기 데이터 고속 저장 방식의 사용 여부에 관한 정보를 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법에서, 상기 임시 저장 공간(312)으로 할당하는 동작 이후, 상기 임시 저장 공간(312)이 할당된 것에 대한 응답으로, 디스플레이를 통해 상기 파일 시스템의 가용 공간(311)의 크기를 상기 임시 저장 공간(312)의 크기만큼 감소시키거나, 상기 임시 저장 공간(312)의 크기를 갖는 파일을 생성하여 파일 시스템의 가용 공간(311)의 크기를 감소시켜 표시하는 동작을 더 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법에서, 상기 확인하는 동작은, 상기 메모리에 데이터를 저장하기 위해 발생하여 상기 메모리로 전달 예정인 쓰기 입출력 요청의 수 및 쓰기 입출력 요청의 양 중 적어도 하나를 확인하는 동작 및 상기 확인한 값이 기 설정된 제1 임계 값 이상인 경우 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하는 동작을 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법에서, 상기 시작하는 동작 이후, 상기 메모리에 데이터를 저장하기 위해 발생하여 상기 메모리로 전달 예정인 쓰기 입출력 요청의 수 및 쓰기 입출력 요청의 양 중 적어도 하나를 주기적으로 확인하는 동작 및 상기 확인한 값이 기 설정된 제2 임계 값 이하인 경우, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 종료하는 동작을 더 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법에서, 상기 메모리 저장 공간 이용 방법은, 상기 데이터 고속 저장 방식 수행 중 상기 할당된 차용 공간(322) 이상의 추가적인 데이터 저장을 위한 쓰기 입출력 요청이 발생한 것에 응답하여, 상기 메모리의 제1 공간(321)의 크기 중 상기 차용 공간(322)의 크기를 제외한 공간의 크기 한도 내에서 추가적인 데이터 저장하는 동작을 더 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법에서, 상기 메모리 저장 공간 이용 방법은, 상기 차용 공간(322) 중 상기 데이터 고속 저장 방식을 통한 데이터 저장을 수행하기 위해 현재 사용 중인 공간의 크기에 관한 정보를 상기 메모리로부터 수신하는 동작 및 상기 수신한 정보에 기초하여 상기 임시 저장 공간(312)의 크기를 조절하는 동작을 더 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법에서, 상기 이용하여 데이터 고속 저장 방식을 수행하는 동작 이후, 상기 메모리의 데이터 고속 저장 방식에 관한 설정을 해제하기 위한 사용자 입력을 수신하는 동작, 상기 메모리가 상기 메모리의 차용 공간(322)에 임시적으로 저장된 데이터를 상기 메모리의 상기 제1 공간(321) 중 상기 차용 공간(322)을 제외한 영역에 다시 저장하고, 상기 차용 공간(322)에 임시적으로 저장된 데이터를 삭제하는 동작 및 상기 파일 시스템의 임시 저장 공간(312)을 상기 가용 공간(311)으로 반환하는 동작을 더 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법에서, 상기 확인하는 동작은, 통신 회로를 통해 외부 장치로부터 기 설정된 값 이상의 전송 속도로 데이터가 수신되는 것에 응답하여, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 시작하는 동작을 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 메모리 저장 공간 이용 방법에서, 상기 확인하는 동작은, 연결 단자를 통해 외부 장치가 연결된 것을 감지하는 동작 및 상기 외부 장치로부터 기 설정된 값 이상의 전송 속도로 데이터가 수신되는 것에 응답하여, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 시작하는 동작을 포함할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나","A 또는 B 중 적어도 하나,""A, B 또는 C," "A, B 및 C 중 적어도 하나,"및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (20)

  1. 전자 장치에 있어서,
    디스플레이;
    데이터가 저장되지 않은 제1 공간과 데이터가 저장된 제2 공간을 포함하는 메모리; 및
    프로세서를 포함하고,
    상기 프로세서는,
    상기 메모리의 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신하고,
    상기 데이터 고속 저장 방식에 관한 설정 값에 기초하여, 상기 전자 장치의 파일 시스템의 가용 공간 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 임시 저장 공간으로 할당하고,
    상기 임시 저장 공간의 크기에 대응하여, 상기 제1 공간 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 차용 공간으로 할당하도록 상기 메모리를 제어하고,
    상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트 발생 여부를 확인하고,
    상기 이벤트의 발생에 응답하여, 상기 할당된 일정 크기의 차용 공간을 이용하여 상기 데이터 고속 저장 방식을 통한 데이터 저장을 수행하도록 상기 메모리를 제어하는, 전자 장치.
  2. 제1항에 있어서,
    상기 데이터 고속 저장 방식에 관한 설정 값은, 상기 데이터 고속 저장 방식을 수행하기 위한 차용 공간의 크기에 관한 정보 및 상기 데이터 고속 저장 방식의 사용 여부에 관한 정보를 포함하는, 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 일정 크기의 임시 저장 공간이 할당된 것에 대한 응답으로, 상기 디스플레이를 통해 상기 파일 시스템의 가용 공간의 크기를 상기 임시 저장 공간의 크기만큼 감소시키거나, 상기 임시 저장 공간의 크기를 갖는 파일을 생성하여 파일 시스템의 가용 공간의 크기를 감소시켜 표시하는, 전자 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 메모리에 데이터를 저장하기 위해 발생하여 상기 메모리로 전달 예정인 쓰기 입출력 요청의 수 및 쓰기 입출력 요청의 양 중 적어도 하나를 확인하고,
    상기 확인한 값이 기 설정된 제1 임계 값 이상인 경우 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 상기 메모리를 제어하는, 전자 장치.
  5. 제4항에 있어서,
    상기 프로세서는,
    상기 메모리에 데이터를 저장하기 위해 발생하여 상기 메모리로 전달 예정인 쓰기 입출력 요청의 수 및 쓰기 입출력 요청의 양 중 적어도 하나를 주기적으로 확인하고,
    상기 확인한 값이 기 설정된 제2 임계 값 이하인 경우, 상기 데이터 고속 저장 방식을 통한 데이터 저장을 종료하도록 상기 메모리를 제어하는, 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는
    상기 데이터 고속 저장 방식 수행 중 상기 할당된 차용 공간 이상의 추가적인 데이터 저장을 위한 쓰기 입출력 요청이 발생한 것에 응답하여, 상기 메모리의 제1 공간의 크기 중 상기 차용 공간의 크기를 제외한 공간의 크기 한도 내에서 추가적인 데이터 저장을 수행하도록 상기 메모리를 제어하는, 전자 장치
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 차용 공간 중 상기 데이터 고속 저장 방식을 통한 데이터 저장을 수행하기 위해 현재 사용 중인 공간의 크기에 관한 정보를 상기 메모리로부터 수신하고,
    상기 수신한 정보에 기초하여 상기 임시 저장 공간의 크기를 조절하는, 전자 장치.
  8. 제1항에 있어서,
    상기 프로세서는,
    상기 메모리의 데이터 고속 저장 방식에 관한 설정을 해제하기 위한 사용자 입력을 수신하고,
    상기 메모리의 차용 공간에 임시적으로 저장된 데이터를 상기 메모리의 상기 제1 공간 중 상기 차용 공간을 제외한 공간에 다시 저장하고, 상기 차용 공간에 임시적으로 저장된 데이터를 삭제하도록 상기 메모리를 제어하고,
    상기 파일 시스템의 임시 저장 공간을 상기 가용 공간으로 반환하도록 동작하는, 전자 장치.
  9. 제1항에 있어서,
    통신 회로를 더 포함하고,
    상기 프로세서는,
    상기 통신 회로를 통해 외부 장치로부터 기 설정된 값 이상의 전송 속도로 데이터가 수신되는 것에 응답하여, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 동작하는, 전자 장치.
  10. 제1항에 있어서,
    연결 단자를 더 포함하고,
    상기 프로세서는,
    상기 연결 단자를 통해 외부 장치가 연결된 것을 감지하고,
    상기 외부 장치로부터 기 설정된 값 이상의 전송 속도로 데이터가 수신되는 것에 응답하여, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 시작하도록 동작하는, 전자 장치.
  11. 전자 장치의 메모리 저장 공간 이용 방법에 있어서,
    메모리의 데이터 고속 저장 방식에 관한 설정 값을 입력하는 사용자 입력을 수신하는 동작;
    상기 데이터 고속 저장 방식에 관한 설정 값에 기초하여, 상기 전자 장치의 파일 시스템의 가용 공간 중 일정 크기를 상기 데이터 고속 저장 방식을 위한 임시 저장 공간으로 할당하는 동작;
    상기 임시 저장 공간의 크기에 대응하여, 데이터가 저장되지 않은 메모리의 제1 공간의 일정 크기를 상기 데이터 고속 저장 방식을 위한 차용 공간으로 할당하는 동작;
    상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하기 위한 이벤트 발생 여부를 확인하는 동작; 및
    상기 이벤트의 발생에 응답하여, 상기 메모리가 상기 할당된 일정 크기의 차용 공간을 이용하여 데이터 고속 저장 방식을 통한 데이터 저장을 수행하는 동작을 포함하는, 메모리 저장 공간 이용 방법.
  12. 제11항에 있어서,
    상기 데이터 고속 저장 방식에 관한 설정 값은, 상기 데이터 고속 저장 방식을 수행하기 위한 차용 공간의 크기에 관한 정보 및 상기 데이터 고속 저장 방식의 사용 여부에 관한 정보를 포함하는, 메모리 저장 공간 이용 방법.
  13. 제11항에 있어서,
    상기 임시 저장 공간으로 할당하는 동작 이후,
    상기 임시 저장 공간이 할당된 것에 대한 응답으로, 디스플레이를 통해 상기 파일 시스템의 가용 공간의 크기를 상기 임시 저장 공간의 크기만큼 감소시키거나, 상기 임시 저장 공간의 크기를 갖는 파일을 생성하여 파일 시스템의 가용 공간의 크기를 감소시켜 표시하는 동작을 더 포함하는, 메모리 저장 공간 이용 방법.
  14. 제11항에 있어서,
    상기 확인하는 동작은,
    상기 메모리에 데이터를 저장하기 위해 발생하여 상기 메모리로 전달 예정인 쓰기 입출력 요청의 수 및 쓰기 입출력 요청의 양 중 적어도 하나를 확인하는 동작; 및
    상기 확인한 값이 기 설정된 제1 임계 값 이상인 경우 상기 데이터 고속 저장 방식을 통한 데이터 저장을 시작하는 동작을 포함하는, 메모리 저장 공간 이용 방법.
  15. 제14항에 있어서,
    상기 시작하는 동작 이후,
    상기 메모리에 데이터를 저장하기 위해 발생하여 상기 메모리로 전달 예정인 쓰기 입출력 요청의 수 및 쓰기 입출력 요청의 양 중 적어도 하나를 주기적으로 확인하는 동작; 및
    상기 확인한 값이 기 설정된 제2 임계 값 이하인 경우, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 종료하는 동작을 더 포함하는, 메모리 저장 공간 이용 방법.
  16. 제11항에 있어서,
    상기 메모리 저장 공간 이용 방법은,
    상기 데이터 고속 저장 방식 수행 중 상기 할당된 차용 공간 이상의 추가적인 데이터 저장을 위한 쓰기 입출력 요청이 발생한 것에 응답하여, 상기 메모리의 제1 공간의 크기 중 상기 차용 공간의 크기를 제외한 공간의 크기 한도 내에서 추가적인 데이터 저장하는 동작을 더 포함하는, 메모리 저장 공간 이용 방법.
  17. 제11항에 있어서,
    상기 메모리 저장 공간 이용 방법은,
    상기 차용 공간 중 상기 데이터 고속 저장 방식을 통한 데이터 저장을 수행하기 위해 현재 사용 중인 공간의 크기에 관한 정보를 상기 메모리로부터 수신하는 동작; 및
    상기 수신한 정보에 기초하여 상기 임시 저장 공간의 크기를 조절하는 동작을 더 포함하는, 메모리 저장 공간 이용 방법.
  18. 제11항에 있어서,
    상기 이용하여 데이터 고속 저장 방식을 수행하는 동작 이후,
    상기 메모리의 데이터 고속 저장 방식에 관한 설정을 해제하기 위한 사용자 입력을 수신하는 동작;
    상기 메모리가 상기 메모리의 차용 공간에 임시적으로 저장된 데이터를 상기 메모리의 상기 제1 공간 중 상기 차용 공간을 제외한 영역에 다시 저장하고, 상기 차용 공간에 임시적으로 저장된 데이터를 삭제하는 동작; 및
    상기 파일 시스템의 임시 저장 공간을 상기 가용 공간으로 반환하는 동작을 더 포함하는, 메모리 저장 공간 이용 방법.
  19. 제11항에 있어서,
    상기 확인하는 동작은,
    통신 회로를 통해 외부 장치로부터 기 설정된 값 이상의 전송 속도로 데이터가 수신되는 것에 응답하여, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 시작하는 동작을 포함하는, 메모리 저장 공간 이용 방법.
  20. 제11항에 있어서,
    상기 확인하는 동작은,
    연결 단자를 통해 외부 장치가 연결된 것을 감지하는 동작; 및
    상기 외부 장치로부터 기 설정된 값 이상의 전송 속도로 데이터가 수신되는 것에 응답하여, 상기 메모리의 데이터 고속 저장 방식을 통한 데이터 저장을 시작하는 동작을 포함하는, 메모리 저장 공간 이용 방법.
KR1020190070430A 2019-03-07 2019-06-14 전자 장치 및 그의 저장 공간 이용 방법 KR20200107716A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/KR2020/002762 WO2020180045A1 (en) 2019-03-07 2020-02-26 Electronic device and method for utilizing memory space thereof
US16/802,903 US11487452B2 (en) 2019-03-07 2020-02-27 Electronic device and method for utilizing memory space thereof
CN202010134718.5A CN111666224B (zh) 2019-03-07 2020-03-02 电子装置和用于利用电子装置的存储器空间的方法
EP20161485.6A EP3706003B1 (en) 2019-03-07 2020-03-06 Electronic device and method for utilizing memory space thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190026254 2019-03-07
KR20190026254 2019-03-07

Publications (1)

Publication Number Publication Date
KR20200107716A true KR20200107716A (ko) 2020-09-16

Family

ID=72670201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190070430A KR20200107716A (ko) 2019-03-07 2019-06-14 전자 장치 및 그의 저장 공간 이용 방법

Country Status (1)

Country Link
KR (1) KR20200107716A (ko)

Similar Documents

Publication Publication Date Title
KR102619954B1 (ko) 데이터를 처리하기 위한 방법 및 이를 지원하는 전자 장치
US11704072B2 (en) Electronic device and method of utilizing storage space thereof
KR20200090010A (ko) 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체
CN111666224B (zh) 电子装置和用于利用电子装置的存储器空间的方法
KR20200143871A (ko) 스토리지를 포함하는 전자 장치 및 그의 스토리지 이용 방법
US11086538B2 (en) Method and electronic device for initializing storage
US20230244406A1 (en) Electronic device and storage management method using same
KR20200107716A (ko) 전자 장치 및 그의 저장 공간 이용 방법
KR102516940B1 (ko) 부팅을 수행하는 전자 장치와 이의 동작 방법
KR20210101693A (ko) 스토리지를 포함하는 전자 장치 및 이를 이용한 스토리지로 파일 시스템의 디스카드 커맨드 전달 방법
US11341095B2 (en) Electronic device for searching for file information stored in external device and operation method thereof
KR20220101847A (ko) 전자 장치 및 전자 장치의 스토리지 운영 방법
US11868401B2 (en) Electronic device and method for acquiring size of file or directory stored in file system
US10768816B2 (en) Method and apparatus to manipulate customer data without using the host interface
US20230168831A1 (en) Electronic device and operation method of electronic device for managing storage space
KR20230031508A (ko) 전자 장치 및 전자 장치의 파일 시스템 운영 방법
US20230067968A1 (en) Electronic device and method of electronic device operating file system
KR20230081556A (ko) 저장 공간을 관리하기 위한 전자 장치 및 전자 장치의 동작 방법
KR20200101049A (ko) 어플리케이션 데이터를 관리하는 전자 장치 및 방법
KR20220079212A (ko) 가비지 컬렉션을 수행하기 위한 전자 장치 및 방법
CN115617262A (zh) 用于文件读取等待时间减少的方法和设备
CN116069369A (zh) 控制升级温度的方法、设备、存储介质及计算机程序产品
US20090198944A1 (en) Semiconductor memory device
KR20170108421A (ko) 메모리 카드로부터 파일을 읽는 방법

Legal Events

Date Code Title Description
A201 Request for examination