KR20140096875A - 메모리 시스템의 및 그것의 블록 관리 방법 - Google Patents

메모리 시스템의 및 그것의 블록 관리 방법 Download PDF

Info

Publication number
KR20140096875A
KR20140096875A KR1020130010019A KR20130010019A KR20140096875A KR 20140096875 A KR20140096875 A KR 20140096875A KR 1020130010019 A KR1020130010019 A KR 1020130010019A KR 20130010019 A KR20130010019 A KR 20130010019A KR 20140096875 A KR20140096875 A KR 20140096875A
Authority
KR
South Korea
Prior art keywords
block
list
blocks
attribute
information
Prior art date
Application number
KR1020130010019A
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 KR1020130010019A priority Critical patent/KR20140096875A/ko
Priority to US14/082,209 priority patent/US20140215133A1/en
Publication of KR20140096875A publication Critical patent/KR20140096875A/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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into 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
    • 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/7202Allocation control and policies
    • 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/7207Details relating to flash memory management management of metadata or control data

Landscapes

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

Abstract

본 발명에 따른 메모리 시스템은, 복수의 블록들 및 메타 영역을 포함하는 비휘발성 메모리 장치; 및 상기 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하고, 상기 메타 영역은, 소거 회수, 사용 대기 리스트, 장기 리스트 및 블록 리트라이 정보를 저장하고, 상기 메모리 제어기는 상기 소거 회수 및 상기 블록 리트라이 정보를 이용하여 상기 복수의 블록들의 웨어 레벨링을 수행한다.

Description

메모리 시스템의 및 그것의 블록 관리 방법{MEMORY SYSTEM AND BLOCK MANAGEMENT METHOD THEREOF}
본 발명은 메모리 시스템 및 그것의 블록 관리 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 비휘발성 반도체 메모리 장치로 나누어진다. 비휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 비휘발성 메모리에 저장되는 데이터는 메모리 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 비휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 및 소비자 전자 기술 산업과 같은 넓은 범위의 응용에서 사용자 데이터 저장, 프로그램 및 마이크로 코드의 저장을 위해서 사용된다.
본 발명의 목적은 성능을 향상시키고 수명을 연장하는 메모리 시스템 및 그것의 블록 관리 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 복수의 블록들로 구성된 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 메모리 시스템의 블록 관리 방법은: 블록의 속성을 결정하는 단계; 상기 결정된 블록 속성과 관련된 블록 속성 정보를 저장하는 단계; 상기 저장된 블록 속성 정보를 근거로 하여 프리 블록 리스트를 정렬하는 단계; 상기 프리 블록 리스트에 포함된 블록들 중에서 데이터를 프로그램할 액티브 블록을 할당하는 단계를 포함한다.
실시 예에 있어서, 상기 블록 속성을 결정하는 단계는, 리드 리트라이(read retry) 동작을 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 리드 리트라이 동작이 디폴트 전압을 기준으로 음의 방향으로 진행될 때 상기 블록의 속성은 리텐션(retention)이라고 판별된다.
실시 예에 있어서, 상기 리드 리트라이 동작이 디폴트 전압을 기준으로 양의 방향으로 진행될 때 상기 블록의 속성은 인듀런스(endurance)라고 판별된다.
실시 예에 있어서, 상기 블록 속성 정보를 저장하는 단계는, 상기 리드 리트라이 동작에 관련된 블록 리트라이 정보를 저장하는 단계를 포함한다.
실시 예에 있어서, 상기 프리 블록 리스트는 사용 대기 리스트(Ready-to-Use List) 및 장기(Long Term List)을 포함하고, 상기 사용 대기 리스트는 리텐션 속성을 갖는 블록의 리스트이고, 상기 장기 리스트는 인듀런스 속성을 갖는다.
실시 예에 있어서, 상기 프리 블록 리스트를 정렬하는 단계는, 상기 블록에서 리드 리트라이 동작이 디폴트 전압(Vdflt)을 기준으로 음의 방향으로 진행될 때, 상기 블록을 상기 사용 대기 리스트에 할당하는 단계를 더 포함한다.
실시 예에 있어서, 상기 프리 블록 리스트를 정렬하는 단계는, 상기 리드 리트라이 동작을 패스시키는 옵셋 전압(Vost)을 이용하여 상기 사용 대기 리스트를 정렬하는 단계를 더 포함한다.
실시 예에 있어서, 상기 프리 블록 리스트를 정렬하는 단계는, 상기 블록에서 리드 리트라이 동작이 디폴트 전압을 기준으로 양의 방향으로 진행될 때, 상기 블록을 상기 장기 리스트에 할당하는 단계를 더 포함한다.
실시 예에 있어서, 상기 프리 블록 리스트를 정렬하는 단계는, 상기 리드 리트라이 동작을 패스시키는 옵셋 전압(Vost)을 이용하여 상기 장기 리스트를 정렬하는 단계를 더 포함한다.
실시 예에 있어서, 상기 프리 블록 리스트를 정렬하는 단계는, 사전에 결정된 시간이 지난 후에 상기 장기 리스트에 포함된 블록을 상기 사용 대기 리스트에 포함시키는 단계를 더 포함한다.
실시 예에 있어서, 상기 액티브 블록을 할당하는 단계는, 상기 블록 속성 정보에서 리텐션 속성 정도를 이용하여 상기 액티브 블록을 할당하는 단계를 포함한다.
실시 예에 있어서, 상기 블록의 소거 회수가 평균 블록 소거 회수보다 작은 지 판별하는 단계; 및 상기 블록의 소거 회수가 상기 평균 블록 소거 회수보다 작을 때 상기 블록 속성 정보를 이용하여 웨어 레벨링을 수행하는 단계를 포함한다.
본 발명의 실시 예에 따른 메모리 시스템은, 복수의 블록들 및 메타 영역을 포함하는 비휘발성 메모리 장치; 및 상기 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하고, 상기 메타 영역은, 소거 회수, 사용 대기 리스트, 장기 리스트 및 블록 리트라이 정보를 저장하고, 상기 메모리 제어기는 상기 소거 회수 및 상기 블록 리트라이 정보를 이용하여 상기 복수의 블록들의 웨어 레벨링을 수행하고, 상기 사용 대기 리스트는 상기 복수의 블록들 중에서 리텐션 속성을 갖는 블록들로 구성되고, 상기 장기 리스트는 상기 복수의 블록들 중에서 인듀런스 속성을 갖는 블록들로 구성되고, 상기 블록 리트라이 정보는 블록에 대한 리드 리트라이 동작으로부터 얻어지고, 상기 리드 리트라이 동작으로부터 블록의 리텐션 혹은 인듀런스 속성이 결정된다.
실시 예에 있어서, 상기 복수의 블록들 중에서 무효 블록이 소거됨으로써 프리 블록이 발생하고, 상기 발생된 프리 블록은 상기 블록 리트라이 정보를 이용하여 사용 대기 블록과 장기 블록으로 구분된다.
상술한 바와 같이 본 발명에 따른 메모리 시스템은 블록 속성 정보를 근거로 하여 웨어 레벨링을 수행함으로써, 성능 향상 및 수명 연장을 꾀할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 예시적으로 보여주는 도면이다.
도 2는 도 1에 도시된 블록들의 일생을 개략적으로 보여주는 도면이다.
도 3은 리텐션 속성을 갖는 블록을 지시하는 리드 리트라이 동작을 보여주는 도면이다.
도 4는 인듀런스 속성을 갖는 블록을 지시하는 리드 리트라이 동작을 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 프리 블록 리스트의 관리 방법을 개념적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 사용 대기 리스트를 정렬하는 방법을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 장기 리스트를 정렬하는 방법을 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 메모리 시스템의 웨어 레벨링 방법을 예시적으로 보여주는 흐름도이다.
도 9는 본 발명의 실시 예에 따른 메모리 시스템의 블록 관리 방법을 예시적으로 보여주는 흐름도이다.
도 10은 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 블록도이다.
도 11은 본 발명에 따른 eMMC를 예시적으로 보여주는 블록도이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템(10)을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 메모리 시스템(10)은 적어도 하나의 비휘발성 메모리 장치(100) 및 그것을 제어하는 메모리 제어기(200)를 포함한다.
비휘발성 메모리 장치(100)는 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리(Vertical NAND, 이하, 'VNAND'라고 함), 노아 플래시 메모리(NOR flash memory), 저항성 램(resistive random access memory: RRAM), 상변화 메모리(phase-change memory: PRAM), 자기저항 메모리(magnetoresistive random access memory: MRAM), 강유전체 메모리(ferroelectric random access memory: FRAM), 스핀주입 자화반전 메모리(spin transfer torque random access memory: STT-RAM) 등이 될 수 있다. 또한, 본 발명의 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다. 아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치(100)가 낸드 플래시 메모리 장치라고 하겠다.
비휘발성 메모리 장치(100)는 복수의 블록들(BLK0 ~ BLKz, z는 1 이상의 정수) 및 메타 영역(110)을 포함한다. 도시되지 않았지만, 블록들(BLK0 ~ BLKz) 각각은, 비트라인들 각각에 연결된 스트링(string)을 포함한다. 여기서 스트링은 직렬 연결된 적어도 하나의 스트링 선택 트랜지스터, 메모리 셀들, 적어도 하나의 접지 선택 트랜지스터로 구성된다. 메모리 셀들 각각은 적어도 하나의 비트의 데이터를 저장하고, 대응하는 워드라인들에 전송되는 전압들에 의하여 구동된다.
메타 영역(110)은 비휘발성 메모리 장치(100)를 관리하기 위한 관리 정보를 저장할 수 있다. 메타 영역(110)은 사용 대기 리스트(Ready-to-Use list, 111), 장기 리스트(Long Term List, 112), 및 블록 리트라이 정보(BLK Retry Inform, 113)를 저장한다. 여기서, 사용 대기 리스트(111)는 데이터의 리텐션(retention, 유지) 속성(property)을 보이는 메모리 셀을 갖는 블록들의 리스트이고, 장기 리스트(112)는 데이터의 인듀런스(endurance, 내구성) 속성을 보이는 메모리 셀을 갖는 블록들의 리스트이다. 블록 리트라이 정보(113)는 어느 하나의 블록에서 리드 리트라이(read retry) 동작을 패스시키는 옵셋 전압(offset voltage) 및 블록에 대응하는 어드레스 정보를 저장한다.
실시 예에 있어서, 사용 대기 리스트(111) 및 장기 리스트(112)는 블록 리트라이 정보(113)를 근거로 결정될 수 있다. 예를 들어, 옵셋 전압이 음전압일 때(메모리 셀이 데이터 리텐션 속성을 보임), 어드레스 정보에 대응하는 블록은 사용 대기 리스트(111)에 포함될 것이다. 반면에 옵셋 전압이 양전압일 때(메모리 셀이 데이터 인듀런스 속성을 보임), 어드레스 정보에 대응하는 블록은 장기 리스트(112)에 포함할 될 것이다.
메모리 제어기(200)는 비휘발성 메모리 장치(100)를 제어한다. 메모리 제어기(200)는 블록들(BLK0 ~ BLKz)을 관리하는 블록 관리 유닛(220)을 포함한다.
블록 관리 유닛(220)은 블록 구동 정보 및 메모리 셀(혹은 블록)의 속성 정보를 근거로 하여 블록들(BLK0 ~ BLKz)의 마모도를 일정하게 유지시킬 수 있다. 여기서 블록 구동 정보는 소거 회수, 프로그램 회수, 혹은 읽기 회수를 포함할 수 있다. 도시되지 않았지만, 블록 구동 정보는 메타 영역(110)에 저장될 것이다. 또한, 메모리 셀의 속성 정보는 리텐션 혹은 인듀런스에 관련된 블록 리트라이 정보(113)일 수 있다.
실시 예에 있어서, 블록 관리 유닛(220)은 어느 하나의 블록이 리드 리트라이 동작을 진행한 뒤, 리드 리트라이 동작과 관련된 블록 리트라이 정보(113)를 메타 영역(110)에 저장시킨다.
실시 예에 있어서, 블록 관리 유닛(220)은 블록 리트라이 정보(113)를 근거로 하여 사용 대기 리스트(111) 및 장기 리스트(112)를 정렬하고, 메타 영역(110)에 정렬된 사용 대기 리스트(111) 및 장기 리스트(112)를 저장한다.
실시 예에 있어서, 블록 관리 유닛(220)은 사용 대기 리스트(111) 및 장기 리스트(112)에 포함된 블록들 중에서 프리 블록(free block)으로 이용될 수 있다.
실시 예에 있어서, 블록 관리 유닛(220)은 프리 블록들 중에서 리텐션 속성이 가장 좋은 블록을 데이터 쓰기 동작을 수행할 액티브 블록(active block)으로 할당할 수 있다.
일반적인 메모리 시스템은 메모리 셀의 특성을 고려하지 않고 소거 회수가 적은 블록을 계속해서 사용함으로써 칩 내의 전체적인 블록에 대하여 소거 회수가 평균값에 도달하도록 웨어 레벨링(wear leveling)을 수행하였다. 그런데, 이러한 웨어 레벨링 방법은 쓰기 동작을 수행하기 위하여 비트 에러 비율(bit error rate; BER)이 높더라도 소거 회수가 적은 블록을 할당할 수 있다. 이 경우, 높은 비트 에러 비율(BER) 때문에 리드 리프레쉬(read refrech) 혹은 리드 리클레임(read reclaim)가 진행될 가능성이 높다. 이러한 리드 리프레쉬 혹은 리드 리클레임에서는 다른 블록으로 카피백(copy back)을 수행함으로써, 마모 가속 지수(wear acceleration index; WAI)가 증가될 수 있다. 그 결과로써, 일반적인 메모리 시스템에서는 전반적인 수명 및 성능 저하가 야기될 수 있다.
반면에, 본 발명의 실시 예에 따른 메모리 시스템(10)은 메모리 셀의 속성(리텐션/인듀런스) 및 소거 회수를 고려하여 웨어 레벨링을 수행할 수 있다. 본 발명은 메모리 셀의 속성에 따라 구분된 사용 대기 리스트(111) 및 장기 리스트(112)를 근거로 하여 프리 블록을 관리함으로써, 시스템의 전반적인 성능 향상 및 수명 연장을 꾀할 수 있다.
도 2는 도 1에 도시된 블록들(BLK0 ~ BLKz)의 일생(lifetime)을 개략적으로 보여주는 도면이다. 도 2를 참조하면, 블록의 일생은 다음과 같다. 처음에는 소거 상태의 미사용 블록(121)으로 존재한다. 이후, 데이터를 쓰기 위하여 미사용 블록(121)에서 액티브 블록(122)이 할당된다. 할당된 액티브 블록(122)에 쓰기 동작이 성공하면, 액티브 블록(122)은 유효 블록(123)이 된다. 반면에 할당된 액티브 블록(122)에 쓰기 동작이 실패하면, 액티브 블록(122)은 배드 블록으로 처리된다(124). 이후, 머지 동작시 유효 블록(123)의 데이터가 더 이상 유효하지 않다면, 유효 블록(123)은 무효 블록(125)으로 처리된다.
이후, 소거 동작이 성공하면, 무효 블록(125)은 프리 블록(126)이 될 수 있다. 본 발명의 프리 블록(126)은 메모리 셀의 속성(리텐션/인듀런스)에 따라 크게 사용 준비 블록(127)과 장기 블록(128)으로 구분된다. 사용 준비 블록(127)은 리텐션 속성을 갖는 메모리 셀들로 구성된 프리 블록이고, 장기 블록(128)은 인듀런스 속성을 갖는 메모리 셀들로 구성된 프리 블록이다. 사용 준비 블록(126)에서 새로운 액티브 블록(122)이 할당될 수 있다. 예를 들어, 리텐션 속성이 가장 좋은 사용 준비 블록(126)이 액티브 블록(122)이 될 수 있다. 장기 블록(127)은 사전에 결정된 시간이 지난 후에 사용 준비 블록(126)으로 변경될 수 있다.
한편, 소거 동작이 실패하면, 무효 블록(125)은 배드 블록(124)으로 처리될 수 있다. 경우에 따라, 도시되지 않았지만 배드 블록(124)은 사전에 결정된 조건 아래에서 소거 동작을 성공하면 프리 블록(126)으로 될 수도 있다.
실시 예에 있어서, 블록의 속성 결정은, 리드 리트라이(read retry) 동작이 발생되는 시점일 수 있다.
상술 된 바와 같이, 본 발명에서 블록의 일생을 살펴보면, 블록의 속성(리텐션/인듀런스)을 고려하여 액티브 블록이 할당될 것이다.
한편, 본 발명에서 블록의 속성(리텐션/인듀런스)은 리드 리트라이 동작에 의해 결정될 수 있다.
도 3은 리텐션 속성을 갖는 블록을 지시하는 리드 리트라이 동작을 보여주는 도면이다. 도 3을 참조하면, 리드 리트라이 동작은 디폴트 전압(Vdflt)을 기준으로 왼쪽으로(혹은, 음의 방향으로) 진행된다. 디폴트 전압(Vdflt)에서 옵셋 전압(Vost) 만큼 낮아진 전압(Vdflt - Vost)에 리드 패스될 것이다. 이때 블록의 속성이 리텐션으로 결정되고, 블록에 대응하는 블록 리트라이 정보(block retry information)가 블록 리트라이 정보(도 1 참조, 113)에 저장될 것이다. 여기서, 블록 리트라이 정보는 리텐션을 지시하는 값(-)과 옵셋 전압(Vost)에 대응하는 리드 리트라이 회수를 포함한다.
도 4는 인듀런스 속성을 갖는 블록을 지시하는 리드 리트라이 동작을 보여주는 도면이다. 도 4를 참조하면, 리드 리트라이 동작은 디폴트 전압(Vdflt)을 기준으로 오른쪽으로(혹은, 양의 방향으로) 진행된다. 디폴트 전압(Vdflt)에서 옵셋 전압(Vost) 만큼 높아진 전압(Vdflt + Vost)에서 리드 패스될 것이다. 이때 블록의 속성이 인듀런스로 결정되고, 블록에 대응하는 블록 리트라이 정보가 블록 리트라이 정보(도 1 참조, 113)에 저장될 것이다. 여기서, 블록 리트라이 정보는 리텐션을 지시하는 값(+)과 옵셋 전압(Vost)에 대응하는 리드 리트라이 회수를 포함한다.
도 5는 본 발명의 실시 예에 따른 프리 블록 리스트의 관리 방법을 개념적으로 보여주는 도면이다. 도 5를 참조하면, 프리 블록 리스트는 사용 대기 리스트 및 장기 리스트로 구성될 것이다. 사용 대기 리스트는 리텐션 속성을 가진 블록(이하, 리텐션 블록) 중에서 할당될 것이다. 장기 리스트는 인듀런스 속성을 가진 블록(이하, 인듀런스 블록) 중에서 할당될 것이다. 장기 리스트에 포함된 인듀런스 블록은 사전에 결정된 시간(예를 들어, 몇 주 혹은 몇 달)이 지난 후에 사용 대기 리스트에 포함될 수 있다.
도 6은 본 발명의 실시 예에 따른 사용 대기 리스트를 정렬하는 방법을 예시적으로 보여주는 도면이다. 도 6을 참조하면, 사용 대기 리스트는 리트라이 패스 옵셋이 가장 큰 블록 어드레스(0x25)부터 그렇지 않은 어드레스들 순서로 차례로 정렬될 것이다.
실시 예에 있어서, 사용 대기 리스트에서 가장 왼쪽에 위치한 블록(0x25)이 가장 먼저 액티브 블록으로 할당될 수 있다.
도 7은 본 발명의 실시 예에 따른 장기 리스트를 정렬하는 방법을 예시적으로 보여주는 도면이다. 도 7를 참조하면, 장기 리스트는 리트라이 패스 옵셋이 가장 작은 블록 어드레스(0x25)부터 그렇지 않은 어드레스들 순서로 차례로 정렬될 것이다.
실시 예에 있어서, 장기 리스트에서 가장 왼쪽에 위치한 블록(0x25)은 가장 먼저 사용 대기 리스트로 할당될 수 있다.
도 8은 본 발명의 실시 예에 따른 메모리 시스템의 웨어 레벨링 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 8를 참조하면, 웨어 레벨링은 다음과 같이 진행된다. 블록 소거 회수가 평균 소거 회수보다 작은지 판별된다(S110). 만일, 블록 소거 회수가 평균 소거 회수보다 작다면, 블록을 이용하여 가비지 컬렉션이 수행될 것이다. 가비지 컬렉션을 수행하는 중에 리드 리트라이 동작이 수행될 경우, 블록에 대한 블록 리트라이 정보가 설정될 것이다. 여기서 블록 리트라이 정보는 블록의 속성이 리텐션인지 인듀런스인지를 알려주는 정보와 리트라이 패스될 때의 옵셋 전압(Vost, 도 3 및 도 4 참조)을 포함할 것이다(S120).
리드 리트라이 진행 방향이 디폴트 전압(Vdflt, 도 3 및 도 4)을 기준으로 왼쪽인지 판별될 것이다(S130). 만약, 리드 리트라이 진행 방향이 왼쪽이라면, 즉 옵셋 전압(Vost)이 음의 값이라면, 블록의 속성은 리텐션이다. 따라서 블록 리트라이 정보를 근거로 하여 블록은 사용 대기 리스트에 할당될 것이다(S140). 반면에, 리드 리트라이 진행 방향이 왼쪽이 아니라면, 즉 옵셋 전압(Vost)이 양의 값이라면, 블록의 속성은 인듀런스이다. 따라서 블록 리트라이 정보를 근거로 하여 블록은 장기 리스트에 할당될 것이다(S145).
이후, 프리 블록이 필요할 때 사용 대기 리스트에서 가장 리텐션 속성이 좋은 블록을 액티브 블록으로 할당하고, 할당된 액티브 블록에 데이터가 프로그램될 것이다(S150).
만일, 블록 소거 회수가 평균 소거 회수보다 작지 않다면, 블록에 대한 웨어 레벨링은 수행되지 않는다.
본 발명의 실시 예에 따른 웨어 레벨링 방법은, 블록의 속성(리텐션/인듀런스)에 따라 블록에 대한 사용 대기 리스트를 할당하고, 할당된 사용 대기 리스트에서 데이터를 프로그램하기 위한 액티브 블록을 할당할 것이다.
앞에서는 블록의 속성을 결정하기 위하여 리드 리트라이가 이용되었다. 하지만 본 발명의 블록 속성을 결정하는 방법은 여기에 제한되지 않을 것이다. 블록의 속성은 다양한 방법으로 결정될 수 있다. 본 발명은 블록 속성 정보 및 소거 회수를 근거로 웨어 레벨링을 수행할 수 있다.
도 9는 본 발명의 실시 예에 따른 메모리 시스템의 블록 관리 방법을 예시적으로 보여주는 흐름도이다. 도 9를 참조하면, 블록 관리 방법은 다음과 같다.
리텐션 및 인듀런스 중 어느 하나인지 블록 속성이 결정된다(S120). 블록 속성 결정시 리텐션 혹은 인듀런스에 대한 정도가 수치로 표현될 수 있다. 블록 속성 및 그 정도를 포함하는 정보(아래에서는 '블록 속성 정보')가 저장될 것이다(S220). 저장된 블록 속성 정보를 근거로 하여 프리 블록 리스트가 정렬될 것이다(S230). 여기서 프리 블록 리스트는 우선적으로 액티브 블록으로 사용될 수 있는 순서로 정렬될 수 있다. 정렬된 프리 블록들에서 데이터를 프로그램하기 위하여 액티브 블록이 할당될 수 있다(S240).
본 발명의 실시 예에 따른 블록 관리 방법은 블록 속성 정보를 근거로 하여 블록들을 관리할 것이다.
본 발명은 SSD(solid state drive)에 적용 가능하다.
도 10은 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 블록도이다. 도 10을 참조하면, SSD(1000)는 복수의 플래시 메모리 장치들(1100) 및 SSD 제어기(1200)를 포함한다. 플래시 메모리 장치들(1100)은 외부 고전압(Vpp)을 제공받도록 구현될 수 있다. 플래시 메모리 장치들(1100) 각각은 도 1 내지 도 9에 설명된 웨어 레벨링을 수행하도록 구현될 것이다. SSD 제어기(1200)는 복수의 채널들(CH1~CHi, i는 2 이상의 정수)을 통하여 플래시 메모리 장치들(1100)에 연결된다. SSD 제어기(1200)는 적어도 하나의 중앙처리장치(1210), 버퍼 메모리(2220), 호스트 인터페이스(1250) 및 플래시 인터페이스(1260)를 포함한다.
본 발명에 따른 SSD(1000)는 프로그램 동작 및 읽기 동작시 2 워드라인 데이터 단위로 구동됨으로써, 대용량 데이터를 저장하는데 유리하다.
본 발명은 eMMC(embedded)에 적용 가능하다.
도 11은 본 발명에 따른 eMMC를 예시적으로 보여주는 블록도이다. 도 11을 참조하면, eMMC(2000)는 적어도 하나의 낸드 플래시 메모리 장치(2100) 및 제어기(2200)를 포함할 수 있다. 낸드 플래시 메모리 장치(2100)는 SDR(single data rate) 낸드 혹은 DDR(double data rate) 낸드, toggle NAND일 수 있다. 실시 예에 있어서, 낸드 플래시 메모리 장치(2100)는 단품의 낸드 플래시 메모리 장치들을 포함할 수 있다. 여기서, 단품의 낸드 플래시 메모리 장치들은 하나의 패키지(예를 들어, FBGA, Fine-pitch Ball Grid Array)에 적층 되어 구현될 수 있다. 여기서 낸드 플래시 메모리 장치들 각각은, 도 1 내지 도 9에서 설명된 웨어 레벨링 혹은 블록 관리 방법으로 구현될 것이다.
메모리 제어기(2200)는 복수의 채널들을 통하여 플래시 메모리 장치(2100)에 연결된다. 제어기(2200)는 적어도 하나의 제어기 코어(2210), 호스트 인터페이스(2250) 및 낸드 인터페이스(2260)를 포함한다. 적어도 하나의 제어기 코어(3210)는 eMMC(3000)의 전반적인 동작을 제어한다. 호스트 인터페이스(3250)는 제어기(3210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(3260)는 낸드 플래시 메모리 장치(3100)와 제어기(3200)의 인터페이싱을 수행한다. 실시 예에 있어서, 호스트 인터페이스(3250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, eMMC(3000)의 호스트 인터페이스(3250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다.
eMMC(3000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc: 3.3V)은 낸드 플래시 메모리 장치(2100) 및 낸드 인터페이스(2230)에 제공되고, 제 2 전원 전압(Vccq: 1.8V/3.3V)은 제어기(2200)에 제공된다.
본 발명의 실시 예에 따른 eMMC(2000)는 소형 및 저전력이 요구되는 모바일 제품(예를 들어, 갤럭시S 시리즈, 갤럭시노트 시리즈, 아이폰, 아이패드, 넥서스 등)에 응용 가능하다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10: 메모리 시스템
100: 비휘발성 메모리 장치
200: 메모리 제어기
110: 메타 영역
111: 사용 대기 리스트
112: 장기 리스트
113: 블록 리트라이 정보
220: 블록 관리 유닛
Vdflt: 디폴트 전압
Vost: 옵셋 전압

Claims (10)

  1. 복수의 블록들로 구성된 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 메모리 시스템의 블록 관리 방법에 있어서:
    블록의 속성을 결정하는 단계;
    상기 결정된 블록 속성과 관련된 블록 속성 정보를 저장하는 단계;
    상기 저장된 블록 속성 정보를 근거로 하여 프리 블록 리스트를 정렬하는 단계;
    상기 프리 블록 리스트에 포함된 블록들 중에서 데이터를 프로그램할 액티브 블록을 할당하는 단계를 포함하는 블록 관리 방법.
  2. 제 1 항에 있어서,
    상기 블록 속성을 결정하는 단계는,
    리드 리트라이(read retry) 동작을 수행하는 단계를 포함하는 블록 관리 방법.
  3. 제 2 항에 있어서,
    상기 블록 속성 정보를 저장하는 단계는,
    상기 리드 리트라이 동작에 관련된 블록 리트라이 정보를 저장하는 단계를 포함하는 블록 관리 방법.
  4. 제 1 항에 있어서,
    상기 프리 블록 리스트는 사용 대기 리스트(Ready-to-Use List) 및 장기(Long Term List)을 포함하고,
    상기 사용 대기 리스트는 리텐션 속성을 갖는 블록의 리스트이고,
    상기 장기 리스트는 인듀런스 속성을 갖는 블록의 리스트인 블록 관리 방법.
  5. 제 4 항에 있어서,
    상기 프리 블록 리스트를 정렬하는 단계는,
    상기 블록에서 리드 리트라이 동작이 디폴트 전압(Vdflt)을 기준으로 음의 방향으로 진행될 때, 상기 블록을 상기 사용 대기 리스트에 할당하는 단계를 더 포함하는 블록 관리 방법.
  6. 제 4 항에 있어서,
    상기 프리 블록 리스트를 정렬하는 단계는,
    상기 블록에서 리드 리트라이 동작이 디폴트 전압을 기준으로 양의 방향으로 진행될 때, 상기 블록을 상기 장기 리스트에 할당하는 단계를 더 포함하는 블록 관리 방법.
  7. 제 4 항에 있어서,
    상기 프리 블록 리스트를 정렬하는 단계는,
    사전에 결정된 시간이 지난 후에 상기 장기 리스트에 포함된 블록을 상기 사용 대기 리스트에 포함시키는 단계를 더 포함하는 블록 관리 방법.
  8. 제 1 항에 있어서,
    상기 블록의 소거 회수가 평균 블록 소거 회수보다 작은 지 판별하는 단계; 및
    상기 블록의 소거 회수가 상기 평균 블록 소거 회수보다 작을 때 상기 블록 속성 정보를 이용하여 웨어 레벨링을 수행하는 단계를 포함하는 더 포함하는 블록 관리 방법.
  9. 복수의 블록들 및 메타 영역을 포함하는 비휘발성 메모리 장치; 및
    상기 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하고,
    상기 메타 영역은, 소거 회수, 사용 대기 리스트, 장기 리스트 및 블록 리트라이 정보를 저장하고,
    상기 메모리 제어기는 상기 소거 회수 및 상기 블록 리트라이 정보를 이용하여 상기 복수의 블록들의 웨어 레벨링을 수행하고,
    상기 사용 대기 리스트는 상기 복수의 블록들 중에서 리텐션 속성을 갖는 블록들로 구성되고,
    상기 장기 리스트는 상기 복수의 블록들 중에서 인듀런스 속성을 갖는 블록들로 구성되고,
    상기 블록 리트라이 정보는 블록에 대한 리드 리트라이 동작으로부터 얻어지고,
    상기 리드 리트라이 동작으로부터 블록의 리텐션 혹은 인듀런스 속성이 결정되는 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 복수의 블록들 중에서 무효 블록이 소거됨으로써 프리 블록이 발생하고,
    상기 발생된 프리 블록은 상기 블록 리트라이 정보를 이용하여 사용 대기 블록과 장기 블록으로 구분되는 메모리 시스템.
KR1020130010019A 2013-01-29 2013-01-29 메모리 시스템의 및 그것의 블록 관리 방법 KR20140096875A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130010019A KR20140096875A (ko) 2013-01-29 2013-01-29 메모리 시스템의 및 그것의 블록 관리 방법
US14/082,209 US20140215133A1 (en) 2013-01-29 2013-11-18 Memory system and related block management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130010019A KR20140096875A (ko) 2013-01-29 2013-01-29 메모리 시스템의 및 그것의 블록 관리 방법

Publications (1)

Publication Number Publication Date
KR20140096875A true KR20140096875A (ko) 2014-08-06

Family

ID=51224309

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130010019A KR20140096875A (ko) 2013-01-29 2013-01-29 메모리 시스템의 및 그것의 블록 관리 방법

Country Status (2)

Country Link
US (1) US20140215133A1 (ko)
KR (1) KR20140096875A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160087430A (ko) * 2015-01-13 2016-07-22 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US9792058B2 (en) 2015-07-15 2017-10-17 SK Hynix Inc. System and method of selecting source and destination blocks for wear-leveling
US9805814B2 (en) 2015-12-29 2017-10-31 SK Hynix Inc. Memory system performing wear leveling using average erase count value and operating method thereof
US9996277B2 (en) 2015-11-23 2018-06-12 SK Hynix Inc. Memory system and operating method of memory system
KR20190073017A (ko) * 2017-12-18 2019-06-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10394652B2 (en) 2015-06-05 2019-08-27 SK Hynix Inc. Memory system for performing read retry operation and operating method thereof
US11488648B2 (en) 2017-12-18 2022-11-01 SK Hynix Inc. Data storage device and operating method thereof
US11693583B2 (en) 2020-05-19 2023-07-04 SK Hynix Inc. Memory controller and operating method thereof

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298465B (zh) * 2013-07-17 2017-06-20 光宝电子(广州)有限公司 固态储存装置中的区块分组方法
US10061710B2 (en) * 2014-01-29 2018-08-28 Hitachi, Ltd. Storage device
KR102403253B1 (ko) 2015-07-06 2022-05-30 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치
US10366763B2 (en) * 2017-10-31 2019-07-30 Micron Technology, Inc. Block read count voltage adjustment
US11086529B2 (en) * 2018-09-26 2021-08-10 Western Digital Technologies, Inc. Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery
US11250926B2 (en) * 2019-10-16 2022-02-15 Sandisk Technologies Llc Positive feedback and parallel searching enhanced optimal read method for non-volatile memory
CN113223583B (zh) * 2021-05-14 2024-05-17 深圳市硅格半导体有限公司 NAND Flash坏块内数据重读的方法、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7743203B2 (en) * 2007-05-11 2010-06-22 Spansion Llc Managing flash memory based upon usage history
KR101506336B1 (ko) * 2008-10-10 2015-03-27 삼성전자주식회사 산화막 복구 기능을 갖는 비휘발성 메모리 장치 그리고 그것의 블록 관리 방법
US8447915B2 (en) * 2009-07-23 2013-05-21 Hitachi, Ltd. Flash memory device for allocating physical blocks to logical blocks based on an erase count
KR101678909B1 (ko) * 2009-09-17 2016-11-23 삼성전자주식회사 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
US8320185B2 (en) * 2010-03-31 2012-11-27 Micron Technology, Inc. Lifetime markers for memory devices
US8510637B2 (en) * 2010-04-14 2013-08-13 Phison Electronics Corp. Data reading method, memory storage apparatus and memory controller thereof
KR20120001405A (ko) * 2010-06-29 2012-01-04 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
US10079068B2 (en) * 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
KR20130061967A (ko) * 2011-12-02 2013-06-12 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
US9195587B2 (en) * 2013-03-07 2015-11-24 Sandisk Technologies Inc. Enhanced dynamic read process with single-level cell segmentation
US8971111B2 (en) * 2013-05-23 2015-03-03 Seagate Technology Llc Threshold voltage calibration using reference pattern detection

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160087430A (ko) * 2015-01-13 2016-07-22 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US10394652B2 (en) 2015-06-05 2019-08-27 SK Hynix Inc. Memory system for performing read retry operation and operating method thereof
US9792058B2 (en) 2015-07-15 2017-10-17 SK Hynix Inc. System and method of selecting source and destination blocks for wear-leveling
US9996277B2 (en) 2015-11-23 2018-06-12 SK Hynix Inc. Memory system and operating method of memory system
US9805814B2 (en) 2015-12-29 2017-10-31 SK Hynix Inc. Memory system performing wear leveling using average erase count value and operating method thereof
KR20190073017A (ko) * 2017-12-18 2019-06-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11488648B2 (en) 2017-12-18 2022-11-01 SK Hynix Inc. Data storage device and operating method thereof
US11693583B2 (en) 2020-05-19 2023-07-04 SK Hynix Inc. Memory controller and operating method thereof

Also Published As

Publication number Publication date
US20140215133A1 (en) 2014-07-31

Similar Documents

Publication Publication Date Title
KR20140096875A (ko) 메모리 시스템의 및 그것의 블록 관리 방법
TWI647702B (zh) 記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法
KR100974954B1 (ko) 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법
US9645896B2 (en) Data storage device and flash memory control method
US9740425B2 (en) Tag-based wear leveling for a data storage device
TWI679642B (zh) 用於組態和控制非揮發性快取記憶體的系統及方法
US10229049B2 (en) Storage system that performs host-initiated garbage collection
KR102147359B1 (ko) 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US20160232088A1 (en) Garbage Collection in Storage System with Distributed Processors
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
US20110252187A1 (en) System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory
KR102295208B1 (ko) 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
US11204721B2 (en) Input/output size control between a host system and a memory sub-system
US10740228B2 (en) Locality grouping during garbage collection of a storage device
US9875039B2 (en) Method and apparatus for wear-leveling non-volatile memory
CN111373383B (zh) 存储器高速缓存管理
CN111158579B (zh) 固态硬盘及其数据存取的方法
CN110928805B (zh) 存储器***及其操作方法
CN110895449B (zh) 用于在存储器***中管理有效数据的装置和方法
KR20210026431A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20220105303A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN106126437A (zh) 存储***
US9466384B1 (en) Memory device and associated erase method
US9110857B1 (en) Systems and methods for identifying and compressing rarely used data
KR20220070989A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid