KR101420798B1 - 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말 - Google Patents

실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말 Download PDF

Info

Publication number
KR101420798B1
KR101420798B1 KR1020070120352A KR20070120352A KR101420798B1 KR 101420798 B1 KR101420798 B1 KR 101420798B1 KR 1020070120352 A KR1020070120352 A KR 1020070120352A KR 20070120352 A KR20070120352 A KR 20070120352A KR 101420798 B1 KR101420798 B1 KR 101420798B1
Authority
KR
South Korea
Prior art keywords
paging
code
request
storage medium
real
Prior art date
Application number
KR1020070120352A
Other languages
English (en)
Other versions
KR20090053487A (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 KR1020070120352A priority Critical patent/KR101420798B1/ko
Priority to US12/260,879 priority patent/US8131918B2/en
Publication of KR20090053487A publication Critical patent/KR20090053487A/ko
Application granted granted Critical
Publication of KR101420798B1 publication Critical patent/KR101420798B1/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
    • 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/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 일 측면에 따른 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법은, 실시간 응답성이 요구되는 코드를 페이징 버퍼의 크기에 맞게 분할 압축하여 물리적 저장 매체에 저장하는 단계와 실시간 응답성이 요구되는 코드에 대한 요구 페이징이 요청되면, 상기 코드를 물리적 저장 매체에서 페이징 버퍼로 페이징하는 램 페이징 대상으로 분류하는 단계 및 램 페이징 대상으로 분류된 상기 실시간 응답성이 요구되는 코드를 페이징 버퍼로 불러오는 단계를 포함한다.

Description

실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법 및 단말{Method of Demand Paging for codes which requires real time response and Terminal}
본 발명은 요구 페이징 기법에 관한 것으로, 보다 상세하게는 실시간 응답성이 요구되는 코드를 보다 적은 램 용량을 효율적으로 사용하여 처리하는 요구 페이징 방법 및 단말에 관한 것이다.
모든 디바이스(Device)는 데이터를 저장한다. 상기 데이터는 디바이스의 특성상 저장되는 데이터일 수도 있고, 디바이스의 기능을 실행하기 위해 요구되는 코드(Code)일 수도 있다. 디바이스는 이러한 데이터를 효율적으로 저장하고 관리하기 위하여 가상 메모리 기법을 사용한다.
가상 메모리(Virtual Memory) 기법에서는 물리적 저장 매체(휘발성 저장 매체)와 비 휘발성 저장 매체를 매핑시켜 데이터를 관리하고, 요구 페이징을 수행하여 필요한 데이터만을 불러온다. 요구 페이징(Demand Paging)이란 특정 프로세스를 처리하는데 필요한 데이터만을 비 휘발성 저장 매체로부터 읽어와 이를 물리적 저장 매체에 일시적으로 다운로드 시키고, 이를 읽어내는 방법을 일컫는다. 요구 페이징을 수행하는 경우, 프로세스 처리시 필요한 정보만을 읽어와 속도가 빠른 램에 서 신속하게 처리할 수 있다. 이 경우 일정한 시간이 경과하면 램에 일시적으로 저장된 정보는 사라진다. 다시 말해 요구 페이징이란 디바이스의 데이터를 미리 물리적 저장 매체에 읽어두는 대신, 필요할 때마다 일부만을 읽어들이는 메모리 관리 기법이라 할 수 있겠다.
디바이스의 비 휘발성 저장 매체에는 여러 소스에서 나온 실행 가능한 코드와 데이터가 저장되어 있다. 그러나 특정 시간동안 수행되는 프로세스에서 비 휘발성 저장 매체에 저장된 코드와 데이터를 모두 사용하지는 않는다. 코드 중에는 어떤 특정한 경우, 예를 들어 프로세스가 시작될 때 또는 이벤트가 발생할 때에만 필요한 코드가 있을 수 있다. 따라서 사용되지 않을 수도 있는 코드를 물리적 저장 매체에 모두 로딩하는 것은 매우 비효율적이다. 나아가 상기 과정이 디바이스내의 프로세스 수만큼 반복되어 실행된다면, 이로 인하여 디바이스에 부하가 걸릴 수 있다. 따라서 요구 페이징 기법을 사용하여 특정 시점에 필요한 정보만을 물리적 저장 매체로 읽어오는 것이다.
모바일 기기가 발전해 가면서, 보다 편리한 모바일 환경의 구현을 위해 점점 더 많은 기능이 추가되고 있다. 모바일 기기에 더 많은 기능을 추가한다는 것은 소프트웨어의 사이즈나 램(RAM)의 요구량이 커지는 것을 의미하며, 이는 비교적 비싼 자원(Resource)인 램 사용량 증가로 이어지게 된다.
한편 근래에는 이와 동시에 저렴한 가격의 기기에 대한 수요 또한 커지고 있 다. 따라서 이와 같이 상반되는 두 요구 사항을 만족시키기 위해서는, 보다 적은 램 용량을 효율적으로 사용하여야 한다.
모바일 환경이 아닌 PC(Personal Computer)와 같은 일반적인 환경에서는 위와 같은 요구 사항을 가상 메모리 기법을 사용하여 해결하고 있다. 가상 메모리 기법에서는 램에 비하여 느리기는 하지만 훨씬 저렴한 디스크(Disk) 자원을 램인 것처럼 가상화 하고, 필요시마다 디스크의 내용을 램의 일부 버퍼로 매핑하여 사용한다. 특정 프로세스를 처리하는데 요구되는 코드는 디스크에 저장된 코드들 중 일부에 불과하다. 따라서 가상 메모리 기법에서는 특정 시점에 필요한 내용만을 디스크에서 램으로 옮겨 프로세스를 수행함으로써, 램에 대한 활용도를 높인다.
한편 모바일 환경에서는 모바일 기기의 디스크 용도로 낸드 플래쉬(Nand Flash) 메모리를 사용한다. 비 휘발성 저장 매체의 일종인 낸드 플래쉬 메모리는 구조가 간단하면서도 많은 용량의 데이터를 저장할 수 있다. 또한 자기식 저장 장치들보다 내구성이 우수하고 대용량화가 가능하며 값이 싸다는 장점을 가진다.
하지만 낸드 플래쉬 메모리는 write(쓰기) 성능이 read(읽기) 성능에 비하여 매우 느리며, 나아가 쓰기를 빈번히 할 경우 부품의 수명이 길지 못하므로, 일반적인 PC 환경에서의 가상 메모리 기법을 그대로 활용하기는 어렵다. 따라서 모바일 기기에서는 요구 페이징 기법을 적용하되, 램의 내용에 변동이 없는 Read only 영역인 코드 등의 데이터만을 캐싱(caching)하는 기법이 주로 적용되고 있다.
일반적인 PC 환경에서 사용되는 가상 메모리는 해당 내용에 대한 변경이 가 능하다, 따라서 캐싱 버퍼(Caching Buffer)에서 빠져 나갈 때에는 변경된 내용을 디스크로 다시 적어주어, 이후 필요한 경우 변경된 내용을 참조할 수 있도록 한다. 반면 모바일 기기에서는 변경이 불가능한 데이터만을 대상으로 요구 페이징을 수행하기 때문에, 낸드 플래쉬 메모리 등으로 내용을 다시 Swap out 해줄 필요가 없다.
도 1은 기존의 요구 페이징 과정을 도시한 도면이다.
특정 프로세스를 처리하고자 하는 경우, 단말에서는 플래쉬 메모리에 저장된 데이터를 읽어오게 된다.
가장 먼저, 단말에서는 데이터를 읽어 와서 저장할 메모리의 공간을 램에 확보한다(S101). 이 경우 단말은 불러올 데이터가 Read Only 데이터에 해당하는지 판단한다(S102).
요구 페이징 대상인 Read Only 데이터는 플래쉬 메모리에 저장되어 있다. 반면, Read Only 데이터 이 외의 데이터는 요구 페이징이 불가능하므로, 모두 램에 로딩(loading) 되어 있다.
따라서 Read Only 데이터에 해당하는 경우, 단말은 요구 페이징을 수행하여 플래쉬 메모리에서 상기 데이터를 불러와 램에 일시적으로 저장한다(S103).
반면, Read Only 데이터가 아닌 데이터들은 요구 페이징 대상이 아니다. 따라서 단말은 램에 로딩되어 있는 데이터를 Caching Buffer로 카피하여 일시적으로 저장한다(S104).
이 경우 단말은 불러온 데이터를 이용하여 특정 프로세스를 처리한다(S105).
이렇게 요구 페이징 기법을 사용하는 경우, 코드 수행을 위한 램 사용량을 코드 크기에서 Caching Buffer 크기만큼 줄일 수 있기 때문에, 코드 수행을 위한 램 요구량를 크게 낮출 수 있는 장점이 있다.
요구 페이징의 경우 긴 시간을 요구하는 Write 동작이 없기 때문에, 1ms의 지연도 허용되지 않는 엄격한 실시간 응답(real time response)을 요구하는 모바일 기기에서 사용하기에 적합한 기술이다.
하지만 낸드 플래쉬 메모리를 데이터 저장 용도와 함께 사용하는 경우, 문제가 발생한다. Multi-Task로 동작하는 모바일 기기에서 동일한 공유 자원인 낸드 플래쉬 메모리를 파일 시스템 등에서 write/erase 하고 있는 도중에 요구 페이징이 요청되는 경우, 파일 시스템의 낸드 플래쉬 메모리 사용이 끝날 때까지 기다렸다가 페이징을 해야만 한다. 그러나 현재 많이 사용하고 있는 낸드 플래쉬와 같은 저장성 플래쉬 매체의 경우 erase와 같은 동작은 수 ms가 걸리므로, 이에 따른 지연이 발생한다.
전화 기능과 같은 프로토콜 스택에서는 수 ms의 지연을 허용할 수 없기 때문에, 일반적으로 요구 페이징이 요구될 경우에도 실시간 응답을 요구하는 코드와 그렇지 않은 코드를 엄격하게 분리하여 요구 페이징 적용 여부를 판단한다. 하지만 이러한 분리 작업은 많은 인력과 기술을 필요로 하며, 나아가 쉽게 구분할 수 없는 경우가 많다. 따라서 안정성을 위해 요구 페이징 적용이 불가능한 코드로 분류되는 코드의 양은 상당량을 차지하게 된다. 이렇게 요구 페이징이 불가능한 것으로 분류 된 코드는 모두 램으로 로딩(loading) 되어, 많은 램 자원(resource)을 사용하게 되는 문제점이 발생한다.
따라서 본 발명의 목적은 엄격한 실시간 응답을 요구하는 코드를 실행시킬 때 필요한 램의 사용량을 줄일 수 있는 방법을 제공하여, 보다 적은 램 용량을 효율적으로 사용할 수 있는 방법 및 단말을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명의 일 측면에 따른 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법은, 실시간 응답성이 요구되는 코드를 페이징 버퍼의 크기에 맞게 분할 압축하여 물리적 저장 매체에 저장하는 단계와 실시간 응답성이 요구되는 코드에 대한 요구 페이징이 요청되면, 상기 코드를 물리적 저장 매체에서 페이징 버퍼로 페이징하는 램 페이징 대상으로 분류하는 단계 및 램 페이징 대상으로 분류된 상기 실시간 응답성이 요구되는 코드를 페이징 버퍼로 불러오는 단계를 포함한다.
한편, 상기한 목적을 달성하기 위한 본 발명의 다른 측면에 따른 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말은, 램 페이징 대상으로 분류된 코드를 분할 압축하여 물리적 저장 매체에 로딩하는 중앙 처리부와 요구 페이징을 수행하여 불러온 데이터를 일시적으로 저장하는 페이징 버퍼를 포함하고, 램 페이징 대상의 코드를 분할 압축된 형태로 저장하는 물리적 저장 매체 및 램 페 이징 대상으로 분류된 코드에 대한 요구 페이징이 요청되면, 상기 물리적 저장 매체에 저장된 코드를 페이징 버퍼로 불러오는 페이징 처리부를 포함한다.
본 발명으로 인하여 기존에 페이징을 수행하지 못하였던 코드를 요구 페이징하여 사용함으로써 램 사용량을 추가적으로 줄일 수 있게 된다. 플래쉬 메모리에서 요구 페이징을 수행하는 경우, 코드를 전혀 램에 올릴 필요가 없고 캐싱 버퍼만 필요하기 때문에 대상으로 적용된 코드 크기(CODE SIZE) 전체 만큼의 램 사용 감소 효과가 나타나지만, 램 압축 페이징에서는 압축된 형태의 데이터를 램에 올려야 하기 때문에 해당 영역의 압축 효율만큼 램 사용량을 줄일 수 있다.
현재 알려진 압축 알고리즘으로 실행 바이너리를 분할 압축할 경우, 대략 40%의 공간 절약을 할 수 있는 상황이다. 위와 같은 가정에서 약 15MB 정도의 Real Time Code를 가지고 있는 바이너리의 경우, 추가적인 6MB(15MB× 0.4)의 램 공간을 절약할 수 있다.
현재 embedded 기기의 경우 수 MB의 램 크기는 큰 의미를 가진다. 특히 사용 가능한 램 부품의 크기는 2배씩 늘어나기 때문에, 현재 사이즈에서 램의 양이 약간 더 필요한 경우에도 2배의 비용을 들여 큰 램을 사용하는 경우가 빈번하게 발생한다. 이러한 상황에서 본 발명은 램 사용량에 의한 비용 증가를 크게 억제하는 효과를 가져올 수 있다.
이하 본 발명에 따른 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법 및 단말을 첨부한 도면을 참조하여 상세히 설명한다.
도 2는 본 발명에서 코드 또는 데이터별로 적용할 페이징 방식을 분류하는 과정을 도시한 도면이다.
본원 발명에서는 데이터와 코드의 종류에 따라 페이징 방식을 달리한다.
첫째, 실시간 응답성이 요구되는 코드의 경우, 램에서 페이징을 수행한다. 본원 발명에 따른 요구 페이징 기법이 적용되는 대상이다. 이하 본원 발명에서는 이러한 코드를 Real Time Code라 명명한다.
둘째, 실시간 응답성을 요구하지 않는 코드의 경우, 플래쉬 메모리에서 페이징을 수행한다. 즉 이러한 코드들은 기존의 방식에 따라 요구 페이징을 수행한다. 이하 본원 발명에서는 상기 코드를 Normal Code라 명명한다.
셋째, Read Only 데이터를 제외한 데이터들의 경우에는 페이징이 불가능하므로 램에 로딩된다. 이하 본원 발명에서는 상기 데이터를 RW 데이터라 명명한다.
이제부터 기존의 요구 페이징 방식과 동일하게 비 휘발성 저장 매체에서 페이징을 수행하는 방식을 플래쉬 메모리 페이징이라 하고, 본 발명에서처럼 물리적 저장 매체에서 페이징을 수행하는 방식을 램 페이징이라 하기로 한다.
후술하겠지만 특정 프로세스 처리 시, 단말(300)의 중앙 처리부(310)는 상기 프로세스의 처리를 위하여 요구되는 코드와 데이터를 페이징 방식 분류부(320)로 전송한다. 이 경우 페이징 방식 분류부(320)는 코드 및 데이터에 대한 정보를 수신하고(S201), 이에 따라 페이징 방식을 분류하게 된다.
페이징 방식 분류부(320)는 가장 먼저 Read Only 데이터에 해당하는지 판단한다(S202). 본 발명에 따른 요구 페이징은 변경이 불가능한 데이터만을 대상으로 한다. 만일 Read Only 데이터가 아니라면 변경된 내용을 비 휘발성 저장 매체(340)로 다시 Swap out 해주어야 한다. 따라서 Read Only 데이터가 아닌 경우, RW 데이터로 분류한다(S224). 이 경우 RW 데이터에는 요구 페이징을 적용하지 않는다. 따라서 페이징 불가 대상으로 분류한다(S225).
한편 S202 단계에서 Read Only 데이터로 확인되면, 페이징 방식 분류부(320)는 실시간 응답성을 요구하는 코드인지 판단한다(S203). 실시간 응답성을 요구하는 코드인 경우, Real Time Code로 분류한다(S204). Real Time Code의 경우 램 페이징대상으로 분류한다(S205).
만일 S203단계에서 실시간 응답성을 요구하는 코드가 아니라고 판단되면, 페이징 방식 분류부(320)는 Normal Code로 분류한다(S214). Normal Code의 경우 플래쉬 메모리 페이징 대상으로 분류한다(S215).
나아가 페이징 방식 분류부(320)는 실시간 응답성이 요구되는 코드인지 여부를 판단할 수 없는 경우, 안정성을 위해 상기 코드를 실시간 응답성이 요구되는 코드로 분류할 수도 있다.
도 3은 본 발명에 따른 실시간 응답성이 요구되는 코드를 위한 요구 페이징 을 수행하는 단말의 구성을 도시한다.
상기 단말(300)은 중앙 처리부(310), 페이징 방식 분류부(320), 페이징 처리부(330), 비 휘발성 저장 매체(340) 및 물리적 저장 매체(350)를 포함하여 구성된다. 이 경우 페이징 방식 분류부(320)는 페이징 방식 참조 테이블(325)을 포함하며, 물리적 저장 매체(350)는 페이징 버퍼(355)를 포함하고 있다.
중앙 처리부(310)는 모바일 기기 부팅 과정 중에, 램 페이징 대상으로 분류된 코드와 페이징 불가 대상으로 분류된 데이터들을 물리적 저장 매체(350)에 로딩한다. 이 경우 후술하는 페이징 방식 참조 테이블(325)을 참조할 수 있다. 한편 중앙 처리부(310)는 램 페이징 대상으로 분류된 코드들은 분할 압축하여 로딩하고, 페이징 불가 대상으로 분류된 데이터들은 분할 압축하지 않고 그대로 로딩하는데, 이에 대해서는 도 4에 대한 설명에서 상세하게 설명한다.
중앙 처리부(310)는 단말(300)에서 특정 프로세스를 처리하고자 하는 경우, 상기 프로세스의 처리에 필요한 코드 또는 데이터에 대한 정보를 페이징 방식 분류부(320)로 전송한다. 이 경우 페이징 방식 분류부(320)는 코드 또는 데이터에 따라 페이징 방식을 분류하고 이에 대한 정보를 페이징 처리부(330)로 전송하며, 페이징 처리부(330)에서는 코드 또는 데이터의 종류에 따라 페이징 방식을 달리하여 요구 페이징을 수행한다. 중앙 처리부(310)는 페이징 처리부(330)가 요구 페이징을 수행하여 물리적 저장 매체(350)에 코드 또는 데이터를 읽어오면, 이를 이용하여 프로세스를 처리한다.
페이징 방식 분류부(320)는 코드 또는 데이터에 따라 적용할 페이징 방식을 분류한다. 구체적으로 페이징 방식 분류부(320)는 중앙 처리부(310)로부터 수신한 코드 또는 데이터를 Real Time Code, Normal Code 및 RW 데이터로 분류하고, Real Time Code는 램 페이징 대상으로, Normal Code는 플래쉬 메모리 페이징 대상으로, RW 데이터는 페이징 불가 대상으로 분류한다. 이 경우, 페이징 방식 분류부(320)는 해당 코드 또는 데이터에 따른 페이징 방식에 대한 정보를 페이징 처리부(330)로 보낸다. 페이징 방식 분류부(320)의 분류 과정에 대해서는 도 2에 대한 설명에서 이미 전술하였다.
한편 페이징 방식 분류부(320)는 코드 및 데이터 별로 대응하는 페이징 방식을 나열하는 엔트리로 구성되는 페이징 방식 참조 테이블(325)을 포함할 수 있다.
페이징 처리부(330)는 페이징 방식 분류부(320)로부터 수신한 해당 코드 또는 데이터에 따른 페이징 방식에 대한 정보를 참조하여 요구 페이징을 수행한다. 요구 페이징을 수행하는 경우, 비 휘발성 저장 매체(340) 또는 물리적 저장 매체(350)에 저장된 코드 및 데이터들 중 요구되는 코드 및 데이터만을 물리적 저장 매체(350)로 읽어온다. 이 경우 페이징 처리부(330)는 다음과 같은 두 가지 방식에 의하여 요구 페이징을 수행한다.
첫째, 램 페이징 대상인 Real Time Code의 경우, 물리적 저장 매체(350)에 압축되어 저장되어 있는 상태에서, 페이징 버퍼(355)로 페이징한다.
둘째, 플래쉬 메모리 페이징 대상인 Normal Code의 경우, 비 휘발성 저장 매 체에 저장되어 있는 상태에서, 페이징 버퍼(355)로 페이징한다.
상기 페이징 처리부(330)의 동작에 대해서는 도 5에 관한 설명에서 보다 상세하게 후술할 것이다.
비 휘발성 저장 매체(340)와 물리적 저장 매체(350)에는 실행 가능한 코드와 데이터가 저장된다. 비 휘발성 저장 매체(340)는 전원이 끊어져도 저장되어 있는 정보를 그대로 유지하여, 전원이 공급되면 다시 저장된 정보를 사용할 수 있다. 비 휘발성 저장 매체(340)에는 플래쉬 메모리나 ROM(Read-Only Memory), 자기 테이프, 자기 디스크 등이 있을 수 있다. 따라서 본 발명의 실시예에서는 비 휘발성 저장 매체(340)로서 플래쉬 메모리를 사용하는 경우를 가정하지만, 본원 발명이 이에 한정되는 것은 아니다.
반면 물리적 저장 매체(350)는 휘발성 저장 매체이다. 일반적으로 상기 물리적 저장 매체(350)로는 램이 사용된다. 램은 비 휘발성 저장 매체(340)와는 달리 전원이 꺼지면 데이터의 기록도 지워진다. 그렇지만, 램은 비 휘발성 저장 매체(340)에 비하여 Write 속도와 Read 속도가 빠르므로, 프로세스 처리 시 요구되는 코드 및 데이터만을 불러와 빠르게 처리할 수 있다.
비 휘발성 저장 매체(340)는 플래쉬 메모리 페이징 대상인 Normal Code를 저장한다.
물리적 저장 매체(350)는 램 페이징 대상인 Real Time Code와 페이징 불가 대상인 RW 데이터를 저장한다. 이 경우 상기 Real Time Code와 RW 데이터는 모바일 기기 부팅 과정 중에 중앙 처리부(310)가 로딩한 것이다. 후술하겠지만, 본원 발명 의 실효성을 높이기 위해 상기 Real Time Code들은 분할 압축된 형태로 물리적 저장 매체(350)에 저장된다. 그러나 RW 데이터들은 분할 압축되지 않고, 하나의 단위로 그대로 압축되어 저장된다.
물리적 저장 매체(350)에는 페이징 버퍼(355)가 존재한다. 페이징 버퍼(355)는 페이징 처리부(330)가 요구 페이징을 수행하여 물리적 저장 매체(350)에 분할 압축되어 저장된 Real Time Code를 읽어오는 경우, 이를 저장한다.
본 발명에서는 코드와 같은 Read Only 데이터를 요구 페이징 시키되, 기존의 방식과 같이 비 휘발성 저장 매체(340)에서 페이징을 하는 것이 아니라, 물리적 저장 매체(350)에 압축되어 저장된 상태에서 페이징 버퍼(355)로 페이징한다.
기존의 요구 페이징 방식의 문제점은 비 휘발성 저장 매체(340)를 공유 자원으로 사용하여 Erase/Write 시에 긴 시간 동안의 지연이 생길 수 있다는 점에서 발생하였다. 이와 같은 지연을 제거하기 위하여, 기존의 비 휘발성 저장 매체(340)에서 페이징하던 방식에서 지연이 없는 물리적 저장 매체(350)에서 직접 접근(Access)하는 방식으로 변경하였다.
물리적 저장 매체(350)의 경우, 원래 페이징을 할 필요가 없는 영역이다. 그렇기 때문에 램 페이징을 할 경우 쓸데없이 버퍼 용량만 추가적으로 낭비하는 결과를 만들게 된다. 따라서 램 페이징이 의미가 있기 위해서는, 반드시 페이징 될 대상 코드가 압축되어 있어 물리적 저장 매체(350)에 대한 기존의 사용 요구량이 줄어들었을 경우에만 의미가 있게 된다.
도 4는 본 발명에 따른 요구 페이징을 수행하기 위하여 코드를 분할 압축하여 물리적 저장 매체에 저장하는 과정을 도시한 도면이다.
기존의 압축 방식에서는 전체 램 페이징 영역을 하나의 단위로 압축한다. 이 경우, 페이징이 요구되는 시점마다 전체를 압축 해제해야 하기 때문에 매우 큰 임시 버퍼의 사용과 추가적인 긴 해제 시간이 요구된다. 그러나 요구 페이징의 경우 한 번 페이징 시에 필요한 버퍼의 양은 수 Kb정도로 매우 작은 편이다. 따라서 기존의 압축 방식으로 전체 램 페이징 영역을 하나의 단위로 압축하는 것은 매우 비효율적이다.
이를 감안하여 본원 발명에서는 요구 페이징 시에 페이징 버퍼(355)의 크기에 맞는 작은 단위로만 압축 해제하여 페이징을 수행할 수 있도록 하기 위하여, 페이징 버퍼(355) 크기에 맞도록 램 페이징 영역을 분할 압축하여 물리적 저장 매체(350)에 로딩시켜 둔다.
중앙 처리부(310)는 페이징 방식 참조 테이블(325)을 참조하여, 비 휘발성 저장 매체(340)에 저장된 코드 및 데이터 중 램 페이징 대상과 페이징 불가 대상을 선택한다(S401).
이 경우 중앙 처리부(310)는 방식을 달리하여 램 페이징 대상과 페이징 불가 대상을 처리한다. 따라서 먼저 램 페이징 대상인지 판단하여야 한다(S402).
램 페이징 대상인 경우, 페이징 버퍼(355)의 크기에 맞게 분할 압축한다. 이를 위해 중앙 처리부(310)는 페이징 버퍼(355)의 크기를 계산하고(S403), 페이징 버퍼(355)의 크기에 맞게 램 페이징 대상을 분할 압축한다(S404). 예를 들어, 램 페이징 대상이 15MB, 페이징 버퍼의 크기가 3MB, 압축률이 40%라 가정하자. 이때 상기 램 페이징 대상을 압축하면 6MB(15MB× 0.4=6MB)가 되므로, 페이징 버퍼의 크기인 3MB에 맞게 램 페이징 대상을 2개로 분할하여 압축하면 된다. 즉 램 페이징 대상을 7.5MB 씩 분할하여 압축한다.
한편 페이징 불가 대상의 경우, 중앙 처리부(310)는 데이터 전체를 하나의 단위로 하여 압축한다(S405).
중앙 처리부(310)는 단말이 부팅되었는지 판단한다(S406). 단말(300)이 부팅되면, 중앙 처리부(310)는 상기 분할 압축된 램 페이징 대상과 압축된 페이징 불가 대상을 물리적 저장 매체(350)에 로딩한다(S407).
이 경우, 분할 압축 영역 앞에 각 분할 압축 페이지의 주소를 적은 맵(Map)을 사용할 수 있다. 이에 따라 필요한 데이터 및 코드가 압축되어 있는 위치와 용량을 쉽게 파악할 수 있으므로, 정확히 필요한 위치에서 필요한 용량을 빠르게 확보하여 페이징을 가능하게 할 수 있다.
도 5는 본 발명에 따른 실시간 응답성이 요구되는 코드를 위한 요구 페이징과정을 도시한 도면이다.
앞서 도 4에서는 플래쉬 메모리 페이징을 적용할 수 없는 대상으로 분류된 Real Time Code 들을 분할 압축하고, 단말(300)의 부팅 과정 중에 분할 압축된 형태 그대로 물리적 저장 매체(350)로 로딩하는 과정을 설명하였다. 본 도면에서는 이후 이루어지는 요구 페이징 절차를 설명한다.
압축된 상태에서는 코드 실행이나 사용 등이 불가능하다. 따라서 해당 코드의 사용이 필요한 시점마다 압축 해제를 한 후, 페이징 버퍼(355)로 copy하여 사용하여야 한다. 이때 사용되는 페이징 버퍼(355)는 기존의 요구 페이징에서 사용하던 플래쉬 페이징 버퍼와 공유하여 사용이 가능하기 때문에, 추가적인 페이징 버퍼(355)는 필요하지 않다.
단말(300)에서 특정 프로세스를 처리하고자 하는 경우(S501), 중앙 처리부(310)는 상기 프로세스의 처리에 필요한 코드 또는 데이터에 대한 정보를 페이징 방식 분류부(320)로 전송한다(S502).
페이징 방식 분류부(320)는 수신한 코드 또는 데이터 별로 페이징 방식을 분류한다(S503). 구체적으로 코드 또는 데이터를 Real Time Code, Normal Code 및 RW 데이터로 분류한다. 이 경우 Real Time Code는 램 페이징 대상으로, Normal Code는 플래쉬 메모리 페이징 대상으로, RW 데이터는 페이징 불가 대상으로 각각 분류한다. 페이징 방식 분류부(320)는 분류한 해당 코드 또는 데이터별 페이징 방식에 대한 정보를 페이징 처리부(330)로 보낸다.
페이징 처리부(330)에서는 코드 또는 데이터의 종류에 따른 페이징 방식을 적용하여 요구 페이징을 수행한다(S505).
램 페이징 대상인 Real Time Code의 경우, 물리적 저장 매체(350)에 분할 압축된 상태에서 페이징 버퍼(355)로 페이징 한다(S506).
한편 플래쉬 메모리 페이징 대상인 Normal Code의 경우, 비 휘발성 저장 매 체(340)에서 페이징 버퍼(355)로 페이징 한다(S516).
반면 RW 데이터에 해당하는 경우, 페이징을 수행하지 않는다(S526).
페이징 버퍼(355)는 페이징 처리부(330)가 요구 페이징을 수행하여 읽어온 Real Time Code나 Normal Code를 일시 저장한다. 이 경우 중앙 처리부(310)는 페이징 버퍼(355)에 저장된 코드나 데이터를 이용하여 프로세스를 처리한다(S507). 이로써 본 발명에 따른 요구 페이징 과정은 모두 종료한다.
도 1은 기존의 요구 페이징 과정을 도시한 도면.
도 2는 본 발명에서 코드 또는 데이터별로 적용할 페이징 방식을 분류하는 과정을 도시한 도면.
도 3은 본 발명에 따른 실시간 응답성이 요구되는 코드를 위한 요구 페이징 을 수행하는 단말의 구성을 도시한 도면.
도 4는 본 발명에 따른 요구 페이징을 수행하기 위하여 코드를 분할 압축하여 물리적 저장 매체에 저장하는 과정을 도시한 도면.
도 5는 본 발명에 따른 실시간 응답성이 요구되는 코드를 위한 요구 페이징과정을 도시한 도면.
*도면의 주요 부분에 대한 부호의 설명*
310: 중앙 처리부 320: 페이징 방식 분류부
330: 페이징 처리부 340: 비 휘발성 저장 매체
350: 물리적 저장 매체 355: 페이징 버퍼

Claims (16)

  1. 실시간 응답성이 요구되는 코드를 페이징 버퍼의 크기에 맞게 분할 압축하여 물리적 저장 매체에 저장하는 단계;
    실시간 응답성이 요구되는 코드에 대한 요구 페이징이 요청되면, 상기 코드를 물리적 저장 매체에서 페이징 버퍼로 페이징하는 램 페이징 대상으로 분류하는 단계; 및
    램 페이징 대상으로 분류된 상기 실시간 응답성이 요구되는 코드를 페이징 버퍼로 불러오는 단계를 포함하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법.
  2. 제1항에 있어서,
    단말이 부팅되는 경우 실시간 응답성이 요구되는 코드를 페이징 버퍼의 크기에 맞게 분할 압축하여 물리적 저장 매체에 저장하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법.
  3. 제1항에 있어서,
    실시간 응답성이 요구되지 않는 코드에 대한 요구 페이징이 요청되면, 상기 코드를 비 휘발성 저장 매체에서 물리적 저장 매체로 페이징하는 플래쉬 메모리 페이징 대상으로 분류하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법.
  4. 제3항에 있어서,
    플래쉬 메모리 페이징 대상으로 분류된 상기 실시간 응답성이 요구되지 않는 코드를 비 휘발성 저장 매체에서 페이징 버퍼로 불러오는 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법.
  5. 제1항에 있어서,
    상기 실시간 응답성이 요구되는 코드에 대한 요구 페이징이 있는 경우, 페이징 버퍼로 불러온 상기 코드를 압축 해제하여 사용하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법.
  6. 제1항에 있어서,
    Read Only 데이터가 아닌 경우, 요구 페이징을 수행하지 않는 페이징 불가 대상으로 분류하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법.
  7. 제1항에 있어서,
    상기 페이징 버퍼에 일시 저장된 코드 및 데이터를 이용하여 특정 프로세스를 처리하는 단계를 더 포함하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법.
  8. 램 페이징 대상으로 분류된 코드를 분할 압축하여 물리적 저장 매체에 로딩하는 중앙 처리부;
    요구 페이징을 수행하여 불러온 데이터를 일시적으로 저장하는 페이징 버퍼를 포함하고, 램 페이징 대상의 코드를 분할 압축된 형태로 저장하는 물리적 저장 매체; 및
    램 페이징 대상으로 분류된 코드에 대한 요구 페이징이 요청되면, 상기 물리적 저장 매체에 저장된 코드를 페이징 버퍼로 불러오는 페이징 처리부를 포함하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말.
  9. 제8항에 있어서,
    특정 코드 또는 데이터에 따라 적용할 페이징 방식을 분류하고, 이에 대한 정보를 페이징 처리부에 전송하는 페이징 방식 분류부를 더 포함하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말.
  10. 제9항에 있어서,
    상기 페이징 방식 분류부는,
    실시간 응답성을 요구하는 코드의 경우 램 페이징 대상으로, 실시간 응답성을 요구하지 않는 코드의 경우 플래쉬 메모리 페이징 대상으로, Read Only 데이터가 아닌 경우 페이징 불가 대상으로 분류하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말.
  11. 제10항에 있어서,
    상기 페이징 처리부는,
    플래쉬 메모리 페이징 대상의 경우, 비 휘발성 저장 매체에서 페이징 버퍼로 페이징을 수행하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말.
  12. 제8항에 있어서,
    플래쉬 메모리 페이징 대상인 실시간 응답성을 요구하지 않는 코드를 저장하는 비 휘발성 저장 매체를 더 포함하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말.
  13. 제8항에 있어서,
    상기 중앙 처리부는,
    단말이 부팅되는 경우 램 페이징 대상으로 분류된 코드를 페이징 버퍼의 크기에 맞게 분할 압축하여 물리적 저장 매체에 로딩하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말.
  14. 제8항에 있어서,
    상기 중앙 처리부는,
    페이징 처리부가 요구 페이징을 수행하여 페이징 버퍼에 코드 또는 데이터를 읽어오면, 이를 이용하여 프로세스를 처리하는 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말.
  15. 제8항에 있어서,
    상기 물리적 저장 매체는 램인 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말.
  16. 제12항에 있어서,
    상기 비 휘발성 저장 매체는 플래쉬 메모리인 실시간 응답성이 요구되는 코드를 위한 요구 페이징을 수행하는 단말.
KR1020070120352A 2007-11-23 2007-11-23 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말 KR101420798B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070120352A KR101420798B1 (ko) 2007-11-23 2007-11-23 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말
US12/260,879 US8131918B2 (en) 2007-11-23 2008-10-29 Method and terminal for demand paging at least one of code and data requiring real-time response

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070120352A KR101420798B1 (ko) 2007-11-23 2007-11-23 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말

Publications (2)

Publication Number Publication Date
KR20090053487A KR20090053487A (ko) 2009-05-27
KR101420798B1 true KR101420798B1 (ko) 2014-07-17

Family

ID=40670730

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070120352A KR101420798B1 (ko) 2007-11-23 2007-11-23 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말

Country Status (2)

Country Link
US (1) US8131918B2 (ko)
KR (1) KR101420798B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103329112B (zh) * 2010-10-22 2015-12-16 意法爱立信有限公司 用于减少页面错误发生时压缩页面加载时间的方法和装置
US10565099B2 (en) * 2012-12-28 2020-02-18 Apple Inc. Methods and apparatus for compressed and compacted virtual memory
US9652152B2 (en) 2014-10-29 2017-05-16 Qualcomm Incorporated Efficient decompression locality system for demand paging
US9600420B2 (en) 2014-10-29 2017-03-21 Qualcomm Incorporated Reducing decompression time without impacting compression ratio
CN111722799B (zh) * 2020-05-28 2024-02-09 浪潮电子信息产业股份有限公司 一种数据存储方法、装置、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050005076A1 (en) * 2003-07-03 2005-01-06 M-Systems Flash Disk Pioneers, Ltd. Mass storage device with boot code
US20070245097A1 (en) * 2006-03-23 2007-10-18 Ibm Corporation Memory compression method and apparatus for heterogeneous processor architectures in an information handling system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6910106B2 (en) * 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US7594135B2 (en) * 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
KR100843136B1 (ko) * 2006-11-14 2008-07-02 삼성전자주식회사 비휘발성 메모리에서 연산 처리를 제어하는 장치 및 그방법
US8738840B2 (en) * 2008-03-31 2014-05-27 Spansion Llc Operating system based DRAM/FLASH management scheme

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050005076A1 (en) * 2003-07-03 2005-01-06 M-Systems Flash Disk Pioneers, Ltd. Mass storage device with boot code
US20070245097A1 (en) * 2006-03-23 2007-10-18 Ibm Corporation Memory compression method and apparatus for heterogeneous processor architectures in an information handling system

Also Published As

Publication number Publication date
KR20090053487A (ko) 2009-05-27
US8131918B2 (en) 2012-03-06
US20090138655A1 (en) 2009-05-28

Similar Documents

Publication Publication Date Title
US11829601B2 (en) Extended utilization area for a memory device
US8150890B2 (en) File system that manages files according to content
US7610479B2 (en) Computing device method that presents as a single file system operating system components in both executable and non-executable memory
EP1926022B1 (en) Apparatus and method for efficient memory use in portable terminal
KR20100081880A (ko) 비휘발성 메모리와, 이의 페이지 동적할당장치 및 페이지 매핑장치와, 이의 페이지 동적할당방법 및 페이지 매핑방법
JP2011128792A (ja) メモリ管理装置
CN101526923A (zh) 一种数据处理方法、装置和闪存存储***
KR101420798B1 (ko) 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말
KR20150012996A (ko) 자기 랜덤 액세스 메모리(mram)를 이용하는 저장 디바이스의 메모리 어레이의 제어기 관리
US20080162783A1 (en) Dynamically updateable and moveable memory zones
KR102076248B1 (ko) 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템
US7757053B2 (en) Apparatus and method for managing stacks for efficient memory usage
US20240069747A1 (en) Memory system
CN115145834A (zh) Flash存储器的数据管理方法、装置、设备以及存储介质
CN115421794A (zh) ***性能调整方法、装置、电子设备及存储介质
KR20080111242A (ko) 휴대용 단말기의 가상 메모리 장치 및 방법

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
LAPS Lapse due to unpaid annual fee