KR20230056333A - 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법 - Google Patents

메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법 Download PDF

Info

Publication number
KR20230056333A
KR20230056333A KR1020210140248A KR20210140248A KR20230056333A KR 20230056333 A KR20230056333 A KR 20230056333A KR 1020210140248 A KR1020210140248 A KR 1020210140248A KR 20210140248 A KR20210140248 A KR 20210140248A KR 20230056333 A KR20230056333 A KR 20230056333A
Authority
KR
South Korea
Prior art keywords
read
voltage
memory
data
fail bits
Prior art date
Application number
KR1020210140248A
Other languages
English (en)
Inventor
임종순
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020210140248A priority Critical patent/KR20230056333A/ko
Priority to US17/690,706 priority patent/US11842067B2/en
Priority to CN202210459056.8A priority patent/CN115995258A/zh
Publication of KR20230056333A publication Critical patent/KR20230056333A/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • 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/30Power supply circuits
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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
    • 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/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/0411Online error correction

Landscapes

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

Abstract

본 기술에 따른 메모리 컨트롤러는 서로 다른 레벨을 갖는 복수의 리드 전압들에 의해 메모리 장치의 선택 페이지로부터 데이터들을 리드하도록 메모리 장치를 제어하는 리드 동작 제어부, 데이터들 각각의 페일 비트 수들을 판단하는 에러 정정 회로, 및 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타내는 기준 페일 비트 수 및 선택 페이지의 이레이즈 라이트 사이클 횟수에 기초하여, 제1 리드 전압 테이블에 포함된 복수의 제1 전압 변화량들 중에서 기준 전압 변화량을 선택하고, 기준 전압 변화량 및 기준 페일 비트 수 및 페일 비트 수들 각각의 비율 값에 기초하여, 복수의 리드 전압들 각각의 레벨을 조정하는 리드 전압 제어부를 포함한다.

Description

메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법 {MEMORY CONTROLLER, MEMORY SYSTEM INCLUDING THE SAME AND OPERATING METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 보다 구체적으로는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법에 관한 것이다.
메모리 시스템은 컴퓨터나 스마트폰 등과 같은 호스트의 제어에 따라 데이터를 저장하는 장치이다. 메모리 시스템은 데이터를 저장하는 메모리 장치와 메모리 장치를 제어하는 메모리 컨트롤러를 포함할 수 있다. 메모리 장치는 휘발성 메모리 장치(Volatile Memory)와 비휘발성 메모리 장치(Non Volatile Memory)로 구분될 수 있다.
휘발성 메모리 장치는 전원이 공급되는 동안에만 데이터를 저장하고, 전원 공급이 차단되면 저장된 데이터가 소멸되는 메모리 장치일 수 있다. 휘발성 메모리 장치에는 정적 랜덤 액세스 메모리 (Static Random Access Memory, SRAM), 동적 랜덤 액세스 메모리 (Dynamic Random Access Memory, DRAM) 등이 포함될 수 있다.
비휘발성 메모리 장치는 전원이 차단되어도 데이터가 소멸되지 않는 메모리 장치로서, 롬(Read Only Memory, ROM), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM) 및 플래시 메모리(Flash Memory) 등이 포함될 수 있다.
본 발명의 실시 예는 메모리 장치에 저장된 데이터를 정확하게 리드하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법을 제공한다.
본 개시의 일 실시 예에 따른 메모리 컨트롤러는 서로 다른 레벨을 갖는 복수의 리드 전압들에 의해 메모리 장치의 선택 페이지로부터 데이터들을 리드하도록 메모리 장치를 제어하는 리드 동작 제어부, 데이터들 각각의 페일 비트 수들을 판단하는 에러 정정 회로, 및 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타내는 기준 페일 비트 수 및 선택 페이지의 이레이즈 라이트 사이클 횟수에 기초하여, 제1 리드 전압 테이블에 포함된 복수의 제1 전압 변화량들 중에서 기준 전압 변화량을 선택하고, 기준 전압 변화량 및 기준 페일 비트 수 및 페일 비트 수들 각각의 비율 값에 기초하여, 복수의 리드 전압들 각각의 레벨을 조정하는 리드 전압 제어부를 포함할 수 있다.
본 개시의 일 실시 예에 따른 메모리 시스템은, 복수의 페이지들을 포함하는 메모리 장치, 복수의 페이지들 중에서 선택 페이지에 서로 다른 레벨을 갖는 복수의 리드 전압들을 인가하도록 메모리 장치를 제어하고, 복수의 리드 전압들 각각에 의해 획득된 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타내는 기준 페일 비트 수 및 선택 페이지의 이레이즈 라이트 사이클 횟수에 기초하여, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서 기준 전압 변화량을 결정하고, 페일 비트 수들 각각과 기준 페일 비트 수의 비율 및 기준 전압 변화량을 이용해 복수의 리드 전압들 각각의 레벨을 조정하는 메모리 컨트롤러를 포함할 수 있다.
본 개시의 일 실시 예에 따른 메모리 컨트롤러의 동작 방법은, 서로 다른 레벨을 갖는 복수의 리드 전압들을 기초로 노말 리드 동작을 수행하도록 메모리 장치를 제어하는 단계, 복수의 리드 전압들 각각에 대응되는 페일 비트 수들을 판단하는 단계, 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타내는 기준 페일 비트 수 및 메모리 장치의 이레이즈 라이트 사이클 횟수에 기초하여, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서 기준 전압 변화량을 결정하는 단계, 및 페일 비트 수들 각각과 기준 페일 비트 수의 비율 및 기준 전압 변화량을 이용해 복수의 리드 전압들 각각의 레벨을 조정하는 단계를 포함할 수 있다.
본 기술은 메모리 장치에 저장된 데이터를 정확하게 리드하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법을 제공할 수 있다.
본 기술은 이레이즈 라이트 싸이클 횟수에 따라 리드 전압을 다르게 조정함으로써 데이터를 정확하게 리드할 수 있다. 본 기술은 페일 비트 수에 따라 리드 전압을 다르게 조정함으로써 데이터를 정확하게 리드할 수 있다. 본 기술은 데이터의 타입 별로 리드 전압을 다르게 조정함으로써 데이터를 정확하게 리드할 수 있다.
본 기술은 최적의 리드 전압을 빠르게 결정하고, 장치의 수명을 향상시킬 수 있다. 또한, 리드 리트라이 동작이 수행되는 횟수를 감소시키고, 정확한 데이터를 리드하는데 소요되는 시간을 감소시킬 수 있다.
도 1은 일 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2a는 일 실시 예에 따른 메모리 컨트롤러의 구조를 설명하기 위한 도면이다.
도 2b는 일 실시 예에 따른 프로세서의 세부 구성을 설명하기 위한 도면이다.
도 3은 일 실시 예에 따른 메모리 장치의 구조를 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 메모리 블록의 구조를 설명하기 위한 도면이다.
도 5a는 일 실시 예에 따른 메모리 셀들의 문턱 전압의 분포를 설명하기 위한 도면이다.
도 5b는 일 실시 예에 따른 그레이 코드를 설명하기 위한 도면이다.
도 5c는 일 실시 예에 따른 페일 비트를 설명하기 위한 도면이다.
도 6a 및 6b는 일 실시 예에 따른 제1 리드 전압 테이블을 설명하기 위한 도면이다.
도 6c는 일 실시 예에 따른 제2 리드 전압 테이블을 설명하기 위한 도면이다.
도 6d는 일 실시 예에 따른 제3 리드 전압 테이블을 설명하기 위한 도면이다.
도 7a는 일 실시 예에 따른 리드 리트라이 동작의 리드 전압을 설명하기 위한 도면이다.
도 7b 및 7c는 일 실시 예에 따른 리드 리트라이 동작의 리드 전압을 조정하는 방법을 설명하기 위한 도면이다.
도 8은 일 실시 예에 따른 메모리 컨트롤러의 동작 방법을 설명하기 위한 도면이다.
도 9는 일 실시 예에 따른 메모리 시스템이 적용된 메모리 카드를 보여주는 블록도이다.
도 10은 일 실시 예에 따른 메모리 시스템이 적용된 SSD(Solid State Drive) 시스템을 보여주는 블록도이다.
도 11은 일 실시 예에 따른 메모리 시스템이 적용된 사용자 시스템을 보여주는 블록도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
도 1은 일 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템(10)은 호스트(20)의 다양한 요청에 응답하여 동작할 수 있다. 구체적으로, 메모리 시스템(10)은 호스트(20)로부터 수신된 요청에 대응되는 동작을 수행할 수 있다. 예를 들어, 메모리 시스템(10)은 호스트(20)로부터 데이터 및 데이터의 저장 요청이 수신되면, 메모리 시스템(10) 내부에 데이터를 저장할 수 있다. 다른 예를 들어, 메모리 시스템(10)은 호스트(20)로부터 데이터의 리드 요청이 수신되면, 메모리 시스템(10) 내부에 저장된 데이터를 호스트(20)로 제공할 수 있다. 이를 위해, 메모리 시스템(10)은 호스트(20)와 다양한 통신 방식을 통해 연결될 수 있다.
메모리 시스템(10)은 통신 규격 또는 데이터의 저장 방식에 따라 다양한 종류의 스토리지 장치 중 어느 하나로 구현될 수 있다. 예를 들어, 메모리 시스템(10)은 SSD(Solid State Disk), MMC(Multi Media Card), eMMC(embedded MMC), RS-MMC(Reduced-Size MMC), micro-MMC 형태의 스토리지 장치, SD(Secure Digital), mini-SD, micro-SD 형태의 스토리지 장치, USB(universal serial bus) 스토리지 장치, UFS(universal flash storage) 장치, PCMCIA(personal computer memory card international association) 형태의 스토리지 장치, PCI(peripheral component interconnection) 형태의 스토리지 장치, PCI-E(PCI express) 형태의 스토리지 장치, NAS(Network Attached Storage), 무선 네트워크 스토리지 장치 중 어느 하나로 구현될 수 있다. 여기서, 열거한 예시들은 일 실시 예일 뿐이며, 이에 제한되지 아니하고 메모리 시스템(10)은 다양한 스토리지 장치로 구현될 수 있다.
호스트(20)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 게임기, TV(Television), 태블릿 컴퓨터, 또는 웨어러블 장치(wearable device) 등과 같은 다양한 전자 장치 중 하나일 수 있다. 호스트(20)은 메모리 시스템(10)과 다양한 통신 규격에 따른 통신을 수행할 수 있다. 호스트(20)은 메모리 시스템(10)으로 데이터, 논리 어드레스 또는 다양한 요청을 전송하거나, 또는 메모리 시스템(10)으로부터 데이터를 수신할 수 있다.
메모리 시스템(10)은 호스트(20)의 주기억 장치 또는 보조 기억 장치로 이용될 수 있다. 메모리 시스템(10)은 호스트(20)의 내부에 위치하거나 또는 호스트(20)의 외부에 위치할 수 있다.
메모리 시스템(10)은 메모리 장치(100) 및 메모리 컨트롤러(200)를 포함할 수 있다. 여기서, 메모리 장치(100)는 하나 또는 복수일 수 있다. 메모리 장치(100) 및 메모리 컨트롤러(200)는 채널을 통해 서로 연결될 수 있다. 메모리 장치(100) 및 메모리 컨트롤러(200)는 채널을 통해 커맨드, 어드레스 또는 데이터 등을 송수신할 수 있다.
메모리 장치(100)는 데이터를 저장할 수 있다. 이를 위해, 메모리 장치(100)는 다양한 종류의 반도체 메모리 장치로 구현될 수 있다. 예를 들어, 메모리 장치(100)는 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리(Vertical NAND flash memory), 노아 플래시 메모리(NOR flash memory), SRAM(Static Random Access Memory, Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous Dynamic RAM), DDR(Double Data Rate) SDRAM, LPDDR(Low Power DDR) SDRAM, GDRAM(Graphics DRAM), RDRAM(Rambus Dynamic RAM), 강유전체 메모리(Ferro electric RAM, FeRAM), 자기저항 메모리(magnetoresistive RAM, MRAM), 상변화 메모리(Phase Change Memory, PCM), 스핀주입 자화반전 메모리(Spin Transfer Torque Magnetoresistive RAM, STT-RAM), 저항성 메모리(Resistive RAM, ReRAM) 등 중에서 하나로 구현될 수 있다. 이하에서는 설명의 편의를 위해, 메모리 장치(100)가 낸드 플래시 메모리인 경우를 가정하여 설명한다.
메모리 장치(100)는 적어도 하나의 메모리 블록을 포함할 수 있다. 메모리 블록은 복수의 페이지들을 포함할 수 있다. 하나의 페이지는 복수의 메모리 셀들을 포함할 수 있다. 즉, 메모리 장치(100)는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀은 데이터를 저장하는 최소 단위를 나타낼 수 있다. 일 실시 예에서, 메모리 셀은 게이트, 절연층 및 플로팅 게이트를 포함하는 트랜지스터로 구현될 수 있다. 예를 들어, 메모리 셀의 게이트에 프로그램 전압이 인가되면 터널링(Tunneling) 현상을 통해 메모리 셀의 플로팅 게이트에 전자가 저장될 수 있다. 이 경우, 플로팅 게이트에 저장된 전자의 양에 따라 메모리 셀의 문턱 전압이 달라질 수 있다. 메모리 셀의 문턱 전압은 서로 다른 전압 범위를 갖는 복수의 프로그램 상태들 중 하나의 프로그램 상태에 속할 수 있다. 메모리 셀의 프로그램 상태는 메모리 셀에 저장된 데이터의 값을 나타낼 수 있다.
메모리 장치(100)는 다양한 데이터 저장 방식에 따라 데이터를 저장할 수 있다. 예를 들어, 데이터 저장 방식은 SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell) 등의 방식 중 하나일 수 있다. SLC는 하나의 메모리 셀에 1개의 비트를 저장하는 방식이다. 예를 들어, SLC의 경우, 하나의 메모리 셀에 '1' 및 '0'과 같이 2개의 이진화된 값들 중 하나가 저장될 수 있으며, 메모리 셀에 저장된 값은 메모리 셀이 문턱 전압에 따라 2개의 프로그램 상태들 중 어떤 프로그램 상태를 갖는지에 따라 식별될 수 있다. MLC는 하나의 메모리 셀에 2개의 비트를 저장하는 방식이다. 예를 들어, MLC의 경우, 하나의 메모리 셀에 '11' 내지 '00'과 같이 4개의 이진화된 값들 중 하나가 저장될 수 있으며, 메모리 셀에 저장된 값은 메모리 셀이 문턱 전압에 따라 4개의 프로그램 상태들 중 어떤 프로그램 상태를 갖는지에 따라 식별될 수 있다. TLC는 하나의 메모리 셀에 3개의 비트를 저장하는 방식이다. 예를 들어, TLC의 경우, 하나의 메모리 셀에 '111' 내지 '000'과 같이 8개의 이진화된 값들 중 하나가 저장될 수 있으며, 메모리 셀에 저장된 값은 메모리 셀이 문턱 전압에 따라 8개의 프로그램 상태들 중 어떤 프로그램 상태를 갖는지에 따라 식별될 수 있다.
메모리 컨트롤러(200)는 메모리 장치(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(200)는 데이터를 저장하는 프로그램 동작, 저장된 데이터를 요청하는 리드 동작 또는 저장된 데이터를 삭제하는 이레이즈 동작을 수행하도록 메모리 장치(100)를 제어할 수 있다.
예를 들어, 프로그램 동작의 경우, 메모리 컨트롤러(200)는 프로그램 커맨드, 어드레스 및 데이터를 메모리 장치(100)에 제공할 수 있다. 여기서 어드레스는 물리 어드레스를 나타낼 수 있다. 메모리 장치(100)는 메모리 컨트롤러(200)로부터 프로그램 커맨드, 어드레스 및 데이터가 수신되면, 어드레스에 의해 결정된 페이지에 데이터를 저장하는 프로그램 동작을 수행할 수 있다. 리드 동작의 경우, 메모리 컨트롤러(200)는 리드 커맨드 및 어드레스를 메모리 장치(100)에 제공할 수 있다. 메모리 장치(100)는 메모리 컨트롤러(200)로부터 리드 커맨드 및 어드레스를 수신하면, 어드레스에 의해 결정된 페이지에 저장된 데이터를 메모리 컨트롤러(200)로 제공하는 리드 동작을 수행할 수 있다. 이레이즈 동작의 경우, 메모리 컨트롤러(200)는 이레이즈 커맨드 및 어드레스를 메모리 장치(100)에 제공할 수 있다. 메모리 장치(100)는 메모리 컨트롤러(200)로부터 이레이즈 커맨드 및 어드레스를 수신하면, 어드레스에 의해 결정된 메모리 블록에 저장된 데이터를 삭제하는 이레이즈 동작을 수행할 수 있다.
일 실시 예에서, 메모리 컨트롤러(200)는 호스트(20)로부터 수신된 요청에 따라 프로그램 동작, 리드 동작 또는 이레이즈 동작 등을 수행하도록 메모리 장치(100)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(200)는 호스트(20)로부터 데이터의 저장 요청, 데이터의 리드 요청, 또는 데이터의 삭제 요청을 수신하면, 저장 요청, 리드 요청 또는 삭제 요청에 대응되는 커맨드를 생성할 수 있다. 그리고, 메모리 컨트롤러(200)는 호스트(20)로부터 논리 어드레스를 수신하면, 논리 어드레스를 물리 어드레스로 변환할 수 있다. 여기서, 물리 어드레스는 메모리 장치(100)에 포함된 메모리 블록 또는 페이지를 나타내는 고유의 식별자일 수 있다. 메모리 컨트롤러(200)는 커맨드와 함께 물리 어드레스를 메모리 장치(100)로 전송할 수 있다. 물리 어드레스는 어드레스라고 간략히 지칭할 수 있다.
다른 실시 예에서, 메모리 컨트롤러(200)는 호스트(20)의 요청과 무관하게 자체적으로 프로그램 동작, 리드 동작 또는 이레이즈 동작 등을 수행하도록 메모리 장치(100)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(200)는 웨어 레벨링(wear leveling), 리드 리클레임(read reclaim) 또는 가비지 컬렉션(garbage collection)을 수행하도록 메모리 장치(100)를 제어할 수 있다. 이를 위해, 메모리 컨트롤러(200)는 자체적으로 커맨드, 어드레스 및 데이터를 생성하고, 메모리 장치(100)에 전송할 수 있다.
한편, 하나의 메모리 셀에 2개 이상의 비트들이 저장될 경우, 복수의 메모리 셀들을 포함하는 하나의 페이지에는 2개 이상의 페이지 데이터들이 저장될 수 있다. 예를 들어, TLC의 경우, 하나의 메모리 셀에 3개의 비트들이 저장될 수 있다. 3개의 비트들은 데이터의 타입에 따라 구분되는 LSB(Least Significant Bit), CSB(Center Significant Bit) 및 MSB(Most Significant Bit)를 포함할 수 있다. 이 경우, 하나의 페이지에는 LSB 페이지 데이터, CSB 페이지 데이터 및 MSB 페이지 데이터와 같은 3개의 페이지 데이터가 저장될 수 있다. 여기서, LSB 페이지 데이터는 페이지에 포함된 메모리 셀들 각각에 저장된 LSB들을 포함할 수 있다. CSB 페이지 데이터는 페이지에 포함된 메모리 셀들에 저장된 CSB들을 포함할 수 있다. MSB 페이지 데이터는 페이지에 포함된 메모리 셀들에 저장된 MSB들을 포함할 수 있다. 다른 예를 들어, MLC의 경우, 하나의 메모리 셀에 LSB 및 MSB와 같은 2개의 비트들이 저장될 수 있다. 이 경우, 하나의 페이지에 LSB 페이지 데이터 및 MSB 페이지 데이터와 같은 2개의 페이지 데이터들이 저장될 수 있다.
이 경우, 메모리 컨트롤러(200)는 하나의 페이지 데이터를 리드하기 위해 적어도 하나의 리드 전압을 이용해 리드 동작을 수행하도록 메모리 장치(100)를 제어할 수 있다.
여기서, 리드 전압의 개수는 리드 전압이 인가되는 횟수를 의미할 수 있다. 페이지 데이터를 리드하기 위해 요구되는 리드 전압의 개수는 데이터의 타입에 따라 달라질 수 있다. 예를 들어, TLC의 경우 LSB 페이지 데이터(또는 MSB 페이지 데이터)를 리드하기 위해 2개의 리드 전압이 요구되지만, CSB 페이지 데이터를 리드하기 위해 3개의 리드 전압이 요구될 수 있다. 즉, CSB 페이지 데이터는 LSB 페이지 데이터(또는 MSB 페이지 데이터) 보다 상대적으로 리드 전압이 인가되는 횟수가 더 많은 점에서, CSB 페이지 데이터는 LSB 페이지 데이터(또는 MSB 페이지 데이터) 보다 정상적으로 리드되지 않을 가능성이 더 크다는 문제점이 있다. 한편, MLC의 경우에도, LSB 페이지 데이터 및 MSB 페이지 데이터 중 하나에 1개의 리드 전압이 요구되고, 다른 하나에 2개의 리드 전압이 요구되므로 이와 같은 문제가 발생할 수 있다. 이하에서는 설명의 편의를 위해 데이터의 저장 방식이 TLC인 것으로 가정하여 설명하도록 한다.
본 개시의 일 실시 예에 따르면, 메모리 컨트롤러(200)는 기준 페일 비트 수 및 이레이즈 라이트 사이클 횟수에 기초하여, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서 기준 전압 변화량을 결정할 수 있다.
구체적으로, 메모리 컨트롤러(200)는 복수의 페이지들 중에서 선택 페이지에 서로 다른 레벨을 갖는 복수의 리드 전압들을 인가하도록 메모리 장치(100)를 제어할 수 있다. 메모리 컨트롤러(200)는 복수의 리드 전압들 각각에 의해 획득된 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타내는 기준 페일 비트 수 및 선택 페이지의 이레이즈 라이트 사이클 횟수에 기초하여, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서 기준 전압 변화량을 결정할 수 있다. 메모리 컨트롤러(200)는 페일 비트 수들 각각과 기준 페일 비트 수의 비율 및 기준 전압 변화량을 이용해 복수의 리드 전압들 각각의 레벨을 조정할 수 있다.
여기서, 기준 페일 비트 수는 복수의 리드 전압들 각각에 의해 획득된 데이터의 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타낼 수 있다. 그리고, 메모리 컨트롤러(200)는 페일 비트 수들 각각과 기준 페일 비트 수의 비율 및 기준 전압 변화량을 이용해 복수의 리드 전압들 각각의 레벨을 조정할 수 있다.
이와 같이, 데이터의 타입 등에 따라 리드 전압을 개별적으로 조절함으로써 메모리 장치(100)에 저장된 데이터를 정확하게 리드하는 메모리 컨트롤러(200)를 제공할 수 있다. 이하에서는 첨부된 도면을 참조하여 본 개시의 실시 예에 대해 구체적으로 설명하도록 한다.
도 2a는 일 실시 예에 따른 메모리 컨트롤러의 구조를 설명하기 위한 도면이다.
도 2a를 참조하면, 일 실시 예에 따른 메모리 컨트롤러(200)는 호스트 인터페이스(210), 메모리 인터페이스(220), 메모리(230), 프로세서(240) 및 에러 정정 회로(250) 중 적어도 하나를 포함할 수 있다.
호스트 인터페이스(210)는 다양한 통신 규격을 이용하여 호스트(20)와 통신할 수 있다. 예를 들어, 호스트 인터페이스(210)는 USB(Universal Serial Bus), MMC (multimedia card), eMMC(embeded MMC), PCI(peripheral component interconnection), PCI-E(PCI-express), ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI(small computer small interface), ESDI(enhanced small disk interface), IDE(Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), UART(Universal asynchronous receiver/transmitter) 등과 같은 다양한 통신 규격을 이용하여 호스트(20)와 통신할 수 있다.
호스트 인터페이스(210)는 호스트(20)와 다양한 정보를 주거나 받을 수 있다. 호스트 인터페이스(210)는 호스트(20)로부터 수신된 정보를 프로세서(240) 또는 메모리(230)로 제공할 수 있다. 또는 호스트 인터페이스(210)는 메모리(230)에 저장된 정보를 호스트(20)로 제공할 수 있다.
프로그램 동작의 경우, 호스트 인터페이스(210)는 호스트(20)로부터 데이터의 쓰기 요청, 논리 어드레스 및 데이터가 수신되면, 호스트 인터페이스(210)는 쓰기 요청 및 논리 어드레스를 프로세서(240)로 전송하고, 데이터를 메모리(230)로 전송할 수 있다.
리드 동작의 경우, 호스트 인터페이스(210)는 호스트(20)로부터 데이터의 리드 요청 및 논리 어드레스가 수신되면, 호스트 인터페이스(210)는 리드 요청 및 논리 어드레스를 프로세서(240)로 전송할 수 있다. 이후, 호스트 인터페이스(210)는 메모리 장치(100)로부터 리드된 데이터를 호스트(20)로 전송할 수 있다.
메모리 인터페이스(220)는 메모리 장치(100)와 채널을 통해 통신할 수 있다. 메모리 인터페이스(220)는 메모리 장치(100)와 다양한 정보를 주거나 받을 수 있다. 메모리 인터페이스(220)는 메모리 장치(100)로부터 수신된 정보를 프로세서(240) 또는 메모리(230)로 제공할 수 있다. 또는 메모리 인터페이스(220)는 메모리(230)에 저장된 정보를 메모리 장치(100)로 제공할 수 있다.
프로그램 동작의 경우, 메모리 인터페이스(220)는 프로세서(240)로부터 프로그램 커맨드 및 물리 어드레스를 수신하고, 메모리(230)로부터 데이터를 수신할 수 있다. 이 경우, 메모리 인터페이스(220)는 프로그램 커맨드, 물리 어드레스 및 데이터를 메모리 장치(100)로 전송할 수 있다. 이때, 데이터는 에러 정정 회로(250)에 의해 인코딩된 데이터일 수 있다.
리드 동작의 경우, 메모리 인터페이스(220)는 프로세서(240)로부터 리드 커맨드 및 물리 어드레스가 수신되면, 메모리 인터페이스(220)는 리드 커맨드 및 물리 어드레스를 메모리 장치(100)로 전송할 수 있다. 이후, 메모리 인터페이스(220)는 메모리 장치(100)로부터 리드된 데이터를 메모리(230)로 전송할 수 있다.
메모리(230)는 메모리 장치(100) 또는 호스트(20)로부터 수신된 데이터를 임시로 저장할 수 있다. 여기서, 데이터는 프로그램 커맨드에 따라 메모리 장치(100)에 저장하기 위한 데이터 또는 리드 커맨드에 따라 호스트(20)로 제공하기 위한 데이터일 수 있다. 메모리(230)는 메모리(230)에 임시 저장된 데이터가 메모리 장치(100)에 저장된 후, 또는 메모리(230)에 임시 저장된 데이터가 호스트(20)로 제공된 후, 임시 저장된 데이터를 삭제할 수 있다.
메모리(230)는 메모리 컨트롤러(200)의 동작 또는 관리에 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리(230)는 메모리 장치(100)의 시스템 메모리 블록 또는 캠(CAM, content addressable memory) 블록으로부터 리드된 리드 리트라이 테이블을 수신하여 저장할 수 있다.
이를 위해, 메모리(230)는 SRAM(Static random access memory; Static RAM) 또는 DRAM(Dynamic RAM) 중 적어도 하나를 포함할 수 있다. 일 실시 예에서, 메모리(230)의 일 영역은 메모리 컨트롤러(200)의 동작 메모리로서 구성될 수 있으며, 캐시 메모리로도 이용될 수 있다. 일 실시 예에서, 메모리(230)는 프로세서(240)의 동작에 이용되는 다양한 인스트럭션을 저장할 수 있다.
프로세서(240)는 메모리 컨트롤러(200)의 전반적인 동작을 제어할 수 있다.
프로세서(240)는 전원이 제공되면, 인스트럭션(instruction)을 실행할 수 있다. 예를 들어, 프로세서(240)는 인스트럭션을 실행하여, 메모리 장치(100)에 저장된 어드레스 매핑 테이블을 리드하고, 메모리(230)에 어드레스 매핑 테이블을 저장할 수 있다. 어드레스 매핑 테이블은 논리 어드레스 및 물리 어드레스가 서로 매핑된 정보를 포함할 수 있다. 이후, 프로세서(240)는 호스트(20)로부터 논리 어드레스가 수신되면, 메모리(230)에 저장된 매핑 테이블에서 호스트(20)로부터 수신된 논리 어드레스와 매핑된 물리 어드레스를 검색할 수 있다.
프로그램 동작의 경우, 프로세서(240)는 호스트(20)로부터 쓰기 요청 및 논리 어드레스가 수신되면, 어드레스 매핑 테이블에 포함된 물리 어드레스들 중에서 수신된 논리 어드레스에 매핑된 물리 어드레스를 판단할 수 있다. 그리고, 프로세서(240)는 프로그램 커맨드, 물리 어드레스 및 데이터를 메모리 장치(100)로 전송하도록 메모리 인터페이스(220)를 제어할 수 있다. 여기서, 데이터는 에러 정정 회로(250)에 의해 인코딩된 페이지 데이터일 수 있다. 메모리 장치(100)는 프로그램 커맨드, 물리 어드레스 및 데이터가 수신되면, 물리 어드레스에 대응되는 선택 페이지에 데이터를 저장할 수 있다.
리드 동작의 경우, 프로세서(240)는 호스트(20)로부터 리드 요청 및 논리 어드레스가 수신되면, 어드레스 매핑 테이블에 포함된 물리 어드레스들 중에서 수신된 논리 어드레스에 매핑된 물리 어드레스를 판단할 수 있다. 그리고, 프로세서(240)는 리드 커맨드 및 물리 어드레스를 메모리 장치(100)로 전송하도록 메모리 인터페이스(220)를 제어할 수 있다. 메모리 장치(100)는 리드 커맨드 및 물리 어드레스가 수신되면, 물리 어드레스에 대응되는 선택 페이지에 저장된 데이터를 리드하여 메모리 컨트롤러(200)로 제공할 수 있다. 프로세서(240)는 메모리 장치(100)로부터 수신된 데이터를 호스트(20)로 전송하도록 호스트 인터페이스(210)를 제어할 수 있다. 메모리 장치(100)로부터 수신된 데이터는 메모리(230)에 임시 저장된 것일 수 있다.
일 실시 예에서, 프로세서(240)는 리드 동작이 실패한 경우, 리드 리트라이 방식에 따라 리드 전압의 레벨을 조정해 리드 동작을 수행하도록 메모리 장치(100)를 제어할 수 있다. 프로세서(240)는 리드 동작이 성공할 때까지 리드 전압의 레벨을 조정해 리드 동작을 수행하는 것을 반복하도록 메모리 장치(100)를 제어할 수 있다.
예를 들어, 리드 동작이 실패한 경우는, 메모리 장치(100)로부터 수신된 리드 데이터의 페일 비트 수가 임계 값을 초과한 것을 나타내며, 리드 동작이 성공한 경우는 리드 데이터의 페일 비트 수가 임계 값 이하인 것을 나타낼 수 있다. 여기서, 리드 데이터는 메모리 장치(100)에 포함된 복수의 페이지들 중에서 논리 어드레스에 대응되는 선택 페이지에 저장된 데이터를 리드 전압을 이용해 리드한 데이터를 나타낼 수 있다. 페일 비트 수는 리드 데이터에 포함된 페일 비트의 개수를 나타낼 수 있다. 임계 값은 에러 정정 회로(250)의 에러 정정 능력을 나타낼 수 있다.
일 실시 예에서, 메모리 장치(100)는 하나의 페이지에 복수의 페이지 데이터를 저장할 수 있다. 즉, 메모리 장치(100)는 MLC 또는 TLC 등의 방식에 따라 하나의 페이지에 포함된 메모리 셀들 각각에 2개 이상의 비트를 저장할 수 있다. 이 경우, 프로세서(240)는 적어도 하나의 리드 전압을 이용해 하나의 페이지 데이터를 리드하도록 메모리 장치(100)를 제어할 수 있다.
예를 들어, TLC인 경우를 가정하면, 하나의 페이지에 LSB 페이지 데이터, CSB 페이지 데이터 및 MSB 페이지 데이터가 저장될 수 있다. 여기서, 프로세서(240)는 각각의 페이지 데이터에 대응되는 리드 전압 세트를 이용하여 리드 동작을 수행하도록 메모리 장치(100)를 제어할 수 있다. 리드 전압 세트는 적어도 하나의 리드 전압을 포함할 수 있다. 예를 들어, 프로세서(240)는 제1 리드 전압 세트를 이용해 LSB 페이지 데이터를 리드하도록 메모리 장치(100)를 제어할 수 있다. 그리고, 프로세서(240)는 제2 리드 전압 세트를 이용해 CSB 페이지 데이터를 리드하도록 메모리 장치(100)를 제어할 수 있다. 그리고, 프로세서(240)는 제3 리드 전압 세트를 이용해 MSB 페이지 데이터를 리드하도록 메모리 장치(100)를 제어할 수 있다. 여기서, 제1 리드 전압 세트는 서로 다른 레벨을 갖는 2개의 리드 전압을 포함하고, 제2 리드 전압 세트는 서로 다른 레벨을 갖는 3개의 리드 전압을 포함하고, 제3 리드 전압 세트는 서로 다른 레벨을 갖는 2개의 리드 전압을 포함할 수 있다.
본 개시의 일 실시 예에 따르면, 프로세서(240)는 복수의 리드 전압들을 이용한 리드 동작이 실패한 경우, 복수의 리드 전압들 각각의 레벨을 조정하여 리드 동작을 수행하도록 메모리 장치(100)를 제어할 수 있다. 여기서, 프로세서(240)는 각 리드 전압에 대응되는 페일 비트 수와 이레이즈 라이트 사이클 횟수에 기초하여, 복수의 전압 변화량들을 포함하는 리드 전압 테이블을 이용하여 전압 변화량을 결정할 수 있다.
구체적으로, 프로세서(240)는 기준 페일 비트 수 및 이레이즈 라이트 사이클 횟수에 기초하여, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서 기준 전압 변화량을 결정할 수 있다. 여기서, 기준 페일 비트 수는 선택 페이지에 대해 리드 전압들 각각에 의해 획득된 데이터의 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타낼 수 있다. 이레이즈 라이트 사이클 횟수는 선택 페이지에 대해 프로그램 동작 또는 이레이즈 동작이 수행된 횟수를 나타낼 수 있다. 그리고, 메모리 컨트롤러(200)는 페일 비트 수들 각각과 기준 페일 비트 수의 비율 및 기준 전압 변화량을 이용해 복수의 리드 전압들 각각의 레벨을 조정할 수 있다.
예를 들어, 3개의 리드 전압을 이용해 CSB 페이지 데이터를 리드하는 경우에 대해 설명하도록 한다. 이 경우, 프로세서(240)는 CSB 페이지 데이터에 대한 리드 동작이 성공하면, 메모리 장치(100)로부터 수신된 CSB 페이지 데이터를 호스트(20)로 제공할 수 있다.
이와 달리, 프로세서(240)는 CSB 페이지 데이터에 대한 리드 동작이 실패하면, 리드 리트라이 방식에 따라 리드 동작을 수행할 수 있다. 즉, 프로세서(240)는 메모리 장치(100)로부터 수신된 CSB 페이지 데이터의 페일 비트 수가 임계 값을 초과하면, 3개의 리드 전압의 레벨을 조정하여 리드 동작을 수행하도록 메모리 장치(100)를 제어할 수 있다. 여기서, 프로세서(240)는 리드되는 CSB 페이지 데이터의 페일 비트 수가 임계 값 이하가 될 때까지, 상술한 동작을 반복하여 수행할 수 있다.
에러 정정 회로(250)는 데이터의 페일 비트 수를 판단할 수 있다. 구체적으로, 에러 정정 회로(250)는 메모리 장치(100)로부터 수신된 데이터에 포함된 페일 비트를 검출할 수 있다. 이 경우, 에러 정정 회로(250)는 데이터의 페일 비트 수를 판단하고, 페일 비트 수를 프로세서(240)로 전송할 수 있다. 여기서, 페일 비트 수는 데이터에 포함된 페일 비트의 개수를 나타낼 수 있다. 페일 비트는 디스터번스, 리텐션 또는 이레이즈 라이트 사이클 횟수의 증가 등으로 인해, 리드 전압을 이용해 판독된 메모리 셀의 프로그램 상태가 달라진 메모리 셀을 나타낼 수 있다. 즉, 에러 정정 회로(250)는 메모리 셀에 저장된 값과 메모리 셀로부터 리드된 값이 서로 다를 경우, 해당 메모리 셀을 페일 비트로 처리할 수 있다.
프로그램 동작의 경우, 에러 정정 회로(250)는 메모리 장치(100)에 저장될 데이터에 대해 인코딩을 수행할 수 있다. 인코딩된 데이터는 메모리 인터페이스(220)에 의해 메모리 장치(100)로 제공될 수 있다. 리드 동작의 경우, 에러 정정 회로(250)는 메모리 장치(100)로부터 수신되는 데이터에 대해 디코딩을 수행할 수 있다. 에러 정정 회로(250)는 디코딩된 데이터의 페일 비트 수를 판단할 수 있다.
일 실시 예에서, 에러 정정 회로(250)는 인코딩된 데이터에 포함된 패리티 비트를 이용해 데이터의 페일 비트를 검출할 수 있다. 예를 들어, 에러 정정 회로(250)는 패리티 검사(Parity Check), 블록합 검사(Block Sum Check), 순환잉여검사(Cycle Redundancy Check, CRC) 등의 다양한 방식을 이용하여 데이터에 포함된 페일 비트를 검출할 수 있다. 인코딩된 데이터는 호스트(20)로부터 수신된 원본 데이터에 패리티(parity) 비트가 부가된 형태의 데이터일 수 있다. 패티리 비트는 데이터의 페일 비트를 검출하거나 정정하기 위해서 사용되는 비트일 수 있다. 패리티 비트는 원본 데이터의 비트들 중에서 미리 설정된 위치에 삽입될 수 있다. 예를 들어, 원본 데이터를 일정 개수의 비트 단위의 그룹으로 구성한 경우, 각 그룹의 시작 부분 또는 끝 부분 등과 같은 특정한 위치에 패리티 비트가 삽입될 수 있다. 이때, 패리티 비트는 그룹에 포함된 0 또는 1의 개수를 홀수 또는 짝수로 맞추기 위해 정해지는 값을 가질 수 있다.
다른 예를 들어, 에러 정정 회로(250)는 LDPC(low density parity check) code, BCH (Bose, Chaudhri, Hocquenghem) Code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation), 해밍 코드(hamming code) 등의 코디드 모듈레이션(coded modulation)을 사용하여 인코딩 동작 또는 디코딩 동작을 수행할 수 있다.
에러 정정 회로(250)는 데이터의 페일 비트를 정정할 수 있다. 구체적으로, 에러 정정 회로(250)는 데이터의 페일 비트 수가 기준 개수 이하이면, 데이터의 페일 비트를 정정할 수 있다. 여기서, 기준 개수는 페일 비트를 정정할 수 있는 능력을 나타낼 수 있다. 즉, 에러 정정 회로(250)는 데이터의 페일 비트 수가 기준 개수를 초과하면, 데이터의 페일 비트를 정정할 수 없다.
도 2b는 일 실시 예에 따른 프로세서의 세부 구성을 설명하기 위한 도면이다.
일 실시 예에서, 프로세서(240)는 이레이즈 라이트 카운터 블록(241), 전압 레지스터(243), 리드 전압 제어부(245) 및 리드 동작 제어부(247)를 포함할 수 있다.
이레이즈 라이트 카운터 블록(241)은 메모리 장치(100)의 이레이즈 라이트 사이클 횟수(EW_count)를 저장할 수 있다. 이레이즈 라이트 사이클 횟수(EW_count)는 메모리 장치(100)가 이레이즈 동작 또는 프로그램 동작을 수행한 횟수를 나타낼 수 있다. 이레이즈 라이트 사이클 횟수(EW_count)는 메모리 블록 또는 페이지 단위로 관리될 수 있다. 이레이즈 라이트 카운터 블록(241)은 리드 전압의 레벨을 조정하기 위해 이레이즈 라이트 사이클 횟수(EW_count)를 리드 전압 제어부(245)로 출력할 수 있다.
전압 레지스터(243)는 적어도 하나의 리드 전압 테이블(RVT)을 저장할 수 있다. 적어도 하나의 리드 전압 테이블(RVT)은 제1 리드 전압 테이블, 제2 리드 전압 테이블 또는 제3 리드 전압 테이블을 포함할 수 있다.
일 실시 예에서, 전압 레지스터(243)는 제1 리드 전압 테이블을 저장할 수 있다. 제1 리드 전압 테이블은 이레이즈 라이트 사이클 횟수, 기준 페일 비트 수 및 전압 변화량의 매핑 관계를 나타내는 테이블일 수 있다. 구체적으로, 제1 리드 전압 테이블은 이레이즈 라이트 사이클 횟수에 대응되는 제1 필드 값들, 제1 필드 값들에 매핑되고 기준 페일 비트 수에 대응되는 제2 필드 값들, 및 제2 필드 값들에 매핑된 복수의 전압 변화량들을 포함할 수 있다.
일 실시 예에서, 전압 레지스터(243)는 제2 리드 전압 테이블을 저장할 수 있다. 제2 리드 전압 테이블은 데이터의 타입, 기준 전압 변화량 및 제2 전압 변화량의 매핑 관계를 나타내는 테이블일 수 있다. 구체적으로, 제2 리드 전압 테이블은 데이터의 타입에 대응되는 제3 필드 값들, 기준 전압 변화량에 대응되는 제4 필드 값들, 및 제3 필드 값들 및 제4 필드 값들에 매핑된 제2 전압 변화량들을 포함할 수 있다.
일 실시 예에서, 전압 레지스터(243)는 제3 리드 전압 테이블을 저장할 수 있다. 제3 리드 전압 테이블은 이레이즈 라이트 사이클 횟수, 기준 전압 변화량 및 제3 전압 변화량의 매핑 관계를 나타내는 테이블일 수 있다. 구체적으로, 제3 리드 전압 테이블은 이레이즈 라이트 사이클 횟수에 대응되는 제5 필드 값들, 기준 전압 변화량에 대응되는 제6 필드 값들, 및 제5 필드 값들 및 제6 필드 값들에 매핑된 제3 전압 변화량들을 포함할 수 있다.
일 실시 예에서, 제5 필드 값들 중, 제1 이레이즈 라이트 사이클 횟수를 나타내는 제5 필드 값에 매핑된 제3 전압 변화량들의 차이는, 제1 이레이즈 라이트 사이클 횟수 보다 큰 제2 이레이즈 라이트 사이클 횟수를 나타내는 제5 필드 값에 매핑된 제3 전압 변화량들 사이의 차이 보다 클 수 있다.
제1 내지 제3 리드 전압 테이블에 대한 구체적인 설명은 도 6a 내지 6d를 참조하여 후술하도록 한다.
리드 전압 제어부(245)는 이레이즈 라이트 사이클 횟수(EW_count) 및 페일 비트 수(FBIT)를 기초로, 리드 전압 테이블(RVT)에서 하나의 전압 변화량을 선택할 수 있다. 여기서, 페일 비트 수(FBIT)는 리드 전압 세트에 포함된 각 리드 전압에 대한 페일 비트 수로 구분될 수 있다.
구체적으로, 리드 전압 제어부(245)는 복수의 리드 전압들을 포함하는 리드 전압 세트를 이용해 리드된 페이지 데이터의 페일 비트 수(FBIT)가 임계 값을 초과할 경우, 복수의 리드 전압들 각각에 대한 페일 비트 수들 중에서 가장 큰 페일 비트 수를 기준 페일 비트 수로 결정할 수 있다. 여기서, 복수의 리드 전압들은 서로 같은 타입의 데이터를 리드하기 위한 전압들일 수 있다. 일 실시 예에서, 페일 비트 수(FBIT)는 에러 정정 회로(250)로부터 수신될 수 있다. 다른 일 실시 예에서, 페일 비트 수(FBIT)는 메모리 장치(100)로부터 수신될 수 있다.
그리고, 리드 전압 제어부(245)는 리드 전압 테이블(RVT)에 포함된 복수의 전압 변화량들 중에서 기준 페일 비트 수 및 이레이즈 라이트 사이클 횟수(EW_count)에 매칭되는 전압 변화량을 기준 전압 변화량으로 선택할 수 있다.
일 실시 예에서, 리드 전압 제어부(245)는 제1 리드 전압 테이블을 이용하여 기준 전압 변화량을 결정할 수 있다. 구체적으로, 리드 전압 제어부(245)는 제1 필드 값들 중에서 이레이즈 라이트 사이클 횟수와의 차이가 가장 작은 제1 필드 값을 선택할 수 있다. 그리고, 리드 전압 제어부(245)는 제2 필드 값들 중에서 선택된 제1 필드 값과 매핑되고, 기준 페일 비트 수와의 차이가 가장 작은 제2 필드 값을 선택할 수 있다. 그리고, 리드 전압 제어부(245)는 복수의 전압 변화량들 중에서 선택된 제2 필드 값과 매핑된 전압 변화량을 기준 전압 변화량으로 선택할 수 있다.
그리고, 리드 전압 제어부(245)는 기준 전압 변화량을 이용해 복수의 리드 전압들 각각의 레벨을 조정할 수 있다.
구체적으로, 리드 전압 제어부(245)는 기준 페일 비트 수 및 페일 비트 수들 각각의 비율 값과 기준 전압 변화량에 기초하여 복수의 리드 전압들 각각의 레벨을 조정할 수 있다. 그리고, 리드 전압 제어부(245)는 복수의 리드 전압들 각각의 리드 전압 정보(Vt)를 출력할 수 있다. 일 실시 예에서, 리드 전압 정보(Vt)는 리드 전압의 레벨을 나타낼 수 있다. 예를 들어, 리드 전압 정보(Vt)가 1.6V인 경우, 리드 동작시 1.6V의 전압이 선택 페이지에 인가될 수 있다. 일 실시 예에서, 리드 전압 정보(Vt)는 리드 전압의 디폴트 레벨을 조정하는 레벨을 나타낼 수 있다. 예를 들어, 리드 전압의 디폴트 레벨이 2V이고 리드 전압 정보(Vt)가 -0.4V인 경우, 리드 동작시 1.6V의 전압이 선택 페이지에 인가될 수 있다.
예를 들어, 리드된 페이지 데이터가 CSB 페이지 데이터이고, 리드 전압 세트가 제1 리드 전압, 제2 리드 전압 및 제3 리드 전압을 포함하는 경우를 가정하면, 페일 비트 수(FBIT)는 제1 리드 전압에 대한 제1 페일 비트 수, 제2 리드 전압에 대한 제2 페일 비트 수 및 제3 리드 전압에 대한 제3 페일 비트 수로 구분될 수 있다. 이때, 리드된 페이지 데이터의 페일 비트 수(FBIT)는 제1 페일 비트 수, 제2 페일 비트 수 및 제3 페일 비트 수를 합산한 값일 수 있다. 여기서, 제2 페일 비트 수가 가장 큰 경우를 가정하면, 제2 페일 비트 수가 기준 페일 비트 수로 결정될 수 있다.
이 경우, 리드 전압 제어부(245)는 기준 페일 비트 수 및 제1 페일 비트 수의 비율 값과 기준 전압 변화량을 곱한 값으로 제1 리드 전압의 레벨을 조정할 수 있다. 그리고, 리드 전압 제어부(245)는 기준 페일 비트 수 및 제2 페일 비트 수의 비율 값과 기준 전압 변화량을 곱한 값으로 제2 리드 전압의 레벨을 조정할 수 있다. 그리고, 리드 전압 제어부(245)는 기준 페일 비트 수 및 제3 페일 비트 수의 비율 값과 기준 전압 변화량을 곱한 값으로 제3 리드 전압의 레벨을 조정할 수 있다.
한편, 기준 전압 변화량이 비율 값에 곱해지는 것으로 설명하였으나, 이는 일 실시 예일 뿐이며, 본 개시에 따르면 기준 전압 변화량을 이용해 최종 전압 변화량을 결정한 후 최종 전압 변화량을 비율 값에 곱하는 것으로 변형될 수 있다.
일 실시 예에서, 리드 전압 제어부(245)는 제1 리드 전압 테이블을 이용하여 기준 전압 변화량을 결정한 후, 제2 리드 전압 테이블을 이용하여 최종 전압 변화량을 결정할 수 있다.
구체적으로, 리드 전압 제어부(245)는 제2 리드 전압 테이블에 포함된 제3 필드 값들 중에서 데이터들의 타입에 일치하는 제3 필드 값을 선택할 수 있다. 그리고, 리드 전압 제어부(245)는 제2 리드 전압 테이블에 포함된 제4 필드 값들 중에서 기준 전압 변화량에 일치하는 제4 필드 값을 선택할 수 있다. 리드 전압 제어부(245)는 제2 리드 전압 테이블에 포함된 제2 전압 변화량들 중에서 선택된 제3 필드 값 및 선택된 제4 필드 값에 매핑된 제2 전압 변화량을 최종 전압 변화량으로 선택할 수 있다. 이 경우, 리드 전압 제어부(245)는 최종 전압 변화량인 제2 전압 변화량을 비율 값들 각각에 곱한 값들로 복수의 리드 전압들 각각의 레벨을 조정할 수 있다.
일 실시 예에서, 리드 전압 제어부(245)는 제1 리드 전압 테이블을 이용하여 기준 전압 변화량을 결정한 후, 제3 리드 전압 테이블을 이용하여 최종 전압 변화량을 결정할 수 있다.
구체적으로, 리드 전압 제어부(245)는 제3 리드 전압 테이블에 포함된 제5 필드 값들 중에서 이레이즈 라이트 사이클 횟수와의 차이가 가장 작은 제5 필드 값을 선택할 수 있다. 리드 전압 제어부(245)는 제3 리드 전압 테이블에 포함된 제6 필드 값들 중에서 기준 전압 변화량에 일치하는 제6 필드 값을 선택할 수 있다. 리드 전압 제어부(245)는 제3 리드 전압 테이블에 포함된 제3 전압 변화량들 중에서 선택된 제5 필드 값 및 선택된 제6 필드 값에 매핑된 제3 전압 변화량을 최종 전압 변화량으로 선택할 수 있다. 리드 전압 제어부(245)는 최종 전압 변화량인 제3 전압 변화량을 비율 값들 각각에 곱한 값들로 복수의 리드 전압들 각각의 레벨을 조정할 수 있다.
리드 동작 제어부(247)는 노말 리드 동작 또는 리드 리트라이 방식에 따른 리드 동작을 수행하도록 메모리 장치(100)를 제어할 수 있다. 여기서, 노말 리드 동작은 디폴트로 설정된 레벨의 리드 전압을 이용해 데이터를 리드하는 동작을 나타낼 수 있다.
일 실시 예에서, 리드 동작 제어부(247)는 레벨이 각각 조정된 복수의 리드 전압들에 의해 데이터들을 리드하도록 메모리 장치(100)를 제어할 수 있다. 예를 들어, 리드 동작 제어부(247)는 커맨드(CMD) 및 복수의 리드 전압들 각각에 대한 리드 전압 정보(Vt)를 메모리 장치(100)로 전송할 수 있다. 여기서, 커맨드(CMD)는 복수의 리드 전압들 각각에 대한 리드 전압 정보(Vt)에 따라 레벨이 각각 조정된 복수의 리드 전압들에 의해 데이터들을 리드하도록 제어하는 리드 커맨드일 수 있다.
한편, 상술한 이레이즈 라이트 카운터 블록(241), 전압 레지스터(243), 리드 전압 제어부(245) 및 리드 동작 제어부(247)는 프로세서(240) 내부에 포함되는 것으로 설명하였으나, 이는 일 실시 예일 뿐이며 이레이즈 라이트 카운터 블록(241), 전압 레지스터(243), 리드 전압 제어부(245) 및 리드 동작 제어부(247) 중에서 적어도 하나는 프로세서(240)와는 별도의 구성으로 존재하는 것 또한 가능하다 할 것이다.
도 3은 일 실시 예에 따른 메모리 장치의 구조를 설명하기 위한 도면이다.
도 3을 참조하면, 메모리 장치(100)는 메모리 셀 어레이(110), 주변 회로(120) 및 제어 로직(130)을 포함할 수 있다.
메모리 셀 어레이(110)는 복수의 메모리 블록들(BLK1~BLKz)을 포함할 수 있다. 각각의 메모리 블록은 동일한 구조로 구성될 수 있다. 이하에서는 설명의 편의를 위해, 복수의 메모리 블록들(BLK1~BLKz) 중 어느 하나의 메모리 블록(BLKz)에 대해 설명하도록 한다.
메모리 블록(BLKz)은 복수의 페이지들을 포함할 수 있다. 각각의 페이지는 메모리 셀들을 포함할 수 있다. 즉, 메모리 블록(BLKz)은 복수의 메모리 셀들을 포함할 수 있다.
복수의 메모리 셀들은 2차원의 평면 상에 배치되거나, 3차원의 수직 구조로 배치될 수 있다. 여기서, 메모리 셀은 반도체 메모리 소자일 수 있다. 일 실시 예에서, 메모리 셀은 비휘발성 메모리 소자일 수 있다.
메모리 블록(BLKz)은 로우 라인(RL)을 통해 주변 회로(120)의 어드레스 디코더(121)에 연결될 수 있다. 여기서, 로우 라인(RL)은 복수의 워드 라인들을 포함할 수 있다. 메모리 블록(BLKz)의 하나의 페이지는 하나의 워드 라인과 연결될 수 있다. 즉, 메모리 블록(BLKz)의 하나의 페이지에 포함된 메모리 셀들은 하나의 워드 라인과 연결될 수 있다. 메모리 블록(BLKz)에 포함된 페이지들 각각은 비트 라인들(BL1~BLm)과 연결될 수 있다. 비트 라인들(BL1~BLm)은 주변 회로(120)의 페이지 버퍼들(PB1~PBm)과 각각 연결될 수 있다. 메모리 블록(BLKz)의 상세한 구조는 도 4를 참조하여 설명하도록 한다.
주변 회로(120)는 제어 로직(130)의 제어에 응답하여 동작할 수 있다. 예를 들어, 주변 회로(120)는 프로그램 동작, 리드 동작 또는 이레이즈 동작을 수행하도록 메모리 셀 어레이(110)를 구동할 수 있다.
주변 회로(120)는 어드레스 디코더(121), 전압 생성부(122), 읽기 및 쓰기 회로(123), 데이터 입출력 회로(124) 및 센싱 회로(125)를 포함할 수 있다.
어드레스 디코더(121)는 로우 라인(RL)을 통해 메모리 셀 어레이(110)에 연결될 수 있다. 예를 들어, 도 3 및 도 4를 참조하여, 로우 라인(RL)은 드레인 선택 라인(DSL), 복수의 워드 라인들(WL1~WL16), 소스 선택 라인(SSL) 및 소스 라인(SL)을 포함할 수 있다. 예시적으로, 어드레스 디코더(121)는 로우 디코더, 컬럼 디코더, 어드레스 버퍼 등과 같은 구성 요소들을 포함할 수 있다.
어드레스 디코더(121)는 제어 로직(130)의 제어에 응답하여 동작할 수 있다. 예를 들어, 어드레스 디코더(121)는 제어 로직(130)으로부터 어드레스(ADDR)를 수신할 수 있다. 어드레스 디코더(121)는 수신된 어드레스(ADDR)에 포함된 블록 어드레스 또는 페이지 어드레스를 디코딩할 수 있다. 여기서, 페이지 어드레스는 로우 어드레스를 나타낼 수 있다. 어드레스 디코더(121)는 블록 어드레스가 나타내는 메모리 블록 또는 페이지 어드레스가 나타내는 페이지에 전압 생성부(122)로부터 제공받은 동작 전압(Vop)을 인가할 수 있다. 여기서, 동작 전압(Vop)은 프로그램 전압, 검증 전압, 프로그램 패스 전압, 검증 패스 전압, 리드 전압, 리드 패스 전압, 제1 및 제2 이레이즈 전압 등 중에서 적어도 하나를 포함할 수 있다.
전압 생성부(122)는 메모리 장치(100)에 공급되는 외부 전원을 이용하여 다양한 종류의 동작 전압(Vop)을 생성할 수 있다. 여기서, 외부 전원은 메모리 시스템(10)에 포함된 예비 전원이거나, 또는 호스트(20)의 전원일 수 있다. 동작 전압(Vop)은 프로그램 전압, 검증 전압, 프로그램 패스 전압, 검증 패스 전압, 리드 전압, 리드 패스 전압, 제1 및 제2 이레이즈 전압 중에서 적어도 하나를 포함할 수 있다. 전압 생성부(122)는 제어 로직(130)의 제어에 응답하여 동작할 수 있다. 예를 들어, 전압 생성부(122)는 제어 로직(130)으로부터 동작 신호(OPSIG)가 수신되면, 동작 신호(OPSIG)에 대응되는 동작 전압(Vop)을 어드레스 디코더(121)로 전달할 수 있다.
읽기 및 쓰기 회로(123)는 복수의 페이지 버퍼들(PB1~PBm)를 포함할 수 있다. 복수의 페이지 버퍼들(PB1~PBm) 각각은 복수의 비트 라인들(BL1~BLm) 중 대응되는 비트 라인을 통해 메모리 셀 어레이(110)와 연결될 수 있다. 예를 들어, 복수의 페이지 버퍼들(PB1~PBm) 각각은 하나의 비트 라인을 통해 복수의 메모리 블록들(BLK1~BLKz) 각각에 포함된 메모리 셀들 중 특정한 컬럼을 나타내는 메모리 셀들과 공통으로 연결될 수 있다. 복수의 페이지 버퍼들(PB1~PBm) 각각은 데이터(DATA)를 임시 저장할 수 있다. 이를 위해, 복수의 페이지 버퍼들(PB1~PBm) 각각은 래치 회로 등의 다양한 메모리 소자로 구현될 수 있다.
읽기 및 쓰기 회로(123)는 제어 로직(130)의 제어에 응답하여 동작할 수 있다. 일 실시 예에서, 읽기 및 쓰기 회로(123)는 제어 로직(130)으로부터 버퍼 제어 신호(PBSIGNALS)가 수신되면, 복수의 비트 라인들(BL1~BLm) 각각에 데이터(DATA)에 대응되는 전압을 인가하거나, 또는 복수의 비트 라인들(BL1~BLm) 각각의 전압을 센싱하여 데이터(DATA)를 리드할 수 있다. 이와 같이, 복수의 페이지 버퍼들(PB1~PBm)에 임시 저장된 데이터(DATA)를 메모리 셀 어레이(110)의 특정한 영역에 저장하거나, 또는 메모리 셀 어레이(110)의 특정한 영역에 저장된 데이터(DATA)를 리드하여 복수의 페이지 버퍼들(PB1~PBm)에 임시 저장할 수 있다. 여기서, 특정한 영역은 페이지 어드레스가 나타내는 페이지일 수 있다.
데이터 입출력 회로(124)는 데이터 라인(DL)을 통해 읽기 및 쓰기 회로(123)에 연결될 수 있다. 데이터 입출력 회로(124)는 입력되는 데이터(DATA)를 수신하는 복수의 입출력 버퍼들을 포함할 수 있다. 데이터 입출력 회로(124)는 제어 로직(130)의 제어 신호에 응답하여 동작할 수 있다. 예를 들어, 데이터 입출력 회로(124)는 제어 로직(130)의 제어 신호가 수신되면, 데이터 입출력 회로(124)에 임시 저장된 데이터(DATA)를 데이터 라인(DL)을 통해 읽기 및 쓰기 회로(123)로 출력하거나, 또는 데이터 입출력 회로(124)에 임시 저장된 데이터(DATA)를 채널을 통해 메모리 컨트롤러(200)로 출력할 수 있다.
센싱 회로(125)는 제어 로직(130)으로부터 수신된 허용 비트 신호(VRYBIT)에 응답하여 기준 전압을 생성할 수 있다. 센싱 회로(125)는 읽기 및 쓰기 회로(123)로부터 수신된 센싱 전압(VPB)과 기준 전압을 비교한 결과에 따라, 패스 신호(PASS) 또는 페일 신호(FAIL)를 제어 로직(130)으로 출력할 수 있다. 여기서, 패스 신호(PASS)는 프로그램 펄스 동작의 성공 또는 리드 동작의 성공을 나타낼 수 있다. 페일 신호(FAIL)는 프로그램 펄스 동작의 실패 또는 리드 동작의 실패를 나타낼 수 있다.
제어 로직(130)은 메모리 장치(100)의 전반적인 동작을 제어할 수 있다. 제어 로직(130)은 메모리 컨트롤러(200)로부터 수신된 커맨드(CMD) 및 어드레스(ADDR)에 따라 프로그램 동작, 리드 동작 또는 이레이즈 동작을 수행하도록 주변 회로(120)를 제어할 수 있다. 여기서, 커맨드(CMD)는 프로그램 커맨드, 리드 커맨드, 또는 이레이즈 커맨드일 수 있다. 이를 위해, 제어 로직(130)은 주변 회로(120)와 연결될 수 있다. 예를 들어, 제어 로직(130)은 어드레스 디코더(121), 전압 생성부(122), 읽기 및 쓰기 회로(123), 데이터 입출력 회로(124) 및 센싱 회로(125)에 연결될 수 있다.
일 실시 예에서, 제어 로직(130)은 메모리 컨트롤러(200)로부터 프로그램 커맨드 및 어드레스(ADDR)가 수신되면, 어드레스(ADDR)에 대응되는 선택 페이지에 데이터(DATA)를 저장하는 프로그램 동작을 수행하도록 주변 회로(120)를 제어할 수 있다. 여기서, 데이터(DATA)는 하나 이상의 페이지 데이터를 포함할 수 있다. 예를 들어, TLC의 경우, 데이터(DATA)는 LSB 페이지 데이터, CSB 페이지 데이터 및 MSB 페이지 데이터를 포함할 수 있다. 다른 예를 들어, MLC의 경우, 데이터(DATA)는 LSB 페이지 데이터, 및 MSB 페이지 데이터를 포함할 수 있다.
프로그램 동작은 ISPP(Incremental Step Pulse Program) 방식에 따라 데이터를 저장하는 동작일 수 있다. 예를 들어, 프로그램 동작은 복수의 프로그램 루프들을 포함할 수 있다. 각 프로그램 루프는 순차적으로 수행되는 프로그램 펄스 동작 및 프로그램 검증 동작을 포함할 수 있다. 프로그램 펄스 동작은 문턱 전압을 변경하기 위해 선택 페이지에 프로그램 전압이 인가되는 동작이다. 프로그램 검증 동작은 프로그램 펄스 동작의 성공 또는 실패를 검증하기 위해 선택 페이지에 검증 전압이 인가되는 동작이다. 검증 동작의 결과가 프로그램 펄스 동작의 성공을 나타내면, 제어 로직(130)은 프로그램 동작을 종료할 수 있다. 검증 동작의 결과가 프로그램 펄스 동작의 실패를 나타내면, 제어 로직(130)은 프로그램 전압의 레벨이 상승된 다음 프로그램 루프를 수행하도록 주변 회로(120)를 제어할 수 있다.
일 실시 예에서, 제어 로직(130)은 메모리 컨트롤러(200)로부터 리드 커맨드 및 어드레스(ADDR)가 수신되면, 어드레스(ADDR)에 대응되는 선택 페이지에 저장된 데이터(DATA)를 리드하는 리드 동작을 수행하도록 주변 회로(120)를 제어할 수 있다. 그리고, 제어 로직(130)은 선택 페이지로부터 리드된 데이터(DATA)를 메모리 컨트롤러(200)로 전송하도록 주변 회로(120)를 제어할 수 있다.
예를 들어, 제어 로직(130)은 메모리 컨트롤러(200)로부터 리드 커맨드 및 어드레스(ADDR)가 수신되면, 페이지 데이터의 타입에 대응되는 복수의 리드 전압들을 어드레스(ADDR)에 대응되는 선택 페이지에 순차적으로 인가하도록 주변 회로(120)를 제어할 수 있다. 그리고, 제어 로직(130)은 리드된 페이지 데이터를 메모리 컨트롤러(200)로 전송하도록 주변 회로(120)를 제어할 수 있다.
이 경우, 제어 로직(130)은 메모리 컨트롤러(200)로부터 리드 커맨드 및 리드 전압 정보가 수신되면, 리드 전압 정보에 따라 레벨이 각각 조정된 복수의 리드 전압을 선택 페이지에 인가하도록 수행하도록 주변 회로(120)를 제어할 수 있다. 그리고, 제어 로직(130)은 리드된 페이지 데이터를 메모리 컨트롤러(200)로 전송하도록 주변 회로(120)를 제어할 수 있다.
한편, 메모리 블록들(BLK1~BLKz) 중 일부는 시스템 메모리 블록 또는 캠 블록일 수 있다. 시스템 메모리 블록 또는 캠 블록은 메모리 장치(100)의 동작과 관련된 정보를 저장할 수 있다. 예를 들어, 메모리 장치(100)의 동작과 관련된 정보는 프로그램 전압의 디폴트 레벨, 리드 전압의 디폴트 레벨, 배드 블록에 대한 정보, 페일 비트 수 등을 포함할 수 있다.
도 4는 일 실시 예에 따른 메모리 블록의 구조를 설명하기 위한 도면이다.
도 4를 참조하면, 메모리 블록(BLKz)은 복수의 스트링들을 포함할 수 있다. 복수의 스트링들은 서로 동일하게 구성될 수 있으므로, 제1 비트 라인(BL1)에 연결된 스트링(ST)을 예로 들어 설명하도록 한다.
스트링(ST)의 어느 하나의 단은 복수의 비트 라인들(BL1~BLm) 중 하나의 비트 라인인 제1 비트 라인(BL1)에 연결될 수 있다. 스트링(ST)의 다른 하나의 단은 소스 라인(SL)에 연결될 수 있다. 여기서, 하나의 소스 라인(SL)은 복수의 스트링들에 공통으로 연결되며, 하나의 비트 라인은 하나의 스트링에 연결될 수 있다.
스트링(ST)은 소스 라인(SL)과 제1 비트 라인(BL1) 사이에서 서로 직렬로 연결된 소스 셀렉트 트랜지스터(SST), 복수의 메모리 셀들(MC1~MC16) 및 드레인 셀렉트 트랜지스터(DST)를 포함할 수 있다. 일 실시 예에서, 스트링(ST)에는 소스 셀렉트 트랜지스터(SST)와 드레인 셀렉트 트랜지스터(DST)가 적어도 하나 이상씩 포함될 수 있으며, 메모리 셀들(MC1~MC16) 또한 도면에 도시된 개수보다 더 많이 포함될 수 있다.
소스 셀렉트 트랜지스터(SST)들의 게이트는 소스 셀렉트 라인(SSL)에 연결될 수 있고, 드레인 셀렉트 트랜지스터(DST)의 게이트는 드레인 셀렉트 라인(DSL)에 연결될 수 있다. 소스 셀렉트 트랜지스터(SST)의 소스는 소스 라인(SL)에 연결될 수 있고, 드레인 셀렉트 트랜지스터(DST)의 드레인은 제1 비트 라인(BL1)에 연결될 수 있다.
복수의 메모리 셀들(MC1~MC16)의 게이트는 복수의 워드 라인(WL1~WL16)에 하나씩 연결될 수 있다. 복수의 메모리 셀들(MC1~MC16)은 소스 셀렉트 트랜지스터(SST)와 드레인 셀렉트 트랜지스터(DST) 사이에서 이들과 직렬로 연결될 수 있다.
메모리 블록(BLKz)은 복수의 페이지들을 포함할 수 있다. 하나의 페이지(PG)는 동일한 워드 라인에 공통으로 연결되는 메모리 셀들의 그룹으로 정의될 수 있다. 여기서, 페이지(PG)는 프로그램 동작이 또는 리드 동작이 수행되는 단위에 대응되는 메모리 셀들의 집합일 수 있다. 메모리 블록(BLKz)은 이레이즈 동작이 수행되는 단위에 대응되는 메모리 셀들의 집합일 수 있다.
페이지(PG)는 적어도 하나의 페이지 데이터를 저장할 수 있다. 페이지 데이터의 개수는 메모리 셀에 저장되는 데이터의 비트 수에 따라 결정될 수 있다. 예를 들어, 하나의 메모리 셀에 1비트의 데이터가 저장되는 SLC의 경우, 하나의 페이지(PG)에는 1개의 페이지 데이터가 저장될 수 있다. 다른 예를 들어, 하나의 메모리 셀에 2비트의 데이터가 저장되는 MLC의 경우, 하나의 페이지(PG)에는 2개의 페이지 데이터가 저장될 수 있다. 다른 예를 들어, 하나의 메모리 셀에 3비트의 데이터가 저장되는 TLC의 방식의 경우, 하나의 페이지(PG)에는 3개의 페이지 데이터가 저장될 수 있다.
도 5a는 일 실시 예에 따른 메모리 셀들의 문턱 전압의 분포를 설명하기 위한 도면이다.
도 5a를 참조하면, 복수의 메모리 셀들 각각은 문턱 전압에 따라 복수의 프로그램 상태들(P0~P7) 중 하나의 프로그램 상태를 가질 수 있다. 도 5a에 도시된 복수의 프로그램 상태들(P0~P7)은 TLC를 예시로 한 것이며, 데이터 저장 방식이 SLC, MLC 등으로 변경될 경우 프로그램 상태는 달라질 수 있다.
메모리 장치(100)는 선택 페이지에 리드 전압을 인가한 결과에 따라 페이지에 포함된 메모리 셀들 각각의 프로그램 상태를 식별할 수 있다. 여기서, TLC의 경우 메모리 장치(100)는 7개의 리드 전압을 이용해 메모리 셀의 프로그램 상태를 8개의 프로그램 상태 중 하나로 식별할 수 있다. MLC의 경우, 메모리 장치(100)는 3개의 리드 전압을 이용해 4개의 프로그램 상태 중 하나로 식별할 수 있다. 예를 들어, 도 5a와 같이 데이터 저장 방식이 TLC인 경우, 복수의 프로그램 상태들(P0~P7)은 제0 프로그램 상태(P0) 내지 제7 프로그램 상태(P7)를 포함할 수 있다. 여기서, 제0 프로그램 상태(P0)은 이레이즈 상태일 수 있다.
구체적으로, 메모리 장치(100)는 선택 페이지에 제1 리드 전압(R1)을 인가하고, 비선택 페이지에 패스 전압을 인가할 수 있다. 이때, 제1 리드 전압(R1)의 레벨 보다 작은 문턱 전압을 갖는 메모리 셀에는 전류가 흐를 수 있는 채널이 형성될 수 있다. 이때, 제1 리드 전압(R1)의 레벨 보다 작은 문턱 전압을 갖는 메모리 셀은 전류가 흐르는 온(On) 셀로 동작할 수 있다. 한편, 제1 리드 전압(R1)의 레벨 이상의 문턱 전압을 갖는 메모리 셀에는 채널이 형성되지 않을 수 있다. 이때, 제1 리드 전압(R1)의 레벨 이상의 문턱 전압을 갖는 메모리 셀은 전류가 흐르지 않는 오프(Off) 셀로 동작할 수 있다. 이 경우, 메모리 장치(100)는 온 셀인 메모리 셀의 프로그램 상태를 제0 프로그램 상태(P0)로 판단할 수 있다.
그리고, 메모리 장치(100)는 선택 페이지에 제2 리드 전압(R2)을 인가하고, 비선택 페이지에 패스 전압을 인가할 수 있다. 이때, 메모리 장치(100)는 제0 프로그램 상태(P0)를 갖는 메모리 셀들을 제외한 나머지 메모리 셀들 중에서, 온 셀인 메모리 셀의 프로그램 상태를 제1 프로그램 상태(P1)로 판단할 수 있다.
그리고, 메모리 장치(100)는 선택 페이지에 제3 리드 전압(R3)을 인가하고, 비선택 페이지에 패스 전압을 인가할 수 있다. 이때, 메모리 장치(100)는 제0 프로그램 상태(P0) 또는 제1 프로그램 상태(P1)를 갖는 메모리 셀들을 제외한 나머지 메모리 셀들 중에서, 온 셀인 메모리 셀의 프로그램 상태를 제2 프로그램 상태(P2)로 판단할 수 있다. 이와 유사한 방식으로 제4 리드 전압(R4) 내지 제7 리드 전압(R7)을 순차적으로 인가함으로써 메모리 셀의 프로그램 상태를 판단할 수 있다.
도 5b는 일 실시 예에 따른 그레이 코드를 설명하기 위한 도면이다.
도 5b를 참조하면, 복수의 프로그램 상태들(P0~P7) 각각에는 데이터 저장 방식에 따른 비트의 값들 중 하나가 할당될 수 있다. 도 5b에 도시된 복수의 프로그램 상태들(P0~P7)은 TLC를 예시로 한 것이며, 데이터 저장 방식이 SLC, MLC 등으로 변경될 경우 각 프로그램 상태에 할당된 값은 달라질 수 있다.
일 실시 예에서, TLC의 경우, 도 5b와 같이 '7310-2645'의 그레이 코드에 따라 복수의 프로그램 상태들(P0~P7) 각각에는 3개의 비트로 이진화된 값이 할당될 수 있다. 예를 들어, 제0 프로그램 상태(P0)에 '111'의 값이 할당되고, 제1 프로그램 상태(P1)에 '011'의 값이 할당되고, 제2 프로그램 상태(P2)에 '001'의 값이 할당되고, 제3 프로그램 상태(P3)에 '000'의 값이 할당되고, 제4 프로그램 상태(P4)에 '010'의 값이 할당되고, 제5 프로그램 상태(P5)에 '110'의 값이 할당되고, 제6 프로그램 상태(P6)에 '100'의 값이 할당되고, 제7 프로그램 상태(P7)에 '101'의 값이 할당될 수 있다.
TLC의 경우, 하나의 메모리 셀은 3개의 비트를 저장할 수 있다. 여기서, 3개의 비트는 MSB, CSB 및 LSB를 포함할 수 있다. 메모리 셀을 페이지 단위로 확장하면, 하나의 페이지는 LSB 페이지 데이터, CSB 페이지 데이터 및 MSB 페이지 데이터와 같은 3개의 페이지 데이터를 저장할 수 있다.
여기서, 데이터의 타입에 대응되는 리드 전압 세트가 미리 설정될 수 있다. 리드 전압 세트는 적어도 하나의 리드 전압을 포함할 수 있다. 예를 들어, MSB 페이지 데이터를 리드하기 위한 제1 리드 전압 세트는 제1 리드 전압(R1) 및 제5 리드 전압(R5)를 포함할 수 있다. CSB 페이지 데이터를 리드하기 위한 제2 리드 전압 세트는 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)를 포함할 수 있다. LSB 페이지 데이터를 리드하기 위한 제3 리드 전압 세트는 제3 리드 전압(R3) 및 제7 리드 전압(R7)를 포함할 수 있다.
CSB 페이지 데이터를 리드하는 경우를 가정하면, 메모리 장치(100)는 선택 페이지에 제2 리드 전압(R2)를 인가하고 비선택 페이지에 패스 전압을 인가할 수 있다. 이때, 메모리 장치(100)는 선택 페이지에 포함된 메모리 셀들 중에서, 온 셀인 메모리 셀들에 저장된 CSB의 값을 '1'로 판단할 수 있다. 여기서, 온 셀인 메모리 셀들은 제0 프로그램 상태(P0) 또는 제1 프로그램 상태(P1)일 수 있다.
그리고, 메모리 장치(100)는 선택 페이지에 제4 리드 전압(R4)를 인가하고 비선택 페이지에 패스 전압을 인가할 수 있다. 이때, 메모리 장치(100)는 선택 페이지에 포함되고 값이 판단되지 않은 메모리 셀들 중에서, 온 셀인 메모리 셀들에 저장된 CSB의 값을 '0'으로 판단할 수 있다. 여기서, 온 셀인 메모리 셀들은 제2 프로그램 상태(P2) 또는 제3 프로그램 상태(P3)일 수 있다.
그리고, 메모리 장치(100)는 선택 페이지에 제6 리드 전압(R6)를 인가하고 비선택 페이지에 패스 전압을 인가할 수 있다. 이때, 메모리 장치(100)는 선택 페이지에 포함되고 값이 판단되지 않은 메모리 셀들 중에서, 온 셀인 메모리 셀들에 저장된 CSB의 값을 '1'로 판단할 수 있다. 여기서, 온 셀인 메모리 셀들은 제4 프로그램 상태(P4) 또는 제5 프로그램 상태(P5)일 수 있다. 또한, 메모리 장치(100)는 선택 페이지에 포함되고 값이 판단되지 않은 메모리 셀들 중에서, 오프 셀인 메모리 셀들에 저장된 CSB의 값을 '0'으로 판단할 수 있다. 여기서, 오프 셀인 메모리 셀들은 제6 프로그램 상태(P6) 또는 제7 프로그램 상태(P7)일 수 있다.
도 5c는 일 실시 예에 따른 페일 비트를 설명하기 위한 도면이다.
도 5c를 참조하면, 메모리 셀들의 문턱 전압은 디스터번스, 리텐션 또는 이레이즈 라이트 사이클 횟수의 증가 등으로 인해 변화될 수 있다.
예를 들어, 선택 페이지에 포함된 제N 메모리 셀들이 제N 문턱 전압 분포(531d)를 갖는 경우를 가정하도록 한다. 이 경우, 디폴트 레벨(Rd)을 갖는 리드 전압이 선택 페이지에 인가되면, 제N 메모리 셀들의 문턱 전압의 레벨이 리드 전압의 디폴트 레벨(Rd)보다 보다 크기 때문에 온 셀로 판단되지 않는다. 여기서, 디폴트 레벨(Rd)은 미리 설정된 레벨일 수 있다.
이후, 제N 메모리 셀들이 제2 문턱 전압 분포(531s)로 변화되고, 디폴트 레벨(Rd)을 갖는 리드 전압이 선택 페이지에 인가된다면, 제N 메모리 셀들 중 일부 메모리 셀들(531f)의 문턱 전압의 레벨이 리드 전압의 디폴트 레벨(Rd)보다 보다 작기 때문에 온 셀로 판단될 수 있다. 이때, 일부 메모리 셀들(531f)은 프로그램 상태가 달라진 페일 비트를 나타낼 수 있다.
여기서, 에러 정정 회로(250) 또는 제어 로직(130)은 프로그램 상태가 달라진 메모리 셀의 개수를 카운트함으로써 페일 비트 수를 판단할 수 있다. 예를 들어, TLC의 경우, 한 페이지에 포함된 8000개의 메모리 셀들 각각은 제0 프로그램 상태(P0) 내지 제7 프로그램 상태(P7) 중 하나의 프로그램 상태를 갖도록 프로그램될 수 있다. 이때, 제0 프로그램 상태(P0) 내지 제7 프로그램 상태(P7) 각각에는 제1000개의 메모리 셀들이 속하도록 프로그램 될 수 있다. 이 경우, 제2 리드 전압(R2)을 인가하여 온 셀로 판단된 메모리 셀의 개수는 2000개일 수 있다. 이후 메모리 셀들의 문턱 전압이 변화하여, 제2 리드 전압(R2)을 인가하여 온 셀로 판단된 메모리 셀의 개수가 2200개가 되는 경우를 가정하면, 이 경우 메모리 셀의 개수가 2000개에서 2200개로 달라졌으므로 제2 리드 전압(R2)에 대한 페일 비트 수는 200개일 수 있다. 여기서, 페일 비트 수는 메모리 장치(100)의 캠 블록 또는 메모리 컨트롤러(200)의 메모리(230)에 저장될 수 있다.
한편, CSB 페이지 데이터와 같이 특정한 타입의 데이터를 리드하기 위해 리드 전압을 인가하는 횟수와 MSB 페이지 데이터 또는 LSB 페이지 데이터와 같이 다른 타입의 데이터를 리드하기 위해 리드 전압을 인가하는 횟수의 차이가 있는 경우에 페일 비트가 발생하는 정도가 달라질 수 있다.
본 개시에서는, 전압 변화량 등을 포함하는 리드 전압 테이블을 이용하여 리드 전압의 레벨을 디폴트 레벨(Rd)에서 쉬프트 레벨(Rs)로 조정함으로써, 메모리 셀들의 문턱 전압이 변화하더라도 페일 비트를 감소시킬 수 있다.
도 6a 및 6b는 일 실시 예에 따른 제1 리드 전압 테이블을 설명하기 위한 도면이다.
도 6a 및 6b를 참조하면, 전압 레지스터(243)는 제1 리드 전압 테이블(610, 620)을 저장할 수 있다. 제1 리드 전압 테이블(610, 620)은 이레이즈 라이트 사이클 횟수, 기준 페일 비트 수 및 전압 변화량의 매핑 관계를 나타내는 테이블일 수 있다. 여기서, 매핑 관계는 같은 행 또는 같은 열 등의 관계를 나타낼 수 있다.
구체적으로, 제1 리드 전압 테이블(610, 620)은 이레이즈 라이트 사이클 횟수에 대응되는 제1 필드 값들(611), 제1 필드 값들(611)에 매핑되고 기준 페일 비트 수에 대응되는 제2 필드 값들(613), 및 제2 필드 값들(613)에 매핑된 복수의 전압 변화량들(615)을 포함할 수 있다.
도 6b를 참조하여, 데이터 저장 방식이 TLC이고 CSB 페이지 데이터를 리드하기 위한 제2 리드 전압에 대한 페일 비트 수가 2000, 제4 리드 전압에 대한 페일 비트 수가 3400, 제6 리드 전압에 대한 페일 비트 수가 2500이고, 선택 페이지에 대한 이레이즈 라이트 사이클 횟수가 80인 경우를 가정하도록 한다.
이 경우, 리드 전압 제어부(245)는 제1 필드 값들 중에서 이레이즈 라이트 사이클 횟수 '80'과의 차이가 가장 작은 제1 필드 값(621) '100'을 선택할 수 있다.
그리고, 리드 전압 제어부(245)는 제2 리드 전압의 페일 비트 수, 제4 리드 전압의 페일 비트 수, 제6 리드 전압의 페일 비트 수 중에서 가장 큰 페일 비트 수 '3400'을 기준 페일 비트 수로 결정할 수 있다. 이 경우, 리드 전압 제어부(245)는 선택된 제1 필드 값(621) '100'과 같은 열에 위치한 제2 필드 값들 중, 기준 페일 비트 수 '3400'와의 차이가 가장 작은 제2 필드 값(624) '3500'을 선택할 수 있다.
이 경우, 리드 전압 제어부(245)는 선택된 제2 필드 값(624) '3500'과 같은 행에 위치한 전압 변화량(625) '-240'을 기준 전압 변화량으로 선택할 수 있다. 일 실시 예에서, 기준 전압 변화량을 최종 전압 변화량으로 이용해 리드 전압의 레벨을 조정할 수 있다. 예를 들어, 리드 전압 제어부(245)는 기준 전압 변화량 '-240'을 비율 값들 각각에 곱한 값들로 복수의 리드 전압들 각각의 레벨을 조정할 수 있다. 다른 일 실시 예에서, 기준 전압 변화량과 제2 리드 전압 테이블 또는 제3 리드 전압 테이블을 이용해 최종 전압 변화량을 결정할 수 있다.
도 6c는 일 실시 예에 따른 제2 리드 전압 테이블을 설명하기 위한 도면이다.
도 6c를 참조하면, 전압 레지스터(243)는 제2 리드 전압 테이블(630)을 저장할 수 있다. 제2 리드 전압 테이블(630)은 데이터의 타입, 기준 전압 변화량 및 제2 전압 변화량의 매핑 관계를 나타내는 테이블일 수 있다. 예를 들어, 제2 리드 전압 테이블(630)은 데이터의 타입에 대응되는 제3 필드 값들(631), 기준 전압 변화량에 대응되는 제4 필드 값들(633), 및 제3 필드 값들(631) 및 제4 필드 값들(633)에 매핑된 제2 전압 변화량들(635)을 포함할 수 있다.
일 예를 들어, 데이터 저장 방식이 TLC이고, CSB 페이지 데이터를 리드하고, 제1 리드 전압 테이블을 통해 '-240'으로 기준 전압 변화량이 결정된 것으로 가정하도록 한다.
이 경우, 리드 전압 제어부(245)는 제2 리드 전압 테이블(630)에 포함된 제3 필드 값들(631) 중에서 데이터들의 타입 'CSB'에 일치하는 제3 필드 값(632) 'CSB'를 선택할 수 있다. 그리고, 리드 전압 제어부(245)는 제2 리드 전압 테이블(630)에 포함된 제4 필드 값들(633) 중에서 기준 전압 변화량 '-240'에 일치하는 제4 필드 값(634) '-240'을 선택할 수 있다.
이 경우, 리드 전압 제어부(245)는 제2 리드 전압 테이블(630)에 포함된 제2 전압 변화량들(635) 중에서 선택된 제3 필드 값(632) 'CSB' 및 선택된 제4 필드 값(634) '-240'에 매핑된 제2 전압 변화량(636) '-120'을 최종 전압 변화량으로 선택할 수 있다.
이 경우, 리드 전압 제어부(245)는 최종 전압 변화량인 제2 전압 변화량(636) '-120'을 비율 값들 각각에 곱한 값들로 복수의 리드 전압들 각각의 레벨을 조정할 수 있다.
도 6d는 일 실시 예에 따른 제3 리드 전압 테이블을 설명하기 위한 도면이다.
도 6d를 참조하면, 전압 레지스터(243)는 제3 리드 전압 테이블(640)을 저장할 수 있다. 제3 리드 전압 테이블(640)은 이레이즈 라이트 사이클 횟수, 기준 전압 변화량 및 제3 전압 변화량의 매핑 관계를 나타내는 테이블일 수 있다. 예를 들어, 제3 리드 전압 테이블(640)은 이레이즈 라이트 사이클 횟수에 대응되는 제5 필드 값들(641), 기준 전압 변화량에 대응되는 제6 필드 값들(643), 및 제5 필드 값들(641) 및 제6 필드 값들(643)에 매핑된 제3 전압 변화량들(645)을 포함할 수 있다.
일 예를 들어, 데이터 저장 방식이 TLC이고, CSB 페이지 데이터를 리드하고, 선택 페이지에 대한 이레이즈 라이트 사이클 횟수가 800이고, 제1 리드 전압 테이블을 통해 '-240'으로 기준 전압 변화량이 결정된 것으로 가정하도록 한다.
이 경우, 리드 전압 제어부(245)는 제3 리드 전압 테이블(640)에 포함된 제5 필드 값들(641) 중에서 이레이즈 라이트 사이클 횟수 '80'과의 차이가 가장 작은 제5 필드 값(642) '1000'을 선택할 수 있다. 그리고, 리드 전압 제어부(245)는 제3 리드 전압 테이블(640)에 포함된 제6 필드 값들(643) 중에서 기준 전압 변화량 '-240'에 일치하는 제6 필드 값(644) '-240'을 선택할 수 있다.
이 경우, 리드 전압 제어부(245)는 제3 리드 전압 테이블(640)에 포함된 제3 전압 변화량들(645) 중에서 선택된 제5 필드 값(642) '1000' 및 선택된 제6 필드 값(644) '240'에 매핑된 제3 전압 변화량(646) '-120'을 최종 전압 변화량으로 선택할 수 있다.
이 경우, 리드 전압 제어부(245)는 최종 전압 변화량인 제3 전압 변화량(646) '-120'을 비율 값들 각각에 곱한 값들로 복수의 리드 전압들 각각의 레벨을 조정할 수 있다.
일 실시 예에서, 제3 리드 전압 테이블(640)에 포함된 제5 필드 값들(641) 중, 제1 이레이즈 라이트 사이클 횟수를 나타내는 제5 필드 값에 매핑된 제3 전압 변화량들의 차이는, 제1 이레이즈 라이트 사이클 횟수 보다 큰 제2 이레이즈 라이트 사이클 횟수를 나타내는 제5 필드 값에 매핑된 제3 전압 변화량들 사이의 차이 보다 클 수 있다. 예를 들어, 이레이즈 라이트 사이클 횟수가 '1000'인 열에 매핑된 전압 변화량들의 차이는 20이고, 이레이즈 라이트 사이클 횟수가 '1000' 보다 큰 '3000'인 열에 매핑된 전압 변화량들의 차이는 10일 수 있다.
도 7a는 일 실시 예에 따른 리드 리트라이 동작의 리드 전압을 설명하기 위한 도면이다.
도 7a를 참조하면, 메모리 컨트롤러(200) 또는 메모리 장치(100)는 리드 리트라이 방식에 따른 리드 동작을 수행하기 위한 리드 리트라이 테이블(710)을 저장할 수 있다. 예를 들어, 리드 리트라이 테이블(710)은 메모리 컨트롤러(200)의 전압 레지스터(243) 또는 메모리 장치(100)의 캠 블록에 저장될 수 있다.
리드 리트라이 테이블(710)은 복수의 인덱스(RR1~RR3)를 포함할 수 있다. 복수의 인덱스(RR1~RR3)은 리드 리트라이 방식에 따른 리드 동작의 순서를 나타낼 수 있다. 리드 리트라이 테이블(710)은 디폴트 레벨 정보(R1_1~R7_3)를 포함할 수 있다. 디폴트 레벨 정보(R1_1~R7_3)는 제N 인덱스에 매핑된 제M 리드 전압의 디폴트 레벨을 나타낼 수 있다. 디폴트 레벨은 미리 설정된 것일 수 있다.
예를 들어, 메모리 장치(100)는 리드 리트라이 방식에 따라 첫번째 리드 동작을 수행할 경우, 메모리 장치(100)는 복수의 리드 전압들(R1~R7)을 제1 인덱스(RR1)에 매핑된 디폴트 레벨들(711)로 조정하여 첫번째 리드 동작을 수행할 수 있다. 이후, 메모리 장치(100)는 첫번째 리드 동작이 실패하여 리드 리트라이 방식에 따라 두번째 리드 동작을 수행할 경우, 메모리 장치(100)는 복수의 리드 전압들(R1~R7)을 제2 인덱스(RR2)에 매핑된 디폴트 레벨들(712)로 조정하여 두번째 리드 동작을 수행할 수 있다. 이와 같이, 리드 동작이 실패할 때마다, 메모리 컨트롤러(200)의 제어 하에 메모리 장치(100)는 인덱스 순서에 따라 인덱스에 매핑된 디폴트 레벨들로 리드 전압을 조정하여 리드 동작을 수행할 수 있다.
본 개시에서는 리드 리트라이 방식의 리드 동작을 수행할 경우, 같은 인덱스라도 리드 전압에 고정된 레벨이 아닌 유동적인 레벨을 적용할 수 있다. 이에 대해서는 도 7b 및 도 7c를 참조하여 설명하도록 한다.
도 7b 및 7c는 일 실시 예에 따른 리드 리트라이 동작의 리드 전압을 조정하는 방법을 설명하기 위한 도면이다.
도 7b 및 도 7c를 참조하면, 메모리 컨트롤러(200)는 리드 리트라이 방식에 따른 리드 동작을 수행하기 위한 리드 리트라이 테이블(720)을 저장할 수 있다. 예를 들어, 리드 리트라이 테이블(720)은 메모리 컨트롤러(200)의 전압 레지스터(243) 또는 메모리 장치(100)의 캠 블록에 저장될 수 있다.
리드 리트라이 테이블(720)은 복수의 인덱스(RR1~RR3)를 포함할 수 있다. 리드 리트라이 테이블(710)은 디폴트 레벨 정보(R1_1~R7_3)와 리드 전압 정보(Vt1~Vt7)를 포함할 수 있다. 여기서, 리드 전압 정보(Vt1~Vt7)는 제N 인덱스에 매핑된 제M 리드 전압의 디폴트 레벨을 조정하기 위한 레벨을 나타낼 수 있다. 리드 전압 정보(Vt1~Vt7)는 상술한 리드 전압 테이블을 이용하여 결정될 수 있다.
예를 들어, 데이터 저장 방식이 TLC이고 CSB 페이지 데이터에 대한 리드 리트라이 방식의 리드 동작을 수행할 경우를 가정하도록 한다. 제2 리드 전압(R2)에 대한 제2 페일 비트 수(FBIT_2)가 '2000', 제4 리드 전압(R4)에 대한 제4 페일 비트 수(FBIT_4)가 '3400', 제6 리드 전압(R6)에 대한 제6 페일 비트 수(FBIT_6)가 '2500'이고, 제1 리드 테이블을 이용해 기준 전압 변화량(Va)이 '-240'으로 결정된 경우를 가정하도록 한다. 이때, 제2 페일 비트 수(FBIT_2), 제4 페일 비트 수(FBIT_4), 제6 페일 비트 수(FBIT_6) 중에서 가장 큰 값인 '3400'이 기준 페일 비트 수로 결정될 수 있다. 여기서, 도 7b와 같이 리드 리트라이 테이블(720)에서 CSB 페이지 데이터를 리드하기 위한 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)에 매핑된 행의 데이터(721, 722, 723)을 이용할 수 있다.
이 경우, 제2 리드 전압 정보(Vt2)는 제2 페일 비트 수(FBIT_2) '2000' 및 기준 페일 비트 수 '3400'의 비율 값에 기준 전압 변화량(Va) '-240'을 곱한 레벨을 포함할 수 있다. 그리고, 제4 리드 전압 정보(Vt4)는 제4 페일 비트 수(FBIT_2) '3400' 및 기준 페일 비트 수 '3400'의 비율 값에 기준 전압 변화량(Va) '-240'을 곱한 레벨을 포함할 수 있다. 그리고, 제6 리드 전압 정보(Vt6)는 제6 페일 비트 수(FBIT_6) '2500' 및 기준 페일 비트 수 '3400'의 비율 값에 기준 전압 변화량(Va) '-240'을 곱한 레벨을 포함할 수 있다.
여기서, 제1 인덱스(RR1)에서 제4 리드 전압(R4)을 예로 들면, 제4 리드 전압(R4)의 디폴트 레벨 정보가 2V이고, 제4 리드 전압 정보(Vt4)가 -240mV를 나타낼 경우, 메모리 컨트롤러(200)의 제어 하에, 메모리 장치(100)는 1.76V의 레벨로 조정된 제4 리드 전압(R4)을 이용해 리드 동작을 수행할 수 있다. 제2 리드 전압(R2), 제6 리드 전압(R6)에 대해서도 이와 같은 방식으로 레벨을 조정하여 리드 동작을 수행할 수 있다.
도 8은 일 실시 예에 따른 메모리 컨트롤러의 동작 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 메모리 컨트롤러(200)의 동작 방법은 서로 다른 레벨을 갖는 복수의 리드 전압들을 기초로 노말 리드 동작을 수행하도록 메모리 장치(100)를 제어하는 단계(S810), 복수의 리드 전압들 각각에 대응되는 페일 비트 수들을 판단하는 단계(S820), 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타내는 기준 페일 비트 수 및 메모리 장치의 이레이즈 라이트 사이클 횟수에 기초하여, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서 기준 전압 변화량을 결정하는 단계(S830), 및 페일 비트 수들 각각과 기준 페일 비트 수의 비율 및 기준 전압 변화량을 이용해 복수의 리드 전압들 각각의 레벨을 조정하는 단계(S840)를 포함할 수 있다.
구체적으로, 메모리 컨트롤러(200)의 동작 방법은 서로 다른 레벨을 갖는 복수의 리드 전압들을 기초로 노말 리드 동작을 수행하도록 메모리 장치(100)를 제어할 수 있다(S810).
일 실시 예에서, 복수의 리드 전압들은, 서로 같은 타입의 데이터를 리드하기 위한 전압들일 수 있다.
그리고, 복수의 리드 전압들 각각에 대응되는 페일 비트 수들을 판단할 수 있다(S820).
그리고, 기준 페일 비트 수 및 메모리 장치(100)의 이레이즈 라이트 사이클 횟수에 기초하여, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서 기준 전압 변화량을 결정할 수 있다(S830). 여기서, 기준 페일 비트 수는 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타낼 수 있다.
일 실시 예에서, 기준 전압 변화량을 결정하는 단계는, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서, 복수의 리드 전압들에 의해 리드되는 데이터의 타입, 기준 페일 비트 수 및 이레이즈 라이트 사이클 횟수에 매칭되는 전압 변화량을 기준 전압 변화량으로 결정할 수 있다.
그리고, 페일 비트 수들 각각과 기준 페일 비트 수의 비율 및 기준 전압 변화량을 이용해 복수의 리드 전압들 각각의 레벨을 조정할 수 있다(S840).
일 실시 예에서, 메모리 컨트롤러(200)의 동작 방법은 페일 비트 수들을 기초로 노말 리드 동작의 실패 여부를 판단하는 단계, 및 노말 리드 동작이 실패한 경우, 레벨이 각각 조정된 복수의 리드 전압들에 의해 데이터들을 리드하도록 메모리 장치(100)를 제어하는 단계를 더 포함할 수 있다.
구체적인 일 실시 예에서, 페일 비트 수들을 기초로 노말 리드 동작의 실패 여부를 판단하는 단계는, 페일 비트 수들을 합산한 합산 비트 수가 미리 설정된 임계 값을 초과할 경우 노말 리드 동작이 실패한 것으로 판단하는 단계 및 합산 비트 수가 임계 값 이하인 경우 노말 리드 동작이 성공한 것으로 판단하는 단계를 포함할 수 있다.
도 9는 일 실시 예에 따른 메모리 시스템이 적용된 메모리 카드를 보여주는 블록도이다.
도 9를 참조하면, 메모리 카드(2000)는 메모리 장치(2100), 메모리 컨트롤러(2200) 및 커넥터(2300)를 포함할 수 있다.
메모리 장치(2100)는 데이터를 저장하는 프로그램 동작, 데이터를 리드하는 리드 동작 또는 데이터를 삭제하는 이레이즈 동작을 수행할 수 있다. 예시적으로, 메모리 장치(2100)는 EEPROM(Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM(Phase-change RAM), ReRAM(Resistive RAM), FRAM(Ferroelectric RAM), STT-MRAM(Spin Transfer Torque Magnetic RAM) 등과 같은 다양한 비휘발성 메모리 소자들로 구성될 수 있다. 메모리 장치(2100)에는 도 1 등을 참조하여 설명한 메모리 장치(100)에 대한 설명이 동일하게 적용될 수 있으며, 이하에서는 중복되는 내용을 생략하도록 한다.
메모리 컨트롤러(2200)는 메모리 장치(2100)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(2200)는 메모리 장치(2100)를 제어하기 위한 인스트럭션을 실행할 수 있다. 메모리 컨트롤러(2200)는 프로그램 동작, 리드 동작 또는 이레이즈 동작을 수행하도록 메모리 장치(2100)를 제어할 수 있다. 메모리 컨트롤러(2200)는 메모리 장치(2100) 또는 호스트(20) 사이에서 통신을 통해 데이터 또는 커맨드 등을 전달할 수 있다. 예시적으로, 메모리 컨트롤러(2200)는 램(RAM, Random Access Memory), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 메모리 인터페이스(memory interface), 에러 정정 회로와 같은 구성 요소들을 포함할 수 있다. 메모리 컨트롤러(2200)에는 도 1 등을 참조하여 설명한 메모리 컨트롤러(200)에 대한 설명이 동일하게 적용될 수 있으며, 이하에서는 중복되는 내용을 생략하도록 한다.
메모리 컨트롤러(2200)는 커넥터(2300)를 통해 외부 장치와 통신할 수 있다. 메모리 컨트롤러(2200)는 특정한 통신 규격에 따라 외부 장치(예를 들어, 호스트)와 통신할 수 있다. 예시적으로, 메모리 컨트롤러(2200)는 USB (Universal Serial Bus), MMC (multimedia card), eMMC (embeded MMC), PCI (peripheral component interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (small computer system interface), ESDI (enhanced small disk interface), IDE (Integrated Drive Electronics), 파이어와이어 (Firewire), UFS(Universal Flash Storage), WIFI, Bluetooth, NVMe 등과 같은 다양한 통신 규격들 중 적어도 하나를 통해 외부 장치와 통신하도록 구성된다. 예시적으로, 커넥터(2300)는 상술된 다양한 통신 규격들 중 적어도 하나에 의해 정의될 수 있다. 메모리 장치(2100) 및 메모리 컨트롤러(2200)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 메모리 장치(2100) 및 메모리 컨트롤러(2200)는 하나의 반도체 장치로 집적되어 PCMCIA(personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro, eMMC), SD 카드(SD, miniSD, microSD, SDHC), 범용 플래시 기억장치(UFS) 등과 같은 메모리 카드의 형태로 제조될 수 있다.
도 10은 일 실시 예에 따른 메모리 시스템이 적용된 SSD(Solid State Drive) 시스템을 보여주는 블록도이다.
도 10을 참조하면, SSD 시스템(3000)은 복수의 비휘발성 메모리 장치들(3100_1~3100_n), SSD 컨트롤러(3200), 신호 커넥터(3010), 보조 전원 장치(3030) 및 버퍼 메모리(3040)를 포함할 수 있다.
SSD 시스템(3000)은 신호 커넥터(3010)를 통해 호스트(3300)와 통신을 수행할 수 있다. 신호 커넥터(3010)는 다양한 통신 방식에 따른 인터페이스의 형태로 구현될 수 있다. 예를 들어, 신호 커넥터(3010)는 SATA(Serial ATA) 인터페이스, mSATA(mini-SATA) 인터페이스, PCIe(PCI Express) 인터페이스, M.2 인터페이스 등 다양한 통신 방식에 따른 인터페이스 중 하나일 수 있다.
복수의 제1 비휘발성 메모리 장치들(3100_1)은 제1 채널(CH1)을 통해 SSD 컨트롤러(3200)와 연결되고, 복수의 제2 비휘발성 메모리 장치들(3100_2)은 제2 채널(CH2)을 통해 SSD 컨트롤러(3200)와 연결되고, 복수의 제n 비휘발성 메모리 장치들(3100_n)은 제n 채널(CHn)을 통해 SSD 컨트롤러(3200)와 연결될 수 있다. 이에 따라, SSD 컨트롤러(3200)는 서로 독립적인 채널을 통해 연결된 비휘발성 메모리 장치들과 병렬적으로 통신을 수행할 수 있다.
한편, 복수의 비휘발성 메모리 장치들(3100_1~3100_n) 각각에는 도 1 등을 참조하여 설명한 메모리 장치(100)에 대한 설명이 동일하게 적용될 수 있으며, 이하에서는 중복되는 내용을 생략하도록 한다. SSD 컨트롤러(3200)에는 도 1 등을 참조하여 설명한 메모리 컨트롤러(200)에 대한 설명이 동일하게 적용될 수 있으며, 이하에서는 중복되는 내용을 생략하도록 한다.
SSD 시스템(3000)은 전원 커넥터(3020)를 통해 호스트(3300)로부터 외부 전원을 입력 받을 수 있다. 보조 전원 장치(3030)는 전원 커넥터(3020)를 통해 호스트(3300)와 연결될 수 있다. 보조 전원 장치(3030)는 호스트(3300)로부터 전원을 입력 받고, 충전할 수 있다. 보조 전원 장치(3030)는 호스트(3300)로부터의 전원 공급이 원활하지 않을 경우, SSD 시스템(3000)의 전원을 제공할 수 있다. 예시적으로, 보조 전원 장치(3030)는 SSD 시스템(3000) 내에 위치할 수도 있고, SSD 시스템(3000) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(3030)는 메인 보드에 위치하며, SSD 시스템(3000)에 보조 전원을 제공할 수도 있다.
버퍼 메모리(3040)는 SSD 시스템(3000)의 버퍼 메모리로 동작할 수 있다. 예를 들어, 버퍼 메모리(3040)는 호스트(3300)로부터 수신된 데이터 또는 복수의 비휘발성 메모리 장치들(3100_1~3100_n)로부터 수신된 데이터를 임시 저장하거나, 비휘발성 메모리 장치들(3100_1~3100_n)의 메타 데이터(예를 들어, 매핑 테이블)를 임시 저장할 수 있다. 버퍼 메모리(3040)는 DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, GRAM 등과 같은 휘발성 메모리 또는 FRAM, ReRAM, STT-MRAM, PRAM 등과 같은 비휘발성 메모리 장치들을 포함할 수 있다.
도 11은 일 실시 예에 따른 메모리 시스템이 적용된 사용자 시스템을 보여주는 블록도이다.
도 11을 참조하면, 사용자 시스템(4000)은 애플리케이션 프로세서(4100), 메모리 모듈(4200), 네트워크 모듈(4300), 스토리지 모듈(4400), 및 사용자 인터페이스(4500)를 포함할 수 있다.
애플리케이션 프로세서(4100)는 사용자 시스템(4000)에 포함된 구성 요소들, 운영체제(Operating System, OS), 또는 사용자 프로그램 등을 구동시킬 수 있다. 예시적으로, 애플리케이션 프로세서(4100)는 사용자 시스템(4000)에 포함된 구성 요소들을 제어하는 컨트롤러들, 인터페이스들, 그래픽 엔진 등을 포함할 수 있다. 애플리케이션 프로세서(4100)는 시스템-온-칩(System-on-Chip, SoC)으로 제공될 수 있다.
메모리 모듈(4200)은 사용자 시스템(4000)의 주 메모리, 동작 메모리, 버퍼 메모리, 또는 캐쉬 메모리로 동작할 수 있다. 메모리 모듈(4200)은 DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, LPDDR SDARM, LPDDR2 SDRAM, LPDDR3 SDRAM 등과 같은 휘발성 랜덤 액세스 메모리 또는 PRAM, ReRAM, MRAM, FRAM 등과 같은 비휘발성 랜덤 액세스 메모리를 포함할 수 있다. 예시적으로 애플리케이션 프로세서(4100) 및 메모리 모듈(4200)은 POP(Package on Package)를 기반으로 패키지화되어 하나의 반도체 패키지로 제공될 수 있다.
네트워크 모듈(4300)은 외부 장치들과 통신을 수행할 수 있다. 예시적으로, 네트워크 모듈(4300)은 CDMA(Code Division Multiple Access), GSM(Global System for Mobile communication), WCDMA(wideband CDMA), CDMA-2000, TDMA(Time Dvision Multiple Access), LTE(Long Term Evolution), Wimax, WLAN, UWB, 블루투스, Wi-Fi 등과 같은 무선 통신을 지원할 수 있다. 예시적으로, 네트워크 모듈(4300)은 애플리케이션 프로세서(4100)에 포함될 수 있다.
스토리지 모듈(4400)은 데이터를 저장할 수 있다. 예를 들어, 스토리지 모듈(4400)은 애플리케이션 프로세서(4100)로부터 수신한 데이터를 저장할 수 있다. 또는 스토리지 모듈(4400)은 스토리지 모듈(4400)에 저장된 데이터를 애플리케이션 프로세서(4100)로 전송할 수 있다. 예시적으로, 스토리지 모듈(4400)은 PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), NAND flash, NOR flash, 3차원 구조의 NAND 플래시 등과 같은 비휘발성 반도체 메모리 소자로 구현될 수 있다. 예시적으로, 스토리지 모듈(4400)은 사용자 시스템(4000)의 메모리 카드, 외장형 드라이브 등과 같은 탈착식 저장 매체(removable drive)로 제공될 수 있다.
일 실시 예에서, 스토리지 모듈(4400)에는 도 1 등을 참조하여 설명된 메모리 시스템(10)에 대한 설명이 동일하게 적용될 수 있다. 예를 들어, 스토리지 모듈(4400)은 복수의 비휘발성 메모리 장치들을 포함할 수 있다. 여기서, 복수의 비휘발성 메모리 장치들 각각에는 도 1 등을 참조하여 설명된 메모리 장치(100)에 대한 설명이 동일하게 적용될 수 있다.
사용자 인터페이스(4500)는 애플리케이션 프로세서(4100)에 데이터 또는 명령어를 입력하거나 또는 외부 장치로 데이터를 출력하는 인터페이스들을 포함할 수 있다. 예시적으로, 사용자 인터페이스(4500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 압전 소자 등과 같은 사용자 입력 인터페이스들을 포함할 수 있다. 사용자 인터페이스(4500)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모니터 등과 같은 사용자 출력 인터페이스들을 포함할 수 있다.
10: 메모리 시스템
100: 메모리 장치
200: 메모리 컨트롤러
20: 호스트

Claims (20)

  1. 서로 다른 레벨을 갖는 복수의 리드 전압들에 의해 메모리 장치의 선택 페이지로부터 데이터들을 리드하도록 상기 메모리 장치를 제어하는 리드 동작 제어부;
    상기 데이터들 각각의 페일 비트 수들을 판단하는 에러 정정 회로; 및
    상기 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타내는 기준 페일 비트 수 및 상기 선택 페이지의 이레이즈 라이트 사이클 횟수에 기초하여, 제1 리드 전압 테이블에 포함된 복수의 제1 전압 변화량들 중에서 기준 전압 변화량을 선택하고, 상기 기준 전압 변화량 및 상기 기준 페일 비트 수 및 상기 페일 비트 수들 각각의 비율 값에 기초하여, 상기 복수의 리드 전압들 각각의 레벨을 조정하는 리드 전압 제어부;를 포함하는 메모리 컨트롤러.
  2. 제1항에 있어서,
    상기 이레이즈 라이트 사이클 횟수에 대응되는 제1 필드 값들, 상기 제1 필드 값들에 매핑되고 상기 기준 페일 비트 수에 대응되는 제2 필드 값들, 및 상기 제2 필드 값들에 매핑된 상기 복수의 제1 전압 변화량들을 포함하는 상기 제1 리드 전압 테이블을 저장하는 전압 레지스터;를 더 포함하는 메모리 컨트롤러.
  3. 제2항에 있어서,
    상기 리드 전압 제어부는,
    상기 제1 필드 값들 중에서 상기 이레이즈 라이트 사이클 횟수와의 차이가 가장 작은 제1 필드 값을 선택하고,
    상기 제2 필드 값들 중에서 상기 선택된 제1 필드 값과 매핑되고, 상기 기준 페일 비트 수와의 차이가 가장 작은 제2 필드 값을 선택하고,
    상기 복수의 제1 전압 변화량들 중에서 상기 선택된 제2 필드 값과 매핑된 제1 전압 변화량을 상기 기준 전압 변화량으로 선택하는 메모리 컨트롤러.
  4. 제3항에 있어서,
    상기 전압 레지스터는,
    데이터의 타입에 대응되는 제3 필드 값들, 상기 기준 전압 변화량에 대응되는 제4 필드 값들, 및 상기 제3 필드 값들 및 상기 제4 필드 값들에 매핑된 복수의 제2 전압 변화량들을 포함하는 제2 리드 전압 테이블을 저장하는 메모리 컨트롤러.
  5. 제4항에 있어서,
    상기 리드 전압 제어부는,
    상기 제3 필드 값들 중에서 상기 데이터들의 타입에 일치하는 제3 필드 값을 선택하고,
    상기 제4 필드 값들 중에서 상기 기준 전압 변화량에 일치하는 제4 필드 값을 선택하고,
    상기 복수의 제2 전압 변화량들 중에서 상기 선택된 제3 필드 값 및 상기 선택된 제4 필드 값에 매핑된 제2 전압 변화량을 선택하고,
    상기 제2 전압 변화량을 상기 비율 값들 각각에 곱한 값들로 상기 복수의 리드 전압들 각각의 레벨을 조정하는 메모리 컨트롤러.
  6. 제3항에 있어서,
    상기 전압 레지스터는,
    상기 이레이즈 라이트 사이클 횟수에 대응되는 제5 필드 값들, 상기 기준 전압 변화량에 대응되는 제6 필드 값들, 및 상기 제5 필드 값들 및 상기 제6 필드 값들에 매핑된 복수의 제3 전압 변화량들을 포함하는 제3 리드 전압 테이블을 저장하는 메모리 컨트롤러.
  7. 제6항에 있어서,
    상기 리드 전압 제어부는,
    상기 제5 필드 값들 중에서 상기 이레이즈 라이트 사이클 횟수와의 차이가 가장 작은 제5 필드 값을 선택하고,
    상기 제6 필드 값들 중에서 상기 기준 전압 변화량에 일치하는 제6 필드 값을 선택하고,
    상기 제3 전압 변화량들 중에서 상기 선택된 제5 필드 값 및 상기 선택된 제6 필드 값에 매핑된 제3 전압 변화량을 선택하고,
    상기 제3 전압 변화량을 상기 비율 값들 각각에 곱한 값들로 상기 복수의 리드 전압들 각각의 레벨을 조정하는 메모리 컨트롤러.
  8. 제6항에 있어서,
    상기 제5 필드 값들 중, 제1 이레이즈 라이트 사이클 횟수를 나타내는 제5 필드 값에 매핑된 제3 전압 변화량들의 차이는, 상기 제1 이레이즈 라이트 사이클 횟수 보다 큰 제2 이레이즈 라이트 사이클 횟수를 나타내는 제5 필드 값에 매핑된 제3 전압 변화량들 사이의 차이 보다 큰 메모리 컨트롤러.
  9. 제1항에 있어서,
    상기 리드 동작 제어부는,
    상기 레벨이 각각 조정된 복수의 리드 전압들에 의해 상기 선택 페이지로부터 데이터들을 리드하도록 상기 메모리 장치를 제어하는 메모리 컨트롤러.
  10. 제1항에 있어서,
    상기 복수의 리드 전압들은, 서로 같은 타입의 데이터를 리드하기 위한 전압들인 메모리 컨트롤러.
  11. 복수의 페이지들을 포함하는 메모리 장치;
    상기 복수의 페이지들 중에서 선택 페이지에 서로 다른 레벨을 갖는 복수의 리드 전압들을 인가하도록 상기 메모리 장치를 제어하고,
    상기 복수의 리드 전압들 각각에 의해 획득된 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타내는 기준 페일 비트 수 및 상기 선택 페이지의 이레이즈 라이트 사이클 횟수에 기초하여, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서 기준 전압 변화량을 결정하고,
    상기 페일 비트 수들 각각과 상기 기준 페일 비트 수의 비율 및 상기 기준 전압 변화량을 이용해 상기 복수의 리드 전압들 각각의 레벨을 조정하는 메모리 컨트롤러;를 포함하는 메모리 시스템.
  12. 제11항에 있어서,
    상기 메모리 컨트롤러는,
    상기 이레이즈 라이트 사이클 횟수에 대응되는 제1 필드 값들, 상기 제1 필드 값들에 매핑되고 상기 기준 페일 비트 수에 대응되는 제2 필드 값들, 및 상기 제2 필드 값들에 매핑된 상기 복수의 전압 변화량들을 포함하는 상기 리드 전압 테이블을 저장하는 전압 레지스터;를 포함하는 메모리 시스템.
  13. 제11항에 있어서,
    상기 메모리 컨트롤러는,
    상기 리드 전압 테이블에 포함된 상기 복수의 전압 변화량들 중에서 상기 복수의 리드 전압들에 의해 리드되는 데이터들의 타입, 상기 기준 페일 비트 수 및 상기 이레이즈 라이트 사이클 횟수에 매칭되는 전압 변화량을 상기 기준 전압 변화량으로 결정하는 메모리 시스템.
  14. 제11항에 있어서,
    상기 메모리 컨트롤러는,
    상기 선택 페이지에 상기 레벨이 각각 조정된 복수의 리드 전압들을 인가하도록 상기 메모리 장치를 제어하는 리드 동작 제어부;를 포함하는 메모리 시스템.
  15. 제11항에 있어서,
    상기 복수의 리드 전압들은, 서로 같은 타입의 데이터를 리드하기 위한 전압들인 메모리 시스템.
  16. 서로 다른 레벨을 갖는 복수의 리드 전압들을 기초로 노말 리드 동작을 수행하도록 메모리 장치를 제어하는 단계;
    상기 복수의 리드 전압들 각각에 대응되는 페일 비트 수들을 판단하는 단계;
    상기 페일 비트 수들 중에서 가장 큰 페일 비트 수를 나타내는 기준 페일 비트 수 및 상기 메모리 장치의 이레이즈 라이트 사이클 횟수에 기초하여, 리드 전압 테이블에 포함된 복수의 전압 변화량들 중에서 기준 전압 변화량을 결정하는 단계; 및
    상기 페일 비트 수들 각각과 상기 기준 페일 비트 수의 비율 및 상기 기준 전압 변화량을 이용해 상기 복수의 리드 전압들 각각의 레벨을 조정하는 단계;를 포함하는 메모리 컨트롤러의 동작 방법.
  17. 제16항에 있어서,
    상기 기준 전압 변화량을 결정하는 단계는,
    상기 리드 전압 테이블에 포함된 상기 복수의 전압 변화량들 중에서, 상기 복수의 리드 전압들에 의해 리드되는 데이터의 타입, 상기 기준 페일 비트 수 및 상기 이레이즈 라이트 사이클 횟수에 매칭되는 상기 전압 변화량을 상기 기준 전압 변화량으로 결정하는 메모리 컨트롤러의 동작 방법.
  18. 제16항에 있어서,
    상기 페일 비트 수들을 기초로 상기 노말 리드 동작의 실패 여부를 판단하는 단계; 및
    상기 노말 리드 동작이 실패한 경우, 상기 레벨이 각각 조정된 복수의 리드 전압들에 의해 데이터들을 리드하도록 상기 메모리 장치를 제어하는 단계;를 더 포함하는 메모리 컨트롤러의 동작 방법.
  19. 제16항에 있어서,
    상기 페일 비트 수들을 기초로 상기 노말 리드 동작의 실패 여부를 판단하는 단계는,
    상기 페일 비트 수들을 합산한 합산 비트 수가 미리 설정된 임계 값을 초과할 경우, 상기 노말 리드 동작이 실패한 것으로 판단하는 단계; 및
    상기 합산 비트 수가 상기 임계 값 이하인 경우, 상기 노말 리드 동작이 성공한 것으로 판단하는 단계;를 포함하는 메모리 컨트롤러의 동작 방법.
  20. 제16항에 있어서,
    상기 복수의 리드 전압들은, 서로 같은 타입의 데이터를 리드하기 위한 전압들인 메모리 컨트롤러의 동작 방법.
KR1020210140248A 2021-10-20 2021-10-20 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법 KR20230056333A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210140248A KR20230056333A (ko) 2021-10-20 2021-10-20 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법
US17/690,706 US11842067B2 (en) 2021-10-20 2022-03-09 Memory controller, memory system including the same, and method of operating the memory system
CN202210459056.8A CN115995258A (zh) 2021-10-20 2022-04-27 存储器控制器、存储器系统以及操作存储器系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210140248A KR20230056333A (ko) 2021-10-20 2021-10-20 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230056333A true KR20230056333A (ko) 2023-04-27

Family

ID=85981026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210140248A KR20230056333A (ko) 2021-10-20 2021-10-20 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그의 동작 방법

Country Status (3)

Country Link
US (1) US11842067B2 (ko)
KR (1) KR20230056333A (ko)
CN (1) CN115995258A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240061606A1 (en) * 2022-08-16 2024-02-22 Yangtze Memory Technologies Co., Ltd. Read retry method for enhancing read performance and stability of 3d nand memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100891005B1 (ko) * 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
US10304559B2 (en) * 2016-12-30 2019-05-28 Western Digital Technologies, Inc. Memory write verification using temperature compensation
KR20200076519A (ko) 2018-12-19 2020-06-29 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR20200095903A (ko) 2019-02-01 2020-08-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11507843B2 (en) * 2020-03-30 2022-11-22 Western Digital Technologies, Inc. Separate storage and control of static and dynamic neural network data within a non-volatile memory array

Also Published As

Publication number Publication date
CN115995258A (zh) 2023-04-21
US20230120696A1 (en) 2023-04-20
US11842067B2 (en) 2023-12-12

Similar Documents

Publication Publication Date Title
KR20180064088A (ko) 메모리 제어 장치 및 방법
US20180102172A1 (en) Memory device and operating method of the memory device
KR20180041898A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190092937A (ko) 메모리 컨트롤러 및 그 동작 방법
KR20180110412A (ko) 메모리 시스템 및 이의 동작 방법
US11037639B2 (en) Memory controller and method of operating the same for processing the failed read operation
KR20180008951A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US10001937B2 (en) Memory system and operating method thereof
KR20180000381A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN112035055A (zh) 存储设备及其操作方法
CN111798910A (zh) 存储装置及其操作方法
KR20220009294A (ko) 메모리 장치 및 그 동작 방법
US11848057B2 (en) Memory system and method of operating the same
KR20210099895A (ko) 메모리 시스템 및 그것의 동작방법
CN112447238A (zh) 存储器控制器及其操作方法
US11662911B2 (en) Memory system and operating method thereof
US11393538B2 (en) Data storage device and method of operating the same
CN114078533A (zh) 存储装置、存储器装置和操作该存储器装置的方法
US11842067B2 (en) Memory controller, memory system including the same, and method of operating the memory system
KR20180064588A (ko) 메모리 제어 장치 및 방법
KR20210079104A (ko) 저장 장치 및 그 동작 방법
KR20200116808A (ko) 저장 장치 및 그 동작 방법
CN115862715A (zh) 存储器设备、包括存储器设备的存储器系统及其操作方法
CN114255809A (zh) 存储器控制器及其操作方法
CN114297090A (zh) 存储装置及其操作方法