KR20110007360A - 스크래치 패드 메모리 관리 장치 및 방법 - Google Patents

스크래치 패드 메모리 관리 장치 및 방법 Download PDF

Info

Publication number
KR20110007360A
KR20110007360A KR1020090064850A KR20090064850A KR20110007360A KR 20110007360 A KR20110007360 A KR 20110007360A KR 1020090064850 A KR1020090064850 A KR 1020090064850A KR 20090064850 A KR20090064850 A KR 20090064850A KR 20110007360 A KR20110007360 A KR 20110007360A
Authority
KR
South Korea
Prior art keywords
memory
free
scratch pad
size
fixed block
Prior art date
Application number
KR1020090064850A
Other languages
English (en)
Other versions
KR101615659B1 (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 KR1020090064850A priority Critical patent/KR101615659B1/ko
Priority to US12/591,946 priority patent/US9152547B2/en
Publication of KR20110007360A publication Critical patent/KR20110007360A/ko
Application granted granted Critical
Publication of KR101615659B1 publication Critical patent/KR101615659B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

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

Abstract

스크래치 패드 메모리 관리 장치 및 방법을 개시한다. 스크래치 패드 메모리 관리 장치는 스크래치 패드 메모리를 복수의 단위블록으로 분할하고, 상기 복수의 단위블록의 인덱스와 대응되는 메모리 할당 테이블을 메인 메모리에 유지하여 상기 스크래치 패드 메모리를 관리할 수 있다.
스크래치 패드 메모리, 메모리 할당 테이블, 인덱스, 프리 메모리, 할당 메모리, 고정 블록 풀

Description

스크래치 패드 메모리 관리 장치 및 방법{APPARATUS AND METHOD FOR SCRATCH PAD MEMORY MANAGEMENT}
본 발명의 실시예들은 스크래치 패드 메모리를 관리하는 장치 및 그 방법에 관한 것으로, 특히 메인 메모리 상에 유지되는 메모리 할당 테이블을 이용하여 스크래치 패드 메모리를 관리하는 기술과 관련된 것이다.
프로세서는 내부에 데이터를 저장하기 위해 빠른 내부 메모리를 두는데, 임베디드 시스템을 위한 프로세서에서는 캐쉬 메모리 대신 구조가 간단한 스크래치 패드 메모리를 사용하고, DMA (direct memory access)를 이용해서 외부 메인 메모리와 스크래치 패드 메모리간 데이터 전송을 처리하는 경우가 일반적이다. 메인 메모리는 오프 칩 메모리이며, DRAM, SDRAM 등을 포함할 수 있다.
한편, 종래에는 스크래치 패드 메모리를 활용하기 위해서 컴파일러에 기초한 할당 기법을 사용하였다. 컴파일시 응용 프로그램을 분석하고, 그 결과를 이용해서 스크래치 패드 메모리를 분할하여 각 태스크에 정적으로 할당하는 기법이다. 이 경우, 태스크는 분할 받은 영역만 사용할 수 있기 때문에, 한 태스크가 동작할 때 다른 태스크가 할당 받은 영역은 고스란히 낭비될 수 있다. 또한 동적으로 태 스크가 생성되는 환경에서는 이러한 기법은 사용할 수 없다.
따라서, 스크래치 패드 메모리에 적합한 동적 메모리 관리 기법 및 그 방법에 대한 연구가 지속적으로 필요하다.
본 발명의 일실시예에 따른 스크래치 패드 메모리 관리 장치는, 복수개의 단위블록으로 분할 관리되는 스크래치 패드 메모리 및 메인 메모리 상에 유지되어 상기 스크래치 패드 메모리를 관리하는 메모리 관리부를 포함할 수 있다.
이때, 상기 메모리 관리부는, 상기 복수개의 단위블록을 관리하기 위한 메타데이터를 메모리 할당 테이블에 저장하고, 상기 복수개의 단위블록의 인덱스와 상기 메모리 할당 테이블에 저장되는 메타데이터의 인덱스는 대응될 수 있다.
또한, 상기 메모리 관리부는, 상기 스크래치 패드 메모리의 복수개의 단위블록 중 하나 이상의 단위블록으로 구성되는 메모리 청크(memory chunk)를 생성하고, 상기 메모리 청크를 프리 메모리(free memory), 할당 메모리(allocated memory), 및 고정 블록 풀(fixed block pool) 중 하나로 분류하여 관리할 수 있다.
또한, 상기 스크래치 패드 메모리의 고정 블록 풀은, 상기 고정 블록의 크기를 저장하는 제1 저장 공간, 이전 고정 블록 풀의 인덱스를 저장하는 제2 저장 공간, 다음 고정 블록 풀의 인덱스를 저장하는 제3 저장 공간, 각 고정 블록의 할당 또는 해제 상태를 나타내는 제4 저장 공간 및 사용 데이터가 저장되는 제5 저장 공간을 포함할 수 있다.
또한, 상기 메모리 관리부는, 메모리 사용 요청에 대응하여 메모리 할당을 관리하는 메모리 할당부를 더 포함하고, 상기 메모리 할당부는, 상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기인 경우, 상기 고정 블록 풀의 메모리를 할당하고, 상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기가 아닌 경우, 상기 요청된 메모리 크기보다 크고, 상기 요청된 메모리 크기와의 차이가 최소인 프리 리스트의 프리 메모리를 할당할 수 있다.
또한, 상기 메모리 할당부는, 상기 프리 리스트의 프리 메모리의 크기와 상기 요청된 메모리의 크기 차가 상기 단위블록 크기 이상인 경우, 상기 프리 메모리로부터 상기 크기 차에 해당하는 프리 메모리를 분리하고, 상기 분리된 프리 메모리를 해당하는 프리 리스트에 추가할 수 있다.
또한, 상기 메모리 관리부는, 메모리 해제 요청에 대응하여 메모리 해제를 관리하는 메모리 해제부를 더 포함하고, 상기 메모리 해제부는, 해제할 메모리 청크의 앞 또는 뒤가 프리 메모리인 경우, 상기 해제할 메모리 청크와 상기 프리 메모리를 병합하는 메모리 병합부, 메모리 해제에 대응하여 메모리 할당 테이블을 갱신하는 메모리 할당 테이블 갱신부, 메모리 해제에 대응하여 프리 리스트를 갱신하는 프리 리스트 갱신부, 상기 해제할 메모리 청크가 고정 블록인 경우, 상기 해제할 메모리 청크의 고정 블록 위치를 계산하는 위치 계산부 및 상기 고정 블록의 할당 또는 해제 여부를 관리하는 비트맵을 갱신하는 비트맵 갱신부를 포함할 수 있다.
본 발명의 일실시예에 따른 스크래치 패드 메모리 관리 방법은, 스크래치 패드 메모리를 복수개의 단위블록으로 분할하는 단계, 메인 메모리 상에 상기 스크래치 패드 메모리를 관리하기 위한 메모리 할당 테이블을 유지하는 단계 및 상기 복수개의 단위블록과 대응되는 인덱스를 갖는 상기 메모리 할당 테이블을 사용하여 상기 스크래치 패드 메모리를 관리하는 단계를 포함할 수 있다.
이때, 상기 스크래치 패드 메모리를 관리하는 단계는, 상기 스크래치 패드 메모리의 복수개의 단위블록 중 하나 이상의 단위블록으로 구성되는 메모리 청크(memory chunk)를 생성하는 단계 및 상기 메모리 청크를 프리 메모리(free memory), 할당 메모리(allocated memory), 및 고정 블록 풀(fixed block pool) 중 하나로 분류하는 단계를 포함할 수 있다.
또한, 상기 스크래치 패드 메모리를 관리하는 단계는, 상기 메모리 청크가 프리 메모리로 분류되는 경우, 상기 프리 메모리를 관리하는 메모리 할당 테이블의 앞 블록 및 뒤 블록에 비어 있는 메모리 크기를 기록할 수 있다.
또한, 상기 스크래치 패드 메모리를 관리하는 단계는, 상기 메모리 청크가 할당 메모리로 분류되는 경우, 상기 할당 메모리를 관리하는 메모리 할당 테이블의 앞 블록 및 뒤 블록에 할당되어 있는 메모리 크기를 기록할 수 있다.
또한, 상기 스크래치 패드 메모리를 관리하는 단계는, 상기 메모리 청크가 상기 고정 블록 풀로 분류되는 경우, 상기 고정 블록 풀을 관리하는 메모리 할당 테이블에 상기 고정 블록 풀을 식별하는 식별정보 및 상기 고정 블록 풀에서의 위치를 인식하는 위치정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 스크래치 패드 메모리를 관리하는 단계는, 상기 프리 메모리를 연결한 프리 리스트를 생성하는 단계 및 상기 프리 메모리의 앞 블록에 이전 프리 메모리의 인덱스 및 다음 프리 메모리의 인덱스를 저장하는 단계를 포함할 수 있다.
또한, 상기 스크래치 패드 메모리를 관리하는 단계는, 메모리 사용 요청에 대응하여 메모리를 할당하는 단계 및 메모리 해제 요청에 대응하여 메모리를 해제하는 단계를 포함할 수 있다.
또한, 상기 메모리를 할당하는 단계는, 상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기인 경우, 상기 고정 블록 풀의 메모리를 할당하고, 상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기가 아닌 경우, 상기 요청된 메모리 크기보다 크고, 상기 요청된 메모리 크기와의 차이가 최소인 프리 리스트의 프리 메모리를 할당할 수 있다.
또한, 상기 메모리를 할당하는 단계는, 상기 프리 리스트의 프리 메모리의 크기와 상기 요청된 메모리의 크기 차가 상기 단위블록 크기 이상인 경우, 상기 프리 메모리로부터 상기 크기 차에 해당하는 프리 메모리를 분리하는 단계 및 상기 분리된 프리 메모리를 해당하는 프리 리스트에 추가하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따르면, 동적으로 생성되는 태스크에 대응하여 스크래치 패드 메모리를 동적으로 관리함으로써, 스크래치 패드 메모리의 사용 효율을 증가시킬 수 있다.
본 발명의 일실시예에 따르면, 스크래치 패드 메모리 관리를 위한 메타데이터를 메인 메모리에 위치시킴으로써, 스크래치 패드 메모리의 낭비를 줄이고, 시스템 성능을 향상시킬 수 있다.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명의 실시예들을 상세하게 설명한다.  다만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다.  각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 스크래치 패드 메모리 관리 장치를 나타낸 도면이다.
도 1을 참고하면, 스크래치 패드 메모리 관리 장치(100)는 메모리 관리부(110) 및 스크래치 패드 메모리(120)를 포함할 수 있다.
스크래치 패드 메모리(120)는 복수개의 단위블록으로 분할되어 관리될 수 있다. 여기서, 단위블록의 크기는 사용자가 임의로 설정(ex. 32 byte)할 수 있으며, 복수개의 단위블록으로 스크래치 패드 매모리를 분할할 수 있다. 또한, 분할된 단위블록 각각은 고유의 인덱스를 가질 수 있다. 여기서, 스크래치 패드 메모리의 분할된 각 단위블록의 인덱스와 상기 메모리 할당 테이블이 갖는 인덱스는 각각 대응될 수 있다. 예를 들어, 스크래치 패드 메모리의 단위블록 1은 메모리 할당 테이블의 복수개의 블록 중 인덱스 1을 갖는 블록에서 관리할 수 있다. 여기서, 메모리 할당 테이블과 스크래치 패드 메모리의 대응관계는 도 2를 참고하여 이하에서 더욱 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 스크래치 패드 메모리 및 메모리 할당 테이블을 나타낸 도면이다.
도 2를 참고하면, 스크래치 패드 메모리(220)는 복수의 단위블록으로 분할되고, 상기 분할된 복수의 단위블록은 고유의 인덱스를 가질 수 있다. 이 경우, 메모리 할당 테이블(210)은 상기 분할된 복수의 단위블록에 대응하는 수의 블록을 포함할 수 있고, 상기 분할된 복수의 단위블록의 인덱스와 메모리 할당 테이블(210)이 포함하는 블록이 갖는 인덱스는 각각 대응될 수 있다. 따라서, 각 단위블록의 인덱스를 이용해서 메모리 할당 테이블에 메타데이터를 기록 및 판독할 수 있다.
다시 도 1을 참고하면, 메모리 관리부(110)는 메인 메모리 상에 유지되어 상기 스크래치 패드 메모리를 관리할 수 있다. 일예로, 메모리 관리부(110)는 스크래치 패드 메모리를 관리하기 위한 메타데이터를 저장하는 메모리 할당 테이블을 포함할 수 있다. 여기서, 메모리 관리부(110)는 스크래치 패드 메모리를 효율적으로 관리하기 위해 상기 스크래치 패드 메모리의 복수개의 단위블록 중 하나 이상의 단위블록으로 구성되는 메모리 청크(memory chunk)를 생성할 수 있다. 또한, 상기 메모리 청크를 프리 메모리(free memory), 할당 메모리(allocated memory), 및 고정 블록 풀(fixed block pool) 중 하나로 분류할 수 있다. 여기서, 고정 블록 풀은 상기 단위블록의 비정수배 크기의 메모리 청크를 포함할 수 있다. 예를 들어, 단위블록의 크기가 32 byte일 경우, 단위블록의 정수배 크기(ex. 32 byte, 64 byte, 96 byte )의 메모리는 상기 프리 메모리를 통해 관리할 수 있고, 단위블록의 정수배가 아닌 크기(ex. 24 byte)의 메모리 영역은 고정 블록 풀을 통해 관리할 수 있다.
이때, 메모리 관리부(110)는 스크래치 패드 메모리의 메모리 청크 종류에 따라 각기 다른 방법으로 메모리를 관리할 수 있다. 예를 들어, 스크래치 패드 메 모리의 프리 메모리 영역의 경우, 상기 프리 메모리 영역을 관리하는 메모리 할당 테이블에서는 상기 프리 메모리 영역을 관리하는 메모리 할당 테이블의 앞 블록 및 뒤 블록에 비어 있는 메모리 크기를 기록하도록 할 수 있다. 또한, 스크래치 패드 메모리의 할당 메모리 영역의 경우, 상기 할당 메모리 영역을 관리하는 메모리 할당 테이블에서는 상기 할당 메모리 영역을 관리하는 메모리 할당 테이블의 앞 블록 및 뒤 블록에 할당되어 있는 메모리 크기를 기록하도록 할 수 있다. 또한, 스크래치 패드 메모리의 고정 블록 풀 영역의 경우, 상기 고정 블록 풀을 관리하는 메모리 할당 테이블에 상기 고정 블록 풀을 식별하는 식별정보 및 상기 고정 블록 풀에서의 위치를 인식하는 위치정보 중 적어도 하나를 저장할 수 있다. 여기서, 고정 블록 풀을 관리하는 메모리 할당 테이블에는 각 고정 블록이 고정 블록 풀에서 몇 번째 위치한 블록인지를 나타내는 마크(mark)가 기록될 수 있다. 메모리 할당 테이블의 세부 구성은 도 3을 참고하여 이하에서 더욱 상세하게 설명한다.
도 3은 본 발명의 일실시예에 따른 메모리 할당 테이블의 세부구성을 나타낸 도면이다.
도 3을 참고하면, 메모리 할당 테이블(310)은 복수의 블록(311. 312, 313)으로 구성될 수 있다. 복수의 블록(311. 312, 313)은 동일한 인덱스의 스크래치 패드 메모리의 관리할 수 있고, 스크래치 패드 메모리의 분류 유형에 따라, 각기 다른 정보를 저장할 수 있다. 예를 들어, 스크래치 패드 메모리의 프리 메모리 영역에 대응해서는 앞, 뒤 블록에 프리 영역의 크기를 저장할 수 있고, 할당 메모리 영역에 대응해서는 앞, 뒤 블록에 할당 영역의 크기를 저장할 수 있다.
한편, 스크래치 패드 메모리의 프리 메모리 영역은 메모리 크기에 따라 분류되어 프리 리스트로 관리될 수 있다. 프리 리스트 생성을 위한 스크래치 패드 메모리 영역은 도 4를 참고하여 더욱 상세하게 설명한다.
도 4는 본 발명의 일실시예에 따른 스크래치 패드 메모리 중 프리 메모리의 세부구성을 나타낸 도면이다.
도 4를 참고하면, 동일한 크기의 프리 메모리를 연결하기 위해 프리 메모리 블록(410)의 앞부분에는 이전 프리 메모리의 인덱스(411) 및 다음 프리 메모리의 인덱스(412)를 저장할 수 있다.
또한, 고정 블록 풀도 크기에 따라 관리될 수 있으며 도 5를 참고하여 더욱 상세하게 설명한다.
도 5는 본 발명의 일실시예에 따른 스크래치 패드 메모리 중 고정 블록 풀의 세부구성을 나타낸 도면이다.
도 5를 참고하면, 고정 블록 풀(510)은 상기 고정 블록의 크기를 저장하는 제1 저장 공간(411), 이전 고정 블록 풀의 인덱스를 저장하는 제2 저장 공간(512), 다음 고정 블록 풀의 인덱스를 저장하는 제3 저장 공간(513), 각 고정 블록의 할당 또는 해제 상태를 나타내는 제4 저장 공간(514), 및 사용 데이터가 저장되는 제5 저장 공간(515)를 포함할 수 있다. 상기 각 고정 블록의 할당 또는 해제 상태는 정보는 할당 비트맵(allocation bitmap)을 통해 관리될 수 있다.
도 6은 본 발명의 다른 일실시예에 스크래치 패드 메모리 및 메모리 할당 테이블의 세부구성을 나타낸 도면이다.
도 6을 참고하면, 스크래치 패드 메모리는 프리 메모리(611, 612), 할당 메모리(미도시), 고정 블록 풀(623) 중 하나로 구성될 수 있고, 프리 영역들이 프리 영역의 크기에 따라 프리 리스트를 구성할 수 있다. 즉, 프리 영역의 크기 별로 프리 영역들이 인덱스를 통해 연결될 수 있다.
또한, 메모리 할당 테이블(610)에서는 스크래치 패드 메모리(620)와 동일한 인덱스에서 프리 메모리 영역 관리(611), 할당 메모리 영역 관리(612), 고정 블록 풀 영역 관리(613)를 각각 수행할 수 있다.
한편, 메모리 관리부(110)는 메모리 할당, 해제를 위한 메모리 할당부(111) 및 메모리 해제부(112)를 포함할 수 있다.
메모리 할당부(111)는 상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기인 경우, 상기 고정 블록 풀의 메모리를 할당하고, 상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기가 아닌 경우, 상기 요청된 메모리 크기보다 크고, 상기 요청된 메모리 크기와의 차이가 최소인 프리 리스트의 프리 메모리를 할당할 수 있다. 즉, 메모리 할당 요청이 있는 경우, 고정 블록 풀에서 관리 되는 크기인지 확인하여 고정 블록 풀에서 우선적으로 할당할 수 있다. 고정 블록 풀은 단위블록의 정수배가 아닌 크기의 메모리를 관리할 수 있으므로, 상기와 같이, 고정 블록 풀에서 우선적으로 할당할 경우, 메모리의 낭비를 줄일 수 있다. 또한, 요청된 메모리 크기가 고정 블록 풀에서 관리되는 크기가 아닌 경우도 상기 요청된 메모리 크기와 가장 가까운 크기의 프리 메모리를 할당함으로써, 메모리를 효율적으로 사용할 수 있다. 이때, 상기 가장 가까운 크기의 프리 메모 리를 할당하였으나, 상기 프리 리스트의 프리 메모리의 크기와 상기 요청된 메모리의 크기 차가 상기 단위블록 크기 이상인 경우, 상기 프리 메모리로부터 상기 크기 차에 해당하는 프리 메모리를 분리하고, 상기 분리된 프리 메모리를 해당하는 프리 리스트에 추가하여, 더욱 효율적인 메모리 사용을 관리할 수 있다.
메모리 해제부(112)는 해제할 메모리 청크의 앞 또는 뒤가 프리 메모리인 경우, 상기 해제할 메모리 청크와 상기 프리 메모리를 병합하는 메모리 병합부(미도시), 메모리 해제에 대응하여 메모리 할당 테이블을 갱신하는 메모리 할당 테이블 갱신부(미도시), 메모리 해제에 대응하여 프리 리스트를 갱신하는 프리 리스트 갱신부(미도시), 상기 해제할 메모리 청크가 고정 블록인 경우, 상기 해제할 메모리 청크의 고정 블록 위치를 계산하는 위치 계산부(미도시), 및 상기 고정 블록의 할당 또는 해제 여부를 관리하는 비트맵을 갱신하는 비트맵 갱신부(미도시)를 포함할 수 있다. 예를 들어, 메모리 해제부(112)는 메모리 해제 요청을 받은 메모리의 크기를 확인 할 수 있다. 해제할 메모리가 고정 블록일 경우는 해제할 메모리의 인덱스를 계산해고, 할당 비트맵(allocation bitmap)을 갱신할 수 있다. 해제할 메모리가 고정 블록 풀이 아닌 경우는 해제할 메모리의 앞과 뒤를 보고 메모리 영역의 병합이 필요할 경우 메모리를 병합하여 더 큰 메모리 영역을 확보할 수 있다.
상기와 같이, 스크래치 패드 메모리를 동적으로 관리함으로써, 응용 프로그램의 스크래치 패드 메모리 사용 효율을 증가시킬 수 있고, 메모리 관리를 위한 메타데이터를 메인 메모리에 저장함으로써, 스크래치 패드 메모리의 낭비를 예방할 수 있다.
한편, 본 발명의 일실시예에 따른 스크래치 패드 메모리 관리 방법은 스크래치 패드 메모리를 복수개의 단위블록으로 분할하는 단계, 메인 메모리 상에 상기 스크래치 패드 메모리를 관리하기 위한 메모리 할당 테이블을 유지하는 단계 및 상기 복수개의 단위블록과 대응되는 인덱스를 갖는 상기 메모리 할당 테이블을 사용하여 상기 스크래치 패드 메모리를 관리하는 단계를 포함한다.
즉, 상기 스크래치 패드 메모리를 단위블록으로 분할하고, 스크래치 패드 메모리를 관리하기 위한 메타 데이터를 메인 메모리에 저장하며, 스크래치 패드 메모리의 각 단위블록의 인덱스와 동일한 인덱스의 메모리 할당 테이블을 통해 스크래치 패드 메모리를 관리할 수 있다.
이때, 상기 스크래치 패드 메모리를 관리하는 단계는, 상기 스크래치 패드 메모리의 복수개의 단위블록 중 하나 이상의 단위블록으로 구성되는 메모리 청크(memory chunk)를 생성하는 단계 및 상기 메모리 청크를 프리 메모리(free memory), 할당 메모리(allocated memory), 및 고정 블록 풀(fixed block pool) 중 하나로 분류하는 단계를 포함할 수 있다.
도 7은 본 발명의 일실시예에 따른 스크래치 패드 메모리 할당 방법을 나타낸 동작 흐름도이다.
도 7을 참고하면, 단계(710)에서는 요청받은 메모리 크기가 고정 블록 풀에서 관리하는 크기에 속하는지 판단할 수 있다.
단계(720)에서는 상기 요청받은 메모리 크기가 고정 블록 풀에서 관리하는 크기에 속하는 경우, 프리 메모리 리스트에 고정 블록 풀이 존재하는지 판단할 수 있다. 즉, 메모리의 프리 영역을 리스트로 구성한 프리 메모리 리스트에 상기 요청받은 크기의 고정 블록 풀이 존재하는지 판단할 수 있다.
단계(721)에서는 프리 메모리 리스트에 상기 요청받은 크기의 고정 블록 풀이 존재하지 않는 경우, 고정 블록 풀을 생성하고, 프리 메모리 리스트에 상기 생성된 고정 블록 풀을 추가할 수 있다.
단계(722)에서는 프리 메모리 리스트에 상기 요청받은 크기의 고정 블록 풀이 존재하는 경우, 상기 존재하는 고정 블록 풀을 선택할 수 있다.
단계(723)에서는 상기 고정 블록 풀의 할당 비트맵을 이용하여 프리 블록을 선택할 수 있다. 즉, 상기 할당 비트맵은 메모리의 할당 또는 해제를 기록하므로, 상기 할당 비트맵의 정보를 이용하여 프리 블록을 선택할 수 있다.
단계(724)에서는 상기 프리 블록을 선택한 후 상기 할당 비트맵을 갱신하여 선택된 프리 블록이 할당되었음을 기록할 수 있다.
단계(725)에서는 프리 블록을 모두 사용하였는지 판단하고, 단계(726)에서는 프리 블록을 모두 사용한 경우, 프리 메모리 리스트에서 고정 블록 풀을 제거할 수 있다.
단계(730)에서는 요청받은 메모리 크기가 고정 블록 풀에서 관리하는 크기에 속하지 않는 경우, 상기 요청받은 크기와 가장 유사한 크기의 프리 메모리 리스트를 선택할 수 있다. 예를 들어, 요청받은 메모리 크기보다 크고, 상기 요청된 메모리 크기와의 차이가 최소인 프리 리스트의 프리 메모리를 할당하여 낭비되는 메모리의 크기가 최소가 되도록 할 수 있다. 예를 들어, 요청받은 메모리의 크기 가 60 byte이고, 32 byte 프리 메모리 리스트, 64 byte 프리 메모리 리스트, 96 byte 프리 메모리 리스트가 존재하는 경우, 요청받은 메모리 60 byte보다 크고, 상기 요청된 메모리 크기와의 차이가 최소인 프리 리스트는 64 byte 프리 메모리 리스트이므로, 상기 64 byte 프리 메모리 리스트를 선택할 수 있다.
단계(731)에서는 상기 선택된 프리 메모리 리스트로부터 메모리 청크를 선택할 수 있다. 상기와 같이, 요청받은 메모리 크기와 가장 유사한 프리 메모리 리스트를 선택하고, 상기 선택된 프리 메모리 리스트로부터 프리 메모리를 할당하여 메모리 낭비를 최소화할 수 있다
단계(732)에서는 상기 할당할 영역이 요청받은 영역보다 한 블록 이상 큰지 확인할 수 있다.
단계(733)에서는 상기 할당할 영역이 요청받은 메모리 크기보다 한 블록 이상 큰 경우, 메모리 청크를 분리하고, 남는 부분을 해당되는 프리 메모리 리스트에 추가할 수 있다. 예를 들어, 단위 블록의 크기가 32 byte이고, 요청받은 메모리 크기가 60이며, 96 byte 프리 메모리 리스트, 128 byte 프리 메모리 리스트, 160 byte 프리 메모리 리스트 가 존재하는 경우, 요청 받은 메모리 크기와의 차이가 가장 적은 프리 메모리 리스트는 96 byte 프리 메모리 리스트가 될 수 있다. 이때, 선택된 프리 메모리 리스트의 프리 메모리 크기가 요청받은 메모리 크기보다 한 블록 이상(ex. 36 byte) 크므로, 여분의 메모리(36 byte)를 분리하여 해당되는 프리 리스트에 추가할 수 있다.
단계(734)에서는 메모리 할당을 반영하여 메모리 할당 테이블을 갱신할 수 있다.
도 8은 본 발명의 일실시예에 따른 스크래치 패드 메모리 해제 방법을 나타낸 동작 흐름도이다.
도 8을 참고하면, 단계(810)에서는 메모리 해제 요청을 받으면, 메모리 할당 테이블을 이용하여 해제할 메모리 청크를 결정할 수 있다.
단계(820)에서는 상기 해제할 메모리 청크가 고정 블록 풀에 속하는지 판단할 수 있다. 예를 들어, 요청 받은 메모리의 인덱스를 이용해서 메모리 할당 테이블을 검색하여 메모리 크기를 알아내고, 상기 메모리 크기가 고정 블록 풀에서 관리하는 메모리 크기인지 판단할 수 있다.
단계(830)에서는 상기 해제할 메모리 청크가 고정 블록 풀에 속하는 경우, 고정 블록 풀의 모든 블록이 할당된 상태인지 판단할 수 있다.
단계(831)에서는 프리 메모리 리스트에 고정 블록 풀을 추가할 수 있다. 즉, 모든 블록이 할당되었던 고정 블록 풀의 메모리가 해제되면 프리 메모리가 존재하게 되므로, 프리 메모리 리스트에 추가되어 관리될 수 있다.
단계(832)에서는 해제할 메모리의 블록 위치를 계산할 수 있다.
단계(833)에서는 상기 계산된 블록 위치에 기초하여, 상기 해제할 메모리 청크의 할당 비트맵을 갱신할 수 있다.
단계(834)에서는 상기 고정 블록 풀의 모든 블록이 해제된 상태인지 판단할 수 있다.
단계(835)에서는 상기 고정 블록 풀의 모든 블록이 해제된 상태인 경우, 프 리 메모리 리스트에서 상기 고정 블록 풀을 삭제할 수 있다.
단계(836)에서는 상기 고정 블록 풀을 프리 메모리 청크로 설정하고, 단계(840) 내지 단계(843)에 따라 메모리 해제를 수행하도록 할 수 있다.
단계(840)에서는 해제할 메모리의 앞 또는 뒤가 프리 영역인지 판단할 수 있다.
단계(841)에서는 해제할 메모리의 앞 또는 뒤가 프리 영역인 경우, 해제할 메모리를 상기 앞 또는 뒤 영역과 병합할 수 있다.
단계(842)에서는 상기 메모리 해제에 따라 상기 메모리 할당 테이블을 갱신할 수 있다.
단계(843)에서는 변동된 프리 메모리 리스트를 갱신할 수 있다.
상기와 같이, 동적으로 생성되는 태스크에 대응하여 스크래치 패드 메모리를 동적으로 관리함으로써, 스크래치 패드 메모리의 사용 효율을 증가시킬 수 있고, 스크래치 패드 메모리 관리를 위한 메타데이터를 메인 메모리에 위치시킴으로써, 스크래치 패드 메모리의 낭비를 줄일 수 있다.
본 발명의 실시예에 따른 스크래치 패드 메모리 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가 능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명의 일실시예는 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명의 일실시예는 상기 설명된 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.  따라서, 본 발명의 일실시예는 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 본 발명의 일실시예에 따른 스크래치 패드 메모리 관리 장치를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 스크래치 패드 메모리 및 메모리 할당 테이블을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 메모리 할당 테이블의 세부구성을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 스크래치 패드 메모리 중 프리 메모리의 세부구성을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 스크래치 패드 메모리 중 고정 블록 풀의 세부구성을 나타낸 도면이다.
도 6은 본 발명의 다른 일실시예에 스크래치 패드 메모리 및 메모리 할당 테이블의 세부구성을 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 스크래치 패드 메모리 할당 방법을 나타낸 동작 흐름도이다.
도 8은 본 발명의 일실시예에 따른 스크래치 패드 메모리 해제 방법을 나타낸 동작 흐름도이다.

Claims (22)

  1. 복수개의 단위블록으로 분할 관리되는 스크래치 패드 메모리; 및
    메인 메모리 상에 유지되어 상기 스크래치 패드 메모리를 관리하는 메모리 관리부
    를 포함하는 스크래치 패드 메모리 관리 장치.
  2. 제1항에 있어서,
    상기 메모리 관리부는,
    상기 복수개의 단위블록을 관리하기 위한 메타데이터를 메모리 할당 테이블에 저장하고,
    상기 복수개의 단위블록의 인덱스와 상기 메모리 할당 테이블에 저장되는 메타데이터의 인덱스는 대응되는 것을 특징으로 하는, 스크래치 패드 메모리 관리 장치.
  3. 제2항에 있어서,
    상기 메모리 관리부는,
    상기 스크래치 패드 메모리의 복수개의 단위블록 중 하나 이상의 단위블록으로 구성되는 메모리 청크(memory chunk)를 생성하고,
    상기 메모리 청크를 프리 메모리(free memory), 할당 메모리(allocated memory), 및 고정 블록 풀(fixed block pool) 중 하나로 분류하여 관리하는 것을 특징으로 하는, 스크래치 패드 메모리 관리 장치.
  4. 제3항에 있어서,
    상기 메모리 관리부는,
    상기 메모리 청크가 프리 메모리로 분류되는 경우,
    상기 프리 메모리를 관리하는 메모리 할당 테이블의 앞 블록 및 뒤 블록에 비어 있는 메모리 크기를 기록하는 것을 특징으로 하는 스크래치 패드 메모리 관리 장치.
  5. 제3항에 있어서,
    상기 메모리 관리부는,
    상기 메모리 청크가 할당 메모리로 분류되는 경우,
    상기 할당 메모리를 관리하는 메모리 할당 테이블의 앞 블록 및 뒤 블록에 할당되어 있는 메모리 크기를 기록하는 것을 특징으로 하는 스크래치 패드 메모리 관리 장치.
  6. 제3항에 있어서,
    상기 고정 블록 풀은,
    상기 단위블록의 비정수배 크기의 메모리 청크로 구성되는 것을 특징으로 하는, 스크래치 패드 메모리 관리 장치.
  7. 제3항에 있어서,
    상기 메모리 관리부는,
    상기 메모리 청크가 상기 고정 블록 풀로 분류되는 경우,
    상기 고정 블록 풀을 관리하는 메모리 할당 테이블에 상기 고정 블록 풀을 식별하는 식별정보 및 상기 고정 블록 풀에서의 위치를 인식하는 위치정보 중 적어도 하나를 포함하는 것을 특징으로 하는 스크래치 패드 메모리 관리 장치.
  8. 제3항에 있어서,
    상기 스크래치 패드 메모리의 고정 블록 풀은,
    상기 고정 블록의 크기를 저장하는 제1 저장 공간;
    이전 고정 블록 풀의 인덱스를 저장하는 제2 저장 공간;
    다음 고정 블록 풀의 인덱스를 저장하는 제3 저장 공간;
    각 고정 블록의 할당 또는 해제 상태를 나타내는 제4 저장 공간; 및
    사용 데이터가 저장되는 제5 저장 공간
    을 포함하는 것을 특징으로 하는 스크래치 패드 메모리 관리 장치.
  9. 제2항에 있어서,
    상기 스크래치 패드 메모리는,
    상기 프리 메모리를 연결한 프리 리스트를 생성하고, 상기 프리 리스트는 상기 프리 메모리의 크기별로 생성되며,
    상기 프리 메모리의 앞 블록에 이전 프리 메모리의 인덱스 및 다음 프리 메모리의 인덱스를 저장하는 것을 특징으로 하는 스크래치 패드 메모리 관리 장치.
  10. 제9항에 있어서,
    상기 메모리 관리부는,
    메모리 사용 요청에 대응하여 메모리 할당을 관리하는 메모리 할당부
    를 더 포함하고,
    상기 메모리 할당부는,
    상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기인 경우, 상기 고정 블록 풀의 메모리를 할당하고,
    상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기가 아닌 경우, 상기 요청된 메모리 크기보다 크고, 상기 요청된 메모리 크기와의 차이가 최소인 프리 리스트의 프리 메모리를 할당하는 것을 특징으로 하는 스크래치 패드 메모리 관리 장치.
  11. 제10항에 있어서,
    상기 메모리 할당부는,
    상기 프리 리스트의 프리 메모리의 크기와 상기 요청된 메모리의 크기 차가 상기 단위블록 크기 이상인 경우,
    상기 프리 메모리로부터 상기 크기 차에 해당하는 프리 메모리를 분리하고, 상기 분리된 프리 메모리를 해당하는 프리 리스트에 추가하는 것을 특징으로 하는 스크래치 패드 메모리 관리 장치.
  12. 제9항에 있어서,
    상기 메모리 관리부는,
    메모리 해제 요청에 대응하여 메모리 해제를 관리하는 메모리 해제부
    를 더 포함하고,
    상기 메모리 해제부는,
    해제할 메모리 청크의 앞 또는 뒤가 프리 메모리인 경우, 상기 해제할 메모리 청크와 상기 프리 메모리를 병합하는 메모리 병합부;
    메모리 해제에 대응하여 메모리 할당 테이블을 갱신하는 메모리 할당 테이블 갱신부;
    메모리 해제에 대응하여 프리 리스트를 갱신하는 프리 리스트 갱신부;
    상기 해제할 메모리 청크가 고정 블록인 경우, 상기 해제할 메모리 청크의 고정 블록 위치를 계산하는 위치 계산부; 및
    상기 고정 블록의 할당 또는 해제 여부를 관리하는 비트맵을 갱신하는 비트맵 갱신부
    를 포함하는 것을 특징으로 하는 스크래치 패드 메모리 관리 장치.
  13. 스크래치 패드 메모리를 복수개의 단위블록으로 분할하는 단계;
    메인 메모리 상에 상기 스크래치 패드 메모리를 관리하기 위한 메모리 할당 테이블을 유지하는 단계; 및
    상기 복수개의 단위블록과 대응되는 인덱스를 갖는 상기 메모리 할당 테이블을 사용하여 상기 스크래치 패드 메모리를 관리하는 단계
    를 포함하는 스크래치 패드 메모리 관리 방법.
  14. 제13항에 있어서,
    상기 스크래치 패드 메모리를 관리하는 단계는,
    상기 스크래치 패드 메모리의 복수개의 단위블록 중 하나 이상의 단위블록으로 구성되는 메모리 청크(memory chunk)를 생성하는 단계; 및
    상기 메모리 청크를 프리 메모리(free memory), 할당 메모리(allocated memory), 및 고정 블록 풀(fixed block pool) 중 하나로 분류하는 단계
    를 포함하는 것을 특징으로 하는 스크래치 패드 메모리 관리 방법.
  15. 제14항에 있어서,
    상기 스크래치 패드 메모리를 관리하는 단계는,
    상기 메모리 청크가 프리 메모리로 분류되는 경우,
    상기 프리 메모리를 관리하는 메모리 할당 테이블의 앞 블록 및 뒤 블록에 비어 있는 메모리 크기를 기록하는 것을 특징으로 하는 스크래치 패드 메모리 관리 방법.
  16. 제14항에 있어서,
    상기 스크래치 패드 메모리를 관리하는 단계는,
    상기 메모리 청크가 할당 메모리로 분류되는 경우,
    상기 할당 메모리를 관리하는 메모리 할당 테이블의 앞 블록 및 뒤 블록에 할당되어 있는 메모리 크기를 기록하는 것을 특징으로 하는 스크래치 패드 메모리 관리 방법.
  17. 제14항에 있어서,
    상기 스크래치 패드 메모리를 관리하는 단계는,
    상기 메모리 청크가 상기 고정 블록 풀로 분류되는 경우,
    상기 고정 블록 풀을 관리하는 메모리 할당 테이블에 상기 고정 블록 풀을 식별하는 식별정보 및 상기 고정 블록 풀에서의 위치를 인식하는 위치정보 중 적어도 하나를 포함하는 것을 특징으로 하는 스크래치 패드 메모리 관리 방법.
  18. 제14항에 있어서,
    상기 스크래치 패드 메모리를 관리하는 단계는,
    상기 프리 메모리를 연결한 프리 리스트를 생성하는 단계; 및
    상기 프리 메모리의 앞 블록에 이전 프리 메모리의 인덱스 및 다음 프리 메모리의 인덱스를 저장하는 단계
    를 포함하는 것을 특징으로 하는 스크래치 패드 메모리 관리 방법.
  19. 제18항에 있어서,
    상기 스크래치 패드 메모리를 관리하는 단계는,
    메모리 사용 요청에 대응하여 메모리를 할당하는 단계; 및
    메모리 해제 요청에 대응하여 메모리를 해제하는 단계
    를 포함하는 것을 특징으로 하는 스크래치 패드 메모리 관리 방법.
  20. 제19항에 있어서,
    상기 메모리를 할당하는 단계는,
    상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기인 경우, 상기 고정 블록 풀의 메모리를 할당하고,
    상기 요청된 메모리의 크기가 상기 고정 블록 풀에서 관리되는 크기가 아닌 경우, 상기 요청된 메모리 크기보다 크고, 상기 요청된 메모리 크기와의 차이가 최소인 프리 리스트의 프리 메모리를 할당하는 것을 특징으로 하는 스크래치 패드 메모리 관리 방법.
  21. 제20항에 있어서,
    상기 메모리를 할당하는 단계는,
    상기 프리 리스트의 프리 메모리의 크기와 상기 요청된 메모리의 크기 차가 상기 단위블록 크기 이상인 경우,
    상기 프리 메모리로부터 상기 크기 차에 해당하는 프리 메모리를 분리하는 단계; 및
    상기 분리된 프리 메모리를 해당하는 프리 리스트에 추가하는 단계
    를 포함하는 것을 특징으로 하는 스크래치 패드 메모리 관리 방법.
  22. 제13항 내지 제21항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020090064850A 2009-07-16 2009-07-16 스크래치 패드 메모리 관리 장치 및 방법 KR101615659B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090064850A KR101615659B1 (ko) 2009-07-16 2009-07-16 스크래치 패드 메모리 관리 장치 및 방법
US12/591,946 US9152547B2 (en) 2009-07-16 2009-12-04 Apparatus and method for scratch pad memory management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090064850A KR101615659B1 (ko) 2009-07-16 2009-07-16 스크래치 패드 메모리 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110007360A true KR20110007360A (ko) 2011-01-24
KR101615659B1 KR101615659B1 (ko) 2016-05-12

Family

ID=43466052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090064850A KR101615659B1 (ko) 2009-07-16 2009-07-16 스크래치 패드 메모리 관리 장치 및 방법

Country Status (2)

Country Link
US (1) US9152547B2 (ko)
KR (1) KR101615659B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150048311A (ko) * 2013-10-25 2015-05-07 삼성전자주식회사 메모리 관리 장치 및 메모리 관리 방법
KR20160071685A (ko) 2014-12-12 2016-06-22 국민대학교산학협력단 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체
KR20180075066A (ko) 2016-12-26 2018-07-04 연세대학교 산학협력단 그래픽 처리 장치에서의 범용 연산처리의 스크래치패드 메모리 최적 컴파일 방법 및 장치
CN117312330A (zh) * 2023-11-29 2023-12-29 中国人民解放军国防科技大学 基于便签式存储的向量数据聚集方法、装置及计算机设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013001614A1 (ja) * 2011-06-28 2013-01-03 富士通株式会社 データ処理方法およびデータ処理システム
CN104252414B (zh) * 2013-06-25 2018-03-27 晨星半导体股份有限公司 将影像写入存储器的方法及其装置
TWI518585B (zh) 2015-05-18 2016-01-21 國立成功大學 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法
CN115617707B (zh) * 2022-12-07 2023-03-10 摩尔线程智能科技(北京)有限责任公司 用于管理存储空间的装置及方法、计算设备、芯片
CN117033002B (zh) * 2023-10-09 2024-02-09 苏州元脑智能科技有限公司 一种内存管理方法、装置、设备及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978893A (en) * 1996-06-19 1999-11-02 Apple Computer, Inc. Method and system for memory management
US5893159A (en) * 1997-10-22 1999-04-06 International Business Machines Corporation Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system
US6175900B1 (en) * 1998-02-09 2001-01-16 Microsoft Corporation Hierarchical bitmap-based memory manager
US6219772B1 (en) * 1998-08-11 2001-04-17 Autodesk, Inc. Method for efficient memory allocation of small data blocks
US6453404B1 (en) * 1999-05-27 2002-09-17 Microsoft Corporation Distributed data cache with memory allocation model
US6363468B1 (en) * 1999-06-22 2002-03-26 Sun Microsystems, Inc. System and method for allocating memory by partitioning a memory
US6804761B1 (en) * 2000-01-21 2004-10-12 Cisco Technology, Inc. Memory allocation system and method
US6836833B1 (en) * 2002-10-22 2004-12-28 Mips Technologies, Inc. Apparatus and method for discovering a scratch pad memory configuration
US7266132B1 (en) * 2002-10-24 2007-09-04 Cisco Technology, Inc. Flexible memory allocation for data transmission
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7395404B2 (en) 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
KR100755700B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
KR20070096429A (ko) 2006-03-24 2007-10-02 부산대학교 산학협력단 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
US7886118B2 (en) * 2007-01-04 2011-02-08 International Business Machines Corporation Detecting illegal reuse of memory with low resource impact
KR101334176B1 (ko) 2007-01-19 2013-11-28 삼성전자주식회사 멀티 프로세서 시스템 온 칩에서의 메모리 관리 방법
JP2008299455A (ja) 2007-05-30 2008-12-11 Sony Corp データ記憶装置及びデータ管理方法
US7941598B2 (en) 2007-08-08 2011-05-10 Hitachi, Ltd. Method and apparatus for capacity on demand dynamic chunk allocation
EP2075698A1 (en) * 2007-12-28 2009-07-01 Software AG Method and system for allocating memory in a broker system
US8151086B2 (en) * 2008-10-09 2012-04-03 Lsi Corporation Early detection of an access to de-allocated memory

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150048311A (ko) * 2013-10-25 2015-05-07 삼성전자주식회사 메모리 관리 장치 및 메모리 관리 방법
KR20160071685A (ko) 2014-12-12 2016-06-22 국민대학교산학협력단 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체
KR20180075066A (ko) 2016-12-26 2018-07-04 연세대학교 산학협력단 그래픽 처리 장치에서의 범용 연산처리의 스크래치패드 메모리 최적 컴파일 방법 및 장치
CN117312330A (zh) * 2023-11-29 2023-12-29 中国人民解放军国防科技大学 基于便签式存储的向量数据聚集方法、装置及计算机设备
CN117312330B (zh) * 2023-11-29 2024-02-09 中国人民解放军国防科技大学 基于便签式存储的向量数据聚集方法、装置及计算机设备

Also Published As

Publication number Publication date
US20110016285A1 (en) 2011-01-20
KR101615659B1 (ko) 2016-05-12
US9152547B2 (en) 2015-10-06

Similar Documents

Publication Publication Date Title
KR101615659B1 (ko) 스크래치 패드 메모리 관리 장치 및 방법
US9471500B2 (en) Bucketized multi-index low-memory data structures
US10572171B2 (en) Storage system
CN108897642B (zh) 持久性事务内存系统中日志机制的优化方法及装置
US20110246742A1 (en) Memory pooling in segmented memory architecture
WO2016086819A1 (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
KR20130032603A (ko) 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
CN107817945B (zh) 一种混合内存结构的数据读取方法和系统
US10366000B2 (en) Re-use of invalidated data in buffers
KR20170038853A (ko) 호스트-관리 비휘발성 메모리
KR20130075018A (ko) 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
US20210200463A1 (en) Method and system for memory swap
US10402108B2 (en) Efficient control of data storage areas based on a size of compressed data to be written
US11797207B2 (en) Base and compressed difference data deduplication
US20170286010A1 (en) Method and apparatus for enabling larger memory capacity than physical memory size
KR101626218B1 (ko) 블록 기반의 페이지 매핑 방법
US10365846B2 (en) Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing
KR20090007926A (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
US10853257B1 (en) Zero detection within sub-track compression domains
US11429519B2 (en) System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive
Yoo et al. OrcFS: Orchestrated file system for flash storage
Park et al. Lightweight data lifetime classification using migration counts to improve performance and lifetime of flash-based SSDs
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units
KR102149468B1 (ko) 통합 캐시를 하나 또는 복수의 논리 유닛에 동적 할당하는 시스템 및 방법
KR101379161B1 (ko) 저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 4