KR20210004936A - 호스트 io 동작에 기초하는 판독 전압 교정 - Google Patents
호스트 io 동작에 기초하는 판독 전압 교정 Download PDFInfo
- Publication number
- KR20210004936A KR20210004936A KR1020207009015A KR20207009015A KR20210004936A KR 20210004936 A KR20210004936 A KR 20210004936A KR 1020207009015 A KR1020207009015 A KR 1020207009015A KR 20207009015 A KR20207009015 A KR 20207009015A KR 20210004936 A KR20210004936 A KR 20210004936A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- read
- memory
- level calibration
- memory array
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/46—Test trigger logic
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2254—Calibration
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/20—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
Abstract
호스트 IO 동작에 기초한 플래시 기반의 스토리지 시스템의 판독 전압 캘리브레이션을 위한 디바이스 및 기술이 개시된다. 일례에서, 메모리 디바이스는 메모리 셀의 다수의 블록의 그룹을 구비하는 NAND 메모리 어레이, 및 메모리 어레이의 판독을 위한 전압 캘리브레이션을 최적화하기 위한 메모리 컨트롤러를 포함한다. 일례에서, 최적화 기술은, 각각의 블록에 대해 발생하는 판독 동작을 모니터링하는 것, 판독 동작에 기초하여 판독 레벨 캘리브레이션을 트리거하기 위한 조건을 식별하는 것, 각각의 블록 또는 각각의 블록을 포함하는 메모리 컴포넌트에 대한 판독 레벨 캘리브레이션을 수행하는 것을 포함한다. 또 다른 예에서, 캘리브레이션은 각각의 블록을 판독하기 위한 임계 전압에 기초하여 수행되는데, 이것은 각각의 블록을 판독하기 위한 임계 전압이 판독 레벨 캘리브레이션에 의해 수행되는 샘플링 동작 내에서 평가될 때 고려될 수도 있다.
Description
본 출원은 2017년 8월 29일자로 출원된 미국 출원 일련 번호 제15/689,747호에 대한 우선권의 이익을 주장하는데, 상기 기초 출원은 참조에 의해 그 전체가 본 명세서에 원용된다.
메모리 디바이스는 컴퓨터 또는 다른 전자 디바이스에서 내부 반도체 집적 회로로서 통상적으로 제공된다. 휘발성 및 불휘발성 메모리를 비롯한, 많은 상이한 타입의 메모리가 존재한다.
휘발성 메모리는 자신의 데이터를 유지하기 위해 전력을 필요로 하며, 다른 것들 중에서도, 랜덤 액세스 메모리(random-access memory: RAM), 동적 랜덤 액세스 메모리(dynamic random-access memory: DRAM), 또는 동기식 동적 랜덤 액세스 메모리(synchronous dynamic random-access memory: SDRAM)를 포함한다.
불휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지할 수 있으며, 다른 것들 중에서도, 플래시 메모리, 판독 전용 메모리(read-only memory: ROM), 전기적으로 소거 가능한 프로그래밍 가능한 ROM(electrically erasable programmable ROM: EEPROM), 정적 RAM(static RAM: SRAM), 소거 가능한 프로그래밍 가능한 ROM(erasable programmable ROM: EPROM), 저항 가변 메모리, 예컨대 상변화 랜덤 액세스 메모리(phase-change random-access memory: PCRAM), 저항성 랜덤 액세스 메모리(resistive random-access memory: RRAM), 자기 저항 랜덤 액세스 메모리(magnetoresistive random-access memory: MRAM), 또는 3D XPoint™ 메모리를 포함한다.
플래시 메모리는 광범위한 전자적 애플리케이션을 위한 불휘발성 메모리로서 활용된다. 플래시 메모리 디바이스는, 높은 메모리 밀도, 높은 신뢰성, 및 낮은 전력 소비를 허용하는 1 트랜지스터 플로팅 게이트 또는 전하 트랩 메모리 셀(one-transistor, floating gate or charge trap memory cell)의 하나 이상의 그룹을 통상적으로 포함한다.
두 개의 일반적인 타입의 플래시 메모리 어레이 아키텍처는, 각각의 기본 메모리 셀 구성이 배열되는 로직 형태에 따라 명명되는 NAND 및 NOR 아키텍처를 포함한다. 메모리 어레이의 메모리 셀은 통상적으로 매트릭스로 배열된다. 일례에서, 어레이의 행(row)에서의 각각의 플로팅 게이트 메모리 셀의 게이트는 액세스 라인(예를 들면, 워드 라인)에 커플링된다. NOR 아키텍처에서, 어레이의 열(column)에서의 각각의 메모리 셀의 드레인은 데이터 라인(예를 들면, 비트 라인)에 커플링된다. NAND 아키텍처에서, 어레이의 스트링(string)에서의 각각의 메모리 셀의 드레인은 소스 라인과 비트 라인 사이에서, 소스에서 드레인으로, 직렬로 함께 커플링된다.
NOR 및 NAND 아키텍처 반도체 메모리 어레이 둘 모두는, 그들의 게이트에 커플링되는 워드 라인을 선택하는 것에 의해 특정한 메모리 셀을 활성화시키는 디코더를 통해 액세스된다. NOR 아키텍처 반도체 메모리 어레이에서, 일단 활성화되면, 선택된 메모리 셀은 그들의 데이터 값을 비트 라인 상에 배치하고, 특정한 셀이 프로그래밍되는 상태에 따라 상이한 전류로 하여금 흐르게 한다. NAND 아키텍처 반도체 메모리 어레이에서, 드레인측 선택 게이트(drain-side select gate: SGD) 라인에 높은 바이어스 전압이 인가된다. 각각의 그룹의 선택되지 않은 메모리 셀의 게이트에 커플링되는 워드 라인은, 명시된 패스 전압(pass voltage)(예를 들면, Vpass)에서 구동되어 각각의 그룹의 선택되지 않은 메모리 셀을 패스 트랜지스터로서 동작시킨다(예를 들면, 그들의 저장된 데이터 값에 의해 제한되지 않는 방식으로 전류를 통과시킨다). 그 다음, 각각의 그룹의 선택된 메모리 셀에 의해서만 제한되는 전류가 각각의 직렬 커플링된 그룹을 통해 소스 라인으로부터 비트 라인으로 흘러, 선택된 메모리 셀의 현재 인코딩된 데이터 값을 비트 라인에 배치한다.
NOR 또는 NAND 아키텍처 반도체 메모리 어레이 내의 각각의 플래시 메모리 셀은, 개별적으로 또는 집합적으로, 하나의 또는 다수의 프로그래밍된 상태로 프로그래밍될 수 있다. 예를 들면, 단일 레벨 셀(single-level cell: SLC)은 1 비트의 데이터를 나타내는 두 개의 프로그래밍된 상태(예를 들면, 1 또는 0) 중 하나를 나타낼 수 있다.
그러나, 플래시 메모리 셀은 또한 두 개보다 더 많은 프로그래밍된 상태 중 하나를 나타낼 수 있는데, 각각의 셀이 하나보다 더 많은 이진수(예를 들면, 하나보다 더 많은 비트)를 나타낼 수 있기 때문에, 메모리 셀의 수를 증가시키지 않고도 더 높은 밀도의 메모리의 제조를 허용하게 된다. 그러한 셀은 다중 상태 메모리 셀, 다중 디지트 셀(multi-digit cell), 또는 다중 레벨 셀(multi-level cell: MLC)로서 지칭될 수 있다. 소정의 예에서, MLC는, 셀당 2 비트의 데이터(예를 들면, 네 개의 프로그래밍된 상태 중 하나)를 저장할 수 있는 메모리 셀을 지칭할 수 있고, 삼중 레벨 셀(triple-level cell: TLC)은 셀당 3 비트의 데이터(예를 들면, 여덟 개의 프로그래밍된 상태 중 하나)를 저장할 수 있는 메모리 셀을 지칭할 수 있고, 사중 레벨 셀(quad-level cell: QLC)은 셀당 4 비트의 데이터를 저장할 수 있다. MLC는, 셀당 하나보다 더 많은 비트의 데이터를 저장할 수 있는(즉, 두 개보다 더 많은 프로그래밍된 상태를 나타낼 수 있는) 임의의 메모리 셀을 지칭할 수 있도록, 본 명세서에서 더 넓은 맥락에서 사용된다.
종래의 메모리 어레이는 반도체 기판의 표면 상에 배열되는 2 차원(two-dimensional: 2D) 구조체이다. 주어진 영역에 대한 메모리 용량을 증가시키기 위해, 그리고 비용을 감소시키기 위해, 별개의 메모리 셀의 사이즈가 감소되었다. 그러나, 개개의 메모리 셀의 사이즈에서의 감소, 따라서 2D 메모리 어레이의 메모리 밀도에 대한 기술적 한계가 있다. 이에 응답하여, 메모리 밀도를 더 증가시키고 메모리 비용을 낮추기 위해 3D NAND 아키텍처 반도체 메모리 디바이스와 같은 3 차원(three-dimensional: 3D) 메모리 구조체가 개발되고 있다.
그러한 3D NAND 디바이스는, 소스에 근접한 하나 이상의 소스측 선택 게이트(source-side select gate: SGS)와 비트 라인에 근접하는 하나 이상의 드레인측 선택 게이트(SGD) 사이에서 (예를 들면, 드레인에서 소스로) 직렬로 커플링되는 스토리지 셀의 스트링을 종종 포함한다. 일례에서, SGS 또는 SGD는 하나 이상의 전계 효과 트랜지스터(field-effect transistor: FET) 또는 금속 산화물 반도체(metal-oxide semiconductor: MOS) 구조체 디바이스 등을 포함할 수 있다. 몇몇 예에서, 스트링은 각각의 워드 라인을 포함하는 다수의 수직으로 이격된 계층(tier)을 통해 수직으로 연장될 것이다. 반도체 구조체(예를 들면, 폴리실리콘 구조체)는 스트링의 스토리지 셀에 대한 채널을 형성하기 위해 스토리지 셀의 스트링에 인접하게 연장될 수도 있다. 수직 스트링의 예에서, 폴리실리콘 구조체는 수직으로 연장되는 필라(pillar)의 형태일 수도 있다. 몇몇 예에서, 스트링은 "접힐" 수도 있고, 따라서 U자 형상의 필라에 대해 배열될 수도 있다. 다른 예에서, 다수의 수직 구조체가 서로 상에 적층되어 스토리지 셀 스트링의 적층된 어레이를 형성할 수도 있다.
메모리 어레이 또는 디바이스는 함께 결합되어, 솔리드 스테이트 드라이브(solid-state drive: SSD), 범용 플래시 스토리지(Universal Flash Storage: UFS™) 디바이스, 멀티미디어카드(MultiMediaCard: MMC) 솔리드 스테이트 스토리지 디바이스, 임베딩된 MMC 디바이스(embedded MMC device: eMMC™) 등과 같은, 메모리 시스템의 저장 볼륨(storage volume)을 형성할 수 있다. SSD는, 다른 것들 중에서도, 컴퓨터의 메인 스토리지 디바이스로서 사용될 수 있는데, 예를 들면, 성능, 사이즈, 중량, 견고성, 동작 온도 범위, 및 전력 소비와 관련하여 가동 부품을 갖는 종래의 하드 드라이브에 비해 이점을 갖는다. 예를 들면, SSD는 탐색 시간, 레이턴시, 또는 자기 디스크 드라이브(예를 들면, 전자 기계 등)와 관련되는 다른 지연을 감소시킬 수 있다. SSD는 플래시 메모리 셀과 같은 불휘발성 메모리 셀을 사용하여 내부 배터리 공급 요건을 제거하고, 따라서, 드라이브가 더욱 다재 다능하고 소형으로 되는 것을 가능하게 한다.
SSD는, 다수의 다이 또는 논리적 유닛(예를 들면, 논리적 유닛 번호(logical unit number) 또는 LUN)을 비롯한, 다수의 메모리 디바이스를 포함할 수 있고, 메모리 디바이스 또는 외부 시스템과의 인터페이스를 동작시키는 데 필요한 로직 기능을 수행하는 하나 이상의 프로세서 또는 다른 컨트롤러를 포함할 수 있다. 그러한 SSD는, 다수의 메모리 어레이 및 그 주변 장치 회로부(peripheral circuitry)를 상부에 포함하는 하나 이상의 플래시 메모리 다이를 포함할 수도 있다. 플래시 메모리 어레이는 다수의 물리적 페이지로 편제되는 메모리 셀의 다수의 블록을 포함할 수 있다. 많은 예에서, SSD는 또한 DRAM 또는 SRAM(또는 다른 형태의 메모리 다이 또는 다른 메모리 구조체)을 포함할 것이다. SSD는, 메모리 디바이스 와 호스트 사이에서 데이터(예를 들면, 사용자 데이터 및 관련된 무결성 데이터, 예컨대 에러 데이터 및 어드레스 데이터 등)를 전송하기 위한 판독 또는 기록 동작, 또는 메모리 디바이스로부터 데이터를 소거하기 위한 소거 동작과 같은, 메모리 동작과 관련되는 커맨드를 호스트로부터 수신할 수 있다.
NAND 플래시 기반의 스토리지 시스템에서, 판독 동작을 성공적으로 수행하는 데 필요한 판독 전압 임계치(Vt)는 지속적으로 시프트되게 된다. 이들 시프트는, 다른 조건 중에서도, 판독 방해(Read Disturb), 데이터 유지(Data Retention), 교차 온도 효과(Cross-temperature effect)와 같은 NAND 플래시의 널리 공지된 스트레스에 기인하여 발생할 수도 있다. 게다가, 메모리 어레이 내의 상이한 NAND 블록은, 다양한 양의 전하 손실 또는 전하 이득을 야기하는 다양한 양의 스트레스를 경험할 수도 있고; 마찬가지로, 어레이의 상이한 NAND 블록은 상이한 온도에서 종종 기록되고 판독된다. 결과적으로, 스토리지 시스템에 의해 실제로 사용되는 판독 전압과 NAND Vt 사이의 불일치가 많은 시나리오에서 발생할 수도 있다. NAND Vt에 따라 판독 전압을 조정하기 위해 다수의 NAND 스토리지 시스템에 의해 판독 전압 캘리브레이션을 위한 다양한 기술이 사용된다. 그러나, 판독 전압 캘리브레이션을 론칭하고 활용하기 위한 현존하는 접근법은, 판독되고 있는 특정한 영역의 메모리에서 발생한 전압 임계치 시프트를 완전히 해결하지 못해서, 판독 동작, 요청 및 수행되고 있는 추가적인 캘리브레이션 및 조정 동작으로부터의 원치 않는 데이터 에러, 및 스토리지 시스템의 지연 및 감소된 성능으로 이어진다.
반드시 일정한 비율로 도시되는 것은 아닌 도면에서, 유사한 참조 번호는 상이한 도면에서 유사한 컴포넌트를 설명할 수도 있다. 상이한 문자 접미사를 갖는 유사한 숫자는 유사한 컴포넌트의 상이한 예를 나타낼 수도 있다. 도면은 본 문서에서 논의되는 다양한 실시형태를, 제한이 아닌 예로서, 일반적으로 예시한다.
도 1은 메모리 디바이스를 포함하는 환경의 예를 예시한다.
도 2 내지 도 3은 3D NAND 아키텍처 반도체 메모리 어레이의 예의 개략도를 예시한다.
도 4는 메모리 모듈의 예시적인 블록도를 예시한다.
도 5는 판독 전압 캘리브레이션을 위한 최적화된 기술을 구현하도록 적응되는 메모리 디바이스를 포함하는 예시적인 시스템의 블록도를 예시한다.
도 6은 판독 전압 캘리브레이션을 위한 최적화된 기술을 수행하도록 적응되는 예시적인 메모리 디바이스 구성의 동작 시퀀스 다이어그램을 예시한다.
도 7은 판독 전압 캘리브레이션을 위한 최적화된 기술을 수행하도록 적응되는 동작의 예시적인 세트의 플로우차트를 예시한다.
도 8은 하나 이상의 실시형태가 구현될 수도 있는 머신의 예를 예시하는 블록도이다.
도 1은 메모리 디바이스를 포함하는 환경의 예를 예시한다.
도 2 내지 도 3은 3D NAND 아키텍처 반도체 메모리 어레이의 예의 개략도를 예시한다.
도 4는 메모리 모듈의 예시적인 블록도를 예시한다.
도 5는 판독 전압 캘리브레이션을 위한 최적화된 기술을 구현하도록 적응되는 메모리 디바이스를 포함하는 예시적인 시스템의 블록도를 예시한다.
도 6은 판독 전압 캘리브레이션을 위한 최적화된 기술을 수행하도록 적응되는 예시적인 메모리 디바이스 구성의 동작 시퀀스 다이어그램을 예시한다.
도 7은 판독 전압 캘리브레이션을 위한 최적화된 기술을 수행하도록 적응되는 동작의 예시적인 세트의 플로우차트를 예시한다.
도 8은 하나 이상의 실시형태가 구현될 수도 있는 머신의 예를 예시하는 블록도이다.
본 명세서에서 논의되는 시스템, 프로세스, 및 구성은 NAND 메모리 디바이스의 판독 전압 캘리브레이션을 트리거링 및 수행하기 위한 최적화 기술에 관한 것이다. 구체적으로, 전압 레벨 캘리브레이션을 사용하여 샘플링될 메모리 어레이의 블록 또는 다른 영역을 선택하기 위한 호스트 판독 IO의 물리적 풋프린트를 실시간으로 활용하는 예시적인 기술이 개시된다. 판독 전압의 캘리브레이션은 가장 빈번하게 판독된 데이터 위치에 기초할 수도 있고, 따라서 트리거 레이트를 감소시키고 대상으로 된 벤치마크 스트레스 조건에 대한 Vt 움직임을 캘리브레이팅할 수도 있다. 게다가, 진행 중인 그리고 미래의 동작에서 가능한 최상의 판독 성능을 위해 NAND 판독 전압을 캘리브레이팅하기 위해, 메모리 어레이의 활성 영역(예를 들면, 호스트 IO에 의해 가장 빈번하게 액세스되는 각각의 블록 및 블록의 그룹)을 선호하는 지능적이고 적응적인 블록 샘플링 기준을 가능하게 하는 예시적인 기술이 개시된다. 여전히 또한, 판독 전압 캘리브레이션을 트리거하기 위한 조건을 식별하며 호스트 IO 동작(각각의 블록 및 블록의 그룹에 대한 판독 및 소거 활동을 포함함)에서 수반되는 메모리 어레이의 영역의 상태를 추적하는 예시적인 기술이 개시된다.
전자 디바이스, 예컨대 모바일 전자 디바이스(예를 들면, 스마트폰, 태블릿 등), 자동차 애플리케이션(예를 들면, 자동차 센서, 제어 유닛, 운전자 지원 시스템, 승객 안전 또는 안락 시스템 등)에서의 사용을 위한 전자 디바이스, 및 인터넷에 연결된 어플라이언스 또는 디바이스(예를 들면, 사물 인터넷(IoT: Internet-of-things) 디바이스 등)는, 다른 것들 중에서도, 전자 디바이스의 타입, 사용 환경, 성능 예상치 등에 따라, 다양한 스토리지 요구를 갖는다.
전자 디바이스는 다음과 같은 여러 가지 주요 컴포넌트로 분류될 수 있다: 프로세서(예를 들면, 중앙 처리 유닛(central processing unit: CPU) 또는 다른 메인 프로세서); 메모리(예를 들면, 하나 이상의 휘발성 또는 불휘발성 랜덤 액세스 메모리(RAM) 메모리 디바이스, 예컨대 동적 RAM(dynamic RAM: DRAM), 모바일 또는 저전력 이중 데이터 레이트 동기식 DRAM(double-data-rate synchronous DRAM: DDR SDRAM) 등); 및 스토리지 디바이스(예를 들면, 불휘발성 메모리(non-volatile memory: NVM) 디바이스, 예컨대 플래시 메모리, 판독 전용 메모리(ROM), SSD, MMC, 또는 다른 메모리 카드 구조체 또는 어셈블리 등). 소정의 예에서, 전자 디바이스는 사용자 인터페이스(예를 들면, 디스플레이, 터치스크린, 키보드, 하나 이상의 버튼 등), 그래픽 처리 유닛(graphics processing unit: GPU), 전력 관리 회로, 베이스밴드 프로세서 또는 하나 이상의 트랜스시버 회로 등을 포함할 수 있다.
도 1은 통신 인터페이스를 통해 통신하도록 구성되는 호스트 디바이스(105) 및 메모리 디바이스(110)를 포함하는 환경(100)의 예를 예시한다. 호스트 디바이스(105) 또는 메모리 디바이스(110)는 다양한 제품(150), 예컨대 사물 인터넷(IoT) 디바이스(예를 들면, 냉장고 또는 다른 어플라이언스, 센서, 모터 또는 액추에이터, 이동 통신 디바이스, 자동차, 드론 등)에 포함되어, 제품(150)의 처리, 통신, 또는 제어를 지원할 수도 있다.
메모리 디바이스(110)는, 예를 들면, 다수의 개개의 메모리 다이(예를 들면, 3 차원(3D) NAND 다이의 스택)를 포함하는 메모리 어레이(120) 및 메모리 컨트롤러(115)를 포함한다. 3D 아키텍처 반도체 메모리 기술에서, 수직 구조체가 적층되어, 계층(tier)의 수, 물리적 페이지, 및, 따라서, 메모리 디바이스(예를 들면, 스토리지 디바이스)의 밀도를 증가시킨다. 일례에서, 메모리 디바이스(110)는 호스트 디바이스(105)의 별개의 메모리 또는 스토리지 디바이스 컴포넌트일 수 있다. 다른 예에서, 메모리 디바이스(110)는 집적 회로(예를 들면, 시스템 온 칩(system on a chip: SOC) 등)의 일부일 수 있거나, 호스트 디바이스(105)의 하나 이상의 다른 컴포넌트와 함께 적층되거나 또는 다른 방식으로 포함될 수 있다.
메모리 디바이스(110)와 호스트 디바이스(105)의 하나 이상의 다른 컴포넌트 사이에서 데이터를 전송하기 위해, 하나 이상의 통신 인터페이스, 예컨대 직렬 고급 기술 연결(Serial Advanced Technology Attachment: SATA) 인터페이스, 주변 장치 컴포넌트 인터커넥트 익스프레스(Peripheral Component Interconnect Express: PCIe) 인터페이스, 범용 직렬 버스(Universal Serial Bus: USB) 인터페이스, 범용 플래시 스토리지(Universal Flash Storage: UFS) 인터페이스, eMMC™ 인터페이스, 또는 하나 이상의 다른 인터커넥터 또는 인터페이스가 사용될 수 있다. 호스트 디바이스(105)는 호스트 시스템, 전자 디바이스, 프로세서, 메모리 카드 리더, 또는 메모리 디바이스(110) 외부의 하나 이상의 다른 전자 디바이스를 포함할 수 있다. 몇몇 예에서, 호스트(105)는 도 8의 머신(800)과 관련하여 논의되는 컴포넌트의 몇몇 부분, 또는 모두를 갖는 머신일 수도 있다.
메모리 컨트롤러(115)는 호스트(105)로부터 명령어를 수신할 수 있고, 예컨대 메모리 어레이의 메모리 셀, 평면, 서브 블록, 블록, 또는 페이지 중 하나 이상으로 데이터를 전송하기 위해(예를 들면, 기록 또는 소거하기 위해) 또는 그들로부터 데이터를 전송하기 위해(예를 들면, 판독하기 위해), 메모리 어레이와 통신할 수 있다. 메모리 컨트롤러(115)는, 다른 것들 중에서도, 하나 이상의 컴포넌트 또는 집적 회로를 비롯한, 회로부 또는 펌웨어를 포함할 수 있다. 예를 들면, 메모리 컨트롤러(115)는, 메모리 어레이(120)에 걸친 액세스를 제어하도록 그리고 호스트(105)와 메모리 디바이스(110) 사이에 변환 층을 제공하도록 구성되는 하나 이상의 메모리 제어 유닛, 회로, 또는 컴포넌트를 포함할 수 있다. 메모리 컨트롤러(115)는 메모리 어레이(120)로 데이터를 전송하기 위한 또는 그로부터의 데이터를 전송하기 위한 하나 이상의 입력/출력(input/output: I/O) 회로, 라인, 또는 인터페이스를 포함할 수 있다. 메모리 컨트롤러(115)는 메모리 매니저(125) 및 어레이 컨트롤러(135)를 포함할 수 있다.
메모리 매니저(125)는, 다른 것들 중에서도, 다양한 메모리 관리 기능과 관련되는 다수의 컴포넌트 또는 집적 회로와 같은 회로부 또는 펌웨어를 포함할 수 있다. 본 개시내용의 목적을 위해, 예시적인 메모리 동작 및 관리 기능은 NAND 메모리의 맥락에서 설명될 것이다. 기술 분야의 숙련된 자는, 다른 형태의 불휘발성 메모리가 유사한 메모리 동작 또는 관리 기능을 가질 수도 있다는 것을 인식할 것이다. 그러한 NAND 관리 기능은, 마모 레벨링(wear leveling)(예를 들면, 폐영역 회수 또는 복구(garbage collection or reclamation)), 에러 검출 또는 수정, 블록 회수(block retirement), 또는 하나 이상의 다른 메모리 관리 기능을 포함한다. 메모리 매니저(125)는 호스트 커맨드(예를 들면, 호스트로부터 수신되는 커맨드)를 디바이스 커맨드(예를 들면, 메모리 어레이의 동작과 관련되는 커맨드 등)로 파싱 또는 포맷할 수 있거나, 또는 어레이 컨트롤러(135) 또는 메모리 디바이스(110)의 하나 이상의 다른 컴포넌트에 대한 (예를 들면, 다양한 메모리 관리 기능을 달성하기 위한) 디바이스 커맨드를 생성할 수 있다.
메모리 매니저(125)는 메모리 디바이스(110)의 하나 이상의 컴포넌트와 관련되는 다양한 정보(예를 들면, 메모리 컨트롤러(115)에 커플링되는 메모리 어레이 또는 하나 이상의 메모리 셀과 관련되는 다양한 정보)를 유지하도록 구성되는 관리 테이블(130)의 세트를 포함할 수 있다. 예를 들면, 관리 테이블(130)은, 메모리 컨트롤러(115)에 커플링되는 메모리 셀의 하나 이상의 블록에 대한 블록 연령(age), 블록 소거 카운트, 에러 이력, 또는 하나 이상의 에러 카운트(예를 들면, 기록 동작 에러 카운트, 판독 비트 에러 카운트, 판독 동작 에러 카운트, 소거 에러 카운트 등)에 관한 정보를 포함할 수 있다. 소정의 예에서, 에러 카운트 중 하나 이상에 대한 검출된 에러의 수가 임계치를 초과하면, 비트 에러는 정정 불가능한 비트 에러로 지칭될 수 있다. 관리 테이블(130)은, 다른 것들 중에서도, 정정 가능한 또는 정정 불가능한 비트 에러의 카운트를 유지할 수 있다.
어레이 컨트롤러(135)는, 다른 것들 중에서도, 메모리 컨트롤러(115)에 커플링되는 메모리 디바이스(110)의 하나 이상의 메모리 셀에 데이터를 기록하는 것, 그로부터 데이터를 판독하는 것, 또는 그것을 소거하는 것과 관련되는 메모리 동작을 제어하도록 구성되는 회로부 또는 컴포넌트를 포함할 수 있다. 메모리 동작은, 예를 들면, 호스트(105)로부터 수신되는, 또는 (예를 들면, 마모 레벨링, 에러 검출 또는 정정 등과 관련하여) 메모리 매니저(125)에 의해 내부적으로 생성되는 호스트 커맨드에 기초할 수 있다.
어레이 컨트롤러(135)는 에러 정정 코드(error correction code: ECC) 컴포넌트(140)를 포함할 수 있는데, 이것은, 다른 것들 중에서도, 메모리 컨트롤러(115)에 커플링되는 메모리 디바이스(110)의 하나 이상의 메모리 셀에 데이터를 기록하는 것 또는 그로부터 데이터를 판독하는 것과 관련되는 에러를 검출 또는 정정하도록 구성되는 다른 회로부 또는 ECC 엔진을 포함할 수 있다. 메모리 컨트롤러(115)는, 호스트(105)와 메모리 디바이스(110)사이에서 전송되는 데이터의 무결성을 유지하면서, 또는 (예를 들면, 리던던트 RAID 스토리지 등을 사용하여) 저장된 데이터의 무결성을 유지하면서, 다양한 동작 또는 데이터의 저장과 관련되는 에러 발생(예를 들면, 비트 에러, 동작 에러 등)을 능동적으로 검출하고 그로부터 복구하도록 구성될 있고, 미래의 에러를 방지하기 위해 고장난(failing) 메모리 리소스(예를 들면, 메모리 셀, 메모리 어레이, 페이지, 블록 등)를 제거할 수 있다(예를 들면, 퇴역시킬 수 있다).
메모리 어레이(120)는, 예를 들면, 다수의 디바이스, 평면, 서브 블록, 블록, 또는 페이지에서 배열되는 여러 가지 메모리 셀을 포함할 수 있다. 하나의 예로서, 48 GB TLC NAND 메모리 디바이스는 페이지당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트)를, 블록당 1536 페이지를, 평면당 548 블록을, 그리고 디바이스당 4개 이상의 평면을 포함할 수 있다. 다른 예로서, 32 GB MLC 메모리 디바이스(셀당 2 비트(즉, 4개의 프로그래밍 가능한 상태)의 데이터를 저장함)는 페이지당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트)를, 블록당 1024 페이지를, 평면당 548 블록을, 그리고 디바이스당 4개의 평면을 포함할 수 있지만, 그러나, 대응하는 TLC 메모리 디바이스와 비교하여 절반의 필수 기록 시간 및 두 배의 프로그램/소거(program/erase: P/E) 사이클을 갖는다. 다른 예는 다른 숫자 또는 배열을 포함할 수 있다. 몇몇 예에서, 메모리 디바이스, 또는 그 일부는, SLC 모드에서, 또는 소망되는 MLC 모드(예컨대, TLC, QLC 등)에서 선택적으로 동작될 수도 있다.
동작에서, 데이터는 통상적으로 페이지 단위로 NAND 메모리 디바이스(110)에 기록되거나 또는 NAND 메모리 디바이스로부터 판독되고, 블록 단위로 소거된다. 그러나, 하나 이상의 메모리 동작(예를 들면, 판독, 기록, 소거 등)은, 필요에 따라, 메모리 셀의 더 큰 또는 더 작은 그룹에 대해 수행될 수 있다. NAND 메모리 디바이스(110)의 데이터 전송 사이즈는, 통상적으로, 페이지로 지칭되고, 반면, 호스트의 데이터 전송 사이즈는 통상적으로 섹터로 지칭된다.
데이터의 페이지가 다수의 바이트의 사용자 데이터(예를 들면, 데이터의 다수의 섹터를 포함하는 데이터 페이로드) 및 그것의 대응하는 메타데이터를 포함할 수 있지만, 페이지의 사이즈는 사용자 데이터를 저장하기 위해 종종 사용되는 바이트의 수만을 가리킨다. 예로서, 4 KB의 페이지 사이즈를 갖는 데이터의 페이지는 4KB의 사용자 데이터(예를 들면, 512 B의 섹터 사이즈를 가정하는 8개의 섹터)뿐만 아니라, 무결성 데이터(예를 들면, 에러 검출용 또는 정정용 코드 데이터), 어드레스 데이터(예를 들면, 논리적 어드레스 데이터 등), 또는 사용자와 관련되는 다른 메타데이터와 같은, 사용자 데이터에 대응하는 메타데이터의 바이트의 수(예를 들면, 32 B, 54 B, 224 B 등)를 포함할 수도 있다.
상이한 타입의 메모리 셀 또는 메모리 어레이(120)는 상이한 페이지 사이즈를 제공할 수 있거나, 또는 그와 관련되는 상이한 양의 메타데이터를 요구할 수도 있다. 예를 들면, 상이한 메모리 디바이스 타입은 상이한 비트 에러율을 가질 수도 있는데, 이것은 데이터의 페이지의 무결성을 보장하는 데 필요한 상이한 양의 메타데이터로 이어질 수 있다(예를 들면, 더 높은 비트 에러율을 갖는 메모리 디바이스는, 더 낮은 비트 에러율을 갖는 메모리 디바이스보다 더 많은 바이트의 에러 정정 코드를 요구할 수도 있다). 일례로서, 다중 레벨 셀(MLC) NAND 플래시 디바이스는, 대응하는 단일 레벨 셀(SLC) NAND 플래시 디바이스보다 더 높은 비트 에러율을 가질 수도 있다. 그와 같이, MLC 디바이스는 대응하는 SLC 디바이스보다 에러 데이터에 대해 더 많은 메타데이터 바이트를 요구할 수도 있다.
도 2는, 블록(예를 들면, 블록 A(201A), 블록 B(201B) 등) 및 서브 블록(예를 들면, 서브 블록 A0(201A0), 서브 블록 An(201An), 서브 블록 B0(201B0), 서브 블록 Bn(201Bn) 등) 단위로 편제되는, 메모리 셀의 다수의 스트링(예를 들면, 제1 내지 제3 A0 메모리 스트링(205A0-207A0), 제1 내지 제3 An 메모리 스트링(205An 내지 207An), 제1 내지 제3 B0 메모리 스트링(205B0 내지 207B0), 제1 내지 제3 Bn 메모리 스트링(205Bn 내지 207Bn) 등)을 포함하는 3D NAND 아키텍처 반도체 메모리 어레이(200)의 예시적인 개략도를 예시한다. 메모리 어레이(200)는, 블록, 디바이스, 또는 메모리 디바이스의 다른 단위에서 통상적으로 발견될 더 많은 수의 유사한 구조체의 일부를 나타낸다.
메모리 셀의 각각의 스트링은, 소스 라인(SRC)(235) 또는 소스 측 선택 게이트(SGS)(예를 들면, 제1 내지 제3 A0 SGS(231A0 내지 233A0), 제1 내지 제3 An SGS(231An 내지 233An), 제1 내지 제3 B0 SGS(231B0 내지 233B0), 제1 내지 제3 Bn SGS(231Bn 내지 233Bn) 등)와 드레인 측 선택 게이트(SGD)(예를 들면, 제1 내지 제3 A0 SGD(226A0 내지 228A0), 제1 내지 제3 An SGD(226An 내지 228An), 제1 내지 제3 B0 SGD(226B0 내지 228B0), 제1 내지 제3 Bn SGD(226Bn 내지 228Bn) 등) 사이에서, 소스에서 드레인으로, Z 방향에서 적층되는 전하 저장 트랜지스터(예를 들면, 플로팅 게이트 트랜지스터, 전하 포획 구조체 등)의 다수의 계층을 포함한다. 3D 메모리 어레이에서의 메모리 셀의 각각의 스트링은 X 방향을 따라 데이터 라인(예를 들면, 비트 라인(bit line: BL)(BL0 내지 BL2)(220 내지 222))으로서, Y 방향을 따라 물리적 페이지로서 배열될 수 있다.
물리적 페이지 내에서, 각각의 계층은 메모리 셀의 행을 나타내고, 메모리 셀의 각각의 스트링은 열을 나타낸다. 서브 블록은 하나 이상의 물리적 페이지를 포함할 수 있다. 블록은 다수의 서브 블록(또는 물리적 페이지)(예를 들면, 128개, 256개, 384개 등)을 포함할 수 있다. 본 명세서에서 두 개의 블록을 가지며, 각각의 블록이 두 개의 서브 블록을 가지며, 각각의 서브 블록이 단일의 물리적 페이지를 가지며, 각각의 물리적 페이지가 메모리 셀의 세 개의 스트링을 가지며, 각각의 스트링이 메모리 셀의 8개의 계층을 갖는 것으로 예시되어 있지만, 다른 예에서, 메모리 어레이(200)는 더 많은 또는 더 적은 블록, 서브 블록, 물리적 페이지, 메모리 셀의 스트링, 메모리 셀, 또는 계층을 포함할 수 있다. 예를 들면, 메모리 셀의 각각의 스트링은 더 많은 또는 더 적은 계층(예를 들면, 16개, 32개, 64개, 128개 등)뿐만 아니라, 필요에 따라, 전하 저장 트랜지스터(예를 들면, 선택 게이트, 데이터 라인 등) 위 또는 아래에 반도체 재료의 하나 이상의 추가적인 계층을 포함할 수 있다. 일례로서, 48 GB TLC NAND 메모리 디바이스는 페이지당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트), 블록당 1536 페이지, 평면당 548 블록, 및 디바이스당 4개 이상의 평면을 포함할 수 있다.
메모리 어레이(200) 내의 각각의 메모리 셀은, 필요에 따라, 특정한 계층, 또는 계층의 일부에 걸쳐 제어 게이트(control gate: CG)를 일괄적으로 커플링하는, 액세스 라인(예를 들면, 워드 라인(word line: WL) WL00 내지 WL70(210A 내지 217A), WL01 내지 WL71(210B 내지 217B) 등)에 커플링되는(예를 들면, 전기적으로 또는 다르게는 동작 가능하게 연결되는) 제어 게이트(CG)를 포함한다. 3D 메모리 어레이에서의 특정한 계층, 및 따라서 스트링 내의 특정한 메모리 셀은 각각의 액세스 라인을 사용하여 액세스 또는 제어될 수 있다. 선택 게이트의 그룹은 다양한 선택 라인을 사용하여 액세스될 수 있다. 예를 들면, 제1 내지 제3 A0 SGD(226A0 내지 228A0)는 A0 SGD 라인(SGDA0)(225A0)을 사용하여 액세스될 수 있고, 제1 내지 제3 An SGD(226An 내지 228An)는 An SGD 라인(SGDAn)(225An)을 사용하여 액세스될 수 있고, 제1 내지 제3 B0 SGD(226B0 내지 228B0)는 B0 SGD 라인(SGDB0)(225B0)을 사용하여 액세스될 수 있고, 제1 내지 제3 Bn SGD(226Bn 내지 228Bn)는 Bn SGD 라인(SGDBn)(225Bn)을 사용하여 액세스될 수 있다. 제1 내지 제3 A0 SGS(231A0 내지 233A0) 및 제1 내지 제3 An SGS(231An 내지 233An)는 게이트 선택 라인(SGS0)(230A)을 사용하여 액세스될 수 있고, 제1 내지 제3 B0 SGS(231B0 내지 233B0) 및 제1 내지 제3 Bn SGS(231Bn 내지 233Bn)는 게이트 선택 라인(SGS1)(230B)을 사용하여 액세스될 수 있다.
일례에서, 메모리 어레이(200)는, 어레이의 각각의 계층의 각각의 메모리 셀의 제어 게이트(CG) 또는 선택 게이트(또는 CG 또는 선택 게이트의 일부)를 커플링하도록 구성되는 다수의 레벨의 반도체 재료(예를 들면, 폴리실리콘 등)를 포함할 수 있다. 어레이 내의 메모리 셀의 특정한 스트링은 비트 라인(BL) 및 선택 게이트 등의 조합을 사용하여 액세스, 선택, 또는 제어될 수 있고, 특정한 스트링 내의 하나 이상의 계층에 있는 특정한 메모리 셀은 하나 이상의 액세스 라인(예를 들면, 워드 라인)을 사용하여 액세스, 선택, 또는 제어될 수 있다.
도 3은 스트링(예를 들면, 제1 내지 제3 스트링(305 내지 307)) 및 계층(예를 들면, 각각의 워드 라인(WL)(WL0 내지 WL7)(310 내지 317), 드레인 측 선택 게이트(SGD) 라인(325), 소스측 선택 게이트(SGS) 라인(330) 등으로서 예시됨)의 이차원 어레이에 배열되는 복수의 메모리 셀(302), 및 감지 증폭기 또는 디바이스(360)를 포함하는 NAND 아키텍처 반도체 메모리 어레이(300)의 일부의 예시적인 개략도를 예시한다. 예를 들면, 메모리 어레이(300)는, 도 2에서 도시되는 바와 같이, 3D NAND 아키텍처 반도체 메모리 디바이스의 메모리 셀의 하나의 물리적 페이지의 일부의 예시적인 개략도를 예시할 수 있다.
메모리 셀의 각각의 스트링은 각각의 소스측 선택 게이트(SGS)(예를 들면, 제1 내지 제3 SGS(331 내지 333))를 사용하여 소스 라인(SRC)에, 그리고 각각의 드레인 측 선택 게이트(SGD)(예를 들면, 제1 내지 제3 SGD(326 내지 328))를 사용하여 각각의 데이터 라인(예를 들면, 제1 내지 제3 비트 라인(BL)(BL0 내지 BL2)(320 내지 322))에 커플링된다. 도 3의 예에서 8 계층(예를 들면, 워드 라인(WL)(WL0 내지 WL7)(310 내지 317)을 사용함) 및 세 개의 데이터 라인(BL0 내지 BL2)(326 내지 328)과 함께 예시되지만, 다른 예는, 필요에 따라, 더 많은 또는 더 적은 계층 또는 데이터 라인을 갖는 메모리 셀의 스트링을 포함할 수 있다.
예시적인 메모리 어레이(300)와 같은 NAND 아키텍처 반도체 메모리 어레이에서, 선택된 메모리 셀(302)의 상태는, 선택된 메모리 셀을 포함하는 특정한 데이터 라인과 관련되는 전류 또는 전압 변동을 감지하는 것에 의해 액세스될 수 있다. 메모리 어레이(300)는 하나 이상의 드라이버를 사용하여 (예를 들면, 제어 회로, 하나 이상의 프로세서, 디지털 로직 등에 의해) 액세스될 수 있다. 일례에서, 하나 이상의 드라이버는, 특정한 메모리 셀 또는 메모리 셀의 세트에 대해 수행되도록 소망되는 동작의 타입에 따라, 하나 이상의 데이터 라인(예를 들면, 비트 라인(BL0 내지 BL2)), 액세스 라인(예를 들면, 워드 라인(WL0 내지 WL7)), 또는 선택 게이트에 특정한 전위를 구동하는 것에 의해, 특정한 메모리 셀, 또는 메모리 셀의 세트를 활성화할 수 있다.
메모리 셀에 데이터를 프로그래밍 또는 기록하기 위해, 프로그래밍 전압(Vpgm)(예를 들면, 하나 이상의 프로그래밍 펄스 등)이 선택된 워드 라인(예를 들면, WL4)에, 따라서, 선택된 워드 라인에 커플링되는 각각의 메모리 셀의 제어 게이트(예를 들면, WL4에 커플링되는 메모리 셀의 제1 내지 제3 제어 게이트(CG)(341-343))에 인가될 수 있다. 프로그래밍 펄스는, 예를 들면, 15 V에서 또는 그 근처에서 시작될 수 있으며, 소정의 예에서, 각각의 프로그래밍 펄스 인가 동안 크기에서 증가될 수 있다. 프로그램 전압이 선택된 워드 라인에 인가되는 동안, 접지 전위(예를 들면, Vss)와 같은 전위가 데이터 라인(예를 들면, 비트 라인) 및 프로그래밍을 위한 대상으로 되는 메모리 셀의 기판(그리고 따라서 소스와 드레인 사이의 채널)에 인가될 수 있고, 채널로부터 대상으로 된 메모리 셀의 플로팅 게이트로의 전하 전송(예를 들면, 직접 주입 또는 파울러-노드하임(Fowler-Nordheim: FN) 터널링 등)으로 나타날 수 있다.
대조적으로, 프로그래밍을 위한 대상으로 되지 않는 메모리 셀을 갖는 하나 이상의 워드 라인에 패스 전압(Vpass)이 인가될 수 있거나, 또는, 예를 들면, 전하가 채널로부터 그러한 대상으로 되지 않은 메모리 셀의 플로팅 게이트로 전송되는 것을 방지하기 위해, 프로그래밍을 위한 대상으로 되지 않는 메모리 셀을 갖는 데이터 라인(예를 들면, 비트 라인)에 금지 전압(inhibit voltage)(예를 들면, Vcc)이 인가될 수 있다. 패스 전압은, 예를 들면, 프로그래밍을 위한 대상으로 되지 않는 워드 라인에 대한 인가된 패스 전압의 근접성에 따라 가변적일 수 있다. 금지 전압은, 접지 전위(예를 들면, Vss)에 대한, 외부 소스 또는 공급부(예를 들면, 배터리, AC 대 DC 변환기 등)로부터의 전압과 같은, 공급 전압(Vcc)을 포함할 수 있다.
일례로서, 프로그래밍 전압(예를 들면, 15 V 이상)이 WL4와 같은 특정한 워드 라인에 인가되는 경우, 대상으로 되지 않은 메모리 셀의 프로그래밍을 금지하기 위해, 또는, 프로그래밍을 위한 대상으로 되지 않는 그러한 메모리 셀에 저장되는 값을 유지하기 위해, 10 V의 패스 전압이, WL3, WL5 등과 같은 하나 이상의 다른 워드 라인에 인가될 수 있다. 인가된 프로그램 전압과 대상으로 되지 않은 메모리 셀 사이의 거리가 증가함에 따라, 대상으로 되지 않은 메모리 셀을 프로그래밍하는 것을 억제하는 데 필요한 패스 전압은 감소될 수 있다. 예를 들면, WL4에 15 V의 프로그래밍 전압이 인가되는 경우, WL3 및 WL5에 10 V의 패스 전압이 인가될 수 있고, WL2 및 WL6에 8 V의 패스 전압이 인가될 수 있으며, WL1 및 WL7에 7 V의 패스 전압이 인가될 수 있고 등일 수 있다. 다른 예에서, 패스 전압, 또는 워드 라인의 수 등은 더 높거나 또는 더 낮거나, 또는 더 많거나 또는 더 적을 수 있다.
데이터 라인(예를 들면, 제1, 제2, 또는 제3 비트 라인(BL0 내지 BL2)(320 내지 322)) 중 하나 이상에 커플링되는 감지 증폭기(360)는, 특정한 데이터 라인 상에서 전압 또는 전류를 감지하는 것에 의해, 각각의 데이터 라인에서 각각의 메모리 셀의 상태를 검출할 수 있다.
하나 이상의 프로그래밍 펄스(예를 들면, Vpgm)의 인가 사이에서, 선택된 메모리 셀이 자신의 의도된 프로그래밍된 상태에 도달하였는지를 결정하기 위해 검증 동작이 수행될 수 있다. 선택된 메모리 셀이 자신의 의도된 프로그래밍된 상태에 도달한 경우, 그것은 추가적인 프로그래밍이 금지될 수 있다. 선택된 메모리 셀이 자신의 의도된 프로그래밍된 상태에 도달하지 않은 경우, 추가적인 프로그래밍 펄스가 인가될 수 있다. 특정한 수(예를 들면, 최대 수)의 프로그래밍 펄스 이후에 선택된 메모리 셀이 자신의 의도된 프로그래밍된 상태에 도달하지 않은 경우, 선택된 메모리 셀, 또는 그러한 선택된 메모리 셀과 관련되는 스트링, 블록, 또는 페이지는 결함이 있는 것으로 마킹될 수 있다.
메모리 셀 또는 메모리 셀의 그룹을 소거하기 위해(예를 들면, 소거는 통상적으로 블록 또는 서브 블록에서 수행됨), 소거 전압(Vers)(예를 들면, 통상적으로 Vpgm)이 (예를 들면, 하나 이상의 비트 라인, 선택 게이트 등을 사용하여) 소거를 위한 대상으로 되는 메모리 셀의 기판(따라서, 소스와 드레인 사이의 채널)에 인가될 수 있고, 한편, 대상으로 된 메모리 셀의 워드 라인은, 접지 전위(예를 들면, Vss)와 같은 전위에서 유지되어, 대상으로 된 메모리 셀의 플로팅 게이트로부터 채널로의 전하 전송(예를 들면, 직접 주입 또는 파울러-노드하임(FN) 터널링 등)으로 나타날 수 있다.
도 4는 복수의 메모리 셀(404)을 갖는 메모리 어레이(402), 및 메모리 어레이(402)와의 통신을 제공하기 위한, 또는 메모리 어레이에 대해 하나 이상의 메모리 동작을 수행하기 위한 하나 이상의 회로 또는 컴포넌트를 포함하는 메모리 디바이스(400)의 예시적인 블록도를 예시한다. 메모리 디바이스(400)는 행 디코더(412), 열 디코더(414), 감지 증폭기(420), 페이지 버퍼(422), 선택기(424), 입력/출력(I/O) 회로(426), 및 메모리 제어 유닛(430)을 포함할 수 있다.
메모리 어레이(402)의 메모리 셀(404)은, 제1 및 제2 블록(402A, 402B)과 같은 블록 단위로 배열될 수 있다. 각각의 블록은 서브 블록을 포함할 수 있다. 예를 들면, 제1 블록(402A)은 제1 및 제2 서브 블록(402A0, 402An)을 포함할 수 있고, 제2 블록(402B)은 제1 및 제2 서브 블록(402B0, 402Bn)을 포함할 수 있다. 각각의 서브 블록은 다수의 물리적 페이지를 포함할 수 있는데, 각각의 페이지는 다수의 메모리 셀(404)을 포함한다. 본 명세서에서 두 개의 블록을 가지며, 각각의 블록이 두 개의 서브 블록을 가지며, 각각의 서브 블록이 다수의 메모리 셀(404)을 갖는 것으로 예시되어 있지만, 다른 예에서, 메모리 어레이(402)는 더 많은 또는 더 적은 블록, 서브 블록, 메모리 셀 등을 포함할 수 있다. 다른 예에서, 메모리 셀(404)은 다수의 행, 열, 페이지, 서브 블록, 블록 등에서 배열될 수 있고, 예를 들면, 액세스 라인(406), 제1 데이터 라인(410), 또는 하나 이상 선택 게이트, 소스 라인 등을 사용하여 액세스될 수 있다.
메모리 제어 유닛(430)은, 예를 들면, 소망되는 동작(예를 들면, 기록, 판독, 소거 등)을 나타내는 하나 이상의 클록 신호 또는 제어 신호, 또는 하나 이상의 어드레스 라인(416) 상에서 수신되는 어드레스 신호(A0 내지 AX)를 비롯한, 제어 라인(432) 상에서 수신되는 하나 이상의 신호 또는 명령어에 따라 메모리 디바이스(400)의 메모리 동작을 제어할 수 있다. 메모리 디바이스(400) 외부의 하나 이상의 디바이스는, 제어 라인(432) 상에서의 제어 신호, 또는 어드레스 라인(416) 상에서의 어드레스 신호의 값을 제어할 수 있다. 메모리 디바이스(400) 외부의 디바이스의 예는, 호스트, 메모리 컨트롤러, 프로세서, 또는 도 4에서 예시되지 않은 하나 이상의 회로 또는 컴포넌트를 포함할 수 있지만, 그러나 이들로 제한되지는 않는다.
메모리 디바이스(400)는 액세스 라인(406) 및 제1 데이터 라인(410)을 사용하여 메모리 셀(404) 중 하나 이상으로 데이터를 전송할 수 있거나(예를 들면, 기록 또는 소거) 또는 그 하나 이상으로부터 데이터를 전송할 수 있다(예를 들면, 판독). 행 디코더(412) 및 열 디코더(414)는, 상기에서 설명되는 바와 같이, 어드레스 라인(416)으로부터 어드레스 신호(A0 내지 AX)를 수신 및 디코딩할 수 있고, 메모리 셀(404) 중 어떤 것이 액세스될지를 결정할 수 있고, 신호를 액세스 라인(406) 중 하나 이상(예를 들면, 복수의 워드 라인(WL0-WLm) 중 하나 이상) 또는 제1 데이터 라인(410)(예를 들면, 복수의 비트 라인(BL0-BLn) 중 하나 이상)으로 제공할 수 있다.
메모리 디바이스(400)는, 제1 데이터 라인(410)을 사용하여 메모리 셀(404) 상의 데이터의 값을 결정하도록(예를 들면, 판독), 또는 메모리 셀에 기록될 데이터의 값을 결정하도록 구성되는 감지 회로부, 예컨대 감지 증폭기(420)를 포함할 수 있다. 예를 들면, 메모리 셀(404)의 선택된 스트링에서, 감지 증폭기(420) 중 하나 이상은, 선택된 스트링을 통해 데이터 라인(410)으로 메모리 어레이(402) 내에서 흐르는 판독 전류에 응답하여, 선택된 메모리 셀(404)에서의 로직 레벨을 판독할 수 있다.
메모리 디바이스(400) 외부의 하나 이상의 디바이스는, I/O 라인(DQ0-DQN)(408), 어드레스 라인(416)(A0 내지 AX), 또는 제어 라인(432)을 사용하여 메모리 디바이스(400)와 통신할 수 있다. 입력/출력(I/O) 회로(426)는, 예를 들면, 제어 라인(432) 및 어드레스 라인(416)에 따라, I/O 라인(408)을 사용하여, 메모리 디바이스(400) 안팎으로, 예컨대 페이지 버퍼(422) 또는 메모리 어레이(402) 안팎으로 데이터의 값을 전송할 수 있다. 페이지 버퍼(422)는, 데이터가 메모리 어레이(402)의 관련 부분 안으로 프로그래밍되기 이전에, 메모리 디바이스(400) 외부의 하나 이상의 디바이스로부터 수신되는 데이터를 저장할 수 있거나, 또는, 데이터가 메모리 디바이스(400) 외부의 하나 이상의 디바이스로 송신되기 이전에, 메모리 어레이(402)로부터 판독되는 데이터를 저장할 수 있다.
열 디코더(414)는 어드레스 신호(A0 내지 AX)를 수신하여 하나 이상의 열 선택 신호(CSEL1 내지 CSELn)로 디코딩할 수 있다. 선택기(424)(예를 들면, 선택 회로)는 열 선택 신호(CSEL1 내지 CSELn)를 수신하고 메모리 셀(404)로부터 판독될 또는 메모리 셀 안으로 프로그래밍될 데이터의 값을 나타내는 데이터를 페이지 버퍼(422)에서 선택할 수 있다. 선택된 데이터는 제2 데이터 라인(418)을 사용하여 페이지 버퍼(422)와 I/O 회로(426) 사이에서 전송될 수 있다.
메모리 제어 유닛(430)은, 외부 소스 또는 공급부(예를 들면, 내부 또는 외부 배터리, AC 대 DC 변환기 등)로부터 양의 공급 신호 및 음의 공급 신호, 예컨대 공급 전압(Vcc)(434) 및 음의 공급(Vss)(436)(예를 들면, 접지 전위)을 수신할 수 있다. 소정의 예에서, 메모리 제어 유닛(430)은 양의 공급 신호 또는 음의 공급 신호를 내부적으로 제공하기 위해 레귤레이터(regulator)(428)를 포함할 수 있다.
본 명세서에서 논의되는 다음의 기술 및 구성은, 판독 전압 캘리브레이션의 양태를 위해 NAND 메모리 디바이스 내에서 구현되는 기술을 제공한다. 본 명세서에서 논의되는 기술 및 구성은, 상기에서 논의되는 3D NAND 아키텍처 피처를 구체화하는 시스템과 같은, 3D NAND 플래시 기반의 스토리지 시스템에 구체적으로 적용 가능할 수도 있다. 그러나, 개시된 판독 전압 캘리브레이션 기술 및 구성은, 다른 폼팩터 또는 배열에서 적용되는 NAND 플래시 디바이스의 컴포넌트를 갖는 것을 비롯하여, 다른 형태의 NAND 플래시 디바이스에도 또한 적용될 수도 있다는 것이 명백할 것이다.
NAND 플래시 기반의 스토리지 시스템에서, NAND 메모리 어레이는, 상이한 양의 전하 손실 및 전하 이득을 겪는 다양한 블록, 및 상이한 온도에서 프로그래밍(기록)되는 다양한 블록을 포함한다. 따라서, 메모리 어레이의 임의의 특정한 블록 또는 영역을 판독하기 위한 Vt는, 메모리 어레이의 다른 블록 또는 다른 영역으로부터 변할 수도 있다. 게다가, 메모리의 특정한 블록 또는 메모리 영역에 대한 Vt는, 스트레스에 기인하여 지속적으로 시프트를 받게 되고, 결과적으로, Vt는 어느 방향에서도 시프트될 수도 있다.
판독 방해는 Vt에 영향을 끼치는 NAND 플래시 디바이스 상에서 발생하는 스트레스의 일례이다. 호스트 또는 애플리케이션이 플래시 디바이스로부터 소정의 데이터를 검색할(retrieve) 때, (데이터가 플래시 디바이스 내에서 얼마나 흩어져 있는지 따라) 호스트가 특별히 높은 판독 레이트 또는 데이터의 판독 집약적인 애플리케이션을 활용하는 경우 판독 방해 스트레스가 구축될 수도 있다. 예를 들면, 논리적 블록 어드레스(logical block address: LBA)가 NAND 블록의 특정한 물리적 위치로 매핑되는 경우, 블록 내에서의 바이어싱 조건 때문에, 선택되지 않은 워드 라인 상에서 스트레스가 야기될 수도 있고 메모리 셀은 서로로부터 바이어싱될 수도 있다.
교차 온도 효과는, Vt에 영향을 끼치는 NAND 플래시 디바이스 상에서 발생하는 스트레스의 다른 예이다. 교차 온도 효과는 NAND 블록에서 셀 Vt에서의 시프트를 야기하는데, 기록의 시간과 판독의 시간 사이의 온도 차이의 결과로서, 양 또는 음의 Vt 시프트를 갖는다. 예를 들면, 데이터가 NAND 플래시 디바이스(예를 들면, SSD 드라이브, 또는 SD/MMC 카드)에 기록될 때, 데이터를 판독하는 데 필요한 Vt는, 데이터가 기록되었던 때의 주변 온도에 기초한다. 그러나, 데이터가 장기간 동안 플래시 디바이스 상에서 상주하여 유지될 수도 있기 때문에, 플래시 디바이스는 동일한 온도에서 판독될 가능성이 없다.
블록을 판독하기 위해 사용되는 판독 전압과 특정한 블록에 대한 Vt 사이의 불일치는 데이터 에러로 나타날 것이다. 데이터 에러의 하나의 표현인 실패 비트 카운트(fail bit count)는 NAND 스토리지 시스템에서 "원시 비트 에러율(raw bit error rate)"(RBER)로서 측정될 수도 있다. 결과적으로, RBER은 판독 전압과 Vt 사이의 불일치의 함수를 제공한다. 따라서 많은 현존하는 NAND 플래시 기반의 스토리지 시스템의 동작에서, RBER은 판독 전압이 부정확한지의 여부, 및 전압 캘리브레이션이 수행되어야 하는지의 여부를 결정하는 측정치를 제공한다.
판독 전압 캘리브레이션의 사용을 통해, Vt에 따라 판독 전압을 조정하는 것에 의해 RBER은 최소화될 수 있다. 반응성(reactive) 또는 사전 조치의(proactive) 방법을 사용하여 판독 전압 캘리브레이션이 개시될 수도 있다. 반응성 방법에서는, 호스트 판독 IO 동안 발생한 판독 에러에 응답하여 판독 전압 캘리브레이션이 수행된다. 반응성 방법은 판독 에러에 응답하여 판독 전압을 직접적으로 캘리브레이팅하기 위해, 대상으로 된 기준을 사용한다. 대조적으로, 판독 전압 캘리브레이션을 위한 사전 조치의 방법은 샘플링 접근법을 사용하여 평균 Vt 시프트를 주기적으로 추적하고, 중대한 에러가 발생하기 이전에 캘리브레이션을 론칭한다. 판독 레벨 캘리브레이션을 사전 조치의식으로 수행하기 위한 현존하는 접근법은 상이한 판독 전압에서의 RBER의 샘플링, 및 RBER을 최적화(예를 들면, 감소)시키기 위해 가장 최적의 판독 전압을 선택하는 것을 수반한다. 예를 들면, 스토리지 디바이스 펌웨어는, NAND 메모리 어레이 내의 다양한 위치 중의 다수의 페이지를 스캔하는 것, 다양한 판독 전압에서 다수의 페이지에서 판독을 수행하는 것, 결과적으로 나타나는 RBER을 측정하는 것, 및 판독 전압 중 최소의 에러 레이트를 갖는 판독 전압을 선택하는 것에 의해 NAND 판독 전압을 캘리브레이팅할 수도 있다.
따라서, 판독 전압 캘리브레이션의 주요 목적은 호스트 판독 IO 동안 발생할 시스템에 대한 에러 핸들링 트리거 레이트를 최소화하는 것이다. 사전 조치의 판독 전압 캘리브레이션 프로세스에서, 평균 임계 전압을 결정하기 위해, 그리고 메모리 디바이스의 다양한 블록에 대한 평균 Vt 시프트를 주기적으로 추적하기 위해 메모리 디바이스의 다양한 블록이 샘플링된다. (예를 들면, 플래시 디바이스에서 대다수 블록을 샘플링하는 것에 의해) 판독 전압 캘리브레이션에서 사용되는 블록 샘플링 기준은 결과적으로 나타나는 판독 전압 설정의 정확도에 영향을 끼친다. 예를 들면, 많은 판독 전압 캘리브레이션 기술은 블록의 랜덤 샘플링 또는 데이터 연령 기반의 샘플링을 활용하는데, 이것은 전압 캘리브레이션을 플래시 디바이스의 대다수 상태에 상관시키는 경향이 있다. 그러나, 플래시 디바이스의 대다수 상태는 플래시 디바이스 상에서 특정한 시간에 호스트 판독 IO에 의해 액세스되는 대다수 블록에 반드시 대응할 필요는 없다. 따라서, 사전 조치의 판독 전압 캘리브레이션을 위한 대다수 상태 기반의 샘플링 기준에 대한 현존하는 접근법은 에러 핸들링 트리거 레이트 및 RBER을 감소시킴에 있어서 완전히 효과적이지 않을 수도 있다.
샘플링이 효과적이지 않을 수도 있는 이유의 간단한 설명은, 호스트 판독 IO의 위치에 대응하는 Vt가 스토리지 디바이스의 대다수 상태를 샘플링하는 것으로부터 결정되는 전압 설정과 반드시 정렬되지 않을 수도 있기 때문이다. 예를 들면, SSD 드라이브가, 전체 드라이브 공간의 최대 70 %를 차지하는, 호스트에 의해 거의 액세스되지 않는 아카이브된 미디어 파일(archived media file)을 저장하는 시나리오를 고려한다. 그러나, 호스트는 드라이브 공간의 나머지 30 % 상에 있는 다른 파일에 상대적으로 빈번하게 액세스한다. 이 시나리오에서, 블록의 랜덤 샘플링에 기초하여 판독 전압을 캘리브레이팅하는 것은 최적이 아닐 것인데, 그 이유는, 결과적으로 나타나는 캘리브레이션이 아카이브된 미디어 파일의 존재를 과도하게 보상하는 경향이 있을 것이기 때문이다. 따라서, 드라이브의 대다수 상태를 샘플링하는 것에 기초하여 판독 전압을 캘리브레이팅하는 것은, 호스트 IO 및 호스트 데이터의 가장 빈번하게 액세스된 부분과 관련되는 임계 전압을 정확하게 조정하지 않을 수도 있다 - 따라서 에러 핸들링 트리거를 감소시키지 않을 수도 있다.
본 명세서에서 논의되는 기술은 판독 전압 캘리브레이션을 위한 샘플 블록을 선택하기 위해 호스트 판독 IO의 물리적 풋프린트의 실시간 사용을 포함한다. 호스트 IO 기반의 샘플링에서, 메모리 디바이스의 컨트롤러는 페이지, 워드 라인, 또는 물리적 블록 레벨에서 호스트 IO 풋프린트를 추적하고, 판독 전압 캘리브레이션 블록 샘플링 후보를 식별하기 위해 이 추적된 정보를 사용한다. 컨트롤러는 가장 빈번하게 판독된 데이터에 기초하여 판독 전압을 캘리브레이팅하고, 따라서 트리거 레이트를 감소시킨다. 일례에서, 이 추적 기술은 후속하는 샘플링을 위해 호스트 IO 동작에서 사용되는 판독 위치 및 판독 주파수를 추적하는 것, 및 그러한 위치에서 발생하는 에러율을 모니터링하는 것을 수반할 수도 있다. 또한, 일례에서, 이 추적 기술은 메모리의 특정한 단위(예를 들면, 페이지, 블록, 다이 등)에 대한 판독 또는 소거의 횟수를 추적하는 것을 수반할 수도 있다.
호스트 IO의 물리적 풋프린트를 사용하는 것에 의해, 메모리 디바이스는 판독 집약적인 애플리케이션을 위한 NAND Vt 이동뿐만 아니라, 대상으로 된 벤치마크 스트레스 조건을 더욱 효과적으로 검출하고 캘리브레이팅하도록 동작할 수도 있다. 게다가, 메모리 디바이스는, 최상의 가능한 판독 성능을 위해 NAND 판독 전압을 캘리브레이팅하기 위해 호스트 IO에 의해 가장 빈번하게 액세스되는 메모리의 블록 또는 다른 물리적 단위를 선호하는 더 스마트한 블록 샘플링 기준을 활용할 수도 있다.
따라서 본 명세서에서 논의되는 기술은 물리적 레벨에서 NAND Vt 시프트를 호스트 판독 IO 풋프린트와 정렬시키는 것에 의해 에러 핸들링 트리거 레이트를 개선시킨다. 그 기술은 또한, 일반 사용자 작업 부하에 대해 최소의 또는 제로의 영향을 가지면서, 현존하는 캘리브레이션 접근법과 대비하여 대상으로 된 벤치마크에 대해 개선된 판독 성능/레이턴시를 달성한다. 추가적으로, 그 기술은 대상으로 된 벤치마크 및 사용자 작업 부하에 기인하여 NAND 트리거 레이트 요건을 완화시키는 것을 돕는데, 이것은, 다르게는 NAND 내구성 또는 성능 페널티를 초래할 수도 있는 NAND 과설계를 제거하는 것을 돕는다.
도 5는 본 명세서에서 논의되는 판독 전압 캘리브레이션 최적화를 구현하도록 적응되는 메모리 디바이스(510)(예를 들면, SSD 스토리지 디바이스, SD/MMC 카드 등)를 포함하는 예시적인 시스템(500)의 블록도를 제공한다. 도시되는 바와 같이, 메모리 디바이스(510)는 다수의 다이(다이 1-N)를 갖는 NAND 메모리 어레이(530)를 포함하는데, 각각의 다이는 하나 이상의 블록(블록 1-N)을 포함한다. 하나 이상의 블록의 각각은 블록당 하나 이상의 페이지(도시되지 않음)와 같은 추가로 분할된 부분을 포함할 수도 있고; 하나 이상의 페이지의 각각은 페이지당 하나 이상의 워드 라인(도시되지 않음)으로 추가로 분할될 수도 있고; 워드 라인의 각각은 하나 이상의 메모리 셀(도시되지 않음)로 분할될 수도 있다.
일례에서, 메모리 어레이(530)의 메모리 셀 블록은 다음의 것 중 적어도 하나의 그룹을 포함한다: 단일 레벨 셀(SLC), 다층 셀(multi-layer cell: MLC), 삼중 층 셀(triple-layer cell: TLC), 또는 사중 층 셀(quad-layer cell: QLC) NAND 메모리 셀. 또한, 일례에서, 메모리 어레이(530)는 삼차원(3D) NAND 다이의 스택으로 배열되고, 그 결과, 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹은 3D NAND 다이의 스택 내의 각각의 다이에 의해 제공되는 블록의 그룹의 멤버이다. 메모리 어레이(530)의 이들 구성 및 추가적인 상세한 컴포넌트는 간략화를 위해 도 5에서 예시되지 않는다. 그러나, 메모리 어레이(530)는 3D NAND 아키텍처 디바이스 또는 다른 형태의 NAND 스토리지 디바이스의 피처를 참조하여 상기에서 설명되는 이들 또는 임의의 피처를 통합할 수도 있다.
메모리 디바이스(510)는 컨트롤러(540)를 통해 호스트(520)에 동작 가능하게 커플링되는 것으로 도시되어 있다. 컨트롤러(540)는, 판독, 기록, 소거하는 판독 동작, 기록 동작, 소거 동작, 및 등등, 및 메모리 어레이(530) 내에서의 유사한 동작과 같은 호스트 커맨드(525)를 수신 및 처리하도록 적응된다. 메모리 디바이스(510)에 대한 다양한 다른 컴포넌트(예컨대, 메모리 매니저, 및 다른 회로부 또는 동작 컴포넌트) 및 컨트롤러(540)도 또한 간략화를 위해 묘사되지 않는다.
컨트롤러(540)는, 메모리 어레이(530)의 관리 및 사용을 위한 제어 동작(542)을 수행하는 명령어(예를 들면, 저장 매체(548)에 의해 호스팅되고, 메모리(544) 안으로 로딩되며, 처리 회로부(546)에 의해 실행되는 명령어)를 실행하기 위해 사용되는, 메모리(544)(예를 들면, 휘발성 메모리), 처리 회로부(546)(예를 들면, 마이크로프로세서), 및 저장 매체(548)(예를 들면, 불휘발성 메모리)를 포함하는 것으로 묘사된다. 컨트롤러(540)에 의해 수행되는 또는 촉진되는 제어 동작(542)은, 다양한 타입의 하드웨어, 펌웨어, 및 소프트웨어 기능성(예를 들면, 하드웨어로 구현되는 로직, 특별히 프로그래밍된 모듈 등)으로부터 제공될 수도 있다.
제어 동작(542)에 의해 제공되는 기능성은 다음의 것을 포함할 수도 있다: IO 동작 모니터링(550)(예를 들면, 호스트 커맨드로부터 유래하는 판독 및 소거 동작을 모니터링함); 호스트 동작 처리(560)(예를 들면, 호스트 커맨드(525)를 해석 및 처리하고, 추가적인 커맨드를 메모리 어레이(530)에 발행하여 각각의 판독, 기록, 소거, 또는 다른 호스트 개시 동작을 수행함); 판독 전압 제어(570)(예를 들면, 메모리 어레이(530)의 특정한 부분을 판독하기 위한 판독 전압 레벨을 확립, 설정, 및 활용함); 판독 레벨 캘리브레이션(580)(예를 들면, 메모리 어레이(530)의 특정한 부분 또는 부분들의 새로운 판독 전압 레벨을 식별하기 위한 캘리브레이션 프로시져를 수행함); 및 에러 검출 처리(590)(예를 들면, 판독 동작에서 획득되는 데이터로부터 에러를 식별 및 정정하고, 특정한 판독 동작 또는 동작의 세트에 대한 하나 이상의 RBER(들)을 식별함 등).
일례에서, IO 동작 모니터링(550)은 메모리 어레이에 대한 판독 및 기록을 추적하도록, 그리고 또한 전압 레벨 및 캘리브레이션에 관련이 있는 수반하는 판독 동작 및 기록 동작을 추적하도록 동작한다. 게다가, IO 동작 모니터링(550)은 메모리 어레이(530) 내에서의 다양한 블록 및 블록 동작의 특성을 식별할 수도 있고, 빈번한 판독 또는 소거 동작을 받게 되는 블록(예를 들면, 다른 블록보다 더 빈번하게 판독되는 블록, 또는 다른 블록보다 더 많은 횟수 소거된 블록)을 식별할 수도 있다. 아래의 도 6에서 논의되는 예에서 추가로 상술되는 바와 같이, 이것은, 페이지, 블록, 또는 다이 레벨에서 확립되는, IO 동작에 대해 확립되는 카운터, 예컨대 각각의 블록 또는 다이에 대해 발생하는 판독의 횟수를 측정하기 위한 판독 카운터, 또는 각각의 블록에 대해 발생하는 소거의 횟수를 측정하기 위한 소거 카운터의 사용을 포함할 수도 있다. 이들 카운터는, 하기의 도 6의 예에서 논의되는 바와 같이, 캘리브레이션을 위한 트리거, 캘리브레이션에서 수행되는 샘플링 동작에 대한 데이터 입력으로서 사용될 수도 있다.
일례에서, 판독 전압 제어(570)는 (메모리 어레이(530) 내의 각각의 블록과 같은) 메모리의 특정한 영역을 판독하기 위해 사용되는 전압 값을 확립, 변경, 및 제공하기 위해 사용된다. 예를 들면, 판독 전압 제어(570)는, 각각의 메모리 셀 및 각각의 메모리 셀을 포함하는 기억 장소(예를 들면, 페이지, 블록, 다이)를 판독하기 위해, 다양한 양의 또는 음의 오프셋을 구현할 수도 있다.
일례에서, 판독 레벨 캘리브레이션(580)은 판독 전압 제어(570)에 의해 구현되는 판독 전압의 값을 확립(예를 들면, 변경, 업데이트, 리셋 등)하기 위해 사용된다. 판독 레벨 캘리브레이션(580)은 메모리 어레이(530) 상에서 수행되는 다수의 샘플링 커맨드(585), 예컨대 다양한 전압에서 메모리 어레이의 다수의 영역으로 발행되는 샘플링 커맨드를 통해 구현될 수도 있는데, 그 샘플링 커맨드는 그들 영역의 Vt에 대해 최적화되는 판독 전압을 결정하려고 시도한다. 판독 레벨 캘리브레이션(580)은, 호스트 동작 처리(560) 또는 에러 검출 처리(590)의 피처와 관련하여 동작할 수도 있다. 예를 들면, 호스트 동작 처리(560)는 샘플링을 위한 기억 장소를 그들 장소에 대한 IO 판독 동작에 기초하여 식별할 수도 있고; 또한, 예를 들면, 에러 검출 처리(590)는, 특정한 임계치를 초과하는 것과 같은 판독 데이터의 에러 또는 에러 레이트의 특정한 조건에 응답하여 판독 레벨 캘리브레이션(580)을 트리거할 수도 있다.
일례에서, 판독 레벨 캘리브레이션(580)은, 그러한 다이 내의 모든 기억 장소(예를 들면, 블록, 페이지, 셀)에 대해, 다이 단위 기반으로 수행된다. 다른 예에서, 판독 레벨 캘리브레이션(580)은, 하나 이상의 캘리브레이션 동작(예를 들면, 일련의 캘리브레이션 동작)을 통해, 메모리 어레이의 다수의 영역(예를 들면, 다수의 다이)에 대해 수행된다. 또한 일례에서, 에러 검출 처리(590)는 RBER, 복구 불가능한 비트 에러율(unrecoverable bit error rate: UBER), 또는 메모리 셀, 셀의 그룹, 또는 메모리 어레이의 더 큰 영역에 대한 다른 측정치 또는 에러 조건(예를 들면, 블록, 블록의 그룹, 다이, 다이의 그룹 등으로부터의 평균 또는 샘플)을 검출할 수도 있다. 또한 일례에서, 에러 검출 처리(590)는 판독 레벨 캘리브레이션(580)으로 캘리브레이션 동작의 트리거를 지원하도록, 또는 IO 동작 모니터링(550)으로 추적 동작의 트리거를 지원하도록 동작할 수도 있다.
일례에서, IO 동작 모니터링(550)을 통해 결정되는 데이터는 판독 레벨 캘리브레이션(580)에 의해 수행되는 전압 캘리브레이션 동작의 특성을 변경하기 위해 사용된다. 예를 들면, (예를 들면, 빈번하게 판독되고 있는 블록을 추적하는) IO 동작 모니터링(550)으로부터 추적되는 특정한 기억 장소는 판독 레벨 캘리브레이션(580) 내에서 샘플링 위치로서 활용될 수도 있다. 또한, 예를 들면, IO 동작 모니터링(550)에 의해 추적되는 바와 같은 기억 장소의 판독으로부터 결정되는 조건(예를 들면, 각각의 블록이 반복적으로 판독되고, 각각의 블록이 높은 에러율을 가지고 판독되고, 각각의 블록이 반복적으로 소거됨)도 또한 판독 레벨 캘리브레이션(580)에 트리거, 제어, 또는 다른 입력을 제공할 수도 있다.
또 다른 예에서, IO 동작 모니터링(550)으로부터 추적되고 있는 특정한 기억 장소 또는 IO 동작 모니터링(550)에 의해 추적되고 있는 기억 장소의 조건은, 잘못 캘리브레이팅된 기억 장소로부터의 판독 전압 편차의 가능성을 결정하기 위해 에러 검출 처리(590)에 의해 활용될 수도 있다. 따라서, IO 동작 모니터링(예컨대, 550), 호스트 동작 처리(560), 및 에러 검출 처리(590)의 피처는, 판독 레벨 캘리브레이션 동작을 트리거하기 위해, 그리고 판독 레벨 캘리브레이션 동작의 특성(예컨대 샘플링 위치)을 식별하기 위해 공동으로 동작할 수도 있다.
본 명세서에서 논의되는 바와 같이, 판독 레벨 캘리브레이션(580)은 호스트 IO 판독 동작 풋프린트로부터 유래하는 데이터 패턴 및 데이터 활동에 기초하여 동작을 수행한다. 이 풋프린트는 LBA 어드레스로부터의 기억 장소의 논리적 대 물리적 매핑(logical to physical mapping)을 이용하는데, 물리적 매핑이 메모리의 연속적인, 상이한, 또는 심지어 랜덤 블록 사이에서 확산될 수도 있기 때문이다. 본 명세서에서 논의되는 기술은, LBA 어드레스(논리적) 레벨이 아니라, 오히려, 메모리 셀, 페이지 또는 블록(물리적) 레벨에서 판독 동작을 추적할 수 있다. 따라서, 다수의 블록 및 다이에 걸쳐 있는 LBA 어드레스의 기억 장소에 대한 판독 동작에 기초하여 전압 캘리브레이션이 발생할 수 있다.
추가적으로, 본 명세서에서 논의되는 기술은, 후속하는 및 진행 중인 판독 동작을 캘리브레이팅하기 위해, 조건부 블록 샘플링으로부터의 호스트 IO의 물리적 풋프린트를 활용할 수도 있다. 이 접근법은, 고객이 소정의 벤치마크, 사용자 패턴, 판독 액세스 패턴에 대한 판독 전압을 최적화하기를 의도하는 경우 유용할 수도 있다. 본 명세서에서 논의되는 기술은 다수의 기억 장소 사이에서 각각의 기억 장소 및 데이터의 청크(chunk)에 대한 판독 전압 레벨의 세부적인 추적을 제공할 수도 있고, 따라서, 캘리브레이션 기술이 더욱 효율적이고 목표가 정해진 양식으로 관련 영역에 대한 노력을 집중하는 것을 허용할 수도 있다.
본 명세서에서 논의되는 기술에 부가하여, 다양한 현존하는 캘리브레이션 접근법이 판독 레벨 캘리브레이션(580)과 관련하여 통합되고 사용될 수도 있다. 예를 들면, IO 동작에서 수반되는 특정한 기억 장소를 샘플링하는 것 외에도, 판독 레벨 캘리브레이션(580)은 다음의 것에 기초하여 샘플링을 위한 위치를 추가적으로 획득할 수도 있다: 메모리 어레이 내의 다른 블록의 랜덤 샘플링, 데이터 연령에 기초한 메모리 어레이 내의 다른 블록의 샘플링, 또는 다른 블록에 대응하는 원시 비트 에러율(RBER)에 기초한 메모리 어레이 내의 다른 블록의 샘플링.
도 6은 판독 전압 캘리브레이션을 위한 최적화된 기술을 수행하도록 적응되는 예시적인 메모리 디바이스 구성의 동작 시퀀스 다이어그램(600)을 예시한다. 도시되는 바와 같이, 호스트(520)는 컨트롤러 로직(630)의 동작을 통해 NAND 메모리 어레이(530)에 동작 가능하게 커플링된다. 일례에서, 컨트롤러 로직(630)은, 예컨대 NAND 메모리 어레이(530)에 대한 판독 및 기록 커맨드를 수행하는 것에 의해, 대상 메모리의 관리, 제어, 및 액세스를 위한 커맨드를 구현한다.
일례로서, 호스트(520)로부터 수신되는 판독 또는 기록 커맨드는 컨트롤러 로직(630)에 의해 해석되어 판독 또는 기록 커맨드에 대한 메모리 어레이 내의 기억 장소를 식별하는데, 이것은, 그 다음, 메모리 어레이(530)의 식별된 기억 장소에 대한 각각의 판독 및 기록 동작으로 나타난다. 마찬가지로, 예컨대 FW 스캔, 폐영역 회수(garbage collection), 및 등등으로부터, 컨트롤러 동작(640)의 일부로서 개시되는 플래시 변환 층(Flash Translation Layer: FTL) 판독 및 기록 커맨드는 또한, 메모리 어레이(530)의 기억 장소 사이에서 각각의 판독 및 기록 동작으로 나타난다. 게다가, 예컨대 본 명세서에서 논의되는 전압 레벨 캘리브레이션 기술과 함께, 판독 레벨 캘리브레이션(580)의 일부로서 개시되는 시스템 판독 레벨 캘리브레이션 커맨드는 메모리 어레이(530)의 기억 장소 사이에서 다양한 판독 동작으로 나타난다. 다수의 다른 메모리 디바이스 관리 동작 및 커맨드는 간략화의 목적을 위해 다이어그램(600)에서 예시되지 않는다.
일례에서, 판독 동작 및 소거 동작(예를 들면, 메모리의 영역을 재기록하는 기록 동작을 통해 구현되는 소거 동작)은 판독 레벨 캘리브레이션(580)과 관련하여 추적된다. 추적된 판독 동작 및 소거 동작은, 메모리의 특정한 영역에서, Vt로부터의 상당한 편차가 발생하였다는 것, 또는 발생할 가능성이 있다는 것을 검출하기 위해 판독 레벨 캘리브레이션(580)에 의해 활용될 수도 있다. 예를 들면, 판독을 반복했던 블록은 판독 방해 스트레스를 조우할 가능성이 있을 수도 있다. 마찬가지로, 반복적으로 삭제된 블록은, 더 높은 레벨의 마모를, 따라서 더 높은 실패 비트 카운트를 조우할 가능성이 있다. 결과적으로, 메모리의 특정한 블록 또는 다른 영역에 대해 발생하는 판독의 횟수 및 소거의 횟수는, 판독 레벨 캘리브레이션(580)을 사용한 전압 레벨 조정 동작을 수행하기 위한 트리거로서, 또는 기여 입력 또는 조건으로서 추적 및 사용될 수도 있다.
일례에서, NAND 소거 카운터(610)는 메모리 어레이(530)의 특정한 기억 장소(또는 추가적으로, 다수의 기억 장소)에 대한 소거 카운트를 추적하기 위해 사용된다. 예를 들면, 소거 카운터(610)는 블록 레벨에서, 또는 소거 동작이 구현되는 메모리 어레이(530) 내의 다른 레벨에서 소거 동작을 추적할 수도 있다. 결정된 임계치(ThresholdE)를 초과하는 각각의 블록에 대한 소거 카운트에 응답하여(결정(615)), 각각의 블록에 대한 판독 레벨 캘리브레이션(580)을 수행하는 동작이 개시될 수도 있다.
마찬가지로, 일례에서, NAND 판독 카운터(620)는 메모리 어레이(530)의 특정한 기억 장소(또는 추가적으로, 다수의 기억 장소)에 대한 판독 카운트를 추적하기 위해 사용된다. 예를 들면, 판독 카운터(620)는 블록 레벨에서, 또는 판독 동작이 구현되는 메모리 어레이 내의 다른 레벨에서(예를 들면, 다이마다) 판독 동작을 추적할 수도 있다. 또 다른 예에서, 판독 레벨 캘리브레이션(580)은 다이마다 수행되고, 따라서, NAND 블록 판독 카운터(620)는 각각의 다이 내의 모든 블록에 대한 판독의 측정치를 집성하기 위해 사용된다. 일례에서, 판독 카운터(620) 및 소거 카운터(610)는 스토리지 디바이스의 DRAM(예를 들면, 메모리(544))에 저장된다. 결정된 임계치(ThresholdR)을 초과하는 각각의 블록 또는 다이에 대한 판독 카운트에 응답하여(결정(625)), 각각의 블록 또는 다이에 대한 판독 레벨 캘리브레이션(580)을 수행하는 동작이 개시될 수도 있다.
일례에서, 판독 카운터(620)는, 특정한 블록 또는 다이가 판독 사용량에 기인하여 전압 시프트를 경험할 가능성이 있는지(따라서, 판독 전압 캘리브레이션을 필요로 할 가능성이 더 높은지)의 여부를 식별하기 위해, 판독 레벨 캘리브레이션(580)에 가중치로서 제공된다. 또한 일례에서, 소거 카운터(610)는, 특정한 블록이 전압 시프트를 경험할 가능성이 있는지의 여부의 추가적인 가중치를 제공하기 위해, 판독 레벨 캘리브레이션(580)에 대한 보조 메트릭으로서 판독 카운터(620)와 조합하여 사용된다. 그러나, 다른 예에서, 판독 카운터(620) 및 소거 카운터(610)는 판독 레벨 캘리브레이션(580)에 의한 전압 조정으로 나타나는 트리거에 대한 임계치로서 사용된다.
또 다른 예에서, 메모리 어레이(530)에서의 판독 또는 소거 동작의 추적 세분성(tracking granularity) 또는 추적 빈도는, 개개의 블록 또는 블록의 그룹(다이)을 추적하기 위해 사용되는 오버헤드(예를 들면, 프로세서 및 메모리 동작)를 감소시키도록 조정될 수도 있다. 예를 들면, 개개의 판독 동작은, 개개의 블록 또는 페이지 레벨이 아닌, 다이 레벨에서 추적될 수도 있거나; 또는, 모든 블록이 아닌, 블록의 그룹 내의 x 블록마다 분석 및 추적될 수도 있거나; 또는, 각각의 모든 판독 동작이 아닌, n 개의 판독 동작마다 분석 및 추적될 수도 있다.
일례에서, 판독 레벨 캘리브레이션(580)은, 식별된 위치(및 적용 가능한 경우, 메모리 어레이의 다른 위치)에 액세스하기 위한 전압 레벨을 결정하기 위해, 메모리 어레이 내의 다수의 식별된 위치의 임계 전압의 샘플링을 수행한다. 이 시나리오에서, (예를 들면, 결정(615)으로부터) 특정한 기억 장소의 소거 임계치를 초과하는 것 또는 (예를 들면, 결정(625)으로부터) 판독 임계치를 초과하는 것은 판독 레벨 캘리브레이션(580)을 직접적으로 트리거 또는 활성화하지 않을 수도 있고; 대신, 특정한 기억 장소는 판독 레벨 캘리브레이션(580)에 의해 사용되는 샘플링 위치(650)의 세트에 추가될 수도 있는데, 캘리브레이션은 다른 조건(예를 들면, 결정된 임계치를 초과하는 RBER 레이트)으로부터 트리거 또는 활성화된다. 샘플링 위치(650)의 추적은, 주파수, 에러 레이트, 또는 등등에 기초하여 소정의 기억 장소를 우선시하는 것을 비롯하여, 임의의 수의 기술을 사용하여 구현될 수도 있다.
또 다른 예에서, 메모리 어레이 내의 다른 위치(예를 들면, (결정(625)으로부터) 판독 임계치를 초과하는 것으로 또는 (결정(615)으로부터) 소거 임계치를 초과하는 것으로 식별되지 않는 위치)가 식별되어 샘플링 위치(650)의 세트에 추가될 수도 있다. 이들은 다음의 것 중 하나 이상에 기초하여 결정되는 하나 이상의 위치를 포함할 수도 있다: 특정한 위치에서 발생하는 판독 동작의 원시 비트 에러율(RBER); 데이터 연령; 또는 랜덤 샘플링.
여전히 또 다른 예에서, 판독 레벨 캘리브레이션(580)에 의해 수행되는 샘플링 동작은, 예컨대 다음의 것의 명세(예를 들면, 결정된 설정 또는 계산)로부터의 구성을 허용할 수도 있다: 샘플링되는 데이터(예를 들면, 페이지, 블록, 블록의 그룹, 다이에 대응하는 데이터)의 사이즈; 샘플링되는 페이지의 총 수; 샘플링되는 블록 내의 페이지의 수; 소정의 셀, 페이지, 블록, 다이, 또는 소정의 타입의 그러한 셀, 페이지, 블록, 다이가 샘플링되는지 또는 샘플링되지 않는지의 여부; 및 등등. 마찬가지로, 판독 레벨 캘리브레이션(580)에 의해 수행되는 샘플링은, 스토리지 디바이스의 실세계의 실제의 또는 예상된 사용량과 매치하도록, 소정의 벤치마크, 사용자 패턴, 판독 액세스 패턴, 또는 다른 특성에 따라 조정될 수도 있다.
또한 또 다른 예에서, 카운터(610, 620)는 컨트롤러 내의 관리된 동작(예를 들면, 컨트롤러 동작(640))의 결과로서 감소될 수도 있거나 또는 리셋될 수도 있다. 예를 들면, 특정한 블록의 폴딩(folding)은 블록의 폐영역 회수, 통합 및 소거를 초래할 것이고, 특정한 블록에 대한 소거 카운터(610)의 증분 및 판독 카운터(620)의 리셋으로 나타날 것이다. 판독 카운터(620)의 리셋은, 특히, 블록이 소거되고 메모리 셀이 자신의 원래의 상태로 복귀할 때 판독 방해, 데이터 유지, 및 교차 온도 효과가 일반적으로 제거되기 때문에, 발생할 수도 있다. 호스트 IO와 함께 수반되는 특정한 기억 장소의 판독 또는 소거를 강조 또는 강조 해제하기 위한 다른 기술이 또한 카운터(610, 620), 샘플링 위치(650), 및 판독 레벨 캘리브레이션(580)과 함께 활용될 수도 있다.
도 7은 판독 전압 캘리브레이션을 위한 최적화된 기술을 수행하도록 적응되는 동작의 예시적인 세트의 플로우차트(700)를 예시한다. 일례에서, 플로우차트(700)의 동작은, 소프트웨어, 펌웨어, 또는 구성된 하드웨어에서의 실행된 동작의 조합을 통해, 스토리지 디바이스의 컨트롤러(예를 들면, 컨트롤러(115, 540))에 의해 구현될 수도 있다. 그러나, 다음의 기술 중 일부 또는 모든 양태는, 다른 커맨드, 제어, 및 편성(orchestration)의 형태와 관련하여 (예를 들면, 호스트에 의해 개시되는 바와 같이) 다른 컴포넌트에 의해 구현될 수도 있다.
일례에서, 플로우 차트(700)의 동작은 메모리 디바이스에서 구현될 수도 있는데, 메모리 디바이스는 메모리 셀의 다수의 블록의 그룹을 구비하는 NAND 메모리 어레이, 및 메모리 어레이에 동작 가능하게 커플링되는 메모리 컨트롤러를 포함하고, 메모리 컨트롤러는 각각의 동작을 수행하도록 적응(예를 들면, 구성, 배열, 프로그래밍)된다. 다른 예에서, 플로우차트(700)의 동작은 NAND 메모리 어레이의 메모리 컨트롤러에 의해 또는 그 상에서 수행되는 방법에서 구현될 수도 있는데, 메모리 어레이는 메모리 셀의 다수의 블록의 그룹을 구비한다. 일례에서, 플로우차트(700)의 동작은 디바이스 판독 가능 저장 매체에서 구현될 수도 있는데, 디바이스 판독 가능 저장 매체는, 실행 시(예를 들면, 메모리 디바이스의 컨트롤러에 의한 실행 시) 각각의 동작을 수행하는 명령어를 제공한다.
플로우차트(700)는, 특정한 메모리 어드레스에 대해 발생하는 판독 및 소거 동작과 같은, IO 동작의 모니터링으로 시작하는 것으로 도시된다(동작(710)). 이 모니터링 다음에, 판독 또는 소거 동작의 메모리 어드레스(예를 들면, LBA)에 대응하는 메모리 어레이(예를 들면, 각각의 블록)에서의 특정한 위치의 식별이 후속된다(동작(720)). 예를 들면, 판독 및 소거 동작의 모니터링은, 메모리 어레이의 각각의 블록에 대해 판독이 발생하였는지의 여부를 결정할 수도 있는데, 이 각각의 블록은, 식별된 위치(예를 들면, LBA가 매핑하는 메모리 어레이 내의 위치)에 대응하는 페이지를 포함하는 블록에 기초하여 식별된다.
플로우차트(700)는 메모리 내의 특정한 위치(예를 들면, 각각의 블록 또는 블록의 그룹)에 대해 발생하는 IO 동작의 카운트를 계속 추적한다. 묘사되는 바와 같이, 추적은 판독 카운터를 사용한 기억 장소에 대한 판독 카운트의 추적(동작(730)) 및 소거 카운터를 사용한 기억 장소에 대한 소거 카운트의 추적(동작(740))을 포함할 수도 있다. 이들 카운트는, 도 6에 대해 위에서 나타낸 바와 같이, 판독 카운터 및 소거 카운터에서 각각 구현될 수도 있다. 예를 들면, 기억 장소에 대한 판독의 횟수는 메모리 컨트롤러에 의해 액세스 가능한 메모리에서 유지되는 제1 카운터에서 추적될 수도 있고, 기억 장소에 대한 소거의 횟수는 메모리 컨트롤러에 의해 액세스 가능한 메모리에서 유지되는 제2 카운터에서 추적될 수도 있다. 일례에서, 판독 카운트의 추적은 각각의 블록 레벨에서 추적되고, 소거 카운트의 추적은 각각의 블록 레벨에서 추적된다. 다른 예에서, 판독 카운트의 추적은 다이 레벨에서(예를 들면, 복수의 블록을 포함하는 다이에 대해) 추적된다. 또한, 일례에서, 기억 장소에 대해 발생하는 소거(예를 들면, 각각의 블록의 소거)는 판독 카운터를 리셋하는(예를 들면, 제로로 리셋하는) 동안, 소거 카운터를 증분시킨다. 또 다른 예에서, (동작(740)에서) 소거 카운트의 추적이 옵션 동작이 되는 것을 허용하면서, 소거 카운터는 구현되거나 또는 활용되지 않는다.
플로우차트(700)는 판독 레벨 캘리브레이션을 트리거하기 위한 조건의 식별을 계속한다(동작(750)). 일례에서, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은 다음의 것 중 하나 이상에 기초할 수도 있다: 각각의 블록에 대해 발생하는 판독 동작, 판독 카운터의 상태, 또는 소거 카운터의 상태. 일례로서, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은, 메모리 어레이의 각각의 블록에 대한 다수의 판독 동작을 모니터링하는 것의 결과로서 발생할 수도 있다. 또 다른 예에서, 조건은 판독의 결정된 수를 초과하는 각각의 블록에 대해 발생하는 판독의 횟수에 기초하여 식별된다. 또한 일례로서, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은 소거의 결정된 횟수를 초과하는 각각의 블록에 대한 소거의 횟수에 기초하여 식별될 수도 있다.
추가적인 예에서, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은, 다수의 블록의 그룹(각각의 블록을 호스팅하는 그룹)에 대해 발생하는 판독의 횟수를 추적하여 판독이 판독의 결정된 횟수를 초과하는 때의 조건을 식별하는 것과 같은, 각각의 블록이 아닌 다수의 블록의 그룹의 평가에 기초하여 발생할 수도 있다. 또한 추가적인 예에서, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은, 메모리 어레이의 적어도 각각의 블록에 대해 발생하는 판독 동작의 원시 비트 에러율(RBER)에 기초하여 발생할 수도 있다.
(동작(750)으로부터의) 식별된 조건에 응답하여, 판독 레벨 캘리브레이션 동작이 메모리 디바이스에 대해 수행될 수도 있다(동작(760)). 일례에서, 판독 레벨 전압 캘리브레이션 동작은, 임계 전압 값을 샘플링하고 판독 전압 레벨을 결정하기 위해, 메모리 어레이의 다양한 영역의 샘플링을 수행하는 것을 포함한다. 일례에서, 그러한 샘플링은, 모니터링된 판독 동작으로부터 식별되는 각각의 블록의 임계 전압 레벨의 샘플링을 포함한다. 다른 예에서, 그러한 샘플링은 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹의 임계 전압 레벨의 샘플링을 포함한다.
판독 레벨 캘리브레이션 동작은, 각각의 블록에 대한 임계 전압(들)을 더욱 정확하게 반영하는 판독 전압에 대한 하나 이상의 값을 결정하고; 결국에는, 각각의 블록의 하나 이상의 페이지(들)를 판독하기 위해 사용되는 판독 전압 레벨(들)은 이 값을 사용하여 업데이트된다(동작(770)). 그 다음, 업데이트된 판독 전압 레벨(들)은, 각각의 블록으로 하나 이상의 페이지를 판독하기 위해 사용되는 후속하는 판독 동작에서 활용될 수도 있다(동작(780)). 다른 예에서, 판독 전압 레벨(들)은 (예를 들면, 각각의 다이에 대해) 블록의 그룹에 기초하여 업데이트 및 활용되고; 여전히 다른 예에서, 판독 전압 레벨은 (예를 들면, 블록 내의 각각의 페이지 또는 메모리 셀의 다른 세트에 대해) 각각의 블록의 서브세트에 기초하여 추적, 업데이트, 및 활용된다.
상기에서 논의되는 기술에 기초하여, 판독 전압은, 전체의 부정확한 메모리 어레이 상태가 아닌, 호스트 IO 상태에 기초하여 트리거, 식별, 및 추적될 수도 있다. 따라서, 본 명세서에서 논의되는 기술은 물리적 레벨에서 발생하는 판독의 패턴을 추적하도록 최적화될 수도 있어서, 임의의 결과적으로 나타나는 전압 조정의 정확도를 증가시킬 수도 있다는 것이 이해될 것이다. 게다가, 전압 캘리브레이션을 샘플링하고 트리거링하기 위한 기술은, 종래의 샘플링과 비교하여 최소의 또는 심지어 제로의 영향을 주면서, 현존하는 캘리브레이션 접근법의 사용과 통합되도록 수정될 수도 있다.
도 8은 본 명세서에서 논의되는 기술(예를 들면, 방법론) 중 임의의 하나 이상이 수행될 수도 있는 예시적인 머신(800)의 블록도를 예시한다. 대안적인 실시형태에서, 머신(800)은 독립형 디바이스로서 동작할 수도 있거나 또는 다른 머신에 연결될(예를 들면, 네트워크화될) 수도 있다. 네트워크화된 배치에서, 머신(800)은 서버-클라이언트 네트워크 환경에서 서버 머신, 클라이언트 머신, 또는 둘 모두의 능력에서 동작할 수도 있다. 일례에서, 머신(800)은 피어 투 피어(P2P)(또는 다른 분산된) 네트워크 환경에서 피어 머신으로서 역할을 할 수도 있다. 머신(800)은 개인용 컴퓨터(personal computer: PC), 태블릿 PC, 셋탑 박스(set-top box: STB), 개인 휴대형 정보 단말(PDA), 이동 전화, 웹 어플라이언스(web appliance), IoT 디바이스, 자동차 시스템, 또는 머신에 의해 취해질 액션을 명시하는 명령어(순차적 또는 다른 방식)를 실행할 수 있는 임의의 머신일 수도 있다. 게다가, 단일의 머신만이 예시되어 있지만, 용어 "머신"은 또한, 클라우드 컴퓨팅, 서비스로서의 소프트웨어(Software as a Service: SaaS), 다른 컴퓨터 클러스터 구성과 같은, 본 명세서에서 논의되는 방법론 중 임의의 하나 이상을 수행하기 위해 명령어의 세트(또는 다수의 세트)를 개별적으로 또는 공동으로 실행하는 머신의 임의의 집합(collection)을 포함하는 것으로 간주되어야 할 것이다.
본 명세서에서 설명되는 바와 같은 예는, 로직, 컴포넌트, 디바이스, 패키지, 또는 메커니즘을 포함할 수도 있거나, 또는 이들에 의해 동작될 수도 있다. 회로부는, 하드웨어(예를 들면, 간단한 회로, 게이트, 로직 등)를 포함하는 유형의(tangible) 엔티티에서 구현되는 회로의 집합(예를 들면, 세트)이다. 회로부 멤버는 시간이 지남에 따라 그리고 기저의 하드웨어 가변성에 걸쳐 유연할 수도 있다. 회로부는, 동작 시, 단독으로 또는 조합하여, 특정한 작업을 수행할 수도 있는 멤버를 포함한다. 일례에서, 회로부의 하드웨어는 특정한 동작을 수행하도록 불변적으로 설계될 수 있다(예를 들면, 하드웨어에 내장될 수도 있다). 일례에서, 회로부의 하드웨어는, 특정한 동작의 명령어를 인코딩하기 위해 물리적으로 수정되는(예를 들면, 자기적으로, 전기적으로, 불변의 응집 입자(invariant massed particle)의 이동 가능한 배치 등) 컴퓨터 판독 가능 매체를 포함하는 가변적으로 연결된 물리적 컴포넌트(예를 들면, 실행 유닛, 트랜지스터, 간단한 회로 등)를 포함할 수도 있다. 물리적 컴포넌트를 연결함에 있어서, 하드웨어 구성 요소의 기저의 전기 속성은, 예를 들면, 절연체에서 도체로 또는 그 반대로 변경된다. 명령어는 참가하는 하드웨어(예를 들면, 실행 유닛 또는 로딩 메커니즘)가 가변 연결을 통해 하드웨어의 회로부의 멤버를 생성하여 동작 중에 특정한 작업의 일부를 수행하는 것을 가능하게 한다. 따라서, 컴퓨터 판독 가능 매체는, 디바이스가 동작하고 있을 때 회로부의 다른 컴포넌트에 통신 가능하게 커플링된다. 일례에서, 물리적 컴포넌트의 임의의 것은 하나보다 더 많은 회로부의 하나보다 더 많은 멤버에서 사용될 수도 있다. 예를 들면, 동작 하에서, 실행 유닛은 하나의 시점에서 제1 회로부의 제1 회로에서 사용될 수도 있고 제1 회로부의 제2 회로에 의해, 또는 상이한 시간에 제2 회로부의 제3 회로에 의해 재사용될 수도 있다.
머신(예를 들면, 컴퓨터 시스템)(800)(예를 들면, 호스트 디바이스(105), 메모리 디바이스(110) 등)은 하드웨어 프로세서(802)(예를 들면, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 하드웨어 프로세서 코어, 또는 이들의 임의의 조합, 예컨대 메모리 컨트롤러(115) 등), 메인 메모리(804) 및 정적 메모리(806)를 포함할 수도 있는데, 이들 중 일부 또는 모두는 인터링크(예를 들면, 버스)(808)를 통해 서로 통신할 수도 있다. 머신(800)은 디스플레이 유닛(810), 영숫자 입력 디바이스(812)(예를 들면, 키보드), 및 사용자 인터페이스(UI) 내비게이션 디바이스(814)(예를 들면, 마우스)를 더 포함할 수도 있다. 일례에서, 디스플레이 유닛(810), 입력 디바이스(812) 및 UI 내비게이션 디바이스(814)는 터치스크린 디스플레이일 수도 있다. 머신(800)은 스토리지 디바이스(예를 들면, 구동 유닛)(816), 신호 생성 디바이스(818)(예를 들면, 스피커), 네트워크 인터페이스 디바이스(820), 및 하나 이상의 센서(816), 예컨대 전지구 위치 결정 시스템(global positioning system: GPS) 센서, 콤파스, 가속도계, 또는 다른 센서를 추가적으로 포함할 수도 있다. 머신(800)은 출력 컨트롤러(828), 예컨대 하나 이상의 주변장치 디바이스(예를 들면, 프린터, 카드 리더기 등)와 통신하기 위한 또는 그들을 제어하기 위한 직렬(예를 들면, 범용 직렬 버스(universal serial bus: USB), 병렬, 또는 다른 유선 또는 무선(예를 들면, 적외선(infrared: IR), 근접장 통신(near field communication: NFC) 등)) 연결을 포함할 수도 있다.
스토리지 디바이스(816)는, 본 명세서에서 설명되는 기술 또는 기능 중 임의의 하나 이상에 의해 구체화되거나 또는 활용되는 데이터 구조 또는 명령어(824)(예를 들면, 소프트웨어)의 하나 이상의 세트가 저장되는 머신 판독 가능 매체(822)를 포함할 수도 있다. 명령어(824)는 또한, 머신(800)에 의해 그 실행 동안, 메인 메모리(804) 내에, 정적 메모리(806) 내에, 또는 하드웨어 프로세서(802) 내에, 완전히 또는 적어도 부분적으로, 상주할 수도 있다. 일례에서, 하드웨어 프로세서(802), 메인 메모리(804), 정적 메모리(806), 또는 스토리지 디바이스(816) 중 하나 또는 이들의 임의의 조합은 머신 판독 가능 매체(822)를 구성할 수도 있다.
머신 판독 가능 매체(822)가 단일의 매체로서 예시되어 있지만, 용어 "머신 판독 가능 매체"는, 하나 이상의 명령어(824)를 저장하도록 구성되는 단일의 매체 또는 다수의 매체(예를 들면, 중앙 집중식 또는 분산형 데이터베이스, 또는 관련된 캐시 및 서버)를 포함할 수도 있다.
용어 "머신 판독 가능 매체"는, 머신(800)에 의한 실행을 위한 명령어를 저장, 인코딩, 또는 반송할(carrying) 수 있고 머신(800)으로 하여금 본 개시내용의 기술 중 임의의 하나 이상을 수행하게 하는, 또는 그러한 명령어에 의해 사용되는 또는 그러한 명령어와 관련되는 데이터 구조를 저장, 인코딩 또는 반송할 수 있는 임의의 매체를 포함할 수도 있다. 비제한적인 머신 판독 가능 매체 예는 솔리드 스테이트 메모리, 및 광학 및 자기 매체를 포함할 수도 있다. 일례에서, 대용량 머신 판독 가능 매체(massed machine readable medium)는, 불변의(예를 들면, 정지) 질량을 갖는 복수의 입자를 갖는 머신 판독 가능 매체를 포함한다. 따라서, 대용량 머신 판독 가능 매체는 일시적 전파 신호가 아니다. 대용량 머신 판독 가능 매체의 특정한 예는 다음의 것을 포함할 수도 있다: 불휘발성 메모리, 예컨대 반도체 메모리 디바이스(예를 들면, 전기적으로 프로그래밍 가능한 판독 전용 메모리(Electrically Programmable Read-Only Memory: EPROM), 전기적으로 소거가능한 프로그래머블 판독 전용 메모리(Electrically Erasable Programmable Read-Only Memory: EEPROM)) 및 메모리 디바이스; 자기 디스크, 예컨대 내장 하드 디스크 및 착탈식 디스크; 광자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크.
명령어(824)(예를 들면, 소프트웨어, 프로그램, 오퍼레이팅 시스템(operating system: OS) 등) 또는 다른 데이터는 스토리지 디바이스(821) 상에 저장되고, 프로세서(802)에 의한 사용을 위해 메모리(804)에 의해 액세스될 수 있다. 메모리(804)(예를 들면, DRAM)는 통상적으로 빠르지만, 그러나 휘발성이며, 따라서, "오프" 조건에 있는 동안을 비롯하여, 장기간 저장에 적절한 스토리지 디바이스(821)(예를 들면, SSD)와는 상이한 타입의 스토리지 디바이스이다. 사용자 또는 머신(800)에 의한 사용 중에 명령어(824) 또는 데이터는 통상적으로 프로세서(802)에 의한 사용을 위해 메모리(804)에 로딩된다. 메모리(804)가 가득 찬 경우, 스토리지 디바이스(821)로부터의 가상 공간이 메모리(804)를 보충하도록 할당될 수 있지만; 그러나, 스토리지 디바이스(821)가 메모리(804)보다 통상적으로 더 느리고, 기록 속도가 판독 속도보다 적어도 두 배만큼 느리기 때문에, 가상 메모리의 사용은 (메모리(804), 예를 들면, DRAM과는 대조적으로) 스토리지 디바이스 레이턴시에 기인하여 사용자 경험을 크게 감소시킬 수 있다. 게다가, 가상 메모리에 대한 스토리지 디바이스(821)의 사용은 스토리지 디바이스(821)의 사용 가능한 수명을 크게 감소시킬 수 있다.
가상 메모리와는 대조적으로, 가상 메모리 압축(예를 들면, Linux® 커널 피처 "ZRAM")은 메모리의 일부를 압축된 블록 스토리지로서 사용하여 스토리지 디바이스(821)로의 페이징을 방지한다. 그러한 데이터를 스토리지 디바이스(821)에 기록하는 것이 필요할 때까지, 압축된 블록에서 페이징이 발생한다. 가상 메모리 압축은 메모리(804)의 사용 가능한 사이즈를 증가시키고, 동시에, 스토리지 디바이스(821)의 마모를 감소시킨다.
모바일 전자 디바이스, 또는 모바일 스토리지에 대해 최적화되는 스토리지 디바이스는, 전통적으로, MMC 솔리드 스테이트 스토리지 디바이스(예를 들면, 마이크로 시큐어 디지털(microSD™) 카드 등)를 포함한다. MMC 디바이스는 호스트 디바이스와의 다수의 병렬 인터페이스(예를 들면, 8 비트 병렬 인터페이스)를 포함하며, 종종 호스트 디바이스로부터 제거 가능하고 별개의 컴포넌트이다. 대조적으로, eMMC™ 디바이스는 회로 보드에 부착되며 호스트 디바이스의 컴포넌트로 간주되는데, 직렬 ATA™(직렬 AT(Advanced Technology) 연결 장치 또는 SATA) 기반의 SSD 디바이스에 필적하는 판독 속도를 갖는다. 그러나, 예컨대 가상 또는 증강 현실 디바이스를 완전히 가능하게 하기 위해, 증가하는 네트워크 속도를 활용하기 위해 등을 위해, 모바일 디바이스 성능에 대한 요구가 계속 증가하고 있다. 이 요구에 응답하여, 스토리지 디바이스는 병렬로부터 직렬 통신 인터페이스로 전환되었다. 컨트롤러 및 펌웨어를 비롯한, 범용 플래시 스토리지(Universal Flash Storage: UFS) 디바이스는, 전용 판독/기록 경로를 갖는 저전압 차동 시그널링(low-voltage differential signaling: LVDS) 직렬 인터페이스를 사용하여 호스트 디바이스와 통신하여, 더 큰 판독/기록 속도를 더욱 향상시킨다.
명령어(824)는 또한, 다수의 전송 프로토콜(예를 들면, 프레임 릴레이, 인터넷 프로토콜(internet protocol: IP), 송신 제어 프로토콜(transmission control protocol: TCP), 사용자 데이터 그램 프로토콜(user datagram protocol: UDP), 하이퍼 텍스트 전송 프로토콜(hypertext transfer protocol: HTTP) 등) 중 임의의 하나를 활용하는 네트워크 인터페이스 디바이스(820)를 통해 송신 매체를 사용하여 통신 네트워크(826)를 통해 송신되거나 또는 수신될 수도 있다. 예시적인 통신 네트워크는, 다른 것들 중에서도, 근거리 통신망(local area network: LAN), 광역 통신망(wide area network: WAN), 패킷 데이터 네트워크(예를 들면, 인터넷), 이동 전화 네트워크(예를 들면, 셀룰러 네트워크), 기존 전화(Plain Old Telephone: POTS) 네트워크, 및 무선 데이터 네트워크(예를 들면, Wi-Fi®로 알려진 미국 전기 전자 학회(Institute of Electrical and Electronics Engineers: IEEE) 802.11 계열의 표준, WiMax®로 알려진 IEEE 802.16 계열의 표준), IEEE 802.15.4 계열의 표준, 피어 투 피어(peer-to-peer: P2P) 네트워크를 포함할 수도 있다. 일례에서, 네트워크 인터페이스 디바이스(820)는 통신 네트워크(826)에 연결하기 위한 하나 이상의 물리적 잭(예를 들면, 이더넷, 동축, 또는 전화 잭) 또는 하나 이상의 안테나를 포함할 수도 있다. 일례에서, 네트워크 인터페이스 디바이스(820)는, 단일 입력 다중 출력(input multiple-output: SIMO), 다중 입력 다중 출력(multiple-input multiple-output: MIMO), 또는 다중 입력 단일 출력(multiple-input single-output: MISO) 기술 중 적어도 하나를 사용하여 무선으로 통신하기 위해 복수의 안테나를 포함할 수도 있다. 용어 "송신 매체"는, 머신(800)에 의해 실행을 위한 명령어를 저장, 인코딩 또는 반송할 수 있으며, 그러한 소프트웨어의 통신을 용이하게 하기 위해 디지털 또는 아날로그 통신 신호 또는 다른 무형의 매체를 포함하는 임의의 무형의 매체를 포함하는 것으로 간주될 수 있다.
상기의 상세한 설명은, 상세한 설명의 일부를 형성하는 첨부의 도면에 대한 참조를 포함한다. 도면은, 예시로서, 본 발명이 실시될 수 있는 특정한 실시형태를 도시한다. 이들 실시형태는 본 명세서에서 "예"로서 또한 칭해진다. 그러한 예는, 도시되는 또는 설명되는 것 이외의 엘리먼트를 포함할 수 있다. 그러나, 본 발명자는, 도시되는 또는 설명되는 그들 엘리먼트만 제공되는 예를 또한 고려한다. 또한, 본 발명자는, 특정한 예(또는 그 하나 이상의 양태)와 관련하여, 또는 본 명세서에서 도시되는 또는 설명되는 다른 예(또는 그 하나 이상의 양태)와 관련하여, 도시되는 또는 설명되는 그들 엘리먼트(또는 그 하나 이상의 양태)의 임의의 조합 또는 치환(permutation)을 사용하는 예를 또한 고려한다.
본 문헌에서, 단수 표현은, 특허 문헌에서 일반적인 바와 같이, "적어도 하나" 또는 "하나 이상"의 임의의 다른 사례 또는 용법과는 독립적으로, 하나 또는 하나보다 더 많은을 포함하기 위해 사용된다. 본 문헌에서, 용어 "또는"은 비배타적인 또는을 가리키도록 사용되며, 그 결과 "A 또는 B"는, 달리 나타내지 않는 한, "B는 아니지만 A", "A는 아니지만 B", 및 "A 및 B"를 포함할 수도 있다. 첨부된 청구범위에서, 용어 "포함하는(including)" 및 "여기에서(in which)"는, 각각의 용어 "포함하는(comprising)" 및 "여기에서(wherein)"의 평문 영어의 등가적 표현으로서 사용된다. 또한, 다음의 청구범위에서, 용어 "포함하는(including)" 및 "포함하는(comprising)"은 제약을 두지 않으며, 즉, 청구항에서 그러한 용어에 앞서 열거되는 것 이외의 엘리먼트를 포함하는 시스템, 디바이스, 물품, 조성, 제제(formulation), 또는 프로세스는 여전히 그 청구항의 범위 내에 속하는 것으로 간주된다. 또한, 다음의 청구범위에서, 용어 "제1", "제2", "제3" 등은 라벨(label)로서 사용되는 것에 불과하며, 그들 대상에 대해 수치적 요건을 부과하도록 의도되지는 않는다.
다양한 예에서, 본 명세서에서 설명되는 컴포넌트, 컨트롤러, 프로세서, 유닛, 엔진, 또는 테이블은, 다른 것들 중에서도, 물리적 디바이스 상에 저장되는 물리적 회로부 또는 펌웨어를 포함할 수 있다. 본 명세서에서 사용될 때, "프로세서"는, 마이크로프로세서, 마이크로컨트롤러, 그래픽 프로세서, 디지털 신호 프로세서(DSP), 또는 프로세서 또는 멀티 코어 디바이스의 그룹을 비롯한 임의의 다른 타입의 프로세서 또는 처리 회로와 같은, 그러나 이들로 제한되지는 않는 임의의 타입의 계산 회로를 의미한다.
본 문헌에서 사용되는 바와 같은 용어 "수평(horizontal)"은, 임의의 시점에서의 기판의 실제 방위에 관계없이, 웨이퍼 또는 다이 아래에 있는 것과 같은, 기판의 종래의 평면 또는 표면에 평행한 평면으로서 정의된다. 용어 "수직(vertical)"은 상기에서 정의되는 바와 같이 수평에 수직인 방향을 지칭한다. "상에(on)", "위에(over)", 및 "아래에(under)"와 같은 전치사는, 기판의 방위에 관계없이, 기판의 상부 또는 노출된 표면 상에 있는 종래의 평면 또는 표면에 대하여 정의되며; "상에(on)"는 (반대의 명확한 표시의 부재시) 하나의 구조체의, 하나의 구조체가 "상에" 놓이는 다른 구조체에 대한 직접적인 접촉을 암시하도록 의도되지만; 용어 "위에(over)" 및 "아래에(under)"는 구조체(또는 층, 피처 등)의 상대적인 배치를 식별하도록 명시적으로 의도되는데, 이것은, 그와 같이 구체적으로 식별되지 않는 한, 식별된 구조체 사이의 직접적인 접촉을 명시적으로 포함하지만 - 그러나 이것으로 제한되지는 않는다. 유사하게, 몇몇 시점에, 구조체가 논의 중인 구성의 가장 바깥쪽 부분인 경우, 심지어 그러한 구조체가, 수평 방위에서가 아닌, 기준 구조체에 대해 수직으로 연장되는 경우에도, 구조체가 기준 구조체 "위에" 있을 수도 있기 때문에, 용어 "위에" 및 "아래에"는 수평 방위로 제한되지는 않는다.
용어 "웨이퍼" 및 "기판"은, 본 명세서에서, 집적 회로가 상부에 형성되는 임의의 구조체, 및, 또한, 집적 회로 제조의 다양한 단계 동안의 그러한 구조체를 지칭하기 위해 사용된다. 따라서, 다음의 상세한 설명은 제한적인 의미로 간주되지 않아야 하고, 다양한 실시형태의 범위는, 청구범위가 부여되는 등가물의 전체 범위와 함께, 첨부된 그러한 청구범위에 의해서만 정의된다.
본 개시내용에 따른 그리고 본 명세서에서 설명되는 다양한 실시형태는 메모리 셀의 수직 구조체(예를 들면, 메모리 셀의 NAND 스트링)를 활용하는 메모리를 포함한다. 본 명세서에서 사용되는 바와 같이, 방향성 형용사는, 메모리 셀이 상부에 형성되는 기판의 표면과 관련하여 취해질 것이다(즉, 수직 구조체는 기판 표면으로부터 멀어지게 연장되는 것으로 간주될 것이고, 수직 구조체의 하단(bottom end)은 기판 표면에 가장 가까운 단부로서 간주될 것이고, 수직 구조체의 상단(top end)은 기판 표면으로부터 가장 먼 단부로 간주될 것이다).
본 명세서에서 사용될 때, 수평, 수직(vertical), 수직(normal), 평행, 수직(perpendicular) 등과 같은 방향성 형용사는 상대적 방위를 지칭할 수 있으며, 달리 언급되지 않는 한, 특정한 기하학적 형상의 속성에 대한 엄격한 고수(adherence)를 요구하도록 의도되는 것은 아니다. 예를 들면, 본 명세서에서 사용되는 바와 같이, 수직 구조체는 기판의 표면에 엄격하게 직각일 필요가 있는 것이 아니라, 대신 기판의 표면에 일반적으로 직각일 수도 있고, 기판의 표면과 예각을 형성할 수도 있다(예를 들면, 60와 120 도 사이 등).
본 명세서에서 설명되는 몇몇 실시형태에서, 상이한 도핑 구성이 소스측 선택 게이트(SGS), 제어 게이트(CG), 및 드레인측 선택 게이트(SGD)에 적용될 수도 있는데, 이들의 각각은, 이 예에서, 폴리실리콘으로 형성될 수도 있거나 또는 폴리실리콘을 적어도 포함할 수도 있고, 그 결과, 이들 계층(예를 들면, 폴리실리콘 등)은, 에칭 용액에 노출되는 경우, 상이한 에칭률을 가질 수도 있다. 예를 들면, 3D 반도체 디바이스에서 모놀리식 필라를 형성하는 프로세스에서, SGS 및 CG는 리세스를 형성할 수도 있고, 한편, SGD는 덜 리세스된 또는 심지어 리세스되지 않은 상태로 유지될 수도 있다. 따라서, 이들 도핑 구성은, 에칭 용액(예를 들면, 테트라메틸암모늄 수산화물(tetramethylammonium hydroxide: TMCH))을 사용하는 것에 의해 3D 반도체 디바이스 내의 별개의 계층(예를 들면, SGS, CG, 및 SGD) 안으로의 선택적 에칭을 가능하게 할 수도 있다.
본 명세서에서 사용되는 바와 같이 메모리 셀을 동작시키는 것은 메모리 셀로부터의 판독, 메모리 셀로의 기록, 또는 메모리 셀의 소거를 포함한다. 메모리 셀을 의도된 상태에 두는 동작은 본 명세서에서 "프로그래밍"으로 지칭되며, 메모리 셀에 기록하는 것 또는 메모리 셀로부터 소거하는 것 둘 모두를 포함할 수 있다(예를 들면, 메모리 셀은 소거된 상태로 프로그래밍될 수도 있다).
본 개시내용의 하나 이상의 실시형태에 따르면, 메모리 디바이스의 내부 또는 외부에 위치되는 메모리 컨트롤러(예를 들면, 프로세서, 컨트롤러, 펌웨어 등)는, 마모 사이클의 수량, 또는 마모 상태(예를 들면, 마모 사이클의 기록, 메모리 디바이스의 동작이 발생함에 따른 그들의 카운팅, 메모리 디바이스가 개시하는 메모리 디바이스의 동작의 추적, 마모 상태에 대응하는 메모리 디바이스 특성의 평가 등)를 결정(예를 들면, 선택, 설정, 조정, 컴퓨팅, 변경, 클리어링(clearing), 통신, 적응, 유도, 정의, 활용, 수정, 적용 등)할 수 있다.
본 개시내용의 하나 이상의 실시형태에 따르면, 메모리 액세스 디바이스는 각각의 메모리 동작과 함께 마모 사이클 정보를 메모리 디바이스에 제공하도록 구성될 수도 있다. 메모리 디바이스 제어 회로부(예를 들면, 제어 로직)는 마모 사이클 정보에 대응하는 메모리 디바이스 성능 변화를 보상하도록 프로그래밍될 수도 있다. 메모리 디바이스는 마모 사이클 정보를 수신하고, 마모 사이클 정보에 응답하여 하나 이상의 동작 파라미터(예를 들면, 값, 특성)를 결정할 수도 있다.
한 엘리먼트가 다른 엘리먼트 "상에" 있는 것으로, 다른 엘리먼트에 "연결되는" 것으로 또는 다른 엘리먼트와 "커플링되는" 것으로 언급되는 경우, 그것은 직접적으로 다른 엘리먼트 상에 있거나, 다른 엘리먼트에 연결되거나, 또는 다른 엘리먼트와 커플링될 수 있거나 또는 개재하는 엘리먼트가 존재할 수도 있다는 것이 이해될 것이다. 대조적으로, 한 엘리먼트가 다른 컴포넌트 "바로 상에" 있는 것으로, 다른 엘리먼트에 "직접적으로 연결되는 것으로" 또는 다른 엘리먼트와 "직접적으로 커플링되는" 것으로 언급되는 경우, 개재하는 엘리먼트 또는 층은 존재하지 않는다. 두 개의 엘리먼트가 그들을 연결하는 라인과 함께 도면에서 도시되는 경우, 달리 지시되지 않는 한, 두 개의 엘리먼트는 커플링될 수 있거나, 또는 직접적으로 커플링될 수 있다.
본 명세서에서 설명되는 방법 예는 적어도 부분적으로 머신 또는 컴퓨터로 구현될 수 있다. 몇몇 예는, 상기의 예에서 설명되는 것과 같은 방법을 수행하게끔 전자 디바이스를 구성하도록 동작 가능한 명령어로 인코딩된 컴퓨터 판독 가능 매체 또는 머신 판독 가능 매체를 포함할 수 있다. 그러한 방법의 구현은, 마이크로코드, 어셈블리 언어 코드, 상위 레벨 언어 코드, 또는 등등과 같은 코드를 포함할 수 있다. 그러한 코드는 다양한 방법을 수행하기 위한 컴퓨터 판독 가능 명령어를 포함할 수 있다. 코드는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 게다가, 코드는, 예컨대 실행 동안 또는 다른 시간에, 하나 이상의 휘발성의 또는 불휘발성의 유형의 컴퓨터 판독 가능 매체 상에 실체적으로(tangibly) 저장될 수 있다. 이들 유형의 컴퓨터 판독 가능 매체의 예는, 하드 디스크, 착탈식 자기 디스크, 착탈식 광학 디스크(예를 들면, 컴팩트 디스크 및 디지털 비디오 디스크), 자기 카세트, 메모리 카드 또는 스틱, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 솔리드 스테이트 드라이브(SSD), 범용 플래시 스토리지(Universal Flash Storage: UFS) 디바이스, 임베딩된 MMC(eMMC) 디바이스, 및 등등을 포함할 수 있지만, 그러나 이들로 제한되지는 않는다.
상기에서 설명되고 하기의 예 및 청구범위에서 명시되는 구조체 및 기술에 따라, 현재 설명된 실시형태의 추가적인 예가 제안된다.
실시예 1은 메모리 디바이스인데, 메모리 디바이스는: 메모리 셀의 다수의 블록의 그룹을 구비하는 NAND 메모리 어레이; 및 메모리 어레이에 동작 가능하게 커플링되는 메모리 컨트롤러를 포함하되, 메모리 컨트롤러는: 메모리 어레이의 각각의 블록에 대해 발생하는 판독 동작을 모니터링하는 것; 각각의 블록에 대해 발생하는 판독 동작에 적어도 부분적으로 기초하여, 판독 레벨 캘리브레이션을 트리거하기 위한 조건을 식별하는 것; 및 식별된 조건에 응답하여, 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹의 임계 전압 레벨에 기초하여 판독 레벨 캘리브레이션을 수행하는 것으로서, 판독 레벨 캘리브레이션은 각각의 블록을 판독하기 위한 임계 전압에 적어도 부분적으로 기초하여 수행되는, 판독 레벨 캘리브레이션을 수행하는 것을 포함하는 동작을 수행한다.
실시예 2에서, 실시예 1의 주제는, 각각의 블록에 대한 판독의 횟수를 추적하는 것에 의해 판독 동작을 모니터링하는 것을 포함하고, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은, 판독의 결정된 횟수를 초과하는 각각의 블록에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별된다.
실시예 3에서, 실시예 2의 주제는, 메모리 컨트롤러의 동작이 각각의 블록에 대해 발생하는 소거 동작을 모니터링하는 것을 더 포함하되, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은 또한, 소거의 결정된 횟수를 초과하는 각각의 블록에 대한 소거의 횟수에 기초하여 식별되는 것을 포함한다.
실시예 4에서, 실시예 3의 주제는, 각각의 블록에 대한 판독의 횟수가 메모리 컨트롤러에 의해 액세스 가능한 메모리에서 유지되는 제1 카운터에서 추적되되, 각각의 블록에 대한 소거의 횟수는 메모리 컨트롤러에 의해 액세스 가능한 메모리에서 유지되는 제2 카운터에서 추적되고, 각각의 블록에 대해 발생하는 소거는 제1 카운터를 리셋하는 것을 포함한다.
실시예 5에서, 실시예 1 내지 4의 주제는, 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹에 대한 판독의 횟수를 추적하는 것에 의해 판독 동작을 모니터링하는 것을 포함하되, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은, 판독의 결정된 횟수를 초과하는 다수의 블록의 각각의 그룹에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별된다.
실시예 6에서, 실시예 1 내지 5의 주제는, 판독 레벨 캘리브레이션을 트리거하기 위한 조건이 메모리 어레이의 적어도 각각의 블록에 대해 발생하는 판독 동작의 원시 비트 에러율(RBER)에 부분적으로 또한 기초하는 것을 포함한다.
실시예 7에서, 실시예 1 내지 6의 주제는, 메모리 어레이 내의 다수의 블록의 그룹 중에 위치되는 다른 블록을 판독하기 위한 임계 전압 외에 각각의 블록을 판독하기 위한 임계 전압의 샘플링을 수행하는 것에 의해 판독 레벨 캘리브레이션을 수행하는 것을 포함한다.
실시예 8에서, 실시예 7의 주제는, 샘플링에 포함되는 메모리 어레이 내의 다른 블록이, 다른 블록의 각각의 블록 중에서 수행되는 판독 동작의 횟수에 기초하여 메모리 어레이 내에서 식별되는 것을 포함한다.
실시예 9에서, 실시예 7 내지 8의 주제는, 샘플링에 포함되는 메모리 어레이 내의 다른 블록이 다음의 것 중 적어도 하나에 기초하여 메모리 어레이 내에서 식별되는 것을 포함한다: 메모리 어레이 내의 다른 블록의 랜덤 샘플링, 데이터 연령에 기초한 메모리 어레이 내의 다른 블록의 샘플링, 또는 다른 블록에 대응하는 원시 비트 에러율(RBER)에 기초한 메모리 어레이 내의 다른 블록의 샘플링.
실시예 10에서, 실시예 1 내지 9의 주제는, 각각의 블록에 대한 판독 동작이 각각의 블록의 하나 이상의 부분에 대한 판독 동작을 모니터링하는 것에 의해 모니터링되는 것을 포함한다.
실시예 11에서, 실시예 10의 주제는, 각각의 블록의 모니터링된 부분이 각각의 블록의 페이지를 포함하는 것을 포함한다.
실시예 12에서, 실시예 1 내지 11의 주제는, 메모리 디바이스가 호스트에 동작 가능하게 커플링되되, 호스트는 메모리 어레이 내의 다수의 블록 중에서 각각의 판독을 수행하기 위한 커맨드를 개시하고, 각각의 판독은 각각의 블록 내에 위치되는 페이지에 대응하는 논리적 블록 어드레스에 대해 발생하는 다수의 판독을 포함하는 것을 포함한다.
실시예 13에서, 실시예 1 내지 12의 주제는, 판독 레벨 캘리브레이션이, 각각의 블록의 하나 이상의 페이지에 대해 발생하는 후속하는 판독 동작에서 각각의 블록의 하나 이상의 페이지를 판독하기 위해 사용되는 하나 이상의 판독 전압 레벨을 업데이트하는 것을 포함한다.
실시예 14에서, 실시예 1 내지 13의 주제는, 메모리 어레이의 메모리 셀의 블록이 다음의 것 중 적어도 하나를 포함하는 것을 포함한다: 단일 레벨 셀(SLC), 다층 셀(MLC), 삼중 층 셀(TLC), 또는 사중 층 셀(QLC) NAND 메모리 셀.
실시예 15에서, 실시예 1 내지 14의 주제는, 메모리 어레이가 삼차원(3D) NAND 다이의 스택으로 배열되되, 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹은, 3D NAND 다이의 스택 내의 각각의 다이에 의해 제공되는 블록의 그룹에 대응하는 것을 포함한다.
실시예 16은 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법인데, 그 방법은 NAND 메모리 어레이의 메모리 컨트롤러에 의해 수행되는 복수의 동작을 포함하고, 메모리 어레이는 메모리 셀의 다수의 블록의 그룹을 구비하되, 동작은: 메모리 어레이의 각각의 블록으로 발행되는 판독 커맨드를 모니터링하는 것; 각각의 블록으로 발행되는 판독 커맨드에 적어도 부분적으로 기초하여, 판독 레벨 캘리브레이션을 트리거하기 위한 조건을 식별하는 것; 및 식별된 조건에 응답하여, 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹의 임계 전압 레벨에 기초하여 판독 레벨 캘리브레이션을 수행하는 것으로서, 판독 레벨 캘리브레이션은 각각의 블록을 판독하기 위한 임계 전압에 적어도 부분적으로 기초하여 수행되는, 판독 레벨 캘리브레이션을 수행하는 것을 포함하고; 판독 레벨 캘리브레이션은, 각각의 블록의 페이지에 대한 후속하는 판독 동작에서 각각의 블록의 페이지를 판독하기 위해 사용되는 판독 전압 레벨을 업데이트한다.
실시예 17에서, 실시예 16의 주제는, 각각의 블록에 대한 판독의 횟수를 추적하는 것에 의해 판독 동작을 모니터링하는 것을 포함하고, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은, 판독의 결정된 횟수를 초과하는 각각의 블록에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별된다.
실시예 18에서, 실시예 17의 주제는, 각각의 블록에 대해 발생하는 소거 동작을 모니터링하는 것을 포함하되, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은 또한, 소거의 결정된 횟수를 초과하는 각각의 블록에 대한 소거의 횟수에 기초하여 식별된다.
실시예 19에서, 실시예 18의 주제는, 각각의 블록에 대한 판독의 횟수가 메모리 컨트롤러에 의해 액세스 가능한 메모리에서 유지되는 제1 카운터에서 추적되되, 각각의 블록에 대한 소거의 횟수는 메모리 컨트롤러에 의해 액세스 가능한 메모리에서 유지되는 제2 카운터에서 추적되고, 각각의 블록에 대해 발생하는 소거는 제1 카운터를 리셋하는 것을 포함한다.
실시예 20에서, 실시예 16 내지 19의 주제는, 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹에 대한 판독의 횟수를 추적하는 것에 의해 판독 동작을 모니터링하는 것을 포함하고, 판독 레벨 캘리브레이션을 트리거하기 위한 조건은, 판독의 결정된 횟수를 초과하는 다수의 블록의 각각의 그룹에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별된다.
실시예 21에서, 실시예 16 내지 20의 주제는, 판독 레벨 캘리브레이션을 트리거하기 위한 조건이 메모리 어레이의 적어도 각각의 블록에 대해 발생하는 판독 동작의 원시 비트 에러율(RBER)에 부분적으로 또한 기초하는 것을 포함한다.
실시예 22에서, 실시예 16 내지 21의 주제는, 메모리 어레이 내의 다수의 블록의 그룹 중에 위치되는 다른 블록을 판독하기 위한 임계 전압 외에 각각의 블록을 판독하기 위한 임계 전압의 샘플링을 수행하는 것에 의해 판독 레벨 캘리브레이션을 수행하는 것을 포함한다.
실시예 23에서, 실시예 22의 주제는, 샘플링에 포함되는 메모리 어레이 내의 다른 블록이, 다른 블록의 각각의 블록 중에서 수행되는 판독 동작의 횟수에 기초하여 메모리 어레이 내에서 식별되는 것을 포함한다.
실시예 24에서, 실시예 22 및 23의 주제는, 샘플링에 포함되는 메모리 어레이 내의 다른 블록이 다음의 것 중 적어도 하나에 기초하여 메모리 어레이 내에서 식별되는 것을 포함한다: 메모리 어레이 내의 다른 블록의 랜덤 샘플링, 데이터 연령에 기초한 메모리 어레이 내의 다른 블록의 샘플링, 또는 다른 블록에 대응하는 원시 비트 에러율(RBER)에 기초한 메모리 어레이 내의 다른 블록의 샘플링.
실시예 25에서, 실시예 16 내지 24의 주제는, 각각의 블록의 판독 동작이 각각의 블록의 하나 이상의 부분에 대한 판독 동작을 모니터링하는 것에 의해 모니터링되는 것을 포함한다.
실시예 26에서, 실시예 25의 주제는, 각각의 블록의 모니터링된 부분이 각각의 블록의 페이지를 포함하는 것을 포함한다.
실시예 27에서, 실시예 16 내지 26의 주제는, 메모리 디바이스가 호스트에 동작 가능하게 커플링되되, 호스트는 메모리 어레이 내의 다수의 블록 중에서 각각의 판독을 수행하기 위한 커맨드를 개시하고, 각각의 판독은 각각의 블록 내에 위치되는 페이지에 대응하는 논리적 블록 어드레스에 대해 발생하는 다수의 판독을 포함하는 것을 포함한다.
실시예 28에서, 실시예 16 내지 27의 주제는, 판독 레벨 캘리브레이션이, 각각의 블록의 하나 이상의 페이지에 대해 발생하는 후속하는 판독 동작에서 각각의 블록의 하나 이상의 페이지를 판독하기 위해 사용되는 하나 이상의 판독 전압 레벨을 업데이트하는 것을 포함한다.
실시예 29에서, 실시예 16 내지 28의 주제는, 메모리 어레이의 메모리 셀의 블록이 다음의 것 중 적어도 하나를 포함하는 것을 포함한다: 단일 레벨 셀(SLC), 다층 셀(MLC), 삼중 층 셀(TLC), 또는 사중 층 셀(QLC) NAND 메모리 셀.
실시예 30에서, 실시예 16 내지 29의 주제는, 메모리 어레이가 삼차원(3D) NAND 다이의 스택으로 배열되되, 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹은, 3D NAND 다이의 스택 내의 각각의 다이에 의해 제공되는 블록의 그룹에 대응하는 것을 포함한다.
실시예 31은, 메모리 디바이스의 컨트롤러에 의해 실행될 때 메모리 디바이스에서의 전압 판독 레벨 캘리브레이션을 최적화하는 명령어를 제공하는 디바이스 판독 가능 저장 매체인데, 명령어는 컨트롤러로 하여금 실시예 1 내지 30의 기술 중 임의의 것에 따른 동작을 수행하게 한다.
실시예 32는 실시예 1 내지 30의 방법 또는 기술 중 임의의 것을 수행하기 위한 각각의 수단을 포함하는 장치이다.
실시예 33은 실시예 1 내지 30 중 임의의 것의 동작을 수행하기 위한 시스템, 장치, 또는 디바이스이다.
실시예 34는 실시예 1 내지 30 중 임의의 것의 동작을 수행 또는 구현하기 위한 명령어를 구체화하는 유형의 머신 판독 가능 매체이다.
실시예 35는 실시예 1 내지 30 중 임의의 것의 동작을 수행하기 위한 방법이다.
상기 설명은, 제한적인 것이 아니라, 예시적인 것으로 의도된다. 예를 들면, 상기에서 설명된 예(또는 그 하나 이상의 양태)는 서로 조합되어 사용될 수도 있다. 상기 설명의 재검토시, 예컨대 기술 분야에서 통상의 지식을 가진 자에 의해, 다른 실시형태가 사용될 수 있다. 그것은, 청구범위의 범위 또는 의미를 해석하도록 또는 제한하도록 사용되지 않을 것이라는 이해를 가지고 제출된다. 또한, 상기의 발명을 실시하기 위한 구체적인 내용에서, 본 개시내용을 간소화하기 위해, 다양한 피처가 그룹화될 수도 있다. 이것은, 청구되지 않은 개시된 피처가 임의의 청구항에 필수적이다는 것을 의도하는 것으로 해석되지 않아야 한다. 오히려, 발명의 주제는 특정한 개시된 실시형태의 모든 피처보다 더 적은 피처에서 있을 수도 있다. 따라서, 다음의 청구범위는, 발명을 실시하기 위한 구체적인 내용에 통합되는데, 각각의 청구항은 별개의 실시형태로서 독립적이며, 그러한 실시형태는 다양한 조합 또는 치환에서 서로 조합될 수 있다는 것이 고려된다. 따라서, 본 발명의 범위는, 그러한 청구범위의 자격이 부여되는 균등물의 모든 범위와 함께, 첨부된 청구범위를 참조하여 결정되어야 한다.
Claims (31)
- 메모리 디바이스로서,
메모리 셀의 다수의 블록의 그룹을 구비하는 NAND 메모리 어레이; 및
상기 메모리 어레이에 동작 가능하게 커플링되는 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는,
상기 메모리 어레이의 각각의 블록에 대해 발생하는 판독 동작을 모니터링하는 것;
상기 각각의 블록에 대해 발생하는 상기 판독 동작에 적어도 부분적으로 기초하여, 판독 레벨 캘리브레이션을 트리거하기 위한 조건을 식별하는 것; 및
상기 식별된 조건에 응답하여, 상기 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹의 임계 전압 레벨에 기초하여 상기 판독 레벨 캘리브레이션을 수행하는 것으로서, 상기 판독 레벨 캘리브레이션은 상기 각각의 블록을 판독하기 위한 임계 전압에 적어도 부분적으로 기초하여 수행되는, 상기 판독 레벨 캘리브레이션을 수행하는 것
을 포함하는 동작을 수행하는, 메모리 디바이스. - 제1항에 있어서, 상기 판독 동작을 모니터링하는 것은 상기 각각의 블록에 대한 판독의 횟수를 추적하는 것을 포함하고, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은, 판독의 결정된 횟수를 초과하는 상기 각각의 블록에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별되는, 메모리 디바이스.
- 제2항에 있어서, 상기 메모리 컨트롤러의 상기 동작은 상기 각각의 블록에 대해 발생하는 소거 동작을 모니터링하는 것을 더 포함하되, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은 또한, 소거의 결정된 횟수를 초과하는 상기 각각의 블록에 대한 소거의 횟수에 기초하여 식별되는, 메모리 디바이스.
- 제3항에 있어서, 상기 각각의 블록에 대한 판독의 횟수는 상기 메모리 컨트롤러에 의해 액세스 가능한 메모리에서 유지되는 제1 카운터에서 추적되되, 상기 각각의 블록에 대한 소거의 횟수는 상기 메모리 컨트롤러에 의해 액세스 가능한 상기 메모리에서 유지되는 제2 카운터에서 추적되고, 상기 각각의 블록에 대해 발생하는 소거는 상기 제1 카운터를 리셋하는, 메모리 디바이스.
- 제1항에 있어서, 상기 판독 동작을 모니터링하는 것은 상기 각각의 블록을 호스팅하는 다수의 블록의 상기 각각의 그룹에 대한 판독의 횟수를 추적하는 것을 포함하고, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은, 판독의 결정된 횟수를 초과하는 다수의 블록의 상기 각각의 그룹에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별되는, 메모리 디바이스.
- 제1항에 있어서, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은 상기 메모리 어레이의 적어도 상기 각각의 블록에 대해 발생하는 판독 동작의 원시 비트 에러율(raw bit error rate: RBER)에 부분적으로 또한 기초하는, 메모리 디바이스.
- 제1항에 있어서, 상기 판독 레벨 캘리브레이션을 수행하는 것은, 상기 메모리 어레이 내의 다수의 블록의 상기 그룹 중에 위치되는 다른 블록을 판독하기 위한 임계 전압 외에 상기 각각의 블록을 판독하기 위한 상기 임계 전압의 샘플링을 수행하는 것을 포함하는, 메모리 디바이스.
- 제7항에 있어서, 상기 샘플링에 포함되는 상기 메모리 어레이 내의 상기 다른 블록은, 상기 다른 블록의 각각의 블록 중에서 수행되는 판독 동작의 횟수에 기초하여 상기 메모리 어레이 내에서 식별되는, 메모리 디바이스.
- 제7항에 있어서, 상기 샘플링에 포함되는 상기 메모리 어레이 내의 상기 다른 블록은, 상기 메모리 어레이 내의 상기 다른 블록의 랜덤 샘플링, 데이터 연령(age)에 기초한 상기 메모리 어레이 내의 상기 다른 블록의 샘플링, 또는 상기 다른 블록에 대응하는 원시 비트 에러율(RBER)에 기초한 상기 메모리 어레이 내의 상기 다른 블록의 샘플링 중 적어도 하나에 기초하여 상기 메모리 어레이 내에서 식별되는, 메모리 디바이스.
- 제1항에 있어서, 상기 각각의 블록에 대한 상기 판독 동작은 상기 각각의 블록의 하나 이상의 부분에 대한 판독 동작을 모니터링하는 것에 의해 모니터링되는, 메모리 디바이스.
- 제10항에 있어서, 상기 각각의 블록의 상기 모니터링된 부분은 상기 각각의 블록의 페이지를 포함하는, 메모리 디바이스.
- 제1항에 있어서, 상기 메모리 디바이스는 호스트에 동작 가능하게 커플링되되, 상기 호스트는 상기 메모리 어레이 내의 상기 다수의 블록 중에서 각각의 판독을 수행하기 위한 커맨드를 개시하고, 상기 각각의 판독은 상기 각각의 블록 내에 위치되는 페이지에 대응하는 논리적 블록 어드레스에 대해 발생하는 다수의 판독을 포함하는, 메모리 디바이스.
- 제1항에 있어서, 상기 판독 레벨 캘리브레이션은, 상기 각각의 블록의 하나 이상의 페이지에 대해 발생하는 후속하는 판독 동작에서 상기 각각의 블록의 상기 하나 이상의 페이지를 판독하기 위해 사용되는 하나 이상의 판독 전압 레벨을 업데이트하는, 메모리 디바이스.
- 제1항에 있어서, 상기 메모리 어레이의 메모리 셀의 상기 블록은, 단일 레벨 셀(single-level cell: SLC), 다층 셀(multi-layer cell: MLC), 삼중 층 셀(triple-layer cell: TLC), 또는 사중 층 셀(quad-layer cell: QLC) NAND 메모리 셀: 중 적어도 하나를 포함하는, 메모리 디바이스.
- 제1항에 있어서, 상기 메모리 어레이는 삼차원(3D) NAND 다이의 스택으로 배열되고, 상기 각각의 블록을 호스팅하는 다수의 블록의 상기 각각의 그룹은, 3D NAND 다이의 상기 스택 내의 각각의 다이에 의해 제공되는 블록의 그룹에 대응하는, 메모리 디바이스.
- 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법으로서, NAND 메모리 어레이의 메모리 컨트롤러에 의해 수행되는 복수의 동작을 포함하되, 상기 메모리 어레이는 메모리 셀의 다수의 블록의 그룹을 구비하고, 상기 동작은,
상기 메모리 어레이의 각각의 블록으로 발행되는 판독 커맨드를 모니터링하는 것;
상기 각각의 블록으로 발행되는 상기 판독 커맨드에 적어도 부분적으로 기초하여, 판독 레벨 캘리브레이션을 트리거하기 위한 조건을 식별하는 것; 및
상기 식별된 조건에 응답하여, 상기 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹의 임계 전압 레벨에 기초하여 상기 판독 레벨 캘리브레이션을 수행하는 것으로서, 상기 판독 레벨 캘리브레이션은 상기 각각의 블록을 판독하기 위한 임계 전압에 적어도 부분적으로 기초하여 수행되는, 상기 판독 레벨 캘리브레이션을 수행하는 것을 포함하되;
상기 판독 레벨 캘리브레이션은, 상기 각각의 블록의 페이지에 대한 후속하는 판독 동작에서 상기 각각의 블록의 상기 페이지를 판독하기 위해 사용되는 판독 전압 레벨을 업데이트하는, 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법. - 제16항에 있어서, 상기 판독 커맨드를 모니터링하는 것은 상기 각각의 블록에 대한 판독의 횟수를 추적하는 것을 포함하고, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은, 판독의 결정된 횟수를 초과하는 상기 각각의 블록에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별되는, 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법.
- 제17항에 있어서, 상기 메모리 컨트롤러의 상기 동작은,
상기 각각의 블록에 대해 발생하는 소거 커맨드를 모니터링하는 것을 더 포함하되, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은 또한, 소거의 결정된 횟수를 초과하는 상기 각각의 블록에 대한 소거의 횟수에 기초하여 식별되고;
상기 각각의 블록에 대한 판독의 횟수는 제1 카운터에서 추적되되, 상기 각각의 블록에 대한 소거의 횟수는 제2 카운터에서 추적되고, 상기 각각의 블록에 대해 발생하는 소거는 상기 제1 카운터를 리셋하는, 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법. - 제16항에 있어서, 상기 판독 동작을 모니터링하는 것은 상기 각각의 블록을 호스팅하는 다수의 블록의 상기 각각의 그룹에 대한 판독의 횟수를 추적하는 것을 포함하고, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은, 판독의 결정된 횟수를 초과하는 다수의 블록의 상기 각각의 그룹에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별되는, 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법.
- 제16항에 있어서, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은 상기 메모리 어레이의 적어도 상기 각각의 블록에 대해 발생하는 판독 동작의 원시 비트 에러율(RBER)에 부분적으로 또한 기초하는, 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법.
- 제16항에 있어서, 상기 판독 레벨 캘리브레이션을 수행하는 것은, 상기 메모리 어레이 내의 다수의 블록의 상기 그룹 중에 위치되는 다른 블록을 판독하기 위한 임계 전압 외에 상기 각각의 블록을 판독하기 위한 상기 임계 전압의 샘플링을 수행하는 것을 포함하는, 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법.
- 제21항에 있어서, 상기 샘플링에 포함되는 상기 메모리 어레이 내의 상기 다른 블록은, 상기 다른 블록의 각각의 블록 중에서 수행되는 판독 동작의 횟수에 기초하여 상기 메모리 어레이 내에서 식별되는, 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법.
- 제16항에 있어서, 상기 각각의 블록에 대한 상기 판독 동작은 상기 각각의 블록의 하나 이상의 부분에 대한 판독 동작을 모니터링하는 것에 의해 모니터링되는, 메모리 디바이스에서 전압 판독 레벨 캘리브레이션을 최적화하기 위한 방법.
- 메모리 디바이스의 컨트롤러에 의해 실행될 때 상기 메모리 디바이스에서의 전압 판독 레벨 캘리브레이션을 최적화하는 명령어를 제공하는 디바이스 판독 가능 저장 매체로서, 상기 명령어는, 상기 컨트롤러로 하여금,
상기 메모리 디바이스의 NAND 메모리 어레이의 각각의 블록에 대해 발생하는 판독 동작을 모니터링하는 것으로서, 상기 NAND 메모리 어레이는 메모리 셀의 다수의 블록의 그룹을 구비하는, 상기 판독 동작을 모니터링하는 것;
상기 각각의 블록에 대해 발생하는 상기 판독 동작에 적어도 부분적으로 기초하여, 판독 레벨 캘리브레이션을 트리거하기 위한 조건을 식별하는 것; 및
상기 식별된 조건에 응답하여, 상기 각각의 블록을 호스팅하는 다수의 블록의 각각의 그룹의 임계 전압 레벨에 기초하여 상기 판독 레벨 캘리브레이션을 수행하는 것
을 포함하는 동작을 수행하게 하되,
상기 판독 레벨 캘리브레이션은 상기 각각의 블록을 판독하기 위한 임계 전압에 적어도 부분적으로 기초하여 수행되고, 상기 각각의 블록의 상기 임계 전압은 상기 판독 레벨 캘리브레이션에 의해 상기 메모리 어레이 중에서 수행되는 샘플링 동작 내에서 평가되는, 디바이스 판독 가능 저장 매체. - 제24항에 있어서, 상기 판독 동작을 모니터링하는 것은 상기 각각의 블록에 대한 판독의 횟수를 추적하는 것을 포함하고, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은, 판독의 결정된 횟수를 초과하는 상기 각각의 블록에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별되는, 디바이스 판독 가능 저장 매체.
- 제25항에 있어서, 상기 명령어에 의해 야기되는 상기 동작은,
상기 각각의 블록에 대해 발생하는 소거 동작을 모니터링하는 것을 더 포함하되, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은 또한, 소거의 결정된 횟수를 초과하는 상기 각각의 블록에 대한 소거의 횟수에 기초하여 식별되고;
상기 각각의 블록에 대한 판독의 횟수는 제1 카운터에서 추적되되, 상기 각각의 블록에 대한 소거의 횟수는 제2 카운터에서 추적되고, 상기 각각의 블록에 대해 발생하는 소거는 상기 제1 카운터를 리셋하는, 디바이스 판독 가능 저장 매체. - 제24항에 있어서, 상기 판독 동작을 모니터링하는 것은 상기 각각의 블록을 호스팅하는 다수의 블록의 상기 각각의 그룹에 대한 판독의 횟수를 추적하는 것을 포함하고, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은, 판독의 결정된 횟수를 초과하는 다수의 블록의 상기 각각의 그룹에 대해 발생하는 판독의 횟수에 적어도 부분적으로 기초하여 식별되는, 디바이스 판독 가능 저장 매체.
- 제24항에 있어서, 상기 판독 레벨 캘리브레이션을 트리거하기 위한 상기 조건은 상기 메모리 어레이의 적어도 상기 각각의 블록에 대해 발생하는 판독 동작의 원시 비트 에러율(RBER)에 부분적으로 또한 기초하는, 디바이스 판독 가능 저장 매체.
- 제24항에 있어서, 상기 샘플링 동작은, 상기 메모리 어레이 내의 다수의 블록의 상기 그룹 사이에 위치되는 다른 블록의 하나 이상의 판독으로부터 임계 전압을 샘플링하는 것 외에, 상기 각각의 블록의 하나 이상의 판독으로부터 임계 전압을 샘플링하는 것을 포함하는, 디바이스 판독 가능 저장 매체.
- 제29항에 있어서, 상기 다른 블록은, 상기 다른 블록의 각각의 블록 중에서 수행되는 판독 동작의 횟수에 기초하여 상기 메모리 어레이 내에서 식별되는, 디바이스 판독 가능 저장 매체.
- 제24항에 있어서, 상기 각각의 블록에 대한 상기 판독 동작은 상기 각각의 블록의 하나 이상의 부분에 대한 판독 동작을 모니터링하는 것에 의해 모니터링되는, 디바이스 판독 가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/689,747 US10347344B2 (en) | 2017-08-29 | 2017-08-29 | Read voltage calibration based on host IO operations |
US15/689,747 | 2017-08-29 | ||
PCT/US2018/048383 WO2019046326A1 (en) | 2017-08-29 | 2018-08-28 | READ VOLTAGE CALIBRATION BASED ON HOST OPERATIONS |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210004936A true KR20210004936A (ko) | 2021-01-13 |
KR102365950B1 KR102365950B1 (ko) | 2022-02-23 |
Family
ID=65435403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207009015A KR102365950B1 (ko) | 2017-08-29 | 2018-08-28 | 호스트 io 동작에 기초하는 판독 전압 교정 |
Country Status (6)
Country | Link |
---|---|
US (5) | US10347344B2 (ko) |
EP (1) | EP3676841A4 (ko) |
KR (1) | KR102365950B1 (ko) |
CN (1) | CN111801739B (ko) |
TW (1) | TWI731256B (ko) |
WO (1) | WO2019046326A1 (ko) |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US10452480B2 (en) | 2017-05-25 | 2019-10-22 | Micron Technology, Inc. | Memory device with dynamic processing level calibration |
US10402272B2 (en) | 2017-05-25 | 2019-09-03 | Micron Technology, Inc. | Memory device with dynamic programming calibration |
US10140040B1 (en) | 2017-05-25 | 2018-11-27 | Micron Technology, Inc. | Memory device with dynamic program-verify voltage calibration |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US10347344B2 (en) | 2017-08-29 | 2019-07-09 | Micron Technology, Inc. | Read voltage calibration based on host IO operations |
US10936205B2 (en) | 2017-10-05 | 2021-03-02 | International Business Machines Corporation | Techniques for retention and read-disturb aware health binning |
KR102389433B1 (ko) * | 2017-10-18 | 2022-04-25 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10403378B1 (en) * | 2018-02-09 | 2019-09-03 | Micron Technology, Inc. | Performing an operation on a memory cell of a memory system at a frequency based on temperature |
KR102492033B1 (ko) * | 2018-03-26 | 2023-01-26 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US10566063B2 (en) * | 2018-05-16 | 2020-02-18 | Micron Technology, Inc. | Memory system with dynamic calibration using a trim management mechanism |
US10664194B2 (en) | 2018-05-16 | 2020-05-26 | Micron Technology, Inc. | Memory system with dynamic calibration using a variable adjustment mechanism |
US10990466B2 (en) | 2018-06-20 | 2021-04-27 | Micron Technology, Inc. | Memory sub-system with dynamic calibration using component-based function(s) |
US10699791B2 (en) * | 2018-08-24 | 2020-06-30 | International Business Machines Corporation | Adaptive read voltage threshold calibration in non-volatile memory |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US10629280B1 (en) | 2018-10-16 | 2020-04-21 | Micron Technology, Inc. | Methods for determining an expected data age of memory cells |
US10553289B1 (en) | 2018-10-16 | 2020-02-04 | Micron Technology, Inc. | Apparatus and methods for determining an expected data age of memory cells |
US11610116B2 (en) | 2018-12-31 | 2023-03-21 | SK Hynix Inc. | Storage device performance optimization using deep learning |
US11704178B2 (en) * | 2019-05-14 | 2023-07-18 | Micron Technology, Inc. | Estimating a bit error rate of data stored by a memory subsystem using machine learning |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11017864B2 (en) * | 2019-06-26 | 2021-05-25 | Seagate Technology Llc | Preemptive mitigation of cross-temperature effects in a non-volatile memory (NVM) |
US11307799B2 (en) * | 2019-08-27 | 2022-04-19 | Micron Technology, Inc. | Managing threshold voltage drift based on operating characteristics of a memory sub-system |
US11264103B2 (en) | 2019-08-28 | 2022-03-01 | International Business Machines Corporation | Hybrid read voltage calibration in non-volatile random access memory |
KR20210037367A (ko) * | 2019-09-27 | 2021-04-06 | 삼성전자주식회사 | 비휘발성 메모리 장치 |
US11501847B2 (en) | 2019-09-27 | 2022-11-15 | Samsung Electronics Co., Ltd. | Nonvolatile memory device with address re-mapping |
US11334492B2 (en) * | 2019-10-24 | 2022-05-17 | International Business Machines Corporation | Calibrating pages of memory using partial page read operations |
US11086717B2 (en) * | 2019-10-31 | 2021-08-10 | Seagate Technology Llc | Random selection of code words for read voltage calibration |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11385984B2 (en) * | 2020-02-24 | 2022-07-12 | Western Digital Technologies, Inc. | Variable read scan for solid-state storage device quality of service |
US11086572B1 (en) | 2020-03-02 | 2021-08-10 | Micron Technology, Inc. | Self adapting iterative read calibration to retrieve data from memory cells |
US11221800B2 (en) | 2020-03-02 | 2022-01-11 | Micron Technology, Inc. | Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells |
US11029890B1 (en) | 2020-03-02 | 2021-06-08 | Micron Technology, Inc. | Compound feature generation in classification of error rate of data retrieved from memory cells |
US12009034B2 (en) | 2020-03-02 | 2024-06-11 | Micron Technology, Inc. | Classification of error rate of data retrieved from memory cells |
US11740970B2 (en) | 2020-03-02 | 2023-08-29 | Micron Technology, Inc. | Dynamic adjustment of data integrity operations of a memory system based on error rate classification |
TWI720852B (zh) * | 2020-03-20 | 2021-03-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11200956B2 (en) * | 2020-04-23 | 2021-12-14 | Micron Technology, Inc. | Read level calibration in memory devices using embedded servo cells |
US11474986B2 (en) * | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11257546B2 (en) | 2020-05-07 | 2022-02-22 | Micron Technology, Inc. | Reading of soft bits and hard bits from memory cells |
US11562793B2 (en) | 2020-05-07 | 2023-01-24 | Micron Technology, Inc. | Read soft bits through boosted modulation following reading hard bits |
US11081200B1 (en) | 2020-05-07 | 2021-08-03 | Micron Technology, Inc. | Intelligent proactive responses to operations to read data from memory cells |
WO2021229260A1 (en) * | 2020-05-13 | 2021-11-18 | Micron Technology, Inc. | Counter-based methods and systems for accessing memory cells |
US11152071B1 (en) | 2020-05-27 | 2021-10-19 | Western Digital Technologies, Inc. | Erase operation reattempt to recover misidentified bad blocks resulting from consecutive erase failures |
US11467744B2 (en) * | 2020-05-27 | 2022-10-11 | Western Digital Technologies, Inc. | System to identify aggressor blocks causing back to back erase failure |
US11662943B2 (en) * | 2020-06-16 | 2023-05-30 | Micron Technology, Inc. | Adjustable media management |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11960989B2 (en) | 2020-07-24 | 2024-04-16 | SK Hynix Inc. | Read threshold estimation systems and methods using deep learning |
US11636913B2 (en) * | 2020-08-18 | 2023-04-25 | Micron Technology, Inc. | Tracking and refreshing state metrics in memory sub-systems |
US11309052B2 (en) | 2020-08-25 | 2022-04-19 | Micron Technology, Inc. | Read voltage calibration for copyback operation |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11404124B2 (en) | 2020-09-16 | 2022-08-02 | Micron Technology, Inc. | Voltage bin boundary calibration at memory device power up |
US11211128B1 (en) * | 2020-10-02 | 2021-12-28 | Micron Technology, Inc. | Performing threshold voltage offset bin selection by package for memory devices |
US11177014B1 (en) * | 2020-10-28 | 2021-11-16 | Micron Technology, Inc. | Global-local read calibration |
US11393539B2 (en) | 2020-11-20 | 2022-07-19 | SK Hynix Inc. | Systems and methods for determining change of read threshold voltage |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11367484B1 (en) | 2021-01-21 | 2022-06-21 | Micron Technology, Inc. | Multi-step pre-read for write operations in memory devices |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US11664073B2 (en) | 2021-04-02 | 2023-05-30 | Micron Technology, Inc. | Adaptively programming memory cells in different modes to optimize performance |
US11615854B2 (en) | 2021-04-02 | 2023-03-28 | Micron Technology, Inc. | Identify the programming mode of memory cells during reading of the memory cells |
US11514983B2 (en) | 2021-04-02 | 2022-11-29 | Micron Technology, Inc. | Identify the programming mode of memory cells based on cell statistics obtained during reading of the memory cells |
US12051484B2 (en) | 2021-07-13 | 2024-07-30 | Micron Technology, Inc. | Memory device with adjustable delay propagation of a control signal to different page buffer driver groups |
US11693587B2 (en) * | 2021-08-17 | 2023-07-04 | Micron Technology, Inc. | System driven pass-through voltage adjustment to improve read disturb in memory devices |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11875831B2 (en) * | 2021-12-27 | 2024-01-16 | International Business Machines Corporation | Page group read voltage threshold calibration |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
TWI814352B (zh) * | 2022-01-11 | 2023-09-01 | 慧榮科技股份有限公司 | 使用最佳化讀取電壓表以讀取資料的方法及電腦程式產品及裝置 |
US11842786B1 (en) | 2022-06-29 | 2023-12-12 | Apple Inc. | Tracking of read voltages while reading memory cells |
US20240319875A1 (en) * | 2023-03-21 | 2024-09-26 | Kioxia Corporation | Tracking and updating read command voltage thresholds in solid-state drives |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130176784A1 (en) * | 2011-03-30 | 2013-07-11 | Stec, Inc. | Adjusting operating parameters for memory cells based on wordline address and cycle information |
KR20140101690A (ko) * | 2013-02-10 | 2014-08-20 | 엘에스아이 코포레이션 | 리텐션 드리프트 이력 기반 비휘발성 메모리 판독 임계치 최적화 |
US20150127883A1 (en) * | 2013-11-01 | 2015-05-07 | Lsi Corporation | Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory |
US9236147B1 (en) * | 2013-12-12 | 2016-01-12 | SK Hynix Inc. | Threshold carrying for solid state storage |
KR20160062298A (ko) * | 2014-11-24 | 2016-06-02 | 삼성전자주식회사 | 불휘발성 메모리 시스템의 동작 방법 |
KR20160113051A (ko) * | 2015-03-20 | 2016-09-28 | 에이취지에스티 네덜란드 비.브이. | 증가된 플래시 성능을 위한 판독 레벨 그룹화 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7495966B2 (en) * | 2006-05-01 | 2009-02-24 | Micron Technology, Inc. | Memory voltage cycle adjustment |
US7639532B2 (en) | 2007-10-10 | 2009-12-29 | Micron Technology, Inc. | Non-equal threshold voltage ranges in MLC NAND |
KR101606168B1 (ko) * | 2008-04-29 | 2016-03-24 | 샌디스크 아이엘 엘티디 | 프로그램, 검증 및, 읽기를 위한 참조 전압 레벨들의 적응적인 세팅을 갖는 비휘발성 멀티레벨 메모리 |
KR101578518B1 (ko) * | 2009-07-07 | 2015-12-17 | 삼성전자주식회사 | 불휘발성 메모리 장치의 읽기 방법 및 그것을 포함하는 메모리 시스템 |
TWI447733B (zh) * | 2010-04-14 | 2014-08-01 | Phison Electronics Corp | 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器 |
US8510636B2 (en) | 2011-04-01 | 2013-08-13 | Intel Corporation | Dynamic read channel calibration for non-volatile memory devices |
US8713380B2 (en) | 2011-05-03 | 2014-04-29 | SanDisk Technologies, Inc. | Non-volatile memory and method having efficient on-chip block-copying with controlled error rate |
US8743615B2 (en) * | 2011-08-22 | 2014-06-03 | Sandisk Technologies Inc. | Read compensation for partially programmed blocks of non-volatile storage |
US8913438B2 (en) * | 2013-02-20 | 2014-12-16 | Seagate Technology Llc | Adaptive architecture in a channel detector for NAND flash channels |
US20170148510A1 (en) | 2013-05-31 | 2017-05-25 | Sandisk Technologies Llc | Updating read voltages |
WO2015023259A1 (en) * | 2013-08-13 | 2015-02-19 | Empire Technology Development Llc. | Memory systems |
US9147486B2 (en) | 2013-09-05 | 2015-09-29 | Micron Technology, Inc. | Continuous adjusting of sensing voltages |
US9306600B2 (en) * | 2014-01-06 | 2016-04-05 | Micron Technology, Inc. | Read threshold calibration for LDPC |
US9251909B1 (en) * | 2014-09-29 | 2016-02-02 | International Business Machines Corporation | Background threshold voltage shifting using base and delta threshold voltage shift values in flash memory |
US9607692B2 (en) * | 2014-10-03 | 2017-03-28 | Micron Technology, Inc. | Threshold voltage distribution determination |
US10078546B2 (en) * | 2014-10-24 | 2018-09-18 | Micron Technology, Inc. | Temperature related error management |
US9431121B2 (en) | 2014-10-24 | 2016-08-30 | Micron Technology, Inc. | Read voltage adjustment |
US9576671B2 (en) * | 2014-11-20 | 2017-02-21 | Western Digital Technologies, Inc. | Calibrating optimal read levels |
US9563504B2 (en) * | 2014-12-05 | 2017-02-07 | Sandisk Technologies Llc | Partial block erase for data refreshing and open-block programming |
US10474948B2 (en) | 2015-03-27 | 2019-11-12 | University Of Dayton | Analog neuromorphic circuit implemented using resistive memories |
US10101763B2 (en) * | 2015-07-29 | 2018-10-16 | Sandisk Technologies Inc. | Interface adjustment processes for a data storage device |
US9804795B2 (en) * | 2015-09-09 | 2017-10-31 | Toshiba Memory Corporation | Memory system and controller |
US9646709B2 (en) * | 2015-09-11 | 2017-05-09 | Sandisk Technologies, Llc | Proxy wordline stress for read disturb detection |
KR102381218B1 (ko) * | 2015-09-25 | 2022-04-01 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP2018163709A (ja) * | 2017-03-24 | 2018-10-18 | 東芝メモリ株式会社 | メモリシステム |
US10199111B1 (en) * | 2017-08-04 | 2019-02-05 | Micron Technology, Inc. | Memory devices with read level calibration |
US10347344B2 (en) | 2017-08-29 | 2019-07-09 | Micron Technology, Inc. | Read voltage calibration based on host IO operations |
US10121551B1 (en) * | 2017-08-31 | 2018-11-06 | Micron Technology, Inc. | Detecting power loss in NAND memory devices |
US10096380B1 (en) * | 2017-08-31 | 2018-10-09 | Micron Technology, Inc. | Erase page check |
US10096370B1 (en) * | 2017-08-31 | 2018-10-09 | Micron Technology, Inc. | Voltage degradation aware NAND array management |
-
2017
- 2017-08-29 US US15/689,747 patent/US10347344B2/en active Active
-
2018
- 2018-08-13 TW TW107128113A patent/TWI731256B/zh active
- 2018-08-28 KR KR1020207009015A patent/KR102365950B1/ko active IP Right Grant
- 2018-08-28 EP EP18852323.7A patent/EP3676841A4/en active Pending
- 2018-08-28 CN CN201880065857.8A patent/CN111801739B/zh active Active
- 2018-08-28 WO PCT/US2018/048383 patent/WO2019046326A1/en unknown
-
2019
- 2019-06-10 US US16/436,567 patent/US10586602B2/en active Active
-
2020
- 2020-02-05 US US16/782,720 patent/US10777284B2/en active Active
- 2020-09-10 US US17/017,291 patent/US11043278B2/en active Active
-
2021
- 2021-05-06 US US17/313,249 patent/US11670381B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130176784A1 (en) * | 2011-03-30 | 2013-07-11 | Stec, Inc. | Adjusting operating parameters for memory cells based on wordline address and cycle information |
KR20140101690A (ko) * | 2013-02-10 | 2014-08-20 | 엘에스아이 코포레이션 | 리텐션 드리프트 이력 기반 비휘발성 메모리 판독 임계치 최적화 |
US20150127883A1 (en) * | 2013-11-01 | 2015-05-07 | Lsi Corporation | Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory |
US9236147B1 (en) * | 2013-12-12 | 2016-01-12 | SK Hynix Inc. | Threshold carrying for solid state storage |
KR20160062298A (ko) * | 2014-11-24 | 2016-06-02 | 삼성전자주식회사 | 불휘발성 메모리 시스템의 동작 방법 |
KR20160113051A (ko) * | 2015-03-20 | 2016-09-28 | 에이취지에스티 네덜란드 비.브이. | 증가된 플래시 성능을 위한 판독 레벨 그룹화 |
Also Published As
Publication number | Publication date |
---|---|
WO2019046326A1 (en) | 2019-03-07 |
EP3676841A1 (en) | 2020-07-08 |
KR102365950B1 (ko) | 2022-02-23 |
CN111801739B (zh) | 2024-01-12 |
US10586602B2 (en) | 2020-03-10 |
TWI731256B (zh) | 2021-06-21 |
US11670381B2 (en) | 2023-06-06 |
CN111801739A (zh) | 2020-10-20 |
US20200411117A1 (en) | 2020-12-31 |
US10777284B2 (en) | 2020-09-15 |
US20190295660A1 (en) | 2019-09-26 |
EP3676841A4 (en) | 2021-05-19 |
TW201923772A (zh) | 2019-06-16 |
US11043278B2 (en) | 2021-06-22 |
US20200176063A1 (en) | 2020-06-04 |
US20190066802A1 (en) | 2019-02-28 |
US10347344B2 (en) | 2019-07-09 |
US20210257031A1 (en) | 2021-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102365950B1 (ko) | 호스트 io 동작에 기초하는 판독 전압 교정 | |
US10121551B1 (en) | Detecting power loss in NAND memory devices | |
US11488670B2 (en) | Temperature sensitive NAND programming | |
CN113168377B (zh) | Slc高速缓存分配 | |
CN112424865B (zh) | Nand温度感知操作 | |
US10325670B2 (en) | Erase page check | |
US10755793B2 (en) | SLC page read | |
US10891072B2 (en) | NAND flash thermal alerting | |
KR20220066189A (ko) | Nand 온도 데이터 관리 | |
US11914490B2 (en) | Reactive read based on metrics to screen defect prone memory blocks | |
US11682462B2 (en) | Charge loss compensation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |