KR20170000516A - 동적 프로파일러를 통한 객체의 특성을 이용한 dram과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템 - Google Patents

동적 프로파일러를 통한 객체의 특성을 이용한 dram과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템 Download PDF

Info

Publication number
KR20170000516A
KR20170000516A KR1020150089485A KR20150089485A KR20170000516A KR 20170000516 A KR20170000516 A KR 20170000516A KR 1020150089485 A KR1020150089485 A KR 1020150089485A KR 20150089485 A KR20150089485 A KR 20150089485A KR 20170000516 A KR20170000516 A KR 20170000516A
Authority
KR
South Korea
Prior art keywords
garbage collection
ssd
dram
ftl
time information
Prior art date
Application number
KR1020150089485A
Other languages
English (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 고려대학교 산학협력단
Priority to KR1020150089485A priority Critical patent/KR20170000516A/ko
Publication of KR20170000516A publication Critical patent/KR20170000516A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템을 개시한다. 즉, 본 발명은 DRAM과 플래시 하이브리드 메모리 환경에서 동적 프로파일러가 DRAM과 SSD의 특성에 맞는 객체(예를 들어 코드 및 데이터)를 구별해 각각의 메모리에 저장하고, 상기 동적 프로파일러가 메소드의 특성을 프로파일링하여, 상기 DRAM만을 접근하는 메소드일 때 FTL로 SSD의 유휴 시간 정보를 전송하여, 해당 FTL에서 상기 SSD의 유휴 시간 정보를 근거로 해당 FTL에서 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록을 산출하고, 상기 산출된 가비지 컬렉션 대상 블록에 대하여 가비지 컬렉션을 수행함으로써, 가비지 컬렉션 실행을 숨길 수 있으며 시스템의 성능을 향상시킬 수 있다.

Description

동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템{Method of performing garbage collection in DRAM-Flash hybrid memory using object's character through dynamic profiler and system thereof}
본 발명은 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템에 관한 것으로, 특히 DRAM과 플래시 하이브리드 메모리 환경에서 동적 프로파일러가 DRAM과 SSD의 특성에 맞는 객체(예를 들어 코드 및 데이터)를 구별해 각각의 메모리에 저장하고, 상기 동적 프로파일러가 메소드의 특성을 프로파일링하여, 상기 DRAM만을 접근하는 메소드일 때 FTL로 SSD의 유휴 시간 정보를 전송하여, 해당 FTL에서 상기 SSD의 유휴 시간 정보를 근거로 해당 FTL에서 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록을 산출하고, 상기 산출된 가비지 컬렉션 대상 블록에 대하여 가비지 컬렉션을 수행하여 해당 FTL에서 가비지 컬렉션 실행에 의한 오버헤드를 숨기는 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템에 관한 것이다.
플래시 메모리는 일종의 EEPROM(Electrically Erasable and Programmable ROM)으로 크게 바이트 I/O(input/output)를 지원하는 NOR형과 페이지 I/O만을 지원하는 NAND형이 있다. 이 중 NOR형 플래시 메모리는 읽기 속도가 빠른데 비해, 쓰기 속도가 느려 주로 코드용 메모리로 사용하며, NAND형 플래시 메모리는 쓰기 속도가 상대적으로 빠르고 단위 공간당 단가가 낮아 주로 대용량 데이터 저장 장치로 사용된다.
또한, DRAM과 플래시 하이브리드 메모리 시스템은 DRAM의 로우 레이턴시(low latency)의 장점과 플래시 메모리(flash memory)의 로우 아이들 파워(low idle power)의 장점을 모두 가지고 있다.
이러한 DRAM과 플래시 하이브리드 메모리 시스템은 플래시 메모리의 아웃 오브 플레이스 업데이트(out of place update)의 특성으로 인해 가비지 컬렉션이 필요하여, 가비지 컬렉션을 수행하는 동안에는 플래시 메모리 요청을 처리하지 못한다.
또한, 아이들 타임 가비지 컬렉션 정책은 플래시 메모리로의 요청이 한동안 없을 때, FTL에서 유휴 시간(idle time)이라고 판단하고 가비지 컬렉션을 수행함에 따라 시스템 운용 효율을 저하시킨다.
한국등록특허 제10-1392174호 [명칭: 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법]
본 발명의 목적은 DRAM과 플래시 하이브리드 메모리 환경에서 동적 프로파일러가 DRAM과 SSD의 특성에 맞는 객체(예를 들어 코드 및 데이터)를 구별해 각각의 메모리에 저장하고, 상기 동적 프로파일러가 메소드의 특성을 프로파일링하여, 상기 DRAM만을 접근하는 메소드일 때 FTL로 SSD의 유휴 시간 정보를 전송하여, 해당 FTL에서 상기 SSD의 유휴 시간 정보를 근거로 해당 FTL에서 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록을 산출하고, 상기 산출된 가비지 컬렉션 대상 블록에 대하여 가비지 컬렉션을 수행하여 해당 FTL에서 가비지 컬렉션 실행에 의한 오버헤드를 숨기는 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템을 제공하는 데 있다.
본 발명의 실시예에 따른 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법은 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법에 있어서, 동적 프로파일러를 통해, 실행 중인 어플리케이션의 메소드들의 특성이 DRAM에 적합한지 또는 SSD에 적합한지 확인하는 단계; 상기 동적 프로파일러를 통해, 상기 확인 결과를 근거로 상기 실행 중인 어플리케이션의 메소드들이 사용하는 객체에 대해서 최적인 메모리에 해당하는 상기 DRAM 및 상기 SSD에 각각 저장하는 단계; 상기 동적 프로파일러를 통해, 상기 실행 중인 각각의 메소드들을 프로파일링하면서, 상기 DRAM만을 접근하는 메소드가 실행이 될 때, 상기 SSD의 유휴 시간 정보를 FTL(Flash Translation Layer)에 전달하는 단계; 상기 FTL을 통해, 상기 수신된 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록을 산출하는 단계; 및 상기 FTL을 통해, 상기 산출된 가비지 컬렉션 대상 블록에 대응하는 하나 이상의 블록에 대하여 가비지 컬렉션을 수행하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 가비지 컬렉션 대상 블록을 산출하는 단계는, 상기 수신된 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션을 수행할 수 있는 가비지 컬렉션 대상 블록을 산출할 수 있다.
본 발명과 관련된 일 예로서 상기 SSD의 프리 블록(free block)의 수가 미리 설정된 기준값보다 클 때, 상기 FTL을 통해, 가비지 컬렉션이 필요하지 않은 것으로 판단하고, 메모리 관련 태스크에 따라 동작하는 단계; 상기 SSD의 프리 블록의 수가 미리 설정된 기준값 이하일 때, 상기 FTL을 통해, 가비지 컬렉션이 즉시 필요한 것으로 판단하고, 상기 동적 프로파일러로부터의 상기 SSD의 유휴 시간 정보의 전달과 관계없이 가비지 컬렉션을 수행하는 단계; 및 상기 FTL을 통해, 상기 가비지 컬렉션의 수행 결과를 상기 동적 프로파일러에 전달하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행을 위한 시스템은 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행을 위한 시스템에 있어서, 실행 중인 어플리케이션의 메소드들의 특성이 DRAM에 적합한지 또는 SSD에 적합한지 확인하며, 상기 확인 결과를 근거로 상기 실행 중인 어플리케이션의 메소드들이 사용하는 객체에 대해서 최적인 메모리에 해당하는 상기 DRAM 및 상기 SSD에 각각 저장하며, 상기 실행 중인 각각의 메소드들을 프로파일링하면서, 상기 DRAM만을 접근하는 메소드가 실행될 때 상기 SSD의 유휴 시간 정보를 FTL에 전달하는 동적 프로파일러; 및 상기 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록을 산출하고, 상기 산출된 가비지 컬렉션 대상 블록에 대응하는 하나 이상의 블록에 대하여 가비지 컬렉션을 수행하는 상기 FTL을 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 FTL은, 상기 SSD의 프리 블록의 수가 미리 설정된 기준값 이하일 때, 가비지 컬렉션이 즉시 필요한 것으로 판단하고, 상기 동적 프로파일러로부터의 상기 SSD의 유휴 시간 정보의 전달과 관계없이 가비지 컬렉션을 수행할 수 있다.
본 발명은 DRAM과 플래시 하이브리드 메모리 환경에서 동적 프로파일러가 DRAM과 SSD의 특성에 맞는 객체(예를 들어 코드 및 데이터)를 구별해 각각의 메모리에 저장하고, 상기 동적 프로파일러가 메소드의 특성을 프로파일링하여, 상기 DRAM만을 접근하는 메소드일 때 FTL로 SSD의 유휴 시간 정보를 전송하여, 해당 FTL에서 상기 SSD의 유휴 시간 정보를 근거로 해당 FTL에서 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록을 산출하고, 상기 산출된 가비지 컬렉션 대상 블록에 대하여 가비지 컬렉션을 수행함으로써, 가비지 컬렉션 실행을 숨길 수 있으며 시스템의 성능을 향상시킬 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 시스템의 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법을 나타낸 흐름도이다.
도 3은 본 발명의 실시예에 따른 메소드의 접근을 결정하는 방법을 나타낸 도이다.
도 4는 본 발명의 실시예에 따른 메소드를 프로파일링하여 FTL에서 가비지 컬렉션을 처리하는 방법을 나타낸 도이다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1은 본 발명의 실시예에 따른 시스템(10)의 구성을 나타낸 블록도이다.
도 1에 도시한 바와 같이, 시스템(10)은 프로세서(100) 및 메인 메모리(200)로 구성된다. 도 1에 도시된 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 시스템(10)이 구현될 수도 있다.
상기 프로세서(processor)(100)는 상기 메인 메모리(200)의 전체적인 관리 기능을 수행한다.
또한, 상기 프로세서(100)는 임의의 어플리케이션(application)의 실행을 관리한다.
또한, 상기 프로세서(100)는 상기 어플리케이션의 실행에 따른 상기 메인 메모리(200)로의 데이터의 읽기 기능, 쓰기 기능 등을 제어한다.
상기 동적 프로파일러(Dynamic Profiler)(110) 실행은 상기 임의의 어플리케이션과 같이 상기 프로세서(100)에 의하여 관리된다. 이때, 상기 동적 프로파일러(110)가 복수의 어플리케이션을 동시에 관리할 수도 있다.
또한, 상기 동적 프로파일러(110)는 상기 실행되는 어플리케이션과 관련한 복수의 메소드에 대한 프로파일링(profiling)을 수행한다. 이때, 상기 동적 프로파일러(110)는 복수로 구성할 수 있다.
또한, 상기 동적 프로파일러(110)는 상기 실행 중인 어플리케이션의 메소드들의 특성(또는 객체 특성)이 DRAM(210)에 적합한지 및/또는 SSD(220)에 적합한지 확인한다. 이때, 상기 동적 프로파일러(110)는 응용 프로그램의 개발자 또는 사용자 입력에 의하여 제공되는 상기 메소드들(또는 상기 메소드들에 대한 하나 이상의 객체들)에 대한 특성 정보를 수신하고, 상기 수신된 상기 메소드들에 대한 특성 정보를 근거로 해당 메소드의 하나 이상의 객체들이 상기 DRAM(210)에 적합한지 및/또는 상기 SSD(220)에 적합한지 여부를 확인할 수도 있다.
또한, 상기 동적 프로파일러(110)는 상기 확인 결과를 근거로 상기 실행 중인 어플리케이션의 메소드들의 객체(예를 들어 하나 이상의 코드 및/또는 데이터 등 포함)에 대해서 최적인 메모리에 해당하는 상기 DRAM(210) 및/또는 상기 SSD(220)에 각각 저장한다.
또한, 상기 동적 프로파일러(110)는 상기 실행 중인 각각의 메소드들을 프로파일링하면서, 상기 DRAM(210)만을 접근하는 메소드가 실행되는 경우, 상기 SSD(220)의 유휴 시간 정보(또는 상기 메소드의 실행 시간 관련 정보/상기 실행 중인 메소드의 실행 시간 관련 정보)를 확인한다.
또한, 상기 동적 프로파일러(110)는 상기 확인된 SSD의 유휴 시간 정보(또는 상기 메소드의 실행 시간 관련 정보/상기 실행 중인 메소드의 실행 시간 관련 정보)를 FTL(221)에 전달(또는 전송)한다.
이와 같이, 상기 동적 프로파일러(110)는 어플리케이션이 실행되는 동안 각각의 메소드를 프로파일링하여, 상기 DRAM(210)만을 접근하는 메소드가 실행된다면 상기 SSD(220)는 유휴 시간이 되므로, 상기 FTL(221)에 상기 SSD(220)의 유휴 시간 정보(또는 상기 메소드의 실행 시간 관련 정보)를 전달한다.
또한, 상기 동적 프로파일러(110)는 상기 전달된 상기 SSD(220)의 유휴 시간 정보(또는 상기 메소드의 실행 시간 관련 정보)에 응답하여 상기 FTL(221)로부터 전달되는 상기 가비지 컬렉션의 수행 결과를 수신한다.
또한, 상기 동적 프로파일러(110)는 상기 수신된 상기 가비지 컬렉션의 수행 결과를 저장한다.
상기 도 1에 도시된 바와 같이, 상기 메인 메모리(200)는 DRAM(Dynamic Random Access Memory)(210) 및 SSD(Solid State Disk)(220)로 구성된 하이브리드 메모리 시스템이다.
상기 DRAM(210)은 상기 동적 프로파일러(110)의 제어에 의해, 실행 중인 어플리케이션의 복수의 메소드 중에서 상기 DRAM(210)에 최적인 하나 이상의 메소드의 객체를 저장한다.
상기 SSD(220)는 상기 동적 프로파일러(210)의 제어에 의해, 상기 실행 중인 어플리케이션의 복수의 메소드 중에서 상기 SSD(220)에 최적인 하나 이상의 다른 메소드의 객체를 저장한다.
상기 FTL(Flash Translation Layer: 플래시 변환 계층, 이하 'FTL'이라 함)(221)은 상기 SSD(220) 내부에 구성한다.
또한, 상기 FTL(221)은 상기 SSD(220)에 대한 읽기 기능, 쓰기 기능, 가비지 컬렉션 기능 등의 모든 관리 기능을 수행한다.
또한, 상기 FTL(221)은 상기 동적 프로파일러(110)로부터 전달되는(또는 전송되는) 상기 SSD(220)의 유휴 시간 정보(또는 상기 메소드의 실행 시간 관련 정보)를 수신한다.
또한, 상기 FTL(221)은 상기 수신된 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 최적의 가비지 컬렉션 대상 블록을 산출(또는 계산/확인)한다.
즉, 상기 FTL(221)은 상기 수신된 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션을 수행할 수 있는 블록을 산출한다.
또한, 상기 FTL(221)은 상기 산출된 가비지 컬렉션 대상 블록에 대응하는 하나 이상의 블록에 대하여 가비지 컬렉션을 수행한다.
이와 같이, 상기 FTL(221)은 상기 동적 프로파일러(110)로부터 제공되는 상기 SSD의 유휴 시간 정보를 가비지 컬렉션 수행에 이용함으로써 가비지 컬렉션 실행을 숨길(또는 hiding) 수 있다.
또한, 상기 FTL(221)의 프리 블록(free block)의 수가 미리 설정된 기준값보다 큰 경우, 상기 FTL(221)은 가비지 컬렉션이 필요하지 않은 것으로 판단하고, 메모리 관련 태스크에 따라 동작한다.
또한, 상기 FTL(221)의 프리 블록의 수가 미리 설정된 기준값 이하인 경우, 상기 FTL(221)은 가비지 컬렉션이 필요한 것으로 판단하고, 가비지 컬렉션을 수행한다.
즉, 상기 SSD(221)의 프리 블록의 수가 현저히 적어 가비지 컬렉션이 즉시 필요한 경우(또는 시급한 경우), 상기 FTL(221)은 상기 동적 프로파일러(110)로부터의 상기 SSD의 유휴 시간 정보의 전달과 관계없이 가비지 컬렉션을 수행한다.
또한, 상기 FTL(221)은 상기 가비지 컬렉션의 수행 결과를 상기 동적 프로파일러(110)에 전달한다.
이와 같이, DRAM과 플래시 하이브리드 메모리 환경에서 동적 프로파일러가 DRAM과 SSD의 특성에 맞는 객체(예를 들어 코드 및 데이터)를 구별해 각각의 메모리에 저장하고, 상기 동적 프로파일러가 메소드의 특성을 프로파일링하여, 상기 DRAM만을 접근하는 메소드일 때 FTL로 SSD의 유휴 시간 정보를 전송하여, 해당 FTL에서 상기 SSD의 유휴 시간 정보를 근거로 해당 FTL에서 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록을 산출하고, 상기 산출된 가비지 컬렉션 대상 블록에 대하여 가비지 컬렉션을 수행할 수 있다.
이하에서는, 본 발명에 따른 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법을 도 1 내지 도 5를 참조하여 상세히 설명한다.
도 2는 본 발명의 실시예에 따른 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법을 나타낸 흐름도이다.
먼저, 동적 프로파일러(110)는 실행 중인 어플리케이션의 메소드들의 특성(또는 객체 특성)이 DRAM(210)에 적합한지 및/또는 SSD(220)에 적합한지 확인한다. 이때, 상기 동적 프로파일러(110)는 응용 프로그램의 개발자의 사용자 입력에 따라 제공되는 상기 메소드들(또는 상기 메소드들에 대한 하나 이상의 객체들)에 대한 특성 정보를 수신하고, 상기 수신된 상기 메소드들에 대한 특성 정보를 근거로 해당 메소드의 하나 이상의 객체들이 상기 DRAM(210)에 적합한지 및/또는 상기 SSD(220)에 적합한지 여부를 확인할 수도 있다.
일 예로, 상기 동적 프로파일러(110)는 실행 중인 어플리케이션과 관련한 복수의 메소드 각각에 대해서 해당 복수의 메소드의 하나 이상의 객체들이 상기 DRAM(210)에 적합한지 및/또는 상기 SSD(220)에 적합한지 확인한다(S210).
이후, 상기 동적 프로파일러(110)는 상기 확인 결과를 근거로 상기 실행 중인 어플리케이션의 메소드들의 객체들에 대해서 최적인 메모리에 해당하는 상기 DRAM(210) 및/또는 상기 SSD(220)에 각각 저장한다.
일 예로, 도 3에 도시된 바와 같이, 상기 동적 프로파일러(110)는 상기 확인 결과를 근거로 메소드 0, 메소드 2, 메소드 4, 메소드 n-1 등에서 사용하는 객체들(예를 들어 하나 이상의 코드 및/또는 데이터 등 포함)을 상기 DRAM(210)에 각각 저장하고, 메소드 1, 메소드 3, 메소드 4 등에서 사용하는 객체들을 상기 SSD(220)에 각각 저장한다(S220).
이후, 상기 동적 프로파일러(110)는 상기 실행 중인 각각의 메소드들을 프로파일링하면서, 상기 DRAM(210)만을 접근하는 메소드가 실행되는 경우, 상기 SSD(220)의 유휴 시간 정보(또는 상기 메소드의 실행 시간 관련 정보/상기 실행 중인 메소드의 실행 시간 관련 정보)를 확인한다.
또한, 상기 동적 프로파일러(110)는 상기 확인된 SSD의 유휴 시간 정보(또는 상기 메소드의 실행 시간 관련 정보/상기 실행 중인 메소드의 실행 시간 관련 정보)를 FTL(221)에 전달(또는 전송)한다.
일 예로, 도 4에 도시된 바와 같이, 상기 동적 프로파일러(110)는 상기 실행 중인 복수의 메소드들을 프로파일링하면서, 상기 DRAM(210)만을 접근하는 하나 이상의 메소드(410, 420, 430)가 실행되는 경우, 상기 동적 프로파일러(110)는 SSD의 유휴 시간 정보(예를 들어 1.2 msec)를 확인하고, 상기 확인된 SSD의 유휴 시간 정보(예를 들어 1.2 msec)를 FTL(221)에 전달(또는 전송)한다(S230).
이후, 상기 FTL(221)은 상기 동적 프로파일러(110)로부터 전달되는 상기 SSD의 유휴 시간 정보를 수신한다.
또한, 상기 FTL(221)은 상기 수신된 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 최적의 가비지 컬렉션 대상 블록을 산출(또는 계산/확인)한다.
즉, 상기 FTL(221)은 상기 수신된 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션을 수행할 수 있는 블록을 산출한다.
일 예로, 블록 당 가비지 컬렉션 소요 시간이 0.1 msec일 때, 상기 FTL(221)은 상기 동적 프로파일러(110)로부터 전달되는 상기 SSD의 유휴 시간 정보(예를 들어 1.2 msec)를 근거로 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록인 12개의 블록을 산출한다(S240).
이후, 상기 FTL(221)은 상기 산출된 가비지 컬렉션 대상 블록에 대응하는 하나 이상의 블록에 대하여 가비지 컬렉션을 수행한다.
일 예로, 상기 도 4에 도시된 바와 같이, 상기 FTL(221)은 상기 산출된 최대 가비지 컬렉션 대상 블록인 12개의 블록에 대해서 가비지 컬렉션을 수행(440, 450, 460)한다.
이때, 상기 FTL(221)이 상기 동적 프로파일러(110)로부터 상기 SSD의 유휴 시간 정보를 수신하지 않더라도, 상기 SSD(220)의 프리 블록의 수가 미리 설정된 기준값 이하인 경우(또는 프리 블록의 수가 현저히 적어 가비지 컬렉션이 시급한 경우), 상기 FTL(221)은 상기 동적 프로파일러(110)로부터의 상기 SSD의 유휴 시간 정보의 전달과 관계없이 가비지 컬렉션을 수행할 수 있다(S250).
본 발명의 실시예는 앞서 설명된 바와 같이, 동적 프로파일러를 통해 객체의 특성을 고려하여 객체 저장 장소로 DRAM 또는 SSD를 구별하여 관리하며, 프로파일링된 정보를 이용하여 동적 프로파일러가 DRAM만을 사용하는 메소드가 실행되는 동안에, 즉 SSD의 유휴 시간 정보를 FTL에 전달하고, FTL에서 상기 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션을 수행하여, 가비지 컬렉션 실행을 숨길 수 있으며 시스템의 성능을 향상시킬 수 있다.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명은 동적 프로파일러를 통해 객체의 특성을 고려하여 객체 저장 장소로 DRAM 또는 SSD를 구별하여 관리하며, 프로파일링된 정보를 이용하여 동적 프로파일러가 DRAM만을 사용하는 메소드가 실행되는 동안에, 즉 SSD의 유휴 시간 정보를 FTL에 전달하고, FTL에서 상기 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션을 수행하여, 가비지 컬렉션 실행을 숨기는 것으로, 동적 메모리 장치 분야, 메모리 분야 등에서 광범위하게 이용될 수 있다.
10: 시스템 100: 프로세서
200: 메인 메모리 110: 동적 프로파일러
210: DRAM 220: SSD
221: FTL

Claims (5)

  1. 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법에 있어서,
    동적 프로파일러를 통해, 실행 중인 어플리케이션의 메소드들의 특성이 DRAM에 적합한지 또는 SSD에 적합한지 확인하는 단계;
    상기 동적 프로파일러를 통해, 상기 확인 결과를 근거로 상기 실행 중인 어플리케이션의 메소드들이 사용하는 객체에 대해서 최적인 메모리에 해당하는 상기 DRAM 및 상기 SSD에 각각 저장하는 단계;
    상기 동적 프로파일러를 통해, 상기 실행 중인 각각의 메소드들을 프로파일링하면서, 상기 DRAM만을 접근하는 메소드가 실행이 될 때, 상기 SSD의 유휴 시간 정보를 FTL(Flash Translation Layer)에 전달하는 단계;
    상기 FTL을 통해, 상기 수신된 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록을 산출하는 단계; 및
    상기 FTL을 통해, 상기 산출된 가비지 컬렉션 대상 블록에 대응하는 하나 이상의 블록에 대하여 가비지 컬렉션을 수행하는 단계를 포함하는 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법.
  2. 제 1 항에 있어서,
    상기 가비지 컬렉션 대상 블록을 산출하는 단계는,
    상기 수신된 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션을 수행할 수 있는 가비지 컬렉션 대상 블록을 산출하는 것을 특징으로 하는 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법.
  3. 제 1 항에 있어서,
    상기 SSD의 프리 블록(free block)의 수가 미리 설정된 기준값보다 클 때, 상기 FTL을 통해, 가비지 컬렉션이 필요하지 않은 것으로 판단하고, 메모리 관련 태스크에 따라 동작하는 단계;
    상기 SSD의 프리 블록의 수가 미리 설정된 기준값 이하일 때, 상기 FTL을 통해, 가비지 컬렉션이 즉시 필요한 것으로 판단하고, 상기 동적 프로파일러로부터의 상기 SSD의 유휴 시간 정보의 전달과 관계없이 가비지 컬렉션을 수행하는 단계; 및
    상기 FTL을 통해, 상기 가비지 컬렉션의 수행 결과를 상기 동적 프로파일러에 전달하는 단계를 더 포함하는 것을 특징으로 하는 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법.
  4. 동적 프로파일러를 통한 객체의 특성을 이용한 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행을 위한 시스템에 있어서,
    실행 중인 어플리케이션의 메소드들의 특성이 DRAM에 적합한지 또는 SSD에 적합한지 확인하며, 상기 확인 결과를 근거로 상기 실행 중인 어플리케이션의 메소드들이 사용하는 객체에 대해서 최적인 메모리에 해당하는 상기 DRAM 및 상기 SSD에 각각 저장하며, 상기 실행 중인 각각의 메소드들을 프로파일링하면서, 상기 DRAM만을 접근하는 메소드가 실행될 때 상기 SSD의 유휴 시간 정보를 FTL에 전달하는 동적 프로파일러; 및
    상기 SSD의 유휴 시간 정보를 근거로 가비지 컬렉션 실행에 의한 오버헤드를 숨길 수 있는 가비지 컬렉션 대상 블록을 산출하고, 상기 산출된 가비지 컬렉션 대상 블록에 대응하는 하나 이상의 블록에 대하여 가비지 컬렉션을 수행하는 상기 FTL을 포함하는 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행을 위한 시스템.
  5. 제 4 항에 있어서,
    상기 FTL은,
    상기 SSD의 프리 블록의 수가 미리 설정된 기준값 이하일 때, 가비지 컬렉션이 즉시 필요한 것으로 판단하고, 상기 동적 프로파일러로부터의 상기 SSD의 유휴 시간 정보의 전달과 관계없이 가비지 컬렉션을 수행하는 것을 특징으로 하는 DRAM과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행을 위한 시스템.
KR1020150089485A 2015-06-24 2015-06-24 동적 프로파일러를 통한 객체의 특성을 이용한 dram과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템 KR20170000516A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150089485A KR20170000516A (ko) 2015-06-24 2015-06-24 동적 프로파일러를 통한 객체의 특성을 이용한 dram과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150089485A KR20170000516A (ko) 2015-06-24 2015-06-24 동적 프로파일러를 통한 객체의 특성을 이용한 dram과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템

Publications (1)

Publication Number Publication Date
KR20170000516A true KR20170000516A (ko) 2017-01-03

Family

ID=57797415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150089485A KR20170000516A (ko) 2015-06-24 2015-06-24 동적 프로파일러를 통한 객체의 특성을 이용한 dram과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템

Country Status (1)

Country Link
KR (1) KR20170000516A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188553A (zh) * 2019-05-29 2019-08-30 华南师范大学 基于大数据和动态环境的信息隐藏方法和机器人系统
CN110188559A (zh) * 2019-05-29 2019-08-30 华南师范大学 基于大数据和动态时间的信息隐藏方法和机器人系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101392174B1 (ko) 2011-11-09 2014-05-09 한양대학교 산학협력단 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101392174B1 (ko) 2011-11-09 2014-05-09 한양대학교 산학협력단 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188553A (zh) * 2019-05-29 2019-08-30 华南师范大学 基于大数据和动态环境的信息隐藏方法和机器人系统
CN110188559A (zh) * 2019-05-29 2019-08-30 华南师范大学 基于大数据和动态时间的信息隐藏方法和机器人系统

Similar Documents

Publication Publication Date Title
US10761731B2 (en) Array controller, solid state disk, and method for controlling solid state disk to write data
US10061646B2 (en) Wear leveling method and apparatus and storage medium
KR102094236B1 (ko) 스토리지 디바이스 및 컴퓨터 시스템
US20150378888A1 (en) Controller, flash memory apparatus, and method for writing data into flash memory apparatus
EP3352071B1 (en) Data check method and storage system
CN112988616B (zh) 使用枢纽表从存储器读取顺序数据
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US9892034B2 (en) Semiconductor device and operating method thereof
CN112673357B (zh) 主机驻留式转换层有效性检查
CN107122130B (zh) 一种数据重删方法及装置
US20210240667A1 (en) User device including storage device and trim management method thereof
US9804965B2 (en) Virtual machine host server apparatus and method for operating the same
CN113688062B (zh) 用于存储数据的方法和相关产品
US9626113B2 (en) Management of destage tasks with large number of ranks
CN112905111A (zh) 数据缓存的方法和数据缓存的装置
US10083120B2 (en) Memory system, and address mapping method and access method thereof
KR20180004863A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN105138481A (zh) 存储数据的处理方法、装置和系统
CN115756312A (zh) 数据访问系统、数据访问方法和存储介质
KR101626218B1 (ko) 블록 기반의 페이지 매핑 방법
KR20170000516A (ko) 동적 프로파일러를 통한 객체의 특성을 이용한 dram과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템
CN109086006B (zh) 一种数据读取的方法以及相关装置
KR101549569B1 (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
US10891239B2 (en) Method and system for operating NAND flash physical space to extend memory capacity
CN115934002A (zh) 固态硬盘的访问方法、固态硬盘、存储系统及云服务器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal