KR102580075B1 - 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치 - Google Patents

플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치 Download PDF

Info

Publication number
KR102580075B1
KR102580075B1 KR1020200188512A KR20200188512A KR102580075B1 KR 102580075 B1 KR102580075 B1 KR 102580075B1 KR 1020200188512 A KR1020200188512 A KR 1020200188512A KR 20200188512 A KR20200188512 A KR 20200188512A KR 102580075 B1 KR102580075 B1 KR 102580075B1
Authority
KR
South Korea
Prior art keywords
block
victim
pages
region
garbage collection
Prior art date
Application number
KR1020200188512A
Other languages
English (en)
Other versions
KR20220096247A (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 KR1020200188512A priority Critical patent/KR102580075B1/ko
Publication of KR20220096247A publication Critical patent/KR20220096247A/ko
Application granted granted Critical
Publication of KR102580075B1 publication Critical patent/KR102580075B1/ko

Links

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

본 발명의 일 실시예는 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치를 제공한다. 본 발명의 일 실시 예에 따른 플래시 메모리의 가비지 콜렉션 방법은, 각 리전(region)의 후보 블럭의 유효 페이지 수와 활성 블록의 여유 페이지(free page) 수에 기초하여 가비지 콜렉션의 대상 블록을 선정하는 단계; 선정된 대상 블록 내의 유효 페이지를 상기 활성 블록으로 복사하는 단계; 및 상기 대상 블록을 소거하여 가비지 콜렉션을 수행하는 단계를 포함한다.

Description

플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치{Method for garbage collection of flash memory and storage device using the same}
본 발명은 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치에 관한 것으로, 보다 구체적으로는 유효 페이지의 복사를 최소화하는 가비지 콜렉션 대상 블록을 선정하고, 이를 이용하여 가비지 콜렉션을 수행하는 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치에 관한 것이다.
플래시 메모리는 전기적으로 데이터를 기록하고 저장된 데이터를 지울 수 있으며, 전원 공급이 끊어져도 저장된 정보가 지워지지 않는 비 휘발성 기억장치를 말한다.
이러한 플래시 메모리는 빠른 속도, 낮은 전력, 작은 크기, 내구성의 장점을 가지며 휴대폰, 디지털 카메라, 휴대용 정보 단말기(PDA), 이동식 컴퓨터 장치, 고정식 컴퓨터 장치 및 기타 장치에 사용될 수 있다.
플래시 메모리는 물리적 특성에 따라 데이터의 읽기 및 쓰기 동작은 페이지(page)단위, 지우기 동작은 블록(block)단위로 수행되며, 데이터 덮어쓰기(Data Overwrite) 동작이 불가능하며 수정의 횟수에 제한이 있는 단점이 있다.
이러한 단점을 보완하기 위해 플래시 메모리에서는 플래시 계층 변환(Flash Translation Layer)을 적용하여 논리주소 매핑, 가비지 콜랙션(Garbage Collection), 웨어레벨링(Wear Leveling) 및 오류수정코드(error correction code)등의 부가적인 기능을 수행한다.
이중 가비지 콜랙션(Garbage Collection)은 블록 단위로 수행되며, 지우기 동작을 수행할 블록을 선정하고, 선정된 블록에 포함된 모든 유효한 페이지(valid page)를 다른 블록으로 복사한 후, 선정된 블록을 지우는 동작을 수행한다.
그러나, 블록을 삭제할 때마다 수행되는 유효 페이지(valid page)에 대한 데이터를 읽고 쓰는 작업(valid copy operation)은 메모리의 처리 속도 저하 및 수명 등 플래시 메모리 장치의 전반적인 성능을 크게 저하시키고 있다.
따라서 페이지(valid page)에 대한 데이터를 읽고 쓰는 작업(valid copy operation)의 횟수를 줄이기 위한 방법에 대한 필요성이 중요시 되고 있다.
관련 선행기술로는 한국등록특허 제10-0789406호(발명의 명칭: 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법, 등록일자: 2007년 12월 20일)가 있다.
본 발명은 플래시 메모리를 구성하는 복수의 희생 블록의 유효 페이지 정보와 활성 블록의 여유 페이지 정보에 기반하여 가비지 콜렉션 대상 블록을 선정함으로써, 블록을 삭제할 때마다 수행되는 유효 페이지(valid page)에 대한 데이터를 읽고 쓰는 작업(valid copy operation)의 횟수를 줄여 입력 및 출력 성능을 향상시킬 수 있는 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치를 제공하고자 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위해, 본 발명에서 제공하는 플래시 메모리의 가비지 콜렉션 방법은 각 리전(region)의 후보 블럭의 유효 페이지 수와 활성 블록의 여유 페이지(free page) 수에 기초하여 가비지 콜렉션의 대상 블록을 선정하는 단계; 선정된 대상 블록 내의 유효 페이지를 상기 활성 블록으로 복사하는 단계; 및 상기 대상 블록을 소거하여 가비지 콜렉션을 수행하는 단계를 포함한다.
일 실시예에서, 상기 가비지 콜렉션의 대상 블록을 선정하는 단계는, 논리 주소 단위인 각 리전(region)에서 희생 블록의 유효 페이지 수와 활성 블록의 여유 페이지수를 비교하는 단계; 비교 결과 상기 활성 블록의 여유 페이지 수보다 작은 희생 블록의 여유 페이지 수를 갖는 리전을 선택하는 단계; 및 선택된 리전 중에서 희생 블록의 유효 페이지 수가 가장 적은 리전의 희생 블록을 대상 블록으로 선정하는 단계를 포함한다.
일 실시예에서, 상기 희생 블록의 유효 페이지 수와 활성 블록의 여유 페이지수를 비교하는 단계에서, 각 리전에서 여유 페이지를 갖지 않는 희생 블록이 복수개인 경우, 희생 블록들 간의 유효 페이지 수가 적은 순서대로 희생 블록의 우선순위를 갖는 것을 특징으로 한다.
일 실시예에서, 상기 리전에 여유 페이지를 갖지 않는 희생 블록이 복수개인 경우, 각 리전에 상기 우선순위에 따라 제1 희생 블록 및 제2 희생 블록을 선정하고, 각 리전에서 상기 활성 블록의 여유 페이지 수 보다 작은 유효 페이지의 수를 갖는 제1 희생 블록이 없는 경우, 상기 제1 희생 블록과 제2 희생 블록의 유효 페이지의 수의 합이 최소가 되는 리전의 제1 희생 블록과 제2 희생 블록을 대상 블록으로 선정하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위해, 본 발명의 일 실시예에서 제공하는 제공장치는, 플래시 메모리; 및 각 리전(region)의 후보 블럭의 유효 페이지 수와 활성 블록의 여유 페이지(free page) 수에 기초하여 가비지 콜렉션의 대상 블록을 선정하고, 선정된 대상 블록 내의 유효 페이지를 상기 활성 블록으로 복사하며, 상기 대상 블록을 소거하여 가비지 콜렉션을 수행하는 컨트롤러를 포함한다.
또한, 상기 목적을 달성하기 위해, 본 발명의 일 실시예에서 제공하는 플래시 메모리를 제어하는 컨트롤러는, 각 리전(region)의 후보 블럭의 유효 페이지 수와 활성 블록의 여유 페이지(free page) 수에 기초하여 가비지 콜렉션의 대상 블록을 선정하는 선정부; 및 선정된 대상 블록 내의 유효 페이지를 상기 활성 블록으로 복사하며, 상기 대상 블록을 소거하여 가비지 콜렉션을 수행하는 수행부를 더 포함할 수 있다.
본 발명은 플래시 메모리를 구성하는 희생 블록의 유효 페이지 및 활성 블록의 여유 페이지에 기초하여, 가비지 콜렉션의 대상을 선정함으로써 가비지 콜렉션의 횟수와 유효 페이지 복수의 횟수를 최소화 할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 컨트롤러를 포함하는 저장 장치를 도시하는 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 플래시 메모리를 포함하는 저장 장치를 제어하는 컨트롤러를 도시하는 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 플래시 메모리의 가비지 콜렉션 방법을 설명하기 위하여 도시한 흐름도이다.
도 4는 본 발명의 제1 실시 예에 따른 가비지 콜렉션 대상 블록을 선정하는 방법을 설명하기 위하여 도시한 흐름도이다.
도 5는 본 발명의 제1 실시 예에 따른 가비지 콜렉션 대상 블록을 선정한 결과를 설명하기 위하여 도시한 도면이다.
도 6은 종래의 가비지 콜렉션 대상 블록을 선정한 결과를 설명하기 위하여 도시한 도면이다.
도 7은 본 발명의 제2 실시 예에 따른 가비지 콜렉션 대상 블록을 선정한 결과를 설명하기 위하여 도시한 도면이다.
도 8은 종래의 가비지 콜렉션 대상 블록을 선정한 결과를 설명하기 위하여 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
또한, 명세서에 기재된 "~부", "~유닛", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시 예에 따른 컨트롤러를 포함하는 저장 장치를 도시하는 블록도이다.
도 1을 참조하면 본 발명의 일 실시 예에 따른 가비지 콜렉션 대상 블록을 선정하는 컨트롤러를 포함하는 저장 장치(300)는 컨트롤러(310) 및 플래시 메모리(320)를 포함한다.
호스트는 데이터 입출력 요청을 저장 장치(300)에 송신할 수 있다. 상기 데이터 입출력 요청은 쓰기(write), 읽기(read), 삭제(erase)등의 데이터 입출력 명령을 포함할 수 있다.
또한, 호스트는 예를 들면 데스크탑을 비롯한 개인용 컴퓨터, 서버 컴퓨터, 노트북을 비롯한 휴대용 컴퓨터 및 셀룰러폰, 스마트폰, 태블릿, MP3, PMP(PortableMultimedia Player), PDA(Personal Digital Assistant), 디지털 카메라, 캠코더 등을 비롯한 휴대용 장치를 포함할 수 있다.
저장 장치(300)는 호스트가 미리 설정된 동작을 수행할 때 생성되는 데이터를 저장할 수 있다. 혹은, 저장 장치(300)에 저장된 데이터에 기반하여 호스트는 미리 설정된 동작을 수행할 수 있다.
또한, 저장 장치(300)는 SSD(Solid State Drive), 범용 플래시 저장 장치(Universal Flash Storage; UFS) 및 메모리 카드(Memory Card)를 포함할 수 있으며, 특히 SSD를 포함하는 것이 바람직할 수 있다.
저장 장치(300)는 호스트에서 처리되는 다양한 데이터를 저장하도록 구성될 수 있으며, 컨트롤러(310)와, 플래시 메모리(320)를 포함할 수 있다.
컨트롤러(310)는 호스트의 요청에 응답하여 플래시 메모리(320)에 엑세스 할 수 있으며, 플래시 메모리(320)에 대한 읽기, 쓰기 및 지우기 동작을 제어할 수 있다.
플래시 메모리(320)내에는 다수의 블록(Extent)이 존재하며, 하나의 블록은 다수의 페이지로 이루어져 있다. 또한 상기 페이지는 여유 페이지(free page), 유효 페이지 및 무효 페이지로 구분된다.
여유 페이지는 즉시 데이터 삽입이 가능한 상태이며, 유효 페이지는 의미 있는 데이터가 저장된 상태이며, 무효 페이지는 의미 없는 데이터가 저장된 상태이다.
또한, 상기 블록은, 활성 블록과 희생 블록으로 구분된다. 활성 블록은 쓰기 동작이 가능한 여유 페이지를 포함하는 블록이고, 희생 블록은 여유 페이지를 포함하지 않아 더 이상 쓰기 작업이 불가능한 블록이다.
컨트롤러(310)는 파일 시스템을 지원하기 위해 플래시 변환 레이어(FTL)를 구비하고, 플래시 변환 레이어(FTL)를 이용하여 읽기, 쓰기, 지우기 및 가비지 콜렉션 등을 수행한다. 다시 말하면, 컨트롤러(310)는 소프트웨어적으로 구현된 플래시 변환 레이어(FTL)를 실행함으로써 상기 동작들을 수행한다. 이 때, 플래시 변환 레이어(FTL)는 논리적 어드레스(LOGICAL ADDRESS)와 물리적 어드레스(PHYSICAL ADDRESS) 사이의 맵핑 정보가 저장된 주소 변환용 맵핑 테이블을 이용하여 호스트가 인식하는 논리적 어드레스(LOGICAL ADDRESS)를 저장장치(300)의 물리적 어드레스(PHYSICAL ADDRESS)로 변환하는 어드레스 맵핑 동작을 수행한다.
컨트롤러(310)는 호스트로부터 읽기 요청을 수신하는 경우, 논리 주소와 물리 주소를 연결해주는 주소 변환용 매핑 테이블을 이용하여 논리적 페이지 번호(LPN, Logical Page Number)의 실제 페이지 주소인 물리적 페이지 번호(PPN, Physical Page Number)정보를 읽어 물리적 페이지 번호에 저장된 데이터를 호스트로 전달할 수 있다. 또한, 컨트롤러(310)는 호스트로부터 쓰기 요청을 수신하는 경우, 플래시 메모리(320)에 포함된 블록 내 유효 페이지를 무효 페이지 상태로 처리하고, 새로운 블록의 새롭게 할당 받은 페이지에 새로운 데이터를 저장 후, 해당 물리적 페이지 번호(PPN)를 매핑 테이블에 수정 및 기록할 수 있다.
다음, 컨트롤러(310)의 가비지 콜렉션 동작은 무효 페이지의 회수 작업을 의미한다. 컨트롤러(310)는 플래시 메모리(320)내에 새로운 페이지를 할당하기 위하여, 무효 페이지를 회수하고 플래시 메모리(320)의 여유 공간(블록)을 확보해야 한다. 여기서, 플래시 메모리(320) 내의 읽기와 쓰기는 페이지 단위로 수행되는 반면, 지우기는 블록 단위로 수행된다. 따라서, 컨트롤러(310)가 플래시 메모리(320) 내의 무효 페이지를 회수하기 위해서는 회수될 무효 페이지에 포함된 유효 페이지를 다른 블록으로 복사 한 후 해당 블록을 지우기 함으로써 비로소 회수 즉 가비지 콜렉션이 이뤄진다.
또한, 본 발명의 실시 예에서 플래시 메모리(320)는 EEPROM(Electrically ErasableProgrammable Read-Only Memory), FRAM(Ferroelectrics Random Access Memory), PRAM(Phase-change RandomAccess Memory), MRAM(Magnetic Random Access Memory)를 포함하는 비 휘발성 메모리 장치일 수 있다.
도 2는 본 발명의 일 실시 예에 따른 플래시 메모리를 포함하는 저장 장치를 제어하는 컨트롤러를 도시하는 블록도이다.
도 2를 참조하면 본 발명의 일 실시 예에 따른 저장 장치의 컨트롤러(310)는 선정부(312) 및 수행부(314)를 포함한다.
컨트롤러(310)는 플래시 메모리를 포함하는 저장 장치(300)를 제어한다.
선정부(312)는 각 리전(region)의 후보 블럭의 유효 페이지 수와 활성 블록의 여유 페이지(free page) 수에 기초하여 가비지 콜렉션의 대상 블록을 선정한다.
선정부(312)는 논리 주소 단위인 각 리전(region)에서 희생 블록의 유효 페이지 수와 활성 블록의 여유 페이지수를 비교하고, 비교 결과에 따라 상기 활성 블록의 여유 페이지 수보다 작은 희생 블록의 여유 페이지 수를 갖는 리전을 선정한다. 선정부(312)는 선정된 리전 중에서 희생 블록의 유효 페이지 수가 가장 적은 리전의 희생 블록을 대상 블록으로 선정한다.
선정부(312)는 상기 리전에 여유 페이지를 갖지 않는 희생 블록이 복수개인 경우, 각 리전에 우선순위에 따라 제1 희생 블록 및 제2 희생 블록을 선정하고 각 리전에서 상기 활성 블록의 여유 페이지 수 보다 작은 유효 페이지의 수를 갖는 제1 희생 블록이 없는 경우, 상기 제1 희생 블록과 제2 희생 블록의 유효 페이지의 수의 합이 최소가 되는 리전의 제1 희생 블록과 제2 희생 블록을 대상 블록으로 선정한다. 여기서, 우선순위는 유효 페이지 수가 적은 순서에 따른다.
수행부(314)는 선정된 대상 블록 내의 유효 페이지를 상기 활성 블록으로 복사하며, 상기 대상 블록을 소거하여 가비지 콜렉션을 수행한다.
도 3은 본 발명의 일 실시 예에 따른 플래시 메모리의 가비지 콜렉션 방법을 설명하기 위하여 도시한 흐름도이고, 도 4는 본 발명의 일 실시 예에 따른 가비지 콜렉션 대상 블록을 선정하는 방법을 설명하기 위하여 도시한 흐름도이다.
도 3을 참조하면 단계 S110에서, 각 리전(region)의 후보 블럭의 유효 페이지 수와 활성 블록의 여유 페이지(free page) 수에 기초하여 가비지 콜렉션의 대상 블록을 선정한다.
다음 도 4를 참조하면, 단계 S111에서, 논리 주소 단위인 각 리전(region)에서 희생 블록의 유효 페이지 수와 활성 블록의 여유 페이지 수를 비교한다.
단계 S112에서, 비교 결과 상기 활성 블록의 여유 페이지 수보다 작은 희생 블록의 여유 페이지 수를 갖는 리전을 선택한다.
단계 S113에서, 선택된 리전 중에서 희생 블록의 유효 페이지 수가 가장 적은 리전의 희생 블록을 대상 블록으로 선정한다.
단계 S112에서, 비교 결과, 각 리즌의 희생 블록의 유효 페이지 수가 활성 블록 내 여유 페이지 수보다 큰 경우, 각 리즌 별로 2번째 후보들을 추가 선발한다. 각 리즌 별로 2개의 후보들을 V1, V2 라고 하고 유효페이지를 각각 NV1, NV2이라고 할 때, 각 Region 별 유효 페이지 수의 합 Ni = NiV1+ NiV2을 구한다. 여기서, 후보로 선발된 블록을 후보 블록이라고 한다. 가장 작은 Ni 의 값을 갖는 Region i 의 두 후보 블록을 대상 블록으로 선정한다.
다시 도 3으로 되돌아와서, 단계 S120에서, 선정된 대상 블록 내의 유효 페이지를 상기 활성 블록으로 복사한다.
단계 S130에서, 상기 대상 블록을 소거하여 가비지 콜렉션을 수행한다.
도 5는 본 발명의 제1 실시 예에 따른 가비지 콜렉션 대상 블록을 선정한 결과를 설명하기 위한 도면이고, 도 6은 종래의 가비지 콜렉션 대상 블록을 선정한 결과를 설명하기 위하여 도시한 도면이다.
각 리전은 복수개의 블록을 포함한다. 각 블록 내에 여유 페이지가 있는 블록은 활성 블록이 된다.
여유 페이지가 없는 페이지는 희생 블록이 된다.
각 리전의 희생 블록들 중에서 유효 페이지의 수가 적을수록 대상 블록으로 선정되는 우선 순위를 갖는다. 이 우선 순위가 큰 희생 블록을 제1 희생 블록이라고 하고, 다음 우선 순위를 갖는 희생 블록을 제2 희생 블록이라고 한다. 즉, 제1 희생 블록의 유효 페이지의 수는 제2 희생 블록의 유효 페이지의 수보다 항상 적다. 제1 희생 블록 및 제2 희생 블록 내의 여유 페이지의 수는 0이다.
도 5를 참조한 제1 실시예는, 4개의 리전, 리전 0, 리전 1, 리전2, 리전 3, 리전 4를 포함한다. 이는 설명의 편의를 위해 예시로서 제안되었으며, 이에 한정하는 것은 아니다.
리전 0은 9개의 유효 페이지를 갖는 제1 희생 블록(V1) 및 10개의 여유 페이지를 갖는 활성 블록을 포함한다. 리전 0의 제1 희생 블록(V1)의 수 9는 여유 페이지의 수 10 보다 적다.
리전 1은 8개의 유효 페이지를 갖는 제1 희생 블록(V1) 및 7개의 여유 페이지를 갖는 활성 블록을 포함한다. 제1 희생 블록(V1)의 수 9는 여유 페이지의 수보다 적다. 리전 1의 제1 희생 블록(V1)의 수 8는 여유 페이지의 수 7 보다 크다.
리전 2는 6개의 유효 페이지를 갖는 제1 희생 블록(V1) 및 5개의 여유 페이지를 갖는 활성 블록을 포함한다. 리전 2의 제1 희생 블록(V1)의 수 6은 여유 페이지의 수 5 보다 크다.
리전 3은 7개의 유효 페이지를 갖는 제1 희생 블록(V1) 및 6개의 여유 페이지를 갖는 활성 블록을 포함한다. 리전 3의 제1 희생 블록(V1)의 수 7은 여유 페이지의 수 6 보다 크다.
이러한 경우, 본 발명의 일 실시예에 따른 저장 장치는 각 리전의 제1 희생 블록의 유효 페이지 수와, 활성 블록의 여유 페이지 수를 비교 결과에 따라, 리전 0의 제1 희생 블록을 대상 블록을 선정한다.
이러한 경우, 1번의 가비지 콜렉션과 9번의 유효페이지의 복사가 수행된다.
만약, 리전 1의 활성 블록의 여유 페이지가 7이 아니라 9인 경우, 리전 1의 제1 희생 블록의 유효 페이지의 수가 활성 블록의 여유 페이지의 수 보다 적고, 리전 1의 제1 희생 블록의 유효 페이지의 수가 리전 0의 제1 희생 블록의 유효 페이지의 수 보다 적으므로, 리전 1의 제1 활성 블록이 대상 블록으로 선정된다.
도 6을 참조하여, 종래와 같이, 활성 블록의 여유 페이지를 고려하지 않는 가비지 콜렉션의 경우를 살펴본다. 여기서, 저장 장치의 저장 상태는 도 5와 동일한 상태이다.
종래에는 활성 블록의 여유 페이지를 고려하지 않으므로, 각 리즌의 희생 블록의 유효 페이지의 수가 가장 적은 리즌 2의 제1 회생 블록을 대상 블록으로 선정하게 된다. 따라서, 리즌 2의 제1 희생 블록에 대한 가비지 콜렉션을 수행하면 활성 블록의 여유 페이지가 부족하여 새로운 블록을 할당받게 되어 또 다시 가비지 콜렉션이 동작하게 된다. 다음, 희생 블록의 유효 페이지의 수가 적은 리즌 3의 제1 회생 블록을 대상 블록으로 선정하게 된다. 따라서, 리즌 2의 제1 희생 블록에 대한 가비지 콜렉션을 수행하면 활성 블록의 여유 페이지가 부족하여 새로운 블록을 할당받게 되어 또 다시 가비지 콜렉션이 동작하게 되며, 다음 리즌 1의 제1 희생 블록에 대한 가비지 콜렉션이 수행되고, 마지막으로 리즌 0의 제1 희생 블록에 대한 가비지 콜렉션이 수행되게 되며, 총 4회의 가비지 콜렉션과 30번의 유효페이지 복사가 수행됨을 알 수 있다.
이와 같이, 만약 희생 블록의 유효페이지 수가 활성블록 내 여유 페이지 수 보다 크면, 가비지 콜렉션 과정에서 새로운 블록을 추가로 할당해야 되기 때문에 다시 가비지 콜렉션을 수행해야 되는 연쇄-가비지 콜렉션 문제가 발생하게 됨을 알 수 있다. 이때 최악의 경우, Region의 수 + 1 만큼의 가비지 콜렉션을 반복해서 수행하게 된다.
도 5와 도 6의 결과를 비교하면, 본 발명의 일 실시예에 따르면 희생 블록의 유효 페이지와 활성 블록의 여유 페이지를 비교함으로써 가비지 콜렉션의 횟수와 유효 페이지 복수의 횟수를 최소화 할 수 있음을 알 수 있다.
도 7은 본 발명의 제2 실시 예에 따른 가비지 콜렉션 대상 블록을 선정한 결과를 설명하기 위하여 도시한 도면이고, 도 8은 종래의 가비지 콜렉션 대상 블록을 선정한 결과를 설명하기 위하여 도시한 도면이다.
각 리전은 복수개의 블록을 포함한다. 각 블록 내에 여유 페이지가 있는 블록은 활성 블록이 된다.
여유 페이지가 없는 페이지는 희생 블록이 된다.
각 리전의 희생 블록들 중에서 유효 페이지의 수가 적을수록 대상 블록으로 선정되는 우선 순위를 갖는다. 이 우선 순위가 큰 희생 블록을 제1 희생 블록이라고 하고, 다음 우선 순위를 갖는 희생 블록을 제2 희생 블록이라고 한다. 즉, 제1 희생 블록의 유효 페이지의 수는 제2 희생 블록의 유효 페이지의 수보다 항상 적다. 제1 희생 블록 및 제2 희생 블록 내의 여유 페이지의 수는 0이다.
도 7을 참조한 제1 실시예는, 4개의 리전, 리전 0, 리전 1, 리전2, 리전 3, 리전 4를 포함한다. 이는 설명의 편의를 위해 예시로서 제안되었으며, 이에 한정하는 것은 아니다.
리전 0은 9개의 유효 페이지를 갖는 제1 희생 블록(V1), 11개의 유효 페이지를 갖는 제2 희생 블록(V1) 및 4개의 여유 페이지를 갖는 활성 블록을 포함한다. 리전 0의 제1 희생 블록(V1)의 수 9는 여유 페이지의 수 4 보다 크다. 리전 0의 제1 희생 블록의 수와 제2 희생 블록의 수의 합은 20이다.
리전 1은 8개의 유효 페이지를 갖는 제1 희생 블록(V1), 10개의 유효 페이지를 갖는 제2 희생 블록(V1) 및 7개의 여유 페이지를 갖는 활성 블록을 포함한다. 제1 희생 블록(V1)의 수 9는 여유 페이지의 수보다 적다. 리전 1의 제1 희생 블록(V1)의 수 8는 여유 페이지의 수 7 보다 크다. 리전 1의 제1 희생 블록의 수와 제2 희생 블록의 수의 합은 18이다.
리전 2는 6개의 유효 페이지를 갖는 제1 희생 블록(V1), 13개의 유효 페이지를 갖는 제2 희생 블록(V1) 및 5개의 여유 페이지를 갖는 활성 블록을 포함한다. 리전 2의 제1 희생 블록(V1)의 수 6은 여유 페이지의 수 5 보다 크다. 리전 2의 제1 희생 블록의 수와 제2 희생 블록의 수의 합은 19이다.
리전 3은 7개의 유효 페이지를 갖는 제1 희생 블록(V1), 12개의 유효 페이지를 갖는 제2 희생 블록(V1) 및 6개의 여유 페이지를 갖는 활성 블록을 포함한다. 리전 3의 제1 희생 블록(V1)의 수 7은 여유 페이지의 수 6 보다 크다. 리전 4의 제1 희생 블록의 수와 제2 희생 블록의 수의 합은 19이다.
이러한 경우, 본 발명의 일 실시예에 따른 저장 장치는 각 리전의 제1 희생 블록의 유효 페이지 수와, 활성 블록의 여유 페이지 수를 비교 결과에 따라, 제1 희생 블록에서 대상 블록을 선정할 수 없는 경우, 각 리전의 제1 희생 블록의 유효 페이지 수와 제2 희생블록의 유효 페이지의 수의 합이 최소가 되는 리전의 제1 희생 블록과 제2 희생 블록을 대상 블록으로 선정함으로, 리전 2의 제1 희생 블록과 제2 희생 브록을 대상 블록을 선정한다.
이러한 경우, 2번의 가비지 콜렉션과 18번의 유효페이지의 복사가 수행된다.
다음, 도 8을 참조하여 종래와 같이, 활성 블록의 여유 페이지를 고려하지 않고, 제2 희생 블록을 고려하지 않는 가비지 콜렉션의 경우를 살펴본다. 여기서, 저장 장치의 저장 상태는 도 7과 동일한 상태이다.
종래에는 활성 블록의 여유 페이지를 고려하지 않으므로, 각 리즌의 희생 블록의 유효 페이지의 수가 가장 적은 리즌 2의 제1 회생 블록을 대상 블록으로 선정하게 된다.
따라서, 리즌 2의 제1 희생 블록에 대한 가비지 콜렉션을 수행하면 활성 블록의 여유 페이지가 부족하여 새로운 블록을 할당받게 되어 또 다시 가비지 콜렉션이 동작하게 된다. 다음, 희생 블록의 유효 페이지의 수가 적은 리즌 3의 제1 회생 블록을 대상 블록으로 선정하게 된다. 따라서, 리즌 2의 제1 희생 블록에 대한 가비지 콜렉션을 수행하면 활성 블록의 여유 페이지가 부족하여 새로운 블록을 할당받게 되어 또 다시 가비지 콜렉션이 동작하게 되며, 다음 리즌 1의 제1 희생 블록에 대한 가비지 콜렉션이 수행되고, 리즌 0의 제1 희생 블록에 대한 가비지 콜렉션이 수행되게 되며, 다시 리즌 1의 제2 희생 블록에 대한 가비지 콜렉션이 수행되게 되는 연쇄 가비지 콜렉션에 의해 5번의 가비지 콜렉션과 40번의 유효페이지 복사가 수행됨을 알 수 있다.
도 7과 도 8의 결과를 비교하면, 본 발명의 일 실시예에 따른 가비지 콜렉션 대상 선정 방법에 의해 모든 리즌의 제1 희생 블록의 유효 페이지가 활성 블록의 여유 페이지의 수보다 큰 경우에도, 가비지 콜렉션의 횟수와 유효 페이지 복수의 횟수를 최소화 할 수 있음을 알 수 있다.
한편, 상술한 본 발명의 실시 예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록 매체는 마그네틱저장 매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
300 : 저장 장치
310 : 컨트롤러
312 : 선정부
314 : 수행부
320 : 플래시 메모리

Claims (11)

  1. 각 리전(region)의 후보 블럭의 유효 페이지 수와 활성 블록의 여유 페이지(free page) 수에 기초하여 가비지 콜렉션의 대상 블록을 선정하는 단계;
    선정된 대상 블록 내의 유효 페이지를 상기 활성 블록으로 복사하는 단계; 및
    상기 대상 블록을 소거하여 가비지 콜렉션을 수행하는 단계;
    를 포함하고,
    상기 가비지 콜렉션의 대상 블록을 선정하는 단계는,
    논리 주소 단위인 각 리전(region)에서 희생 블록의 유효 페이지 수와 활성 블록의 여유 페이지수를 비교하는 단계;
    비교 결과 상기 활성 블록의 여유 페이지 수보다 작은 희생 블록의 여유 페이지 수를 갖는 리전을 선택하는 단계; 및
    선택된 리전 중에서 희생 블록의 유효 페이지 수가 가장 적은 리전의 희생 블록을 대상 블록으로 선정하는 단계를 포함하는 플래시 메모리의 가비지 콜렉션 방법.
  2. 삭제
  3. 제 1항에 있어서,
    상기 희생 블록의 유효 페이지 수와 활성 블록의 여유 페이지수를 비교하는 단계에서,
    각 리전에서 여유 페이지를 갖지 않는 희생 블록이 복수개인 경우, 희생 블록들 간의 유효 페이지 수가 적은 순서대로 희생 블록의 우선순위를 갖는 것을 특징으로 하는 플래시 메모리의 가비지 콜렉션 방법.
  4. 제 3항에 있어서,
    상기 리전에 여유 페이지를 갖지 않는 희생 블록이 복수개인 경우, 각 리전에 상기 우선순위에 따라 제1 희생 블록 및 제2 희생 블록을 선정하고,
    각 리전에서 상기 활성 블록의 여유 페이지 수 보다 작은 유효 페이지의 수를 갖는 제1 희생 블록이 없는 경우, 상기 제1 희생 블록과 제2 희생 블록의 유효 페이지의 수의 합이 최소가 되는 리전의 제1 희생 블록과 제2 희생 블록을 대상 블록으로 선정하는 것을 특징으로 하는 플래시 메모리의 가비지 콜렉션 방법.
  5. 플래시 메모리; 및
    각 리전(region)의 후보 블럭의 유효 페이지 수와 활성 블록의 여유 페이지(free page) 수에 기초하여 가비지 콜렉션의 대상 블록을 선정하고, 선정된 대상 블록 내의 유효 페이지를 상기 활성 블록으로 복사하며, 상기 대상 블록을 소거하여 가비지 콜렉션을 수행하는 컨트롤러
    를 포함하고,
    상기 컨트롤러는,
    논리 주소 단위인 각 리전(region)에서 희생 블록의 유효 페이지 수와 활성 블록의 여유 페이지수를 비교하고, 비교 결과에 따라 상기 활성 블록의 여유 페이지 수보다 작은 희생 블록의 여유 페이지 수를 갖는 리전을 선정하며, 선정된 리전 중에서 희생 블록의 유효 페이지 수가 가장 적은 리전의 희생 블록을 대상 블록으로 선정하는 것을 특징으로 하는 저장 장치.
  6. 삭제
  7. 제 5항에 있어서,
    상기 컨트롤러는,
    각 리전에서 여유 페이지를 갖지 않는 희생 블록이 복수개인 경우, 희생 블록들 간의 유효 페이지 수가 적은 순서대로 희생 블록의 우선순위를 갖는 것을 특징으로 하는 저장 장치.
  8. 제 7항에 있어서,
    상기 컨트롤러는,
    상기 리전에 여유 페이지를 갖지 않는 희생 블록이 복수개인 경우, 각 리전에 상기 우선순위에 따라 제1 희생 블록 및 제2 희생 블록을 선정하고,
    각 리전에서 상기 활성 블록의 여유 페이지 수 보다 작은 유효 페이지의 수를 갖는 제1 희생 블록이 없는 경우, 상기 제1 희생 블록과 제2 희생 블록의 유효 페이지의 수의 합이 최소가 되는 리전의 제1 희생 블록과 제2 희생 블록을 대상 블록으로 선정하는 것을 특징으로 하는 저장 장치.
  9. 플래시 메모리를 제어하는 컨트롤러에 있어서,
    각 리전(region)의 후보 블럭의 유효 페이지 수와 활성 블록의 여유 페이지(free page) 수에 기초하여 가비지 콜렉션의 대상 블록을 선정하는 선정부; 및
    선정된 대상 블록 내의 유효 페이지를 상기 활성 블록으로 복사하며, 상기 대상 블록을 소거하여 가비지 콜렉션을 수행하는 수행부
    를 포함하고,
    상기 선정부는 논리 주소 단위인 각 리전(region)에서 희생 블록의 유효 페이지 수와 활성 블록의 여유 페이지수를 비교하고, 비교 결과에 따라 상기 활성 블록의 여유 페이지 수보다 작은 희생 블록의 여유 페이지 수를 갖는 리전을 선정하며, 선정된 리전 중에서 희생 블록의 유효 페이지 수가 가장 적은 리전의 희생 블록을 대상 블록으로 선정하는 것을 특징으로 하는 플래시 메모리의 컨트롤러.
  10. 삭제
  11. 제9항에 있어서,
    상기 선정부는 상기 리전에 여유 페이지를 갖지 않는 희생 블록이 복수개인 경우, 각 리전에 희생 블록들 간의 유효 페이지 수가 적은 순서대로 제1 희생 블록 및 제2 희생 블록을 선정하고,
    각 리전에서 상기 활성 블록의 여유 페이지 수 보다 작은 유효 페이지의 수를 갖는 제1 희생 블록이 없는 경우, 상기 제1 희생 블록과 제2 희생 블록의 유효 페이지의 수의 합이 최소가 되는 리전의 제1 희생 블록과 제2 희생 블록을 대상 블록으로 선정하는 것을 특징으로 하는 플래시 메모리의 컨트롤러.
KR1020200188512A 2020-12-30 2020-12-30 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치 KR102580075B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200188512A KR102580075B1 (ko) 2020-12-30 2020-12-30 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200188512A KR102580075B1 (ko) 2020-12-30 2020-12-30 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치

Publications (2)

Publication Number Publication Date
KR20220096247A KR20220096247A (ko) 2022-07-07
KR102580075B1 true KR102580075B1 (ko) 2023-09-21

Family

ID=82397953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200188512A KR102580075B1 (ko) 2020-12-30 2020-12-30 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치

Country Status (1)

Country Link
KR (1) KR102580075B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190043863A (ko) * 2017-10-19 2019-04-29 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20190044798A (ko) * 2017-10-23 2019-05-02 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법

Also Published As

Publication number Publication date
KR20220096247A (ko) 2022-07-07

Similar Documents

Publication Publication Date Title
JP5405513B2 (ja) メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
US8250286B2 (en) Block management method, and storage system and controller using the same
US7890550B2 (en) Flash memory system and garbage collection method thereof
JP4988215B2 (ja) 複数のマッピング技法を採用した適応型フラッシュメモリ制御装置及びそれを含むフラッシュメモリシステム
JP4422652B2 (ja) 漸進的マージ方法及びそれを利用したメモリシステム
US8364931B2 (en) Memory system and mapping methods using a random write page mapping table
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
EP2665065A2 (en) Electronic device employing flash memory
JP2005222550A (ja) フラッシュメモリのリマッピング方法
JP2006216036A (ja) フラッシュメモリを含んだデータ貯蔵装置及びそれのマージ方法
KR100854032B1 (ko) 메모리 시스템 및 그것의 데이터 저장 방법
US11204864B2 (en) Data storage devices and data processing methods for improving the accessing performance of the data storage devices
US20100318726A1 (en) Memory system and memory system managing method
KR20140094278A (ko) 반도체 장치 및 이의 동작 방법
CN112015329A (zh) 存储系统及其操作方法
JP2015053075A (ja) メモリシステム、情報処理装置および記憶装置
JP5649709B2 (ja) メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法およびプログラム
KR102580075B1 (ko) 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치
KR102033462B1 (ko) 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치
JP2011227802A (ja) データ記録装置
KR20160119607A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11662940B2 (en) Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short
JP4888333B2 (ja) フラッシュディスク装置
KR102497213B1 (ko) 안전 삭제를 수행하는 컨트롤러, 이를 포함하는 키-밸류 스토리지 장치 및 키-밸류 스토리지 장치의 동작방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant