KR102599047B1 - 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 - Google Patents

데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 Download PDF

Info

Publication number
KR102599047B1
KR102599047B1 KR1020180139398A KR20180139398A KR102599047B1 KR 102599047 B1 KR102599047 B1 KR 102599047B1 KR 1020180139398 A KR1020180139398 A KR 1020180139398A KR 20180139398 A KR20180139398 A KR 20180139398A KR 102599047 B1 KR102599047 B1 KR 102599047B1
Authority
KR
South Korea
Prior art keywords
memory
chip
reliability
indicator
error
Prior art date
Application number
KR1020180139398A
Other languages
English (en)
Other versions
KR20200055588A (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 KR1020180139398A priority Critical patent/KR102599047B1/ko
Priority to US16/407,881 priority patent/US11036577B2/en
Priority to CN201910706172.3A priority patent/CN111179998A/zh
Publication of KR20200055588A publication Critical patent/KR20200055588A/ko
Priority to US17/318,643 priority patent/US11630724B2/en
Application granted granted Critical
Publication of KR102599047B1 publication Critical patent/KR102599047B1/ko

Links

Images

Classifications

    • 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
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/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/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
    • 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
    • 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/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/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis

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)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 메모리 컨트롤러는 메모리 장치로부터 독출된 코드워드에 대한 에러 검출을 수행하는 ECC(Error Correction Code) 회로 및 상기 다수의 메모리 칩들 중 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정하고, 상기 에러 검출 결과에 기반하여 상기 인디케이터 칩에서의 에러 발생을 모니터링하며, 상기 모니터링 결과에 따라 상기 메모리 장치의 신뢰성이 저하되었음을 나타내는 신뢰성 저하 정보를 출력하는 신뢰성 판단기를 구비하는 것을 특징으로 한다.

Description

데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법{Memory Controller including ECC circuit, Memory System having the same and Operating Method of memory System}
본 개시의 기술적 사상은 메모리 컨트롤러에 관한 것으로서, 상세하게는 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법에 관한 것이다.
불휘발성 메모리 장치로서 플래시 메모리와 함께, 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은 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 2a,b는 도 1의 메모리 영역에 구비되는 메모리 셀 어레이의 일 구현 예를 나타내는 회로도이다.
도 3은 도 1의 신뢰성 판단기의 일 구현 예를 나타내는 블록도이다.
도 4는 본 발명의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 5는 본 발명의 예시적인 실시예에 따른 메모리 컨트롤러의 동작방법을 나타내는 플로우차트이다.
도 6 내지 도 9a,b는 인디케이터 칩을 설정하는 다양한 실시예들을 나타내는 도면이다.
도 10 및 도 11은 본 발명의 다양한 실시예에 따른 신뢰성 저하 정보의 출력 동작을 나타내는 플로우차트이다.
도 12 및 도 13은 본 발명의 또 다른 변형 가능한 실시예에 따른 메모리 시스템의 동작방법을 나타내는 도면이다.
도 14는 본 발명의 또 다른 변형 가능한 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 15는 본 발명의 또 다른 변형 가능한 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 16은 본 발명의 예시적인 실시예에 따른 메모리 컨트롤러의 구현 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 메모리 시스템을 나타내는 블록도이다. 본 발명의 실시예에서, 메모리 장치(200)는 저항성 메모리 셀들을 포함함에 따라 저항성 메모리 장치로 지칭될 수 있다. 또는, 본 발명의 실시예에서 상기 메모리 장치(200)는 다양한 종류의 메모리 셀들을 포함할 수 있으며, 상기 메모리 셀들이 복수의 제1 신호 라인들 및 복수의 제2 신호 라인들이 교차하는 영역에 배치됨에 따라, 상기 메모리 장치(200)는 크로스 포인트(cross-point) 메모리 장치로 지칭될 수도 있다. 이하의 실시예들에서는 메모리 장치(200)가 저항성 메모리 장치인 것으로 가정될 것이나, 본 발명의 실시예들은 기록 및/또는 소거 사이클이 증가할수록 그 신뢰성이 저하될 수 있는 다양한 종류의 메모리 장치에 적용이 가능하다. 일 예로서, 본 발명의 실시예들은 휘발성 메모리 장치나 플래시 메모리 장치 등 다양한 종류의 메모리 장치에 적용될 수도 있을 것이다.
한편, 도 1에서의 메모리 장치(200)는 다양한 형태로 구현될 수 있다. 일 예로서, 메모리 장치(200)는 하나의 메모리 칩으로 구현되는 장치일 수 있다. 또는, 메모리 장치(200)는 다수의 메모리 칩들을 포함하는 장치로 정의될 수도 있다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 콘트롤러(100) 및 메모리 장치(200)를 포함할 수 있다. 메모리 장치(200)는 다수의 메모리 영역들을 포함할 수 있으며, 제1 내지 제N 메모리 영역들(210_1 ~ 210_N)이 예시된다. 메모리 콘트롤러(100)는 제1 내지 제N 메모리 영역들(210_1 ~ 210_N)에 대한 메모리 동작을 제어할 수 있다. 예컨대, 소정 단위의 데이터가 제1 내지 제N 메모리 영역들(210_1 ~ 210_N)에 분산되어 기록되거나, 제1 내지 제N 메모리 영역들(210_1 ~ 210_N)로부터 소정 단위의 데이터가 독출될 수 있다.
예시적인 실시예에 따라, 메모리 장치(200)는 다수의 메모리 칩들을 포함하고, 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 각각은 메모리 칩에 해당할 수 있다. 각각의 메모리 칩은 데이터를 저장하는 메모리 셀 어레이와, 메모리 동작을 수행하기 위한 주변 회로로서 기록/독출 회로, 제어 로직(이상, 미도시) 등의 회로들을 포함할 수 있다.
다양한 구현 예로서, 메모리 장치(200)는 다수의 메모리 칩들이 모듈 보드 상에 장착된 메모리 모듈일 수 있다. 또는, 메모리 장치(200)는 다수의 메모리 칩들을 포함하는 반도체 패키지일 수 있으며, 메모리 칩들은 반도체 패키지 내에 다이 형태로 적층된 구조를 가질 수 있으며, 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 각각은 반도체 패키지 내에 포함된 메모리 칩일 수 있다.
또는, 메모리 장치(200)는 다수의 반도체 레이어들을 포함하는 하나의 반도체 칩일 수도 있다. 이 때, 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 각각은 반도체 레이어일 수 있다. 또는, 메모리 장치(200)는 하나의 반도체 레이어를 포함하고, 반도체 레이어가 다수의 셀 블록들을 포함하는 메모리 셀 어레이를 구비할 때, 상기 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 각각은 셀 블록에 해당할 수도 있다.
메모리 콘트롤러(100)는 프로세서(110), ECC 회로(120) 및 신뢰성 판단기(130)를 포함할 수 있으며, 프로세서(110)의 제어에 기반하여 메모리 콘트롤러(100)는 하드웨어, 소프트웨어 및 이들의 조합에 기반하는 방식으로 메모리 동작을 제어할 수 있다.
메모리 콘트롤러(100)는 호스트(Host)로부터의 기록/독출 요청에 응답하여 메모리 장치(200)에 저장된 데이터를 독출하거나, 또는 메모리 장치(200)에 데이터를 기록하도록 메모리 장치(200)를 제어할 수 있다. 구체적으로, 메모리 콘트롤러(100)는 메모리 장치(200)에 어드레스(ADDR), 커맨드(CMD) 및 제어 신호(CTRL)를 제공함으로써, 메모리 장치(200)에 대한 프로그램(program)(또는 기록), 독출(read) 및 소거(erase) 동작을 제어할 수 있다. 또한, 기록될 데이터(DATA)와 독출된 데이터(DATA)가 메모리 콘트롤러(100)와 메모리 장치(200) 사이에서 송수신될 수 있다.
도시되지는 않았으나, 메모리 콘트롤러(100)는 램(RAM), 호스트 인터페이스(host interface) 및 메모리 인터페이스(memory interface)를 포함할 수 있다. 램(RAM)은 프로세서(110)의 동작 메모리로서 이용될 수 있다. 프로세서(110)는 메모리 콘트롤러(100)의 전반적인 동작을 제어할 수 있다. 호스트 인터페이스는 호스트(Host) 및 메모리 콘트롤러(100) 사이의 데이터 교환을 수행하기 위한 프로토콜(protocol)을 포함할 수 있다. 예를 들어, 메모리 콘트롤러(100)는 USB, MMC, PCI-E, ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI, ESDI, 그리고 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(HOST)와 통신하도록 구성될 수 있다.
제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 각각은 복수의 제1 신호 라인들과 복수의 제2 신호 라인들이 교차하는 영역들에 각각 배치되는 복수의 메모리 셀들(미도시)을 포함할 수 있다. 일 실시예에서, 복수의 제1 신호 라인들은 복수의 비트 라인들일 수 있고, 복수의 제2 신호 라인들은 복수의 워드 라인들일 수 있다. 또한, 복수의 메모리 셀들 각각은 하나의 비트를 저장하는 싱글 레벨 셀(SLC, single level cell)일 수 있으며, 또는 적어도 2 비트 이상의 데이터를 저장할 수 있는 멀티 레벨 셀(MLC, multi level cell)일 수 있다.
하나의 메모리 셀에 하나의 비트의 데이터가 기록되는 경우, 메모리 셀들은 기록된 데이터에 따라 두 개의 저항 산포를 가질 수 있다. 또는, 하나의 메모리 셀에 2 개의 비트의 데이터가 기록되는 경우, 메모리 셀들은 기록된 데이터에 따라 네 개의 저항 산포를 가질 수 있다. 또 다른 실시예에서, 하나의 메모리 셀에 3 비트의 데이터가 저장되는 트리플 레벨 셀(TLC, triple level cell)의 경우, 메모리 셀들은 기록된 데이터에 따라 여덟 개의 저항 산포를 가질 수 있다 그러나, 본 발명은 이에 한정되지 않고, 다른 실시예에서, 메모리 셀들은 4 비트 이상의 데이터를 각각 저장할 수 있는 메모리 셀들을 포함할 수 있다.
한편, 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 각각은 가변 저항 소자(미도시)를 포함하는 저항성 메모리 셀들을 포함할 수 있다. 예를 들어, 가변 저항 소자가 상변화(phase change) 물질(GST, Ge-Sb-Te)로서 온도에 따라 저항이 변화하는 경우에는 저항성 메모리 장치는 PRAM이 될 수 있다. 다른 예를 들어, 가변 저항 소자가 상부 전극, 하부 전극 및 그 사이에 있는 전이금속 산화물(complex metal oxide)로 형성된 경우에는 저항성 메모리 장치는 RRAM이 될 수 있다. 또 다른 예를 들어, 가변 저항 소자가 자성체의 상부 전극, 자성체의 하부 전극 및 그 사이에 있는 유전체로 형성된 경우에는 저항성 메모리 장치는 MRAM이 될 수 있다.
메모리 컨트롤러(100)는 메모리 장치(200)로부터의 독출 데이터(DATA)에 대한 에러 검출 및 정정 동작을 수행하는 ECC(Error Correction Code) 회로(120)를 포함할 수 있으며, 에러 정정된 독출 데이터(DATA)를 호스트로 제공할 수 있다. 예시적인 실시예에 따라, ECC 회로(120)는 호스트로부터의 노멀 데이터를 이용한 ECC 인코딩 처리를 통해 패리티 데이터를 생성할 수 있으며, 노멀 데이터와 패리티 데이터가 코드워드를 구성할 수 있다. 즉, 메모리 컨트롤러(100)는 코드워드 단위로 데이터 기록 및 독출 동작을 수행할 수 있으며, 이하의 실시예들에서 데이터(DATA)와 코드워드의 용어는 혼용되어 사용 가능할 것이다.
본 발명의 예시적인 실시예에 따라, 신뢰성 판단기(130)는 메모리 장치(200)의 신뢰성 저하 가능성을 판단하고, 판단 결과에 따른 신뢰성 저하 정보(Info_F)를 출력할 수 있다. 일 예로서, 신뢰성 판단기(130)는 인디케이터 설정기(131)를 포함할 수 있으며, 인디케이터 설정기(131)는 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 중 상대적으로 신뢰성이 낮은(또는, 수명이 짧은) 메모리 영역을 인디케이터로서 설정할 수 있다.
제1 메모리 영역이 인디케이터로 설정된 경우를 가정하면, 상대적으로 수명이 짧은 제1 메모리 영역으로부터 독출된 데이터(DATA)는 다른 메모리 영역으로부터 독출된 데이터(DATA)에 비해 에러 발생 가능성이 높으며, 일 예로서 다른 메모리 영역으로부터 독출된 데이터(DATA)에 에러가 발생되기 전에 제1 메모리 영역으로부터 독출된 데이터(DATA)에 에러가 먼저 발생될 수 있다. 신뢰성 판단기(130)는 제1 메모리 영역으로부터 독출된 데이터(DATA)의 에러 발생을 모니터링하고, 모니터링 결과에 따라 메모리 장치(200)의 신뢰성이 저하되었음을 나타내는(또는, 메모리 장치(200)의 수명이 다하였음을 나타내는) 신뢰성 저하 정보(Info_F)를 출력할 수 있다.
일 동작 예로서, 신뢰성 판단기(130)는 제1 메모리 영역으로부터 독출된 데이터(DATA)의 에러 발생 빈도나 비트 에러율(Bit Error Rate, BER) 등을 모니터링함으로써 신뢰성 저하 정보(Info_F)를 출력할 수 있다. 예컨대, 신뢰성 판단기(130)는 제1 메모리 영역으로부터 독출된 데이터(DATA)에 에러가 발생된 경우에 신뢰성 저하 정보(Info_F)를 출력할 수 있다. 또는, 신뢰성 판단기(130)는 제1 메모리 영역으로부터 독출된 데이터(DATA)의 에러 발생 횟수를 카운팅하고, 에러 발생 빈도가 소정의 기준값을 초과하였는지 여부에 따라 신뢰성 저하 정보(Info_F)를 출력할 수 있다. 또는, 신뢰성 판단기(130)는 제1 메모리 영역으로부터 독출된 소정의 사이즈의 데이터(DATA)에 기준 개수를 초과하는 에러가 발생된 경우에 신뢰성 저하 정보(Info_F)를 출력할 수 있다. 또는, 신뢰성 판단기(130)는 제1 메모리 영역으로부터 독출된 데이터(DATA)의 에러 발생 빈도를 다른 메모리 영역들과 비교하고, 그 비교 결과에 기반하여 신뢰성 저하 정보(Info_F)를 출력할 수도 있을 것이다.
제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 중 인디케이터는 다양한 방식을 통해 설정될 수 있다. 일 예로서, 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 각각은 그 제조 공정에서의 테스트 과정을 통해 신뢰성 정도가 측정될 수 있으며, 신뢰성을 나타내는 정보(예컨대, 수명 정보)가 메모리 장치(200)에 저장될 수 있다. 메모리 컨트롤러(100)는 메모리 장치(200)로부터 제공되는 수명 정보를 통해 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 중 상대적으로 신뢰성이 낮은 적어도 하나의 메모리 영역을 인디케이터로 설정할 수 있다. 또는, 메모리 컨트롤러(100)가 메모리 장치(200)을 제어함에 의해 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 중 상대적으로 신뢰성이 낮은 메모리 영역을 판단할 수 있으며, 또는 메모리 컨트롤러(100)는 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 중 임의의 메모리 영역의 신뢰성을 인위적으로 저하시킬 수 있다. 이외에도, 다양한 방법들을 통해 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 중 적어도 하나의 메모리 영역을 인디케이터로 설정할 수 있다.
일 예로서, 메모리 장치(200)가 다수의 메모리 칩들을 포함하는 장치인 경우, 적어도 하나의 메모리 칩이 인디케이터로 설정될 수 있으며, 이 때 인디케이터로 설정된 메모리 칩은 인디케이터 칩으로 지칭될 수 있다.
메모리 컨트롤러(100)가 메모리 장치(200)에서 실제 데이터가 손실될 수 있는 가능성을 미리 예측할 수 있으며, 실제 데이터가 손실될 수 있는 시점의 이전에 신뢰성 저하 정보(Info_F)를 호스트(HOST)로 제공할 수 있다. 이를 통해, 적절한 시점에 메모리 장치(200)의 교체 필요성을 나타내는 정보를 사용자에게 제공할 수 있다.
전술한 실시예에서, 메모리 장치(200)의 신뢰성이 저하되었다는 것은 메모리 장치(200)의 내구성이 저하 또는 페일된 것으로 설명될 수도 있으며, 이에 따라 메모리 컨트롤러(100)는 인디케이터 칩의 에러 발생을 모니터링함으로써 내구성 페일(Endurance failure) 정보를 출력하는 것으로 설명될 수도 있을 것이다.
상기와 같은 본 발명의 예시적인 실시예에 따르면, 저항성 메모리 등 기록 및/또는 소거 사이클이 진행됨에 따라 급작스런 데이터 손실이 발생될 수 있는 메모리 장치에서 데이터 손실 가능성을 미리 예측하여 호스트로 통보할 수 있으므로 데이터 신뢰성을 향상할 수 있다. 또한, 메모리 장치(200)의 다수의 메모리 영역들에 대한 신뢰성을 판단하는 방법으로서 기록 및/또는 소거 동작 횟수를 카운팅하는 방식이 이용될 수 있는데, 본 발명의 예시적인 실시예에 따르면 다수의 메모리 영역들의 수명 판단에 이용되는 카운터를 구비할 필요가 없으므로 카운터 구현에 따른 면적 증가나 전력 소모 증가를 방지할 수 있다.
한편, 메모리 컨트롤러(100) 및 메모리 장치(200)는 별개의 반도체 장치로 구현될 수 있다. 또는, 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들어, 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM/SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD), 유니버설 플래시 기억장치(UFS) 등을 구성할 수 있다. 다른 예를 들면, 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적되어 SSD(Solid State Disk/Drive)를 구성할 수 있다.
도 2a,b는 도 1의 메모리 영역에 구비되는 메모리 셀 어레이의 일 구현 예를 나타내는 회로도이다. 도 2a,b에서는 저항성 메모리 셀이 PRAM 인 경우가 예시된다.
제1 메모리 영역(210_1)을 예로 들면, 제1 메모리 영역(210_1)의 메모리 셀 어레이는 수평 구조의 2차원 메모리 셀 어레이일 수 있고, 복수의 워드 라인들(WL1 ~ WLn), 복수의 비트 라인들(BL1 ~ BLm) 및 복수의 메모리 셀들(MC)을 포함할 수 있다. 메모리 셀 어레이는 복수의 메모리 블록들을 포함할 수 있다. 각 메모리 블록은 복수의 메모리 셀들이 행들 및 열들로 배열될 수 있다. 여기서, 워드 라인들(WL)의 개수, 비트 라인들(BL)의 개수 및 메모리 셀들(MC)의 개수는 실시예에 따라 다양하게 변경될 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 다른 실시예에서, 메모리 셀 어레이(210_1)는 수직 구조의 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)로의 전류 공급을 제어할 수 있다. 도 2a에서, 스위칭 소자(SW)는 다이오드인 것으로 도시되었으나, 이는 본 발명의 일 실시예에 불과하며, 다른 실시예에서, 스위칭 소자(SW)는 스위칭 가능한 다른 소자로 변경될 수 있다.
한편, 도 2b를 참조하면, 메모리 셀(MC)은 가변 저항 소자(R)와 스위칭 소자(SW)로 구성될 수 있다. 스위칭 소자(SW)는 트랜지스터, 다이오드 등과 같은 다양한 소자들을 이용하여 구현될 수 있다. 가변 저항 소자(R)는 게르마늄, 안티몬 및 텔루르 혼합물(GST, Ge-Sb-Te)로 이루어진 상변화막(11), 상변화막(11) 상부에 형성된 상부 전극(12), 그리고 상변화막(11) 하부에 형성된 하부 전극(13)을 포함할 수 있다.
상부 및 하부 전극들(12, 13)은 다양한 금속, 금속 산화물 또는 금속 질화물로 형성될 수 있다. 상부 및 하부 전극들(12, 13)은 알루미늄(Al), 구리(Cu), 티타늄 질화물(TiN), 티타늄 알루미늄 질화물(TixAlyNz), 이리듐(Ir), 백금(Pt), 은(Ag), 금(Au), 폴리실리콘(poly silicon), 텅스텐(W), 티타늄(Ti), 탄탈륨(Ta), 탄탈륨 질화물(TaN), 텅스텐 질화물(WN)), 니켈(Ni), 코발트(Co), 크롬(Cr), 안티몬(Sb), 철(Fe), 몰리브덴(Mo), 팔라듐(Pd). 주석(Sn). 지르코늄(Zr), 아연(Zn), 산화 이리듐(IrO2), 산화스트론튬지르코네이트(StZrO3) 등일 수 있다.
상변화막(11)은 쌍극성(bipolar) 저항 기억 재료 또는 단극성(unipolar) 저항 기억 재료로 형성될 수 있다. 쌍극성 저항 기억 재료는 전류의 극성에 의하여 셋이나 리셋 상태로 프로그램될 수 있으며, 쌍극성 저항 기억 재료에는 페로브스카이트(Perovskite) 계열의 물질들이 사용될 수 있다. 한편, 단극성 저항 기억 재료는 동일한 극성의 전류에 의해서도 셋이나 리셋 상태로 프로그램될 수 있으며, 단극성 저항 기억 재료에는, NiOx나 TiOx와 같은 전이 금속 산화물(transition metal oxide) 등이 사용될 수 있다.
GST 물질은 비교적 높은 저항율(resistivity)을 갖는 비결정 상태(amorphous state)와 비교적 낮은 저항율을 갖는 결정 상태(crystalline state) 사이에서 프로그램될 수 있다. GST 물질을 가열함으로써 GST 물질이 프로그램될 수 있다. 가열의 크기 및 시간은 GST 물질이 비결정 상태 또는 결정 상태로 남아있는지의 여부를 결정할 수 있다. 높은 저항율 및 낮은 저항율은 각각 프로그램된 값들 로직 0 또는 로직 1로 나타낼 수 있으며, GST 물질의 저항율을 측정함으로써 감지될 수 있다. 이와 반대로, 높은 저항율 및 낮은 저항율은 각각 프로그램된 값들 로직 1 또는 로직 0 으로 나타낼 수 있다.
도 2b에서, 메모리 셀(MC)에 기록 전류(I)가 인가되면, 인가된 기록 전류(I)는 하부 전극(13)을 통해 흐르게 된다. 매우 짧은 시간 동안 기록 전류(I)가 메모리 셀(MC)에 인가되면, 인가된 기록 전류(I)는 하부 전극(13)의 인접한 막만이 주울열(Joule's heat)로 가열된다. 이 때, 가열 프로파일(heating profile)의 차이에 의해서 상변화막(11)의 일부가 결정 상태(또는 셋 상태)가 되거나 비결정 상태(또는 리셋 상태)가 된다.
도 3은 도 1의 신뢰성 판단기의 일 구현 예를 나타내는 블록도이다.
도 1 및 도 3을 참조하면, 신뢰성 판단기(130)는 인디케이터 설정기(131), 에러 영역 판단기(132) 및 신뢰성 판단 로직(133)을 포함할 수 있다. 인디케이터 설정기(131)는 전술한 실시예들에 따라 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 중 적어도 하나의 메모리 영역을 인디케이터로 설정할 수 있다.
에러 영역 판단기(132)는 메모리 장치(200)에 대한 메모리 동작에서 에러가 발생된 메모리 영역(또는, 영역의 위치)을 판단할 수 있다. 일 예로서, 메모리 장치(200)의 제1 내지 제N 메모리 영역들(210_1 ~ 210_N)로부터 독출된 코드워드에 대한 에러 검출 및 정정이 수행되고, 에러 영역 판단기(132)는 ECC 회로(120)로부터의 에러 검출 결과(Res_ECC)를 참조하여 에러가 발생된 영역을 판단할 수 있다. 예컨대, 코드워드를 구성하는 다수의 비트들이 제1 내지 제N 메모리 영역들(210_1 ~ 210_N)에 분산되어 저장되고, 에러가 발생된 비트를 검출함에 의해 제1 내지 제N 메모리 영역들(210_1 ~ 210_N) 중 에러가 발생된 메모리 영역의 위치가 판단될 수 있다. 에러 영역 판단기(132)는 판단 결과에 따른 에러 위치 정보(Info_P)를 출력할 수 있다.
신뢰성 판단 로직(133)은 인디케이터 설정기(131)로부터 인디케이터에 해당하는 메모리 영역을 나타내는 인디케이터 정보(Info_I)를 수신함과 함께, 에러 영역 판단기(132)로부터 에러 위치 정보(Info_P)를 수신할 수 있다. 또한, 신뢰성 판단 로직(133)은 수신된 정보들(Info_I, Info_P)에 기반하여 메모리 장치(200)의 신뢰성 저하 여부를 나타내는 신뢰성 저하 정보(Info_F)를 출력할 수 있다. 일 예로서, 전술한 바와 같이 신뢰성 판단 로직(133)은 상기 정보들(Info_I, Info_P)에 기반하여 인디케이터에 상응하는 메모리 영역에서의 에러 발생 빈도를 판단할 수 있으며, 또한 에러 발생 빈도가 소정의 기준값(Nref)을 초과하였는지를 판단할 수 있다. 또한, 신뢰성 판단 로직(133)은 상기 판단 결과에 따라 신뢰성 저하 정보(Info_F)를 출력할 수 있다. 다양한 예로서, 인디케이터에 상응하는 메모리 영역에 에러가 발생되는 빈도가 소정의 기준값을 초과할 때 메모리 장치(200)의 신뢰성이 저하되었음을 나타내는(또는, 수명이 다하였음을 나타내는) 신뢰성 저하 정보(Info_F)를 출력할 수 있다.
도 3에 도시된 각종 구성요소들은 다양한 형태로 구현되어 해당 기능을 실행할 수 있을 것이다. 일 예로서, 도 3에 도시된 각종 구성요소들은 하드웨어적 회로로 구현될 수 있으며, 또는 프로세서(110)에 의해 실행 가능한 프로그램들을 포함하는 소프트웨어로 구현될 수 있을 것이다. 또는, 도 3에 도시된 각종 구성요소들은 하드웨어와 소프트웨어의 조합으로 구현될 수도 있을 것이다.
이하에서는 본 발명의 예시적인 실시예들에 따른 메모리 시스템의 다양한 구현 예가 설명될 것이다. 또한, 이하의 실시예들에서는 메모리 장치가 다수의 메모리 칩들을 포함하는 메모리 모듈인 것으로 가정될 것이나, 전술한 바와 같이 메모리 장치는 다른 다양한 형태로 구현될 수도 있을 것이다.
도 4는 본 발명의 예시적인 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 4를 참조하면, 메모리 시스템(300)은 메모리 콘트롤러(310) 및 메모리 모듈(320)을 포함할 수 있다. 메모리 콘트롤러(310)는 ECC 회로(311) 및 신뢰성 판단기(312)를 포함할 수 있으며, 도 4에 도시되지는 않았으나 메모리 콘트롤러(310)는 메모리 동작을 제어하기 위한 구성요소들로서 프로세서, 호스트 I/F 및 메모리 I/F 등 다른 다양한 구성요소들을 더 포함할 수도 있다.
메모리 모듈(320)은 모듈 보드 상에 장착되는 다수의 메모리 칩들을 포함할 수 있으며, 일 예로서 메모리 모듈(320)은 제1 내지 제N 메모리 칩들(321_1 ~ 321_N)을 포함할 수 있다. 또한, 전술한 실시예들에 따라 신뢰성 판단기(312)는 제1 내지 제N 메모리 칩들(321_1 ~ 321_N) 중 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정할 수 있으며, 도 4에서는 제N 메모리 칩(321_N)이 인디케이터 칩으로 설정되는 예가 도시된다. 예컨대, 신뢰성 판단기(312)는 메모리 모듈(320)로부터 제1 내지 제N 메모리 칩들(321_1 ~ 321_N)의 신뢰성 정보에 기반하여 인디케이터 칩을 설정하거나, 제1 내지 제N 메모리 칩들(321_1 ~ 321_N)에 대한 테스트 동작, 또는 특정 메모리 칩에 대한 다수의 더미 프로그램 동작을 통해 인디케이터 칩을 설정할 수 있을 것이다. 도 4에서는 패리티 데이터(Parity)를 저장하는 제N 메모리 칩(321_N)이 인디케이터 칩에 해당하는 것으로 도시되었으나, 제N 메모리 칩(321_N)에는 노멀 데이터가 저장되어도 무방할 것이다.
메모리 콘트롤러(310)의 ECC 회로(311)는 ECC 인코딩 동작을 통해 패리티 데이터(Parity)를 생성할 수 있으며, 노멀 데이터(DATA)와 패리티 데이터(Parity)를 포함하는 코드워드가 제1 내지 제N 메모리 칩들(321_1 ~ 321_N)에 분산되어 저장될 수 있다. 또한, 제1 내지 제N 메모리 칩들(321_1 ~ 321_N)로부터 코드워드가 독출되어 ECC 회로(311)로 제공될 수 있으며, ECC 회로(311)는 ECC 디코딩 동작을 통해 에러 검출 동작을 수행하고, 그 검출 결과를 신뢰성 판단기(312)로 제공할 수 있다.
신뢰성 판단기(312)는 그 내부에 설정된 인디케이터 칩의 정보와 ECC 회로(311)로부터의 에러 검출 결과에 기반하여 인디케이터 칩에 해당하는 제N 메모리 칩(321_N)에 에러가 발생하였는지를 판단할 수 있다. 신뢰성 판단기(312)는 제N 메모리 칩(321_N) 이외의 다른 메모리 칩에 에러가 발생된 경우에는, 상대적으로 신뢰성이 높고 수명이 많이 남아있는 메모리 칩에서 에러가 발생되었으므로 메모리 모듈(320)의 신뢰성에 영향이 없는 것으로 판단할 수 있다. 반면에, 인디케이터 칩에 해당하는 제N 메모리 칩(321_N)에 에러가 발생된 경우에는, 메모리 모듈(320)의 수명이 얼마 남지 않은 이유에 기인하여 에러가 발생된 것으로 판단할 수 있으며, 이에 따라 신뢰성 저하 정보(Info_F)를 출력할 수 있다.
도 4에 도시된 실시예에 따르면, 메모리 모듈(320)에 장착된 다수의 메모리 칩들에 대한 수명 관리를 위해 기록 및/또는 소거 횟수를 카운팅하는 카운터가 구비될 필요가 없으며, 상대적으로 신뢰도가 낮은 메모리 칩을 인디케이터 칩으로 설정하여 이를 모니터링함으로써 메모리 모듈(320)의 수명이 다하기 전에 데이터 신뢰성 저하 가능성을 호스트로 통보할 수 있다. 즉, 메모리 칩에 저장된 데이터가 실제 손실되기 전에, 상대적으로 짧은 수명을 갖는 인디케이터 칩을 통해 메모리 모듈(320)의 수명이 다해가고 있음을 미리 판단할 수 있으며, 신뢰성 저하 정보(Info_F)를 호스트로 제공함으로써 사용자가 메모리 모듈(320)을 교체하도록 유도할 수 있다.
전술한 실시예에서, 메모리 모듈(320)은 SIMM(single in-line memory module) 또는 DIMM(dual inline memory module) 형태로 구현될 수 있다. 또한, 메모리 모듈(320)은 다양한 종류의 DIMM에 해당할 수 있으며, 예컨대 FB-DIMM 및 LR-DIMM 등 다양한 종류의 DIMM이 메모리 모듈(320)에 적용될 수 있다. 또는, 메모리 모듈(320)은 전원이 종료되면 데이터가 손실되는 휘발성 메모리의 문제를 보완하기 위해 불휘발성 메모리(예컨대, 플래시 메모리, 미도시)가 탑재된 NVDIMM(Non-volatile DIMM)에 해당할 수 있다.
또한, 다양한 종류의 모듈로서, 메모리 모듈(320)이 저항성 메모리로서 PRAM을 포함하는 경우 메모리 모듈(320)은 P_DIMM으로 지칭될 수 있다. 본 발명의 실시예들은 이외에도 다양한 종류의 모듈들에 적용이 가능하며, 일 예로서 메모리 모듈(320)은 3D 형태의 저항성 메모리 셀들을 갖는 크로스 포인트 메모리 칩들을 포함함에 따라 XPoint DIMM(또는, 3D XPoint DIMM)으로 지칭될 수 있다.
도 5는 본 발명의 예시적인 실시예에 따른 메모리 컨트롤러의 동작방법을 나타내는 플로우차트이다.
도 5를 참조하면, 메모리 컨트롤러는 다수의 메모리 칩들에 대한 메모리 동작을 제어할 수 있으며, 상기 다수의 메모리 칩들 중 상대적으로 신뢰성이 낮은(또는, 수명이 짧은) 메모리 칩을 판단하고, 판단 결과에 따라 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정할 수 있다(S11).
메모리 컨트롤러는 다수의 메모리 칩들로부터 코드워드를 독출하고, 코드워드에 대한 ECC 디코딩 처리를 통해 에러를 검출할 수 있다(S12). 또한, 코드워드에 포함되는 다수의 비트들 중 에러가 발생된 비트의 위치를 검출함에 의해 에러가 발생된 메모리 칩을 판단할 수 있다.
메모리 컨트롤러는 에러가 발생(또는, 검출)된 메모리 칩과 그 내부에 기 설정되어 저장된 인디케이터 칩의 정보를 통해 에러가 검출된 메모리 칩이 인디케이터 칩에 해당하는 지를 판단할 수 있다(S13). 만약, 에러가 검출된 메모리 칩이 인디케이터 칩이 아닌 경우에는, 다음의 독출된 코드워드에 대해 인디케이터 칩에서의 에러 발생 여부를 반복적으로 판단할 수 있다.
에러가 검출된 메모리 칩이 인디케이터 칩에 해당하는 경우에는, 상기 인디케이터 칩에서의 에러 발생 빈도가 소정의 기준값을 초과하는 지가 판단될 수 있다(S14). 또한, 메모리 컨트롤러는 에러 발생 빈도가 소정의 기준값을 초과하는 경우에는 신뢰성 저하 정보를 출력할 수 있다(S15). 예시적인 실시예들에 따라 기준값을 초과하는 지 여부와 신뢰성 저하 정보를 출력하는 동작은 다양한 방법을 통해 구현될 수 있다. 일 예로서, 상기 인디케이터 칩에서 에러가 발생될 때 마다 신뢰성 저하 정보가 출력될 수 있다. 또는, 상기 인디케이터 칩에서 연속하여 상기 기준값을 초과하게 에러가 발생되는 경우에 신뢰성 저하 정보가 출력될 수 있다. 또는, 소정 횟수의 독출 동작에서 상기 인디케이터 칩에서 에러가 발생된 횟수가 소정의 기준값을 초과할 때 신뢰성 저하 정보가 출력될 수 있다. 이외에도, 다른 다양한 방법을 통해 신뢰성 저하 정보가 출력하는 기준이 설정될 수 있을 것이다.
도 6은 본 발명의 변형 가능한 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 도 6에서는 인디케이터 칩이 메모리 모듈에 기 저장되는 신뢰성 정보에 기반하여 설정되는 예가 도시된다.
도 6을 참조하면, 메모리 시스템(400)은 메모리 콘트롤러(410) 및 메모리 모듈(420)을 포함할 수 있다. 메모리 모듈(420)은 제1 내지 제N 메모리 칩들(421_1 ~ 421_N)을 포함하고, 메모리 콘트롤러(410)의 제어 하에서 적어도 하나의 메모리 칩이 인디케이터 칩으로 설정될 수 있다.
일 예로서, 메모리 모듈(420)의 제조 과정에서 제1 내지 제N 메모리 칩들(421_1 ~ 421_N) 각각에 대한 성능이 테스트될 수 있으며, 테스트 결과에 기반하여 메모리 칩의 신뢰성 정도(예컨대, 데이터의 신뢰성이 보장되는 기록 및/또는 소거 횟수)가 판단될 수 있다. 또한, 테스트 결과에 따른 수명 정보(또는, 신뢰성 정보)가 메모리 모듈(420)에 저장될 수 있으며, 메모리 시스템(400)의 초기 구동시 메모리 모듈(420)로부터의 신뢰성 정보(Info_Reli 1 ~ Info_Reli N)가 메모리 콘트롤러(410)로 제공될 수 있다.
메모리 콘트롤러(410)는 신뢰성 판단기(411)를 포함하고, 신뢰성 판단기(411)는 인디케이터 설정기(411_1)를 포함할 수 있다. 인디케이터 설정기(411_1)는 신뢰성 정보(Info_Reli 1 ~ Info_Reli N)에 기반하여 메모리 모듈(420)에서 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정할 수 있다. 도 6에서는 신뢰성 정보(Info_Reli 1 ~ Info_Reli N)를 판단한 결과에 따라 제2 메모리 칩(421_2)이 인디케이터 칩으로 설정되는 예가 도시된다.
인디케이터 설정기(411_1)는 상기 설정 결과에 따라 제2 메모리 칩(421_2)이 인디케이터 칩에 해당함을 나타내는 정보(Info_Chip2)를 저장할 수 있으며, 메모리 모듈(420)에 대한 독출 동작에서 제1 내지 제N 메모리 칩들(421_1 ~ 421_N) 중 에러가 발생된 메모리 칩을 상기 정보(Info_Chip2)와 비교함에 기반하여 전술한 신뢰성 저하 정보를 출력할 수 있다.
도 7은 본 발명의 변형 가능한 실시예에 따른 메모리 컨트롤러의 동작방법을 나타낸다. 도 7에서는 메모리 모듈에 대한 초기 테스트 과정을 통해 인디케이터 칩이 설정되는 예가 도시된다.
메모리 컨트롤러 및 메모리 모듈을 포함하는 메모리 시스템이 초기 구동됨에 따라(S21), 메모리 컨트롤러 및 메모리 모듈 사이에서 메모리 동작에 관련된 각종 정보들이 송수신될 수 있으며, 또한 메모리 컨트롤러는 메모리 모듈의 메모리 칩들에 대한 초기 테스트 동작을 수행할 수 있다(S22). 일 예로서, 메모리 컨트롤러는 메모리 칩들에 소정의 테스트 패턴을 기록하고, 기록된 테스트 패턴을 독출하며, 독출된 패턴들에 대한 에러 검출 동작을 통해 메모리 칩들의 신뢰성 정도를 판단할 수 있다. 예컨대, 메모리 컨트롤러는 초기 테스트 동작을 통해 메모리 칩들 각각의 비트 에러율(Bit Error Rate, BER)을 판단할 수 있으며(S23), 상기 비트 에러율 판단을 통해 상대적으로 그 신뢰성이 낮은 메모리 칩이 판단될 수 있다. 또한, 상대적으로 비트 에러율이 높은 하나 이상의 메모리 칩들이 인디케이터 칩으로서 설정될 수 있다(S24).
상기와 같은 실시예에 따르면, 메모리 모듈 내에 메모리 칩들의 수명 정보가 기 설정되어 저장되어 있지 않더라도, 메모리 컨트롤러의 초기 테스트 동작을 통하여 상대적으로 신뢰성이 낮은 메모리 칩이 판단되고, 이에 기반하여 인디케이터 칩의 설정 동작이 수행될 수 있다.
도 7에서는 비트 에러율에 기반하여 인디케이터 칩이 설정되는 예가 도시되었으나, 본 발명의 실시예들은 이에 국한될 필요 없이 다양한 판단 기준을 통해 인디케이터 칩이 설정될 수 있을 것이다. 일 예로서, 다수의 메모리 칩들에 대한 에러 발생 빈도를 검출하고, 에러 발생 빈도가 가장 높은 메모리 칩을 인디케이터 칩으로 설정할 수도 있을 것이다.
도 8은 본 발명의 다른 변형 가능한 실시예에 따른 메모리 컨트롤러의 동작방법을 나타낸다. 도 8에서는 메모리 컨트롤러의 제어에 기반하여 인위적으로 신뢰성을 저하시킨 메모리 칩이 인디케이터 칩으로 설정되는 예가 도시된다.
도 8을 참조하면, 메모리 컨트롤러는 다수의 메모리 칩들을 포함하는 메모리 모듈의 메모리 동작을 제어할 수 있으며, 일 예로서 임의의 패턴을 갖는 더미 데이터를 다수의 메모리 칩들에 기록하는 더미 프로그램 동작을 수행할 수 있다. 본 발명의 예시적인 실시예에 따라, 다수의 메모리 칩들 중 상대적으로 신뢰성이 낮은 메모리 칩의 정보가 존재하지 않을 때, 메모리 컨트롤러는 다수의 메모리 칩들 중 적어도 하나의 메모리 칩의 신뢰성이 저하되도록 인위적인 제어 동작을 수행할 수 있으며, 신뢰성이 저하된 메모리 칩을 인디케이터 칩으로 설정할 수 있다.
일 예로서, 메모리 컨트롤러는 다수의 메모리 칩들 중 하나 이상의 메모리 칩을 선택하고(S31), 선택된 메모리 칩에 대해 다수 회의 더미 프로그램 동작을 수행할 수 있다(S32). 선택된 메모리 칩의 수명이 다소 저하될 수 있을 정도의 횟수로서 더미 프로그램 동작이 수행될 수 있으며, 메모리 컨트롤러는 더미 프로그램이 수행된 메모리 칩을 인디케이터 칩으로서 설정할 수 있다(S33).
다수의 메모리 칩들 중 제1 메모리 칩에 대해 다수 회의 더미 프로그램이 수행된 경우, 제1 메모리 칩은 다른 메모리 칩들에 비해 기록 횟수가 증가하게 되고, 이에 따라 제1 메모리 칩은 다른 메모리 칩들에 비해 수명이 짧아질 수 있다. 또한, 제1 메모리 칩을 인디케이터 칩으로 설정함에 의해 메모리 모듈에서 데이터가 손실될 가능성을 감소시킬 수 있다.
도 9a,b는 본 발명의 또 다른 변형 가능한 실시예에 따른 메모리 시스템의 동작방법을 나타내는 블록도이다. 도 9a,b에서는 코드워드의 기록 및 독출 동작에서 인터리빙이 적용되는 경우와 적용되지 않는 경우가 예시된다.
도 9a를 참조하면, 메모리 시스템(500A)은 메모리 콘트롤러(510A) 및 메모리 모듈(520A)을 포함할 수 있으며, 메모리 콘트롤러(510A)는 ECC 회로(511A), 신뢰성 판단기(512A) 및 인터리버(513A)를 포함할 수 있다. ECC 회로(511A) 및 신뢰성 판단기(512A)는 전술한 실시예들에 따른 동작과 동일 또는 유사한 동작을 수행함으로써, 본 발명의 실시예들에 따른 신뢰성 저하 정보를 출력할 수 있다. 또한, 메모리 모듈(520A)은 제1 내지 제N 메모리 칩들(521A_1 ~ 521A_N)을 포함할 수 있으며, 전술한 실시예들에 따라 제1 내지 제N 메모리 칩들(521A_1 ~ 521A_N)에 대한 신뢰성 정도가 판단될 수 있으며, 제2 메모리 칩(521A_2)이 상대적으로 신뢰성이 낮은(수명이 짧은) 메모리 칩에 해당하는 것으로 가정된다.
메모리 콘트롤러(510A)는 노멀 데이터와 패리티 데이터를 포함하는 코드워드를 메모리 모듈(520A)의 제1 내지 제N 메모리 칩들(521A_1 ~ 521A_N)에 저장할 수 있으며, 이 때 인터리버(513A)는 코드워드의 다수 비트들에 대한 인터리빙 처리를 수행함으로써 에러 비트의 발생 위치를 균등화할 수 있으며, 인터리빙 처리된 코드워드의 비트들이 제1 내지 제N 메모리 칩들(521A_1 ~ 521A_N)에 저장될 수 있다. 일 예로서, 제1 코드워드에서 패리티 데이터(Parity 1)는 제N 메모리 칩(521A_N)에 저장되고 노멀 데이터들(DATA1_1, DATA1_2)는 다른 메모리 칩들에 저장될 수 있다. 반면에, 제2 코드워드에서 패리티 데이터(Parity 2)는 제2 메모리 칩(521A_2)에 저장되고 노멀 데이터들(DATA2_1, DATA2_2)는 다른 메모리 칩들에 저장될 수 있다.
도 9a에 도시된 실시예에서, 메모리 모듈(520A)에 인터리빙이 적용됨에 따라 제1 내지 제N 메모리 칩들(521A_1 ~ 521A_N)의 사용 빈도가 서로 유사할 수 있다. 일 예로서, 어느 하나의 코드워드에서 노멀 데이터의 일부만이 변경되어도 이에 대응하는 패리티 데이터는 함께 변경될 수 있으며, 이에 따라 패리티 데이터를 저장하는 메모리 칩의 사용 빈도(또는, 기록 횟수)는 다른 메모리 칩들에 비해 증가할 수 있다. 그러나, 도 9a에 도시된 실시예에서 제1 내지 제N 메모리 칩들(521A_1 ~ 521A_N)의 사용 빈도가 서로 유사함에 따라, 인디케이터 칩은 상대적으로 신뢰성이 낮은(수명이 짧은) 것으로 판단된 제2 메모리 칩(521A_2)으로 설정될 수 있다.
한편, 도 9b를 참조하면, 메모리 시스템(500B)은 메모리 콘트롤러(510B) 및 메모리 모듈(520B)을 포함하고, 메모리 콘트롤러(510B)는 ECC 회로(511B) 및 신뢰성 판단기(512B)를 포함하며, 메모리 모듈(520B)은 제1 내지 제N 메모리 칩들(521B_1 ~ 521B_N)을 포함할 수 있다. 메모리 콘트롤러(510B)는 메모리 모듈(520B)에 코드워드를 저장함에 있어서 인터리빙을 적용함이 없이 코드워드의 특정 위치의 비트를 메모리 모듈(520B)의 특정 메모리 칩에 저장할 수 있다. 일 예로서, 코드워드의 패리티 데이터는 메모리 모듈(520B)의 제N 메모리 칩(521B_N)에 고정되게 저장될 수 있다. 예컨대, 제1 코드워드에서 패리티 데이터(Parity 1)는 제N 메모리 칩(521B_N)에 저장되고 노멀 데이터들(DATA1_1, DATA1_2)는 다른 메모리 칩들에 저장될 수 있으며, 또한 제2 코드워드에서 패리티 데이터(Parity 2)는 제N 메모리 칩(521B_N)에 저장되고 노멀 데이터들(DATA2_1, DATA2_2)는 다른 메모리 칩들에 저장될 수 있다.
전술한 바와 같이, 패리티 데이터(Parity 1, Parity 2)를 저장하는 제N 메모리 칩(521B_N)은 다른 메모리 칩들에 비해 사용 빈도가 크며, 이에 따라 다른 메모리 칩들에 비해 수명이 짧을 수 있다. 이에 따라, 메모리 콘트롤러(510B)는 패리티 데이터(Parity 1, Parity 2)가 저장될 제N 메모리 칩(521B_N)을 판단하고, 제N 메모리 칩(521B_N)을 인디케이터 칩으로 설정할 수 있다. 또한, 독출된 코드워드에 대한 에러 검출 동작을 통해, 제N 메모리 칩(521B_N)에 발생되는 에러 발생 빈도를 모니터링하고, 이에 기반하여 전술한 실시예들에 따른 신뢰성 저하 정보를 출력할 수 있다.
도 10 및 도 11은 본 발명의 다양한 실시예에 따른 신뢰성 저하 정보의 출력 동작을 나타내는 플로우차트이다. 도 10에서는 비트 에러율에 기반하여 신뢰성 저하 정보가 출력되는 예가 도시되며, 도 11에서는 노멀 메모리 칩 대비 인디케이터 칩의 에러 발생 빈도에 기반하여 신뢰성 저하 정보가 출력되는 예가 도시된다.
도 10을 참조하면, 다수의 메모리 칩들을 포함하는 메모리 모듈에 대한 독출 동작을 통해 코드워드가 독출될 수 있으며, 독출된 코드워드에 대한 에러 검출 동작이 수행될 수 있다(S41). 또한, 기 설정되어 저장된 인디케이터 칩의 정보와 상기 에러가 발생된 메모리 칩을 비교함에 의해 인디케이터 칩에 에러가 발생되었는지 여부가 판단될 수 있다(S42).
인디케이터 칩에 에러가 발생된 경우, 소정 사이즈의 데이터에서 발생된 에러의 개수가 검출될 수 있으며, 검출된 에러의 개수가 기 설정되는 임계값을 초과하는지 여부가 판단될 수 있다(S43). 만약, 검출된 에러의 개수가 임계값 이하인 경우에는 메모리 모듈의 신뢰성이 아직 저하되지 않은 것으로 판단될 수 있다. 반면에, 검출된 에러의 개수가 임계값을 초과하는 경우에는 메모리 모듈의 신뢰성이 저하된 것으로 판단될 수 있으며, 이에 따라 신뢰성 저하 정보가 출력될 수 있다(S44).
한편, 도 11을 참조하면, 다수의 메모리 칩들을 포함하는 메모리 모듈로부터 독출된 코드워드에 대한 에러 검출 동작이 수행될 수 있으며(S51), 다수의 메모리 칩들에서의 에러 발생에 관련된 정보(예컨대, 에러 정보)가 메모리 컨트롤러 내에 저장될 수 있다(S52). 또한, 주기적으로 메모리 모듈의 신뢰성이 판단될 수 있으며, 신뢰성 판단 타이밍에 해당하는 지가 판단될 수 있다(S53).
신뢰성 판단 타이밍에서, 메모리 컨트롤러에 저장된 에러 정보를 참조함에 의해 노멀 메모리 칩에 대비하여 인디케이터 칩의 에러 발생 빈도가 비교될 수 있다(S54). 일 예로서, 노멀 메모리 칩의 에러 발생 빈도에 대비하여 인디케이터 칩의 에러 발생 빈도를 비교한 비교 값이 산출될 수 있으며, 상기 비교 값이 소정의 기준값을 초과하는 지가 판단될 수 있다(S55). 만약, 상기 비교 값이 소정의 기준값을 초과하는 경우 신뢰성 저하 정보가 출력될 수 있다(S56).
신뢰성 저하 정보는 전술한 실시예들에서 설명된 방식 이외에도 다양한 기준들에 기반하여 출력될 수 있을 것이다. 즉, 인디케이터 칩에서 에러가 발생하는 특성들을 판단하고, 다양한 기준들에 기반하여 신뢰성 저하 정보의 출력 여부가 제어될 수 있을 것이다.
도 12 및 도 13은 본 발명의 또 다른 변형 가능한 실시예에 따른 메모리 시스템의 동작방법을 나타내는 도면이다.
도 12를 참조하면, 메모리 시스템(600)은 메모리 콘트롤러(610) 및 메모리 모듈(620)을 포함할 수 있으며, 메모리 콘트롤러(610)는 ECC 회로(611) 및 신뢰성 판단기(612)를 포함할 수 있으며, 신뢰성 판단기(612)는 인디케이터 설정 및 변경회로(612_1)를 포함할 수 있다. 또한, 메모리 모듈(620)은 제1 내지 제N 메모리 칩들(621_1 ~ 621_N)을 포함할 수 있으며, 도 12에서는 제(N-1) 메모리 칩(621_(N-1))이 인디케이터 칩으로 설정되는 예가 도시된다. 전술한 실시예들에 따라 제(N-1) 메모리 칩(621_(N-1))은 메모리 모듈(620)에서 상대적으로 신뢰성이 가장 낮은 메모리 칩에 해당하거나, 또는 코드워드의 데이터 중 패리티 데이터가 고정되게 저장되는 메모리 칩일 수 있다.
제1 내지 제N 메모리 칩들(621_1 ~ 621_N) 각각은 데이터를 저장하는 다수의 셀 블록들을 포함하고 있으며, 일 예로서 제(N-1) 메모리 칩(621_(N-1))은 제1 내지 제K 셀 블록들(BLK 1 ~ BLK K)을 포함할 수 있다. 예시적인 실시예에 따라, 제(N-1) 메모리 칩(621_(N-1))의 제1 내지 제K 셀 블록들(BLK 1 ~ BLK K)은 순차적으로 이용되거나 또는 함께 이용될 수 있으며, 본 발명의 실시예들에 따른 신뢰성 저하 정보를 출력하기 위해 에러가 발생된 위치를 판단하는 동작은 셀 블록들 단위로 수행될 수 있다.
일 실시예에 따라, 제(N-1) 메모리 칩(621_(N-1))의 제1 셀 블록(BLK 1)이 인디케이터 영역으로 설정되고, 상기 제1 셀 블록(BLK 1)에서 에러가 발생되었는지가 모니터링될 수 있다. 또한, 제1 셀 블록(BLK 1)에서 에러가 발생된 경우, 전술한 실시예들에서의 다양한 판단 기준에 따라 신뢰성 저하 정보가 출력될 수 있으며, 인디케이터 설정 및 변경회로(612_1)는 제(N-1) 메모리 칩(621_(N-1))의 다른 셀 블록을 인디케이터 영역으로 설정할 수 있다. 또한, 변경된 인디케이터 영역에서의 에러 발생이 모니터링되고, 변경된 인디케이터 영역에서 발생된 에러의 빈도가 소정의 기준값을 초과하는 경우에는, 또 다른 셀 블록이 인디케이터 영역으로 설정될 수 있다.
도 12에 도시된 메모리 시스템(600)의 일 동작 예를 도 13을 참조하여 설명하면 다음과 같다. 먼저, 제(N-1) 메모리 칩(621_(N-1))의 제1 셀 블록(BLK 1)이 인디케이터(또는, 인디케이터 영역)으로 설정되고(S61), 인디케이터 영역으로 설정된 제1 셀 블록(BLK 1)에서의 에러 발생 빈도가 기 설정된 기준값을 초과하는지가 판단될 수 있다(S62). 만약, 제1 셀 블록(BLK 1)에서의 에러 발생 빈도가 기준값을 초과하는 경우에는 제1 신뢰성 저하 정보가 출력되고(S63), 또한 제(N-1) 메모리 칩(621_(N-1))의 다른 셀 블록으로서 제2 셀 블록(BLK 2)이 인디케이터 영역으로 설정될 수 있다(S64).
이후, 인디케이터 영역으로 설정된 제2 셀 블록(BLK 2)에서의 에러 발생 빈도가 기 설정된 기준값을 초과하는지가 판단되고(S65), 제2 셀 블록(BLK 2)에서의 에러 발생 빈도가 기준값을 초과하는 경우에는 제2 신뢰성 저하 정보가 출력될 수 있다(S66). 또한, 전술한 동작과 동일하게 제(N-1) 메모리 칩(621_(N-1))의 다른 셀 블록이 인디케이터 영역으로 설정될 수 있으며, 인디케이터 영역으로 설정된 제(N-1) 메모리 칩(621_(N-1))의 제K 셀 블록(BLK K)에 대해 에러 발생이 모니터링되고, 기 설정된 기준값을 초과하는 에러 빈도가 발생되는 경우 제K 신뢰성 저하 정보가 출력될 수 있다(S67).
상기와 같은 실시예에 따르면, 신뢰성 저하 정도가 다수의 단계들로 분류되어 판단될 수 있다. 일 예로서, 제1 신뢰성 저하 정보가 출력되는 경우 사용자는 인디케이터 칩의 K 개의 셀 블록들 중 어느 하나의 셀 블록에서 신뢰성이 저하되었음을 판단할 수 있으며, 그 이후에 제2 신뢰성 저하 정보가 출력되는 경우에는 인디케이터 칩의 두 개의 셀 블록에서 신뢰성이 저하되었음을 판단할 수 있다. 이후, 마지막 제K 셀 블록(BLK K)에 대한 제K 신뢰성 저하 정보가 출력되는 경우에는 인디케이터 칩의 모든 셀 블록에서 신뢰성이 저하되었음을 판단할 수 있으며, 이를 기초로 하여 메모리 모듈의 교체 필요성을 단계적으로 판단할 수 있다.
도 14는 본 발명의 또 다른 변형 가능한 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 14를 참조하면, 메모리 시스템(700)은 메모리 콘트롤러(710) 및 메모리 모듈(720)을 포함할 수 있으며, 메모리 콘트롤러(710)는 ECC 회로(711) 및 신뢰성 판단기(712)를 포함할 수 있으며, 신뢰성 판단기(712)는 인디케이터 설정 및 변경회로(712_1)를 포함할 수 있다. 또한, 메모리 모듈(720)은 제1 내지 제N 메모리 칩들(721_1 ~ 721_N)을 포함할 수 있으며, 도 14에서는 최초의 인디케이터 칩 설정 과정에서 제N 메모리 칩(721_N)이 인디케이터 칩으로 설정되는 예가 도시된다. 또한, 예시적인 실시예에 따라 패리티 데이터가 저장되는 메모리 칩이 인디케이터 칩으로 설정될 수 있으며, 이에 따라 제1 코드워드에 포함되는 제1 패리티 데이터(Parity 1)는 제N 메모리 칩(721_N)에 저장되고, 제1 코드워드에 포함되는 노멀 데이터(DATA1_1 ~ DATA1_(N-1))는 다른 메모리 칩들에 저장될 수 있다.
전술한 실시예들에 따라, 인디케이터 칩에 해당하는 제N 메모리 칩(721_N)에서의 에러 발생이 모니터링되고, 모니터링 결과에 따라 신뢰성 저하 정보가 출력될 수 있다. 또한, 제N 메모리 칩(721_N)의 신뢰성이 저하됨에 따라 패리티 데이터가 저장되는 메모리 칩이 변경될 수 있으며, 패리티 데이터가 저장되는 메모리 칩이 인디케이터 칩으로 다시 설정될 수 있다. 도 14의 예에서는, 패리티 데이터가 저장되는 메모리 칩이 제(N-1) 메모리 칩(721_(N-1))으로 변경되고, 이에 따라 인디케이터 칩이 제(N-1) 메모리 칩(721_(N-1))으로 변경되는 예가 도시된다.
상기와 같은 인디케이터 칩의 변경에 따라, 제2 코드워드에 포함되는 제2 패리티 데이터(Parity 2)는 제(N-1) 메모리 칩(721_(N-1))에 저장되고, 제2 코드워드에 포함되는 노멀 데이터(DATA2_1 ~ DATA2_(N-1))는 다른 메모리 칩들에 저장될 수 있다. 또한, 메모리 모듈(720)로부터 독출되는 제2 코드워드에 대한 에러 검출 동작을 통해 인디케이터 칩에 해당하는 제(N-1) 메모리 칩(721_(N-1))에서의 에러 발생이 모니터링될 수 있다. 만약, 제(N-1) 메모리 칩(721_(N-1))에 에러가 발생된 경우에는, 전술한 실시예들에 따라 신뢰성 저하 정보가 출력될 수 있다. 또한, 전술한 실시예와 유사하게, 인디케이터 칩이 다른 메모리 칩으로 변경될 수 있다.
도 14의 실시예에 따르면, 도 12 및 도 13의 실시예에서와 유사하게 신뢰성 정도가 다수의 단계들로 판단될 수 있다. 일 예로서, 1 회의 신뢰성 저하 정보가 출력된 경우에 비해, 인디케이터 칩의 변경을 통해 다수 회의 신뢰성 저하 정보가 출력된 경우는 메모리 모듈(720)의 신뢰성이 더욱 저하된 것으로 판단될 수 있으며, 사용자는 신뢰성 저하 정도를 참조하여 메모리 모듈(720)의 교체 필요성을 판단할 수 있을 것이다.
한편, 도 14에 도시된 실시예에서는 패리티 데이터가 저장되는 메모리 칩을 변경하고, 이에 기반하여 인디케이터 칩이 변경되는 예가 도시되었으나 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, 메모리 모듈(720)로부터의 신뢰성 정보나, 메모리 콘트롤러(710)에 의한 테스트 동작 또는 더미 프로그램 동작을 통해 신뢰성이 상대적으로 낮은 메모리 칩들이 판단될 수 있으며, 가장 신뢰성이 낮은 메모리 칩이 최초 인디케이터 칩으로 설정되고, 다음으로 신뢰성이 낮은 메모리 칩이 인디케이터 칩으로 변경될 수 있을 것이다.
한편, 도 14에 도시된 실시예는 앞선 도 12 및 도 13에 도시된 실시예와 결합될 수 있을 것이다. 예컨대, 제N 메모리 칩(721_N)은 다수 개의 셀 블록들을 포함하고, 각각의 셀 블록 단위로 에러 발생 모니터링 및 신뢰성 저하 정보의 출력 동작이 수행될 수 있으며, 제N 메모리 칩(721_N)의 하나 이상의 셀 블록들에서의 모니터링 결과에 따라 신뢰성 저하 정보가 출력된 후 인디케이터 칩이 제(N-1) 메모리 칩(721_(N-1))으로 변경될 수도 있을 것이다.
도 15는 본 발명의 또 다른 변형 가능한 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 도 15에서는 ECC 인코딩 및 디코딩 처리가 메모리 모듈 내에서 수행되는 예가 도시된다.
도 15를 참조하면, 메모리 시스템(800)은 메모리 콘트롤러(810) 및 메모리 모듈(820)을 포함할 수 있으며, 메모리 콘트롤러(810)는 신뢰성 판단기(811)를 포함할 수 있으며, 신뢰성 판단기(811)는 인디케이터 설정기(811_1)를 포함할 수 있다. 또한, 메모리 모듈(820)은 제1 내지 제N 메모리 칩들(821_1 ~ 821_N)을 포함할 수 있으며, 또한 ECC 회로(822_1)를 포함하는 버퍼 칩(822)을 더 포함할 수 있다. 버퍼 칩(822)은 메모리 모듈(820) 상에 장착되어 다양한 기능을 수행할 수 있으며, 일 예로서 메모리 콘트롤러(810)와의 통신을 통해 커맨드 및 어드레스를 임시적으로 저장하는 저장 회로(미도시)를 포함할 수 있다. 또한, 버퍼 칩(822)의 ECC 회로(822_1)는 메모리 콘트롤러(810)로부터의 노멀 데이터를 이용하여 패리티 데이터를 생성할 수 있으며, 또한 메모리 모듈(820)의 제1 내지 제N 메모리 칩들(821_1 ~ 821_N)로부터 독출된 코드워드에 대해 ECC 디코딩 처리를 통해 에러 검출 결과(Res_ECC)를 생성할 수 있다.
신뢰성 판단기(811)는 제1 내지 제N 메모리 칩들(821_1 ~ 821_N) 중 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정할 수 있으며, 메모리 모듈(820)로부터 코드워드를 수신함과 함께 상기한 에러 검출 결과(Res_ECC)를 수신할 수 있다. 신뢰성 판단기(811)는 그 내부에 인디케이터 칩으로 설정된 메모리 칩의 정보를 포함할 수 있으며, 또한 에러 검출 결과(Res_ECC)를 이용하여 에러가 발생된 메모리 칩의 위치를 판단할 수 있다. 또한, 신뢰성 판단기(811)는 인디케이터 칩에서 에러가 발생되는 빈도를 모니터링하고, 전술한 실시예들에 따라 신뢰성 저하 정보를 출력할 수 있다.
도 16은 본 발명의 예시적인 실시예에 따른 메모리 컨트롤러의 구현 예를 나타내는 블록도이다.
도 16을 참조하면, 메모리 컨트롤러(900)는 프로세서(910), RAM(920), 호스트 인터페이스(930), 메모리 인터페이스(940), ECC 회로(950) 및 신뢰성 판단기(960)를 포함할 수 있다. 예시적인 실시예에 따라, 메모리 컨트롤러(900)는 시스템 온 칩으로 구현될 수 있는 어플리케이션 프로세서(AP, 미도시) 내에 구비되는 장치일 수 있다. 또한, 신뢰성 판단기(960)는 인디케이터 설정기(961), 에러 영역 판단기(962) 및 신뢰성 판단 로직(963)을 포함할 수 있다.
프로세서(910)는 중앙처리장치 또는 마이크로 프로세서 등을 포함할 수 있고, 메모리 컨트롤러(900)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(910)는 메모리 컨트롤러(900)를 제어하기 위한 소프트웨어(software) 또는 펌웨어(firmware)를 구동하도록 구성될 수 있으며, 소프트웨어 또는 펌웨어는 RAM(920)에 로딩되어 구동될 수 있다. RAM(920)은 프로세서(910)의 동작 메모리, 캐시 메모리, 또는 버퍼 메모리로 이용될 수 있다. RAM(920)에는 메모리 장치에 기입될 기록 데이터가 일시적으로 저장될 수 있고, 또한, 메모리 장치에서 독출된 독출 데이터가 일시적으로 저장될 수 있다.
호스트 인터페이스(930)는 호스트와 인터페이스하여 호스트로부터 메모리 동작의 요청을 수신한다. 예를 들어, 호스트 인터페이스(930)는 호스트(HOST)로부터 데이터의 독출 및 기록 등의 각종 요청을 수신하고, 이에 응답하여 메모리 장치에 대한 메모리 동작을 위한 각종 내부 신호들을 발생할 수 있다.
메모리 인터페이스(940)는 메모리 컨트롤러(900)와 메모리 장치(미도시) 사이의 인터페이스를 제공할 수 있으며, 예를 들어, 기록 데이터 및 독출 데이터가 메모리 인터페이스(940)를 통해 메모리 장치와 송수신될 수 있다. 또한, 메모리 인터페이스(940)는 커맨드 및 어드레스를 메모리 장치로 제공할 수 있으며, 또한 메모리 장치로부터 각종 정보들을 수신하여 이를 메모리 컨트롤러(900) 내부로 제공할 수 있다.
한편, ECC 회로(950)는 전술한 실시예들에 따른 에러 검출 동작을 수행할 수 있으며, 일 예로서 메모리 컨트롤러(900)가 제어하는 다수의 메모리 칩들을 포함하는 메모리 모듈로부터 코드워드를 수신하고, 이에 대한 에러 검출 동작을 수행할 수 있다. 또한, ECC 회로(950)의 에러 검출 결과는 신뢰성 판단기(960)로 제공될 수 있다.
인디케이터 설정기(961)는 전술한 실시예들에 따라 다수의 메모리 칩들 중 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정할 수 있으며, 또한 인디케이터 칩을 변경하는 동작을 수행할 수 있다. 또한, 에러 영역 판단기(962)는 에러 검출 결과에 기반하여 에러가 발생된 메모리 칩을 판단할 수 있으며, 신뢰성 판단 로직(963)은 인디케이터 칩의 정보와 에러가 발생된 메모리 칩의 정보를 기초로 하여 신뢰성 저하 정보를 출력할 지 여부를 판단할 수 있다.
한편, 신뢰성 판단기(960)에 의해 수행될 수 있는 각종 기능들은 하드웨어적으로 구현되거나 소프트웨어적으로 구현될 수 있으며, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 일 예로서, 인디케이터 칩의 설정 및 신뢰성 저하 정보의 출력 동작이 하드웨어적으로 구현되는 경우, 신뢰성 판단기(960) 내에 배치되는 하드웨어 회로에 의해 해당 기능이 실행될 수 있을 것이다. 또는, 인디케이터 칩의 설정 및 신뢰성 저하 정보의 출력 동작이 소프트웨어적으로 구현되는 경우, 신뢰성 판단기(960) 내부에 또는 외부에 구비되는 프로그램이 RAM(920)에 로딩되고, 프로세서(910)가 해당 프로그램을 실행함에 의해 해당 기능이 실행될 수 있을 것이다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (26)

  1. 메모리 컨트롤러에 있어서, 상기 메모리 컨트롤러는 다수의 메모리 칩들을 포함하는 메모리 장치에 대한 메모리 동작을 제어하고,
    상기 메모리 장치로부터 독출된 코드워드에 대한 에러 검출을 수행하는 ECC(Error Correction Code) 회로; 및
    상기 메모리 칩들에 대해 수행된 초기 테스트 동작 결과에 기초하여 상기 다수의 메모리 칩들 중 상대적으로 낮은 신뢰도를 갖는 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정하고, 상기 ECC 회로의 상기 에러 검출 결과에 기반하여 상기 인디케이터 칩에서의 에러 발생을 모니터링하며, 상기 인디케이터 칩에 대한 모니터링 결과에 따라 상기 메모리 장치의 신뢰성이 저하되었음을 나타내는 신뢰성 저하 정보를 출력하는 신뢰성 판단기를 구비하고,
    상기 신뢰성 판단기는, 상기 인디케이터 칩에서 에러가 발생될 때 상기 신뢰성 저하 정보를 출력하는 것을 특징으로 하는 메모리 컨트롤러.
  2. 제1항에 있어서, 상기 신뢰성 판단기는,
    상기 메모리 장치로부터 상기 다수의 메모리 칩들의 수명 정보를 수신하고, 상기 다수의 메모리 칩들 중 상대적으로 짧은 수명을 갖는 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하는 것을 특징으로 하는 메모리 컨트롤러.
  3. 제1항에 있어서, 상기 신뢰성 판단기는,
    상기 다수의 메모리 칩들 중 비트 에러율이 상대적으로 큰 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하는 것을 특징으로 하는 메모리 컨트롤러.
  4. 제1항에 있어서,
    상기 메모리 컨트롤러는 상기 다수의 메모리 칩들 중 적어도 하나의 메모리 칩에 대해 다수 회의 더미 프로그램 동작을 수행하고,
    상기 신뢰성 판단기는, 상기 더미 프로그램 동작이 수행된 상기 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하는 것을 특징으로 하는 메모리 컨트롤러.
  5. 제1항에 있어서,
    상기 메모리 컨트롤러는, 상기 코드워드에 포함되는 패리티 데이터를 상기 다수의 메모리 칩들 중 적어도 하나의 메모리 칩에 기록하고,
    상기 신뢰성 판단기는, 상기 패리티 데이터가 기록되는 상기 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하는 것을 특징으로 하는 메모리 컨트롤러.
  6. 삭제
  7. 제1항에 있어서, 상기 신뢰성 판단기는,
    상기 인디케이터 칩에서의 에러 발생 빈도가 소정의 기준값을 초과할 때 상기 신뢰성 저하 정보를 출력하는 것을 특징으로 하는 메모리 컨트롤러.
  8. 제1항에 있어서, 상기 신뢰성 판단기는,
    상기 인디케이터 칩의 에러 발생 빈도가 다른 메모리 칩들에서의 에러 발생 빈도에 비해 소정의 비율만큼 클 때 상기 신뢰성 저하 정보를 출력하는 것을 특징으로 하는 메모리 컨트롤러.
  9. 제1항에 있어서, 상기 신뢰성 판단기는,
    상기 에러 검출 결과에 기반하여 상기 다수의 메모리 칩들 중 에러가 발생된 메모리 칩의 위치를 나타내는 제1 정보를 출력하는 에러 영역 판단기;
    상기 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하고, 상기 인디케이터 칩으로 설정된 메모리 칩을 나타내는 제2 정보를 출력하는 인디케이터 설정기; 및
    상기 제1 및 제2 정보에 기반하여 상기 인디케이터 칩에서의 에러 발생을 모니터링하고, 상기 신뢰성 저하 정보를 출력하는 신뢰성 판단 로직을 포함하는 것을 특징으로 하는 메모리 컨트롤러.
  10. 제1항에 있어서, 상기 신뢰성 판단기는,
    상기 다수의 메모리 칩들 중 상대적으로 가장 신뢰성이 낮은 제1 메모리 칩을 상기 인디케이터 칩으로 설정하고,
    상기 제1 메모리 칩에 에러가 발생됨에 따라 상기 신뢰성 저하 정보를 출력한 후, 상기 인디케이터 칩을 상기 다수의 메모리 칩들 중 다음으로 신뢰성이 낮은 제2 메모리 칩으로 변경하는 것을 특징으로 하는 메모리 컨트롤러.
  11. 제1항에 있어서,
    상기 다수의 메모리 칩들 중 제1 메모리 칩이 상기 인디케이터 칩으로 설정되고, 상기 제1 메모리 칩은 다수의 셀 블록들을 포함하며,
    상기 신뢰성 판단기는, 상기 다수의 셀 블록들 중 제1 셀 블록을 인디케이터 영역으로 설정하고, 상기 제1 셀 블록에서 에러가 발생될 때 상기 신뢰성 저하 정보를 출력함과 함께, 상기 인디케이터 영역을 상기 다수의 셀 블록들 중 제2 셀 블록으로 변경하는 것을 특징으로 하는 메모리 컨트롤러.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 메모리 컨트롤러의 동작방법에 있어서, 상기 메모리 컨트롤러는 다수의 메모리 칩들을 포함하는 메모리 장치에 대한 메모리 동작을 제어하고,
    상기 메모리 칩들에 대해 수행된 초기 테스트 동작 결과에 기초하여 상기 다수의 메모리 칩들 중 상대적으로 낮은 신뢰도를 갖는 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정하는 단계;
    상기 메모리 장치로부터 독출된 코드워드에 대한 에러 검출 결과에 기반하여, 상기 인디케이터 칩에서의 에러 발생 여부를 모니터링하는 단계; 및
    상기 모니터링을 기초로 상기 인디케이터 칩에서 에러가 발생될 때 상기 메모리 장치의 신뢰성이 저하되었음을 나타내는 신뢰성 저하 정보를 출력하는 단계를 구비하고,
    상기 인디케이터 칩을 제외한 다른 메모리 칩에서 에러가 발생될 때 상기 신뢰성 저하 정보가 출력되지 않는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  18. 삭제
  19. 제17항에 있어서,
    상기 다수의 메모리 칩들 중 제1 메모리 칩은 상기 코드워드에 포함되는 패리티 데이터를 저장하고,
    상기 제1 메모리 칩이 상기 인디케이터 칩으로 설정되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
  20. 삭제
  21. 다수의 메모리 영역들을 포함하는 메모리 장치; 및
    상기 메모리 장치를 제어하는 컨트롤러를 구비하고,
    상기 컨트롤러는,
    상기 다수의 메모리 영역들 중 낮은 신뢰성을 갖는 메모리 영역을 인디케이터로 설정하고, 상기 메모리 장치의 제1 영역에 저장된 제1 데이터를 수신하고, 상기 메모리 장치의 상기 인디케이터에 저장된 제2 데이터를 수신하며, 에러 검출에 기초하여 상기 제1 데이터에 대해 발생된 에러를 상기 제2 데이터에 대해 발생된 에러와 비교하고, 비교 결과에 따라 상기 메모리 장치의 신뢰성이 저하되었음을 나타내는 신뢰성 저하 정보를 출력하고,
    상기 컨트롤러는 상기 다수의 메모리 영역들 각각으로부터 독출된 데이터의 비트 에러율에 기초하여 상기 인디케이터를 설정하는 것을 특징으로 하는 메모리 시스템.
  22. 삭제
  23. 제21항에 있어서,
    상기 컨트롤러는 상기 메모리 장치로부터 독출된 데이터에 대해 상기 에러 검출을 수행하는 ECC(Error Correction Code) 회로를 포함하는 것을 특징으로 하는 메모리 시스템
  24. 제23항에 있어서,
    상기 컨트롤러는 상기 에러 검출 결과에 기초하여 상기 인디케이터에서의 에러 발생 및 상기 제1 영역에서의 에러 발생을 모니터링하는 것을 특징으로 하는 메모리 시스템
  25. 제24항에 있어서,
    상기 컨트롤러는, 상기 인디케이터에서의 에러 발생 빈도가 상기 제1 영역에서의 에러 발생 빈도를 초과하는 경우, 상기 신뢰성 저하 정보를 생성하는 것을 특징으로 하는 메모리 시스템.
  26. 제21항에 있어서,
    상기 컨트롤러는 상기 제1 데이터 및 상기 제2 데이터를 포함하는 다수의 데이터를 코드워드로서 수신하는 것을 특징으로 하는 메모리 시스템.
KR1020180139398A 2018-11-13 2018-11-13 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 KR102599047B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180139398A KR102599047B1 (ko) 2018-11-13 2018-11-13 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US16/407,881 US11036577B2 (en) 2018-11-13 2019-05-09 Memory controller including ECC circuit, memory system having the same, and method of operating memory system and memory controller
CN201910706172.3A CN111179998A (zh) 2018-11-13 2019-08-01 存储器控制器及其操作方法和存储器系统
US17/318,643 US11630724B2 (en) 2018-11-13 2021-05-12 Memory controller including ECC circuit, memory system having the same, and method of operating memory system and memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180139398A KR102599047B1 (ko) 2018-11-13 2018-11-13 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Publications (2)

Publication Number Publication Date
KR20200055588A KR20200055588A (ko) 2020-05-21
KR102599047B1 true KR102599047B1 (ko) 2023-11-06

Family

ID=70550521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180139398A KR102599047B1 (ko) 2018-11-13 2018-11-13 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Country Status (3)

Country Link
US (2) US11036577B2 (ko)
KR (1) KR102599047B1 (ko)
CN (1) CN111179998A (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12034015B2 (en) 2018-05-25 2024-07-09 Meta Platforms Technologies, Llc Programmable pixel array
US11888002B2 (en) 2018-12-17 2024-01-30 Meta Platforms Technologies, Llc Dynamically programmable image sensor
US11962928B2 (en) 2018-12-17 2024-04-16 Meta Platforms Technologies, Llc Programmable pixel array
US11935291B2 (en) 2019-10-30 2024-03-19 Meta Platforms Technologies, Llc Distributed sensor system
US11948089B2 (en) 2019-11-07 2024-04-02 Meta Platforms Technologies, Llc Sparse image sensing and processing
US11825228B2 (en) 2020-05-20 2023-11-21 Meta Platforms Technologies, Llc Programmable pixel array having multiple power domains
US11436025B2 (en) 2020-07-09 2022-09-06 Numem Inc. Smart compute resistive memory
US11443802B2 (en) 2020-07-09 2022-09-13 Numem Inc. Adaptive memory management and control circuitry
US12075175B1 (en) 2020-09-08 2024-08-27 Meta Platforms Technologies, Llc Programmable smart sensor with adaptive readout
US11500575B2 (en) * 2020-09-23 2022-11-15 Micron Technology, Inc. Pattern generation for multi-channel memory array
US11935575B1 (en) * 2020-12-23 2024-03-19 Meta Platforms Technologies, Llc Heterogeneous memory system
US20240061614A1 (en) * 2022-08-18 2024-02-22 Micron Technology, Inc. Error detection and correction in a controller
US20240168847A1 (en) * 2022-11-21 2024-05-23 Micron Technology, Inc. Efficient memory use to support soft information in bit flipping decoders

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328284A1 (en) * 2015-05-08 2016-11-10 International Business Machines Corporation Memory device error history bit
US20170091028A1 (en) * 2015-09-30 2017-03-30 Sandisk Technologies Inc. Error correction based on historical bit error data

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020060B2 (en) 2006-01-18 2011-09-13 Sandisk Il Ltd Method of arranging data in a multi-level cell memory device
US8312341B1 (en) 2007-12-05 2012-11-13 Marvell International Ltd. Interleaved error correction coding for channels with non-uniform SNRs
US8407517B2 (en) 2010-04-08 2013-03-26 Hitachi, Ltd. Methods and apparatus for managing error codes for storage systems coupled with external storage systems
KR101686590B1 (ko) 2010-09-20 2016-12-14 삼성전자주식회사 플래시 메모리 시스템 및 그것의 워드 라인 인터리빙 방법
WO2013137851A1 (en) 2012-03-12 2013-09-19 Intel Corporation Distributed codeword portions
US9058880B2 (en) 2013-02-04 2015-06-16 National Tsing Hua University Unequal bit reliability information storage method for communication and storage systems
US9053790B1 (en) 2014-07-01 2015-06-09 Sandisk Technologies Inc. Counter for write operations at a data storage device
US9588841B2 (en) 2014-09-26 2017-03-07 Intel Corporation Using reliability information from multiple storage units and a parity storage unit to recover data for a failed one of the storage units
US9740425B2 (en) * 2014-12-16 2017-08-22 Sandisk Technologies Llc Tag-based wear leveling for a data storage device
US20160378591A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Adaptive error correction in memory devices
CN105335247B (zh) * 2015-09-24 2018-04-20 中国航天科技集团公司第九研究院第七七一研究所 高可靠系统芯片中Cache的容错结构及其容错方法
KR102435181B1 (ko) * 2015-11-16 2022-08-23 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10169126B2 (en) * 2016-10-12 2019-01-01 Samsung Electronics Co., Ltd. Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
KR102677592B1 (ko) 2017-02-06 2024-06-24 에스케이하이닉스 주식회사 연장된 제품 수명을 갖는 메모리장치 및 그 동작방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328284A1 (en) * 2015-05-08 2016-11-10 International Business Machines Corporation Memory device error history bit
US20170091028A1 (en) * 2015-09-30 2017-03-30 Sandisk Technologies Inc. Error correction based on historical bit error data

Also Published As

Publication number Publication date
US20210263794A1 (en) 2021-08-26
US11630724B2 (en) 2023-04-18
CN111179998A (zh) 2020-05-19
US20200151054A1 (en) 2020-05-14
US11036577B2 (en) 2021-06-15
KR20200055588A (ko) 2020-05-21

Similar Documents

Publication Publication Date Title
KR102599047B1 (ko) 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
KR20190139082A (ko) 메모리 장치의 비트 에러율 균등화 방법
KR102178832B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 동작 방법
US9691477B2 (en) Resistive memory system and method of operating the resistive memory system
KR102261817B1 (ko) 다수의 레이어들을 포함하는 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 시스템의 동작방법
KR102610821B1 (ko) 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US9646687B2 (en) Resistive memory device and operating method
CN111199768B (zh) 存储器控制器、存储器系统以及存储器系统的纠错方法
US9881671B2 (en) Resistive memory device, resistive memory system, and method of operating the resistive memory system
US11847024B2 (en) Memory controller, memory system including the same, and method of operating the memory controller
EP3579235B1 (en) Method of equalizing bit error rates of memory device
KR102651129B1 (ko) 메모리 장치의 데이터 재기입 방법, 상기 메모리 장치를 제어하는 메모리 컨트롤러 및 상기 메모리 컨트롤러의 제어 방법
KR102651128B1 (ko) 데이터 비교 기록을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
CN117393018A (zh) 切换用于读取存储器装置中的存储器单元的已知模式

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