KR20160062214A - 메모리 셀을 위한 적응적 판독 기준 이동 - Google Patents

메모리 셀을 위한 적응적 판독 기준 이동 Download PDF

Info

Publication number
KR20160062214A
KR20160062214A KR1020167013401A KR20167013401A KR20160062214A KR 20160062214 A KR20160062214 A KR 20160062214A KR 1020167013401 A KR1020167013401 A KR 1020167013401A KR 20167013401 A KR20167013401 A KR 20167013401A KR 20160062214 A KR20160062214 A KR 20160062214A
Authority
KR
South Korea
Prior art keywords
priority
entries
memory
mrr
program
Prior art date
Application number
KR1020167013401A
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 인텔 코포레이션
Publication of KR20160062214A publication Critical patent/KR20160062214A/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • 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
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data

Landscapes

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

Abstract

스토리지 디바이스에 포함된 비휘발성 메모리의 하나 이상의 메모리 셀의 판독 에러로부터 회복하기 위한 판독 기준 이동(MRR; moving read reference) 테이블을 생성 또는 제공하기 위한 예들이 개시된다. 우선순위들은 MRR 테이블에 포함된 엔트리들에 적응적으로 할당될 수 있고, 엔트리들은 이용을 위해 할당된 우선순위에 기초하여 정렬될 수 있다. 다른 예들도 설명되고 청구된다.

Description

메모리 셀을 위한 적응적 판독 기준 이동{ADAPTIVE MOVING READ REFERENCES FOR MEMORY CELLS}
NAND 메모리 등의 다양한 타입의 비휘발성 메모리는 통상적으로, 판독 에러에 응답하여 향상된 판독 기준 전압을 탐색하는 다양한 에러 정정 방식을 이용한다. 판독 실패는 수 많은 에러 메커니즘과 상이한 사용 모델로부터 생길 수 있다. 이들 에러 메커니즘과 사용 모델은 메모리 셀 임계 전압(Vt) 분포를 변경할 수 있다. Vt 분포 변경의 결과, 판독 기준 전압값을 이동시키고 메모리 셀의 판독을 재시도하는 것이 일반적으로 도움이 된다. 이러한 판독 기준의 이동은 판독 기준 이동(MRR; Moving Read Reference)이라 한다. 그러나, MRR 방식은 에러 정정 코드(ECC) 교정가능한 판독 기준을 발견할 때까지 판독 기준 이동의 다수회 시도를 포함할 수 있다. 많은 수의 재판독을 방지하기 위해, 고정된 순서 또는 시퀀스로 구현된 고정된 엔트리수를 갖는 MRR 테이블이 이용될 수 있다. 일단 모든 MRR 테이블 엔트리들이 고정된 시퀀스로 이용되었고 ECC 교정가능한 판독 기준이 발견되지 않는다면, 다른 에러 복구 방식이 구현되거나 및/또는 그 메모리 셀은 판독불가로서 간주될 수 있다.
도 1은 예시적 메모리 시스템을 나타낸다.
도 2는 우선순위 관리자를 위한 예시적 아키텍쳐의 블록도를 나타낸다.
도 3은 예시적 멀티-레벨 셀 프로그래밍 분포를 나타낸다.
도 4는 멀티-레벨 셀 프로그래밍 분포의 일부에 대한 예시적 프로그램 교란(program disturb)을 나타낸다.
도 5는 예시도를 나타낸다.
도 6은 예시적인 카운트-기반 판독 기준 이동(MRR) 테이블을 나타낸다.
도 7은 MRR 테이블을 제공하기 위한 예시적 비교 MRR 테이블을 나타낸다.
도 8은 비트-플립(bit-flip) 정보에 기초하여 업데이트되는 예시적 MRR 테이블을 나타낸다.
도 9는 MRR 테이블을 제공하기 위한 예시적 동작의 플로차트를 나타낸다.
도 10a 및 도 10b는 우선순위를 업데이트하고 MRR 테이블을 이용하기 위한 예시적 동작의 플로차트를 나타낸다.
도 11은 예시적 시스템을 나타낸다.
본 개시에서 고려되는 바와 같이, 판독 실패에 후속한 비휘발성 메모리의 많은 수의 재판독은, 고정된 순서로 구현된 고정된 엔트리수를 갖는 MRR 테이블이 이용되지 않는 한 발생가능할 것이다. 그러나, 고정된 MRR 테이블의 간소성에도 불구하고, 이러한 타입의 테이블의 고정된 성질은 다수의 가능한 판독 기준값 이동을 배제할 수 있다. 이들 배제된 판독 기준값들은 메모리 셀을 조기에 및/또는 부정확하게 판독불가로서 라벨링하는 결과를 초래할 수 있다. 또한, 고정된 순서로 구현된 고정된 MRR 테이블은, 부적절한 MRR 테이블의 엔트리들의 반복적 이용을 포함하며, 이들 엔트리들이 ECC 교정가능한 판독 기준에 도달할 가능성이 거의 없더라도 계속 이용될 것이다.
일부 예에서, 스토리지 디바이스(예를 들어, 고체-상태 드라이브(SSD))에 포함된 비휘발성 메모리(예를 들어, NAND 메모리)의 하나 이상의 메모리 셀의 판독 에러로부터 회복하기 위한 MRR 테이블을 적응적으로 생성하거나 제공하기 위한 기술들이 구현된다. 이들 예에서, MRR 테이블은 하나 이상의 판독 기준값 이동을 나타내는 복수의 엔트리를 포함할 수 있다. MRR 테이블의 각각의 엔트리에는 별개의 우선순위가 할당될 수 있다. 그러면 엔트리들은 할당된 우선순위에 기초하여 정렬되되, MRR 테이블이 하나 이상의 메모리 셀의 판독 에러로부터의 회복을 위해 이용될 때 가장 높은 할당된 우선순위를 갖는 엔트리가 먼저 이용되도록 정렬될 수 있다.
도 1은 예시적 SSD 메모리 시스템(100)의 도면을 나타낸다. 일부 예에서, 도 1에 도시된 바와 같이, SSD 메모리 시스템(100)은, 제어기(110), 제어 회로(120), 비휘발성 메모리(130)를 포함할 수 있다. 일부 예에서, 비휘발성 메모리(130)에 의해 수행되는 다양한 메모리 동작들은, 행 제어(132), p-웰 제어(134), c-소스 제어(136) 및 열 제어(138)에 의해 제어될 수 있다. 비휘발성 메모리(130)의 전체 동작은 제어 회로(120) 및/또는 제어기(110)에 의해 제어되거나 지시될 수 있다. 데이터 입력/출력 버퍼(139)는 비휘발성 메모리(130)에 기입되거나 비휘발성 메모리(130)로부터 판독되는 데이터를 적어도 일시적으로 저장하도록 구성될 수 있다. 또한, 도 1에 도시된 바와 같이, 제어기(110)는 우선순위 관리자(112)를 포함한다. 이하에서 더 상세히 설명되는 바와 같이, 우선순위 관리자(112)는, 동적으로 또는 적응적으로 할당될 수 있는 우선순위-기반의 엔트리들을 포함하는 MRR 테이블을 생성하거나 제공할 수 있는 로직 및/또는 피쳐들을 포함한다. 일부 예에 따르면, 우선순위-기반의 엔트리들은, 비휘발성 메모리(130)의 메모리 셀들과 연관된 프로그램/소거 사이클 카운트, 다른 비휘발성 메모리들에 의해 이용되는 MRR 테이블들, 비휘발성 메모리(130)에 대한 이력 동작 파라미터들, 또는 프로그램 교란(program disturb)이나 고유 전하 손실(intrinsic charge loss) 등의 비휘발성 메모리(130)의 하나 이상의 메모리 셀과 연관된 가능한 결함이나 동작 특성과 같은 기준에 기초하여 적응적으로 할당될 수 있다.
일부 예에서, 비휘발성 메모리(130)는, NAND 메모리, 상변화 메모리(PCM), 오보닉 임계 스위치를 갖는 PCM(PCMS; PCM with an Ovonic threshold switch), 나노와이어 메모리, 또는 강유전성 트랜지스터 랜덤 액세스 메모리(FeTRAM)와 같은 그러나 이들로 제한되지 않는 비휘발성 타입의 메모리일 수 있다. 이들 예에서, 비휘발성 메모리(130)에 포함된 하나 이상의 메모리 셀은 복수의 상태 또는 비트를 유지하도록 구성될 수 있다. 복수의 비트는, 단일-레벨 셀(SLC; single-level cell) 또는 멀티-레벨 셀(MLC; multi-level cell) 프로그래밍의 구현을 통해 메모리 셀에 유지되거나 저장될 수 있다.
일부 예에 따르면, 행 제어(132)는 비휘발성 메모리(130)의 워드 라인에 결합될 수 있다. 이들 예의 경우, 행 제어(132)는 워드 라인들을 통해 결합되어, 워드 라인들 중 하나를 선택하고, 판독 전압을 인가하며, 열 제어(138)에 의해 제어되는 비트 라인 전위 레벨들과 결합된 프로그램 전압을 인가하고, 소거 전압을 인가할 수 있다. 또한, 열 제어(138)는 비휘발성 메모리(130)의 비트 라인들에 결합되어, 메모리 셀에 저장된 데이터를 판독하고, 프로그램 동작 동안에 메모리 셀들의 상태를 결정하며, 비트 라인들의 전위 레벨을 제어하여 프로그래밍 및 소거를 촉진하거나 금지할 수 있다. P-웰 제어는 비휘발성 메모리(130)의 p-웰 전압을 제어할 수 있고 c-소스 제어(136)는 비휘발성 메모리(130)에 결합된 공통 소스 라인을 제어할 수 있다.
일부 예에서, 열 제어(138)는 비휘발성 메모리(130)에 저장되거나 유지된 데이터를 판독하도록 구성될 수 있고 데이터는 데이터 I/O 버퍼(139)를 통해 외부 I/O 데이터 라인에 출력될 수 있다. 이들 예의 경우, 비휘발성 메모리(130)의 메모리 셀들에 저장되는 프로그램 데이터는 외부 I/O 데이터 라인을 통해 데이터 I/O 버퍼(139)에 입력된 다음 열 제어(138)에 전송될 수 있다. 도 1에 도시된 바와 같이, 일부 예에서, 외부 I/O 데이터 라인들은 제어기(110)에 결합되거나 제어기(110)에 의해 관리될 수 있다.
일부 예에 따르면, 비휘발성 메모리(130) 등의 SSD 메모리 시스템(100)의 요소들을 제어하기 위한 명령 데이터는, 제어기(110) 또는 제어기(110)의 요소들(예를 들어, 우선순위 관리자(112))로부터 제어 회로(120)에 결합된 제어 라인을 통해 중계될 수 있다. 제어 데이터는, 예를 들어, SSD 메모리 시스템(100)의 요소들에게 어떤 동작이 요청되는지에 관해 통보할 수 있다.
일부 예에서, 제어기(110)는 컴퓨팅 플랫폼 또는 컴퓨팅 디바이스 등의 호스트 시스템과 결합되거나 결합되도록 구성될 수 있다. 컴퓨팅 플랫폼은, 서버, 데스크탑 컴퓨터, 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-모바일 컴퓨터, 태블릿, 터치 패드, 포터블 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화, 조합 셀룰러 전화/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID; mobile internet device), 메시징 디바이스, 데이터 통신 디바이스 등의 일부로서 구현될 수 있다. 이들 예의 경우, 제어기(110)는 비휘발성 메모리(130)로부터 데이터를 판독하거나 비휘발성 메모리(130)에 데이터를 기록하기 위해 컴퓨팅 플랫폼의 요소들과 통신할 수 있다. 제어기(110)는 컴퓨팅 플랫폼으로부터의 명령어를 수신하고 그 명령어를 제어 회로(120)에 포워딩하도록 구성될 수 있다. 제어기(110)는 또한, SSD 메모리 시스템(100)과 컴퓨팅 플랫폼 사이의 I/O 데이터 라인을 제어하도록 구성될 수 있다.
일부 예에 따르면, SSD 메모리 시스템(100)은 단일의 회로 기판 또는 다른 타입의 통합된 팩키징 상에서 제어기(110)를 포함하는 통합된 시스템으로서 병합될 수 있다. 이들 예의 경우, 통합된 시스템은 복수의 비휘발성 메모리(130) 및 연관된 제어 회로를 포함할 수 있다. 통합된 시스템은 컴퓨팅 플랫폼의 일부로서 임베딩되거나 컴퓨팅 플랫폼에 착탈식으로 결합될 수 있는 타입의 구성으로 포함될 수도 있다. 이러한 타입의 구성은 도 1에 도시된 SSD 메모리 시스템(100)의 요소들 전부 또는 도 1에 도시된 점선 위의 요소들만을 포함할 수도 있다. 따라서 제어기(110)는 컴퓨팅 플랫폼에 임베딩되거나 컴퓨팅 플랫폼으로부터 제거가능한 SSD 메모리 시스템에 포함될 수도 있다.
일부 예에서, SSD 메모리 시스템(100)은, 데스크탑, 랩탑, 또는 태블릿 컴퓨터 등의 다양한 컴퓨팅 및/또는 가전 디바이스/어플라이언스를 포함하지만 이것으로 제한되지 않는, 호스트 디바이스와 결합되도록 구성될 수 있다. 이 목적을 위해, 인터페이스는, 예를 들어, SATA(serial advanced technology attachment) 인터페이스, SAS(serial attached SCSI) 인터페이스, USB(universal serial bus) 인터페이스, PCI(peripheral control interface), 또는 기타의 적절한 디바이스 인터페이스 등의 그러나 이것으로 제한되지 않는, SSD 메모리 시스템(100)을 호스트 디바이스에 결합하기 위한 임의의 적절한 인터페이스를 포함할 수 있다.
도 2는 우선순위 관리자(112)를 위한 예시적 아키텍쳐의 블록도를 나타낸다. 일부 예에서, 우선순위 관리자(112)는, 적응적으로 할당될 수 있는 MRR 테이블의 우선순위-기반의 엔트리들을 포함하는 MRR 테이블을 생성하거나 제공하도록 구성되거나 준비된 피쳐 및/또는 로직을 포함한다.
일부 예에 따르면, 도 2에 도시된 바와 같이, 우선순위 관리자(112)는 우선순위 로직(210), 제어 로직(220), 메모리(230), 및 입력/출력(I/O) 인터페이스(240)를 포함한다. 도 2에 나타낸 바와 같이, 우선순위 로직(210)은, 제어 로직(220), 메모리(230), 및 I/O 인터페이스(240)에 결합될 수 있다. 우선순위 로직(210)은, 생성 피쳐(212), 연관 피쳐(214), 할당 피쳐(216), 정렬 피쳐(218), 또는 비교 피쳐(219), 또는 이들의 임의의 적당한 조합 중 하나 이상을 포함할 수 있다.
일부 예에서, 도 2에 도시된 요소들은 본 개시에서 설명된 우선순위 관리자(112)를 지원하거나 인에이블하도록 구성된다. 주어진 우선순위 관리자(112)는, 도 2에 도시된 것들 중 일부, 전부 또는 더 많은 요소들을 포함할 수 있다. 예를 들어, 우선순위 로직(210)과 제어 로직(220)은, 우선순위 관리자(112)의 피쳐들을 구현하는 다양한 로직 디바이스(들) 또는 실행가능한 콘텐츠를 별개로 또는 집합적으로 나타낼 수 있다. 예시적인 로직 디바이스들로는, 마이크로프로세서, 마이크로제어기, 프로세서 회로, 필드 프로그래머블 게이트 어레이(FPGA; field programmable gate array), 주문형 집적 회로(ASIC; application specific integrated circuit), 멀티-코어/멀티-쓰레드 마이크로프로세서의 격리된 쓰레드나 코어 또는 이들의 조합 중 하나 이상이 포함될 수 있다.
일부 예에서, 도 2에 도시된 바와 같이, 우선순위 로직(210)은, 제공 피쳐(212), 연관 피쳐(214), 할당 피쳐(216), 정렬 피쳐(218), 또는 비교 피쳐(219)를 포함한다. 우선순위 로직(210)은 동작을 수행하기 위해 이들 피쳐들 중 하나 이상을 이용하도록 구성될 수 있다. 예를 들어, 제공 피쳐(212)는, 비휘발성 메모리의 하나 이상의 메모리 셀들의 판독 에러로부터 회복하는데 이용되는 다수의 우선순위화된 엔트리들을 포함하는 MRR 테이블을 생성하거나 제공할 수 있다. 연관 피쳐(214)는 우선순위화된 엔트리들 중 하나 이상을 프로그램 교란 또는 고유 전하 손실 등의 메모리 셀 특성과 연관시킬 수 있다. 할당 피쳐(216)는 MRR 테이블 엔트리들에 대한 우선순위들의 할당 또는 재할당을 용이하게 할 수 있다. 정렬 피쳐(218)는 우선순위화된 엔트리들을 정렬하되, 하나 이상의 메모리 셀의 판독 에러로부터 회복하기 위해 MRR 테이블이 이용될 때 가장 높은 할당된 우선순위를 갖는 엔트리가 먼저 이용되도록 정렬할 수 있다. 비교 피쳐(219)는 MRR 테이블을 다른 비휘발성 메모리들에 대한 MRR 테이블들 및/또는 판독 에러로부터 회복하기 위한 MRR 테이블의 이용과 연관된 이력 정보와 비교할 수 있다. 실시예들은 이 점에서 제한되지 않는다.
일부 예에서, 제어 로직(220)은 우선순위 관리자(112)의 전체 동작을 제어하도록 구성될 수 있다. 앞서 언급된 바와 같이, 제어 로직(220)은 다양한 로직 디바이스(들) 또는 실행가능한 콘텐츠 중 임의의 것을 나타낼 수 있다. 일부 예의 경우, 제어 로직(220)은 우선순위 관리자(112)의 제어를 구현하는 실행가능한 콘텐츠 또는 명령어와 연계하여 동작하도록 구성될 수 있다. 일부 대안적 예에서, 제어 로직(220)의 피쳐들 및 기능은 우선순위 로직(210) 내에 구현될 수 있다.
일부 예에 따르면, 메모리(230)는 제어 로직(220) 및/또는 우선순위 로직(210)에 의한 이용을 위한 실행가능한 콘텐츠 또는 명령어를 저장하도록 구성될 수 있다. 실행가능한 콘텐츠 또는 명령어는 우선순위 관리자(112)의 피쳐들 또는 요소들을 구현 또는 작동하는데 이용될 수 있다. 후술되는 바와 같이, 메모리(230)는 또한, MRR 테이블의 제공과 연관된 정보를 적어도 일시적으로 유지하도록 구성될 수 있다. 메모리(230)는 또한, 판독 에러로부터 회복하기 위한 MRR 테이블의 이용과 연관된 이력 정보를 적어도 일시적으로 유지하도록 준비될 수 있다.
메모리(230)는, 플래시 메모리, 프로그래머블 변수 또는 상태, 판독-전용 메모리(ROM), 또는 다른 타입의 정적 저장 매체 중 하나 이상의 타입을 포함하지만 이들로 제한되지 않는 다양한 비휘발성 메모리 매체를 포함할 수 있다. 일부 예에서, 전력 제약없는(예를 들어, 대용량 배터리 또는 전원선) 컴퓨팅 플랫폼에서 구현된다면, 메모리(230)는, 동적 랜덤 액세스 메모리(DRAM) 또는 다른 타입의 동적 저장 매체 등의 휘발성 메모리 타입을 역시 포함할 수 있는 다양한 메모리 매체를 포함할 수 있다.
일부 예에서, I/O 인터페이스(240)는, 우선순위 관리자(112)와 도 1에 도시된 SSD 메모리 시스템(100)의 요소들 또는 호스트나 컴퓨팅 플랫폼의 요소들 사이에 국지적 통신 매체 또는 링크를 통해 인터페이스를 제공할 수 있다. I/O 인터페이스(240)는 국지적 통신 매체 또는 링크를 통해 통신하기 위해 다양한 통신 프로토콜 또는 표준에 따라 동작하는 인터페이스를 포함할 수 있다. 이들 통신 프로토콜 또는 표준들은, ONFi(Open NAND Flash Interface) 규격, I2C(Inter-Integrated Circuit) 규격, SMBus(System Management Bus) 규격, AGP(Accelerated Graphics Port) 규격, PCI Express(Peripheral Component Interconnect Express) 규격, USB(Universal Serial Bus) 규격, 또는 SATA(Serial Advanced Technology Attachment) 규격 등의 하나 이상의 산업 표준(후속판 및 변종 포함)에서 기술될 수 있다. 본 개시는 상기 언급된 표준 및 연관된 프로토콜들만으로 제한되지 않는다.
도 3은 예시적 멀티-레벨 셀 프로그래밍 분포를 나타낸다. 도 3에 도시된 바와 같이, 멀티-셀 프로그래밍 분포(310, 320, 및 330)는, 각각 2진값들 "11", "01", "00", "10"을 유지하도록 구성된 레벨들 L0 내지 L3을 포함한다. 멀티-레벨 셀 프로그래밍 분포에 대한 도 3에는 또한, 멀티레벨 셀 프로그래밍 분포에 따라 값을 판독하는데 이용될 수 있는 예시적 판독 기준 R_01, R_00, 및 R_10이 도시되어 있다. 본 개시는, 4 레벨을 갖고 도 3에 도시된 2진값들을 유지하는 멀티-레벨 셀 프로그래밍 분포로 제한되지 않으며, 2진 값들의 다른 조합들을 유지하기 위해 임의 개수의 레벨들이 고려될 수 있다. 일부 예에서, 도 3에 도시된 바와 같이, 셀 임계 전압(Vt)은 수평축을 따라 우측에서 좌측으로 증가하는 것으로 도시되어 있다.
일부 예에서, 도 3에 도시된 바와 같이, 멀티-셀 프로그래밍 분포(310, 320, 또는 330)에 포함된 밸리0 내지 밸리3은 분포된 레벨 L0 내지 L3 사이에 있는 Vt 축을 따른 영역을 나타낸다. 예를 들어, 밸리 0은 L0과 L1 사이에 있고, 밸리1은 L1과 L2 사이에 있으며, 밸리3은 L2와 L3 사이에 있다. 비휘발성 메모리에 포함된 메모리 셀들의 특성은, 예를 들어, L0과 L1 사이의 밸리0이 감소하게 하거나 L3과 L2 사이의 밸리2가 감소하게 할 수 있다.
일부 예에 따르면, 프로그래밍 교란은, 메모리 셀들에 대해 프로그램/소거 사이클 카운트가 증가함에 따라 L0과 연관된 피크가 넓어지게 하는 특성일 수 있다. 예를 들어, 멀티-레벨 셀 프로그래밍 분포(310)는 L0에서 값 "11"을 유지하기 위해 비교적 높고 좁은 피크를 도시한다. 그러나, L0에 대한 더 작고 더 넓은 피크는, 멀티-레벨 셀 프로그래밍 분포(320)의 밸리0이 멀티-레벨 셀 프로그래밍 분포(310)의 밸리0보다 훨씬 작게 한다.
일부 예에서, 고유 전하 손실은 L3과 연관된 피크가 넓어지게 할 수 있는 특성일 수 있다. 이들 특성들은, 가능한 메모리 셀 결함들 또는 메모리 셀이 전원공급되는 시간의 길이를 포함할 수 있지만 이것으로 제한되지 않는다. 도 3에 도시된 바와 같이, 멀티-레벨 셀 프로그래밍 분포(310)는 L3에서 값 "10"을 유지하기 위해 비교적 높고 좁은 피크를 도시한다. 그러나, L3에 대한 더 작고 더 넓은 피크는, 멀티-레벨 셀 프로그래밍 분포(330)의 밸리2가 멀티-레벨 셀 프로그래밍 분포(310)의 밸리2보다 훨씬 작게 한다.
일부 예에 따르면, 판독 에러는, 멀티-레벨 셀 프로그래밍 분포(310)의 L0 내지 L3에서 유지되는 값들의 판독 시도 동안에 발생할 수 있다. 이들 예의 경우, 복수의 엔트리들을 포함하는 MRR 테이블이 판독 에러로부터 회복되는데 이용될 수 있다. 엔트리들 각각은 하나 이상의 판독 기준값 이동을 나타낼 수 있다. 이하에서 더 설명되는 바와 같이, 우선순위 관리자(112)는, MRR 테이블을 생성 또는 업데이트하였을 수 있고 다음 할당된 우선순위에 기초하여 엔트리들을 정렬하는 로직 및/또는 피쳐를 포함할 수 있다. 도 3에 도시된 엔트리들(312-1, 312-2, 및 312-3)은, 가장 높은 우선순위를 할당받아 판독 에러로부터 회복하기 위해 먼저 이용되었을 수 있는 MRR 테이블의 엔트리로부터의 3개의 판독 기준값 이동을 나타낼 수 있다. 일부 예에서, 멀티-레벨 셀 프로그래밍 분포(310)와 연관된 메모리 셀들은 비교적 신품이고 낮은 프로그램/소거 사이클 카운트를 가질 수 있다. 신품이기 때문에, 엔트리들(312-1, 312-2, 및 312-3)은 공장 디폴트 값과 연관될 수 있으므로 판독 에러로부터의 회복에 이용하기 위한 가장 높은 우선순위를 할당받을 수 있다.
일부 예에서, 판독 에러는, 멀티-레벨 셀 프로그래밍 분포(320)의 L0 내지 L3에서 유지되는 값들의 판독 시도 동안에 발생할 수 있다. 이들 예의 경우, 판독 에러는 L0 또는 L1에서 유지되는 값들과 연관될 수 있다. 도 3에 도시된 바와 같이, 엔트리(322)는 MRR 테이블의 엔트리일 수 있다. 엔트리(322)는 판독 에러로부터 회복하는데 이용될 수 있는 단일의 판독 기준값 이동을 가질 수 있다. 우선순위 관리자(112)는, 멀티-레벨 셀 프로그래밍 분포(320)와 연관된 메모리 셀이 L0의 피크가 짧아지고 넓어지게 하는 프로그램 교란 특성을 가질 수도 있다는 것을 나타내는 정보에 기초하여 엔트리(322)에 가장 높은 우선순위를 할당했을 수 있다. 따라서, 도 3에 도시된 바와 같이 우측으로의 R_01의 시프트는 판독 에러로부터의 회복을 허용할 수 있다.
일부 예에 따르면, 판독 에러는, 멀티-레벨 셀 프로그래밍 분포(330)의 L0 내지 L3에서 유지되는 값들의 판독 시도 동안에 발생할 수 있다. 이들 예의 경우, 판독 에러는 L2 또는 L3에서 유지되는 값들과 연관될 수 있다. 도 3에 도시된 바와 같이, 엔트리(332)는 MRR 테이블의 엔트리일 수 있다. 엔트리(332)는 판독 에러로부터 회복하는데 이용될 수 있는 단일의 판독 기준값 이동을 가질 수 있다. 우선순위 관리자(112)는, 멀티-레벨 셀 프로그래밍 분포(320)와 연관된 메모리 셀이 L2의 피크가 짧아지고 넓어지게 하는 고유 전하 손실 특성을 가질 수도 있다는 것을 나타내는 정보에 기초하여 엔트리(332)에 가장 높은 우선순위를 할당했을 수 있다. 따라서, 도 3에 도시된 바와 같이 좌측으로의 R_10의 시프트는 판독 에러로부터의 회복을 허용할 수 있다.
도 4는 멀티-레벨 셀 프로그래밍 분포의 일부에 대한 예시적 프로그램 교란(PD; program disturb)을 나타낸다. 도 4에 도시된 바와 같이, PD들 410, 420, 및 430은 "11"의 값을 유지하는 L0의 다양한 형상을 도시한다. 일부 예에서, PD들 410, 420, 및 430은 다양한 프로그램/소거 사이클 카운트와 연관된 메모리 셀 특성을 나타낼 수 있다. 이들 예의 경우, PD 410은 메모리 셀에 대한 제1 카운트의 프로그램/소거 사이클 카운트와 연관된 프로그램 교란일 수 있다. PD 420은 제2 카운트의 프로그램/소거 사이클 카운트와 연관된 프로그램 교란일 수 있고, PD 430은 제3 카운트의 프로그램/소거 사이클 카운트와 연관된 프로그램 교란일 수 있다. 또한, 이들 예의 경우, 제1 카운트는 가장 낮은 프로그램/소거 사이클수를 포함할 수 있고 제3 카운트는 가장 높은 프로그램/소거 사이클수를 포함할 수 있다.
일부 예에 따르면, 우선순위 관리자(112)는, 어느 프로그램 교란이 기대되거나 예상되는지에 기초하여 L0 또는 L1로부터의 값들의 판독과 연관된 판독 에러들로부터 회복하는데 이용될 수 있는 엔트리들을 포함하는 MRR 테이블을 생성하거나 제공하도록 준비된 로직 및/또는 피쳐를 포함할 수 있다. 이들 예의 경우, 엔트리들은 엔트리들(412, 422 및 432)을 포함할 수 있다. 도 4에 도시된 바와 같이, 이들 엔트리들 각각은 L0과 연관된 피크의 변화하는 형상에 맞게 조절하기 위하여 R_01을 우측으로 더 이동시키는 판독 기준값 이동을 포함할 수 있다.
도 5는 예시도(500)를 나타낸다. 일부 예에서, 도 5에 도시된 바와 같이, 일련의 종형 곡선(bell curves)은 프로그램 관리자(112)가 엔트리들(412, 422 및 432)에 우선순위를 어떻게 할당할 수 있는지를 도시하고 있다. 이들 예의 경우, 주어진 엔트리에 할당되는 우선순위(y-축)는, 도표(500)가 우측으로 이동함에 따라 증가하는 프로그램/소거 사이클(x-축)에 기초하여 엔트리들 각각에 대해 변한다. 일부 예에서, 카운트(510)는 프로그램/소거 사이클 카운트 0을 나타내고, 카운트(520, 530 및 540)는 연속적으로 더 높은 프로그램/소거 사이클 카운트를 나타낼 수 있다. 예를 들어, 카운트(520)는 1000회의 프로그램/소거 사이클 카운트를 나타내고, 카운트(530)는 10,000회의 프로그램/소거 사이클 카운트를 나타내며, 카운트(540)는 30,000회의 프로그램/소거 사이클 카운트를 나타낼 수 있다.
일부 예에서, 도 5에 도시된 바와 같이, 카운트(510)에 이어, 엔트리(412)와 연관된 곡선은 우선순위에 있어서 상승하여 카운트(520)에서 피크를 이룬다. 한편, 카운트(520)에서의 엔트리(412)의 피크 우선순위에 이어, 엔트리(422)와 연관된 곡선은 우선순위에 있어서 상승하기 시작하여 카운트(530)에서 피크를 이룬다. 그 다음, 카운트(530)에서의 엔트리(422)의 피크에 이어, 엔트리(432)와 연관된 곡선은 상승하여 카운트(540)에서 피크를 이룬다.
일부 예에 따르면, 엔트리들(412, 422, 432)에 할당된 피크 우선순위는, 각각, 도 5에 도시된 바와 같이 연속적으로 더 낮을 수 있다. 우선순위의 이러한 저하는, 프로그램/소거 사이클이 메모리 셀에 대해 비교적 높은 횟수에 도달함에 따라 판독 에러로부터의 회복에 있어서 더 적은 성공을 갖는 프로그램 교란 등의 어드레스 사이클링 의존 비휘발성 메모리 에러 메커니즘에 맞게 조정된 판독 기준값 이동에 기인한 것일 수 있다. 이들 예의 경우, 다른 엔트리들에 대한 다른 판독 기준값 이동이, 메모리 셀이 높은 프로그램/소거 사이클 카운트에 종속된 후에 판독 에러로부터 회복하기에 더욱 적절하고 효과적으로 될 수 있다. 더욱 적절하고 효과적이므로, 이들 다른 엔트리들은 적어도 엔트리(432)에 비해 높은 우선순위를 할당받을 수 있다.
프로그램 교란 등의 사이클링 의존 비휘발성 메모리 에러 메커니즘이 도 5에 대해 설명되지만, 다른 에러 메커니즘들이 사이클링 의존적일 수도 있다. 예를 들어, 고유 전하 손실 에러 메커니즘도 역시 사이클 의존적일 수 있다. 이들 타입의 에러 메커니즘의 경우, 고유 전하 손실로부터의 회복과 연관된 MRR 테이블 엔트리들에 유사한 종형 곡선들이 할당될 수 있다.
도 6은 예시적인 카운트-기반 MRR 테이블을 나타낸다. 도 6에 도시된 바와 같이, MRR 테이블들(610, 620, 630 및 640)은, 도 5에 대해 앞서 언급된 바와 같이, 각각 카운트(510, 520, 530 및 540)에 기초할 수 있다. 도 6에 도시된 바와 같이, MRR 테이블들(610, 620, 630 및 640)에는 8개의 별개의 엔트리들이 포함될 수 있다. 일부 예에서, 8개의 별개의 엔트리들 각각은 R_01, R_00 또는 R_10에 대한 하나 이상의 판독 기준값 이동을 밀리볼트(mv) 단위로 포함할 수 있다. 양의 값은 도 3에 도시된 것들과 같은 멀티-레벨 셀 프로그래밍 분포에 대해 셀 Vt 축 상에서 우측으로의 시프트를 나타내고 음의 값은 좌측으로의 시프트를 나타낸다. 본 개시는 8개의 엔트리를 갖는 MRR 테이블이나 도 6에 도시된 바와 같은 각각의 엔트리에 대해 포함된 판독 기준값 이동으로 제한되지 않는다.
일부 예에 따르면, 도 6에 도시된 바와 같이, MRR 테이블들(610, 620, 630 및 640)과 연관된 엔트리들은, 공장 디폴트, 부분적 블록 프로그램, PD 410, PD 420, PD 430, 고유 전하 손실(ICL) 1, ICL 2, ICL 3을 포함할 수 있다. 이들 예의 경우, 우선순위 관리자(112)는, 각각 카운트들(510, 520, 530 및 540)에서 MRR 테이블들(610, 620, 630 및 640)을 생성하거나 제공하도록 준비된 로직 및/또는 피쳐를 포함할 수 있다. 이들 MRR 테이블들은 하나 이상의 판독 기준값 이동을 나타내는 엔트리들을 가질 수 있다. 예를 들어, 공장 디폴트 엔트리는 카운트(510)에서의 판독 에러로부터 초기에 회복하도록 확립된 판독 기준값 이동을 포함할 수 있다. 부분적 블록 프로그램 엔트리는 부분적 블록 프로그램된 페이지와 연관된 판독 에러로부터 회복하는 판독 기준값 이동을 포함할 수 있다. PD 410, 420 및 430은 도 4에 대해 앞서 설명되고 도 3에서 언급된 바와 같은 프로그램 교란으로부터 회복하는 판독 기준값 이동을 포함할 수 있다. ICL 1, 2, 및 3은 도 3에 대해 앞서 언급된 고유 전하 손실 특성으로부터 회복하는 판독 기준값 이동을 포함할 수 있다.
일부 예에서, 우선순위 관리자(112)는 카운트(510)에서의 MRR 테이블(610)을 생성 또는 제공할 수 있다. 이 예의 경우, 공장 디폴트 엔트리는 MRR 테이블이 처음 제공될 때 가장 높은 우선순위를 할당받을 수 있다. 도 5에 대해 언급된 바와 같이, 카운트(510)는 가장 낮은 프로그램/소거 사이클 카운트와 연관될 수 있다. 따라서, 도 6에 도시된 바와 같이, 공장 디폴트 엔트리는 MRR 테이블(610)을 제공할 때 우선순위 관리자(112)에 의해 가장 높은 우선순위 값 1.0을 할당받을 수 있다. 또한, 이들 예의 경우, 부분적 블록 프로그램 엔트리는 두번째로 높은 우선순위 0.9를 할당받을 수 있다. 또한, 도 6에 도시된 바와 같이, MRR 테이블(610)의 경우, 각각의 우선순위화된 엔트리는 순서 번호(order number)를 가질 수 있다. 일부 예에 따르면, 순서 번호는, 판독 에러로부터 회복하기 위해 MRR 테이블(610)이 이용될 때 엔트리가 이용되는 순서(sequence)를 나타낸다. 따라서 MRR 테이블(610) 내의 순서 번호 1을 갖는 공장 디폴트 엔트리는 이용되는 첫 번째 엔트리가 될 것이고 순서 번호 2를 갖는 부분적 블록 프로그램 엔트리는 이용되는 두 번째 엔트리가 될 것이다.
일부 예에 따르면, PD 410, PD 420, 및 PD 430 각각은, 도 4 및 도 5에 대해 앞서 언급된 바와 같이, 각각 엔트리들(412, 422, 및 432)에 관련될 수 있는 R_01 판독 기준값 이동을 포함할 수 있다. 이들 예의 경우, PD 410, PD 420, 또는 PD 430에 대한 할당된 우선순위들은 도 5에 도시된 바와 같은 프로그램/소거 사이클 카운트에 따라 변할 수 있다. 예를 들어, 우선순위 관리자(112)는, 카운트(520)에서 PD 410에게 가장 높은 우선순위를 할당하고 그에 따라 판독 에러로부터 회복하는데 이용될 첫 번째 엔트리로서 정렬된 MRR 테이블(620)을 제공할 수 있다. 우선순위 관리자(112)는 또한, 카운트(530)에서 PD 420에게 가장 높은 우선순위를 갖도록 할당하는 MRR 테이블(630)을 제공한 다음, PD 430에게 가장 높은 우선순위를 할당하는 MRR 테이블(640)을 제공할 수 있다. 그 다음, 이들 테이블들 각각에 대한 다른 엔트리들이 도 6에 나타낸 바와 같이 그들의 재할당된 우선순위에 따라 정렬된다.
일부 예에서, 프로그램/소거 사이클 카운트에 기초한 우선순위 할당 외에도, 우선순위 관리자(112)는, 비휘발성 메모리가 전원공급되거나 전력을 수신하는 시간의 양에 기초하여 더 높은 우선순위를 할당하는 로직 및/또는 피쳐를 포함할 수 있다. 이들 예들의 경우, 더 긴 전원공급(power on) 시간은 비휘발성 메모리에 대한 상승된 동작 온도에 대한 노출을 나타낼 수 있다. 상승된 동작 온도는 비휘발성 메모리의 하나 이상의 메모리 셀들에 대한 고유 전하 손실의 가능성을 증가시킬 수 있다. 우선순위 관리자(112)는 이 전원공급 시간을 주어진 임계 시간값(예를 들어, 14일)과 비교하고, 그 임계 시간값을 초과했다면 ICL 1, 2, 또는 3중 하나에 더 높은 또는 가장 높은 우선순위를 할당할 수 있다.
도 7은 MRR 테이블을 제공하기 위한 예시적 비교 MRR 테이블을 나타낸다. 일부 예에 따르면, 또 다른 비휘발성 메모리에 의해 이용되는 MRR 테이블 엔트리와의 비교에 기초하여 비휘발성 메모리에 대해 MRR 테이블(720) 등의 MRR 테이블이 제공될 수 있다. 도 7에 도시된 바와 같이, MRR 비교 테이블(710)은, 다른 비휘발성 메모리의 메모리 셀들에서 판독 에러로부터 회복하기 위해 주어진 엔트리들을 이용하는 것에 대한 성공률을 나타내는 이력 정보를 포함할 수 있다. 예를 들어, 테이블(710)은 ICL 1과 연관된 엔트리에 대해 85%의 성공률을 나타낸다. ICL 2 및 3의 다른 고유 전하 손실 엔트리들은 각각 75%와 65%의 성공률을 나타낸다. 이들 예의 경우, 비휘발성 메모리(130) 및 다른 비휘발성 메모리는 스토리지 디바이스에 포함될 수 있고 동일한 프로세스를 이용하여 함께 제조되었을 동일한 타입의 메모리(예를 들어, NAND)일 수 있다. 동일한 유형이고 함께 제조되었으므로, 양쪽 비휘발성 메모리들은 유사한 메모리 셀 특성을 공유할 가능성이 더 높을 수 있다. 또한, (예를 들어, 펌웨어에 유지된) 내부 메커니즘은 비휘발성 메모리들에 걸쳐 균등하게 프로그램/소거 사이클 카운트를 분산시킬 수 있다. 따라서 유사한 타입, 제조 프로세스 또는 프로그램/소거 사이클 카운트로 인해, 고유 셀 손실 또는 프로그램 교란 등의 메모리 셀 특성들은 2개의 비휘발성 메모리들에 대해 유사할 수 있다. 따라서 우선순위 관리자(112)는 MRR 테이블(720)을 제공하되, 이 테이블 내에 포함된 엔트리들에 대한 우선순위들이 MRR 비교 테이블(710)의 우선순위들과 정합하도록 제공하므로 도 7에 도시된 바와 같이 ICL 1에 가장 높은 우선순위를 할당할 수 있다.
일부 예에 따르면, 우선순위 관리자(112)는 테이블(720)에 포함된 엔트리들 각각과 연관된 정보를 수집하여 MRR 비교 테이블(710)에 대해 도시된 것들과 유사한 성공률을 결정하는 로직 및/또는 피쳐를 포함할 수 있다. 우선순위 관리자(112)는 이들이 유사하다는 것을 확인하기 위해 2개의 성공률을 비교할 수 있다. 성공률이 발산하는 것처럼 보인다면(예를 들어, 20% 보다 큰 차이), 우선순위 관리자(112)는 MRR 비교 테이블(710)과의 비교에 기초하여 MRR 테이블(720)의 제공을 중단할 수 있다. 우선순위 관리자(112)는 또한, 비휘발성 메모리(130)가 다른 비휘발성 메모리보다 상당히 더 높은 판독 실패 횟수를 겪기 시작한다면 비교에 기초하여 MRR 테이블(720)의 제공을 중단할 수 있다. 이들 예들 양쪽 모두는, 2개의 비휘발성 메모리가 유사하게 성능을 보이지 않고 유사한 결함이나 특성을 갖지 않을 수 있으므로 유사한 MRR 테이블을 이용해서는 안 된다는 표시일 수 있다.
일부 예에서, 성공 퍼센트에 추가하여 또는 그 대안으로서, 비휘발성 메모리(130) 뿐만 아니라 다른 비휘발성 메모리가 성공적인 MRR 테이블 엔트리 로그를 유지하도록 준비될 수 있다. 성공적인 MRR 테이블 엔트리 로그는 판독 에러로부터 회복하기 위해 주어진 엔트리의 성공 횟수를 추적할 수 있다. 일부 예에 따르면, 각각의 엔트리는, 임의의 하나의 특정한 성공적인 엔트리가 전체의 로그를 채우지 않고 어떤 엔트리들이 두 번째, 세 번째, 네 번째 등으로 성공적인 엔트리인지를 결정하는 것을 어렵게 하지 않도록 보장하기 위해 제한된 개수의 성공 엔트리들을 가질 수도 있다.
도 8은 비트-플립(bit-flip) 정보에 기초하여 업데이트되는 예시적 MRR 테이블(800)을 나타낸다. 일부 예에 따르면, 우선순위 관리자(112)에 의해 수집된 비트-플립 정보에 기초하여 비휘발성 메모리에 대해 MRR 테이블(800) 등의 MRR 테이블이 제공될 수 있다. 비트-플립 정보는, 도 3에 도시된 것과 같은 멀티-레벨 셀 프로그램 분포에 대한 R_01 및 R_10에 대한 판독 기준값 이동과 연관된 "0"에서 "1"로의 비트-플립 또는 "1"에서 "0"으로의 비트-플립에 관련될 수 있다. 이들 예의 경우, 우선순위 관리자(112)는 레벨 L1 또는 L2에서 유지된 값들에 주목하고 판독 기준값 이동 R_01 또는 R_10이 비트-플립을 야기했는지를 모니터링할 수 있다.
일부 예에서, R_10 판독 기준값 이동에 대한 비트-플립은 비휘발성 메모리의 메모리 셀들의 특성 또는 에러 메커니즘으로서 고유 전하 손실을 나타낼 수 있다. 예를 들어, 도 3의 멀티-레벨 셀 프로그래밍 분포(330)에 대해 도시된 바와 같이, 셀 Vt 거리는 R_10을 좌측으로 이동시킬 때 L2와 R_10 사이에서 수축된다. 셀 Vt 거리의 수축하는 크기는, 예를 들어, L2에서 유지된 값에 대한 "0"에서 "1"로의 다수의 비트-플립으로 이어질 수 있다.
일부 예에 따르면, 우선순위 관리자(112)는 수집된 비트-플립 정보에 기초하여 MRR 테이블(800)을 제공하는 로직 및/또는 피쳐를 포함할 수 있다. 이들 예의 경우, 우선순위 관리자(112)는, 이러한 판독 기준값 이동을 이용하는 것은 L2에서 유지된 값에 대한 비트-플립으로 이어질 수 있다는 예상에 기초하여 ICL 1을 -100mv의 R_10 값과 연관시킬 수 있다. 일부 실시예에서, 우선순위 관리자(112)는 도 8에 도시된 바와 같이 ICL 1 엔트리에 가장 높은 우선순위를 할당할 수 있다. 다른 ICL 엔트리들도 역시 높은 우선순위를 가질 수 있다. 반면 프로그램 교란 엔트리들은, 프로그램 교란에 의해 야기된 판독 에러들은 가능성이 더 적으므로 이들 엔트리들에 포함된 판독값 이동은 판독 에러로부터의 회복을 야기하지 않을 수 있기 때문에 더 낮은 우선순위를 갖는다.
일부 대안적 예에서, R_01이 R_10에 비해 더 많은 비트-플립을 야기하는 것으로 드러났다면, 에러 메커니즘은 고유 전하 손실이 아니라 프로그램 교란일 수 있다. 이들 대안적 예에서, 우선순위 관리자(112)는 +100 mv의 R_01 값을 갖는 PD 410의 엔트리를 비트-플립과 연관시킨 다음 가장 높은 우선순위를 PD 410에 할당할 수 있다. 높은 우선순위들이 또한 PD 420과 PD 430에 할당될 수 있다. 또한, 낮은 우선순위들이 ICL 1, ICL 2, 및 ICL 3에 할당될 수 있다.
도 9는 MRR 테이블을 제공하기 위한 예시적 동작의 플로차트를 나타낸다. 일부 예에서, 도 1에 도시된 SSD 메모리 시스템(100)의 요소들은 도 9에 도시된 플로차트에 관련된 예시적 동작을 나타내는데 이용될 수 있다. 도 1 및 도 2에 도시된 우선순위 관리자(112)는 또한 예시적 동작들을 나타내는데 이용될 수 있다. 도 3 및 도 4에 도시된 멀티-레벨 셀 프로그래밍 분포 또는 도 6 내지 도 8에 도시된 MRR 테이블도 역시 예시적 동작들을 나타내는데 이용될 수 있다. 그러나 설명된 예시적 동작은, SSD 메모리 시스템(100), 우선순위 관리자(112), 멀티-레벨 셀 분포 또는 예시적 MRR 테이블 등의 도 1 내지 도 8에 설명된 요소들로 제한되지 않는다.
일부 예에서, ECC 실패에 응답하여 비휘발성 메모리(130)에 대한 판독 에러로부터 회복하기 위해, 프로세스는 시작으로부터 블록(905)으로 이동한다. 블록(905)(비트-플립 정보 검사)에서, 우선순위 관리자(112)는 (예를 들어, 연관 피쳐(214)를 통해) 비트-플립 정보를 검사하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, 비트-플립 정보는 도 8에 대해 앞서 언급된 바와 같이 수집되어 포함된 정보와 유사할 수 있다. 수집된 비트-플립 정보는 비휘발성 메모리(130)가 고유 전하 손실을 갖는지 또는 프로그램 교란 특성을 갖는지를 결정할 수 있다. 이들 예의 경우, 우선순위 관리자(112)는 엔트리들(예를 들어, PD 410)을 프로그램 교란을 나타낼 수 있는 비트-플립 정보와 연관시키고 엔트리들(예를 들어, ICL 1)을 고유 전하 손실을 나타낼 수 있는 비트-플립 정보와 연관시킬 수 있다.
블록(905)으로부터 블록(910)(프로그램/소거 사이클 카운트 검사)으로 진행하면, 우선순위 관리자(112)는 (예를 들어, 연관 피쳐(214)를 통해) 비휘발성 메모리(130)에 대한 프로그램/소거 사이클 카운트를 검사하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 앞서 언급된 바와 같이, 프로그램/소거 사이클 카운트와 같은 정보는, 프로그램 교란 관련 에러를 해결하고 및/또는 아마도 고유 전하 관련 에러를 해결하는데 이용되는 판독 기준값 이동과 연관된 엔트리들과 같은 MRR 테이블 엔트리들에 대한 할당된 우선순위에 영향을 미칠 수 있다.
블록(910)으로부터 블록(915)(MRR 테이블 제공/업데이트)으로 진행하면, 우선순위 관리자(112)는 (예를 들어, 제공 피쳐(212)를 통해) MRR 테이블을 제공 또는 업데이트하기 위해 비트-플립 및 프로그램/소거 사이클 카운트 정보를 이용하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, MRR 테이블은 MRR 테이블들(610-640, 720 또는 820)과 유사할 수 있고 8개의 엔트리를 포함할 수 있다. 우선순위 관리자(112)는 또한, 블록(905 및 910)에 대해 상기에서 언급한 바와 같은 수집된 정보와 연관에 기초하여 (예를 들어, 할당 피쳐(216)를 통해) 8개 엔트리들에 대한 우선순위 값을 할당 및/또는 업데이트하는 로직 및/또는 피쳐를 포함할 수 있다. 우선순위 관리자(112)는, (예를 들어, 정렬 피쳐(218)를 통해) 할당된 및/또는 업데이트된 우선순위에 기초하여 엔트리들을 정렬하는 로직 및/또는 피쳐를 포함할 수 있다.
블록(915)으로부터 블록(920)(MRR 테이블 비교)으로 진행하면, 우선순위 관리자(112)는 (예를 들어, 비교 피쳐(219)를 통해) 비휘발성 메모리(130)에 대한 제공된 MRR 테이블을 또 다른 비휘발성 메모리에 대한 MRR 테이블과 비교하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, 다른 비휘발성 메모리는 비휘발성 메모리(130)와 동일한 스토리지 디바이스(예를 들어, SSD의 일부)에 포함될 수 있다.
블록(920)으로부터 결정 블록(925)(우선순위 차이?)으로 진행하면, 우선순위 관리자(112)는 (예를 들어, 비교 피쳐(219)를 통해) MRR 테이블이 상이한 할당된 우선순위를 갖는지를 결정하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, 우선순위들이 상이하다면 프로세스는 블록(930)으로 이동한다. 그렇지 않다면, 프로세스는 블록(935)으로 이동한다.
결정 블록(925)으로부터 결정 블록(930)(에러가 더 큰가?)으로 이동하면, 우선순위 관리자(112)는 (예를 들어, 비교 피쳐(219)를 통해) 휘발성 메모리(130)가 다른 비휘발성 메모리보다 더 많은 판독 에러에 종속되어 있는지를 결정하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, 비휘발성 메모리(130)가 더 많은 판독 에러에 종속되어 있다면, 다른 비휘발성 메모리에 대한 MRR 테이블은 비휘발성 메모리(130)에 대한 MRR 테이블을 조정하는데 이용되지 않을 수 있고 프로세스는 블록(940)으로 이동한다. 그렇지 않다면, 프로세스는 블록(935)으로 이동한다.
결정 블록(930)으로부터 블록(935)(MRR 테이블 조정)으로 이동하면, 우선순위 관리자(112)는 (예를 들어, 정렬 피쳐(218)를 통해) 다른 비휘발성 메모리에 대한 MRR 우선순위들과 정합하게끔 제공된 MRR 테이블을 조정하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다.
결정 블록(925) 또는 블록(935)으로부터 블록(940)(MRR 테이블을 이력과 비교)으로 이동하면, 우선순위 관리자(112)는 (예를 들어, 연관 피쳐(214)를 통해) 비휘발성 메모리(130)에 대한 제공된 MRR 테이블에 포함된 엔트리들과 연관된 정보를 수집하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다.
블록(940)으로부터 결정 블록(945)(우선순위 재할당?)으로 진행하면, 우선순위 관리자(112)는 (예를 들어, 할당 피쳐(216)를 통해) 제공된 및/또는 업데이트된 MRR 테이블 내의 엔트리들에 대해 우선순위가 재할당될 필요가 있는지를 결정하기 위해 수집된 정보를 이용하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, 수집된 정보는, 높은 우선순위를 갖는 엔트리가 비휘발성 메모리(130)의 하나 이상의 메모리 셀들에 대한 판독 에러로부터의 회복을 가능케하지 못했다는 것을 나타낼 수 있다. 이 예의 경우, 이 엔트리에 대한 우선순위는 재할당될 수 있고 프로세스는 블록(945)으로 이동한다. 그렇지 않다면, 프로세스는 결정 블록(955)으로 이동한다.
결정 블록(945)으로부터 블록(950)(MRR 테이블 조정)으로 이동하면, 우선순위 관리자(112)는 (예를 들어, 할당 피쳐(216)를 통해) 이들 엔트리들이 판독 에러로부터의 회복을 가능케하지 못했다는 것을 나타낼 수 있는 이력 정보에 기초하여 하나 이상의 엔트리들과 연관된 우선순위들을 재할당하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 그러면 우선순위 관리자(112)는, 가장 높은 할당된 우선순위가 먼저 이용되게끔 정렬되도록 새로이 할당된 우선순위들에 기초하여 엔트리들을 (예를 들어, 정렬 피쳐(218)를 통해) 재정렬함으로써 제공된 및/또는 업데이트된 MRR 테이블을 조정할 수 있다.
결정 블록(945) 또는 블록(950)으로부터 결정 블록(955)(부분적 블록 프로그램?)으로 이동하면, 우선순위 관리자(112)는, ECC 및/또는 판독 실패가 부분적 블록 프로그램 페이지와 연관되었는지를 결정하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, 제공된 및/또는 업데이트된 MRR 테이블은, 부분적 블록 프로그램 판독 기준값 이동과 연관된 엔트리들이 제공된 MRR 테이블에서 가장 낮은 또는 가장 높은 우선순위를 할당받도록 다시 한번 조정될 수 있다. 우선순위 관리자(112)가 부분적 블록 프로그램 페이지와의 연관을 결정하면, 프로세스는 블록(965)으로 이동한다. 그렇지 않다면, 프로세스는 블록(960)으로 이동한다.
결정 블록(955)으로부터 블록(960)(부분적 블록 프로그램에 대한 가장 낮은 우선순위)으로 이동하면, 우선순위 관리자(112)는 (예를 들어, 할당 피쳐(216)를 통해) 부분적 블록 프로그램과 연관된 엔트리에 가장 낮은 우선순위를 할당하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 필요하다면, 제공된 및/또는 업데이트된 MRR 테이블은 이 할당된 우선순위를 반영하도록 (예를 들어, 정렬 피쳐(218)를 통해) 재정렬될 수 있다.
결정 블록(955)으로부터 블록(965)(부분적 블록 프로그램에 대한 가장 높은 우선순위)으로 이동하면, 우선순위 관리자(112)는 (예를 들어, 할당 피쳐(216)를 통해) 부분적 블록 프로그램과 연관된 엔트리에 가장 높은 우선순위를 할당하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 필요하다면, 생성된 및/또는 업데이트된 MRR 테이블은 이 할당된 우선순위를 반영하도록 (예를 들어, 정렬 피쳐(218)를 통해) 재정렬될 수 있다.
블록(960) 또는 블록(965)으로 이동하면, 프로세스는 끝에 도달하고 제공된 및/또는 업데이트된 MRR 테이블은 비휘발성 메모리(130)의 하나 이상의 메모리 셀들의 판독 에러로부터 회복하는데 이용될 준비가 될 수 있다.
도 10a 및 도 10b는 우선순위를 업데이트하고 MRR 테이블을 이용하기 위한 예시적 동작의 플로차트를 나타낸다. 일부 예에서, 도 1에 도시된 SSD 메모리 시스템(100)의 요소들은 도 10a 및 도 10b에 도시된 플로차트에 관련된 예시적 동작을 나타내는데 이용될 수 있다. 도 1 및 도 2에 도시된 우선순위 관리자(112)도 역시 예시적 동작들을 나타내는데 이용될 수 있다. 도 3 및 도 4에 도시된 멀티-레벨 셀 프로그래밍 분포 또는 도 6 내지 도 8에 도시된 MRR 테이블도 역시 예시적 동작들을 나타내는데 이용될 수 있다. 그러나 설명된 예시적 동작은, SSD 메모리 시스템(100), 우선순위 관리자(112), 멀티-레벨 셀 분포 또는 예시적 MRR 테이블 등의 도 1 내지 도 8에 설명된 요소들로 제한되지 않는다.
일부 예에서, 도 10a에 도시된 바와 같이, ECC 실패에 응답하여 비휘발성 메모리(130)의 하나 이상의 메모리 셀들의 판독 에러로부터 회복하기 위해, 프로세스는 시작으로부터 블록(1010)으로 이동한다. 블록(1010)(우선순위 업데이트)에서, 우선순위 관리자(112)는 (예를 들어, 할당 피쳐(216)를 통해) MRR 테이블의 엔트리들에 대한 우선순위를 업데이트하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, 도 10a에 도시된 바와 같이, (예를 들어, 메모리(230)에 유지되는) 사용자 기반의 스케일링 계수(1005)의 계수들 1 내지 5는 우선순위 방식(1010-A 내지 1010-E)에 기초하여 유도된 업데이트된 우선순위 값에 영향을 미칠 수 있다. 이들 예의 경우, 도 10a에 도시된 바와 같이, 우선순위 방식들로는, 사이클 카운트 의존 우선순위(1010-A)(예를 들어, PD 410, 420 또는 430), 과거 MRR 이력 기반의 우선순위(1010-B)(예를 들어, 성공률), 또 다른 비휘발성 메모리 우선순위(1010-C)(예를 들어, 동일한 NAND 디바이스 상의 다른 비휘발성 메모리들), 비트-플립 기반의 우선순위(1010-D), 또는 부분적 블록 프로그램 기반의 우선순위(1010-E)가 포함될 수 있다. 계수들 1 내지 5는 MRR 테이블의 엔트리들에 대한 업데이트된 우선순위들에 도달하기 위해 이들 5개 우선순위 방식들 중 적어도 일부로부터 유도된 우선순위들에 가중치를 부여할 수 있다. 예를 들어, 사용자는 프로그램/소거 사이클 카운트가 MRR 테이블 엔트리들을 우선순위화하는데 있어서 가장 중요한 요소라고 결정할 수 있고, 그에 따라 계수 1은 사이클 카운트 의존 우선순위(1010-A)의 결과를 스케일링할 수 있다. 또한, 사용자는 비트-플립이 가장 덜 중요한 요소라고 결정할 수 있고 그에 따라 계수 4는 비트-플립 기반의 우선순위(1010-D)의 결과를 스케일링할 수 있다.
블록(1010)으로부터 블록(1020)(ECC 실패를 야기한 판독 기준과 연관된 엔트리의 우선순위 강등)으로 진행하면, 우선순위 관리자(112)는 (예를 들어, 정렬 피쳐(218)을 통해) 업데이트된 우선순위를 강등하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, 우선순위들이 5개의 우선순위 방식들 및 연관된 스케일링 계수에 따라 업데이트되었더라도, 판독 기준값 이동은 ECC 실패를 야기했거나 이와 연관된 판독 기준값과 상당히 유사할 수 있다. 이러한 판독 기준값 이동은 승격된 우선순위(예를 들어, 가장 낮은 우선순위보다 높게)를 가질 수 있다. 이 예의 경우, 프로그램/소거 사이클 카운트는, 프로그램 교란(예를 들어, PD 410, 420 또는 430)과 연관된 하나 이상의 MRR 엔트리들이 이용된 후의 판독 기준값과 상당히 유사한 판독 기준값에 대해 프로그램 교란 에러 메커니즘이 ECC 실패를 야기하거나 ECC 실패로 이어질 수 있을 정도로 충분히 높을 수 있다. 상당히 유사하기 때문에, 프로그램 교란 관련 엔트리들이 승격된 업데이트된 우선순위를 할당받더라도, 이들 엔트리들 중 적어도 일부는 더 낮은 또는 가장 낮은 우선순위로 강등되거나 다운그레이드될 수 있다.
도 10a에 도시된 블록(1020)으로부터 도 10b에 도시된 블록(1030)(MRR 테이블 이용)으로 진행하면, SSD 메모리 시스템(100)을 위한 제어기(110)는 엔트리들에 대한 업데이트된 우선순위들을 갖는 MRR 테이블을 이용하도록 준비될 수 있다. 일부 예에서, MRR 테이블에 포함된 엔트리들은, 가장 높은 우선순위를 갖는 엔트리들이 ECC 실패로 이어진 판독 에러로부터 회복하기 위해 먼저 이용되도록 그들 각각의 우선순위에 따라 정렬될 수 있다.
블록(1030)으로부터 결정 블록(1040)(성공?)으로 진행하면, 제어기(110)는 엔트리가 ECC 실패로부터의 회복에 성공적이었는지를 결정하도록 준비될 수 있다. 엔트리가 성공적이었다면 프로세스는 블록(1050)으로 이동한다. 그렇지 않다면, 프로세스는 1060으로 이동한다.
결정 블록(1040)으로부터 블록(1050)(성공적 MRR 엔트리를 점착성화(sticky))으로 이동하면, 우선순위 관리자(112)는, (예를 들어, 할당 피쳐(216) 또는 정렬 피쳐(218)를 통해) 성공적인 MRR 엔트리가 우선순위에 있어서 승격되는 것을 보장하는 로직 및/또는 피쳐를 포함할 수 있다. 일부 예에서, 성공적인 MRR 엔트리의 우선순위를 승격하면, 비휘발성 메모리(130)의 하나 이상의 메모리 셀의 판독 에러로부터 회복하기 위해 다시 한번 MRR 테이블이 이용될 때 그 성공적인 엔트리가 먼저 또는 거의 먼저 이용되게 할 수 있다.
결정 블록(1040)으로부터 결정 블록(1050)(모든 엔트리가 이용됨?)으로 이동하면, 제어기(110)는 MRR 테이블들 내에 포함된 엔트리들 모두가 이용되었는지를 결정하도록 준비될 수 있다. MRR 테이블의 엔트리들 모두가 이용되었다면, 프로세스는 블록(1070)으로 이동한다. 그렇지 않다면, 프로세스는 블록(1030)으로 돌아가고 다음 MRR 테이블 엔트리가 그 순서에 기초하여 차례대로 이용된다.
결정 블록(1060)으로부터 블록(1070)(다른 ECC 회복 방식을 이용하거나 메모리 셀들을 이용불가한 것으로 간주), 제어기(110)는 판독 기준값 이동이 MRR 테이블 내의 모든 엔트리에 대해 실패했다고 결정하도록 준비될 수 있다. 일부 예에서, 제어기(110)는 다른 ECC 회복 방식을 구현하도록 준비되거나 비휘발성 메모리의 하나 이상의 메모리 셀이 이용불가하거나 판독불가한 것으로 간주할 수 있다.
블록(1050) 또는 블록(1070)으로부터 이동하면, 프로세스는 끝에 도달한다.
도 11은 예시적 시스템(1100)을 나타낸다. 도 11에 도시된 바와 같이, 시스템(1100)은, 운영 체제(1110), 애플리케이션(들)(1130), 입력/출력(I/O) 디바이스(들)(1140), 스토리지(1150), 메모리(1160), 중앙 처리 유닛(CPU)(1170), 칩셋(1180), 및 통신부(Comm)(1190)를 포함한다. 일부 예에 따르면, 시스템(1100)의 요소들에 상호접속 및/또는 통신가능하게 결합하기 위한 수 개의 인터페이스들도 역시 도 11에 도시되어 있다. 예를 들어, 사용자 인터페이스(1115) 및 인터페이스(1125)는 사용자(미도시) 및/또는 애플리케이션(들)(1130)이 운영 체제(1110)에 결합하는 것을 허용할 수 있다. 또한, 인터페이스(1135)는 운영 체제(1110)의 요소들(예를 들어, 디바이스 구동기(들)(1112))이, I/O 디바이스(들)(1140), 스토리지(1150), 메모리(1160), CPU(1170), 칩셋(1180) 또는 통신부(1190) 등의 시스템(1100)의 요소들에 통신가능하게 결합하는 것을 허용할 수 있다. 인터페이스(1154)는, 예를 들어, 시스템(1100)의 하드웨어 및/또는 펌웨어 요소들이, 예를 들어 시스템 버스 또는 다른 타입의 내부 통신 채널을 통해 서로 통신가능하게 결합하는 것을 허용할 수 있다.
일부 예에서, 애플리케이션(들)(1130)은 시스템(1100) 상에 구현될 수 있는 애플리케이션들을 포함할 수 있다. 이들 예의 경우, 애플리케이션(들)(1130)은 스토리지(1150) 또는 메모리(1160) 등의 시스템(1100)의 요소들의 액세스나 이용을 요청할 수 있다.
일부 예에 따르면, 도 11에 도시된 바와 같이, 운영 체제(1110)는 디바이스 구동기(들)(1112)을 포함할 수 있다. 디바이스 구동기(들)(1112)은 (예를 들어, 인터페이스(1135)를 통해) 시스템(1100)의 하드웨어/펌웨어 타입 요소들과 상호작용하도록 구성된 로직 및/또는 피쳐를 포함할 수 있다. 예를 들어, 디바이스 구동기(들)(1112)은, 애플리케이션(들)(1130) 또는 운영 체제(1110)에 의해 이루어지는 요청을 이행하기 위해 스토리지(1150) 또는 메모리(1160)를 제어하거나 지시하는 디바이스 구동기들을 포함할 수 있다.
도시되어 있지는 않지만, 시스템(1100)은, 이더넷 인터페이스 및/또는 USB(Universal Serial Bus) 인터페이스 등의 다양한 인터페이스 회로들을 포함할 수 있다. 일부 예에서, I/O 디바이스(들)(1140)은 시스템(1100)의 요소들에 구현되는 데이터 및 명령어를 입력하기 위한 인터페이스 회로에 접속된 하나 이상의 입력 디바이스를 포함할 수 있다. 예를 들어, 입력 디바이스는, 키보드, 마우스, 터치 스크린, 트랙 패드, 트랙 볼, 아이소포인트(isopoint), 음성 인식 시스템 등을 포함할 수 있다. 유사하게, I/O 디바이스(들)(1140)는, 오퍼레이터에게 정보를 출력하기 위한 인터페이스 회로에 접속된 하나 이상의 출력 디바이스들을 포함할 수 있다. 예를 들어, 출력 디바이스는, 원한다면, 하나 이상의 디스플레이, 프린터, 스피커, 및/또는 기타의 출력 디바이스를 포함할 수 있다. 예를 들어, 출력 디바이스들 중 하나는 디스플레이일 수 있다. 디스플레이는, CRT(cathode ray tube), LCD(liquid crystal display), 또는 기타 임의 타입의 디스플레이일 수 있다.
일부 예에서, 스토리지(1150)는, 스토리지 동작 모드에서 구현되거나 동작하도록 구성된 다양한 타입의 메모리를 포함할 수 있다. 스토리지(1150)는, 비교적 많은 양의 데이터를 저장하기 위해 적어도 하나의 또는 상이한 타입들의 스토리지 디바이스들의 조합을 포함할 수 있다. 이들 상이한 타입의 스토리지 디바이스들은, 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브, 내부 스토리지 디바이스, 부착된 스토리지 디바이스, 플래시 메모리, 배터리 백업형 SDRAM(동기 DRAM), 네트워크 액세스가능한 스토리지 디바이스, 및/또는 다른 타입의 비휘발성 메모리(예를 들어, 상변화 물질(PCM)) 중 하나 이상을 포함할 수 있지만, 이것으로 제한되지 않는다.
도 11에 도시된 바와 같이, 스토리지(1150)는 또한, 스토리지(1150)에 유지되는 메모리에 대한 제어 또는 액세스를 가능케하는 제어기(1152)를 포함한다. 일부 예에서, 제어기(1152)는 앞서 설명된 우선순위 관리자(112)와 유사한 우선순위 관리자를 포함할 수 있다. 이들 예의 경우, 스토리지(1150)에 포함된 메모리 타입들 중 적어도 일부는, NAND 메모리, PCM, PCMS, 나노와이어 메모리 또는 FeTRAM을 포함할 수 있지만 이것으로 제한되지 않는 비휘발성 메모리를 포함할 수 있다. 제어기(1152)에 포함된 우선순위 관리자는 비휘발성 메모리의 메모리 셀들의 판독 에러로부터 회복하는데 이용될 MRR 테이블을 제공/업데이트할 수 있다. 다른 예에서, 칩셋(1180)은 스토리지(1150)에 대한 제어 또는 액세스를 가능케하는 제어기를 포함할 수 있고 우선순위 관리자는 그 제어기 내에 포함될 수 있다.
일부 예에 따르면, 메모리(1160)는, 메모리 동작 모드에서 구현되거나 동작하도록 구성된 메모리 타입들을 포함할 수 있다. 메모리 동작 모드에서, 메모리(1160)는 시스템(1100)의 다양한 요소들에 의해 (예를 들어, 오프-칩 메모리로서) 이용될 수 있다. 이들 구현의 경우, 메모리(1160)는, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 RAM(SRAM), 상변화 물질 RAM(PRAM)을 포함하는 적어도 하나 또는 상이한 타입들의 메모리들의 조합, 또는 NOR 메모리를 포함하는 비휘발성 메모리의 타입들을 포함할 수 있다.
일부 예에 따르면, CPU(1170)는 시스템(1100)의 중앙 처리 유닛으로서 구현될 수 있다. CPU(1170)는, 하나 이상의 프로세서 코어를 갖거나 임의 개수의 프로세서 코어를 갖춘 임의 개수의 프로세서들을 갖는 하나 이상의 처리 유닛 또는 요소를 포함할 수 있다. CPU(1170)는, 예를 들어, 멀티-프로세싱 유닛, RISC(reduced instruction set computer), 파이프라인을 갖는 프로세서, CISC(complex instruction set computer), DSP 등의 임의의 타입의 처리 유닛을 포함할 수 있다.
일부 예에서, 칩셋(1180)은, 운영 체제(1110), I/O 디바이스(들)(1140), 스토리지(1150), 메모리(1160), CPU(1170), 또는 통신부(1190)들 사이에 상호통신을 제공할 수 있다. 예를 들어, 칩셋(1180)은, 스토리지(1150)로부터 정보를 회수하여 운영 체제(1110)의 요청시에 CPU(1170)에 의해 렌더링된 I/O 디바이스(들)(1140)에 포함된 디스플레이 상에 그래픽을 표시하기 위해, 운영 체제(1110), I/O 디바이스(들)(1140), 스토리지(1150), 및 CPU(1170) 사이에 상호통신을 제공할 수 있다.
일부 예에서, 통신부(1190)는 시스템(1100)이 시스템(1100)에 대해 원격인 요소들과 외부적으로 통신하는 것을 가능케하는 로직 및/또는 피쳐를 포함할 수 있다. 이들 로직 및/또는 피쳐는, 유선 및/또는 무선 통신 채널을 통해 또는 하나 이상의 유선 또는 무선 네트워크를 이용한 접속을 통해 통신하는 것을 포함할 수 있다. 이러한 네트워크를 통한 통신에서, 통신부(1190)는 임의 버전의 하나 이상의 적용가능한 통신 또는 네트워킹 표준에 따라 동작할 수 있다.
앞서 언급된 바와 같이, 인터페이스(1154)는 시스템(1100)의 하드웨어 및/또는 펌웨어 요소들이 함께 통신가능하게 결합하는 것을 허용할 수 있다. 일부 예에 따르면, 통신 채널 인터페이스(1154)는 하나 이상의 프로토콜 또는 표준에 따라 동작할 수 있다. 이들 프로토콜 또는 표준들은, ONFi(Open NAND Flash Interface) 규격, I2C(Inter-Integrated Circuit) 규격, SMBus(System Management Bus) 규격, AGP(Accelerated Graphics Port) 규격, PCI Express(Peripheral Component Interconnect Express) 규격, USB(Universal Serial Bu) 규격, 또는 SATA(Serial Advanced Technology Attachment) 규격 등의 하나 또는 하나 이상의 산업 표준(후속판 및 변종 포함)에서 기술될 수 있다. 그렇지만 본 개시는 상기 언급된 표준 및 연관된 프로토콜들만으로 제한되지 않는다.
일부 예에서, 시스템(1100)은 컴퓨팅 디바이스에 포함될 수 있다. 컴퓨팅 디바이스의 예로서는, 서버, 데스크탑 컴퓨터, 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-모바일 컴퓨터, 태블릿, 터치 패드, 포터블 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화, 조합 셀룰러 전화/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스 등이 포함될 수 있다.
적어도 한 예의 하나 이상의 양태들은, 프로세서 내의 다양한 로직을 나타내는 머신-판독가능한 매체에 저장되고 머신에 의해 판독될 때 머신으로 하여금 여기서 설명된 기술을 수행하는 로직을 제작하게 하는 상징적 명령어들에 의해 구현될 수도 있다. "IP 코어"라고 알려진 이러한 표현들은, 유형의 머신 판독가능한 매체에 저장될 수 있으며, 로직이나 프로세서를 실제로 만드는 제조 머신 내에 로딩하기 위해 다양한 고객이나 제조 설비에 공급될 수도 있다.
다양한 예들은, 하드웨어 요소, 소프트웨어 요소, 또는 이들의 조합을 이용하여 구현될 수 있다. 일부 예에서, 하드웨어 요소들로는, 디바이스, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 회로 요소(예를 들어, 트랜지스터, 저항, 커패시터, 인덕터 등), 집적 회로, 주문형 집적 회로(ASIC), 프로그래머블 로직 디바이스(PLD), 디지털 신호 처리기(DSP), 필드 프로그래머블 게이트 어레이(FPGA), 메모리 유닛, 로직 게이트, 저항, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등이 포함될 수 있다. 일부 예에서, 소프트웨어 요소들로는, 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수(function), 메소드(method), 프로시져, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 이들의 임의의 조합이 포함될 수 있다. 예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 이용하여 구현되는지를 결정하는 것은, 주어진 구현에 대해 원한다면, 희망 계산 속도, 전력 레벨, 내열성, 처리 사이클 버짓(processing cycle budget), 입력 데이터 레이트, 출력 데이트 레이트, 메모리 자원, 데이터 버스 속도 및 기타의 설계 또는 성능 제약 등의 임의 개수의 인자들에 따라 달라질 수 있다.
일부 예는 제조품을 포함할 수 있다. 제조품은 로직을 저장하는 비일시적 스토리지 매체를 포함할 수 있다. 일부 예에서, 비일시적 스토리지 매체로서는, 휘발성 메모리 또는 비휘발성 메모리, 착탈식 또는 비착탈식 메모리, 소거가능하거나 소거불가능한 메모리, 기록가능하거나 재기록가능한 메모리 등을 포함한, 전자적 데이터를 저장할 수 있는 하나 이상의 타입의 컴퓨터-판독가능한 저장 매체가 포함될 수 있다. 일부 예에서, 로직으로서는, 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수(function), 메소드(method), 프로시져, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 이들의 임의의 조합 등의 다양한 소프트웨어 요소들이 포함될 수 있다.
일부 예에 따르면, 제조품으로서는, 컴퓨터 또는 시스템에 의해 실행될 때, 컴퓨터 또는 시스템으로 하여금 전술된 예에 따른 방법 및/또는 동작을 수행하게 하는 명령어를 저장하거나 유지하는 비일시적 스토리지 매체가 포함될 수 있다. 명령어로서는, 소스 코드, 컴파일형 코드, 인터프리팅형 코드, 실행가능한 코드, 정적 코드, 동적 코드 등의 임의의 적절한 타입의 코드가 포함될 수 있다. 명령어는, 예를 들어, 컴퓨터에게 소정의 기능을 수행하게 명령하는 미리정의된 컴퓨터 언어, 방식 또는 신택스에 따라 구현될 수 있다. 명령어는, 임의의 적절한 하이-레벨, 로우-레벨, 객체지향형, 비주얼, 컴파일형 및/또는 인터프리팅형 프로그래밍 언어를 이용하여 구현될 수 있다.
일부 예들은 "한 예에서" 또는 "예"라는 표현과 함께 그들의 파생어들을 이용하여 설명될 수 있다. 이들 용어들은, 그 예와 연계하여 설명되는 특정한 피쳐, 구조, 또는 특성이 적어도 한 예에 포함된다는 것을 의미한다. 명세서의 다양한 곳에서의 "한 예에서"라는 문구의 등장은 반드시 모두가 동일한 예를 지칭하는 것은 아니다.
일부 예들은 "결합된" 및 "접속된"이라는 표현과 함께 그들의 파생어들을 이용하여 설명될 수 있다. 이들 용어들은 반드시 서로에 대한 동의어로서 의도하는 것은 아니다. 예를 들어, "접속된" 및/또는 "결합된"이란 용어를 사용한 설명은 2개 이상의 요소들이 서로 직접 물리적 또는 전기적으로 접촉한다는 것을 나타낼 수 있다. 그러나, 용어 "결합된"은 또한, 2개 이상의 요소가 서로 직접 접촉하지 않지만, 여전히 서로 협력하거나 상호작용한다는 것을 의미할 수도 있다.
본 개시의 요약서는, 독자가 기술 개시의 성질을 신속하게 확인하는 것을 허용하는 요약서를 요구하는 37 C.F.R. 섹션 1.72(b)에 따라 제공된다. 요약서는 청구항들의 범위나 의미를 해석하거나 제한하기 위해 이용되지 않아야 한다는 것을 이해해야 한다. 또한, 상기 상세한 설명에서, 다양한 피쳐들은 본 개시의 능률화의 목적을 위해 하나의 예에서 함께 그룹화되어 있다는 것을 알 수 있다. 본 개시의 이러한 방법은, 청구된 예들이 각 청구항에서 명시적으로 기재되어 있는 것 보다 많은 피쳐들을 요구한다는 의도를 반영하는 것으로서 해석되어서는 안 된다. 오히려, 이하의 청구항들이 반영하는 바와 같이, 본 발명의 청구 대상은 하나의 개시된 예의 모든 피쳐들보다 적다. 따라서, 이하의 청구항들은 상세한 설명 내에 병합되는 것이며, 각 청구항은 그 자체로 별개의 예를 나타낸다. 첨부된 청구항에서, 용어 "~을 내포하는(including)" 및 "여기에서(in which)"는 각각의 용어 "~을 포함하는(comprising)" 및 "여기서(wherein)"의 평-영문 등가 표현으로서 각각 사용된다. 게다가, 용어 "제1", "제2", "제3" 등등은 단지 라벨(label)로서 사용될 뿐이고, 그들의 대상들에 수치적 요건을 부과하고자하는 것은 아니다.
일부 예에서, 스토리지 디바이스에 포함된 비휘발성 메모리의 하나 이상의 메모리 셀의 판독 에러로부터 회복하기 위한 MRR 테이블을 제공하는 것을 포함하는 방법들이 구현될 수 있다. MRR 테이블은, 각각이 하나 이상의 판독 기준값 이동을 나타내는 복수의 엔트리를 포함할 수 있다. 별개의 우선순위가 역시 MRR 테이블의 각각의 엔트리에 할당될 수 있고 엔트리들은 할당된 우선순위에 기초하여 정렬되되, MRR 테이블이 하나 이상의 메모리 셀의 판독 에러로부터의 회복을 위해 이용될 때 가장 높은 할당된 우선순위를 갖는 엔트리가 먼저 이용되도록 정렬된다.
일부 예에 따르면, 이 방법의 구현은, 하나 이상의 메모리 셀에 대한 프로그램/소거 사이클의 카운트에 이어 제공 중에 있는 MRR 테이블의 복수의 엔트리들에 대한 하나 이상의 할당된 우선순위를 업데이트하는 단계를 포함할 수 있다.
일부 예에서, 이 방법의 구현은, 고체 상태 드라이브를 포함하는 스토리지 디바이스와 NAND 플래시 메모리로서 배열된 비휘발성 메모리의 하나 이상의 메모리 셀을 포함할 수 있다.
일부 예에 따르면, 이 방법의 구현은, 하나 이상의 메모리 셀에 대한 프로그램/소거 사이클의 카운트와 연관된 프로그램 교란에 기초하여 MRR 테이블의 각각의 엔트리에 별개의 우선순위를 할당하는 단계를 포함할 수 있다. MRR 테이블에 포함된 복수의 엔트리들 중 하나 이상은 제2 카운트와 연관된 제2 프로그램 교란에 비해 제1 카운트와 연관된 제1 프로그램 교란에 대해 더 높은 우선순위를 가질 수 있다. 제1 카운트는 제2 카운트보다 적은 프로그램/소거 사이클을 포함할 수 있다. 이들 예의 경우, MRR 테이블에 포함된 복수의 엔트리들 중 하나 이상은 제2 카운트보다 많은 프로그램/소거 사이클을 포함하는 제3 카운트와 연관된 제3 프로그램 교란에 비해 제1 카운트와 연관된 제1 프로그램 교란에 대해 더 낮은 우선순위를 가질 수 있다. 또한, 하나 이상의 메모리 셀에 대한 프로그램/소거 사이클이 제1 카운트, 제2 카운트 또는 제3 카운트 중 하나를 초과한 후에, 업데이트된 우선순위가 MRR 테이블의 복수의 엔트리들에 할당될 수 있다.
일부 예에서, 이 방법의 구현은 MRR 테이블의 정렬된 엔트리들을 스토리지 디바이스에 포함된 제2 비휘발성 메모리에 대한 제2 MRR 테이블과 비교하는 단계를 포함할 수 있다. 그 다음, 업데이트된 우선순위들이 제2 MRR 테이블과의 비교에 기초하여 MRR 테이블의 복수의 엔트리들에 할당될 수 있다.
일부 예에 따르면, 이 방법의 구현은, 비휘발성 메모리에 포함된 하나 이상의 메모리 셀의 주어진 판독 에러로부터의 회복을 시도할 때 이용되는 MRR 테이블 엔트리들과 연관된 정보를 수집하는 단계를 포함할 수 있다. 그 다음, 업데이트된 우선순위들이 수집된 정보에 기초하여 MRR 테이블의 복수의 엔트리들에 할당될 수 있다. 이들 예의 경우, 가장 낮은 우선순위들이, 이용시 주어진 판독 에러로부터의 회복을 가능케하지 못한 MRR 테이블의 엔트리에 할당될 수 있다.
일부 예에서, 이 방법의 구현은, 복수의 엔트리들 중 제1 엔트리를 비휘발성 메모리에 대한 부분적 블록 프로그램된 페이지로부터의 회복과 연관시키는 단계를 포함할 수 있다. 별개의 우선순위를 MRR 테이블의 각각의 엔트리에 할당하는 단계는, 하나 이상의 메모리 셀의 주어진 판독 에러가 비휘발성 메모리에 대한 제1 부분적 블록 프로그램된 페이지에 관련되었다는 결정에 기초하여 상기 제1 엔트리에 가장 높은 우선순위를 할당하는 단계를 포함할 수 있다.
일부 예에 따르면, 이 방법의 구현은 하나 이상의 메모리 셀에 대한 고유 전하 손실 또는 하나 이상의 메모리 셀에 대한 프로그램 교란 중 하나로 인해 하나 이상의 메모리 셀에서 하나 이상의 비트-플립을 야기할 것으로 예상되는 판독 기준값 이동과 제1 엔트리를 연관시키는 단계를 포함할 수 있다. 가장 높은 우선순위가 상기 제1 엔트리에 할당될 수 있다. 이들 예의 경우, 하나 이상의 비트-플립을 야기할 것으로 예상되는 판독 기준값 이동과 상기 제1 엔트리를 연관시키는 단계는, 하나 이상의 메모리 셀의 하나 이상의 이전의 판독 에러로부터의 회복이 하나 이상의 메모리 셀의 주어진 판독 에러로부터 회복하기 위해 MRR 테이블 내의 상기 제1 엔트리에 대한 판독 기준값 이동이 이용되었을 때 발생한 하나 이상의 비트-플립을 표시했는지를 결정하는 단계를 포함할 수 있다.
일부 예에서, 이 방법의 구현은, 복수의 엔트리들 중 제1 엔트리를 하나 이상의 메모리 셀에 대한 고유 전하 손실과 연관된 주어진 판독 에러로부터의 회복과 연관시키는 단계를 포함할 수 있다. 비휘발성 메모리의 하나 이상의 메모리 셀이 전력을 수신한 시간의 양의 결정이 이루어질 수 있다. 상기 제1 엔트리는 시간의 양이 임계 시간값을 초과하는 것에 기초하여 가장 높은 우선순위를 할당받을 수 있다.
일부 예에 따르면, 적어도 하나의 판독가능한 매체는 컴퓨팅 디바이스에서 실행되는 것에 응답하여 컴퓨터 디바이스로 하여금 상기 언급된 예시적 방법을 실행하게 하는 복수의 명령어를 포함한다.
일부 예에서 장치(apparatus) 또는 디바이스(device)는 상기 언급된 예시적 방법을 수행하기 위한 수단을 포함할 수 있다.
일부 예에 따르면, 예시적 장치 또는 디바이스는 프로세서 회로와 이 프로세서 회로에 통신가능하게 결합된 메모리 유닛을 포함할 수 있다. 메모리 유닛은 프로세서 회로 상에서 동작하는 로직을 위한 명령어를 저장하도록 준비될 수 있다. 이 로직은, 스토리지 디바이스에 포함된 비휘발성 메모리의 하나 이상의 메모리 셀의 판독 에러로부터 회복하기 위한 판독 기준 이동(MRR) 테이블을 제공하도록 구성될 수 있다. MRR 테이블은, 각각이 하나 이상의 판독 기준값 이동을 나타내는 복수의 엔트리를 포함하도록 준비될 수 있다. 이 로직은 또한, MRR 테이블의 각각의 엔트리에 별개의 우선순위를 할당하고 엔트리들을 할당된 우선순위에 기초하여 정렬하되, MRR 테이블이 하나 이상의 메모리 셀의 판독 에러로부터의 회복을 위해 이용될 때 가장 높은 할당된 우선순위를 갖는 제1 엔트리가 먼저 이용되게끔 정렬하도록 구성될 수 있다.
예시적 디바이스에 대한 일부 예에서, 비휘발성 메모리의 하나 이상의 메모리 셀은 NAND 플래시 메모리로서 배열될 수 있고, 스토리지 디바이스는 고체 상태 드라이브를 포함할 수 있다.
예시적 디바이스에 대한 일부 예에 따르면, 이 로직은 또한, 하나 이상의 메모리 셀에 대한 프로그램/소거 사이클의 카운트와 연관된 프로그램 교란에 기초하여 MRR 테이블의 각각의 엔트리에 별개의 우선순위를 할당하도록 구성될 수 있다. MRR 테이블에 포함된 복수의 엔트리들 중 하나 이상은 제2 카운트와 연관된 제2 프로그램 교란에 비해 제1 카운트와 연관된 제1 프로그램 교란에 대해 더 높은 우선순위를 가질 수 있다. 제1 카운트는 제2 카운트보다 적은 프로그램/소거 사이클을 포함할 수 있다. 이 예시적 디바이스의 경우, 이 로직은 또한, 하나 이상의 메모리 셀에 대한 프로그램/소거 사이클이 제1 카운트 또는 제2 카운트 중 하나를 초과한 후에 MRR 테이블의 복수의 엔트리들에 업데이트된 우선순위를 할당하도록 구성될 수 있다.
예시적 디바이스에 대한 일부 예에서, 이 로직은 또한, MRR 테이블의 정렬된 엔트리들을 스토리지 디바이스에 포함된 제2 비휘발성 메모리에 대한 제2 MRR 테이블과 비교하고 제2 MRR 테이블과의 비교에 기초하여 MRR 테이블의 복수의 엔트리들에 업데이트된 우선순위들을 할당하도록 구성될 수 있다.
예시적 디바이스에 대한 일부 예에 따르면, 이 로직은 또한, 비휘발성 메모리에 포함된 하나 이상의 메모리 셀의 주어진 판독 에러로부터의 회복을 시도할 때 이용되는 각각의 엔트리와 연관된 정보를 수집하고 수집된 정보에 기초하여 MRR 테이블의 복수의 엔트리들에 업데이트된 우선순위를 할당하도록 구성될 수 있다.
예시적 디바이스에 대한 일부 예에서, 이 로직은 또한, 복수의 엔트리들 중 제1 엔트리를 비휘발성 메모리에 대한 부분적 블록 프로그램된 페이지로부터의 회복과 연관시키도록 구성될 수 있다. 이 로직은, 하나 이상의 메모리 셀의 주어진 판독 에러가 비휘발성 메모리에 대한 제1 부분적 블록 프로그램된 페이지에 관련되었다는 결정에 기초하여 상기 제1 엔트리에 가장 높은 우선순위를 할당함으로써, 별개의 우선순위를 MRR 테이블의 각각의 엔트리에 할당할 수 있다.
예시적 디바이스에 대한 일부 예에 따르면, 이 로직은 또한, 하나 이상의 메모리 셀에 대한 고유 전하 손실 또는 하나 이상의 메모리 셀에 대한 프로그램 교란 중 하나로 인해 하나 이상의 메모리 셀에서 비트-플립을 야기하는 판독 기준값 이동과 제1 엔트리를 연관시키도록 구성될 수 있다. 이 로직은 상기 제1 엔트리에 가장 높은 우선순위를 할당할 수 있다.
예시적 디바이스에 대한 일부 예에 따르면, 이 로직은 또한, 복수의 엔트리들 중 제1 엔트리를 하나 이상의 메모리 셀에 대한 고유 전하 손실과 연관된 주어진 판독 에러로부터의 회복과 연관시키도록 구성될 수 있다. 이 로직은 또한, 비휘발성 메모리의 하나 이상의 메모리 셀이 전력을 수신한 시간의 양을 결정하도록 구성될 수 있고 시간량이 임계 시간값을 초과하는 것에 기초하여 가장 높은 우선순위를 상기 제1 엔트리에 할당할 수 있다.
예시적 디바이스에 대한 일부 예에서, 디스플레이는 프로세서 회로에 결합되어 사용자에게 인터페이스 뷰를 제공할 수 있다.
구조적 피쳐 및/또는 방법론적 작용에 특유한 언어로 주제가 설명되었지만, 첨부된 청구항에 정의된 주제는 반드시 전술된 특정한 피쳐나 작용으로 제한되는 것은 아니다. 오히려, 전술된 특정한 피쳐 및 작용은 청구항을 구현하는 예시적 형태로서 개시된 것이다.

Claims (1)

  1. 방법.
KR1020167013401A 2012-03-29 2012-03-29 메모리 셀을 위한 적응적 판독 기준 이동 KR20160062214A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/031261 WO2013147803A1 (en) 2012-03-29 2012-03-29 Adaptive moving read references for memory cells

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147026662A Division KR101625000B1 (ko) 2012-03-29 2012-03-29 메모리 셀을 위한 적응적 판독 기준 이동

Publications (1)

Publication Number Publication Date
KR20160062214A true KR20160062214A (ko) 2016-06-01

Family

ID=49260865

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167013401A KR20160062214A (ko) 2012-03-29 2012-03-29 메모리 셀을 위한 적응적 판독 기준 이동
KR1020147026662A KR101625000B1 (ko) 2012-03-29 2012-03-29 메모리 셀을 위한 적응적 판독 기준 이동

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020147026662A KR101625000B1 (ko) 2012-03-29 2012-03-29 메모리 셀을 위한 적응적 판독 기준 이동

Country Status (3)

Country Link
US (1) US9268631B2 (ko)
KR (2) KR20160062214A (ko)
WO (1) WO2013147803A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102215741B1 (ko) 2014-06-23 2021-02-17 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US10505860B1 (en) * 2017-05-30 2019-12-10 Xilinx, Inc. System and method for round robin scheduling
US10789124B2 (en) 2018-09-28 2020-09-29 Intel Corporation Techniques to a set voltage level for a data access
KR102150434B1 (ko) * 2018-11-08 2020-09-01 한양대학교 산학협력단 Ots에서 발생되는 전압 드리프트를 개선하기 위한 상변화 메모리 소자 및 상기 상변화 메모리 소자의 센싱 기준값 결정 방법
US11011223B2 (en) * 2019-08-27 2021-05-18 Micron Technology, Inc. Memory sub-system grading and allocation
US10957407B1 (en) * 2019-10-30 2021-03-23 International Business Machines Corporation Calculating corrective read voltage offsets in non-volatile random access memory
KR20220056919A (ko) 2020-10-28 2022-05-09 삼성전자주식회사 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0463874A2 (en) 1990-06-29 1992-01-02 Digital Equipment Corporation Cache arrangement for file system in digital data processing system
US6992932B2 (en) * 2002-10-29 2006-01-31 Saifun Semiconductors Ltd Method circuit and system for read error detection in a non-volatile memory array
US6963505B2 (en) * 2002-10-29 2005-11-08 Aifun Semiconductors Ltd. Method circuit and system for determining a reference voltage
KR100562906B1 (ko) 2003-10-08 2006-03-21 삼성전자주식회사 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩
US7954037B2 (en) * 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US8291297B2 (en) * 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory
US8077515B2 (en) * 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
US8356137B2 (en) * 2010-02-26 2013-01-15 Apple Inc. Data storage scheme for non-volatile memories based on data priority
US8370719B2 (en) * 2010-05-21 2013-02-05 Intel Corporation Persistent moving read reference
US8422303B2 (en) * 2010-12-22 2013-04-16 HGST Netherlands B.V. Early degradation detection in flash memory using test cells
US9208022B2 (en) * 2012-03-29 2015-12-08 Intel Corporation Techniques for adaptive moving read references for memory cell read error recovery

Also Published As

Publication number Publication date
US9268631B2 (en) 2016-02-23
US20140164863A1 (en) 2014-06-12
KR20140127355A (ko) 2014-11-03
WO2013147803A1 (en) 2013-10-03
KR101625000B1 (ko) 2016-05-27

Similar Documents

Publication Publication Date Title
US9208022B2 (en) Techniques for adaptive moving read references for memory cell read error recovery
KR101625000B1 (ko) 메모리 셀을 위한 적응적 판독 기준 이동
US9442662B2 (en) Device and method for managing die groups
US9753653B2 (en) High-priority NAND operations management
KR102108839B1 (ko) 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
US20190171381A1 (en) Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded
KR102533072B1 (ko) 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법
US20170242625A1 (en) Apparatus for ssd performance and endurance improvement
US20160342344A1 (en) Variable Bit Encoding Per NAND Flash Cell to Extend Life of Flash-Based Storage Devices and Preserve Over-Provisioning
US10254981B2 (en) Adaptive health grading for a non-volatile memory
WO2015097956A1 (en) Extending useful life of a non-volatile memory by health grading
US10126970B2 (en) Paired metablocks in non-volatile storage device
CN106469126B (zh) 处理io请求的方法及其存储控制器
CN113342705A (zh) 在存储器系统中执行垃圾收集的设备和方法
US10620874B2 (en) Memory management method, memory control circuit unit and memory storage apparatus
US10254979B1 (en) Relocating or aborting a block of data by a host, based on media policies managed by a storage device
KR20120109903A (ko) 불휘발성 메모리의 제어 방법 및 그것을 포함하는 메모리 시스템
CN113924546A (zh) 非易失性存储器中的磨损感知块模式转换
CN113076218B (zh) Nvm芯片读数据错误快速处理方法及其控制器
US9236148B2 (en) Memory management method, memory control circuit unit and memory storage apparatus
US11698754B2 (en) Coalescing read commands by location from a host queue
US11204841B2 (en) Meta data protection against unexpected power loss in a memory system
CN111477260B (zh) 存储设备、存储器控制器和实现平衡块损耗均衡的方法
US10891239B2 (en) Method and system for operating NAND flash physical space to extend memory capacity
US11221946B2 (en) Data arrangement method, memory storage device and memory control circuit unit

Legal Events

Date Code Title Description
A107 Divisional application of patent
WITN Withdrawal due to no request for examination