KR100758282B1 - Apparatus for managing memory using bitmap memory and its method - Google Patents

Apparatus for managing memory using bitmap memory and its method Download PDF

Info

Publication number
KR100758282B1
KR100758282B1 KR1020050117098A KR20050117098A KR100758282B1 KR 100758282 B1 KR100758282 B1 KR 100758282B1 KR 1020050117098 A KR1020050117098 A KR 1020050117098A KR 20050117098 A KR20050117098 A KR 20050117098A KR 100758282 B1 KR100758282 B1 KR 100758282B1
Authority
KR
South Korea
Prior art keywords
memory
bitmap
data memory
block
data
Prior art date
Application number
KR1020050117098A
Other languages
Korean (ko)
Other versions
KR20060063705A (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 한국전자통신연구원
Publication of KR20060063705A publication Critical patent/KR20060063705A/en
Application granted granted Critical
Publication of KR100758282B1 publication Critical patent/KR100758282B1/en

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

Abstract

본 발명은 비트맵 메모리를 이용하여 데이터 메모리를 관리함으로써 데이터 메모리 할당 및 해제 시간을 최소화하고, 또한 데이터 메모리의 공간이 낭비되는 것을 방지하기 위한 메모리 관리 장치 및 그 방법에 관한 것으로, 비트맵 메모리를 이용한 메모리 관리 장치에 있어서, 상기 데이터를 저장하는 데이터 메모리; 상기 데이터 메모리의 각 블록과 일대일로 매핑되어 상기 데이터 메모리의 할당/해제 상태를 나타내기 위한 비트맵 메모리; 상기 데이터 메모리 및 상기 비트맵 메모리의 정보를 저장하고 있는 정보 메모리; 및 특정 응용 프로그램의 메모리 요청에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 참조하여 다음에 할당될 데이터 메모리 블록의 주소를 연산하고, 메모리 블록이 할당되면, 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하며, 데이터 메모리의 사용이 완료되면 해제되는 데이터 메모리 블록의 주소로부터 상기 비트맵 메모리의 열과 행의 값을 연산하고, 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 제어 수단을 포함한다.The present invention relates to a memory management apparatus and method for minimizing data memory allocation and release time by managing data memory using a bitmap memory and to prevent wasting space of the data memory. A memory management apparatus, comprising: a data memory for storing the data; A bitmap memory mapped one-to-one with each block of the data memory to indicate an allocated / release state of the data memory; An information memory for storing information of the data memory and the bitmap memory; And calculates an address of a data memory block to be allocated next by referring to the bitmap memory and the information memory according to a memory request of a specific application program, and when the memory block is allocated, updates the bitmap memory and the information memory. And control means for calculating a value of a column and a row of the bitmap memory from an address of a data memory block which is released when the use of the data memory is completed, and updating the bitmap memory and the information memory.

비트맵 메모리, 데이터 메모리, 비트맵 상세 정보, 메모리 정보, 메모리 할당/해제 Bitmap memory, data memory, bitmap details, memory information, memory allocation / deallocation

Description

비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법{Apparatus for managing memory using bitmap memory and its method}Apparatus for managing memory using bitmap memory and its method

도 1은 본 발명에 따른 메모리 관리부가 속하는 계층을 설명하기 위한 도면,1 is a view for explaining a hierarchy to which the memory management unit according to the present invention;

도 2는 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기의 일실시예 구성도,2 is a configuration diagram of an embodiment of a wireless communication terminal managing a memory using a bitmap memory according to the present invention;

도 3은 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기 메모리 구조의 일예시도,3 is an exemplary diagram of a wireless communication terminal memory structure managing a memory using a bitmap memory according to the present invention;

도 4는 본 발명에 따른 비트맵 메모리의 일예시도,4 is an exemplary diagram of a bitmap memory according to the present invention;

도 5는 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 할당하는 방법에 대한 일실시예 흐름도,5 is a flowchart illustrating a method of allocating a memory using a bitmap memory in a wireless communication terminal according to the present invention;

도 6은 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 할당하는 프로그램 코드의 일예시도,6 is an exemplary diagram of a program code for allocating a memory using a bitmap memory in a wireless communication terminal according to the present invention;

도 7은 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 해제하는 방법에 대한 일실시예 흐름도,7 is a flowchart illustrating a method of releasing a memory using a bitmap memory in a wireless communication terminal according to the present invention;

도 8은 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 해제하는 프로그램 코드의 일예시도이다.8 is an exemplary view of a program code for releasing a memory using a bitmap memory in a wireless communication terminal according to the present invention.

* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

210 : 제어부 220 : 메모리 관리부210: control unit 220: memory management unit

230 : 내부 메모리 240 : 외부 메모리230: internal memory 240: external memory

본 발명은 비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 비트맵 메모리를 이용하여 데이터 메모리를 관리함으로써 데이터 메모리 할당 및 해제 시간을 최소화하고, 또한 데이터 메모리의 공간이 낭비되는 것을 방지하기 위한 메모리 관리 장치 및 그 방법에 관한 것이다.The present invention relates to a memory management apparatus using the bitmap memory and a method thereof, and more particularly, to manage the data memory using the bitmap memory to minimize the data memory allocation and release time, and wasted space of the data memory It relates to a memory management apparatus and method thereof for preventing it.

이하의 일예에서는 무선통신 단말기를 예로 들어 설명하기로 한다. 그러나 본 발명이 이에 한정되는 것이 아님을 미리 밝혀둔다.In the following example, a wireless communication terminal will be described as an example. However, it should be noted that the present invention is not limited thereto.

그리고, 본 발명에서 무선통신 단말기란 이동통신 단말기, 개인휴대통신 단말기(PCS), 개인용디지털 단말기(PDA), 스마트폰, 차세대이동통신 단말기(IMT-2000), 무선랜 단말기 등과 같이 개인이 휴대하면서 무선통신이 가능한 단말기를 말한다.In the present invention, a wireless communication terminal is a mobile communication terminal, a personal mobile communication terminal (PCS), a personal digital terminal (PDA), a smart phone, a next generation mobile communication terminal (IMT-2000), such as a wireless terminal while carrying a person A terminal capable of wireless communication.

무선통신 단말기의 이점은 여러 가지가 있을 수 있겠지만, 무엇보다도 통화 하는 사용자에게 제공되는 이동성에 최대 이점이 있다고 할 수 있다. 이러한 이동성으로 인하여 무선통신 가입자의 수는 기하급수적으로 증가하였고, 근래에는 무선통신 단말기가 일반인에게 대중적으로 사용되고 있다.There may be various advantages of the wireless communication terminal, but above all, the greatest advantage is in the mobility provided to the user who is calling. Due to this mobility, the number of wireless communication subscribers has increased exponentially, and in recent years, wireless communication terminals are widely used by the general public.

하지만, 시간이 지나면서 무선통신 단말기 사용자에게 이동성의 메리트(merit)는 점점 사라지고, 좀 더 다양한 부가 서비스를 제공할 수 있는 다기능 무선통신 단말기가 요구되고 있다.However, as time goes by, the merits of mobility have gradually disappeared to users of wireless communication terminals, and a multifunctional wireless communication terminal capable of providing more various additional services is required.

이에 따라, 최근 출시되고 있는 무선통신 단말기는 대부분 카메라 기능은 물론, 라디오 방송 수신 기능, 음악(일예로, MP3 : MPEG layer 3) 재생 기능, 지압 기능, 혈당량 감지 기능, 초음파 촬영 기능 등과 같은 다양한 부가 기능을 구비하고 있다. 특히, 음악 재생 기능은 젊은 세대들로부터 각광을 받고 있는 부가 기능들 중 하나다.Accordingly, most recently released wireless communication terminals have various functions such as camera function, radio broadcast reception function, music (for example, MP3: MPEG layer 3) playback function, acupressure function, blood glucose detection function, ultrasonic imaging function, etc. It has a function. In particular, the music playback function is one of the additional features that are in the spotlight of the young generation.

한편, 무선통신 단말기에 상기와 같이 부가 기능들이 추가됨에 따라 메모리에 데이터를 저장하는 빈도수가 높아지고, 이에 따라 메모리를 효과적으로 관리하는 방법이 요구되어진다.On the other hand, as the additional functions are added to the wireless communication terminal as described above, the frequency of storing data in the memory increases, and accordingly, there is a need for a method of effectively managing the memory.

한편, 종래의 무선통신 단말기에서 제공하는 메모리 할당 및 해제 방식은 다양한 크기의 데이터 구조를 하나의 메커니즘으로 수용하는 범용성으로 인해 가변 크기의 메모리 블록 할당/해제를 반복적으로 수행할 경우 임의의 순간에 가용할 수 없는 많은 메모리 조각들이 빈번하게 발생하고 이와 같이, 메모리 조각이 발생함으로 인해 전체적으로는 가용할 수 있는 메모리 크기가 충분할지라도 실제로 메모리를 할당하지 못하는 일이 발생하기도 한다.On the other hand, the memory allocation and release method provided by the conventional wireless communication terminal is available at any moment when repeatedly performing the variable block allocation / deallocation of the variable size due to the universality of accommodating data structures of various sizes as a mechanism Many unsuccessful memory fragments occur frequently, and as a result, memory fragments can sometimes fail to allocate memory even if the total amount of available memory is sufficient.

예를 들어, 총 1000 바이트의 메모리가 처음에 300 바이트, 그 다음에 500 바이트, 세 번째 200 바이트의 순서로 할당이 되었다고 가정한다.For example, suppose a total of 1000 bytes of memory were allocated in the order of 300 bytes first, then 500 bytes, and then the third 200 bytes.

만약, 첫 번째 300 바이트와 두 번째 200 바이트의 메모리 블록이 해제된 상황에서 추가로 400 바이트의 메모리 블록 할당 요청이 있다면 (메모리 블록의 할당은 연속적인 바이트로 구성되어야 한다) 연속적인 400 바이트의 메모리가 가용하지 않은 상태이므로 추가적인 할당이 불가능해 진다. 따라서, 전체적으로 할당 가능한 메모리는 500 바이트일지라도 400 바이트의 메모리를 할당할 수 없는 경우가 발생한다.If there is an additional 400 bytes of memory block allocation request with the first 300 bytes and the second 200 bytes of memory blocks freed (the allocation of memory blocks must consist of consecutive bytes), 400 consecutive bytes of memory Since is not available, no further allocation is possible. Therefore, even if the totally assignable memory is 500 bytes, it is impossible to allocate 400 bytes of memory.

상기와 같이 메모리 할당 방식을 고속 패킷 전송이 요구되는 무선통신 단말기에 적용할 경우, 많은 메모리 조각들을 발생시킬 가능성이 크고 이에 따라 무선통신 단말기의 전반적인 성능을 떨어뜨린다. As described above, when the memory allocation scheme is applied to a wireless communication terminal requiring high-speed packet transmission, it is likely to generate a large number of memory fragments, thereby degrading the overall performance of the wireless communication terminal.

또한, 상기와 같이 메모리가 가변 크기로 나뉘어져 있기 때문에 필요한 크기의 메모리가 존재하는지를 확인하는데 많은 시간이 소요되어 무선통신 단말기의 전반적인 성능을 떨어뜨린다.In addition, since the memory is divided into a variable size as described above, it takes a lot of time to determine whether the memory of the required size exists, reducing the overall performance of the wireless communication terminal.

본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 비트맵 메모리를 이용하여 데이터 메모리를 관리함으로써 데이터 메모리 할당 및 해제 시간을 최소화하고, 또한 데이터 메모리의 공간이 낭비되는 것을 방지하기 위한 메모리 관리 장치 및 그 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems, and a memory management apparatus for minimizing the data memory allocation and release time by managing the data memory using a bitmap memory, and to prevent wasting space of the data memory; The purpose is to provide a method.

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present invention can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. Also, it will be readily appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.

상기 목적을 달성하기 위한 본 발명의 장치는, 비트맵 메모리를 이용한 메모리 관리 장치에 있어서, 데이터를 저장하는 데이터 메모리; 상기 데이터 메모리의 각 블록과 일대일로 매핑되어 상기 데이터 메모리의 할당/해제 상태를 나타내기 위한 비트맵 메모리; 상기 데이터 메모리 및 상기 비트맵 메모리의 정보를 저장하고 있는 정보 메모리; 및 특정 응용 프로그램의 메모리 요청에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 참조하여 다음에 할당될 데이터 메모리 블록의 주소를 연산하고, 메모리 블록이 할당되면, 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하며, 데이터 메모리의 사용이 완료되면 해제되는 데이터 메모리 블록의 주소로부터 상기 비트맵 메모리의 열과 행의 값을 연산하고, 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 제어 수단을 포함한다.An apparatus of the present invention for achieving the above object is a memory management apparatus using a bitmap memory, comprising: a data memory for storing data; A bitmap memory mapped one-to-one with each block of the data memory to indicate an allocated / release state of the data memory; An information memory for storing information of the data memory and the bitmap memory; And calculates an address of a data memory block to be allocated next by referring to the bitmap memory and the information memory according to a memory request of a specific application program, and when the memory block is allocated, updates the bitmap memory and the information memory. And control means for calculating a value of a column and a row of the bitmap memory from an address of a data memory block which is released when the use of the data memory is completed, and updating the bitmap memory and the information memory.

한편, 본 발명의 방법은, 비트맵 메모리를 이용한 메모리 관리 방법에 있어서, 특정 응용 프로그램의 메모리 요청에 따라 비트맵 메모리 및 정보 메모리를 참조하여 다음에 할당될 데이터 메모리 블록의 주소를 연산하여 리턴하고 그에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 메모리 할당 단계; 및 상기 특정 응용 프로그램이 데이터 메모리의 사용을 완료함에 따라 해제되는 데이터 메모리 블록의 주소로부터 상기 비트맵 메모리의 열과 행의 값을 연산하고 그에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 메모리 해제 단계를 포함한 다.On the other hand, the method of the present invention, in the memory management method using a bitmap memory, by referring to the bitmap memory and information memory in accordance with the memory request of a specific application program to calculate and return the address of the next data memory block to be allocated A memory allocation step of updating the bitmap memory and the information memory accordingly; And a memory releasing step of calculating a value of a column and a row of the bitmap memory from an address of a data memory block released as the specific application finishes using the data memory, and updating the bitmap memory and the information memory accordingly. It includes.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 메모리 관리부가 속하는 계층을 설명하기 위한 도면이다.1 is a view for explaining a hierarchy to which the memory management unit according to the present invention belongs.

도 1에 도시된 바와 같이, 무선통신 단말기는 MAC(Media Access Control) 계층 및 PHY(Physical) 계층을 가지는데, MAC 계층에서는 상위 계층 및 PHY 계층과의 인터페이스를 통해 데이터를 송수신하는 기능을 담당하고, PHY 계층에서는 MAC 계층으로부터 수신된 데이터를 공간상의 무선 채널로 송신하고, 또한 무선 채널로부터 수신된 데이터를 MAC 계층으로 송신하는 기능을 담당한다. As shown in FIG. 1, the wireless communication terminal has a media access control (MAC) layer and a physical (HY) layer. The MAC layer is responsible for transmitting and receiving data through an interface with a higher layer and a PHY layer. In this case, the PHY layer is responsible for transmitting data received from the MAC layer to a wireless channel in space and also transmitting data received from the wireless channel to the MAC layer.

한편, 무선통신 단말기는 MAC 계층에서 입력되는 패킷(또는 SDU(Service Data Unit))의 전송과 관련된 SDU 분할 및 수신과 관련된 SDU 조립을 수행하는 메모리 관리부를 포함한다.On the other hand, the wireless communication terminal includes a memory management unit for performing the SDU assembly associated with the transmission and reception of the SDU (or SDU (Service Data Unit)) input in the MAC layer.

도 2는 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기의 일실시예 구성도이다.2 is a block diagram of an embodiment of a wireless communication terminal managing a memory using a bitmap memory according to the present invention.

도 2에 도시된 바와 같이, 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기는, 상기 무선통신 단말기의 전반적인 제어를 담당하는 제어부(210), 고속으로 데이터를 저장하기 위한 제어부의 내부 메모리(230), 그리고 대용량의 데이터를 저장하기 위한 외부 메모리(240)를 포함한다.As shown in FIG. 2, a wireless communication terminal for managing a memory using a bitmap memory according to the present invention includes a control unit 210 for controlling overall control of the wireless communication terminal, a control unit for storing data at high speed. The internal memory 230, and an external memory 240 for storing a large amount of data.

그리고, 제어부(210)는 소프트웨어 또는 하드웨어 형태로 구현되어 내부 메모리 또는 외부 메모리 할당 및 해제를 담당하는 메모리 관리부(220)를 포함한다.In addition, the controller 210 includes a memory manager 220 that is implemented in software or hardware and is responsible for allocating and releasing an internal memory or an external memory.

도 3은 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기 메모리 구조의 일예시도이다.3 is an exemplary diagram of a wireless communication terminal memory structure managing a memory using a bitmap memory according to the present invention.

도 3에 도시된 바와 같이, 본 발명에 따른 비트맵 메모리를 이용하여 메모리를 관리하는 무선통신 단말기 메모리는, 데이터 메모리 및 비트맵 메모리의 정보를 저장하고 있는 정보 메모리 영역, 데이터 메모리 영역, 비트맵 메모리 영역을 포함한다.As shown in FIG. 3, a wireless communication terminal memory managing a memory using a bitmap memory according to the present invention includes an information memory area, a data memory area, and a bitmap that store information of a data memory and a bitmap memory. It includes a memory area.

한편, 정보 메모리에서 "memInfoAddr"는 데이터 메모리 및 비트맵 메모리의 정보를 위한 영역의 메모리 번지이다.On the other hand, "memInfoAddr" in the information memory is a memory address of an area for information of the data memory and the bitmap memory.

그리고, 상기 데이터 메모리 및 비트맵 메모리의 정보에는 "baseAddr", "size", "blkSize", "numBlk", "numBtm", "hdrAddr", 및 "btmAddr"이 있다.Information on the data memory and bitmap memory includes "baseAddr", "size", "blkSize", "numBlk", "numBtm", "hdrAddr", and "btmAddr".

여기서, "baseAddr"는 실제 데이터를 저장하기 위한 데이터 메모리 영역의 첫번째 블록의 주소를 가리킨다. 그리고 "size"는 실제 데이터를 저장하기 위한 총 데이터 메모리 블록을 바이트 수로 표현한 것이며, "blkSize"는 고정 메모리 블록의 크기를 나타낸다. 즉, 고정 크기의 데이터 구조를 저장하기 위한 블록의 크기를 나타낸다. Here, "baseAddr" indicates the address of the first block of the data memory area for storing actual data. "Size" represents the total data memory block for storing actual data in bytes, and "blkSize" represents the size of the fixed memory block. That is, it shows the size of a block for storing a fixed size data structure.

그리고, "numBlk"는 고정 크기의 메모리 블록의 개수를 나타내며, "numBtm"은 메모리 블록의 할당/해제 상태를 나타내는 1 비트의 정보를 나타내는 정보군의 크기를 32 비트 단위로 나타낸 것이며, "btmAddr"는 비트맵 메모리 주소(번지)를 나타낸다. &Quot; numBlk " represents the number of fixed-size memory blocks, " numBtm " represents the size of the information group representing one-bit information indicating the allocation / release state of the memory block in 32-bit units, and " btmAddr " Indicates a bitmap memory address.

그리고, "hdrAddr"는 실제 데이터를 저장하는 데이터 메모리의 할당 상황 정보를 나타내는 비트맵 메모리 상세 정보를 저장하고 있는 메모리 영역의 주소를 가리킨다. And "hdrAddr" points out the address of the memory area which stores bitmap memory detailed information which shows allocation status information of the data memory which stores actual data.

한편, 비트맵 메모리의 상태를 나타내는 비트맵 상세 정보에는 "flag", "numFreeBlk", "btmRow", "btmCol"이 있다.On the other hand, the bitmap detailed information indicating the state of the bitmap memory includes "flag", "numFreeBlk", "btmRow", and "btmCol".

여기서, "btmRow"는 다음 할당될 데이터 메모리의 블록 번호를 나타내고 있는 비트맵 메모리의 행의 번호를 가리키고, "btmCol"은 다음 할당될 데이터 메모리의 블록 번호를 나타내고 있는 비트맵 메모리의 열의 번호를 가리킨다.Here, "btmRow" refers to the number of the row of the bitmap memory indicating the block number of the next allocated data memory, and "btmCol" refers to the number of the column of the bitmap memory indicating the block number of the next allocated data memory. .

따라서, 상기 "btmRow"와 "btmCol"을 조합하면 다음 할당될 데이터 메모리의 블록 번호를 알 수 있다.Therefore, by combining the "btmRow" and "btmCol", the block number of the next data memory to be allocated can be known.

그리고, "flag"는 현재 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록의 할당 또는 해제의 작용이 진행되고 있음을 나타내는 지시자이며, 이 지시자가 1일 경우 메모리가 사용 중임을 가리킨다. "flag"가 1일 경우에는 다른 응용 프로그램에서 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 사용할 수 없다.In addition, "flag" is an indicator indicating that an operation of allocating or releasing data memory blocks indicated by "btmRow" and "btmCol" is currently in progress. If this indicator is 1, it indicates that memory is in use. If "flag" is 1, the data memory block indicated by "btmRow" and "btmCol" cannot be used in another application.

즉, "flag"는 어떤 특정 응용 프로그램에서 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 할당받는 순간 동시에 1로 셋팅되어 다른 응용 프로그램에서 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 사용하지 못하도록 방지하는 역할을 한다. That is, "flag" is set to 1 at the same time when the data memory blocks pointed to by "btmRow" and "btmCol" are allocated in a specific application, and the data memory block pointed by "btmRow" and "btmCol" in other applications. Prevents the use of.

예를 들어, 만약 두 개의 응용 프로그램이 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 동시에 할당받고자 할 때, 두 개의 응용 프로그램 중 어떤 특정 응용 프로그램이 먼저 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 할당받은 경우, "flag"가 1로 값이 변경되어 나머지 응용 프로그램이 상기 "btmRow"와 "btmCol"이 가리키는 데이터 메모리 블록을 할당받지 못하도록 하는 것이다. For example, if two applications want to simultaneously allocate the data memory block indicated by the "btmRow" and "btmCol", a certain application of the two applications first needs to be "btmRow" and "btmCol". When the data memory block pointed to is allocated, the value of "flag" is changed to 1 so that the remaining applications cannot be allocated the data memory block pointed to by "btmRow" and "btmCol".

만약, 두 개의 응용 프로그램이 동시에 같은 데이터 메모리 블록을 할당받을 경우, 상기 데이터 메모리 블록에는 정상적인 데이터가 저장되지 못하여 무선통신 단말기가 오동작을 일으키기 때문이다.If two application programs are simultaneously allocated the same data memory block, normal data cannot be stored in the data memory block, causing the wireless communication terminal to malfunction.

그리고, "numFreeBlk"은 현재 할당 가능 데이터 메모리 블록의 개수를 나타낸다. &Quot; numFreeBlk " represents the number of currently assignable data memory blocks.

한편, 현재 할당 가능 데이터 메모리 블록의 번호는 상기 비트맵 상세 정보이 정보를 이용하여 하기 [수학식 1]에 의해 연산된다.On the other hand, the number of the currently assignable data memory block is calculated by the following Equation 1 using the bitmap detailed information.

할당 가능 데이터 메모리 블록 번호 = btmRow * 32 + btmCol Assignable Data Memory Block Number = btmRow * 32 + btmCol

따라서, 실제 할당되는 데이터 메모리 블록의 절대 주소는 하기 [수학식 2]에 의해 연산된다.Therefore, the absolute address of the data memory block that is actually allocated is calculated by Equation 2 below.

할당 가능 데이터 메모리 블록의 주소 = baseAddr + blkSize * [수학식 1]Address of assignable data memory block = baseAddr + blkSize * [Equation 1]

한편, 상기와 같이 데이터 메모리는 한 가지 크기로만 구분되는 것이 아니다. 즉, 한가지 크기의 "blkSize"에 의해서 데이터 메모리 블록이 구분되는 것이 아니라 응용 프로그램에서 요청한 프로그램의 크기를 미리 예상하여 각 크기에 따라 각각 구분되는 것이다. On the other hand, the data memory as described above is not divided into only one size. In other words, data memory blocks are not classified by one size of "blkSize", but are classified according to each size by predicting the size of a program requested by an application in advance.

따라서, 메모리 블록의 크기는 한가지 종류가 아니고 여러 종류가 되며, 그에 따라 상기 메모리 블록의 할당/해제 상태를 나타내기 위한 비트맵 메모리 및 비트맵 상세 정보가 따로 있으며, 또한 상기 비트맵 메모리 및 상기 상이한 크기의 메모리 블록의 정보를 나타내기 위한 정보 메모리가 각각 따로 존재한다.Therefore, the size of the memory block is not one, but various, and accordingly, there are separate bitmap memory and bitmap detailed information for indicating the allocation / release state of the memory block, and also the bitmap memory and the different There is a separate information memory for representing information of a memory block of size.

예를 들어, 응용 프로그램에서 요청할 프로그램의 크기가 200 바이트, 300 바이트, 400 바이트인 경우, 데이터 메모리는 200 바이트, 300 바이트 그리고 400 바이트의 크기로 각각 소정의 개수만큼 메모리 블록을 가진다. 각 크기의 메모리 블록은 연속적으로 위치하며, 또한 각 크기의 메모리 블록을 관리하기 위한 비트맵 메모리, 정보 메모리가 각각 존재한다.For example, when the size of a program requested by an application program is 200 bytes, 300 bytes, or 400 bytes, the data memory has a predetermined number of memory blocks, each of 200 bytes, 300 bytes, and 400 bytes. Memory blocks of each size are continuously located, and there are bitmap memory and information memory for managing memory blocks of each size, respectively.

그리하여, 응용 프로그램에서 프로그램을 요청하면 제어부(210)의 메모리 관리부(220)는 상기 프로그램의 크기에 해당하는 정보 메모리 및 비트맵 메모리를 참조하여 상기 프로그램을 메모리에 로딩시킴으로써, 메모리 할당/해제 시간을 최소화할 수 있고, 또한 가변 크기로 메모리가 구분되어 있지 않기 때문에 메모리의 할당/해제로 인해 메모리 조각이 발생하는 것을 방지할 수 있다.Thus, when an application program requests a program, the memory manager 220 of the controller 210 loads the program into the memory by referring to the information memory and the bitmap memory corresponding to the size of the program, thereby allocating a memory allocation / release time. In addition, since the memory is not divided into variable sizes, memory fragments can be prevented from being allocated or deallocated.

그리고, 각 메모리 블록의 크기에 따라 비트맵 메모리, 정보 메모리가 있어, 메모리 할당/해제 시간을 최소화할 수 있다.In addition, there is a bitmap memory and an information memory according to the size of each memory block, thereby minimizing memory allocation / release time.

도 4는 본 발명에 따른 메모리 관리를 위한 비트맵 메모리의 일예시도이다.4 is an example of a bitmap memory for memory management according to the present invention.

도 4에 도시된 바와 같이, 본 발명에 따른 메모리 관리를 위한 비트맵 메모리의 각 비트는 해당 데이터 메모리 블록과 일대일로 매핑되어 있으며 btmRow/btmCol의 조합에 의해 해당 데이터 메모리 블록의 번호를 나타낸다. 즉, i번째 행과 j번째 열의 비트에 매핑되는 데이터 메모리 블록 번호는 (i * 32 + j)이다. 그리고, i번째 행과 j번째 열의 비트에 매핑되는 데이터 메모리 블록이 현재 할당되어 있는 상태이면 "1"로 셋팅되어 있고, i번째 행과 j번째 열의 비트에 매핑되는 데이터 메모리 블록이 현재 해제되어 있는 상태이면 "0"으로 셋팅되어 있어, 현재 데이터 메모리 블록의 할당/해제 상태를 각각 나타낸다.As shown in FIG. 4, each bit of the bitmap memory for memory management according to the present invention is mapped one-to-one with a corresponding data memory block and represents the number of the corresponding data memory block by a combination of btmRow / btmCol. That is, the data memory block number mapped to the bits of the i th row and the j th column is (i * 32 + j). If a data memory block mapped to the bits of the i-th row and the j-th column is currently allocated, it is set to "1", and the data memory block mapped to the bits of the i-th row and the j-th column is currently released. If the status is set to "0", it indicates the allocation / release status of the current data memory block.

도 5는 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 할당하는 방법에 대한 일실시예 흐름도이다.5 is a flowchart illustrating a method of allocating a memory using a bitmap memory in a wireless communication terminal according to the present invention.

먼저, 제어부(210)는 어떤 특정 응용 프로그램에서 메모리를 할당받고자 요청하면 상기 할당받고자 요청하는 데이터 메모리 블록의 크기에 해당하는 데이터 메모리 블록의 현재 할당 가능 데이터 메모리 블록의 개수가 0보다 큰지 즉, 현재 할당 가능한 데이터 메모리 블록이 존재하는지를 비트맵 상세 정보 중 "numFreeBlk"의 값을 이용하여 확인한다(510).First, when a specific application program requests memory to be allocated, the controller 210 determines whether the number of currently assignable data memory blocks of the data memory block corresponding to the size of the data memory block requested to be allocated is greater than zero, that is, the current The existence of the allocable data memory block is checked using the value of "numFreeBlk" in the bitmap detailed information (510).

상기 확인 결과(510), 상기 요청받은 데이터 메모리 블록의 크기에 해당하는 "numFreeBlk"의 값이 0보다 작은 경우 즉, 현재 할당 가능한 데이터 메모리 블록이 하나도 없는 경우, 에러 코드를 리턴하여(520) 현재 할당 가능 데이터 메모리 블록이 없음을 알려, 데이터 메모리의 용량을 확장하는 등의 대책을 마련하도록 한다.As a result of the check 510, if the value of "numFreeBlk" corresponding to the size of the requested data memory block is smaller than 0, that is, if no data memory block is currently allocated, an error code is returned (520). Inform that there is no allocable data memory block, and take countermeasures such as expanding the data memory capacity.

한편, 상기 확인 결과(510), 상기 요청받은 데이터 메모리 블록의 크기에 해당하는 "numFreeBlk"의 값이 0보다 큰 경우, 제어부(210)는 비트맵 상세 정보 및 비트맵 메모리를 이용하여 상기 [수학식 2]에 의하여 할당될 데이터 메모리 블록의 주소를 연산한다(530).On the other hand, when the check result 510, the value of "numFreeBlk" corresponding to the size of the requested data memory block is greater than zero, the controller 210 uses the bitmap detailed information and the bitmap memory to The address of the data memory block to be allocated by Equation 2 is calculated (530).

이후, 제어부(210)는 비트맵 상세 정보 중 "btmRow"와 "btmCol"을 이용하여 비트맵 메모리에서 상기 할당될 데이터 메모리 블록을 가리키고 있는 비트값을 "1"로 셋팅한다(540).Thereafter, the controller 210 sets the bit value indicating the data memory block to be allocated in the bitmap memory to "1" using "btmRow" and "btmCol" in the bitmap detailed information (540).

이후, 제어부(210)는 비트맵 상세 정보 중 "numFreeBlk"의 값을 1 감소시켜(550) 할당 가능 데이터 메모리 블록의 개수가 1 감소하도록 하고, 다음 할당될 데이터 메모리 블록을 가리키고 있는 비트맵 메모리의 행과 열의 값으로 비트맵 상세 정보 중 "btmRow"와 "btmCol"의 값을 설정한다(560). Thereafter, the controller 210 decreases the value of "numFreeBlk" in the bitmap detailed information by 1 (550) so that the number of allocable data memory blocks is decreased by 1, and the value of the bitmap memory indicating the next data memory block to be allocated. The values of "btmRow" and "btmCol" in the bitmap detailed information are set as row and column values (560).

이때, 상기 "btmRow"와 "btmCol"는 현재 할당될 데이터 메모리 블록을 가리키고 있는 비트맵의 열과 행의 값에서 가장 가까이 있는 할당 가능 데이터 메모리 블록을 가리키고 있는 비트맵의 열과 행의 값으로 설정된다.In this case, the "btmRow" and "btmCol" are set to the value of the column and the row of the bitmap indicating the closest assignable data memory block from the value of the column and the row of the bitmap indicating the data memory block to be currently allocated.

이후, 상기 현재 할당될 데이터 메모리 블록의 주소를 상기 메모리의 할당을 요청한 응용 프로그램으로 리턴하여(570) 데이터 메모리를 할당받을 수 있도록 한다.Thereafter, the address of the data memory block to be allocated is returned to the application program requesting the allocation of the memory (570) so that the data memory can be allocated.

도 6은 상기와 같은 메모리 할당 방법을 의사 코드(Pseudo Code)로 나타낸 것이다.FIG. 6 shows the above memory allocation method in pseudo code.

상기와 같은 방법으로 데이터 메모리를 할당함으로써 할당 가능한 데이터 메모리 블록의 할당 시간을 절약할 수 있으며, 또한 이로 인해 무선통신 단말기의 수행 시간을 최소화할 수 있다.By allocating the data memory in the above manner, it is possible to save the allocating time of the allocable data memory block, thereby minimizing the execution time of the wireless communication terminal.

도 7은 본 발명에 따른 무선통신 단말기에서 비트맵 메모리를 이용하여 메모리를 해제하는 방법에 대한 일실시예 흐름도이다.7 is a flowchart illustrating a method of releasing a memory using a bitmap memory in a wireless communication terminal according to the present invention.

먼저, 제어부(210)는 어떤 특정 응용 프로그램에서 데이터 메모리의 사용을 완료하였음을 알리면 상기 특정 응용 프로그램이 할당받았던 즉, 현재 해제될 데이터 메모리 블록의 크기와 주소를 이용하여 상기 해제될 데이터 메모리의 블록을 가리키고 있는 비트맵 메모리의 열과 행을 연산한다(710).First, when the controller 210 informs that a specific application has completed the use of the data memory, the block of the data memory to be released using the size and the address of the data memory block to which the specific application has been allocated, i. A column and a row of the bitmap memory pointed to are computed (710).

이후, 상기 연산한 비트맵 메모리의 열과 행에 해당하는 비트값을 "0"으로 설정하고(720), 비트맵 상세 정보 중 할당 가능한 데이터 메모리 블록의 수를 나타내는 "numFreeBlk"의 값을 1 증가시킨다(730).Thereafter, the bit values corresponding to the columns and rows of the computed bitmap memory are set to "0" (720), and the value of "numFreeBlk" representing the number of assignable data memory blocks in the bitmap detailed information is increased by one. (730).

이후, 제어부(210)는 현재 할당 가능한 데이터 메모리 블록의 개수가 1개 인지를 확인한다(740). 즉, 비트맵 상세 정보 중 할당 가능한 데이터 메모리 블록의 수를 나타내는 "numFreeBlk"의 값이 1인지 확인한다.Thereafter, the controller 210 checks whether the number of currently allocated data memory blocks is one (740). That is, it is checked whether the value of "numFreeBlk" indicating the number of allocable data memory blocks in the bitmap detailed information is 1.

상기 확인 결과(740), 현재 할당 가능한 데이터 메모리 블록의 개수가 1인 경우 현재 해제될 데이터 메모리 블록이 다음 할당될 데이터 메모리 블록이기 때문에 비트맵 상세 정보 중 "btmRow"와 "btmCol"의 값을 현재 해제될 데이터 메모리 블록을 가리키는 비트맵 메모리의 열과 행의 값으로 설정한다(750).As a result of the check 740, when the number of currently allocated data memory blocks is 1, the values of "btmRow" and "btmCol" in the bitmap detailed information are present because the data memory block to be released is the next data memory block to be allocated. A value of a column and a row of the bitmap memory indicating the data memory block to be released is set (750).

상기와 같이, 현재 메모리 블록이 해제되어야 할당 가능한 데이터 메모리 블록이 존재하는 경우 즉, 현재 모든 데이터 메모리가 할당되어 있는 경우 비트맵 상세 정보 중 다음 할당 가능한 데이터 메모리의 블록을 가리키는 비트맵 메모리의 열과 행의 값은 다음 할당 가능한 데이터 메모리의 블록이 없기 때문에 어떤 특정값으로 셋팅될 수 없다. As described above, when there is a data memory block that can be allocated when the current memory block is released, that is, when all data memory is currently allocated, the columns and rows of the bitmap memory indicating the next block of the data memory that can be allocated among the bitmap detailed information. The value of can not be set to any particular value since there is no next block of data memory that can be allocated.

따라서, 이러한 경우 상기 "btmRow"와 "btmCol"의 모든 비트값을 "1"로 설정하는 등의 특정한 값으로 설정하여 현재 할당가능한 데이터 메모리 블록이 없음을 알린다.Therefore, in this case, all bit values of "btmRow" and "btmCol" are set to a specific value such as "1" to indicate that there is no data memory block currently allocated.

따라서, 현재 해제되는 데이터 메모리 블록을 가리키는 비트맵의 열과 행의 값을 상기 "btmRow"와 "btmCol"의 값으로 셋팅하는 것이다.Therefore, the values of the columns and rows of the bitmap indicating the data memory block which are currently released are set to the values of "btmRow" and "btmCol".

한편, 상기 확인 결과(740), 현재 할당 가능한 데이터 메모리 블록의 개수가 1이 아닌 경우, 이미 상기 "btmRow"와 "btmCol"는 다음 할당 가능한 데이터 메모리 블록을 가리키는 비트맵 메모리의 열과 행의 값으로 셋팅되어 있기 때문에 변경할 필요가 없다.On the other hand, if the check result 740, the number of currently allocated data memory blocks is not 1, already "btmRow" and "btmCol" is the value of the column and row of the bitmap memory indicating the next assignable data memory block It is set so that there is no need to change it.

따라서, 바로 데이터 메모리 블록의 해제 과정을 종료한다.Therefore, the release process of the data memory block is immediately terminated.

도 8은 상기와 같은 메모리 해제 방법을 의사 코드(Pseudo Code)로 나타낸 것이다.FIG. 8 illustrates a method of releasing the memory as a pseudo code.

상기와 같이, 요청된 메모리 블록의 크기를 미리 예상하고, 그에 따라 같은 크기의 메모리 블록을 연속적으로 위치시킴으로써, 종래의 데이터 메모리가 할당되었다가 해제된 경우 사용할 수 없는 메모리 조각이 생기는 것을 방지할 수 있으며, 또한 데이터 메모리 블럭의 할당/해제를 비트맵 메모리를 이용하여 관리함으로써 메모리 할당/해제 시간을 최소화하여 무선통신 단말기의 성능을 향상시킬 수 있다.As described above, by estimating the size of the requested memory block in advance, and consequently placing memory blocks of the same size in succession, it is possible to prevent the occurrence of unusable pieces of memory when conventional data memory is allocated and released. Also, by managing the allocation / release of the data memory block using the bitmap memory, the performance of the wireless communication terminal can be improved by minimizing the memory allocation / release time.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in more detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

상기와 같은 본 발명은, 요청된 메모리 블록의 크기를 미리 예상하고, 그에 따라 같은 크기의 메모리 블록을 연속적으로 위치시킴으로써 메모리가 할당되었다 가 해제된 경우 사용할 수 없는 메모리 조각이 생기는 것을 방지할 수 있는 효과가 있다.As described above, the present invention can predict the size of a requested memory block in advance, and accordingly, by sequentially placing memory blocks of the same size, it is possible to prevent the occurrence of unusable pieces of memory when the memory is allocated and released. It works.

또한, 본 발명은 상기 프로그램의 크기에 따라 구분되어진 메모리 블록의 할당/해제를 비트맵 메모리를 이용하여 관리함으로써 메모리 할당/해제 시간을 최소화하여 해당 전자기기의 성능을 향상시킬 수 있는 효과가 있다.In addition, the present invention has the effect of minimizing the memory allocation / release time by managing the allocation / release of memory blocks divided according to the size of the program using a bitmap memory to improve the performance of the electronic device.

Claims (10)

비트맵 메모리를 이용한 메모리 관리 장치에 있어서,In the memory management apparatus using a bitmap memory, 데이터를 저장하는 데이터 메모리;A data memory for storing data; 상기 데이터 메모리의 각 블록과 일대일로 매핑되어 상기 데이터 메모리의 할당/해제 상태를 나타내기 위한 비트맵 메모리;A bitmap memory mapped one-to-one with each block of the data memory to indicate an allocated / release state of the data memory; 상기 데이터 메모리 및 상기 비트맵 메모리의 정보를 저장하고 있는 정보 메모리; 및An information memory for storing information of the data memory and the bitmap memory; And 특정 응용 프로그램의 메모리 요청에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 참조하여 다음에 할당될 데이터 메모리 블록 주소를 연산하고, 상기 데이터 메모리의 메모리 블록이 할당되면, 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하며, 상기 데이터 메모리의 사용이 완료되면 해제되는 상기 데이터 메모리의 블록 주소로부터 상기 비트맵 메모리의 열과 행의 값을 연산하고, 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 제어 수단The data memory block address to be allocated next is calculated by referring to the bitmap memory and the information memory according to a memory request of a specific application program, and when the memory block of the data memory is allocated, the bitmap memory and the information memory are changed. Control means for updating the bitmap memory and the information memory, calculating a value of a column and a row of the bitmap memory from a block address of the data memory which is released when the use of the data memory is completed. 을 포함하는 비트맵 메모리를 이용한 메모리 관리 장치.Memory management apparatus using a bitmap memory comprising a. 제 1 항에 있어서,The method of claim 1, 상기 정보 메모리는,The information memory, 상기 데이터 메모리의 첫 번째 주소(baseAddr),The first address (baseAddr) of the data memory, 상기 데이터 메모리의 전체 크기(size),The total size of the data memory, 상기 데이터 메모리의 고정 블록 크기(blkSize),A fixed block size (blkSize) of the data memory, 상기 데이터 메모리의 고정 블록의 개수(numBlk),Number of fixed blocks of the data memory (numBlk), 상기 비트맵 메모리의 비트군의 개수(numBtm),Number of bit groups of the bitmap memory (numBtm), 상기 비트맵 메모리의 정보를 나타내는 비트맵 상세 정보 영역의 주소(hdrAddr), 및An address hdrAddr representing a bitmap memory information, and 상기 비트맵 메모리의 첫 번째 주소(btmAddr)First address of the bitmap memory (btmAddr) 를 포함하는 것을 특징으로 하는 비트맵 메모리를 이용한 메모리 관리 장치.Memory management apparatus using a bitmap memory, characterized in that it comprises a. 제 2 항에 있어서,The method of claim 2, 상기 비트맵 상세 정보는,The bitmap detailed information, 다음에 할당될 데이터 메모리 블록을 가리키는 상기 비트맵 메모리의 행의 값(btmRow),A value (btmRow) of a row of the bitmap memory indicating a data memory block to be allocated next, 상기 다음에 할당될 데이터 메모리 블록을 가리키는 상기 비트맵 메모리의 열의 값(btmCol),A value (btmCol) of a column of the bitmap memory indicating the next data memory block to be allocated, 상기 비트맵 메모리의 열과 행이 가리키는 데이터 메모리 블록의 할당/해제 상황을 나타내는 플래그(flag), 및A flag indicating a status of allocating / releasing a data memory block indicated by the columns and rows of the bitmap memory, and 현재 할당 가능한 데이터 메모리 블록 개수(numFreeBlk)Number of currently allocated data memory blocks (numFreeBlk) 를 포함하는 것을 특징으로 하는 비트맵 메모리를 이용한 메모리 관리 장치.Memory management apparatus using a bitmap memory, characterized in that it comprises a. 제 3 항에 있어서,The method of claim 3, wherein 상기 데이터 메모리 블록 크기는 요청되는 프로그램의 크기에 따라 소정의 개수만큼 각각 구분되어 있으며, 상기 비트맵 메모리 및 상기 정보 메모리는 상기 상이한 크기의 데이터 메모리 블록에 따라 각각 존재하는 것을 특징으로 하는 비트맵 메모리를 이용한 메모리 관리 장치.The data memory block sizes are divided by a predetermined number according to the size of the requested program, and the bitmap memory and the information memory are respectively present according to the data memory blocks of different sizes. Memory management device using. 삭제delete 제 1 항에 있어서,The method of claim 1, 상기 제어 수단은,The control means, 하기 [수학식 1]에 따라 상기 다음에 할당될 데이터 메모리 블록의 번호를 연산하고,The number of data memory blocks to be allocated next is calculated according to Equation 1 below, 하기 [수학식 2]에 따라 상기 다음에 할당될 데이터 메모리 블록의 실제 주소를 연산하는 것을 특징으로 하는 비트맵 메모리를 이용한 메모리 관리 장치.And a physical address of the next data memory block to be allocated according to Equation 2 below. [수학식 1][Equation 1] 할당 가능 데이터 메모리 블록 번호 = btmRow * 32 + btmColAssignable Data Memory Block Number = btmRow * 32 + btmCol 수학식 1에서 "btmRow"는 다음 할당될 데이터 메모리의 블록 번호를 나타내고 있는 비트맵 메모리의 행의 번호를 가리키고, "btmCol"은 다음 할당될 데이터 메모리의 블록 번호를 나타내고 있는 비트맵 메모리의 열의 번호를 가리킨다.In Equation 1, "btmRow" indicates the number of the row of the bitmap memory indicating the block number of the next allocated data memory, and "btmCol" indicates the number of the column of the bitmap memory indicating the block number of the next allocated data memory. Point to. [수학식 2][Equation 2] 할당 가능 데이터 메모리 블록의 주소 = baseAddr + blkSize * [수학식 1]Address of assignable data memory block = baseAddr + blkSize * [Equation 1] 수학식 2에서 "baseAddr"은 데이터 메모리 영역의 첫번째 블록의 주소를 나타내고, "blkSize"는 데이터 메모리의 고정 블록 크기를 나타낸다.In Equation 2, "baseAddr" represents the address of the first block of the data memory area, and "blkSize" represents the fixed block size of the data memory. 비트맵 메모리를 이용한 메모리 관리 방법에 있어서,In the memory management method using a bitmap memory, 특정 응용 프로그램의 메모리 요청에 따라 비트맵 메모리 및 정보 메모리를 참조하여 다음에 할당될 데이터 메모리 블록의 주소를 연산하여 리턴하고 그에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 메모리 할당 단계; 및A memory allocation step of calculating and returning an address of a data memory block to be allocated next by referring to a bitmap memory and an information memory according to a memory request of a specific application program and updating the bitmap memory and the information memory accordingly; And 상기 특정 응용 프로그램이 데이터 메모리의 사용을 완료함에 따라 해제되는 데이터 메모리 블록의 주소로부터 상기 비트맵 메모리의 열과 행의 값을 연산하고 그에 따라 상기 비트맵 메모리 및 상기 정보 메모리를 갱신하는 메모리 해제 단계A memory releasing step of calculating a value of a column and a row of the bitmap memory from an address of a data memory block released as the specific application finishes using the data memory and updating the bitmap memory and the information memory accordingly 를 포함하는 비트맵 메모리를 이용한 메모리 관리 방법.Memory management method using a bitmap memory comprising a. 제 7 항에 있어서,The method of claim 7, wherein 상기 메모리 할당 단계는,The memory allocation step, 상기 특정 응용 프로그램이 요청한 데이터 메모리 블록의 크기를 확인하는 단계;Checking a size of a data memory block requested by the specific application program; 상기 확인한 데이터 메모리 블록의 할당 가능 메모리 블록의 개수를 확인하는 단계;Checking the number of allocable memory blocks of the checked data memory blocks; 상기 확인한 할당 가능 데이터 메모리 블록이 0보다 큼에 따라 하기 [수학식 1] 및 [수학식 2]에 의해 할당될 데이터 메모리 블록의 주소를 연산하는 단계;Calculating an address of a data memory block to be allocated by Equation 1 and Equation 2 as the identified allocable data memory block is greater than zero; 상기 할당될 데이터 메모리 블록의 주소를 가리키는 비트맵 메모리의 비트값을 소정의 값으로 설정하는 단계;Setting a bit value of a bitmap memory indicating an address of the data memory block to be allocated to a predetermined value; 비트맵 상세 정보의 할당 가능 데이터 메모리 블록의 개수를 1 감소시키는 단계;Reducing the number of assignable data memory blocks of the bitmap detailed information by one; 상기 할당될 데이터 메모리 블록과 가장 근접한 할당 가능한 데이터 메모리 블록을 나타내는 비트맵 메모리 비트값의 열과 행의 값으로 비트맵 상세 정보의 비트맵 메모리 행의 값(btmRow)과 비트맵 메모리 열의 값(btmCol)을 설정하는 단계; 및A bitmap memory row value (btmRow) and a bitmap memory column value (btmCol) of a bitmap memory row of bitmap detail information as a column and row value of a bitmap memory bit value representing an assignable data memory block closest to the data memory block to be allocated. Setting up; And 상기 연산한 할당될 데이터 메모리 블록의 주소를 리턴하는 단계Returning the computed address of the data memory block to be allocated 를 포함하는 비트맵 메모리를 이용한 메모리 관리 방법.Memory management method using a bitmap memory comprising a. [수학식 1][Equation 1] 할당 가능 데이터 메모리 블록 번호 = btmRow * 32 + btmColAssignable Data Memory Block Number = btmRow * 32 + btmCol 수학식 1에서 "btmRow"는 다음 할당될 데이터 메모리의 블록 번호를 나타내고 있는 비트맵 메모리의 행의 번호를 가리키고, "btmCol"은 다음 할당될 데이터 메모리의 블록 번호를 나타내고 있는 비트맵 메모리의 열의 번호를 가리킨다.In Equation 1, "btmRow" indicates the number of the row of the bitmap memory indicating the block number of the next allocated data memory, and "btmCol" indicates the number of the column of the bitmap memory indicating the block number of the next allocated data memory. Point to. [수학식 2][Equation 2] 할당 가능 데이터 메모리 블록의 주소 = baseAddr + blkSize * [수학식 1]Address of assignable data memory block = baseAddr + blkSize * [Equation 1] 수학식 2에서 "baseAddr"은 데이터 메모리 영역의 첫번째 블록의 주소를 나타내고, "blkSize"는 데이터 메모리의 고정 블록 크기를 나타낸다.In Equation 2, "baseAddr" represents the address of the first block of the data memory area, and "blkSize" represents the fixed block size of the data memory. 제 7 항 또는 제 8 항에 있어서,The method according to claim 7 or 8, 상기 메모리 해제 단계는,The memory release step, 상기 특정 응용 프로그램이 사용을 완료한(해제될) 데이터 메모리 블록의 크기를 확인하는 단계;Identifying a size of a data memory block that the particular application has completed using (to be released); 상기 해제될 데이터 메모리 블록의 주소로부터 상기 확인한 데이터 메모리 블록에 해당하는 비트맵 메모리의 열과 행의 값을 연산하는 단계;Calculating a column and row value of a bitmap memory corresponding to the identified data memory block from an address of the data memory block to be released; 상기 연산한 비트맵 메모리의 열과 행에 해당하는 비트맵 메모리의 비트값을 소정의 값으로 셋팅하는 단계;Setting bit values of bitmap memories corresponding to columns and rows of the computed bitmap memory to predetermined values; 비트맵 상세 정보의 할당 가능 데이터 메모리 블록의 개수를 1 증가시키는 단계;Increasing the number of assignable data memory blocks of the bitmap detailed information by one; 상기 할당 가능 데이터 메모리 블록의 개수가 1인지 확인하는 단계; 및Checking whether the number of the assignable data memory blocks is 1; And 상기 확인한 할당 가능 데이터 메모리 블록의 개수가 1임에 따라 상기 해제될 데이터 메모리 블록을 가리키는 비트맵 메모리의 비트값의 열과 행의 값으로 비트맵 상세 정보의 비트맵 메모리 행의 값(btmRow)과 비트맵 메모리 열의 값(btmCol)을 설정하는 단계The value of the bitmap memory row (btmRow) and the bitmap of the bitmap detailed information is determined by the value of the column and the row of the bit value of the bitmap memory indicating the data memory block to be released according to the number of the allocable data memory blocks identified as one. Setting the value of the map memory column (btmCol) 를 포함하는 비트맵 메모리를 이용한 메모리 관리 방법.Memory management method using a bitmap memory comprising a. 제 9 항에 있어서,The method of claim 9, 상기 비트맵 상세 정보는,The bitmap detailed information, 다음에 할당될 데이터 메모리 블록을 가리키는 상기 비트맵 메모리의 행의 값(btmRow),A value (btmRow) of a row of the bitmap memory indicating a data memory block to be allocated next, 상기 다음에 할당될 데이터 메모리 블록을 가리키는 상기 비트맵 메모리의 열의 값(btmCol),A value (btmCol) of a column of the bitmap memory indicating the next data memory block to be allocated, 상기 비트맵 메모리의 열과 행이 가리키는 데이터 메모리 블록의 할당/해제 상황을 나타내는 플래그(flag), 및A flag indicating a status of allocating / releasing a data memory block indicated by the columns and rows of the bitmap memory, and 현재 할당 가능한 데이터 메모리 블록의 개수(numFreeBlk)Number of currently allocated data memory blocks (numFreeBlk) 를 포함하는 비트맵 메모리를 이용한 메모리 관리 방법.Memory management method using a bitmap memory comprising a.
KR1020050117098A 2004-12-04 2005-12-02 Apparatus for managing memory using bitmap memory and its method KR100758282B1 (en)

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=37159608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050117098A KR100758282B1 (en) 2004-12-04 2005-12-02 Apparatus for managing memory using bitmap memory and its method

Country Status (1)

Country Link
KR (1) KR100758282B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100652715B1 (en) * 2005-02-28 2006-12-01 엘지전자 주식회사 Method and apparatus of application program dynamic loading for mobile phone
KR101467514B1 (en) 2010-05-14 2014-12-01 삼성전자 주식회사 Apparatus and Method for managing memory in consideration of user response time

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030071299A (en) * 2002-02-28 2003-09-03 주식회사 엘지이아이 Apparatus for managing memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030071299A (en) * 2002-02-28 2003-09-03 주식회사 엘지이아이 Apparatus for managing memory

Also Published As

Publication number Publication date
KR20060063705A (en) 2006-06-12

Similar Documents

Publication Publication Date Title
JP7116047B2 (en) Memory controller and method for flexible management of heterogeneous memory systems in processor-based systems
US10152501B2 (en) Rollover strategies in a n-bit dictionary compressed column store
US7246195B2 (en) Data storage management for flash memory devices
US7653798B2 (en) Apparatus and method for controlling memory allocation for variable size packets
CN108780420B (en) Priority-based access of compressed memory lines in memory in a processor-based system
EP4020153A1 (en) Cache space management method and device
EP2266265A1 (en) System and method for memory allocation in embedded or wireless communication systems
KR102402780B1 (en) Apparatus and method for managing memory
EP1229437B1 (en) Multirate circular buffer and method of operating the same
US11704240B2 (en) Garbage data scrubbing method, and device
KR20110121362A (en) Data management method for preventing memory fragments in memory pool
US11928359B2 (en) Memory swapping method and apparatus
CN111274160A (en) Data storage method, electronic device, and medium
CN100544471C (en) The method and system of the memory space of expansion portable terminal
KR100758282B1 (en) Apparatus for managing memory using bitmap memory and its method
EP3248095B1 (en) Storage resource management in virtualized environments
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
CN107632944B (en) Method and device for reading data
US20040019715A1 (en) Multirate circular buffer and method of operating the same
CN111523002B (en) Main key distribution method, device, server and storage medium
KR20160018204A (en) Electronic device, On-Chip memory and operating method of the on-chip memory
US20080294851A1 (en) Method, apparatus, computer program product, and system for management of shared memory

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