KR101058969B1 - 메모리 할당 방법 및 이를 이용한 메모리 할당 장치 - Google Patents

메모리 할당 방법 및 이를 이용한 메모리 할당 장치 Download PDF

Info

Publication number
KR101058969B1
KR101058969B1 KR1020090044599A KR20090044599A KR101058969B1 KR 101058969 B1 KR101058969 B1 KR 101058969B1 KR 1020090044599 A KR1020090044599 A KR 1020090044599A KR 20090044599 A KR20090044599 A KR 20090044599A KR 101058969 B1 KR101058969 B1 KR 101058969B1
Authority
KR
South Korea
Prior art keywords
blocks
block
specific function
allocated
allocating
Prior art date
Application number
KR1020090044599A
Other languages
English (en)
Other versions
KR20100125751A (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 KR1020090044599A priority Critical patent/KR101058969B1/ko
Publication of KR20100125751A publication Critical patent/KR20100125751A/ko
Application granted granted Critical
Publication of KR101058969B1 publication Critical patent/KR101058969B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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

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)

Abstract

본 발명은 '최대 블록 개수 설정 정보' 및 기능 데이터들을 저장하기 위해 구성된 메모리부 및 상기 메모리부의 저장 영역을 여러 종류의 크기를 갖는 블록으로 분할하고, 특정 기능을 수행하기 위해 필요한 블록 크기를 분석하고, 상기 분석된 블록 크기에 기초하여 상기 특정 기능을 할당할 수 있는 블록을 검색하고, 상기 검색된 블록 중 상기 특정 기능에 이미 할당된 블록의 개수를 판단하고, 상기 판단된 이미 할당된 블록의 개수와 상기 메모리부에 저장된 '최대 블록 개수 설정 정보'에 기초하여 상기 특정 기능을 할당할 수 있는 최대 블록 개수를 비교하고, 상기 비교 결과에 따라 상기 특정 기능을 해당 블록에 할당하거나 대기시키는 제어부를 포함하는 메모리 할당 장치 및 방법에 관한 것이다.

Description

메모리 할당 방법 및 이를 이용한 메모리 할당 장치{MEMORY ALLOCATION METHOD AND MEMORY ALLOCATION DEVICE USING THE SAME}
본 발명은 메모리를 효율적으로 관리하기 위한 메모리 할당 방법 및 이를 이용한 메모리 할당 장치에 관한 것이다.
일반적으로, 다양한 제조자들은 장치상에서 특정 기능을 수행하기 위한 콤포넌트 및 소프트웨어를 생산한다. 다양한 기능에 대한 이들 다양한 콤포넌트 및 연관 소프트웨어는 일반적으로 더 큰 시스템에 삽입되고, 프로세서 사이클 및 메모리를 포함하여 그 장치상에서 이용가능한 자원들(resources)을 효율적으로 이용하도록 통신 및 협력하여야 한다.
더 작은 패키지에 더 큰 능력을 생산할 정도로 반도체 제조 기술이 진보되었지만, 특히 소형 장치에 대해서는 더 큰 처리 파워 및 메모리에 대한 요구가 항상 있다. 예컨대, 메모리가 효율적으로 사용되지 않으면, 장치의 크기 및 비용 양자 모두를 증가시키는 물리적 메모리를 더 제공할 필요가 있을 수 있다. 그러므로, 그 장치의 보다 큰 시스템에 삽입될 때 메모리와 같은 부족한 자원을 유연하게 할당하도록, 특별히 설계된 하드웨어 및 소프트웨어가 구성 가능한 것이 바람직하다.
현재는 메모리의 용량을 늘리지 않으면서도, 얼마나 효율적으로 메모리에 데이터를 할당할 것인가에 대한 연구가 활발히 진행되고 있다.
본 발명은 메모리를 효율적으로 관리하기 위한 메모리 할당 방법 및 이를 이용한 메모리 할당 장치를 제공하고자 하는 것이다.
본 발명에 따른 메모리 할당 방법은 메모리부의 저장 영역을 여러 종류의 크기를 갖는 블록으로 분할하는 단계와, 각 기능별로 할당 가능한 최대 블록 개수를 블록의 크기별로 설정하는 단계와, 블록의 크기별로 설정된 상기 최대 블록 개수에 기초하여 '최대 블록 개수 설정 정보'를 생성하고, 상기 '최대 블록 개수 설정 정보'를 상기 메모리부에 저장하는 단계와, 특정 기능을 수행하기 위해 필요한 블록 크기를 분석하는 단계와, 상기 분석된 블록 크기에 기초하여 상기 특정 기능을 할당할 수 있는 블록을 검색하는 단계와, 상기 검색된 블록 중 상기 특정 기능에 이미 할당된 블록의 개수를 판단하는 단계와, 상기 판단된 이미 할당된 블록 개수가 상기 특정 기능에 할당될 수 있는 최대 블록 개수보다 큰지 여부를 비교하는 단계 및 상기 비교결과, 상기 판단된 블록 개수가 상기 최대 블록 개수보다 작은 경우, 상기 특정 기능을 할당할 수 있는 블록에 상기 특정 기능을 할당하는 단계를 포함한다.
여기서, 상기 메모리 할당 방법은 상기 비교결과, 상기 판단된 블록 개수가 최대 블록 개수보다 큰 경우, 상기 특정 기능을 할당하지 않고 대기하는 단계를 더 포함한다.
여기서, 상기 메모리 할당 방법은 상기 대기하는 단계는 상기 특정 기능이 이미 할당된 블록 중 일부 블록의 할당을 해제하는 단계를 더 포함한다.
여기서, 상기 메모리 할당 방법은 상기 대기하는 단계는 상기 특정 기능이 할당된 블록 중 가장 먼저 할당된 블록에서 상기 특정 기능의 할당을 자동으로 해제하는 단계를 더 포함한다.
여기서, 상기 메모리 할당 방법은 상기 대기 중인 특정 기능을 상기 할당이 해제된 블록에 할당하는 단계를 더 포함한다.
여기서, 상기 메모리 할당 방법은 각 기능별로 데이터가 이미 할당된 블록 개수를 블록의 크기별로 검색하고, 상기 검색된 정보에 기초하여 '이미 할당된 블록 개수 정보'를 생성하고 저장하는 단계를 더 포함한다.
여기서, 상기 메모리 할당 방법은 상기 특정 기능을 할당하거나 해제한 경우, 상기 할당 또는 해제한 내용을 반영하여 '이미 할당된 블록 개수 정보'를 수정하는 단계를 더 포함한다.
본 발명에 따른 메모리 할당 장치는 '최대 블록 개수 설정 정보'를 저장하기 위해 구성된 메모리부 및 상기 메모리부의 저장 영역을 여러 종류의 크기를 갖는 블록으로 분할하고, 특정 기능을 수행하기 위해 필요한 블록 크기를 분석하고, 상기 분석된 블록 크기에 기초하여 상기 특정 기능을 할당할 수 있는 블록을 검색하고, 상기 검색된 블록 중 상기 특정 기능에 이미 할당된 블록의 개수를 판단하고, 상기 판단된 이미 할당된 블록의 개수와 상기 메모리부에 저장된 '최대 블록 개수 설정 정보'에 기초하여 상기 특정 기능을 할당할 수 있는 최대 블록 개수를 비교하고, 상기 비교 결과에 따라 상기 특정 기능을 해당 블록에 할당하거나 대기시키는 제어부를 포함한다.
여기서, 상기 제어부는 상기 비교결과, 상기 판단된 메모리 개수가 상기 최대 블록 개수보다 작은 경우, 상기 특정 기능을 할당 가능한 블록에 할당한다.
여기서, 상기 제어부는 상기 비교결과, 상기 판단된 블록 개수가 최대 블록 개수보다 큰 경우, 상기 특정 기능을 할당하지 않고 대기한다.
여기서, 상기 제어부는 상기 특정 기능을 할당하지 않고 대기한 상태에서, 상기 특정 기능이 이미 할당된 블록 중 특정 블록의 할당을 해제하고, 상기 해제된 블록에 상기 대기 중인 특정 기능을 할당한다.
여기서, 상기 제어부는 상기 특정 기능을 할당하지 않고 대기한 상태에서, 상기 특정 기능이 할당된 블록 중 가장 먼저 할당된 블록의 할당을 자동으로 해제하고, 상기 해제된 블록에 상기 대기 중인 특정 기능을 할당한다.
여기서, 상기 메모리 할당 장치는 설정 정보를 입력하기 위해 구성된 사용자 입력부를 더 포함하고, 상기 제어부는 상기 사용자 입력부를 통해 입력되는 설정 정보에 기초하여 상기 '최대 블록 개수 설정 정보'를 생성한다.
본 발명에 따르면, 각 기능별 할당 가능한 최대 메모리 개수를 설정함으로 써, 특정 기능이 많이 할당되는 것을 방지할 수 있다.
또한, 본 발명에 따르면, 자주 사용되는 기능의 수행을 위해 모든 메모리가 할당되는 것을 방지함으로써, 자주 사용되지 않는 기능의 할당요청이 있는 경우에도, 상기 자주 사용되지 않는 기능을 수행하기 위한 메모리를 할당할 수 있다.
또한, 본 발명에 따르면, 사용자가 특정 기능의 사용 빈도 또는 중요도에 따라 할당 가능한 최대 메모리 수를 설정 또는 변경할 수 있다. 따라서, 상기 메모리는 효율적으로 사용될 수 있다.
또한, 본 발명에 따르면, 사용자가 기능에 따라 블록의 크기를 자유롭게 설정할 수 있다.
이하, 본 발명의 바람직한 실시예들을 첨부한 도면을 참조하여 상세히 설명한다. 이하의 실시예들은 본 발명의 이해를 돕기 위한 예들에 불과하므로, 본 발명이 이하의 실시예들에 한정되는 것은 아니다. 또한, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
이하의 본 명세서에서, '최대 블록 개수 설정 정보'란 각 기능별로 할당 가능한 최대 블록 개수를 블록의 크기별로 설정한 정보를 의미한다.
또한, '이미 할당된 블록 개수 정보'란 각 기능별로 기능 데이터가 이미 할당된 블록 개수를 블록의 크기별로 분류하여 저장한 정보를 의미한다.
도 1a 내지 도 3a는 본 발명의 일실시예에 따른 메모리 할당 장치에 관한 도면이다.
도 1을 참조하면, 상기 메모리 할당 장치는 사용자 입력부(100), 메모리부(110) 및 제어부(120)를 포함한다.
상기 사용자 입력부(100)는 사용자가 자신이 원하는 정보를 입력하기 위해 구성된다. 예를 들면, 사용자는 상기 사용자 입력부(100)를 이용하여 상기 '최대 블록 개수'를 설정하기 위한 신호를 입력할 수 있다. 또한, 사용자는 상기 메모리 할당 장치의 동작 제어를 위한 신호를 상기 사용자 입력부(100)를 통해 입력할 수 있다.
상기 메모리부(110)는 최대 블록 개수 설정 정보, 이미 할당된 블록 개수 정보(111-2) 등을 저장하기 위해 구성된다. 또한, 상기 메모리부(110)는 특정 기능을 수행하기 위해 필요한 저장영역을 제공하기 위해 구성된다. 도 1b를 참조하면, 상기 메모리부(110)는 정보를 저장하기 위한 정보 저장 영역(111) 및 특정 기능을 수행하기 위해 필요한 저장영역을 제공하기 위한 기능 저장 영역(112)을 포함할 수 있다. 상기 정보 저장 영역(111)은 최대 블록 개수 설정 정보(111-1) 및 이미 할당된 블록 개수 정보(111-2) 등을 저장할 수 있다. 상기 기능 저장 영역(112)은 상기 제어부(120)에 의해서 여러 종류의 크기를 갖는 블록으로 분할될 수 있다. 예를 들면, 상기 기능 저장 영역(112)은 A 크기를 갖는 복수의 블록들, B 크기를 갖는 복수의 블록들, C 크기를 갖는 복수의 블록들로 분할될 수 있다. 상기 각각의 블록들에는 특정 기능을 수행하기 위해 필요한 영역으로 할당될 수 있다. 예를 들면, 상 기 A 크기를 갖는 첫번째 블록은 기능 #1을 수행하기 위해 할당되고, 상기 A크기를 갖는 두번째 블록은 기능 #2를 수행하기 위해 할당될 수 있다. 사용자는 사용할 기능에 따라 상기 분할되는 블록의 크기를 임의로 설정할 수 있다.
상기 제어부(120)는 상기 메모리 할당장치의 전체적인 동작을 제어하기 위해 구성된다. 상기 제어부(120)는 상기 메모리부(110)의 저장 영역을 여러 종류의 크기를 갖는 블록으로 분할할 수 있다. 사용자는 상기 사용자 입력부(100)를 이용하여 각 기능별로 할당 가능한 최대 블록 개수를 블록의 크기별로 설정할 수 있다. 상기 제어부(120)는 상기 사용자 입력부(100)를 통해 입력되는 설정 정보에 기초하여 '최대 블록 개수 설정 정보'를 생성할 수 있다. 상기 제어부(120)는 상기 생성된 '최대 블록 개수 설정 정보'를 상기 메모리부(110)에 저장할 수 있다. 도 1b를 참조하면, 상기 '최대 블록 개수 설정 정보'는 각 기능별, 각 블록의 크기별로 저장될 수 있다. 상기 최대 블록 개수 설정 정보'는 테이블 형태로 저장될 수도 있다. 예를 들면, 사용자는 기능 1을 수행하기 위해서 필요한 블록들이 1024 바이트 크기의 블록에는 2개, 512 바이트 크기의 블록에는 2개, 256 바이트 크기의 블록에는 2개 이상은 할당될 수 없도록 설정할 수 있다. 상기 최대 블록 개수는 사용자의 편의에 따라 변경할 수 있다. 상기 제어부(120)는 특정 기능을 수행하기 위해 필요한 블록 크기를 분석할 수 있다. 상기 제어부(120)는 상기 분석된 블록 크기에 기초하여 할당 가능한 블록을 검색한다. 예를 들면, 상기 할당 요청 신호에 의해 1024 바이트의 블록의 할당이 요청된 경우, 상기 제어부(120)는 상기 특정 기능을 할당할 수 있는 1024 바이트 크기의 블록을 검색한다. 상기 제어부(120)는 상기 검 색된 블록을 상기 특정 기능을 수행하기 위한 블록으로 할당할 수 있다.
상기 제어부(120)는 특정 기능을 수행하기 위해 상기 메모리부(110) 중 상기 특정 기능을 수행하는데 사용할 블록을 할당할 수 있다. 도 1b를 참조하면, 상기 제어부(120)는 기능 #1, 기능 #2, 기능 3#을 수행할 수 있다. 상기 제어부(120)는 상기 기능 #1을 수행하기 위한 블록, 상기 기능 #2를 수행하기 위한 블록, 상기 기늘 #3을 수행하기 위한 블록을 각각 할당할 수 있다.
상기 제어부(120)는 각 기능별로 데이터가 이미 할당된 블록 개수를 블록의 크기별로 검색하고, 상기 검색된 정보에 기초하여 '이미 할당된 블록 개수 정보'를 생성할 수 있다. 상기 제어부(120)는 상기 생성된 '이미 할당된 블록 개수 정보'를 상기 메모리부(110)에 저장할 수 있다. 도 1b를 참조하면, 상기 '이미 할당된 블록 개수 정보'는 각 기능별, 각 블록의 크기별로 저장할 수 있다. 예를 들면, 상기 제어부(120)는 기능 1을 수행하기 위해서 1024 바이트 크기의 블록이 1개, 512 바이트 크기의 블록이 1개, 256 바이트 크기의 블록이 1개 할당되었음을 판단할 수 있다. 상기 제어부(120)는 특정 기능을 특정 블록에 할당하거나 해제한 경우, 상기 할당 또는 해제된 내용을 반영하여 '이미 할당된 블록 개수 정보'를 수정할 수 있다. 예를 들면, 상기 기능 1에 대한 1024 바이트 크기의 블록에 할당이 해제된 경우, 상기 제어부(120)는 상기 변경된 내용을 반영하여 상기 '이미 할당된 블록 개수 정보'를 수정한다. 즉, 상기 1024 바이트 크기의 블록의 개수가 1개에서 0개로 변경된다.
상기 제어부(120)는 상기 검색된 블록 중 상기 특정 기능을 수행하기 위해 이미 할당된 블록의 개수를 판단한다. 상기 제어부(120)는 상기 판단된 이미 할당된 블록 개수가 상기 특정 기능에 할당될 수 있는 최대 블록 개수보다 큰지 여부를 비교한다. 상기 제어부(120)는 상기 비교결과, 상기 판단된 블록 개수가 상기 최대 블록 개수보다 작은 경우, 상기 특정 기능을 할당할 수 있는 블록에 상기 특정 기능을 할당한다.
반면에, 상기 제어부(120)는 상기 비교결과, 상기 판단된 블록 개수가 최대 블록 개수보다 큰 경우, 상기 특정 기능을 할당하지 않고 대기한다. 상기 제어부(120)는 상기 특정 기능이 이미 할당된 블록 중 일부 블록의 할당을 해제한다. 또는, 상기 제어부(120)는 상기 특정 기능이 할당된 블록 중 가장 먼저 할당된 블록에서 상기 특정 기능의 할당을 자동으로 해제한다. 상기 제어부(120)는 상기 대기 중인 특정 기능을 상기 할당이 해제된 블록에 할당한다. 도 1c를 참조하면, 상기 제어부(120)는 상기 특정 기능을 수행하기 위해 필요한 블록을 할당하거나 해제하는 경우, 패킷(140)을 상기 메모리부(110)에 같이 저장할 수 있다. 상기 패킷(140)은 헤드(141), 어드레스(142), 할당된 기능(143) 및 테일(144)을 포함한다. 상기 헤드(141)는 상기 특정 기능의 할당된 블록의 앞부분임을 표시한다. 상기 어드레스(142)는 상기 특정 기능이 할당된 블록의 주소를 의미한다. 상기 할당된 기능(143)은 할당된 기능을 표시한다. 예를 들면, 기능 #1이 할당된 블록인 경우, 상기 할당된 기능(143)은 기능 #1임을 표시한다. 상기 테일(144)은 상기 블록의 마지막 부분임을 표시한다. 상기 제어부(120)는 상기 패킷(140)을 이용하여 블록을 할당하는 경우, 어떤 기능이 할당되었는지 어떤 기능이 해제되었는지를 용이하게 알 수 있다. 예를 들면, 상기 제어부(120)는 상기 패킷(140)을 분석함으로써, 특정 블록에 할당된 기능이 어떤 것인지를 용이하게 알 수 있다.
이에 따라, 본 발명에 따른 메모리 할당 장치에 따르면, 각 기능별 할당 가능한 최대 메모리 개수를 설정함으로써, 특정 기능이 많이 할당되는 것을 방지할 수 있다.
또한, 본 발명에 따른 메모리 할당 장치에 따르면, 자주 사용되는 기능의 수행을 위해 모든 메모리가 할당되는 것을 방지함으로써, 자주 사용되지 않는 기능의 할당요청이 있는 경우에도, 상기 자주 사용되지 않는 기능을 수행하기 위한 메모리를 할당할 수 있다.
또한, 본 발명에 따른 메모리 할당 장치에 따르면, 사용자가 특정 기능의 사용 빈도 또는 중요도에 따라 할당 가능한 최대 메모리 수를 설정 또는 변경할 수 있다. 따라서, 상기 메모리는 효율적으로 사용될 수 있다.
또한, 본 발명에 따른 메모리 할당 장치에 따르면, 사용자가 기능에 따라 블록의 크기를 자유롭게 설정할 수 있다.
또한, 본 발명에 따른 메모리 할당 장치에 따르면, '최대 블록 개수 설정 정보' 및 '이미 할당된 블록 개수 정보'를 생성하고, 상기 생성된 자료에 기초하여 메모리를 할당함으로써, 효율적으로 메모리를 할당할 수 있다.
도 2a 내지 도 2c는 본 발명의 일 실시예에 따른 메모리 할당 방법에 대한 도면이다.
도 2a 및 도 2b는 본 발명의 일실시에에 따른 메모리 할당 방법에 대한 흐름도이다.
도 1a 및 도 2a를 참조하면, 상기 제어부(120)는 상기 메모리부(110)의 저장 영역을 여러 종류의 크기를 갖는 블록으로 분할한다(S200). 상기 블록의 크기는 사용자가 임의대로 정할 수 있다. 따라서, 상기 제어부(120)는 상기 사용자가 설정한 크기에 따라 상기 메모리부(110)의 저장 영역을 분할한다. 사용자는 각 기능별로 할당 가능한 최대 블록 개수를 블록의 크기별로 설정한다(S205). 상기 제어부(120)는 상기 설정된 정보에 기초하여 '최대 블록 개수 설정 정보'를 생성하고, 상기 생성된 '최대 블록 개수 설정 정보'를 상기 메모리부(110)에 저장한다(S210). 도 2c를 참조하면, 상기 '최대 블록 개수 설정 정보'(300)는 테이블 형태일 수 있다. 상기 제어부(120)는 각 기능별로 데이터가 이미 할당된 블록 개수를 블록의 크기별로 검색한다(S215). 상기 제어부(120)는 상기 검색된 정보에 기초하여 '이미 할당된 블록 개수 정보'를 생성하고, 상기 생성된 '이미 할당된 블록 개수 정보'를 상기 메모리부(110)에 저장한다(S220). 도 2c를 참조하면, 상기 '이미 할당된 블록 개수 정보'(400)는 테이블 형태일 수 있다. 상기 제어부(120)는 특정 기능을 더 이상 수행할 필요가 없는 경우, 해당하는 블록에 할당된 상기 특정 기능을 해제한다(S225). 상기 제어부(120)는 상기 해제된 내용을 반영하여 '이미 할당된 블록 개수 정보'를 수정한다(S230). 도 2c를 참조하면, 수정된 '이미 할당된 블록 개수 정보'(500)를 보여준다. 즉, A 크기의 블록에 상기 기능 #1이 추가로 할당된 경우, 상기 제어부(110)는 상기 '이미 할당된 블록 개수 정보'를 수정한다. 도면 번호 400 과 도면 번호 500을 비교하면, A 크기의 블록에 상기 기능 #1에 해당하는 수치가 2개로 변경되었음은 보여준다. 상기 제어부(120)가 기능 #1을 수행하기 위해 상기 제어부(120)는 특정 기능을 수행하기 위해 필요한 블록 크기를 분석한다(S235). 상기 제어부(120)는 상기 분석된 블록 크기에 기초하여 상기 특정 기능을 할당할 수 있는 블록을 검색한다(S240). 상기 제어부(120)는 상기 검색된 블록 중 상기 특정 기능에 이미 할당된 블록의 개수를 판단한다(S245). 상기 제어부(120)는 상기 '이미 할당된 블록 개수 정보'를 이용하여 이미 할당된 블록의 개수를 판단할 수 있다. 또는, 상기 제어부(120)는 별도로 상기 특정 기능에 이미 할당된 블록의 개수를 판단할 수 있다. 상기 제어부(120)는 상기 판단된 이미 할당된 블록 개수가 상기 특정 기능에 할당될 수 있는 최대 블록 개수보다 큰지 여부를 비교한다(S250). 상기 비교결과, 상기 판단된 블록 개수가 상기 최대 블록 개수보다 작은 경우, 상기 제어부(120)는 상기 특정 기능을 할당할 수 있는 블록에 상기 특정 기능을 할당한다(S255). 상기 제어부(120)는 상기 특정 기능이 할당된 내용을 반영하여 '이미 할당된 블록 개수 정보'를 수정한다(S260).
반면에, 상기 비교결과, 상기 판단된 블록 개수가 최대 블록 개수보다 큰 경우, 상기 제어부(120)는 상기 특정 기능을 할당하지 않고 대기한다(S265). 상기 제어부(120)는 상기 특정 기능이 이미 할당된 블록 중 일부 블록의 할당을 해제한다(S270). 예를 들면, 상기 판단된 블록 개수가 최대 블록 개수보다 큰 경우, 상기 제어부(120)는 상기 특정 기능을 할당할 수 없다는 메시지를 디스플레이부(미도시) 로 표시한다. 사용자는 상기 메시지를 확인한 후, 상기 사용자 입력부(100)를 이용하여 상기 특정 기능이 이미 할당된 블록 중 일부 블록의 할당을 해제하는 신호를 상기 제어부(120)에 입력할 수 있다. 상기 제어부(120)는 상기 해제 신호가 입력되면, 해당되는 블록의 할당을 해제한다. 또 다른 예를 들면, 상기 제어부(120)는 상기 특정 기능이 할당된 블록 중 가장 먼저 할당된 블록에서 상기 특정 기능의 할당을 자동으로 해제한다. 상기 제어부(120)는 상기 대기 중인 특정 기능을 상기 할당이 해제된 블록에 할당한다(S280).
본 발명에 따른 메모리 할당 방법에 따르면, 사용자가 특정 기능의 사용 빈도 또는 중요도에 따라 할당 가능한 최대 메모리 수를 설정 또는 변경할 수 있다. 따라서, 상기 메모리는 효율적으로 사용될 수 있다.
또한, 본 발명에 따른 메모리 할당 방법에 따르면, 사용자가 기능에 따라 블록의 크기를 자유롭게 설정할 수 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
도 1a 내지 도 3a는 본 발명의 일실시예에 따른 메모리 할당 장치에 관한 도면.
도 2a 내지 도 2c는 본 발명의 일 실시예에 따른 메모리 할당 방법에 대한 도면.

Claims (13)

  1. 메모리부의 저장 영역을 여러 종류의 크기를 갖는 블록으로 분할하는 단계;
    각 기능별로 할당 가능한 최대 블록 개수를 블록의 크기별로 설정하는 단계;
    블록의 크기별로 설정된 상기 최대 블록 개수에 기초하여 '최대 블록 개수 설정 정보'를 생성하고, 상기 '최대 블록 개수 설정 정보'를 상기 메모리부에 저장하는 단계;
    특정 기능을 수행하기 위해 필요한 블록 크기를 분석하는 단계;
    상기 분석된 블록 크기에 기초하여 상기 특정 기능을 할당할 수 있는 블록을 검색하는 단계;
    상기 검색된 블록 중 상기 특정 기능에 이미 할당된 블록의 개수를 판단하는 단계;
    상기 판단된 이미 할당된 블록 개수가 상기 특정 기능에 할당될 수 있는 최대 블록 개수보다 큰지 여부를 비교하는 단계;및
    상기 비교결과, 상기 판단된 블록 개수가 상기 최대 블록 개수보다 작은 경우, 상기 특정 기능을 할당할 수 있는 블록에 상기 특정 기능을 할당하는 단계를 포함하는 메모리 할당 방법.
  2. 제 1 항에 있어서,
    상기 비교결과, 상기 판단된 블록 개수가 최대 블록 개수보다 큰 경우, 상기 특정 기능을 할당하지 않고 대기하는 단계를 더 포함하는, 메모리 할당 방법.
  3. 제 2 항에 있어서,
    상기 대기하는 단계는,
    상기 특정 기능이 이미 할당된 블록 중 일부 블록의 할당을 해제하는 단계를 더 포함하는, 메모리 할당 방법.
  4. 제 2 항에 있어서,
    상기 대기하는 단계는,
    상기 특정 기능이 할당된 블록 중 가장 먼저 할당된 블록에서 상기 특정 기능의 할당을 자동으로 해제하는 단계를 더 포함하는, 메모리 할당 방법.
  5. 제 3 항 또는 제 4 항에 있어서,
    상기 대기 중인 특정 기능을 상기 할당이 해제된 블록에 할당하는 단계를 더 포함하는, 메모리 할당 방법.
  6. 제 5 항에 있어서,
    각 기능별로 데이터가 이미 할당된 블록 개수를 블록의 크기별로 검색하고, 상기 검색된 정보에 기초하여 '이미 할당된 블록 개수 정보'를 생성하고 저장하는 단계를 더 포함하고, 메모리 할당 방법.
  7. 제 6 항에 있어서,
    상기 특정 기능을 할당하거나 해제한 경우, 상기 할당 또는 해제한 내용을 반영하여 '이미 할당된 블록 개수 정보'를 수정하는 단계를 더 포함하는, 메모리 할당 방법.
  8. '최대 블록 개수 설정 정보'를 저장하기 위해 구성된 메모리부;및
    상기 메모리부의 저장 영역을 여러 종류의 크기를 갖는 블록으로 분할하고, 특정 기능을 수행하기 위해 필요한 블록 크기를 분석하고, 상기 분석된 블록 크기에 기초하여 상기 특정 기능을 할당할 수 있는 블록을 검색하고, 상기 검색된 블록 중 상기 특정 기능에 이미 할당된 블록의 개수를 판단하고, 상기 판단된 이미 할당된 블록의 개수와 상기 메모리부에 저장된 '최대 블록 개수 설정 정보'에 기초하여 상기 특정 기능을 할당할 수 있는 최대 블록 개수를 비교하고, 상기 비교 결과에 따라 상기 특정 기능을 해당 블록에 할당하거나 대기시키는 제어부를 포함하는 메 모리 할당 장치.
  9. 제 8 항에 있어서,
    상기 제어부는,
    상기 비교결과, 상기 판단된 메모리 개수가 상기 최대 블록 개수보다 작은 경우, 상기 특정 기능을 할당 가능한 블록에 할당하는, 메모리 할당 장치.
  10. 제 8 항에 있어서,
    상기 제어부는,
    상기 비교결과, 상기 판단된 블록 개수가 최대 블록 개수보다 큰 경우, 상기 특정 기능을 할당하지 않고 대기하는, 메모리 할당 장치.
  11. 제 10 항에 있어서,
    상기 제어부는,
    상기 특정 기능을 할당하지 않고 대기한 상태에서,
    상기 특정 기능이 이미 할당된 블록 중 특정 블록의 할당을 해제하고, 상기 해제된 블록에 상기 대기 중인 특정 기능을 할당하는, 메모리 할당 장치.
  12. 제 10 항에 있어서,
    상기 제어부는,
    상기 특정 기능을 할당하지 않고 대기한 상태에서,
    상기 특정 기능이 할당된 블록 중 가장 먼저 할당된 블록의 할당을 자동으로 해제하고, 상기 해제된 블록에 상기 대기 중인 특정 기능을 할당하는, 메모리 할당 장치.
  13. 제 8 항에 있어서,
    설정 정보를 입력하기 위해 구성된 사용자 입력부를 더 포함하고,
    상기 제어부는,
    상기 사용자 입력부를 통해 입력되는 설정 정보에 기초하여 상기 '최대 블록 개수 설정 정보'를 생성하는, 메모리 할당 장치.
KR1020090044599A 2009-05-21 2009-05-21 메모리 할당 방법 및 이를 이용한 메모리 할당 장치 KR101058969B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090044599A KR101058969B1 (ko) 2009-05-21 2009-05-21 메모리 할당 방법 및 이를 이용한 메모리 할당 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090044599A KR101058969B1 (ko) 2009-05-21 2009-05-21 메모리 할당 방법 및 이를 이용한 메모리 할당 장치

Publications (2)

Publication Number Publication Date
KR20100125751A KR20100125751A (ko) 2010-12-01
KR101058969B1 true KR101058969B1 (ko) 2011-08-23

Family

ID=43503811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090044599A KR101058969B1 (ko) 2009-05-21 2009-05-21 메모리 할당 방법 및 이를 이용한 메모리 할당 장치

Country Status (1)

Country Link
KR (1) KR101058969B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102150262B1 (ko) * 2013-09-25 2020-09-01 현대모비스 주식회사 차량 정보 시스템의 메모리 관리 방법
KR101593835B1 (ko) 2014-10-30 2016-02-12 엘에스산전 주식회사 Plc 시스템
KR101980581B1 (ko) * 2019-02-11 2019-05-21 (주)베스트케이에스 탠덤 시스템의 메모리 관리방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100617859B1 (ko) 2005-06-07 2006-08-28 엘지전자 주식회사 임베디드 시스템의 힙 메모리 할당 방법 및 그 시스템
KR100703807B1 (ko) 2006-02-17 2007-04-09 삼성전자주식회사 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100617859B1 (ko) 2005-06-07 2006-08-28 엘지전자 주식회사 임베디드 시스템의 힙 메모리 할당 방법 및 그 시스템
KR100703807B1 (ko) 2006-02-17 2007-04-09 삼성전자주식회사 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치

Also Published As

Publication number Publication date
KR20100125751A (ko) 2010-12-01

Similar Documents

Publication Publication Date Title
US10908954B2 (en) Quality of service classes
US9047196B2 (en) Usage aware NUMA process scheduling
US8700838B2 (en) Allocating heaps in NUMA systems
KR102338827B1 (ko) 실시간 운영 체제에서 선점형 태스크 스케줄링 방식을 제공하는 방법 및 장치
US8661175B2 (en) Multiprocessor synchronization using region locks
US10341264B2 (en) Technologies for scalable packet reception and transmission
US20120159116A1 (en) Apparatus for processing remote page fault and method thereof
US9405697B2 (en) Memory management method and apparatus
JP4758794B2 (ja) メモリ領域割り当て制御装置、メモリ領域割り当て制御プログラム、及びメモリ領域割り当て制御方法
US10049035B1 (en) Stream memory management unit (SMMU)
CN109977037B (zh) 一种dma数据传输方法及系统
CN111078410B (zh) 内存分配方法、装置、存储介质及电子设备
WO2022120522A1 (zh) 内存空间的分配方法、装置及存储介质
US20090300638A1 (en) Memory allocators corresponding to processor resources
KR101058969B1 (ko) 메모리 할당 방법 및 이를 이용한 메모리 할당 장치
US20130061009A1 (en) High Performance Free Buffer Allocation and Deallocation
US20240111669A1 (en) Allocation of memory within a data type-specific memory heap
WO2017086987A1 (en) In-memory data shuffling
CN112306693B (zh) 数据包的处理方法和设备
JP2005209206A (ja) マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ
US9575881B2 (en) Systems and methods for providing improved latency in a non-uniform memory architecture
US9684525B2 (en) Apparatus for configuring operating system and method therefor
JP2018525724A (ja) メモリ管理装置を用いた自動メモリ管理
US10430233B1 (en) Scheduling computational tasks among multiple classes of storage resources based on job classification
CN106537321B (zh) 存取文件的方法、装置和存储系统

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
FPAY Annual fee payment

Payment date: 20140620

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150702

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee