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

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

Info

Publication number
KR20200142219A
KR20200142219A KR1020190069161A KR20190069161A KR20200142219A KR 20200142219 A KR20200142219 A KR 20200142219A KR 1020190069161 A KR1020190069161 A KR 1020190069161A KR 20190069161 A KR20190069161 A KR 20190069161A KR 20200142219 A KR20200142219 A KR 20200142219A
Authority
KR
South Korea
Prior art keywords
storage
electronic device
space
buffer space
nonvolatile memory
Prior art date
Application number
KR1020190069161A
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 KR1020190069161A priority Critical patent/KR20200142219A/ko
Priority to BR112021024998A priority patent/BR112021024998A2/pt
Priority to PCT/KR2020/006801 priority patent/WO2020251192A1/en
Priority to CN202010493211.9A priority patent/CN112083876B/zh
Priority to CN202210483827.7A priority patent/CN114968093A/zh
Priority to US16/891,388 priority patent/US11392318B2/en
Priority to EP23174713.0A priority patent/EP4235442A3/en
Priority to EP20179543.2A priority patent/EP3751407B1/en
Priority to ES20179543T priority patent/ES2965751T3/es
Publication of KR20200142219A publication Critical patent/KR20200142219A/ko
Priority to ZA2021/10284A priority patent/ZA202110284B/en
Priority to US17/866,012 priority patent/US11704072B2/en

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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
    • 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
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0625Power saving in 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/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/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/0658Controller construction 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

본 문서에 개시된 다양한 실시예에 따른 전자 장치는 비휘발성 메모리, 스토리지 디바이스 컨트롤러 및 스토리지 인터페이스를 포함하는 스토리지 및 프로세서를 포함할 수 있다. 다양한 실시예에 따른 프로세서는, 스토리지가 비휘발성 메모리의 버퍼 공간을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인하고, 비휘발성 메모리의 버퍼 공간에 저장된 데이터를 비휘발성 메모리의 저장 공간에 기록하는 동작을 상기 스토리지 인터페이스가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하도록 스토리지를 제어하고, 스토리지 인터페이스가 제2 상태로 동작 중 스토리지로 전달되는 요청이 기 설정된 시간 동안 발생하지 않는 것에 응답하여, 스토리지 인터페이스가 제1 상태로 진입하도록 상기 스토리지를 제어하도록 구성될 수 있다. 이 밖의 다양한 실시예가 가능하다.

Description

전자 장치 및 그의 저장 공간 이용 방법{ELECTRONIC DEVICE AND METHOD OF UTILIZING STORAGE SPACE THEREOF}
본 문서에 개시된 다양한 실시예들은, 전자 장치 및 그의 저장 공간 이용 방법에 관한 것으로, 예를 들어, 스토리지의 데이터 고속 저장 방식을 통한 데이터 저장을 수행할 수 있는 전자 장치 및 그의 저장 공간 이용 방법에 관한 것이다.
휴대 단말기에 많은 양의 데이터를 저장하기 위해서는 데이터 집적도가 높은 저장 방식을 이용하는 스토리지를 사용할 수 있다.
전자 장치의 스토리지에 데이터를 저장할 때, 데이터 집적도가 높은 저장 방식을 사용하는 경우, 데이터 집적도가 낮은 저장 방식에 비해서 많은 양의 데이터를 저장할 수 있지만 데이터 저장 속도는 상대적으로 느릴 수 있다. 고속 데이터 전송 기술이 발달함에 따라 전송 받은 데이터를 스토리지에 빠르게 저장하기 위한 기술이 발달하고 있다.
스토리지의 데이터 저장 속도를 높이기 위해서, 스토리지는 저장 공간의 일부를 버퍼 공간으로 할당하여, 데이터 집적도가 낮은 저장 방식을 이용하여 버퍼 공간에 임시로 데이터를 저장하고, 추후에 데이터 집적도가 높은 저장 방식을 이용하여 저장 공간에 다시 저장하는, 데이터 고속 저장 방식을 사용할 수 있다. 버퍼 공간에 임시로 저장된 데이터를 데이터 집적도가 높은 저장 방식을 이용하여 저장 공간에 다시 저장하는 동작을 스토리지가 자체적으로 수행하는 경우, 전자 장치의 프로세서는 상기 다시 저장하는 동작에 관한 진행 상태 및 상기 다시 저장하는 동작으로 인해 발생하는 소모 전류에 관한 정보를 확인할 수 없어서 전자 장치의 성능 저하가 발생할 수 있다.
버퍼 공간에 임시로 저장된 데이터를 데이터 집적도가 높은 저장 방식을 이용하여 저장 공간에 다시 저장하는 동작을, 상기 버퍼 공간의 특정 크기가 사용되었을 때 수행하는 경우, 스토리지의 버퍼 공간의 특정 크기가 사용되기 전까지 상기 다시 저장하는 동작을 수행하지 않으므로 스토리지의 버퍼 공간의 가용 용량 및 저장 공간의 가용 용량이 줄어들 수 있다.
버퍼 공간에 임시로 저장된 데이터를 데이터 집적도가 높은 저장 방식을 이용하여 저장 공간에 다시 저장하는 동작을, 새로운 데이터 쓰기 입출력 요청에 따른 데이터 저장을 수행하는 도중에 수행하는 경우, 스토리지의 새로운 데이터 쓰기 입출력 요청을 처리하는 성능이 저하될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치는, 버퍼 공간 및 저장 공간을 포함하는 비휘발성 메모리, 스토리지 디바이스 컨트롤러 및 스토리지 인터페이스를 포함하는 스토리지 및 프로세서를 포함하고, 상기 프로세서는, 상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인하고, 상기 스토리지가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 비휘발성 메모리의 상기 저장 공간에 기록하는 동작을 상기 스토리지 인터페이스가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하도록 상기 스토리지를 제어하고, 상기 스토리지 인터페이스가 제2 상태로 동작 중 상기 스토리지로 전달되는 요청이 기 설정된 시간 동안 발생하지 않는 것에 응답하여, 상기 스토리지 인터페이스가 제1 상태로 진입하도록 상기 스토리지를 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치의 스토리지 제어 방법은, 스토리지가 상기 스토리지의 비휘발성 메모리의 버퍼 공간을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인하는 동작, 상기 스토리지가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 비휘발성 메모리의 저장 공간에 기록하는 동작을 스토리지 인터페이스가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하는 동작 및 상기 스토리지 인터페이스가 제2 상태로 동작 중 상기 스토리지로 전달되는 요청이 기 설정된 시간 동안 발생하지 않는 것에 응답하여, 상기 스토리지 인터페이스가 제1 상태로 진입하도록 상기 스토리지를 제어하는 동작을 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치는, 버퍼 공간 및 저장 공간을 포함하는 비휘발성 메모리, 스토리지 디바이스 컨트롤러 및 스토리지 인터페이스를 포함하는 스토리지, 터치 스크린, 통신 회로 및 프로세서를 포함하고, 상기 프로세서는, 상기 전자 장치의 절전 모드 진입을 위하여, 기 지정된 순서에 따라 상기 터치 스크린, 상기 통신 회로 및 상기 스토리지를 포함하는 상기 전자 장치의 구성 요소 각각에 대한 절전 작업들을 수행하고, 상기 전자 장치의 구성 요소 각각에 대한 절전 작업들 중 상기 스토리지에 대한 절전 작업 시작에 응답하여, 상기 스토리지의 데이터 고속 저장 방식 지원 여부를 확인하고, 상기 스토리지가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 비휘발성 메모리의 상기 데이터 고속 저장 방식을 위한 버퍼 공간의 가용 용량을 확인하고, 상기 확인한 버퍼 공간의 가용 용량에 기초하여, 상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 비휘발성 메모리의 저장 공간에 기록하는 동작을 수행할 시간을 결정하고, 상기 결정된 시간 동안 상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 수행하도록 제어하도록 구성될 수 있다.
본 개시의 다양한 실시예에 따른 전자 장치는, 버퍼 공간에 임시로 저장된 데이터를 데이터 집적도가 높은 저장 방식을 이용하여 저장 공간에 다시 저장하는 동작을 수행하는 시점을 전자 장치의 프로세서가 설정함으로써, 프로세서가 상기 다시 저장하는 동작에 관한 진행 상태 및 상기 다시 저장하는 동작으로 인해 발생하는 소모 전류에 관한 정보를 확인할 수 있어서 전자 장치의 성능 저하를 방지할 수 있고, 프로세서가 원하는 시점에 버퍼 공간의 가용 용량을 증가시킬 수 있다.
본 개시의 다양한 실시예에 따른 전자 장치는, 버퍼 공간에 임시로 저장된 데이터를 데이터 집적도가 높은 저장 방식을 이용하여 저장 공간에 다시 저장하는 동작을, 스토리지 인터페이스의 슬립 모드 동작 중 또는 전자 장치의 절전 모드 진입을 위한 절차 진행 중에 수행함으로써, 데이터 고속 저장 방식을 위한 버퍼 공간의 가용 용량 및 데이터 저장을 위한 저장 공간의 가용 용량을 증가시킬 수 있다.
본 개시의 다양한 실시예에 따른 전자 장치는, 버퍼 공간에 임시로 저장된 데이터를 데이터 집적도가 높은 저장 방식을 이용하여 저장 공간에 다시 저장하는 동작을, 스토리지 인터페이스의 슬립 모드 동작 중 또는 전자 장치의 절전 모드 진입을 위한 절차 진행 중에 수행함으로써, 상기 다시 저장하는 동작으로 인하여 새로운 데이터 쓰기 입출력 요청을 처리하는 성능이 저하되는 것을 방지할 수 있다.
도 1은 본 개시의 다양한 실시예에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 본 개시의 다양한 실시예에 따른, 전자 장치의 하드웨어 및 소프트웨어 계층 구조를 도시한 블록도이다.
도 3은 본 개시의 다양한 실시예에 따른, 전자 장치의 데이터 고속 저장 방식을 이용하여 데이터를 저장하는 과정을 도식화한 도면이다.
도 4는 본 개시의 다양한 실시예에 따른, 전자 장치의 데이터 고속 저장 방식을 이용하여 데이터 집적도가 낮은 저장 방식에서 높은 저장 방식으로 데이터를 저장하는 플러시 과정을 도식화한 도면이다.
도 5는 본 개시의 다양한 실시예에 따른, 전자 장치의 블록도이다.
도 6은 본 개시의 다양한 실시예에 따른, 전자 장치의 어플리케이션 프로세서 및 스토리지의 동작 흐름도이다.
도 7은 본 개시의 다양한 실시예에 따른, 전자 장치의 어플리케이션 프로세서의 동작 흐름도이다.
도 8은 본 개시의 다양한 실시예에 따른, 전자 장치의 어플리케이션 프로세서의 동작 흐름도이다.
도 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)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, 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)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(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, 또는 108) 중 하나 이상의 외부 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 본 개시의 다양한 실시예에 따른, 전자 장치의 하드웨어 및 소프트웨어 계층 구조를 도시한 블록도이다.
도 2를 참조하면, 다양한 실시예에 따른 전자 장치(101)는 어플리케이션 프로세서(200)(application processor, AP)(예: 도 1의 프로세서(120))) 및 스토리지(300)(예: 도 1의 메모리(130))를 포함할 수 있다. 도 2에 도시된 구성 중 일부가 생략 또는 치환 되더라도 본 문서에 개시된 다양한 실시예를 구현함에는 지장이 없을 것이다. 다양한 실시예에 따른 전자 장치(101)는 배터리(미도시)(예: 도1 의 배터리(189)) 또는 전력 관리 모듈(미도시)(예: 도 1의 전력 관리 모듈(188))을 더 포함할 수 있다. 다양한 실시예에 따른 전자 장치(101)는, 카메라(예: 도 1의 카메라 모듈(180)), LCD(예: 도 1의 표시 장치(160)), 스피커(예: 도 1의 음향 출력 장치(155)), 터치 스크린(예: 도 1의 표시 장치(160)), 통신 회로(예: 도 1의 통신 모듈(190)) 또는 USB(예: 도 1의 연결 단자(178)) 중 적어도 하나를 더 포함할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(200)는 전자 장치(101)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행할 수 있는 구성으로써, 도 1의 프로세서(120)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다. 프로세서는, 예를 들어, 전자 장치(101)의 구성 요소들과 작동적으로 연결될 수 있다.
다양한 실시예에 따르면 어플리케이션 프로세서(200)를 통하여 스토리지(300)을 제어하는 구성을 호스트라고 부를 수 있다. 다양한 실시예에 따르면, 호스트는 어플리케이션 프로세서 및 운영 체제를 포함하는 소프트웨어가 동작하는 환경일 수 있다. 호스트는, 예를 들어, 전자 장치(101)의 각종 어플리케이션의 작동과 그래픽 처리를 담당하는 칩셋의 기능을 포함하는 SoC(system on chip)일 수 있다.
다양한 실시예에 따르면 어플리케이션 프로세서(200)는, 어플리케이션(210), 스토리지 드라이버(220), 컨트롤러(230) 또는 스토리지 인터페이스(240)를 포함할 수 있다. 점선으로 표시된 어플리케이션(210) 및 스토리지 드라이버(220)는 소프트웨어 프로그램일 수 있다.
다양한 실시예에 따른 컨트롤러(230)는 어플리케이션 프로세서(200)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행하는 구성일 수 있다. 다양한 실시예에 따른 컨트롤러(230)는 전자 장치(101)의 각각의 구성요소를 제어하는 컨트롤러를 포함할 수 있다. 예를 들어, 컨트롤러(230)는 스토리지(300)의 동작을 제어하는 스토리지 호스트 컨트롤러(231)를 포함할 수 있다. 예를 들어, 컨트롤러(230)는 PMIC(예: 도 5의 PMIC(500))의 동작을 제어하는 PMIC 인터페이스 컨트롤러(예: 도 5의 PMIC 인터페이스 컨트롤러(233))를 포함할 수 있다.
다양한 실시예에 따른 컨트롤러(230)는 어플리케이션 프로세서(200)의 스토리지 인터페이스(240)를 통하여 스토리지(300)에 다양한 제어 명령을 전달할 수 있다. 예를 들어, 컨트롤러(230)의 스토리지 호스트 컨트롤러(231)는 어플리케이션(210)으로부터 발생한 데이터 저장 요청을 스토리지 드라이버(220)를 통해 수신하고, 상기 데이터 저장 요청에 응답하여 상기 스토리지 인터페이스(240)를 통해 스토리지(300)로 데이터 쓰기 입출력 요청을 전송할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(200)의 스토리지 인터페이스(240)는, 데이터 링크 기능을 제공하는 다양한 링크 인터페이스(link-interface)를 포함할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(200)의 스토리지 인터페이스(240)는 MIPI alliance 에서 정의한 MIPI M-PHY 인터페이스 또는 MIPI unipro 인터페이스를 포함할 수 있다. 어플리케이션 프로세서(200)는, 예를 들어, MIPI M-PHY 인터페이스 또는 MIPI unipro 인터페이스를 통해 스토리지(300)와 고속 데이터 통신을 수행할 수 있다.
다양한 실시예에 따르면, 스토리지(300)는 전자 장치(101)의 적어도 하나의 구성요소(예: 어플리케이션 프로세서(200))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 다양한 실시예에 따르면 스토리지(300)는, 플래시 메모리(310), 스토리지 디바이스 컨트롤러(320) 또는 스토리지 인터페이스(330)를 포함할 수 있다.
다양한 실시예에 따른 플래시 메모리(310)는, 예를 들어, 비휘발성 메모리(예: 도 1의 비휘발성 메모리(134))일 수 있다. 플래시 메모리(310)는, 예를 들어, UFS(universal flash storage, 범용 플래시 스토리지(300)) 표준 규격을 만족하는 낸드 플래시 메모리(310)(NAND flash memory)를 포함할 수 있다. 다양한 실시예에 따른 스토리지 디바이스 컨트롤러(320)는, 스토리지(300)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행하는 구성일 수 있다. 다양한 실시예에 따른 스토리지 디바이스 컨트롤러(320)는 스토리지(300)의 스토리지 인터페이스(330)를 통하여 어플리케이션 프로세서(200)로부터 다양한 제어 명령을 수신할 수 있다. 예를 들어, 스토리지 디바이스 컨트롤러(320)는 스토리지(300)의 스토리지 인터페이스(330)를 통해 어플리케이션 프로세서(200)로부터 전송된 데이터 쓰기 요청(data write I/O), 데이터 읽기 요청(data read I/O) 또는 데이터 지우기 요청(data delete I/O)을 포함하는 데이터 요청을 수신할 수 있다. 다양한 실시예에 따른 스토리지(300)의 스토리지 인터페이스(33)는, 데이터 링크 기능을 제공하는 다양한 링크 인터페이스(link-interface)를 포함할 수 있다. 다양한 실시예에 따른 스토리지(300)의 스토리지 인터페이스(330)는 MIPI alliance 에서 정의한 MIPI M-PHY 인터페이스 또는 MIPI unipro 인터페이스를 포함할 수 있다.
다양한 실시예에 따른 스토리지 디바이스 컨트롤러(320)의 스토리지 관리 유닛(321)은 적어도 하나의 논리 유닛(323)을 구성 및 제어할 수 있다. 적어도 하나의 논리 유닛(323)은, 예를 들어, 플래시 메모리(310)의 적어도 하나의 저장 유닛(311)과 대응하여 데이터를 저장할 수 있다.
도 3은 본 개시의 다양한 실시예에 따른, 전자 장치의 데이터 고속 저장 방식을 이용하여 데이터를 저장하는 과정을 도식화한 도면이다.
도 3을 참조하면, 다양한 실시예에 따른 스토리지(300)의 플래시 메모리(310)는 하나의 셀에 저장할 수 있는 데이터 비트 수에 따라 다양한 데이터 저장 방식을 사용할 수 있다. 예를 들어, SLC(single level cell) 방식의 경우 하나의 셀에 1 bit의 데이터를 저장하는 방식이고, MLC(multi level cell) 방식의 경우 하나의 셀에 2 bit의 데이터를 저장하는 방식이고, TLC(triple level cell) 방식의 경우 하나의 셀에 3 bit의 데이터를 저장하는 방식이고, QLC(quad level cell)일 수 있다. MLC, TLC 또는 QLC 방식을 사용하는 플래시 메모리의 경우 SLC 방식을 사용하는 플래시 메모리보다 데이터 집적도가 상대적으로 높고, 데이터 저장 속도(또는 쓰기 속도)는 느릴 수 있다. 이하에서는 설명의 편의 상 플래시 메모리가 TCL 방식을 사용하여 데이터를 저장하는 것으로 설명하겠으나, 본 문서에 개시된 실시예들이 이에 한정된 것은 아니며, 본 문서에 개시된 다양한 실시예들은 MLC 또는 QLC 인 경우에도 적용될 수 있음은 자명하다.
다양한 실시예에 따르면, 플래시 메모리(310)는 2개의 저장 방식을 상호 전환할 수 있다. 플래시 메모리(310)는, 예를 들어, TLC 방식으로 데이터를 저장하다가, 고속으로 데이터를 저장해야 하는 경우, 임시로 저장 방식을 SLC 방식으로 전환하여 데이터를 저장하는 방식(이하, 데이터 고속 저장 방식)을 사용할 수 있다.
다양한 실시예에 따르면, TLC 방식을 사용하는 플래시 메모리(310)의 경우, 상기 데이터 고속 저장 방식을 사용하여 저장 속도(또는 쓰기 속도)를 개선할 수 있다. 데이터 고속 저장 방식은, 예를 들어, 플래시 메모리(310)에 저장되는 데이터를 플래시 메모리(310)의 버퍼 공간(313)에 SLC 방식을 이용하여 임시 저장하고, 추후에 플래시 메모리(310) 내부적으로 플래시 메모리(310)의 저장 공간(315)에 TLC 방식으로 다시 저장하는 방식일 수 있다. 플래시 메모리(310)는 데이터를 SLC 방식으로 버퍼 공간(313)에 임시로 저장하는 과정에서, 플래시 메모리(310)의 빈 공간(데이터가 저장되지 않은 공간) 중 일정 크기를 버퍼 공간(313)으로 할당하여 사용하고, 추후 플래시 메모리(310) 내부적으로 TLC 방식으로 플래시 메모리(310)의 저장 공간(315)에 다시 저장할 수 있다. 상기 다시 저장하는 과정에서 일정 크기를 할당한 버퍼 공간(313)에 임시로 저장된 데이터를 삭제할 수 있다. 예를 들어, 플래시 메모리(310)의 빈 공간 중 일정 크기를, SLC 방식으로 데이터가 임시 저장되는 고속 쓰기 버퍼 공간(313)으로 차용하고, 어플리케이션 프로세서(200)를 통해 전달된 데이터는 상기 고속 쓰기 버퍼 공간(313)에 1차적으로 임시 저장되고, 추후 상기 고속 쓰기 버퍼 공간(313)에 1차적으로 저장된 데이터를 플래시 메모리(310)의 저장 공간(315)에 TLC 방식으로 2차적으로 다시 쓰기 하는 과정을 통해 이동 저장할 수 있다. 상기 TLC 방식으로 다시 쓰기 하는 과정은 플래시 메모리(310)의 내부적인 동작으로써 어플리케이션 프로세서(200)를 통해 확인되지 않을 수 있어서, 사용자 입장에서는 저장 속도가 빨라졌다고 인식할 수 있다. 다양한 실시예에 따르면 데이터 고속 저장 방식은, 예를 들어, JEDEC 표준 UFS 3.1의 터보 라이트(turbo write) 방식일 수 있다. 플래시 메모리(310)의 버퍼 공간(313)에 임시적으로 저장된 데이터를 플래시 메모리(310)의 저장 공간(315)에 다시 쓰기 하는 동작은, 예를 들어, UFS 3.1의 터보 라이트(turbo write) 방식 중 플러시(flush) 동작(또는 migration 동작, 이하 플러시 동작)일 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(200)는 컨트롤러(230)의 스토리지 호스트 컨트롤러(231)를 통해 스토리지(300)로, 데이터를 저장하기 위한 데이터 쓰기 입출력 요청(data write I/O 또는 memory write I/O)(이하, 쓰기 요청)을 전송할 수 있다.
다양한 실시예에 따르면, 스토리지(300)의 스토리지 디바이스 컨트롤러(320)는, 어플리케이션 프로세서(200)로부터 데이터 쓰기 요청을 수신한 것에 대한 응답으로, 플래시 메모리(310)의 버퍼 공간(313)에 데이터를 임시 저장하도록 제어할 수 있다. 스토리지 디바이스 컨트롤러(320)는, 예를 들어, 플래시 메모리(310)의 버퍼 공간(313)에 SLC 방식으로 데이터를 저장할 수 있다.
다양한 실시예에 따르면, 스토리지(300)는, 스토리지 디바이스 컨트롤러(320)의 제어 하에, 플래시 메모리(310)의 버퍼 공간(313)에 임시 저장된 데이터를 플래시 메모리(310)의 저장 공간(315)에 다시 쓰는 동작인 플러시(flush) 동작을 수행할 수 있다. 스토리지(300)는, 예를 들어, 플래시 메모리(310)의 버퍼 공간(313)에 임시 저장된 데이터의 적어도 일부를 삭제하고, 플래시 메모리(310)의 저장 공간(315)에 TLC 방식(또는 MLC 방식, QLC 방식)을 이용하여 데이터를 기록하여 상기 적어도 일부의 데이터를 이동 저장할 수 있다. 설명의 편의 상 플래시 메모리(310)의 버퍼 공간(313)과 저장 공간(315)을 구분하여 표시하였으나, 플래시 메모리(310) 내부에 개념적으로 구분된 공간임을 설명하기 위한 것일 뿐 물리적으로는 같은(혼재된) 저장 공간일 수 있다.
다양한 실시예에 따른 스토리지(300)는, 데이터 저장이 완료되었다는 응답 신호를 어플리케이션 프로세서(200)에 전달할 수 있다.
다양한 실시예에 따르면 스토리지(300)가 플러시 동작을 스토리지(300) 자체적으로 수행하는 경우, 어플리케이션 프로세서(200)는 상기 플러시 동작에 관한 진행 상태 및 상기 다시 저장하는 동작으로 인해 발생하는 소모 전류에 관한 정보를 확인할 수 없으므로, 전자 장치(101)의 처리 성능이 저하될 수 있다.
도 4는 본 개시의 다양한 실시예에 따른, 전자 장치의 데이터 고속 저장 방식을 이용하여 데이터 집적도가 낮은 저장 방식에서 높은 저장 방식으로 데이터를 저장하는 플러시 과정을 도식화한 도면이다.
도 4를 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 스토리지(300)로 플러시 동작에 관한 기능을 활성화하는 제어 명령을 전송할 수도 있고, 특정 시간 동안 플러시 동작을 수행하도록 하는 제어 명령을 전송할 수도 있다. 다양한 실시예에 따른 스토리지(300)는, 상기 제어 명령에 기초하여 플러시 동작을 수행할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(200)는 어플리케이션 프로세서(200)의 스토리지 인터페이스(240)가 슬립 모드로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행하도록 스토리지(300)를 제어할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(200)의 제어 하에, 어플리케이션 프로세서(200)의 스토리지 인터페이스(240) 및 스토리지(300)의 스토리지 인터페이스(330)는 동일한 동작 상태로 동작할 수 있다. 예를 들어, 어플리케이션 프로세서(200)는 어플리케이션 프로세서(200)의 스토리지 인터페이스(240) 및 스토리지(300)의 스토리지 인터페이스(330)가 슬립 모드로 동작하도록 제어할 수 있다.다양한 실시예에 따르면, 스토리지(300)의 스토리지 인터페이스(330)는 다양한 동작 상태로 동작할 수 있다. 다양한 실시예에 따르면 스토리지 인터페이스는, 링크 인터페이스의 다양한 동작 상태로 동작할 수 있다. 스토리지 인터페이스(330)는, 예를 들어, MIPI alliance에서 정의한 다양한 unipro state 중 하나의 상태로 동작할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(200)는 기 설정된 시간(예: 10ms)동안 스토리지(300)에 전달되는 새로운 데이터 쓰기 요청, 데이터 읽기 요청 또는 데이터 지우기 요청을 포함하는 데이터 요청이 발생하지 않는 경우, 스토리지 인터페이스(330)가 제1 상태에 진입하도록 제어 명령을 스토리지(300)로 전송할 수 있다. 스토리지 인터페이스(330)는, 상기 제어 명령을 수신한 것에 응답하여, 제1 상태로 진입하여 동작할 수 있다. 스토리지 인터페이스(330)의 제1 상태는, 예를 들어, MIPI alliance에서 정의한 unipro state 중 hibernate state일 수 있다. 스토리지 인터페이스(330)의 hibernate state는, 예를 들어, 스토리지 인터페이스(330)가 슬립 모드로 동작하는 상태일 수 있다.
다양한 실시예에 따르면 스토리지 인터페이스(330)는, 예를 들어, 어플리케이션 프로세서(200)로부터 스토리지(300)로 전송되며 스토리지(300)에 데이터를 저장하기 위한 데이터 쓰기 요청이 발생하는 경우, 제2 상태로 동작하여, 어플리케이션 프로세서(200)로부터 전달된 데이터 쓰기 요청에 응답하여 데이터 쓰기 동작을 수행할 수 있다. 스토리지 인터페이스(330)의 제2 상태는, 예를 들어, MIPI alliance에서 정의한 unipro state 중 linkup state일 수 있다. 스토리지 인터페이스(330)가 hibernate state로 동작하는 경우, 소모되는 전류(예: 1mA 이하)는 linkup state로 동작 중 데이터 쓰기 요청을 처리할 때 소모되는 전류(예: 300mA ~ 500mA)의 수백 분의 1일 수 있다.
다양한 실시예에 따르면 스토리지(300)는, 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행할 수 있다. 플러시 동작은, 예를 들어, 플래시 메모리(310)의 버퍼 공간(313)에 임시 저장된 데이터를 상기 플래시 메모리(310)의 저장 공간(315)으로 다시 쓰는 동작일 수 있다. 플러시 동작은, 예를 들어, 버퍼 영역에 저장된 데이터를 플래시 메모리(310)의 저장 공간(315)에 기록하고, 버퍼 영역에 저장된 데이터의 적어도 일부를 삭제함으로써 데이터의 적어도 일부를 이동 저장하는 동작일 수 있다. 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)가 플러시 동작을 수행하기 위해서는, 플래시 메모리(310)에 공급되는 전력이 플러시 동작을 수행하는 동안 유지되어야 할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(200)는, 스토리지(300)의 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플러시 동작을 수행하는 기능을 활성화하도록 스토리지(300)를 제어할 수 있다. 상기 기능이 활성화된 스토리지(300)는, 스토리지 인터페이스(330)가 제1 상태로 동작할 때마다 플래시 메모리(310)의 플러시 동작을 수행할 수 있다. 스토리지(300)는, 예를 들어, 스토리지 인터페이스(330)가 제1 상태로 진입한 때로부터 제1 상태가 종료될 때까지 플래시 메모리(310)의 플러시 동작을 수행할 수 있다. 다양한 실시예에 따르면, 어플리케이션 프로세서(200)는, 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행하는 경우, 배터리로부터 플래시 메모리(310)로 전력이 공급되도록 전력 관리 모듈을 제어할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(200)는, 새로운 데이터 쓰기 요청이 발생하는 경우, 스토리지 인터페이스(330)가 제1 상태를 종료하고 제2 상태로 진입하도록 하는 제어 명령을 스토리지(300)로 전송할 수 있다. 스토리지(300)는, 예를 들어, 상기 제어 명령을 수신하는 경우, 플러시 동작을 중지하고 스토리지 인터페이스(330)가 제1 상태를 종료하고 제2 상태로 진입하여 동작하도록 제어할 수 있다. 스토리지(300)는, 예를 들어, 상기 새로운 데이터 쓰기 요청에 대한 처리가 지연되지 않도록, 상기 제어 명령을 수신한 후 특정 시간(예: 5ms) 내에 스토리지 인터페이스(330)가 제2 상태로 진입하도록 제어할 수 있다.
다양한 실시예에 따른 스토리지(300)는, 스토리지 인터페이스(330)가 제1 상태로 진입할 때마다, 상기 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행하는 기능이 활성화 되었는 지 여부를 확인할 수 있다. 다양한 실시예에 따른 스토리지(300)는 상기 기능이 활성화된 것에 응답으로, 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하는 중 새로운 쓰기 요청이 발생한 것에 응답하여, 상기 플래시 메모리(310)의 플러시 동작을 중단하고, 스토리지 인터페이스(330)가 제2 상태로 진입하도록 스토리지(300)를 제어할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 스토리지(300)가 데이터 고속 저장 방식을 지원하는 지 여부를 확인하기 위하여 플래시 메모리(310)의 저장 공간(315) 일부를 SLC 방식으로 데이터를 임시 저장하기 위한 버퍼 공간(313)으로 할당하였는지 여부를 확인할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 전자 장치(101)의 전원이 켜진 것에 대한 응답으로, 스토리지(300)의 플래시 메모리(310)를 초기화할 수 있고, 플래시 메모리(310)가 초기화 완료된 것에 응답하여, 스토리지(300)가 플래시 메모리(310)의 버퍼 공간(313)을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 전자 장치(101)가 절전 모드에서 일반 모드로 진입(resume 또는 wakeup)할 때(또는 전자 장치(101)의 절전 모드가 해제될 때) 스토리지(300)의 적어도 일부 설정을 초기화할 수 있고, 스토리지(300)가 초기화 완료된 것에 응답하여, 스토리지(300)가 플래시 메모리(310)의 버퍼 공간(313)을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인할 수도 있다.
다양한 실시예에 따르면, 스토리지 인터페이스(330)가 데이터 쓰기 요청이 발생하지 않은 제1 상태(예: hibernate state)로 동작하는 중 플래시 메모리(310)의 플러시 동작을 수행하는 경우, 데이터 쓰기 요청에 대한 처리와 플러시 동작이 중복되지 않음으로써 데이터 쓰기 요청에 대한 처리가 지연되지 않을 수 있고, 플러시 동작을 수행할 수 있는 시간을 확보함으로써 플래시 메모리(310)의 버퍼 공간(313)의 가용 용량을 증가시킬 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(200)는 전자 장치(101)의 절전 모드 진입을 위한 절차 중 스토리지(300)에 대한 절전 작업 수행 시 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하도록 제어할 수 있다. 전자 장치(101)의 절전 모드 진입을 위한 절차란, 전자 장치(101)의 절전 모드 진입을 위하여, 기 지정된 순서에 따라 전자 장치(101)의 구성 요소(예: 터치스크린, 통신 회로) 각각에 대한 절전 작업들을 수행하는 절차일 수 있다.
다양한 실시예에 따른 전자 장치(101)는, 수행할 작업이 없는 경우, 디스플레이 화면이 꺼지고 절전 모드(예: suspend mode 또는 sleep mode)에 진입할 수 있다. 예를 들어, 전자 장치(101)는 일정 시간 동안 입력 신호가 발생하지 않거나 전원 버튼을 누름으로써 터치 스크린을 오프 시키는 경우 절전 모드 진입을 위한 절차를 시작할 수 있다. 전자 장치(101)가 절전 모드 진입을 위한 절차 수행 중 새로운 작업(예: 전원 버튼을 눌러 디스플레이를 온 시키는 경우, 메시지를 수신한 경우)가 발생한 경우, 절전 모드 진입을 위한 절차를 중단하고 전자 장치(101)를 웨이크-업(wake-up) 시킬 수 있다.
다양한 실시예에 따른 전자 장치(101)의 절전 모드 진입을 위한 절차는, 어플리케이션 프로세서(200)와 작동적으로 연결된 구성요소(예: 카메라, 스토리지(300), 터치스크린, 스피커, 통신 모듈) 각각의 절전 작업을 포함할 수 있다. 구성 요소의 절전 작업이란, 예를 들어, 해당 구성 요소의 전원을 off하고 clock을 off하는 작업 및 절전을 위한 부수적인 작업을 포함할 수 있다. 전자 장치(101)의 절전 모드 진입을 위하여, 전자 장치(101)와 작동적으로 연결된 구성 요소 모두에 대한 절전 작업을 완료한 경우, 어플리케이션 프로세서(200)도 절전 작업을 수행하여, 전자 장치(101)의 절전 모드 진입을 완료할 수 있다. 전자 장치(101)의 절전 모드 진입을 위한 절차 중 어느 하나의 절차라도 완료되지 못하는 경우, 전자 장치(101)는 절전 모드에 진입할 수 없고, 절전 모드 진입을 위한 절차를 다시 시작하여 수행(resume)해야 한다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 전자 장치(101)의 절전 모드 진입을 위하여, 기 지정된 순서에 따라 전자 장치(101)의 구성 요소(예: 터치스크린, 통신 회로) 각각에 대한 절전 작업들을 수행하는 중 스토리지(300)에 대한 절전 작업 시작에 응답하여, 스토리지(300)의 데이터 고속 저장 방식 지원 여부를 확인할 수 있다. 스토리지(300)에 대한 절전 작업은 어플리케이션 프로세서(200)의 스토리지 드라이버(220)를 통해 수행될 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 스토리지(300)가 고속 저장 방식을 지원하는 것에 응답하여, 플래시 메모리(310)의 버퍼 공간(313)의 가용 용량을 확인할 수 있다. 플래시 메모리(310)의 버퍼 공간(313)은, 예를 들어, SLC 방식으로 데이터를 임시 저장하는 공간일 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는 확인한 버퍼 공간(313)의 가용 용량에 기초하여 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행할 시간을 결정할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(200)는 확인한 버퍼 공간(313)의 가용 용량에 기초하여, 스토리지(300)에 대한 절전 작업의 완료 여부를 결정할 수 있다.
예를 들어, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 플래시 메모리(310)의 버퍼 공간(313)의 가용 용량이 제1 임계 값 이하인 경우(예: 버퍼 공간(313)의 전체 용량의 30%이하인 경우), 스토리지(300)가 제1 시간(예: 500ms) 동안 플러시를 수행하도록 결정할 수 있다. 제1 시간은, 예를 들어, 전자 장치(101)가 절전 모드 진입을 위한 절차를 종료하고 재개 동작(resume)을 수행한다고 가정할 때, 상기 재개 동작 수행에 영향 없이 플러시 동작을 수행할 수 있는 최대 시간을 의미할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(200)는 상기 제1 시간 경과 후, 즉 스토리지(300)가 제1 시간 동안 플래시 메모리(310)의 플러시 동작을 수행한 후 스토리지(300)에 대한 절전 작업을 중단하여(완료하지 않고) 전자 장치(101)의 절전 모드 진입을 위한 절차를 다시 시작(resume)하도록 제어할 수 있다.
예를 들어, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 플래시 메모리(310)의 버퍼 공간(313)의 가용 용량이 제1 임계 값을 초과하고 제2 임계 값 이하인 경우(예: 버퍼 공간(313)의 전체 용량의 30% 초과 80% 이하인 경우), 스토리지(300)가 제2 시간(예: 200ms) 동안 플러시 동작을 수행하도록 결정할 수 있다. 제2 시간은, 예를 들어, 상기 제1 시간보다 작을 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(200)는 상기 제2 시간 경과 후, 즉 스토리지(300)가 제2 시간 동안 플래시 메모리(310)의 플러시 동작을 수행한 후 스토리지(300)에 대한 절전 작업을 완료할 수 있다. 어플리케이션 프로세서(200)는, 절전 모드 진입을 위한 절전 작업을 수행하지 않은 전자 장치(101)의 다른 구성 요소(예: 디스플레이, 카메라)의 절전 작업을 수행할 수 있다.
예를 들어, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 플래시 메모리(310)의 버퍼 공간(313)의 가용 용량이 제2 임계 값을 초과하는 경우(예: 버퍼 공간(313)의 전체 용량의 80%를 초과하는 경우), 스토리지(300)가 플러시 동작을 수행하지 않도록 결정하고(플러시 동작을 수행할 시간을 0s로 결정하고), 스토리지(300)에 대한 절전 작업을 바로 완료할 수 있다. 어플리케이션 프로세서(200)는, 절전 모드 진입을 위한 절전 작업을 수행하지 않은 전자 장치(101)의 다른 구성 요소의 절전 작업을 수행할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하는 동안 배터리로부터 플래시 메모리(310)로 전력이 공급되도록 전력 관리 모듈을 제어할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하는 동안 새로운 데이터 쓰기 요청, 데이터 읽기 요청 또는 데이터 지우기 요청을 포함하는 데이터 요청이 상기 스토리지(300)로 전달하지 않도록 제어할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하는 동안 전자 장치(101)에 새로운 작업이 발생한 것에 대한 응답으로, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 중단하도록 제어하고, 스토리지(300)에 대한 절전 작업을 중단하여 전자 장치(101)의 절전 모드 진입을 위한 절차를 다시 시작하도록 제어할 수 있다.
다양한 실시예에 따르면, 전자 장치(101)의 절전 모드 진입을 위하여, 전자 장치(101)의 구성 요소(예: 터치스크린, 통신 회로) 각각에 대한 절전 작업들 중 스토리지(300)에 대한 절전 작업을 수행하는 도중 일정 시간 동안 플래시 메모리(310)의 플러시 동작을 수행하고, 추가적인 플러시 동작이 필요하다고 판단되는 경우 절전 작업을 완료하지 않고 대기 모드 진입을 위한 절차를 다시 시작함으로써, 스토리자가 플래시 메모리(310)의 플러시 동작을 반복적으로 수행할 수 있다. 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 상기의 방법을 이용하여, 전자 장치(101)가 대기 모드에 진입하기 전 플래시 메모리(310)의 플러시 동작을 반복적으로 수행함으로써 플래시 메모리(310)의 버퍼 공간(313)의 가용 용량을 증가시킬 수 있다.
도 5는 본 개시의 다양한 실시예에 따른, 전자 장치의 블록도이다.
도 5를 참조하면, 다양한 실시예에 따른 전자 장치(101)는 전력 관리 모듈(power management integrated circuit, PMIC)(500)(예: 도 1의 전력 관리 모듈(188)) 및 배터리(미도시)(예: 도 1의 배터리(189))를 더 포함할 수 있다.
다양한 실시예에 따른 전력 관리 모듈(500)은, 어플리케이션 프로세서(200)의 제어 하에, 전자 장치(101)의 각 구성 요소에 공급되는 전력을 관리할 수 있다. 다양한 실시예에 따른 배터리는 전자 장치(101)의 각 구성 요소에 전력을 공급할 수 있다.
다양한 실시예에 따른 전력 관리 모듈(500)은 스토리지(300)의 스토리지 디바이스 컨트롤러(320) 및 플래시 메모리(310)에 공급되는 전력(VCCQ, VCC)을 관리할 수 있다.
다양한 실시예에 따르면 어플리케이션 프로세서(200)는 PMIC(500)에 전력 공급에 관한 제어 명령을 전송할 수 있다. 예를 들어, 스토리지 드라이버(220)는 컨트롤러(230)의 PMIC 인터페이스 컨트롤러(233)를 통해 PMIC(500)에 전력 공급에 관한 제어 명령을 전송할 수 있다. 다양한 실시예에 따르면 PMIC 인터페이스 컨트롤러(233)는 도 2의 컨트롤러(230)에 포함되는 구성일 수 있다..
다양한 실시예에 따르면, 스토리지(300)의 스토리지 인터페이스(330)가 제1 상태(예: hibernate state)로 동작하는 경우 PMIC는, 어플리케이션 프로세서(200)의 제어 하에, 스토리지 디바이스 컨트롤러(320)로 전력을 공급할 수 있다. 다양한 실시예에 따르면 스토리지(300)의 스토리지 인터페이스(330)가 제1 상태로 동작하는 경우 PMIC(500)는 플래시 메모리(310)에 전력을 공급할 수도 있고 공급하지 않을 수도 있다.
다양한 실시예에 따르면, 스토리지 인터페이스(330)가 제1 상태로 동작하는 중 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하는 경우, PMIC(500)는 플래시 메모리(310)에 전력을 공급할 수 있다. 예를 들어, 스토리지 인터페이스(330)가 제1 상태, 즉 슬립 모드로 동작하는 중 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하는 기능이 활성화된 경우, 스토리지 인터페이스(330)가 제1 상태로 동작 중에도 PMIC(500)는 플래시 메모리(310)로의 전력 공급을 유지할 수 있다.
도 6은 본 개시의 다양한 실시예에 따른, 전자 장치의 어플리케이션 프로세서 및 스토리지의 동작 흐름도이다.
동작 흐름도 600을 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 601에서, 스토리지(300)의 데이터 고속 저장 방식 지원 여부를 확인할 수 있다. 어플리케이션 프로세서(200)는, 예를 들어, 스토리지(300)의 플래시 메모리(310)에 데이터 고속 저장 방식을 위한 버퍼 공간(313)이 할당되어 있는 지 여부를 확인할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 전자 장치(101)의 전원이 켜질 때 또는 전자 장치(101)가 절전 모드에서 일반 모드로 진입(resume 또는 wakeup)할 때(또는 전자 장치(101)의 절전 모드가 해제될 때) 스토리지(300)의 데이터 고속 저장 방식 지원 여부를 확인할 수 있다. 다양한 실시예에 따른 어플리케이션(200)은, 전자 장치(101)의 전원이 켜질 때 또는 전자 장치(101)의 절전 모드가 해제될 때 스토리지(300)의 적어도 일부 설정을 초기화할 수 있고, 스토리지(300)가 초기화 완료된 것에 응답하여, 스토리지(300)가 플래시 메모리(310)의 버퍼 공간(313)을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인할 수도 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 603에서, 데이터 고속 저장 방식 지원 여부에 관한 응답 신호를 어플리케이션 프로세서(200)로 전송할 수 있다. 예를 들어, 스토리지(300)가 플래시 메모리(310)의 저장 공간(315) 일부를 데이터 고속 저장 방식을 위한 버퍼 공간(313)으로 할당하고 있는 경우, 데이터 고속 저장 방식을 지원한다는 정보를 포함하는 응답 신호를 어플리케이션 프로세서(200)로 전송할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 605에서, 스토리지(300)가 데이터 고속 저장 방식을 지원하는 것에 응답하여, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 스토리지(300)의 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하도록 하는 제어 명령을 스토리지(300)로 전달할 수 있다. 플러시 동작은, 예를 들어, 스토리지(300)의 플래시 메모리(310)의 버퍼 공간(313)에 SLC 방식으로 저장된 데이터의 적어도 일부를 삭제하고, 상기 적어도 일부의 데이터를 플래시 메모리(310)의 저장 공간(315)에 TLC 방식으로 기록하는 동작일 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 전자 장치(101)의 전원이 켜질 때 또는 전자 장치(101)가 절전 모드에서 일반 모드로 진입(resume 또는 wakeup)할 때(또는 전자 장치(101)의 절전 모드가 해제될 때) 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 스토리지(300)의 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하도록 하는 제어 명령을 스토리지(300)로 전달할 수도 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 607에서, 상기 제어 명령을 수신한 것에 응답하여, 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안, 플래시 메모리(310)의 플러시 동작을 수행하도록 하는 기능을 활성화할 수 있다. 스토리지 인터페이스(330)의 제1 상태는, 예를 들어, 스토리지 인터페이스(330)가 슬립 모드로 동작하는 상태일 수 있다. 제1 상태는, 예를 들어, MIPI alliance에서 정의한 hibernate state일 수 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 609에서, 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행하도록 하는 기능이 활성화 되었다는 정보를 포함하는 응답 신호를 어플리케이션 프로세서(200)로 전송할 수 있다. 다양한 실시예에 따르면, 동작 609는 생략될 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 611에서, 스토리지(300)로 전달 예정인 데이터 요청(예: 데이터 쓰기 요청, 데이터 읽기 요청 또는 데이터 지우기 요청)이 발생하였는지 모니터링 할 수 있다. 예를 들어, 어플리케이션 프로세서(200)는 새롭게 발생한 데이터 쓰기 요청의 수를 주기적으로 확인할 수 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 613에서, 스토리지 인터페이스(330)가 제2 상태로 동작할 수 있다. 예를 들어, 스토리지 인터페이스(330)가 어플리케이션 프로세서(200)로부터 데이터 쓰기 요청을 전달받아 데이터 쓰기 동작을 수행하는 상태일 수 있다. 제2 상태는, 예를 들어, MIPI alliance에서 정의한 linkup state일 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 615에서, 스토리지(300)의 스토리지 인터페이스(330)가 제2 상태로 동작 중 스토리지(300)로 전달되는 쓰기 요청이 기 설정된 시간 동안 발생하지 않는 것에 응답하여, 스토리지 인터페이스(330)가 제1 상태에 진입하도록 하는 제어 명령을 스토리지(300)로 전달할 수 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 617에서, 상기 제어 명령을 전달받은 것에 응답하여 스토리지 인터페이스(330)가 제1 상태에 진입하도록 제어할 수 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 619에서, 스토리지 인터페이스(330)가 제1 상태로 진입한 경우, 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행하는 기능이 활성화 되었는지 여부를 확인할 수 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 621에서, 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행하는 기능이 활성화된 것에 응답하여, 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행할 수 있다.
도 7은 본 개시의 다양한 실시예에 따른, 전자 장치(101)의 어플리케이션 프로세서(200)의 동작 흐름도이다.
동작 흐름도 700을 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 710에서, 스토리지(300)가 플래시 메모리(310)의 버퍼 공간(313)을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인할 수 있다. 플래시 메모리(310)는, 예를 들어, 비휘발성 메모리(예: 도 1의 비휘발성 메모리(134))일 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 720에서, 스토리지(300)가 데이터 고속 저장 방식을 지원하는 것에 응답하여, 플래시 메모리(310)의 플러시 동작을 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하도록 스토리지(300)를 제어할 수 있다. 플러시 동작은, 예를 들어, 스토리지(300)의 플래시 메모리(310)의 버퍼 공간(313)에 SLC 방식으로 저장된 데이터의 적어도 일부를 삭제하고, 상기 적어도 일부의 데이터를 플래시 메모리(310)의 저장 공간(315)에 TLC 방식으로 기록하는 동작일 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 730에서, 스토리지 인터페이스(330)가 제2 상태로 동작 중 스토리지(300)로 전달되는 데이터 요청(예: 데이터 쓰기 요청, 데이터 읽기 요청 또는 데이터 지우기 요청)이 기 설정된 시간 동안 발생하지 않은 것에 응답하여, 스토리지 인터페이스(330)가 제1 상태로 진입하도록 스토리지(300)를 제어할 수 있다. 다양한 실시예에 따른 스토리지(300)는, 예를 들어, 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 플래시 메모리(310)의 플러시 동작을 수행할 수 있다.
도 8은 본 개시의 다양한 실시예에 따른, 전자 장치의 어플리케이션 프로세서의 동작 흐름도이다. 도 6 및 7에서 설명한 내용과 중복되는 내용은 설명을 생략하겠다.
동작 흐름도 800을 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 801에서, 전자 장치(101)의 전원을 켤 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 803에서, 전자 장치(101)의 전원이 켜진 것에 대한 응답으로, 스토리지(300)의 플래시 메모리(310)를 초기화하도록 스토리지(300)를 제어할 수 있다. 플래시 메모리(310)는, 예를 들어, 비휘발성 메모리(예: 도 1의 비휘발성 메모리(134))일 수 있다. 다양한 실시예에 따른 어플리케이션(200)은, 전자 장치(101)의 절전 모드가 해제될 때 스토리지(300)의 적어도 일부 설정을 초기화할 수도 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 805에서, 플래시 메모리(310)가 초기화 완료된 것에 응답하여, 스토리지(300)가 플래시 메모리(310)의 버퍼 공간(313)을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인할 수 있다.
스토리지(300)가 데이터 고속 저장 방식을 지원하는 것에 응답하여, 동작 807로 분기하여(805-YES), 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 스토리지(300)가 플러시 동작을 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하도록 스토리지(300)를 제어할 수 있다. 스토리지(300)가 데이터 고속 저장 방식을 지원하지 않는 경우, 절차를 종료할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 809에서, 발생한 데이터 요청(예: 데이터 쓰기 요청, 데이터 읽기 요청 또는 데이터 지우기 요청)을 모니터링 할 수 있다. 예를 들어, 어플리케이션 프로세서(200)는 새롭게 발생한 데이터 쓰기 요청의 수를 주기적으로 확인할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 811에서, 스토리지 인터페이스(330)가 제2 상태로 동작하는 중 기 설정된 시간 동안 스토리지(300)로 전달 될 새로운 데이터 요청이 발생하지 않았는지 여부를 확인할 수 있다.
기 설정된 시간 동안 데이터 요청이 미발생하지 않은 경우, 즉 기 설정된 시간 동안 새로운 데이터 요청이 발생한 경우, 동작 809로 다시 분기할 수 있다. 새로운 데이터 요청이 발생한 경우, 어플리케이션 프로세서(200)는, 상기 데이터 요청을 스토리지(300)로 전송할 수 있다.
기 설정된 시간 동안 스토리지(300)로 전달될 데이터 요청(예: 쓰기 요청, 읽기 요청 또는 지우기 요청)이 발생하지 않은 것에 응답하여, 동작 813으로 분기하여(811-YES), 다양한 실시예에 따른 어플리케이션 프로세서(200)는 스토리지 인터페이스(330)가 제1 상태로 진입하도록 스토리지(300)를 제어할 수 있다.
도 9는 본 개시의 다양한 실시예에 따른, 전자 장치의 절전 모드 진입을 위한 전자 장치의 구성요소 각각에 대한 절전 작업들을 설명하기 위한 도면이다.
도 9를 참조하면, 다양한 실시예에 따른 전자 장치(101)는, 어플리케이션 프로세서(200), 스토리지(300). 카메라(910), LCD(920). 스피커(930), 터치 스크린(940), 통신 회로(950) 또는 USB 인터페이스(960)를 포함할 수 있다.
다양한 실시예에 따르면, 어플리케이션 프로세서(200)는 전자 장치(101)의 절전 모드 진입을 위한 절차 중 스토리지(300)에 대한 절전 작업 수행 시 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하도록 제어할 수 있다. 전자 장치(101)의 절전 모드 진입을 위한 절차란, 전자 장치(101)의 절전 모드 진입을 위하여, 기 지정된 순서에 따라 전자 장치(101)의 구성 요소 각각에 대한 절전 작업들을 수행하는 절차일 수 있다.
다양한 실시예에 따른 전자 장치(101)는, 수행할 작업이 없는 경우, 디스플레이 화면이 꺼지고 절전 모드(예: suspend mode 또는 sleep mode)에 진입할 수 있다. 예를 들어, 전자 장치(101)는 일정 시간 동안 입력 신호가 발생하지 않거나 전원 버튼을 누름으로써 터치 스크린을 오프 시키는 경우 절전 모드 진입을 위한 절차를 시작할 수 있다. 전자 장치(101)가 절전 모드 진입을 위한 절차 수행 중 새로운 작업(예: 전원 버튼을 눌러 디스플레이를 온 시키는 경우, 메시지를 수신한 경우)가 발생한 경우, 절전 모드 진입을 위한 절차를 중단하고 전자 장치(101)를 웨이크-업(wake-up) 시킬 수 있다.
다양한 실시예에 따른 전자 장치(101)의 절전 모드 진입을 위한 절차는, 어플리케이션 프로세서(200)와 작동적으로 연결된 구성요소 각각의 절전 작업을 포함할 수 있다. 구성 요소의 절전 작업이란, 예를 들어, 해당 구성 요소의 전원을 off하고 clock을 off하는 작업 및 절전을 위한 부수적인 작업을 포함할 수 있다. 전자 장치(101)의 절전 모드 진입을 위하여, 전자 장치(101)와 작동적으로 연결된 구성 요소 모두에 대한 절전 작업을 완료한 경우, 어플리케이션 프로세서(200)도 절전 작업을 수행하여, 전자 장치(101)의 절전 모드 진입을 완료할 수 있다. 전자 장치(101)의 절전 모드 진입을 위한 절차 중 어느 하나의 절차라도 완료되지 못하는 경우, 전자 장치(101)는 절전 모드에 진입할 수 없고, 절전 모드 진입을 위한 절차를 다시 시작하여 수행(resume)해야 한다.
예를 들어, 전자 장치(101)의 절전 모드 진입을 위한 절차가 진행되는 순서가 스토리지(300), 카메라(910), LCD(920), 스피커(930), 터치 스크린(940), 통신 회로(950), USB 인터페이스(960), AP(200) 순으로 진행되도록 지정된 경우, 스토리지(300)에 대한 절전 작업이 완료되지 않으면, 카메라(910)에 대한 절전 작업은 시작되지 않으며, 전자 장치(101)는 절전 모드 진입을 위한 절차를 다시 시작하여 수행(resume)해야 한다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 전자 장치(101)의 절전 모드 진입을 위하여, 기 지정된 순서에 따라 전자 장치(101)의 구성 요소 각각에 대한 절전 작업들을 수행하는 중 스토리지(300)에 대한 절전 작업 시작에 응답하여, 스토리지(300)의 데이터 고속 저장 방식 지원 여부를 확인할 수 있다. 스토리지(300)에 대한 절전 작업은 어플리케이션 프로세서(200)의 스토리지 드라이버(220)를 통해 수행될 수 있다.
도 10는 본 개시의 다양한 실시예에 따른, 전자 장치의 어플리케이션 프로세서 및 스토리지의 동작 흐름도이다.
동작 흐름도 1000을 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1001에서, 전자 장치(101)의 절전 모드 진입을 위한 절차를 시작할 수 있다. 예를 들어, 어플리케이션 프로세서(200)는 전자 장치(101)에 수행할 작업이 없는 경우 절전 모드 진입을 위한 절차를 시작할 수 있다. 다양한 실시예에 따른 전자 장치(101)의 절전 모드 진입을 위한 절차는, 어플리케이션 프로세서(200)와 작동적으로 연결된 전자 장치(10)의 구성 요소 각각의 절전 작업을 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1003에서, 전자 장치(101)의 절전 모드 진입을 위한 절차들 중 스토리지(300)에 대한 절전 작업을 시작할 수 있다. 스토리지(300)의 절전 작업이란, 예를 들어, 스토리지(300)의 전원을 off하고 clock을 off하는 작업을 포함할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1005에서, 스토리지(300)에 대한 절전 작업 시작에 응답하여, 스토리지(300)의 데이터 고속 저장 방식을 지원 여부를 확인할 수 있다. 어플리케이션 프로세서(200)는, 예를 들어, 스토리지(300)의 플래시 메모리(310)에 데이터 고속 저장 방식을 위한 버퍼 공간(313)이 할당되어 있는 지 여부를 확인할 수 있다. 플래시 메모리(310)는, 예를 들어, 비휘발성 메모리(예: 도 1의 비휘발성 메모리(134))일 수 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 1007에서, 데이터 고속 저장 방식 지원 여부에 관한 응답 신호를 어플리케이션 프로세서(200)로 전송할 수 있다. 예를 들어, 스토리지(300)가 플래시 메모리(310)의 저장 공간(315) 일부를 데이터 고속 저장 방식을 위한 버퍼 영역으로 할당하고 있는 경우, 데이터 고속 저장 방식을 지원한다는 정보를 포함하는 응답 신호를 어플리케이션 프로세서(200)로 전송할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1009에서, 스토리지(300)의 플래시 메모리(310)의 데이터 고속 저장 방식을 위한 버퍼 공간(313)의 가용 용량을 확인할 수 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 1011에서, 플래시 메모리(310)의 버퍼 공간(313)의 가용 용량에 관한 정보를 포함하는 응답 신호를 어플리케이션 프로세서(200)로 전송할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1013에서, 확인한 버퍼 공간(313)의 가용 용량에 기초하여, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행할 시간을 결정할 수 있다. 플러시 동작이란, 예를 들어, 플래시 메모리(310)의 버퍼 공간(313)에 SLC 방식으로 저장된 데이터의 적어도 일부를 삭제하고, 상기 적어도 일부의 데이터를 플래시 메모리(310)의 저장 공간(315)에 TLC 방식으로 기록하는 동작일 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1015에서, 결정된 시간 동안 스토리지(300)가 상기 플러시 동작을 수행하도록 하는 제어 명령을 스토리지(300)로 전달할 수 있다.
다양한 실시예에 따른 스토리지(300)는, 동작 1017에서, 결정된 시간 동안 플러시 동작을 수행할 수 있다.
도 11은 본 개시의 다양한 실시예에 따른, 전자 장치의 어플리케이션 프로세서의 동작 흐름도이다.
동작 흐름도 1100에서, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1110에서, 전자 장치(101)의 절전 모드 진입을 위하여, 기 지정된 순서에 따라 전자 장치(101)의 구성 요소(예: 도 9에 도시된 전자 장치(101)의 구성 요소들) 각각에 대한 절전 작업을 수행할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1120에서, 전자 장치(101)의 절전 모드 진입을 위한 절차 중 스토리지(300)에 대한 절전 작업 시작에 응답하여, 스토리지(300)의 데이터 고속 저장 방식 지원 여부를 확인할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1130에서, 스토리지(300)가 데이터 고속 저장 방식을 지원하는 것에 응답하여, 플래시 메모리(310)의 데이터 고속 저장 방식을 위한 버퍼 공간(313)의 가용 용량을 확인할 수 있다. 플래시 메모리(310)는, 예를 들어, 비휘발성 메모리(예: 도 1의 비휘발성 메모리(134))일 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1140에서, 확인한 버퍼 공간(313)의 가용 용량에 기초하여 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행할 시간을 결정할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는¸동작 1150에서, 결정된 시간 동안 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하도록 스토리지(300)를 제어할 수 있다.
도 12은 본 개시의 다양한 실시예에 따른, 전자 장치의 어플리케이션 프로세서의 동작 흐름도이다. 도 9 및 도 10에서 설명한 내용과 중복되는 내용의 설명은 생략하겠다.
동작 흐름도 1200을 참조하면, 다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1201에서, 전자 장치(101)의 절전 모드 진입을 위한 절차를 시작할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1203에서, 전자 장치(101)의 절전 모드 진입을 위한 절차들 중 스토리지(300)에 대한 절전 작업을 시작할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1205에서, 스토리지(300)의 데이터 고속 저장 방식 지원 여부를 확인할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1207에서, 스토리지(300)가 고속 저장 방식을 지원하는 것에 응답하여, 플래시 메모리(310)의 데이터 고속 저장 방식을 위한 버퍼 공간(313)의 가용 용량을 확인할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1209에서, 확인한 버퍼 공간(313)의 가용 용량에 기초하여, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행할 시간을 결정할 수 있다. 어플리케이션 프로세서(200)는, 예를 들어, 확인한 버퍼 공간(313)의 가용 용량이 제1 임계 값 이하인 경우, 스토리지(300)가 제1 시간 동안 플래시 메모리(310)의 플러시 동작을 수행하도록 결정할 수 있다. 어플리케이션 프로세서(200)는, 예를 들어, 확인한 버퍼 공간(313)의 가용 용량이 제1 임계 값을 초과하고 제2 임계 값 이하인 경우, 스토리지(300)가 제2 시간 동안 플래시 메모리(310)의 플러시 동작을 수행하도록 결정할 수 있다. 어플리케이션 프로세서(200)는, 예를 들어, 확인한 버퍼 공간(313)의 가용 용량이 제2 임계 값을 초과하는 경우, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하지 않도록 결정할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1211에서, 결정된 시간 동안 플래시 메모리(310)의 플러시 동작을 수행하도록 스토리지(300)를 제어할 수 있다.
다양한 실시예에 따른 어플리케이션 프로세서(200)는, 동작 1213에서, 확인한 버퍼 공간(313)의 가용 용량에 기초하여 스토리지(300)에 대한 절전 작업을 완료 여부를 결정할 수 있다. 어플리케이션 프로세서(200)는, 예를 들어, 확인한 버퍼 공간(313)의 가용 용량이 제1 임계 값 이하인 경우, 스토리지(300)가 제1 시간 동안 플래시 메모리(310)의 플러시 동작을 수행한 이후 스토리지(300)에 대한 절전 작업을 중단하여(동작 1217) 절전 모드 진입을 위한 절차를 다시 시작하도록 제어할 수 있다. 어플리케이션 프로세서(200)는, 예를 들어, 확인한 버퍼 공간(313)의 가용 용량이 제1 임계 값을 초과하고 제2 임계 값 이하인 경우, 스토리지(300)가 제2 시간 동안 플래시 메모리(310)의 플러시 동작을 수행한 이후 스토리지(300)에 대한 절전 작업을 완료하고 전자 장치(101)의 절전 모드 진입을 위하여 절전 작업을 완료하지 않은 다른 구성 요소에 대한 절전 작업 절차를 진행(동작 1215)하도록 제어할 수 있다. 어플리케이션 프로세서(200)는, 예를 들어, 확인한 버퍼 공간(313)의 가용 용량이 제2 임계 값을 초과하는 경우, 스토리지(300)가 플래시 메모리(310)의 플러시 동작을 수행하지 않고 바로 스토리지(300)에 대한 절전 작업을 완료하여 전자 장치(101)의 절전 모드 진입을 위하여 절전 작업을 완료하지 않은 다른 구성 요소에 대한 절전 작업 절차를 진행(동작 1215)하도록 제어할 수 있다.
본 문서에 개시된 다양한 전자 장치(101)는, 버퍼 공간(313) 및 저장 공간(315)을 포함하는 비휘발성 메모리(310), 스토리지 디바이스 컨트롤러(320) 및 스토리지 인터페이스(330)를 포함하는 스토리지(300) 및 프로세서(200)를 포함할 수 있다. 상기 프로세서(200)는, 상기 스토리지(300)가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인하고, 상기 스토리지(300)가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 비휘발성 메모리(310)의 상기 저장 공간(315)에 기록하는 동작을 상기 스토리지 인터페이스(330)가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하도록 상기 스토리지(300)를 제어하고, 상기 스토리지 인터페이스(330)가 제2 상태로 동작 중 상기 스토리지(300)로 전달되는 요청이 기 설정된 시간 동안 발생하지 않는 것에 응답하여, 상기 스토리지 인터페이스(330)가 제1 상태로 진입하도록 상기 스토리지(300)를 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서, 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작은, 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하고, 상기 버퍼 공간(313)에 저장된 데이터를 삭제하는 동작일 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서, 상기 스토리지 인터페이스(330)의 제1 상태는, 상기 스토리지 인터페이스(330)가 슬립 모드로 동작하는 상태이고, 상기 스토리지 인터페이스(330)의 제2 상태는, 상기 스토리지 인터페이스(330)가 쓰기 요청을 수신한 것에 따라 상기 스토리지(300)가 상기 데이터 고속 저장 방식을 이용하여 데이터 쓰기 동작을 수행하는 상태일 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서, 상기 스토리지(300)는, 상기 스토리지 인터페이스(330)가 상기 제1 상태로 진입할 때마다, 상기 기능이 활성화되었는지 여부를 확인하고, 상기 기능이 활성화 된 것에 대한 응답으로, 상기 스토리지 인터페이스(330)가 상기 제1 상태로 동작하는 동안 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 비휘발성 메모리(310)의 상기 저장 공간(315)에 기록하는 동작을 수행하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)는 배터리 및 전력 관리 모듈(예: 도 5의 PMIC(500))을 더 포함할 수 있다. 전자 장치(101)의 프로세서(200)는 상기 스토리지 인터페이스(330)가 상기 제1 상태로 동작하는 동안 상기 배터리로부터 상기 비휘발성 메모리(310)로 전력이 공급되도록 상기 전력 관리 모듈을 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서, 상기 프로세서(200)는 상기 스토리지(300)가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 스토리지(300)로 상기 기능을 활성화하도록 하는 제어 명령을 상기 스토리지(300)로 전달하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서, 상기 프로세서(200)는 상기 스토리지(300)가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작 수행 중 새로운 쓰기 요청이 발생한 것에 응답하여, 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작을 중단하고 상기 스토리지 인터페이스(330)가 상기 제2 상태로 진입하도록 상기 스토리지(300)를 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 스토리지 제어 방법은 스토리지(300)가 상기 스토리지의 비휘발성 메모리(310)의 버퍼 공간(313)을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인하는 동작, 상기 스토리지(300)가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 비휘발성 메모리(310)의 저장 공간(315)에 기록하는 동작을 스토리지 인터페이스(#30)가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하는 동작 및 상기 스토리지 인터페이스(330)가 제2 상태로 동작 중 상기 스토리지(300)로 전달되는 요청이 기 설정된 시간 동안 발생하지 않는 것에 응답하여, 상기 스토리지 인터페이스(330)가 제1 상태로 진입하도록 상기 스토리지(300)를 제어하는 동작을 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 스토리지 제어 방법에서, 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작은, 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하고, 상기 버퍼 공간(313)에 저장된 데이터를 삭제하는 동작일 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 스토리지 제어 방법에서 상기 스토리지 인터페이스(330)의 제1 상태는, 상기 스토리지 인터페이스(330)가 슬립 모드로 동작하는 상태이고, 상기 스토리지 인터페이스(330)의 제2 상태는, 상기 스토리지 인터페이스(330)가 쓰기 요청을 수신한 것에 따라 상기 스토리지(300)가 상기 데이터 고속 저장 방식을 이용하여 데이터 쓰기 동작을 수행하는 상태일 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 스토리지 제어 방법은, 상기 스토리지(300)의 상기 스토리지 인터페이스(330)가 상기 제1 상태로 동작하는 동안 배터리로부터 상기 비휘발성 메모리(310)로 전력이 공급되도록 전력 관리 모듈을 제어하는 동작을 더 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)의 스토리지 제어 방법은 상기 스토리지(300)가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작 수행 중 새로운 쓰기 요청의 발생 여부를 확인하는 동작 및 상기 스토리지(300)가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작 수행 중 새로운 쓰기 요청이 발생 한 것에 응답하여, 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작을 중단하고, 상기 스토리지 인터페이스(330)가 상기 제2 상태로 진입하도록 상기 스토리지(300)를 제어하는 동작을 더 포함할 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)는 버퍼 공간(313) 및 저장 공간(315)을 포함하는 비휘발성 메모리(310), 스토리지 디바이스 컨트롤러(320) 및 스토리지 인터페이스(330)를 포함하는 스토리지(300), 터치 스크린(940), 통신 회로(950) 및 프로세서(200)를 포함할 수 있다. 다양한 실시예에 따른 프로세서(200)는 상기 전자 장치(101)의 절전 모드 진입을 위하여, 기 지정된 순서에 따라 상기 터치 스크린(940), 상기 통신 회로(950) 및 상기 스토리지(300)를 포함하는 상기 전자 장치(101)의 구성 요소 각각에 대한 절전 작업들을 수행하고, 상기 전자 장치(101)의 구성 요소 각각에 대한 절전 작업들 중 상기 스토리지(300)에 대한 절전 작업 시작에 응답하여, 상기 스토리지(300)의 데이터 고속 저장 방식 지원 여부를 확인하고, 상기 스토리지(300)가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 비휘발성 메모리(310)의 상기 데이터 고속 저장 방식을 위한 버퍼 공간(313)의 가용 용량을 확인하고, 상기 확인한 버퍼 공간(313)의 가용 용량에 기초하여, 상기 스토리지(300)가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 비휘발성 메모리(310)의 저장 공간(315)에 기록하는 동작을 수행할 시간을 결정하고, 상기 결정된 시간 동안 상기 스토리지(300)가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작을 수행하도록 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(200)는, 상기 확인한 버퍼 공간(313)의 가용 용량에 기초하여, 상기 스토리지(300)에 대한 절전 작업의 완료 여부를 결정하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(200)는, 상기 확인한 버퍼 공간(313)의 가용 용량이 제1 임계 값 이하인 것에 응답하여, 상기 스토리지(300)가 제1 시간 동안 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작을 수행하도록 제어하고, 상기 제1 시간 경과 후 상기 스토리지에 대한 절전 작업을 중단하여 상기 전자 장치(101)의 상기 절전 모드 진입을 위한 상기 전자 장치(101)의 구성 요소 각각에 대한 절전 작업들을 다시 시작하도록 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(200)는, 상기 확인한 버퍼 공간(313)의 가용 용량이 상기 제1 임계 값을 초과하고 제2 임계 값 이하인 것에 응답하여, 상기 스토리지(300)가 제2 시간 동안 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작을 수행하도록 제어하고, 상기 제2 시간 경과 후 상기 스토리지(300)에 대한 절전 작업을 완료하도록 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(200)는, 상기 확인한 버퍼 공간(313)의 가용 용량이 상기 제2 임계 값을 초과하는 것에 응답하여, 상기 스토리지(300)의 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작 수행 없이 상기 스토리지(300)에 대한 절전 작업을 완료하도록 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)는 배터리 및 전력 관리 모듈(예: 도 5의 PMIC(500))을 더 포함할 수 있다. 다양한 실시예에 따른 프로세서(200)는 상기 스토리지가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작을 수행하는 동안 상기 배터리로부터 상기 비휘발성 메모리(310)로 전력이 공급되도록 상기 전력 관리 모듈을 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(200)는, 상기 스토리지가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작을 수행하는 동안 쓰기 요청을 상기 스토리지(300)로 전달하지 않도록 제어하도록 구성될 수 있다.
본 문서에 개시된 다양한 실시예에 따른 전자 장치(101)에서 상기 프로세서(200)는, 상기 스토리지(300)가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작을 수행하는 동안 상기 전자 장치(101)에 새로운 작업이 발생한 것에 대한 응답으로, 상기 스토리지(300)가 상기 비휘발성 메모리(310)의 상기 버퍼 공간(313)에 저장된 데이터를 상기 저장 공간(315)에 기록하는 동작을 중단하도록 제어하고, 상기 스토리지(300)에 대한 절전 작업을 중단하여 상기 전자 장치(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항에 있어서,
    상기 스토리지 인터페이스의 제1 상태는, 상기 스토리지 인터페이스가 슬립 모드로 동작하는 상태이고,
    상기 스토리지 인터페이스의 제2 상태는, 상기 스토리지 인터페이스가 쓰기 요청을 수신한 것에 따라 상기 스토리지가 상기 데이터 고속 저장 방식을 이용하여 데이터 쓰기 동작을 수행하는 상태인, 전자 장치.
  4. 제1항에 있어서,
    상기 스토리지는,
    상기 스토리지 인터페이스가 상기 제1 상태로 진입할 때마다, 상기 기능이 활성화되었는지 여부를 확인하고,
    상기 기능이 활성화 된 것에 대한 응답으로, 상기 스토리지 인터페이스가 상기 제1 상태로 동작하는 동안 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 비휘발성 메모리의 상기 저장 공간에 기록하는 동작을 수행하도록 구성된, 전자 장치.
  5. 제1항에 있어서,
    배터리; 및
    전력 관리 모듈을 더 포함하고,
    상기 프로세서는
    상기 스토리지 인터페이스가 상기 제1 상태로 동작하는 동안 상기 배터리로부터 상기 비휘발성 메모리로 전력이 공급되도록 상기 전력 관리 모듈을 제어하도록 구성된, 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는
    상기 스토리지가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 스토리지로 상기 기능을 활성화하도록 하는 제어 명령을 상기 스토리지로 전달하도록 구성된, 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는
    상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작 수행 중 새로운 쓰기 요청이 발생한 것에 응답하여, 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 중단하고 상기 스토리지 인터페이스가 상기 제2 상태로 진입하도록 상기 스토리지를 제어하도록 구성된, 전자 장치.
  8. 전자 장치의 스토리지 제어 방법에 있어서,
    스토리지가 상기 스토리지의 비휘발성 메모리의 버퍼 공간을 이용하는 데이터 고속 저장 방식을 지원하는 지 여부를 확인하는 동작;
    상기 스토리지가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 비휘발성 메모리의 저장 공간에 기록하는 동작을 스토리지 인터페이스가 제1 상태로 동작하는 동안 수행하도록 하는 기능을 활성화하는 동작; 및
    상기 스토리지 인터페이스가 제2 상태로 동작 중 상기 스토리지로 전달되는 요청이 기 설정된 시간 동안 발생하지 않는 것에 응답하여, 상기 스토리지 인터페이스가 제1 상태로 진입하도록 상기 스토리지를 제어하는 동작을 포함하는, 스토리지 제어 방법.
  9. 제8항에 있어서,
    상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작은, 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하고, 상기 버퍼 공간에 저장된 데이터를 삭제하는 동작인, 스토리지 제어 방법.
  10. 제8항에 있어서,
    상기 스토리지 인터페이스의 제1 상태는, 상기 스토리지 인터페이스가 슬립 모드로 동작하는 상태이고,
    상기 스토리지 인터페이스의 제2 상태는, 상기 스토리지 인터페이스가 쓰기 요청을 수신한 것에 따라 상기 스토리지가 상기 데이터 고속 저장 방식을 이용하여 데이터 쓰기 동작을 수행하는 상태인, 스토리지 제어 방법.
  11. 제8항에 있어서,
    상기 스토리지의 상기 스토리지 인터페이스가 상기 제1 상태로 동작하는 동안 배터리로부터 상기 비휘발성 메모리로 전력이 공급되도록 전력 관리 모듈을 제어하는 동작을 더 포함하는, 스토리지 제어 방법.
  12. 제8항에 있어서,
    상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작 수행 중 새로운 쓰기 요청의 발생 여부를 확인하는 동작; 및
    상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작 수행 중 새로운 쓰기 요청이 발생 한 것에 응답하여, 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 중단하고, 상기 스토리지 인터페이스가 상기 제2 상태로 진입하도록 상기 스토리지를 제어하는 동작을 더 포함하는, 스토리지 제어 방법.
  13. 전자 장치에 있어서,
    버퍼 공간 및 저장 공간을 포함하는 비휘발성 메모리, 스토리지 디바이스 컨트롤러 및 스토리지 인터페이스를 포함하는 스토리지;
    터치 스크린;
    통신 회로; 및
    프로세서를 포함하고,
    상기 프로세서는, 상기 전자 장치의 절전 모드 진입을 위하여, 기 지정된 순서에 따라 상기 터치 스크린, 상기 통신 회로 및 상기 스토리지를 포함하는 상기 전자 장치의 구성 요소 각각에 대한 절전 작업들을 수행하고,
    상기 전자 장치의 구성 요소 각각에 대한 절전 작업들 중 상기 스토리지에 대한 절전 작업 시작에 응답하여, 상기 스토리지의 데이터 고속 저장 방식 지원 여부를 확인하고,
    상기 스토리지가 상기 데이터 고속 저장 방식을 지원하는 것에 응답하여, 상기 비휘발성 메모리의 상기 데이터 고속 저장 방식을 위한 버퍼 공간의 가용 용량을 확인하고,
    상기 확인한 버퍼 공간의 가용 용량에 기초하여, 상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 비휘발성 메모리의 저장 공간에 기록하는 동작을 수행할 시간을 결정하고,
    상기 결정된 시간 동안 상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 수행하도록 제어하도록 구성된, 전자 장치.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 확인한 버퍼 공간의 가용 용량에 기초하여, 상기 스토리지에 대한 절전 작업의 완료 여부를 결정하도록 구성된, 전자 장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 확인한 버퍼 공간의 가용 용량이 제1 임계 값 이하인 것에 응답하여, 상기 스토리지가 제1 시간 동안 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 수행하도록 제어하고,
    상기 제1 시간 경과 후 상기 스토리지에 대한 절전 작업을 중단하여 상기 전자 장치의 상기 절전 모드 진입을 위한 상기 전자 장치의 구성 요소 각각에 대한 절전 작업들을 다시 시작하도록 제어하도록 구성된, 전자 장치.
  16. 제14항에 있어서,
    상기 프로세서는,
    상기 확인한 버퍼 공간의 가용 용량이 상기 제1 임계 값을 초과하고 제2 임계 값 이하인 것에 응답하여, 상기 스토리지가 제2 시간 동안 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 수행하도록 제어하고,
    상기 제2 시간 경과 후 상기 스토리지에 대한 절전 작업을 완료하도록 제어하도록 구성된, 전자 장치.
  17. 제14항에 있어서,
    상기 프로세서는,
    상기 확인한 버퍼 공간의 가용 용량이 상기 제2 임계 값을 초과하는 것에 응답하여, 상기 스토리지의 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작 수행 없이 상기 스토리지에 대한 절전 작업을 완료하도록 제어하도록 구성된, 전자 장치.
  18. 제13항에 있어서,
    배터리; 및
    전력 관리 모듈을 더 포함하고,
    상기 프로세서는
    상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 수행하는 동안 상기 배터리로부터 상기 비휘발성 메모리로 전력이 공급되도록 상기 전력 관리 모듈을 제어하도록 구성된, 전자 장치.
  19. 제13항에 있어서,
    상기 프로세서는,
    상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 수행하는 동안 쓰기 요청을 상기 스토리지로 전달하지 않도록 제어하도록 구성된, 전자 장치.
  20. 제13항에 있어서,
    상기 프로세서는,
    상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 수행하는 동안 상기 전자 장치에 새로운 작업이 발생한 것에 대한 응답으로, 상기 스토리지가 상기 비휘발성 메모리의 상기 버퍼 공간에 저장된 데이터를 상기 저장 공간에 기록하는 동작을 중단하도록 제어하고,
    상기 스토리지에 대한 절전 작업을 중단하여 상기 전자 장치의 상기 절전 모드 진입을 위한 절차를 다시 시작하도록 제어하도록 구성된, 전자 장치.
KR1020190069161A 2019-06-12 2019-06-12 전자 장치 및 그의 저장 공간 이용 방법 KR20200142219A (ko)

Priority Applications (11)

Application Number Priority Date Filing Date Title
KR1020190069161A KR20200142219A (ko) 2019-06-12 2019-06-12 전자 장치 및 그의 저장 공간 이용 방법
BR112021024998A BR112021024998A2 (pt) 2019-06-12 2020-05-26 Dispositivo eletrônico e método de utilizar seu espaço de armazenamento
PCT/KR2020/006801 WO2020251192A1 (en) 2019-06-12 2020-05-26 Electronic device and method of utilizing storage space thereof
US16/891,388 US11392318B2 (en) 2019-06-12 2020-06-03 Electronic device and method of utilizing storage space thereof
CN202210483827.7A CN114968093A (zh) 2019-06-12 2020-06-03 电子装置及利用其存储空间的方法
CN202010493211.9A CN112083876B (zh) 2019-06-12 2020-06-03 电子装置及利用其存储空间的方法
EP23174713.0A EP4235442A3 (en) 2019-06-12 2020-06-11 Electronic device and method of utilizing storage space thereof
EP20179543.2A EP3751407B1 (en) 2019-06-12 2020-06-11 Electronic device and method of utilizing storage space thereof
ES20179543T ES2965751T3 (es) 2019-06-12 2020-06-11 Dispositivo electrónico y procedimiento de uso de su espacio de almacenamiento
ZA2021/10284A ZA202110284B (en) 2019-06-12 2021-12-10 Electronic device and method of utilizing storage space thereof
US17/866,012 US11704072B2 (en) 2019-06-12 2022-07-15 Electronic device and method of utilizing storage space thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190069161A KR20200142219A (ko) 2019-06-12 2019-06-12 전자 장치 및 그의 저장 공간 이용 방법

Publications (1)

Publication Number Publication Date
KR20200142219A true KR20200142219A (ko) 2020-12-22

Family

ID=71094088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190069161A KR20200142219A (ko) 2019-06-12 2019-06-12 전자 장치 및 그의 저장 공간 이용 방법

Country Status (8)

Country Link
US (2) US11392318B2 (ko)
EP (2) EP4235442A3 (ko)
KR (1) KR20200142219A (ko)
CN (2) CN114968093A (ko)
BR (1) BR112021024998A2 (ko)
ES (1) ES2965751T3 (ko)
WO (1) WO2020251192A1 (ko)
ZA (1) ZA202110284B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11119659B2 (en) * 2019-08-12 2021-09-14 Micron Technology, Inc. Write buffer implementation for multiple memory array memory spaces
TWI739676B (zh) * 2020-11-25 2021-09-11 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN114168076A (zh) * 2021-12-06 2022-03-11 陕西空天动力研究院有限公司 一种数据存储方法、装置及系统
TWI793932B (zh) * 2021-12-21 2023-02-21 建興儲存科技股份有限公司 固態儲存裝置及其相關的寫入控制方法

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040160968A1 (en) 2003-02-12 2004-08-19 Chae-Ho Ko Method for interconnecting of system for interconnecting wired and wireless phone services
US7788427B1 (en) * 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
KR101086072B1 (ko) 2004-09-18 2011-11-22 삼성전자주식회사 Agps 정보를 이용한 단말 위치 결정 방법
KR100666174B1 (ko) 2005-04-27 2007-01-09 삼성전자주식회사 3-레벨 불휘발성 반도체 메모리 장치 및 이에 대한구동방법
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
KR100634458B1 (ko) 2005-07-04 2006-10-16 삼성전자주식회사 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치
KR101257848B1 (ko) 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
JP2007193866A (ja) 2006-01-17 2007-08-02 Toshiba Corp 情報記録装置及びその制御方法
US8478287B2 (en) 2006-06-07 2013-07-02 Samsung Electronics Co., Ltd. Method for positioning target terminal while protecting privacy of user thereof
KR101223788B1 (ko) 2006-06-09 2013-01-17 삼성전자주식회사 위치 정보 제공 시스템의 목표단말기 위치값 제공 방법
KR100809320B1 (ko) 2006-09-27 2008-03-05 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법
KR100855467B1 (ko) 2006-09-27 2008-09-01 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR100833188B1 (ko) 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
US7852654B2 (en) 2006-12-28 2010-12-14 Hynix Semiconductor Inc. Semiconductor memory device, and multi-chip package and method of operating the same
KR100875539B1 (ko) 2007-01-17 2008-12-26 삼성전자주식회사 프로그램 방식을 선택할 수 있는 메모리 시스템
KR100855972B1 (ko) 2007-01-23 2008-09-02 삼성전자주식회사 서로 다른 독출 대기 시간을 가지는 복수개의 메모리 셀어레이들을 구비하는 불휘발성 메모리 시스템 및 상기불휘발성 메모리 시스템의 데이터 독출 방법
KR100819102B1 (ko) 2007-02-06 2008-04-03 삼성전자주식회사 개선된 멀티 페이지 프로그램 동작을 갖는 불휘발성 반도체메모리 장치
JP2008225916A (ja) * 2007-03-13 2008-09-25 Fujitsu Ltd データバックアップ時の電力低減装置
KR100890017B1 (ko) 2007-04-23 2009-03-25 삼성전자주식회사 프로그램 디스터브를 감소시킬 수 있는 플래시 메모리 장치및 그것의 프로그램 방법
WO2008140171A1 (en) 2007-05-14 2008-11-20 Samsung Electronics Co., Ltd. Apparatus for reading data and method using the same
KR100892583B1 (ko) 2007-06-08 2009-04-08 삼성전자주식회사 커플링을 고려한 메모리 셀의 데이터 프로그램 장치 및 그방법
KR100838292B1 (ko) 2007-06-20 2008-06-17 삼성전자주식회사 메모리 셀의 읽기 레벨 제어 장치 및 그 방법
KR101301774B1 (ko) 2007-07-23 2013-09-02 삼성전자주식회사 메모리 셀의 데이터 읽기 장치 및 방법
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US8429358B2 (en) 2007-08-14 2013-04-23 Samsung Electronics Co., Ltd. Method and data storage device for processing commands
KR101382562B1 (ko) 2007-08-24 2014-04-10 삼성전자주식회사 복수개의 뱅크들을 동시에 프로그램할 수 있는 반도체메모리 장치 및 방법
US8706951B2 (en) * 2008-07-18 2014-04-22 Marvell World Trade Ltd. Selectively accessing faster or slower multi-level cell memory
KR101548175B1 (ko) 2008-11-05 2015-08-28 삼성전자주식회사 싱글 레벨 메모리 셀 블락과 멀티 레벨 메모리 셀 블락을 포함하는 불휘발성 메모리 장치의 마모 레벨링 방법
KR101515098B1 (ko) 2008-11-20 2015-04-24 삼성전자주식회사 플래시 메모리 장치 및 이의 독출 방법
US8205037B2 (en) 2009-04-08 2012-06-19 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips operating at different voltages
US8402243B2 (en) 2010-02-25 2013-03-19 Apple Inc. Dynamically allocating number of bits per cell for memory locations of a non-volatile memory
US9063728B2 (en) 2010-03-17 2015-06-23 Apple Inc. Systems and methods for handling hibernation data
KR101678407B1 (ko) 2010-05-10 2016-11-23 삼성전자주식회사 데이터 저장 장치 및 그것의 프로그램 방법
KR101662827B1 (ko) 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US8832507B2 (en) 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks
TWI451435B (zh) * 2010-10-08 2014-09-01 Phison Electronics Corp 非揮發性記憶體儲存裝置、記憶體控制器與資料儲存方法
KR101727553B1 (ko) 2010-11-04 2017-04-17 삼성전자주식회사 휴대용 단말기에서 다수의 블루투스 기기와 통신하기 위한 장치 및 방법
KR101699786B1 (ko) 2010-11-25 2017-01-26 삼성전자주식회사 위치 서비스 기반 시스템에서 센서노드의 측위를 위한 장치 및 방법
US8886990B2 (en) 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
KR20120126389A (ko) 2011-05-11 2012-11-21 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 온칩 버퍼 프로그램 방법
KR101861170B1 (ko) 2011-08-17 2018-05-25 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
KR101903091B1 (ko) 2011-10-05 2018-10-02 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
KR101919902B1 (ko) 2011-10-18 2018-11-20 삼성전자 주식회사 메모리 장치의 데이터 독출 방법
KR20130043474A (ko) 2011-10-20 2013-04-30 에스케이하이닉스 주식회사 통합 메모리 블록 및 이를 포함하는 데이터 처리 시스템
KR101845510B1 (ko) 2011-10-25 2018-04-05 삼성전자주식회사 반도체 저장 장치 및 시스템
KR20130049330A (ko) 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 메모리 관리 기법
KR20130049332A (ko) 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
KR101874408B1 (ko) 2011-11-09 2018-07-05 삼성전자주식회사 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템
KR101813182B1 (ko) 2011-11-16 2017-12-29 삼성전자주식회사 비휘발성 메모리 소자를 포함하는 다치 논리 장치
KR102049306B1 (ko) 2011-12-12 2019-11-27 삼성전자주식회사 메모리 셀의 리드 또는 라이트 동작 방법 과 장치 및 이를 포함하는 메모리 시스템
US9251055B2 (en) * 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
US8935459B2 (en) 2012-03-08 2015-01-13 Apple Inc. Heuristics for programming data in a non-volatile memory
KR101967895B1 (ko) 2012-05-02 2019-04-11 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 구동 방법
KR101959567B1 (ko) 2012-05-14 2019-03-18 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
CN104641419A (zh) 2012-07-13 2015-05-20 三星电子株式会社 固态驱动器控制器、固态驱动器、固态驱动器的数据处理方法、多通道固态驱动器、raid控制器以及其中记录有用于向固态驱动器提供顺序信息的计算机程序的计算机可读记录介质
KR102083271B1 (ko) 2012-07-31 2020-03-02 삼성전자주식회사 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법
US8942754B2 (en) * 2012-08-07 2015-01-27 Sharp Laboratories Of America, Inc. Devices for allocating power for uplink transmission
KR20140033964A (ko) 2012-09-11 2014-03-19 삼성전자주식회사 단말기의 데이터 저장장치 및 방법
TWI493447B (zh) * 2013-01-18 2015-07-21 Acer Inc 雙碟式資料快取方法及系統
US8990458B2 (en) 2013-02-28 2015-03-24 Kabushiki Kaisha Toshiba Controller, semiconductor storage device and method of controlling data writing
EP2973571B1 (en) * 2013-03-15 2020-04-22 Intel Corporation A memory system
KR102081415B1 (ko) 2013-03-15 2020-02-25 삼성전자주식회사 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법
KR102098246B1 (ko) 2013-04-29 2020-04-07 삼성전자 주식회사 호스트, 저장 장치, 및 이를 포함하는 시스템의 동작 방법
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US20150074490A1 (en) 2013-09-06 2015-03-12 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
KR102190399B1 (ko) 2013-10-11 2020-12-11 삼성전자주식회사 신뢰성을 보장할 수 있는 불휘발성 메모리 장치의 동작 방법 및 상기 방법을 수행하는 메모리 시스템
KR102127105B1 (ko) 2013-11-11 2020-06-29 삼성전자 주식회사 비휘발성 메모리 장치의 구동 방법
US9326298B2 (en) * 2013-11-15 2016-04-26 Verizon Patent And Licensing Inc. Wireless device background uplink small data packet
KR102140792B1 (ko) 2013-12-24 2020-08-03 삼성전자주식회사 데이터 중복 제거를 수행할 수 있는 데이터 저장 장치의 동작 방법들
KR102100161B1 (ko) 2014-02-04 2020-04-14 삼성전자주식회사 Gpu 데이터 캐싱 방법 및 그에 따른 데이터 프로세싱 시스템
KR102190670B1 (ko) 2014-03-03 2020-12-14 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
KR102289919B1 (ko) 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
US20160103478A1 (en) * 2014-10-08 2016-04-14 Kabushiki Kaisha Toshiba Memory system and memory controller
KR102287760B1 (ko) 2014-10-29 2021-08-09 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
KR20160058458A (ko) 2014-11-17 2016-05-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102295208B1 (ko) 2014-12-19 2021-09-01 삼성전자주식회사 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
KR102295223B1 (ko) * 2015-01-13 2021-09-01 삼성전자주식회사 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치
US9558839B2 (en) 2015-03-09 2017-01-31 Toshiba Corporation Power fail saving modes in solid state drive with MLC memory
US10008250B2 (en) * 2015-03-27 2018-06-26 Intel Corporation Single level cell write buffering for multiple level cell non-volatile memory
US11010054B1 (en) * 2015-06-10 2021-05-18 EMC IP Holding Company LLC Exabyte-scale data processing system
KR102274280B1 (ko) 2015-06-22 2021-07-07 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법
US20170024278A1 (en) 2015-07-24 2017-01-26 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding data in memory system
KR102379202B1 (ko) 2015-09-30 2022-03-28 삼성전자주식회사 전자 장치 및 그 부팅 방법
KR20170046862A (ko) 2015-10-21 2017-05-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US20170161202A1 (en) 2015-12-02 2017-06-08 Samsung Electronics Co., Ltd. Flash memory device including address mapping for deduplication, and related methods
TWI672706B (zh) 2015-12-14 2019-09-21 南韓商愛思開海力士有限公司 記憶體儲存裝置及其操作方法
US9996268B2 (en) 2015-12-18 2018-06-12 Toshiba Memory Corporation Memory system and control method of the same
US10572651B2 (en) 2016-02-16 2020-02-25 Samsung Electronics Co., Ltd. Key generating method and apparatus using characteristic of memory
US9990023B2 (en) 2016-03-28 2018-06-05 Apple Inc. Systems and methods for handling sudden power failures in solid state drives
US20170285967A1 (en) 2016-03-29 2017-10-05 Samsung Electronics Co., Ltd. Multi-ware smart ssd
KR102550343B1 (ko) 2016-07-27 2023-07-03 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 그것의 동작 방법
US9891859B1 (en) 2016-08-09 2018-02-13 Apple Inc. Systems and methods for managing non-volatile memory based on temperature
KR20180031289A (ko) 2016-09-19 2018-03-28 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10528264B2 (en) * 2016-11-04 2020-01-07 Samsung Electronics Co., Ltd. Storage device and data processing system including the same
KR102319189B1 (ko) 2017-06-21 2021-10-28 삼성전자주식회사 스토리지 장치, 이를 포함하는 스토리지 시스템 및 스토리지 장치의 동작 방법
US10606484B2 (en) 2017-06-23 2020-03-31 Google Llc NAND flash storage device with NAND buffer
KR102427327B1 (ko) 2017-07-25 2022-08-01 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것을 포함하는 저장 장치
JP7030463B2 (ja) * 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
US10705590B2 (en) 2017-11-28 2020-07-07 Google Llc Power-conserving cache memory usage
US10877686B2 (en) 2018-04-13 2020-12-29 Intel Corporation Mass storage device with host initiated buffer flushing
US10909040B2 (en) * 2018-04-19 2021-02-02 Intel Corporation Adaptive calibration of nonvolatile memory channel based on platform power management state
CN109471596B (zh) 2018-10-31 2022-03-18 北京小米移动软件有限公司 数据写入方法、装置、设备及存储介质
KR20210092964A (ko) * 2020-01-17 2021-07-27 삼성전자주식회사 이미지 센서 및 이를 포함하는 카메라 모듈

Also Published As

Publication number Publication date
US20200393995A1 (en) 2020-12-17
US11392318B2 (en) 2022-07-19
ES2965751T3 (es) 2024-04-16
BR112021024998A2 (pt) 2022-01-25
EP4235442A2 (en) 2023-08-30
CN112083876A (zh) 2020-12-15
US11704072B2 (en) 2023-07-18
EP3751407C0 (en) 2023-09-13
EP3751407A1 (en) 2020-12-16
US20220350540A1 (en) 2022-11-03
CN114968093A (zh) 2022-08-30
EP4235442A3 (en) 2023-10-04
EP3751407B1 (en) 2023-09-13
ZA202110284B (en) 2023-10-25
CN112083876B (zh) 2022-05-24
WO2020251192A1 (en) 2020-12-17

Similar Documents

Publication Publication Date Title
US11704072B2 (en) Electronic device and method of utilizing storage space thereof
KR102619954B1 (ko) 데이터를 처리하기 위한 방법 및 이를 지원하는 전자 장치
US9542267B2 (en) Enhanced recovery mechanisms
CN111937063B (zh) 用于控制信号的输出定时的电子设备和方法
KR20150009295A (ko) 불휘발성 메모리 장치 및 그것의 슬리프 상태 제어 방법
KR20190101171A (ko) 근거리 통신 회로의 멀티 모달 운영방법 및 장치
WO2021233363A1 (zh) 计算设备及其bios更新方法和介质
GB2463809A (en) Peripheral device operation method, peripheral device and host
CN111788820B (zh) 自适应地控制低电力显示模式的方法及其电子装置
KR102516583B1 (ko) 전자 장치 및 전자 장치의 업데이트 제어 방법
EP3706003B1 (en) Electronic device and method for utilizing memory space thereof
CN111399874A (zh) 一种系统升级方法、装置、存储介质及智能穿戴设备
KR20210037320A (ko) 어플리케이션 실행 방법 및 장치
US11086538B2 (en) Method and electronic device for initializing storage
KR20210046426A (ko) 어플리케이션의 최적화 방법 및 이를 지원하는 전자 장치
RU2815054C2 (ru) Электронное устройство и его способ использования пространства для хранения
KR20210101693A (ko) 스토리지를 포함하는 전자 장치 및 이를 이용한 스토리지로 파일 시스템의 디스카드 커맨드 전달 방법
KR20210017247A (ko) 휘도를 조절하는 전자 장치 및 그 휘도 조절 방법
KR20200107716A (ko) 전자 장치 및 그의 저장 공간 이용 방법
US20230236685A1 (en) Electronic device and control method thereof
EP4293501A1 (en) Electronic device and operation method of electronic device
KR20220142197A (ko) 전자 장치 및 전자 장치의 동작 방법
KR20210101690A (ko) 전자 장치 및 전자 장치의 초기화 방법
KR20200099306A (ko) 전자 장치 및 상기 전자 장치에서 실행되는 복수의 어플리케이션의 라이프 사이클을 관리하는 방법

Legal Events

Date Code Title Description
A201 Request for examination