KR20160087799A - Nand 플래시 메모리를 위한 결함 관리 정책들 - Google Patents

Nand 플래시 메모리를 위한 결함 관리 정책들 Download PDF

Info

Publication number
KR20160087799A
KR20160087799A KR1020167010692A KR20167010692A KR20160087799A KR 20160087799 A KR20160087799 A KR 20160087799A KR 1020167010692 A KR1020167010692 A KR 1020167010692A KR 20167010692 A KR20167010692 A KR 20167010692A KR 20160087799 A KR20160087799 A KR 20160087799A
Authority
KR
South Korea
Prior art keywords
nvm
trigger event
defect management
type
management policy
Prior art date
Application number
KR1020167010692A
Other languages
English (en)
Other versions
KR101995748B1 (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 인텔 코포레이션
Publication of KR20160087799A publication Critical patent/KR20160087799A/ko
Application granted granted Critical
Publication of KR101995748B1 publication Critical patent/KR101995748B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

비휘발성 스토리지 시스템들에서 유용한 메모리를 가능한 한 많이 유지하면서, 데이터의 우발적인 손실을 회피하기 위해 사용될 수 있는, 비휘발성 스토리지 시스템들에서의 결함들을 관리하는 시스템들 및 방법들이 개시되어 있다. 개시된 시스템들 및 방법들은 비휘발성 스토리지 시스템들에 포함되는 하나 이상의 비휘발성 메모리(NVM) 디바이스들에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하고, 가능한 결함들의 검출을 초래한 트리거 이벤트들의 타입들에 기초하여 하나 이상의 결함 관리 정책들을 각각의 NVM 디바이스들에 적용할 수 있다. 그러한 결함 관리 정책들은 증가된 그래뉼러티로 비휘발성 스토리지 시스템들에서 메모리를 리타이어링하는데 선행적으로 사용되어, 결함을 포함할 가능성이 있는 비휘발성 메모리의 영역들에 대해 메모리의 리타이어먼트를 포커싱할 수 있다.

Description

NAND 플래시 메모리를 위한 결함 관리 정책들{DEFECT MANAGEMENT POLICIES FOR NAND FLASH MEMORY}
본 명세서에 설명되는 실시예들은 일반적으로 비휘발성 메모리 기술에 관한 것이며, 보다 구체적으로는 비휘발성 메모리에서의 결함들을 관리하는 시스템들 및 방법들에 관한 것이다.
비휘발성 스토리지 시스템과 같은 종래의 스토리지 시스템에서, 데이터는 저밀도 패리티 체크(low-density parity-check)(LDPC) 코딩 스킴과 같은 미리 결정된 에러 정정 코딩 스킴에 따라 저장될 수 있다. 그러한 비휘발성 스토리지 시스템은 복수의 비휘발성 메모리(nonvolatile memory)(NVM) 디바이스들을 포함할 수 있으며, 각각의 NVM 디바이스는 인코딩된 데이터를 LDPC 코드워드들의 형태로 저장하기 위한 다수의 NVM 스토리지 요소들 또는 셀들을 포함한다. 그러한 NVM 디바이스들로부터 LDPC 코드워드들을 판독할 때, 하나 이상의 기준 임계 전압 레벨들이 각각의 NVM 셀의 복수의 프로그래밍 상태들 사이에 설정될 수 있고, NVM 셀의 임계 전압 레벨은 NVM 셀의 실제 프로그래밍 상태를 결정하기 위해 각각의 기준 임계 전압 레벨들과 비교될 수 있다.
전형적인 동작 모드에서, 선택된 NVM 디바이스로부터 원하는 LDPC 코드워드를 판독하기 위해, 하드 비트 판독 동작이 수행될 수 있으며, 여기서 LDPC 코드워드는 선택된 NVM 디바이스로부터 소위 "하드 데이터(hard data)"로서 판독된다(즉, LDPC 코드워드 내의 논리 하이 및 로우 비트 레벨들은 각각 "1" 및 "0"으로 취해짐). 또한, 소프트 비트 판독 동작이 수행될 수 있으며, 여기서 LDPC 코드워드는 선택된 NVM 디바이스로부터 소위 "소프트 데이터(soft data)"로서 판독된다(즉, LDPC 코드워드 내의 논리 하이 및 로우 비트 레벨들은 각각 "1" 및 "0"으로 취해지고, LDPC 코드워드 내의 각각의 비트가 "1" 또는 "0"일 가능성을 표시하는 확률 정보가 제공됨). 그 다음, 선택된 NVM 디바이스로부터 판독되는 LDPC 코드워드는 LDPC 코드워드가 유효인지를 결정하기 위해 에러 정정 디코딩을 겪을 수 있다. 디코딩된 LDPC 코드워드가 무효 또는 "결함"인 것으로 발견되면(예를 들어, 에러 정정 코딩/디코딩 실패가 있었을 수 있음), 이 때 부가 LDPC 코드워드들이 다른 NVM 디바이스들로부터 판독될 수 있고, 원하는 LDPC 코드워드를 복구하려는 시도로 부가 LDPC 코드워드들을 사용하여 XOR 데이터 복구가 수행될 수 있다.
그러한 결함 LDPC 코드워드의 검출은, 다른 것들 중에서, 선택된 NVM 디바이스 상의 물리적 메모리 페이지가 기저의 하드웨어 결함(예를 들어, 개방 또는 단락)에 의해 영향을 받고 있는 것, 또는 선택된 NVM 디바이스가 본질적으로 높은 잔류 비트 에러 레이트(residual bit error rate)(RBER)를 갖는 것을 표시할 수 있다. 임의의 경우에, 비휘발성 스토리지 시스템들에서 유용한 메모리를 가능한 한 많이 유지하면서, 데이터의 우발적인 손실을 회피하기 위해 사용될 수 있는, 비휘발성 스토리지 시스템들에서의 결함들을 관리하기 위한 메커니즘을 갖는 것이 바람직할 것이다.
본 명세서에 포함되며 본 명세서의 부분을 구성하는 첨부 도면들은 본 명세서에 설명되는 하나 이상의 실시예들을 예시하고, 상세한 설명과 함께, 이들 실시예들을 설명한다.
도 1a는 본 출원에 따른 비휘발성 메모리(NVM) 결함 관리 정책 엔진을 포함하는 예시적인 비휘발성 스토리지 시스템의 블록도이다.
도 1b는 도 1a의 비휘발성 스토리지 시스템에 포함되는 예시적인 NVM 판독 로직의 블록도이다.
도 2는 도 1a의 비휘발성 스토리지 시스템에 포함되는 NVM 디바이스로부터 판독된 코드워드의 디코딩을 표현하는 "전압" 대 "확률"의 도면이다.
도 3은 도 1a의 비휘발성 스토리지 시스템에 포함되는 NVM 결함 관리 정책 엔진을 동작시키는 예시적인 방법을 예시하는 흐름도이다.
도 4는 도 1a의 비휘발성 스토리지 시스템이 사용될 수 있는 예시적인 컴퓨터 시스템의 블록도이다.
비휘발성 스토리지 시스템들에서 유용한 메모리를 가능한 한 많이 유지하면서, 데이터의 우발적인 손실을 회피하기 위해 사용될 수 있는, 비휘발성 스토리지 시스템들에서의 결함들을 관리하는 시스템들 및 방법들이 개시되어 있다. 개시된 시스템들 및 방법들은 비휘발성 스토리지 시스템들에 포함되는 하나 이상의 비휘발성 메모리(NVM) 디바이스들에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하고, 가능한 결함들의 검출을 초래한 트리거 이벤트들의 타입들에 기초하여 하나 이상의 결함 관리 정책들을 각각의 NVM 디바이스들에 적용할 수 있다. 그러한 결함 관리 정책들은 증가된 그래뉼러티(granularity)로 비휘발성 스토리지 시스템들에서 메모리를 리타이어링하는데 선행적으로(proactively) 사용되어, 결함을 포함할 가능성이 있는 비휘발성 메모리의 영역들에 대해 메모리의 리타이어먼트를 포커싱할 수 있다.
도 1a는 본 출원에 따른 비휘발성 스토리지 시스템 내의 하나 이상의 NVM 디바이스들에 액세스하기 위한 예시적인 시스템(100)의 예시적인 실시예를 도시한다. 도 1a에 도시된 바와 같이, 시스템(100)은 호스트 프로세서(102), 비휘발성 스토리지 시스템(104), 및 호스트 프로세서(102)를 비휘발성 스토리지 시스템(104)에 통신가능하게 결합하도록 동작하는 메모리 버스(105)를 포함한다. 비휘발성 스토리지 시스템(104)은 NVM 컨트롤러(106), NVM 컨트롤러(106)에 통신가능하게 결합되는 하나 이상의 NVM 디바이스들(108.1 내지 108.n), 및 NVM 컨트롤러(106)에 통신가능하게 결합되는 NVM 결함 관리 정책 엔진(110)을 포함한다. 도 1a에 추가로 도시된 바와 같이, NVM 컨트롤러(106)는, 호스트 프로세서(102)에 의해 발행되는 하나 이상의 데이터 판독/기입 요청들에 응답하여, 데이터를 각각의 NVM 디바이스들(108.1 내지 108.n)에 기입할 시에 사용하기 위한 NVM 기입 로직(114)뿐만 아니라, 각각의 NVM 디바이스들(108.1 내지 108.n)로부터 데이터를 판독할 시에 사용하기 위한 NVM 판독 로직(112)을 포함한다.
도 1a의 시스템(100)에서, 호스트 프로세서(102)는 하나 이상의 프로세서들, 하나 이상의 멀티코어 프로세서들, 및/또는 임의의 다른 적합한 프로세서 또는 프로세서들을 사용하여 구현될 수 있다. 또한, NVM 디바이스들(108.1 내지 108.n) 각각은 메모리 셀 당 단일 비트를 사용하는 NAND 또는 NOR 플래시 메모리와 같은 비휘발성 메모리, 셀 당 2 비트를 갖는 NAND 플래시 메모리와 같은 멀티 레벨 셀(multi-level cell)(MLC) 메모리, 폴리머 메모리, 상 변화 메모리(phase-change memory)(PCM), 나노와이어 기반 전하 트래핑 메모리, 강유전체 트랜지스터 랜덤 액세스 메모리(ferroelectric transistor random access memory)(FeTRAM), 3차원 크로스 포인트 메모리, 메모리 저항기(멤리스터(memristor)) 기술을 사용하는 비휘발성 메모리, 또는 임의의 다른 적합한 비휘발성 메모리를 포함할 수 있다. 추가로, 비휘발성 스토리지 시스템(104)은 고체 상태 드라이브(solid-state drive)(SSD) 또는 임의의 다른 적합한 영속적 데이터 저장 매체로서 구성될 수 있고, 메모리 버스(105)는 PCIe(Peripheral Component Interconnect express) 버스, 또는 영속적 데이터 저장 매체에 대한 임의의 다른 적합한 인터페이스로서 구현될 수 있다.
도 1b는 NVM 컨트롤러(106)에 포함되는 NVM 판독 로직(112)의 예시적인 기능도를 도시한다. 도 1b에 도시된 바와 같이, NVM 판독 로직(112)은 배타적 논리합(exclusive-or)(XOR) 로직(116), 멀티플렉서(MUX)(118), 하드 데이터 발생기(119), 소프트 데이터 발생기(120), 및 저밀도 패리티 체크(LDPC) 디코더(122) 또는 임의의 다른 적합한 에러 정정 디코더와 같은 에러 정정 디코더를 포함한다. 일 실시예에서, LDPC 코딩은 LDPC 인코딩된 데이터(또한 본 명세서에서 "LDPC 코드워드들"로 지칭됨)의 형태로 각각의 NVM 디바이스들(108.1 내지 108.n)의 적어도 일부에 데이터를 저장하기 위해 사용된다. 예를 들어, NVM 디바이스들(108.1 내지 108.n-1)의 적어도 일부는 그러한 LDPC 코드워드들을 저장하기 위해 사용될 수 있고, 적어도 NVM 디바이스(108.n)는 중복 데이터(redundant data)(또한 본 명세서에서 "XOR 데이터"로 지칭됨)를 저장하기 위해 사용될 수 있으며, 이는 그 후에 예를 들어 하나 이상의 에러 정정 코딩/디코딩 실패들 등으로 인해 무효 또는 "결함"인 것으로 발견되는 임의의 디코딩된 LDPC 코드워드들을 복구하기 위해 사용될 수 있다. 또한, NVM 디바이스(108.n)에 저장되는 그러한 XOR 데이터는 각각의 NVM 디바이스들(108.1 내지 108.n-1)의 적어도 일부의 대응하는 NVM 스토리지 위치들에 저장되는 LDPC 코드워드들에 대해 배타적 논리합(XOR) 연산들을 수행함으로써 발생될 수 있다.
비휘발성 메모리 스토리지는 비휘발성 메모리의 복수의 블록들에서 NVM 디바이스들(108.1 내지 108.n) 각각 내에 구성될 수 있다는 점이 주목된다. 또한, 각각의 블록은 육십 네(64)개의 순차적으로 정렬된 페이지들, 또는 임의의 다른 적합한 수의 순차적으로 정렬된 페이지들을 포함할 수 있다. 추가로, 각각의 페이지는, 페이지에 대해 발생되었을 수 있는 임의의 메타데이터(예를 들어, 유효/무효 마커들, 물리적/논리적 어드레스들, 시퀀스 번호) 또는 페이지 상에 저장되는 데이터뿐만 아니라, LDPC 인코딩된 데이터 또는 XOR 데이터를 저장하기 위한 복수의 NVM 스토리지 요소들 또는 셀들을 포함할 수 있다.
도 1a의 시스템(100)에서, NVM 결함 관리 정책 엔진(110)은 비휘발성 스토리지 시스템(104)에 포함되는 NVM 디바이스들(108.1 내지 108.n) 중 하나 이상에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하고, 가능한 결함들의 검출을 초래한 트리거 이벤트들의 타입들에 기초하여 하나 이상의 결함 관리 정책들을 각각의 NVM 디바이스들(108.1 내지 108.n)에 적용하도록 동작한다. 일 실시예에서, 그러한 트리거 이벤트들은 적어도 세(3)개의 타입들의 트리거 이벤트들, 즉 하드 비트 판독(hard bit read)(HBR) 트리거 이벤트, 소프트 비트 판독(soft bit read)(SBR) 트리거 이벤트, 및 XOR 데이터 복구 트리거 이벤트를 포함할 수 있다. 또한, HBR 트리거 이벤트, SBR 트리거 이벤트, 및 XOR 데이터 복구 트리거 이벤트 각각은 NVM 판독 로직(112)을 사용하여 각각의 NVM 디바이스들(108.1 내지 108.n)로부터 데이터를 판독하는 동작 동안에 때때로 발생될 수 있다.
HBR 트리거 이벤트들, SBR 트리거 이벤트들, 및 XOR 데이터 복구 트리거 이벤트들의 발생은 다음의 예시적인 예, 및 도 1a, 도 1b 및 도 2를 참조하여 추가로 이해될 것이다. 이러한 예에서, NVM 컨트롤러(106) 내의 NVM 판독 로직(112)은 메모리 버스(105)를 통해 호스트 프로세서(102)에 의해 발행되는 데이터 판독 요청에 응답하여 각각의 NVM 디바이스들(108.1 내지 108.n) 중 하나 이상으로부터 데이터를 판독하기 위해 사용된다. 예를 들어, 호스트 프로세서(102)는 NVM 디바이스(108.1) 내의 지정된 NVM 스토리지 위치에 저장되는 원하는 LDPC 코드워드를 판독하기 위해 데이터 판독 요청을 발행할 수 있다. 또한, 지정된 NVM 스토리지 위치는 하나 이상의 NVM 셀들을 포함할 수 있으며, 그 각각은 2 비트 값, 3 비트 값, 또는 임의의 다른 적합한 멀티비트 값에 대응하도록 디코딩될 수 있다.
도 2는 NVM 디바이스(108.1) 내의 지정된 NVM 스토리지 위치에 저장되는 원하는 LDPC 코드워드의 디코딩을 표현하는 "전압" 대 "확률"의 도면이다. 도 2에 예시된 바와 같이, 지정된 NVM 스토리지 위치에 포함되는 예시적인 NVM 셀은, 예를 들어 복수의 상태들(예를 들어, 적어도 상태 1(11), 상태 2(10), 상태 3(00)) 중 하나에 의해 표현되는 2 비트 값으로 디코딩될 수 있는, 셀 당 2 비트를 갖는 MLC NAND 셀일 수 있다. 구체적으로, 상태 1, 상태 2, 상태 3은 세(3)개의 곡선들(202, 204, 206) 각각을 참조하여 예시되며, 곡선들은 수평 축을 따르는 전압이 각각의 상태 1, 상태 2, 상태 3을 일으키는 다양한 비트 조합들(예를 들어, 11, 10, 00)에 대응하는 수학적 확률들을 표현한다. 도 2의 곡선들(202, 204, 206)에 의해 표현되는 수학적 확률들을 사용하면, 본 명세서에서 NVM 셀로부터의 "하드 비트 판독" 또는 "소프트 비트 판독"으로 지칭되는 것은 상태 1, 상태 2, 상태 3 중 하나에 의해 표현되는 2 비트 값에 대응하도록 디코딩될 수 있다.
NVM 판독 로직(112)(도 1b 참조)이 예시적인 NVM 셀로부터의 하드 비트 판독을 수행하기 위해 사용될 때, 적어도 하나의 하드 비트(HB) 기준 임계 전압 레벨이 상태 1, 상태 2, 상태 3, ... 중 인접 상태들 사이에 설정될 수 있다(도 2 참조). 예를 들어, 적어도 제1 HB 기준 임계 전압 레벨(HB1)은 인접 상태 1과 상태 2 사이에 설정될 수 있고, 적어도 제2 HB 기준 임계 전압 레벨(HB2)은 인접 상태 2와 상태 3 사이에 설정될 수 있고, 적어도 제3 HB 기준 임계 전압 레벨(HB3)은 상태 3과 다음 인접 상태(도시되지 않음) 사이에 설정될 수 있다. 또한, NVM 셀의 인접 전압 레벨은 NVM 셀의 실제 상태 1, 상태 2, 상태 3, ...을 결정하기 위해 적어도 이들 기준 임계 전압 레벨들(HB1, HB2, HB3)과 비교될 수 있다.
도 2를 참조하면, 하드 비트 판독을 수행할 때, 기준 임계 전압 레벨(HB1)이 예시적인 NVM 셀의 임계 전압 레벨보다 더 큰 것으로 결정되면, 이 때 NVM 셀은 상태 1에 있는 것으로 결론지어질 수 있다. 또한, NVM 셀의 임계 전압 레벨이 기준 임계 전압 레벨(HB1)보다 더 크지만 기준 임계 전압 레벨(HB2)보다 더 작은 것으로 결정되면, 이 때 NVM 셀은 상태 2에 있는 것으로 결론지어질 수 있다. 더욱이, NVM 셀의 임계 전압 레벨이 기준 임계 전압 레벨(HB2)보다 더 크지만 기준 임계 전압 레벨(HB3)보다 더 작은 것으로 결정되면, 이 때 NVM 셀은 상태 3에 있는 것으로 결론지어질 수 있다.
NVM 판독 로직(112)(도 1b 참조)이 예시적인 NVM 셀로부터의 소프트 비트 판독을 수행하기 위해 사용될 때, 적어도 하나의 소프트 비트(SB) 기준 임계 전압 레벨이 예를 들어 각각의 상태 1, 상태 2, 상태 3 각각에 대응하는 곡선들(202, 204, 206)의 영역들 내에서 수평 축을 따라, 또는 수평 축을 따른 임의의 다른 적합한 위치에 설정될 수 있다. 예를 들어, 적어도 제1 SB 기준 임계 전압 레벨(SB1)은 상태 2에 대응하는 곡선(204)의 영역 내에 설정될 수 있고, 적어도 제2 SB 기준 임계 전압 레벨(SB2)은 상태 3에 대응하는 곡선(206)의 영역 내에 설정될 수 있다.
도 2를 참조하면, 소프트 비트 판독을 수행할 때, 예시적인 NVM 셀의 임계 전압 레벨이 기준 임계 전압 레벨(HB1)보다 더 크지만 기준 임계 전압 레벨(SB1)보다 더 작은 것으로 결정되면, 이 때 NVM 셀의 임계 전압 레벨은 상태 1에 대응하는 곡선(202)의 상부 전압 영역에 있는 것으로 결론지어질 수 있다. 유사하게, NVM 셀의 임계 전압 레벨이 기준 임계 전압 레벨(HB2)보다 더 크지만 기준 임계 전압 레벨(SB2)보다 더 작은 것으로 결정되면, 이 때 NVM 셀의 임계 전압 레벨은 상태 2에 대응하는 곡선(204)의 상부 전압 영역에 있는 것으로 결론지어질 수 있다. 이러한 방식으로, 그러한 소프트 비트 판독은 NVM 셀의 상태가 증가된 해상도로 결정되는 것을 허용할 수 있다.
호스트 프로세서(102)에 의해 발행되는 데이터 판독 요청에 응답하여, NVM 판독 로직(112)(도 1a, 도 1b 참조)은 NVM 디바이스들(108.1 내지 108.n-1) 중 선택된 것으로부터 원하는 LDPC 코드워드를 판독하기 위해 MUX(118)를 제어하도록 동작한다. 위에서 논의된 바와 같이, NVM 디바이스들(108.1 내지 108.n-1)의 적어도 일부는 그러한 LDPC 코드워드들을 저장하기 위해 사용될 수 있고, 적어도 NVM 디바이스(108.n)은 중복 데이터(XOR 데이터)를 저장하기 위해 사용될 수 있다.
이러한 예에서, NVM 판독 로직(112)은 선택된 NVM 디바이스로부터 원하는 LDPC 코드워드의 하드 비트 판독을 우선 수행하도록 MUX(118)를 제어한다. 그 목적을 위해, MUX(118)는 선택된 NVM 디바이스의 적어도 하나의 NVM 스토리지 위치로부터 LDPC 코드워드에 대응하는 데이터를 수신하고, 수신된 데이터를 하드 데이터 발생기(119)에 제공하며, 하드 데이터 발생기는 NVM 셀의 상태(예를 들어, 상태 1, 상태 2, 상태 3, ...; 도 2 참조)를 결정하기 위해 NVM 스토리지 위치에 포함되는 적어도 하나의 NVM 셀의 임계 전압 레벨을 하나 이상의 하드 비트(HB) 기준 임계 전압 레벨들(예를 들어, HB1, HB2, HB3; 도 2 참조)(또한 본 명세서에서 "중심 기준 임계 전압 레벨들"로 지칭됨)과 비교하는데 이 데이터를 사용한다. 일 실시예에서, 하드 데이터 발생기(119)는 NVM 셀의 상태를 결정하기 위해 NVM 셀의 임계 전압 레벨을 각각의 중심 기준 임계 전압 레벨들(예를 들어, HB1, HB2, HB3; 도 2 참조)로부터 오프셋되는 하나 이상의 부가 HB 기준 임계 전압 레벨들(예를 들어, HB1a, HB1b, HB2a, HB2b, HB3a, HB3b; 도 2 참조)과 비교하도록 또한 동작할 수 있다. 그 다음, 하드 데이터 발생기(119)는 각각의 하드 비트 임계 전압 레벨 비교들로부터 발생되는 소위 "하드 데이터"를 LDPC 디코더(122)에 제공한다.
NVM 판독 로직(112)은 선택된 NVM 디바이스로부터 LDPC 코드워드의 소프트 비트 판독을 수행하기 위해 MUX(118)를 또한 제어할 수 있다. 그 목적을 위해, MUX(118)는 LDPC 코드워드에 대응하는 데이터를 소프트 데이터 발생기(120)에 제공하며, 소프트 데이터 발생기는 NVM 셀의 상태(예를 들어, 상태 1, 상태 2, 상태 3, ...; 도 2 참조)를 결정하기 위해 NVM 셀의 임계 전압 레벨을 하나 이상의 소프트 비트(SB) 기준 임계 전압 레벨들(예를 들어, SB1, SB2; 도 2 참조)과 비교하는데 이 데이터를 사용한다. 일 실시예에서, 소프트 데이터 발생기(120)는 NVM 셀의 상태를 결정하기 위해 NVM 셀의 임계 전압 레벨을 각각의 SB1, SB2 기준 임계 전압 레벨들로부터 오프셋되는 하나 이상의 부가 SB 기준 임계 전압 레벨들(예를 들어, SB1a, SB1b, SB2a, SB2b; 도 2 참조)과 비교하도록 또한 동작할 수 있다. 그 다음, 소프트 데이터 발생기(120)는 각각의 소프트 비트 임계 전압 레벨 비교들로부터 발생되는 소위 "소프트 데이터"를 LDPC 디코더(122)에 제공한다.
하드 데이터 발생기(119) 및 소프트 데이터 발생기(120) 각각으로부터 하드 데이터 및 소프트 데이터를 수신하였으면, LDPC 디코더(122)는, LDPC 코드워드가 유효인지를 결정하기 위해, 하드 데이터를 사용하여, LDPC 코드워드를 우선 디코딩하도록 동작한다. LDPC 코드워드가 유효인 것으로 결정되는 경우, 이 때 LDPC 디코더(122)는 디코딩된 LDPC 코드워드를 데이터 출력(도 1b 참조)으로서 호스트 프로세서(102)에 포워딩할 수 있다. 하드 데이터를 사용하여 디코딩되었지만, LDPC 코드워드가 무효 또는 "결함"인 것으로 발견되는 경우(예를 들어, 에러 정정 코딩/디코딩 실패가 있었을 수 있음), 이 때 LDPC 디코더(122)는, NVM 결함 관리 정책 엔진(110)에서의 수신을 위해, 트리거 이벤트(들)(도 1b 참조), 즉 HBR 트리거 이벤트를 발생시킬 수 있다. 그러한 결함 LDPC 코드워드의 검출은, 다른 것들 중에서, 선택된 NVM 디바이스 상의 물리적 메모리 페이지가 기저의 하드웨어 결함(예를 들어, 개방 또는 단락)에 의해 영향을 받고 있는 것, 또는 선택된 NVM 디바이스가 본질적으로 높은 잔류 비트 에러 레이트(RBER)를 갖는 것을 표시할 수 있다는 점이 주목된다.
하드 데이터를 사용하여 LDPC 코드워드를 디코딩하려는 하나 이상의 비성공적인 시도들 후에, LDPC 디코더(122)는 소프트 데이터 발생기(120)에 의해 발생되는 소프트 데이터를 사용하여 LDPC 코드워드를 디코딩하도록 또한 동작할 수 있다. 일 실시예에서, LDPC 디코더(122)는 초기 확률 메트릭들을 LDPC 코드워드 내의 각각의 비트에 할당함으로써 LDPC 코드워드를 디코딩하기 위해 반복 확률 디코딩 프로세스(iterative probabilistic decoding process)를 구현할 수 있다. 예를 들어, 그러한 반복 확률 디코딩 프로세스는 확률 메트릭들을 LLR들(logarithmic likelihood ratios)의 형태로 사용할 수 있으며, 여기서 복수의 LLR 값들은 선택된 NVM 디바이스로부터 판독되는 비트 값들이 공지되어 있다는 신뢰성의 척도(measures)로서 제공된다. LDPC 코드워드가 유효인 것으로 결정되는 경우, 이 때 LDPC 디코더(122)는 디코딩된 LDPC 코드워드를 데이터 출력(도 1b 참조)으로서 호스트 프로세서(102)에 포워딩할 수 있다. 소프트 데이터를 사용하여 디코딩되었지만, 디코딩된 LDPC 코드워드가 결함인 것으로 다시 발견되는 경우, 이 때 LDPC 디코더(122)는 NVM 결함 관리 정책 엔진(110)에서의 수신을 위해 추가 트리거 이벤트(들)(도 1b 참조), 즉 SBR 트리거 이벤트를 발생시킬 수 있다.
소프트 데이터를 사용하여 LDPC 코드워드를 디코딩하려는 하나 이상의 비성공적인 시도들 후에, LDPC 디코더(122)는 원하는 LDPC 코드워드를 복구하려는 시도로 XOR 데이터 복구를 수행하도록 여전히 또한 동작할 수 있다. 그 목적을 위해, NVM 판독 로직(112)(도 1a, 도 1b 참조)은 NVM 디바이스(108.n)에 저장되는 XOR 데이터뿐만 아니라, 현재 선택되지 않은 NVM 디바이스들(108.1 내지 108.n-1)에 저장되는 부가 LDPC 코드워드들을 수신하도록 XOR 로직(116)을 제어한다. XOR 로직(116)은 이들 부가 LDPC 코드워드들 및 XOR 데이터에 대해 하나 이상의 배타적 논리합(XOR) 연산들을 수행하고, XOR 연산들의 결과들을 소위 "사이드 데이터(side data)"로서 LDPC 디코더(122)에 제공하도록 동작하며, LDPC 디코더는 원하는 LDPC 코드워드를 복구하기 위해 적어도 이들 사이드 데이터를 사용하여 부가 LDPC 디코딩을 수행할 수 있다.
LDPC 디코더(122)에 의해 수행되는 그러한 부가 LDPC 디코딩은 임의의 적합한 XOR 데이터 복구 프로세스를 수반할 수 있다. 일 실시예에서, XOR 데이터 복구 프로세스는 적어도 사이드 데이터 내의 부가 LDPC 코드워드들을 소프트 데이터와 결합하는 것, 및 결합된 데이터에 대해 LDPC 디코딩을 수행하는 것을 포함할 수 있다. 부가 LDPC 코드워드들의 적어도 일부가 성공적으로 디코딩되지 않으면, 이 때 하나 이상의 XOR 연산들이 성공적으로 디코딩된 LDPC 코드워드들 및 비성공적으로 디코딩된 LDPC 코드워드들에 대해 수행될 수 있고, 이들 XOR 연산들의 결과들은 추가 LDPC 디코딩을 겪을 수 있다. 그러한 추가 LDPC 디코딩이 비성공적이면, 이 때 하나 이상의 부가 XOR 연산들이 LDPC 코드워드들에 대해 수행될 수 있고, 부가 XOR 연산들의 결과들은 더 추가 LDPC 디코딩을 위해 결합될 수 있다. 그러한 추가 LDPC 디코딩이 성공적인 것으로 간주되면, 이 때 원하는 LDPC 코드워드가 복구가능한 것으로 결론지어질 수 있다. 그 다음, LDPC 디코더(122)는 복구된 LDPC 코드워드를 호스트 프로세서(102)에 후속 포워딩을 위한 데이터 출력으로서 제공할 수 있다. 그렇지 않으면, 그러한 추가 LDPC 디코딩이 다시 비성공적이면, 이 때 LDPC 디코더(122)는 NVM 결함 관리 정책 엔진(110)에서의 수신을 위해 부가 트리거 이벤트(들), 즉 XOR 데이터 복구 트리거 이벤트를 발생시킬 수 있다.
위에서 논의된 바와 같이, NVM 결함 관리 정책 엔진(110)은 NVM 디바이스들(108.1 내지 108.n) 중 하나 이상에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하고, 가능한 결함들의 검출을 초래한 트리거 이벤트들의 타입들에 기초하여 하나 이상의 결함 관리 정책들을 각각의 NVM 디바이스들(108.1 내지 108.n)에 적용하도록 동작한다. 이러한 예에서, NVM 결함 관리 정책 엔진(110)에 의해 모니터링되는 트리거 이벤트들의 타입들은 HBR 트리거 이벤트, SBR 트리거 이벤트, 및 XOR 데이터 복구 트리거 이벤트를 포함할 수 있다. 그러한 결함 관리 정책들은 증가된 그래뉼러티로 비휘발성 스토리지 시스템(104)에서 메모리를 리타이어링하는데 선행적으로 사용되어, 결함을 포함할 가능성이 있는 비휘발성 메모리의 영역들에 대해 메모리의 리타이어먼트를 포커싱할 수 있다.
비휘발성 스토리지 시스템(104)(도 1a 참조)에서의 메모리의 그러한 리타이어먼트는 비휘발성 메모리의 적어도 하나의 블록, 비휘발성 메모리의 적어도 하나의 블록 내의 적어도 하나의 페이지, 적어도 하나의 페이지 내의 적어도 하나의 NVM 스토리지 위치, 또는 비휘발성 메모리의 임의의 다른 적합한 영역의 리타이어먼트(즉, 불연속 사용)를 수반할 수 있다. 예를 들어, 물리적 메모리 블록/페이지는 그것의 데이터 콘텐츠를 비휘발성 메모리의 다른 물리적 메모리 블록/페이지 또는 다른 영역에 재위치시키고, 데이터를 저장하기 위해 후속하여 할당되지 않아야 하는 블록들/페이지들의 하나 이상의 리스트들 상에 리타이어링된 물리적 메모리 블록/페이지를 배치함으로써 리타이어링될 수 있다. 비휘발성 메모리의 영역은 또한 비휘발성 메모리의 다른 영역에 대한 어드레스에 대응하기 위해 비휘발성 메모리의 그 영역에 대한 어드레스를 리매핑함으로써 리타이어링될 수 있다. 그러한 리타이어링된 블록들/페이지들 및/또는 리매핑된 어드레스들의 리스트들은 NVM 컨트롤러(106)와 연관되는 휘발성 또는 비휘발성 메모리(예를 들어, 메모리(420b); 도 4 참조)에 저장될 수 있다.
일 실시예에서, 비휘발성 스토리지 시스템(104)에서 비휘발성 메모리의 영역을 리타이어링하기 위해, NVM 결함 관리 정책 엔진(110)은 적어도 다음의 정책들을 각각의 NVM 디바이스들(108.1 내지 108.n)에 적용할 수 있다:
정책 1 - SBR 트리거 이벤트 및/또는 XOR 데이터 복구 트리거 이벤트에 응답하여, (a) 호스트 프로세서(102)가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하는 것, 또는 (b) 호스트 프로세서(102)가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 것; 및
정책 2 - 미리 결정된 수의 HBR 트리거 이벤트들에 응답하여, (a) 호스트 프로세서(102)가 하나 이상의 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하는 것, 또는 (b) 호스트 프로세서(102)가 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 것.
XOR 데이터 복구 트리거 이벤트에 응답하여 위의 정책 1의 (a)를 반복 적용하는 것은, 비휘발성 메모리가 다수의 프로그램/소거(program/erase)(P/E) 사이클들을 겪음에 따라 SBR 트리거 이벤트들과 연관되는 증가된 수의 페이지들을 초래할 수 있다는 점이 주목된다. SBR 트리거 이벤트에 응답하여 정책 1의 (a)를 적용하는 것은, 각각의 순시적인 SBR 트리거 이벤트가 새로운 페이지와 연관되기 때문에 SBR 트리거 이벤트 레이트에 대해 적합한 한계(bound)를 유지할 시에 더 유리할 수 있으며; 이전의 SBR 트리거 이벤트들과 연관되었을 수 있는 임의의 페이지들은 이미 리타이어링되었을 것이다.
SBR 트리거 이벤트에 응답하여 위의 정책 1의 (b)를 적용하는 것은, 고유 잔류 비트 에러 레이트(RBER)가 일반적으로 페이지에 걸쳐 균일하기 때문에 정책 1의 (a)의 적용보다 더 선행적인 것으로 고려될 수 있다. 예를 들어, 페이지 상의 하나의 NVM 스토리지 위치에서의 코드워드가 SBR 트리거 이벤트를 야기하면, 그 페이지 상의 다른 NVM 스토리지 위치에서의 다른 코드워드는 다른 SBR 트리거 이벤트를 야기할 가능성이 있다. 정책 1의 (b)의 적용은 또한 리타이어링된 블록들/페이지들 및/또는 리매핑된 어드레스들의 리스트들을 저장하기 위한 메모리 요건들을 감소시킬 수 있다.
미리 결정된 수의 HBR 트리거 이벤트들에 응답하여 위의 정책 2의 (a)를 적용하는 것은, SBR 트리거 이벤트에 응답하여 정책 1의 (a)를 적용하는 것보다 더 선행적인 것으로 고려될 수 있다. 또한, 미리 결정된 수의 HBR 트리거 이벤트들에 응답하여 위의 정책 2의 (b)를 적용하는 것은, SBR 트리거 이벤트에 응답하여 정책 1의 (b)를 적용하는 것보다 더 선행적인 것으로 고려될 수 있다. 일반적으로, 비휘발성 메모리의 영역들을 리타이어링하기 위한 각각의 정책들은 더 선행적인 것이 되므로, 비휘발성 메모리의 더 많은 영역들은 동일한 P/E 사이클 카운트를 위해 리타이어링될 수 있다. 따라서, 비휘발성 메모리의 영역들을 리타이어링하기 위한 그러한 선행적 정책들은 감소된 오버-프로비져닝, 증가된 기입 증폭, 및/또는 더 높은 내구성을 초래할 수 있다.
비휘발성 스토리지 시스템(104)에 포함되는 NVM 결함 관리 정책 엔진(110)을 동작시키는 예시적인 방법은 도 1a, 도 1b, 및 도 3을 참조하여 아래에 설명된다. 블록(302)에 도시된 바와 같이(도 3 참조), NVM 결함 관리 정책 엔진(110)(도 1a 참조)은 NVM 디바이스들(108.1 내지 108.n)(도 1a, 도 1b 참조) 중 선택된 NVM 디바이스에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링한다. 그러한 트리거 이벤트들은 적어도 하나의 HBR 트리거 이벤트, 적어도 하나의 SBR 트리거 이벤트, 및/또는 적어도 하나의 XOR 데이터 복구 트리거 이벤트를 포함할 수 있다. 또한, 그러한 트리거 이벤트들은 선택된 NVM 디바이스로부터 판독되는 LDPC 코드워드를 디코딩하려는 하나 이상의 시도들 동안에 LDPC 디코더(122)에 의해 발생될 수 있다. 블록(304)에 도시된 바와 같이, 트리거 이벤트의 타입이 SBR 트리거 이벤트 또는 XOR 데이터 복구 트리거 이벤트에 대응하는지에 관한 결정이 이루어진다. 트리거 이벤트의 타입이 SBR 트리거 이벤트 또는 XOR 데이터 복구 트리거 이벤트에 대응하는 경우에, 블록(306)에 도시된 바와 같이, 호스트 프로세서(102)가 데이터 판독 요청을 발행한 LDPC 코드워드의 NVM 스토리지 위치를 리타이어링하거나, 또는 호스트 프로세서(102)가 데이터 판독 요청을 발행한 LDPC 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 정책을 포함하는 적어도 하나의 정책이 NVM 결함 관리 정책 엔진(110)에 의해 적용된다. 블록(308)에 도시된 바와 같이, 트리거 이벤트의 타입이 미리 결정된 수의 HBR 트리거 이벤트들에 대응하는지에 관한 추가 결정이 이루어진다. 트리거 이벤트의 타입이 미리 결정된 수의 HBR 트리거 이벤트들에 대응하는 경우에, 블록(310)에 도시된 바와 같이, 호스트 프로세서(102)가 하나 이상의 데이터 판독 요청들을 발행한 LDPC 코드워드의 NVM 스토리지 위치를 리타이어링하거나, 또는 호스트 프로세서(102)가 데이터 판독 요청들을 발행한 LDPC 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 정책을 포함하는 적어도 하나의 추가 정책이 NVM 결함 관리 정책 엔진(110)에 의해 적용된다.
도 4는 청구된 발명의 시스템들 및 방법들을 구현하도록 구성될 수 있는 예시적인 컴퓨터 시스템(400)을 도시한다. 도 4에 도시된 바와 같이, 컴퓨터 시스템(400)은, 시스템 버스(414)에 의해 적어도 하나의 메모리(404)에 통신가능하게 결합되고 메모리 버스(415)에 의해 NVM 컨트롤러(420)에 통신가능하게 결합되는 적어도 하나의 프로세서(402)를 포함할 수 있다. 컴퓨터 시스템(400)은 시스템 버스(414)에 통신가능하게 결합되는 키보드(416)와 디스플레이(418), 및 NVM 컨트롤러(420)에 통신가능하게 결합되는 NVM 결함 관리 정책 엔진(430)과 NVM 디바이스(412)를 더 포함할 수 있다. NVM 컨트롤러(420)는, 메모리(420b) 또는 임의의 다른 적합한 저장 매체와 같은 적어도 하나의 비일시적 저장 매체로부터 적어도 하나의 프로그램을 실행하고, NVM 디바이스(412) 내의 하나 이상의 블록들/페이지들에 저장가능한 영속적 데이터에 액세스하고, NVM 결함 관리 정책 엔진(430)의 동작들을 제어하도록 동작하는 적어도 하나의 프로세서(420a)를 포함한다. 프로세서(402)는, NVM 컨트롤러(420)의 동작들을 제어하기 위한 하나 이상의 프로세스들을 포함하여, 다양한 프로세스들을 컴퓨터 시스템(400) 내에서 수행하기 위해, 메모리(404) 또는 임의의 다른 적합한 저장 매체와 같은 적어도 하나의 비일시적 저장 매체 상에 저장되는 명령어들을 실행하도록 동작한다. 메모리(404)는, 동적 랜덤 액세스 메모리(DRAM) 또는 임의의 다른 적합한 휘발성 메모리로서 구현될 수 있는 휘발성 메모리(410)와 같은 하나 이상의 메모리 구성요소들을 포함할 수 있다. 메모리(404)는 또한 운영 체제(406)에 의해 실행될 수 있는 하나 이상의 애플리케이션들(408)뿐만 아니라, 프로세서(402)에 의해 실행가능한 운영 체제(406)를 저장하도록 구성될 수 있다. 애플리케이션들(408) 중 하나에 의해 발생되는 요청에 응답하여, 프로세서(402)는, 휘발성 메모리(410)에 대해 원하는 데이터 기입/판독 동작들을 수행하고/하거나, NVM 컨트롤러(420)를 통해 NVM 디바이스(412)에 대해 원하는 블록/페이지 기입/판독 동작들을 수행하도록 운영 체제(406)를 실행할 수 있다.
도 4는 컴퓨터 시스템(400)의 예시적인 실시예를 예시하고, 컴퓨터 시스템(400)의 다른 실시예들은 도 4에 예시된 구성요소들보다 더 많은 구성요소들, 또는 더 적은 구성요소들을 포함할 수 있다는 점이 주목된다. 또한, 구성요소들은 도 4에 예시된 것과는 상이하게 배열될 수 있다. 예를 들어, 일부 실시예들에서, NVM 디바이스(412)는 인터넷 또는 임의의 다른 적합한 네트워크를 통해 컴퓨터 시스템(400)에 액세스가능한 원격 장소에 위치될 수 있다. 추가로, 컴퓨터 시스템(400)의 다른 실시예들에 포함되는 다양한 구성요소들에 의해 수행되는 기능들은 본 명세서에 설명된 것과는 상이하게 각각의 구성요소들 사이에 분산될 수 있다.
개시된 시스템들 및 방법들의 위의 예시적인 실시예들을 설명했지만, 다른 대안 실시예들 또는 변형들이 이루어질 수 있다. 예를 들어, 결함(들)을 갖는 물리적 메모리 페이지는 그것의 데이터 콘텐츠를 비휘발성 메모리의 다른 물리적 메모리 페이지 또는 다른 영역에 재위치시킴으로써 리타이어링될 수 있다고 본 명세서에 설명되었다. 그러한 데이터 재위치는, 결함 페이지로부터 데이터를 판독하는 결과로서 발생하는 SBR 트리거 이벤트들과 같은 추가 트리거 이벤트들을 회피하기 위해 가능한 한 빨리 결함 물리적 메모리 페이지 상의 데이터가 다른 물리적 메모리 페이지로 재위치되는 것을 일반적으로 의미한다. 데이터 재위치가 달성된 후에, 결함 페이지(예를 들어, 상부 페이지, 하부 페이지)는 영구적으로 리타이어링되어야 한다. 비휘발성 메모리의 이웃하는 워드 라인들 사이에서 원하는 셀간 결합(cell-to-cell coupling)을 유지할 뿐만 아니라, 이웃하는 워드 라인들에 대한 원하는 판독-기입 버퍼(RWB) 마진들을 유지하기 위해, 리타이어링된 페이지를 포함하는 블록/밴드가 프로그래밍될 때마다 데이터의 적합한 랜덤 패턴이 리타이어링된 페이지(상부 또는 하부) 상으로 프로그래밍될 수 있다. 또한, 리타이어링된 페이지가 하부 페이지에 대응하면, 이 때 연관된 상부 페이지는 상부 페이지의 프로그래밍 동안에 하부 페이지의 선행-판독 전압(pre-read voltage)을 수정함으로써 더 강건하게 될 수 있다. 이러한 방식으로, 하부 페이지의 수정된 선행-판독 전압은 상부 페이지로부터의 잠재적인 에러들을 리타이어링되고 결코 다시 판독되지 않는 하부 페이지로 효과적으로 푸시하기 위해 사용될 수 있다.
추가로, 위의 정책 1의 (b)의 적용은 리타이어링된 블록들/페이지들 및/또는 리매핑된 어드레스들의 리스트들을 저장하기 위한 메모리 요건들을 감소시킬 수 있다고 본 명세서에 설명되었다. 그러한 메모리 요건들을 추가로 감소시키기 위해, 메모리 리타이어먼트의 그래뉼러티는 단일 페이지로부터 페이지들의 그룹으로 수정될 수 있다. 예를 들어, 그러한 페이지들의 그룹이 N개의 단일-평면 페이지들(예를 들어, 이중 평면 페이지에 대해, N=2; 쿼드 평면 페이지에 대해, N=4)을 포함하면, 이 때 메모리 요건들은 N의 인자만큼 감소될 수 있다. 더욱이, 리타이어링된 블록들/페이지들 및/또는 리매핑된 어드레스들의 리스트들에 관한 저장된 정보의 양은 그들 페이지들 또는 페이지들의 그룹들이 결함(들)을 포함하는지를 표시하는 리타이어링된 페이지들(또는 페이지들의 그룹들)의 모두에 대해 단순한 비트 맵(simple bit map)으로 감소될 수 있다.
메모리 리타이어먼트의 그래뉼러티의 추가 수정들이 또한 가능하다. 예를 들어, 다수의 NVM 디바이스들(예를 들어, 다이스)에 걸쳐 블록들로서 구성되는 밴드들을 갖는 RAID(random array of independent disks) 스킴에서, 동일한 페이지가 동일한 스트라이프 또는 다이에서의 모든 블록들에 대해 리타이어링될 수 있다. 대안으로, 하나 이상의 HBR 트리거 이벤트들이 동일한 다이 내의 동일한 페이지에 대해 미리 결정된 수보다 많은 블록들에서 발생하는 경우에 모든 블록들에 대해 동일한 페이지가 리타이어링될 수 있다.
다음의 예들은 개시된 시스템들 및 방법들의 추가의 예시적인 실시예들에 관한 것이다. 예 1은 비휘발성 스토리지 시스템에서의 결함들을 관리하는 방법이며, 비휘발성 스토리지 시스템은 하나 이상의 비휘발성 메모리(NVM) 디바이스들을 포함한다. 이 방법은, NVM 결함 관리 정책 엔진에 의해, 적어도 하나의 NVM 디바이스에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하는 단계를 포함하며, 복수의 트리거 이벤트들 각각은 연관된 타입을 갖는다. 이 방법은, 적어도 하나의 트리거 이벤트를 모니터링하였으면, 트리거 이벤트의 타입을 NVM 결함 관리 정책 엔진에 의해 결정하는 단계, 및 NVM 결함 관리 정책 엔진에 의해, 트리거 이벤트의 타입에 기초하여 적어도 하나의 결함 관리 정책을 NVM 디바이스에 적용하는 단계를 더 포함한다.
예 2에서, 예 1의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 소프트 비트 판독 트리거 이벤트 및 배타적 논리합(XOR) 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 적어도 하나의 결함 관리 정책을 NVM 디바이스에 적용하는 단계는 호스트 프로세서가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하는 단계를 포함한다.
예 3에서, 예 1 및 예 2 중 어느 하나의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 소프트 비트 판독 트리거 이벤트 및 XOR 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 적어도 하나의 결함 관리 정책을 NVM 디바이스에 적용하는 단계는 호스트 프로세서가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 단계를 포함한다.
예 4에서, 예 1의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, 적어도 하나의 결함 관리 정책을 NVM 디바이스에 적용하는 단계는 호스트 프로세서가 하나 이상의 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하는 단계를 포함한다.
예 5에서, 예 1 및 예 4 중 어느 하나의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, 적어도 하나의 결함 관리 정책을 NVM 디바이스에 적용하는 단계는 호스트 프로세서가 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 단계를 포함한다.
예 6에서, 예 3 및 예 5 중 어느 하나의 발명 대상은, 물리적 메모리 페이지를 포함하는 비휘발성 메모리의 영역이 프로그래밍되는 경우에, 데이터의 미리 결정된 랜덤 패턴을 물리적 메모리 페이지 상으로 프로그래밍하는 단계를 선택적으로 포함할 수 있다.
예 7에서, 예 3 및 예 5 중 어느 하나의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 물리적 메모리 페이지를 리타이어링하는 단계는 페이지들의 그룹을 리타이어링하는 단계를 포함한다.
예 8에서, 예 3 및 예 5 중 어느 하나의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 물리적 메모리 페이지를 리타이어링하는 단계는 NVM 디바이스들 중 하나 이상에서 복수의 블록들 내의 동일한 페이지를 리타이어링하는 단계를 포함한다.
예 9는 비휘발성 스토리지 시스템인데, 이 비휘발성 스토리지 시스템은 비휘발성 메모리(NVM) 컨트롤러, NVM 컨트롤러에 통신가능하게 결합된 하나 이상의 NVM 디바이스들, 및 NVM 컨트롤러에 통신가능하게 결합된 NVM 결함 관리 정책 엔진을 포함한다. NVM 결함 관리 정책 엔진은 적어도 하나의 NVM 디바이스에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하도록 동작하며, 복수의 트리거 이벤트들 각각은 연관된 타입을 갖는다. NVM 결함 관리 정책 엔진은, 적어도 하나의 트리거 이벤트를 모니터링하였으면, 트리거 이벤트의 타입을 결정하고, 트리거 이벤트의 타입에 기초하여 적어도 하나의 결함 관리 정책을 NVM 디바이스에 적용하도록 또한 동작한다.
예 10에서, 예 9의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 소프트 비트 판독 트리거 이벤트 및 배타적 논리합(XOR) 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, NVM 결함 관리 정책 엔진은, 소프트 비트 판독 트리거 이벤트 또는 XOR 데이터 복구 트리거 이벤트를 모니터링하였으면, 호스트 프로세서가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하도록 또한 동작한다.
예 11에서, 예 9 및 예 10 중 어느 하나의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 소프트 비트 판독 트리거 이벤트 및 XOR 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, NVM 결함 관리 정책 엔진은, 소프트 비트 판독 트리거 이벤트 또는 XOR 데이터 복구 트리거 이벤트를 모니터링하였으면, 호스트 프로세서가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하도록 또한 동작한다.
예 12에서, 예 9의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, NVM 결함 관리 정책 엔진은, 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 모니터링하였으면, 호스트 프로세서가 하나 이상의 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하도록 또한 동작한다.
예 13에서, 예 9 및 예 12 중 어느 하나의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, NVM 결함 관리 정책 엔진은, 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 모니터링하였으면, 호스트 프로세서가 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하도록 또한 동작한다.
예 14에서, 예 11 및 예 13 중 어느 하나의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 NVM 컨트롤러는, 물리적 메모리 페이지를 포함하는 비휘발성 메모리의 영역이 프로그래밍되는 경우에, 물리적 메모리 페이지 상으로의 데이터의 미리 결정된 랜덤 패턴의 프로그래밍을 제어하도록 동작한다.
예 15는 컴퓨터 시스템인데, 이 컴퓨터 시스템은 시스템 버스, 메모리 버스, 시스템 버스에 통신가능하게 결합된 디스플레이, 시스템 버스에 결합되는 적어도 하나의 휘발성 메모리, 및 메모리 버스에 통신가능하게 결합된 예 9의 비휘발성 스토리지 시스템을 포함한다.
예 16은 하나 이상의 비휘발성 메모리(NVM) 디바이스들을 포함하는 비휘발성 스토리지 시스템이며, 이 시스템은 적어도 하나의 NVM 디바이스에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하는 수단을 포함하며, 복수의 트리거 이벤트들 각각은 연관된 타입을 갖는다. 이 시스템은, 적어도 하나의 트리거 이벤트를 모니터링하였으면, 트리거 이벤트의 타입을 결정하는 수단, 및 트리거 이벤트의 타입에 기초하여 적어도 하나의 결함 관리 정책을 NVM 디바이스에 적용하는 수단을 더 포함한다.
예 17에서, 예 16의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 소프트 비트 판독 트리거 이벤트 및 배타적 논리합(XOR) 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 이 시스템은, 소프트 비트 판독 트리거 이벤트 또는 XOR 데이터 복구 트리거 이벤트를 모니터링하였으면, 호스트 프로세서가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하는 수단을 더 포함한다.
예 18에서, 예 16 및 예 17 중 어느 하나의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 소프트 비트 판독 트리거 이벤트 및 XOR 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 이 시스템은, 소프트 비트 판독 트리거 이벤트 또는 XOR 데이터 복구 트리거 이벤트를 모니터링하였으면, 호스트 프로세서가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 수단을 더 포함한다.
예 19에서, 예 16의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, 이 시스템은, 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 모니터링하였으면, 호스트 프로세서가 하나 이상의 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하는 수단을 더 포함한다.
예 20에서, 예 16 및 예 19 중 어느 하나의 발명 대상은 특징들을 선택적으로 포함할 수 있으며, 여기서 트리거 이벤트의 타입은 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, 이 시스템은, 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 모니터링하였으면, 호스트 프로세서가 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 수단을 더 포함한다.
예 21은 컴퓨터 시스템에서의 비휘발성 메모리(NVM) 디바이스 내에 저장가능한 데이터에 액세스하기 위한 실행가능 명령어들을 포함하는 컴퓨터 판독가능 저장 매체이다. 컴퓨터 시스템은 적어도 하나의 프로세서를 포함하고, 컴퓨터 판독가능 저장 매체는, 적어도 하나의 NVM 디바이스에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하는 실행가능 명령어들을 포함하며, 복수의 트리거 이벤트들 각각은 연관된 타입을 갖는다. 컴퓨터 판독가능 저장 매체는, 적어도 하나의 트리거 이벤트를 모니터링하였으면, 트리거 이벤트의 타입을 결정하고, 및 트리거 이벤트의 타입에 기초하여 적어도 하나의 결함 관리 정책을 NVM 디바이스에 적용하는 실행가능 명령어들을 더 포함한다.
개시된 발명 대상의 다양한 실시예들의 예시적인 예들이 본 명세서에 설명되지만, 관련 기술분야의 통상의 기술자라면 개시된 발명 대상을 구현하는 다른 방식들이 대안적으로 사용될 수 있다는 것을 이해할 것이다. 이전 설명에서, 개시된 발명 대상의 다양한 양태들이 설명되었다. 설명을 목적으로, 특정 시스템들, 장치, 방법들, 및 구성들은 개시된 발명 대상의 철저한 이해를 제공하기 위해 진술되었다. 그러나, 발명 대상이 본 명세서에 설명되는 특정 상세들 없이 실시될 수 있다는 점이 본 개시내용의 혜택을 받는 관련 기술분야의 통상의 기술자에게 명백할 것이다. 다른 경우들에서, 널리 공지된 특징들, 구성요소들, 및/또는 모듈들은 개시된 발명 대상을 모호하게 하지 않도록 생략, 단순화, 또는 결합되었다.
"하도록 동작하는(operative to)"이라는 용어는, 본 명세서에 사용되는 바와 같이, 대응하는 디바이스, 시스템, 또는 장치가 파워 온 상태에 있을 때 원하는 기능성을 위해 이러한 디바이스, 시스템, 장치 등이 동작할 수 있거나, 동작하도록 적응되는 것을 의미한다는 점이 주목된다. 더욱이, 개시된 발명 대상의 다양한 실시예들은 하드웨어, 펌웨어, 소프트웨어, 또는 그것의 일부 조합으로 구현될 수 있고, 프로그램 코드, 예컨대 명령어들, 기능들, 절차들, 데이터 구조들, 로직, 애플리케이션 프로그램들, 설계 표현들, 및/또는 설계의 시뮬레이션, 에뮬레이션, 및/또는 제조를 위한 포맷들에 대한 참조에 의해, 또는 이들과 함께 설명될 수 있으며, 프로그램 코드는 머신에 의해 액세스될 때 머신이 태스크들을 수행하거나, 추상 데이터 타입들 또는 로우 레벨 하드웨어 콘텍스트들을 정의하거나, 결과를 생성하는 것을 초래한다.
도면들에 예시된 기술들은 범용 컴퓨터들 또는 컴퓨팅 디바이스들과 같은 하나 이상의 컴퓨팅 디바이스들 상에 저장되고/되거나 실행되는 코드 및/또는 데이터를 사용하여 구현될 수 있다는 점이 추가로 주목된다. 그러한 컴퓨터들 또는 컴퓨팅 디바이스들은 머신 판독가능 매체, 예컨대 머신 판독가능 저장 매체(예를 들어, 자기 디스크들, 광학 디스크들, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리 디바이스들, 상 변화 메모리) 및 머신 판독가능 통신 매체(예를 들어, 전기, 광학, 음향, 또는 다른 형태의 전파 신호들, 예컨대 반송파들, 적외선 신호들, 디지털 신호들 등)를 사용하여 (내부적으로 그리고/또는 네트워크를 통해 다른 컴퓨팅 디바이스들과) 코드 및/또는 데이터를 저장하고 통신한다.
본 명세서에 사용되는 요소, 동작, 또는 명령어는 그와 같이 명시적으로 설명되지 않는 한 본 출원에 대해 중대하거나 본질적인 것으로 해석되지 않아야 한다. 또한, 본 명세서에 사용되는 바와 같이, 관사("a")는 하나 이상의 아이템들을 포함하는 것으로 의도된다. 하나의 아이템만이 의도되는 경우에, "하나(one)"라는 용어 또는 유사한 언어가 사용된다. 또한, "에 기초하는(based on)"이라는 어구는 달리 명시적으로 언급되지 않는 한 "에 적어도 부분적으로 기초하는(based, at least in part, on)"을 의미하는 것으로 의도된다.
본 발명은 본 명세서에 개시된 특정 실시예들에 제한되지 않지만, 본 발명은 다음의 첨부 청구항들의 범위 내에 있는 임의의 그리고 모든 특정 실시예들 및 균등물들을 포함하는 것으로 의도된다.

Claims (21)

  1. 비휘발성 스토리지 시스템에서의 결함들을 관리하는 방법으로서 - 상기 비휘발성 스토리지 시스템은 하나 이상의 비휘발성 메모리(NVM) 디바이스들을 포함함 -,
    NVM 결함 관리 정책 엔진에 의해, 적어도 하나의 NVM 디바이스에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하는 단계 - 상기 복수의 트리거 이벤트들 각각은 연관된 타입을 가짐 -;
    적어도 하나의 트리거 이벤트를 모니터링하였으면, 상기 NVM 결함 관리 정책 엔진에 의해 상기 트리거 이벤트의 타입을 결정하는 단계; 및
    상기 NVM 결함 관리 정책 엔진에 의해, 상기 트리거 이벤트의 타입에 기초하여 적어도 하나의 결함 관리 정책을 상기 NVM 디바이스에 적용하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 트리거 이벤트의 타입은 소프트 비트 판독(soft bit read) 트리거 이벤트 및 배타적 논리합(XOR) 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 상기 적어도 하나의 결함 관리 정책을 상기 NVM 디바이스에 적용하는 단계는, 호스트 프로세서가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링(retiring)하는 단계를 포함하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 트리거 이벤트의 타입은 상기 소프트 비트 판독 트리거 이벤트 및 상기 XOR 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 상기 적어도 하나의 결함 관리 정책을 상기 NVM 디바이스에 적용하는 단계는, 상기 호스트 프로세서가 상기 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 트리거 이벤트의 타입은 미리 결정된 수의 하드 비트 판독(hard bit read) 트리거 이벤트들을 포함하고, 상기 적어도 하나의 결함 관리 정책을 상기 NVM 디바이스에 적용하는 단계는, 호스트 프로세서가 하나 이상의 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하는 단계를 포함하는 방법.
  5. 제1항 또는 제4항에 있어서,
    상기 트리거 이벤트의 타입은 상기 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, 상기 적어도 하나의 결함 관리 정책을 상기 NVM 디바이스에 적용하는 단계는, 상기 호스트 프로세서가 상기 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 단계를 포함하는 방법.
  6. 제3항 또는 제5항에 있어서,
    상기 물리적 메모리 페이지를 포함하는 비휘발성 메모리의 영역이 프로그래밍되는 경우에, 데이터의 미리 결정된 랜덤 패턴을 상기 물리적 메모리 페이지 상으로 프로그래밍하는 단계를 더 포함하는 방법.
  7. 제3항 또는 제5항에 있어서,
    상기 물리적 메모리 페이지를 리타이어링하는 단계는 페이지들의 그룹을 리타이어링하는 단계를 포함하는 방법.
  8. 제3항 또는 제5항에 있어서,
    상기 물리적 메모리 페이지를 리타이어링하는 단계는 상기 NVM 디바이스들 중 하나 이상에서 복수의 블록들 내의 동일한 페이지를 리타이어링하는 단계를 포함하는 방법.
  9. 비휘발성 스토리지 시스템으로서,
    비휘발성 메모리(NVM) 컨트롤러;
    상기 NVM 컨트롤러에 통신가능하게 결합된 하나 이상의 NVM 디바이스들; 및
    상기 NVM 컨트롤러에 통신가능하게 결합된 NVM 결함 관리 정책 엔진
    을 포함하고,
    상기 NVM 결함 관리 정책 엔진은,
    적어도 하나의 NVM 디바이스에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하고 - 상기 복수의 트리거 이벤트들 각각은 연관된 타입을 가짐 -;
    적어도 하나의 트리거 이벤트를 모니터링하였으면, 상기 트리거 이벤트의 타입을 결정하고;
    상기 트리거 이벤트의 타입에 기초하여 적어도 하나의 결함 관리 정책을 상기 NVM 디바이스에 적용하도록
    동작하는 비휘발성 스토리지 시스템.
  10. 제9항에 있어서,
    상기 트리거 이벤트의 타입은 소프트 비트 판독 트리거 이벤트 및 배타적 논리합(XOR) 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 상기 NVM 결함 관리 정책 엔진은, 상기 소프트 비트 판독 트리거 이벤트 또는 상기 XOR 데이터 복구 트리거 이벤트를 모니터링하였으면, 호스트 프로세서가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하도록 또한 동작하는 비휘발성 스토리지 시스템.
  11. 제9항 또는 제10항에 있어서,
    상기 트리거 이벤트의 타입은 상기 소프트 비트 판독 트리거 이벤트 및 상기 XOR 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 상기 NVM 결함 관리 정책 엔진은, 상기 소프트 비트 판독 트리거 이벤트 또는 상기 XOR 데이터 복구 트리거 이벤트를 모니터링하였으면, 상기 호스트 프로세서가 상기 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하도록 또한 동작하는 비휘발성 스토리지 시스템.
  12. 제9항에 있어서,
    상기 트리거 이벤트의 타입은 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, 상기 NVM 결함 관리 정책 엔진은, 상기 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 모니터링하였으면, 호스트 프로세서가 하나 이상의 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하도록 또한 동작하는 비휘발성 스토리지 시스템.
  13. 제9항 또는 제12항에 있어서,
    상기 트리거 이벤트의 타입은 상기 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, 상기 NVM 결함 관리 정책 엔진은, 상기 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 모니터링하였으면, 상기 호스트 프로세서가 상기 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하도록 또한 동작하는 비휘발성 스토리지 시스템.
  14. 제11항 또는 제13항에 있어서,
    상기 NVM 컨트롤러는, 상기 물리적 메모리 페이지를 포함하는 비휘발성 메모리의 영역이 프로그래밍되는 경우에, 상기 물리적 메모리 페이지 상으로의 데이터의 미리 결정된 랜덤 패턴의 프로그래밍을 제어하도록 동작하는 비휘발성 스토리지 시스템.
  15. 컴퓨터 시스템으로서,
    시스템 버스;
    메모리 버스;
    상기 시스템 버스에 통신가능하게 결합된 디스플레이;
    상기 시스템 버스에 결합되는 적어도 하나의 휘발성 메모리; 및
    상기 메모리 버스에 통신가능하게 결합된 제9항의 비휘발성 스토리지 시스템
    을 포함하는 컴퓨터 시스템.
  16. 하나 이상의 비휘발성 메모리(NVM) 디바이스들을 포함하는 비휘발성 스토리지 시스템으로서,
    적어도 하나의 NVM 디바이스에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하는 수단 - 상기 복수의 트리거 이벤트들 각각은 연관된 타입을 가짐 -;
    적어도 하나의 트리거 이벤트를 모니터링하였으면, 상기 트리거 이벤트의 타입을 결정하는 수단; 및
    상기 트리거 이벤트의 타입에 기초하여 적어도 하나의 결함 관리 정책을 상기 NVM 디바이스에 적용하는 수단
    을 포함하는 비휘발성 스토리지 시스템.
  17. 제16항에 있어서,
    상기 트리거 이벤트의 타입은 소프트 비트 판독 트리거 이벤트 및 배타적 논리합(XOR) 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 상기 시스템은, 상기 소프트 비트 판독 트리거 이벤트 또는 상기 XOR 데이터 복구 트리거 이벤트를 모니터링하였으면, 호스트 프로세서가 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하는 수단을 더 포함하는 비휘발성 스토리지 시스템.
  18. 제16항 또는 제17항에 있어서,
    상기 트리거 이벤트의 타입은 상기 소프트 비트 판독 트리거 이벤트 및 상기 XOR 데이터 복구 트리거 이벤트 중 하나 이상을 포함하고, 상기 시스템은, 상기 소프트 비트 판독 트리거 이벤트 또는 상기 XOR 데이터 복구 트리거 이벤트를 모니터링하였으면, 상기 호스트 프로세서가 상기 데이터 판독 요청을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 수단을 더 포함하는 비휘발성 스토리지 시스템.
  19. 제16항에 있어서,
    상기 트리거 이벤트의 타입은 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, 상기 시스템은, 상기 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 모니터링하였으면, 호스트 프로세서가 하나 이상의 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 리타이어링하는 수단을 더 포함하는 비휘발성 스토리지 시스템.
  20. 제16항 또는 제19항에 있어서,
    상기 트리거 이벤트의 타입은 상기 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 포함하고, 상기 시스템은, 상기 미리 결정된 수의 하드 비트 판독 트리거 이벤트들을 모니터링하였으면, 상기 호스트 프로세서가 상기 데이터 판독 요청들을 발행한 코드워드의 NVM 스토리지 위치를 포함하는 물리적 메모리 페이지를 리타이어링하는 수단을 더 포함하는 비휘발성 스토리지 시스템.
  21. 컴퓨터 시스템에서의 비휘발성 메모리(NVM) 디바이스 내에 저장가능한 데이터에 액세스하기 위한 실행가능 명령어들을 포함하는 컴퓨터 판독가능 저장 매체로서 - 상기 컴퓨터 시스템은 적어도 하나의 프로세서를 포함함 -,
    적어도 하나의 NVM 디바이스에서의 가능한 결함들을 검출하기 위해 복수의 트리거 이벤트들을 모니터링하고 - 상기 복수의 트리거 이벤트들 각각은 연관된 타입을 가짐 -;
    적어도 하나의 트리거 이벤트를 모니터링하였으면, 상기 트리거 이벤트의 타입을 결정하고;
    상기 트리거 이벤트의 타입에 기초하여 적어도 하나의 결함 관리 정책을 상기 NVM 디바이스에 적용하는
    실행가능 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
KR1020167010692A 2013-11-22 2014-10-21 Nand 플래시 메모리를 위한 결함 관리 정책들 KR101995748B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/087,282 US9535777B2 (en) 2013-11-22 2013-11-22 Defect management policies for NAND flash memory
US14/087,282 2013-11-22
PCT/US2014/061486 WO2015076963A1 (en) 2013-11-22 2014-10-21 Defect management policies for nand flash memory

Publications (2)

Publication Number Publication Date
KR20160087799A true KR20160087799A (ko) 2016-07-22
KR101995748B1 KR101995748B1 (ko) 2019-07-03

Family

ID=53180004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167010692A KR101995748B1 (ko) 2013-11-22 2014-10-21 Nand 플래시 메모리를 위한 결함 관리 정책들

Country Status (5)

Country Link
US (1) US9535777B2 (ko)
EP (1) EP3072134B1 (ko)
KR (1) KR101995748B1 (ko)
CN (1) CN105637591B (ko)
WO (1) WO2015076963A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022115826A1 (en) * 2020-11-25 2022-06-02 Micron Technology, Inc. Managing page retirement for non-volatile memory

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9059742B1 (en) 2013-03-15 2015-06-16 Western Digital Technologies, Inc. System and method for dynamic scaling of LDPC decoder in a solid state drive
US9286155B1 (en) * 2013-05-24 2016-03-15 Marvell International Ltd. Systems and methods for generating soft information in a flash device
US10733069B2 (en) 2013-12-04 2020-08-04 International Business Machines Corporation Page retirement in a NAND flash memory system
US9274882B2 (en) * 2013-12-04 2016-03-01 International Business Machines Corporation Page retirement in a NAND flash memory system
TWI556249B (zh) * 2014-11-07 2016-11-01 群聯電子股份有限公司 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元
KR102262909B1 (ko) * 2014-12-18 2021-06-10 에스케이하이닉스 주식회사 메모리 시스템 동작 방법
US9766814B2 (en) * 2015-08-10 2017-09-19 Intel Corporation Method and apparatus for defect management in a non-volatile memory device
US10120751B2 (en) * 2015-09-25 2018-11-06 Intel Corporation Techniques to recover data using exclusive OR (XOR) parity information
US20170115900A1 (en) * 2015-10-23 2017-04-27 International Business Machines Corporation Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell
US10033411B2 (en) 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
WO2017095911A1 (en) * 2015-12-01 2017-06-08 Huang Yiren Ronnie Method and apparatus for logically removing defective pages in non-volatile memory storage device
US9417809B1 (en) * 2015-12-07 2016-08-16 International Business Machines Corporation Efficient management of page retirement in non-volatile memory utilizing page retirement classes
US10256842B2 (en) 2016-03-03 2019-04-09 Intel Corporation Technologies for correcting flipped bits for an error correction decode process
US9910606B2 (en) 2016-03-23 2018-03-06 Seagate Technology Llc End of life extension of solid state memory
US10453547B2 (en) 2017-06-16 2019-10-22 Seagate Technologies Llc Monitoring a memory for retirement
US10163500B1 (en) * 2017-09-30 2018-12-25 Intel Corporation Sense matching for hard and soft memory reads
US10599515B2 (en) 2017-12-21 2020-03-24 Intel Corporation Transfer of encoded data stored in non-volatile memory for decoding by a controller of a memory device
US20190042112A1 (en) * 2018-03-20 2019-02-07 Intel Corporation Data storage device with defective die indicator
US10839916B2 (en) * 2018-04-09 2020-11-17 Intel Corporation One-sided soft reads
KR102586741B1 (ko) * 2018-04-23 2023-10-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10699797B2 (en) 2018-04-27 2020-06-30 Seagate Technology Llc Storage area retirement in a storage device
CN113053451B (zh) * 2021-03-05 2022-05-10 深圳三地一芯电子有限责任公司 Nandflash内生成softbit的方法、系统、主机以及储存介质
US11922025B2 (en) 2021-11-24 2024-03-05 Micron Technology, Inc. Memory device defect scanning
CN114327263A (zh) * 2021-12-15 2022-04-12 中国航空工业集团公司成都飞机设计研究所 一种飞控计算机nvm多层次管理方法
US20230342244A1 (en) * 2022-04-20 2023-10-26 Western Digital Technologies, Inc. Read Look Ahead Optimization According To NVMe Dataset Management Hints

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070001871A (ko) * 2003-10-03 2007-01-04 쌘디스크 코포레이션 플래쉬 메모리 데이터 정정 및 스크럽 기법
KR20090117747A (ko) * 2007-01-26 2009-11-12 마이크론 테크놀로지, 인크. Nand 메모리들을 위한 관리 데이터의 프로그래밍
KR20100037099A (ko) * 2007-07-02 2010-04-08 인터내셔널 비지네스 머신즈 코포레이션 스토리지 컨트롤러에서 인터럽트들의 우선순위화
KR20110086725A (ko) * 2008-11-10 2011-07-29 퓨전-아이오, 인크. 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619644A (en) * 1995-09-18 1997-04-08 International Business Machines Corporation Software directed microcode state save for distributed storage controller
US5968182A (en) * 1997-05-12 1999-10-19 International Business Machines Corporation Method and means for utilizing device long busy response for resolving detected anomalies at the lowest level in a hierarchical, demand/response storage management subsystem
US6931571B2 (en) * 2001-11-20 2005-08-16 Hewlett-Packard Development Company, L.P. Method and apparatus for handling transient memory errors
US8595573B2 (en) * 2006-12-03 2013-11-26 Apple Inc. Automatic defect management in memory devices
WO2008068747A2 (en) 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
US7966550B2 (en) 2007-03-31 2011-06-21 Sandisk Technologies Inc. Soft bit data transmission for error correction control in non-volatile memory
TWI372397B (en) 2007-08-06 2012-09-11 Ind Tech Res Inst Method and system of defect management for storage medium
US8347029B2 (en) 2007-12-28 2013-01-01 Intel Corporation Systems and methods for fast state modification of at least a portion of non-volatile memory
US8413029B2 (en) 2009-01-16 2013-04-02 Lsi Corporation Error correction capability adjustment of LDPC codes for storage device testing
US8503238B1 (en) * 2010-07-21 2013-08-06 Sk Hynix Memory Solutions Inc. Error recovery for flash memory
US8549382B2 (en) 2010-12-17 2013-10-01 Intel Corporation Storage drive with LDPC coding
US8560922B2 (en) 2011-03-04 2013-10-15 International Business Machines Corporation Bad block management for flash memory
US9086983B2 (en) * 2011-05-31 2015-07-21 Micron Technology, Inc. Apparatus and methods for providing data integrity
US8549380B2 (en) 2011-07-01 2013-10-01 Intel Corporation Non-volatile memory error mitigation
WO2013089715A1 (en) 2011-12-14 2013-06-20 Intel Corporation Storage of codeword portions
US9477670B2 (en) 2012-04-02 2016-10-25 Hewlett Packard Enterprise Development Lp Information management policy based on relative importance of a file
US9135100B2 (en) * 2013-03-14 2015-09-15 Micron Technology, Inc. Cooperative memory error detection and repair

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070001871A (ko) * 2003-10-03 2007-01-04 쌘디스크 코포레이션 플래쉬 메모리 데이터 정정 및 스크럽 기법
KR20090117747A (ko) * 2007-01-26 2009-11-12 마이크론 테크놀로지, 인크. Nand 메모리들을 위한 관리 데이터의 프로그래밍
KR20100037099A (ko) * 2007-07-02 2010-04-08 인터내셔널 비지네스 머신즈 코포레이션 스토리지 컨트롤러에서 인터럽트들의 우선순위화
KR20110086725A (ko) * 2008-11-10 2011-07-29 퓨전-아이오, 인크. 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022115826A1 (en) * 2020-11-25 2022-06-02 Micron Technology, Inc. Managing page retirement for non-volatile memory
US11579772B2 (en) 2020-11-25 2023-02-14 Micron Technology, Inc. Managing page retirement for non-volatile memory

Also Published As

Publication number Publication date
WO2015076963A1 (en) 2015-05-28
KR101995748B1 (ko) 2019-07-03
US9535777B2 (en) 2017-01-03
EP3072134A4 (en) 2017-06-21
EP3072134A1 (en) 2016-09-28
CN105637591A (zh) 2016-06-01
US20150149818A1 (en) 2015-05-28
CN105637591B (zh) 2019-06-14
EP3072134B1 (en) 2023-10-04

Similar Documents

Publication Publication Date Title
KR101995748B1 (ko) Nand 플래시 메모리를 위한 결함 관리 정책들
US11056198B2 (en) Read disturb scan consolidation
US11868639B2 (en) Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation
JP2019502987A (ja) 不揮発性メモリ・システムにおけるマルチページ障害の回復
US11430540B2 (en) Defective memory unit screening in a memory system
US10950317B2 (en) Read disturb scan consolidation
US10915395B2 (en) Read retry with targeted auto read calibrate
US11810627B2 (en) Selective read disturb sampling
US11740957B2 (en) Prioritization of error control operations at a memory sub-system
US11119697B2 (en) Read voltage management based on write-to-read time difference
US11586502B2 (en) Performance and deadlock mitigation during a memory die fail storm
US20240054046A1 (en) Error-handling management during copyback operations in memory devices
US11748008B2 (en) Changing of memory components to be used for a stripe based on an endurance condition

Legal Events

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