KR102610821B1 - 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 - Google Patents

내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 Download PDF

Info

Publication number
KR102610821B1
KR102610821B1 KR1020180141130A KR20180141130A KR102610821B1 KR 102610821 B1 KR102610821 B1 KR 102610821B1 KR 1020180141130 A KR1020180141130 A KR 1020180141130A KR 20180141130 A KR20180141130 A KR 20180141130A KR 102610821 B1 KR102610821 B1 KR 102610821B1
Authority
KR
South Korea
Prior art keywords
page
durability
memory
counting
deteriorated
Prior art date
Application number
KR1020180141130A
Other languages
English (en)
Other versions
KR20200056872A (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 삼성전자주식회사
Priority to KR1020180141130A priority Critical patent/KR102610821B1/ko
Priority to US16/415,906 priority patent/US10977120B2/en
Priority to CN201910634753.0A priority patent/CN111192618B/zh
Publication of KR20200056872A publication Critical patent/KR20200056872A/ko
Application granted granted Critical
Publication of KR102610821B1 publication Critical patent/KR102610821B1/ko

Links

Images

Classifications

    • 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
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • 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
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • 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/0653Monitoring storage devices or systems
    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/72Array wherein the access device being a diode
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10NELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10N70/00Solid-state devices having no potential barriers, and specially adapted for rectifying, amplifying, oscillating or switching
    • H10N70/20Multistable switching devices, e.g. memristors
    • H10N70/231Multistable switching devices, e.g. memristors based on solid-state phase change, e.g. between amorphous and crystalline phases, Ovshinsky effect
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10NELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10N70/00Solid-state devices having no potential barriers, and specially adapted for rectifying, amplifying, oscillating or switching
    • H10N70/801Constructional details of multistable switching devices
    • H10N70/881Switching materials
    • H10N70/882Compounds of sulfur, selenium or tellurium, e.g. chalcogenides
    • H10N70/8828Tellurides, e.g. GeSbTe

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)
  • Quality & Reliability (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러는 메모리 장치에 대한 메모리 동작을 제어하고, 상기 메모리 장치로부터 독출된 데이터에 대해 에러 검출을 수행하는 ECC(Error Correction Code) 회로 및 상기 메모리 장치에 대한 기록 동작 횟수를 나타내는 제1 카운팅 값과, 상기 메모리 장치로부터 독출된 데이터에 대해 에러가 발생된 메모리 셀의 개수 및 특정 로직 상태의 메모리 셀의 개수 중 적어도 하나를 나타내는 제2 카운팅 값을 확인하며, 상기 확인 결과에 기반하여 상기 메모리 장치의 내구성이 저하되었는지를 판단하는 제1 판단 동작을 수행하는 내구성 판단 회로를 구비하는 것을 특징으로 한다.

Description

내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법{Memory Controller determining endurance degradation, Memory System having the same and Operating Method of memory Controller}
본 개시의 기술적 사상은 메모리 컨트롤러에 관한 것으로서, 상세하게는 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법에 관한 것이다.
불휘발성 메모리 장치로서 플래시 메모리와 함께, PRAM(Phase change RAM), NFGM(Nano Floating Gate Memory), PoRAM(Polymer RAM), MRAM(Magnetic RAM), FeRAM(Ferroelectric RAM), RRAM(Resistive RAM) 등의 저항성 메모리들이 알려져 있다. 저항성 메모리는 DRAM(Dynamic Random Access Memory)의 고속성과 함께 플래쉬 메모리의 비휘발성 특성을 갖는다.
저항성 메모리는 기록 및/또는 소거 사이클이 증가함에 따라 그 수명이 다할 수 있으며, 이 때 저항성 메모리에 데이터가 기록되지 않거나 저항성 메모리에 저장된 데이터가 손실됨에 따른 신뢰성 저하의 문제가 발생될 수 있다. 저항성 메모리는 적절한 신뢰성을 유지하다가 기록 및/또는 소거 사이클의 증가에 따라 내구성이 저하될 때 급작스럽게 데이터가 손실될 수 있으므로, 내구성 저하 여부를 정확히 판단할 필요가 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 내구성 저하에 기인하는 데이터의 신뢰성 저하를 감소할 수 있는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러는 메모리 장치에 대한 메모리 동작을 제어하고, 상기 메모리 장치로부터 독출된 데이터에 대해 에러 검출을 수행하는 ECC(Error Correction Code) 회로 및 상기 메모리 장치에 대한 기록 동작 횟수를 나타내는 제1 카운팅 값과, 상기 메모리 장치로부터 독출된 데이터에 대해 에러가 발생된 메모리 셀의 개수 및 특정 로직 상태의 메모리 셀의 개수 중 적어도 하나를 나타내는 제2 카운팅 값을 확인하며, 상기 확인 결과에 기반하여 상기 메모리 장치의 내구성이 저하되었는지를 판단하는 제1 판단 동작을 수행하는 내구성 판단 회로를 구비하는 것을 특징으로 한다.
본 발명의 기술적 사상의 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법에 따르면, 다양한 판단 기준들에 기반하여 메모리 장치의 내구성 저하를 정확히 판단하고, 이를 통해 선제적으로 데이터 신뢰성을 확보하기 위한 처리를 수행할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법에 따르면, 내구성 저하에 무관한 에러 발생에 기인하여 웨어 레벨링이 불필요하게 수행되는 상황을 방지함으로써, 메모리 시스템의 자원을 효율적으로 활용할 수 있는 효과가 있다.
도 1은 본 발명의 예시적인 실시예에 따른 메모리 컨트롤러를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 내구성 판단 회로의 일 구현 예를 나타내는 블록도이다.
도 3a,b는 도 1의 메모리 셀 어레이의 일 구현 예를 나타내는 회로도이다.
도 4는 내구성이 저하된 경우의 메모리 셀들의 저항 산포의 일 예를 나타내는 도면이다.
도 5는 페이지 단위의 기록 카운팅 및 워드라인 단위의 기록 카운팅을 적용하는 예를 나타내는 도면이다.
도 6 내지 도 8은 본 발명의 예시적인 실시예들에 따른 내구성 판단 방법들을 나타내는 도면이다.
도 9a,b,c는 내구성 판단 동작을 수행하는 다양한 타이밍들을 나타내는 플로우차트이다.
도 10 내지 도 15는 본 발명의 예시적인 실시예들에 따라 1차 및 2차 판단 동작들을 통해 내구성을 판단하는 방법들을 나타내는 도면이다.
도 16a,b는 웨어 레벨링을 수행하는 메모리 시스템의 일 구현 예를 나타내는 블록도이다.
도 17은 본 발명의 다른 예시적인 실시예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
도 18은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 19는 본 발명의 예시적인 실시예에 따른 메모리 컨트롤러의 구현 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명의 예시적인 실시예에 따른 메모리 컨트롤러를 포함하는 메모리 시스템을 나타내는 블록도이다. 본 발명의 실시예에서, 메모리 장치(200)는 저항성 메모리 셀들을 포함함에 따라 저항성 메모리 장치로 지칭될 수 있다. 또는, 본 발명의 실시예에서 상기 메모리 장치(200)는 다양한 종류의 메모리 셀들을 포함할 수 있으며, 상기 메모리 셀들이 복수의 제1 신호 라인들 및 복수의 제2 신호 라인들이 교차하는 영역에 배치됨에 따라, 상기 메모리 장치(200)는 크로스 포인트(cross-point) 메모리 장치로 지칭될 수도 있다. 이하의 실시예들에서는 메모리 장치(200)가 저항성 메모리 장치인 것으로 가정될 것이나, 본 발명의 실시예들은 기록 및/또는 소거 사이클이 증가할수록 그 내구성(endurance)이 저하될 수 있는 다양한 종류의 메모리 장치에 적용이 가능하다. 일 예로서, 본 발명의 실시예들은 휘발성 메모리 장치나 플래시 메모리 장치 등 다양한 종류의 메모리 장치에 적용될 수도 있을 것이다.
한편, 도 1에서의 메모리 장치(200)는 다양한 형태로 구현될 수 있다. 일 예로서, 메모리 장치(200)는 하나의 메모리 칩으로 구현되는 장치일 수 있다. 또는, 메모리 장치(200)는 다수의 메모리 칩들을 포함하는 장치로 정의될 수도 있으며, 일 예로서 메모리 장치(200)는 보드 상에 다수의 메모리 칩들이 장착된 메모리 모듈일 수 있다. 그러나, 본 발명의 실시예들은 이에 국한될 필요가 없으며, 메모리 장치(200)는 하나 이상의 메모리 다이들을 포함하는 반도체 패키지 등 다양한 형태로 구현될 수 있을 것이다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 콘트롤러(100) 및 메모리 장치(200)를 포함할 수 있다. 메모리 장치(200)는 메모리 셀 어레이(210), 기록/독출 회로(220) 및 제어 로직(230)을 포함할 수 있다. 또한, 메모리 콘트롤러(100)는 프로세서(110), ECC 회로(120) 및 내구성 판단 회로(130)를 포함할 수 있으며, 프로세서(110)의 제어에 기반하여 메모리 콘트롤러(100)는 하드웨어, 소프트웨어 및 이들의 조합에 기반하는 방식으로 메모리 동작을 제어할 수 있다.
메모리 콘트롤러(100)는 호스트(Host)로부터의 기록/독출 요청에 응답하여 메모리 장치(200)에 저장된 데이터를 독출하거나, 또는 메모리 장치(200)에 데이터를 기록하도록 메모리 장치(200)를 제어할 수 있다. 구체적으로, 메모리 콘트롤러(100)는 메모리 장치(200)에 어드레스(ADD), 커맨드(CMD) 및 제어 신호(CTRL)를 제공함으로써, 메모리 장치(200)에 대한 프로그램(program)(또는 기록), 독출(read) 및 소거(erase) 동작을 제어할 수 있다. 또한, 기록될 데이터(DATA)와 독출된 데이터(DATA)가 메모리 콘트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다.
프로세서(110)는 메모리 콘트롤러(100)의 전반적인 동작을 제어할 수 있다. 메모리 콘트롤러(100)는 다양한 프로토콜들을 통해 호스트와 통신할 수 있으며, 일 예로서 USB, MMC, PCI-E, ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI, ESDI, 그리고 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(HOST)와 통신하도록 구성될 수 있다.
메모리 셀 어레이(210)는 복수의 제1 신호 라인들과 복수의 제2 신호 라인들이 교차하는 영역들에 각각 배치되는 복수의 메모리 셀들(미도시)을 포함할 수 있다. 일 실시예에서, 복수의 제1 신호 라인들은 복수의 비트 라인들일 수 있고, 복수의 제2 신호 라인들은 복수의 워드 라인들일 수 있다. 또한, 복수의 메모리 셀들 각각은 하나의 비트를 저장하는 싱글 레벨 셀(SLC, single level cell)일 수 있으며, 또는 적어도 2 비트 이상의 데이터를 저장할 수 있는 멀티 레벨 셀(MLC, multi level cell)일 수 있다. 또한, 각각의 메모리 셀에 저장되는 비트의 개수에 따라 상기 메모리 셀들은 다수의 저항 산포들을 가질 수 있다. 일 예로, 하나의 메모리 셀에 1 개의 비트의 데이터가 기록되는 경우 메모리 셀들은 두 개의 저항 산포를 가질 수 있으며, 하나의 메모리 셀에 2 비트의 데이터가 저장되는 경우에는 메모리 셀들은 네 개의 저항 산포를 가질 수 있다.
한편, 메모리 셀 어레이(210)는 가변 저항 소자(미도시)를 포함하는 저항성 메모리 셀들을 포함할 수 있다. 예를 들어, 가변 저항 소자가 상변화(phase change) 물질(GST, Ge-Sb-Te)로서 온도에 따라 저항이 변화하는 경우에는 저항성 메모리 장치는 PRAM이 될 수 있다. 다른 예를 들어, 가변 저항 소자가 상부 전극, 하부 전극 및 그 사이에 있는 전이금속 산화물(complex metal oxide)로 형성된 경우에는 저항성 메모리 장치는 RRAM이 될 수 있다. 또 다른 예를 들어, 가변 저항 소자가 자성체의 상부 전극, 자성체의 하부 전극 및 그 사이에 있는 유전체로 형성된 경우에는 저항성 메모리 장치는 MRAM이 될 수 있다.
메모리 컨트롤러(100)는 메모리 장치(200)로부터 독출된 데이터(DATA)에 대한 에러 검출 및 정정을 수행하는 ECC(Error Correction Code) 회로(120)를 포함할 수 있으며, 에러 정정된 데이터(DATA)를 호스트로 제공할 수 있다. 예시적인 실시예에 따라, ECC 회로(120)는 호스트로부터의 데이터를 이용하여 ECC 인코딩 처리를 수행할 수 있으며, 또한 메모리 장치(200)로부터 독출된 데이터를 이용하여 ECC 디코딩 처리를 수행할 수 있다. 또한, ECC 회로(120)로부터의 에러 검출 결과를 이용하여 메모리 셀 어레이(210)의 소정의 영역(예컨대, 페이지, 워드라인, 셀 블록 등)으로부터 독출된 데이터에서 발생된 에러의 개수가 검출될 수 있다.
본 발명의 예시적인 실시예에 따라, 내구성 판단 회로(130)는 메모리 장치(200)의 수명이 얼마남지 않음에 따라(또는, 기록 및/또는 소거 사이클이 증가함에 따라) 내구성이 저하되었는지를 예측 또는 판단할 수 있다. 예컨대, 내구성 판단 회로(130)는 메모리 셀 어레이(210)의 다양한 단위들을 기준으로 내구성을 판단할 수 있으며, 일 예로서 메모리 셀 어레이(210)의 페이지 단위, 워드라인 단위, 셀 블록 단위 등으로 내구성을 판단할 수 있다. 본 발명의 예시적인 실시예에 따라, 내구성 판단 회로(130)는 다양한 방법들을 통해 메모리 장치(200)의 내구성을 판단할 수 있으며, 일 예로서 다양한 종류의 카운팅 결과 및 다양한 종류의 판단 기준에 따라 상기 메모리 장치(200)의 내구성 저하 여부를 판단할 수 있다. 이하에서는, 내구성 판단 회로(130)가 페이지 단위로 내구성을 판단하는 예가 설명될 것이나, 본 발명의 실시예는 다른 다양한 단위로 내구성이 판단되어도 무방할 것이다.
일 구현 예로서, 내구성 판단 회로(130)는 내구성 판단에 이용되는 각종 구성요소로서, 기록 카운터(131), 셀 카운터(132) 및 판단 로직(133)을 포함할 수 있다. 기록 카운터(131)는 메모리 장치(200)에 대한 각종 메모리 동작의 횟수를 카운팅할 수 있으며, 또한 메모리 셀 어레이(210)의 다양한 영역들 단위로 카운팅 동작을 수행할 수 있다. 도 1에 도시된 기록 카운터(131)는 상기와 같이 다양한 메모리 동작의 횟수를 카운팅하고, 또한 다양한 영역들에 대한 카운팅 동작을 수행하기 위해 다수의 카운터들을 포함할 수 있다.
일 예로서, 메모리 셀 어레이(210)에 포함되는 제1 셀 블록에 대해, 상기 제1 셀 블록은 다수의 페이지들을 포함하고, 내구성 판단 회로(130)는 페이지 단위로 내구성 판단을 위한 카운팅 동작을 수행할 수 있다. 예컨대, 제1 셀 블록에 포함되는 제1 페이지의 내구성을 판단함에 있어서, 기록 카운터(131)는 제1 셀 블록의 기록 횟수를 카운팅하여 카운팅 값을 출력할 수 있으며, 또한 제1 페이지의 기록 횟수를 카운팅하여 카운팅 값을 출력할 수 있다.
한편, 셀 카운터(132)는 메모리 셀 어레이(210)로부터 독출된 데이터에 대한 셀 카운팅 동작을 수행할 수 있다. 일 예로서, 셀 카운터(132)는 제1 셀 블록의 제1 페이지로부터 독출된 데이터에서 발생된 에러의 개수를 카운팅하는 카운터를 포함할 수 있다. 또한, 셀 카운터(132)는 제1 셀 블록의 제1 페이지로부터 독출된 데이터에서 소정의 로직 상태의 데이터를 카운팅함에 의해 상기 제1 페이지의 오프 셀(또는, 온 셀)의 개수를 카운팅하는 카운터를 포함할 수 있다. 셀 카운터(132)는 에러 카운팅 결과 및/또는 오프 셀 카운팅 결과를 출력할 수 있다.
판단 로직(133)은 기록 카운터(131) 및 셀 카운터(132)의 카운팅 결과를 기반으로 하여 상기 제1 페이지의 내구성 저하 여부를 판단할 수 있다. 일 예로서, 메모리 셀 어레이(210)의 내구성은 기록 및 소거 사이클이 증가함에 따라 저하될 수 있으며, 판단 로직(133)은 제1 페이지를 포함하는 제1 셀 블록의 기록 횟수가 소정의 제1 기준값을 초과함과 함께, 또한 제1 페이지의 기록 횟수가 소정의 제2 기준값을 초과하는 경우에 제1 페이지의 내구성이 저하된 것으로 판단할 수 있다. 또한, 제1 페이지의 내구성이 저하된 경우에는 그 메모리 셀들의 저항 산포 특성이 저하될 수 있으며, 일 예로서 메모리 셀들의 저항 산포들이 일 방향으로 쉬프트되거나 또는 각각의 저항 산포의 폭이 넓어질 수 있다. 판단 로직(133)은 에러 카운팅 결과 및/또는 오프 셀 카운팅 결과에 따라 에러 셀 개수가 소정의 제3 기준값을 초과하거나, 오프 셀 개수(또는, 온 셀 개수)가 소정의 제4 기준값을 초과하는 경우에 제1 페이지의 내구성이 저하된 것으로 판단할 수 있다.
판단 로직(133)은 다양한 판단 기준에 기반하여 제1 페이지의 내구성 저하 여부를 판단할 수 있다. 예컨대, 전술한 4 가지 카운팅 결과 중 적어도 두 개의 카운팅 결과를 포함하는 다양한 조합이 가능하며, 설정된 조합에 따라 내구성 저하 여부가 판단될 수 있다. 예컨대, 제1 셀 블록의 기록 횟수와 함께, 제1 페이지로부터 독출된 데이터의 에러 셀 개수 또는 오프 셀 개수를 판단하여 상기 제1 페이지의 내구성 저하 여부를 판단할 수 있다. 또는, 제1 페이지의 기록 횟수와 함께, 제1 페이지로부터 독출된 데이터의 에러 셀 개수 또는 오프 셀 개수를 판단하여 상기 제1 페이지의 내구성 저하 여부를 판단할 수 있다.
제1 페이지의 내구성이 저하된 것으로 판단된 경우, 메모리 컨트롤러(100)는 메모리 셀 어레이(210)에 대한 웨어 레벨링 처리를 수행함으로써 데이터의 신뢰성을 확보할 수 있다. 일 예로서, 웨어 레벨링 처리는 데이터 스왑, 데이터 카피 등 다양한 방식들에 의해 수행될 수 있으며, 메모리 컨트롤러(100)의 제어에 기반하여 내구성이 저하된 제1 페이지의 데이터가 다른 페이지에 카피될 수 있다. 예컨대, 웨어 레벨링 처리는 셀 블록 단위 또는 페이지 단위로 수행될 수 있으며, 셀 블록 단위의 웨어 레벨링 처리에 따라 제1 페이지를 포함하는 제1 셀 블록의 데이터가 다른 셀 블록에 카피될 수 있으며, 또는 페이지 단위의 웨어 레벨링 처리에 따라 제1 페이지의 데이터가 제1 셀 블록의 다른 페이지 또는 다른 셀 블록의 페이지에 카피될 수 있다.
한편, 도 1에 도시된 실시예에서는 페이지 단위로 기록 횟수가 카운팅되는 것으로 설명되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, 셀 블록은 다수의 워드라인들을 포함하고, 각각의 워드라인은 다수의 페이지들을 구성하는 메모리 셀들을 포함할 수 있으며, 상기 제1 페이지의 내구성을 판단함에 있어서 상기 제1 페이지에 연결된 워드라인(예컨대, 제1 워드라인)의 기록 횟수가 카운팅될 수도 있을 것이다.
또한, 도 1에 도시된 실시예에서는 내구성을 판단함에 있어서 셀 블록 및 페이지(또는, 워드라인)의 기록 횟수를 카운팅하는 것으로 설명되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, 메모리 셀 어레이(210)가 저항성 메모리를 포함하고, 저항성 메모리는 페이지 단위로 기록 및 소거 동작이 수행되며, 셀 블록 및 페이지(또는, 워드라인)의 소거 횟수를 카운팅함으로써 전술한 내구성 판단 동작이 수행될 수도 있을 것이다.
또한, 도 1에 도시된 실시예에서는 내구성 판단 회로(130)가 각종 카운터들을 포함하는 것으로 도시되었으나, 메모리 컨트롤러(100)는 다양한 형태로 구현이 가능하다. 일 예로서, 셀 카운터(132)에서 에러 셀을 카운팅하는 카운터는 ECC 회로(120) 내에 구비되고, ECC 회로(120)가 에러 셀을 카운팅한 결과를 내구성 판단 회로(130)로 제공할 수도 있을 것이다. 또는, 내구성 판단 회로(130)에 구비되는 각종 카운터들 중 적어도 일부는 메모리 장치(200) 내에 구비되고, 메모리 장치(200)가 카운팅 결과를 메모리 컨트롤러(100)로 제공하도록 메모리 시스템(10)이 구현될 수도 있을 것이다.
한편, 전술한 실시예에서는 페이지의 내구성이 저하되었는지 여부가 판단되는 것으로 설명되었으나, 본 발명의 용어는 다양하게 정의될 수 있을 것이다. 일 예로서, 본 발명의 실시예에 따른 판단 동작에 따라, 페이지에 내구성 페일(endurance failure)이 발생되었음을 나타내는 결과가 출력되는 것으로 설명될 수 있다.
한편, 메모리 컨트롤러(100) 및 메모리 장치(200)는 별개의 반도체 장치로 구현될 수 있다. 또는, 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들어, 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM/SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD), 유니버설 플래시 기억장치(UFS) 등을 구성할 수 있다.
도 2는 도 1의 내구성 판단 회로의 일 구현 예를 나타내는 블록도이다. 이하의 실시예들에서는, 내구성 판단을 위해 기록 횟수가 카운팅되고, 또한 페이지 단위로 기록 횟수가 카운팅되는 예가 설명될 것이나, 전술한 바와 같이 본 발명의 실시예는 워드라인 단위 카운팅 또는 소거 횟수를 카운팅하여 수행될 수도 있을 것이다. 또한, 셀 카운팅 동작에 있어서 독출 데이터에 대한 오프 셀 개수를 카운팅하는 동작이 예시될 것이나, 온 셀 개수를 카운팅함에 의해 내구성이 판단될 수도 있을 것이다.
도 1 및 도 2를 참조하면, 내구성 판단 회로(130)는 기록 카운터(131) 및 셀 카운터(132)를 포함하고, 기록 카운터(131)는 블록 단위 카운터(131_1) 및 페이지 단위 카운터(131_2)를 포함할 수 있다. 또한, 셀 카운터(132)는 에러 셀 카운터(132_1) 및 오프 셀 카운터(132_2)를 포함할 수 있다. 또한, 내구성 판단 회로(130)는 판단 로직(133)을 더 포함하고, 판단 로직(133)은 기록 카운터(131)로부터의 제1 카운팅 정보(Info_CNT1) 및 셀 카운터(132)로부터의 제2 카운팅 정보(Info_CNT2)를 수신하고, 수신된 정보를 처리함에 의해 내구성 판단 결과를 나타내는 판단 정보(Det_endur)를 출력할 수 있다.
블록 단위 카운터(131_1)와 페이지 단위 카운터(131_2) 각각은 대응하는 영역의 기록 횟수를 카운팅하기 위한 다수의 카운터들을 포함할 수 있다. 일 예로서, 메모리 셀 어레이(210)는 다수의 셀 블록들을 포함하고, 블록 단위 카운터(131_1)는 다수의 셀 블록들에 대응하는 다수의 카운터들을 포함할 수 있다. 또한, 각각의 셀 블록은 다수의 페이지들을 포함하고, 페이지 단위 카운터(131_2)는 다수의 페이지들에 대응하는 다수의 카운터들을 포함할 수 있다.
메모리 컨트롤러(100)는 호스트와의 통신을 통해 메모리 동작을 위한 커맨드(CMD) 및 어드레스(ADD)를 수신할 수 있으며, 기록 카운터(131)는 커맨드(CMD) 및 어드레스(ADD)에 기반하여 카운팅 동작을 수행할 수 있다. 일 예로서, 기록 카운터(131)는 데이터 기록을 요청하는 커맨드(CMD)에 기반하여 카운팅 동작을 수행할 수 있으며, 블록 단위 카운터(131_1)와 페이지 단위 카운터(131_2)는 어드레스(ADD)가 지시하는 셀 블록 또는 페이지의 기록 횟수를 카운팅할 수 있다.
한편, 셀 카운터(132)는 내구성 판단이 수행되는 소정의 영역(예컨대, 페이지)으로부터 독출된 데이터(DATA)를 수신하고, 이를 이용한 셀 카운팅 동작을 수행할 수 있다. 예컨대, 에러 셀 카운터(132_1)는 소정의 단위의 데이터에 대한 에러 검출 동작을 통해 검출된 메모리 셀의 개수를 카운팅하고, 또한 오프 셀 카운터(132_2)는 독출된 데이터(DATA) 중 소정의 로직 상태(예컨대, 로직 0 또는 로직 1)를 갖는 데이터(DATA)를 통해 오프 셀의 개수를 판단할 수 있다. 일 실시예에 따라, 에러 셀 카운터(132_1)는 ECC 회로(120)의 에러 검출 결과를 카운팅함에 의해 카운팅 결과를 발생할 수 있다. 또는, 변형 가능한 예로서, 에러 셀 카운터(132_1)는 ECC 회로(120) 내에 구비되고, ECC 회로(120)로부터의 에러 셀 카운팅 결과가 내구성 판단 회로(130)로 제공될 수도 있을 것이다.
에러 셀의 개수를 판단함으로써 메모리 셀들의 저항 산포의 폭의 변동이 예측될 수 있으며, 또한 오프 셀의 개수를 판단함으로써 메모리 셀들의 저항 산포의 쉬프트 정도가 예측될 수 있다. 즉, 전술한 기록 횟수의 카운팅 동작에 기반하여 내구성 판단 대상의 페이지에 기준 횟수를 초과하는 기록 동작이 수행되었는지가 판단될 수 있으며, 이와 함께 상기 페이지의 메모리 셀들의 저항 산포 특성을 판단함으로써 상기 페이지의 내구성 저하 여부가 최종 판단될 수 있다.
도 3a,b는 도 1의 메모리 셀 어레이의 일 구현 예를 나타내는 회로도이다. 도 3a,b에서는 저항성 메모리 셀이 PRAM 인 경우가 예시되며, 또한 메모리 셀 어레이(210)의 어느 하나의 셀 블록이 예시된다.
메모리 셀 어레이(210)는 수평 구조의 2차원 메모리 셀 어레이일 수 있고, 복수의 워드 라인들(WL1 ~ WLn), 복수의 비트 라인들(BL1 ~ BLm) 및 복수의 메모리 셀들(MC)을 포함할 수 있다. 여기서, 워드 라인들(WL)의 개수, 비트 라인들(BL)의 개수 및 메모리 셀들(MC)의 개수는 실시예에 따라 다양하게 변경될 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 다른 실시예에서, 메모리 셀 어레이(210)는 수직 구조의 3차원 메모리 셀 어레이일 수 있다.
본 실시예에 따르면, 복수의 메모리 셀들(MC) 각각은 가변 저항 소자(R) 및 스위칭 소자(SW)를 포함할 수 있다. 여기서, 가변 저항 소자(R)는 가변 저항 물질이라고 지칭할 수 있고, 스위칭 소자(SW)는 선택 소자라고 지칭할 수 있다.
일 실시예에서, 가변 저항 소자(R)는 복수의 비트 라인들(BL1 ~ BLm) 중 하나와 스위칭 소자(SW)의 사이에 연결되며, 스위칭 소자(SW)는 가변 저항 소자(R)와 복수의 워드 라인들(WL1 ~ WLn) 중 하나의 사이에 연결될 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 스위칭 소자(SW)가 복수의 비트 라인들(BL1 ~ BLm) 중 하나와 가변 저항 소자(R) 사이에 연결되고, 가변 저항 소자(R)가 스위칭 소자(SW)와 복수의 워드 라인들(WL1 ~ WLn) 중 하나의 사이에 연결될 수 있다.
스위칭 소자(SW)는 복수의 워드 라인들(WL1 ~ WLn) 중 어느 하나와 가변 저항 소자(R) 사이에 연결될 수 있으며, 연결된 워드 라인과 비트 라인에 인가되는 전압에 따라 가변 저항 소자(R)로의 전류 공급을 제어할 수 있다. 도 3a에서, 스위칭 소자(SW)는 다이오드인 것으로 도시되었으나, 이는 본 발명의 일 실시예에 불과하며, 다른 실시예에서, 스위칭 소자(SW)는 스위칭 가능한 다른 소자로 변경될 수 있다.
한편, 도 3b를 참조하면, 메모리 셀(MC)은 가변 저항 소자(R)와 스위칭 소자(SW)로 구성될 수 있다. 스위칭 소자(SW)는 트랜지스터, 다이오드 등과 같은 다양한 소자들을 이용하여 구현될 수 있다. 가변 저항 소자(R)는 게르마늄, 안티몬 및 텔루르 혼합물(GST, Ge-Sb-Te)로 이루어진 상변화막(11), 상변화막(11) 상부에 형성된 상부 전극(12), 그리고 상변화막(11) 하부에 형성된 하부 전극(13)을 포함할 수 있다.
상부 및 하부 전극들(12, 13)은 다양한 금속, 금속 산화물 또는 금속 질화물로 형성될 수 있다. 상변화막(11)은 쌍극성(bipolar) 저항 기억 재료 또는 단극성(unipolar) 저항 기억 재료로 형성될 수 있다. 쌍극성 저항 기억 재료는 전류의 극성에 의하여 셋이나 리셋 상태로 프로그램될 수 있으며, 쌍극성 저항 기억 재료에는 페로브스카이트(Perovskite) 계열의 물질들이 사용될 수 있다. 한편, 단극성 저항 기억 재료는 동일한 극성의 전류에 의해서도 셋이나 리셋 상태로 프로그램될 수 있으며, 단극성 저항 기억 재료에는, NiOx나 TiOx와 같은 전이 금속 산화물(transition metal oxide) 등이 사용될 수 있다.
도 3b에서, 메모리 셀(MC)에 기록 전류(I)가 인가되면, 인가된 기록 전류(I)는 하부 전극(13)을 통해 흐르게 된다. 매우 짧은 시간 동안 기록 전류(I)가 메모리 셀(MC)에 인가되면, 인가된 기록 전류(I)는 하부 전극(13)의 인접한 막만이 주울열(Joule's heat)로 가열된다. 이 때, 가열 프로파일(heating profile)의 차이에 의해서 상변화막(11)의 일부가 결정 상태(또는 셋 상태)가 되거나 비결정 상태(또는 리셋 상태)가 된다.
도 4는 내구성이 저하된 경우의 메모리 셀들의 저항 산포의 일 예를 나타내는 도면이다. 도 4에서 가로 축은 저항 레벨을 나타내고 세로 축은 메모리 셀들의 개수를 나타내며, 또한 기록 사이클 증가에 따른 저항 산포의 변동 예가 도시된다.
도 4를 참조하면, 다수의 메모리 셀들을 포함하는 페이지에 데이터가 기록되고, 메모리 셀들의 저항 산포는 기록 사이클이 증가함에 따라 데이터의 신뢰성을 열화시키는 산포 상태로 변동될 수 있다. 예컨대, 다수의 메모리 셀들은 저항 레벨이 상대적으로 작은 셋 상태와 저항 레벨이 큰 리셋 상태로 프로그램될 수 있으며, 기록 사이클이 증가함에 따라 메모리 셀들의 저항 산포가 일 방향(예컨대, 저항 레벨이 작아지는 방향)으로 이동될 수 있으며, 또한 셋 상태의 저항 산포와 리셋 상태의 저항 산포의 폭이 각각 넓어질 수 있다. 본 발명의 예시적인 실시예에 따르면, 내구성 판단 대상의 영역의 메모리 셀들의 저항 산포가 도 4에 도시된 바와 같은 내구성 저하에 기인한 저항 산포를 갖는 지를 판단하고, 이에 기반하여 상기 영역의 내구성 저하 여부를 정확하게 판단할 수 있다.
일 예로서, 전술한 실시예에서의 에러 셀 카운팅 동작에 기반하여 셋 상태와 리셋 상태의 저항 산포의 폭의 변동이 예측될 수 있으며, 에러 셀의 개수가 소정의 기준값을 초과하는 경우에는 에러 셀이 내구성 저하에 기인하여 발생된 것으로 판단될 수 있다. 또한, 오프 셀 카운팅 동작에 기반하여 셋 상태와 리셋 상태의 저항 산포의 쉬프트 정도가 예측될 수 있으며, 오프 셀의 개수(또는, 셋 상태로 판단되는 셀의 개수)가 소정의 기준값을 초과하는 경우에는 내구성 저하에 기인하여 메모리 셀들의 저항 산포가 쉬프트된 것으로 판단될 수 있다. 즉, 본 발명의 예시적인 실시예에 따르면 기록 횟수의 카운팅 결과 및 셀 카운팅 결과의 다양한 조합들에 기반하여 메모리 셀 어레이의 내구성 저하 여부의 판단 정확도를 향상할 수 있다.
도 5는 페이지 단위의 기록 카운팅 및 워드라인 단위의 기록 카운팅을 적용하는 예를 나타내는 도면이다.
도 5를 참조하면, 메모리 셀 어레이는 다수의 셀 블록들을 포함하고, 각각의 셀 블록은 다수의 워드라인들(WL1 ~ WLn)을 포함할 수 있다. 또한, 다수의 워드라인들(WL1 ~ WLn) 각각에는 다수의 메모리 셀들이 연결될 수 있다.
셀 블록은 다수의 셀 영역들(Cell Region 1 ~ Cell Region K)을 포함할 수 있다. 일 예로서, 소정의 페이지 단위로 데이터가 기록되거나 독출되는 것으로 가정할 때, 상기 페이지는 셀 영역들(Cell Region 1 ~ Cell Region K) 각각의 하나의 메모리 셀을 포함하는 단위일 수 있다. 예컨대, 셀 블록에서 독출되는 하나의 페이지 단위의 데이터는 셀 영역들(Cell Region 1 ~ Cell Region K)로부터 독출된 K 개의 데이터들(DATA 1 ~ DATA K)을 포함할 수 있다.
본 발명의 예시적인 실시예에 따라, 내구성 판단을 위한 카운팅 동작은 워드라인 단위로 수행되거나 또는 페이지 단위로 수행될 수 있다. 일 구현 예로서, 워드라인 단위의 카운팅 동작이 수행될 때, n 개의 워드라인들(WL1 ~ WLn)에 대응하여 n 개의 카운터들이 구비될 수 있다. 또는, 하나의 워드라인이 L 개의 페이지들을 포함하는 것으로 가정할 때, 페이지 단위의 카운팅 동작이 수행되는 경우에는 하나의 워드라인에 대응하여 L 개의 카운터들이 구비될 수 있다.
셀 블록에서 제1 워드라인에 포함되는 제1 페이지의 내구성이 판단되는 것으로 가정할 때, 전술한 실시예들에 따라 제1 페이지의 내구성이 저하된 것으로 판단되면 다양한 처리 단위로서 웨어 레벨링이 수행될 수 있다. 일 동작 예로서, 페이지의 단위로 웨어 레벨링이 수행되거나, 제1 페이지를 포함하는 워드라인 단위로 웨어 레벨링이 수행되거나, 또는 제1 페이지를 포함하는 셀 블록 단위로 웨어 레벨링이 수행될 수도 있을 것이다.
도 6 및 도 7은 본 발명의 예시적인 실시예들에 따른 메모리 컨트롤러의 동작방법을 나타내는 플로우차트이다.
도 6을 참조하면, 메모리 컨트롤러를 포함하는 메모리 시스템에서, 호스트로부터의 독출 요청에 응답하여 메모리 컨트롤러는 메모리 장치의 일 영역(예컨대, 제1 페이지)의 데이터를 독출할 수 있다. 메모리 컨트롤러는 제1 페이지에 대한 독출 동작과 함께, 상기 제1 페이지가 포함된 셀 블록에 대한 블록 단위의 기록 카운팅 값을 확인할 수 있다(S11). 또한, 메모리 컨트롤러는 상기 제1 페이지의 페이지 단위(또는, 워드라인 단위)의 기록 카운팅 값을 확인할 수 있다(S12).
확인된 카운팅 값에 기반하여 제1 페이지의 내구성 저하 여부가 판단될 수 수 있다(S13). 일 예로서, 상기한 카운팅 값들이 각각 대응하는 소정의 기준값과 비교될 수 있으며, 비교 결과에 따라 제1 페이지의 내구성 저하 여부가 판단될 수 수 있다. 일 예로서, 각각의 카운팅 값은 제1 페이지의 내구성 저하 레벨을 나타낼 수 있으며, 내구성 저하 레벨이 소정의 기준을 초과하는 지가 판단될 수 있다. 일 동작 예로서, 셀 블록 단위의 키운팅 값과 페이지 단위의 카운팅 값이 모두 대응하는 기준값보다 클 때 제1 페이지의 내구성이 저하된 것으로 최종 판단될 수 있다.
내구성이 저하된 것으로 판단되면 상기 제1 페이지 또는 이를 포함하는 셀 블록의 데이터의 신뢰성을 확보하기 위한 웨어 레벨링 처리가 수행될 수 있다(S14). 또는, 내구성이 저하된 것으로 판단된 경우에, 상기 제1 페이지 또는 이를 포함하는 셀 블록에 대해 이후의 웨어 레벨링 처리를 수행하는 기준이 변경되도록 제어 동작이 수행될 수 있다. 일 예로서, 웨어 레벨링은 소정의 주기(또는, 소정의 기록/소거 사이클)에 따라 수행될 수 있는데, 제1 페이지의 내구성이 저하된 것으로 판단될 때, 상기 제1 페이지 또는 이를 포함하는 셀 블록의 웨어 레벨링 처리 주기를 짧게 변경함으로써 데이터의 신뢰성을 향상할 수 있다.
도 7은 내구성 판단에서 셀 카운트 및 에러 카운트가 더 적용된 예를 나타내는 플로우차트이다. 도 7에 도시된 단계들에서 도 6에서와 동일한 단계에 대해서는 구체적인 설명이 생략된다.
도 6 및 도 7을 참조하면, 메모리 컨트롤러는 호스트로부터의 독출 커맨드에 응답하여 메모리 장치의 제1 페이지의 데이터를 독출할 수 있으며, 또한 내구성 판단을 위해 블록 단위의 기록 카운팅 값을 확인할 수 있으며(S11), 또한 페이지(또는, 워드라인) 단위의 기록 카운팅 값을 확인할 수 있다(S12). 또한, 전술한 바와 같이 제1 페이지의 내구성 저하 여부가 판단될 수 있으며(S13), 상기 제1 페이지의 데이터의 신뢰성을 확보하기 위한 웨어 레벨링 처리가 수행될 수 있다(S14).
본 실시예에 따라, 제1 페이지의 내구성 저하 여부를 판단함에 있어서 셀 카운트 및 에러 셀 카운트 결과가 더 이용될 수 있다. 일 예로서, 제1 페이지로부터 독출된 데이터에 대해 오프 셀 또는 온 셀 카운트를 통해 제1 페이지의 메모리 셀들의 저항 산포의 쉬프트가 예측될 수 있으며, 또한 에러 셀 카운트를 통해 제1 페이지의 메모리 셀들의 저항 산포의 폭이 예측될 수 있다. 또한, 셀 카운트 및 에러 셀 카운트 결과가 소정의 기준값을 초과함에 따라 제1 페이지의 저항 산포가 내구성이 저하된 페이지에서의 저항 산포에 상응할 때 제1 페이지의 내구성이 저하된 것으로 최종 판단될 수 있다.
도 8a,b는 본 발명의 예시적인 실시예들에 따라 내구성의 판단을 위해 이용되는 각종 조건들을 나타내는 블록도이다.
도 8a를 참조하면, 판단 로직(133)은 전술한 실시예들에 따른 각종 카운팅 값을 수신하고 이를 통해 페이지의 내구성 저하 여부를 판단할 수 있으며, 일 예로서 페이지가 포함된 셀 블록에 대해 블록 단위의 기록 카운팅 값과 전술한 오프 셀 카운팅 값 및/또는 에러 셀 카운팅 값에 기반하여 페이지의 내구성 저하 여부가 판단될 수 있다.
한편, 도 8b를 참조하면, 판단 로직(133)은 내구성 판단을 위한 각종 조건들로서 페이지(또는, 페이지가 포함된 워드라인)에 대해 페이지(또는, 워드라인) 단위의 기록 카운팅 값과 전술한 오프 셀 카운팅 값 및/또는 에러 셀 카운팅 값에 기반하여 페이지의 내구성 저하 여부를 판단할 수 있다. 이외에도, 본 발명의 실시예들은 도 8a,b에 도시된 방법 이외에도 다른 다양한 조건들의 조합을 통해 내구성을 판단할 수 있을 것이다.
도 9a,b,c는 내구성 판단 동작을 수행하는 다양한 타이밍들을 나타내는 플로우차트이다.
도 9a를 참조하면, 메모리 컨트롤러는 호스트로부터 메모리 동작 요청을 수신하고(S21), 호스트로부터 수신된 요청이 메모리 장치에 대한 기록 요청 또는 독출 요청에 해당하는 지를 판단할 수 있다(S22). 판단 결과, 메모리 컨트롤러는 호스트로부터 기록 요청 또는 독출 요청이 제공될 때 전술한 실시예들에 따른 내구성 판단 동작을 수행할 수 있다. 또한, 기록 또는 독출 동작이 요청된 페이지와 관련하여, 셀 블록의 기록 카운팅 값, 페이지(또는, 페이지를 포함하는 워드라인)의 기록 카운팅 값이 확인될 수 있다. 또한, 기록 동작이 요청된 페이지에 대해, 상기 페이지를 포함하는 셀 블록에 대한 기록 카운팅 값이 증가하고, 상기 페이지(또는, 페이지를 포함하는 워드라인)의 기록 카운팅 값이 증가할 수 있다. 또한, 기록 또는 독출 동작이 요청된 페이지로부터 데이터가 독출되고, 독출된 데이터에 대해 에러 셀 카운팅 값 및/또는 오프 셀 카운팅 값이 산출될 수 있다.
메모리 컨트롤러는 각종 카운팅 값에 기반하여 내구성 판단을 수행할 수 있다(S23). 일 예로서, 전술한 실시예들에 따라 카운팅 값이 소정의 기준값과 비교되고, 상기 페이지의 내구성이 저하된 것으로 판단될 때 웨어 레벨링 처리를 수행하거나 또는 웨어 레벨링 수행을 위한 기준이 변경될 수 있다(S24).
한편, 도 9b에서는 셀 블록의 기록 카운팅 값이 소정의 기준 값에 도달하는 경우에 내구성 판단이 수행되는 예가 도시된다. 도 9b를 참조하면, 메모리 컨트롤러는 호스트로부터 기록 요청을 수신하고, 기록 요청된 페이지를 포함하는 셀 블록에 대한 기록 카운팅 값을 증가시킬 수 있다(S31).
상기 셀 블록의 기록 카운팅 값이 소정의 기준값(Nref)에 해당하는 지가 판단되고(S32), 기록 카운팅 값이 소정의 기준값(Nref)에 해당하는 경우에는 전술한 실시예들에 따른 내구성 판단 동작이 수행될 수 있다. 즉, 셀 블록에 포함되는 다수의 페이지들에 대해 기록 요청이 수신될 때 상기 셀 블록의 기록 카운팅 값이 증가할 수 있으며, 상기 셀 블록이 기록 카운팅 값이 기준값(Nref)에 도달하는 경우에는 셀 블록 내의 페이지의 내구성이 저하되었는지가 판단될 수 있다.
메모리 컨트롤러는 기록 요청된 페이지의 데이터를 독출할 수 있으며, 독출된 데이터에 대해 에러 셀 카운팅 값 및/또는 오프 셀 카운팅 값이 산출될 수 있다. 또한, 메모리 컨트롤러는 상기 페이지(또는, 페이지를 포함하는 워드라인)의 기록 카운팅 값을 확인할 수 있으며, 전술한 각종 카운팅 값에 기반하여 내구성 판단을 수행할 수 있다(S34). 또한, 상기 페이지의 내구성이 저하된 것으로 판단될 때 웨어 레벨링 처리를 수행하거나 또는 웨어 레벨링 수행을 위한 기준이 변경될 수 있다(S35).
한편, 도 9c에서는 메모리 시스템이 백그라운드 모드일 때 전술한 실시예에서의 내구성 판단이 수행되는 예가 도시된다. 도 9c를 참조하면, 메모리 컨트롤러는 메모리 장치에 대한 메모리 동작을 제어하며(S41), 소정의 주기에 따라 또는 메모리 동작이 일정 시간 수행되지 않는 경우에 백그라운드 모드로 진입할 수 있다(S42).
메모리 컨트롤러는 백그라운드 모드에서 전술한 실시예들에 따른 내구성 판단 동작을 수행할 수 있다. 일 실시예에 따라, 메모리 컨트롤러는 내구성 판단 타이밍에 해당하는 지를 판단하고(S43), 내구성 판단 타이밍에 해당하는 경우에 호스트로부터 제공된 어드레스와 무관하게 메모리 장치에 포함되는 하나 이상의 페이지들에 대해 내구성 저하 여부를 판단할 수 있다. 일 예로서, 다수의 페이지들에 대한 내구성 판단이 순차적으로 수행될 수 있으며, 또는 셀 블록의 기록 카운팅 값 및/또는 페이지(또는, 페이지를 포함하는 워드라인)의 기록 카운팅 값을 확인함으로써 기록 카운팅 값이 소정의 기준값을 초과하는 영역의 페이지들에 대해 내구성 판단이 수행될 수 있다.
메모리 컨트롤러는 내구성 판단이 수행되는 영역(예컨대, 하나 이상의 페이지들)으로부터 데이터를 독출하고(S44), 독출된 데이터에 대해 에러 셀 카운팅 값 및/또는 오프 셀 카운팅 값을 산출할 수 있다. 또한, 전술한 각종 카운팅 값에 기반하여 내구성 판단이 수행될 수 있으며(S45), 상기 페이지의 내구성이 저하된 것으로 판단될 때 웨어 레벨링 처리를 수행하거나 또는 웨어 레벨링 수행을 위한 기준이 변경될 수 있다(S46).
도 10은 본 발명의 변형 가능한 실시예에 따른 메모리 컨트롤러를 나타내는 블록도이다.
도 10을 참조하면, 메모리 컨트롤러(300)는 프로세서(310), ECC 회로(320), 전원 제어기(330) 및 내구성 판단 회로(340)를 포함할 수 있다. 또한, 일 실시예에 따라, 내구성 판단 회로(340)는 기록 카운터(341), 셀 카운터(342), 제1 판단 로직(343) 및 제2 판단 로직(344)을 포함할 수 있다. 기록 카운터(341) 및 셀 카운터(342)는 전술한 실시예들에 따라 메모리 장치의 내구성을 판단하기 위한 각종 카운팅 동작을 수행할 수 있으며, 제1 판단 로직(343)은 전술한 실시예들에 따라 각종 카운팅 값에 기반하여 상기 메모리 장치의 내구성 저하를 1차 판단할 수 있다.
메모리 컨트롤러(300)는 1차 판단 결과가 내구성 저하로 판단된 경우, 상기 내구성 저하를 재차 판단하기 위한 2차 판단 동작을 수행할 수 있다. 일 실시예에 따라, 메모리 컨트롤러(300)는 내구성이 저하된 것으로 판단된 영역(예컨대, 페이지)에 대해 노멀 기록 동작에 비해 더 낮은 레벨을 갖는 기록 전류(예컨대, 낮은 기록 전류)를 이용하여 데이터를 재기록할 수 있으며, 전원 제어기(330)는 메모리 장치 내에서 기록 전류의 레벨을 감소하기 위한 제어 정보를 포함하는 전원 제어신호(Ctrl_VI)를 출력할 수 있다. 또한, 메모리 컨트롤러(300)는 낮은 기록 전류를 이용하여 재기록된 데이터를 독출(또는, 재독출)하는 동작을 제어할 수 있으며, 독출된 데이터가 내구성 판단 회로(340)로 제공될 수 있다.
2차 판단 동작을 수행함에 있어서, 셀 카운터(342)는 독출된 데이터에 대한 에러 셀 카운팅 및/또는 오프 셀 카운팅 동작을 수행할 수 있으며, 상기 셀 카운팅 값에 기반하여 메모리 장치의 내구성을 2차 판단할 수 있다. 일 예로서, 제2 판단 로직(344)은 에러 셀 카운팅 값을 소정의 기준값과 비교하거나 오프 셀 카운팅 값을 소정의 기준값과 비교할 수 있으며, 비교 결과에 따라 상기 메모리 장치의 내구성 저하를 2차 판단할 수 있다. 내구성 판단 회로(340)는 1차 및 2차 판단 동작을 통해 모두 내구성이 저하된 것으로 판단된 경우, 메모리 장치의 페이지의 내구성이 저하된 것으로 최종 판단할 수 있다. 또한, 내구성이 저하된 것으로 판단됨에 따라, 프로세서(310)의 제어에 기반하여 웨어 레벨링 처리가 수행될 수 있다.
본 발명의 실시예에 따르면, 메모리 장치의 신뢰성 저하가 내구성 저하에 기인한 것인지를 1차 및 2차 판단 동작을 통해 정확히 판단할 수 있으며, 내구성 저하에 의해 신뢰성이 낮아진 페이지의 데이터에 대한 웨어 레벨링 처리가 수행될 수 있다. 즉, 독출 과정에서 1 회성으로 에러가 발생된 데이터에 대해 웨어 레벨링 처리가 수행되는 것을 방지하고, 내구성이 저하된 페이지의 데이터에 대해 웨어 레벨링 처리가 수행됨으로써 데이터의 신뢰성이 향상될 수 있다.
한편, 도 10에 도시된 실시예에서 2차 판단 동작은 다양한 방법에 의해 수행될 수 있다. 일 예로서, 메모리 셀들은 프로그램 상태에 따라 셋 상태 및 리셋 상태를 가질 수 있으며, 상기 메모리 셀들 중 셋 상태의 메모리 셀들에 대해 낮은 기록 전류(예컨대, 셋 기록 전류)를 이용한 셋 기록 동작이 수행될 수 있다. 또는, 상기 메모리 셀들 중 리셋 상태의 메모리 셀들에 대해 낮은 기록 전류(예컨대, 리셋 기록 전류)를 이용한 리셋 기록 동작이 수행될 수 있다. 또는, 상기 메모리 셀들에 대해 낮은 기록 전류를 이용하여 셋 기록 및 리셋 기록 동작이 함께 수행될 수도 있을 것이다.
도 11은 낮은 기록 전류를 이용하여 기록 동작을 수행한 경우에 메모리 셀들의 내구성 정도에 따른 저항 산포를 나타내는 도면이다. 도 11에는 메모리 셀들의 내구성이 저하된 경우에 기록 전류의 레벨에 따른 리셋 상태의 저항 산포의 예가 도시된다.
도 10 및 도 11을 참조하면, 메모리 셀들의 기록 횟수가 내구성을 저하시킬 정도의 값을 갖는 경우, 낮은 리셋 기록 전류를 이용하여 리셋 기록 동작을 수행할 때 그 저항 산포는 데이터의 신뢰성을 저하시킬 수 있는 산포 특성을 가질 수 있다. 일 예로, 내구성이 저하된 메모리 셀들에 대해 노멀 기록 전류를 이용하여 리셋 기록 동작이 수행될 때, 리셋 상태의 저항 산포는 메모리 셀들의 내구성이 저하되지 않은 경우에서의 저항 산포와 유사하거나, 그 산포의 변동 폭이 작을 수 있다. 반면에, 내구성이 저하된 메모리 셀들에 대해 낮은 기록 전류를 이용하여 리셋 기록 동작이 수행될 때, 리셋 상태의 저항 산포는 메모리 셀들의 내구성이 저하되지 않은 경우에 비해 그 산포의 변동 폭이 클 수 있다.
본 발명의 실시예에 따라 내구성 판단 회로(340)가 2차 판단 동작을 수행할 때, 낮은 기록 전류를 이용하여 기록된 데이터가 독출되고, 독출된 데이터에 대한 셀 카운팅 동작을 수행하여 메모리 셀들의 저항 산포를 분석함으로써 메모리 셀들의 내구성 저하 여부가 정확히 판단될 수 있다. 즉, 낮은 기록 전류를 이용함으로써 메모리 셀들의 내구성이 저하되지 않은 경우와 내구성이 저하된 경우에서 저항 산포가 확연히 구분될 수 있으므로, 상기 낮은 기록 전류를 이용한 데이터 기록에 기반하여 2차 판단 동작이 수행될 수 있다.
도 12 내지 도 15는 2차 판단 동작이 적용된 경우에서의 내구성 판단 방법의 구체적인 예를 나타내는 플로우차트이다.
도 12를 참조하면, 메모리 장치의 내구성 판단을 위해 1차 판단 동작이 수행될 수 있으며, 상기 1차 판단 동작은 전술한 실시예들에 따라 다양한 타이밍에서 수행될 수 있다. 일 예로서, 호스트로부터 기록 또는 독출 요청이 제공될 때 수행되거나, 기록 카운팅 값이 소정의 기준값을 초과할 때, 또는 백그라운드 모드에서 1차 판단 동작이 수행될 수 있다.
제1 페이지에 대한 내구성을 판단하는 것으로 가정할 때, 1차 판단 동작에서 셀 블록 단위 및/또는 페이지 단위의 기록 카운팅 값이 확인될 수 있으며(S51), 또한 제1 페이지로부터 독출된 데이터에 대해 셀 카운팅 값이 확인될 수 있다(S52). 또한, 상기 카운팅 값들의 확인 결과에 따라 1차적으로 내구성 저하 여부가 판단될 수 있으며(S53), 1차 판단 동작에서 제1 페이지의 내구성이 저하된 것으로 판단됨에 따라 2차 판단 동작이 수행될 수 있다.
상기 2차 판단 동작에서, 전술한 실시예에 따라 노멀 기록 전류에 비해 낮은 레벨을 갖는 기록 전류를 이용하여 기록 동작을 수행할 수 있으며(S54), 일 예로서 낮은 리셋 기록 전류를 이용하여 리셋 상태의 데이터를 제1 페이지에 기록할 수 있다. 또한, 낮은 리셋 기록 전류를 이용하여 기록된 데이터에 대한 독출 동작이 수행될 수 있으며(S55), 독출된 데이터에 대한 셀 카운팅 동작을 통해 에러 셀 및/또는 오프 셀 개수가 확인될 수 있다(S56).
상기와 같은 데이터의 독출 결과에 기반하여 2차적으로 내구성 저하 여부가 판단될 수 있으며(S57), 2차 판단 동작에서도 제1 페이지의 내구성이 저하된 것으로 판단된 경우에 상기 제1 페이지의 내구성이 저하된 것으로 최종 판단될 수 있다. 또한, 제1 페이지의 내구성이 저하된 것으로 판단되면 상기 제1 페이지 또는 이를 포함하는 셀 블록의 데이터의 신뢰성을 확보하기 위한 웨어 레벨링 처리가 수행될 수 있다(S58).
한편, 도 13a,b를 참조하면, 도 12에 도시된 단계 S51 내지 S58의 동작들이 수행될 수 있으며, 2차 판단 동작에서 낮은 기록 전류로 데이터가 기록된 제1 페이지에 대해 노멀 기록 전류를 이용한 기록 동작이 더 수행될 수 있다(S59). 도 13a에서는 2차 판단 동작에서 제1 페이지의 내구성이 저하된 것으로 판단된 경우에만 노멀 기록 전류를 이용한 기록 동작이 더 수행되는 예가 도시되며, 도 13b에서는 2차 판단 동작에서 제1 페이지의 내구성이 저하되지 않은 것으로 판단된 경우에도 노멀 기록 전류를 이용한 기록 동작이 더 수행되는 예가 도시된다. 예컨대, 도 13a에서는 제1 페이지의 내구성이 저하된 것으로 판단됨에 따라 제1 페이지의 저항 산포 특성이 좋지 않을 때 저항 산포를 개선하기 위해 노멀 기록 전류를 이용한 기록 동작이 더 수행될 수 있다. 한편, 도 13b에서는 제1 페이지의 내구성이 저하되지 않은 것으로 판단된 경우에도 노멀 기록 전류를 이용한 기록 동작을 더 수행함으로써 데이터 신뢰성이 더 확보될 수 있다.
한편, 도 14에서는 제1 페이지에 대한 2차 내구성 판단 동작을 수행함에 있어서 독출/기록 디스터브 여부를 더 확인하는 예가 도시된다. 도 14의 예에서는 설명의 편의상 1차 내구성 판단 동작의 설명은 생략된다.
제1 페이지의 내구성 저하 여부에 대한 1차 판단 동작이 수행되고(S61), 제1 페이지의 내구성이 저하된 것으로 판단된 경우에 전술한 실시예들에 따른 2차 판단 동작이 수행될 수 있다. 이에 따라, 낮은 기록 전류를 이용한 기록 동작(S63), 낮은 기록 전류를 이용하여 기록된 데이터를 독출하는 동작(S64), 에러 셀 및/또는 오프 셀 카운팅 동작(S65)이 수행될 수 있다. 또한, 상기와 같은 카운팅 결과에 기반하여 제1 페이지의 내구성이 저하되었는지가 판단될 수 있으며(S66), 2차 판단 동작에서도 제1 페이지의 내구성이 저하된 것으로 판단되면 상기 제1 페이지 또는 이를 포함하는 셀 블록에 대한 웨어 레벨링 처리가 수행될 수 있다(S67).
한편, 본 발명의 실시예에 따라, 2차 판단 동작에서 추가의 확인 동작이 더 적용될 수 있다. 일 예로서, 1차 판단 동작에서 각종 카운팅 값에 기반하여 제1 페이지의 내구성의 저하 여부가 판단될 수 있는데, 상기 카운팅 값에 기반하는 판단 동작의 정확성 여부를 확인하기 위한 추가의 확인 동작이 수행될 수 있다.
일 예로서, 에러 셀 및/또는 오프 셀 카운팅 값에 기반하여 제1 페이지의 메모리 셀들의 저항 산포가 예측될 수 있으며, 상기 제1 페이지의 저항 산포의 변동이 주변 메모리 셀들의 기록 및 독출 동작에 따른 디스터브에 기인한 것인지가 확인될 수 있다(S62). 예컨대, 상기 제1 페이지의 메모리 셀들의 저항 산포는 인접한 메모리 셀들에 대한 기록 및 독출 동작에 의해 디스터브될 수 있으며, 이에 따라 제1 페이지의 메모리 셀들의 내구성이 아직 저하되지 않았음에도 불구하고 그 저항 산포가 내구성이 저하된 것으로 판단될 수 있다.
본 발명의 예시적인 실시예에 따라, 디스터브 여부인지의 확인은 다양한 방법에 의해 수행될 수 있다. 일 예로서, 제1 페이지에 인접한 하나 이상의 메모리 셀들의 기록 및/또는 소거 횟수를 확인하고, 확인된 기록 및/또는 소거 횟수가 소정의 기준값 이하일 때는 상기 제1 페이지의 기록 및/또는 소거 횟수 또한 적은 값을 가질 것으로 예측될 수 있으며, 이에 따라 상기 제1 페이지의 내구성이 저하되지 않은 것으로 판단될 수 있다. 반면에, 확인된 기록 및/또는 소거 횟수가 소정의 기준값을 초과할 때는 상기 제1 페이지 또한 기록 및/또는 소거 횟수가 클 것으로 예측될 수 있으며, 이에 따라 상기 제1 페이지의 내구성이 저하된 것으로 판단될 수 있다.
한편, 도 14에 도시된 실시예에서는 디스터브 여부의 판단 결과에 따라 낮은 기록 전류를 이용한 판단 동작이 수행되는 것으로 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, 낮은 기록 전류를 이용한 판단 동작이 수행되고, 그 판단 결과에 따라 디스터브 여부의 판단 동작이 수행될 수도 있을 것이다. 또는, 낮은 기록 전류를 이용한 판단 동작과 디스터브 여부의 판단 동작이 함께 수행되고, 그 중 적어도 하나의 판단 동작에서 제1 페이지의 내구성이 저하된 것으로 판단될 때 상기 제1 페이지의 내구성이 저하된 것으로 최종 판단될 수도 있을 것이다.
또한, 도 14에 도시된 실시예에서는 디스터브 여부의 판단이 2차 판단 동작에서 수행되는 것으로 설명되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, 제1 판단 동작에서 에러 셀 및/또는 오프 셀 카운팅 값을 확인하는 동작과 함께 수행될 수 있다. 또는, 제1 판단 동작에서 에러 셀 및/또는 오프 셀 카운팅 값에 기반하여 제1 페이지의 내구성이 저하된 것으로 확인될 때, 상기 기록 및 독출 동작에 의한 디스터브 여부가 추가적으로 판단될 수도 있을 것이다.
한편, 도 15에서는 2차 판단 동작에서 타임 딜레이를 적용하는 예가 도시된다. 도 15에 도시된 동작들에 있어서 전술한 실시예에서와 동일 또는 유사한 동작들에 대해서는 자세한 설명은 생략되며, 또한 설명의 편의상 제1 판단 동작에 대한 구체적인 도시는 생략된다.
도 15를 참조하면, 제1 페이지의 내구성 저하 여부에 대한 1차 판단 동작이 수행되고(S71), 제1 페이지의 내구성이 저하된 것으로 판단됨에 따라 낮은 기록 전류를 이용한 기록 동작(S72), 낮은 기록 전류를 이용하여 기록된 데이터를 독출하는 동작(S74), 에러 셀 및/또는 오프 셀 카운팅 동작(S75)을 포함하는 2차 판단 동작이 수행될 수 있다. 또한, 상기와 같은 카운팅 결과에 기반하여 2차적으로 내구성 저하 여부가 판단되고(S76), 판단 결과에 따라 제1 페이지 또는 이를 포함하는 셀 블록에 대한 웨어 레벨링 처리가 수행될 수 있다(S77).
한편, 내구성이 저하된 메모리 셀들에 대해 낮은 기록 전류를 이용하여 데이터를 기록할 때, 메모리 셀들의 저항 산포의 특성은 기록 동작이 완료된 직후에는 노멀 기록 전류를 이용한 경우에서와 유사한 산포를 가질 수 있으나, 소정 시간이 지난 이후에 도 11에 도시된 그래프에서와 같이 그 산포 특성이 저하될 수 있다. 본 발명의 예시적인 실시예에 따르면, 낮은 기록 전류를 이용한 기록 동작을 수행하고 난 후 소정의 딜레이를 적용하는 단계(S73)가 더 구비될 수 있으며, 상기 딜레이가 적용된 이후에 제1 페이지에 대한 독출 동작이 수행됨으로써 2차 판단 동작의 정확도가 더 향상될 수 있다.
또한, 상기 딜레이는 다양한 값으로 설정되어 메모리 시스템 내에 설정될 수 있다. 일 예로서 낮은 기록 전류를 이용한 기록 동작 및 독출 데이터를 이용하여 저항 산포를 예측하는 동작을 포함하는 테스트가 수행될 수 있으며, 테스트 결과에 따라 내구성이 저하된 메모리 셀들을 판단하기 위한 적절한 딜레이 값이 산출될 수 있다. 또한, 기록 동작에 이용되는 기록 전류의 레벨에 따라 상기 설정되는 딜레이는 변동될 수 있을 것이다.
도 16a,b는 웨어 레벨링을 수행하는 메모리 시스템의 일 구현 예를 나타내는 블록도이다.
도 16a를 참조하면, 메모리 시스템(400)은 메모리 컨트롤러 및 메모리 장치(440)를 구비하고, 메모리 컨트롤러는 어드레스 인터리버(410), 핫 데이터 필터(420) 및 핫 데이터 캐쉬(430)를 포함할 수 있다. 또한, 도 16a에는 메모리 장치(440)로서 PRAM이 예시되며, 메모리 장치(440)는 다수의 셀 블록들을 포함하고, 또한 각각의 셀 블록은 다수의 페이지들을 포함할 수 있다.
메모리 시스템(400)은 메모리 장치(440)에 저장된 데이터의 일부를 핫 데이터 캐쉬(430)에 카피할 수 있으며, 메모리 시스템(400)은 호스트로부터 억세스 요청에 응답하여 핫 데이터 캐쉬(430)에 저장된 데이터를 호스트로 제공할 수 있다. 어드레스 인터리버(410)는 호스트로부터의 어드레스(ADD)에 대한 인터리빙을 수행함으로써 기록 요청되는 데이터들이 메모리 장치(440)의 다수의 셀 블록들에 분산되어 저장되도록 하고, 핫 데이터 필터(420)는 메모리 장치(440)에 기록되는 데이터들에 대해 억세스 빈도가 높은 핫 데이터를 필터링하는 기능을 수행할 수 있다. 또한, 핫 데이터 캐쉬(430)는 메모리 장치(440)에서 억세스된 일부의 데이터를 임시적으로 저장할 수 있다.
본 발명의 예시적인 실시예에 따라, 내구성 판단 동작을 통해 내구성이 저하된 영역의 데이터에 대한 웨어 레벨링 처리가 수행될 수 있다. 전술한 실시예들에 따라, 페이지 단위의 웨어 레벨링이나 셀 블록 단위의 웨어 레벨링이 수행될 수 있으며, 이에 따라 웨어 레벨링 처리 전후로 데이터를 지시하는 어드레스가 변경될 수 있다. 변경된 어드레스 정보는 맵핑 테이블에 저장되고, 핫 데이터 캐쉬(430)가 메모리 장치(440)를 억세스함에 있어서 맵핑 테이블의 정보가 이용될 수 있다.
도 16b를 참조하면, 기존의 어드레스가 랜덤한 값을 갖는 키(Key)를 이용하여 리맵핑된 어드레스로 변환될 수 있다. 도 16b의 예에서는 기존의 어드레스(MA)와 키(Key)의 XOR 연산에 기반하여 리맵핑된 어드레스(RMA)가 생성되는 예가 도시되며, 기존의 어드레스(MA)와 리맵핑된 어드레스(RMA) 사이의 맵핑 정보가 핫 데이터 캐쉬(430)로 제공될 수 있다.
도 17은 본 발명의 다른 예시적인 실시예에 따른 메모리 컨트롤러를 나타내는 블록도이다. 도 17에서는 내구성 판단 기능이 소프트웨어로 구현되는 예가 도시된다.
메모리 컨트롤러(500)는 프로세서(510) 및 워킹 메모리(520)를 포함할 수 있으며, 전술한 실시예들의 기능을 구현하기 위한 구성들이 펌웨어로서 워킹 메모리(520)에 로딩될 수 있다. 일 예로서, 상기 펌웨어에 의해 구현되는 기능에 따라, 웨어-레벨링 모듈(521), 배드 블록 관리 모듈(522), 어드레스 맵핑 테이블(523) 및 판단 모듈(524)이 워킹 메모리(520)에 로딩될 수 있다.
웨어-레벨링 모듈(521)은 특정 위치의 셀 블록 또는 페이지의 기록 및/또는 소거 횟수가 증가함에 따라 해당 메모리 셀들이 웨어 아웃되는 것을 방지한다. 일 예로서, 전술한 실시예들에 따라 특정 위치의 셀 블록 또는 페이지의 기록 및/또는 소거 횟수가 증가하여 내구성이 저하된 것으로 판단된 경우에는, 프로세서(510)는 웨어-레벨링 모듈(521)을 실행함으로써 셀 블록 단위 또는 페이지 단위의 웨어 레벨링 처리를 수행할 수 있다. 또한, 배드 블록 관리 모듈(522)은 결함이 발생된 셀 블록들에 대한 관리 동작을 수행할 수 있으며, 일 예로서 특정 위치의 셀 블록의 기록 및/또는 소거 횟수가 임계값을 초과하는 경우에는 해당 셀 블록을 배드 블록으로 처리할 수 있다. 일 동작 예에 따라, 전술한 실시예들에서 특정 페이지의 내구성이 저하된 것으로 판단된 경우에는, 상기 특정 페이지를 포함하는 셀 블록이 배드 블록으로 처리될 수도 있을 것이다.
한편, 어드레스 맵핑 테이블(523)은 어드레스 변환 동작을 통해 호스트로부터 제공된 어드레스와 실제 데이터가 저장된 물리적 위치를 나타내는 어드레스 사이의 변환 정보를 저장할 수 있다. 일 예로서, 전술한 웨어 레벨링 처리에 따라 페이지 단위 또는 셀 블록 단위로 데이터가 이동될 수 있으며, 이에 따른 어드레스 변환 정보가 어드레스 맵핑 테이블(523)에 저장될 수 있다. 한편, 판단 모듈(524)은 전술한 실시예들에 따른 1차 및 2차 내구성 판단 동작을 수행할 수 있으며, 기록 카운팅 값, 셀 카운팅 값에 기반하여 내구성 판단 동작을 수행할 수 있다.
도 18은 본 발명의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 도 18에서는 메모리 시스템(600)이 메모리 콘트롤러(610) 및 메모리 장치를 포함하고, 메모리 장치는 메모리 모듈(620)에 해당하는 예가 도시된다. 메모리 콘트롤러(610)는 ECC 회로(611) 및 내구성 판단 회로(612)를 포함할 수 있으며, 메모리 모듈(620)은 모듈 보드 상에 장착되는 제1 내지 제N 메모리 칩들(621_1 ~ 621_N)을 포함할 수 있다.
ECC 회로(611)는 데이터(DATA)에 대한 ECC 인코딩 동작을 통해 패리티 데이터(Parity)를 생성할 수 있으며, 데이터(DATA)와 패리티 데이터(Parity)를 포함하는 코드워드(Codeword)가 제1 내지 제N 메모리 칩들(621_1 ~ 621_N)에 저장될 수 있으며, 또한 제1 내지 제N 메모리 칩들(621_1 ~ 621_N)로부터 코드워드(Codeword)가 독출될 수 있다. 내구성 판단 회로(612)는 제1 내지 제N 메모리 칩들(621_1 ~ 621_N)로부터 독출된 데이터(DATA) 및 패리티 데이터(Parity) 각각을 이용하여 전술한 실시예들에 따른 내구성 판단 동작을 수행할 수 있다. 또한, 내구성 판단 결과에 따라 다양한 방식에 따른 웨어 레벨링 처리가 수행될 수 있으며, 일 예로서 페이지 단위, 셀 블록 단위, 메모리 칩 단위 등 다양한 형태로 웨어 레벨링 처리가 수행될 수 있을 것이다.
전술한 실시예에서, 메모리 모듈(620)은 SIMM(single in-line memory module) 또는 DIMM(dual inline memory module) 형태로 구현될 수 있다. 또한, 메모리 모듈(620)은 다양한 종류의 DIMM에 해당할 수 있으며, 예컨대 FB-DIMM 및 LR-DIMM 등 다양한 종류의 DIMM이 메모리 모듈(620)에 적용될 수 있다. 또는, 메모리 모듈(620)은 전원이 종료되면 데이터가 손실되는 휘발성 메모리의 문제를 보완하기 위해 불휘발성 메모리(예컨대, 플래시 메모리, 미도시)가 탑재된 NVDIMM(Non-volatile DIMM)에 해당할 수 있다.
또한, 다양한 종류의 모듈로서, 메모리 모듈(620)이 저항성 메모리로서 PRAM을 포함하는 경우 메모리 모듈(620)은 P_DIMM으로 지칭될 수 있다. 본 발명의 실시예들은 이외에도 다양한 종류의 모듈들에 적용이 가능하며, 일 예로서 메모리 모듈(620)은 3D 형태의 저항성 메모리 셀들을 갖는 크로스 포인트 메모리 칩들을 포함함에 따라 XPoint DIMM(또는, 3D XPoint DIMM)으로 지칭될 수 있다.
도 19는 본 발명의 예시적인 실시예에 따른 메모리 컨트롤러의 구현 예를 나타내는 블록도이다.
도 19를 참조하면, 메모리 컨트롤러(700)는 프로세서(710), RAM(720), 호스트 인터페이스(730), 메모리 인터페이스(740), ECC 회로(750) 및 내구성 판단 회로(760)를 포함할 수 있다. 예시적인 실시예에 따라, 메모리 컨트롤러(700)는 시스템 온 칩으로 구현될 수 있는 어플리케이션 프로세서(AP, 미도시) 내에 구비되는 장치일 수 있다. 또한, 내구성 판단 회로(760)는 기록 카운터(761), 셀 카운터(762) 및 판단 로직(763)을 포함할 수 있다.
프로세서(710)는 중앙처리장치 또는 마이크로 프로세서 등을 포함할 수 있고, 메모리 컨트롤러(700)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(710)는 메모리 컨트롤러(700)를 제어하기 위한 소프트웨어(software) 또는 펌웨어(firmware)를 구동하도록 구성될 수 있으며, 소프트웨어 또는 펌웨어는 RAM(720)에 로딩되어 구동될 수 있다. RAM(720)은 프로세서(710)의 동작 메모리, 캐시 메모리, 또는 버퍼 메모리로 이용될 수 있다. RAM(720)에는 메모리 장치에 기입될 기록 데이터가 일시적으로 저장될 수 있고, 또한, 메모리 장치에서 독출된 독출 데이터가 일시적으로 저장될 수 있다.
호스트 인터페이스(730)는 호스트와 인터페이스하여 호스트로부터 메모리 동작의 요청을 수신한다. 예를 들어, 호스트 인터페이스(730)는 호스트(HOST)로부터 데이터의 독출 및 기록 등의 각종 요청을 수신하고, 이에 응답하여 메모리 장치에 대한 메모리 동작을 위한 각종 내부 신호들을 발생할 수 있다.
메모리 인터페이스(740)는 메모리 컨트롤러(700)와 메모리 장치(미도시) 사이의 인터페이스를 제공할 수 있으며, 예를 들어, 기록 데이터 및 독출 데이터가 메모리 인터페이스(740)를 통해 메모리 장치와 송수신될 수 있다. 또한, 메모리 인터페이스(740)는 커맨드 및 어드레스를 메모리 장치로 제공할 수 있으며, 또한 메모리 장치로부터 각종 정보들을 수신하여 이를 메모리 컨트롤러(900) 내부로 제공할 수 있다.
한편, ECC 회로(950)는 전술한 실시예들에서 언급된 ECC 디코딩 처리를 통해 독출 데이터의 에러를 검출할 수 있으며, 에러 검출 결과는 내구성 판단 회로(760)에서의 내구성 판단 동작에 이용될 수 있다. 또한, 내구성 판단 회로(760)는 본 발명의 실시예들에 따른 내구성 판단 동작을 수행할 수 있으며, 일 예로서 기록 카운터(761)는 셀 블록 및/또는 페이지 단위의 기록 카운팅 동작을 수행할 수 있으며, 셀 카운터(762)는 독출 데이터에 대한 에러 셀 카운팅 및/또는 오프 셀 카운팅 동작을 수행할 수 있다. 또한, 판단 로직(763)은 각종 카운팅 값에 기반하여 판단 동작을 수행할 수 있으며, 전술한 실시예에 따라 내구성 판단이 1차 및 2차 판단 동작을 포함하는 경우 셀 카운터(762)는 낮은 기록 전류로 데이터가 기록된 페이지로부터 독출된 데이터에 대해 에러 셀 카운팅 및/또는 오프 셀 카운팅 동작을 수행하고, 판단 로직(763)은 상기 카운팅 결과를 더 이용하여 판단 동작을 수행할 수 있다.
한편, 내구성 판단 회로(760)에 의해 수행될 수 있는 각종 기능들은 하드웨어적으로 구현되거나 소프트웨어적으로 구현될 수 있으며, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 일 예로서, 각종 카운팅 값과 기준값들을 비교하는 판단 동작이 하드웨어적으로 구현되는 경우, 내구성 판단 회로(760) 내에 배치되는 하드웨어 회로에 의해 해당 기능이 실행될 수 있을 것이다. 또는, 각종 카운팅 값과 기준값들을 비교하는 판단 동작이 소프트웨어적으로 구현되는 경우, 내구성 판단 회로(760) 내부에 또는 외부에 구비되는 프로그램이 RAM(720)에 로딩되고, 프로세서(710)가 해당 프로그램을 실행함에 의해 해당 기능이 실행될 수 있을 것이다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 메모리 컨트롤러에 있어서, 상기 메모리 컨트롤러는 메모리 장치에 대한 메모리 동작을 제어하고,
    상기 메모리 장치로부터 독출된 데이터에 대해 에러 검출을 수행하는 ECC(Error Correction Code) 회로; 및
    상기 메모리 장치에 대한 기록 횟수를 나타내는 제1 카운팅 값과, 상기 메모리 장치로부터 독출된 데이터에 기초하여 특정 로직 상태의 메모리 셀의 개수를 나타내는 제2 카운팅 값을 확인하며, 상기 확인 결과에 기반하여 상기 메모리 장치의 내구성이 저하되었는지를 판단하는 제1 판단 동작을 수행하는 내구성 판단 회로를 구비하고,
    상기 제1 판단 동작에서 상기 메모리 장치의 제1 페이지의 내구성이 저하된 것으로 판단된 경우, 상기 메모리 컨트롤러는 노멀 기록 동작에 비해 낮은 레벨의 기록 전류를 이용하여 상기 제1 페이지에 데이터를 재기록하고,
    상기 내구성 판단 회로는, 상기 제1 페이지에 재기록된 데이터를 이용하여 상기 제1 페이지의 내구성이 저하되었는지를 판단하는 제2 판단 동작을 더 수행하는 것을 특징으로 하는 메모리 컨트롤러.
  2. 제1항에 있어서, 상기 내구성 판단 회로는,
    외부로부터의 기록 또는 독출 요청에 응답하여 상기 제1 판단 동작을 수행하는 것을 특징으로 하는 메모리 컨트롤러.
  3. 제1항에 있어서,
    상기 메모리 장치의 제1 페이지의 내구성 저하 여부를 판단함에 있어서,
    상기 제1 카운팅 값은, 상기 제1 페이지의 기록 횟수를 카운팅한 값과 상기 제1 페이지가 포함되는 셀 블록의 기록 횟수를 카운팅한 값 중 적어도 하나를 포함하고,
    상기 제2 카운팅 값은, 상기 제1 페이지의 메모리 셀들 중 오프 셀의 개수를 카운팅한 값을 포함하는 것을 특징으로 하는 메모리 컨트롤러.
  4. 제3항에 있어서,
    상기 제1 카운팅 값은 상기 제1 페이지가 포함되는 셀 블록의 기록 횟수를 카운팅한 값을 포함하고, 상기 제2 카운팅 값은 상기 제1 페이지의 메모리 셀들 중 오프 셀의 개수를 카운팅한 값을 포함하며,
    상기 내구성 판단 회로는, 상기 제1 카운팅 값이 제1 기준값을 초과하고 상기 제2 카운팅 값이 제2 기준값을 초과할 때 상기 제1 페이지의 내구성이 저하된 것으로 판단하는 것을 특징으로 하는 메모리 컨트롤러.
  5. 제3항에 있어서, 상기 내구성 판단 회로는,
    상기 셀 블록의 기록 횟수를 카운팅하는 제1 카운터를 포함하는 기록 카운터;
    상기 제1 페이지의 메모리 셀들 중 오프 셀의 개수를 카운팅하는 제2 카운터를 포함하는 셀 카운터; 및
    상기 제1 및 제2 카운팅 값들에 기반하여 상기 내구성의 저하 여부를 판단하는 판단 로직을 포함하는 것을 특징으로 하는 메모리 컨트롤러.
  6. 삭제
  7. 제1항에 있어서,
    상기 메모리 동작을 제어하는 프로세서; 및
    상기 내구성이 저하된 메모리 셀들에 대한 웨어 레벨링 처리를 위한 프로그램을 포함하는 웨어 레벨링 모듈을 더 구비하고,
    상기 메모리 장치의 내구성이 저하된 것으로 판단된 경우, 상기 프로세서는 상기 웨어 레벨링 모듈을 실행함으로써 내구성이 저하된 영역의 데이터를 다른 영역에 기록하는 것을 특징으로 하는 메모리 컨트롤러.
  8. 제7항에 있어서,
    상기 메모리 장치의 제1 셀 블록에 포함된 제1 페이지의 내구성이 저하된 것으로 판단된 경우,
    셀 블록 단위의 웨어 레벨링 처리에 따라 상기 제1 셀 블록의 데이터가 다른 셀 블록에 기록되거나, 페이지 단위의 웨어 레벨링 처리에 따라 상기 제1 페이지의 데이터가 상기 제1 셀 블록 내의 다른 페이지에 기록되는 것을 특징으로 하는 메모리 컨트롤러.
  9. 삭제
  10. 제1항에 있어서,
    상기 메모리 컨트롤러는, 상기 제1 페이지의 메모리 셀들 중 리셋 상태의 메모리 셀들에 대해 낮은 리셋 기록 전류를 이용하여 리셋 상태의 데이터를 재기록하는 것을 특징으로 하는 메모리 컨트롤러.
  11. 삭제
  12. 제1항에 있어서,
    상기 메모리 컨트롤러의 전반적인 동작을 제어하는 프로세서; 및
    상기 내구성이 저하된 메모리 셀들에 대한 웨어 레벨링 처리를 위한 프로그램을 포함하는 웨어 레벨링 모듈을 더 구비하고,
    상기 제1 및 제2 판단 동작에서 모두 메모리 장치의 내구성이 저하된 것으로 판단된 경우, 상기 프로세서는 상기 웨어 레벨링 모듈을 실행함으로써 내구성이 저하된 상기 제1 페이지의 데이터를 다른 페이지에 기록하는 것을 특징으로 하는 메모리 컨트롤러.
  13. 제1항에 있어서, 상기 내구성 판단 회로는,
    상기 제2 판단 동작에서 상기 제1 페이지의 메모리 셀들에 인접한 하나 이상의 메모리 셀들의 기록 카운팅 값을 더 확인하고,
    상기 재기록된 데이터를 이용한 판단에서 상기 제1 페이지의 내구성이 저하되지 않을 것으로 판단될 때, 상기 인접한 메모리 셀들의 기록 카운팅 값이 소정의 기준값을 초과하는 경우에 상기 제1 페이지의 내구성이 저하된 것으로 판단하는 것을 특징으로 하는 메모리 컨트롤러.
  14. 삭제
  15. 다수의 셀 블록들을 포함하고, 각각의 셀 블록은 다수의 페이지들을 포함하는 메모리 장치; 및
    상기 메모리 장치에 대한 메모리 동작을 제어하는 메모리 컨트롤러를 구비하고,
    상기 메모리 컨트롤러는,
    상기 메모리 장치의 제1 셀 블록의 기록 횟수를 카운팅하는 제1 카운팅 동작을 수행하고, 상기 제1 셀 블록의 제1 페이지의 제1 로직 상태의 셀의 개수를 카운팅하는 제2 카운팅 동작을 수행하며, 상기 제1 및 제2 카운팅 동작 결과에 기반하여 상기 제1 페이지의 내구성이 저하되었는지를 판단하는 제1 판단 동작을 수행하고,
    상기 제1 판단 동작에서 상기 제1 페이지의 내구성이 저하된 것으로 판단된 경우, 노멀 기록 동작에 비해 낮은 레벨의 기록 전류를 이용하여 상기 제1 페이지에 데이터를 재기록하고,
    상기 제1 페이지에 재기록된 데이터를 이용하여 상기 제1 페이지의 내구성이 저하되었는지를 판단하는 제2 판단 동작을 더 수행하는 것을 특징으로 하는 메모리 시스템.
  16. 제15항에 있어서,
    상기 제2 카운팅 동작은 상기 제1 페이지의 메모리 셀들 중 오프 셀의 개수를 카운팅하는 카운팅 동작을 포함하고,
    상기 메모리 컨트롤러는, 상기 제1 셀 블록에 대한 기록 횟수가 제1 기준값을 초과함과 함께, 상기 제1 페이지의 오프 셀 개수가 제2 기준값을 초과하는 경우에 상기 제1 페이지의 내구성이 저하된 것으로 판단하는 것을 특징으로 하는 메모리 시스템.
  17. 삭제
  18. 삭제
  19. 제15항에 있어서, 상기 메모리 컨트롤러는,
    상기 낮은 레벨의 기록 전류에 의해 데이터가 재기록된 상기 제1 페이지의 에러 셀 카운팅 값 및 오프 셀 카운팅 값 중 적어도 하나를 소정의 기준값과 비교하여 상기 제2 판단 동작을 더 수행하는 것을 특징으로 하는 메모리 시스템.
  20. 제15항에 있어서,
    상기 제1 및 제2 판단 동작에서 모두 상기 제1 페이지의 내구성이 저하된 것으로 판단된 경우, 상기 메모리 컨트롤러는 상기 제1 페이지에 대해 블록 단위 또는 페이지 단위의 웨어 레벨링을 수행하는 것을 특징으로 하는 메모리 시스템.
KR1020180141130A 2018-11-15 2018-11-15 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 KR102610821B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180141130A KR102610821B1 (ko) 2018-11-15 2018-11-15 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US16/415,906 US10977120B2 (en) 2018-11-15 2019-05-17 Memory controller determining endurance degradation, memory system including the same, and method of operating the memory controller
CN201910634753.0A CN111192618B (zh) 2018-11-15 2019-07-15 确定耐久性降低的存储器控制器、存储器系统和操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180141130A KR102610821B1 (ko) 2018-11-15 2018-11-15 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Publications (2)

Publication Number Publication Date
KR20200056872A KR20200056872A (ko) 2020-05-25
KR102610821B1 true KR102610821B1 (ko) 2023-12-06

Family

ID=70710733

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180141130A KR102610821B1 (ko) 2018-11-15 2018-11-15 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Country Status (2)

Country Link
US (1) US10977120B2 (ko)
KR (1) KR102610821B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210066630A (ko) * 2019-11-28 2021-06-07 삼성전자주식회사 스토리지 장치, 및 상기 스토리지 장치의 동작 방법
US11145376B1 (en) * 2020-03-26 2021-10-12 Macronix International Co., Ltd. Memory system and method capable of performing wear leveling
JP2022147574A (ja) * 2021-03-23 2022-10-06 キオクシア株式会社 メモリコントローラ、及びメモリシステム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4146628B2 (ja) * 2001-08-23 2008-09-10 松下電器産業株式会社 メモリシステム及び半導体集積回路
KR101401560B1 (ko) * 2007-12-13 2014-06-03 삼성전자주식회사 반도체 메모리 시스템 및 그것의 마모도 관리 방법
US9141536B2 (en) 2011-11-04 2015-09-22 Intel Corporation Nonvolatile memory wear management
US8868824B2 (en) 2012-04-19 2014-10-21 Microsoft Corporation Solid-state drive management and control
US9430322B2 (en) 2012-08-02 2016-08-30 Sandisk Technologies Llc Device based wear leveling using intrinsic endurance
US8804418B1 (en) * 2012-08-31 2014-08-12 Cadence Design Systems, Inc. Low overhead read disturbance protection method for NAND flash device
US9329948B2 (en) * 2012-09-15 2016-05-03 Seagate Technology Llc Measuring cell damage for wear leveling in a non-volatile memory
KR102108839B1 (ko) * 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
KR102065664B1 (ko) 2013-08-09 2020-01-13 삼성전자 주식회사 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법
KR102085127B1 (ko) * 2013-11-13 2020-04-14 삼성전자주식회사 메모리 컨트롤러의 구동 방법 및 메모리 컨트롤러에 의해서 제어되는 비휘발성 메모리 장치
WO2015086846A2 (fr) * 2013-12-12 2015-06-18 Commissariat A L'energie Atomique Et Aux Energies Alternatives Systeme de gestion de l'usure d'une memoire electronique
KR102178141B1 (ko) * 2014-08-01 2020-11-12 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
KR102318561B1 (ko) * 2014-08-19 2021-11-01 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법
US9857986B2 (en) 2015-06-30 2018-01-02 International Business Machines Corporation Wear leveling of a memory array
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
KR102637160B1 (ko) * 2016-04-14 2024-02-19 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
KR20180027710A (ko) * 2016-09-06 2018-03-15 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
KR101899343B1 (ko) 2016-10-07 2018-09-17 고려대학교 산학협력단 오류 검출 및 오류 정정 코드를 이용한 상변화 메모리 관리 장치 및 그 방법
KR102656190B1 (ko) * 2016-11-24 2024-04-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
KR20180070974A (ko) * 2016-12-19 2018-06-27 삼성전자주식회사 비휘발성 메모리의 리드 동작 방법, 비휘발성 메모리를 포함하는 메모리 시스템 및 이의 동작 방법
US10381090B2 (en) * 2017-03-31 2019-08-13 Samsung Electronics Co., Ltd. Operation method of nonvolatile memory device and storage device
KR20180114746A (ko) * 2017-04-11 2018-10-19 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10409716B2 (en) * 2017-10-11 2019-09-10 Western Digital Technologies, Inc. Non-volatile memory with adaptive wear leveling
KR102457662B1 (ko) * 2017-10-31 2022-10-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법
KR102443034B1 (ko) * 2018-01-10 2022-09-14 삼성전자주식회사 메모리 장치

Also Published As

Publication number Publication date
CN111192618A (zh) 2020-05-22
US10977120B2 (en) 2021-04-13
KR20200056872A (ko) 2020-05-25
US20200159619A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
KR102599047B1 (ko) 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
KR102188061B1 (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
KR102275710B1 (ko) 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
KR102131324B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 동작방법
KR102142590B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 동작방법
KR20190139082A (ko) 메모리 장치의 비트 에러율 균등화 방법
KR102298607B1 (ko) 저항성 메모리 시스템 및 저항성 메모리 시스템의 동작 방법
KR102610821B1 (ko) 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
CN111833949A (zh) 存储器控制器、存储器系统及其操作方法
KR20200058027A (ko) Ecc 회로를 포함하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 에러 정정 방법
US10872665B2 (en) Memory device performing data comparison write and memory system including the same
US11923030B2 (en) Optimized storage charge loss management
KR102344380B1 (ko) 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US11238950B1 (en) Reliability health prediction by high-stress seasoning of memory devices
CN111192618B (zh) 确定耐久性降低的存储器控制器、存储器系统和操作方法
US20160322087A1 (en) Data storage device and operating method thereof
US20240087655A1 (en) Read level compensation for partially programmed blocks of memory devices
KR20200092103A (ko) 복수의 컨트롤러를 포함하는 메모리 시스템
US20240231642A1 (en) Self-optimizing corrective read offsets with lateral charge migration proxies
US20240177781A1 (en) Read operation with capacity usage detection scheme
US20230393755A1 (en) Managing error compensation using charge coupling and lateral migration sensitivity
US20240055050A1 (en) Managing compensation for cell-to-cell coupling and lateral migration in memory devices based on a sensitivity metric
US12013792B2 (en) Error avoidance for partially programmed blocks of a memory device
US11947831B2 (en) Adaptive enhanced corrective read based on write and read temperature
US20230368845A1 (en) Partial block read level voltage compensation to decrease read trigger rates

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right