KR20150139112A - 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 - Google Patents

가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 Download PDF

Info

Publication number
KR20150139112A
KR20150139112A KR1020140066998A KR20140066998A KR20150139112A KR 20150139112 A KR20150139112 A KR 20150139112A KR 1020140066998 A KR1020140066998 A KR 1020140066998A KR 20140066998 A KR20140066998 A KR 20140066998A KR 20150139112 A KR20150139112 A KR 20150139112A
Authority
KR
South Korea
Prior art keywords
garbage collection
memory
free block
generation time
level
Prior art date
Application number
KR1020140066998A
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 KR1020140066998A priority Critical patent/KR20150139112A/ko
Priority to US14/711,016 priority patent/US20150347295A1/en
Publication of KR20150139112A publication Critical patent/KR20150139112A/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/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/7201Logical to physical mapping or translation of blocks or pages
    • 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

Abstract

본 발명에 따른 메모리 시스템은 복수개의 메모리 블록을 갖는 불휘발성 메모리; 및 가비지 컬렉션 유닛을 갖는 메모리 컨트롤러를 포함하되, 상기 가비지 컬렉션 유닛은 가비지 컬렉션 레벨을 생성하고, 가비지 컬렉션 레벨과 가비지 컬렉션 트리거 레벨을 비교하고, 상기 비교 결과에 따라, 가비지 컬렉션을 수행하되, 상기 가비지 컬렉션 레벨은 상기 불휘발성 메모리의 평균 프리 블록 생성 시간 또는 최대 프리 블록 생성 시간에 기초하여 생성될 수 있다.

Description

가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 {Memory system and operating method having garbage collection unit}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리를 기반으로 하는 메모리 시스템 및 가비지 컬렉션 동작에 관한 것이다.
반도체 메모리 장치는 일반적으로 DRAM, SRAM 등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, 플래시 메모리 등과 같은 불휘발성 메모리 장치로 구분할 수 있다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 높은 프로그래밍 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 갖는다. 따라서 플래시 메모리를 포함하는 메모리 시스템은 데이터 저장 매체로 널리 사용되고 있다.
불휘발성 메모리 장치에 있어서, 분휘발성 메모리에 저장된 데이터는 불휘발성 메모리장치의 저장 능력(storage capacity)을 개선(reclaim)하기 위해 주기적으로 가비지(garbage)다 수집(collect)된다. 즉, 가비지 컬렉션(garbage collection) 동작은 유효(valid) 페이지들과 무효(invalid) 페이지들을 포함하는 블록에서 상기 유효 페이지 들이 다른 블록으로 카피되고, 상기 무효 페이지들을 포함하는 상기 블록을 삭제함으로써 수행된다. 상기 삭제된 블록은 프리(free)하며, 상기 삭제된 블록은 프리 블록(free block)이라고 호칭될 수 있다.
불휘발성 메모리 장치는 라이트 명령과 리드 명령에 응답하여 데이터를 불휘발성 메모리 장치에 라이트하는 라이트 동작과 불휘발성 메모리장치 로부터 데이터를 리드하는 리드 동작을 수행한다. 불휘발성 메모리 장치가 라이트 동작을 수행하기 위한 프리 블록을 충분히 가지지 않을 때, 라이트 동작과 리드 동작을 수행하기 전에 가비지 동작이 수행되어야 한다. 이는 라이트 동작과 리드 동작에 대한 응답 시간 지연을 유발시키며, 사용자는 불휘발성 메모리 장치의 리드 성능의 저하를 느낄 수 있다.
본 발명의 목적은 메모리 장치의 유휴 시간에 가비지 컬렉션을 수행하여 리드 동작과 라이트 동작의 응답시간을 개선할 수 있는 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법을 제공하는 것이다.
본 발명은 가비지 컬렉션 유닛을 포함하는 메모리 시스템에 관한 것으로, 복수개의 메모리 블록을 갖는 불휘발성 메모리; 및 가비지 컬렉션 유닛을 갖는 메모리 컨트롤러를 포함하되, 상기 가비지 컬렉션 유닛은 가비지 컬렉션 레벨을 생성하고, 가비지 컬렉션 레벨과 가비지 컬렉션 트리거 레벨을 비교하고, 상기 비교 결과에 따라, 가비지 컬렉션을 수행하되, 상기 가비지 컬렉션 레벨은 상기 불휘발성 메모리의 평균 프리블록 생성 시간 또는 최대 프리 블록 생성 시간에 기초하여 생성될 수 있다.
실시 예로서, 상기 가비지 컬렉션 레벨을 생성하는 것은 상기 메모리 블록들의 유효 페이지 수에 따라 각각의 메모리 블록의 유효 페이지 그룹을 결정하고, 적어도 두개 이상의 유효 페이지 그룹의 프리블록 생성 시간을 계산할 수 있다. 상기 각각의 유효 페이지 그룹의 프리 브록 생성 시간에 기초하여 불휘발성 메모리의 평균 프리블록 생성 시간을 계산하고, 상기 계산된 불휘발성 메모리의 평균 프리 블록 생성 시간을 이용하여 불휘발성 메모리의 가비지 컬렉션 레벨을 결정할 수 있다.
상기 메모리 컨트롤러는 RAM을 추가로 더 포함한다. 상기 RAM은 상기 각각의 메모리 블록의 유효 페이지 수와 유효 페이지 그룹을 저장하고, 상기 불휘발성 메모리의 평균 프리블록 생성 시간 및 상기 가비지 컬렉션 레벨을 저장할 수 있다. 상기 각각의 유효 페이지 그룹의 프리 브록 생성 시간을 이용하여 최대 프리 블록 생성 시간을 계산하고, 상기 계산된 최대 프리 블록 생성 시간을 기초하여 불휘발성 메모리의 가비지 컬렉션 레벨을 결정하되, 상기 최대 프리 블록 생성 시간은 최대 프리 블록 카운트 수의 프리 블록들을 생성하는데 걸리는 시간일 수 있다. 상기 메모리 컨트롤러는 RAM을 추가로 더 포함하며, 상기 RAM은 상기 각각의 메모리 블록의 유효 페이지 수와 유효 페이지 그룹을 저장하고, 상기 불휘발성 메모리의 최대 프리 블록 생성 시간 및 상기 가비지 컬렉션 레벨 정보를 저장할 수 있다.
다른 실시 예로서, 상기 가비지 컬렉션 유닛은 상기 가비지 컬렉션을 수행하여 프리 블록을 생성하고, 생성된 프리블록의 개수에 기초하여 프리 블록 카운트 값을 변경하고, 상기 프리 블록 카운트 값과 최대 프리 블록 카운트 값을 비교 하고, 상기 비교 결과에 따라 가비지 컬렉션을 종료할 수 있다. 상기 가비지 컬렉션 유닛은 상기 누적된 프리 블록 카운트의 값이 최대 프리 블록 카운트 값보다 같거나 큰 경우에 가비지 컬렉션을 종료할 수 있다.
또 다른 실시 예로서, 상기 가비지 컬렉션 유닛은 상기 불회발성 메모리의 유휴 시간이 기준 유휴 시간보다 큰 경우에 상기 가비지 컬렉션 레벨을 생성할 수 있다. 상기 가비지 컬렉션 유닛은 상기 불회발성 메모리의 데이터 저장 공간이 부족한 경우에 상기 가비지 컬렉션 레벨을 생성할 수 있다.
본 발명에 따른 메모리 시스템의 동작 방법의 다른 예는 버퍼 영역과 메인 영역 및 마이그레이션 관리자를 포함하는 메모리 시스템의 동작 방법에 있어서, 상기 버퍼 영역으로부터 상기 메인 역역으로 마이그레이션을 수행하는 단계; 상기 마이그레이션 수행 후, 매핑 정보를 관리하는 단계; 및 상기 마이그레이션 수행 후 IVS 타임이 경과하면 매핑 정보를 이용하여 맵을 업데이트하는 단계를 포함할 수 있다.
실시 예로서, 상기 가비지 컬렉션 레벨을 생성하는 단계는, 상기 메모리 블록들의 유효 페이지 수에 따라 각각의 메모리 블록의 유효 페이지 그룹을 결정하고, 각 유효 페이지 그룹의 프리 블록 생성 시간을 계산하고 상기 각각의 유효 페이지 그룹의 프리 브록 생성 시간에 기초하여 불휘발성 메모리의 평균 프리블록 생성 시간을 계산하고, 상기 계산된 불휘발성 메모리의 평균 프리 블록 생성 시간을 이용하여 불휘발성 메모리의 가비지 컬렉션 레벨을 생성할 수 있다. 상기 메모리 컨트롤러는 RAM을 추가로 더 포함하며, 상기 RAM은 상기 각각의 메모리 블록의 유효 페이지 수와 유효 페이지 그룹을 저장하고, 상기 불휘발성 메모리의 평균 프리블록 생성 시간 및 상기 가비지 컬렉션 레벨을 저장할 수 있다.
다른 실시 예로서, 상기 가비지 컬렉션 레벨을 생성하는 단계는 상기 불회발성 메모리의 유휴 시간이 기준 유휴 시간보다 클 때, 수행될 수 있다. 상기 가비지 컬렉션 레벨을 생성하는 단계는 상기 불회발성 메모리의 데이터 저장 공간이 부족할 때, 수행될 수 있다.
또 다른 실시 예로서, 상기 가비지 컬렉션을 수행하는 단계는 적어도 하나의 프리 블록을 생성하고, 생성된 프리블록의 개수에 기초하여 프리 블록 카운트 값을 변경하고, 상기 프리 블록 카운트 값과 최대 프리 블록 카운트 값을 비교 하고, 상기 비교 결과에 따라 가비지 컬렉션을 종료할 수 있다. 상기 누적된 프리 블록 카운트의 값이 최대 프리 블록 카운트 값보다 같거나 큰 경우에 가비지 컬렉션을 종료할 수 있다.
본 발명에 따른 메모리 시스템의 동작 방법의 또 다른 예는 복수개의 메모리 블록을 갖는 불휘발성 메모리 및 가비지 컬렉션 유닛을 갖는 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법에 있어서, 상기 불휘발성 메모리의 유휴 시간이 기준 유휴 시간보다 클 때, 가비지 컬렉션 레벨을 생성하고, 상기 가비지 컬렉션 레벨과 가비지 컬렉션 트리거 레벨를 비교하고, 상기 비교 결과에 따라, 가비지 컬렉션을 수행하되 상기 가비지 컬렉션 레벨은 상기 불휘발성 메모리의 최대 프리 블록 생성시간에 기초하여 생성될 수 있다.
실시 예로서, 상기 가비지 컬렉션 레벨을 생성하는 단계는, 상기 메모리 블록들의 유효 페이지 수에 따라 각각의 메모리 블록의 유효 페이지 그룹을 결정하고, 각 유효 페이지 그룹의 프리 블록 생성 시간을 계산하고 상기 각각의 유효 페이지 그룹의 프리 블록 생성 시간에 기초하여 최대 프리 블록 생성 시간을 계산하고, 상기 계산된 최대 프리 블록 생성 시간을 이용하여 불휘발성 메모리의 가비지 컬렉션 레벨 정보를 결정하되, 상기 최대 프리 블록 생성 시간은 상기 최대 프리 블록 카운트 수의 프리 블록들을 생성하는데 걸리는 시간일 수 있다. 상기 메모리 컨트롤러는 RAM을 추가로 더 포함하며, 상기 RAM은 상기 각각의 메모리 블록의 유효 페이지 수와 유효 페이지 그룹을 저장하고, 상기 불휘발성 메모리의 최대 프리 블록 생성 시간 및 상기 가비지 컬렉션 레벨을 저장할 수 있다.
다른 실시 예로서, 상기 가비지 컬렉션을 수행하는 단계는 적어도 하나의 프리 블록을 생성하고, 생성된 프리블록의 개수에 기초하여 프리 블록 카운트 값을 변경하고, 상기 프리 블록 카운트 값과 최대 프리 블록 카운트 값을 비교하고, 상기 비교 결과에 따라 가비지 컬렉션을 종료할 수 있다. 상기 누적된 프리 블록 카운트의 값이 최대 프리 블록 카운트 값보다 같거나 큰 경우에 가비지 컬렉션을 종료할 수 있다. 상기 불휘발성 메모리는 3차원 플래시 메모리일 수 있다.
본 발명에 의하면, 메모리 시스템은 가비지 컬렉션 유닛을 이용하여, 유휴 시간 동안 적응적으로 가비지 컬렉션 동작을 수행함으로, 리드 동작과 라이트 동작의 응답 시간을 개선할 수 있다.
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2는 도 1에 도시된 메모리 컨트롤러를 예시적으로 보여주는 블록도이다.
도 3은 도 1에 도시된 메모리 컨트롤러의 또 다른 실시 예를 보여주는 블록도이다.
도 4는 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 5는 도 4에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다.
도 6은 도 5에 도시된 메모리 블록(BLK1)의 등가 회로도이다.
도 7은 도 1 및 도 2에 도시된 가비지 컬렉션 유닛(garbage collection unit)이 가비지 컬렉션(garbage collection)을 수행하고 프리 블록(free block)을 생성하는 동작을 보여준다.
도 8은 가비지 컬렉션 동작과 도1에 도시된 메모리 장치의 레이턴시의 관련성을 설명하는 도표이다.
도 9는 가비지 컬렉션 유닛의 동작을 설명하기 위한 순서도 이다.
도 10 및 도 11은 가비지 컬렉션 레벨을 생성하는 동작을 설명하기 위한 순서도이다.
도 12는 유효 페이지에 따른 유효 페이지 그룹을 설명하는 개념도 이다.
도 13은 각 블록당 유효 페이지 수와 유효 페이지 그룹 및 프리 블록 생성 시간을 포함하는 가비지 컬렉션 정보의 구성을 보여주는 도표이다.
도 14 내지 도 25는 도 2 및 도 3에 도시된 가비지 컬렉션 유닛의 동작을 설명하기 위한 도면이다.
도 26 및 도 27은 본 발명에 따른 메모리 시스템의 다양한 적용 예를 보여주는 블록도이다.
도 28은 본 발명의 실시 예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 29는 본 발명의 실시 예에 따른 메모리 시스템을 솔리드 스테이드 드라이브 시스템에(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 30은 도 29에 도시된 SSD 컨트롤러의 구성을 예시적으로 보여주는 블록도이다.
도 31은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
Ⅰ. 가비지 컬렉션 유닛을 포함하는 메모리 시스템
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 1을 참조하면, 본 발명에 따른 메모리 시스템(1000)은 메모리 장치(1100), 메모리 컨트롤러(1200) 및 호스트(1300)를 포함한다.
메모리 장치(1100)는 메모리 컨트롤러(1200)에 의해서 제어되며, 메모리 컨트롤러(1200)의 요청에 대응하는 동작들(예를 들면, 읽기 또는 쓰기 동작 등)을 수행할 수 있다. 메모리 장치(1100)는 복수의 메모리 블록을 포함할 수 있다.
메모리 컨트롤러(1200)는 메모리 장치(1100)와 호스트(1300) 사이에 연결된다. 메모리 컨트롤러(1200)는 호스트(1300)의 요청에 응답하여 메모리 장치(1100)에 대한 읽기 및 쓰기 동작들을 제어한다. 메모리 컨트롤러(1200)는 호스트(1300)로부터 호스트 데이터(Data_h)를 입력받고, 메모리 장치(1100)로 데이터(DATA)를 전송할 수 있다. 메모리 컨트롤러(1200)는 메모리 장치(1100)로 커멘드(CMA; command), 어드레스(ADDR; address), 데이터(DATA), 그리고 제어 신호(CTRL)를 제공할 수 있다.
계속해서 도 1을 참조하면, 메모리 컨트롤러(1200)는 가비지 컬렉션 유닛(1250, garbage collection unit)을 포함한다. 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 유효 데이터들을 모으고 무효 데이터를 삭제하는 가비지 컬렉션(garbage collection) 동작을 관리한다. 또한 가비지 컬렉션 유닛(1250)은 메모리 블록의 유효(valid) 페이지 수, 메모리 블록의 유휴 페이지 그룹, 프리 블록(free block) 생성시간, 가비지 컬렉션 레벨(garbage collection level) 및 가비지 컬렉션 트리거 레벨(garbage collection trigger level)을 포함하는 가비지 컬렉션 정보를 관리한다.
본 발명의 실시 예에 따른 메모리 시스템(1000)은 메모리 장치(1100)의 유휴시간에 가비지 컬렉션을 수행할 수 있다. 본 발명에 의하면, 메모리 장치(1100)의 유효 페이지의 비율을 고려하여 가비지 컬렉션 효율이 높을 때만 가비지 컬렉션을 수행할 수 있다. 본 발명에 의하면, 메모리 시스템(1000)은 메모리 장치(1100)의 리드 동작과 라이트 동작의 응답시간을 개선하고, 메모리 장치(1100)의 수명을 연장할 수 있다.
도 2는 도 1에 도시된 메모리 컨트롤러(1200)를 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 메모리 컨트롤러(1200a)는 시스템 버스(1210), 호스트 인터페이스(1220), 컨트롤 유닛(1230), RAM(Random Access Memory, 1240), 가비지 컬렉션 유닛(1250) 및 메모리 인터페이스(1260)를 포함한다.
시스템 버스(1210)는 호스트 인터페이스(1220), 컨트롤 유닛(1230), RAM(1240), 가비지 컬렉션 유닛(1250), 메모리 인터페이스(1260) 사이에 채널을 제공한다.
호스트 인터페이스(1220)는 특정한 통신 규격에 따라 호스트(도1 참조, 1300)와 통신할 수 있다. 예시적으로, 메모리 컨트롤러(1200)는 USB(Universal Serial Bus), PCI(Peripheral Componentb Interconnection), PCI-E(PCI-Express), ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI(Small Computer Small Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics), 그리고 파이어와이어(Firewire) 등과 같은 다양한 통신 규격들 중 적어도 하나를 통해 호스트(1300)와 통신 할 수 있다.
컨트롤 유닛(1230)은 호스트(1300)로부터 호스트 데이터(Data_h) 및 커맨드를 입력받고, 메모리 컨트롤러(1200)의 제반 동작을 제어할 수 있다.
RAM(1240)은 메모리 컨트롤러(1200)의 내부 동작의 동작 메모리, 캐시 메모리, 또는 버퍼 메모리 중 적어도 하나로 이용될 수 있다.
가비지 컬렉션 유닛(1250, garbage collection unit)은 도 1에 설명한 바와 같이 가비지 컬렉션 동작을 관리한다. 또한, 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 관련 정보를 생성하고, 저장 할 수 있다. 가비지 컬렉션 유닛(1250)의 동작 원리는 도 7 내지 도 15를 참조하여 상세하게 설명될 것이다.
메모리 인터페이스(1260)는 메모리 장치(1100)와 인터페이싱한다. 예를 들면, 메모리 인터페이스(1260)는 낸드 플래시 인터페이스 또는 VNAND(Vertical NAND) 인터페이스 등을 포함한다.
도 3은 도 1에 도시된 메모리 컨트롤러(1200)의 다른 실시 예를 보여주는 블록도이다. 도 3을 참조하면 메모리 컨트롤러(1200b)의 구성 요소는 도 3과 동일함으로 중복적인 설명은 생략하도록 한다. 도 3을 참조하면 가비지 컬렉션 유닛(1250)은 RAM(1240)에서 구동될 수 있다.
도 1에 도시된 메모리 장치(1100)는 2차원 구조를 갖는 플래시 메모리뿐만 아니라, 3차원 구조를 갖는 플래시 메모리(3D Flash Memory)에도 적용될 수 있다.
도 4는 도 1에 도시된 메모리 장치가 3차원 플래시 메모리임을 예시적으로 보여주는 블록도이다. 도 4를 참조하면, 메모리 장치(1100)는 3차원 셀 어레이(1110), 데이터 입출력 회로(1120), 어드레스 디코더(1130), 그리고 제어 로직(1140)을 포함한다.
3차원 셀 어레이(1110)는 3차원 셀 어레이(1110)는 복수의 메모리 블록(BLK1~BLKz)을 포함한다. 각각의 메모리 블록은 3차원 구조 (또는 수직 구조)를 가질 수 있다. 2차원 구조 (또는 수평 구조)를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수평 방향으로 형성된다. 그러나 3차원 구조를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수직 방향으로 형성된다. 각각의 메모리 블록은 메모리 장치(1100)의 소거 단위를 이룬다.
데이터 입출력 회로(1120)는 복수의 비트 라인(BLs)을 통해 3차원 셀 어레이(1110)와 연결된다. 데이터 입출력 회로(1120)는 외부로부터 데이터(DATA)를 입력받거나, 3차원 셀 어레이(1110)로부터 읽은 데이터(DATA)를 외부로 출력한다. 어드레스 디코더(1130)는 복수의 워드라인(WLs) 및 선택 라인(GSL, SSL)을 통해 3차원 셀 어레이(1110)와 연결된다. 어드레스 디코더(1130)는 어드레스(ADDR)를 입력받고 워드 라인을 선택한다.
제어 로직(1140)은 메모리 장치(1100)의 프로그램, 읽기, 소거 등의 동작을 제어한다. 예를 들면, 제어 로직(1140)은 프로그램 동작 시에, 어드레스 디코더(1130)를 제어함으로 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(1120)를 제어함으로 데이터가 프로그램되도록 할 수 있다.
도 5는 도 4에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다. 도 5를 참조하면, 메모리 블록(BLK1)은 기판(SUB)과 수직 방향으로 형성되어 있다. 기판(SUB)에는 n+ 도핑 영역이 형성된다. 기판(SUB) 위에는 게이트 전극막(gate electrode layer)과 절연막(insulation layer)이 교대로 증착된다. 그리고 게이트 전극막(gate electrode layer)과 절연막(insulation layer) 사이에는 전하 저장막(charge storage layer)이 형성될 수 있다.
게이트 전극막과 절연막을 수직 방향으로 패터닝(vertical patterning)하면, V자 모양의 필라(pillar)가 형성된다. 필라는 게이트 전극막과 절연막을 관통하여 기판(SUB)과 연결된다. 필라(Pillar)의 외곽 부분(O)은 채널 반도체로 구성될 수 있고, 내부(I)는 실리콘 산화물(Silicon Oxide)과 같은 절연 물질로 구성될 수 있다.
계속해서 도 5를 참조하면, 메모리 블록(BLK1)의 게이트 전극막(gate electrode layer)은 접지 선택 라인(GSL), 복수의 워드 라인(WL1~WL8), 그리고 스트링 선택 라인(SSL)에 연결될 수 있다. 그리고 메모리 블록(BLK1)의 필라(pillar)는 복수의 비트라인(BL1~BL3)과 연결될 수 있다. 도 5에서는, 하나의 메모리 블록(BLK1)이 2개의 선택 라인(GSL, SSL), 8개의 워드 라인(WL1~WL8), 그리고 3개의 비트 라인(BL1~BL3)을 갖는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다. 또한 2개의 선택 라인(SSL, GSL)과 워드 라인(WL) 사이에 적어도 하나 이상의 더미 워드 라인(미 도시)을 포함할 수 있다.
도 6은 도 5에 도시된 메모리 블록(BLK1)의 등가 회로도이다. 도 6을 참조하면, 비트 라인(BL1~BL3)과 공통 소스 라인(CSL) 사이에는 낸드 스트링(NS11 ~ NS33)이 연결되어 있다. 각각의 낸드 스트링(예를 들면, NS11)은 수트링 선택 트랜지스터(SST), 복수의 메모리 셀(MC1~MC8), 그리고 접지 선택 트랜지스터(GST)를 포함한다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(String Selection Line; SSL1~SSL3)에 연결되어 있다. 복수의 메모리 셀(MC1~MC8)은 각각 대응하는 워드 라인(WL1~WL8)에 연결되어 있다. 그리고 접지 선택 트랜지스터(GST)는 접지 선택 라인(Ground Selection Line; GSL)에 연결되어 있다. 스트링 선택 트랜지스터(SST)는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL; Common Source Line)에 연결되어 있다.
계속해서 도 6을 참조하면, 동일 높이의 워드라인(예를 들면, WL1) 및 접지 선택 라인(GSL)은 공통으로 연결되어 있고, 스트링 선택(SSL1~SSL3)은 분리되어 있다. 제 1 워드라인(WL1)에 연결되어 있고 낸드 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀(이하, 페이지라 함)을 프로그램하는 경우에는, 제 1 워드라인 (WL1)과 제 1 선택 라인(SSL)이 선택된다.
도 7은 도 1에 도시된 메모리 시스템의 가비지 컬렉션 유닛의 동작을 설명하기 위한 개념도이다. 도 7은 가비지 컬렉션 유닛(1250, 도 1 참조)이 유효 페이지(valid page; VP)의 데이터를 모으고 무효 페이지(invalid page)를 삭제하여 프리 블록(free block; FB)을 생성하는 가비지 컬렉션 동작을 보여준다.
도 7을 참조하면, 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 유휴 시간(idle time)이 기준 유휴 시간 보다 큰 경우에 가비지 컬렉션을 수행 할 수 있다. 또한, 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)에 데이터를 저장할 공간이나 프리 블록(FB)이 부족한 경우에 가비지 컬렉션을 수행할 수 있다. 플래시 메모리를 포함하는 메모리 시스템(1000, 도1)은 파일 데이터를 효율적으로 관리하고 시스템의 성능을 향상하기 위하여, 가비지 컬렉션을 수행한다.
계속해서 도 7을 참조하면, 메모리 시스템(1000)은 데이터를 제 1 및 제 2 메모리 블록(Block 1, Block2)에 저장한다. 데이터가 저장된 메모리 블록은 데이터 블록일 수 있다. 제 1 및 제 2 데이터 블록(Block1, Block2)의 유효 페이지(VP)가 시간이 지나면서 메모리 시스템(1000)의 상황에 따라 무효 페이지(Invalid page)로 변경될 수 있다.
복수의 데이터 블록(예를 들면, block1, block2)에서 무효 페이지(invalid page)가 생성되면, 메모리 컨트롤러(1200, 도 1 참조)의 가비지 컬렉션 유닛(1250)은 제 1 및 제 2 데이터 블록의 유효 페이지 데이터들(VP1~VP8)을 모아서 새로운 제 3 메모리 블록(Block3)에 프로그램할 수 있다(①). 이때, 데이터가 카피된 제 3 메모리 블록을 신규 데이터 블록이라 할 수 있다.
가비지 컬렉션 유닛(1250)은 제 1 및 제 2 데이터 블록들(Block1, Block2)의 유효 데이터가 제 3 데이터 블록(Block3)에 프로그램되면, 제 1 및 제 2 데이터 블록을 이레이즈 할 수 있다(②). 가비지 컬렉션 유닛(1250)은 이레이즈된 메모리 블록들을 프리 블록(Free Block; Block1, Block2)으로 분류할 수 있다(③). 생성된 프리 블록들(Free Block; Block1, Block2)은 메모리 시스템(1000)의 호스트(1300)로부터 전송된 데이터를 프로그램하기 위해 사용될 수 있다. 가비지 컬렉션 유닛(1250)은 상기 기술된 과정(①~③)으로 수행되는 가비지 컬렉션을 수행한다.
도 8a 및 도 8b는 가비지 컬렉션 동작과 도 1에 도시된 메모리 장치의 레이턴시의 관련성을 설명하는 도표이다. 도 8a 및 도 8b에서, 가로축은 시간을 나타내고, 세로축은 메모리 장치(1100, 도 1 참조)의 레이턴시를 나타낸다. 레이턴시는 메모리 장치(1100)가 리드 및 라이트(프로그램 또는 이레이즈) 동작을 수행하고 완료할 때까지 소요되는 시간이다.
도 8a를 참조하면, 메모리 장치(1100)는 T1구간 동안 수신받은 프로그램 명령을 수행한다. 프로그램 데이터를 저장할 공간이 부족한 경우에, 메모리 장치(1100)는 도 8a에 도시된 바와 같이 프로그램과 가비지 컬렉션을 수행한다. 프로그램과 가비지 컬렉션을 함께 수행하면, 메모리 장치(1100)의 레이턴시가 증가한다.
도 8b를 참조하면, 메모리 장치(1100)는 유휴 시간(Idle time)에 가비지 컬렉션을 수행한다. 메모리 장치(1100)가 유휴 시간(Idle time)에 가비지 컬렉션을 수행하면, 이후에 발생하는 프로그램 동작 수행 시, 프로그램 데이터를 저장할 수 있는 프리 블록(Free block)을 미리 생성할 수 있다. 따라서, 메모리 장치(1100)가 유휴 시간에 가비지 컬렉션을 수행하면, 메모리 장치(1100)의 리드나 프로그램 동작 중에 레이턴시가 증가하는 것을 방지할 수 있다.
도 9는 도 1에 도시된 가비지 컬렉션 유닛의 동작을 설명하기 위한 순서도이다.
S110 단계에서, 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 현재의 유휴 시간이 기준 유휴 시간보다 길거나 같은지를 판단한다. 여기에서, 메모리 장치(1100)의 현재 유휴 시간이란, 메모리 장치(1100)의 유휴 상태가 지속되는 시간을 의미한다. 기준 유휴 시간은 메모리 장치(1100)에 미리 설정된 값일 수 있다. 기준 유휴 시간은 메모리 시스템(1000)의 동작에 따라 변경될 수 있다.
가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 현재 유휴 시간이 기준 유휴 시간보다 길거나 같다면 S120 단계를 수행한다. 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 유휴 시간이 기준 유휴 시간보다 짧다면, S110 단계로 복귀하여 계속해서 메모리 장치(1100)의 현재 유휴 시간을 판단한다.
S120 단계에서, 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 현재 가비지 컬렉션 레벨(garbage collection level; GC level)을 생성한다. 가비지 컬렉션 레벨은 제 1 및 제 2 프리 블록(도 7 참조)을 생성하는 데 걸리는 시간을 기초로 생성될 수 있다. 제 1 및 제 2 프리 블록의 생성 시간은 제 1 및 제 2 메모리 블록(도 7 참조)의 유효 페이지 수를 이용하여 계산될 수 있다. 가비지 컬렉션 레벨은 메모리 제 1 및 제 2 프리 블록(도7 참조)을 생성하는데 걸리는 평균 프리 블록 생성 시간을 기초로 생성될 수 있다. 평균 프리 블록의 생성 시간은 제 1 및 제 2 메모리 블록(도 7 참조)의 유효 페이지 수를 이용하여 계산될 수 있다. 가비지 컬렉션 유닛(1250)이 가비지 컬렉션 레벨을 생성하는 방법은 도 10의 순서도에서 상세하게 설명될 것이다.
S130 단계에서, 현재 가비지 컬렉션 레벨이 가비지 컬렉션 트리거 레벨(garbage collection trigger level: GC trigger level)보다 작거나 같은지를 판단한다. 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 가비지 컬렉션 수행 여부 판단을 위해 가비지 컬렉션 트리거 레벨(GC trigger level)을 기준값으로 사용한다.
가비지 컬렉션 트리거 레벨은 미리 정해진 값일 수 있다. 가비지 컬렉션 트리거 레벨은 메모리 컨트롤러(1200)의 동작에 따라 변경 될 수 있다. 가비지 컬렉션 유닛(1250)은 현재 가비지 컬렉션 레벨(current GC level)이 가비지 컬렉션 트리거 레벨(GC trigger level)보다 작거나 같으면 S140 단계를 수행한다. 가비지 컬렉션 유닛(1250)은 현재 가비지 컬렉션 레벨이 가비지 컬렉션 트리거 레벨보다 크면 가비지 컬렉션을 수행하지 않고 종료한다.
S140 단계에서, 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 가비지 컬렉션을 트리거한다. 본 단계에서, 가비지 컬렉션 유닛(1250)은 프리 블록 카운트(Free block count; FB count)를 0으로 초기화한다.
S150 단계에서, 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 가비지 컬렉션을 수행한다. 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 수행시 프리 블록(free block)이 생성되면 프리 블록 카운트(FB count) 값을 증가시킨다.
S160 단계에서, 가비지 컬렉션 유닛(1250)은 높은 우선권을 갖는 입력 (high priority input; HPI)이나 새로운 커맨드(command; CMD)가 메모리 컨트롤러(1200)에 수신되었는지 확인한다. 높은 우선권을 갖는 입력(HPI)은 메모리 장치(1100)가 수행중인 동작을 중단하고 가장 먼저 수행되어야 하는 동작일 수 있다. 가비지 컬렉션 유닛(1250)은 메모리 컨트롤러(1200)가 높은 우선권을 갖는 입력(HPI)을 수신하였거나 새로운 커맨드를 수신하였다면 S180 단계를 수행하여 가비지 컬렉션을 종료한다. 가비지 컬렉션 유닛(1250)은 메모리 컨트롤러가 새로운 커맨드나 높은 우선권을 갖는 입력(HPI)를 수신하지 않았다면 S170 단계를 수행한다.
S170 단계에서, 가비지 컬렉션 유닛(1250)은 프리 블록 카운트(FB count)가 최대 프리 블록 카운트(Max FB count) 값보다 크거나 같은지를 판단한다. 최대 프리 블록 카운트(Max FB count)는 가비지 컬렉션 수행 시 생성할 수 있는 프리 블록의 최대 개수이다. 최대 프리 블록 카운트(Max FB count) 값은 미리 정해진 값 일수 있다. 가비지 컬렉션 유닛(1250)은 메모리 시스템의 동작 조건에 따라 최대 프리 블록 카운트(Max FB count)값을 가변할 수 있다. 가비지 컬렉션 유닛(1250)은 프리 블록 카운트(FB count)가 최대 프리 블록 카운트 값보다 크거나 같으면 S180 단계를 수행하여 가비지 컬렉션을 종료한다. 가비지 컬렉션 유닛(1250)은 프리 블록 카운트(FB count) 값이 최대 프리 블록 카운트 값보다 작으면 S150 단계를 수행한다.
S180 단계에서, 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 동작을 중단하거나 종료한다.
도 9의 순서도를 참조하면, 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 레벨을 생성하고, 가비지 컬렉션 레벨과 가비지 컬렉션 트리거 레벨을 비교하고, 비교 결과에 따라 가비지 컬렉션을 수행하되, 가비지 컬렉션 레벨은 메모리 장치(1100)의 프리 블록 생성 시간에 기초하여 생성될 수 있다.
도 10 및 도 11은 가비지 컬렉션 유닛(1250)이 가비지 컬렉션 레벨을 생성하는 동작을 설명하기 위한 순서도 이다. 도 10은 컬렉션 유닛(1250)이 평균 프리 블록 생성 시간에 기초하여 가비지 컬렉션 레벨을 생성하는 동작을 설명하기 위한 순서도 이다. 표 1, 표 2 및 도 12는 도 10과 도 11에 도시된 가비지 컬렉션 유닛의 동작을 설명하기 위한 도면들이다.
예시적으로, 본 발명의 다른 실시 예에 따른 메모리 장치(1100)의 각 페이지(또는 논리적 페이지)는 메모리 장치(1100)가 프로그램을 한번 수행할 때 저장하는 데이터의 단위 일 수 있다. 메모리 장치(1100)가 하나의 셀에 한 비트의 데이터를 저장하는 싱글 레벨 셀 (SLC; single level cell)인 경우에 하나의 물리적 페이지에 하나의 논리적 페이지 데이터가 저장될 수 있다. 메모리 장치(1100)가 하나의 셀에 적어도 두 비트의 데이터를 저장하는 멀티 레벨 셀(MLC; Multi level cell)인 경우에 하나의 물리적 페이지에 적어도 두 개의 논리적 페이지 데이터가 저장될 수 있다.
이하에서, 웨이(way)는 메모리 컨트롤러(1200)가 프로그램을 수행 할 때 한번에 동작 가능한 메모리 장치(1100)의 수이다. 예를 들어, 2웨이 이면, 메모리 컨트롤러(1200)는 한번에 두 개의 메모리 장치(1100)에 프로그램을 수행할 수 있다. 플래인(plane)은 한 개의 메모리 장치(1100)에서 동시에 프로그램을 수행할 수 있는 블록 수이다. 하나의 물리적 페이지에 프로그램되는 논리적 페이지 수는 메모리 장치(1100)가 SLC이면 하나의 물리적 페이지에 하나의 논리적 페이지가 저장 되므로 1이다. 메모리 장치(1100)가 2비트를 저장하는 MLC이면, 하나의 물리적 페이지에 프로그램되는 논리적 페이지 수는 하나의 물리적 페이지에 두 개의 논리적 페이지가 저장되므로 2이다.
간결한 설명을 위하여, 메모리 장치(1100)는 10개의 메모리 블록(block0 ~ block9)을 포함하고 각 블록은 100개의 페이지를 포함하는 것으로 가정한다. 또한, 메모리 장치(1100)는 SLC이고, 각 물리적 페이지는 하나의 논리적 페이지를 저장하고, 메모리 시스템(1000)의 웨이는 1이고 플래인도 1인 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
먼저, 도 10 및 도 12를 참조하면, S210 단계에서, 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 레벨을 계산하는 동작을 초기화한다. 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 레벨을 계산하는 과정에서 이용할 파라미터 i의 값을 0으로 초기화한다.
S220 단계에서, 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 각 메모리 블록의 유효 페이지 그룹 속성을 결정한다. 가비지 컬렉션 유닛(1250)은 미리 정해진 유효 페이지 개수나 비율에 기초하여 각 메모리 블록의 유효 페이지 그룹을 결정할 수 있다.
도 12를 참조하면, 가비지 컬렉션 유닛(1250)은 메모리 블록의 유효 페이지 비율이 12.5% 이하이면 제 1 유효 페이지 그룹, 12.5%보다 크고 25% 이하이면 제 2 유효 페이지 그룹, 25% 보다 크고 37.5% 이하이면 제 3 유효 페이지 그룹, 37.5% 보다 크고 50% 이하이면 제 4 유효 페이지 그룹으로 분류한다.
가비지 컬렉션 유닛(1250)이 가비지 컬렉션 레벨을 계산하기 위해 제 i 블록 i(block i)의 유효 페이지 수를 확인한다. 제 i 블록(block i)의 유효 페이지 수가 10개이면, 제 i 블록의 유효 페이지 비율은 10%이다. 제 i 블록의 유효 페이지 비율이 12.5%보다 작기 때문에 가비지 컬렉션 유닛(1250)은 제 i 블록을 제 1 유효 페이지 그룹으로 분류할 수 있다. 가비지 컬렉션 유닛(1250)은 제 i 블록의 유효 페이지 수가 50%이상 이면 가비지 컬렉션 수행 대상에서 제외할 수 있다.
S230 단계에서, 가비지 컬렉션 유닛(1250)은 i 값이 N보다 같거나 큰지 확인한다. N은 메모리 장치(1100)가 포함하는 메모리 블록의 총 개수 일 수 있다. 예를 들어, 메모리 장치(1100)가 10개의 메모리 블록을 포함하면, N 값은 10 일수 있다. 가비지 컬렉션 유닛(1250)은 i 값이 N보다 같거나 크면 S250 단계를 수행한다. 가비지 컬레션 유닛(1250)은 i 값이 N 값보다 작으면 S240 단계를 수행한다.
S240 단계에서, 가비지 컬렉션 유닛(1250)은 i 값을 1만큼 증가시킨 후 다음 메모리 블록의 유효 페이지 그룹 속성을 결정하도록 S220 단계를 수행한다. 예를 들어, i 값이 0이면, 가비지 컬렉션 유닛(1250)은 S220 단계에서 블록 0(block0)의 유효 페이지 그룹 속성을 결정한다. S240 단계에서, 가비지 컬레션 유닛(1250)은 i 값이 1로 변경되면, 제 1 블록(block1)의 유효 페이지 그룹 속성을 결정하기 위해 S220 단계를 수행한다.
S250 단계에서, 가비지 컬레션 유닛(1250)은 각 유효 페이지 그룹의 프리 블록 생성 시간(free block generation time)을 계산한다. 예를 들어, 제 1 유효 페이지 그룹에 속하는 메모리 블록의 최대 유효 페이지 수는 12개이다. 가비지 컬렉션 유닛(1250)은 제 1 유효 페이지 그룹의 최대 유효 페이지 수에 기초하여 프리 블록 생성 시간을 계산한다.
표 1은 가비지 컬렉션 유닛(1250)이 각 유효 페이지 그룹의 프리 블록 생성 시간을 계산한 결과이다. 표 1 및 도 12를 참조하면, 제 1 유효 페이지 그룹의 최대 유효 페이지 수가 N(N은 정수)이다. 제 2 유효 페이지 그룹의 최대 유효 페이지 수는 2N일 수 있다. 제 3 유효 페이지 그룹의 최대 유효 페이지 수는 3N일 수 있다. 제 4 유효 페이지 그룹의 최대 유효 페이지 수는 4N일 수 있다. 각 유효 페이지 그룹의 프리 블록 생성 시간(tFB)을 계산하는 공식은 다음과 같다.
tFB = 최대 유효 페이지 카운트 / (웨이 수*플래인 수* 하나의 물리적 페이지에 프로그램되는 논리적 페이지 수) * 물리적 페이지당 프로그램 시간
VP
group
Max valid page ratio Max page count FB Generation time
(t : Program time per physical page)
1 12.5% N N/(way*plane* logical page count per physical page)*t = T =tFB1
2 25% 2N 2N/(way*plane* logical page count per physical page)*t = 2T = tFB2
3 37.5% 3N 3N/(way*plane* logical page count per physical page)*t = 3T= tFB3
4 50% 4N 4N/(way*plane* logical page count per physical page)*t = 4T= tFB4
계속해서 표 1을 참조하면, 제 2 유효 페이지 그룹의 프리 블록 생성 시간(tFB2)은 제 1 유효 페이지 그룹의 프리 블록 생성 시간(tFB1)의 2배이다. 이는, 제 2 유효 페이지 그룹의 유효 페이지 수가 제 1 유효 페이지 그룹의 2배이기 때문이다. 제 3 유효 페이지 그룹의 프리 블록 생성 시간(tFB3)은 제 1 유효 페이지 그룹의 프리 블록 생성 시간(tFB1)의 3배이다. 제 4 유효 페이지 그룹의 프리 블록 생성시간(tFB4)은 제 1 유효 페이지 그룹의 프리 블록 생성 시간(tFB1)의 4배이다.
S260 단계에서, 가비지 컬렉션 유닛(1250)은 S250단계에서 계산된 각 유효 페이지 그룹의 프리 블록 생성 시간(tFB)를 이용하여 메모리 장치(1100)의 평균 프리 블록 생성 시간(tFBavg)를 계산한다. 가비지 컬렉션 유닛(1250)은 각 유효 페이지 그룹의 프리 블록 생성 시간(tFB1 ~ tFB4)을 모두 합산한다. 이후, 가비지 컬렉션 유닛(1250)은 합산된 값을 유효 페이지 그룹의 수(도 12를 참조하면 4개)로 나누어서 메모리 장치(1100)의 평균 프리 블록 생성 시간(tFBavg)을 생성할 수 있다.
S270 단계에서 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 가비지 컬렉션 레벨(GC level)을 결정한다. 표 2는 트리거 레벨에 따른 가비지 컬렉션 레벨을 설명하기 위한 표이다.
표 2를 참조하면, 가비지 컬렉션 유닛(1250)은 S260 단계에서 생성된 평균 프리 블록 생성 시간(tFBavg)에 기초하여 가비지 컬렉션 레벨을 결정한다. 가비지 컬렉션 유닛(1250)은 평균 프리 블록 생성 시간(tFBavg)과 표 2의 트리거 레벨을 비교한다. 메모리 장치(1100)의 평균 프리 블록 생성 시간이(tFBavg) A 값보다 작으면, 메모리 장치(1100)의 가비지 컬렉션 레벨은 0이다.
예를 들어, 트리거 레벨 A는 100ms(milli second), 트리거 레벨 B는 200ms, 트리거 레벨 C는 300ms, 트리거 레벨 D는 400ms 이고 평균 프리 블록 생성 시간(tFBavg)은 150ms 이다. 메모리 장치(1100)의 평균 프리 블록 생성 시간이 A의 보다 길고 B보다 짧기 때문에 메모리 장치(1100)의 가비지 컬렉션 레벨은 1이다. 만약 평균 프리 블록 생성 시간이 350ms 이면 메모리 장치(1100)의 가비지 컬렉션 레벨은 3이다.
GC level Trigger level
0 A
1 B
2 C
3 D
도 11은 컬렉션 유닛(1250)이 최대 프리 블록 생성 시간에 기초하여 가비지 컬렉션 레벨을 생성하는 동작을 설명하기 위한 순서도 이다.
S310 단계에서, 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 레벨을 계산하는 동작을 초기화한다. 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 레벨을 계산하는 과정에서 이용할 파라미터 i 값을 0으로 초기화한다.
S320 단계에서, 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 각 블록들의 유효 페이지 그룹 속성을 결정한다. 가비지 컬렉션 유닛(1250)은 미리 정해진 유효 페이지 개수나 비율에 기초하여 각 메모리 블록의 유효 페이지 그룹을 결정할 수 있다. S320 단계의 동작은 도 10의 S220 단계의 동작과 유사하므로 자세한 설명은 생략하기로 한다.
S330 단계에서, 가비지 컬렉션 유닛(1250)은 i 값이 N보다 크거나 같은지를 판단한다. N은 메모리 장치(1100)가 포함하는 메모리 블록의 총 개수 일 수 있다. 예를 들어, 메모리 장치(1100)가 10개의 메모리 블록을 포함한다고 하면, N 값은 10 일수 있다. 가비지 컬렉션 유닛(1250)은 i 값이 N보다 크거나 같으면 S350 단계를 수행한다. 가비지 컬레션 유닛(1250)은 i 값이 N 값보다 작으면 S340 단계를 수행한다.
S340 단계에서, 가비지 컬렉션 유닛(1250)은 i 값을 1만큼 증가시킨 후 다음 메모리 블록의 유효 페이지 그룹 속성을 결정하도록 S320 단계를 수행한다. 예를 들어, i 값이 0이면, 가비지 컬렉션 유닛(1250)은 S320 단계에서 블록0 (block0)의 유효 페이지 그룹 속성을 결정한다. S340 단계에서, 가비지 컬레션 유닛(1250)은 i 값이 1로 변경되면, 제 1 블록(block1)의 유효 페이지 그룹 속성을 결정하기 위해 S320 단계를 수행한다.
S350 단계에서, 가비지 컬레션 유닛(1250)은 각 유효 페이지 그룹의 프리 블록 생성 시간(free block generation time)을 계산한다. S350 단계의 동작은 도 10의 S250 단계의 동작과 유사하므로 자세한 설명은 생략하기로 한다.
S360 단계에서, 가비지 컬렉션 유닛(1250)은 S350단계에서 계산된 각 유효 페이지 그룹의 프리 블록 생성 시간(tFB)를 이용하여 메모리 장치(1100)의 최대 프리 블록 생성 시간(tFBmax)를 계산한다. 가비지 컬렉션 유닛(120)이 가비지 컬렉션 동작을 수행할 때, 생성하는 최대 프리 블록의 수를 최대 프리 블록 카운트(max free block count)라고 한다. 각 유효 페이지 그룹이 포함하는 메모리 블록의 수와 프리 블록 생성 시간을 참조하여, 최대 프리 블록 카운트 값만큼의 프리 블록을 생성하는 최대 프리 블록 생성 시간(tFBmax)을 계산한다.
S370 단계에서, 가비지 컬렉션 유닛(1250)은 S360 단계에서 생성된 최대 프리 블록 생성 시간(tFBmax)에 기초하여 메모리 장치(1100)의 가비지 컬렉션 레벨(GC level)을 결정한다.
표 2를 참조하면, 가비지 컬렉션 유닛(1250)은 최대 프리 블록 생성 시간(tFBmax)과 표 2의 트리거 레벨을 비교한다. 메모리 장치(1100)의 최대 프리 블록 생성 시간(tFBmax)이 A보다 작으면, 메모리 장치(1100)의 가비지 컬렉션 레벨(GC level)은 0이다. 예를 들어, 트리거 레벨 A의 값이 300ms, B는 500ms, C는 700ms, D는 900ms 이고 최대 프리 블록 생성 시간(tFBmax)은 450ms 이다. 메모리 장치(1100)의 최대 프리 블록 생성 시간이 A의 보다 길고 B의 보다 짧기 때문에 메모리 장치(1100)의 가비지 컬렉션 레벨은 1이다. 만약 최대 프리 블록 생성 시간(tFBmax)이 800ms 이면 메모리 장치(1100)의 가비지 컬렉션 레벨은 4이다.
다음으로, 도 12 및 도 13을 참조하여 메모리 시스템(1000)의 동작이 더욱 상세하게 설명된다.
도 13은 각 블록당 유효 페이지 수와 유효 페이지 그룹 및 프리 블록 생성 시간을 포함하는 가비지 컬렉션 정보의 구성을 보여주는 도표이다. 설명의 편의를 위해, 각 블록은 100개의 페이지(또는 논리적 페이지)를 포함하고, 하나의 페이지를 프로그램하는 시간은 5ms(milli second)라고 가정하자.
도 12 및 도 13을 참조하면, 제 1 블록은 유효 페이지 수가 10이다. 제 1 블록의 유효 페이지 비율은 10%이고, 제 1 유효 페이지 그룹에 속한다. 가비지 컬렉션 유닛(1250)이 제 1 블록에 대한 가비지 컬렉션을 수행할 때 프리 블록 생성 시간은 10*5ms =50ms 이다. 제 2 블록의 유효 페이지 수는 20이고 유효 페이지 비율은 20%이다. 제 2 블록은 제 2 유효 페이지 그룹에 포함된다. 제 2 블록의 프리 블록 생성 시간은 20*5ms =100ms 이다.
제 3 블록의 유효 페이지 수는 30이고 유효 페이지 비율은 30%이다. 제 3 블록의 유효 페이지 비율은 제 2 유효 페이지 그룹의 최대값 보다 크고 제 3 유효 페이지 그룹의 최대값 보다 작다. 제 3 블록은 제 3 유효 페이지 그룹에 포함된다. 제 N 블록의 유효 페이지 수는 45이고, 유효 페이지 비율은 45%이다. 제 N 블록의 유효 페이지 비율은 제 3 유효 페이지 그룹의 최대값보다 크고 제 4 유효 페이지 그룹의 유효 페이지 비율 최대값보다 작다. 제 N 블록은 제 4 유효 페이지 그룹에 포함된다.
도 13에 기술된 각 블록의 유효 페이지 수, 유효 페이지 그룹 및 프리 블록 생성 시간이 포함된 가비지 컬렉션 정보는 메모리 컨트롤러(1200)의 RAM(1240, 도 2)에 저장될 수 있다.
도 14 내지 도 16은 도 2 및 도 3에 도시된 가비지 컬렉션 유닛의 동작을 설명하기 위한 도면이다. 도 14 내지 도 16을 참조하여, 도 9 및 도 10의 순서도에 따른 가비지 컬렉션 동작이 상세히 설명될 것이다. 예시적으로, 도 14의 메모리 장치(1100)의 가비지 컬렉션 대상 블록은 총 46개이다.
도 14를 참조하면, 메모리 블록의 유효 페이지 비율이 12.5% 이하인 제 1 유효 페이지 그룹에 속하는 블록은 1개이다. 메모리 블록의 유효 페이지 비율이 12.5%를 초과하고 25% 이하인 제 2 유효 페이지 그룹에 속하는 블록은 24개이다. 메모리 블록의 유효 페이지 비율이 25%를 초과하고 37.5% 이하인 제 3 유효 페이지 그룹에 속하는 블록은 11개이다. 메모리 블록의 유효 페이지 비율이 37.5%를 초과하고 50% 이하인 제 4 유효 페이지 그룹에 속하는 블록은 10개이다.
도 15는 도 14의 각 유효 페이지 그룹별 블록 수, 프리 블록 생성 시간 및 메모리 장치의 평균 프리 블록 생성 시간을 예시적으로 보여주는 도표이다.
도 15를 참조하면, 제1 유효 페이지 그룹은 1개의 블록을 포함한다. 예시적으로, 제1 유효 페이지 그룹이 1개의 프리 블록 생성 시간(tFB1)은 16ms 이라고 가정하자. 제2 유효 페이지 그룹의 유효 페이지 수는 제1 유효 페이지 그룹의 최대 유효 페이지 수의 2배이다. 따라서 제2 유효 페이지 그룹의 프리 블록 생성 시간(tFB2)은 32ms 이다. 제3 유효 페이지 그룹의 유효 페이지 수는 제 1 유효 페이지 그룹의 최대 유효 페이지 수의 3배이기 때문에 제3 유효 페이지 그룹의 프리 블록 생성 시간(tFB3)은 48ms 이다. 제 4 유효 페이지 그룹의 유효 페이지 수는 제1 유효 페이지 그룹의 최대 유효 페이지 수의 4배이기 때문에 제 4 유효 페이지 그룹의 프리 블록 생성 시간(tFB4)은 64ms 이다.
평균 프리 블록 생성 시간은 각 유효 페이지 그룹의 프리 블록 생성 시간과 메모리 블록 개수에 기초하여 계산할 수 있다. 도 15를 참조하면, 메모리 장치(1100)의 평균 프리 블록 생성 시간은 42ms이다.
도 16은 도 14의 메모리 시스템의 가비지 컬렉션 레벨과 그에 따른 평균 프리 블록 생성 시간을 예시적으로 보여주는 도표이다. 도 16을 참조하면, 메모리 시스템(1000)은 총 4개의 가비지 컬렉션 레벨을 갖는다.
가비지 컬렉션을 수행하는 기준이 되는 가비지 컬렉션 레벨을 가비지 컬렉션 트리거 레벨(garbage collection trigger level) 이라고 칭한다. 메모리 시스템(1000)은 구동 환경에 따라 가비지 컬렉션 트리거 레벨을 변경하기 위해 다수개의 가비지 컬레션 레벨을 구비할 수 있다. 다수개의 가비지 컬렉션 레벨은 메모리 컨트롤러(1200)나 메모리 장치(1100)에 저장될 수 있다. 예시적으로, 메모리 시스템(1000)의 가비지 컬렉션 트리거 레벨은 1이라고 가정하자. 다시 말해, 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 레벨이 1 이하 일 때, 가비지 컬렉션을 수행한다.
다시 도 15를 참조하면, 메모리 장치(1100)의 평균 프리 블록 생성 시간(tFBavg)은 42ms 이다. 도 16을 참조하면, 평균 프리 블록 생성 시간(tFBavg)이 42ms이면, 가비지 컬렉션 레벨은 0이다. 즉, 메모리 시스템(1000)의 가비지 컬렉션 트리거 레벨은 1이고, 메모리 장치(1100)의 가비지 컬렉션 레벨은 0이다. 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 가비지 컬렉션 레벨이 1보다 작기 때문에 가비지 컬렉션을 수행한다.
도 17 내지 도 19는 도 2 및 도 3에 도시된 가비지 켈렉션 유닛의 동작을 보여주는 다른 실시 예이다.
도 17을 참조하면, 메모리 장치(1100)의 가비지 컬렉션 대상 블록은 총 53개이다. 제 1 유효 페이지 그룹에 속하는 블록은 1개이고, 제 2 유효 페이지 그룹에 속하는 블록은 3개이고, 제 3 유효 페이지 그룹에 속하는 블록은 9개이며, 제 4 유효 페이지 그룹에 속하는 블록은 40개이다.
도 18을 참조하면, 제1 유효 페이지 그룹은 1개의 블록을 포함한다. 제2 유효 페이지 그룹은 3개의 블록을 포함한다. 제3 유효 페이지 그룹은 9개의 블록을 포함한다. 제4 유효 페이지 그룹은 40개의 블록을 포함한다. 각 유효 페이지 그룹의 프리 블록 생성 시간과 메모리 블록 개수에 기초하여 메모리 장치(1100)의 평균 프리 블록 생성 시간을 생성한다. 도 18을 참조하면, 메모리 장치(1100)의 평균 프리 블록 생성 시간은 58ms이다.
도 19를 참조하면, 메모리 시스템(1000)의 가비지 컬렉션 트리거 레벨은 1이다. 도 18에서 설명한 바와 같이, 메모리 장치(1100)의 평균 프리 블록 생성 시간(tFBavg)은 58ms 이다. 따라서 가비지 컬렉션 레벨은 2에 해당 된다. 즉, 메모리 시스템(1000)의 가비지 컬렉션 트리거 레벨은 1이고, 메모리 장치(1100)의 가비지 컬렉션 레벨은 2이다. 가비지 컬렉션 유닛(1250)은 메모리 장치(1100)의 가비지 컬렉션 레벨이 1보다 크기 때문에 가비지 컬렉션을 수행하지 않는다.
도 20 내지 도 22는 도 2 및 도 3에 도시된 가비지 컬렉션 유닛의 동작을 보여주는 또 다른 실시 예이다. 도 20 내지 도 22를 참조하여, 도 9 및 도 11의 순서도에 따른 가비지 컬렉션의 동작이 상세히 설명될 것이다.
도 20을 참조하면, 메모리 장치(1100)의 가비지 컬렉션 대상 블록은 총 46개이다. 제1 유효 페이지 그룹에 속하는 블록은 1개이다. 제2 유효 페이지 그룹에 속하는 블록은 24개이다. 제3 유효 페이지 그룹에 속하는 블록은 11개이다. 제4 유효 페이지 그룹에 속하는 블록은 10개이다.
도 21은 도 20의 각 유효 페이지 그룹별 블록 수, 프리 블록 생성 시간 및 메모리 장치(1100)의 최대 프리 블록 생성 시간을 예시적으로 보여주는 도표이다.
도 21을 참조하면, 가비지 컬렉션 유닛(1250)은 각 유효 페이지 그룹의 프리 블록 생성 시간과 메모리 블록 개수에 기초하여 메모리 장치(1100)의 최대 프리 블록 생성 시간을 생성한다. 최대 프리 블록 생성 시간이란 가비지 컬렉션 유닛(1250)이 최대 프리 블록 카운트 수만큼의 프리 블록을 생성하는데 걸리는 시간이다.
도 21을 참조하면, 예시적으로, 최대 프리 블록 카운트는 5라고 가정한다. 가비지 컬렉션 유닛(1250)은 최대 5개의 프리 블록을 생성한다. 가비지 컬렉션 유닛(1250)은 제 1 유효 페이지 그룹에 속하는 메모리 블록 1개와 제2 유효 페이지 그룹에 속하는 메모리 블록 4개를 사용하여 5개의 프리 블록을 생성한다. 이때, 메모리 장치(1100)의 최대 프리 블록 생성 시간(tFBmax)은 144ms 이다.
도 22는 도 20의 메모리 시스템의 가비지 컬렉션 레벨과 그에 따른 최대 프리 블록 생성 시간을 예시적으로 보여주는 도표이다. 도 22를 참조하면, 메모리 시스템(1000)은 총 4개의 가비지 컬렉션 레벨을 갖는다. 예시적으로, 메모리 시스템(1000)의 가비지 컬렉션 트리거 레벨은 1이라고 가정하자. 다시 말해, 가비지 컬렉션 유닛(1250)은 가비지 컬렉션 레벨이 1 이하 일 때, 가비지 컬렉션을 수행한다.
도 21에서 설명한 바와 같이, 메모리 장치(1100)의 최대 프리 블록 생성 시간(tFBmax)은 144ms 이다. 도 22를 참조하면, 가비지 컬렉션 레벨은 0이다. 메모리 시스템(1000)의 가비지 컬렉션 트리거 레벨은 1이고, 메모리 장치(1100)의 가비지 컬렉션 레벨은 0이다. 가비지 컬레션 유닛(1250)은 메모리 장치의 가비지 컬렉션 레벨이 1보다 작기 때문에 가비지 컬렉션을 수행한다.
도 23 내지 도 25는 도 2 및 도 3에 도시된 가비지 컬렉션 유닛의 동작을 보여주는 또 다른 실시 예이다. 도 23을 참조하면, 메모리 장치(1100)의 가비지 컬렉션 대상 블록은 총 51개이다. 제1 유효 페이지 그룹에 속하는 블록은 1개이다. 제2 유효 페이지 그룹에 속하는 블록은 1개이다. 제3 유효 페이지 그룹에 속하는 블록은 9개이다. 제4 유효 페이지 그룹에 속하는 블록은 40개이다.
도 24를 참조하면, 최대 프리 블록 카운트는 5라고 가정한다. 가비지 컬렉션 유닛(1250)은 최대 5개의 프리 블록을 생성한다. 가비지 컬렉션 유닛(1250)은 제 1 유효 페이지 그룹에 속하는 메모리 블록 1개, 제2 유효 페이지그룹에 속하는 메모리 블록 1개, 그리고 제3 유효 페이지 그룹에 속하는 메모리 블록 3개를 사용하여, 총 5개의 프리 블록을 생성한다. 이때, 메모리 장치(1100)의 최대 프리 블록 생성 시간(tFBmax)은 192ms이다.
도 25를 참조하면, 메모리 장치(1100)의 최대 프리 블록 생성 시간(tFBmax)이 192ms이기 때문에, 가비지 컬렉션 레벨은 2에 해당 된다. 메모리 시스템(1000)의 가비지 컬렉션 트리거 레벨은 1이고, 메모리 장치(1100)의 가비지 컬렉션 레벨은 2이다. 가비지 컬레션 유닛(1250)은 메모리 장치(1100)의 가비지 컬렉션 레벨이 1보다 크기 때문에 가비지 컬렉션을 수행하지 않는다.
도 26 및 도 27은 본 발명에 따른 메모리 시스템의 다양한 적용 예를 보여주는 블록도이다. 도 26 및 도 27을 참조하면, 메모리 시스템(2000a, 2000b)은 저장 장치(2100a, 2100b) 및 호스트(2200a, 2200b)를 포함한다. 저장 장치(2100a, 2100b)는 플래시 메모리(2110a, 2110b) 및 메모리 컨트롤러(2120a, 2120b)를 포함한다.
저장 장치(2100a, 2100b)는 메모리 카드(예를 들면, SD, MMC 등)나 착탈 가능한 이동식 저장 장치(예를 들면, USB 메모리 등)와 같은 저장 매체를 포함한다. 저장 장치(2100a, 2100b)는 호스트(2200a, 2200b)와 연결되어 사용될 수 있다. 저장 장치(2100a, 2100b)는 호스트 인터페이스를 통해 호스트와 데이터를 주고 받는다. 저장 장치(2100a, 2100b)는 호스트(2200a, 2200b)로부터 전원을 공급받아서 내부 동작을 수행할 수 있다.
도 26을 참조하면, 가비지 컬렉션 유닛(2101a)은 플래시 메모리(2110a) 내에 포함될 수 있다. 도 27을 참조하면, 가비지 컬렉션 유닛(2201b)은 호스트(2200b) 내에 포함될 수 있다. 본 발명의 실시 예에 따른 메모리 시스템(2000a, 2000b)은 가비지 컬렉션 유닛(2101a, 2201b)을 이용하여, 메모리 장치의 유휴 시간에 가비지 컬렉션을 수행하여 리드 동작과 라이트 동작의 응답시간을 개선할 수 있다.
도 28은 본 발명의 실시 예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(3000)은 호스트(3100)와 메모리 카드(3200)를 포함한다. 호스트(3100)는 호스트 컨트롤러(3110), 호스트 접속 유닛(3120), 그리고 디램(3130)을 포함한다.
호스트(3100)는 메모리 카드(3200)에 데이터를 쓰거나, 메모리 카드(3200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(3110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(3100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(3120)을 통해 메모리 카드(3200)로 전송한다. 디램(3130)은 호스트(3100)의 메인 메모리이다.
메모리 카드(3200)는 카드 접속 유닛(3210), 카드 컨트롤러(3220), 그리고 플래시 메모리(3230)를 포함한다. 카드 컨트롤러(3220)는 카드 접속 유닛(3210)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(3220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(3230)에 저장한다. 플래시 메모리(3230)는 호스트(3100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(3100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 28에 도시된 메모리 카드 시스템(3000)은 호스트 컨트롤러(3110), 카드 컨트롤러(3220), 또는 플래시 메모리(3230) 내에 가비지 컬렉션 유닛(도시되지 않음)을 포함할 수 있다. 앞에서 설명한 바와 같이, 본 발명은 메모리 시스템의 가비지 컬렉션 유닛을 이용하여, 유휴 시간 동안 적응적으로 가비지 컬렉션 동작을 수행함으로써 리드 동작과 라이트 동작의 응답 시간을 개선할 수 있다.
도 29는 본 발명의 실시 예에 따른 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 29을 참조하면, SSD 시스템(4000)은 호스트(4100)와 SSD(4200)를 포함한다. 호스트(4100)는 호스트 인터페이스(4111), 호스트 컨트롤러(4120), 그리고 디램(4130)을 포함한다.
호스트(4100)는 SSD(4200)에 데이터를 쓰거나, SSD(4200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(4120)는 커맨드, 어드레스, 제어 신호 등의 신호(SGL)를 호스트 인터페이스(4111)를 통해 SSD(4200)로 전송한다. 디램(4130)은 호스트(4100)의 메인 메모리이다.
SSD(4200)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 4221)를 통해 전원을 입력받는다. SSD(4200)는 복수의 불휘발성 메모리(4201~420n), SSD 컨트롤러(4210), 그리고 보조 전원 장치(4220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(4201~420n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(4201~420n)는 SSD(4200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(4201~420n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(4210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(4210)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(4210)는 호스트(4100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(4210)의 내부 구성은 도 30을 참조하여 상세하게 설명된다.
보조 전원 장치(4220)는 전원 커넥터(4221)를 통해 호스트(4100)와 연결된다. 보조 전원 장치(4220)는 호스트(4100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(4220)는 SSD(4200) 내에 위치할 수도 있고, SSD(4200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4220)는 메인 보드에 위치하며, SSD(4200)에 보조 전원을 제공할 수도 있다.
도 30은 도 29에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다. 도 30을 참조하면, SSD 컨트롤러(4210)는 NVM 인터페이스(4211), 호스트 인터페이스(4212), 마이그레이션 관리자(4213), 제어 유닛(4214), 그리고 에스램(4215)을 포함한다.
NVM 인터페이스(4211)는 호스트(4100)의 메인 메모리로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(4211)는 불휘발성 메모리(4201~420n)로부터 읽은 데이터를 호스트 인터페이스(4212)를 경유하여 호스트(4100)로 전달한다.
호스트 인터페이스(4212)는 호스트(4100)의 프로토콜에 대응하여 SSD(4200)와의 인터페이싱을 제공한다. 호스트 인터페이스(4212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(4100)와 통신할 수 있다. 또한, 호스트 인터페이스(4212)는 호스트(4100)가 SSD(4200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
가비지 컬렉션 유닛(4213)은 앞에서 설명한 바와 같이 불휘발성 메모리(4201~420n)의 가비지 컬렉션 동작을 관리할 수 있다. 제어 유닛(4214)은 호스트(4100)로부터 입력된 신호(SGL)를 분석하고 처리한다. 제어 유닛(4214)은 호스트 인터페이스(4212)나 NVM 인터페이스(4211)를 통해 호스트(4100)나 불휘발성 메모리(4201~420n)를 제어한다. 제어 유닛(4214)은 SSD(4200)을 구동하기 위한 펌웨어에 따라서 불휘발성 메모리(4201~420n)의 동작을 제어한다.
에스램(4215)은 불휘발성 메모리(4201~420n)의 효율적 관리를 위해 사용되는 소프트웨어(S/W)를 구동하는 데 사용될 수 있다. 또한, 에스램(4215)은 호스트(4100)의 메인 메모리로부터 입력받은 메타 데이터를 저장하거나, 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 에스램(4215)에 저장된 메타 데이터나 캐시 데이터는 보조 전원 장치(4220)를 이용하여 불휘발성 메모리(4201~420n)에 저장될 수 있다.
다시 도 30을 참조하면, 본 발명의 실시 예에 따른 SSD 시스템(4000)은 앞에서 설명한 바와 같이, 메모리 시스템의 가비지 컬렉션 유닛을 이용하여, 유휴 시간 동안 적응적으로 가비지 컬렉션 동작을 수행함으로써 리드 동작과 라이트 동작의 응답 시간을 개선할 수 있다.
도 31은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(5000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 31을 참조하면, 전자 장치(5000)는 메모리 시스템(5100), 전원 장치(5200), 보조 전원 장치(5250), 중앙처리장치(5300), 디램(5400), 그리고 사용자 인터페이스(5500)를 포함한다. 메모리 시스템(5100)은 플래시 메모리(5110) 및 메모리 컨트롤러(5120)를 포함한다. 메모리 시스템(5100)은 전자 장치(5000)에 내장될 수 있다.
앞에서 설명한 바와 같이, 본 발명에 따른 전자 장치(5000)는 메모리 시스템의 가비지 컬렉션 유닛을 이용하여, 유휴 시간 동안 적응적으로 가비지 컬렉션 동작을 수행함으로써 리드 동작과 라이트 동작의 응답 시간을 개선할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000: 메모리 시스템 1100: 메모리 장치
1200: 메모리 컨트롤러 1300: 호스트
1210: 시스템 버스 1220: 호스트 인터페이스
1230: 컨트롤 유닛 1240: RAM
1250: 가비지 컬렉션 유닛 1260: 메모리 인터페이스
1110: 3차원 셀 어레이 1110: 3차원 셀 어레이
1130: 어드레스 디코더 1140: 제어 로직

Claims (20)

  1. 복수의 메모리 블록을 갖는 불휘발성 메모리; 및
    가비지 컬렉션 유닛을 갖는 메모리 컨트롤러를 포함하되,
    상기 가비지 컬렉션 유닛은 가비지 컬렉션 레벨을 생성하고, 가비지 컬렉션 레벨과 가비지 컬렉션 트리거 레벨을 비교하고, 상기 비교 결과에 따라 가비지 컬렉션을 수행하되, 상기 가비지 컬렉션 레벨은 상기 불휘발성 메모리의 프리 블록 생성 시간에 기초하여 생성되는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 불휘발성 메모리의 프리 블록 생성 시간은 평균 프리 블록 생성 시간 또는 최대 프리 블록 생성 시간인 메모리 시스템.
  3. 제 2 항에 있어서,
    상기 메모리 컨트롤러는, 상기 복수의 메모리 블록 각각의 유효 페이지 수에 따라 각각의 상기 복수의 메모리 블록의 유효 페이지 그룹을 결정하고, 적어도 두 개 이상의 유효 페이지 그룹의 프리 블록 생성 시간을 계산함으로, 상기 가비지 컬렉션 레벨을 생성하는 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 메모리 컨트롤러는, 상기 각각의 유효 페이지 그룹의 프리 블록 생성 시간에 기초하여 불휘발성 메모리의 평균 프리 블록 생성 시간을 계산하고,
    상기 계산된 평균 프리 블록 생성 시간을 이용하여 상기 불휘발성 메모리의 가비지 컬렉션 레벨을 결정하는 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 메모리 컨트롤러는, 각각의 메모리 블록의 유효 페이지 수와 유효 페이지 그룹을 저장하고, 상기 불휘발성 메모리의 평균 프리 블록 생성 시간 및 상기 가비지 컬렉션 레벨을 저장하기 위한 램(RAM)을 포함하는 메모리 시스템.
  6. 제 3 항에 있어서,
    상기 메모리 컨트롤러는, 상기 각각의 유효 페이지 그룹의 프리 블록 생성 시간을 이용하여 최대 프리 블록 생성 시간을 계산하고, 상기 계산된 최대 프리 블록 생성 시간에 기초하여 상기 불휘발성 메모리의 가비지 컬렉션 레벨을 결정하되,
    상기 최대 프리 블록 생성 시간은 최대 프리 블록 수의 프리 블록들을 생성하는데 걸리는 시간인 메모리 시스템.
  7. 제 6 항에 있어서,
    상기 메모리 컨트롤러는, 각각의 메모리 블록의 유효 페이지 수와 유효 페이지 그룹을 저장하고, 상기 불휘발성 메모리의 최대 프리 블록 생성 시간 및 상기 가비지 컬렉션 레벨을 저장하는 메모리 시스템.
  8. 제 2 항에 있어서,
    상기 가비지 컬렉션 유닛은 상기 가비지 컬렉션을 수행하여 프리 블록을 생성하고,
    생성된 프리 블록의 개수에 기초하여 프리 블록 카운트 값을 변경하고,
    상기 변경된 프리 블록 카운트 값과 최대 프리 블록 카운트 값을 비교하고,
    상기 비교 결과에 따라 가비지 컬렉션을 종료하는 메모리 시스템.
  9. 제 8 항에 있어서,
    상기 가비지 컬렉션 유닛은 상기 변경된 프리 블록 카운트의 값이 최대 프리 블록 카운트 값보다 크거나 같은 경우에 가비지 컬렉션을 종료하는 메모리 시스템.
  10. 제 1 항에 있어서,
    상기 가비지 컬렉션 유닛은 상기 불휘발성 메모리의 유휴 시간이 기준 유휴 시간보다 긴 경우에 상기 가비지 컬렉션 레벨을 생성하는 메모리 시스템.
  11. 제 1 항에 있어서,
    상기 가비지 컬렉션 유닛은 상기 불휘발성 메모리의 데이터 저장 공간이 부족한 경우에 상기 가비지 컬렉션 레벨을 생성하는 메모리 시스템.
  12. 메모리 시스템의 동작 방법에 있어서:
    상기 메모리 시스템은 복수의 메모리 블록을 갖는 불휘발성 메모리와 가비지 컬렉션 유닛을 갖는 메모리 컨트롤러를 포함하고,
    상기 메모리 시스템의 동작 방법은,
    가비지 컬렉션 레벨을 생성하고,
    상기 가비지 컬렉션 레벨과 가비지 컬렉션 트리거 레벨를 비교하고,
    상기 비교 결과에 따라 가비지 컬렉션을 수행하되
    상기 가비지 컬렉션 레벨은 상기 불휘발성 메모리의 평균 프리 블록 생성 시간에 기초하여 생성되는 메모리 시스템의 동작 방법.
  13. 제 12 항에 있어서,
    상기 가비지 컬렉션 레벨을 생성하는 단계는,
    상기 복수의 메모리 블록의 유효 페이지 수에 따라 각각의 메모리 블록의 유효 페이지 그룹을 결정하고,
    각 유효 페이지 그룹의 프리 블록 생성 시간을 계산하고,
    상기 각각의 유효 페이지 그룹의 프리 블록 생성 시간에 기초하여 상기 불휘발성 메모리의 평균 프리 블록 생성 시간을 계산하고,
    상기 계산된 평균 프리 블록 생성 시간을 이용하여 상기 불휘발성 메모리의 가비지 컬렉션 레벨을 생성하는 메모리 시스템의 동작 방법.
  14. 제 13 항에 있어서,
    상기 메모리 컨트롤러는 램(RAM)을 포함하고;
    상기 가비지 컬렉션 레벨을 생성하는 단계는,
    상기 유효 페이지 수와 상기 유효 페이지 그룹, 상기 불휘발성 메모리의 평균 프리 블록 생성 시간 및 상기 가비지 컬렉션 레벨을 상기 램(RAM)에 저장하는 메모리 시스템의 동작 방법.
  15. 제 12 항에 있어서,
    상기 가비지 컬렉션 레벨을 생성하는 단계는, 상기 불휘발성 메모리의 유휴 시간이 기준 유휴 시간보다 길 때 또는 상기 불휘발성 메모리의 데이터 저장 공간이 부족할 때 수행되는 메모리 시스템의 동작 방법.
  16. 제 12 항에 있어서,
    상기 가비지 컬렉션을 수행하는 단계는,
    적어도 하나의 프리 블록을 생성하고,
    생성된 프리 블록의 개수에 기초하여 프리 블록 카운트 값을 변경하고,
    상기 변경된 프리 블록 카운트 값과 최대 프리 블록 카운트 값을 비교 하고,
    상기 비교 결과에 따라 가비지 컬렉션을 종료하는 메모리 시스템의 동작 방법.
  17. 제 16 항에 있어서,
    상기 가비지 컬렉션을 수행하는 단계는,
    상기 변경된 프리 블록 카운트의 값이 최대 프리 블록 카운트 값보다 크거나 같은 경우에 가비지 컬렉션을 종료하는 메모리 시스템의 동작 방법.
  18. 메모리 시스템의 동작 방법에 있어서:
    상기 메모리 시스템은 복수의 메모리 블록을 갖는 불휘발성 메모리와 가비지 컬렉션 유닛을 갖는 메모리 컨트롤러를 포함하고,
    상기 메모리 시스템의 동작 방법은,
    상기 불휘발성 메모리의 유휴 시간이 기준 유휴 시간보다 길 때, 가비지 컬렉션 레벨을 생성하고,
    상기 가비지 컬렉션 레벨과 가비지 컬렉션 트리거 레벨를 비교하고,
    상기 비교 결과에 따라, 가비지 컬렉션을 수행하되
    상기 가비지 컬렉션 레벨은 상기 불휘발성 메모리의 최대 프리 블록 생성 시간에 기초하여 생성되는 메모리 시스템의 동작 방법.
  19. 제 18 항에 있어서,
    상기 가비지 컬렉션 레벨을 생성하는 단계는,
    상기 복수의 메모리 블록의 유효 페이지 수에 따라 각각의 메모리 블록의 유효 페이지 그룹을 결정하고,
    각 유효 페이지 그룹의 프리 블록 생성 시간을 계산하고
    상기 각각의 유효 페이지 그룹의 프리 블록 생성 시간에 기초하여 최대 프리 블록 생성 시간을 계산하고,
    상기 계산된 최대 프리 블록 생성 시간을 이용하여 상기 불휘발성 메모리의 상기 가비지 컬렉션 레벨를 결정하되,
    상기 최대 프리 블록 생성 시간은 최대 프리 블록 수의 프리 블록들을 생성하는데 걸리는 시간인 메모리 시스템의 동작 방법.
  20. 제 19 항에 있어서,
    상기 메모리 컨트롤러는 램(RAM)을 포함하고;
    상기 가비지 컬렉션 레벨을 생성하는 단계는,
    상기 유효 페이지 수와 상기 유효 페이지 그룹, 상기 불휘발성 메모리의 최대 프리 블록 생성 시간 및 상기 가비지 컬렉션 레벨을 상기 램(RAM)에 저장하는 메모리 시스템의 동작 방법.
KR1020140066998A 2014-06-02 2014-06-02 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 KR20150139112A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140066998A KR20150139112A (ko) 2014-06-02 2014-06-02 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법
US14/711,016 US20150347295A1 (en) 2014-06-02 2015-05-13 Method of operating a memory system using a garbage collection operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140066998A KR20150139112A (ko) 2014-06-02 2014-06-02 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법

Publications (1)

Publication Number Publication Date
KR20150139112A true KR20150139112A (ko) 2015-12-11

Family

ID=54701901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140066998A KR20150139112A (ko) 2014-06-02 2014-06-02 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법

Country Status (2)

Country Link
US (1) US20150347295A1 (ko)
KR (1) KR20150139112A (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160119607A (ko) * 2015-04-06 2016-10-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170104286A (ko) * 2016-03-07 2017-09-15 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
KR20190046134A (ko) * 2017-10-25 2019-05-07 삼성전자주식회사 메모리 장치 및 그 동적 가비지 컬렉션 방법
US10445194B2 (en) 2016-09-19 2019-10-15 SK Hynix Inc. Memory system storing checkpoint information and operating method thereof
KR20190132003A (ko) * 2018-05-18 2019-11-27 최영준 정전시 전력 소모를 감소시키기 위한 데이터 저장 방법 및 데이터 저장 장치
KR20200035630A (ko) * 2018-09-27 2020-04-06 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20200036272A (ko) * 2018-09-28 2020-04-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10678687B2 (en) 2018-07-11 2020-06-09 SK Hynix Inc. Memory system and operating method thereof
US11520694B2 (en) 2019-03-28 2022-12-06 SK Hynix Inc. Data storage device and operating method thereof

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2876379A1 (en) * 2014-12-29 2016-06-29 Adam J. Storm Memory management in presence of asymmetrical memory transfer costs
US9710165B1 (en) * 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
KR20170044780A (ko) * 2015-10-15 2017-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US9804787B2 (en) * 2015-11-03 2017-10-31 Samsung Electronics Co., Ltd. Mitigating GC effect in a raid configuration
KR20170070900A (ko) * 2015-12-14 2017-06-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10409719B2 (en) * 2016-03-17 2019-09-10 Samsung Electronics Co., Ltd. User configurable passive background operation
KR20180089742A (ko) * 2017-02-01 2018-08-09 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20180111157A (ko) * 2017-03-31 2018-10-11 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
JP2018181281A (ja) * 2017-04-21 2018-11-15 富士通株式会社 ストレージシステム、制御装置及びストレージ装置
US20190035445A1 (en) * 2017-07-31 2019-01-31 CNEX Labs, Inc. a Delaware Corporation Method and Apparatus for Providing Low Latency Solid State Memory Access
TWI644210B (zh) * 2017-09-08 2018-12-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI658462B (zh) 2018-01-19 2019-05-01 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
US11422726B1 (en) * 2018-05-01 2022-08-23 Amazon Technologies, Inc. Efficient storage device data move operation based on priority of garbage collection command
KR102612918B1 (ko) * 2018-07-27 2023-12-13 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US20190042139A1 (en) * 2018-08-30 2019-02-07 Intel Corporation Moving average valid content on ssd
KR20200073604A (ko) * 2018-12-14 2020-06-24 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법
KR20210004613A (ko) * 2019-07-05 2021-01-13 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11740821B2 (en) * 2021-04-12 2023-08-29 EMC IP Holding Company LLC Cost-aware garbage collection for cloud storage

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070033240A1 (en) * 2005-08-04 2007-02-08 International Business Machines Corporation Scheduling garbage collection
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
US8751546B1 (en) * 2012-01-06 2014-06-10 Google Inc. Systems and methods for minimizing the effects of garbage collection
JP5907739B2 (ja) * 2012-01-26 2016-04-26 株式会社日立製作所 不揮発性記憶装置
US9280463B2 (en) * 2013-07-25 2016-03-08 Globalfoundries Inc. Semiconductor memory garbage collection
US9329797B2 (en) * 2013-12-30 2016-05-03 Sandisk Technologies Inc. Method and system for adjusting block erase or program parameters based on a predicted erase life

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160119607A (ko) * 2015-04-06 2016-10-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170104286A (ko) * 2016-03-07 2017-09-15 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
US10445194B2 (en) 2016-09-19 2019-10-15 SK Hynix Inc. Memory system storing checkpoint information and operating method thereof
KR20190046134A (ko) * 2017-10-25 2019-05-07 삼성전자주식회사 메모리 장치 및 그 동적 가비지 컬렉션 방법
KR20190132003A (ko) * 2018-05-18 2019-11-27 최영준 정전시 전력 소모를 감소시키기 위한 데이터 저장 방법 및 데이터 저장 장치
CN110568918A (zh) * 2018-05-18 2019-12-13 香港商艾思科有限公司 停电时减少功耗的数据存储方法及数据存储设备
US10678687B2 (en) 2018-07-11 2020-06-09 SK Hynix Inc. Memory system and operating method thereof
KR20200035630A (ko) * 2018-09-27 2020-04-06 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20200036272A (ko) * 2018-09-28 2020-04-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11520694B2 (en) 2019-03-28 2022-12-06 SK Hynix Inc. Data storage device and operating method thereof

Also Published As

Publication number Publication date
US20150347295A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
KR20150139112A (ko) 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법
KR102190670B1 (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
KR101861170B1 (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
KR102501751B1 (ko) 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
US9256530B2 (en) Nonvolatile memory device and sub-block managing method thereof
KR102239356B1 (ko) 클록 제어 유닛 또는 전원 제어 유닛을 포함하는 저장 장치와 메모리 시스템, 그리고 그것의 동작 방법
KR101997572B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
US9891838B2 (en) Method of operating a memory system having a meta data manager
KR101716713B1 (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
CN110321070B (zh) 存储器控制器及其操作方法
US20150355845A1 (en) Memory systems that support read reclaim operations and methods of operating same to thereby provide real time data recovery
US9437310B2 (en) Method of operating a memory system having an erase control unit
KR102245822B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
KR20170015708A (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
KR20160110596A (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법
KR20150138528A (ko) 플래시 메모리를 기반으로 하는 스토리지 시스템 및 그것의 동작 방법
KR20120030817A (ko) 플래시 메모리 시스템 및 그것의 워드 라인 인터리빙 방법
KR20150103932A (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
KR20150106778A (ko) 메모리 시스템 및 메모리 시스템의 제어 방법
KR20170036964A (ko) 불휘발성 메모리 시스템의 동작 방법
KR20200117555A (ko) 메모리 시스템, 메모리 장치 및 메모리 컨트롤러
KR20150106777A (ko) 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법
KR20150059057A (ko) 호스트 ftl을 갖는 사용자 장치 및 그것의 리프로그램 정보 전송 방법
KR102580946B1 (ko) 버퍼 메모리의 할당 비율을 제어하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination