KR102076248B1 - 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템 - Google Patents

선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템 Download PDF

Info

Publication number
KR102076248B1
KR102076248B1 KR1020180092308A KR20180092308A KR102076248B1 KR 102076248 B1 KR102076248 B1 KR 102076248B1 KR 1020180092308 A KR1020180092308 A KR 1020180092308A KR 20180092308 A KR20180092308 A KR 20180092308A KR 102076248 B1 KR102076248 B1 KR 102076248B1
Authority
KR
South Korea
Prior art keywords
garbage collection
read operation
memory
executed
requested
Prior art date
Application number
KR1020180092308A
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 KR1020180092308A priority Critical patent/KR102076248B1/ko
Application granted granted Critical
Publication of KR102076248B1 publication Critical patent/KR102076248B1/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
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • G06F12/0276Generational garbage collection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은, 가비지 컬렉션으로 인한 읽기 작업의 대기 시간을 효과적으로 줄이기 위해, 복수의 메모리 다이 중 적어도 하나에 대해 가비지 컬렉션이 요청되는 단계와, 이벤트 큐에서 읽기 작업이 대기 상태인지 확인하는 단계와, 읽기 작업이 대기 상태이면 가비지 컬렉션을 지연 실행하는 단계를 포함하는 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템을 제공한다.

Description

선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템{Selective Delay Garbage Collection Method And Memory System Using The Same}
본 발명은 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템에 관한 것으로, 특히, 가비지 컬렉션으로 인한 읽기 작업의 대기 시간을 효과적으로 줄일 수 있는 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템에 관한 것이다.
텍스트, 음성 및 영상 등의 데이터를 저장하기 위해 저장 장치가 사용되며, 이러한 저장 장치로 반도체 메모리 장치가 사용되고 있다.
반도체 메모리 장치는 크게 휘발성(volatile) 메모리 장치와 비휘발성(nonvolatile) 메모리 장치로 구분된다.
여기서, 휘발성 메모리 장치에 저장된 데이터는 전원 공급이 중단되면 소멸되는 반면에, 비휘발성 메모리 장치에 저장된 데이터는 전원 공급이 중단된 경우에도 소멸되지 않는다.
비휘발성 메모리 장치의 일종으로 플래시 메모리 장치가 있으며, 컴퓨터 시스템이 모바일 영역으로 이동함에 따라 플래시 메모리 장치에 대한 요구가 증가하고 있다.
이러한 플래시 메모리 장치는 낮은 소비 전력, 고 집적도, 작은 크기 및 경량화의 장점을 가진다. 최근 들어서는, 휴대폰, PDA, 디지털 카메라 등과 같은 휴대용 정보 기기의 사용이 급증함에 따라, 하드 디스크 대신 플래시 메모리 장치가 저장 장치로서 널리 사용되고 있다.
플래시 메모리는 하드 디스크와 달리, 데이터 덮어쓰기(overwrite)를 지원하지 않는다. 따라서, 플래시 메모리에 데이터를 프로그램하기 위해서는 소거 동작이 선행되어야 한다.
이와 같은 플래시 메모리의 소거 동작에는 일반적으로 프로그램 동작에 비해 매우 긴 시간이 소요된다. 또한, 플래시 메모리의 소거 단위(블록)는 프로그램 단위(페이지)보다 훨씬 크기 때문에, 소거되지 않아도 되는 부분까지 함께 소거될 수 있다.
또한, 플래시 메모리에 저장된 데이터는 사용자의 명령에 의해 삭제될 수 있는데, 일반적으로 데이터의 삭제는 플래시 메모리의 저장 용량을 증가시키기 위해 수행된다.
그러나, 경우에 따라 삭제된 데이터를 복구해야 하는 경우가 발생한다. 예를 들어, 사용자의 실수 또는 저장 장치의 손상 등으로 데이터가 삭제, 덮어 쓰기 또는 손상된 경우 이들 데이터를 복구할 수 있어야 한다.
한편, 플래시 메모리 영역에서 새로 쓴 데이터는 프리 페이지에 저장되어 유효 데이터로 표시되고 삭제되거나 덮어 쓴 데이터는 무효 데이터로 표시된다. 그러나, 이와 같은 무효 데이터가 증가함에 따라 플래시 메모리 영역에서 쓰기 작업을 위한 여유 공간이 줄어들게 된다.
이를 해결하기 위해, 플래시 메모리 장치는 내부 메커니즘으로서 가비지 컬렉션(Garbage Collection)을 수행한다.
이러한 가비지 컬렉션은 무효 데이터가 저장된 메모리 영역을 쓰기 작업을 위한 공간으로 재순환시킨다.
도 1은 일반적인 가비지 컬렉션을 설명하기 위한 도면이다.
도 1에 도시한 바와 같이, 메모리 영역은 복수의 블록(Block)으로 이루어져 있으며, 이러한 복수의 블록(Block)은 복수의 페이지(Page)를 포함한다. 그리고, 유효 데이터(Valid Data) 및 무효 데이터(Invalid data)는 각 블록(Block)에 포함된 각 페이지(Page)에 저장된다.
여기서, 유효 데이터(Valid Data)가 저장된 페이지(Page)를 유효 페이지(Valid Page)라고 지칭하고, 무효 데이터(Invalid data)가 저장된 페이지(Page)를 무효 페이지(Invalid Data)라고 지칭하고, 데이터가 저장되지 않은 페이지(Page)를 프리 페이지(Free Page)라고 지칭하겠다.
일반적인 가비지 컬렉션은, 먼저, 복수의 블록(Block) 중 소거 대상인 희생 블록(Victim Block)을 선택한다. 여기서, 무효 페이지(Invalid Page)가 가장 많은 블록(Block 2)을 희생 블록(Victim Block)으로 선택할 수 있다.
다음, 희생 블록(Victim Block)의 유효 페이지(Valid Page)에 저장된 유효 데이터(Valid Data)를 프리 페이지(Free Page)만으로 이루어진 다른 블록(Block 3) 즉, 데이터가 저장되지 않은 프리 블록(Free Block)으로 이전시킨다.
다음, 희생 블록(Victim Block)을 소거하여 메모리 영역에서 쓰기 작업을 위한 여유 공간을 확보한다.
이와 같은 가비지 컬렉션은 유효 데이터(Valid Data)를 이전하는 작업으로 인해 메모리의 성능 저하를 초래한다. 따라서, 무효 페이지(Invalid Page)가 가장 많은 블록(Block)을 희생 블록(Victim Block)으로 선택하여 이를 소거함으로써, 유효 데이터(Valid Data)의 이전 작업을 최소화한다.
이러한 가비지 컬렉션은 플래시 메모리 장치에 있어서 필수 불가결한 메커니즘이지만 희생 블록에 포함된 유효 데이터(Valid Data) 이전 및 희생 블록(Victim Block) 소거 등 추가적인 작업으로 인해 높은 오버 헤드를 발생시키며, 특히, 호스트 시스템으로부터 요청 받은 읽기 작업이 가비지 컬렉션과 충돌하는 경우 읽기 작업의 대기 시간을 증가시키는 주요한 요인이 되고 있다.
공개특허공보 제10-2016-0075229호
본 발명은 이벤트 큐를 확인하여 읽기 작업이 대기 상태이면, 가비지 컬렉션을 지연 실행함으로써, 읽기 작업의 대기 시간을 효과적으로 줄일 수 있고, 사용자에게 메모리 장치의 성능 저하감을 유발하는 문제점을 해소할 있는 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발은 가비지 컬렉션의 긴급 실행 조건에 해당하는 경우 예외적으로 읽기 작업 보다 가비지 컬렉션을 우선적으로 실행함으로써, 쓰기 작업을 위한 여유 공간을 확보할 수 없는 긴급한 상황을 회피할 수 있는 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템을 제공하는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이러한 과제를 해결하기 위해, 복수의 메모리 다이 중 적어도 하나에 대해 가비지 컬렉션이 요청되는 단계와, 이벤트 큐에서 읽기 작업이 대기 상태인지 확인하는 단계와, 읽기 작업이 대기 상태이면 가비지 컬렉션을 지연 실행하는 단계를 포함하는 선택 지연 가비지 컬렉션 방법을 제공한다.
여기서, 가비지 컬렉션을 지연 실행하는 단계는 읽기 작업을 실행하는 단계와, 읽기 작업이 종료되면 상기 가비지 컬렉션을 실행하는 단계를 포함할 수 있다.
또한, 가비지 컬렉션의 긴급 실행 조건에 해당하는지 판단하는 단계와, 긴급 실행 조건에 해당되면 읽기 작업이 대기 상태인지 여부와 상관없이 가비지 컬렉션을 실행하는 단계를 더 포함할 수 있다.
또한, 긴급 실행 조건에 해당하는지 판단하는 단계는 가비지 컬렉션이 요청된 메모리 다이에 하나의 프리 블록만 존재하면 긴급 실행 조건에 해당하는 것으로 판단하는 단계일 수 있다.
또한, 이벤트 큐에서 읽기 작업이 대기 상태인지 확인하는 단계는 이벤트 큐에 리스트된 복수의 작업들을 분석하여 읽기 작업이 언제 실행될지 예측하는 단계를 포함할 수 있다.
또한, 읽기 작업이 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측하는 단계를 더 포함할 수 있다.
또한, 가비지 컬렉션을 지연 실행하는 단계는 읽기 작업 실행이 예측된 메모리 다이에 대해 가비지 컬렉션이 요청되면 가비지 컬렉션을 지연 실행하는 단계일 수 있다.
또한, 읽기 작업이 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측하는 단계는 플래시 변환 계층에 저장된 주소 맵핑 테이블을 이용하여 읽기 작업이 실행될 메모리 다이의 논리 주소를 물리 주소로 변환하여 읽기 작업이 실행될 메모리 다이를 예측하는 단계일 수 있다.
또한, 복수의 블록으로 이루어진 복수의 메모리 다이를 포함하는 메모리 장치와, 호스트 시스템으로부터 읽기 작업을 요청 받으며, 복수의 메모리 다이 중 적어도 하나에 대해 가비지 컬렉션이 요청되면, 이벤트 큐에서 읽기 작업이 대기 상태인지 확인하고, 읽기 작업이 대기 상태이면 가비지 컬렉션을 지연 실행하는 메모리 컨트롤러를 포함하는 메모리 시스템을 제공한다.
여기서, 메모리 컨트롤러는 읽기 작업이 대기 상태이면, 가비지 컬렉션 실행 전에 읽기 작업을 실행하고, 읽기 작업이 종료되면 가비지 컬렉션을 실행할 수 있다.
또한, 메모리 컨트롤러는 가비지 컬렉션의 긴급 실행 조건에 해당하는지 판단하고, 긴급 실행 조건에 해당되면 읽기 작업이 대기 중인지 여부와 상관없이 가비지 컬렉션을 실행할 수 있다.
또한, 메모리 컨트롤러는 가비지 컬렉션이 요청된 메모리 다이에 하나의 프리 블록만 존재하면 긴급 실행 조건에 해당하는 것으로 판단할 수 있다.
또한, 메모리 컨트롤러는 이벤트 큐에 리스트된 복수의 작업들을 분석하여 읽기 작업이 언제 실행될지 예측할 수 있다.
또한, 메모리 컨트롤러는 읽기 작업이 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측할 수 있다.
또한, 메모리 컨트롤러는 읽기 작업 실행이 예측된 메모리 다이에 대해 가비지 컬렉션이 요청되면 가비지 컬렉션을 지연 실행할 수 있다.
또한, 메모리 컨트롤러는 플래시 변환 계층에 저장된 주소 맵핑 테이블을 이용하여 읽기 작업이 실행될 메모리 다이의 논리 주소를 물리 주소로 변환하여 읽기 작업이 실행될 상기 메모리 다이를 예측할 수 있다.
본 발명에 따르면, 이벤트 큐를 확인하여 읽기 작업이 대기 상태이면, 가비지 컬렉션을 지연 실행함으로써, 읽기 작업의 대기 시간을 효과적으로 줄일 수 있고, 사용자에게 메모리 장치의 성능 저하감을 유발하는 문제점을 해소할 있는 효과가 있다.
또한, 본 발명에 따르면, 가비지 컬렉션의 긴급 실행 조건에 해당하는 경우 예외적으로 읽기 작업 보다 가비지 컬렉션을 우선적으로 실행함으로써, 쓰기 작업을 위한 여유 공간을 확보할 수 없는 긴급한 상황을 회피할 수 있는 효과가 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당해 기술분야에 있어서의 통상의 지식을 가진 자가 명확하게 이해할 수 있을 것이다.
도 1은 일반적인 가비지 컬렉션을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 도시한 블록도이다.
도 3은 도 2의 메모리 컨트롤러를 구체적으로 도시한 블록도이다.
도 4 및 도 5는 본 발명의 실시예에 따른 메모리 시스템의 가비지 컬렉션을 설명하기 위한 도면이다.
도 6은 종래의 메모리 시스템에 따른 가비지 컬렉션의 실행 흐름도 및 본 발명의 실시예에 따른 메모리 시스템에서 선택 지연 가비지 컬렉션의 실행 흐름도이다.
도 7은 본 발명의 실시예에 따른 선택 지연 가비지 컬렉션 방법의 흐름도이다.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원 시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 2는 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 도시한 블록도이고, 도 3은 도 2의 메모리 컨트롤러를 구체적으로 도시한 블록도이고, 도 4 및 도 5는 본 발명의 실시예에 따른 메모리 시스템의 가비지 컬렉션을 설명하기 위한 도면이다.
도 2에 도시한 바와 같이, 본 발명의 실시예에 따른 메모리 시스템(100)은 메모리 장치(110), 호스트 시스템(120) 및 메모리 컨트롤러(130)를 포함할 수 있다.
그리고, 도 3에 도시한 바와 같이, 메모리 컨트롤러(130)는 이벤트 큐(Event Queue)(131), 플래시 변환 계층(Flash Translation Layer; FTL)(132) 및 가비지 컬렉터(Garbage Collector)(133)를 포함할 수 있다.
여기서, 이벤트 큐(131)는, 선입선출(First-In First-Out; FIFO) 방식으로 데이터를 처리하는 일종의 버퍼(Buffer)로서, 호스트 시스템(120)으로부터 요청 받은 쓰기 작업 및 읽기 작업의 대기 상태를 순차적으로 리스트화하여 그 순서에 따라 작업을 실행시킨다.
그리고, 플래시 변환 계층(132)은, 처리될 데이터의 논리 주소(Logical Address)를 입력 받고, 주소 맵핑 테이블(Mapping Table)을 참조하여 논리 주소를 물리 주소(Physical Address)로 변환한다.
여기서, 주소 맵핑 테이블은 복수의 맵핑 데이터를 포함하며, 각각의 맵핑 데이터는 논리 주소와 물리 주소의 대응 관계를 정의하고 있다. 그리고, 물리 주소는 메모리 장치(110)로 제공된다.
그리고, 가비지 컬렉터(133)는 가비지 컬렉션(Garbage Collection)을 실행하는 구성으로서 이에 대해서는 후술하기로 한다.
도 4 및 도 5를 참조하면, 메모리 장치(110)는, 복수의 메모리 패키지(Package)로 구성되며, 복수의 메모리 패키지는 각각 독립된 채널(Channel)을 통해 메모리 컨트롤러(130)와 연결되어 제어 신호 및 데이터를 입력 받을 수 있다.
한편, 메모리 컨트롤러(130)에 의해 수행되는 읽기 작업, 쓰기 작업 및 가비지 컬렉션 등은 하나의 채널을 동시에 점유할 수 없다. 예를 들어, 어느 하나의 채널을 통해 가비지 컬렉션을 실행 중 이 채널을 통해 읽기 작업을 실행할 수 없으며, 반대로 어느 하나의 채널을 통해 읽기 작업을 실행 중 이 채널을 통해 가비지 컬렉션을 실행할 수 없다.
복수의 패키지는 복수의 블록(Block)으로 이루어진 복수의 메모리 다이(Die)를 포함할 수 있고, 각 블록은 복수의 페이지(Page)로 이루어질 수 있다.
여기서, 각 페이지(Page)에는 데이터가 저장되는데, 유효 데이터(Valid Data)가 저장된 페이지(Page)를 유효 페이지(Valid Page)라고 지칭하고, 무효 데이터(Invalid data)가 저장된 페이지(Page)를 무효 페이지(Invalid Data)라고 지칭하고, 데이터가 저장되지 않은 페이지(Page)를 프리 페이지(Free Page)라고 지칭하겠다.
이하, 본 발명의 실시예에 따른 가비지 컬렉터(133)가 가비지 컬렉션(Garbage Collection)을 실행하는 방법을 설명하겠다.
도 5를 참조하면, 가비지 컬렉션은, 먼저, 특정 메모리 다이(Die)에 포함된 복수의 블록(Block) 중 소거 대상인 희생 블록(Victim Block)을 선택한다. 여기서, 무효 페이지가 가장 많은 블록을 희생 블록으로 선택할 수 있다.
한편, 이와 같은 가비지 컬렉션이 실행되는 최소 단위는 메모리 다이로서, 메모리 다이 마다 가비지 컬렉션이 실행될 수 있다.
다음, 희생 블록의 유효 페이지에 저장된 유효 데이터를 프리 페이지만으로 이루어진 다른 블록 즉, 데이터가 저장되지 않은 프리 블록(Free Block)으로 이전시킨다.
다음, 희생 블록을 소거하여 메모리 영역에서 쓰기 작업을 위한 여유 공간을 확보한다.
이와 같은 가비지 컬렉션은 유효 데이터를 이전하는 작업으로 인해 메모리의 성능 저하를 초래한다. 따라서, 무효 페이지가 가장 많은 블록을 희생 블록으로 선택하여 이를 소거함으로써, 유효 데이터의 이전 작업을 최소화한다.
메모리 컨트롤러(130)는 호스트 시스템(120)으로부터 쓰기 작업 또는 읽기 작업을 요청 받을 수 있다.
한편, 쓰기 작업은 아웃 오브 플레이스(out-of-place) 업데이트 메커니즘으로 인해 복수의 채널을 통해 복수의 메모리 다이에 데이터를 저장할 수 있다. 따라서, 쓰기 작업은 가비지 컬렉션이 실행되고 있는 채널과 다른 채널을 통해 실행됨으로써, 가비지 컬렉션과의 충돌을 회피할 수 있다. 그리고, 라이트 백(Write- Back)정책으로 인해 쓰기 작업의 소요 시간은 사용자에게 숨겨지기 때문에, 쓰기 작업의 대기 시간이 길어지더라도 사용자는 메모리 장치의 성능 저하감을 느끼지 못하게 된다.
그러나, 읽기 작업은 특정 채널을 통해 특정 메모리 다이에 저장된 데이터를 읽어와야 하기 때문에, 읽기 작업이 가비지 컬렉션에 의해 점유된 채널에 접근하려고 시도할 경우 가비지 컬렉션과의 충돌이 불가피하다.
즉, 특정 메모리 다이에서 가비지 컬렉션이 실행 중인 경우 읽기 작업은 그 메모리 다이에서 가비지 컬렉션이 종료된 이후에야 비로소 실행될 수 있고, 이에 따라, 읽기 작업의 대기 시간이 길어지게 되고, 사용자에게 메모리 장치의 성능 저하감을 유발시키게 된다.
이에, 본 발명의 실시예에 따른 메모리 시스템(100)은 특정 메모리 다이에서 읽기 작업이 예측되는 경우 그 메모리 다이에서의 가비지 컬렉션을 지연 실행함으로써, 가지비 컬렉션의 기본 기능은 유지함과 동시에 전술한 읽기 작업 대기 시간을 효과적으로 줄일 수 있다.
이를 위해, 메모리 컨트롤러(130)는, 복수의 메모리 다이 중 적어도 하나에 대해 가비지 컬렉션이 요청되면, 이벤트 큐(131)에서 읽기 작업이 대기 상태인지 확인하고, 읽기 작업이 대기 상태이면 가비지 컬렉션을 지연 실행할 수 있다.
즉, 메모리 컨트롤러(130)는 이벤트 큐(131)를 확인하여 읽기 작업이 대기 상태이면, 가비지 컬렉션 실행 전에 읽기 작업을 실행하고, 읽기 작업이 종료되면 가비지 컬렉션을 실행할 수 있다.
이를 통해, 읽기 작업의 대기 시간을 효과적으로 줄일 수 있고, 사용자에게 메모리 장치(110)의 성능 저하감을 유발하는 문제점을 해소할 수 있다.
물론, 이벤트 큐(131)를 확인하여 읽기 작업의 대기 상태가 존재하지 않으면 가비지 컬렉션을 지연하지 않고 바로 실행할 수 있음은 당연하다.
한편, 메모리 컨트롤러(130)는 가비지 컬렉션의 긴급 실행 조건에 해당하는지 판단하고, 긴급 실행 조건에 해당되면 읽기 작업이 대기 상태인지 여부와 상관없이 가비지 컬렉션을 실행할 수 있다.
여기서, 메모리 컨트롤러(130)는 가비지 컬렉션이 요청된 메모리 다이에 하나의 프리 블록만 존재하면 긴급 실행 조건에 해당하는 것으로 판단할 수 있다.
이와 같이, 가비지 컬렉션의 긴급 실행 조건에 해당하는 경우 예외적으로 읽기 작업 보다 가비지 컬렉션을 우선적으로 실행함으로써, 쓰기 작업을 위한 여유 공간을 확보할 수 없는 긴급한 상황을 회피할 수 있다.
이는 사용자에게 메모리 장치(110)의 성능 저하감을 유발시키더라도 메모리 장치(110)의 쓰기 작업을 위한 여유 공간 확보라는 가비지 컬렉션의 기본 기능을 유지시키기 위함이다.
한편, 가비지 컬렉션을 선택적으로 지연시키기 위해서는 읽기 작업의 실행될 시점 및 실행될 메모리 다이를 각각 예측해야 한다. 이는, 명백히 읽기 작업이, 가비지 컬렉션 종료 후 실행 예측되거나, 가비지 컬렉션이 실행되는 메모리 다이와 다른 메모리 다이에서 실행 예측되는 경우에는 가비지 컬렉션을 지연 실행할 필요가 없기 때문이다.
이를 위해, 메모리 컨트롤러(130)는 이벤트 큐(131)에 리스트된 복수의 작업들을 분석하여 읽기 작업이 언제 실행될지 예측할 수 있다.
또한, 메모리 컨트롤러(130)는 읽기 작업이 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측할 수 있다.
구체적으로, 메모리 컨트롤러(130)는 플래시 변환 계층(133)에 저장된 주소 맵핑 테이블을 이용하여 읽기 작업이 실행될 메모리 다이의 논리 주소를 물리 주소로 변환하여 읽기 작업이 실행될 메모리 다이를 예측할 수 있다.
이를 통해, 메모리 컨트롤러(130)는, 가비지 컬렉션이 종료되기 전에 읽기 작업 실행이 예측되고, 읽기 작업 실행이 예측된 메모리 다이에 대해 가비지 컬렉션이 요청되면 가비지 컬렉션을 지연 실행할 수 있다.
도 6은 종래의 메모리 시스템에 따른 가비지 컬렉션의 실행 흐름도 및 본 발명의 실시예에 따른 메모리 시스템에서 선택 지연 가비지 컬렉션의 실행 흐름도이다.
먼저, 도 6(a)는 종래의 메모리 시스템에 따른 가비지 컬렉션의 실행 흐름도이다.
도 5 및 도 6(a)를 참조하면, 메모리 다이(Die1)의 희생 블록(Victim block)에 포함된 두 개의 유효 데이터를 프리 블록(free block)에 이전하고 희생 블록을 소거하는 가비지 컬렉션(gc0)이 t0 시간에 요청 및 실행된다. 그리고, 읽기 작업(rd0)이 t0 시간 이전에 이벤트 큐에서 대기 상태로 있다가 가비지 컬렉션(gc0)이 실행된 이후 t1 시간에 이벤트 큐에서 제거되어 메모리 다이(Die1)에 접근하려고 한다.
그러나, 종래의 메모리 시스템은 이 경우 가비지 컬렉션(gc0)을 중단하고 읽기 작업(rd0)을 실행하는 것이 아니라, 그 요청 순서에 따라 가비지 컬렉션(gc0)이 종료된 이후 비로소 읽기 작업(rd0)을 실행한다.
즉, 읽기 작업(rd0)은 가비지 컬렉션(gc0)의 각각 두 번의 읽기(read) 작업 및 쓰기(write) 작업과 한번의 소거(erase) 작업 이후 실행될 수 있다.
따라서, 읽기 작업(rd0)은 가비지 컬렉션(gc0)의 종료 시점인 t2 시간에 실행되고, 읽기 작업(rd0)은 (t2-t1) 시간만큼 지연되어 실행된다. 그리고, 읽기 작업(rd0)의 종료 시점을 t3 시간이라고 하면 읽기 작업(rd0)의 총 소요 시간은 (t3-t1) 시간이 된다.
다음, 도 6(b)는 본 발명의 실시예에 따른 메모리 시스템에서 선택 지연 가비지 컬렉션의 실행 흐름도이다.
도 5 및 도 6(b)를 참조하면, 메모리 다이(Die1)의 희생 블록(Victim block)에 포함된 두 개의 유효 데이터를 프리 블록(free block)에 이전하고 희생 블록을 소거하는 가비지 컬렉션(gc0)이 t0 시간에 요청된다.
이 경우, 메모리 컨트롤러(130)는, 이벤트 큐(131)에 리스트된 복수의 작업들을 분석하여 읽기 작업(rd0)이 언제 실행될지 예측하고, 플래시 변환 계층(133)을 이용하여 읽기 작업(rd0)이 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측한다.
예를 들어, 도 5 및 도 6(b)에서와 같이 읽기 작업(rd0)이 가비지 컬렉션(gc0)의 예상 종료 시간 이전인 t1 시간 실행될 것으로 예측되고, 현재 가비지 컬렉션(gc0)이 요청된 메모리 다이(Die1)에서 실행될 것으로 예측되면, 요청된 가비지 컬렉션(gc0)의 실행을 보류하고 실행 예측된 읽기 작업(rd0)을 우선적으로 실행한다.
따라서, 읽기 작업(rd0)은 예측 실행 시점인 t1 시간에 대기 시간 없이 바로 실행되고, 가비지 컬렉션(gc0)은 읽기 작업(rd0)이 종료된 이후에 실행된다. 즉, 가비지 컬렉션(gc0)은 읽기 작업(rd0)의 종료 시점인 t4 시간에 (t0-t4) 시간만큼 지연되어 실행되어 t5시간에 종료된다. 그리고, 가비지 컬렉션(gc0)은 각각 두 번의 읽기(read) 작업 및 쓰기(write) 작업과 한번의 소거(erase) 작업이 실행되며, 총 소요 시간은 (t5-t4) 시간이 된다.
그리고, 읽기 작업(rd0)은 대기 시간 없이 바로 실행되어 총 소요 시간은 (t4-t1) 시간이 된다.
이와 같이, 가비지 컬렉션 보다 읽기 작업을 우선적으로 실행함으로써, 가비지 컬렉션의 기본 기능은 유지하는 동시에 읽기 작업의 대기 시간을 효과적으로 줄일 수 있고, 사용자에게 메모리 장치(110)의 성능 저하감을 유발하는 문제점을 해소할 수 있다.
한편, 읽기 작업(rd0)이 가비지 컬렉션 종료 이전에 실행되는지 예측하기 위해서는 가비지 컬렉션(gc0)의 예상 종료 시간을 예측하여야 한다.
여기서, 가비지 컬렉션(gc0)의 예상 종료 시간은 희생 블록(Victim block)에 포함되어 프리 블록으로 이전될 유효 데이터의 수에 따라 증가된다. 이와 같이 메모리 컨트롤러(130)는 가비지 컬렉션(gc0)의 예상 종료 시간을 예측하여 읽기 작업(rd0)이 가비지 컬렉션 종료 이전에 실행되는지 예측할 수 있다.
도 7은 본 발명의 실시예에 따른 선택 지연 가비지 컬렉션 방법의 흐름도이다.
이하, 도 1 내지 도 7을 참조하여 본 발명의 실시예에 따른 선택 지연 가비지 컬렉션 방법을 설명하되, 전술한 본 발명의 실시예에 따른 메모리 시스템과 동일한 내용에 대해서는 생략하겠다.
도 7에 도시한 바와 같이, 본 발명의 실시예에 따른 선택 지연 가비지 컬렉션 방법은, 복수의 메모리 다이 중 적어도 하나에 대해 가비지 컬렉션이 요청되는 단계(S10)와, 이벤트 큐(131)에서 읽기 작업이 대기 상태인지 확인하는 단계(S20)와, 읽기 작업이 대기 상태이면 가비지 컬렉션을 지연 실행하는 단계(S40)를 포함할 수 있다.
여기서, 가비지 컬렉션을 지연 실행하는 단계(S40)는, 가비지 컬렉션 실행 전에 읽기 작업을 실행하는 단계와, 읽기 작업이 종료되면 가비지 컬렉션을 실행하는 단계를 포함할 수 있다.
이를 통해, 가비지 컬렉션의 기본 기능은 유지함과 동시에 읽기 작업의 대기 시간을 효과적으로 줄일 수 있고, 사용자에게 메모리 장치(110)의 성능 저하감을 유발하는 문제점을 해소할 수 있다.
물론, 이벤트 큐(131)를 확인하여 읽기 작업의 대기 상태가 존재하지 않으면 가비지 컬렉션을 지연하지 않고 바로 실행(S50)할 수 있음은 당연하다.
또한, 본 발명의 실시예에 따른 선택 지연 가비지 컬렉션 방법은, 가비지 컬렉션의 긴급 실행 조건에 해당하는지 판단하는 단계(S30)와, 긴급 실행 조건에 해당되면 읽기 작업이 대기 중인지 여부와 상관없이 가비지 컬렉션을 실행하는 단계(S50)를 더 포함할 수 있다.
여기서, 긴급 실행 조건에 해당하는지 판단하는 단계(S30)는, 가비지 컬렉션이 요청된 메모리 다이에 하나의 프리 블록만 존재하면 긴급 실행 조건에 해당하는 것으로 판단하는 단계이다.
이와 같이, 가비지 컬렉션의 긴급 실행 조건에 해당하는 경우 예외적으로 읽기 작업 보다 가비지 컬렉션을 우선적으로 실행함으로써, 쓰기 작업을 위한 여유 공간을 확보할 수 없는 긴급한 상황을 회피할 수 있다.
이는 사용자에게 메모리 장치(110)의 성능 저하감을 유발시키더라도 메모리 장치(110)의 쓰기 작업을 위한 여유 공간 확보라는 가비지 컬렉션의 기본 기능을 유지시키기 위함이다.
그리고, 이벤트 큐(131)에서 읽기 작업이 대기 상태인지 확인하는 단계(S20)는, 이벤트 큐(131)에 리스트된 복수의 작업들을 분석하여 읽기 작업이 언제 실행될지 예측하는 단계를 포함할 수 있다.
또한, 본 발명의 실시예에 따른 선택 지연 가비지 컬렉션 방법은, 읽기 작업이 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측하는 단계를 더 포함할 수 있다.
가비지 컬렉션을 지연 실행하는 단계(S40)는 읽기 작업 실행이 예측된 메모리 다이에 대해 가비지 컬렉션이 요청되면 가비지 컬렉션을 지연 실행하는 단계이다.
읽기 작업이 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측하는 단계는, 플래시 변환 계층(132)에 저장된 주소 맵핑 테이블을 이용하여 읽기 작업이 실행될 메모리 다이의 논리 주소를 물리 주소로 변환하여 읽기 작업이 실행될 메모리 다이를 예측하는 단계이다.
이와 같이, 가비지 컬렉션 보다 읽기 작업을 우선적으로 실행함으로써, 가비지 컬렉션의 기본 기능을 유지함과 동시에 읽기 작업의 대기 시간을 효과적으로 줄일 수 있고, 사용자에게 메모리 장치(110)의 성능 저하감을 유발하는 문제점을 해소할 수 있다.
이상의 상세한 설명은 본 발명을 예시하는 것이다. 또한 전술한 내용은 본 발명의 바람직한 실시 형태를 나타내고 설명하는 것에 불과하며, 본 발명은 다양한 다른 조합, 변경 및 환경에서 사용할 수 있다. 즉, 본 명세서에 개시된 발명의 개념의 범위, 저술한 개시 내용과 균등한 범위 및/또는 당업계의 기술 또는 지식의 범위 내에서 변경 또는 수정이 가능하다. 전술한 실시예들은 본 발명을 실시하는데 있어 최선의 상태를 설명하기 위한 것이며, 본 발명과 같은 다른 발명을 이용하는데 당업계에 알려진 다른 상태로의 실시, 그리고 발명의 구체적인 적용 분야 및 용도에서 요구되는 다양한 변경도 가능하다. 따라서 이상의 발명의 상세한 설명은 개시된 실시 상태로 본 발명을 제한하려는 의도가 아니다. 또한 첨부된 청구범위는 다른 실시 상태도 포함하는 것으로 해석되어야 한다.
100: 메모리 시스템
110: 메모리 장치
120: 호스트 시스템
130: 메모리 컨트롤러
131: 이벤트 큐
132: 플래시 변환 계층
133: 가비지 컬렉터

Claims (16)

  1. 복수의 메모리 다이 중 적어도 하나에 대해 가비지 컬렉션이 요청되는 단계;
    이벤트 큐에서 읽기 작업이 대기 상태인지 판단하는 단계; 및
    상기 읽기 작업이 대기 상태이면 상기 가비지 컬렉션을 지연 실행하는 단계를 포함하고,
    상기 이벤트 큐에서 읽기 작업이 대기 상태인지 판단하는 단계는
    상기 가비지 컬렉션의 예상 종료 시간을 예측하고, 상기 이벤트 큐에 리스트된 복수의 작업들을 분석하여 상기 읽기 작업이 상기 가비지 컬렉션의 종료 이전에 실행될 것으로 예측되면 상기 대기 상태로 판단하는 단계인
    선택 지연 가비지 컬렉션 방법.
  2. 제 1 항에 있어서,
    상기 가비지 컬렉션을 지연 실행하는 단계는
    상기 읽기 작업을 실행하는 단계; 및
    상기 읽기 작업이 종료되면 상기 가비지 컬렉션을 실행하는 단계
    를 포함하는 선택 지연 가비지 컬렉션 방법.
  3. 제 1 항에 있어서,
    상기 가비지 컬렉션의 긴급 실행 조건에 해당하는지 판단하는 단계; 및
    상기 긴급 실행 조건에 해당되면 상기 읽기 작업이 대기 상태인지 여부와 상관없이 상기 가비지 컬렉션을 실행하는 단계
    를 더 포함하는 선택 지연 가비지 컬렉션 방법.
  4. 제 3 항에 있어서,
    상기 긴급 실행 조건에 해당하는지 판단하는 단계는
    상기 가비지 컬렉션이 요청된 메모리 다이에 하나의 프리 블록만 존재하면 긴급 실행 조건에 해당하는 것으로 판단하는 단계인
    선택 지연 가비지 컬렉션 방법.
  5. 삭제
  6. 제 1 항에 있어서,
    상기 읽기 작업이 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측하는 단계
    를 더 포함하는 선택 지연 가비지 컬렉션 방법.
  7. 제 6 항에 있어서,
    상기 가비지 컬렉션을 지연 실행하는 단계는
    상기 읽기 작업 실행이 예측된 상기 메모리 다이에 대해 상기 가비지 컬렉션이 요청되면 상기 가비지 컬렉션을 지연 실행하는 단계인
    선택 지연 가비지 컬렉션 방법.
  8. 제 6 항에 있어서,
    상기 읽기 작업이 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측하는 단계는
    플래시 변환 계층에 저장된 주소 맵핑 테이블을 이용하여 상기 읽기 작업이 실행될 메모리 다이의 논리 주소를 물리 주소로 변환하여 상기 읽기 작업이 실행될 메모리 다이를 예측하는 단계인
    선택 지연 가비지 컬렉션 방법.
  9. 복수의 블록으로 이루어진 복수의 메모리 다이를 포함하는 메모리 장치; 및
    호스트 시스템으로부터 읽기 작업을 요청 받으며, 상기 복수의 메모리 다이 중 적어도 하나에 대해 가비지 컬렉션이 요청되면, 이벤트 큐에서 읽기 작업이 대기 상태인지 판단하고, 상기 읽기 작업이 대기 상태이면 상기 가비지 컬렉션을 지연 실행하는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는
    상기 가비지 컬렉션의 예상 종료 시간을 예측하고, 상기 이벤트 큐에 리스트된 복수의 작업들을 분석하여 상기 읽기 작업이 상기 가비지 컬렉션의 종료 이전에 실행될 것으로 예측되면 상기 대기 상태로 판단하는
    메모리 시스템.
  10. 제 9 항에 있어서,
    상기 메모리 컨트롤러는
    상기 읽기 작업이 대기 상태이면, 상기 가비지 컬렉션 실행 전에 상기 읽기 작업을 실행하고, 상기 읽기 작업이 종료되면 상기 가비지 컬렉션을 실행하는
    메모리 시스템.
  11. 제 9 항에 있어서,
    상기 메모리 컨트롤러는
    상기 가비지 컬렉션의 긴급 실행 조건에 해당하는지 판단하고,
    상기 긴급 실행 조건에 해당되면 상기 읽기 작업이 대기 중인지 여부와 상관없이 상기 가비지 컬렉션을 실행하는
    메모리 시스템.
  12. 제 11 항에 있어서,
    상기 메모리 컨트롤러는
    상기 가비지 컬렉션이 요청된 상기 메모리 다이에 하나의 프리 블록만 존재하면 긴급 실행 조건에 해당하는 것으로 판단하는
    메모리 시스템.
  13. 삭제
  14. 제 9 항에 있어서,
    상기 메모리 컨트롤러는
    상기 읽기 작업이 상기 복수의 메모리 다이 중 어느 메모리 다이에서 실행될지 예측하는
    메모리 시스템.
  15. 제 14 항에 있어서,
    상기 메모리 컨트롤러는
    상기 읽기 작업 실행이 예측된 상기 메모리 다이에 대해 상기 가비지 컬렉션이 요청되면 상기 가비지 컬렉션을 지연 실행하는
    메모리 시스템.
  16. 제 14 항에 있어서,
    상기 메모리 컨트롤러는
    플래시 변환 계층에 저장된 주소 맵핑 테이블을 이용하여 상기 읽기 작업이 실행될 상기 메모리 다이의 논리 주소를 물리 주소로 변환하여 상기 읽기 작업이 실행될 상기 메모리 다이를 예측하는
    메모리 시스템.




KR1020180092308A 2018-08-08 2018-08-08 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템 KR102076248B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180092308A KR102076248B1 (ko) 2018-08-08 2018-08-08 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180092308A KR102076248B1 (ko) 2018-08-08 2018-08-08 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템

Publications (1)

Publication Number Publication Date
KR102076248B1 true KR102076248B1 (ko) 2020-02-11

Family

ID=69568491

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180092308A KR102076248B1 (ko) 2018-08-08 2018-08-08 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템

Country Status (1)

Country Link
KR (1) KR102076248B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11604734B2 (en) 2020-12-04 2023-03-14 SK Hynix Inc. Memory system for determining whether to control a point of execution time of a command based on valid page counts of target memory blocks and operating method thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100115090A (ko) * 2009-04-17 2010-10-27 서울대학교산학협력단 버퍼를 고려한 가비지 컬렉션 기법
KR20150096177A (ko) * 2014-02-14 2015-08-24 고려대학교 산학협력단 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
KR20160075229A (ko) 2014-12-19 2016-06-29 삼성전자주식회사 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템
KR20170122090A (ko) * 2016-04-26 2017-11-03 한양대학교 산학협력단 저장 장치의 메모리 컨트롤러가 수행하는 가비지 컬렉션 방법 및 메모리 컨트롤러

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100115090A (ko) * 2009-04-17 2010-10-27 서울대학교산학협력단 버퍼를 고려한 가비지 컬렉션 기법
KR20150096177A (ko) * 2014-02-14 2015-08-24 고려대학교 산학협력단 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
KR20160075229A (ko) 2014-12-19 2016-06-29 삼성전자주식회사 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템
KR20170122090A (ko) * 2016-04-26 2017-11-03 한양대학교 산학협력단 저장 장치의 메모리 컨트롤러가 수행하는 가비지 컬렉션 방법 및 메모리 컨트롤러

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J.Lee 외5인,"A Semi-Preemptive Garbage Collector for Solid State Drives", IEEE ISPASS, April 2011* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11604734B2 (en) 2020-12-04 2023-03-14 SK Hynix Inc. Memory system for determining whether to control a point of execution time of a command based on valid page counts of target memory blocks and operating method thereof

Similar Documents

Publication Publication Date Title
CN113377283B (zh) 具有分区命名空间的存储器系统及其操作方法
US8972696B2 (en) Pagefile reservations
US9244617B2 (en) Scheduling requests in a solid state memory device
US9183136B2 (en) Storage control apparatus and storage control method
US8417901B2 (en) Combining write commands to overlapping addresses or to a specific page
US20130212319A1 (en) Memory system and method of controlling memory system
EP2529308B1 (en) A system and method for read-while-write with nand memory device
USRE48983E1 (en) Memory device and controlling method of the same
US20090006725A1 (en) Memory device
US20080162821A1 (en) Hard disk caching with automated discovery of cacheable files
US20080147994A1 (en) Command scheduling method and apparatus of virtual file system embodied in nonvolatile data storage device
US20130326113A1 (en) Usage of a flag bit to suppress data transfer in a mass storage system having non-volatile memory
KR20120112965A (ko) 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법
US20170228191A1 (en) Systems and methods for suppressing latency in non-volatile solid state devices
KR20100091782A (ko) 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치
KR101835604B1 (ko) 메모리를 위한 스케줄러
WO2017006675A1 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
KR101481898B1 (ko) Ssd의 명령어 큐 스케줄링 장치 및 방법
KR102076248B1 (ko) 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
KR100770034B1 (ko) 복수의 레지스터 파일을 이용한 문맥 교환 방법 및 시스템
KR20110033066A (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
KR20090053487A (ko) 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말
CN110515861B (zh) 处理刷写命令的存储设备及其方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant