KR102599047B1 - 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 - Google Patents
데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 441
- 238000011017 operating method Methods 0.000 title description 3
- 230000006866 deterioration Effects 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000001514 detection method Methods 0.000 claims abstract description 30
- 238000012544 monitoring process Methods 0.000 claims abstract description 13
- 238000012937 correction Methods 0.000 claims abstract description 7
- 230000015556 catabolic process Effects 0.000 claims description 18
- 238000006731 degradation reaction Methods 0.000 claims description 18
- 238000013101 initial test Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 19
- 230000008859 change Effects 0.000 description 13
- 239000000463 material Substances 0.000 description 13
- 239000004065 semiconductor Substances 0.000 description 13
- 238000012545 processing Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- PXHVJJICTQNCMI-UHFFFAOYSA-N Nickel Chemical compound [Ni] PXHVJJICTQNCMI-UHFFFAOYSA-N 0.000 description 3
- KDLHZDBZIXYQEI-UHFFFAOYSA-N Palladium Chemical compound [Pd] KDLHZDBZIXYQEI-UHFFFAOYSA-N 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000010438 heat treatment Methods 0.000 description 3
- BASFCYQUMIYNBI-UHFFFAOYSA-N platinum Chemical compound [Pt] BASFCYQUMIYNBI-UHFFFAOYSA-N 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- FFQALBCXGPYQGT-UHFFFAOYSA-N 2,4-difluoro-5-(trifluoromethyl)aniline Chemical compound NC1=CC(C(F)(F)F)=C(F)C=C1F FFQALBCXGPYQGT-UHFFFAOYSA-N 0.000 description 2
- 229910052787 antimony Inorganic materials 0.000 description 2
- WATWJIUSRGPENY-UHFFFAOYSA-N antimony atom Chemical compound [Sb] WATWJIUSRGPENY-UHFFFAOYSA-N 0.000 description 2
- 239000011651 chromium Substances 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 239000000696 magnetic material Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 229910052751 metal Inorganic materials 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 239000010936 titanium Substances 0.000 description 2
- 229910000314 transition metal oxide Inorganic materials 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 1
- ZOKXTWBITQBERF-UHFFFAOYSA-N Molybdenum Chemical compound [Mo] ZOKXTWBITQBERF-UHFFFAOYSA-N 0.000 description 1
- 229910005855 NiOx Inorganic materials 0.000 description 1
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 229910003087 TiOx Inorganic materials 0.000 description 1
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 1
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical compound [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 description 1
- NRTOMJZYCJJWKI-UHFFFAOYSA-N Titanium nitride Chemical compound [Ti]#N NRTOMJZYCJJWKI-UHFFFAOYSA-N 0.000 description 1
- UQZIWOQVLUASCR-UHFFFAOYSA-N alumane;titanium Chemical compound [AlH3].[Ti] UQZIWOQVLUASCR-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- IVHJCRXBQPGLOV-UHFFFAOYSA-N azanylidynetungsten Chemical compound [W]#N IVHJCRXBQPGLOV-UHFFFAOYSA-N 0.000 description 1
- 229910052804 chromium Inorganic materials 0.000 description 1
- 229910017052 cobalt Inorganic materials 0.000 description 1
- 239000010941 cobalt Substances 0.000 description 1
- GUTLYIVDDKVIGB-UHFFFAOYSA-N cobalt atom Chemical compound [Co] GUTLYIVDDKVIGB-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000003989 dielectric material Substances 0.000 description 1
- HTXDPTMKBJXEOW-UHFFFAOYSA-N dioxoiridium Chemical compound O=[Ir]=O HTXDPTMKBJXEOW-UHFFFAOYSA-N 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 229910052741 iridium Inorganic materials 0.000 description 1
- GKOZUEZYRPOHIO-UHFFFAOYSA-N iridium atom Chemical compound [Ir] GKOZUEZYRPOHIO-UHFFFAOYSA-N 0.000 description 1
- 150000002739 metals Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052750 molybdenum Inorganic materials 0.000 description 1
- 239000011733 molybdenum Substances 0.000 description 1
- 229910052759 nickel Inorganic materials 0.000 description 1
- 150000004767 nitrides Chemical class 0.000 description 1
- 229910052763 palladium Inorganic materials 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 229910052697 platinum Inorganic materials 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- VSZWPYCFIRKVQL-UHFFFAOYSA-N selanylidenegallium;selenium Chemical compound [Se].[Se]=[Ga].[Se]=[Ga] VSZWPYCFIRKVQL-UHFFFAOYSA-N 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 229910052715 tantalum Inorganic materials 0.000 description 1
- GUVRBAGPIYLISA-UHFFFAOYSA-N tantalum atom Chemical compound [Ta] GUVRBAGPIYLISA-UHFFFAOYSA-N 0.000 description 1
- MZLGASXMSKOWSE-UHFFFAOYSA-N tantalum nitride Chemical compound [Ta]#N MZLGASXMSKOWSE-UHFFFAOYSA-N 0.000 description 1
- JBQYATWDVHIOAR-UHFFFAOYSA-N tellanylidenegermanium Chemical compound [Te]=[Ge] JBQYATWDVHIOAR-UHFFFAOYSA-N 0.000 description 1
- 229910052714 tellurium Inorganic materials 0.000 description 1
- PORWMNRCUJJQNO-UHFFFAOYSA-N tellurium atom Chemical compound [Te] PORWMNRCUJJQNO-UHFFFAOYSA-N 0.000 description 1
- HLLICFJUWSZHRJ-UHFFFAOYSA-N tioxidazole Chemical compound CCCOC1=CC=C2N=C(NC(=O)OC)SC2=C1 HLLICFJUWSZHRJ-UHFFFAOYSA-N 0.000 description 1
- 229910052719 titanium Inorganic materials 0.000 description 1
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- 239000010937 tungsten Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability 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
본 개시의 기술적 사상은 메모리 컨트롤러에 관한 것으로서, 상세하게는 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법에 관한 것이다.
불휘발성 메모리 장치로서 플래시 메모리와 함께, 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은 본 발명의 예시적인 실시예에 따른 메모리 컨트롤러의 구현 예를 나타내는 블록도이다.
도 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)
- 메모리 컨트롤러에 있어서, 상기 메모리 컨트롤러는 다수의 메모리 칩들을 포함하는 메모리 장치에 대한 메모리 동작을 제어하고,
상기 메모리 장치로부터 독출된 코드워드에 대한 에러 검출을 수행하는 ECC(Error Correction Code) 회로; 및
상기 메모리 칩들에 대해 수행된 초기 테스트 동작 결과에 기초하여 상기 다수의 메모리 칩들 중 상대적으로 낮은 신뢰도를 갖는 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정하고, 상기 ECC 회로의 상기 에러 검출 결과에 기반하여 상기 인디케이터 칩에서의 에러 발생을 모니터링하며, 상기 인디케이터 칩에 대한 모니터링 결과에 따라 상기 메모리 장치의 신뢰성이 저하되었음을 나타내는 신뢰성 저하 정보를 출력하는 신뢰성 판단기를 구비하고,
상기 신뢰성 판단기는, 상기 인디케이터 칩에서 에러가 발생될 때 상기 신뢰성 저하 정보를 출력하는 것을 특징으로 하는 메모리 컨트롤러. - 제1항에 있어서, 상기 신뢰성 판단기는,
상기 메모리 장치로부터 상기 다수의 메모리 칩들의 수명 정보를 수신하고, 상기 다수의 메모리 칩들 중 상대적으로 짧은 수명을 갖는 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하는 것을 특징으로 하는 메모리 컨트롤러. - 제1항에 있어서, 상기 신뢰성 판단기는,
상기 다수의 메모리 칩들 중 비트 에러율이 상대적으로 큰 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하는 것을 특징으로 하는 메모리 컨트롤러. - 제1항에 있어서,
상기 메모리 컨트롤러는 상기 다수의 메모리 칩들 중 적어도 하나의 메모리 칩에 대해 다수 회의 더미 프로그램 동작을 수행하고,
상기 신뢰성 판단기는, 상기 더미 프로그램 동작이 수행된 상기 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하는 것을 특징으로 하는 메모리 컨트롤러. - 제1항에 있어서,
상기 메모리 컨트롤러는, 상기 코드워드에 포함되는 패리티 데이터를 상기 다수의 메모리 칩들 중 적어도 하나의 메모리 칩에 기록하고,
상기 신뢰성 판단기는, 상기 패리티 데이터가 기록되는 상기 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하는 것을 특징으로 하는 메모리 컨트롤러. - 삭제
- 제1항에 있어서, 상기 신뢰성 판단기는,
상기 인디케이터 칩에서의 에러 발생 빈도가 소정의 기준값을 초과할 때 상기 신뢰성 저하 정보를 출력하는 것을 특징으로 하는 메모리 컨트롤러. - 제1항에 있어서, 상기 신뢰성 판단기는,
상기 인디케이터 칩의 에러 발생 빈도가 다른 메모리 칩들에서의 에러 발생 빈도에 비해 소정의 비율만큼 클 때 상기 신뢰성 저하 정보를 출력하는 것을 특징으로 하는 메모리 컨트롤러. - 제1항에 있어서, 상기 신뢰성 판단기는,
상기 에러 검출 결과에 기반하여 상기 다수의 메모리 칩들 중 에러가 발생된 메모리 칩의 위치를 나타내는 제1 정보를 출력하는 에러 영역 판단기;
상기 적어도 하나의 메모리 칩을 상기 인디케이터 칩으로 설정하고, 상기 인디케이터 칩으로 설정된 메모리 칩을 나타내는 제2 정보를 출력하는 인디케이터 설정기; 및
상기 제1 및 제2 정보에 기반하여 상기 인디케이터 칩에서의 에러 발생을 모니터링하고, 상기 신뢰성 저하 정보를 출력하는 신뢰성 판단 로직을 포함하는 것을 특징으로 하는 메모리 컨트롤러. - 제1항에 있어서, 상기 신뢰성 판단기는,
상기 다수의 메모리 칩들 중 상대적으로 가장 신뢰성이 낮은 제1 메모리 칩을 상기 인디케이터 칩으로 설정하고,
상기 제1 메모리 칩에 에러가 발생됨에 따라 상기 신뢰성 저하 정보를 출력한 후, 상기 인디케이터 칩을 상기 다수의 메모리 칩들 중 다음으로 신뢰성이 낮은 제2 메모리 칩으로 변경하는 것을 특징으로 하는 메모리 컨트롤러. - 제1항에 있어서,
상기 다수의 메모리 칩들 중 제1 메모리 칩이 상기 인디케이터 칩으로 설정되고, 상기 제1 메모리 칩은 다수의 셀 블록들을 포함하며,
상기 신뢰성 판단기는, 상기 다수의 셀 블록들 중 제1 셀 블록을 인디케이터 영역으로 설정하고, 상기 제1 셀 블록에서 에러가 발생될 때 상기 신뢰성 저하 정보를 출력함과 함께, 상기 인디케이터 영역을 상기 다수의 셀 블록들 중 제2 셀 블록으로 변경하는 것을 특징으로 하는 메모리 컨트롤러. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 메모리 컨트롤러의 동작방법에 있어서, 상기 메모리 컨트롤러는 다수의 메모리 칩들을 포함하는 메모리 장치에 대한 메모리 동작을 제어하고,
상기 메모리 칩들에 대해 수행된 초기 테스트 동작 결과에 기초하여 상기 다수의 메모리 칩들 중 상대적으로 낮은 신뢰도를 갖는 적어도 하나의 메모리 칩을 인디케이터 칩으로 설정하는 단계;
상기 메모리 장치로부터 독출된 코드워드에 대한 에러 검출 결과에 기반하여, 상기 인디케이터 칩에서의 에러 발생 여부를 모니터링하는 단계; 및
상기 모니터링을 기초로 상기 인디케이터 칩에서 에러가 발생될 때 상기 메모리 장치의 신뢰성이 저하되었음을 나타내는 신뢰성 저하 정보를 출력하는 단계를 구비하고,
상기 인디케이터 칩을 제외한 다른 메모리 칩에서 에러가 발생될 때 상기 신뢰성 저하 정보가 출력되지 않는 것을 특징으로 하는 메모리 컨트롤러의 동작방법. - 삭제
- 제17항에 있어서,
상기 다수의 메모리 칩들 중 제1 메모리 칩은 상기 코드워드에 포함되는 패리티 데이터를 저장하고,
상기 제1 메모리 칩이 상기 인디케이터 칩으로 설정되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법. - 삭제
- 다수의 메모리 영역들을 포함하는 메모리 장치; 및
상기 메모리 장치를 제어하는 컨트롤러를 구비하고,
상기 컨트롤러는,
상기 다수의 메모리 영역들 중 낮은 신뢰성을 갖는 메모리 영역을 인디케이터로 설정하고, 상기 메모리 장치의 제1 영역에 저장된 제1 데이터를 수신하고, 상기 메모리 장치의 상기 인디케이터에 저장된 제2 데이터를 수신하며, 에러 검출에 기초하여 상기 제1 데이터에 대해 발생된 에러를 상기 제2 데이터에 대해 발생된 에러와 비교하고, 비교 결과에 따라 상기 메모리 장치의 신뢰성이 저하되었음을 나타내는 신뢰성 저하 정보를 출력하고,
상기 컨트롤러는 상기 다수의 메모리 영역들 각각으로부터 독출된 데이터의 비트 에러율에 기초하여 상기 인디케이터를 설정하는 것을 특징으로 하는 메모리 시스템. - 삭제
- 제21항에 있어서,
상기 컨트롤러는 상기 메모리 장치로부터 독출된 데이터에 대해 상기 에러 검출을 수행하는 ECC(Error Correction Code) 회로를 포함하는 것을 특징으로 하는 메모리 시스템 - 제23항에 있어서,
상기 컨트롤러는 상기 에러 검출 결과에 기초하여 상기 인디케이터에서의 에러 발생 및 상기 제1 영역에서의 에러 발생을 모니터링하는 것을 특징으로 하는 메모리 시스템 - 제24항에 있어서,
상기 컨트롤러는, 상기 인디케이터에서의 에러 발생 빈도가 상기 제1 영역에서의 에러 발생 빈도를 초과하는 경우, 상기 신뢰성 저하 정보를 생성하는 것을 특징으로 하는 메모리 시스템. - 제21항에 있어서,
상기 컨트롤러는 상기 제1 데이터 및 상기 제2 데이터를 포함하는 다수의 데이터를 코드워드로서 수신하는 것을 특징으로 하는 메모리 시스템.
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)
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)
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)
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 | 에스케이하이닉스 주식회사 | 연장된 제품 수명을 갖는 메모리장치 및 그 동작방법 |
-
2018
- 2018-11-13 KR KR1020180139398A patent/KR102599047B1/ko active IP Right Grant
-
2019
- 2019-05-09 US US16/407,881 patent/US11036577B2/en active Active
- 2019-08-01 CN CN201910706172.3A patent/CN111179998A/zh active Pending
-
2021
- 2021-05-12 US US17/318,643 patent/US11630724B2/en active Active
Patent Citations (2)
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 |