KR20210011610A - 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치 - Google Patents

휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치 Download PDF

Info

Publication number
KR20210011610A
KR20210011610A KR1020190088724A KR20190088724A KR20210011610A KR 20210011610 A KR20210011610 A KR 20210011610A KR 1020190088724 A KR1020190088724 A KR 1020190088724A KR 20190088724 A KR20190088724 A KR 20190088724A KR 20210011610 A KR20210011610 A KR 20210011610A
Authority
KR
South Korea
Prior art keywords
memory device
volatile memory
accumulated error
error
errors
Prior art date
Application number
KR1020190088724A
Other languages
English (en)
Other versions
KR102669545B1 (ko
Inventor
김동
박인훈
박장선
은형래
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190088724A priority Critical patent/KR102669545B1/ko
Priority claimed from KR1020190088724A external-priority patent/KR102669545B1/ko
Priority to US16/790,256 priority patent/US11301317B2/en
Priority to EP20164785.6A priority patent/EP3770764B1/en
Priority to SG10202003179UA priority patent/SG10202003179UA/en
Priority to CN202010401661.0A priority patent/CN112306737A/zh
Publication of KR20210011610A publication Critical patent/KR20210011610A/ko
Application granted granted Critical
Publication of KR102669545B1 publication Critical patent/KR102669545B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

휘발성 메모리 장치의 리페어 제어 방법은, 휘발성 메모리 장치로부터 독출되는 독출 데이터의 에러들의 위치 정보를 검출하기 위해 반복적으로 패트롤 독출 동작을 수행하는 단계, 상기 반복적으로 수행되는 패트롤 독출 동작에 기초하여 상기 에러들의 위치 정보를 누적하여 누적 에러 정보를 발생하는 단계, 상기 누적 에러 정보에 기초하여 상기 에러들 및 상기 휘발성 메모리 장치의 구조 사이의 상관관계를 나타내는 에러 속성을 결정하는 단계 및 상기 누적 에러 정보 및 상기 에러 속성에 기초하여 상기 휘발성 메모리 장치에 대한 런타임 리페어 동작을 수행하는 단계를 포함한다. 휘발성 메모리 장치의 구동 중에 발생하는 에러를 효율적으로 관리하여 휘발성 메모리 장치의 불량을 예방함으로써 휘발성 메모리 장치 및 이를 포함하는 스토리지 장치의 성능 및 수명을 향상시킬 수 있다.

Description

휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치{Method of controlling repair of volatile memory device and storage device performing the same}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 휘발성 메모리 장치의 리페어 제어 방법 및 상기 리페어 제어 방법을 수행하는 스토리지 장치에 관한 것이다.
반도체 메모리 장치는 플래시 메모리 장치와 같은 비휘발성 메모리 장치와 DRAM과 같은 휘발성 메모리 장치로 구분될 수 있다. DRAM과 같은 휘발성 메모리 장치는 가격이 비교적 저렴하기 때문에 시스템 메모리와 같은 대용량 데이터를 저장하는데 사용되고 있다. 또한 DRAM과 같은 휘발성 메모리 장치에서는 집적도를 높이기 위하여 공정 스케일을 축소시키고 있다. 공정 스케일의 축소에 따라 비트 에러 비율(bit error rate)이 급격하게 증가하고 수율이 낮아질 것으로 예상된다.
플래시 메모리를 기반으로 하는 SSD(solid state drive)와 같은 스토리지 장치는 컴퓨팅 장치의 대용량 저장 매체로서 널리 사용된다. SSD는 플래시 메모리에 데이터를 저장하도록 구성되나, 플래시 메모리를 관리하기 위한 다양한 정보를 관리하기 위하여, DRAM과 같은 휘발성 메모리 장치를 버퍼 메모리로서 사용한다. DRAM 장치의 제조 과정에서, 결함(fault)이 발견된 경우, 다양한 리페어 방식을 통해, 결함 셀(fault cell)을 복구할 수 있다. 그러나, DRAM 장치의 제조가 완료되고, SSD 장치에 실장되어 제품이 출하된 이후에(즉, SSD가 사용자 레벨에서 사용 중인 경우) DRAM 장치에서 결함이 발생할 경우, DRAM 뿐만 아니라, SSD 장치 또한 정상적으로 동작하지 못하는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 향상된 신뢰성을 갖는 휘발성 메모리를 구현하기 위한 휘발성 메모리 장치의 리페어 제어 방법을 제공하는 것이다.
또한, 본 발명의 일 목적은 상기 리페어 제어 방법을 채용하여 향상된 신뢰성 및 수명을 갖는 스토리지 장치를 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법은, 휘발성 메모리 장치로부터 독출되는 독출 데이터의 에러들의 위치 정보를 검출하기 위해 반복적으로 패트롤 독출 동작을 수행하는 단계, 상기 반복적으로 수행되는 패트롤 독출 동작에 기초하여 상기 에러들의 위치 정보를 누적하여 누적 에러 정보를 발생하는 단계, 상기 누적 에러 정보에 기초하여 상기 에러들 및 상기 휘발성 메모리 장치의 구조 사이의 상관관계를 나타내는 에러 속성을 결정하는 단계 및 상기 누적 에러 정보 및 상기 에러 속성에 기초하여 상기 휘발성 메모리 장치에 대한 런타임 리페어 동작을 수행하는 단계를 포함한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법은, 스토리지 장치에 포함되는 휘발성 메모리 장치의 리페어 제어 방법으로서, 상기 스토리지 장치의 유휴 모드(idle mode) 동안 상기 휘발성 메모리 장치로부터 독출된 독출 데이터의 에러들의 위치 정보를 검출하기 위해 반복적으로 패트롤 독출 동작을 수행하는 단계, 상기 반복적으로 수행되는 패트롤 독출 동작에 기초하여 상기 에러들의 위치 정보를 누적하여 상기 휘발성 메모리 장치의 전체 행 어드레스들 중에서 정정 가능한 에러가 발생한 예비 불량 행 어드레스들 및 상기 예비 불량 행 어드레스들에 각각 상응하는 정정 가능한 에러 개수들을 누적 에러 정보로서 누적 에러 테이블에 저장하는 단계, 상기 누적 에러 정보에 기초하여 상기 에러들 및 상기 휘발성 메모리 장치의 구조 사이의 상관관계를 나타내는 에러 속성을 결정하는 단계 및 상기 누적 에러 정보 및 상기 에러 속성에 기초하여 상기 휘발성 메모리 장치에 대한 포스트 패키지 리페어 동작을 수행하는 단계를 포함한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 스토리지 장치는, 비휘발성 메모리 장치 및 스토리지 콘트롤러를 포함한다. 상기 스토리지 콘트롤러는 휘발성 메모리 장치 및 상기 휘발성 메모리 장치에 대한 액세스를 제어하는 메모리 콘트롤러를 포함하고, 상기 비휘발성 메모리 장치에 대한 액세스를 제어한다.
상기 메모리 콘트롤러 또는 상기 휘발성 메모리 장치는 상기 휘발성 메모리 장치의 액세스 데이터에 대한 에러 검출 및 정정 동작을 수행하는 ECC 엔진을 포함한다.
상기 메모리 콘트롤러는 상기 휘발성 메모리 장치로부터 독출된 독출 데이터를 외부 장치로 제공하기 위한 액세스 독출 동작과 관계 없이 상기 독출 데이터의 에러들의 위치 정보를 검출하기 위해 반복적으로 패트롤 독출 동작을 수행하고, 상기 반복적으로 수행되는 패트롤 독출 동작에 기초하여 상기 에러들의 위치 정보를 누적하여 누적 에러 정보를 발생하고, 상기 누적 에러 정보에 기초하여 상기 에러들 및 상기 휘발성 메모리 장치의 구조 사이의 상관관계를 나타내는 에러 속성을 결정하고, 상기 누적 에러 정보 및 상기 에러 속성에 기초하여 상기 휘발성 메모리 장치에 대한 런타임 리페어 동작을 수행한다.
본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치는 휘발성 메모리 장치의 구동 중에 발생하는 에러를 효율적으로 관리하여 휘발성 메모리 장치의 불량을 예방함으로써 휘발성 메모리 장치 및 이를 포함하는 스토리지 장치의 성능 및 수명을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 데이터 비트들과 패리티 비트들에 따른 온-다이 ECC 레벨들을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예들에 따른 휘발성 메모리 장치를 나타내는 블록도이다.
도 5는 도 4의 반도체 메모리 장치의 일부 구성을 나타내는 도면이다.
도 6a 및 6b는 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 패트롤 독출 동작을 나타내는 도면들이다.
도 7은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 누적 에러 테이블의 일 실시예를 나타내는 도면이다.
도 8은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 나타내는 순서도이다.
도 9는 포스트 패키지 리페어 동작을 수행하는 휘발성 메모리 장치를 예시적으로 보여주는 블록도이다.
도 10은 포스트 패키지 리페어 동작에 대한 입출력 신호를 보여주는 타이밍도이다.
도 11 및 12는 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 패트롤 독출 동작의 일 실시예를 나타내는 도면들이다.
도 13은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 레이아웃의 일 예를 나타내는 도면이다.
도 14 및 15는 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 에러 속성의 결정을 설명하기 위한 도면들이다.
도 16은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 누적 에러 테이블의 일 실시예를 나타내는 도면이다.
도 17은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 나타내는 순서도이다.
도 18은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법에 의한 컬럼 리페어를 나타내는 도면이다.
도 19는 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 누적 에러 테이블의 일 실시예를 나타내는 도면이다.
도 20은 도 19의 누적 에러 테이블을 이용한 메모리 셀의 불량 결정 방법을 나타내는 도면이다.
도 21 및 22는 본 발명의 실시예들에 따른 누적 에러 정보를 이용한 불량 예방 방법을 나타내는 도면들이다.
도 23은 본 발명의 실시예들에 따른 스토리지 장치를 포함하는 시스템을 나타내는 블록도이다.
도 24는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 휘발성 메모리 장치의 리페어 제어 방법을 나타내는 순서도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 나타내는 순서도이다.
도 1을 참조하면, 휘발성 메모리 장치로부터 독출되는 독출 데이터의 에러들의 위치 정보를 검출하기 위해 반복적으로 패트롤 독출 동작을 수행한다(S100). 상기 패트롤 독출 동작은 상기 휘발성 메모리 장치로부터 독출된 독출 데이터를 외부 장치로 제공하기 위한 액세스 독출 동작과 관계 없이 수행되는 동작에 해당한다. 상기 패트롤 독출 동작은 상기 휘발성 메모리 장치의 전체 행 어드레스들에 대하여 반복적으로 수행될 수 있다.
상기 반복적으로 수행되는 패트롤 독출 동작에 기초하여 상기 에러들의 위치 정보를 누적하여 누적 에러 정보를 발생한다(S200). 여기서 누적 에러 정보라 함은 공간적인 및 또는 시간적인 이력(history)를 반영한 정보를 나타낸다. 상기 누적 에러 정보는 누적 에러 테이블에 저장되고 관리될 수 있다.
상기 누적 에러 정보에 기초하여 상기 에러들 및 상기 휘발성 메모리 장치의 구조 사이의 상관관계를 나타내는 에러 속성을 결정한다(S300). 상기 에러 속성은 상기 휘발성 메모리 장치의 구조에 따른 에러들의 분포에 따라 결정되고 부여될 수 있다.
상기 누적 에러 정보 및 상기 에러 속성에 기초하여 상기 휘발성 메모리 장치에 대한 런타임 리페어 동작을 수행한다(S400). 런타임 리페어 동작은 스토리지 장치와 같이 휘발성 메모리 장치를 포함하는 장치 또는 시스템의 구동 중에 휘발성 메모리 장치에 발생한 정정 가능한 에러가 불량으로 방지하는 것을 예방하기 위해 상기 에러가 발생한 어드레스를 리페어 어드레스로 대체하는 동작을 나타낸다.
이와 같이, 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치는 휘발성 메모리 장치의 구동 중에 발생하는 에러를 효율적으로 관리하여 휘발성 메모리 장치의 불량을 예방함으로써 휘발성 메모리 장치 및 이를 포함하는 장치와 시스템의 성능 및 수명을 향상시킬 수 있다.
도 2는 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 2를 참조하면, 메모리 시스템(20)은 메모리 콘트롤러(100) 및 적어도 하나의 휘발성 메모리 장치(200)를 포함할 수 있다.
메모리 콘트롤러(Memory Controller; 100)는 메모리 시스템(Memory System; 20)의 동작을 전반적으로 제어하며, 외부의 호스트 장치와 휘발성 메모리 장치(200) 사이의 전반적인 데이터 교환을 제어한다. 예컨대, 메모리 콘트롤러(100)는 호스트 장치의 요청에 따라 휘발성 메모리 장치(200)를 제어하여 데이터를 기입하거나(write) 데이터를 독출한다(read).
또한, 메모리 콘트롤러(100)는 휘발성 메모리 장치(200)를 제어하기 위한 동작 커맨드(command)들을 인가하여, 휘발성 메모리 장치(200)의 동작을 제어한다.
일 실시예에서, 휘발성 메모리 장치(200)는 동적 메모리 셀들을 구비하는 DRAM(dynamic random access), SDRAM(synchronous DRAM) 또는 LPDDR(low power DDR) SDRAM일 수 있다. 본 발명의 실시예들은 이러한 메모리들에 한정되지 않으며, 리페어가 임의의 메모리 장치에 모두 적용될 수 있다.
메모리 콘트롤러(100)는 휘발성 메모리 장치(200)에 클록 신호(CLK), 커맨드(CMD) 및 어드레스(ADDR)를 전송하고, 휘발성 메모리 장치(200)와 메인 데이터(MD)를 주고받을 수 있다.
휘발성 메모리 장치(200)는 메인 데이터(MD)가 저장되는 메모리 셀 어레이(300), 에러 체크 및 정정(ECC) 회로(400) 및 제어 로직 회로(210)를 포함할 수 있다. ECC 회로(400)는 메모리 셀 어레이(300)에 포함되는 복수의 뱅크 어레이들에 상응하는 복수의 ECC 엔진들을 포함할 수 있다. 한편 도 2에는 ECC 회로(400)가 휘발성 메모리 장치(200)에 포함되는 실시 예를 도시하고 있으나, 실시예에 따라서 ECC 회로(400)는 메모리 콘트롤러(100)에 포함될 수도 있다.
메모리 시스템(20)은 호스트 장치와 PCI-E(Peripheral Component Interconnect-Express), ATA(Advanced Technology Attachment), SATA (Serial ATA), PATA(Parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 통신할 수 있다.
메모리 콘트롤러(100)는 본 발명의 실시예들에 따른 리페어 제어 방법을 수행하는 리페어 매니저(RMNG)를 포함할 수 있다. 리페어 매니저(RMNG)는 도 1의 방법을 수행하기 위한 패트롤 독출 동작 및 누적 에러 정보의 발생 및 에러 속성의 결정을 수행하도록 구현된다. 런타임 리페어 동작의 수행은 리페어 매니저(RMNG)에 의해 제어될 수도 있고, 호스트 장치의 제어에 따라 수행될 수도 있다. 리페어 매니저(RMNG)는 상기 누적 에러 정보를 누적 에러 테이블(AET)(120)에 저장하고 관리할 수 있다. 도 2에는 누적 에러 테이블(AET)이 메모리 콘트롤러(100)에 포함되는 것으로 도시되어 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 휘발성 메모리 장치(200)는 자신의 구성에 관한 구성 정보(CNFINF)를 메모리 콘트롤러(100)에 제공하고, 메모리 콘트롤러(100)는 구성 정보(CNFINF)에 기초하여 전술한 에러 속성을 결정할 수 있다.
도 3은 데이터 비트들과 패리티 비트들에 따른 온-다이 ECC 레벨들을 설명하기 위한 도면이다.
도 3에서 SEC는 1비트 에러 정정(single-error-correction)을 나타내고, DED는 2비트 에러 검출(double-error-detection)을 나타내고, DEC는 2비트 에러 정정(double error correction)을 나타낸다. 도 3에는 해밍 코드(Hamming code) 또는 확장 해밍 코드(extended Hamming code)에 의한 데이터 비트 수에 상응하는 패리티 비트 수 및 패리티 비트들의 사이즈 오버헤드(PARITY O/H), 즉 기입 데이터의 비트 수에 대한 상기 기입 데이터에 상응하는 패리티 데이터의 비트 수의 비율이 도시되어 있다. 도 3에 도시된 예는 본 발명의 실시예들에 따른 ECC 레벨들을 설명하기 위한 것으로서 이에 한정되지 않는다. 예를 들어, BCH (Bose-Chaudhuri-Hocquenghem) 코드, 리드 솔로몬(Reed-Solomon) 코드 등의 다른 코드를 사용하는 경우에는 데이터 비트 수에 상응하는 패리티 비트 수 및 사이즈 오버헤드가 달라질 수 있다.
도 3에 도시된 바와 같이, 동일한 데이터 비트 수에 대해서 패리티 비트 수가 증가할수록 에러 검출 및 정정 능력이 증가하고, 기입 데이터의 비트 수에 대한 상기 기입 데이터에 상응하는 패리티 데이터의 비트 수의 비율이 증가한다. 한편, 동일한 에러 검출 및 정정 능력에 대한 데이터 비트 수가 증가할수록 상응하는 패리티 비트 수도 증가하지만 기입 데이터의 비트 수에 대한 패리티 데이터의 비트 수의 비율은 감소한다.
이와 같이, 기입 데이터의 비트 수에 대한 상응하는 패리티 데이터의 비트 수의 비율이 증가할수록 에러 검출 능력(error detection capability) 또는 에러 정정 능력(error correction capability)가 증가한다. 결과적으로 기입 데이터의 비트 수에 대한 상응하는 패리티 데이터의 비트 수의 비율이 증가할수록 ECC 레벨이 높아진다고 할 수 있다. 그러나, 패리티 데이터의 비트 수를 증가하는 경우 메모리의 실제 저장 용량이 감소하므로 에러 검출 능력의 증가는 제한된다.
본 발명의 실시예들에 따라, 상기 누적 에러 정보 및 상기 에러 속성에 기초하여 상기 휘발성 메모리 장치에 대한 런타임 리페어 동작을 수행하여 불량을 예방함으로써 상대적으로 낮은 에러 검출 능력으로도 높은 수준으로 휘발성 메모리 장치의 불량을 예방할 수 있다. 여기서 휘발성 메모리 장치의 불량이란 상기 ECC 기능에 의해서도 정정 불가능한 에러가 발생한 것을 의미한다.
도 4는 본 발명의 실시예들에 따른 휘발성 메모리 장치를 나타내는 블록도이다. 도 4에는 DRAM 장치가 도시되어 있다.
도 5를 참조하면, 반도체 메모리 장치(200)는 제어 로직 회로(210), 어드레스 레지스터(220), 뱅크 제어 로직(230), 리프레쉬 카운터(245), 로우 어드레스 멀티플렉서(240), 칼럼 어드레스 래치(250), 로우 디코더(260), 칼럼 디코더(270), 메모리 셀 어레이(300), 센스 앰프부(285), 입출력 게이팅 회로(290), ECC 회로(400) 및 데이터 입출력 버퍼(295)를 포함할 수 있다.
ECC 회로(400)는 제1 내지 제8 ECC 엔진들(400a~400h)을 포함할 수 있고, 입출력 게이팅 회로(290)는 뱅크 어레이들 각각에 대응되는 복수의 입출력 게이팅 회로들을 포함할 수 있다.
메모리 셀 어레이(300)는 제1 내지 제8 뱅크 어레이들(310~380)을 포함할 수 있다. 로우 디코더(260)는 제1 내지 제8 뱅크 어레이들(310~380)에 각각 연결된 제1 내지 제8 뱅크 로우 디코더들(260a~260h)을 포함하고, 칼럼 디코더(270)는 제1 내지 제8 뱅크 어레이들(310~380)에 각각 연결된 제1 내지 제8 뱅크 칼럼 디코더들(270a~270h)을 포함하며, 센스 앰프부(285)는 제1 내지 제8 뱅크 어레이들(310~380)에 각각 연결된 제1 내지 제8 뱅크 센스 앰프들(285a~285h)을 포함할 수 있다. 제1 내지 제8 뱅크 어레이들(310~380), 제1 내지 제8 뱅크 센스 앰프들(285a~285h), 제1 내지 제8 뱅크 칼럼 디코더들(270a~270h) 및 제1 내지 제8 뱅크 로우 디코더들(260a~260h)은 제1 내지 제8 뱅크들을 각각 구성할 수 있다. 제1 내지 제8 뱅크 어레이들(310~380) 각각은 복수의 워드라인(WL)들과 복수의 비트라인(BTL)들 및 워드라인(WL)들과 비트라인(BTL)들이 교차하는 지점에 형성되는 복수의 메모리 셀(MC)들을 포함할 수 있다.
어드레스 레지스터(220)는 메모리 콘트롤러(100)로부터 뱅크 어드레스(BANK_ADDR), 로우 어드레스(ROW_ADDR) 및 칼럼 어드레스(COL_ADDR)를 포함하는 어드레스(ADDR)를 수신할 수 있다. 어드레스 레지스터(220)는 수신된 뱅크 어드레스(BANK_ADDR)를 뱅크 제어 로직(230)에 제공하고, 수신된 로우 어드레스(ROW_ADDR)를 로우 어드레스 멀티플렉서(240)에 제공하며, 수신된 칼럼 어드레스(COL_ADDR)를 칼럼 어드레스 래치(250)에 제공할 수 있다.
뱅크 제어 로직(230)은 뱅크 어드레스(BANK_ADDR)에 응답하여 뱅크 제어 신호들을 생성할 수 있다. 상기 뱅크 제어 신호들에 응답하여, 제1 내지 제8 뱅크 로우 디코더들(260a~260h) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 로우 디코더가 활성화되고, 제1 내지 제8 뱅크 칼럼 디코더들(270a~270h) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 칼럼 디코더가 활성화될 수 있다.
로우 어드레스 멀티플렉서(240)는 어드레스 레지스터(220)로부터 로우 어드레스(ROW_ADDR)를 수신하고, 리프레쉬 카운터(245)로부터 리프레쉬 로우 어드레스(REF_ADDR)를 수신할 수 있다. 로우 어드레스 멀티플렉서(240)는 로우 어드레스(ROW_ADDR) 또는 리프레쉬 로우 어드레스(REF_ADDR)를 로우 어드레스(RA)로서 선택적으로 출력할 수 있다. 로우 어드레스 멀티플렉서(240)로부터 출력된 로우 어드레스(RA)는 제1 내지 제8 뱅크 로우 디코더들(260a~260h)에 각각 인가될 수 있다.
제1 내지 제8 뱅크 로우 디코더들(260a~260h) 중 뱅크 제어 로직(230)에 의해 활성화된 뱅크 로우 디코더는 로우 어드레스 멀티플렉서(240)로부터 출력된 로우 어드레스(RA)를 디코딩하여 상기 로우 어드레스에 상응하는 워드라인을 활성화할 수 있다. 예를 들어, 상기 활성화된 뱅크 로우 디코더는 로우 어드레스에 상응하는 워드라인에 워드라인 구동 전압을 인가할 수 있다. 칼럼 어드레스 래치(250)는 어드레스 레지스터(220)로부터 칼럼 어드레스(COL_ADDR)를 수신하고, 수신된 칼럼 어드레스(COL_ADDR)를 일시적으로 저장할 수 있다. 또한, 칼럼 어드레스 래치(250)는, 버스트 모드에서, 수신된 칼럼 어드레스(COL_ADDR)를 점진적으로 증가시킬 수 있다. 칼럼 어드레스 래치(250)는 일시적으로 저장된 또는 점진적으로 증가된 칼럼 어드레스(COL_ADDR)를 제1 내지 제8 뱅크 칼럼 디코더들(270a~270h)에 각각 인가할 수 있다.
제1 내지 제8 뱅크 칼럼 디코더들(270a~270h) 중 뱅크 제어 로직(230)에 의해 활성화된 뱅크 칼럼 디코더는 입출력 게이팅 회로(290)를 통하여 뱅크 어드레스(BANK_ADDR) 및 칼럼 어드레스(COL_ADDR)에 상응하는 센스 앰프를 활성화시킬 수 있다. 입출력 게이팅 회로(290)의 입출력 게이팅 회로들 각각은 입출력 데이터를 게이팅하는 회로들과 함께, 입력 데이터 마스크 로직, 제1 내지 제8 뱅크 어레이들(310~380)로부터 출력된 데이터를 저장하기 위한 독출 데이터 래치들, 및 제1 내지 제8 뱅크 어레이들(310~380)에 데이터를 기입하기 위한 기입 드라이버들을 포함할 수 있다.
제1 내지 제8 뱅크 어레이들(310~380) 중 하나의 뱅크 어레이에서 독출될 코드워드(CW)는 상기 하나의 뱅크 어레이에 상응하는 센스 앰프에 의해 감지되고, 상기 독출 데이터 래치들에 저장될 수 있다. 상기 독출 데이터 래치들에 저장된 코드워드(CW)는 상응하는 ECC 엔진에 의하여 ECC 디코딩이 수행된 후에 데이터 입출력 버퍼(295)를 통하여 상기 메모리 콘트롤러(100)에 제공될 수 있다. 제1 내지 제8 뱅크 어레이들(310~380) 중 하나의 뱅크 어레이에 기입될 메인 데이터(MD)는 상응하는 ECC 엔진에서 ECC 인코딩을 수행한 후 상기 기입 드라이버들을 통하여 상기 하나의 뱅크 어레이에 기입될 수 있다.
데이터 입출력 버퍼(295)는 기입 동작에서는 메모리 콘트롤러(100)로부터 제공되는 클록 신호(CLK)에 기초하여 메인 데이터(MD)를 ECC 엔진 블록(400)에 제공하고, 독출 동작에서는 ECC 엔진 블록(400)으로부터 제공되는 메인 데이터(MD)를 메모리 콘트롤러(100)에 제공할 수 있다.
ECC 회로(400)는 기입 동작에서 데이터 입출력 버퍼(295)로부터 제공되는 메인 데이터(MD)의 데이터 비트들에 기초하여 패리티 비트들을 생성하고, 메인 데이터(MD)와 패리티 비트들을 포함하는 코드워드(CW)를 입출력 게이팅 회로(290)에 제공하고, 입출력 게이팅 회로(290)는 코드워드(CW)를 상응하는 뱅크 어레이에 기입할 수 있다.
또한 ECC 회로(400)는 독출 동작에서 하나의 뱅크 어레이에서 독출된 코드워드(CW)를 입출력 게이팅 회로(290)로부터 제공받을 수 있다. ECC 회로(400)는 독출된 코드워드(CW)에 포함되는 패리티 비트들을 이용하여 메인 데이터(MD)에 대한 ECC 디코딩을 수행하여 메인 데이터(MD)에 포함되는 에러를 정정하여 데이터 입출력 버퍼(295)에 제공할 수 있다. 또한 ECC 회로(400)는 검출된 에러의 위치를 나타내는 위치 정보(EPOS)를 발생할 수 있고, 위치 정보(EPOS)는 메모리 콘트롤러의 리페어 매니저(RMNG)로 제공될 수 있다.
제어 로직 회로(210)는 반도체 메모리 장치(200)의 동작을 제어할 수 있다. 예를 들어, 제어 로직 회로(210)는 반도체 메모리 장치(200)가 기입 동작 또는 독출 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 로직 회로(210)는 상기 메모리 콘트롤러(100)로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(211) 및 반도체 메모리 장치(200)의 동작 모드를 설정하기 위한 모드 레지스터(212)를 포함할 수 있다.
예를 들어, 커맨드 디코더(211)는 기입 인에이블 신호(/WE), 로우 어드레스 스트로브 신호(/RAS), 칼럼 어드레스 스트로브 신호(/CAS), 칩 선택 신호(/CS) 등을 디코딩하여 커맨드(CMD)에 상응하는 상기 제어 신호들을 생성할 수 있다. 특히 제어 로직 회로(210)는 커맨드(CMD)를 디코딩하여 입출력 게이팅 회로(290)를 제어하는 제1 제어 신호(CTL1) 및ECC 엔진들(400a~400h)을 제어하는 제2 제어 신호(CTL2)를 생성할 수 있다.
도 5는 도 4의 휘발성 메모리 장치의 일부 구성을 나타내는 도면이다.
도 5를 참조하면, 휘발성 메모리 장치(200a)는 제어 로직 회로(210), 제1 뱅크 어레이(310), 입출력 게이팅 회로(290) 및 ECC 회로(400)를 포함할 수 있다.
도 7을 참조하면, 제1 뱅크 어레이(310)는 노멀 셀 어레이(NCA) 및 리던던시 셀 어레이(RCA)를 포함할 수 있다. 노멀 셀 어레이(NCA)는 복수의 제1 메모리 블록들(MB0~MBk, 311, 312, 313)을 포함할 수 있고, 리던던시 셀 어레이(RCA)는 적어도 하나의 제2 메모리 블록(314)을 포함할 수 있다. 제1 메모리 블록들(311, 312, 313)은 반도체 메모리 장치(200a)의 메모리 용량을 결정하는 블록이다. 제2 메모리 블록(314)은 ECC 용 및/또는 리던던시 리페어 용 블록이다. 제1 메모리 블록들(MB0~MBk, 311, 312, 313)은 데이터 영역으로 호칭될 수 있고 제2 메모리 블록(314)은 패리티 영역으로 호칭될 수 있다. 제2 메모리 블록(314)은 제1 메모리 블록들(311, 312, 313)에서 발생하는 불량 셀을 구제하기 위하여 ECC 용, 데이터 라인 리페어 용(data line repair) 및 블록 리페어용(block repair) 것으로 EDB 블록이라 칭할 수도 있다.
제1 메모리 블록들(311, 312, 313) 각각은 행들 및 열들로 배열되는 복수의 제1 메모리 셀들을 포함하고, 제2 메모리 블록(314)도 행들 및 열들로 배열되는 복수의 제2 메모리 셀들을 포함한다.
제1 메모리 블록들(311, 312, 313) 및 제2 메모리 블록(314) 각각의 행들은 복수의 워드라인(WL)들로 구성되고, 열들은 복수의 비트라인(BTL)들로 구성될 수 있다. 워드라인들(WL)과 비트라인들(BTL)의 교차점에 연결되는 제1 메모리 셀들 및 제2 메모리 셀들은 동적 메모리 셀 또는 저항성 메모리 셀들로 구성될 수 있다.
입출력 게이팅 회로(290)는 제1 메모리 블록들(311, 312, 313)에 연결되는 제1 스위칭 회로(291) 및 제2 메모리 블록(294)에 연결되는 제2 스위칭 회로(292)를 포함할 수 있다. 반도체 메모리 장치(200a)에서 비트라인들은 액세스할 수 있는 칼럼 로케이션의 최대 수를 나타내는 버스트 길이(burst length, BL)를 지원하기 위하여 버스트 길이에 해당하는 비트라인들이 동시에 액세스될 수 있다. 반도체 메모리 장치(200a)는 예시적으로 버스트 길이가 8로 설정될 수 있다. 이에 따라 비트라인들(BTL)은 복수의 칼럼 선택 신호들 각각에 연결되는 칼럼 선택부에 각각 연결되고 하나의 칼럼 선택부에 의하여 8개의 비트라인들이 동시에 선택될 수 있다.
ECC 회로(400)는 스위칭 회로들(291, 292)과 상응하는 제1 데이터 라인들(GIO]) 및 제2 데이터 라인들(EDBIO) 각각을 통하여 연결될 수 있다. 제1 데이터 라인들(GIO])은 ECC 회로(400)의 데이터 노드들(NDd)에 연결되고 제2 데이터 라인들(EDBIO)은 ECC 회로(400)의 패리티 노드들(NDp)에 연결된다.
제어 로직 회로(210)는 커맨드(CMD)를 디코딩하여 스위칭 회로들(291a~291d)을 제어하는 제1 제어 신호(CTL1)를 입출력 게이팅 회로(290)에 제공하고, 엔진 구성 선택 신호(ECSS)를 포함하는 제2 제어 신호(CTL2)를 ECC 회로(400)에 제공할 수 있다.
하나의 ECC 동작의 대상이 되는 ECC 단위는 동일한 행 어드레스에 해당하는 데이터들을 다양한 방법으로 조합하여 구성될 수 있다. ECC 단위에 정정 가능한 개수보다 많은 에러가 포함되는 경우 그 데이터는 영구적으로 손실되고 휘발성 메모리 장치 및 이를 포함하는 장치와 시스템에 치명적인 손상을 야기하게 된다. 본 발명의 실시예들은 휘발성 메모리 장치에 발생한 정정 가능한 에러를 관리하여 정정 불가능한 에러가 발생하기 전에 에러가 발생한 어드레스에 대한 런타임 리페어 동작을 효율적으로 수행할 수 있다.
도 6a 및 6b는 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 패트롤 독출 동작을 나타내는 도면들이다.
도 6a 및 6b를 참조하면, 복수의 패트롤 독출 동작들(PROPR1, PROPR2, PROPR3, )이 반복적으로 수행될 수 있다. 각 패트롤 독출 동작은 시작 행 어드레스(STADD)부터 종료 행 어드레스(EDADD)까지 순차적으로 수행될 수 있고, 시작 행 어드레스(STADD) 내지 종료 행 어드레스(EDADD)는 휘발성 메모리 장치의 일부 또는 전체 행 어드레스들을 포함할 수 있다. 도 6a에는 복수의 패트롤 독출 동작들(PROPR1, PROPR2, PROPR3, )이 동일한 패턴으로 수행되는 예를 도시하고 있으나, 실시예에 따라서 패트롤 독출 동작들은 두 개 이상의 서로 다른 패턴들로 수행될 수도 있다.
도 6b에는 하나의 패트롤 독출 동작(PROPRi)에 대하여 패트롤 독출 동작이 수행되는 타이밍을 나타내고 있다. 패트롤 독출 동작은 휘발성 메모리 장치에 대한 액세스가 수행되는 액티브(ACTIVE) 모드에서는 중지되고 유휴(IDLE) 모드에서만 수행될 수 있다. 패트롤 독출 동작이 중단되는 포인터(PADD)는 리페어 매니저(RMNG)에 저장되고 저장된 포인터(PADD)에 기초하여 재개된 유휴 모드에서 패트롤 독출 동작이 연속성을 가지고 수행될 수 있다.
도 7은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 누적 에러 테이블의 일 실시예를 나타내는 도면이다.
누적 에러 테이블은 휘발성 메모리 장치의 복수의 메모리 뱅크들의 각각에 대해서 작성되고 관리될 수 있다. 도 1에는 3개의 메모리 뱅크에 해당하는 3개의 누적 에러 테이블(AET1,AET2, AET3)가 도시되어 있으며, 하나의 누적 에러 테이블(AET1)에 저장된 누적 에러 정보의 일 예가 도시되어 있다.
휘발성 메모리 장치의 전체 행 어드레스들 중에서 정정 가능한 에러가 발생한 예비 불량 행 어드레스들(PFRADD)(RAa~RAf) 및 예비 불량 행 어드레스들)(RAa~RAf) 에 각각 상응하는 정정 가능한 에러 개수들(EN)을 누적 에러 정보로서 누적 에러 테이블(AET1)에 저장할 수 있다. 예를 들어, 도 7은 예비 불량 행 어드레스(RAa)의 에러 개수는 2이고, 예비 불량 행 어드레스(Rad)의 에러 개수는 4임을 나타낸다. ATT는 전술한 에러 속성을 나타내면, N/A는 부여된 또는 결정된 에러 속성이 존재하지 않음을 나타낸다. 도 7에는 하나의 에러 속성(ATT1)이 부여된 경우를 나타내며, 이 경우 에러 속성(ATT1)이 부여된 일부의 예비 불량 행 어드레스(Rae)는 에러 개수가 0일 수 있다. 즉 에러 속성의 결정에 의해 에러를 포함하지 않는 행 어드레스도 누적 에러 테이블에 포함될 수 있다. 이에 대해서는 도 13 내지 15를 참조하여 후술한다.
도 8은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 나타내는 순서도이다.
도 8을 참조하면, 누적 에러 정보(AEI)를 갱신한다(S11). 전술한 패트롤 독출 동작이 한번 수행될 때마다 누적 에러 정보(AEI)가 갱신될 수 있다.
누적 에러 정보(AEI)에 포함된 모든 예비 불량 행 어드레스들에 대하여 에러 개수(EN)가 기준 에러 개수(RN1)보다 큰지를 판단한다(S12). 적어도 하나의 예비 불량 행 어드레스의 에러 개수(EN)가 기준 에러 개수(RN1)보다 큰 경우(S12: YES). 기준 에러 개수(RN1)보다 큰 에러 개수(EN)를 갖는 모든 예비 불량 행 어드레스들에 대하여 포스트 패키지 리페어 동작을 수행한다(S13). 모든 예비 불량 행 어드레스들에 대하여 에러 개수(EN)가 기준 에러 개수(RN1)보다 크지 않은 경우(S12: NO), 하나의 패트롤 독출 동작이 수행되어 누적 에러 정보(AEI)가 갱신된 후 다시 포스트 패키지 리페어 동작의 수행 여부를 결정할 수 있다.
이러한 일련의 동작들은 비휘발성 메모리 장치의 파워가 오프되기 전까지(S14: NO) 반복적으로 수행될 수 있다. 비휘발성 메모리 장치의 파워가 오프되는 경우(S14: YES), 누적 에러 정보(AEI)를 비휘발성 메모리에 저장하고(S15) 파워 오프 과정을 수행한다. 비휘발성 메모리에 저장된 누적 에러 정보(AEI)는 휘발성 메모리 장치가 다시 파워 온될 때 누적 에러 테이블(AET)에 로딩되어 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 연속성을 가지고 수행할 수 있다.
도 9는 포스트 패키지 리페어 동작을 수행하는 휘발성 메모리 장치를 예시적으로 보여주는 블록도이다. 설명 및 도시의 편의상 포스트 패키지 리페어 동작을 동작을 설명하는데 불필요한 구성 요소들은 생략된다.
도 9를 참조하면, DRAM 장치(500)는 메모리 셀 어레이(510), 로우 디코더(520), 컬럼 디코더(530), 제어 로직 회로(540), 및 퓨즈 회로(550)를 포함할 수 있다.
메모리 셀 어레이(510)는 복수의 DRAM 셀들을 포함할 수 있다. 복수의 DRAM 셀들은 각각 워드라인 및 비트라인과 연결될 수 있다. 복수의 DRAM 셀들 중 일부는 노멀 셀들일 수 있고, 나머지 일부는 리던던시 셀들(Redundancy cells)일 수 있다. 리던던시 셀들은 노멀 셀들 중 페일 셀들을 대체하기 위한 DRAM 셀일 수 있다.
로우 디코더(520)는 워드라인들(NWL, RWL)을 통해 메모리 셀 어레이(510)와 연결될 수 있다. 로우 디코더(520)는 어드레스(ADDR)를 기반으로 워드라인들(NWL, RWL) 중 하나를 선택하고, 선택된 워드라인의 전압을 제어할 수 있다.
컬럼 디코더(530)는 비트라인(BL)을 통해 메모리 셀 어레이(510)와 연결될 수 있다. 컬럼 디코더(530)는 어드레스(ADDR)를 기반으로 비트라인들(BL) 중 일부를 선택하고, 선택된 비트라인들의 전압을 제어하거나 또는 감지할 수 있다.
제어 로직 회로(540)는 DRAM 장치(500)의 동작을 제어할 수 있다. 퓨즈 회로(550)는 제어 로직 회로(540)의 제어에 따라 퓨즈 셋팅 동작을 수행할 수 있다. 즉, 제어 로직 회로(540)는 런타임 리페어 동작(예를 들어, 직접 리페어 동작)에 의해, 퓨즈 회로(550)의 퓨즈-셋팅을 재설정하도록 구성될 수 있다. 퓨즈 회로(550)의 퓨즈 셋팅에 의해 메모리 셀 어레이(550)의 노멀 셀들이 리던던시 셀들로 대체될 수 있다. 예를 들어, 퓨즈 회로(550)는 메모리 콘트롤러로부터 어드레스(ADDR)를 수신할 수 있다. 이 때, 어드레스(ADDR)가 페일 로우와 대응되는 노멀 워드라인(NWL)에 대한 어드레스(즉, 페일 어드레스)일 수 있다. 이 경우, 퓨즈 회로(550)는 로우 디코더(132)가 노멀 워드라인(NWL) 대신에 리던던시 워드라인(RWL)을 선택하도록 리페어 어드레스(ADDR_r)를 출력할 수 있다.
즉, 퓨즈 회로(550)는 페일 로우와 대응되는 페일 어드레스를 리페어 어드레스로 변환하여 출력하도록 퓨즈-셋팅될 수 있다. 로우 디코더(520)는 퓨즈 회로(550)로부터의 리페어 어드레스를 기반으로 리던던시 워드라인(RWL)을 선택할 수 있다. 예시적인 실시 예에서, 퓨즈 회로(550)는 페일 로우와 대응되지 않는 어드레스(ADDR)는 별도의 변환없이 수신된 어드레스(ADDR)를 로우 디코더(520)로 전달할 수 있다.
상술된 바와 같이, DRAM 장치(500)는 퓨즈 회로(550)에 대한 전기적 퓨즈-셋팅를 통해 페일 로우에 대한 포스트 패키지 리페어 동작을 수행할 수 있다.
도 10은 포스트 패키지 리페어 동작에 대한 입출력 신호를 보여주는 타이밍도이다.
예를 들어, 하드 포스트 패키지 리페어(hPPR; hard Post Package Repair)을 기반으로 런타임 리페어 동작이 수행될 수 있다. 도 10의 타이밍도의 신호들에 응답하여, 도 9를 참조하여 설명된 퓨즈 회로(550)의 전기적 퓨즈 셋팅이 수행될 수 있다.
도 10을 참조하면, 제1 시점(t1) 내지 제2 시점(t2) 동안, DRAM 장치는 메모리 콘트롤러로부터의 모드 레지스터 셋 커맨드들(MRS4, MRS0) 및 어드레스 신호들(BG, BA, ADDR)에 응답하여, 하드 포스트 패키지 리페어 모드(hPPR)로 진입할 수 있다. 예시적인 실시 예에서, 제1 시점(t1)에서, 제13 어드레스(A13)의 값은 하드 포스트 패키지 리페어 동작의 활성화를 가리키는 “1”로 설정될 수 있다. 예시적인 실시 예에서, 하드 포스트 패키지 리페어 모드(hPPR)로 진입하기 전에, 페일 로우(Fail Row)가 포함된 뱅크 또는 인접한 뱅크에 저장된 데이터가 비휘발성 메모리로 플러쉬될 수 있다. 또한 하드 포스트 패키지 리페어 모드(hPPR)로 진입하기 전에, DRAM 장치의 모든 뱅크들이 프리차지될 수 있다.
이후에, DRAM 장치는, 제2 시점(t2) 내지 제3 시점(t3) 동안, 메모리 컨트롤러로부터의 활성 커맨드(ACT), 자동 프리차지 쓰기 커맨드(WRA), 어드레스 신호들(BGf, BAf)에 응답하여 hPPR 리페어 동작을 수행할 수 있다. 예시적으로, 어드레스 신호들(BGf, BAf, ADDR)은 페일 로우에 대응하는 어드레스 신호들일 수 있다. hPPR 리페어 동작은 도 9를 참조하여 설명된 바와 같이, 퓨즈 회로(550)의 전기적인 퓨즈 셋팅을 통해 수행될 수 있다.
이후에, DRAM 장치는, 제3 시점(t3) 내지 제4 시점(t4) 동안, 프리 차지 커맨드(PRE)에 응답하여, hPPR 인식(hPPR Recognition)을 수행할 수 있다. 이후에, DRAM 장치는, 제4 시점(t4) 내지 제5 시점(t5) 동안, 모드 레지스터 셋 커맨드(MRS4) 및 어드레스 신호(특히, A13=0)에 응답하여 hPPR 모드를 해제(Exit)할 수 있다. 이후에, DRAM 장치는 플러쉬된 데이터를 복원할 수 있다.
예시적인 실시 예에서, 도 10의 타이밍도는 직접 리페어 동작에 대한 예시적인 실시 예이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 자동 프리차지 쓰기 커맨드(WRA) 대신에 일반 쓰기 커맨드(WR)를 사용하여 상술된 hPPR 동작이 수행될 수 있다. 이 경우, hPPR 모드로 진입하기 전에, DRAM 장치의 모든 뱅크들에 저장된 데이터에 대한 백업(즉, 플러쉬)이 수행될 수 있다. 또는, 직접 리페어 동작은 소프트 포스트 패키지 리페어(sPPR; soft PPR)을 기반으로 수행될 수 있다.
도 11 및 12는 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 패트롤 독출 동작의 일 실시예를 나타내는 도면들이다.
도 11을 참조하면, 휘발성 메모리 장치의 전체 행 어드레스들에 대하여 순차적으로 풀 스캐닝 독출 동작(FSR)을 수행한다(S21). 한편, 누적 에러 테이블(AET)에 포함된 예비 불량 행 어드레스들에 대하여 순차적으로 딥 스캐닝 독출 동작(DSR)을 풀 스캐닝 독출 동작(FSR)보다 더 빈번하게 수행한다(S22). 다시 말해서, 풀 스캐닝 독출 동작(FSR)이 1회 수행되는 동안에 딥 스캐닝 독출 동작(DSR)을 2회 이상 수행할 수 있다. 이와 같이 에러가 발생하거나 발생할 가능성이 큰 예비 불량 행 어드레스들에 대해 모니토링을 강화함으로써 정정 불가능한 에러, 즉 불량이 발생하는 것은 더욱 예방할 수 있다.
도 12에는, 하나의 패트롤 독출 동작(PROPRi)에 대하여 하나의 풀 스캐닝 독출 동작(FSR)에 포함되는 부분 풀 스캐닝 독출 동작들(PFSR1~PFSRn) 및 복수의 딥 스캐닝 독출 동작들(DSR1~DSRn)이 도시되어 있다. 복수의 딥 스캐닝 독출 동작들(DSR1~DSRn)의 각각은 풀 스캐닝 독출 동작(FSR)이 중간 행 어드레스(PADD1~PADDn-1)에 도달할 때마다 수행될 수 있다. 도 12에는 도시의 편의상 딥 스캐닝 독출 동작의 대상이 되는 예비 불량 행 어드레스들(PFRADD)가 인접한 것으로 도시되어 있으나, 예비 불량 행 어드레스들(PFRADD)은 전체 행 어드레스들에 불규칙적으로 산재할 수 있다.
결과적으로, 예비 불량 행 어드레스들(PFRADD)에 대하여 딥 스캐닝 독출 동작이 n+1번 수행될 때마다 그 밖의 행에 대해서 풀 스캐닝 독출 동작이 1번 수행될 수 있다.
도 13은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 레이아웃의 일 예를 나타내는 도면이다.
도 13에는 휘발성 메모리 장치의 구성 요소들 중에서 메모리 셀 어레이 영역(MCA), 컬럼 디코더 및 로우 디코더만이 도시되어 있다. 메모리 셀 어레이 영역(MCA)은 접합 영역들(CJ), 서브 워드 라인 드라이버 영역들(SWD), 센스 증폭기 영역들(SA) 및 서브 메모리 셀 어레이 영역들(SMCA)을 포함한다. 메모리 셀 어레이 영역(MCA)의 상부에는 워드 선택 신호 라인들(PX), 메인 워드 라인들(NEW), 서브 워드 라인들(SWL), 컬럼 선택 신호 라인들(CSL), 로컬 데이터 입출력 라인들(LIO), 글로벌 데이터 입출력 라인들(GIO)이 배치된다. 도 13에는 편의상 파워 라인들은 도시가 생략되어 있다.
메모리 셀 어레이 영역(MCA)에는 접합 영역(CJ), 서브 워드 라인 드라이버 영역(SWD), 센스 증폭기 영역(SA), 및 서브 메모리 셀 어레이 영역(SMCA)으로 구성된 블록이 가로 방향과 세로 방향으로 반복적으로 배치된다. 접합 영역(CJ)에는 서브 워드 라인 드라이버를 제어하기 위한 제어신호 발생회로 및 센스 증폭기를 제어하기 위한 제어신호 발생회로가 배치되고, 서브 워드 라인 드라이버 영역(SWD)에는 서브 워드 라인 드라이버들이 배치되고, 센스 증폭기 영역(SA)에는 센스 증폭기들이 배치된다.
서브 메모리 셀 어레이 영역(SMCA)에는 서브 워드 라인(SWL)과 비트 라인(BL)사이에 연결된 메모리 셀(MC)들이 형성되며, 워드 선택 신호 라인(PX)과 메인 워드 라인(NWE)으로 전송되는 신호를 조합한 신호와 컬럼 선택 신호 라인(CSL)으로 전송되는 신호에 응답하여 선택된 메모리 셀(MC)로 또는 메모리 셀(MC)로부터 데이터를 기입 또는 독출한다.
컬럼 디코더는 컬럼 어드레스(CA)를 디코딩하여 컬럼 선택 신호 라인(CSL)을 선택하기 위한 컬럼 선택 신호들을 발생한다. 로우 디코더는 로우 어드레스(RA)를 디코딩하여 워드 선택 신호 라인(PX)을 선택하기 위한 워드 선택 신호들과 메인 워드 라인(NWE)을 선택하기 위한 메인 워드 라인 선택 신호들을 발생한다.
메인 워드 라인(NWE)은 서브 워드 라인 드라이버 영역(SWD)와 서브 메모리 셀 어레이 영역(SMCA)위에 세로 방향으로 배치되고, 워드 선택 신호 라인(PX)과 로컬 데이터 입출력 라인(LIO)은 접합 영역(CJ)과 센스 증폭기 영역(SA)위에 워드 라인(WL)과 동일한 방향으로 배치된다. 그리고, 컬럼 선택 신호 라인(CSL) 및 글로벌 데이터 입출력 라인(GIO)은 센스 증폭기 영역(SA) 및 서브 메모리 셀 어레이 영역(SMCA)위에 워드 라인(WL)과 직교하는 방향으로 배치된다.
도 14 및 15는 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 에러 속성의 결정을 설명하기 위한 도면들이다.
도 14에는 도 13의 레이아웃에서 하나의 메인 워드라인(NEW) 및 복수의 서브 워드라인들(SWL1~SWL4)이 서브 워드라인 드라이버들(SWD)를 통하여 연결되는 일 예가 도시되어 있다. PXID1~PXID4 및 PXIB1~PXIB4 신호들은 어드레스의 디코딩에 의해 발생되는 신호들이다.
동일한 메인 워드라인(NEW)에 연결된 서브 워드라인들(SWL1~SWL4)의 에러들은 구조적인 상관관계를 갖는다. 예를 들어, 메인 워드라인(NEW) 또는 이를 구동하는 드라이버에 일종의 결함이 발생하는 경우, 에러가 발생하는 서브 워드라인들(SWL1~SWL4)의 개수가 증가하거나 서브 워드라인들(SWL1~SWL4)의 전체 개수가 증가할 수 있다. 이 경우, 하나의 서브 워드라인(SWL3)은 에러 개수가 0이지만 빠른 속도로 불량으로 발전할 개연성이 있다. 이러한 개연성을 미리 차단하기 위해 동일한 메인 워드라인(NEW)에 상응하는 모든 서브 워드라인들(SWL1~SWL4)을 포함하는 어드레스 그룹, 즉 행 어드레스들(RA1~RA4)에 에러 속성을 부여하고 어드레스 그룹(RA1~RA4)을 예비 불량 행 어드레스들로서 상기 누적 에러 테이블에 저장할 수 있다.
일 실시예서, 어드레스 그룹(RA1~RA4)의 정정 가능한 에러 개수들의 합이 기준 개수보다 큰 위험 에러 개수인 경우 상기 위험 에러 개수에 상응하는 어드레스 그룹(RA1~RA4)에 포함되는 예비 불량 행 어드레스들의 전체에 대한 포스트 패키지 리페어 동작을 수행할 수 있다. 즉, 상기 조건을 만족하는 경우, 에러 개수가 0인 행 어드레스(RA3)에 대해서도 불량 발생을 방지하기 위해 포스트 패키지 리페어 동작을 수행할 수 있다.
도 15에서 AETb는 에러 속성(ATT1)을 결정하기 전의 누적 에러 테이블을 나타내고 AETa는 에러 속성(ATT1)을 결정한 후의 누적 에러 테이블을 나타낸다.
일 실시예에서, 휘발성 메모리 장치의 하나의 메인 워드라인에 상응하는 복수의 서브 워드라인들의 행 어드레스들 중에서 상기 예비 불량 행 어드레스들의 개수가 기준 개수보다 큰 경우 상기 하나의 메인 워드라인에 상응하는 복수의 서브 워드라인들을 포함하는 상기 어드레스 그룹에 대하여 메인 어드레스 에러 속성을 결정할 수 있다. 도 14 및 15의 예에서, 예비 불량 행 어드레스들의 개수는 3에 해당하고, 상기 기준 개수가 2인 경우에 해당할 수 있다.
다른 실시예에서, 복수의 서브 워드라인들의 행 어드레스들에 상응하는 정정 가능한 에러 개수들의 합이 기준 에러 개수보다 큰 경우, 상기 하나의 메인 워드라인에 상응하는 복수의 서브 워드라인들을 포함하는 상기 어드레스 그룹에 대하여 메인 어드레스 에러 속성을 결정할 수 있다. 도 14 및 15의 예에서, 정정 가능한 에러 개수들의 합은 8이고, 상기 기준 에러 개수가 7인 경우에 해당할 수 있다.
도 16은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 누적 에러 테이블의 일 실시예를 나타내는 도면이다.
일 실시예에서, 예비 불량 행 어드레스들의 각각에 대하여 정정 가능한 에러가 발생한 예비 불량 열 어드레스들을 누적 에러 테이블(AET)에 추가적인 누적 에러 정보(AEI)로서 저장할 수 있다.
결과적으로, 도 7의 누적 에러 테이블(AET1)과 비교하여, 도 16의 누적 에러 테이블(AET)은 예비 불량 행 어드레스들의 각각에 대한 예비 불량 열 어드레스들(PFCADD)(CAa~CAk)을 추가적으로 포함할 수 있다.
이 경우, 하나의 예비 불량 열 어드레스를 포함하는 예비 불량 행 어드레스들의 개수가 기준 에러 개수 이상인 경우 상기 하나의 예비 불량 열 어드레스에 대한 열 에러 속성을 결정할 수 있다.
도 16의 예에서, 하나의 예비 불량 열 어드레스(CAb)를 포함하는 예비 불량 행 어드레스들(RAa, RAc, Rad, RAf)의 개수는 4이고, 만약 상기 기준 에러 개수가 3이라면, 예비 불량 열 어드레스(CAb)에 대해 열 에러 속성을 결정할 수 있다.
이와 같이, 열 에러 속성으로 결정된 상기 하나의 예비 불량 열 어드레스(CAb)에 대해서 포스트 패키지 리페어 동작을 수행할 수 있다.
도 17 및 18에는 이와 같은 런타임 컬럼 리페어 동작에 관한 실시예가 도시되어 있다.
도 17은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 나타내는 순서도이고, 도 18은 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법에 의한 컬럼 리페어를 나타내는 도면이다.
도 17을 참조하면, 누적 에러 정보(AEI)를 갱신한다(S31). 전술한 패트롤 독출 동작이 한번 수행될 때마다 누적 에러 정보(AEI)가 갱신될 수 있다.
누적 에러 정보(AEI)에 포함된 각각의 예비 불량 열 어드레스를 포함하는 예비 불량 행 어드레스들의 개수(PFRN)가 기준 에러 개수(RN2) 이상인지를 판단한다(S32). 적어도 하나의 예비 불량 열 어드레스에 대하여 PFRN이 RN2 이상인 경우(S32: YES). 기준 에러 개수(RN1)보다 큰 에러 개수(EN)를 갖는 모든 예비 불량 열 어드레스들에 대하여 컬럼 단위로 포스트 패키지 리페어 동작을 수행한다(S33). 모든 예비 불량 열 어드레스들에 대하여 PFRN이 RN2 이상이 아닌 경우(S32: NO), 하나의 패트롤 독출 동작이 수행되어 누적 에러 정보(AEI)가 갱신된 후 다시 포스트 패키지 리페어 동작의 수행 여부를 결정할 수 있다.
이러한 일련의 동작들은 비휘발성 메모리 장치의 파워가 오프되기 전까지(S34: NO) 반복적으로 수행될 수 있다. 비휘발성 메모리 장치의 파워가 오프되는 경우(S34: YES), 누적 에러 정보(AEI)를 비휘발성 메모리에 저장하고(S35) 파워 오프 과정을 수행한다. 비휘발성 메모리에 저장된 누적 에러 정보(AEI)는 휘발성 메모리 장치가 다시 파워 온될 때 누적 에러 테이블(AET)에 로딩되어 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 연속성을 가지고 수행할 수 있다.
도 16의 누적 에러 테이블(AET)인 경우에 대하여 도 17의 방법을 적용하여 컬럼 단위의 포스트 패키지 리페어 동작을 수행하는 예가 도 18에 도시되어 있다.
도 19는 본 발명의 실시예들에 따른 휘발성 메모리 장치의 리페어 제어 방법을 위한 누적 에러 테이블의 일 실시예를 나타내는 도면이다.
도 19를 참조하면, 이전의 패트롤 독출 동작에 기초하여 이전의 누적 에러 정보를 누적 에러 테이블에 저장하고, 현재의 패트롤 독출 동작에 기초하여 현재의 누적 에러 정보를 누적 에러 테이블에 저장할 수 있다.
도 19에서, 인덱스(INX) 0은 이전의 누적 에러 정보를 나타내고 인덱스(INX) 1은 현재의 누적 에러 정보를 나타낸다. 예비 불량 행 어드레스(RAa)는 현재의 패트롤 독출 동작의 수행 결과 예비 불량 열 어드세스(CAc)에 상응하는 하나의 에러가 증가한 것을 나타낸다.
반면에 예비 불량 행 어드레스(RAb)는 현재의 패트롤 독출 동작의 수행 결과 예비 불량 열 어드세스(CAe)에 상응하는 하나의 에러가 감소한 것을 나타낸다. 이와 같이, 상기 이전의 누적 에러 정보 및 상기 현재의 누적 에러 정보를 비교하고, 상기 비교 결과에 기초하여 상기 이전의 누적 에러 정보에는 포함되고 상기 현재의 누적 에러 정보에는 포함되지 않은 예비 불량 셀의 위치 정보를 결정하고, 도 20을 참조하여 설명하는 것과 같은 테스트를 수행할 수 있다.
도 20은 도 19의 누적 에러 테이블을 이용한 메모리 셀의 불량 결정 방법을 나타내는 도면이다.
도 20을 참조하면, 예비 불량 열 어드세스(CAe)에 상응하는 예비 불량 셀에 기입 비트 및 기입 비트의 반전 데이터를 각각 기입하고 독출하여 예비 불량 셀에 대한 불량 여부를 결정할 수 있다.
예를 들어, 기입 비트 및 기입 비트의 모두에 대해서 항상 0의 값이 독출되는 경우에는 상기 예비 불량 셀은 항상 0의 값을 출력하는(0-stucked) 불량 셀로 결정할 수 있다. 반면에, 기입 비트 및 기입 비트의 모두에 대해서 항상 1의 값이 독출되는 경우에는 상기 예비 불량 셀은 항상 1의 값을 출력하는(1-stucked) 불량 셀로 결정할 수 있다. 그 밖의 경우에는 상기 예비 불량 셀의 불량 여부를 판별할 수 없다.
도 21 및 22는 본 발명의 실시예들에 따른 누적 에러 정보를 이용한 불량 예방 방법을 나타내는 도면들이다.
도 21 및 22를 참조하면, 불량의 발생을 방지하기 위해서, 누적 에러 테이블에 포함되는 예비 불량 행 어드레스들의 적어도 일부에 대하여, 외부 장치로부터 제공되는 기입 데이터를 예비 불량 행 어드레스(PFADD)(RAi)에 기입하는 액세스 기입 동작(NWR)을 수행하는 경우 예비 불량 행 어드레스(RAi)에 상응하는 레플리카 행 어드레스(RRAi)에 기입 데이터를 중복하여 기입하는 레플리카 기입 동작(RWR)을 수행할 수 있다(S41).
노말 독출 동작(NRD)을 수행하여(S42) 예비 불량 행 어드레스(RAi)로부터 독출된 독출 데이터가 정정 불가능한 에러를 포함하는 경우(S43: NO), 레플리카 독출 동작(RRD)을 수행하여(S45) 레플리카 행 어드레스(RRAi)로부터 독출 데이터를 독출할 수 있다. 레플리카 행 어드레스(RRAi)로부터의 독출 데이터 역시 정정 불가능한 경우(S45: NO) 최종적인 불량을 결정한다(S46).
이와 같은, 레플리카 기입 동작(RWD) 및 레플리카 독출 동작(RRD)을 통하여 휘발성 메모리 장치의 불량을 더욱 예방하여 휘발성 메모리 장치의 신뢰성을 향상하고 포스트 패키지 리페어 동작을 통해 수명을 연장할 수 있다.
도 23은 본 발명의 실시예들에 따른 스토리지 장치를 포함하는 시스템을 나타내는 블록도이다.
도 23을 참조하면, 시스템(1000)은 호스트 장치(2000) 및 스토리지 장치(3000)를 포함한다. 예를 들어, 스토리지 장치(3000)는 임베디드 멀티미디어 카드(eMMC, embedded multimedia card), SSD(solid state drive) 장치일 수 있다.
호스트 장치(2000)는 스토리지 장치(3000)의 데이터 처리 동작, 예를 들어, 데이터 독출 동작 또는 데이터 기입 동작 등을 제어할 수 있다. 상기 데이터 처리 동작은 싱글 데이터 레이트(SDR, single data rate) 또는 더블 데이터 레이트(DDR, double data rate)로 수행될 수 있다.
호스트 장치(2000)는 씨피유(CPU, central processing unit), 프로세서, 마이크로프로세서 (microprocessor) 또는 애플리케이션 프로세서(application processor) 등과 같이 데이터를 처리할 수 있는 데이터 처리 장치일 수 있고, 상기 데이터 처리 장치(2000) 및 스토리지 장치(3000)는 전자 장치에 내장(embedded) 또는 구현될 수 있다.
스토리지 장치(3000)는 호스트 장치(2000)와 데이터 통신을 위해 접속 수단들, 예컨대, 패드들(pads), 핀들(pins), 버스(bus), 또는 통신 라인들을 통하여 전기적으로 서로 접속될 수 있다.
호스트 장치(2000)는 버스(1320)를 통하여 연결된 프로세서(CPU)(2100), 메모리(MEM)(2200) 및 호스트 컨트롤러 인터페이스(HCI)(2300)를 포함할 수 있다. 프로세서(2100)에 의해 운영 체제(OS) 및/또는 호스트 펌웨어(FW)(2110)가 구동될 수 있다.
프로세서(2100)는 코맨드(CMD)의 생성, 응답(RES)의 해석, 스토리지 장치(3000)의 레지스터, 예를 들어, Extended(EXT)_CSD 레지스터(미도시)에 저장된 데이터 및/또는 데이터 처리 동작을 제어할 수 있는 하드웨어를 의미할 수 있다. 프로세서(2100)는 운영 체제/호스트 펌웨어(2110)를 구동하여 상기와 같은 동작들을 수행할 수 있다.
호스트 컨트롤러 인터페이스(2300)는 스토리지 장치(3000)와 인터페이스하기 위한 구성요소이다.
스토리지 장치(3000)는 복수의 비휘발성 메모리 장치들(NVM)(3100) 및 스토리지 컨트롤러(3200)를 포함한다.
비휘발성 메모리 장치들(3100)은 옵션적으로 외부 고전압(VPP)을 제공받도록 구현될 수 있다. 비휘발성 메모리 장치들(3100)은 플래시 메모리, 에프램(FRAM, ferroelectric random access memory), 피램(PRAM, phase-change random access memory), 엠램(MRAM, magnetic random access memory) 등으로 구현될 수 있다.
스토리지 컨트롤러(3200)는 복수의 채널들(CH1~CH4)을 통하여 비휘발성 메모리 장치들(1100)에 연결된다. 스토리지 컨트롤러(200)는 버스(1330)를 통하여 연결된 적어도 하나의 프로세서(3210), 에러 정정 회로(ECC)(3220), 호스트 인터페이스(3230), 휘발성 메모리(3240), 비휘발성 메모리 인터페이스(3250) 및 태스크 큐(TQ)(3260)를 포함한다.
휘발성 메모리(3240)는 스토리지 컨트롤러(3200)의 구동에 필요한 데이터를 임시로 저장할 수 있다. 도 23에서 버퍼 메모리(3240)는 스토리지 컨트롤러(3200)의 내부에 포함되는 것으로 도시되어 있지만 반드시 여기에 제한되지 않을 것이다.
프로세서(3210)는 스토리지 컨트롤러(3200)의 전반적인 동작을 제어하도록 구성된다. 예를 들면, 프로세서(3210)는 플래시 변환 계층(FTL, Flash Translation Layer) 등을 포함하는 펌웨어를 운용하도록 구성된다. 플래시 변환 계층(FTL)은 다양한 기능들을 수행할 수 있다. 예를 들면, 플래시 변환 계층(FTL)은 어드레스 맵핑 동작, 읽기 교정 동작, 에러 정정 동작, 등을 수행하는 다양한 계층들을 포함할 수 있다.
프로세서(3210)는 휘발성 메모리(3240)을 제어하는 기능을 가질 수 있고, 이 경우 전술한 리페어 매니저(3211) 및 누적 에러 테이블(AET)은 프로세서(3210) 내에 구현될 수 있다. 리페어 매니저(3211)는 하드웨어, 소프트웨어 또는 이들의 조합의 형태로 프로세서(3210) 내에 구현될 수 있다.
태스크 큐(3260)는 호스트 장치(2000)로부터 제공되는 독출 태스크, 기입 태스크와 같은 태스크들 및 상기 태스크들의 상태 정보를 저장한다.
호스트 인터페이스(3230)는 호스트 장치(2000)와의 인터페이스 기능을 제공할 수 있다. 비휘발성 메모리 인터페이스(250)는 비휘발성 메모리 장치(3100)와의 인터페이스 기능을 제공할 수 있다.
호스트 장치(2000)와 스토리지 장치(3000)는 버스(1310)를 통하여 상호 연결될 수 있다.
도 24는 본 발명의 실시예들에 따른 스토리지 장치에 포함되는 휘발성 메모리 장치의 리페어 제어 방법을 나타내는 순서도이다.
도 23 및 24를 참조하면, 프로세서(3210)는 리페어 정보를 로드하여 누적 에러 테이블(AET)에 저장할 수 있다(S51). 리페어 정보는 전술한 바와 같은 누적 에러 정보(AEI)를 포함할 수 있다. 전술한 바와 같이, 리페어 매니저(3211)는 패트롤 독출 동작(PROPR)을 반복적으로 수행하여(S52) 누적 에러 정보(AEI)를 갱신하고(S53), 누적 에러 정보(AEI)에 기초하여 전술한 바와 같은 에러 속성(ATT)을 결정할 수 있다(S54). 리페어 매니저(3211)는 누적 에러 정보(AEI) 및 에러 속성(ATT)에 기초하여 휘발성 메모리(3240)에 대한 런타임 리페어 동작, 즉 포스트 패키지 리페어(PPR) 동작을 수행할 수 있다(S55). 스토리지 장치가 파워 오프되는 경우, 또는 파워 오프되지 않더라도 주기적으로 누적 에러 정보(AEI)는 비휘발성 메모리 장치(3100)으로 백업 또는 플러쉬될 수 있다(S56).
본 발명의 실시예들은 리페어가 요구되는 휘발성 메모리 장치 및 이를 포함하는 장치와 시스템에 유용하게 이용될 수 있다. 특히 본 발명의 실시예들은 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive; SSD), 임베디드 멀티미디어 카드(eMMC, embedded multimedia card), 유니버셜 플래시 스토리지(UFS, universal flash storage), 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular phone), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things;) 기기, IoE(internet of everything:) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 휘발성 메모리 장치로부터 독출되는 독출 데이터의 에러들의 위치 정보를 검출하기 위해 반복적으로 패트롤 독출 동작을 수행하는 단계;
    상기 반복적으로 수행되는 패트롤 독출 동작에 기초하여 상기 에러들의 위치 정보를 누적하여 누적 에러 정보를 발생하는 단계;
    상기 누적 에러 정보에 기초하여 상기 에러들 및 상기 휘발성 메모리 장치의 구조 사이의 상관관계를 나타내는 에러 속성을 결정하는 단계; 및
    상기 누적 에러 정보 및 상기 에러 속성에 기초하여 상기 휘발성 메모리 장치에 대한 런타임 리페어 동작을 수행하는 단계를 포함하는 휘발성 메모리 장치의 리페어 제어 방법.
  2. 제1 항에 있어서,
    상기 누적 에러 정보를 발생하는 단계는,
    상기 휘발성 메모리 장치의 전체 행 어드레스들 중에서 정정 가능한 에러가 발생한 예비 불량 행 어드레스들 및 상기 예비 불량 행 어드레스들에 각각 상응하는 정정 가능한 에러 개수들을 누적 에러 테이블에 저장하는 단계를 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  3. 제2 항에 있어서,
    상기 런타임 리페어 동작을 수행하는 단계는,
    상기 정정 가능한 에러 개수가 기준 에러 개수 이상인 상기 예비 불량 행 어드레스에 대한 포스트 패키지 리페어 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  4. 제2 항에 있어서,
    상기 패트롤 독출 동작을 수행하는 단계는,
    상기 전체 행 어드레스들에 대하여 순차적으로 풀 스캐닝 독출 동작을 수행하는 단계; 및
    상기 예비 불량 행 어드레스들에 대하여 순차적으로 딥 스캐닝 독출 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  5. 제4 항에 있어서,
    상기 풀 스캐닝 독출 동작이 1회 수행되는 동안에 상기 딥 스캐닝 독출 동작을 2회 이상 수행하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  6. 제4 항에 있어서,
    상기 누적 에러 정보를 발생하는 단계는,
    상기 에러 속성에 기초하여 상기 상관관계가 동일한 행 어드레스들을 포함하는 어드레스 그룹을 상기 예비 불량 행 어드레스들로서 상기 누적 에러 테이블에 저장하는 단계를 더 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  7. 제5 항에 있어서,
    상기 런타임 리페어 동작을 수행하는 단계는,
    상기 어드레스 그룹의 상기 정정 가능한 에러 개수들의 합이 기준 개수보다 큰 위험 에러 개수인 경우 상기 위험 에러 개수에 상응하는 상기 어드레스 그룹에 포함되는 예비 불량 행 어드레스들의 전체에 대한 포스트 패키지 리페어 동작을 수행하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  8. 제4 항에 있어서,
    상기 에러 속성을 결정하는 단계는,
    상기 휘발성 메모리 장치의 하나의 메인 워드라인에 상응하는 복수의 서브 워드라인들의 행 어드레스들 중에서 상기 예비 불량 행 어드레스들의 개수가 기준 개수보다 큰 경우 상기 하나의 메인 워드라인에 상응하는 복수의 서브 워드라인들을 포함하는 상기 어드레스 그룹에 대하여 메인 어드레스 에러 속성을 결정하는 단계를 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  9. 제4 항에 있어서,
    상기 에러 속성을 결정하는 단계는,
    상기 복수의 서브 워드라인들의 행 어드레스들에 상응하는 정정 가능한 에러 개수들의 합이 기준 에러 개수보다 큰 경우, 상기 하나의 메인 워드라인에 상응하는 복수의 서브 워드라인들을 포함하는 상기 어드레스 그룹에 대하여 메인 어드레스 에러 속성을 결정하는 단계를 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  10. 제2 항에 있어서,
    상기 누적 에러 정보를 발생하는 단계는,
    상기 예비 불량 행 어드레스들의 각각에 대하여 상기 정정 가능한 에러가 발생한 예비 불량 열 어드레스들을 상기 누적 에러 테이블에 저장하는 단계를 더 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  11. 제10 항에 있어서,
    상기 에러 속성을 결정하는 단계는,
    하나의 예비 불량 열 어드레스를 포함하는 상기 예비 불량 행 어드레스들의 개수가 기준 개수 이상인 경우 상기 하나의 예비 불량 열 어드레스에 대한 열 에러 속성을 결정하는 단계를 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  12. 제11 항에 있어서,
    상기 런타임 리페어 동작을 수행하는 단계는,
    상기 열 에러 속성으로 결정된 상기 하나의 예비 불량 열 어드레스에 대한 포스트 패키지 리페어 동작을 수행하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  13. 제2 항에 있어서,
    상기 누적 에러 테이블에 포함되는 상기 예비 불량 행 어드레스들의 적어도 일부에 대하여, 외부 장치로부터 제공되는 기입 데이터를 상기 예비 불량 행 어드레스에 기입하는 액세스 기입 동작을 수행하는 경우 상기 예비 불량 행 어드레스에 상응하는 레플리카 행 어드레스에 상기 기입 데이터를 중복하여 기입하는 레플리카 기입 동작을 수행하는 단계; 및
    상기 예비 불량 행 어드레스로부터 독출된 독출 데이터가 정정 불가능한 에러를 포함하는 경우 상기 레플리카 행 어드레스로부터 독출된 독출 데이터를 상기 외부 장치로 제공하는 단계를 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  14. 제13 항에 있어서,
    상기 런타임 리페어 동작을 수행하는 단계는,
    상기 정정 불가능한 에러를 포함하는 상기 예비 불량 행 어드레스 대한 포스트 패키지 리페어 동작을 수행하는 단계; 및
    상기 포스트 패키지 리페어 동작에 의해 대체된 리던던시 워드라인에 상기 레플리카 행 어드레스로부터 독출된 독출 데이터를 기입하는 단계를 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  15. 제1 항에 있어서,
    상기 휘발성 메모리 장치가 파워 오프되는 경우 상기 누적 에러 정보 및 상기 에러 속성을 비휘발성 메모리 장치에 저장하는 단계; 및
    상기 휘발성 메모리 장치가 다시 턴온되는 경우 상기 비휘발성 메모리 장치 저장된 상기 누적 에러 정보 및 상기 에러 속성을 로딩하는 단계를 더 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  16. 제1 항에 있어서,
    상기 누적 에러 정보를 발생하는 단계는,
    이전의 패트롤 독출 동작에 기초하여 상기 휘발성 메모리 장치의 전체 행 어드레스들 중에서 정정 가능한 에러가 발생한 예비 불량 행 어드레스들 및 상기 예비 불량 행 어드레스들의 각각에 대하여 상기 정정 가능한 에러가 발생한 예비 불량 열 어드레스들을 포함하는 이전의 누적 에러 정보를 누적 에러 테이블에 저장하는 단계; 및
    현재의 패트롤 독출 동작에 기초하여 상기 예비 불량 행 어드레스들 및 상기 예비 불량 열 어드레스들을 포함하는 현재의 누적 에러 정보를 상기 누적 에러 테이블에 저장하는 단계를 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  17. 제16 항에 있어서,
    상기 이전의 누적 에러 정보 및 상기 현재의 누적 에러 정보를 비교하는 단계;
    상기 비교 결과에 기초하여 상기 이전의 누적 에러 정보에는 포함되고 상기 현재의 누적 에러 정보에는 포함되지 않은 예비 불량 셀의 위치 정보를 결정하는 단계; 및
    상기 예비 불량 셀에 기입 데이터 및 상기 기입 데이터의 반전 데이터를 각각 기입하고 독출하여 상기 예비 불량 셀에 대한 불량 여부를 결정하는 단계를 더 포함하는 것을 특징으로 하는 휘발성 메모리 장치의 리페어 제어 방법.
  18. 스토리지 장치에 포함되는 휘발성 메모리 장치의 리페어 제어 방법으로서,
    상기 스토리지 장치의 유휴 모드(idle mode) 동안 상기 휘발성 메모리 장치로부터 독출된 독출 데이터의 에러들의 위치 정보를 검출하기 위해 반복적으로 패트롤 독출 동작을 수행하는 단계;
    상기 반복적으로 수행되는 패트롤 독출 동작에 기초하여 상기 에러들의 위치 정보를 누적하여 상기 휘발성 메모리 장치의 전체 행 어드레스들 중에서 정정 가능한 에러가 발생한 예비 불량 행 어드레스들 및 상기 예비 불량 행 어드레스들에 각각 상응하는 정정 가능한 에러 개수들을 누적 에러 정보로서 누적 에러 테이블에 저장하는 단계;
    상기 누적 에러 정보에 기초하여 상기 에러들 및 상기 휘발성 메모리 장치의 구조 사이의 상관관계를 나타내는 에러 속성을 결정하는 단계; 및
    상기 누적 에러 정보 및 상기 에러 속성에 기초하여 상기 휘발성 메모리 장치에 대한 포스트 패키지 리페어 동작을 수행하는 단계를 포함하는 휘발성 메모리 장치의 리페어 제어 방법.
  19. 비휘발성 메모리 장치; 및
    휘발성 메모리 장치 및 상기 휘발성 메모리 장치에 대한 액세스를 제어하는 메모리 콘트롤러를 포함하고, 상기 비휘발성 메모리 장치에 대한 액세스를 제어하는 스토리지 콘트롤러를 포함하고,
    상기 메모리 콘트롤러 또는 상기 휘발성 메모리 장치는 상기 휘발성 메모리 장치의 액세스 데이터에 대한 에러 검출 및 정정 동작을 수행하는 ECC 엔진을 포함하고,
    상기 메모리 콘트롤러는 상기 휘발성 메모리 장치로부터 독출된 독출 데이터를 외부 장치로 제공하기 위한 액세스 독출 동작과 관계 없이 상기 독출 데이터의 에러들의 위치 정보를 검출하기 위해 반복적으로 패트롤 독출 동작을 수행하고, 상기 반복적으로 수행되는 패트롤 독출 동작에 기초하여 상기 에러들의 위치 정보를 누적하여 누적 에러 정보를 발생하고, 상기 누적 에러 정보에 기초하여 상기 에러들 및 상기 휘발성 메모리 장치의 구조 사이의 상관관계를 나타내는 에러 속성을 결정하고, 상기 누적 에러 정보 및 상기 에러 속성에 기초하여 상기 휘발성 메모리 장치에 대한 런타임 리페어 동작을 수행하는 스토리지 장치.
  20. 제19 항에 있어서,
    상기 패트롤 독출 동작은 상기 휘발성 메모리 장치로부터 독출된 독출 데이터를 외부 장치로 제공하기 위한 액세스 독출 동작과 관계 없이 상기 스토리지 장치의 유휴 구간 동안에 수행되는 것을 특징으로 하는 스토리지 장치.
KR1020190088724A 2019-07-23 2019-07-23 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치 KR102669545B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020190088724A KR102669545B1 (ko) 2019-07-23 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치
US16/790,256 US11301317B2 (en) 2019-07-23 2020-02-13 Method of controlling repair of volatile memory device and storage device performing the same
EP20164785.6A EP3770764B1 (en) 2019-07-23 2020-03-23 Method of controlling repair of volatile memory device and storage device performing the same
SG10202003179UA SG10202003179UA (en) 2019-07-23 2020-04-07 Method of controlling repair of volatile memory device and storage device performing the same
CN202010401661.0A CN112306737A (zh) 2019-07-23 2020-05-13 控制易失性存储器装置的修复的方法和存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190088724A KR102669545B1 (ko) 2019-07-23 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치

Publications (2)

Publication Number Publication Date
KR20210011610A true KR20210011610A (ko) 2021-02-02
KR102669545B1 KR102669545B1 (ko) 2024-05-27

Family

ID=

Also Published As

Publication number Publication date
EP3770764A1 (en) 2021-01-27
CN112306737A (zh) 2021-02-02
US11301317B2 (en) 2022-04-12
US20210026728A1 (en) 2021-01-28
EP3770764B1 (en) 2023-09-06
SG10202003179UA (en) 2021-02-25

Similar Documents

Publication Publication Date Title
US11593199B2 (en) Semiconductor memory devices, memory systems including the same and methods of operating memory systems
US10847244B2 (en) Storage device including repairable volatile memory and method of operating the same
EP3770764B1 (en) Method of controlling repair of volatile memory device and storage device performing the same
US9087614B2 (en) Memory modules and memory systems
US11302414B2 (en) Storage device that performs runtime repair operation based on accumulated error information and operation method thereof
KR20190060527A (ko) 반도체 메모리 장치 및 그 동작 방법
US20130318418A1 (en) Adaptive error correction for phase change memory
CN112447253A (zh) 半导体存储器装置和控制半导体存储器装置的修复的方法
US11650752B2 (en) Computing system and operating method thereof
US11309054B2 (en) Method of controlling repair of volatile memory device and storage device performing the same
US20070294588A1 (en) Performing a diagnostic on a block of memory associated with a correctable read error
CN113050883A (zh) 存储器装置、包括存储器装置的存储器系统及其操作方法
KR20210041655A (ko) 메모리 칩, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
KR102468710B1 (ko) 메모리 장치와 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 동작방법
US11908535B2 (en) Memory device and memory controller and storage device including the memory device and memory controller
KR102669545B1 (ko) 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치
US11487613B2 (en) Method for accessing semiconductor memory module
KR20150068679A (ko) 메모리 시스템 및 이를 포함하는 컴퓨팅 시스템
KR102674032B1 (ko) 리페어 동작을 수행하는 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
US20230229553A1 (en) Zero voltage program state detection
CN114627939A (zh) 存储器控制器以及包括存储器控制器的存储装置
CN118053467A (zh) 存储器件、存储器件的操作方法和存储系统

Legal Events

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