KR20060063705A - 비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법 - Google Patents

비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법 Download PDF

Info

Publication number
KR20060063705A
KR20060063705A KR1020050117098A KR20050117098A KR20060063705A KR 20060063705 A KR20060063705 A KR 20060063705A KR 1020050117098 A KR1020050117098 A KR 1020050117098A KR 20050117098 A KR20050117098 A KR 20050117098A KR 20060063705 A KR20060063705 A KR 20060063705A
Authority
KR
South Korea
Prior art keywords
memory
bitmap
data memory
data
block
Prior art date
Application number
KR1020050117098A
Other languages
English (en)
Other versions
KR100758282B1 (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 한국전자통신연구원
Publication of KR20060063705A publication Critical patent/KR20060063705A/ko
Application granted granted Critical
Publication of KR100758282B1 publication Critical patent/KR100758282B1/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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

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)
  • Memory System (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 비트맵 메모리를 이용하여 데이터 메모리를 관리함으로써 데이터 메모리 할당 및 해제 시간을 최소화하고, 또한 데이터 메모리의 공간이 낭비되는 것을 방지하기 위한 메모리 관리 장치 및 그 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 비트맵 메모리를 이용한 메모리 관리 장치에 있어서, 상기 해당 기기를 구동시키는데 필요한 데이터를 저장하기 위한 데이터 메모리; 상기 데이터 메모리의 각 블록과 일대일로 매핑되어 상기 데이터 메모리의 할당/해제 상태를 나타내기 위한 비트맵 메모리; 상기 데이터 메모리 및 상기 비트맵 메모리의 정보를 저장하고 있는 정보 메모리; 및 상기 비트맵 메모리 및 상기 정보 메모리를 참조하여 상기 데이터 메모리의 할당/해제를 제어하기 위한 제어 수단을 포함함.
4. 발명의 중요한 용도
본 발명은 무선통신 단말기 등에 이용됨.
비트맵 메모리, 데이터 메모리, 비트맵 상세 정보, 메모리 정보, 메모리 할당/해제

Description

비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법{Apparatus for managing memory using bitmap memory and its method}
도 1은 본 발명에 따른 메모리 관리부가 속하는 계층을 설명하기 위한 도면,
도 2는 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기의 일실시예 구성도,
도 3은 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기 메모리 구조의 일예시도,
도 4는 본 발명에 따른 비트맵 메모리의 일예시도,
도 5는 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 할당하는 방법에 대한 일실시예 흐름도,
도 6은 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 할당하는 프로그램 코드의 일예시도,
도 7은 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 해제하는 방법에 대한 일실시예 흐름도,
도 8은 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 해제하는 프로그램 코드의 일예시도이다.
* 도면의 주요 부분에 대한 부호의 설명
210 : 제어부 220 : 메모리 관리부
230 : 내부 메모리 240 : 외부 메모리
본 발명은 비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 비트맵 메모리를 이용하여 데이터 메모리를 관리함으로써 데이터 메모리 할당 및 해제 시간을 최소화하고, 또한 데이터 메모리의 공간이 낭비되는 것을 방지하기 위한 메모리 관리 장치 및 그 방법을 제공하는 그 목적이 있다.
이하의 일예에서는 무선통신 단말기를 예로 들어 설명하기로 한다. 그러나 본 발명이 이에 한정되는 것이 아님을 미리 밝혀둔다.
그리고, 본 발명에서 무선통신 단말기란 이동통신 단말기, 개인휴대통신 단말기(PCS), 개인용디지털 단말기(PDA), 스마트폰, 차세대이동통신 단말기(IMT-2000), 무선랜 단말기 등과 같이 개인이 휴대하면서 무선통신이 가능한 단말기를 말한다.
무선통신 단말기의 이점은 여러 가지가 있을 수 있겠지만, 무엇보다도 통화 하는 사용자에게 제공되는 이동성에 최대 이점이 있다고 할 수 있다. 이러한 이동성으로 인하여 무선통신 가입자의 수는 기하급수적으로 증가하였고, 근래에는 무선통신 단말기가 일반인에게 대중적으로 사용되고 있다.
하지만, 시간이 지나면서 무선통신 단말기 사용자에게 이동성의 메리트(merit)는 점점 사라지고, 좀 더 다양한 부가 서비스를 제공할 수 있는 다기능 무선통신 단말기가 요구되고 있다.
이에 따라, 최근 출시되고 있는 무선통신 단말기는 대부분 카메라 기능은 물론, 라디오 방송 수신 기능, 음악(일예로, MP3 : MPEG layer 3) 재생 기능, 지압 기능, 혈당량 감지 기능, 초음파 촬영 기능 등과 같은 다양한 부가 기능을 구비하고 있다. 특히, 음악 재생 기능은 젊은 세대들로부터 각광을 받고 있는 부가 기능들 중 하나다.
한편, 무선통신 단말기에 상기와 같이 부가 기능들이 추가됨에 따라 메모리에 데이터를 저장하는 빈도수가 높아지고, 이에 따라 메모리를 효과적으로 관리하는 방법이 요구되어진다.
한편, 종래의 무선통신 단말기에서 제공하는 메모리 할당 및 해제 방식은 다양한 크기의 데이터 구조를 하나의 메커니즘으로 수용하는 범용성으로 인해 가변 크기의 메모리 블록 할당/해제를 반복적으로 수행할 경우 임의의 순간에 가용할 수 없는 많은 메모리 조각들이 빈번하게 발생하고 이와 같이, 메모리 조각이 발생함으로 인해 전체적으로는 가용할 수 있는 메모리 크기가 충분할지라도 실제로 메모리를 할당하지 못하는 일이 발생하기도 한다.
예를 들어, 총 1000 바이트의 메모리가 처음에 300 바이트, 그 다음에 500 바이트, 세 번째 200 바이트의 순서로 할당이 되었다고 가정한다.
만약, 첫 번째 300 바이트와 두 번째 200 바이트의 메모리 블록이 해제된 상황에서 추가로 400 바이트의 메모리 블록 할당 요청이 있다면 (메모리 블록의 할당은 연속적인 바이트로 구성되어야 한다) 연속적인 400 바이트의 메모리가 가용하지 않은 상태이므로 추가적인 할당이 불가능해 진다. 따라서, 전체적으로 할당 가능한 메모리는 500 바이트일지라도 400 바이트의 메모리를 할당할 수 없는 경우가 발생한다.
상기와 같이 메모리 할당 방식을 고속 패킷 전송이 요구되는 무선통신 단말기에 적용할 경우, 많은 메모리 조각들을 발생시킬 가능성이 크고 이에 따라 무선통신 단말기의 전반적인 성능을 떨어뜨린다.
또한, 상기와 같이 메모리가 가변 크기로 나뉘어져 있기 때문에 필요한 크기의 메모리가 존재하는지를 확인하는데 많이 시간이 소요되어 무선통신 단말기의 전반적인 성능을 떨어뜨린다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 비트맵 메모리를 이용하여 데이터 메모리를 관리함으로써 데이터 메모리 할당 및 해제 시간을 최소화하고, 또한 데이터 메모리의 공간이 낭비되는 것을 방지하기 위한 메모리 관리 장치 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 장치는, 비트맵 메모리를 이용한 메모리 관리 장치에 있어서, 상기 해당 기기를 구동시키는데 필요한 데이터를 저장하기 위한 데이터 메모리; 상기 데이터 메모리의 각 블록과 일대일로 매핑되어 상기 데이터 메모리의 할당/해제 상태를 나타내기 위한 비트맵 메모리; 상기 데이터 메모리 및 상기 비트맵 메모리의 정보를 저장하고 있는 정보 메모리; 및 상기 비트맵 메모리 및 상기 정보 메모리를 참조하여 상기 데이터 메모리의 할당/해제를 제어하기 위한 제어 수단을 포함한다.
한편, 본 발명의 방법은, 비트맵 메모리를 이용한 메모리 관리 방법에 있어서, 특정 응용 프로그램의 메모리 요청에 따라 비트맵 메모리 및 정보 메모리를 참조하여 다음에 할당될 데이터 메모리 블록의 주소를 연산하여 리턴하고 그에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 메모리 할당 단계; 및 상기 특정 응용 프로그램이 데이터 메모리의 사용을 완료함에 따라 해제되는 데이터 메모리 블록의 주소로부터 상기 비트맵 메모리의 열과 행의 값을 연산하고 그에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 메모리 해제 단계를 포함한 다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1은 본 발명에 따른 메모리 관리부가 속하는 계층을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 무선통신 단말기는 MAC(Media Access Control) 계층 및 PHY(Physical) 계층을 가지는데, MAC 계층에서는 상위 계층 및 PHY 계층과의 인터페이스를 통해 데이터를 송수신하는 기능을 담당하고, PHY 계층에서는 MAC 계층으로부터 수신된 데이터를 공간상의 무선 채널로 송신하고, 또한 무선 채널로부터 수신된 데이터를 MAC 계층으로 송신하는 기능을 담당한다.
한편, 무선통신 단말기는 MAC 계층에서 입력되는 패킷(또는 SDU(Service Data Unit))의 전송과 관련된 SDU 분할 및 수신과 관련된 SDU 조립을 수행하는 메모리 관리부를 포함한다.
도 2는 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기의 일실시예 구성도이다.
도 2에 도시된 바와 같이, 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기는, 상기 무선통신 단말기의 전반적인 제어를 담당하는 제어부(210), 고속으로 데이터를 저장하기 위한 제어부(210)의 내부 메모리(230), 그리고 대용량의 데이터를 저장하기 위한 외부 메모리(240)를 포함한다.
그리고, 제어부(210)는 소프트웨어 또는 하드웨어 형태로 구현되어 내부 메모리 또는 외부 메모리 할당 및 해제를 담당하는 메모리 관리부(220)를 포함한다.
도 3은 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기 메모리 구조의 일예시도이다.
도 3에 도시된 바와 같이, 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기 메모리는, 데이터 메모리 및 비트맵 메모리의 정보를 저장하고 있는 정보 메모리 영역, 데이터 메모리 영역, 비트맵 메모리 영역을 포함한다.
한편, 정보 메모리에서 "memInfoAddr"는 데이터 메모리 및 비트맵 메모리의 정보를 위한 영역의 메모리 번지이다.
그리고, 상기 데이터 메모리 및 비트맵 메모리의 정보에는 "baseAddr", "size", "blkSize", "numBlk", "numBtm", "hdrAddr", 및 "btmAddr"이 있다.
여기서, "baseAddr"는 실제 데이터를 저장하기 위한 데이터 메모리 영역의 첫번째 블록의 주소를 가리킨다. 그리고 "size"는 실제 데이터를 저장하기 위한 총 데이터 메모리 블록을 바이트 수로 표현한 것이며, "blkSize"는 고정 메모리 블록의 크기를 나타낸다. 즉, 고정 크기의 데이터 구조를 저장하기 위한 블록의 크기를 나타낸다.
그리고, "numBlk"는 고정 크기의 메모리 블록의 개수를 나타내며, "numBtm"은 메모리 블록의 할당/해제 상태를 나타내는 1 비트의 정보를 나타내는 정보군의 크기를 32 비트 단위로 나타낸 것이며, "btmAddr"는 비트맵 메모리 주소(번지)를 나타낸다.
그리고, "hdrAddr"는 실제 데이터를 저장하는 데이터 메모리의 할당 상황 정보를 나타내는 비트맵 메모리 상세 정보를 저장하고 있는 메모리 영역의 주소를 가리킨다.
한편, 비트맵 메모리의 상태를 나타내는 비트맵 상세 정보에는 "flag", "numFreeBlk", "btmRow", "btmCol"이 있다.
여기서, "btmRow"는 다음 할당될 데이터 메모리의 블록 번호를 나타내고 있는 비트맵 메모리의 행의 번호를 가리키고, "btmCol"은 다음 할당될 데이터 메모리의 블록 번호를 나타내고 있는 비트맵 메모리의 열의 번호를 가리킨다.
따라서, 상기 "btmRow"와 "btmCol"을 조합하면 다음 할당될 데이터 메모리의 블록 번호를 알 수 있다.
그리고, "flag"는 현재 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록의 할당 또는 해제의 작용이 진행되고 있음을 나타내는 지시자이며, 이 지시자가 1일 경우 메모리가 사용 중임을 가리킨다. "flag"가 1일 경우에는 다른 응용 프로그램에서 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 사용할 수 없다.
즉, "flag"는 어떤 특정 응용 프로그램에서 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 할당받는 순간 동시에 1로 셋팅되어 다른 응용 프로그램에서 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 사용하지 못하도록 방지하는 역할을 한다.
예를 들어, 만약 두 개의 응용 프로그램이 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 동시에 할당받고자 할 때, 두 개의 응용 프로그램 중 어떤 특정 응용 프로그램이 먼저 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 할당받은 경우, "flag"가 1로 값이 변경되어 나머지 응용 프로그램이 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 할당받지 못하도록 하는 것이다.
만약, 두 개의 응용 프로그램이 동시에 같은 데이터 메모리 블록을 할당받을 경우, 상기 데이터 메모리 블록에는 정상적인 데이터가 저장되지 못하여 무선통신 단말기가 오동작을 일으키기 때문이다.
그리고, "numFreeBlk"은 현재 할당 가능 데이터 메모리 블록의 개수를 나타낸다.
한편, 현재 할당 가능 데이터 메모리 블록의 번호는 상기 비트맵 상세 정보이 정보를 이용하여 하기 [수학식 1]에 의해 연산된다.
할당 가능 데이터 메모리 블록 번호 = btmRow * 32 + btmCol
따라서, 실제 할당되는 데이터 메모리 블록의 절대 주소는 하기 [수학식 2]에 의해 연산된다.
할당 가능 데이터 메모리 블록의 주소 = baseAddr + blkSize * [수학식 1]
한편, 상기와 같이 데이터 메모리는 한 가지 크기로만 구분되는 것이 아니다. 즉, 한가지 크기의 "blkSize"에 의해서 데이터 메모리 블록이 구분되는 것이 아니라 응용 프로그램에서 요청한 프로그램의 크기를 미리 예상하여 각 크기에 따라 각각 구분되는 것이다.
따라서, 메모리 블록의 크기는 한가지 종류가 아니고 여러 종류가 되며, 그에 따라 상기 메모리 블록의 할당/해제 상태를 나타내기 위한 비트맵 메모리 및 비트맵 상세 정보가 따로 있으며, 또한 상기 비트맵 메모리 및 상기 상이한 크기의 메모리 블록의 정보를 나타내기 위한 정보 메모리가 각각 따로 존재한다.
예를 들어, 응용 프로그램에서 요청할 프로그램의 크기가 200 바이트, 300 바이트, 400 바이트인 경우, 데이터 메모리는 200 바이트, 300 바이트 그리고 400 바이트의 크기로 각각 소정의 개수만큼 메모리 블록을 가진다. 각 크기의 메모리 블록은 연속적으로 위치하며, 또한 각 크기의 메모리 블록을 관리하기 위한 비트맵 메모리, 정보 메모리가 각각 존재한다.
그리하여, 응용 프로그램에서 프로그램을 요청하면 제어부(210)의 메모리 관리부(220)는 상기 프로그램의 크기에 해당하는 정보 메모리 및 비트맵 메모리를 참조하여 상기 프로그램을 메모리에 로딩시킴으로써, 메모리 할당/해제 시간을 최소화할 수 있고, 또한 가변 크기로 메모리가 구분되어 있지 않기 때문에 메모리의 할당/해제로 인해 메모리 조각이 발생하는 것을 방지할 수 있다.
그리고, 각 메모리 블록의 크기에 따라 비트맵 메모리, 정보 메모리가 있어, 메모리 할당/해제 시간을 최소화할 수 있다.
도 4는 본 발명에 따른 메모리 관리를 위한 비트맵 메모리의 일예시도이다.
도 4에 도시된 바와 같이, 본 발명에 따른 메모리 관리를 위한 비트맵 메모리의 각 비트는 해당 데이터 메모리 블록과 일대일로 매핑되어 있으며 btmRow/btmCol의 조합에 의해 해당 데이터 메모리 블록의 번호를 나타낸다. 즉, i번째 행과 j번째 열의 비트에 매핑되는 데이터 메모리 블록 번호는 (i * 32 + j)이다. 그리고, i번째 행과 j번째 열의 비트에 매핑되는 데이터 메모리 블록이 현재 할당되어 있는 상태이면 "1"로 셋팅되어 있고, i번째 행과 j번째 열의 비트에 매핑되는 데이터 메모리 블록이 현재 해제되어 있는 상태이면 "0"으로 셋팅되어 있어, 현재 데이터 메모리 블록의 할당/해제 상태를 각각 나타낸다.
도 5는 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 할당하는 방법에 대한 일실시예 흐름도이다.
먼저, 제어부(210)는 어떤 특정 응용 프로그램에서 메모리를 할당받고자 요청하면 상기 할당받고자 요청하는 데이터 메모리 블록의 크기에 해당하는 데이터 메모리 블록의 현재 할당 가능 데이터 메모리 블록의 개수가 0보다 큰지 즉, 현재 할당 가능한 데이터 메모리 블록이 존재하는지를 비트맵 상세 정보 중 "numFreeBlk"의 값을 이용하여 확인한다(510).
상기 확인 결과(510), 상기 요청받은 데이터 메모리 블록의 크기에 해당하는 "numFreeBlk"의 값이 0보다 작은 경우 즉, 현재 할당 가능한 데이터 메모리 블록이 하나도 없는 경우, 에러 코드를 리턴하여(520) 현재 할당 가능 데이터 메모리 블록이 없음을 알려, 데이터 메모리의 용량을 확장하는 등의 대책을 마련하도록 한다.
한편, 상기 확인 결과(510), 상기 요청받은 데이터 메모리 블록의 크기에 해당하는 "numFreeBlk"의 값이 0보다 큰 경우, 제어부(210)는 비트맵 상세 정보 및 비트맵 메모리를 이용하여 상기 [수학식 2]에 의하여 할당될 데이터 메모리 블록의 주소를 연산한다(530).
이후, 제어부(210)는 비트맵 상세 정보 중 "btmRow"와 "btmCol"을 이용하여 비트맵 메모리에서 상기 할당될 데이터 메모리 블록을 가리키고 있는 비트값을 "1"로 셋팅한다(540).
이후, 제어부(210)는 비트맵 상세 정보 중 "numFreeBlk"의 값을 1 감소시켜(550) 할당 가능 데이터 메모리 블록의 개수가 1 감소하도록 하고, 다음 할당될 데이터 메모리 블록을 가리키고 있는 비트맵 메모리의 행과 열의 값으로 비트맵 상세 정보 중 "btmRow"와 "btmCol"의 값을 설정한다(560).
이때, 상기 "btmRow"와 "btmCol"는 현재 할당될 데이터 메모리 블록을 가리키고 있는 비트맵의 열과 행의 값에서 가장 가까이 있는 할당 가능 데이터 메모리 블록을 가리키고 있는 비트맵의 열과 행의 값으로 설정된다.
이후, 상기 현재 할당될 데이터 메모리 블록의 주소를 상기 메모리의 할당을 요청한 응용 프로그램으로 리턴하여(570) 데이터 메모리를 할당받을 수 있도록 한다.
도 6은 상기와 같은 메모리 할당 방법을 수도 코드(Pseudo Code)로 나타낸 것이다.
상기와 같은 방법으로 데이터 메모리를 할당함으로써 할당 가능한 데이터 메모리 블록의 할당 시간을 절약할 수 있으며, 또한 이로 인해 무선통신 단말기의 수행 시간을 최소화할 수 있다.
도 7은 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 해제하는 방법에 대한 일실시예 흐름도이다.
먼저, 제어부(210)는 어떤 특정 응용 프로그램에서 데이터 메모리의 사용을 완료하였음을 알리면 상기 특정 응용 프로그램이 할당받았던 즉, 현재 해제될 데이터 메모리 블록의 크기와 주소를 이용하여 상기 해제될 데이터 메모리의 블록을 가리키고 있는 비트맵 메모리의 열과 행을 연산한다(710).
이후, 상기 연산한 비트맵 메모리의 열과 행에 해당하는 비트값을 "0"으로 설정하고(720), 비트맵 상세 정보 중 할당 가능한 데이터 메모리 블록의 수를 나타내는 "numFreeBlk"의 값을 1 증가시킨다(730).
이후, 제어부(210)는 현재 할당 가능한 데이터 메모리 블록의 개수가 1개 인지를 확인한다(740). 즉, 비트맵 상세 정보 중 할당 가능한 데이터 메모리 블록의 수를 나타내는 "numFreeBlk"의 값이 1인지 확인한다.
상기 확인 결과(740), 현재 할당 가능한 데이터 메모리 블록의 개수가 1인 경우 현재 해제될 데이터 메모리 블록이 다음 할당될 데이터 메모리 블록이기 때문에 비트맵 상세 정보 중 "btmRow"와 "btmCol"의 값을 현재 해제될 데이터 메모리 블록을 가리키는 비트맵 메모리의 열과 행의 값으로 설정한다(750).
상기와 같이, 현재 메모리 블록이 해제되어야 할당 가능한 데이터 메모리 블록이 존재하는 경우 즉, 현재 모든 데이터 메모리가 할당되어 있는 경우 비트맵 상세 정보 중 다음 할당 가능한 데이터 메모리의 블록을 가리키는 비트맵 메모리의 열과 행의 값은 다음 할당 가능한 데이터 메모리의 블록이 없기 때문에 어떤 특정값으로 셋팅될 수 없다.
따라서, 이러한 경우 상기 "btmRow"와 "btmCol"의 모든 비트값을 "1"로 설정하는 등의 특정한 값으로 설정하여 현재 할당가능한 데이터 메모리 블록이 없음을 알린다.
따라서, 현재 해제되는 데이터 메모리 블록을 가리키는 비트맵의 열과 행의 값을 상기 "btmRow"와 "btmCol"의 값으로 셋팅하는 것이다.
한편, 상기 확인 결과(740), 현재 할당 가능한 데이터 메모리 블록의 개수가 1이 아닌 경우, 이미 상기 "btmRow"와 "btmCol"는 다음 할당 가능한 데이터 메모리 블록을 가리키는 비트맵 메모리의 열과 행의 값으로 셋팅되어 있기 때문에 변경할 필요가 없다.
따라서, 바로 데이터 메모리 블록의 해제 과정을 종료한다.
도 8은 상기와 같은 메모리 해제 방법을 수도 코드(Pseudo Code)로 나타낸 것이다.
상기와 같이, 요청된 메모리 블록의 크기를 미리 예상하고, 그에 따라 같은 크기의 메모리 블록을 연속적으로 위치시킴으로써, 종래의 데이터 메모리가 할당되었다가 해제된 경우 사용할 수 없는 메모리 조각이 생기는 것을 방지할 수 있으며, 또한 데이터 메모리 블럭의 할당/해제를 비트맵 메모리를 이용하여 관리함으로써 메모리 할당/해제 시간을 최소화하여 무선통신 단말기의 성능을 향상시킬 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 요청된 메모리 블록의 크기를 미리 예상하고, 그에 따라 같은 크기의 메모리 블록을 연속적으로 위치시킴으로써 메모리가 할당되었다 가 해제된 경우 사용할 수 없는 메모리 조각이 생기는 것을 방지할 수 있는 효과가 있다.
또한, 본 발명은 상기 프로그램의 크기에 따라 구분되어진 메모리 블록의 할당/해제를 비트맵 메모리를 이용하여 관리함으로써 메모리 할당/해제 시간을 최소화하여 해당 전자기기의 성능을 향상시킬 수 있는 효과가 있다.

Claims (10)

  1. 비트맵 메모리를 이용한 메모리 관리 장치에 있어서,
    상기 해당 기기를 구동시키는데 필요한 데이터를 저장하기 위한 데이터 메모리;
    상기 데이터 메모리의 각 블록과 일대일로 매핑되어 상기 데이터 메모리의 할당/해제 상태를 나타내기 위한 비트맵 메모리;
    상기 데이터 메모리 및 상기 비트맵 메모리의 정보를 저장하고 있는 정보 메모리; 및
    상기 비트맵 메모리 및 상기 정보 메모리를 참조하여 상기 데이터 메모리의 할당/해제를 제어하기 위한 제어 수단
    을 포함하는 비트맵 메모리를 이용한 메모리 관리 장치.
  2. 제 1 항에 있어서,
    상기 정보 메모리는,
    상기 데이터 메모리의 첫 번째 주소(baseAddr),
    상기 데이터 메모리의 전체 크기(size),
    상기 데이터 메모리의 고정 블록 크기(blkSize),
    상기 데이터 메모리의 고정 블록의 개수(numBlk),
    상기 비트맵 메모리의 비트군의 개수(numBtm),
    상기 비트맵 메모리의 정보를 나타내는 비트맵 상세 정보 영역의 주소(hdrAddr), 및
    상기 비트맵 메모리의 첫 번째 주소(btmAddr)
    를 포함하는 것을 특징으로 하는 비트맵 메모리를 이용한 메모리 관리 장치.
  3. 제 2 항에 있어서,
    상기 비트맵 상세 정보는,
    다음에 할당될 데이터 메모리 블록을 가리키는 상기 비트맵 메모리의 열의 값(btmRow),
    상기 다음에 할당될 데이터 메모리 블록을 가리키는 상기 비트맵 메모리의 행의 값(btmCol),
    상기 비트맵 메모리의 열과 행이 가리키는 데이터 메모리 블록의 할당/해제 상황을 나타내는 플래그(flag), 및
    현재 할당 가능한 데이터 메모리 블록의 개수(numFreeBlk)
    를 포함하는 것을 특징으로 하는 비트맵 메모리를 이용한 메모리 관리 장치.
  4. 제 3 항에 있어서,
    상기 데이터 메모리 블록의 크기는 요청되는 프로그램의 크기에 따라 소정의 개수만큼 각각 구분되어 있으며, 상기 비트맵 메모리 및 상기 정보 메모리는 상기 상이한 크기의 데이터 메모리 블록에 따라 각각 존재하는 것을 특징으로 하는 비트맵 메모리를 이용한 메모리 관리 장치.
  5. 제 4 항에 있어서,
    상기 제어 수단은,
    상기 정보 메모리를 참조하여 상기 다음에 할당될 데이터 메모리 블록의 번호와 실제 주소를 연산하고, 그에 따라 상기 정보 메모리를 갱신하는 것을 특징으로 하는 비트맵 메모리를 이용한 메모리 관리 장치.
  6. 제 5 항에 있어서,
    상기 제어 수단은,
    하기 [수학식 1]에 따라 상기 다음에 할당될 데이터 메모리 블록의 번호를 연산하고,
    하기 [수학식 2]에 따라 상기 다음에 할당될 데이터 메모리 블록의 실제 주소를 연산하는 것을 특징으로 하는 비트맵 메모리를 이용한 메모리 관리 장치.
    [수학식 1]
    할당 가능 데이터 메모리 블록 번호 = btmRow * 32 + btmCol
    [수학식 2]
    할당 가능 데이터 메모리 블록의 주소 = baseAddr + blkSize * [수학식 1]
  7. 비트맵 메모리를 이용한 메모리 관리 방법에 있어서,
    특정 응용 프로그램의 메모리 요청에 따라 비트맵 메모리 및 정보 메모리를 참조하여 다음에 할당될 데이터 메모리 블록의 주소를 연산하여 리턴하고 그에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 메모리 할당 단계; 및
    상기 특정 응용 프로그램이 데이터 메모리의 사용을 완료함에 따라 해제되는 데이터 메모리 블록의 주소로부터 상기 비트맵 메모리의 열과 행의 값을 연산하고 그에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 메모리 해제 단계
    를 포함하는 비트맵 메모리를 이용한 메모리 관리 방법.
  8. 제 7 항에 있어서,
    상기 메모리 할당 단계는,
    상기 특정 응용 프로그램이 요청한 데이터 메모리 블록의 크기를 확인하는 단계;
    상기 확인한 데이터 메모리 블록의 할당 가능 메모리 블록의 개수를 확인하는 단계;
    상기 확인한 할당 가능 데이터 메모리 블록이 0보다 큼에 따라 하기 [수학식 1] 및 [수학식 2]에 의해 할당될 데이터 메모리 블록의 주소를 연산하는 단계;
    상기 할당될 데이터 메모리 블록의 주소를 가리키는 비트맵 메모리의 비트값을 소정의 값으로 설정하는 단계;
    비트맵 상세 정보의 할당 가능 데이터 메모리 블록의 개수를 1 감소시키는 단계;
    상기 할당될 데이터 메모리 블록과 가장 근접한 할당 가능한 데이터 메모리 블록을 나타내는 비트맵 메모리 비트값의 열과 행의 값으로 비트맵 상세 정보의 비트맵 메모리 열의 값(btmRow)과 비트맵 메모리 행의 값(btmCol)을 설정하는 단계; 및
    상기 연산한 할당될 데이터 메모리 블록의 주소를 리턴하는 단계
    를 포함하는 비트맵 메모리를 이용한 메모리 관리 방법.
    [수학식 1]
    할당 가능 데이터 메모리 블록 번호 = btmRow * 32 + btmCol
    [수학식 2]
    할당 가능 데이터 메모리 블록의 주소 = baseAddr + blkSize * [수학식 1]
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 메모리 해제 단계는,
    상기 특정 응용 프로그램이 사용을 완료한(해제될) 데이터 메모리 블록의 크기를 확인하는 단계;
    상기 해제될 데이터 메모리 블록의 주소로부터 상기 확인한 데이터 메모리 블록에 해당하는 비트맵 메모리의 열과 행의 값을 연산하는 단계;
    상기 연산한 비트맵 메모리의 열과 행에 해당하는 비트맵 메모리의 비트값을 소정의 값으로 셋팅하는 단계;
    비트맵 상세 정보의 할당 가능 데이터 메모리 블록의 개수를 1 증가시키는 단계;
    상기 할당 가능 데이터 메모리 블록의 개수가 1인지 확인하는 단계; 및
    상기 확인한 할당 가능 데이터 메모리 블록의 개수가 1일임에 따라 상기 해제될 데이터 메모리 블록을 가리키는 비트맵 메모리의 비트값의 열과 행의 값으로 비트맵 상세 정보의 비트맵 메모리 열의 값(btmRow)과 비트맵 메모리 행의 값(btmCol)을 설정하는 단계
    를 포함하는 비트맵 메모리를 이용한 메모리 관리 방법.
  10. 제 9 항에 있어서,
    상기 비트맵 상세 정보는,
    다음에 할당될 데이터 메모리 블록을 가리키는 상기 비트맵 메모리의 열의 값(btmRow),
    상기 다음에 할당될 데이터 메모리 블록을 가리키는 상기 비트맵 메모리의 행의 값(btmCol),
    상기 비트맵 메모리의 열과 행이 가리키는 데이터 메모리 블록의 할당/해제 상황을 나타내는 플래그(flag), 및
    현재 할당 가능한 데이터 메모리 블록의 개수(numFreeBlk)
    를 포함하는 비트맵 메모리를 이용한 메모리 관리 방법.
KR1020050117098A 2004-12-04 2005-12-02 비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법 KR100758282B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040101473 2004-12-04
KR20040101473 2004-12-04

Publications (2)

Publication Number Publication Date
KR20060063705A true KR20060063705A (ko) 2006-06-12
KR100758282B1 KR100758282B1 (ko) 2007-09-12

Family

ID=37159608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050117098A KR100758282B1 (ko) 2004-12-04 2005-12-02 비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100758282B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100652715B1 (ko) * 2005-02-28 2006-12-01 엘지전자 주식회사 휴대단말기의 프로그램 다이나믹 로드장치 및 방법
US9223689B2 (en) 2010-05-14 2015-12-29 Samsung Electronics Co., Ltd. Apparatus and method for managing memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030071299A (ko) * 2002-02-28 2003-09-03 주식회사 엘지이아이 메모리 관리 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100652715B1 (ko) * 2005-02-28 2006-12-01 엘지전자 주식회사 휴대단말기의 프로그램 다이나믹 로드장치 및 방법
US9223689B2 (en) 2010-05-14 2015-12-29 Samsung Electronics Co., Ltd. Apparatus and method for managing memory

Also Published As

Publication number Publication date
KR100758282B1 (ko) 2007-09-12

Similar Documents

Publication Publication Date Title
JP7116047B2 (ja) プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するためのメモリコントローラおよび方法
US10152501B2 (en) Rollover strategies in a n-bit dictionary compressed column store
EP3047381B1 (en) Dynamic sizing of memory caches
US7747834B2 (en) Memory manager for an embedded system
US20060149893A1 (en) Data storage management for flash memory devices
US20100312984A1 (en) Memory management
US7653798B2 (en) Apparatus and method for controlling memory allocation for variable size packets
CN108780420B (zh) 在基于处理器的系统中的存储器中的经压缩存储器线的基于优先级的存取
US6405201B1 (en) Method and apparatus for reducing network traffic for remote file append operations
US11899580B2 (en) Cache space management method and apparatus
KR20180103907A (ko) 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(dram) 캐시 관리의 제공
KR102402780B1 (ko) 메모리 관리 방법 및 장치
CN100544471C (zh) 扩展移动终端的存储空间的方法和系统
EP3248095B1 (en) Storage resource management in virtualized environments
KR100758282B1 (ko) 비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법
US20180225224A1 (en) Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems
US20060136668A1 (en) Allocating code objects between faster and slower memories
WO2006037635A2 (en) Determining sizes of memory frames for dynamic memory allocation limiting internal fragmentation
US20050246502A1 (en) Dynamic memory mapping
US20040019715A1 (en) Multirate circular buffer and method of operating the same
CN113778688B (zh) 内存管理系统、内存管理方法、内存管理装置
KR20160018204A (ko) 전자 장치, 온 칩 메모리 장치 및 온 칩 메모리의 운영 방법
US6718451B2 (en) Utilizing overhead in fixed length memory block pools
US9223689B2 (en) Apparatus and method for managing memory
JP2007317176A (ja) 端末装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20110831

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee