KR20160132519A - 전자 장치 및 이의 메모리 할당 방법 - Google Patents

전자 장치 및 이의 메모리 할당 방법 Download PDF

Info

Publication number
KR20160132519A
KR20160132519A KR1020150065120A KR20150065120A KR20160132519A KR 20160132519 A KR20160132519 A KR 20160132519A KR 1020150065120 A KR1020150065120 A KR 1020150065120A KR 20150065120 A KR20150065120 A KR 20150065120A KR 20160132519 A KR20160132519 A KR 20160132519A
Authority
KR
South Korea
Prior art keywords
page
memory
area
movable
page area
Prior art date
Application number
KR1020150065120A
Other languages
English (en)
Other versions
KR102402789B1 (ko
Inventor
김권식
박지환
김기범
이효정
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150065120A priority Critical patent/KR102402789B1/ko
Priority to EP16792987.6A priority patent/EP3296879B1/en
Priority to US15/570,047 priority patent/US10255175B2/en
Priority to PCT/KR2016/004934 priority patent/WO2016182341A1/ko
Publication of KR20160132519A publication Critical patent/KR20160132519A/ko
Application granted granted Critical
Publication of KR102402789B1 publication Critical patent/KR102402789B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0253Garbage collection, i.e. reclamation of unreferenced 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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

본 발명의 실시 예에 따른 전자 장치는, 복수의 페이지를 포함하는 메모리; 및 메모리 할당 요청 시 메모리 단편화 제거 요청이 발생하는 경우, 상기 메모리 내 복수의 페이지 영역에 대한 페이지 상태 정보를 기반으로 상기 복수의 페이지 영역 중 이동 불가능 페이지가 없는 페이지 영역을 선택하고, 상기 선택된 페이지 영역 내의 이동 가능 페이지를 이동시키며, 상기 이동 가능 페이지의 이동 후, 상기 선택된 페이지 영역을 상기 메모리 할당 요청에 대응하여 할당하는 제어부를 포함하는 것을 특징으로 한다. 다만, 상기 실시 예에 한정되지 않으며 다른 실시 예가 가능하다.

Description

전자 장치 및 이의 메모리 할당 방법{ELECTRONIC DEVICE AND METHOD FOR ALLOCATING MEMORY THEREOF}
본 발명은 전자 장치 및 전자 장치의 메모리 단편화 제거를 통한 메모리 할당 방법에 관한 것이다.
다양한 형태의 개인용 모바일 제품들이 널리 보급되면서, 모바일 제품에 탑재되는 AP(Application Processor)도 지속적으로 발전하여, PC급으로 성능이 향상되고 있고, 더 많은 기능들을 제공하고 있다. 그러나 한 편으로는, 배터리의 제약이 있는 모바일 장치의 특성 때문에, 소비 전력 감소 역시 지속적으로 중요한 문제가 되고 있다. 고성능과 저전력을 모두 만족시키기 위해, 다양한 방법들이 AP에 적용되고 있다.
모바일 장치를 비롯한 전자 장치에는 컴퓨팅 시스템이 적용되고, 컴퓨팅 시스템은 연산의 대상이 되는 데이터를 저장할 수 있는 메모리를 포함한다. 그리고, 컴퓨팅 시스템은 메모리를 관리하기 위한 운영 체체(operating system, 이하 OS)를 운용할 수 있다. 예컨대, 실행되는 어플리케이션과 같은 태스크(task)가 OS에게 메모리 할당을 요청하면, OS는 가용한 메모리를 태스크에 할당한다. 태스크는 할당된 메모리 사용이 종료된 경우, 다시 OS에게 메모리를 반환한다.
태스크가 OS에게 메모리 할당을 요청하고 사용이 종료된 다음 메모리를 OS에 반환하는 순서는 서로 대칭적이지 않다. 특히 멀티 태스킹 환경에서는 다수의 태스크가 스케줄링 되며 메모리 할당과 해제를 반복하기 때문에, 메모리가 점점 단편화 될 수 있다. 메모리 단편화가 심해지면 전체 가용(free) 메모리가 충분하더라도 크기가 큰 메모리를 할당해줄 수 없게 되며, OS는 단편화 제거를 수행하게 된다. 본 발명은 OS가 메모리 단편화 제거를 수행할 때, 연속된 가용 메모리 확보에 실패하여 메모리 단편화 제거 작업의 수행 시간이 늘어나는 문제를 해결하는 방법을 제공하는 것을 목적으로 한다.
본 발명의 한 실시 예에 따른 전자 장치는, 복수의 페이지를 포함하는 메모리; 및 메모리 할당 요청 시 메모리 단편화 제거 요청이 발생하는 경우, 상기 메모리 내 복수의 페이지 영역에 대한 페이지 상태 정보를 기반으로 상기 복수의 페이지 영역 중 이동 불가능 페이지가 없는 페이지 영역을 선택하고, 상기 선택된 페이지 영역 내의 이동 가능 페이지를 이동시키며, 상기 이동 가능 페이지의 이동 후, 상기 선택된 페이지 영역을 상기 메모리 할당 요청에 대응하여 할당하는 제어부를 포함하는 것을 특징으로 한다.
본 발명의 한 실시 예에 따른 전자 장치의 메모리 할당 방법은, 메모리 할당 요청 시 메모리 단편화 제거 요청이 발생하는 경우, 상기 메모리 내 복수의 페이지 영역에 대한 페이지 상태 정보를 기반으로 상기 복수의 페이지 영역 중 이동 불가능 페이지가 없는 페이지 영역을 선택하는 단계; 상기 선택된 페이지 영역 내의 이동 가능 페이지를 이동시키는 단계; 및 상기 이동 가능 페이지의 이동 후, 상기 선택된 페이지 영역을 상기 메모리 할당 요청에 대응하여 할당하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다양한 실시 예에 따르면 OS가 메모리 단편화 제거를 수행할 때 보다 적은 대기 시간(latency)를 소모할 수 있다.
또한, 본 발명의 다양한 실시 예에 따르면 전자 장치의 메모리 할당 동작과 관련하여 소모되는 전력을 감소시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 장치의 블록도를 도시한다.
도 2는 메모리 단편화 제거를 설명하기 위한 도면을 도시한다.
도 3은 이동 불가능 페이지에 의해 메모리 할당이 불가능한 경우를 설명하기 위한 도면을 도시한다.
도 4는 본 발명의 실시 예에 따른 제어부의 메모리 할당 동작을 나타내는 흐름도를 도시한다.
도 5는 본 발명의 실시 예에 따른 단편화 제거 모듈의 구성의 예시를 나타내는 블록도를 도시한다.
도 6은 본 발명의 실시 예에 따른 단편화 제거 모듈의 메모리 할당을 위한 단편화 제거 동작을 나타내는 흐름도를 도시한다.
도 7은 본 발명의 실시 예에 따른 제어부가 관리하는 페이지 상태 정보에 대응하는 페이지 영역을 설명하기 위한 도면을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명을 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조부호가 사용되었다.
본 발명 가운데 사용될 수 있는 "포함한다" 또는 "포함할 수 있다" 등의 표현은 개시된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한, 본 발명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명에서 "또는" 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, "A 또는 B"는, A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.
본 발명 가운데 "제 1, " "제2, " "첫째, "또는 "둘째," 등의 표현들이 본 발명의 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분 짓기 위해 사용될 수 있다. 예를 들어, 제1 사용자 기기와 제 2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 발명에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 명세서에서 "전자 장치"는, 컴퓨팅 시스템이 적용되는 다양한 전자 기기, 모바일 장치를 포함할 수 있다.
본 명세서에서 "가용 메모리(예컨대, 자유(free) 메모리)"는, 메모리 할당이 요청되었을 경우 OS가 할당해줄 수 있는 메모리를 의미한다. 반대로 "불가용 메모리"는, 메모리 할당이 요청되었을 경우 OS가 할당해줄 수 없는 메모리를 의미한다. "불가용 메모리"는, 이동 가능 메모리와 이동 불가능 메모리를 포함할 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 장치(100)의 블록도를 도시한다.
도 1을 참조하면, 전자 장치(100)는 제어부(120) 및 메모리(120)를 포함할 수 있다.
제어부(110)는 운영체제(operating system, OS) 및/또는 어플리케이션(application, APP)을 구동하여 제어부(110)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 멀티미디어 데이터를 포함한 각종 데이터 처리 및 연산을 수행할 수 있다.
메모리(120)는 휘발성 메모리(예를 들면, DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등) 또는 비휘발성 메모리(non-volatile Memory, 예를 들면, OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, NAND flash memory, NOR flash memory 등) 중 적어도 하나를 포함할 수 있다. 메모리(120)는 제어부(110) 또는 다른 구성요소들(예: 입출력 인터페이스, 디스플레이, 통신 인터페이스 및 애플리케이션 제어 모듈(모두 미도시))로부터 수신되거나 제어부(110) 또는 다른 구성요소들에 의해 생성된 명령 또는 데이터를 저장할 수 있다.
메모리(120)는 복수의 페이지를 포함한다. 예컨대, 복수의 페이지는 가용 페이지(예컨대, 자유(free) 페이지) 및/또는 불가용 페이지를 포함할 수 있다. 불가용 페이지는 이동 가능 페이지와 이동 불가능 페이지를 포함할 수 있다. 이하에서는 기술되는 가용 메모리와 가용 페이지라는 용어는 서로 동일한 개념을 지칭하는 것으로 이해될 수 있다. 뿐만 아니라, 메모리와 페이지라는 용어는 서로 호환되어 사용될 수 있다.
시스템이 최초 부팅되면, 가용 페이지는 OS가 관리하는 자료구조로 등록되어 관리될 수 있다. 태스크(예컨대, 실행되는 어플리케이션)에 의한 메모리 할당 요청 시 물리적으로 연속된 메모리를 요구할 수 있기 때문에, 이를 위해 OS는 최대한 큰 크기를 갖도록 가용 메모리를 유지할 수 있다.
태스크가 임의의 크기의 메모리 할당을 요청하면, OS는 가용 메모리 자료구조를 참조하여 요청된 크기와 가장 가까운 크기를 가지는 가용 메모리를 할당해준다. OS는 할당해주고 남은 나머지 가용 메모리를 다시 가용 메모리 자료구조로 삽입한다. 태스크는 할당 받은 메모리를 적절하게 사용하고 사용이 끝나면 OS에 반환한다. OS는 반환된 메모리를 다시 가용 메모리 자료구조에 삽입하여 추후 다른 태스크가 메모리를 요청하면 다시 할당되도록 한다.
한편, 시스템이 부팅된 초기에는 대부분의 가용 메모리들이 OS에서 관리하는 가장 큰 크기를 가지고 있을 수 있다. 그러나 태스크들이 메모리 할당과 해제를 반복하면서, 메모리들은 점점 조각조각으로 나뉘는 단편화 현상이 발생하게 된다. 단편화 현상이 지속되면 메모리 상에서 작은 크기를 가지는 가용 메모리들이 흩어져서 존재할 수 있다. 이 경우 전체 가용 메모리의 용량이 요청된 크기보다 많더라도, OS는 요청된 크기의 메모리를 할당할 수 없을 수 있다.
도 2를 참조하면, 메모리 단편화 제거는 단편화 되어있는 작은 크기의 가용 페이지들을 모아서 큰 크기의 가용 페이지로 만들어 주는 것을 목적으로 한다. 즉, OS는 불가용 페이지 중 이동 가능 페이지를 이동시켜 요청된 메모리를 할당해 주는 정책을 사용하고 있다.
OS가 요청된 크기의 메모리를 할당해주기 위해서는, 해당 크기의 메모리 내에 모든 불가용 페이지가 이동가능 해야 하는데, 도 3과 같이 페이지가 다른 프로세스에 의해 참조되거나 라이트(write) 연산을 위해 기다리고 있는 등의 이유로 인해 이동 불가능(unmovable)할 수 있다. 따라서, 나머지 이동 가능 페이지를 이동시킨다 하더라도 요청된 크기의 메모리를 할당해 줄 수 없을 수 있다. 이 경우, 예컨대 새로운 영역에 대한 페이지 이동 동작을 반복함으로써 요청된 크기의 메모리를 찾아 할당해줄 수도 있다. 그러나, 이 경우 페이지 이동 동작의 반복으로 인해 메모리 단편화 제거 작업의 수행 시간이 늘어날 수 있다.
본 발명의 실시 예에 따르면, 제어부(110)는 메모리(120) 내 페이지 영역 별 이동 불가능 페이지 정보, 이동 가능 페이지 정보 또는 해당 페이지 영역을 참조하는 어플리케이션 개수 정보 중 적어도 하나와 관련한 페이지 상태 정보를 테이블로 관리할 수 있다. 제어부(110)는 이후 메모리 할당 요청 시 메모리 단편화 제거 요청이 발생하면, 상기 페이지 상태 정보에 기반하여 적합한 페이지 영역을 선택할 수 있다. 예컨대, 제어부(110)는 페이지 상태 정보에 기반하여 이동 불가능 페이지가 없는 페이지 영역을 선택할 수 있다. 제어부(10)는 선택된 페이지 영역 내 이동 가능 페이지를 다른 영역으로 이동시킨 후, 요청에 대응하여 메모리를 할당해 줄 수 있다.
도 4는 본 발명의 실시 예에 따른 제어부(110)의 메모리 할당 동작을 나타내는 흐름도를 도시한다.
본 발명의 실시 예에 따르면, 제어부(110)는 어플리케이션 모듈(405), 메모리 할당 모듈(410) 및 단편화 제거 모듈(415)를 포함할 수 있다.
도 4를 참조하면, 어플리케이션 모듈(405)은 420 단계에서 필요 시 태스크에 대하여 소정 크기의 연속된 메모리를 메모리 할당 모듈(410)에 요청할 수 있다. 메모리 할당 모듈(410)은 423 단계에서 메모리 할당 요청에 대응하여 즉시 메모리 할당이 가능한지 여부를 판단할 수 있다. 예컨대, 메모리 할당 모듈(410)은 요청된 크기의 연속된 가용 메모리 할당이 가능한지 여부를 판단할 수 있다.
메모리 할당 모듈(410)은 425a 단계에서 해당 가용 메모리가 존재하는 경우 이를 상기 태스크에 할당해줄 수 있다. 이 경우 메모리 할당에 대한 매우 적은 대기 시간(latency)이 소요된다.
만약 요청된 크기의 연속된 가용 메모리가 존재하지 않는 경우, 메모리 할당 모듈(410)은 425b 단계에서 단편화 제거 모듈(415)에 메모리 단편화 제거를 요청할 수 있다.
단편화 제거 모듈(415)은 메모리 내 페이지 영역 별 이동 불가능 페이지 정보, 이동 가능 페이지 정보 또는 해당 페이지 영역을 참조하는 어플리케이션 개수 정보 중 적어도 하나와 관련한 페이지 상태 정보를 테이블로 관리할 수 있다. 단편화 제어 모듈(415)은 430 단계에서, 페이지 상태 정보에 기반하여 소정 조건을 만족하는, 예컨대 이동 불가능 페이지가 없는 페이지 영역을 선택할 수 있다.
만약, 이동 불가능 페이지가 없는 페이지 영역이 복수 개인 경우, 단편화 제어 모듈(415)은 상기 페이지 상태 정보에 기반하여 페이지 영역 내 이동 가능 페이지 수가 적은 영역을 우선적으로 선택할 수 있다. 만약 페이지 영역 내 이동 가능 페이지 수가 동일 하다면, 단편화 제어 모듈(415)은 해당 페이지 영역 내 페이지를 참조하는 어플리케이션의 개수가 적은 영역에 우선 순위를 부여할 수 있다. 단편화 제어 모듈(415)은 이러한 조건들을 검토하여 가장 우선순위가 높은 페이지 영역을 선택할 수 있다.
이러한 우선순위 기반의 선택을 하는 이유는 페이지 이동에 의한 오버헤드(migration overhead)를 줄이기 위함이다. 페이지 영역 내 이동 가능 페이지 수가 적으면 이동 대상이 되는 페이지가 줄어들어 페이지 이동에 의한 오버헤드를 줄일 수 있다. 해당 페이지 영역 내 페이지를 참조하는 어플리케이션의 수가 적은 것에 우선순위를 주는 이유는, 페이지 이동을 수행하는 동안에는 해당 페이지를 참조중인 어플리케이션들이 수행을 멈추고 기다려야 하기 때문이다.
단편화 제거 모듈(415)은 435 단계에서 선택된 페이지 영역의 이동 가능 페이지에 대한 스캔(scan)을 수행하고, 이동 불가능 페이지가 새롭게 생성되었는지 여부를 확인할 수 있다. 페이지에 잠금(lock)을 설정하고 있지는 않기 때문에, 단편화 제거 모듈(415)이 페이지 영역의 이동 가능 페이지를 스캔하는 동안에도, 다른 프로세스에 의해 페이지 상태가 변경(예컨대, 이동 불가능 페이지로 변경)될 수 있다. 따라서, 단편화 제어 모듈(415)은 선택된 페이지 영역 내에서 이동 불가능 페이지가 확인되면, 다른 페이지 영역을 선택하는 단계(430 단계)부터 새롭게 수행할 수 있다.
단편화 제거 모듈(415)은 440 단계에서 선택된 페이지 영역 내 이동 불가능 페이지가 존재하지 않으면 이동 가능 페이지를 분리(isolation)하고 이동 가능 페이지의 수만큼 가용 메모리를 확보할 수 있다. 가용 메모리의 확보가 완료되면 상기 이동 가능 페이지를 상기 확보된 가용 메모리로 복사(예, 이동)시킬 수 있다. 이동 가능 페이지의 이동이 완료된 후 요청한 크기의 메모리가 확보되었다면 단편화 제거 작업은 종료된다.
단편화 제거 모듈(415)은 445 단계에서 단편화 제거 작업이 종료되면 메모리 할당 모듈(410)로 메모리 단편화 제거 응답을 전송할 수 있다. 이후, 메모리 할당 모듈(410)은 450 단계에서 상기 메모리 할당 요청에 대응하여 단편화 제거 작업으로 확보된 가용 메모리를 할당해줄 수 있다.
도 5는 본 발명의 실시 예에 따른 단편화 제거 모듈(415)의 구성의 예시를 나타내는 블록도를 도시한다.
예컨대, 단편화 제거 모듈(415)은 상태 정보 갱신 제어부(505), 상태 정보 관리부(510) 및 페이지 이동 제어부(515)를 포함할 수 있다. 도 5에 개시된 구성은 한 예시일 뿐, 본 발명의 실시 예에 따른 단편화 제거 모듈(415)의 구현 방법은 제한적이지 않다. 하드웨어 장치로 구현될 수도 있고, 태스크, 기능 등 여러 가지 형태로 구현이 가능하다.
상태 정보 관리부(510)는 메모리 내 페이지 영역 별 이동 불가능 페이지 정보, 이동 가능 페이지 정보 또는 해당 페이지 영역 내 페이지를 참조하는 어플리케이션 개수 및/또는 목록 정보 중 적어도 하나와 관련한 페이지 상태 정보를 저장하는 자료 구조를 테이블(512)로 관리할 수 있다.
어떤 페이지가 이동 불가능하다는 것의 예시는, 해당 페이지를 참조하고 있는 주체가 둘 이상인 경우, 해당 페이지에 갱신 플래그(dirty flag)가 설정되어 있는 경우, 해당 페이지의 데이터에 대해 라이트 백(write-back)을 기다리고 있는 경우 또는 해당 페이지에 대해 LRU(least recently used) 플래그가 설정되어 있는 경우 등을 포함할 수 있다. 이 외에도 OS의 갱신으로 인해 추가되는 개념이나 장치에 의해 페이지 이동 불가능의 원인이 추가될 수 있다. 본 발명에서는 이러한 여러 가지 원인으로 인해 이동이 불가능한 페이지를 모두 이동 불가능 하다고 표현할 수 있다.
한편, 페이지 상태 정보를 저장하는 자료 구조에서 나타내고 있는 숫자는 페이지 영역 내의 페이지의 수에 기반하는 값을 나타낼 수 있다. 페이지 영역의 크기에 따라서 자료구조가 여러 개로 존재할 수 있다.
도 7을 참조하면, 710과 같이 예컨대 초기에 16개의 페이지를 하나의 페이지 영역으로 설정하여 자료구조가 구성되어 있다고 가정할 수 있다. 이 경우 하나의 자료구조에서 나타내고 있는 숫자는 16개의 페이지를 기반으로 하는 것이다. 그런데, 이런 상황에서 만약 4개의 연속된 페이지를 할당해달라는 요청을 하게 되면, 현재 관리되는 자료구조는 정확성이 떨어지게 된다. 따라서, 한 실시 예에 따르면, 상태 정보 관리부(510)는 다양한 크기의 페이지 영역을 지정(예컨대, 720과 같이 4개의 페이지로 설정되는 페이지 영역을 추가로 지정)하고 해당 페이지 영역의 페이지 상태 정보를 저장하는 자료구조를 관리할 수 있다.
그러나 모든 크기의 페이지영역을 설정하고 자료구조를 유지한다면 자료구조의 유지를 위한 공간적, 시간적 비용이 자료구조의 효용에 비해 과도해지는 단점이 발생할 수 있다. 따라서 다른 실시 예에 따르면, 상태 정보 관리부(510)는 가변적으로 자료구조를 유지할 수 있다.
예컨대, 710과 같이 초기에 16개의 페이지를 하나의 페이지 영역으로 설정하여 자료구조가 구성되어 있는데, 요청되는 메모리의 크기가 계속하여 4개의 페이지에 대응할 수 있다. 상태 정보 관리부(510)는 요청되는 메모리 크기의 빈도에 따라서 빈도 수가 높은 크기에 대해 새로운 영역을 지정(예컨대, 720과 같이 4개의 페이지로 설정되는 페이지 영역을 지정)하고 해당 페이지 영역에 대한 자료구조를 계산할 수 있다.
예컨대, 자료 구조의 전체 개수는 시스템의 메모리 용량에 따라서 결정될 수 있다. 상태 정보 관리부(510)는 시스템 메모리에 여유가 많다면 더욱 많은 크기에 대해 자료구조를 유지할 수 있고, 시스템 메모리에 여유가 없는 경우에는 1~2개의 크기에 대해서만 제한적으로 자료구조를 유지할 수 도 있다. 새로운 페이지 영역을 결정하는 방법은 시스템의 특성에 따라서 요청되는 메모리의 크기가 달라질 수 있으므로 해당 기준 역시 시스템의 특성에 따라 달라질 수 있다.
상태 정보 관리부(510)는 자료 구조에 저장된 정보를, 예컨대 상태 정보 갱신 제어부(505)의 제어에 의해 최신 상태로 갱신할 수 있다.
상태 정보 갱신 제어부(505)는 자료 구조의 갱신을 예컨대 두 가지 정책으로 수행할 수 있다.
상태 정보 갱신 제어부(505)는 한 예시로, 페이지 상태 정보를 페이지의 상태가 변할 때마다 갱신 해줄 수 있다. 그러나, 이 방법에 따르면, 전력 소모가 발생하게 되고 매우 빈번하게 일어난다면 베터리로 전원을 공급하는 핸드 헬드(hand-held) 장치에서는 치명적일 수 있다.
예컨대, 상태 정보 관리부(510)가 관리하는 자료구조는 상태 정보 갱신 제어부(505)가 관리하는 페이지 상태 업데이트 모드에 따라서 갱신 방법이 달라질 수 있다. 상기 페이지 상태 업데이트 모드는, 예컨대 시스템의 가용 전력 상황에 따라 결정될 수 있다. 상태 정보 갱신 제어부(505)는 만약 가용 전력이 충분하다면 페이지 상태가 변동될 때마다 상태 정보 관리부(510)에게 갱신을 지시하여 자료 구조를 갱신할 수 있다. 만약, 시스템의 가용 전력이 부족한 상황이라면 상태 정보 갱신 제어부(505)는 메모리 단편화 제거 동작이 발생하는 경우에 비로소 상태 정보 관리부(510)에게 갱신을 지시하여 자료 구조를 갱신할 수 있다. 예컨대, 상태 정보 갱신 제어부(505)는 시스템의 가용 전력이 부족한 상황이면, 메모리 단편화 제거 동작이 발생하는 경우 상태 정보 관리부(510)에 선택된 페이지 영역 또는 이동 불가능 페이지의 수가 0으로 저장되어 있는 페이지 영역의 자료 구조의 갱신을 지시할 수 있다.
페이지 이동 제어부(515)는 메모리 단편화 제거 요청을 수신하면 상태 정보 관리부(510)에 이를 전달할 수 있다. 예컨대, 상태 정보 관리부(510)가 요청된 크기의 페이지 영역에 대응하는 이동 가능 페이지, 이동 불가능 페이지의 개수와 해당 페이지 영역 내 페이지를 참조하는 어플리케이션 개수를 제공해주거나, 선택된 페이지 영역을 제공해주면, 페이지 이동 제어부(515)는 해당 페이지 영역의 이동 가능 페이지를 다른 영역의 가용 메모리로 이동시켜 요청된 크기의 가용 메모리를 확보하는 역할을 수행할 수 있다.
이때, 상태 정보 관리부(510)에서 유지하고 있는 이동 불가능 페이지 값이 0이라고 할지라도 해당 페이지 영역 내에 이동 불가능 페이지가 존재할 수 있다. 왜냐하면 상태 정보 관리부(510)가 페이지에 잠금을 설정하고 있지는 않기 때문이다. 페이지 이동 제어부(515)가 어떤 페이지 영역(예컨대, 선택된 페이지 영역)에 대해 이동 가능 페이지를 스캔하는 동안에도, 다른 프로세스가 얼마든지 페이지 상태를 변경할 수 있다. 따라서 페이지 이동 제어부(515)는 전달받은 선택된 페이지 영역에 대해 스캔을 수행하다가 이동 불가능 페이지를 발견하면 상태 정보 관리부(510)에게 다른 영역을 추천해줄 것을 요청할 수 있다. 이후, 페이지 이동 제어부(515)는 새롭게 추천받은 페이지 영역에 대해서 스캔을 수행하고 발견된 이동 가능 페이지들을 이동시켜 요청된 크기의 가용 메모리를 확보할 수 있다.
도 6은 본 발명의 실시 예에 따른 단편화 제거 모듈(415)의 메모리 할당을 위한 단편화 제거 동작을 나타내는 흐름도를 도시한다.
단편화 제거 모듈(415)은 605 단계에서, 태스크에 의한 메모리 할당 요청 시 필요한 경우 메모리 단편화 제거 요청을 수신할 수 있다.
단편화 제거 모듈(415)은 610 단계에서 복수의 페이지 영역에 대응하는 페이지 상태 정보에 기반하여, 소정 조건을 만족하는 페이지 영역, 예컨대 이동 불가능 페이지가 없는 페이지 영역을 선택할 수 있다.
단편화 제거 모듈(415)은 615 단계에서 시스템 가용 전력이 소정 값 이하인지 여부를 판단하고, 만약 소정 값 이하인 경우, 620 단계에서 페이지 상태 정보를 갱신할 수 있다. 예컨대, 단편화 제어 모듈(415)은 620 단계에서 선택된 페이지 영역의 페이지 상태 정보를 갱신할 수 있다. 한편, 615 단계 및 620 단계는 필수적인 단계는 아니고 선택적으로 수행될 수 있을 것이다.
단편화 제거 모듈(415)은 625 단계에서 선택된 페이지 영역 내 이동 가능한 페이지들을 스캔할 수 있다. 단편화 제거 모듈(415)은 스캔 도중 630 단계에서, 선택된 페이지 영역 내 이동 불가능한 페이지가 생성됨을 감지할 수 있다. 이동 불가능한 페이지가 확인되는 경우, 단편화 제거 모듈(415)은 다시 610 단계로 돌아가 조건을 만족하는 페이지 영역을 선택할 수 있다.
이동 불가능한 페이지가 확인되지 않으면, 단편화 제거 모듈(415)은 635 단계에서 선택된 페이지 영역 내 이동 가능 페이지를 다른 영역에 확보된 가용 페이지로 이동시킴으로써, 할당 요청된 크기의 메모리를 확보할 수 있다.
본 발명의 다양한 실시 예들은 메모리 단편화가 발생한 상황에서 큰 크기의(high-order) 메모리 할당 요청이 발생하는 경우 수행되는 메모리 단편화 제거 작업의 수행 시간을 줄여주는 방법을 제시한다.
본 발명을 통해 메모리 단편화 제거 동작 수행 시 이동 대상이 되는 페이지를 찾기 위한 페이지 스캔 시간을 줄일 수 있으며, 또한 이동 대상이 되는 페이지를 저장된 페이지 상태 정보에 기반하여 선택함으로써, 실제 이동되는 페이지 수를 효과적으로 감소시킬 수 있다. 이로 인해 메모리 단편화 제거 작업의 수행 시간을 줄일 수 있다.
종래 메모리 단편화 제거 동작 수행 시 이동 페이지 수가 많은 경우에는 단편화 제거 작업을 요청한 어플리케이션이 페이지 이동 동작이 완료되는 것을 기다리는 시간으로 인해 응답성이 낮아지는 결과를 초래하였다. 메모리 단편화 현상은 시스템이 부팅된 이후 시간이 경과할수록 심화되므로 부팅된 후로 경과된 시간이 증가할수록 시스템의 응답성이 낮아지는 경우가 많았다. 본 발명의 다양한 실시 예에 따르면, 메모리 단편화 제거 작업의 수행 시간을 단축시킴으로 인해 이와 같은 어플리케이션 응답성 저하 현상의 한 가지 원인을 효과적으로 제거할 수 있다.
한편, 본 발명의 다양한 실시 예는 큰 크기의(high-order) 메모리 할당 요청을 발생시키는 어플리케이션에 한해 적용될 수 있을 것이다. 예컨대, 이러한 어플리케이션에는 연속된 메모리 할당이 필요한 장치를 사용하는 어플리케이션(예: 카메라 어플리케이션)이나 DMA(Direct Memory Access)를 사용하는 태스크 등이 해당될 수 있다.
또한 본 발명의 다양한 실시 예에 따른, 페이지 상태 정보를 갱신하는 동작의 경우 페이지 상태가 변경될 때마다 갱신되는 때에는 백그라운드(back-ground) 방식으로 수행되어 대기 시간(latency)을 숨길 수 있다.
본 발명에 따른 모듈 또는 프로그래밍 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 본 발명에 따른 모듈, 프로그래밍 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
그리고 본 명세서와 도면에 개시된 본 개시의 실시 예들은 본 개시의 기술 내용을 쉽게 설명하고 본 개시의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 따라서 본 개시의 범위는 여기에 개시된 실시 예들 이외에도 본 개시의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 복수의 페이지를 포함하는 메모리; 및
    메모리 할당 요청 시 메모리 단편화 제거 요청이 발생하는 경우, 상기 메모리 내 복수의 페이지 영역에 대한 페이지 상태 정보를 기반으로 상기 복수의 페이지 영역 중 이동 불가능 페이지가 없는 페이지 영역을 선택하고, 상기 선택된 페이지 영역 내의 이동 가능 페이지를 이동시키며, 상기 이동 가능 페이지의 이동 후, 상기 선택된 페이지 영역을 상기 메모리 할당 요청에 대응하여 할당하는 제어부를 포함하는 전자 장치.
  2. 제 1 항에 있어서,
    상기 페이지 상태 정보는,
    대응하는 페이지 영역 내 이동 불가능 페이지 정보, 이동 가능 페이지 정보 또는 상기 대응하는 페이지 영역 내 페이지를 참조하는 어플리케이션 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치.
  3. 제 1 항에 있어서,
    상기 제어부는,
    상기 선택된 페이지 영역 내에 이동 불가능 페이지가 생성되었는지 여부를 확인하는 것을 특징으로 하는 전자 장치.
  4. 제 3 항에 있어서,
    상기 제어부는,
    상기 선택된 페이지 영역 내에 상기 이동 불가능 페이지가 확인된 경우, 재차 상기 복수의 페이지 영역 중 이동 불가능 페이지가 없는 페이지 영역을 선택하는 것을 특징으로 하는 전자 장치.
  5. 제 1 항에 있어서,
    상기 제어부는,
    페이지의 상태가 변경될 때마다 상기 페이지 상태 정보를 갱신하는 것을 특징으로 하는 전자 장치.
  6. 제 1 항에 있어서,
    상기 제어부는,
    상기 전자 장치의 가용 전력이 소정 값 이하인 경우, 상기 메모리 단편화 제거 요청이 발생하는 경우 상기 페이지 상태 정보를 갱신하는 것을 특징으로 하는 전자 장치.
  7. 제 1 항에 있어서,
    상기 제어부는,
    상기 전자 장치의 가용 전력이 소정 값 이하인 경우, 상기 메모리 단편화 제거 요청이 발생하는 경우 상기 선택된 페이지 영역에 대한 상기 페이지 상태 정보를 갱신하는 것을 특징으로 하는 전자 장치.
  8. 제 1 항에 있어서,
    상기 제어부는,
    상기 조건을 만족하는 페이지 영역이 복수 개인 경우, 각 페이지 영역 내 이동 가능 페이지의 개수 또는 각 페이지 영역을 참조하는 어플리케이션 개수 중 적어도 하나에 기반하여 상기 복수 개의 페이지 영역 중 하나의 페이지 영역을 선택하는 것을 특징으로 하는 전자 장치.
  9. 제 1 항에 있어서,
    상기 제어부는,
    복수의 크기를 갖는 페이지 영역에 대한 상기 페이지 상태 정보를 관리하고,
    상기 할당 요청된 메모리의 크기 정보에 기반하여, 상기 복수의 크기를 갖는 페이지 영역 중 적합한 크기의 페이지 영역을 선택하는 것을 특징으로 하는 전자 장치.
  10. 제 1 항에 있어서,
    상기 제어부는,
    할당 요청되는 메모리 크기의 빈도에 기반하여 상기 페이지 영역의 크기를 가변시켜 관리하는 것을 특징으로 하는 전자 장치.
  11. 전자 장치의 메모리 할당 방법에 있어서,
    메모리 할당 요청 시 메모리 단편화 제거 요청이 발생하는 경우, 상기 메모리 내 복수의 페이지 영역에 대한 페이지 상태 정보를 기반으로 상기 복수의 페이지 영역 중 이동 불가능 페이지가 없는 페이지 영역을 선택하는 단계;
    상기 선택된 페이지 영역 내의 이동 가능 페이지를 이동시키는 단계; 및
    상기 이동 가능 페이지의 이동 후, 상기 선택된 페이지 영역을 상기 메모리 할당 요청에 대응하여 할당하는 단계를 포함하는 전자 장치의 메모리 할당 방법.
  12. 제 11 항에 있어서,
    상기 페이지 상태 정보는,
    대응하는 페이지 영역 내 이동 불가능 페이지 정보, 이동 가능 페이지 정보 또는 상기 대응하는 페이지 영역 내 페이지를 참조하는 어플리케이션 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치의 메모리 할당 방법.
  13. 제 11 항에 있어서,
    상기 선택된 페이지 영역 내에 이동 불가능 페이지가 생성되었는지 여부를 확인하는 단계를 더 포함하는 전자 장치의 메모리 할당 방법.
  14. 제 13 항에 있어서,
    상기 선택된 페이지 영역 내에 상기 이동 불가능 페이지가 확인된 경우, 재차 상기 복수의 페이지 영역 중 이동 불가능 페이지가 없는 페이지 영역을 선택하는 단계를 더 포함하는 전자 장치의 메모리 할당 방법.
  15. 제 11 항에 있어서,
    페이지의 상태가 변경될 때마다 상기 페이지 상태 정보를 갱신하는 것을 특징으로 하는 전자 장치의 메모리 할당 방법.
  16. 제 11 항에 있어서,
    상기 전자 장치의 가용 전력이 소정 값 이하인 경우, 상기 메모리 단편화 제거 요청이 발생하는 경우 상기 페이지 상태 정보를 갱신하는 것을 특징으로 하는 전자 장치의 메모리 할당 방법.
  17. 제 11 항에 있어서,
    상기 전자 장치의 가용 전력이 소정 값 이하인 경우, 상기 메모리 단편화 제거 요청이 발생하는 경우 상기 선택된 페이지 영역에 대한 상기 페이지 상태 정보를 갱신하는 것을 특징으로 하는 전자 장치의 메모리 할당 방법.
  18. 제 11 항에 있어서,
    상기 페이지 영역을 선택하는 단계는,
    상기 조건을 만족하는 페이지 영역이 복수 개인 경우, 각 페이지 영역 내 이동 가능 페이지의 개수 또는 각 페이지 영역을 참조하는 어플리케이션 개수 중 적어도 하나에 기반하여 상기 복수 개의 페이지 영역 중 하나의 페이지 영역을 선택하는 것을 특징으로 하는 전자 장치의 메모리 할당 방법.
  19. 제 11 항에 있어서,
    복수의 크기를 갖는 페이지 영역에 대한 상기 페이지 상태 정보가 관리되고,
    상기 페이지 영역을 선택하는 단계는,
    상기 할당 요청된 메모리의 크기 정보에 기반하여, 상기 복수의 크기를 갖는 페이지 영역 중 적합한 크기의 페이지 영역을 선택하는 것을 특징으로 하는 전자 장치의 메모리 할당 방법.
  20. 제 11 항에 있어서,
    할당 요청되는 메모리 크기의 빈도에 기반하여 상기 페이지 영역의 크기가 가변되어 관리되는 것을 특징으로 하는 전자 장치의 메모리 할당 방법.
KR1020150065120A 2015-05-11 2015-05-11 전자 장치 및 이의 메모리 할당 방법 KR102402789B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020150065120A KR102402789B1 (ko) 2015-05-11 2015-05-11 전자 장치 및 이의 메모리 할당 방법
EP16792987.6A EP3296879B1 (en) 2015-05-11 2016-05-11 Electronic device and memory allocation method therefor
US15/570,047 US10255175B2 (en) 2015-05-11 2016-05-11 Electronic device and memory allocation method therefor
PCT/KR2016/004934 WO2016182341A1 (ko) 2015-05-11 2016-05-11 전자 장치 및 이의 메모리 할당 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150065120A KR102402789B1 (ko) 2015-05-11 2015-05-11 전자 장치 및 이의 메모리 할당 방법

Publications (2)

Publication Number Publication Date
KR20160132519A true KR20160132519A (ko) 2016-11-21
KR102402789B1 KR102402789B1 (ko) 2022-05-27

Family

ID=57249362

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150065120A KR102402789B1 (ko) 2015-05-11 2015-05-11 전자 장치 및 이의 메모리 할당 방법

Country Status (4)

Country Link
US (1) US10255175B2 (ko)
EP (1) EP3296879B1 (ko)
KR (1) KR102402789B1 (ko)
WO (1) WO2016182341A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0968468A1 (en) * 1997-03-21 2000-01-05 CANAL+ Société Anonyme Computer memory organization
US20040078381A1 (en) * 2002-10-17 2004-04-22 International Business Machines Corporation System and method for compacting a computer system heap
US20110246742A1 (en) * 2010-04-01 2011-10-06 Kogen Clark C Memory pooling in segmented memory architecture
US20140025863A1 (en) * 2012-07-20 2014-01-23 Taichiro Yamanaka Data storage device, memory control method, and electronic device with data storage device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7159094B1 (en) 2004-06-30 2007-01-02 Sun Microsystems, Inc. Kernel memory defragmentation method and apparatus
KR101376268B1 (ko) * 2006-10-13 2014-03-21 에스케이텔레콤 주식회사 단말기의 메모리 할당 장치 및 방법
US9128949B2 (en) 2012-01-18 2015-09-08 Cloudera, Inc. Memory allocation buffer for reduction of heap fragmentation
US9542307B2 (en) 2012-03-02 2017-01-10 Hewlett Packard Enterprise Development Lp Shiftable memory defragmentation
KR102146334B1 (ko) 2013-01-17 2020-08-20 삼성전자 주식회사 동적 페이지 할당자 변경 방법 및 시스템
KR102077149B1 (ko) 2013-06-17 2020-02-13 삼성전자 주식회사 메모리 관리 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0968468A1 (en) * 1997-03-21 2000-01-05 CANAL+ Société Anonyme Computer memory organization
EP0968468B1 (en) * 1997-03-21 2003-02-26 Canal+ Technologies Computer memory organization and method therefor
US20040078381A1 (en) * 2002-10-17 2004-04-22 International Business Machines Corporation System and method for compacting a computer system heap
US20110246742A1 (en) * 2010-04-01 2011-10-06 Kogen Clark C Memory pooling in segmented memory architecture
US20140025863A1 (en) * 2012-07-20 2014-01-23 Taichiro Yamanaka Data storage device, memory control method, and electronic device with data storage device

Also Published As

Publication number Publication date
US20180129598A1 (en) 2018-05-10
EP3296879A4 (en) 2018-05-02
EP3296879B1 (en) 2021-08-18
WO2016182341A1 (ko) 2016-11-17
US10255175B2 (en) 2019-04-09
KR102402789B1 (ko) 2022-05-27
EP3296879A1 (en) 2018-03-21

Similar Documents

Publication Publication Date Title
JP6524039B2 (ja) メモリシステム及び制御方法
JP6414852B2 (ja) メモリシステムおよび制御方法
JP6414853B2 (ja) メモリシステムおよび制御方法
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR102094236B1 (ko) 스토리지 디바이스 및 컴퓨터 시스템
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
KR102469927B1 (ko) 분할 메모리 관리장치 및 방법
JP2014515526A (ja) デュアル動作システムに対する複数のリソースのためのリソース割り当て
KR20090061526A (ko) 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법
KR101700315B1 (ko) 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체
WO2016080953A1 (en) Method and apparatus for data cache in converged system
JP6653710B2 (ja) 計算機および計算機の制御方法
US9367476B2 (en) Memory management apparatus, method, and system
US10872015B2 (en) Data storage system with strategic contention avoidance
CN112654965A (zh) 动态模块的外部分页和交换
KR101549569B1 (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
US10846023B2 (en) Storage device and storage area management method for reducing garbage collection processing
KR20160132519A (ko) 전자 장치 및 이의 메모리 할당 방법
WO2018167890A1 (ja) 計算機システム及び管理方法
KR102076248B1 (ko) 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템
US20230244383A1 (en) Memory system and method of controlling nonvolatile memory
CN116136796A (zh) 支持多主机的存储装置、其操作方法和存储系统
WO2017163322A1 (ja) 管理計算機、および計算機システムの管理方法
JP2012074084A (ja) 電力制御方法、計算機システム、及びプログラム
JP2019160347A (ja) メモリシステムおよび制御方法

Legal Events

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