KR20210117528A - 메모리 시스템 및 그것의 동작 방법 - Google Patents

메모리 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20210117528A
KR20210117528A KR1020200033841A KR20200033841A KR20210117528A KR 20210117528 A KR20210117528 A KR 20210117528A KR 1020200033841 A KR1020200033841 A KR 1020200033841A KR 20200033841 A KR20200033841 A KR 20200033841A KR 20210117528 A KR20210117528 A KR 20210117528A
Authority
KR
South Korea
Prior art keywords
cells
target
adjacent
candidate data
memory
Prior art date
Application number
KR1020200033841A
Other languages
English (en)
Inventor
한미선
김명서
임의철
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020200033841A priority Critical patent/KR20210117528A/ko
Priority to US16/998,965 priority patent/US11170862B2/en
Priority to CN202010873999.6A priority patent/CN113496728B/zh
Publication of KR20210117528A publication Critical patent/KR20210117528A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • 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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write operation performed depending on read result

Landscapes

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

Abstract

메모리 시스템은 복수의 메모리 영역들을 포함하되, 상기 복수의 메모리 영역들 각각은 공통의 워드라인에 연결되는 복수의 셀들을 포함하는, 비휘발성 메모리 장치; 및 소스 데이터에 근거하여 복수의 후보 데이터 세트들을 생성하고, 상기 복수의 후보 데이터 세트들 각각에 대응하는 취약 셀 개수를 결정하고, 상기 취약 셀 개수가 가장 작은 후보 데이터 세트를 상기 메모리 영역들 중 타겟 메모리 영역에 저장하도록 구성된 컨트롤러를 포함한다.

Description

메모리 시스템 및 그것의 동작 방법{MEMORY SYSTEM AND OPERATING METHOD THEREOF}
본 발명은 메모리 시스템에 관한 것으로, 더욱 상세하게는 비휘발성 메모리 장치를 포함하는 메모리 시스템에 관한 것이다.
메모리 시스템은 호스트 장치의 라이트 요청에 응답하여, 호스트 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 메모리 시스템은 호스트 장치의 리드 요청에 응답하여, 저장된 데이터를 호스트 장치로 제공하도록 구성될 수 있다. 호스트 장치는 데이터를 처리할 수 있는 전자 장치로서, 컴퓨터, 디지털 카메라 또는 휴대폰 등을 포함할 수 있다. 메모리 시스템은 호스트 장치에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 호스트 장치에 연결됨으로써 동작할 수 있다.
본 발명의 실시 예는 라이트 디스터번스 효과로 인한 에러가 감소함으로써 데이터 신뢰성이 향상된 메모리 시스템 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 메모리 시스템은 복수의 메모리 영역들을 포함하되, 상기 복수의 메모리 영역들 각각은 공통의 워드라인에 연결되는 복수의 셀들을 포함하는, 비휘발성 메모리 장치; 및 소스 데이터에 근거하여 복수의 후보 데이터 세트들을 생성하고, 상기 복수의 후보 데이터 세트들 각각에 대응하는 취약 셀 개수를 결정하고, 상기 취약 셀 개수가 가장 작은 후보 데이터 세트를 상기 메모리 영역들 중 타겟 메모리 영역에 저장하도록 구성된 컨트롤러를 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은 복수의 메모리 영역들을 포함하는 상변화 메모리 장치; 및 소스 데이터에 근거하여 후보 데이터 세트를 생성하고, 상기 메모리 영역들 중 타겟 메모리 영역으로부터 리드된 타겟 데이터 세트, 적어도 하나의 인접 메모리 영역으로부터 리드된 적어도 하나의 인접 데이터 세트, 및 상기 후보 데이터 세트에 근거하여 상기 후보 데이터 세트에 대응하는 취약 셀 개수를 결정하고, 상기 취약 셀 개수에 근거하여 상기 후보 데이터 세트를 상기 타겟 메모리 영역에 선택적으로 저장하도록 구성된 컨트롤러를 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템의 동작 방법은 복수의 메모리 영역들을 포함하되, 상기 복수의 메모리 영역들 각각은 공통의 워드라인에 연결되는 복수의 셀들을 포함하는, 비휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법으로서, 컨트롤러에 의해, 소스 데이터에 근거하여 복수의 후보 데이터 세트들을 생성하는 단계; 상기 컨트롤러에 의해, 상기 복수의 후보 데이터 세트들 각각에 대응하는 취약 셀 개수를 결정하는 단계; 및 상기 컨트롤러에 의해, 상기 취약 셀 개수가 가장 작은 후보 데이터 세트를 상기 메모리 영역들 중 타겟 메모리 영역에 저장하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템 및 그것의 동작 방법은 라이트 디스터번스 효과로 인한 에러가 감소함으로써 데이터 신뢰성을 향상시킬 수 있다.
도1은 본 발명의 실시 예에 따른 메모리 시스템을 도시한 블록도,
도2는 본 발명의 실시 예에 따라 도1의 비휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 도면,
도3은 프로그램 동작에서 라이트 디스터번스 효과를 받는 셀들을 도시하는 도면,
도4는 본 발명의 실시 예에 따라 도1의 컨트롤러의 동작 방법을 도시하는 도면,
도5는 본 발명의 실시 예에 따라 후보 결정부가 제1 후보 데이터 세트의 취약 타겟 셀 개수 및 취약 인접 셀 개수를 결정하는 방법을 예시적으로 도시하는 도면,
도6은 본 발명의 실시 예에 따라 도1의 컨트롤러의 동작 방법을 도시하는 순서도,
도7은 본 발명의 실시 예에 따라 도1의 컨트롤러의 동작 방법을 도시하는 순서도,
도 8은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면,
도 9는 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면,
도 10은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 예시적으로 도시하는 도면,
도 11은 본 발명의 실시 예에 따른 메모리 시스템에 포함된 비휘발성 메모리 장치를 예시적으로 도시하는 블럭도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 '및/또는'이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, '연결되는/결합되는'이란 표현은 다른 구성 요소와 직접적으로 연결되거나 다른 구성 요소를 통해서 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 '포함한다' 또는 '포함하는'으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 메모리 시스템(100)을 도시한 블록도이다.
도1을 참조하면, 메모리 시스템(100)은 외부의 호스트 장치(미도시됨)의 라이트 요청에 응답하여, 호스트 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 메모리 시스템(100)은 호스트 장치의 리드 요청에 응답하여, 저장된 데이터를 호스트 장치로 제공하도록 구성될 수 있다.
메모리 시스템(100)은 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어 카드, 메모리 스틱, 다양한 멀티 미디어 카드(MMC, eMMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD), UFS(Universal Flash Storage) 또는 SSD(Solid State Drive)를 포함할 수 있다.
메모리 시스템(100)은 컨트롤러 및 비휘발성 메모리 장치(120)를 포함할 수 있다.
컨트롤러(110)는 메모리 시스템(100)의 제반 동작을 제어할 수 있다. 컨트롤러(110)는 호스트 장치의 지시에 따라 포그라운드 동작을 수행하기 위해 비휘발성 메모리 장치(120)를 제어할 수 있다. 포그라운드 동작은 호스트 장치의 지시, 즉, 라이트 요청 및 리드 요청에 따라 비휘발성 메모리 장치(120)에 데이터를 라이트하고 비휘발성 메모리 장치(120)로부터 데이터를 리드하는 동작을 포함할 수 있다.
또한, 컨트롤러(110)는 호스트 장치와 독립적으로 백그라운드 동작을 수행하기 위해서 비휘발성 메모리 장치(120)를 제어할 수 있다. 백그라운드 동작은 비휘발성 메모리 장치(120)에 대한 웨어 레벨링 동작, 가비지 컬렉션 동작, 소거 동작, 리드 리클레임 동작, 및 리프레시 동작 중 적어도 하나를 포함할 수 있다. 백그라운드 동작은 포그라운드 동작처럼 비휘발성 메모리 장치(120)에 데이터를 라이트하고 비휘발성 메모리 장치(120)로부터 데이터를 리드하는 동작을 포함할 수 있다.
또한, 컨트롤러(110)는 호스트 장치가 비휘발성 메모리 장치(120)에 저장하도록 지시한 소스 데이터(SDT)를 보다 적은 에러를 유발하는 적절한 데이터(아래의 후보 데이터 세트(SCDT))로 변환하여 타겟 메모리 영역(TMR)에 저장할 수 있다.
구체적으로, 컨트롤러(110)는 인코더(111) 및 후보 결정부(112)를 포함할 수 있다.
인코더(111)는 소스 데이터(SDT)에 근거하여 복수의 후보 데이터 세트들(CDT1~CDTk)을 생성할 수 있다. 예를 들어 인코더(111)는 코셋 코딩(coset coding)에 근거하여 소스 데이터(SDT)를 인코딩함으로써 복수의 후보 데이터 세트들(CDT1~CDTk)을 생성할 수 있지만, 본 발명의 실시 예는 이에 제한되지 않는다.
후보 결정부(112)는 인코더(111)에서 생성된 복수의 후보 데이터 세트들(CDT1~CDTk) 중 타겟 메모리 영역(TMR)에 저장될 어느 하나의 후보 데이터 세트(SCDT)를 선택할 수 있다. 후보 결정부(112)는 복수의 후보 데이터 세트들(CDT1~CDTk) 중 라이트 디스터번스 효과를 가장 적게 유발하는 어느 하나의 후보 데이터 세트(SCDT)를 선택할 수 있다.
구체적으로, 후보 결정부(112)는 후보 데이터 세트들(CDT1~CDTk) 각각에 대응하는 취약 셀 개수를 결정하고, 취약 셀 개수가 가장 작은 후보 데이터 세트(SCDT)를 선택할 수 있다. 후보 데이터 세트들(CDT1~CDTk) 각각에 대응하는 취약 셀 개수는 각 후보 데이터 세트가 타겟 메모리 영역(TMR)에 저장될 경우, 타겟 메모리 영역(TMR) 및 타겟 메모리 영역(TMR)에 인접한 인접 메모리 영역(AMR1, AMR2)에서 라이트 디스터번스 효과를 받는 셀들의 개수일 수 있다.
구체적으로, 후보 결정부(112)는 후보 데이터 세트들(CDT1~CDTk) 각각에 대해, 타겟 메모리 영역(TMR)의 취약 타겟 셀 개수를 결정하고, 인접 메모리 영역들(AMR1, AMR2)의 취약 인접 셀 개수를 결정하고, 취약 타겟 셀 개수 및 취약 인접 셀 개수의 합을 취약 셀 개수로 결정할 수 있다.
후보 결정부(112)는 후보 데이터 세트들(CDT1~CDTk) 각각에 대해, 타겟 메모리 영역(TMR)에 포함된 타겟 셀들 중 리셋 프로그램 셀들에 인접한 리셋 유지 셀들의 개수를 취약 타겟 셀 개수로 결정할 수 있다.
리셋 프로그램 셀은, 후보 데이터 세트들(CDT1~CDTk) 각각을 타겟 메모리 영역(TMR)에 저장할 경우, 셋 상태에서 리셋 상태로 변경되는 타겟 셀일 수 있다. 리셋 상태의 셀은 셋 상태의 셀보다 높은 저항 값을 가질 수 있다. 리셋 상태의 셀은 예를 들어 "0"을 저장하는 상태이고, 셋 상태의 셀은 예를 들어 "1"을 저장하는 상태일 수 있다.
리셋 유지 셀은, 후보 데이터 세트들(CDT1~CDTk) 각각을 타겟 메모리 영역(TMR)에 저장할 경우, 리셋 상태로 유지되면서 리셋 프로그램 셀에 인접한 타겟 셀일 수 있다.
후보 결정부(112)는 타겟 메모리 영역(TMR)으로부터 리드된 타겟 데이터 세트(TDT)와 각 후보 데이터 세트에 근거하여, 각 후보 데이터 세트의 취약 타겟 셀 개수를 결정할 수 있다.
그리고, 후보 결정부(112)는 후보 데이터 세트들(CDT1~CDTk) 각각에 대해, 인접 메모리 영역들(AMR1, AMR2)에 포함된 인접 셀들 중 타겟 메모리 영역(TMR)의 리셋 프로그램 셀들에 인접한 리셋 상태의 인접 셀들의 개수를 취약 인접 셀 개수로 결정할 수 있다. 후보 결정부(112)는 타겟 메모리 영역(TMR)으로부터 리드된 타겟 데이터 세트(TDT), 인접 메모리 영역들(AMR1, AMR2)로부터 리드된 인접 데이터 세트들(ADT1, ADT2), 및 각 후보 데이터 세트에 근거하여, 각 후보 데이터 세트의 취약 인접 셀 개수를 결정할 수 있다.
후보 결정부(112)는 후보 데이터 세트(SCDT)를 선택하기 전까지 인코더(111)로부터 수신된 복수의 후보 데이터 세트들(CDT1~CDTk)을 후보 결정부(112) 내부의 메모리 또는 별도의 메모리에 저장할 수 있다.
한편, 컨트롤러(110)는 디코더(미도시)를 더 포함할 수 있다. 디코더는 타겟 메모리 영역(TMR)에 저장된 후보 데이터 세트(SCDT)가 타겟 메모리 영역(TMR)으로부터 리드되면, 후보 데이터 세트(SCDT)를 디코딩함으로써 소스 데이터(SDT)를 복구할 수 있다. 예를 들어, 디코더는 코셋 코딩에 근거하여 디코딩 동작을 수행할 수 있다.
비휘발성 메모리 장치(120)는 컨트롤러(110)의 제어에 따라, 컨트롤러(110)로부터 전송된 데이터(예를 들어, 선택된 후보 데이터 세트(SCDT))를 저장하고, 저장된 데이터를 리드하여 컨트롤러(110)로 전송할 수 있다. 비휘발성 메모리 장치(120)는 복수의 메모리 영역들(MR1~MRn)을 포함할 수 있다. 각 메모리 영역은 비휘발성 메모리 장치(120)가 프로그램 동작 및 리드 동작을 수행하는 단위일 수 있다. 각 메모리 영역은 공통의 워드라인에 연결되고 서로 다른 비트라인들에 각각 연결된 복수의 셀들을 포함할 수 있다.
인접 메모리 영역들(AMR1, AMR2)은 타겟 메모리 영역이 연결된 워드라인에 인접한 워드라인들과 각각 연결될 수 있다.
한편, 도1은 타겟 메모리 영역(TMR)에 2개의 인접 메모리 영역들(AMR1, AMR2)이 인접한 경우를 도시한다. 그러나 본 발명의 실시 예에 따르면, 타겟 메모리 영역(TMR)은 1개의 인접 메모리 영역에 인접할 수도 있고, 3개 이상의 인접 메모리 영역들에 인접할 수도 있다.
비휘발성 메모리 장치(120)는 예를 들어 PCRAM(Phase-Change Random Access Memory)을 포함할 수 있다. 그러나 본 발명의 실시 예는 이에 제한되지 않고, 비휘발성 메모리 장치(120)는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(Ferroelectrics Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory)을 포함할 수 있다.
비휘발성 메모리 장치(120)는 하나 이상의 플래인(Plane)들, 하나 이상의 메모리 칩들, 하나 이상의 메모리 다이들, 또는 하나 이상의 메모리 패키지들을 포함할 수 있다.
한편, 도1은 메모리 시스템(100)이 1개의 비휘발성 메모리 장치(120)를 포함하는 것으로 도시하나, 메모리 시스템(100)에 포함되는 비휘발성 메모리 장치들의 개수는 이에 제한되지 않는다.
도2는 본 발명의 실시 예에 따라 도1의 비휘발성 메모리 장치(120)의 프로그램 동작을 설명하기 위한 도면이다.
도2를 참조하면, 셀들(C1~C4)은 공통의 워드라인(WL)에 연결되어 있고, 서로 다른 비트라인들(미도시됨)에 연결될 수 있다. 셀들(C1, C2)은 리셋 상태(R)에 있고, 셀들(C3, C4)은 셋 상태(S)에 있을 수 있다. 리셋 상태(R)의 셀들(C1, C2)은 셋 상태(S)의 셀들(C3, C4)보다 높은 저항 값을 가질 수 있다. 리셋 상태(R)의 셀들(C1, C2)은 예를 들어 "0"을 저장하는 상태이고, 셋 상태(S)의 셀들(C3, C4)은 예를 들어 "1"을 저장하는 상태일 수 있다. 그러나, 리셋 상태(R) 및 셋 상태(S)가 의미하는 데이터는 이에 제한되지 않는다.
도시된 상황에서, 비휘발성 메모리 장치(120)는 데이터 세트(DT)를 셀들(C1~C4)에 저장하라는 라이트 커맨드를 수신할 수 있다. 셀들(C1~C4)은 라이트 커맨드에 응답하여 프로그램 동작의 타겟 셀들이 될 수 있다.
이 경우, 비휘발성 메모리 장치(120)는 리셋 상태(R)의 타겟 셀(C2)이 셋 상태(S)로 변경되도록 셋 프로그램 펄스를 타겟 셀(C2)로 인가할 수 있다. 동시에 비휘발성 메모리 장치(120)는 셋 상태(S)의 타겟 셀(C3)이 리셋 상태(R)로 변경되도록 리셋 프로그램 펄스를 타겟 셀(C3)로 인가할 수 있다. 그러나 비휘발성 메모리 장치(120)는 타겟 셀들(C1, C4)이 리셋 상태(R)/셋 상태(S)로 유지되도록, 타겟 셀들(C1, C4)로는 프로그램 펄스를 인가하지 않을 수 있다.
이하에서, 리셋 프로그램 셀이란 프로그램 동작에서 셋 상태(S)에서 리셋 상태(R)로 변경되는 타겟 셀일 수 있다. 따라서, 타겟 셀(C3)은 리셋 프로그램 셀일 수 있다.
이하에서, 셋 프로그램 셀이란 프로그램 동작에서 리셋 상태(R)에서 셋 상태(S)로 변경되는 타겟 셀일 수 있다. 따라서, 타겟 셀(C2)은 셋 프로그램 셀일 수 있다.
이하에서, 리셋 유지 셀이란 프로그램 동작에서 리셋 상태(R)로 유지되는 타겟 셀일 수 있다. 따라서, 타겟 셀(C1)은 리셋 유지 셀일 수 있다.
이하에서, 셋 유지 셀이란 프로그램 동작에서 셋 상태(S)로 유지되는 타겟 셀일 수 있다. 따라서, 타겟 셀은 셋 유지 셀(C4)일 수 있다.
도3은 프로그램 동작에서 라이트 디스터번스 효과를 받는 셀들(C12, C21)을 도시하는 도면이다.
도3을 참조하면, 셀들(C11~C14)은 동일한 워드라인(WL1)에 연결되고 서로 인접한 비트라인들(BL1~BL4)에 각각 연결될 수 있다. 셀들(C21~C24)은 워드라인(WL1)에 인접한 워드라인(WL2)에 연결되고 비트라인들(BL1~BL4)에 각각 연결될 수 있다. 셀들(C31~C34)은 워드라인(WL2)에 인접한 워드라인(WL3)에 연결되고 비트라인들(BL1~BL4)에 각각 연결될 수 있다.
어떤 셀들이 인접하다는 것은 셀들이 동일한 워드라인에 연결되고 인접한 비트라인들에 연결된 때 및 인접한 워드라인들에 연결되고 동일한 비트라인에 연결된 때를 포함할 수 있다. 예를 들어, 셀(C22)은 셀들(C12, C21, C23, C32)에 인접하다고 볼 수 있다.
셀들(C21~C24)은 프로그램 동작의 타겟 메모리 영역(TMR)에 포함될 수 있다. 이 경우, 도3에 표시되지는 않았지만, 셀들(C11~C14)은 도1의 인접 메모리 영역(AMR1)에 포함되고, 셀들(C31~C34)은 도1의 인접 메모리 영역(AMR2)에 포함될 수 있다.
프로그램 동작이 수행되기 전에 셀들(C12, C21, C23, C24, C31, C33, C34)은 리셋 상태(R)에 있고, 셀들(C11, C13, C14, C22, C32)은 셋 상태(S)에 있을 수 있다. 프로그램 동작에서, 타겟 셀들(C21, C24)은 리셋 유지 셀이고, 타겟 셀(C22)은 리셋 프로그램 셀이고, 타겟 셀(23)은 셋 프로그램 셀일 수 있다.
이 경우, 타겟 셀(C22)로 리셋 프로그램 펄스가 인가될 때, 라이트 디스터번스 효과가 셀들(C12, C21)로 미칠 수 있다. 셀들(C12, C21)은 라이트 디스터번스 효과에 의해, 리셋 상태(R)에서 셋 상태(S)로 변경될 수 있다. 즉, 셀들(C12, C21)은 리셋 상태(R)로 유지되어야 함에도 셋 상태(S)로 변경되어 에러 비트를 가지게 되는 것이다.
정리하면, 프로그램 동작에서 라이트 디스터번스 효과는, 타겟 셀들(C21~C24) 중 리셋 프로그램 셀(C22)에 인접한 리셋 유지 셀(C21)에 미칠 수 있다. 또한, 라이트 디스터번스 효과는, 인접 셀들(C11~C14, C31~C34) 중 리셋 프로그램 셀(C22)에 인접한 리셋 상태(R)의 셀(C12)에 미칠 수 있다.
도4는 본 발명의 실시 예에 따라 도1의 컨트롤러(110)의 동작 방법을 도시하는 도면이다.
도4를 참조하면, 인코더(111)는 소스 데이터(SDT)에 근거하여 복수의 후보 데이터 세트들(CDT1~CDTk)을 생성할 수 있다. 복수의 후보 데이터 세트들(CDT1~CDTk)은 후보 결정부(112)로 전달될 수 있다.
후보 결정부(112)는 각 후보 데이터 세트(CDT)에 대해, 취약 타겟 셀 개수(WTCN)를 결정하고, 취약 인접 셀 개수(WACN)를 결정할 수 있다. 후보 결정부(112)는 각 후보 데이터 세트(CDT)에 대해, 취약 타겟 셀 개수(WTCN) 및 취약 인접 셀 개수(WACN)의 합을 취약 셀 개수(WCN)로 결정할 수 있다.
그리고 후보 결정부(112)는 복수의 후보 데이터 세트들(CDT1~CDTk) 중 취약 셀 개수(WCN)가 가장 작은 후보 데이터 세트(예를 들어, CDT2)를 선택할 수 있다. 컨트롤러(110)는 선택된 후보 데이터 세트(SCDT)를 타겟 메모리 영역(TMR)에 저장할 수 있다.
실시 예에 따라, 후보 결정부(112)는 취약 셀 개수(WCN)가 임계값보다 작은 후보 데이터 세트를 타겟 메모리 영역(TMR)에 저장되도록 선택할 수 있다. 임계값은 컨트롤러(110)의 에러 정정 능력에 따라 결정될 수 있다.
도5는 본 발명의 실시 예에 따라 후보 결정부(112)가 제1 후보 데이터 세트(CDT1)의 취약 타겟 셀 개수 및 취약 인접 셀 개수를 결정하는 방법을 예시적으로 도시하는 도면이다.
도5를 참조하면, 후보 결정부(112)는 타겟 메모리 영역(TMR)으로부터 타겟 데이터 세트(TDT)를 리드하고, 인접 메모리 영역(AMR1)으로부터 인접 데이터 세트(ADT1)를 리드하고, 인접 메모리 영역(AMR2)으로부터 인접 데이터 세트(ADT2)를 리드할 수 있다. "0"은 리셋 상태의 셀로부터 리드되고, "1"은 셋 상태의 셀로부터 리드된 것일 수 있다.
후보 결정부(112)는 타겟 데이터 세트(TDT)와 제1 후보 데이터 세트(CDT1)에 근거하여, 타겟 셀들 중 리셋 프로그램 셀들(C61, C63)을 결정할 수 있다. 즉, 현재 "1"을 저장하고, 제1 후보 데이터 세트(CDT1)의 프로그램 동작 이후에 "0"을 저장하게 될 타겟 셀들(C61, C63)이 리셋 프로그램 셀들일 수 있다.
그리고, 후보 결정부(112)는 리셋 프로그램 셀들(C61, C63)에 인접한 리셋 유지 셀들(C62, C64)을 취약 타겟 셀 개수로 카운팅할 수 있다. 즉, 현재 "0"을 저장하고 프로그램 동작 이후에도 "0"을 저장하게 될 타겟 셀들(C62, C64, C65)이 리셋 유지 셀들이므로, 후보 결정부(112)는 타겟 셀들(C62, C64)을 취약 타겟 셀 개수로 카운팅할 수 있다. 리셋 유지 셀(C65)은 리셋 프로그램 셀들(C61, C63)에 인접하지 않으므로 취약 타겟 셀 개수로 카운팅되지 않을 수 있다.
그리고, 후보 결정부(112)는 타겟 데이터 세트(TDT), 제1 후보 데이터 세트(CDT1) 및 인접 데이터 세트(ADT1)에 근거하여, 인접 메모리 영역(AMR1)의 인접 셀들 중 리셋 프로그램 셀들(C61, C63)에 인접한 리셋 상태의 인접 셀들(C51, C52)을 취약 인접 셀 개수로 카운팅할 수 있다.
또한, 후보 결정부(112)는 타겟 데이터 세트(TDT), 제1 후보 데이터 세트(CDT1) 및 인접 데이터 세트(ADT2)에 근거하여, 인접 메모리 영역(AMR2)의 인접 셀들 중 리셋 프로그램 셀들(C61, C63)에 인접한 리셋 상태의 인접 셀(C73)을 취약 인접 셀 개수로 카운팅할 수 있다.
리셋 상태의 인접 셀들(C53, C71, C72, C74)은 리셋 프로그램 셀들(C61, C63)에 인접하지 않으므로 취약 인접 셀 개수로 카운팅되지 않을 수 있다.
후보 결정부(112)는 다른 후보 데이터 세트들(CDT2~CDTk) 각각에 대해서도 도5에서 설명한 바와 동일하게 취약 타겟 셀 개수 및 취약 인접 셀 개수를 결정할 수 있다.
따라서, 본 발명에 따르면, 라이트 디스터번스 효과로 인한 에러가 감소함으로써 메모리 시스템(100)의 데이터 신뢰성이 향상될 수 있다.
도6은 본 발명의 실시 예에 따라 도1의 컨트롤러(110)의 동작 방법을 도시하는 순서도이다.
도6을 참조하면, 단계(S110)에서, 컨트롤러(110)는 소스 데이터(SDT)에 근거하여 복수의 후보 데이터 세트들(CDT1~CDTk)을 생성할 수 있다.
단계(S120)에서, 컨트롤러(110)는 후보 데이터 세트들(CDT1~CDTk) 각각에 대응하는 취약 셀 개수를 결정할 수 있다.
단계(S130)에서, 컨트롤러(110)는 후보 데이터 세트들(CDT1~CDTk) 중 취약 셀 개수가 가장 작은 후보 데이터 세트(SCDT)를 타겟 메모리 영역(TMR)에 저장할 수 있다.
도7은 본 발명의 실시 예에 따라 도1의 컨트롤러(110)의 동작 방법을 도시하는 순서도이다. 도7에 도시된 절차는 도6의 단계(S120)의 실시 예일 수 있다.
도7을 참조하면, 단계(S210)에서, 컨트롤러(110)는 후보 데이터 세트들(CDT1~CDTk) 각각에 대해, 타겟 메모리 영역(TMR)의 타겟 셀들 중 리셋 프로그램 셀들에 인접한 리셋 유지 셀들의 개수를 취약 타겟 셀 개수로 결정할 수 있다.
단계(S220)에서, 컨트롤러(110)는 후보 데이터 세트들(CDT1~CDTk) 각각에 대해, 인접 메모리 영역들(AMR1, AMR2)의 인접 셀들 중 타겟 메모리 영역(TMR)의 리셋 프로그램 셀들에 인접한 리셋 상태의 인접 셀들의 개수를 취약 인접 셀 개수로 결정할 수 있다.
단계(S230)에서, 컨트롤러(110)는 후보 데이터 세트들(CDT1~CDTk) 각각에 대해, 취약 타겟 셀 개수 및 취약 인접 셀 개수의 합을 취약 셀 개수로 결정할 수 있다.
도 8은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면이다. 도 8을 참조하면, 데이터 처리 시스템(2000)은 호스트 장치(2100)와 메모리 시스템(2200)을 포함할 수 있다.
호스트 장치(2100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 비록 도시되지 않았지만, 호스트 장치(2100)는 호스트 장치의 기능을 수행하기 위한 백그라운드 기능 블럭들을 포함할 수 있다.
호스트 장치(2100)는 소켓(socket), 슬롯(slot) 또는 커넥터(connector)와 같은 접속 터미널(2110)을 포함할 수 있다. 메모리 시스템(2200)은 접속 터미널(2110)에 마운트(mount)될 수 있다.
메모리 시스템(2200)은 인쇄 회로 기판과 같은 기판 형태로 구성될 수 있다. 메모리 시스템(2200)은 메모리 모듈 또는 메모리 카드로 불릴 수 있다. 메모리 시스템(2200)은 컨트롤러(2210), 버퍼 메모리 장치(2220), 비휘발성 메모리 장치(2231~2232), PMIC(power management integrated circuit)(2240) 및 접속 터미널(2250)을 포함할 수 있다.
컨트롤러(2210)는 메모리 시스템(2200)의 제반 동작을 제어할 수 있다. 컨트롤러(2210)는 도 1에 도시된 컨트롤러(110)와 동일하게 구성될 수 있다.
버퍼 메모리 장치(2220)는 비휘발성 메모리 장치들(2231~2232)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(2220)는 비휘발성 메모리 장치들(2231~2232)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(2220)에 임시 저장된 데이터는 컨트롤러(2210)의 제어에 따라 호스트 장치(2100) 또는 비휘발성 메모리 장치들(2231~2232)로 전송될 수 있다.
비휘발성 메모리 장치들(2231~2232)은 메모리 시스템(2200)의 저장 매체로 사용될 수 있다.
PMIC(2240)는 접속 터미널(2250)을 통해 입력된 전원을 메모리 시스템(2200) 백그라운드에 제공할 수 있다. PMIC(2240)는, 컨트롤러(2210)의 제어에 따라서, 메모리 시스템(2200)의 전원을 관리할 수 있다.
접속 터미널(2250)은 호스트 장치의 접속 터미널(2110)에 연결될 수 있다. 접속 터미널(2250)을 통해서, 호스트 장치(2100)와 메모리 시스템(2200) 간에 커맨드, 어드레스, 데이터 등과 같은 신호와, 전원이 전달될 수 있다. 접속 터미널(2250)은 호스트 장치(2100)와 메모리 시스템(2200)의 인터페이스 방식에 따라 다양한 형태로 구성될 수 있다. 접속 터미널(2250)은 메모리 시스템(2200)의 어느 한 변에 배치될 수 있다.
도 9는 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템을 예시적으로 도시하는 도면이다. 도 9를 참조하면, 데이터 처리 시스템(3000)은 호스트 장치(3100)와 메모리 시스템(3200)을 포함할 수 있다.
호스트 장치(3100)는 인쇄 회로 기판(printed circuit board)과 같은 기판(board) 형태로 구성될 수 있다. 비록 도시되지 않았지만, 호스트 장치(3100)는 호스트 장치의 기능을 수행하기 위한 백그라운드 기능 블럭들을 포함할 수 있다.
메모리 시스템(3200)은 표면 실장형 패키지 형태로 구성될 수 있다. 메모리 시스템(3200)은 솔더 볼(solder ball)(3250)을 통해서 호스트 장치(3100)에 마운트될 수 있다. 메모리 시스템(3200)은 컨트롤러(3210), 버퍼 메모리 장치(3220) 및 비휘발성 메모리 장치(3230)를 포함할 수 있다.
컨트롤러(3210)는 메모리 시스템(3200)의 제반 동작을 제어할 수 있다. 컨트롤러(3210)는 도 1에 도시된 컨트롤러(110)와 동일하게 구성될 수 있다.
버퍼 메모리 장치(3220)는 비휘발성 메모리 장치(3230)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리 장치(3220)는 비휘발성 메모리 장치들(3230)로부터 읽혀진 데이터를 임시 저장할 수 있다. 버퍼 메모리 장치(3220)에 임시 저장된 데이터는 컨트롤러(3210)의 제어에 따라 호스트 장치(3100) 또는 비휘발성 메모리 장치(3230)로 전송될 수 있다.
비휘발성 메모리 장치(3230)는 메모리 시스템(3200)의 저장 매체로 사용될 수 있다.
도 10은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 네트워크 시스템을 예시적으로 도시하는 도면이다. 도 10을 참조하면, 네트워크 시스템(4000)은 네트워크(4500)를 통해서 연결된 서버 시스템(4300) 및 복수의 클라이언트 시스템들(4410~4430)을 포함할 수 있다.
서버 시스템(4300)은 복수의 클라이언트 시스템들(4410~4430)의 요청에 응답하여 데이터를 서비스할 수 있다. 예를 들면, 서버 시스템(4300)은 복수의 클라이언트 시스템들(4410~4430)로부터 제공된 데이터를 저장할 수 있다. 다른 예로서, 서버 시스템(4300)은 복수의 클라이언트 시스템들(4410~4430)로 데이터를 제공할 수 있다.
서버 시스템(4300)은 호스트 장치(4100) 및 메모리 시스템(4200)을 포함할 수 있다. 메모리 시스템(4200)은 도 1의 메모리 시스템(100), 도 8의 메모리 시스템(2200), 도 9의 메모리 시스템(3200)으로 구성될 수 있다.
도 11은 본 발명의 실시 예에 따른 메모리 시스템에 포함된 비휘발성 메모리 장치를 예시적으로 도시하는 블럭도이다. 도 11을 참조하면, 비휘발성 메모리 장치(300)는 메모리 셀 어레이(310), 행 디코더(320), 데이터 읽기/쓰기 블럭(330), 열 디코더(340), 전압 발생기(350) 및 제어 로직(360)을 포함할 수 있다.
메모리 셀 어레이(310)는 워드 라인들(WL1~WLm)과 비트 라인들(BL1~BLn)이 서로 교차된 영역에 배열된 메모리 셀(MC)들을 포함할 수 있다.
행 디코더(320)는 워드 라인들(WL1~WLm)을 통해서 메모리 셀 어레이(310)와 연결될 수 있다. 행 디코더(320)는 제어 로직(360)의 제어에 따라 동작할 수 있다. 행 디코더(320)는 외부 장치(도시되지 않음)로부터 제공된 어드레스를 디코딩할 수 있다. 행 디코더(320)는 디코딩 결과에 근거하여 워드 라인들(WL1~WLm)을 선택하고, 구동할 수 있다. 예시적으로, 행 디코더(320)는 전압 발생기(350)로부터 제공된 워드 라인 전압을 워드 라인들(WL1~WLm)에 제공할 수 있다.
데이터 읽기/쓰기 블럭(330)은 비트 라인들(BL1~BLn)을 통해서 메모리 셀 어레이(310)와 연결될 수 있다. 데이터 읽기/쓰기 블럭(330)은 비트 라인들(BL1~BLn) 각각에 대응하는 읽기/쓰기 회로들(RW1~RWn)을 포함할 수 있다. 데이터 읽기/쓰기 블럭(330)은 제어 로직(360)의 제어에 따라 동작할 수 있다. 데이터 읽기/쓰기 블럭(330)은 동작 모드에 따라서 쓰기 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 예를 들면, 데이터 읽기/쓰기 블럭(330)은 쓰기 동작 시 외부 장치로부터 제공된 데이터를 메모리 셀 어레이(310)에 저장하는 쓰기 드라이버로서 동작할 수 있다. 다른 예로서, 데이터 읽기/쓰기 블럭(330)은 읽기 동작 시 메모리 셀 어레이(310)로부터 데이터를 독출하는 감지 증폭기로서 동작할 수 있다.
열 디코더(340)는 제어 로직(360)의 제어에 따라 동작할 수 있다. 열 디코더(340)는 외부 장치로부터 제공된 어드레스를 디코딩할 수 있다. 열 디코더(340)는 디코딩 결과에 근거하여 비트 라인들(BL1~BLn) 각각에 대응하는 데이터 읽기/쓰기 블럭(330)의 읽기/쓰기 회로들(RW1~RWn)과 데이터 입출력 라인(또는 데이터 입출력 버퍼)을 연결할 수 있다.
전압 발생기(350)는 비휘발성 메모리 장치(300)의 백그라운드 동작에 사용되는 전압을 생성할 수 있다. 전압 발생기(350)에 의해서 생성된 전압들은 메모리 셀 어레이(310)의 메모리 셀들에 인가될 수 있다. 예를 들면, 프로그램 동작 시 생성된 프로그램 전압은 프로그램 동작이 수행될 메모리 셀들의 워드 라인에 인가될 수 있다. 다른 예로서, 소거 동작 시 생성된 소거 전압은 소거 동작이 수행될 메모리 셀들의 웰-영역에 인가될 수 있다. 다른 예로서, 읽기 동작 시 생성된 읽기 전압은 읽기 동작이 수행될 메모리 셀들의 워드 라인에 인가될 수 있다.
제어 로직(360)은 외부 장치로부터 제공된 제어 신호에 근거하여 비휘발성 메모리 장치(300)의 제반 동작을 제어할 수 있다. 예를 들면, 제어 로직(360)은 비휘발성 메모리 장치(300)의 읽기, 쓰기, 소거 동작을 제어할 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 메모리 시스템
110: 컨트롤러
120: 비휘발성 메모리 장치
111: 인코더
112: 후보 결정부
MR1~MRn: 메모리 영역들

Claims (19)

  1. 복수의 메모리 영역들을 포함하되, 상기 복수의 메모리 영역들 각각은 공통의 워드라인에 연결되는 복수의 셀들을 포함하는, 비휘발성 메모리 장치; 및
    소스 데이터에 근거하여 복수의 후보 데이터 세트들을 생성하고, 상기 복수의 후보 데이터 세트들 각각에 대응하는 취약 셀 개수를 결정하고, 상기 취약 셀 개수가 가장 작은 후보 데이터 세트를 상기 메모리 영역들 중 타겟 메모리 영역에 저장하도록 구성된 컨트롤러를 포함하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 컨트롤러는 상기 복수의 후보 데이터 세트들 각각에 대해, 상기 타겟 메모리 영역의 취약 타겟 셀 개수를 결정하고, 상기 타겟 메모리 영역에 인접한 적어도 하나의 인접 메모리 영역의 취약 인접 셀 개수를 결정하고, 상기 취약 타겟 셀 개수 및 상기 취약 인접 셀 개수의 합을 상기 취약 셀 개수로 결정하는 메모리 시스템.
  3. 제2항에 있어서,
    상기 컨트롤러는 상기 복수의 후보 데이터 세트들 각각에 대해, 상기 타겟 메모리 영역에 포함된 타겟 셀들 중 리셋 프로그램 셀들에 인접한 리셋 유지 셀들의 개수를 상기 취약 타겟 셀 개수로 결정하는 메모리 시스템.
  4. 제3항에 있어서,
    상기 컨트롤러는 상기 복수의 후보 데이터 세트들 각각을 상기 타겟 메모리 영역에 저장할 경우, 상기 타겟 셀들 중 리셋 상태로 유지시킬 타겟 셀을 리셋 유지 셀로 결정하고, 상기 타겟 셀들 중 셋 상태에서 리셋 상태로 변경시킬 타겟 셀을 리셋 프로그램 셀로 결정하는 메모리 시스템.
  5. 제3항에 있어서,
    상기 컨트롤러는 상기 타겟 메모리 영역으로부터 리드된 타겟 데이터 세트와 후보 데이터 세트에 근거하여 상기 후보 데이터 세트의 상기 취약 타겟 셀 개수를 결정하는 메모리 시스템.
  6. 제3항에 있어서,
    상기 컨트롤러는 상기 복수의 후보 데이터 세트들 각각에 대해, 상기 적어도 하나의 인접 메모리 영역에 포함된 인접 셀들 중 상기 리셋 프로그램 셀들에 인접한 리셋 상태의 인접 셀들의 개수를 상기 취약 인접 셀 개수로 결정하는 메모리 시스템.
  7. 제6항에 있어서,
    상기 컨트롤러는 상기 타겟 메모리 영역으로부터 리드된 타겟 데이터 세트, 상기 적어도 하나의 인접 메모리 영역으로부터 리드된 적어도 하나의 인접 데이터 세트, 및 후보 데이터 세트에 근거하여 상기 후보 데이터 세트의 상기 취약 인접 셀 개수를 결정하는 메모리 시스템.
  8. 제1항에 있어서,
    상기 컨트롤러는 코셋 코딩에 근거하여 상기 소스 데이터를 인코딩함으로써 상기 복수의 후보 데이터 세트들을 생성하는 메모리 시스템.
  9. 복수의 메모리 영역들을 포함하는 상변화 메모리 장치; 및
    소스 데이터에 근거하여 후보 데이터 세트를 생성하고, 상기 메모리 영역들 중 타겟 메모리 영역으로부터 리드된 타겟 데이터 세트, 적어도 하나의 인접 메모리 영역으로부터 리드된 적어도 하나의 인접 데이터 세트, 및 상기 후보 데이터 세트에 근거하여 상기 후보 데이터 세트에 대응하는 취약 셀 개수를 결정하고, 상기 취약 셀 개수에 근거하여 상기 후보 데이터 세트를 상기 타겟 메모리 영역에 선택적으로 저장하도록 구성된 컨트롤러를 포함하는 메모리 시스템.
  10. 제9항에 있어서,
    상기 컨트롤러는 상기 타겟 데이터 세트 및 상기 후보 데이터 세트에 근거하여 상기 타겟 메모리 영역에 포함된 타겟 셀들 중 리셋 프로그램 셀들에 인접한 리셋 유지 셀들의 개수를 취약 타겟 셀 개수로 결정하고,
    상기 적어도 하나의 인접 데이터 세트에 근거하여 상기 적어도 하나의 인접 메모리 영역에 포함된 인접 셀들 중 상기 리셋 프로그램 셀들에 인접한 리셋 상태의 인접 셀들의 개수를 취약 인접 셀 개수로 결정하고,
    상기 취약 타겟 셀 개수 및 상기 취약 인접 셀 개수의 합을 상기 취약 셀 개수로 결정하는 메모리 시스템.
  11. 제9항에 있어서,
    상기 컨트롤러는 코셋 코딩에 근거하여 상기 소스 데이터를 인코딩함으로써 상기 복수의 후보 데이터 세트들을 생성하는 메모리 시스템.
  12. 복수의 메모리 영역들을 포함하되, 상기 복수의 메모리 영역들 각각은 공통의 워드라인에 연결되는 복수의 셀들을 포함하는, 비휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법으로서,
    컨트롤러에 의해, 소스 데이터에 근거하여 복수의 후보 데이터 세트들을 생성하는 단계;
    상기 컨트롤러에 의해, 상기 복수의 후보 데이터 세트들 각각에 대응하는 취약 셀 개수를 결정하는 단계; 및
    상기 컨트롤러에 의해, 상기 취약 셀 개수가 가장 작은 후보 데이터 세트를 상기 메모리 영역들 중 타겟 메모리 영역에 저장하는 단계를 포함하는 메모리 시스템의 동작 방법.
  13. 제12항에 있어서,
    상기 취약 셀 개수를 결정하는 단계는,
    상기 복수의 후보 데이터 세트들 각각에 대해, 상기 타겟 메모리 영역의 취약 타겟 셀 개수를 결정하는 단계;
    상기 복수의 후보 데이터 세트들 각각에 대해, 상기 타겟 메모리 영역에 인접한 적어도 하나의 인접 메모리 영역의 취약 인접 셀 개수를 결정하는 단계; 및
    상기 취약 타겟 셀 개수 및 상기 취약 인접 셀 개수의 합을 상기 취약 셀 개수로 결정하는 단계를 포함하는 메모리 시스템의 동작 방법.
  14. 제13항에 있어서,
    상기 취약 타겟 셀 개수를 결정하는 단계는, 상기 복수의 후보 데이터 세트들 각각에 대해, 상기 타겟 메모리 영역에 포함된 타겟 셀들 중 리셋 프로그램 셀들에 인접한 리셋 유지 셀들의 개수를 상기 취약 타겟 셀 개수로 결정하는 단계를 포함하는 메모리 시스템의 동작 방법.
  15. 제14항에 있어서,
    상기 취약 타겟 셀 개수를 결정하는 단계는, 상기 복수의 후보 데이터 세트들 각각을 상기 타겟 메모리 영역에 저장할 경우, 상기 타겟 셀들 중 리셋 상태로 유지시킬 타겟 셀을 리셋 유지 셀로 결정하고, 상기 타겟 셀들 중 셋 상태에서 리셋 상태로 변경시킬 타겟 셀을 리셋 프로그램 셀로 결정하는 단계를 포함하는 메모리 시스템의 동작 방법.
  16. 제14항에 있어서,
    상기 취약 타겟 셀 개수를 결정하는 단계는, 상기 타겟 메모리 영역으로부터 리드된 타겟 데이터 세트와 후보 데이터 세트에 근거하여 상기 후보 데이터 세트의 상기 취약 타겟 셀 개수를 결정하는 단계를 포함하는 메모리 시스템의 동작 방법.
  17. 제14항에 있어서,
    상기 취약 인접 셀 개수를 결정하는 단계는, 상기 복수의 후보 데이터 세트들 각각에 대해, 상기 적어도 하나의 인접 메모리 영역에 포함된 인접 셀들 중 상기 리셋 프로그램 셀들에 인접한 리셋 상태의 인접 셀들의 개수를 상기 취약 인접 셀 개수로 결정하는 단계를 포함하는 메모리 시스템의 동작 방법.
  18. 제17항에 있어서,
    상기 취약 인접 셀 개수를 결정하는 단계는, 상기 타겟 메모리 영역으로부터 리드된 타겟 데이터 세트, 상기 적어도 하나의 인접 메모리 영역으로부터 리드된 적어도 하나의 인접 데이터 세트, 및 후보 데이터 세트에 근거하여 상기 후보 데이터 세트의 상기 취약 인접 셀 개수를 결정하는 단계를 포함하는 메모리 시스템의 동작 방법.
  19. 제12항에 있어서,
    상기 복수의 후보 데이터 세트들을 생성하는 단계는, 코셋 코딩에 근거하여 상기 소스 데이터를 인코딩함으로써 상기 복수의 후보 데이터 세트들을 생성하는 단계를 포함하는 메모리 시스템의 동작 방법.
KR1020200033841A 2020-03-19 2020-03-19 메모리 시스템 및 그것의 동작 방법 KR20210117528A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200033841A KR20210117528A (ko) 2020-03-19 2020-03-19 메모리 시스템 및 그것의 동작 방법
US16/998,965 US11170862B2 (en) 2020-03-19 2020-08-20 Memory system and operating method thereof
CN202010873999.6A CN113496728B (zh) 2020-03-19 2020-08-26 存储器***及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200033841A KR20210117528A (ko) 2020-03-19 2020-03-19 메모리 시스템 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210117528A true KR20210117528A (ko) 2021-09-29

Family

ID=77748199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200033841A KR20210117528A (ko) 2020-03-19 2020-03-19 메모리 시스템 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US11170862B2 (ko)
KR (1) KR20210117528A (ko)
CN (1) CN113496728B (ko)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849387B2 (en) * 2008-04-23 2010-12-07 Intel Corporation Detecting architectural vulnerability of processor resources
US8560922B2 (en) * 2011-03-04 2013-10-15 International Business Machines Corporation Bad block management for flash memory
US9400713B2 (en) * 2014-10-02 2016-07-26 Sandisk Technologies Llc System and method for pre-encoding of data for direct write to multi-level cell memory
JP2016184398A (ja) * 2015-03-26 2016-10-20 パナソニックIpマネジメント株式会社 不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
KR102305095B1 (ko) 2015-04-13 2021-09-24 삼성전자주식회사 비휘발성 메모리 컨트롤러의 동작 방법
KR102447152B1 (ko) * 2017-12-26 2022-09-26 삼성전자주식회사 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 저장 장치
KR102648618B1 (ko) * 2018-03-28 2024-03-19 에스케이하이닉스 주식회사 컨트롤러, 그것의 동작방법 및 컨트롤러를 포함하는 메모리 시스템

Also Published As

Publication number Publication date
CN113496728B (zh) 2024-05-17
CN113496728A (zh) 2021-10-12
US11170862B2 (en) 2021-11-09
US20210295933A1 (en) 2021-09-23

Similar Documents

Publication Publication Date Title
US20190057049A1 (en) Memory system and operating method thereof
US10902928B2 (en) Memory system, operation method thereof, and nonvolatile memory device
US20200105351A1 (en) Memory system and operating method thereof
US12026398B2 (en) Memory system performing flush operation for buffer region
US10747660B2 (en) Method and system for forming and using memory superblocks based on performance grades
US20190057026A1 (en) Data storage device and operating method thereof
US20200150898A1 (en) Memory system and operating method thereof
US11079952B2 (en) Data storage device performing scan operations on memory regions to move data and operation method thereof
US10838766B2 (en) Memory system and operating method thereof
US11467910B2 (en) Memory system re-performing access operation and operating method thereof
US10628067B2 (en) Memory system and operating method thereof
KR20210117528A (ko) 메모리 시스템 및 그것의 동작 방법
US10929055B2 (en) Memory system and operating method thereof
US20210125679A1 (en) Memory system
US10776008B2 (en) Memory system and operating method thereof
KR102246843B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US10553292B1 (en) Memory system with memory region read counts and a memory group read count and operating method thereof
US10643716B2 (en) Nonvolatile memory device and memory system including the nonvolatile memory device
US11544004B2 (en) Nonvolatile memory device and memory system including the same
US20210223956A1 (en) Memory system and data processing system including the same
US20230031193A1 (en) Memory system and operating method thereof
US20210089208A1 (en) Memory system and data processing system including the same

Legal Events

Date Code Title Description
A201 Request for examination