KR102326385B1 - 최적화된 스캔 간격 - Google Patents

최적화된 스캔 간격 Download PDF

Info

Publication number
KR102326385B1
KR102326385B1 KR1020207009335A KR20207009335A KR102326385B1 KR 102326385 B1 KR102326385 B1 KR 102326385B1 KR 1020207009335 A KR1020207009335 A KR 1020207009335A KR 20207009335 A KR20207009335 A KR 20207009335A KR 102326385 B1 KR102326385 B1 KR 102326385B1
Authority
KR
South Korea
Prior art keywords
read
memory
write
operations
erase
Prior art date
Application number
KR1020207009335A
Other languages
English (en)
Other versions
KR20200046090A (ko
Inventor
키쇼어 쿠마르 무치헬라
아슈토쉬 말쉬
하리쉬 레디 싱기디
지아니 스티븐 알사수아
게리 에프. 베싱아
삼파스 라트남
피터 션 필리
Original Assignee
마이크론 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20200046090A publication Critical patent/KR20200046090A/ko
Application granted granted Critical
Publication of KR102326385B1 publication Critical patent/KR102326385B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12015Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising clock generation or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/22Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/20Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)

Abstract

다양한 애플리케이션은 교정될 수 있는 판독 레벨을 갖는 메모리 디바이스를 포함하는 장치 및/또는 장치를 동작시키는 방법을 포함할 수 있다. 메모리 디바이스로 구현된 교정 제어기는 메모리 디바이스와 관련된 파라미터를 모니터링하는 하나 이상의 트랙커로부터의 입력, 및 모니터링된 파라미터에 관한 이벤트 세트로부터의 적어도 하나의 이벤트의 발생의 결정에 기초하여 판독 레벨 교정을 트리거할 수 있다. 모니터링된 파라미터는 선택된 시간 간격, 및 메모리 디바이스의 판독, 소거, 또는 기입 동작의 측정에 관한 파라미터를 포함할 수 있다. 추가 장치, 시스템, 및 방법이 개시된다.

Description

최적화된 스캔 간격
[우선권 출원]
본 출원은 2017년 8월 31일자로 출원된 미국 출원 제15/692,407호에 대한 우선권의 이익을 주장하며, 그 전체 내용이 참조로 본 명세서에 포함된다.
메모리 디바이스는 일반적으로 컴퓨터 또는 다른 전자 디바이스의 내부 디바이스, 반도체 디바이스, 집적 회로 디바이스로서 제공된다. 휘발성 및 비-휘발성 메모리를 포함한 다양한 유형의 메모리가 있다. 휘발성 메모리는 데이터를 유지하기 위한 전력을 필요로 하며, 휘발성 메모리의 예는 특히 랜덤 액세스 메모리(Random-Access Memory: RAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory: DRAM), 및 동기식 동적 랜덤 액세스 메모리(Synchronous Dynamic Random Access Memory: SDRAM)를 포함할 수 있다. 비-휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지할 수 있으며, 비-휘발성 메모리의 예는 특히 플래시 메모리, 판독 전용 메모리(Read-Only Memory:ROM), 전기적 소거가능 프로그램가능 ROM(Electrically Erasable Programmable: 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) 및 3차원(3D) XPoint?? 메모리와 같은 저항 가변 메모리를 포함한다.
플래시 메모리는 광범위한 전자 애플리케이션을 위한 비-휘발성 메모리로서 이용된다. 플래시 메모리 디바이스는 일반적으로 높은 메모리 밀도, 높은 신뢰성, 및 낮은 전력 소비를 허용하는 하나의 트랜지스터(one-transistor), 플로팅 게이트 또는 전하 트랩 메모리 셀 중 하나 이상의 그룹을 포함한다. 2개의 일반적인 유형의 플래시 메모리 어레이 아키텍처는 각각의 기본 메모리 셀 구성이 배열된 소위 논리 형태라고 명명된 NAND 및 NOR 아키텍처를 포함한다. 메모리 어레이의 메모리 셀은 일반적으로 매트릭스로 배열된다. 일례에서, 어레이의 행(row)의 각 플로팅 게이트 메모리 셀의 게이트는 액세스 라인(예를 들어, 워드 라인)에 결합된다. NOR 아키텍처에서, 어레이의 열(column)의 각 메모리 셀의 드레인은 데이터 라인(예를 들어, 비트 라인)에 결합된다. NAND 아키텍처에서, 어레이의 스트링(string) 내의 메모리 셀들은 소스 라인과 비트 라인 사이에서 소스로부터 드레인에 직렬로 함께 결합된다.
양쪽의 NOR 및 NAND 아키텍처 반도체 메모리 어레이는, 게이트에 결합된 워드 라인을 선택함으로써 특정 메모리 셀을 활성화하는 디코더를 통해 액세스된다. NOR 아키텍처 반도체 메모리 어레이에서, 활성화되면, 선택된 메모리 셀은 자신의 데이터 값을 비트 라인 상에 배치하고, 특정 셀이 프로그램되는 상태에 따라 상이한 전류가 흐르게 한다. NAND 아키텍처 반도체 메모리 어레이에서는, 드레인측 선택 게이트(SGD) 라인에 높은 바이어스 전압이 인가된다. 각 그룹의 선택되지 않은 메모리 셀의 게이트에 결합된 워드 라인은 각 그룹의 선택되지 않은 메모리 셀을 패스 트랜지스터로서 동작시키기 위해(예를 들어, 자신의 저장된 데이터 값에 의해 제한되지 않는 방식으로 전류를 전달하기 위해) 특정 패스 전압(예를 들어, Vpass)에서 구동된다. 그 후, 전류는 각 그룹의 선택된 메모리 셀에 의해서만 제한되는 각각의 직렬 결합된 그룹을 통해 소스 라인으로부터 비트 라인으로 흘러서, 선택된 메모리 셀의 현재 인코딩된 데이터 값을 비트 라인에 배치시킨다.
NOR 또는 NAND 아키텍처 반도체 메모리 어레이 내의 각 플래시 메모리 셀은 개별적으로 또는 집합적으로 하나 또는 다수의 프로그램된 상태로 프로그램될 수 있다. 예를 들어, 싱글-레벨 셀(single-level cell: SLC)은 1비트의 데이터를 나타내는 2개의 프로그램된 상태(예를 들어, 1 또는 0) 중 하나를 나타낼 수 있다. 그러나, 플래시 메모리 셀은 또한 3개 이상의 프로그램된 상태 중 하나를 나타낼 수 있으며, 각 셀이 둘 이상의 이진수(예를 들어, 둘 이상의 비트)를 나타낼 수 있기 때문에, 메모리 셀의 수를 증가시키지 않고 더 높은 밀도의 메모리를 제조하는 것을 가능하게 한다. 이러한 셀은 멀티-스테이트 메모리 셀, 멀티-디지트 셀, 또는 멀티-레벨 셀(multi-level cell: MLC)이라고 지칭될 수 있다. 특정 실시예에서, MLC는 셀당 2비트의 데이터(예를 들어, 4개의 프로그램된 상태 중 하나)를 저장할 수 있는 메모리 셀을 지칭할 수 있고, 트리플-레벨 셀(triple-level cell: TLC)은 셀당 3비트의 데이터(예를 들어, 8개의 프로그램된 상태 중 하나)를 저장할 수 있는 메모리 셀을 지칭할 수 있으며, 쿼드-레벨 셀(quad-level cell: QLC)은 셀당 4비트의 데이터를 저장할 수 있다. MLC는 셀당 둘 이상의 비트의 데이터를 저장할 수 있는(즉, 3개 이상의 프로그램된 상태를 나타낼 수 있는) 임의의 메모리 셀을 지칭하기 위해 본 명세서에서 더 넓은 맥락으로 사용된다.
종래의 메모리 어레이는 반도체 기판의 표면 상에 배열된 2차원(2D) 구조이다. 제공된 영역의 메모리 용량을 증가시키고 비용을 감소시키기 위해서, 개별 메모리 셀의 크기가 감소되었다. 그러나, 개별 메모리 셀의 크기 감소, 및 이에 따라 2D 메모리 어레이의 메모리 밀도에 대한 기술적 한계가 있다. 이에 대응하여, 메모리 밀도를 더 증가시키고 메모리 비용을 더 낮추기 위해 3D NAND 아키텍처 반도체 메모리 디바이스와 같은 3차원(3D) 메모리 구조가 개발되고 있다.
이러한 3D NAND 디바이스는 종종 소스에 근접한 하나 이상의 소스측 선택 게이트(SGS)와 비트 라인에 근접한 하나 이상의 드레인측 선택 게이트(SGD) 사이에 (예를 들어, 드레인으로부터 소스에) 직렬로 결합된 저장 셀의 스트링을 포함한다. 일례에서, SGS 또는 SGD는 하나 이상의 전계 효과 트랜지스터(FET) 또는 금속 산화물 반도체(MOS) 구조 디바이스 등을 포함할 수 있다. 일부 실시예에서, 스트링은 각각의 워드 라인을 포함하는 다수의 수직으로 간격을 둔 티어(tier)를 통해 수직으로 연장할 것이다. 반도체 구조(예를 들어, 폴리실리콘 구조)는 저장 셀의 스트링에 인접하여 연장되어 스트링의 저장 셀을 위한 채널을 형성할 수 있다. 수직 스트링의 실시예에서, 폴리실리콘 구조는 상하방향으로 연장하는 필러(vertically extending pillar)의 형태일 수 있다. 일부 실시예에서, 스트링은 "절첩되고(folded), 이에 따라 U자형 필러에 대해 배열될 수 있다. 다른 실시예에서는, 다수의 수직 구조가 서로 적층되어 저장 셀 스트링의 적층된 어레이를 형성할 수 있다.
메모리 어레이 또는 디바이스는 함께 결합되어 솔리드-스테이트 드라이브(Solid-State Drive: SSD), 유니버설 플래시 스토리지(Universal Flash Storage: UFS??) 디바이스, 멀티미디어카드(MultiMediaCard: MMC) 솔리드-스테이트 저장 디바이스, 임베디드 MMC 디바이스(eMMC??) 등을 형성할 수 있다. SSD는 특히 컴퓨터의 주 저장 디바이스로서 사용될 수 있고, 예를 들어 성능, 크기, 무게, 견고성, 작동 온도 범위, 및 전력 소비에 대하여 이동 부품을 갖는 종래의 하드 드라이브에 비해 이점을 갖는다. 예를 들어, SSD는 자기 디스크 드라이브와 관련된 탐색 시간, 레이턴시, 또는 다른 지연을 감소시킬 수 있다. SSD는 플래시 메모리 셀과 같은 비-휘발성 메모리 셀을 사용하여 내부 배터리 공급 요구 사항을 제거하므로, 드라이브를 더욱 다양하고 컴팩트하게 할 수 있다.
SSD는 다수의 다이 또는 논리 유닛(예를 들어, 논리 유닛 번호(logical unit number) 또는 LUN)을 포함한 다수의 메모리 디바이스를 포함할 수 있고, 메모리 디바이스를 동작시키거나 외부 시스템과 인터페이싱하기 위해 필요한 논리 기능을 수행하는 하나 이상의 프로세서 또는 다른 제어기를 포함할 수 있다. 이러한 SSD는 다수의 메모리 어레이 및 그 위의 주변 회로를 포함하는 하나 이상의 플래시 메모리 다이를 포함할 수 있다. 플래시 메모리 어레이는 다수의 물리 페이지(physical page)로 편성된 다수의 메모리 셀 블록을 포함할 수 있다. 많은 실시예에서, SSD는 또한 DRAM 또는 SRAM(또는 다른 형태의 메모리 다이 또는 다른 메모리 구조)을 포함할 것이다. SSD는 메모리 디바이스와 호스트 사이에서 데이터(예를 들어, 사용자 데이터 및 에러 데이터 및 어드레스 데이터 등과 같은 관련된 무결성 데이터)를 전송하기 위한 판독 또는 기입 동작, 또는 메모리 디바이스로부터 데이터를 소거하기 위한 소거 동작과 같은 메모리 동작과 관련하여 호스트로부터 커맨드를 수신할 수 있다.
NAND 플래시 기반 저장 시스템에서, SLC 또는 MLC로서 배열된 메모리 셀은 일반적으로 전하 저장 트랜지스터를 포함하며, 여기서 전하 저장 트랜지스터에 저장된 전하는 전하 저장 트랜지스터의 임계 전압(Vt)을 설정한다. NAND의 내부 로직은 각 상태와 다른 임계 전압의 관련성을 고정시킨다. 그러나, NAND Vt는 다수의 요인 중 임의의 것으로 인해 지속적으로 시프트하게 된다. 이러한 요인은 판독 장애, 보유, 교차 온도 등을 포함한다. 실패한 비트의 카운트는 판독 전압 값과 NAND Vt 간의 불일치의 기능을 포함할 수 있다. 그 결과, NAND 플래시 기반 저장 시스템의 개선은 판독 전압의 재교정(recalibration)의 개선을 포함할 수 있다.
도면은 반드시 일정의 축척으로 나타내지 않지만, 실시예로서 단 한정을 의도하지 않고 본 명세서에서 논의되는 다양한 실시형태에 대하여 일반적으로 예시하는 것이다.
도 1은 다양한 실시형태에 따른 메모리 디바이스를 포함하는 환경의 일례를 도시한다.
도 2 및 도 3은 다양한 실시형태에 따른, 3차원 NAND 아키텍처 반도체 메모리 어레이의 일례의 개략도를 도시한다.
도 4는 다양한 실시형태에 따른, 메모리 모듈의 예시적인 블록도를 도시한다.
도 5는 다양한 실시형태에 따른, 하나 이상의 실시형태가 구현될 수 있는 머신의 일례를 도시하는 블록도이다.
도 6은 다양한 실시형태에 따른, 메모리 디바이스, 하나 이상의 트랙커(tracker), 및 교정 제어기(calibration controller)를 갖는 예시적인 시스템의 특징의 블록도이다.
도 7은 다양한 실시형태에 따른, NAND 메모리 디바이스의 조합된 초당 입력/출력 샘플링 및 시간 기반 샘플링을 사용하는 절차의 표현도이다.
도 8은 다양한 실시형태에 따른, 판독 레벨 프로세싱을 트리거하기 위한 시간 기반 샘플링, 판독 기반 샘플링, 및 기입/소거 기반 샘플링과 관련된 타이밍을 도시한다.
도 9는 다양한 실시형태에 따른, 판독 레벨 교정을 위해 메모리 디바이스의 스캔을 최적화하는 예시적인 방법의 특징의 흐름도이다.
NAND 플래시 기반 저장 시스템에서, 판독 전압과 NAND Vt 간의 불일치로 인한 페일 비트 카운트(fail bit count)는 NAND Vt에 따라 판독 전압을 조정함으로써 최소화될 수 있다. 판독 전압의 조정은 판독 레벨 전압 교정을 포함할 수 있다. 이러한 판독 레벨 전압 교정은 상이한 판독 전압에서 NAND 로우 비트 에러율(raw bit error rate: RBER)의 실시간 샘플링을 포함할 수 있다. 다양한 판독 전압에서 스캔 판독을 발행하는 것, RBER을 측정하는 것, 및 최적의 RBER을 위한 최적의 판독 전압을 결정하는 것에 의해 NAND 판독 전압을 교정하기 위해 펌웨어가 구현될 수 있다.
상이한 판독 전압에서 RBER을 샘플링하는 것이 호스트 성능 영향으로 나타나기 때문에, 샘플링은 일반적으로 NAND에 대한 샘플링 활동이 신호 인터럽트 또는 지연으로서 호스트에 의해 거의 검출되지 않도록 충분히 느린 속도를 제공하는 시간 간격으로 수행된다. 정상 작동에서, 판독 및 기입은 교정을 위한 간격이 시, 일, 또는 그 이상이 될 수 있고 일일(day-to-day) 사용 모델과 같은 사용 모델에 따라 스케줄링될 수 있도록 비교적 적은 수로 발생한다. 목표 벤치마크와 같은 특정의 경우에, NAND Vt 시프트는 시간 기반의 느린 샘플링보다 더 빠르게 발생하며, 이러한 경우에는 시간 기반 샘플링이 상당히 효과적이지 않을 수 있다. 벤치마킹에서, 많은 수의 판독 또는 기입이 NAND에 전송될 수 있으며, 이 수는 NAND의 일일 사용 모델과 관련된 것보다 수십배 더 클 수 있다. 벤치마킹은 NAND 기능 및 NAND 성능 레벨에 대한 테스팅을 제공할 수 있다. 그러나, 벤치마킹과 같은 경우에, 일반적인 사용자 사용 모델과 관련된 간격에서의 판독 레벨 교정은 적절하지 않을 수 있으며, 더 짧은 간격으로 NAND의 성능을 향상시키기 위해 수행될 수 있다.
다양한 실시형태에서, 판독 기반 보정은 시간 기반 샘플링 이외에 초당 입력/출력 동작(input/output operations per second: IOPS) 샘플링을 사용하여 트리거될 수 있다. IOPS는 입력/출력 성능 측정이다. IOPS 기반 샘플링에서, NAND를 위한 펌웨어는 NAND 상에서 개별적으로 판독 및 기입을 트랙킹할 수 있다. 트랙킹에 응답하여, 펌웨어는 수행된 각각의 특정 수의 판독 및/또는 기입에 대해 판독 전압 샘플링을 트리거할 수 있다. NAND 판독/기입을 입력 파라미터로서 사용함으로써, 펌웨어는 NAND 상의 목표 벤치마크 스트레스 조건 하에서 셀 Vt 이동을 트랙킹하기에 더 적합하다. 시간 기반 샘플링은 판독/기입의 IOPS 샘플링보다 더 느린 속도로, 즉 더 긴 간격으로 수행될 수 있다. IOPS 기반 샘플링 속도의 더 빠른 속도는 증가된 샘플 수가 IOPS에 묻히도록 전략적으로 더 빠른 속도로 수행될 수 있다. 본 명세서에 교시된 바와 같이 시간 기반 샘플링을 IOPS와 조합하는 접근법을 사용하는 것은 시스템이 일반적인 사용자 워크로드의 성능 및 레이턴시에 영향을 미치지 않으면서 가속된 샘플링으로 목표 벤치마크를 수용하는 것을 가능하게 할 수 있다.
모바일 전자 디바이스(예를 들어, 스마트 폰, 태블릿 등)와 같은 전자 디바이스, 자동차 애플리케이션에서 사용하기 위한 전자 디바이스(예를 들어, 자동차 센서, 제어 유닛, 운전자 보조 시스템, 승객 안전 또는 편의 시스템 등), 및 인터넷 연결 가전기기 또는 디바이스(예를 들어 사물 인터넷(IoT) 디바이스 등)는 특히 전자 디바이스의 유형, 사용 환경, 성능 기대치 등에 따라 다양한 스토리지 필요성을 갖는다.
전자 디바이스는 수개의 주요 구성요소로 분류될 수 있다: 프로세서(예를 들어, 중앙 처리 유닛(CPU) 또는 다른 메인 프로세서); 메모리(예를 들어, 동적 RAM(DRAM), 모바일 또는 저전력 더블 데이터 레이트 동기식 DRAM(DDR SDRAM) 등과 같은 하나 이상의 휘발성 또는 비-휘발성 랜덤 액세스 메모리(RAM) 메모리 디바이스); 및 저장 디바이스(예를 들어, 플래시 메모리, 판독 전용 메모리(ROM), SSD, MMC, 또는 다른 메모리 카드 구조 또는 어셈블리 등과 같은 비-휘발성 메모리(NVM) 디바이스). 특정 실시예에서, 전자 디바이스는 사용자 인터페이스(예를 들어, 디스플레이, 터치 스크린, 키보드, 하나 이상의 버튼 등), 그래픽 처리 유닛(GPU), 전력 관리 회로, 기저 대역 프로세서 또는 하나 이상의 트랜시버 회로 등을 포함할 수 있다.
도 1은 통신 인터페이스를 통해 통신하도록 구성된 호스트 디바이스(105) 및 메모리 디바이스(110)를 포함하는 환경(100)의 일례를 도시한다. 호스트 디바이스(105) 또는 메모리 디바이스(110)는 사물 인터넷(IoT) 디바이스(예를 들어, 냉장고 또는 다른 가전기기, 센서, 모터 또는 액추에이터, 이동 통신 디바이스, 자동차, 드론 등)와 같은 다양한 제품(150)에 포함되어, 제품(150)의 처리, 통신, 또는 제어를 지원할 수 있다.
메모리 디바이스(110)는 메모리 제어기(115) 및 예를 들어 다수의 개별 메모리 다이(예를 들어, 3D NAND 다이의 스택)를 포함하는 메모리 어레이(120)를 포함한다. 3D 아키텍처 반도체 메모리 기술에서, 수직 구조가 적층되어, 티어의 수, 물리 페이지, 및 이에 따라 메모리 디바이스(예를 들어, 저장 디바이스)의 밀도를 증가시킨다. 일례에서, 메모리 디바이스(110)는 호스트 디바이스(105)의 이산 메모리 또는 저장 디바이스 구성요소일 수 있다. 다른 예에서, 메모리 디바이스(110)는 집적 회로(예를 들어, 시스템 온 칩(SOC) 등)의 일부일 수 있거나, 호스트 디바이스(105)의 하나 이상의 다른 구성요소와 함께 적층되거나 또는 다른 방식으로 포함될 수 있다.
SATA(Serial Advanced Technology Attachment) 인터페이스, PCI(Peripheral Component Interconnect Express) 인터페이스, USB(Universal Serial Bus) 인터페이스, UFS(Universal Flash Storage) 인터페이스, eMMC?? 인터페이스, 또는 하나 이상의 다른 커넥터 또는 인터페이스와 같은 하나 이상의 통신 인터페이스는 메모리 디바이스(110)와 호스트 디바이스(105)의 하나 이상의 다른 구성요소 사이에서 데이터 전송하는 데 사용될 수 있다. 호스트 디바이스(105)는 호스트 시스템, 전자 디바이스, 프로세서, 메모리 카드 리더, 또는 메모리 디바이스(110) 외부의 하나 이상의 다른 전자 디바이스를 포함할 수 있다. 일부 실시예에서, 호스트(105)는 도 5의 머신(500)을 참조하여 설명되는 구성요소 중 일부 또는 전부를 갖는 머신일 수 있다.
메모리 제어기(115)는 호스트(105)로부터 명령어를 수신할 수 있고, 예를 들어 메모리 어레이의 메모리 셀, 평면, 서브블록, 블록, 또는 메모리 어레이의 서브블록, 블록, 또는 페이지 중 하나 이상에 데이터를 전송(예를 들어, 기입 또는 소거)하거나 또는 그로부터 데이터를 전송(예를 들어, 판독)하기 위해 메모리 어레이와 통신할 수 있다. 메모리 제어기(115)는 특히 하나 이상의 구성요소 또는 집적 회로를 포함한, 회로 또는 펌웨어를 포함할 수 있다. 예를 들어, 메모리 제어기(115)는 메모리 어레이(120)에 걸친 액세스를 제어하고 호스트(105)와 메모리 디바이스(110) 사이에 변환 계층(translation layer)을 제공하도록 구성된 하나 이상의 메모리 제어 유닛, 회로, 또는 구성요소를 포함할 수 있다. 메모리 제어기(115)는 메모리 어레이(120)에 데이터를 전송하거나 또는 그로부터 데이터를 전송하기 위해 하나 이상의 입력/출력(I/O) 회로, 라인, 또는 인터페이스를 포함할 수 있다. 메모리 제어기(115)는 메모리 매니저(125) 및 어레이 제어기(135)를 포함할 수 있다.
메모리 매니저(125)는 특히 다양한 메모리 관리 기능과 관련된 다수의 구성요소 또는 집적 회로와 같은 회로 또는 펌웨어를 포함할 수 있다. 본 설명을 위해, 예시적인 메모리 동작 및 관리 기능이 NAND 메모리의 맥락에서 설명될 것이다. 당업자는 다른 형태의 비-휘발성 메모리가 유사한 메모리 동작 또는 관리 기능을 가질 수 있음을 인식할 것이다. 이러한 NAND 관리 기능은 마모 레벨링(wear leveling)(예를 들어, 가비지 수집(garbage collection) 또는 매립(reclamation)), 에러 검출 또는 정정, 블록 폐기, 또는 하나 이상의 다른 메모리 관리 기능을 포함한다. 메모리 매니저(125)는 호스트 커맨드(예를 들어, 호스트로부터 수신된 커맨드)를 디바이스 커맨드(예를 들어, 메모리 어레이의 동작과 관련된 커맨드 등)로 파싱(parse) 또는 포맷하거나, 또는 어레이 제어기(135) 또는 메모리 디바이스(110)의 하나 이상의 다른 구성요소를 위한 (예를 들어, 다양한 메모리 관리 기능을 달성하기 위한) 디바이스 커맨드를 생성할 수 있다.
메모리 매니저(125)는 메모리 디바이스(110)의 하나 이상의 구성요소와 관련된 다양한 정보(예를 들어, 메모리 제어기(115)에 결합된 메모리 어레이 또는 하나 이상의 메모리 셀과 관련된 다양한 정보)를 유지하도록 구성된 한 세트의 관리 테이블(130)을 포함할 수 있다. 예를 들어, 관리 테이블(130)은 메모리 제어기(115)에 결합된 메모리 셀의 하나 이상의 블록에 대한 블록 에이지(blok age), 블록 소거 카운트, 에러 이력, 또는 하나 이상의 에러 카운트(예를 들어, 기입 동작 에러 카운트, 판독 비트 에러 카운트, 판독 동작 에러 카운트, 소거 에러 카운트 등)에 관한 정보를 포함할 수 있다. 특정 실시예에서, 하나 이상의 에러 카운트에 대한 검출된 에러의 수가 임계값을 초과하는 경우, 비트 에러는 정정 불가능한 비트 에러라고 지칭될 수 있다. 관리 테이블(130)은 특히 정정 가능한 또는 정정 불가능한 비트 에러의 카운트를 유지할 수 있다.
어레이 제어기(135)는 특히 메모리 제어기(115)에 결합된 메모리 디바이스(110)의 하나 이상의 메모리 셀에 데이터를 기입하거나, 그로부터 데이터를 판독하거나, 또는 그를 소거하는 것과 관련된 메모리 동작을 제어하도록 구성된 회로 또는 구성요소를 포함할 수 있다. 메모리 동작은, 예를 들어 호스트(105)로부터 수신된 호스트 커맨드에 기초하거나, 또는 (예를 들어, 마모 레벨링, 에러 검출 또는 정정 등과 관련하여) 메모리 매니저(125)에 의해 내부적으로 발생될 수 있다.
어레이 제어기(135)는 에러 정정 코드(ECC) 구성요소(140)를 포함할 수 있고, 이는 특히 메모리 제어기(115)에 결합된 메모리 디바이스(110)의 하나 이상의 메모리 셀에 데이터를 기입하는 것 또는 그로부터 데이터를 판독하는 것과 관련된 에러를 검출 또는 정정하도록 구성된 ECC 엔진 또는 다른 회로를 포함할 수 있다. 메모리 제어기(115)는 호스트(105)와 메모리 디바이스(110) 사이에서 전송되는 데이터의 무결성을 유지하거나, 또는 (예를 들어, 여분의 RAID 스토리지 등을 사용하여) 저장된 데이터의 무결정을 유지하면서, 다양한 동작 또는 데이터의 저장과 관련된 에러 발생(예를 들어, 비트 에러, 동작 에러 등)을 능동적으로 검출 및 복구하도록 구성될 수 있으며, 고장난 메모리 리소스(예를 들어, 메모리 셀, 메모리 어레이, 페이지, 블록 등)를 제거(예를 들어, 폐기)하여 미래의 에러를 방지할 수 있다.
메모리 어레이(120)는, 예를 들어 다수의 디바이스, 평면, 서브블록, 블록, 또는 페이지로 배열된 수개의 메모리 셀을 포함할 수 있다. 일례로서, 48GB TLC NAND 메모리 디바이스는 페이지당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트), 블록당 1536 페이지, 평면당 548 블록, 및 디바이스당 4개 이상의 평면을 포함할 수 있다. 다른 예로서, 32GB MLC 메모리 디바이스(셀당 2 비트의 데이터를 저장함(즉, 4개의 프로그램 가능 상태))는 페이지당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트), 블록당 1024 페이지, 평면당 548 블록, 디바이스당 4개의 평면을 포함할 수 있지만, 대응하는 TLC 메모리 디바이스의 필요한 기입 시간의 절반과 프로그램/소거(P/E) 사이클의 2배를 갖는다. 다른 예는 다른 수 및 배열을 포함할 수 있다. 일부 예에서, 메모리 디바이스, 또는 그의 일부는 SLC 모드에서, 또는 원하는 MLC 모드(예를 들어, TLC, QLC 등)에서 선택적으로 동작될 수 있다.
동작 시, 데이터는 일반적으로 페이지 단위로 NAND 메모리 디바이스(110)에 기입되거나 그로부터 판독되며, 블록 단위로 소거된다. 그러나, 하나 이상의 메모리 동작(예를 들어, 판독, 기입, 소거 등)은 원하는 대로 더 크거나 더 작은 메모리 셀 그룹에서 수행될 수 있다. NAND 메모리 디바이스(110)의 데이터 전송 크기는 일반적으로 페이지라고 지칭되고; 반면에 호스트의 데이터 전송 크기는 일반적으로 섹터라고 지칭된다.
데이터의 페이지는 다수의 바이트의 사용자 데이터(예를 들어, 다수의 데이터 섹터를 포함하는 데이터 페이로드) 및 그의 대응하는 메타데이터(metadata)를 포함할 수 있지만, 페이지의 크기는 종종 사용자 데이터를 저장하는 데 사용되는 바이트의 수만을 지칭한다. 일례로서, 4KB의 페이지 크기를 갖는 데이터의 페이지는 4KB의 사용자 데이터(예를 들어, 512B의 섹터 크기를 가정하는 8개의 섹터)뿐만 아니라, 무결성 데이터(예를 들어, 에러 검출 또는 정정 코드 데이터), 어드레스 데이터(예를 들어, 논리 어드레스 데이터 등), 또는 사용자 데이터와 관련된 다른 메타데이터와 같은, 사용자 데이터에 대응하는 다수의 바이트(32B, 54B, 224B 등)의 메타데이터를 포함할 수 있다.
상이한 유형의 메모리 셀 또는 메모리 어레이(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 메모리 어레이 내의 메모리 셀의 각 스트링은 데이터 라인(예를 들어, 비트 라인(BL) BL0-BL2(220-222))으로서 X 방향을 따라, 그리고 물리 페이지로서 Y 방향을 따라 배열될 수 있다.
물리 페이지 내에서, 각 티어는 메모리 셀의 행을 나타내고, 메모리 셀의 각 스트링은 열을 나타낸다. 서브블록은 하나 이상의 물리 페이지를 포함할 수 있다. 블록은 다수의 서브블록(또는 물리 페이지)(예를 들어, 128, 256, 384 등)을 포함할 수 있다. 본 명세서에서는 2개의 블록을 갖고, 각 블록이 2개의 서브블록을 갖고, 각 서브블록이 단일의 물리 페이지를 갖고, 각 물리 페이지가 메모리 셀의 3개의 스트링을 갖고, 각 스트링이 메모리 셀의 8개의 티어를 갖는 것으로 도시되어 있지만, 다른 예에서, 메모리 어레이(200)는 더 많거나 더 적은 블록, 서브블록, 물리 페이지, 메모리 셀의 스트링, 메모리 셀, 또는 티어를 포함할 수 있다. 예를 들어, 메모리 셀의 각 스트링은 더 많거나 더 적은 티어(예를 들어, 16, 32, 64, 128 등)뿐만 아니라, 원하는 대로 전하 저장 트랜지스터(예를 들어, 게이트, 데이터 라인 등) 위 또는 아래에 반도체 재료의 하나 이상의 추가 티어를 포함할 수 있다. 일례로서, 48GB TLC NAND 메모리 디바이스는 페이지당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트), 블록당 1536 페이지, 평면당 548 블록, 및 디바이스당 4개 이상의 평면을 포함할 수 있다.
메모리 어레이(200) 내의 각 메모리 셀은, 원하는 대로 특정 티어, 또는 티어의 일부에 걸쳐 제어 게이트(CG)를 집합적으로 결합하는, 액세스 라인(예를 들어, 워드 라인(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) 등으로서 도시됨)의 2차원 어레이로 배열된 복수의 메모리 셀(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의 실시예에서는 (예를 들어, 워드 라인(WL) WL0-WL7(310-317) 사용하여) 8개의 티어 및 3개의 데이터 라인(BL0-BL2(326-328))으로 도시되었지만, 다른 실시예는 원하는 대로 더 많거나 더 적은 티어 또는 데이터 라인을 갖는 메모리 셀의 스트링을 포함할 수 있다.
예시적인 메모리 어레이(300)와 같은 NAND 아키텍처 반도체 메모리 어레이에서, 선택된 메모리 셀(302)의 상태는 선택된 메모리 셀을 포함하는 특정 데이터 라인과 관련된 전류 또는 전압 변동을 감지함으로써 액세스될 수 있다. 메모리 어레이(300)는 하나 이상의 드라이버를 사용하여 (예를 들어, 제어 회로, 하나 이상의 프로세서, 디지털 로직 등에 의해) 액세스될 수 있다. 일례에서, 하나 이상의 드라이버는 특정 메모리 셀 또는 메모리 셀 세트 상에서 수행될 원하는 동작의 유형에 따라 하나 이상의 데이터 라인(예를 들어, 비트 라인 BL0-BL2), 액세스 라인(예를 들어, 워드 라인 WL0-WL7), 또는 선택 게이트에 특정 전위를 구동함으로써 특정 메모리 셀, 또는 메모리 셀 세트를 활성화할 수 있다.
데이터를 메모리 셀에 프로그래밍 또는 기입하기 위해, 프로그래밍 전압(Vpgm)(예를 들어, 하나 이상의 프로그래밍 펄스 등)이 선택된 워드 라인(예를 들어, WL4)에, 그리고 이에 따라 선택된 워드 라인에 결합된 각 메모리 셀의 제어 게이트(예를 들어, WL4에 결합된 메모리 셀의 제1 내지 제3 제어 게이트(CG)(341-343))에 인가될 수 있다. 프로그래밍 펄스는, 예를 들어 15V 또는 그 근처에서 개시할 수 있으며, 특정 예에서는 각 프로그래밍 펄스 인가 중에 크기가 증가할 수 있다. 프로그램 전압이 선택된 워드 라인에 인가되는 동안, 접지 전위(예를 들어, Vss)와 같은 전위가 프로그래밍 대상인 메모리 셀의 데이터 라인(예를 들어, 비트 라인) 및 기판(및 이에 따라 소스와 드레인 사이의 채널)에 인가될 수 있어, 채널로부터 대상 메모리 셀의 플로팅 게이트로 전하를 전송(예를 들어, 직접 주입 또는 FN(Fowler-Nordheim) 터널링 등)할 수 있게 한다.
대조적으로, 패스 전압(Vpass)이 프로그래밍 대상이 아닌 메모리 셀을 갖는 하나 이상의 워드 라인에 인가될 수 있거나, 또는 금지 전압(예를 들어, Vcc)이 프로그래밍 대상이 아닌 메모리 셀을 갖는 데이터 라인(예컨대, 비트 라인)에 인가될 수 있어, 예를 들어 채널로부터 이러한 대상이 아닌 메모리 셀의 플로팅 게이트로 전하가 전송되는 것을 금지한다. 패스 전압은, 예를 들어 프로그래밍 대상인 워드 라인에 인가된 패스 전압의 근접성에 따라 가변적일 수 있다. 금지 전압은 접지 전위(예를 들어, Vss)에 대해 외부 공급원 또는 공급부(예를 들어, 배터리, AC-DC 컨버터 등)로부터의 전압과 같은 공급 전압(Vcc)을 포함할 수 있다.
일례로서, 프로그래밍 전압(예를 들어, 15V 이상)이 WL4와 같은 특정 워드 라인에 인가되는 경우, 10V의 패스 전압이 WL3, WL5 등과 같은 하나 이상의 다른 워드 라인에 인가되어, 대상이 아닌 메모리 셀의 프로그래밍을 금지하거나, 또는 프로그래밍 대상이 아닌 이러한 메모리 셀에 저장된 값을 유지할 수 있다. 인가된 프로그램 전압과 대상이 아닌 메모리 셀 사이의 거리가 증가함에 따라, 대상이 아닌 메모리 셀의 프로그래밍을 억제하는 데 필요한 패스 전압이 감소할 수 있다. 예를 들어, 15V의 프로그래밍 전압이 WL4에 인가되는 경우, 10V의 패스 전압이 WL3 및 WL5에 인가될 수 있고, 8V의 패스 전압이 WL2 및 WL6에 인가될 수 있으며, 7V의 패스 전압이 WL1 및 WL7 등에 인가될 수 있다. 다른 실시예에서는, 패스 전압, 또는 워드 라인의 수 등이 더 높거나 더 낮거나, 또는 더 많거나 더 적을 수 있다.
하나 이상의 데이터 라인(예를 들어, 제1, 제2 또는 제3 비트 라인 BL0-BL2(320-322))에 결합된 센스 증폭기(360)는 특정 데이터 라인 상의 전압 또는 전류를 감지함으로써 각각의 데이터 라인에서 각 메모리 셀의 상태를 검출할 수 있다.
하나 이상의 프로그래밍 펄스(예를 들어, Vpgm)의 인가 사이에, 선택된 메모리 셀이 의도된 프로그래밍 상태에 도달했는지를 결정하기 위해 검증 동작이 수행될 수 있다. 선택된 메모리 셀이 의도한 프로그램된 상태에 도달한 경우, 추가 프로그래밍이 금지될 수 있다. 선택된 메모리 셀이 의도한 프로그램된 상태에 도달하지 않은 경우, 추가 프로그래밍 펄스가 인가될 수 있다. 선택된 메모리 셀이 프로그래밍 펄스의 특정 수(예를 들어, 최대 수) 후에 의도한 프로그램된 상태에 도달하지 않은 경우, 선택된 메모리 셀, 또는 이러한 선택된 메모리 셀과 관련된 스트링, 블록 또는 페이지가 불량(defective)으로서 마킹될 수 있다.
메모리 셀 또는 메모리 셀의 그룹을 소거하기 위해(예를 들어, 소거는 일반적으로 블록 또는 서브블록 단위로 수행됨), 소거 전압(Vers)(예를 들어, 일반적으로 Vpgm)이 (예를 들어 하나 이상의 비트 라인, 선택 게이트 등을 사용하여) 소거 대상인 메모리 셀의 기판(및 이에 따라 소스와 드레인 사이의 채널)에 인가될 수 있는 한편, 대상 메모리 셀의 워드 라인은 접지 전위(예를 들어, Vss)와 같은 전위로 유지되어, 대상 메모리 셀의 플로팅 게이트로부터 채널로 전하를 전송(예를 들어, 직접 주입 또는 FN(Fowler-Nordheim) 터널링 등)하게 한다.
도 4는 복수의 메모리 셀(404)을 갖는 메모리 어레이(402), 및 메모리 어레이(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)을 포함한다. 본 명세서에서는 2개의 블록을 갖고, 각 블록이 2개의 서브블록을 갖고, 각 서브블록이 다수의 메모리 셀(404)을 갖는 것으로 도시되어 있지만, 다른 예에서, 메모리 어레이(402)는 더 많거나 더 적은 블록, 서브블록, 메모리 셀 등을 포함할 수 있다. 다른 예에서, 메모리 셀(404)은 다수의 행, 열, 페이지, 서브블록, 블록 등으로 배열될 수 있고, 예를 들어 액세스 라인(406), 제1 데이터 라인(410), 또는 하나 이상의 선택 게이트, 소스 라인 등을 사용하여 액세스될 수 있다.
메모리 제어 유닛(430)은, 예를 들어 원하는 동작(예를 들어, 기입, 판독, 소거 등)을 나타내는 하나 이상의 클록 신호 또는 제어 신호를 포함한, 제어 라인(432) 상에서 수신된 하나 이상의 신호 또는 명령어, 또는 하나 이상의 어드레스 라인(416) 상에서 수신된 어드레스 신호(A0-AX)에 따라 메모리 디바이스(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)을 사용하여 페이지 버퍼(422) 또는 메모리 어레이(402)의 내부 또는 외부와 같은 메모리 디바이스(400)의 내부 또는 외부로 데이터의 값을 전송할 수 있다. 페이지 버퍼(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)은 양 또는 음의 공급 신호를 내부적으로 제공하기 위한 레귤레이터(428)를 포함할 수 있다.
도 5는 본 명세서에서 설명된 기술(예를 들어, 방법론) 중 임의의 하나 이상이 수행할 수 있는 예시적인 머신(500)의 블록도를 도시한다. 대체 실시형태에서, 머신(500)은 독립형 디바이스로서 작동할 수 있거나, 또는 다른 머신에 연결(예를 들어, 네트워킹)될 수 있다. 네트워크형 배치에서, 머신(500)은 서버-클라이언트 네트워크 환경에서 서버 머신, 클라이언트 머신, 또는 둘 다의 용량으로 작동할 수 있다. 일례에서, 머신500)은 피어-투-피어(peer-to-peer: P2P)(또는 다른 분산된) 네트워크 환경에서 피어 머신으로서 작용할 수 있다. 머신(500)은 퍼스널 컴퓨터(PC), 태블릿 PC, 셋톱 박스(STB), 퍼스널 디지털 어시스턴트(PDA), 이동 전화, 웹 어플라이언스, IoT 디바이스, 자동차 시스템, 또는 해당 머신이 수행할 조치를 지정하는 (순차적 또는 다른 방식의) 명령어를 실행할 수 있는 임의의 머신일 수 있다. 또한, 단일 머신만이 도시되어 있지만, 용어 "머신"은 또한 클라우드 컴퓨팅, SaaS(Software as a Service), 다른 컴퓨터 클러스터 구성과 같은, 본 명세서에서 설명된 방법론 중 임의의 하나 이상을 수행하기 위한 한 세트(또는 다수 세트)의 명령어를 개별적으로 또는 공동으로 실행하는 머신들의 임의의 집합을 포함하는 것으로 간주되어야 한다.
본 명세서에서 설명된 바와 같이, 예는 로직, 구성요소, 디바이스, 패키지, 또는 메커니즘을 포함할 수 있거나, 또는 이들에 의해 동작할 수 있다. 회로는 하드웨어(예를 들어, 단순 회로, 게이트, 로직 등)를 포함하는 유형의(tangible) 엔티티로 구현된 회로들의 집합(예를 들어, 세트)이다. 회로 멤버쉽은 시간 경과에 따라 유연할 수 있고 기본 하드웨어 가변성이 있을 수 있다. 회로는 작동할 때 단독으로 또는 조합하여 특정 작업을 수행할 수 있는 멤버를 포함한다. 일례에서, 회로의 하드웨어는 특정 동작(예를 들어, 하드와이어드(hardwired))을 수행하도록 불변으로 설계될 수 있다. 일례에서, 회로의 하드웨어는 특정 동작의 명령어를 인코딩하기 위해 물리적으로 변형된 컴퓨터 판독 가능 매체(예를 들어, 불변의 대량 입자(massed particle)의 자기적으로, 전기적으로, 이동 가능한 배치)를 포함하는 가변적으로 연결된 물리적 구성요소(예를 들어, 실행 유닛, 트랜지스터, 단순 회로 등)를 포함할 수 있다. 물리적 구성요소의 연결 시, 하드웨어 구성 성분의 기본 전기 특성은, 예를 들어 절연체로부터 도체로 또는 그 반대로 변경된다. 명령어는 참여 하드웨어(예를 들어, 실행 유닛 또는 로딩 메커니즘)가 동작 중에 특정 작업의 일부를 수행하기 위해 가변 연결을 통해 하드웨어 내에 회로의 멤버를 생성할 수 있게 한다. 따라서, 컴퓨터 판독가능 매체는 디바이스가 동작할 때에 회로의 다른 구성요소에 통신 가능하게 결합된다. 일례에서, 물리적 구성요소 중 임의의 것이 둘 이상의 회로의 둘 이상의 멤버에서 사용될 수 있다. 예를 들어, 동작 하에서, 실행 유닛은 한 시점에서 제1 회로망의 제1 회로에서 사용되고 제1 회로망의 제2 회로에 의해, 또는 다른 시간에 제2 회로망의 제3 회로에 의해 재사용될 수 있다.
머신(예를 들어, 컴퓨터 시스템)(500)(예를 들어, 호스트 디바이스(105), 메모리 디바이스(110) 등)은 하드웨어 프로세서(502)(예를 들어, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 하드웨어 프로세서 코어, 또는 메모리 제어기(115) 등과 같은 이들의 임의의 조합), 메인 메모리(504) 및 정적 메모리(506)를 포함할 수 있고, 이들 중 일부 또는 전부는 인터링크(예를 들어, 버스)(508)를 통해 서로 통신할 수 있다. 머신(500)은 디스플레이 유닛(510), 영숫자 입력 디바이스(512)(예를 들어, 키보드), 및 사용자 인터페이스(UI) 내비게이션 디바이스(514)(예를 들어, 마우스)를 더 포함할 수 있다. 일례에서, 디스플레이 유닛(510), 입력 디바이스(512) 및 UI 내비게이션 디바이스(514)는 터치 스크린 디스플레이일 수 있다. 머신(500)은 저장 디바이스(예를 들어, 드라이브 유닛)(521), 신호 생성 디바이스(518)(예를 들어, 스피커), 네트워크 인터페이스 디바이스(520), 및 GPS(global positioning system) 센서, 나침반, 가속도계, 또는 다른 센서와 같은 하나 이상의 센서(516)를 추가로 포함할 수 있다. 머신(500)은 하나 이상의 주변 디바이스(예를 들어, 프린터, 카드 리더기 등)와 통신하거나 이들을 제어하기 위해직렬(예를 들어, USB(universal serial bus)), 병렬, 또는 다른 유선 또는 무선(예를 들어, 적외선(IR), 근거리 통신(NFC) 등) 연결과 같은 출력 제어기(528)를 포함할 수 있다.
저장 디바이스(521)는 본 명세서에서 설명된 기술 또는 기능 중 임의의 하나 이상에 의해 구현되거나 이용되는 하나 이상의 데이터 구조 또는 명령어(524)(예를 들어, 소프트웨어) 세트가 저장되는 머신 판독가능 매체(522)를 포함할 수 있다. 명령어(524)는 또한 머신(500)에 의해 그의 실행 중에 메인 메모리(504) 내에, 정적 메모리(506) 내에, 또는 하드웨어 프로세서(502) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 일례에서, 하드웨어 프로세서(502), 메인 메모리(504), 정적 메모리(506), 또는 저장 디바이스(521) 중 하나 또는 임의의 조합은 머신 판독가능 매체(522)를 구성할 수 있다.
머신 판독가능 매체(522)가 단일 매체로서 도시되어 있지만, 용어 "머신 판독가능 매체"는 하나 이상의 명령어(524)를 저장하도록 구성된 단일 매체 또는 다수의 매체(예를 들어, 중앙 집중식 또는 분산형 데이터베이스, 또는 관련된 캐시 및 서버)를 포함할 수 있다.
용어 "머신 판독가능 매체"는, 머신(500)에 의한 실행을 위한 명령어를 저장, 인코딩 또는 반송할 수 있고 머신(500)이 본 개시의 기술 중 임의의 하나 이상을 수행하게 하거나, 또는 이러한 명령어에 의해 사용되거나 이와 관련된 데이터 구조를 저장, 인코딩 또는 반송할 수 있는 임의의 매체를 포함할 수 있다. 비한정적인 머신 판독가능 매체의 예는 솔리드-스테이트 메모리, 및 광학 및 자기 매체를 포함할 수 있다. 일례에서, 대량의 머신 판독가능 매체(massed machine readable medium)는 불변(예를 들어, 휴지)의 질량을 갖는 복수의 입자를 갖는 머신 판독가능 매체를 포함한다. 따라서, 대량의 머신 판독가능 매체는 일시적인 전파 신호가 아니다. 대량의 머신 판독가능 매체의 특정 예는 반도체 메모리 디바이스(예를 들어, EPROM(Electrically Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory)) 및 플래시 메모리 디바이스와 같은 비-휘발성 메모리; 내부 하드 디스크 및 착탈식 디스크와 같은 자기 디스크; 광-자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함할 수 있다.
명령어(524)(예를 들어, 소프트웨어, 프로그램, 운영 체제(OS) 등) 또는 다른 데이터는 저장 디바이스(521)에 저장되고, 프로세서(502)에 의한 사용을 위해 메모리(504)에 의해 액세스될 수 있다. 메모리(504)(예를 들어, DRAM)는 일반적으로 고속이지만 휘발성이며, 이에 따라 "오프" 상태에 있는 동안을 포함한, 장기간 저장에 적합한 저장 디바이스(521)(예를 들어, SSD)와는 다른 유형의 스토리지이다. 사용자 또는 머신(500)에 의해 사용되는 명령어(524) 또는 데이터는 일반적으로 프로세서(502)에 의한 사용을 위해 메모리(504)에 로딩된다. 메모리(504)가 가득 찬 경우, 저장 디바이스(521)로부터의 가상 공간은 메모리(504)를 보충하도록 할당될 수 있고; 그러나, 저장 디바이스(521)가 일반적으로 메모리(504)보다 느리고, 기입 속도가 일반적으로 판독 속도보다 적어도 2배 느리기 때문에, 가상 메모리의 사용은 (메모리(504), 예를 들어 DRAM과 대조적으로) 저장 디바이스 레이턴시로 인해 사용자 경험을 크게 감소시킬 수 있다. 또한, 가상 메모리를 위한 저장 디바이스(521)의 사용은 저장 디바이스(521)의 사용 가능한 수명을 크게 감소시킬 수 있다.
가상 메모리와 대조적으로, 가상 메모리 압축(예를 들어, Linux® 커널 피처 "ZRAM")은 메모리의 일부를 압축된 블록 스토리지로서 사용하여 저장 디바이스(521)로의 페이징(paging)을 회피한다. 페이징은 이러한 데이터를 저장 디바이스(521)에 기입할 필요가 있을 때까지 압축된 블록에서 발생한다. 가상 메모리 압축은 메모리(504)의 사용 가능한 크기를 증가시키면서, 저장 디바이스(521)의 마모를 감소시킨다.
모바일 전자 디바이스, 또는 모바일 스토리지에 최적화된 저장 디바이스는 전통적으로 MMC 솔리드-스테이트 저장 디바이스(예를 들어, 마이크로 시큐어 디지털(microSD??) 카드 등)를 포함한다. MMC 디바이스는 호스트 디바이스와의 다수의 병렬 인터페이스(예를 들어, 8비트 병렬 인터페이스)를 포함하며, 종종 호스트 디바이스로부터 착탈 가능하고 별개인 구성요소이다. 대조적으로, eMMC?? 디바이스는 회로 기판에 부착되고 호스트 디바이스의 구성요소로 간주되며, 그의 판독 속도는 직렬 ATA??(Serial AT(Advanced Technology) Attachment, 또는 SATA) 기반 SSD 디바이스에 필적한다. 그러나, 가상 또는 증강 현실 디바이스를 완전히 활성화하고, 네트워크 속도의 향상을 이용하는 것 등, 모바일 디바이스 성능에 대한 수요가 계속해서 증가하고 있다. 이러한 수요에 부응하여, 저장 디바이스는 병렬로부터 직렬 통신 인터페이스로 이행되었다. 제어기 및 펌웨어를 포함한 UFS(Universal Flash Storage) 디바이스는 전용 판독/기입 경로를 갖는 저전압 차동 신호(LVDS) 직렬 인터페이스를 사용하여 호스트 디바이스와 통신하여, 더 빠른 판독/기입 속도를 더욱 향상시킨다.
명령어(524)는 또한 다수의 전송 프로토콜(예를 들어, 프레임 릴레이, 인터넷 프로토콜(IP), 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 하이퍼텍스트 전송 프로토콜(HTTP) 등) 중 임의의 하나를 이용하는 네트워크 인터페이스 디바이스(520)를 통해 전송 매체를 사용하여 통신 네트워크(526)를 통해 송신 또는 수신될 수 있다. 예시적인 통신 네트워크는 특히 근거리 통신 네트워크(LAN), 광역 통신 네트워크(WAN), 패킷 데이터 네트워크(예를 들어, 인터넷), 이동 전화 네트워크(예를 들어, 셀룰러 네트워크), POTS(Plain Old Telephone) 네트워크, 무선 데이터 네트워크(예를 들어, Wi-Fi®로 알려진 IEEE(Institute of Electrical and Electronics Engineers) 802.11 표준 계열, WiMax®로 알려진 IEEE 802.16 표준 계열), IEEE 802.15.4 표준 계열, 피어-투-피어(P2P) 네트워크를 포함할 수 있다. 일례에서, 네트워크 인터페이스 디바이스(520)는 통신 네트워크(526)에 연결하기 위한 하나 이상의 물리 잭(예를 들어, 이더넷, 동축, 또는 전화 잭) 또는 하나 이상의 안테나를 포함할 수 있다. 일례에서, 네트워크 인터페이스 디바이스(520)는 단일-입력 다중-출력(SIMO), 다중-입력 다중-출력(MIMO), 또는 다중-입력 단일-출력(MISO) 기술 중 적어도 하나를 사용하여 무선으로 통신하기 위한 복수의 안테나를 포함할 수 있다. 용어 "전송 매체"는 머신(500)에 의한 실행을 위한 명령어를 저장, 인코딩 또는 반송할 수 있는 임의의 무형(intangible) 매체를 포함하는 것으로 이해되어야 하며, 이러한 소프트웨어의 통신을 용이하게 하기 위해 디지털 또는 아날로그 통신 신호 또는 다른 무형 매체를 포함한다.
도 6은 메모리 디바이스(642), 하나 이상의 트랙커(646, 648, 649), 및 교정 제어기(644)를 갖는 시스템(600)의 특징부의 블록도이다. 메모리 디바이스(642)는 판독 및 기입 커맨드를 수신하여 메모리 디바이스(642)의 메모리 셀의 어레이의 메모리 셀로부터 판독하고 그에 기입하도록 배열된다. 메모리 디바이스(642)는 NAND 메모리 디바이스일 수 있다. 이러한 NAND 메모리 디바이스는 메모리 셀의 어레이를 가질 수 있으며, 여기서 어레이는 3차원 어레이로서 구성된다.
하나 이상의 트랙커(646, 648, 649)는 선택된 시간 간격, 메모리 디바이스의 적어도 일부를 판독하기 위한 판독 동작의 수, 및 메모리 디바이스의 적어도 일부에 대한 적어도 하나의 기입 동작 및 소거 동작의 수를 포함하는 파라미터를 모니터링하도록 배열될 수 있다. 하나 이상의 트랙커는 개별 트랙커로서 또는 둘 이상의 트랙커를 모니터링하도록 구성된 트랙커로서 실현될 수 있다. 개별 트랙커로서 구성될 때, 판독 트랙커(646)는 메모리 디바이스의 적어도 일부를 판독하기 위한 판독 동작의 수를 카운트하기 위한 카운터를 포함할 수 있고; 소거, 기입 트랙커(648)는 메모리 디바이스의 적어도 일부에 대한 기입 동작 및 소거 동작 중 적어도 하나를 카운트하기 위한 카운터를 포함할 수 있으며; 시간 트랙커(649)는 초기화/리셋 시간 및 선택된 시간 간격에 관한 시간을 모니터링하기 위한 타이머를 포함할 수 있다. 트랙커(646, 648, 649)는 메모리 디바이스(642)의 적어도 일부 특징을 관리하는 펌웨어의 일부로서 구성되거나, 또는 펌웨어 및 카운터 회로의 조합으로서 구성될 수 있다.
교정 제어기(644)는 하나 이상의 트랙커(646, 648, 649)로부터의 입력 및 이벤트 세트로부터의 적어도 하나의 이벤트의 발생의 결정에 기초하여 메모리 디바이스(642)의 판독 레벨 교정을 트리거하도록 배열될 수 있다. 이벤트 세트는 선택된 시간 간격과 같거나 이를 초과하는 모니터링된 시간, 선택된 시간 간격 내의 판독 동작의 수에 대한 소정의 임계값과 같거나 이를 초과하는 판독 동작의 수, 및 선택된 시간 간격 내의 적어도 하나의 기입 동작 및 소거 동작의 수에 대한 임계값과 같거나 이를 초과하는 적어도 하나의 기입 동작 및 소거 동작의 수를 포함할 수 있다. 교정 제어기(644)는 하나 이상의 트랙커로부터의 입력 및 판독 레벨 교정을 제공할 수 있는 메모리 디바이스의 스캔에 대한 저장된 기준에 기초하여 발생을 결정하기 위한 저장된 명령어를 갖는 펌웨어를 포함할 수 있다. 하나 이상의 트랙커(646, 648, 649) 및 교정 제어기(644)는 공통 펌웨어 세트의 명령어로 구성될 수 있다.
메모리 판독 및 데이터의 기입과 같은 호스트(641)로부터의 커맨드를 동작시키는 것과 관련하여 메모리 디바이스(642)와 통신하는 제어기 로직(647)은 시스템 판독 레벨 교정에 관한 커맨드 및/또는 명령어를 수신하고 시스템 판독 레벨 교정을 위한 메모리 디바이스(642)에 대한 판독 커맨드를 생성하기 위해 교정 제어기(644)와 함께 배열될 수 있다. 또한, 제어기 로직(647)은 호스트 정의된 판독 및 기입 이외에 판독 및 기입을 포함하는 판독 및 기입 커맨드를 플래시 변환 계층(flash translation layer: FTL)(643)으로부터 메모리 디바이스(642)에 제공할 수 있다. 용어 판독은 판독 동작 또는 커맨드를 지칭하는 데 사용될 수 있고, 용어 기입은 기입 동작 또는 기입 커맨드를 지칭하는 데 사용될 수 있으며, 용어 소거는 소거 동작 또는 소거 커맨드를 지칭하는 데 사용될 수 있다. FTL(643)은 메모리 디바이스(642)에 대한 일부 관리 작업을 제공할 수 있는 펌웨어이다. FTL(643)은 메모리 디바이스(642)의 펌웨어 생성 스캔, 가비지 수집, 및 메모리 디바이스(642)의 다른 관리 작업을 위한 명령어 및 루틴을 포함할 수 있다. 가비지 수집과 같은 작업은 다수의 종래 기술에 따라 수행될 수 있다. 판독 트랙커(646)는 메모리 디바이스(642)에 전송된 판독 동작의 수를 결정하기 위해 제어기 로직(647)의 출력에 효과적으로 배열될 수 있다. 소거/기입 트랙커(648)는 메모리 디바이스(642)에 의해 수행된 적어도 하나의 기입 동작 및 소거 동작의 수를 결정하기 위해 제어기 로직(647)의 출력에 배열될 수 있다. 다양한 실시형태에서, 소거/기입 트랙커(648)는 소거 동작을 위한 하나 및 기입 동작을 위한 하나를 갖는 2개의 트랙커로서 실현될 수 있다.
도 7은 NAND 메모리 디바이스(742)의 조합된 IOPS 샘플링 및 시간 기반 샘플링을 사용하는 절차의 표현도이다. 도 7의 하나 이상의 NAND 트랙커(746 및 748), 시간 트랙커(749), 교정 제어기(744), 제어기 로직(747), FTL(743), 및 호스트(741)는 각각 도 6의 하나 이상의 트랙커(646, 648, 및 649), 교정 제어기(644), 제어기 로직(647), FTL(643), 및 호스트(641)와 마찬가지로 배열될 수 있다. 판독, 기입, 및 소거는 제어기 로직(747)을 통해 호스트(741)로부터 NAND(742)에 제공될 수 있다. 제어기 로직(747)으로부터의 판독 동작을 위한 판독 커맨드는 NAND 판독 카운터(746)일 수 있는 NAND 판독 트랙커에 의해 카운트될 수 있다. 기입 동작 및/또는 소거 동작에 관한 NAND(742)로부터의 신호는 NAND 소거, 기입 카운터(748)일 수 있는 NAND 소거, 기입 트랙커에 의해 카운트될 수 있다. 다양한 실시형태에서, NAND 소거, 기입 카운터(748)는 소거 동작을 위한 하나 및 기입 동작을 위한 하나를 갖는 2개의 카운터로서 실현될 수 있다. 시간 트랙커(749)는 기준 시간으로부터의 시간을 제공하도록 구성될 수 있다. 기준 시간은 절차의 개시에 0(zero)의 상관 관계일 수 있다.
기준 시간으로부터의 시간, 예를 들어 시간 0이 모니터링되고 선택된 시간 간격과 비교될 수 있다. 선택된 시간 간격은 NAND(742)의 스케줄링된 판독 레벨 교정들 사이의 시간일 수 있다. 스케줄링된 판독 레벨 교정들 사이의 시간은 tscan이라고 지칭될 수 있다. tscan은 사용자 사용 모델에 기초하여 설정될 수 있다. tscan은 교정 제어기(644)에 설정될 수 있고 NAND(742)의 사용자 사용 모델의 구현 또는 수정에 의해 변경될 수 있다. 759에서, 현재 모니터링된 시간이 tscan보다 큰지에 대한 결정이 이루어질 수 있다. 현재 모니터링된 시간이 tscan보다 크지 않은 경우, 이 상태는 교정 제어기(744)에 제공될 필요가 없고 시간 트랙커(749)는 기준 시간으로부터의 시간을 계속해서 트랙킹한다. 현재 모니터링된 시간이 tscan보다 큰 경우, 이 상태는 교정 제어기(744)에 제공될 수 있고, 교정 제어기(744)는 NAND(742)의 판독 레벨 교정을 트리거할 수 있다. 판독 레벨 교정의 트리거링 시 또는 판독 레벨 교정의 완료 시, 교정 제어기(744)는 타이머일 수 있는 시간 트랙커를, 시간 트랙커(749)가 시간을 계속해서 모니터링하는 기준 0으로 리셋할 수 있다. 시간 트랙커(749)를 기준 0으로 설정하는 것 이외에, 교정 제어기(744)는 NAND 판독 카운터(746)를 0 카운트일 수 있는 기준 카운트로 리셋하고, NAND 소거, 기입 카운터(748)를 0 카운트일 수도 있는 다른 기준 카운트로 리셋할 수 있다. 일 실시형태에서, 시간 트랙커(749)의 모니터링된 시간이 tscan과 동일하면, 교정 제어기(744)는 모니터링된 시간이 tscan보다 큰 것과 동일한 방식으로 동작할 수 있다. 대체 실시형태에서, 시간 트랙커(749)의 모니터링된 시간이 tscan과 동일하면, 교정 제어기(744)는 모니터링된 시간이 tscan보다 작은 것과 동일한 방식으로 동작할 수 있다.
기입 동작 및/또는 소거 동작의 완료를 나타내는 NAND(742)로부터의 신호는 NAND 소거, 기입 카운터(748)에 의한 기입 동작 및/또는 소거 동작을 카운트하기 위해 모니터링될 수 있다. 카운트된 소거의 수 및 카운트된 기입의 수는 상이한 입도(granularity)를 가질 수 있다. 소거의 수는 일반적으로 NAND(742)의 평균 소거 카운트일 수 있다. 기입의 수는 일반적으로 NAND(742)에 기입된 페이지의 수일 수 있다. 758에서, 카운트된 소거의 수 및/또는 카운트된 기입의 수가 소거 및/또는 기입에 대한 소정의 임계값보다 큰지에 대한 결정이 이루어질 수 있다. 소거 및/또는 기입의 현재 카운트가 소거 및/또는 기입에 대한 소정의 임계값보다 크지 않은 경우, 이 상태는 교정 제어기(744)에 제공될 필요가 없고, NAND 소거, 기입 카운터(748)는 소거의 수 및/또는 기입의 수를 계속해서 트랙킹한다. 소거 및/또는 기입의 현재 카운트가 소거 및/또는 기입에 대한 소정의 임계값보다 큰 경우, 이 상태는 교정 제어기(744)에 제공될 수 있고, 교정 제어기(744)는 NAND(742)의 판독 레벨 교정을 트리거할 수 있다.
판독 레벨 교정의 트리거링 시 또는 판독 레벨 교정의 완료 시, 교정 제어기(744)는 NAND 소거, 기입 카운터(748)를, NAND 소거, 기입 카운터(748)가 NAND(742)에 의해 소거의 수 및 기입의 수를 카운트하기 위해 다시 시작하는 0 카운트일 수도 있는 기준 카운트로 리셋할 수 있다. NAND 소거, 기입 카운터(748)를 기준 카운트 0으로 설정하는 것 외에도, 교정 제어기(744)는 시간 트랙커(749)를 기준 0으로 리셋하고 NAND 판독 카운터를 기준 카운트 0으로 리셋할 수 있다. NAND 소거, 기입 카운터(748)의 카운트가 tscan만큼 NAND(742)에 의해 소거의 수 및/또는 기입의 수에 대한 소정의 임계값에 도달하지 않은 경우, tscan을 초과하는 시간 트랙커(749)에 의한 모니터링된 시간의 이벤트는 NAND 소거, 기입 카운터(748)가 기준 0으로 리셋되게 할 것이다. NAND 소거, 기입 카운터(748)가 시간 트랙커(749)와 협력하여 작동하면, NAND 소거, 기입 카운터(748)의 최대 카운트는 선택된 시간 tscan 내에서 발생한다. NAND 소거, 기입 카운터(748)는 2개의 소정의 임계값을 갖는 2개의 카운터로서 배열될 수 있다. 일 실시형태에서, NAND 소거, 기입 카운터(748)의 모니터링된 카운트가 소정의 임계값과 동일하면, 교정 제어기(744)는 카운트가 임계값보다 큰 것과 동일한 방식으로 동작할 수 있다. 대체 실시형태에서, NAND 소거, 기입 카운터(748)의 모니터링된 카운트가 각각의 소정의 임계값과 동일하면, 교정 제어기(744)는 모니터링된 시간이 임계값보다 작은 것과 동일한 방식으로 동작할 수 있다.
NAND(742)로부터 판독하기 위한 제어기 로직(747)으로부터 NAND(742)로의 판독 동작은 NAND 판독 카운터(746)에 의한 판독 동작을 카운트하도록 모니터링될 수 있다. 768에서, 카운트된 판독 동작의 수가 NAND(742)에 대한 판독 동작에 대한 소정의 임계값보다 큰지에 대한 결정이 이루어질 수 있다. 판독의 현재 카운트가 NAND(742)로부터의 판독을 위한 소정의 임계값보다 크지 않은 경우, 이 상태는 교정 제어기(744)에 제공될 필요가 없고 NAND 판독 카운터(746)는 판독의 수를 계속해서 트랙킹한다. 판독의 현재 카운트가 판독에 대한 소정의 임계값보다 큰 경우, 이 상태는 교정 제어기(744)에 제공될 수 있고, 교정 제어기(744)는 NAND(742)의 판독 레벨 교정을 트리거할 수 있다.
판독 레벨 교정의 트리거링 시 또는 판독 레벨 교정의 완료 시, 교정 제어기(744)는 NAND 판독 카운터(746)를, NAND 판독 카운터(746)가 NAND(742)에 대한 판독의 수를 카운트하기 위해 다시 시작하는 0 카운트일 수도 있는 기준 카운트로 리셋할 수 있다. NAND 판독 카운터(746)를 기준 카운트 0으로 설정하는 것 외에도, 교정 제어기(744)는 시간 트랙커(749)를 기준 0으로 리셋하고 NAND 소거, 기입 카운터(748)를 기준 카운트 0으로 리셋할 수 있다. NAND 판독 카운터(746)의 카운트가 tscan만큼 NAND(742)에 의해 판독의 수에 대한 소정의 임계값에 도달하지 않은 경우, tscan을 초과하는 시간 트랙커(749)에 의한 모니터링된 시간의 이벤트는 NAND 판독 카운터(746)를 기준 0으로 리셋할 것이다. NAND 판독 카운터(748)가 시간 트랙커(749)와 협력하여 작동하면, NAND 판독 카운터(748)의 최대 카운트는 선택된 시간 tscan 내에서 발생한다. 일 실시형태에서, NAND 판독 카운터(746)의 모니터링된 카운트가 각각의 소정의 임계값과 동일하면, 교정 제어기(744)는 카운트가 소정의 임계값보다 큰 것과 동일한 방식으로 동작할 수 있다. 대체 실시형태에서, NAND 판독 카운터(746)의 모니터링된 카운트가 각각의 소정의 임계값과 동일하면, 교정 제어기(744)는 모니터링된 시간이 임계값보다 작은 것과 동일한 방식으로 동작할 수 있다.
도 7에 나타낸 절차에서, 교정 제어기(744)는 판독 레벨 교정 및 샘플링 기준의 리셋 관리를 제어할 수 있다. 트리거되면, 판독 레벨 교정은 NAND에 대한 판독 전압의 종래의 교정 중 임의의 것에 의해 수행될 수 있다. 교정 제어기(744)의 펌웨어는 tscan에 대한 파라미터 및 다양한 카운트 메커니즘에 대한 임계값을 포함할 수 있다. tscan에 대한 다수의 상이한 값 및 임계값은 특정 값의 선택 및 구현을 위한 선택 기준과 함께 교정 제어기(744)에 저장될 수 있다. 또한, 모니터링된/측정된 카운트 및 시간과 각각의 임계값의 비교는 교정 제어기(744)의 펌웨어에서 수행되어 발생하는 다수의 이벤트를 결정할 수 있다. 이러한 이벤트 세트는 선택된 시간 간격과 같거나 이를 초과하는 모니터링된 시간, 선택된 시간 간격 내의 판독 동작의 수에 대한 소정의 임계값과 같거나 이를 초과하는 판독 동작의 수, 및 선택된 시간 간격 내의 적어도 하나의 기입 동작 및 소거 동작의 수에 대한 임계값과 같거나 이를 초과하는 적어도 하나의 기입 동작 및 소거 동작의 수를 포함할 수 있다. 이벤트 세트로부터 하나의 이벤트의 발생은 교정 제어기(744)에 의한 리셋 절차를 통해 모든 트랙커(746, 748, 749)에 대한 NAND(742)의 판독 레벨 교정의 트리거링을 제어할 수 있다.
도 8은 판독 레벨 처리를 트리거하기 위한 시간 기반 샘플링, 판독 기반 샘플링, 및 기입/소거 기반 샘플링과 관련된 타이밍을 도시한다. 이들 샘플링 각각에 대해, 샘플링은 시간 t0에서 시작하며, 여기서 시간 t0은 이전 샘플의 타임 스탬프를 제공한다. 판독 기반 샘플링에서, 목표는 고품질 결정 판독 집약적 워크로드를 위한 것일 수 있다. 이러한 활동이 발생한 경우, 예를 들어, 판독 레벨 교정의 업데이트 빈도는 t0으로부터 판독 기준을 달성하는 IOPS에 의해 정의된 시간 tR에서 수 시간마다일 수 있다. 기입/소거 기반 샘플링에서, 목표는 내구성 워크로드를 위한 것일 수 있다. 이러한 활동이 발생한 경우, 예를 들어, 판독 레벨 교정의 업데이트 빈도는 t0으로부터 소거/기입 기준을 달성하는 IOPS에 의해 정의된 시간 tW에서 매일일 수 있다. 시간 기반 샘플링에서, 목표는 일반적인 사용자 워크로드이다. 이러한 활동이 발생한 경우, 예를 들어, 판독 레벨 교정의 업데이트 빈도는 t0으로부터 사용자 사용 모델에 기초할 수 있는 스케쥴링에 의해 정의된 시간 tscan에서 수 일마다일 수 있다. 동작 시, 판독 기반 샘플링 및 기입/소거 기반 샘플링은 일반적인 사용자 워크로드를 나타내지 않는 목표 벤치마크와 관련될 수 있다. 일부 측면에서, 도 8은 tscan보다 먼저 판독 레벨 교정을 개시하고 새로운 t0으로부터 tscan 주기의 개시를 재시작하는 IOPS 기준에 기초하여 가능한 인터럽트를 갖는 시간 주기 tscan마다 판독 레벨 교정을 위한 스케줄링으로서 보여질 수 있다.
본 명세서에 교시된 바와 같이, IOPS 샘플링 및 시간 기반 샘플링의 조합에 기초하여 수행되는 판독 전압 교정은 정상적인 사용자 워크로드에 대한 영향이 최소 또는 전혀 없이 목표 벤치마크에 대해 더 양호한 성능 및/또는 레이턴시를 달성할 수 있다. 또한, 본 명세서에 교시된 바와 같이, 이러한 조합된 기술은 이러한 목표 벤치마크가 스케줄링된 교정의 시간 전에 NAND를 강조할 때에 교정을 트리거함으로써 판독 레벨 교정을 위한 NAND 트리거 속도가 목표 벤치마크를 고려하도록 도울 수 있다. 이 절차는 NAND 과잉 설계(over-design)을 제거하는 것을 도울 수 있고, 그렇지 않으면 NAND 내구성 또는 성능 저하를 초래할 수 있다.
도 9는 판독 레벨 교정을 위해 메모리 디바이스의 스캔을 최적화하는 예시적인 방법(900)의 실시형태의 특징의 흐름도이다. 910에서, 메모리 구조의 메모리 어레이의 판독 동작의 수가 결정된다. 메모리 어레이의 판독 동작의 수를 결정하는 것은 메모리 어레이를 판독하기 위해 전송된 판독 커맨드를 카운트하는 것을 포함할 수 있다. 920에서, 메모리 어레이의 적어도 하나의 기입 동작 및 소거 동작의 수가 결정된다. 모리 어레이의 적어도 하나의 기입 동작 및 소거 동작의 수를 결정하는 것은 메모리 어레이에서 기입 동작 및 소거 동작 중 적어도 하나를 수행하는 것에 응답하여 전송된 기입 메시지 및 소거 메시지 중 적어도 하나를 카운트하는 것을 포함할 수 있다. 930에서, 이벤트 세트로부터 적어도 하나의 이벤트의 발생이 결정된다. 이벤트 세트는 선택된 시간 간격과 같거나 이를 초과하는 모니터링된 시간, 선택된 시간 간격 내의 메모리 어레이의 판독 동작의 수에 대한 임계값과 같거나 이를 초과하는 메모리 어레이의 판독 동작의 결정된 수, 및 선택된 시간 간격 내의 적어도 하나의 기입 동작 및 소거 동작의 수에 대한 임계값과 같거나 이를 초과하는 적어도 하나의 기입 동작 및 소거 동작의 결정된 수를 포함할 수 있다. 940에서, 메모리 어레이의 판독 레벨 교정이 발생의 결정에 응답하여 트리거된다.
방법(900) 또는 방법(900)과 유사한 방법의 변형은 이러한 방법의 적용 및/또는 이러한 방법이 구현되는 시스템의 아키텍처에 따라 조합될 수 있는 다수의 상이한 실시형태를 포함할 수 있다. 이러한 방법은 트리거링에 응답하여 판독 레벨 교정을 수행하는 것, 타이머의 리셋 값으로부터 선택된 시간 간격으로 판독 레벨 교정을 위한 다른 대기 간격을 개시하도록 타이머를 리셋하는 것, 및 타이머의 리셋 값으로부터 그리고 선택된 시간 간격 내에서 메모리 어레이의 판독 동작의 수 및 적어도 하나의 기입 동작 및 소거 동작의 수의 하나 이상의 트랙커를 리셋하는 것을 포함할 수 있다. 하나 이상의 트랙커를 리셋하는 것은 판독 동작의 수의 판독 카운터 및 메모리 어레이의 기입 동작 및 소거 동작 중 적어도 하나의 카운터를 리셋하는 것을 포함할 수 있다.
방법(900) 또는 유사한 방법은 최소 로우 비트 에러율을 갖는 판독 전압 세트를 선택하기 위해 상이한 판독 전압에서 메모리 로우 비트 에러율을 샘플링함으로써 트리거된 판독 레벨 교정을 수행하는 것을 포함할 수 있다. 방법(900) 또는 유사한 방법은 스트레스 조건 하에서 메모리 셀의 어레이의 메모리 셀 임계 전압 이동을 트랙킹하는 것을 포함할 수 있다.
펌웨어는, 제어기에 의해 실행될 때, 메모리 구조의 메모리 어레이의 판독 동작의 수 및 메모리 어레이의 적어도 하나의 기입 동작 및 소거 동작의 수를 결정하는 것; 선택된 시간 간격과 같거나 이를 초과하는 모니터링된 시간, 선택된 시간 간격 내의 메모리 어레이의 판독 동작의 수에 대한 임계값과 같거나 이를 초과하는 메모리 어레이의 판독 동작의 결정된 수, 및 선택된 시간 간격 내의 적어도 하나의 기입 동작 및 소거 동작의 수에 대한 임계값과 같거나 이를 초과하는 메모리 어레이의 적어도 하나의 기입 동작 및 소거 동작의 결정된 수를 포함하는 이벤트 세트로부터 적어도 하나의 이벤트의 발생을 결정하는 것; 및 발생의 결정에 응답하여 메모리 어레이의 판독 레벨 교정을 트리거하는 것를 포함하는 동작의 수행을 야기하는 마이크로코드와 같은 명령어를 포함할 수 있다. 메모리 어레이의 판독 동작의 수를 결정하는 것은 메모리 어레이를 판독하기 위해 전송된 판독 커맨드를 카운트하는 것을 포함할 수 있다. 메모리 어레이의 적어도 하나의 기입 동작 및 소거 동작의 수를 결정하는 것은 메모리 어레이에서 기입 동작 및 소거 동작 중 적어도 하나를 수행하는 것에 응답하여 전송된 기입 메시지 및 소거 메시지 중 적어도 하나를 카운트하는 것을 포함할 수 있다.
펌웨어의 명령어는, 제어기에 의해 실행될 때, 동작의 수행을 야기할 수 있고, 여기서 동작은 트리거링에 응답하여 판독 레벨 교정을 수행하는 것, 타이머의 리셋 값으로부터 선택된 시간 간격으로 판독 레벨 교정을 위한 다른 대기 간격을 개시하도록 타이머를 리셋하는 것, 및 타이머의 리셋 값으로부터 그리고 선택된 시간 간격 내에서 메모리 어레이의 판독 동작의 수 및 적어도 하나의 기입 동작 및 소거 동작의 수의 하나 이상의 트랙커를 리셋하는 것을 포함할 수 있다. 하나 이상의 트랙커를 리셋하는 것은 판독 동작의 수의 판독 카운터 및 메모리 어레이의 기입 동작 및 소거 동작 중 적어도 하나의 카운터를 리셋하는 것을 포함할 수 있다.
펌웨어의 명령어는, 제어기에 의해 실행될 때, 동작의 수행을 야기할 수 있으며, 여기서 동작은 최소 로우 비트 에러율을 갖는 판독 전압 세트를 선택하기 위해 상이한 판독 전압에서 메모리 로우 비트 에러율을 샘플링함으로써 트리거된 판독 레벨 교정을 수행하는 것을 포함할 수 있다. 또한, 명령어는, 제어기에 의해 실행될 때, 동작의 수행을 야기할 수 있으며, 여기서 동작은 스트레스 조건 하에서 메모리 셀의 어레이의 메모리 셀 임계 전압 이동을 트랙킹하는 것을 포함할 수 있다.
다양한 실시형태에서, 장치는, 판독 및 기입 커맨드를 수신하여 메모리 디바이스의 메모리 셀의 어레이의 메모리 셀로부터 판독하고 그에 기입하기 위한 메모리 디바이스; 선택된 시간 간격, 메모리 디바이스의 적어도 일부를 판독하기 위한 판독 동작의 수, 및 메모리 디바이스의 적어도 일부에 대한 적어도 하나의 기입 동작 및 소거 동작의 수를 포함하는 파라미터를 모니터링하기 위한 하나 이상의 트랙커; 및 하나 이상의 트랙커로부터의 입력, 및 선택된 시간 간격과 같거나 이를 초과하는 모니터링된 시간, 선택된 시간 간격 내의 판독 동작의 수에 대한 임계값과 같거나 이를 초과하는 판독 동작의 수, 및 선택된 시간 간격 내의 적어도 하나의 기입 동작 및 소거 동작의 수에 대한 임계값과 같거나 이를 초과하는 적어도 하나의 기입 동작 및 소거 동작의 수를 포함하는 이벤트 세트로부터의 적어도 하나의 이벤트의 발생의 결정에 기초하여 판독 레벨 교정을 트리거하기 위한 교정 제어기를 포함할 수 있다.
교정 제어기는 하나 이상의 트랙커로부터의 입력에 기초하여 발생을 결정하기 위한 저장된 명령어를 갖는 펌웨어를 포함할 수 있다. 교정 제어기는 스트레스 조건 하에서 메모리 셀의 메모리 셀 임계 전압 이동을 트랙킹하도록 동작 가능할 수 있다. 이러한 장치에서, 트리거된 판독 레벨 교정은 최소 로우 비트 에러율과 관련된 판독 전압 세트를 선택하기 위해 상이한 판독 전압에서의 메모리 로우 비트 에러율의 샘플링을 포함할 수 있다. 이러한 장치에서, 메모리 디바이스의 메모리 셀의 어레이는 3차원 NAND 구성으로 구성될 수 있다.
이러한 장치에서, 하나 이상의 트랙커는 메모리 디바이스로 전송된 판독 커맨드를 카운트하기 위한 판독 카운터를 포함할 수 있다. 하나 이상의 트랙커는 메모리 어레이에서의 기입 및 소거 동작 중 적어도 하나를 수행하는 것에 응답하여 메모리 디바이스로부터 전송된 기입 및 소거 메시지를 카운트하기 위한 카운터 중 적어도 하나를 포함할 수 있다. 하나 이상의 트랙커는 리셋 값으로부터 선택된 시간 간격으로 판독 레벨 교정을 위한 다른 대기 간격을 개시하기 위해 교정 제어기에 의해 리셋 값으로 리셋 가능한 타이머를 포함할 수 있고, 교정 제어기는 타이머의 리셋 값으로부터 판독 동작을 트랙킹하고 기입 동작 및 소거 동작 중 적어도 하나를 트랙킹하기 위한 하나 이상의 트랙커를 리셋하도록 동작 가능할 수 있다.
다양한 실시형태에서, 시스템은, 호스트 프로세서; 호스트 프로세서와 통신하도록 결합된 제어기; 제어기에 결합된 메모리 디바이스 세트 - 메모리 디바이스 세트는 판독 및 기입 커맨드가 제어기로부터 수신되어 NAND 메모리 디바이스의 메모리 셀로부터 판독하고 그에 기입하는 메모리 셀의 어레이를 갖는 NAND 메모리 디바이스를 포함함 -; 시간을 모니터링하고, 메모리 디바이스에 대한 판독 동작을 트랙킹하며, NAND 메모리 디바이스로부터 통신된 기입 및/또는 소거 동작을 트랙킹하기 위한 트랙커 세트; 및 트랙커 세트로부터의 입력, 및 선택된 시간 간격을 초과하는 모니터링된 시간, 선택된 시간 간격 내의 판독 동작의 수에 대한 소정의 임계값과 같거나 이를 초과하는 판독 동작의 수, 및 선택된 시간 간격 내의 기입 및/또는 소거 동작의 수에 대한 임계값과 같거나 이를 초과하는 기입 및/또는 소거 동작의 수를 포함하는 이벤트 세트로부터의 적어도 하나의 이벤트의 발생의 결정에 기초하여 판독 레벨 교정을 트리거하기 위한 교정 제어기를 포함할 수 있다. 시스템은 NAND 메모리 디바이스의 메모리 셀의 어레이의 가비지 수집을 관리하기 위해 제어기를 통해 NAND 메모리 디바이스에 대한 판독 및 기입 동작을 생성하는 플래시 변환 계층을 포함할 수 있다.
교정 제어기는 트랙커 세트로부터의 입력에 기초하여 발생을 결정하기 위한 저장된 명령어를 갖는 펌웨어를 포함할 수 있다. NAND 메모리 디바이스에 대한 판독 동작을 트랙킹하기 위한 트랙커는 제어기로부터 NAND 메모리 디바이스로 전송된 판독 커맨드를 카운트하기 위한 판독 카운터를 포함할 수 있고, NAND 메모리 디바이스로부터 통신된 기입 및/또는 소거 동작을 트랙킹하기 위한 트랙커는 메모리 어레이에서 기입 및/또는 소거 동작을 수행하는 것에 응답하여 NAND 메모리 디바이스에 의해 전송된 기입 및/또는 소거 메시지를 카운트하기 위한 기입 및/또는 소거 카운터를 포함할 수 있다. 시간을 모니터링하기 위한 트랙커는 리셋 값으로부터 선택된 시간 간격으로 판독 레벨 교정을 위한 다른 대기 간격을 개시하기 위해 교정 제어기에 의해 리셋 값으로 리셋 가능한 타이머를 포함하고, 교정 제어기는 타이머의 리셋 값으로부터 그리고 선택된 시간 간격 내에서 트랙킹하기 위해 판독 동작을 트랙킹하기 위한 트랙커 및 기입 및/또는 소거 동작을 트랙킹하기 위한 트랙커를 리셋하도록 동작 가능하다.
상기 상세한 설명은 상세한 설명의 일부를 형성하는 첨부 도면에 대한 참조를 포함한다. 도면은 예시로서 본 발명이 실시될 수 있는 특정 실시형태를 나타낸다. 이들 실시형태는 본 명세서에서 "실시예"라고도 지칭된다. 이러한 실시예는 나타내거나 설명된 것 이외에 요소를 포함할 수 있다. 그러나, 본 발명자는 또한 나타내거나 설명된 해당 요소만이 제공되는 실시예도 고려한다. 또한, 본 발명자는 특정 실시예(또는 그의 하나 이상의 양태)와 관련하여, 또는 본 명세서에 나타내거나 설명된 다른 실시예(또는 그의 하나 이상의 양태)와 관련하여, 나타내거나 설명된 해당 요소의 임의의 조합 또는 순열을 사용하는 실시예도 고려한다.
본 문헌에서, 용어 "a" 또는 "an"은, 특허 문헌에서 일반적인 바와 같이, "적어도 하나" 또는 "하나 이상"의 임의의 다른 경우 또는 사용과 무관하게, 하나 또는 둘 이상을 포함하는 것으로 사용된다. "본 문헌에서, 용어 "또는"은 비배타적인 것을 지칭하거나, 또는 "A 또는 B"가 "A이지만 B가 아닌", "B이지만 A가 아닌", 및 "A와 B"를 포함할 수 있도록 사용된다. 첨부된 청구범위에서, 용어 "포함하는(includin)" 및 "여기서(in which)"는 각각의 용어 "포함하는(comprising)" 및 "여기서(wherein)"의 영어와 동등한 의미로 사용된다. 또한, 이하의 청구범위에서, 용어 "포함하는(including)" 및 "포함하는(comprising)"은 개방형이며, 즉 청구범위에서 이러한 용어 뒤에 열거된 것 이외의 요소를 포함하는 시스템, 디바이스, 물품, 또는 프로세스는 여전히 해당 청구항의 범위에 속하는 것으로 간주된다. 또한, 이하의 청구범위에서, 용어 "제1", "제2" 및 "제3" 등은 단지 라벨로서 사용되며, 그들 대상에 대해 수치적 요구 사항을 부여하는 것을 의도하고 있지 않다.
다양한 실시예에서, 본 명세서에 설명된 구성요소, 제어기, 프로세서, 유닛, 엔진, 또는 테이블은 특히 물리적 디바이스에 저장된 물리적 회로 또는 펌웨어를 포함할 수 있다. 본 명세서에서 사용된 바와 같이, "프로세서"는 프로세서 또는 멀티코어 디바이스의 그룹을 포함한, 마이크로프로세서, 마이크로컨트롤러, 그래픽 프로세서, 디지털 신호 프로세서(DSP), 또는 임의의 다른 유형의 프로세서 또는 처리 회로와 같은 임의의 유형의 연산 회로를 의미한다.
본 명세서에서 사용된 바와 같이, 메모리 셀을 동작시키는 것은 메모리 셀로부터 판독하는 것, 그에 기입하는 것, 또는 그를 소거하는 것을 포함한다. 의도된 상태로 메모리 셀을 배치하는 동작은 본 명세서에서 "프로그래밍"이라고 지칭되며, 메모리 셀에 기입하는 것 또는 그로부터 소거하는 것을 포함할 수 있다(예를 들어, 메모리 셀은 소거된 상태로 프로그램될 수 있다).
하나 이상의 실시형태에 따르면, 메모리 디바이스의 내부 또는 외부에 배치된 메모리 제어기(예를 들어, 프로세서, 제어기, 펌웨어 등)는 마모 사이클의 수량, 또는 마모 상태(예를 들어, 마모 사이클의 기록, 이들이 발생하는 메모리 디바이스의 동작의 카운팅, 이것이 개시하는 메모리 디바이스의 동작의 트랙킹, 마모 상태에 대응하는 메모리 디바이스 특성의 평가 등)를 결정(예를 들어, 선택, 설정, 조정, 연산, 변경, 클리어링, 통신, 적응, 유도, 정의, 이용, 수정, 적용 등)할 수 있다.
하나 이상의 실시형태에 따르면, 메모리 액세스 디바이스는 각 메모리 동작에 의해 메모리 디바이스에 마모 사이클 정보를 제공하도록 구성될 수 있다. 메모리 디바이스 제어 회로(예를 들어, 제어 로직)는 마모 사이클 정보에 대응하는 메모리 디바이스 성능 변화를 보상하도록 프로그램될 수 있다. 메모리 디바이스는 마모 사이클 정보를 수신하고 마모 사이클 정보에 응답하여 하나 이상의 동작 파라미터(예를 들어, 값, 특성)를 결정할 수 있다.
요소가 다른 요소의 "위(on)", "에 연결되는", 또는 "에 결합되는"이라고 지칭될 때, 그것은 다른 요소의 위에 직접 있거나, 연결되거나 또는 결합될 수 있거나, 또는 개재하는 요소가 존재할 수도 있음이 이해될 것이다. 대조적으로, 요소가 다른 요소의 "위에 직접", "에 직접 연결되는", 또는 "에 직접 결합되는"이라고 지칭될 때, 개재하는 요소 또는 층은 존재하지 않는다. 2개의 요소가 도면에 이들을 연결하는 선으로 나타나 있는 경우, 달리 표시되지 않는 한, 2개의 요소는 결합되거나, 또는 직접 결합될 수 있다.
본 명세서에 설명된 방법 실시예는 적어도 부분적으로 머신 또는 컴퓨터로 구현될 수 있다. 일부 실시예는 상기 실시예에 설명된 바와 같은 방법을 수행하기 위한 전자 디바이스를 구성하도록 동작 가능한 명령어로 인코딩된 컴퓨터 판독가능 매체 또는 머신 판독가능 매체를 포함할 수 있다. 이러한 방법의 구현은 마이크로코드, 어셈블리 언어 코드, 고급 언어 코드 등과 같은 코드를 포함할 수 있다. 이러한 코드는 다양한 방법을 수행하기 위한 컴퓨터 판독가능 명령어를 포함할 수 있다. 코드는 컴퓨터 프로그램 제품의 일부를 형성할 수 있다. 또한, 코드는, 예를 들어 실행 중 또는 다른 시간에 하나 이상의 휘발성 또는 비-휘발성의 유형의 컴퓨터 판독가능 매체에 유형으로 저장될 수 있다. 이러한 유형의 컴퓨터 판독가능 매체의 예는 하드 디스크, 착탈식 자기 디스크, 착탈식 광 디스크(예를 들어, 컴팩트 디스크 및 디지털 비디오 디스크), 자기 카세트, 메모리 카드 또는 스틱, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 솔리드 스테이트 드라이브(SSD), UFS(Universal Flash Storage) 디바이스, 임베디드 MMC(eMMC) 디바이스 등을 포함할 수 있지만, 이에 한정되지 않는다.
상기 설명은 제한적인 것이 아니라 예시적인 것으로 의도되어 있다. 예를 들어, 전술한 실시예(또는 그의 하나 이상의 양태)는 서로 조합하여 사용될 수 있다. 상기 설명을 연구할 때 예를 들어 당업자에게는 다른 실시형태가 사용될 수 있다. 또한, 상기 상세한 설명에서, 다양한 특징이 함께 그룹화되어 본 개시를 간소화할 수 있다. 이것은 청구되지 않은 개시된 특징이 임의의 청구항에 필수적인 것임을 의도하는 것으로 해석되지 않아야 한다. 오히려, 본 발명의 주제는 특정의 개시된 실시형태의 모든 특징보다 적을 수 있다. 따라서, 이하의 청구범위는 상세한 설명에 포함되며, 각 청구항은 그 자체가 별개의 실시형태로서 독립하고 있으며, 이러한 실시형태는 다양한 조합 또는 순열로 서로 조합될 수 있다는 것이 고려된다.

Claims (20)

  1. 장치로서,
    판독 및 기입 커맨드를 수신하여 메모리 디바이스의 메모리 셀의 어레이의 메모리 셀로부터 판독하고 그에 기입하기 위한 상기 메모리 디바이스;
    선택된 시간 간격, 상기 메모리 디바이스의 적어도 일부를 판독하기 위한 판독 동작의 수, 및 상기 메모리 디바이스의 상기 적어도 일부에 대한 기입 동작의 수 또는 소거 동작의 수 중 적어도 하나를 포함하는 파라미터를 모니터링하기 위한 하나 이상의 트랙커(tracker); 및
    상기 하나 이상의 트랙커로부터의 입력, 및 상기 선택된 시간 간격 내의 상기 판독 동작의 수가 판독 동작에 대한 소정의 임계값과 같거나 이를 초과하는 것, 및 상기 선택된 시간 간격 내의 상기 기입 동작의 수 또는 상기 소거 동작의 수 중 상기 적어도 하나가 기입 동작 및 소거 동작에 대한 임계값과 같거나 이를 초과하는 것을 포함하는 이벤트 세트로부터의 적어도 하나의 이벤트의 발생의 결정에 기초하여 판독 레벨 교정을 트리거하기 위한 교정 제어기(calibration controller)를 포함하는, 장치.
  2. 제1항에 있어서, 상기 교정 제어기는 상기 하나 이상의 트랙커로부터의 상기 입력에 기초하여 상기 발생을 결정하기 위한 저장된 명령어를 갖는 펌웨어를 포함하는, 장치.
  3. 제1항에 있어서, 상기 하나 이상의 트랙커는 상기 메모리 디바이스로 전송된 판독 커맨드를 카운트하기 위한 판독 카운터를 포함하는, 장치.
  4. 제1항에 있어서, 상기 하나 이상의 트랙커는 상기 메모리 셀의 어레이에서 기입 및 소거 동작 중 적어도 하나를 수행하는 것에 응답하여 상기 메모리 디바이스로부터 전송된 기입 및 소거 메시지를 카운트하기 위한 카운터 중 적어도 하나를 포함하는, 장치.
  5. 제1항에 있어서, 상기 하나 이상의 트랙커는 리셋 값으로부터 선택된 시간 간격으로 판독 레벨 교정을 위한 다른 대기 간격을 개시하기 위해 상기 교정 제어기에 의해 상기 리셋 값으로 리셋 가능한 타이머를 포함하고, 상기 교정 제어기는 상기 타이머의 상기 리셋 값으로부터 판독 동작을 트랙킹하고 기입 동작 및 소거 동작 중 적어도 하나를 트랙킹하기 위한 상기 하나 이상의 트랙커를 리셋하도록 동작 가능한, 장치.
  6. 제1항에 있어서, 상기 트리거된 판독 레벨 교정은 최소 로우 비트 에러율(raw bit error rate)과 관련된 판독 전압 세트를 선택하기 위해 상이한 판독 전압에서의 메모리 로우 비트 에러율의 샘플링을 포함하는, 장치.
  7. 제1항에 있어서, 상기 교정 제어기는 스트레스 조건 하에서 상기 메모리 셀의 메모리 셀 임계 전압 이동을 트랙킹하도록 동작 가능한, 장치.
  8. 제1항에 있어서, 상기 메모리 디바이스의 상기 메모리 셀의 어레이는 3차원 NAND 구성으로 구성되는, 장치.
  9. 시스템으로서,
    호스트 프로세서;
    상기 호스트 프로세서와 통신하도록 결합된 제어기;
    상기 제어기에 결합된 메모리 디바이스 세트 - 상기 메모리 디바이스 세트는 판독 및 기입 커맨드가 NAND 메모리 디바이스의 메모리 셀로부터 판독하고 그에 기입하기 위해 상기 제어기로부터 수신되는 메모리 셀의 어레이를 갖는 상기 NAND 메모리 디바이스를 포함함 -;
    시간을 모니터링하고, 상기 NAND 메모리 디바이스에 대한 판독 동작을 트랙킹하며, 상기 NAND 메모리 디바이스로 통신된 기입 또는 소거 동작을 트랙킹하기 위한 트랙커 세트; 및
    상기 트랙커 세트로부터의 입력, 및 선택된 시간 간격 내의 상기 판독 동작의 수가 판독 동작에 대한 소정의 임계값과 같거나 이를 초과하는 것, 및 상기 선택된 시간 간격 내의 기입 동작의 수 또는 소거 동작의 수 중 적어도 하나가 기입 동작 및 소거 동작에 대한 임계값과 같거나 이를 초과하는 것을 포함하는 이벤트 세트로부터의 적어도 하나의 이벤트의 발생의 결정에 기초하여 판독 레벨 교정을 트리거하기 위한 교정 제어기를 포함하는, 시스템.
  10. 제9항에 있어서, 상기 교정 제어기는 상기 트랙커 세트로부터의 상기 입력에 기초하여 상기 발생을 결정하기 위한 저장된 명령어를 갖는 펌웨어를 포함하는, 시스템.
  11. 제9항에 있어서, 상기 NAND 메모리 디바이스에 대한 판독 동작을 트랙킹하기 위한 상기 트랙커는 상기 제어기로부터 상기 NAND 메모리 디바이스로 전송된 판독 커맨드를 카운트하기 위한 판독 카운터를 포함하고, 상기 NAND 메모리 디바이스로부터 통신된 기입 및/또는 소거 동작을 트랙킹하기 위한 상기 트랙커는 상기 메모리 셀의 어레이에서 기입 및/또는 소거 동작을 수행하는 것에 응답하여 상기 NAND 메모리 디바이스에 의해 전송된 기입 및/또는 소거 메시지를 카운트하기 위한 기입 및/또는 소거 카운터를 포함하는, 시스템.
  12. 제9항에 있어서, 시간을 모니터링하기 위한 상기 트랙커는 리셋 값으로부터 선택된 시간 간격으로 판독 레벨 교정을 위한 다른 대기 간격을 개시하기 위해 상기 교정 제어기에 의해 상기 리셋 값으로 리셋 가능한 타이머를 포함하고, 상기 교정 제어기는 상기 타이머의 상기 리셋 값으로부터 그리고 상기 선택된 시간 간격 내에서 트랙킹하기 위해 판독 동작을 트랙킹하기 위한 상기 트랙커 및 기입 및/또는 소거 동작을 트랙킹하기 위한 상기 트랙커를 리셋하도록 동작 가능한, 시스템.
  13. 제9항에 있어서, 상기 시스템은 상기 NAND 메모리 디바이스의 상기 메모리 셀의 어레이의 가비지 수집(garbage collection)을 관리하기 위해 상기 제어기를 통해 상기 NAND 메모리 디바이스에 대한 판독 및 기입 동작을 생성하는 플래시 변환 계층(flash translation layer)을 포함하는, 시스템.
  14. 방법으로서,
    선택된 시간 간격 내의 메모리 구조의 메모리 어레이의 판독 동작의 수 및 상기 선택된 시간 간격 내의 상기 메모리 어레이의 기입 동작의 수 또는 소거 동작의 수 중 적어도 하나를 결정하는 단계;
    상기 선택된 시간 간격 내의 상기 판독 동작의 수가 판독 동작에 대한 임계값과 같거나 이를 초과하는 것, 및 상기 선택된 시간 간격 내의 상기 기입 동작의 수 또는 상기 소거 동작의 수 중 상기 적어도 하나가 기입 동작 및 소거 동작에 대한 임계값과 같거나 이를 초과하는 것을 포함하는 이벤트 세트로부터 적어도 하나의 이벤트의 발생을 결정하는 단계; 및
    상기 발생의 결정에 응답하여 상기 메모리 어레이의 판독 레벨 교정을 트리거하는 단계를 포함하는, 방법.
  15. 제14항에 있어서, 상기 메모리 어레이의 판독 동작의 수를 결정하는 단계는 상기 메모리 어레이를 판독하기 위해 전송된 판독 커맨드를 카운트하는 단계를 포함하는, 방법.
  16. 제14항에 있어서, 상기 메모리 어레이의 기입 동작의 수 또는 소거 동작의 수 중 적어도 하나를 결정하는 단계는 상기 메모리 어레이에서 기입 동작 및 소거 동작 중 적어도 하나를 수행하는 것에 응답하여 전송된 기입 메시지 및 소거 메시지 중 적어도 하나를 카운트하는 단계를 포함하는, 방법.
  17. 제14항에 있어서, 상기 방법은 상기 트리거하는 단계에 응답하여 판독 레벨 교정을 수행하는 단계, 타이머의 리셋 값으로부터 선택된 시간 간격으로 판독 레벨 교정을 위한 다른 대기 간격을 개시하도록 상기 타이머를 리셋하는 단계, 및 상기 타이머의 상기 리셋 값으로부터 그리고 상기 선택된 시간 간격 내에서 상기 메모리 어레이의 판독 동작의 수 및 적어도 하나의 기입 동작 및 소거 동작의 수의 하나 이상의 트랙커를 리셋하는 단계를 포함하는, 방법.
  18. 제17항에 있어서, 상기 하나 이상의 트랙커를 리셋하는 단계는 판독 동작의 수의 판독 카운터 및 상기 메모리 어레이의 기입 동작 및 소거 동작 중 적어도 하나의 카운터를 리셋하는 단계를 포함하는, 방법.
  19. 제14항에 있어서, 최소 로우 비트 에러율을 갖는 판독 전압 세트를 선택하기 위해 상이한 판독 전압에서 메모리 로우 비트 에러율을 샘플링함으로써 상기 트리거된 판독 레벨 교정을 수행하는 단계를 포함하는, 방법.
  20. 제14항에 있어서, 스트레스 조건 하에서 상기 메모리 어레이의 메모리 셀 임계 전압 이동을 트랙킹하는 단계를 포함하는, 방법.
KR1020207009335A 2017-08-31 2018-08-01 최적화된 스캔 간격 KR102326385B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/692,407 2017-08-31
US15/692,407 US10446197B2 (en) 2017-08-31 2017-08-31 Optimized scan interval
PCT/US2018/044794 WO2019045943A1 (en) 2017-08-31 2018-08-01 OPTIMIZED SCAN INTERVAL

Publications (2)

Publication Number Publication Date
KR20200046090A KR20200046090A (ko) 2020-05-06
KR102326385B1 true KR102326385B1 (ko) 2021-11-17

Family

ID=65436151

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207009335A KR102326385B1 (ko) 2017-08-31 2018-08-01 최적화된 스캔 간격

Country Status (6)

Country Link
US (3) US10446197B2 (ko)
EP (1) EP3676842A4 (ko)
KR (1) KR102326385B1 (ko)
CN (1) CN111247587B (ko)
TW (1) TWI682398B (ko)
WO (1) WO2019045943A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10446197B2 (en) 2017-08-31 2019-10-15 Micron Technology, Inc. Optimized scan interval
US10365854B1 (en) 2018-03-19 2019-07-30 Micron Technology, Inc. Tracking data temperatures of logical block addresses
US10553290B1 (en) * 2018-10-30 2020-02-04 Micron Technology, Inc. Read disturb scan consolidation
US11264103B2 (en) 2019-08-28 2022-03-01 International Business Machines Corporation Hybrid read voltage calibration in non-volatile random access memory
JP2021140311A (ja) 2020-03-03 2021-09-16 キオクシア株式会社 メモリシステム
CN112002369A (zh) * 2020-07-13 2020-11-27 珠海妙存科技有限公司 提升闪存数据安全性的扫描方法
US11600354B2 (en) 2020-08-18 2023-03-07 Micron Technology, Inc. Determination of state metrics of memory sub-systems following power events
US11636913B2 (en) * 2020-08-18 2023-04-25 Micron Technology, Inc. Tracking and refreshing state metrics in memory sub-systems
CN112379859B (zh) * 2020-11-13 2023-08-18 北京灵汐科技有限公司 二值采样的处理方法及装置、对抗样本的生成方法及装置
US11393548B2 (en) 2020-12-18 2022-07-19 Micron Technology, Inc. Workload adaptive scans for memory sub-systems
US20240054070A1 (en) * 2020-12-23 2024-02-15 Micron Technology, Inc A dynamic read disturb management algorithm for flash-based memory
US11915772B1 (en) * 2022-09-02 2024-02-27 Western Digital Technologies, Inc. Data storage device and method for power on reset and read error handling

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150287453A1 (en) * 2012-05-04 2015-10-08 Seagate Technology Llc Optimization of read thresholds for non-volatile memory

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US20060248305A1 (en) * 2005-04-13 2006-11-02 Wayne Fang Memory device having width-dependent output latency
US7184327B2 (en) * 2005-04-14 2007-02-27 Micron Technology, Inc. System and method for enhanced mode register definitions
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8015433B2 (en) 2006-09-13 2011-09-06 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory for storage of failure-related data
KR100817087B1 (ko) 2007-02-13 2008-03-27 삼성전자주식회사 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법
US8429352B2 (en) 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US8572310B2 (en) 2007-11-06 2013-10-29 Samsung Electronics Co., Ltd. Invalidating storage area of non-volatile storage medium based on metadata
JP2009211234A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8140739B2 (en) 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
KR100929371B1 (ko) 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법
US7916528B2 (en) 2009-03-30 2011-03-29 Seagate Technology Llc Predictive thermal preconditioning and timing control for non-volatile memory cells
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
JP5349256B2 (ja) 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
US8966319B2 (en) 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
US9047955B2 (en) * 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
US8510636B2 (en) 2011-04-01 2013-08-13 Intel Corporation Dynamic read channel calibration for non-volatile memory devices
US9412428B2 (en) * 2011-04-22 2016-08-09 Rambus Inc. Memory components and controllers that calibrate multiphase synchronous timing references
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US8880779B2 (en) 2011-08-05 2014-11-04 Apple Inc. Debugging a memory subsystem
WO2013022915A1 (en) 2011-08-09 2013-02-14 Lsi Corporation I/o device and computing host interoperation
US8621178B1 (en) 2011-09-22 2013-12-31 Emc Corporation Techniques for data storage array virtualization
KR101419004B1 (ko) 2012-05-03 2014-07-11 주식회사 디에이아이오 비휘발성 메모리 시스템
US9645177B2 (en) * 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
US20140254042A1 (en) 2013-03-07 2014-09-11 Seagate Technology Llc Dynamic allocation of lba to un-shingled media partition
US9195396B2 (en) 2013-03-14 2015-11-24 SanDisk Technologies, Inc. Estimating access frequency statistics for storage device
US9747202B1 (en) 2013-03-14 2017-08-29 Sandisk Technologies Llc Storage module and method for identifying hot and cold data
US9715519B2 (en) 2013-03-15 2017-07-25 Sandisk Technologies Llc Managing updates to multiple sets of metadata pertaining to a memory
US9342389B2 (en) 2013-04-04 2016-05-17 SK Hynix Inc. Neighbor based and dynamic hot threshold based hot data identification
US20170148510A1 (en) 2013-05-31 2017-05-25 Sandisk Technologies Llc Updating read voltages
WO2014209234A1 (en) 2013-06-26 2014-12-31 Agency For Science, Technology And Research Method and apparatus for hot data region optimized dynamic management
US9036413B2 (en) * 2013-09-27 2015-05-19 Seagate Technology Llc Flash memory reference voltage detection with tracking of cross-points of cell voltage distributions using histograms
US9478292B2 (en) * 2013-10-27 2016-10-25 Sandisk Technologies Llc Read operation for a non-volatile memory
US9620202B2 (en) * 2013-11-01 2017-04-11 Seagate Technology Llc Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory
US9405717B2 (en) 2013-11-21 2016-08-02 Sandisk Technologies Llc Memory device debugging on host platforms
US9236147B1 (en) * 2013-12-12 2016-01-12 SK Hynix Inc. Threshold carrying for solid state storage
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9431121B2 (en) * 2014-10-24 2016-08-30 Micron Technology, Inc. Read voltage adjustment
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9996297B2 (en) 2014-11-14 2018-06-12 SK Hynix Inc. Hot-cold data separation method in flash translation layer
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
US10180805B2 (en) 2015-03-25 2019-01-15 SK Hynix Inc. Memory system and operating method thereof
US9857986B2 (en) * 2015-06-30 2018-01-02 International Business Machines Corporation Wear leveling of a memory array
US20170024326A1 (en) 2015-07-22 2017-01-26 CNEX-Labs, Inc. Method and Apparatus for Caching Flash Translation Layer (FTL) Table
US9733861B2 (en) 2015-07-24 2017-08-15 Sk Hynix Memory Solutions Inc. Data temperature profiling by smart counter
US10241877B2 (en) 2016-12-12 2019-03-26 International Business Machines Corporation Data storage system employing a hot spare to proactively store array data in absence of a failure or pre-failure event
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10446197B2 (en) 2017-08-31 2019-10-15 Micron Technology, Inc. Optimized scan interval
US10365854B1 (en) 2018-03-19 2019-07-30 Micron Technology, Inc. Tracking data temperatures of logical block addresses

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150287453A1 (en) * 2012-05-04 2015-10-08 Seagate Technology Llc Optimization of read thresholds for non-volatile memory

Also Published As

Publication number Publication date
US20190066739A1 (en) 2019-02-28
US20190122705A1 (en) 2019-04-25
US20200160894A1 (en) 2020-05-21
EP3676842A1 (en) 2020-07-08
TWI682398B (zh) 2020-01-11
US10446197B2 (en) 2019-10-15
KR20200046090A (ko) 2020-05-06
CN111247587B (zh) 2023-09-19
CN111247587A (zh) 2020-06-05
WO2019045943A1 (en) 2019-03-07
EP3676842A4 (en) 2021-05-26
US10573357B2 (en) 2020-02-25
TW201921367A (zh) 2019-06-01
US11056156B2 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
KR102326385B1 (ko) 최적화된 스캔 간격
US10777284B2 (en) Read voltage calibration based on host IO operations
US11250918B2 (en) Preemptive idle time read scans
CN111383683B (zh) 通过堆叠多个可靠性规范进行扫描优化
WO2019113729A1 (en) Scheme to improve efficiency of garbage collection in cached flash translation layer
US10891072B2 (en) NAND flash thermal alerting
US10755793B2 (en) SLC page read
US11139035B2 (en) Memory device error detection with improved scanning
US11705201B2 (en) Log data storage for flash memory
US11914490B2 (en) Reactive read based on metrics to screen defect prone memory blocks

Legal Events

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