KR102599046B1 - 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템 - Google Patents

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

Info

Publication number
KR102599046B1
KR102599046B1 KR1020180141955A KR20180141955A KR102599046B1 KR 102599046 B1 KR102599046 B1 KR 102599046B1 KR 1020180141955 A KR1020180141955 A KR 1020180141955A KR 20180141955 A KR20180141955 A KR 20180141955A KR 102599046 B1 KR102599046 B1 KR 102599046B1
Authority
KR
South Korea
Prior art keywords
sub
memory
read
memory device
data
Prior art date
Application number
KR1020180141955A
Other languages
English (en)
Other versions
KR20200057479A (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 KR1020180141955A priority Critical patent/KR102599046B1/ko
Priority to US16/594,400 priority patent/US11307918B2/en
Priority to CN201911104897.1A priority patent/CN111198657A/zh
Publication of KR20200057479A publication Critical patent/KR20200057479A/ko
Application granted granted Critical
Publication of KR102599046B1 publication Critical patent/KR102599046B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • 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/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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1659Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • 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/5607Digital 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 magnetic storage elements
    • 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/5678Digital 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 amorphous/crystalline phase transition storage elements
    • 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/5685Digital 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 storage elements comprising metal oxide memory material, e.g. perovskites
    • 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/0007Digital 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 metal oxide memory material, e.g. perovskites
    • 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/003Cell access
    • 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/004Reading or sensing circuits or methods
    • 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/0061Timing circuits or methods
    • 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/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Materials Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

리커버리 동작을 수행하는 메모리 시스템이 개시된다. 메모리 시스템은, 복수의 서브-셋들을 구성하는 복수의 메모리 셀들을 포함하는 메모리 장치 및 메모리 장치를 제어하는 메모리 컨트롤러를 포함하고, 메모리 컨트롤러는 메모리 장치가 수행하는 독출 동작의 횟수에 대한 리드 카운트를 서브-셋 단위로 관리하고, 리드 카운트에 기초하여 리드 카운트에 대응되는 서브-셋에 대한 리커버리 동작을 수행하도록 메모리 장치를 제어하고, 복수의 서브-셋들 각각은 복수의 페이지들을 포함하고, 복수의 페이지들 각각은 복수의 메모리 셀들에서 독출 동작이 수행되는 단위이다.

Description

리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템{Memory Controller Performing Recovery Operation, Operating Method Of The Same And Memory System Including The Same}
본 발명은 메모리 컨트롤러 및 메모리 시스템에 관한 것으로서, 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템에 관한 것이다.
불휘발성 메모리 장치로서, PRAM(Phase change RAM), RRAM(Resistive RAM), MRAM(Magnetic RAM) 등과 같은 저항성 메모리 장치들은 저항 상태의 변화에 의해 데이터를 저장하는 가변 저항 소자를 메모리 셀로서 이용하고 있다. 저항성 메모리 장치들을 구성하는 물질들의 공통점은 전류 또는 전압의 크기 및/또는 방향에 따라서 그 저항값이 가변되며, 전류 또는 전압이 차단되어도 그 저항값을 그대로 유지하는 불휘발성 특성을 가진다.
이 때, 저항성 메모리 장치에 포함된 저항성 메모리 셀은 다른 메모리 셀에 인가되는 전압에 의해 저항이 달라지는 문제가 있었다. 저항이 달라짐에 따라 데이터의 신뢰도가 보장되지 못하거나, 메모리 셀 자체가 열화되는 문제가 발생하였다.
본 개시의 기술적 사상이 해결하고자 하는 과제는, 메모리 셀에 대한 독출 동작의 횟수를 서브 셋 단위로 관리함으로써, 메모리 셀의 저항 산포가 유지되도록 하는 메모리 컨트롤러 및 이의 동작 방법을 제공하는 데에 있다.
본 개시의 기술적 사상에 따른 메모리 시스템은, 복수의 서브-셋들을 구성하는 복수의 메모리 셀들을 포함하는 메모리 장치, 메모리 장치를 제어하는 메모리 컨트롤러를 포함하고, 메모리 컨트롤러는, 메모리 장치가 수행하는 독출 동작의 횟수에 대한 리드 카운트를 서브-셋 단위로 관리하고, 리드 카운트에 기초하여 리드 카운트에 대응되는 서브-셋에 대한 리커버리 동작을 수행하도록 메모리 장치를 제어하고, 복수의 서브-셋들 각각은 복수의 페이지들을 포함하고, 복수의 페이지들 각각은 복수의 메모리 셀들에서 독출 동작이 수행되는 단위일 수 있다.
본 개시의 기술적 사상에 따른 복수의 메모리 셀들을 포함하는 메모리 장치의 동작을 제어하는 메모리 컨트롤러의 동작 방법은, 메모리 장치로 리드 커맨드를 전송하는 단계, 리드 커맨드에 대응되는 메모리 셀들을 포함하는 서브-셋에 대한 리드 카운트를 증가시키는 단계, 및 리드 카운트에 기초하여 서브-셋의 저항 산포를 변경하는 리커버리 동작을 수행하는 단계를 포함하고, 서브-셋은 복수의 페이지들을 포함하고, 복수의 페이지 각각은, 복수의 메모리 셀들에서 독출 동작이 수행되는 단위일 수 있다.
본 개시의 기술적 사상에 따른 복수의 메모리 셀들을 포함하는 메모리 장치를 제어하는 메모리 컨트롤러는, 메모리 장치로 전송하는 리드 커맨드의 수에 대한 리드 카운트를 서브-셋 단위로 관리하고, 리드 카운트가 기준 값에 도달하면 상기 리드 카운트에 대응되는 서브-셋에 대한 리커버리 동작을 수행하고, 복수의 메모리 셀들 중 동일한 워드라인에 연결되는 메모리 셀들은 동일한 서브-셋에 포함되고, 복수의 서브-셋들 각각은 복수의 페이지들을 포함하고, 복수의 페이지들 각각은 복수의 메모리 셀들에서 독출 동작이 수행되는 단위일 수 있다.
본 개시의 기술적 사상에 따른 메모리 시스템에 포함된 메모리 컨트롤러는 서브-셋 단위로 리드 카운트를 관리하고, 리드 카운트에 따라 리커버리 동작을 수행할 수 있다. 메모리 시스템의 리커버리 동작을 통해 메모리 셀들에 기입된 데이터의 신뢰성이 보장될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 메모리 시스템에 포함된 메모리 컨트롤러를 상세하게 나타내는 블록도이다.
도 3은 도 1의 메모리 시스템에 포함된 메모리 장치를 상세하게 나타내는 블록도이다.
도 4는 도 3의 메모리 셀 어레이의 구현 예를 나타내는 블록도이다.
도 5는 도 4의 하나의 메모리 타일의 예시적 실시 예를 나타내는 회로도이다.
도 6은 도 5의 메모리 셀의 예시적인 특성을 설명하는 도면들이다.
도 7은 도 4의 하나의 메모리 타일의 예시적 실시 예를 나타내는 회로도이다.
도 8은 본 개시의 예시적 실시 예에 따른 메모리 컨트롤러의 동작 방법을 설명하기 위한 순서도이다.
도 9는 본 개시의 예시적 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 10은 본 개시의 예시적 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 11은 본 개시의 예시적 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 12는 본 개시의 예시적 실시 예에 따른 메모리 컨트롤러의 동작 방법을 설명하기 위한 순서도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 메모리 시스템(10)을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(100) 및 메모리 장치(200)를 포함할 수 있다.
메모리 컨트롤러(100)는 호스트(HOST)로부터의 기입/독출 요청에 응답하여 메모리 장치(200)에 데이터를 기입하도록 또는 메모리 장치(200)에 저장된 데이터를 독출하도록 메모리 장치(200)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 메모리 장치(200)에 어드레스(ADDR), 커맨드(CMD, 예를 들어, 리드 커맨드(RCMD), 라이트 커맨드(WCMD), 리커버리 커맨드(recCMD) 및 리라이트 커맨드(reWCDM)) 및 제어 신호(CTRL)를 제공함으로써, 메모리 장치(200)에 대한 프로그램(또는 기입) 및 독출 동작을 제어할 수 있다. 또한, 기입될 데이터(DATA)와 독출된 데이터(DATA)가 메모리 컨트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다. 본 도면에서는, 리라이트 커맨드(reWCDM)는 라이트 커맨드(WCMD)와 별도의 커맨드로 도시되었으나, 본 개시는 이에 한정되지 않으며, 리라이트 커맨드(reWCDM)는 별도의 커맨드가 아닌 라이트 커맨드(WCMD)에 포함될 수도 있다.
메모리 컨트롤러(100)는 호스트(HOST)로부터 논리 어드레스에 기반한 요청을 수신할 수 있다. 메모리 컨트롤러(100)의 프로세서(110)에 의해 구동되는 플래시 변환 계층(FTL)은 논리 어드레스를 메모리 장치(200)의 물리 어드레스로 변환할 수 있다. 메모리 컨트롤러(100)는 변환된 물리 어드레스를 메모리 장치(200)로 전달할 수 있다.
메모리 컨트롤러(100)는 메모리 장치(200)에서 수행되는 독출 동작들을 카운트할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 메모리 장치(200)로 전송되는 리드 커맨드(RCMD)의 수를 카운트할 수 있다. 일 실시 예에서, 메모리 컨트롤러(100)는 복수의 서브-셋들(Sub-Set1~Sub-Setz) 각각에 대한 리드 카운트(RCNT)를 관리할 수 있다. 즉, 메모리 컨트롤러(100)는 서브-셋 단위로 리드 카운트(RCNT)를 관리할 수 있다.
메모리 컨트롤러(100)는 메모리 장치(200)에서 수행되는 기입 동작들을 카운트할 수 있다. 즉, 메모리 컨트롤러(100)는 메모리 장치(200)로 전송되는 라이트 커맨드(WCMD)의 수를 카운트할 수 있다. 일 실시 예에서, 메모리 컨트롤러(100)는 복수의 서브-셋들(Sub-Set1~Sub-Setz) 각각에 대한 라이트 카운트(WCNT)를 관리할 수 있다. 즉, 메모리 컨트롤러(100)는 서브-셋 단위로 라이트 카운트(WCNT)를 관리할 수 있다.
다만, 본 개시는 이에 한정되지는 않으며, 메모리 컨트롤러(100)는 서브-셋 단위로 라이트 카운트(WCNT)를 관리하지 않을 수도 있다. 즉, 메모리 컨트롤러(100)에서 리드 카운트(RCNT) 및 라이트 카운트(WCNT)를 관리하는 단위는 서로 상이할 수도 있다.
메모리 컨트롤러(100)는, 리드 카운트(RCNT)에 기초하여 복수의 서브-셋들(Sub-Set1~Sub-Setz) 각각에 대한 리커버리 동작의 수행 여부를 결정할 수 있다. 이 때, 리커버리 동작은 복수의 서브-셋들(Sub-Set1~Sub-Setz)에 저장된 데이터에 대응되는 저항 산포의 열화를 방지함으로써, 복수의 서브-셋들(Sub-Set1~Sub-Setz)에 대한 독출 동작 시의 오차를 감소시키기 위한 동작을 의미할 수 있다.
일 실시예에서, 메모리 컨트롤러(100)는 복수의 서브-셋들(Sub-Set1~Sub-Setz) 중 적어도 하나의 서브-셋에 리커버리 동작이 필요한 경우에는 리커버리 커맨드(recCMD)를 메모리 장치(200)에 전송할 수 있다. 메모리 장치(200)의 제어 회로(230)는 리커버리 커맨드(recCMD)에 응답하여, 리커버리 전압을 리커버리 동작이 필요한 서브-셋에 제공할 수 있다.
일 실시예에서, 메모리 컨트롤러(100)는 복수의 서브-셋들(Sub-Set1~Sub-Setz) 중 적어도 하나의 서브-셋에 리커버리 동작이 필요한 경우에는 리라이트 커맨드(reWCMD)를 메모리 장치(200)에 전송할 수 있다. 메모리 장치(200)는 리라이트 커맨드(reWCMD)에 응답하여, 리커버리 동작이 필요한 서브-셋에 재기입 동작을 수행할 수 있다. 즉, 메모리 장치(200)는 리커버리 동작이 필요한 서브-셋에 기입된 데이터(DATA)를 재기입할 수 있다.
메모리 컨트롤러(100)는, 라이트 카운트(WCNT)에 기초하여 복수의 서브-셋들(Sub-Set1~Sub-Setz) 각각에 대한 웨어 레벨링 동작을 수행할 수 있다. 웨어 레벨링 동작을 통해 동일한 메모리 셀에 데이터가 기입됨으로써, 메모리 셀이 열화되는 것을 방지할 수 있다.
메모리 컨트롤러(100)는 프로세서(110)에 의해 구동되는 카운터(CNT)를 포함할 수 있다. 카운터(CNT)는 특정 메모리 셀들에서 독출 동작이 수행될 때, 상기 메모리 셀들을 포함하는 서브-셋에 대한 리드 카운트(RCNT)를 증가시킬 수 있다. 또한, 카운터(CNT)는 특정 메모리 셀들에서 기입 동작이 수행될 때, 상기 메모리 셀들을 포함하는 서브-셋에 대한 라이트 카운트(WCNT)를 증가시킬 수 있다.
메모리 장치(200)는 메모리 셀 어레이(210) 및 제어 회로(230)를 포함할 수 있다. 메모리 셀 어레이(210)는 복수의 제1 신호 라인들과 복수의 제2 신호 라인들이 교차하는 영역들에 각각 배치되는 복수의 메모리 셀들(예를 들어, 도 5의 MC)을 포함할 수 있다. 즉, 메모리 셀 어레이(210)는 크로스 포인트(Crosspoint) 구조의 메모리 셀 어레이일 수 있다. 일 실시예에서, 복수의 제1 신호 라인들은 복수의 워드 라인들일 수 있고, 복수의 제2 신호 라인들은 복수의 비트 라인들일 수 있다. 다른 실시예에서, 복수의 제1 신호 라인들은 복수의 비트 라인들일 수 있고, 복수의 제2 신호 라인들은 복수의 워드 라인들일 수 있다.
일 실시예에서, 복수의 메모리 셀들은 가변 저항 소자를 포함하는 저항성 메모리 셀들을 포함할 수 있다. 예를 들어, 가변 저항 소자가 상변화(phase change) 물질(GST, Ge-Sb-Te)로서 온도에 따라 저항이 변화하는 경우에는 메모리 장치(200)는 PRAM이 될 수 있다. 또는 예를 들어, 가변 저항 소자가 상부 전극, 하부 전극 및 그 사이에 있는 전이금속 산화물(complex metal oxide)로 형성된 경우에는 메모리 장치(200)는 RRAM이 될 수 있다. 또는 예를 들어, 가변 저항 소자가 자성체의 상부 전극, 자성체의 하부 전극 및 그 사이에 있는 유전체로 형성된 경우에는 메모리 장치(200)는 MRAM이 될 수 있다. 이에 따라, 메모리 장치(200)는 저항성 메모리 장치라고 지칭할 수 있고, 메모리 시스템(10)은 저항성 메모리 시스템이라고 지칭할 수 있다.
일 실시예에서, 복수의 메모리 셀들 각각은 1 비트의 데이터를 저장하는 싱글 레벨 셀(single level cell, SLC)일 수 있고, 이 때, 메모리 셀들은 저장된 데이터에 따라 서로 다른 두 개의 저항 분포를 가질 수 있다. 일 실시예에서, 복수의 메모리 셀들 각각은 2 비트의 데이터를 저장할 수 있는 멀티 레벨 셀(multi level cell, MLC)일 수 있고, 이 때, 메모리 셀들은 저장된 데이터에 따라 네 개의 저항 분포를 가질 수 있다. 일 실시예에서, 복수의 메모리 셀들 각각은 3 비트의 데이터를 저장할 수 있는 트리플 레벨 셀(triple level cell, TLC)일 수 있고, 이 때, 메모리 셀들은 저장된 데이터에 따라 여덟 개의 저항 분포를 가질 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 일 실시예에서, 메모리 셀 어레이(210)는 4 비트 이상의 데이터를 각각 저장할 수 있는 메모리 셀들을 포함할 수도 있고, 메모리 셀 어레이(210)는 싱글 레벨 셀과 멀티 레벨 셀 또는 트리플 레벨 셀을 함께 포함할 수도 있다.
메모리 셀 어레이(210)는 복수의 서브-셋들(Sub-Set1~Sub-Setz)로 구성될 수 있다. 각각의 서브-셋은 메모리 컨트롤러(100)에 의해 리드 카운트(RCNT)가 관리되는 단위로서, 독출/기입 동작이 수행되는 단위인 복수의 페이지들을 포함할 수 있다. 또한 각각의 서브-셋은 서로 다른 메모리 베이(예를 들어, 도 4의 BAY) 각각에서 하나의 워드라인에 연결되는 메모리 셀들을 포함할 수 있다.
제어 회로(230)는 메모리 장치(200)의 동작들을 제어할 수 있다. 일 실시예에서, 제어 회로(230)는 메모리 컨트롤러(100)로부터 수신되는 커맨드(CMD)에 응답하여, 메모리 셀 어레이(210)에 연결된 제1 및 제2 신호 라인들에 인가되는 전압들의 전압 레벨 또는 상기 전압들이 인가되는 타이밍을 제어할 수 있다. 일 실시예에서, 제어 회로(230)는 메모리 컨트롤러(100)로부터 수신되는 커맨드(CMD)에 응답하여, 복수의 서브-셋들(Sub-Set1~Sub-Setz)에 대한 리커버리 동작을 수행할 수 있다. 본 개시에 따른 메모리 장치(200)는 리커버리 동작을 수행함으로써, 복수의 서브-셋들(Sub-Set1~Sub-Setz)에 포함된 메모리 셀들의 저항 산포 열화를 방지할 수 있다.
도 2는 도 1의 메모리 시스템(10)에 포함된 메모리 컨트롤러(100)를 상세하게 나타내는 블록도이다.
도 2를 참조하면, 메모리 컨트롤러(100)는 프로세서(110), RAM(120), ECC(Error Correction Code) 회로(130), 호스트 인터페이스(140), 메모리 인터페이스(150) 및 버스(160)를 포함할 수 있다.
프로세서(110)는 중앙처리장치 또는 마이크로 프로세서 등을 포함할 수 있고, 메모리 컨트롤러(100)의 전반적인 동작을 제어할 수 있다. 프로세서(110)는 호스트 인터페이스(140)를 통해 호스트(HOST)와 통신하고, 메모리 인터페이스(150)를 통해 메모리 장치와 통신할 수 있다. 프로세서(110)는 RAM(120)을 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용하여 메모리 장치를 제어할 수 있다.
일 실시예에서, 플래시 변환 계층(FTL) 및 카운터(CNT) 중 적어도 하나는 프로세서(110)에 의해 구동되는 펌웨어, 운영 체제, 응용과 같은 소프트웨어의 형태로 구현될 수 있다. 일 실시예에서, 플래시 변환 계층(FTL) 및 카운터(CNT) 중 적어도 하나는 프로세서(110)의 내부에서 회로망(circuitry) 또는 지식 자산(IP, Intellectual Property)과 같은 하드웨어로 구현될 수 있다. 일 실시예에서, 플래시 변환 계층(FTL) 및 카운터(CNT) 중 적어도 하나는 프로세서(110)와 연관되어 하드웨어 및 소프트웨어가 조합된 형태로 구현될 수 있다. 일 실시예에서, 플래시 변환 계층(FTL) 및 카운터(CNT) 중 적어도 하나는 프로세서(110)와 분리된 별도의 모듈로 제공될 수 있다.
본 개시에 따른 포함된 메모리 컨트롤러(100)는, 카운터(CNT)를 이용하여 리드 커맨드가 전송된 횟수인 리드 카운트(RCMD)를 관리하고, 리드 카운트(RCMD)에 기초하여 리커버리 동작의 수행 여부를 결정할 수 있다. 따라서, 메모리 컨트롤러(100)는 리커버리 동작을 통하여, 메모리 장치에 포함된 메모리 셀들의 저항 산포 열화를 방지할 수 있다. 일 실시예에서, 메모리 컨트롤러(100)의 리드 카운트(RCMD)를 관리 단위 및 라이트 카운트(WCMD)의 관리 단위는 서브-셋 단위로 동일할 수 있다.
RAM(120)은 프로세서(110)의 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용될 수 있다. RAM(120)은 프로세서(110)가 실행하는 코드들 및 명령들을 저장할 수 있다. RAM(120)은 프로세서(110)에 의해 처리되는 데이터를 저장할 수 있다. RAM(120)은 SRAM(Static RAM)을 포함할 수 있다. 일 실시예에서, 프로세서(110)는 메모리 컨트롤러(100)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성될 수 있으며, 펌웨어는 RAM(120)에 로딩되어 구동될 수 있다.
ECC 회로(130)는, 메모리 인터페이스(150)를 통해 메모리 장치에 기입될 데이터에 기반하여 ECC 인코딩을 수행할 수 있다. ECC 인코딩된 데이터는 메모리 인터페이스(150)를 통해 메모리 장치로 전달될 수 있다. ECC 회로(130)는, 메모리 장치로부터 메모리 인터페이스(150)를 통해 수신되는 데이터에 대해 ECC 디코딩을 수행할 수 있다.
호스트 인터페이스(140)는 호스트와 인터페이스하여 호스트로부터 메모리 동작의 요청을 수신한다. 예를 들어, 호스트 인터페이스(140)는 호스트(HOST)로부터 데이터의 독출 및 기입 등의 각종 요청을 수신하고, 이에 응답하여 메모리 장치에 대한 메모리 동작을 위한 각종 내부 신호들을 발생한다.
메모리 인터페이스(150)는 메모리 컨트롤러(100)와 메모리 장치 사이의 인터페이스를 제공할 수 있으며, 예를 들어, 기입 데이터 및 독출 데이터가 메모리 인터페이스(150)를 통해 메모리 장치와 송수신될 수 있다. 또한, 메모리 인터페이스(150)는 커맨드 및 어드레스를 메모리 장치로 제공할 수 있으며, 또한 메모리 장치로부터 각종 정보들을 수신하여 이를 메모리 컨트롤러(100) 내부로 제공할 수 있다.
버스(160)는 메모리 컨트롤러(100)의 구성 요소들 사이에 채널을 제공하도록 구성될 수 있다. 일 실시 예에서, 메모리 컨트롤러(100)의 버스(160)는 제어 버스 및 데이터 버스로 구분될 수 있다. 데이터 버스는 메모리 컨트롤러(100) 내에서 데이터를 전송하고, 제어 버스는 메모리 컨트롤러(100) 내에서 커맨드, 어드레스와 같은 제어 정보를 전송하도록 구성될 수 있다. 데이터 버스와 제어 버스는 서로 분리되며, 상호 간에 간섭하거나 영향을 주지 않을 수 있다.
도 3은 도 1의 메모리 시스템(10)에 포함된 메모리 장치(200)를 상세하게 나타내는 블록도이다.
도 3을 참조하면, 메모리 장치(200)는 메모리 셀 어레이(210), 기입/리드 회로(220), 제어 회로(230), 기준 신호 발생 회로(240), 전압 발생 회로(250), 로우 디코더(260) 및 칼럼 디코더(270)를 포함할 수 있다.
메모리 셀 어레이(210)은 복수의 메모리 셀들을 포함할 수 있고, 복수의 메모리 셀들은 복수의 제1 신호 라인들 및 복수의 제2 신호 라인들에 연결될 수 있다. 일 실시예에서, 복수의 제1 신호 라인들은 워드라인들(WL)이고, 복수의 제2 신호 라인들은 비트라인들(BL)일 수 있다. 복수의 워드라인들(WL) 및 비트라인들(BL)을 통해 각종 전압 신호나 전류 신호가 제공됨에 따라, 선택된 메모리 셀들에 대해서는 데이터가 기입되거나 독출되며, 나머지 비선택된 메모리 셀들에 대해서는 기입 동작이나 독출 동작이 수행되는 것이 방지될 수 있다. 메모리 셀 어레이(210)를 구성하는 메모리 셀들의 예시적 설명은 도 4에서 후술하겠다.
메모리 장치(200)에는 커맨드(CMD)에 수반하여 억세스할 메모리 셀을 지시하기 위한 어드레스(ADDR)가 수신될 수 있으며, 어드레스(ADDR)는 메모리 셀 어레이(210)의 워드라인들(WL)을 선택하기 위한 로우 어드레스(RA)와 메모리 셀 어레이(210)의 비트라인들(BL)을 선택하기 위한 칼럼 어드레스(CA)를 포함할 수 있다. 로우 디코더(260)는 로우 어드레스(RA)에 응답하여 워드라인 선택 동작을 수행하며, 칼럼 디코더(270)는 칼럼 어드레스(CA)에 응답하여 비트라인 선택 동작을 수행할 수 있다.
기입/리드 회로(220)는 메모리 셀 어레이(210)의 제1 신호 라인들 및/또는 제2 신호 라인들에 연결되어 메모리 셀에 데이터를 기입하거나, 메모리 셀로부터 데이터를 리드할 수 있다. 기입/리드 회로(220)는 감지 증폭기(221), 라이트 드라이버(223) 및 데이터 비교 쓰기 유닛(225)을 포함할 수 있다. 본 도면에서는, 기입/리드 회로(220)가 데이터 비교 쓰기 유닛(225)을 포함하는 것으로 도시하였으나, 이에 한정되지 않으며, 데이터 비교 쓰기 유닛(225)은 기입/리드 회로(220)와 별도의 구성으로서, 기입/리드 회로(220)의 동작을 제어하도록 구성될 수 있다.
감지 증폭기(221)는 비트라인들(BL)을 통하여 메모리 셀 어레이(1210)에 연결될 수 있다. 독출 동작 시에, 감지 증폭기(221)는 비트라인들(BL)을 통하여 데이터 전압을 수신하고, 수신된 데이터 전압을 증폭할 수 있다. 이를 위하여, 감지 증폭기(221)는 데이터 전압을 센싱 및 증폭하기 위한 복수의 센싱 앰프 회로들(SA)을 포함하도록 구현될 수 있다. 예를 들어, 각각의 센싱 엠프 회로(SA)는 데이터 전압과 기준 전압(reference voltage)을 비교하고, 비교 결과를 디지털 레벨의 데이터 신호로 출력하도록 구현될 수 있다. 하나의 센싱 엠프 회로(SA)는 메모리 셀 어레이(210)를 구성하는 하나의 메모리 베이(예를 들어, 도 4의 BAY)와 연결될 수 있다.
데이터 비교 쓰기 유닛(225)은 감지 증폭기(221) 및 라이트 드라이버(223)에 연결될 수 있다. 데이터 비교 쓰기 유닛(225)은 메모리 컨트롤러(예를 들어, 도 1의 100)로부터 데이터(DATA)를 수신할 수 있다. 데이터 비교 쓰기 유닛(225)은 제어 회로(230)의 제어 신호(CTRL_RW)에 응답하여, 비교 쓰기 동작 또는 재기입 동작을 수행하도록 감지 증폭기(221) 및 라이트 드라이버(223)를 제어할 수 있다.
예를 들어, 비교 쓰기 동작이 수행되는 경우, 데이터 비교 쓰기 유닛(225)은 기입 요청된 데이터와 메모리 셀에 저장된 데이터가 동일한 경우, 메모리 셀에 저장된 데이터를 유지하도록 라이트 드라이버(223)를 제어할 수 있다. 만약 기입 요청된 데이터와 메모리 셀에 저장된 데이터가 동일하지 않다면, 데이터 비교 쓰기 유닛(225)은 기입 요청된 데이터가 메모리 셀에 덮어쓰기 되도록 라이트 드라이버(223)를 제어할 수 있다.
또한, 예를 들어, 재기입 동작이 수행되는 경우, 데이터 비교 쓰기 유닛(225)은 메모리 셀에 저장된 데이터와 상관 없이, 기입 요청된 데이터를 메모리 셀에 기입하는 재기입 동작을 수행하도록 감지 증폭기(221) 및 라이트 드라이버(223)를 제어할 수 있다. 즉, 비교 쓰기 동작과 달리 재기입 동작이 수행되는 경우, 데이터 비교 쓰기 유닛(225)은 프리-리드 동작을 수행하지 않도록 감지 증폭기(221)를 제어하고, 기입 요청된 데이터가 대응하는 메모리 셀에 덮어쓰기 되도록 라이트 드라이버(223)를 제어할 수 있다. 예를 들어, 기입되어 있는 데이터와 새로 기입 요청된 데이터가 동일하여도 메모리 셀에 덮어쓸 수 있다. 예를 들어, 쓰기 동작이 수행되는 페이지 내의 메모리 셀들 중, 기입되어 있는 데이터와 새로 기입 요청된 데이터가 동일한 메모리 셀들 중 적어도 하나에 쓰기 펄스가 인가될 수 있다. 예를 들어, 쓰기 동작이 수행되는 페이지 내의 모든 메모리 셀들에 쓰기 동작을 위한 쓰기 펄스가 인가될 수 있다.
전압 발생 회로(250)는 기입 동작에 이용되는 라이트 전압(Vwrite)을 생성하고, 독출 동작에 이용되는 리드 전압(Vread)을 생성할 수 있다. 또한, 전압 발생 회로(250)는 리커버리 동작에 이용되는 리커버리 전압(Vrecov)을 생성할 수 있다. 라이트 전압(Vwrite)은 기입 동작에 관련된 각종 전압으로서 셋 펄스 및 리셋 펄스 등을 포함할 수 있다. 리커버리 전압(Vrecov)은 리커버리 동작에 관련된 전압으로서, 리커버리 펄스를 포함할 수 있다. 리커버리 펄스는 셋 펄스 및 리셋 펄스와 비교할 때, 전압 레벨이 서로 상이할 수 있고 또는, 펄스의 지속 시간(duration)이 서로 상이할 수 있다. 라이트 전압(Vwrite), 리드 전압(Vread) 및 리커버리 전압(Vrecov)은 칼럼 디코더(270)를 통해 비트라인들(BL)로 제공되거나, 로우 디코더(260)를 통해 워드라인들(WL)로 제공될 수 있다.
기준 신호 발생 회로(240)는 데이터 독출 동작에 관련된 각종 기준 신호들로서, 기준 전압(Vref) 및 기준 전류(Iref)를 생성할 수 있다. 예를 들어, 감지 증폭기(221)는 데이터를 판별하기 위하여 비트라인들(BL)의 일 노드(예컨대, 센싱 노드)에 연결될 수 있으며, 센싱 노드의 전압과 기준 전압(Vref)에 대한 비교 동작을 통해 데이터 값이 판별될 수 있다. 또는, 전류 센싱 방법이 적용되는 경우, 기준 신호 발생 회로(150)는 기준 전류(Iref)를 생성하여 메모리 셀 어레이(210)로 제공할 수 있으며, 상기 기준 전류(Iref)에 기인한 센싱 노드의 전압과 기준 전압(Vref)을 비교함에 의해 데이터 값이 판별될 수 있다.
기입/독출 회로(220)는 독출된 데이터에 대한 판별 결과를 제어 회로(230)로 제공할 수 있다. 제어 회로(230)는 판별 결과를 참조하여 메모리 셀 어레이(210)의 기입 및 독출 동작을 제어할 수 있다.
제어 회로(230)는 메모리 컨트롤러로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(210)에 데이터를 기입하거나 메모리 셀 어레이(210)로부터 데이터를 독출하기 위한 각종 제어 신호(CTRL_RW)를 출력할 수 있다. 또한, 제어 회로(230)는 메모리 컨트롤러로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 리커버리 동작을 수행할 수 있다. 예를 들어, 제어 회로(230)는 리커버리 커맨드(recCMD)에 대응되는 서브-셋(예를 들어, 도 1의 복수의 서브-셋들(Sub-Set1~Sub-Setz) 중 적어도 하나)에 리커버리 전압(Vrecov)이 제공되도록, 전압 발생 회로(250), 칼럼 디코더(270) 및 로우 디코더(260)를 제어할 수 있다. 예를 들어, 제어 회로(230)는 리라이트 커맨드(reWCMD)에 대응되는 서브-셋(예를 들어, 도 1의 복수의 서브-셋들(Sub-Set1~Sub-Setz) 중 적어도 하나)에 데이터가 재기입되도록, 전압 발생 회로(250), 칼럼 디코더(270) 및 로우 디코더(260)를 제어할 수 있다.
도 4는 도 3의 메모리 셀 어레이(110)의 구현 예를 나타내는 블록도이다. 도 3의 메모리 셀 어레이(210)는 메모리 타일(TILE)이 평면적으로 행 방향 및 열 방향을 따라 배열되는 메모리 타일 그룹(TILE_GR)을 포함하도록 구현될 수 있다. 이 때, 메모리 타일 그룹(TILE_GR)은 복수의 메모리 베이들(BAY)을 포함할 수 있으며, 각 메모리 베이(BAY)에는 메모리 타일들(TILE)이 배열될 수 있다. 메모리 베이(BAY)는, 도 3의 감지 증폭기(221)에 포함되는 복수의 센싱 엠프 회로들 중 하나의 센싱 엠프 회로와 연결되는 메모리 셀들로 구성될 수 있다.
도 4는 4개의 메모리 타일들(TILE1~TILE4)이 하나의 메모리 베이(BAY)를 구성하고 있는 128개의 메모리 베이들(BAY)을 보여준다. 본 개시는 이에 한정되지 않고, 메모리 베이들(BAY)의 개수 및 메모리 타일들(TILE)의 개수는 실시예에 따라 다양하게 구성될 수 있다.
도 4를 참조하면, 메모리 타일 그룹(TILE_GR)은 페이지(PAGE) 단위의 데이터가 기입 또는 독출되는 메모리 영역으로 설정될 수 있다. 하나의 페이지(PAGE)는 메모리 셀들 중 동시에 기입 동작 및 독출 동작을 수행하는 선택된 메모리 셀들의 집합일 수 있다. 페이지(PAGE)는 메모리 타일 그룹(TILE_GR)의 서로 다른 메모리 베이들(BAY1~BAY128) 각각에 포함된 메모리 셀을 포함할 수 있다. 예를 들어, 하나의 페이지(PAGE) 단위에 대응하는 데이터 비트가 128 비트들(또는 16 바이트들)라고 가정할 때, 메모리 타일 그룹(TILE_GR)에 포함된 128개 메모리 베이(BAY) 각각에서 1 비트 데이터가 기입 또는 독출될 수 있다.
하나의 서브-셋(Sub-Set)은 메모리 타일 그룹(TILE_GR)의 서로 다른 메모리 베이들(BAY1~BAY128) 각각에 포함된 메모리 셀들을 포함할 수 있다. 일 실시예에서, 하나의 서브-셋(Sub-Set)은 복수의 페이지들(PAGE)을 포함할 수 있다. 따라서, 메모리 컨트롤러가 서브-셋(Sub-Set)의 리드 카운트를 관리하는 것이 용이해질 수 있다.
일 실시예에서, 서로 다른 메모리 베이들(BAY1~BAY128) 각각에서 하나의 워드라인에 연결되는 메모리 셀들은 하나의 서브-셋(Sub-Set)에 포함될 수 있다. 하나의 타일에서 서브-셋(Sub-Set)을 구성하는 메모리 셀들에 대해서는 도 5 및 도 7에서 후술하겠다.
도 5는 도 4의 하나의 메모리 타일(TILE2)의 예시적 실시 예를 나타내는 회로도이다.
도 5를 참조하면, 메모리 타일(TILE2)은 복수의 워드라인들(WL0~WLm), 복수의 비트라인들(BL0~BLm) 및 복수의 메모리 셀들(MC)을 포함할 수 있다. 여기서, 워드라인들(WL)의 개수, 비트라인들(BL)의 개수 및 메모리 셀들(MC)의 개수는 실시 예에 따라 다양하게 변경될 수 있다.
일 실시예에 따르면, 복수의 메모리 셀들(MC)의 각각은 가변 저항 소자(R) 및 선택 소자(D)를 포함할 수 있다. 여기서, 가변 저항 소자(R)은 가변 저항 소자 또는 가변 저항 물질이라고 지칭할 수 있고, 선택 소자(D)는 스위칭 소자라고 지칭할 수 있다. 다만, 도 5에 도시된 것과 달리 복수의 메모리 셀들(MC)의 각각은 가변 저항 소자(R)만 포함하거나, 가변 저항 소자(R) 및 양 방향 다이오드를 포함하거나, 가변 저항 소자(R) 및 트랜지스터를 포함하도록 구성될 수 있다.
일 실시예에서, 가변 저항 소자(R)은 복수의 비트라인들(BL0∼BLm) 중 하나와 선택 소자(D)의 사이에 연결되며, 선택 소자(D)는 가변 저항 소자(R)과 복수의 워드라인들(WL0∼WLm) 중 하나의 사이에 연결될 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 선택 소자(D)가 복수의 비트라인들(BL0∼BLm) 중 하나와 가변 저항 소자(R) 사이에 연결되고, 가변 저항 소자(R)이 선택 소자(D)와 복수의 워드라인들(WL0∼WLm) 중 하나의 사이에 연결될 수도 있다.
선택 소자(D)는 복수의 워드라인들(WL0∼WLm) 중 어느 하나와 가변 저항 소자(R) 사이에 연결될 수 있으며, 연결된 워드라인과 비트라인에 인가되는 전압에 따라 가변 저항 소자(R)으로의 전류 공급을 제어할 수 있다. 일 실시예에서, 선택 소자(D)는 PN 접합 또는 PIN 접합 다이오드일 수 있으며, 다이오드의 애노드(anode)가 가변 저항 소자(R)에 연결되고, 다이오드의 캐소드(cathode)가 복수의 비트라인들(BL0∼BLm) 중 하나에 연결될 수 있다. 이 때, 다이오드의 애노드와 캐소드 사이의 전압 차가 다이오드의 문턱 전압보다 커지면, 다이오드가 턴 온되어 가변 저항 소자(R)에 전류가 공급될 수 있다.
도 6은 도 5의 메모리 셀(MC)의 예시적인 특성을 설명하는 도면들이다. 도 6은 메모리 셀(MC)이 1 비트로 프로그램되는 싱글 레벨 셀들의 이상적인 산포를 보여준다. 도 6에서 가로축은 저항을 나타내고, 세로축은 메모리 셀들의 개수를 나타낸다.
도 5 및 도 6을 참조하면, 메모리 셀(MC)의 가변 저항 소자(R)는 저 저항 상태(LRS) 또는 고 저항 상태(HRS)를 가질 수 있다. 메모리 셀(MC)에 셋 펄스를 인가하여 가변 저항 소자(R)를 고 저항 상태(HRS)에서 저 저항 상태(LRS)로 스위칭하는 동작을 셋 동작 또는 셋 기입 동작이라고 한다. 또한, 메모리 셀에 리셋 펄스를 인가하여 가변 저항 소자(R)를 저 저항 상태(LRS)에서 고 저항 상태(HRS)로 스위칭하는 동작을 리셋 동작 또는 리셋 기입 동작이라고 한다.
저 저항 상태(LRS)에 따른 산포와 고 저항 상태(HRS)에 따른 산포 사이의 임의의 저항을 임계 저항(Rth)으로 설정할 수 있다. 메모리 셀(MC)에 대한 독출 동작에서, 독출 결과가 임계 저항(Rth) 이상인 경우에는 고 저항 상태(HRS)인 리셋 데이터(로직 “0”)인 것으로 판단하고, 독출 결과가 임계 저항(Rth) 이하인 경우에는 저 저항 상태(LRS)인 셋 데이터(로직 “1”) 것으로 판단할 수 있다.
메모리 타일(TILE2) 중 하나의 선택된 메모리 셀(MC_sel)에서 데이터를 독출한다고 가정하면, 선택된 메모리 셀(MC_sel)에 연결된 제3 비트라인(BL2) 및 제3 워드라인(WL3)에는 각각 선택 전압이 인가될 수 있고, 이외의 비트라인들(BL0~BL1, BL3~BLm) 및 워드라인들(WL0~WL1, WL3~WLm)에는 비선택 전압이 인가될 수 있다.
선택된 메모리 셀(MC_sel)과 동일한 제3 워드라인(WL3)에 연결된 비선택된 메모리 셀들은 제3 워드라인(WL3)에 인가되는 선택 전압에 의하여 저항 값이 변하고 저항 산포 넓어지는 리드 교란이 발생할 수 있다. 리드 교란은 리드 동작을 수행하기 위해 선택된 메모리 셀들이 아닌 비선택된 메모리 셀들에 스트레스를 주는 것을 의미할 수 있다. 예를 들어, 상기 비선택된 메모리 셀들은 리드 교란에 의해 저항값이 증가할 수 있고, 저항 산포가 넓어질 수 있다. 따라서, 특정 메모리 셀과 동일한 워드라인에 연결되는 다른 메모리 셀에서의 독출 동작의 횟수가 증가될수록 상기 특정 메모리 셀의 저항 산포는 열화될 수 있다. 메모리 셀들은 로직 “1”의 셋 데이터와 로직 “0”의 리셋 데이터 사이의 센싱 마진이 감소할 수 있고, 메모리 셀들이 리셋 상태로 고정되는 문제가 발생할 수 있다.
다시 도 4 및 도 5를 참조하면, 도 5에서는 서브-셋(Sub-Set)을 구성하는 메모리 셀들 중 하나의 메모리 타일에 포함된 메모리 셀들을 도시하고 있다. 하나의 메모리 타일(TILE2)에 포함된 메모리 셀들(MC) 중에서 동일한 워드라인에 연결되는 메모리 셀들(MC)은 동일한 서브-셋(Sub-Set)에 포함될 수 있다. 일 실시예에서, 서로 다른 워드라인에 연결되는 메모리 셀들은 서로 상이한 서브-셋(Sub-Set)에 포함될 수 있다. 예를 들어, 제1 워드라인(WL0)에 연결되는 메모리 셀들(MC)은 하나의 서브-셋(Sub-Set)에 포함될 수 있고, 제2 워드라인(WL1)에 연결되는 메모리 셀들(MC)은 다른 하나의 서브-셋(Sub-Set)에 포함될 수 있고, 제m+1 워드라인(WLm)에 연결되는 메모리 셀들(MC)은 또 다른 하나의 서브-셋(Sub-Set)에 포함될 수 있다.
본 개시에 따른 메모리 컨트롤러 및 메모리 장치는, 서브-셋(Sub-Set) 단위로 리드 카운트를 관리하고 서브-셋(Sub-Set) 단위로 리커버리 동작을 수행할 수 있다.
서브-셋(Sub-Set)은 동일한 워드라인에 연결되는 메모리 셀들을 포함하므로, 서브-셋(Sub-Set)에 포함된 일부의 선택된 메모리 셀들에 대해 독출 동작을 수행할 때, 비선택된 메모리 셀들에 대해서도 리드 카운트가 증가될 수 있다. 따라서, 독출 동작의 반복 수행으로 인해 비선택된 메모리 셀임에도 선택된 메모리 셀(예를 들어, MC_sel)과 동일한 워드라인(예를 들어, 제3 워드라인(WL2)에 연결됨으로써, 비선택된 셀들에 리드 교란이 발생하는 것을 방지할 수 있다. 즉, 비선택된 메모리 셀들임에도 연결된 워드라인에 선택 전압이 인가됨으로 인해 저항 산포가 열화되는 것을 방지할 수 있다.
도 7은 도 4의 하나의 메모리 타일(TILE2)의 예시적 실시 예를 나타내는 회로도이다. 도 7은 서브-셋(Sub-Set’)을 구성하는 메모리 셀들 중 하나의 메모리 타일에 포함된 메모리 셀들을 도시한 것이다.
도 7을 참조하면, 하나의 메모리 타일(TILE2)에 포함된 메모리 셀들(MC) 중에서 동일한 워드라인에 연결되는 메모리 셀들(MC)은 동일한 서브-셋(Sub-Set')에 포함될 수 있다. 일 실시 예에서, 복수의 워드라인들(WL0~WLm) 중 일부의 워드라인들에 연결되는 메모리 셀들(MC)은 동일한 서브-셋(Sub-Set')에 포함될 수 있다. 예를 들어, 하나의 메모리 타일(TILE2)에 연결되는 워드라인들(WL0~WLm) 중 2개의 워드라인들에 연결되는 메모리 셀들(MC)은 동일한 서브-셋(Sub-Set')에 포함될 수 있다. 제1 워드라인(WL0) 및 제2 워드라인(WL1)에 연결되는 메모리 셀들(MC)은 하나의 서브-셋(Sub-Set')에 포함될 수 있고, 제3 워드라인(WL2) 및 제4 워드라인(WL3)에 연결되는 메모리 셀들(MC)은 다른 하나의 서브-셋(Sub-Set')에 포함될 수 있고, 제m 워드라인(WLm-1) 및 제m+1 워드라인(WLm)에 연결되는 메모리 셀들(MC)은 또 다른 하나의 서브-셋(Sub-Set')에 포함될 수 있다. 본 도면에서는, 메모리 타일(TILE2)에서 서브-셋(Sub-Set') 각각에 포함된 메모리 셀들은 2개의 워드라인들에 연결되는 것으로 도시하였으나, 이에 한정되지 않으며, 3개 이상의 워드라인들에 연결될 수도 있다.
본 개시에 따른 메모리 컨트롤러 및 메모리 장치는, 서브-셋(Sub-Set) 단위로 리드 카운트를 관리하고 리커버리 동작을 수행함으로써, 독출 동작의 반복 수행으로 인해 메모리 셀이 열화되는 것을 방지할 수 있다. 서브-셋(Sub-Set)은 동일한 워드라인에 연결되는 메모리 셀들을 모두 포함하므로, 서브-셋(Sub-Set)에 포함된 일부의 선택된 메모리 셀들(예를 들어, 하나의 페이지를 구성하는 메모리 셀들)에 대해 독출 동작을 수행할 때, 비선택된 메모리 셀들에 대해서도 리드 카운트가 증가될 수 있다. 따라서, 비선택된 메모리 셀들임에도 연결된 워드라인에 선택 전압이 인가됨으로 인해 저항 산포가 열화되는 것을 방지할 수 있다.
도 8은 본 개시의 예시적 실시 예에 따른 메모리 컨트롤러(100)의 동작 방법을 설명하기 위한 순서도이다.
도 1 및 도 8을 참조하면, 메모리 컨트롤러(100)는 외부의 호스트(HOST)로부터 독출 요청 및 논리 어드레스를 수신할 수 있고, 메모리 컨트롤러(100)는 독출 동작을 수행할 수 있다. 예를 들어, 플래시 변환 계층(FTL)은 논리 어드레스를 메모리 장치(200)의 물리 어드레스로 변환할 수 있다. S10 단계에서, 메모리 컨트롤러(100)는 리드 커맨드를 메모리 장치(110)로 전송할 수 있다.
S20 단계에서, 메모리 컨트롤러(100)는 전송된 리드 커맨드에 대응되는 메모리 셀들(예를 들어, 하나의 페이지를 구성하는 메모리 셀들)을 포함하는 서브-셋에 대한 리드 카운트를 증가시킬 수 있다. 예를 들어, 리드 커맨드에 대응되는 물리 어드레스에 기초하여 대응되는 서브-셋을 검출할 수 있고, 검출된 서브-셋의 리드 카운트를 증가시킬 수 있다.
일 실시예에서, 리드 커맨드가 전송되면, 메모리 컨트롤러(100)는 리드 커맨드에 대응되는 서브-셋에 대한 리드 카운트를 일정한 값만큼 증가시킬 수 있다. 일 실시예에서, 리드 커맨드가 전송되면, 메모리 컨트롤러(100)는 리드 커맨드에 대응되는 서브-셋의 물리적 어드레스(ADDR)에 따라 리드 가중치를 갖도록 리드 카운트를 증가시킬 수도 있다. 예를 들어, 메모리 셀들 중 연결되는 워드라인의 배치에 따라 리드 교란이 발생되는 정도가 달라질 수 있고, 이를 반영하여 리드 가중치를 계산할 수 있고, 리드 가중치 만큼 리드 카운트를 증가시킬 수 있다.
S30 단계에서, 메모리 컨트롤러(100)는 리드 카운트에 기초하여, 서브-셋에 대한 리커버리 동작을 수행할 수 있다. 예를 들어, 리드 카운트가 특정 값을 초과한 경우에는 초과된 리드 카운트에 대응되는 서브-셋에 대한 리커버리 동작을 수행할 수 있다. S30 단계에 대해서는 도 9 등에서 후술하겠다.
하나의 페이지에 대한 독출 동작이 수행될 때마다, 상기 페이지를 포함하는 서브-셋에 리드 교란이 발생할 수 있다. 리드 교란이 누적되면, 비선택된 메모리 셀들에 저장된 데이터가 변경되어, 데이터의 신뢰도가 보장되기 어려울 수 있다. 리커버리 동작은 변화된 저항 산포를 원래의 상태로 되돌리기 위하여 리커버리 펄스를 메모리 셀들에 인가하는 동작, 및 메모리 셀들로부터 유효 데이터를 독출하고, 독출된 데이터를 재기입하는 동작을 포함할 수 있다. 리커버리 동작이 수행되면, 리드 교란의 영향이 제거되어 데이터의 신뢰성이 회복될 수 있다.
본 개시에 따른 메모리 컨트롤러(100)는, 카운터(CNT)에 의해 관리되는 리드 카운트에 따라 서브-셋에 대한 리커버리 동작을 수행할 수 있다. 따라서, 리커버리 동작에 의해 메모리 장치(200)에 기입된 데이터의 신뢰성이 보장될 수 있다.
도 9는 본 개시의 예시적 실시 예에 따른 메모리 시스템(10)의 동작 방법을 설명하기 위한 순서도이다.
도 1 및 도 9를 참조하면, 메모리 컨트롤러(100)는 도 8의 S30 단계를 수행하기 위해 S31 단계 및 S32 단계를 수행할 수 있다. S31 단계에서, 메모리 컨트롤러(100)는 S20 단계에서 리드 카운트가 증가된 서브-셋의 리드 카운트가 제1 기준 값(N)에 도달하였는지 판단할 수 있다. 리드 카운트가 제1 기준 값(N)에 도달하지 않으면, 프로세스는 종료될 수 있다. 리드 카운트가 제1 기준 값(N)에 도달하면, 메모리 컨트롤러(100)는 S32 단계 및 S33 단계를 수행할 수 있다. 이 때, 제1 기준 값(N)은 미리 정해진 값으로 메모리 컨트롤러(100)에 저장된 값일 수 있다.
S32 단계에서, 메모리 컨트롤러(100)는 리드 카운트가 제1 기준 값(N)에 도달된 서브-셋에 대한 리커버리 커맨드(recCMD)를 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 리커버리 커맨드(recCMD) 및 상기 서브-셋에 대응되는 물리적 어드레스(ADDR)를 전송할 수 있다.
메모리 장치(200)는 리커버리 커맨드(recCMD)를 수신하여, 대응되는 서브-셋에 대한 리커버리 동작을 수행할 수 있다. S110 단계에서, 메모리 장치(200)는 서브-셋에 리커버리 전압, 즉, 리커버리 펄스를 제공할 수 있다. 이 때, 리커버리 펄스는, 메모리 셀에 데이터를 기입하기 위한 셋 펄스 및 리셋 펄스와 비교할 때, 전압 레벨이 상이할 수 있고 또는, 펄스의 지속 시간이 상이할 수 있다. 리커버리 펄스가 인가되면, 서브-셋에 포함된 메모리 셀들의 저항이 작아질 수 있고, 저항 산포의 폭이 감소될 수 있다.
S40 단계에서, 메모리 컨트롤러(100)는 서브-셋에 대한 리드 카운트를 리셋할 수 있다. 일 실시 예에서, S40 단계 및 S110 단계는 서로 병렬적으로 수행될 수 있다.
도 10은 본 개시의 예시적 실시 예에 따른 메모리 시스템(10)의 동작 방법을 설명하기 위한 순서도이다. 도 10의 S30a 단계는 도 8의 S30 단계의 일 실시 예일 수 있다.
도 1 및 도 10을 참조하면, 메모리 컨트롤러(100)는 S30a 단계를 수행하기 위해 S33a 단계 내지 S36a 단계를 수행할 수 있다. S33a 단계에서, 메모리 컨트롤러(100)는 S20 단계에서 리드 카운트가 증가된 서브-셋의 리드 카운트가 제2 기준 값(M)에 도달하였는지 판단할 수 있다. 리드 카운트가 제2 기준 값(M)에 도달하지 않으면, 프로세스는 종료될 수 있다. 리드 카운트가 제2 기준 값(M)에 도달하면, 메모리 컨트롤러(100)는 S34a 단계 내지 S36a 단계를 수행할 수 있다. 이 때, 제2 기준 값(M)은 미리 정해진 값으로 메모리 컨트롤러(100)에 저장된 값일 수 있고, 도 9의 제1 기준 값(N)과 동일할 수도 있고, 또는 상이할 수도 있다.
S34a 단계에서, 메모리 컨트롤러(100)는 리드 카운트가 제2 기준 값(M)에 도달된 서브-셋에 대한 리드 커맨드(RCMD)를 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 리드 커맨드(RCMD) 및 상기 서브-셋에 대응되는 물리적 어드레스(ADDR)를 전송할 수 있다.
S120 단계에서, 메모리 장치(200)는 리드 커맨드(RCMD)를 수신하여, 대응되는 서브-셋에 기입된 데이터를 독출할 수 있다. S130 단계에서, 메모리 장치(200)는 독출된 데이터를 메모리 컨트롤러(100)로 전송할 수 있다.
S35a 단계에서, 메모리 컨트롤러(100)는 메모리 장치(200)로부터 수신된 데이터의 에러를 정정할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 ECC 디코딩 동작을 통해 서브-셋으로부터 독출된 데이터의 에러를 정정할 수 있다.
S36a 단계에서, 메모리 컨트롤러(100)는 서브-셋에 대한 리라이트 커맨드(reWCMD) 및 에러가 정정된 데이터를 메모리 장치(200)로 전송할 수 있다. 이 때, 메모리 컨트롤러(100)는 서브-셋에 대한 물리적 어드레스를 메모리 장치(200)로 함께 전송할 수 있다.
S140 단계에서, 메모리 장치(200)는 서브-셋에 대한 리라이트 커맨드(reWCMD) 및 에러가 정정된 데이터를 수신하여, 서브-셋에 정정된 데이터를 재기입할 수 있다. 이 때, 재기입 동작은 비교 쓰기 동작이 아닌 기입 동작을 의미할 수 있다. 예를 들어, 기입되어 있는 데이터와 새로 기입 하려는 데이터가 동일하여도 해당 메모리 셀에 덮어쓰는 기입 동작을 수행할 수 있다. 예를 들어, 쓰기 동작이 수행되는 서브-셋에 포함된 페이지 내의 메모리 셀들 중, 기입되어 있는 데이터와 새로 기입 요청된 데이터가 동일한 메모리 셀들 중 적어도 하나에 쓰기 동작을 위한 쓰기 펄스가 인가될 수 있다. 예를 들어, 쓰기 동작이 수행되는 서브-셋에 포함된 페이지 내의 모든 메모리 셀들에 쓰기 동작을 위한 쓰기 펄스가 인가될 수 있다.
다만, 본 도면에서는 메모리 장치(200)가 비교 쓰기 동작이 아닌 재기입 동작을 수행하는 것으로 도시하였으나, 이에 한정되는 것은 아니다. 일 실시예에서, S36a 단계에서 메모리 컨트롤러(100)는 서브-셋에 대한 라이트 커맨드(WCMD) 및 에러가 정정된 데이터를 메모리 장치(200)로 전송할 수 있고, S140 단계에서 메모리 장치(200)는 정정된 데이터에 대한 비교 쓰기 동작을 서브-셋에 수행할 수도 있다.
S40 단계에서, 메모리 컨트롤러(100)는 서브-셋에 대한 리드 카운트를 리셋할 수 있다. 일 실시예에서, S40 단계 및 S140 단계는 병렬적으로 수행될 수 있다.
도 11은 본 개시의 예시적 실시 예에 따른 메모리 시스템(10)의 동작 방법을 설명하기 위한 순서도이다. 도 11의 S30b 단계는 도 8의 S30 단계의 일 실시 예일 수 있다.
도 1 및 도 11을 참조하면, 메모리 컨트롤러(100)는 S30b 단계를 수행하기 위해 S31b 단계 내지 S37b 단계를 수행할 수 있다. S31b 단계에서, 메모리 컨트롤러(100)는 S20 단계에서 리드 카운트가 증가된 서브-셋의 리드 카운트가 제1 기준 값(N)에 도달하였는지 판단할 수 있다. 리드 카운트가 제1 기준 값(N)에 도달하지 않으면, 프로세스는 종료될 수 있다. 리드 카운트가 제1 기준 값(N)에 도달하면, 메모리 컨트롤러(100)는 S32b 단계 및 S33b 단계를 수행할 수 있다.
S32b 단계에서, 메모리 컨트롤러(100)는 리드 카운트가 제1 기준 값(N)에 도달된 서브-셋에 대한 리커버리 커맨드(recCMD)를 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 리커버리 커맨드(recCMD) 및 상기 서브-셋에 대응되는 물리적 어드레스(ADDR)를 전송할 수 있다.
메모리 장치(200)는 리커버리 커맨드(recCMD)를 수신하여, 대응되는 서브-셋에 대한 리커버리 동작을 수행할 수 있다. S110 단계에서, 메모리 장치(200)는 서브-셋에 리커버리 펄스를 제공할 수 있다.
S33b 단계에서, 메모리 컨트롤러(100)는 서브-셋의 리드 카운트가 제2 기준 값(M)에 도달하였는지 판단할 수 있다. 리드 카운트가 제2 기준 값(M)에 도달하지 않으면, 프로세스는 종료될 수 있다. 리드 카운트가 제2 기준 값(M)에 도달하면, 메모리 컨트롤러(100)는 S34b 단계 내지 S38b 단계를 수행할 수 있다. 이 때, 제2 기준 값(M)은 제1 기준 값(N)보다 큰 값일 수 있다. 즉, 메모리 컨트롤러(100)가 S32b 단계를 수행하고, 메모리 장치(200)가 S110 단계를 수행한 후에도 도 8의 S10 단계 및 S20 단계가 더 수행됨으로써, 서브-셋에 대한 리드 카운트가 제1 기준 값(N)으로부터 증가되어 제2 기준 값(M)에 도달할 수 있다.
S34b 단계에서, 메모리 컨트롤러(100)는 리드 카운트가 제2 기준 값(M)에 도달된 서브-셋에 대한 리드 커맨드(RCMD)를 메모리 장치(200)로 전송할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 리드 커맨드(RCMD) 및 상기 서브-셋에 대응되는 물리적 어드레스(ADDR)를 전송할 수 있다.
S120 단계에서, 메모리 장치(200)는 리드 커맨드(RCMD)를 수신하여, 대응되는 서브-셋에 기입된 데이터를 독출할 수 있다. S130 단계에서, 메모리 장치(200)는 독출된 데이터를 메모리 컨트롤러(100)로 전송할 수 있다.
S35b 단계에서, 메모리 컨트롤러(100)는 메모리 장치(200)로부터 수신된 데이터의 에러를 정정할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 ECC 디코딩 동작을 통해 서브-셋으로부터 독출된 데이터의 에러를 정정할 수 있다.
S36b 단계에서, 메모리 컨트롤러(100)는 서브-셋에 대한 리라이트 커맨드(reWCMD) 및 에러가 정정된 데이터를 메모리 장치(200)로 전송할 수 있다. 이 때, 메모리 컨트롤러(100)는 서브-셋에 대한 물리적 어드레스를 메모리 장치(200)로 함께 전송할 수 있다.
S140 단계에서, 메모리 장치(200)는 서브-셋에 대한 리라이트 커맨드(reWCMD) 및 에러가 정정된 데이터를 수신하여, 서브-셋에 정정된 데이터를 재기입할 수 있다. 이 때, 재기입 동작은 비교 쓰기 동작이 아닌 기입 동작을 의미할 수 있다. 예를 들어, 쓰기 동작이 수행되는 서브-셋에 포함된 페이지 내의 메모리 셀들 중, 기입되어 있는 데이터와 새로 기입 요청된 데이터가 동일한 메모리 셀들 중 적어도 하나에 쓰기 동작을 위한 쓰기 펄스가 인가될 수 있다. 예를 들어, 쓰기 동작이 수행되는 서브-셋에 포함된 페이지 내의 모든 메모리 셀들에 쓰기 동작을 위한 쓰기 펄스가 인가될 수 있다.
다만, 본 도면에서는 메모리 장치(200)가 비교 쓰기 동작이 아닌 재기입 동작을 수행하는 것으로 도시하였으나, 이에 한정되는 것은 아니다. 일 실시예에서, S36b 단계에서 메모리 컨트롤러(100)는 서브-셋에 대한 라이트 커맨드(WCMD) 및 에러가 정정된 데이터를 메모리 장치(200)로 전송할 수 있고, S140 단계에서 메모리 장치(200)는 정정된 데이터에 대한 비교 쓰기 동작을 서브-셋에 수행할 수도 있다.
S40 단계에서, 메모리 컨트롤러(100)는 서브-셋에 대한 리드 카운트를 리셋할 수 있다. 일 실시예에서, S40 단계 및 S140 단계는 병렬적으로 수행될 수 있다.
도 12는 본 개시의 예시적 실시 예에 따른 메모리 컨트롤러(100)의 동작 방법을 설명하기 위한 순서도이다. 도 12에서, 도 8에서와 동일한 부호에 대해서는 중복되는 설명을 생략하겠다.
도 1 및 도 12를 참조하면, 메모리 컨트롤러(100)는 S30 단계의 리커버리 동작을 수행하기 전에 S21 단계, S23 단계, 및 S25 단계를 수행할 수 있다. 이 때, S30 단계는, 도 9의 S30 단계, 도 10의 S30a 단계 및 도 11의 S30b 단계 중 하나일 수 있다.
S21 단계에서, 메모리 컨트롤러(100)는 호스트(HOST)로부터 S20 단계에서 리드 카운트가 증가된 특정 서브-셋에 대한 요청을 수신하였는지 확인할 수 있다. 서브-셋에 대한 요청이 수신되지 않은 경우에 메모리 컨트롤러(100)는 S30 단계에 따른 리커버리 동작을 수행할 수 있다.
메모리 컨트롤러(100)가 호스트(HOST)로부터 서브-셋에 대한 요청을 수신한 경우에는, S21 단계에서 메모리 컨트롤러(100)는 호스트(HOST)로부터 서브-셋에 대한 독출 요청을 수신하였는지 확인할 수 있다. 서브-셋에 대한 독출 요청이 수신된 경우에는 메모리 컨트롤러(100)는 우선적으로 S30 단계를 수행할 수 있다. 즉, 호스트(HOST)로부터 서브-셋에 포함된 메모리 셀들에 대한 독출 요청이 있는 경우에는, 메모리 컨트롤러(100)는 독출 요청에 따른 독출 동작을 수행하기 전에 리커버리 동작을 우선적으로 수행할 수 있다. 메모리 컨트롤러(100)는 S30 단계에 따른 리커버리 동작이 완료된 후에 독출 요청에 따른 독출 동작을 수행할 수 있다. 서브-셋에 포함된 메모리 셀들에 대한 독출 동작을 수행하기 전에 리커버리 동작을 수행함으로써, 서브-셋에 기입된 데이터의 신뢰도를 향상시킬 수 있다.
메모리 컨트롤러(100)가 서브-셋에 대한 독출 요청이 아닌 요청(예를 들어, 기입 요청)을 수신한 경우에는, 메모리 컨트롤러(100)는 S25 단계를 수행할 수 있다. S25 단계에서, 메모리 컨트롤러(100)는 호스트(HOST)로부터의 요청에 따른 서브-셋에 대한 동작을 수행할 수 있다. 메모리 컨트롤러(100)는 S25 단계가 완료되면, S30 단계를 수행할 수 있다. 즉, 호스트(HOST)로부터 서브-셋에 포함된 메모리 셀들에 대한 독출 요청이 아닌 요청이 있는 경우에는, 메모리 컨트롤러(100)는 요청에 따른 동작을 수행한 후에, S30 단계를 수행할 수 있다.
본 개시는 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
10: 메모리 시스템
100: 메모리 컨트롤러
200: 메모리 장치

Claims (10)

  1. 복수의 서브-셋들을 구성하는 복수의 메모리 셀들을 포함하는 메모리 장치;
    상기 메모리 장치를 제어하는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는,
    상기 메모리 장치가 수행하는 독출 동작의 횟수에 대한 리드 카운트를 서브-셋 단위로 관리하고,
    상기 복수의 서브-셋들 중 기준 값을 만족하는 리드 카운트를 갖는 서브-셋을 식별하고,
    상기 식별된 서브-셋에 대한 리커버리 동작을 수행하도록 상기 메모리 장치를 제어하고,
    상기 복수의 서브-셋들 각각은 복수의 페이지들을 포함하고,
    상기 복수의 페이지들 각각은 상기 복수의 메모리 셀들에서 독출 동작이 수행되는 단위이고,
    상기 리드 카운트가 제1 기준 값에 도달하는 경우, 상기 메모리 장치는 상기 리드 카운트에 대응되는 상기 서브-셋에 리커버리 펄스를 제공하는 것을 특징으로 하는 메모리 시스템.
  2. 제1 항에 있어서,
    상기 복수의 메모리 셀들 중 동일한 워드라인에 연결되는 메모리 셀들은 동일한 서브-셋에 포함되는 것을 특징으로 하는 메모리 시스템.
  3. 제1 항에 있어서,
    상기 리커버리 펄스는, 상기 메모리 장치가 데이터를 기입하기 위해 선택된 메모리 셀들에 제공되는 펄스와 전압 레벨 또는 펄스 지속 시간이 서로 상이한 것을 특징으로 하는 메모리 시스템.
  4. 제1 항에 있어서,
    상기 리드 카운트가 제2 기준 값에 도달하는 경우, 상기 메모리 장치는 상기 리드 카운트에 대응되는 상기 서브-셋에 기입된 데이터를 독출하여 상기 메모리 컨트롤러로 전송하는 것을 특징으로 하는 메모리 시스템.
  5. 제4 항에 있어서,
    상기 메모리 컨트롤러는, 상기 서브-셋으로부터 독출된 데이터를 수신하여 에러를 정정하고, 에러 정정 데이터를 상기 메모리 장치로 전송하는 것을 특징으로 하는 메모리 시스템.
  6. 제5 항에 있어서,
    상기 메모리 장치는, 상기 에러 정정 데이터를 상기 서브-셋에 기입하는 것을 특징으로 하는 메모리 시스템.
  7. 제6 항에 있어서,
    상기 메모리 장치는, 상기 서브-셋 중에서, 상기 에러 정정 데이터 및 상기 독출된 데이터가 동일한 메모리 셀에 상기 에러 정정 데이터를 재기입하는 것을 특징으로 하는 메모리 시스템.
  8. 복수의 메모리 셀들을 포함하는 메모리 장치의 동작을 제어하는 메모리 컨트롤러의 동작 방법으로서,
    상기 메모리 장치로 리드 커맨드를 전송하는 단계;
    상기 리드 커맨드에 대응되는 메모리 셀들을 포함하는 서브-셋에 대한 리드 카운트를 증가시키는 단계;
    상기 서브-셋에 대한 리드 카운트가 기준 값을 만족하는지 판단하는 단계; 및
    상기 리드 카운트가 기준 값을 만족하는지 판단하는 결과에 기초하여 상기 서브-셋에 대한 리커버리 동작을 수행하는 단계;를 포함하고,
    상기 서브-셋은 복수의 페이지들을 포함하고,
    상기 복수의 페이지들 각각은 상기 복수의 메모리 셀들에서 독출 동작이 수행되는 단위이고,
    상기 리커버리 동작을 수행하는 단계는,
    상기 리드 카운트가 제1 기준 값에 도달하였는지 판단하는 단계;
    상기 리드 카운트가 상기 제1 기준 값에 도달한 경우, 상기 서브-셋에 대한 리드 커맨드를 전송하는 단계;
    상기 서브-셋으로부터 독출된 데이터의 에러를 정정하는 단계; 및
    상기 서브-셋에 정정된 데이터가 재기입되도록 상기 메모리 장치로 상기 서브-셋에 대한 리라이트 커맨드 및 상기 정정된 데이터를 전송하는 단계;를 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작 방법.
  9. 제8 항에 있어서,
    상기 리커버리 동작을 수행하는 단계는,
    상기 리드 카운트가 제1 기준 값에 도달하였는지 판단하는 단계; 및
    상기 리드 카운트가 상기 제1 기준 값에 도달한 경우, 상기 서브-셋에 리커버리 펄스가 제공되도록 상기 메모리 장치로 리커버리 커맨드를 전송하는 단계; 를 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작 방법.
  10. 제8 항에 있어서,
    상기 리커버리 동작을 수행하는 단계가 완료된 후, 상기 리드 카운트를 리셋하는 단계;를 더 포함하는 것을 특징으로 하는 메모리 컨트롤러의 동작 방법.
KR1020180141955A 2018-11-16 2018-11-16 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템 KR102599046B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180141955A KR102599046B1 (ko) 2018-11-16 2018-11-16 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템
US16/594,400 US11307918B2 (en) 2018-11-16 2019-10-07 Memory controller performing recovery operation, operating method of the same, and memory system including the same
CN201911104897.1A CN111198657A (zh) 2018-11-16 2019-11-13 存储器控制器、操作存储器控制器的方法和存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180141955A KR102599046B1 (ko) 2018-11-16 2018-11-16 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20200057479A KR20200057479A (ko) 2020-05-26
KR102599046B1 true KR102599046B1 (ko) 2023-11-06

Family

ID=70726349

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180141955A KR102599046B1 (ko) 2018-11-16 2018-11-16 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템

Country Status (3)

Country Link
US (1) US11307918B2 (ko)
KR (1) KR102599046B1 (ko)
CN (1) CN111198657A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102430828B1 (ko) * 2020-06-05 2022-08-09 울산과학기술원 저항성 메모리 기반의 뉴럴 네트워크 가속기에 적용되는 연산 오차 보정 장치 및 그 방법
US11437119B2 (en) * 2020-08-19 2022-09-06 Micron Technology, Inc. Error read flow component

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5661227B2 (ja) 2007-02-07 2015-01-28 株式会社メガチップス メモリコントローラ
US7952928B2 (en) 2008-05-27 2011-05-31 Sandisk Il Ltd. Increasing read throughput in non-volatile memory
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
JP5788183B2 (ja) * 2010-02-17 2015-09-30 三星電子株式会社Samsung Electronics Co.,Ltd. 不揮発性メモリ装置、それの動作方法、そしてそれを含むメモリシステム
KR101692520B1 (ko) 2010-02-17 2017-01-04 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
EP2780912B1 (en) 2011-11-18 2016-10-26 SanDisk Technologies LLC Non-volatile storage with data recovery
US8838883B2 (en) * 2012-04-13 2014-09-16 Sandisk Technologies Inc. System and method of adjusting a programming step size for a block of a memory
TWI525635B (zh) * 2013-12-17 2016-03-11 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
US9652381B2 (en) * 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
KR102233074B1 (ko) * 2014-10-08 2021-03-30 삼성전자주식회사 저장 장치 및 그것의 신뢰성 검증 방법
US20160118132A1 (en) * 2014-10-27 2016-04-28 Sandisk Enterprise Ip Llc Low Impact Read Disturb Handling
KR102513505B1 (ko) * 2016-01-29 2023-03-24 에스케이하이닉스 주식회사 비휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치의 동작 방법
US9910606B2 (en) * 2016-03-23 2018-03-06 Seagate Technology Llc End of life extension of solid state memory
US9589634B1 (en) 2016-03-31 2017-03-07 Intel Corporation Techniques to mitigate bias drift for a memory device
KR102606490B1 (ko) 2016-06-30 2023-11-30 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
US10657014B2 (en) * 2017-02-27 2020-05-19 Everspin Technologies, Inc. Methods for monitoring and managing memory devices
US10340016B2 (en) * 2017-06-26 2019-07-02 Micron Technology, Inc. Methods of error-based read disturb mitigation and memory devices utilizing the same
US10983890B2 (en) * 2018-10-09 2021-04-20 Micron Technology, Inc. Real time trigger rate monitoring in a memory sub-system

Also Published As

Publication number Publication date
KR20200057479A (ko) 2020-05-26
CN111198657A (zh) 2020-05-26
US20200159602A1 (en) 2020-05-21
US11307918B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
US10629286B2 (en) Memory devices, memory systems and methods of operating memory devices
KR20190139082A (ko) 메모리 장치의 비트 에러율 균등화 방법
KR101925384B1 (ko) 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법
US8004898B2 (en) Nonvolatile memory device, program method thereof, and memory system including the same
KR102261817B1 (ko) 다수의 레이어들을 포함하는 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 시스템의 동작방법
JP2017073151A (ja) ソリッドステートドライブ内の下位ページデータ復旧を行うシステム及び方法
US11120872B2 (en) Resistive memory devices and methods of operating resistive memory devices
KR102239868B1 (ko) 메모리 시스템 및 그것의 동작 방법
KR20160010211A (ko) 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 장치의 동작방법
JP2012069199A (ja) 半導体記憶装置
US20160078966A1 (en) Method of performing wear management in non-volatile memory devices
KR20190053646A (ko) 메모리 콘트롤러, 이를 포함하는 반도체 메모리 시스템 및 그 구동 방법
US11043268B2 (en) Resistive memory devices and methods of operating resistive memory devices including adjustment of current path resistance of a selected memory cell in a resistive memory device
US11238952B2 (en) Memory system, memory controller, and method of operating memory system
KR102599046B1 (ko) 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템
CN108376551B (zh) 存储装置及对其数据进行刷新的方法
KR20200099024A (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 장치의 동작 방법
KR20200056872A (ko) 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US11321170B2 (en) Memory system, memory controller, and method for operating memory system
KR20100045739A (ko) 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
KR20200008998A (ko) 메모리 장치 및 메모리 장치의 제어 방법
CN112786091A (zh) 非易失性存储器装置及其写入方法
KR20200074872A (ko) 에너지 효율적인 pram 어레이 기입 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
US20180322940A1 (en) Memory system and operation method of the same
KR102341698B1 (ko) 메모리 동작을 위한 전용 명령

Legal Events

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