KR20190052754A - 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 - Google Patents

적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20190052754A
KR20190052754A KR1020170148431A KR20170148431A KR20190052754A KR 20190052754 A KR20190052754 A KR 20190052754A KR 1020170148431 A KR1020170148431 A KR 1020170148431A KR 20170148431 A KR20170148431 A KR 20170148431A KR 20190052754 A KR20190052754 A KR 20190052754A
Authority
KR
South Korea
Prior art keywords
data
ecc
write data
parity
memory
Prior art date
Application number
KR1020170148431A
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 KR1020170148431A priority Critical patent/KR20190052754A/ko
Priority to US16/104,497 priority patent/US20190140668A1/en
Priority to CN201811267790.4A priority patent/CN109767806A/zh
Publication of KR20190052754A publication Critical patent/KR20190052754A/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G11C29/26Accessing multiple arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • 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/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • 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

Landscapes

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

Abstract

반도체 메모리 장치는 메모리 셀 어레이 및 상기 메모리 셀 어레이에 저장되는 기입 데이터에 대하여 에러 체크 및 정정(ECC) 인코딩을 수행하고, 상기 메모리 셀 어레이로부터의 독출 데이터에 대하여 ECC 디코딩을 수행하는 ECC 회로를 포함한다. 상기 반도체 메모리 장치는 복수의 온-다이 ECC 레벨들 중에서 상기 기입 데이터의 중요도에 따라 결정되는 상기 기입 데이터에 상응하는 온-다이 ECC 레벨에 기초하여 상기 ECC 인코딩 및 상기 ECC 디코딩을 수행한다. 기입 데이터의 중요도에 따라서 서로 다른 온-다이 ECC 레벨을 적용함으로써 반도체 메모리 장치의 사이즈를 감소하고 온-다이 ECC 효율을 향상시킬 수 있다

Description

적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템{Semiconductor memory device and memory system including the same for adaptive error check and correction}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 온-다이 ECC 제어 방법에 관한 것이다.
반도체 메모리 장치는 플래시 메모리 장치와 같은 불휘발성 메모리 장치와 DRAM과 같은 휘발성 메모리 장치로 구분될 수 있다. DRAM과 같은 휘발성 메모리 장치는 가격이 비교적 저렴하기 때문에 시스템 메모리와 같은 대용량 데이터를 저장하는데 사용되고 있다. 또한 DRAM과 같은 휘발성 반도체 메모리 장치에서는 집적도를 높이기 위하여 공정 스케일을 축소시키고 있다. 공정 스케일의 축소에 따라 비트 에러 비율(bit error rate)이 급격하게 증가하고 수율이 낮아질 것으로 예상된다. 따라서 반도체 메모리 장치의 신뢰성을 높일 수 있는 방안이 필요하다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은, 적응적으로 온-다이 ECC를 수행할 수 있는 반도체 메모리 장치를 제공하는 것이다.
또한 본 발명의 일 목적은, 적응적으로 온-다이 ECC를 수행할 수 있는 반도체 메모리 장치를 포함하는 메모리 시스템을 제공하는 것이다.
또한 본 발명의 일 목적은, 적응적으로 온-다이 ECC를 수행할 수 있는 반도체 메모리 장치의 온-다이 ECC 제어 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 반도체 메모리 장치는 메모리 셀 어레이 및 상기 메모리 셀 어레이에 저장되는 기입 데이터에 대하여 에러 체크 및 정정 (ECC) 인코딩을 수행하고, 상기 메모리 셀 어레이로부터의 독출 데이터에 대하여 ECC 디코딩을 수행하는 ECC 회로를 포함한다. 상기 반도체 메모리 장치는 복수의 온-다이 ECC 레벨들 중에서 상기 기입 데이터의 중요도에 따라 결정되는 상기 기입 데이터에 상응하는 온-다이 ECC 레벨에 기초하여 상기 ECC 인코딩 및 상기 ECC 디코딩을 수행한다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 메모리 시스템은 적어도 하나의 반도체 메모리 장치 및 상기 적어도 하나의 반도체 메모리 장치를 제어하는 메모리 콘트롤러를 포함한다. 상기 메모리 콘트롤러는 복수의 온-다이 에러 체크 및 정정 (ECC) 레벨들 중에서 기입 데이터의 중요도에 따라서 상기 기입 데이터에 상응하는 온-다이 ECC 레벨을 결정한다. 상기 반도체 메모리 장치는 상기 기입 데이터에 상응하는 온-다이 ECC 레벨에 기초하여 상기 ECC 인코딩 및 상기 ECC 디코딩을 수행한다.
상기 일 목적을 달성하기 위해, 본 발명의 도체 메모리 장치의 온-다이 ECC 제어 방법에 따라서, 메모리 콘트롤러에서, 반도체 메모리 장치의 메모리 셀 어레이에 저장되는 기입 데이터의 중요도에 따라서 복수의 온-다이 에러 체크 및 정정(ECC) 레벨들 중에서 상기 기입 데이터에 상응하는 온-다이 ECC 레벨을 결정한다. 상기 반도체 메모리 장치에서, 상기 기입 데이터에 상응하는 상기 온-다이 ECC 레벨에 기초하여 ECC 인코딩 및 ECC 디코딩을 수행한다.
본 발명의 실시예들에 따른 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 온-다이 ECC 제어 방법은, 기입 데이터의 중요도에 따라서 서로 다른 온-다이 ECC 레벨을 적용함으로써 반도체 메모리 장치의 사이즈를 감소하고 온-다이 ECC 효율을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 반도체 메모리 장치의 온-다이 ECC 제어 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 데이터 비트들과 패리티 비트들에 따른 온-다이 ECC 레벨들을 설명하기 위한 도면이다.
도 4는 복수의 온-다이 ECC 레벨들의 설정에 관한 일 실시예를 나타내는 도면이다.
도 5는 본 발명의 실시예들에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 6은 도 5의 반도체 메모리 장치의 일부 구성을 나타내는 도면이다.
도 7 및 8은 본 발명의 실시예들에 따라서 복수의 온-다이 ECC 레벨을 구현하기 위한 메모리 셀 어레이의 고정적인 구성을 나타내는 도면들이다.
도 9는 본 발명의 실시예들에 따라서 복수의 온-다이 ECC 레벨을 구현하기 위한 가변적인 구성을 나타내는 도면이다.
도 10은 도 5의 반도체 메모리 장치의 일부 구성을 나타내는 도면이다.
도 11 및 12는 본 발명의 실시예들에 따라서 복수의 온-다이 ECC 레벨을 구현하기 위한 메모리 셀 어레이의 고정적인 구성을 나타내는 도면들이다.
도 13은 본 발명의 실시예들에 따라서 복수의 온-다이 ECC 레벨을 구현하기 위한 가변적인 구성을 나타내는 도면이다.
도 14는 본 발명의 실시예들에 따른 반도체 메모리 장치에 포함되는 ECC 회로의 일 실시예를 나타내는 블록도이다.
도 15는 도 14의 ECC 회로에 포함되는 ECC 엔진의 일 실시예를 나타내는 블록도이다.
도 16은 도 15의 ECC 엔진에 포함되는 패리티 생성기의 일 실시예를 나타내는 도면이다.
도 17은 도 14의 ECC 회로에 포함되는 데이터 정정기의 일 실시예를 나타내는 도면이다.
도 18 및 19는 본 발명의 실시예들에 따른 온-다이 ECC 제어 방법을 나타내는 순서도들이다.
도 20a 및 20b는 본 발명의 일 실시예에 따른 적층형 메모리 장치의 구조를 나타내는 도면이다.
도 21은 본 발명의 실시예들에 따른 메모리 장치를 모바일 시스템에 응용한 예를 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 반도체 메모리 장치의 온-다이 ECC 제어 방법을 나타내는 순서도이다.
메모리 콘트롤러에서, 반도체 메모리 장치의 메모리 셀 어레이에 저장되는 기입 데이터의 중요도에 따라서 복수의 온-다이 에러 체크 및 정정(ECC, error correction code 또는 error check and correction) 레벨들 중에서 상기 기입 데이터에 상응하는 온-다이 ECC 레벨을 결정한다(S100). 여기서 기입 데이터의 중요도는 기입 데이터의 유형에 따라 결정될 수 있다. 예를 들어, 운영 체제(OS, operating system)의 경우에는 에러 정정이 불가능한 경우 시스템에 치명적인 영향을 미치므로 상대적으로 높은 온-다이 ECC 레벨을 할당할 수 있다. 반면에 이미지 데이터와 같이 단순한 데이터의 경우에는 상대적으로 낮은 온-다이 ECC 레벨을 할당할 수 있다.
이와 같이, 상기 기입 데이터의 중요도가 높을수록 상기 온-다이 ECC 레벨이 높게 설정된다. 후술하는 바와 같이, 상기 온-다이 ECC 레벨이 높을수록 상기 기입 데이터의 비트 수에 대한 상기 기입 데이터에 상응하는 패리티 데이터의 비트 수의 비율이 높게 설정될 수 있다. 결과적으로 본 발명의 실시예들에 따라서, 데이터의 중요도가 높을수록 기입 데이터의 비트 수에 대한 패리티 데이터의 비트 수를 높게 설정하여 에러 정정의 확률을 증가시킬 수 있다.
상기 반도체 메모리 장치에서, 상기 기입 데이터에 상응하는 상기 온-다이 ECC 레벨에 기초하여 ECC 인코딩 및 ECC 디코딩을 수행한다(S200).
여기서 온-다이 ECC라 함은 메모리 콘트롤러 또는 호스트 장치에 의해 수행되는 시스템 레벨의 ECC와는 구별되는 것으로서, 반도체 메모리 장치의 내부에서 자체적으로 수행되는 ECC를 말한다. 온-다이 ECC 과정에서 발생되는 패리티 데이터는 상기 반도체 메모리 장치의 내부에서 발생되며 상기 반도체 메모리 장치의 외부로 제공되지 않는다.
상기 기입 데이터의 중요도에 따라서 서로 다른 온-다이 ECC 레벨을 적용하기 위해, 상기 메모리 셀 어레이에 포함되는 복수의 메모리 영역들 중 적어도 2개의 메모리 영역들은 데이터 영역의 사이즈와 패리티 영역의 비가 서로 다른 구성을 갖는다. 상기 데이터 영역은 상기 메모리 영역 중에서 상기 기입 데이터에 상응하는 패리티 데이터가 저장되는 영역을 나타낸다. 일 실시예에서, 상기 복수의 온-다이 ECC 레벨을 적용하기 위한 구성은 고정적일 수 있다. 다른 실시예에서, 상기 복수의 온-다이 ECC 레벨을 적용하기 위한 구성은 가변적일 수 있다.
이와 같이, 본 발명의 실시예들에 따른 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 온-다이 ECC 제어 방법은, 기입 데이터의 중요도에 따라서 서로 다른 온-다이 ECC 레벨을 적용함으로써 반도체 메모리 장치의 사이즈를 감소하고 온-다이 ECC 효율을 향상시킬 수 있다.
도 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일 수 있다. 다른 실시예에서, 반도체 메모리 장치(200)는 PRAM(Phase change Random Access Memory), RRAM(Resistive Random Access Memory), MRAM(Magnetic Random Access Memory), 및 FRAM(Ferroelectric Random Access Memory) 일 수 있다. 본 발명의 실시예들은 이러한 메모리들에 한정되지 않으며, 온-다이 ECC가 요구되는 임의의 메모리에 모두 적용될 수 있다.
메모리 콘트롤러(100)는 반도체 메모리 장치(200)에 클록 신호(CLK), 커맨드(CMD) 및 어드레스(ADDR)를 전송하고, 반도체 메모리 장치(200)와 메인 데이터(MD)를 주고받을 수 있다.
반도체 메모리 장치(200)는 메인 데이터(MD)가 저장되는 메모리 셀 어레이(300), 에러 체크 및 정정(ECC) 회로(400) 및 제어 로직 회로(210)를 포함할 수 있다. ECC 회로(400)는 메모리 셀 어레이(300)에 포함되는 복수의 뱅크 어레이들에 상응하는 복수의 ECC 엔진들을 포함할 수 있다.
메모리 시스템(20)은 호스트 장치와 PCI-E(Peripheral Component Interconnect-Express), ATA(Advanced Technology Attachment), SATA (Serial ATA), PATA(Parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 통신할 수 있다. 상기 호스트 장치는 메모리 콘트롤러(100)에 데이터의 기입을 요청할 때 기입 데이터의 중요도를 결정하여 통지할 수 있다. 기입 데이터의 중요도는 상기 호스트 장치의 시스템 관리 시나리오에 따라서 결정될 수 있다.
메모리 콘트롤러(100)는 호스트 장치로부터 제공되거나 메모리 콘트롤러(100)의 자체적인 메모리 관리 시나리오에 의해 결정된 데이터 중요도에 기초하여 기입 데이터에 상응하는 온-다이 ECC 레벨을 결정하는 ECC 할당기(ECC allocator)(ALT)(120)를 포함할 수 있다. 상기 기입 데이터에 상응하는 온-다이 ECC 레벨은 ECC 레벨 정보(LVINF)로서 반도체 메모리 장치(200)에 제공될 수 있다. 반도체 메모리 장치(200)는 ECC 레벨 정보(LVINF)에 따라서 상기 기입 데이터에 상응하는 온-다이 ECC 레벨에 상응하는 온-다이 ECC를 수행할 수 있다. 일 실시예에서 ECC 레벨 정보(LVINF)는 서로 다른 온-다이 ECC 레벨이 적용된 메모리 영역들의 어드레스로 표현될 수 있다. 예를 들어, 상기 어드레스는 뱅크 어레이를 특정하기 위한 뱅크 어드레스일 수 있다.
반도체 메모리 장치(200)는 복수의 온-다이 ECC 레벨들을 적용하기 위해서, 메모리 셀 어레이(300)의 복수의 메모리 영역들 중 적어도 2개의 메모리 영역들에 대하여, 상기 기입 데이터가 저장되는 데이터 영역의 사이즈와 상기 기입 데이터에 상응하는 패리티 데이터가 저장되는 패리티 영역의 사이즈의 비가 서로 다른 구성을 갖는다. 복수의 온-다이 ECC 레벨들을 적용하기 위한 상기 구성은 고정적(fixed)일 수 있고, 가변적(flexible)일 수도 있다. 상기 고정적인 구성 및 상기 가변적인 구성에 대해서는 후술한다.
일 실시예에서, 반도체 메모리 장치(200)는 복수의 온-다이 ECC 레벨들을 적용하기 위한 고정적인 구성을 가질 수 있고, 이 경우 반도체 메모리 장치(200)는, 상기 고정적인 구성에 관한 구성 정보(CNFINF)를 메모리 콘트롤러(100)에 제공하고, 메모리 콘트롤러(100)는 구성 정보(CNFINF)에 기초하여 상기 기입 데이터에 상응하는 어드레스, 예를 들어, 뱅크 어드레스를 결정할 수 있다.
다른 실시예에서, 반도체 메모리 장치(200)는 복수의 온-다이 ECC 레벨들을 적용하기 위한 가변적인 구성을 가질 수 있고, 이 경우 반도체 메모리 장치(200)는, 메모리 콘트롤러(100)로부터 제공되는 구성 정보(CNFINF)에 기초하여 상기 가변적인 구성을 설정하고, 메모리 콘트롤러(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 레벨을 적용하였다. 이 경우 온-다이 ECC 레벨을 비교적 높게 설정하면 온-다이 ECC를 위해 메모리 자원이 과도하게 낭비될 수 있으며 반도체 메모리 장치의 사이즈를 증가시키는 요인이 된다. 반면에 온-다이 ECC 레벨을 비교적 낮게 설정하면 에러 검출 및 정정 능력이 감소되어 반도체 메모리 장치의 성능이 저하될 수 있다.
본 발명의 실시예들에 따른 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 온-다이 ECC 제어 방법은, 기입 데이터의 중요도에 따라서 서로 다른 온-다이 ECC 레벨을 적용함으로써 반도체 메모리 장치의 사이즈를 감소하고 온-다이 ECC 효율을 향상시킬 수 있다.
도 4는 복수의 온-다이 ECC 레벨들의 설정에 관한 일 실시예를 나타내는 도면이다.
도 4를 참조하면, 반도체 메모리 장치의 메모리 셀 어레이는 메모리 영역들로서 복수의 뱅크 어레이들, 예를 들어, 제1 내지 제8 뱅크 어레이들(BANKA~BANKH)을 포함할 수 있다. 도 4에 표시된 (a, b)에서 a는 온-다이 ECC의 인코딩 및 디코딩의 단위가 되는 데이터 비트 수를 나타내고 b는 이에 상응하는 패리티 비트 수를 나타낸다. 도 4에는, 일 예로서, 제1 뱅크 어레이(BANKA)는 제1 온-다이 ECC 레벨((8, 5) SEC)로 설정되고, 제2 및 제3 뱅크 어레이들(BANKB, BANKC)은 상기 제1 온-다이 ECC 레벨((8, 5) SEC)보다 낮은 제2 온-다이 ECC 레벨((64, 8) SEC-DED)로 설정되고, 제4, 제5 및 제6 뱅크 어레이들(BANKD, BANKE, BANKF)은 제2 온-다이 ECC 레벨((64, 8) SEC-DED)보다 낮은 제3 온-다이 ECC 레벨((128, 8) SEC)로 설정되고, 제7 및 제8 뱅크 어레이들(BANKG, BANKH)은 제3 온-다이 ECC 레벨((128, 8) SEC)보다 낮은 제4 온-다이 ECC 레벨((256, 10) SEC-DED)로 설정되는 것을 보여준다.
도 4에 예시한 바와 같이, 운영 체제(OS, operating system)에는 제1 온-다이 ECC 레벨((8, 5)을 할당하고, 제1 그룹의 애플리케이션(APP1)에는 제2 온-다이 ECC 레벨((64, 8) SEC-DED)을 할당하고, 제2 그룹의 애플리케이션(APP2)에는 제3 온-다이 ECC 레벨((128, 8) SEC)을 할당하고, 단순한 데이터(DATA)에는 제4 온-다이 ECC 레벨((256, 10) SEC-DED)을 할당할 수 있다. 이와 같이, 운영 체제의 경우에는 에러 정정이 불가능한 경우 시스템에 치명적인 영향을 미치므로 상대적으로 높은 온-다이 ECC 레벨을 할당하고 데이터의 중요도에 따라서 순차적으로 낮은 온-다이 ECC 레벨들을 할당할 수 있다. 이와 같이, 기입 데이터의 중요도에 따라서 서로 다른 온-다이 ECC 레벨을 적용함으로써 반도체 메모리 장치의 사이즈를 감소하고 온-다이 ECC 효율을 향상시킬 수 있다.
도 4에는 본 발명의 실시예들에 따른 적응적 온-다이 ECC를 적용하기 위한 메모리 영역의 단위로서 뱅크 어레이를 채용한 예를 도시하였으나, 이에 한정되는 것은 아니다. 예를 들어, 본 발명의 실시예들에 따른 적응적 온-다이 ECC는 뱅크 어레이 내의 메모리 블록 단위로 적용될 수도 있고, HBM(high bandwidth memory)의 슈도 채널과 같은 서브 뱅크 어레이 단위로 적용될 수도 있다.
도 5는 본 발명의 실시예들에 따른 반도체 메모리 장치를 나타내는 블록도이다.
도 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)에 제공할 수 있다.
제어 로직 회로(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)를 생성할 수 있다.
도 6은 도 5의 반도체 메모리 장치의 일부 구성을 나타내는 도면이다.
도 6을 참조하면, 반도체 메모리 장치(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)에 제공할 수 있다.
도 7 및 8은 본 발명의 실시예들에 따라서 복수의 온-다이 ECC 레벨을 구현하기 위한 메모리 셀 어레이의 고정적인 구성을 나타내는 도면들이다.
도 7 및 8에는 메모리 셀 어레이에 포함되는 일부의 메모리 영역들(MRG1~MRG3)만을 도시하였으며, 다른 구성 요소들은 편의상 도시를 생략하였다. 메모리 영역들(MRG1, MRG2, MRG3)의 각각에 포함되는 데이터 영역의 열 사이즈 및 패리티 영역의 열 사이즈에 따라서, 도 6의 제1 데이터 라인들(GIO]) 및 제2 데이터 라인들(EDBIO)의 개수가 결정될 수 있다. 일 실시예에서, 메모리 영역들(MRG1, MRG2, MRG3)은 뱅크 어레이들일 수 있다.
도 7 및 8을 참조하면, 메모리 셀 어레이에 포함되는 메모리 영역들(MRG1, MRG2, MRG3)의 각각은 기입 데이터가 저장되는 데이터 영역 및 상기 기입 데이터에 상응하는 패리티 데이터가 저장되는 패리티 영역을 포함할 수 있다. 제1 메모리 영역(MRG1)은 제1 데이터 영역(RGd1) 및 제1 패리티 영역(RGp1)을 포함하고, 제2 메모리 영역(MRG2)은 제2 데이터 영역(RGd2) 및 제2 패리티 영역(RGp2)을 포함하고, 제3 메모리 영역(MRG3)은 제3 데이터 영역(RGd3) 및 제3 패리티 영역(RGp3)을 포함한다.
메모리 영역들(MRG1, MRG2, MRG3)의 각각은 전술한 복수의 온-다이 ECC 레벨들 중 하나에 상응하는 구성을 갖는다. 이를 위해, 메모리 영역들(MRG1, MRG2, MRG3)은 상기 데이터 영역의 사이즈와 상기 패리티 영역의 사이즈의 비가 서로 다르게 구현될 수 있다. 여기서 영역의 사이즈 비라 함은 영역에 포함되는 메모리 셀들의 개수 또는 영역이 저장할 수 있는 비트 수를 나타낸다.
도 7 및 8에는 상기 데이터 영역의 사이즈와 상기 패리티 영역의 사이즈의 비가 서로 다르게 구현된 3개의 메모리 영역들을 도시하였으나, 메모리 셀 어레이에는 복수의 온-다이 ECC 레벨들의 설정에 따라서 사이즈 비가 서로 다른 2개 또는 4개 이상의 메모리 영역들이 포함될 수 있다.
일 실시예에서, 도 7에 도시된 바와 같이, 메모리 영역들(MRG1, MRG2, MRG3)은, 전체 행 사이즈(NRt), 전체 열 사이즈(NCt), 상기 데이터 영역의 행 사이즈(NRt) 및 패리티 영역의 행 사이즈(NRt)는 각각 서로 동일하고, 상기 데이터 영역의 열 사이즈(NCd1, NCd2, NCd3)와 상기 패리티 영역의 열 사이즈(NCp1, NCp2, NCp3)의 비가 서로 다를 수 있다. 즉 메모리 영역들(MRG1, MRG2, MRG3)의 전체 사이즈는 동일하게 유지하되 데이터 영역과 패리티 영역의 열 사이즈들을 서로 다르게 형성할 수 있다. 따라서, 제1 데이터 영역(RGd1) 및 제1 패리티 영역(RGp1)의 열 사이즈 비(NCp1/NCd1)는 제2 데이터 영역(RGd2) 및 제2 패리티 영역(RGp2)의 열 사이즈 비(NCp2/NCd2)보다 크고, 제2 데이터 영역(RGd2) 및 제2 패리티 영역(RGp2)의 열 사이즈 비(NCp2/NCd2)는 제3 데이터 영역(RGd3) 및 제3 패리티 영역(RGp3)의 열 사이즈 비(NCp3/NCd3)보다 크다. 따라서, 제1 메모리 영역(MRG1)에 가장 높은 온-다이 ECC 레벨을 할당하고, 제2 메모리 영역(MRG2)에 중간 정도의 온-다이 ECC 레벨을 할당하고, 제3 메모리 영역(MRG3)에 가장 낮은 온-다이 ECC 레벨을 할당할 수 있다.
일 실시예에서, 도 8에 도시된 바와 같이, 메모리 영역들(MRG1, MRG2, MRG3)은, 전체 열 사이즈(NCt1, NCt2, NCt3)는 서로 다르고, 전체 행 사이즈(NRt), 상기 데이터 영역의 행 사이즈(NRt), 상기 패리티 영역의 행 사이즈(NRt) 및 상기 데이터 영역의 열 사이즈(NCd)는 각각 서로 동일하고, 상기 데이터 영역의 열 사이즈(NCd)와 상기 패리티 영역의 열 사이즈(NCp1, NCp2, NCp3)의 비가 서로 다를 수 있다. 즉 복수의 메모리 영역들(MRG1, MRG2, MRG3)의 데이터 영역들(GRd1, RGd2, RGd3)의 사이즈는 동일하게 유지하되 전체 열 사이즈(NCt1, NCt2, NCt3)을 서로 다르게 형성할 수 있다. 따라서, 제1 데이터 영역(RGd1) 및 제1 패리티 영역(RGp1)의 열 사이즈 비(NCp1/NCd)는 제2 데이터 영역(RGd2) 및 제2 패리티 영역(RGp2)의 열 사이즈 비(NCp2/NCd)보다 크고, 제2 데이터 영역(RGd2) 및 제2 패리티 영역(RGp2)의 열 사이즈 비(NCp2/NCd)는 제3 데이터 영역(RGd3) 및 제3 패리티 영역(RGp3)의 열 사이즈 비(NCp3/NCd)보다 크다. 따라서, 제1 메모리 영역(MRG1)에 가장 높은 온-다이 ECC 레벨을 할당하고, 제2 메모리 영역(MRG2)에 중간 정도의 온-다이 ECC 레벨을 할당하고, 제3 메모리 영역(MRG3)에 가장 낮은 온-다이 ECC 레벨을 할당할 수 있다.
이와 같이, 메모리 셀 어레이의 고정적인 구성을 이용하여 서로 다른 복수의 온-다이 ECC 레벨들을 구현할 수 있다.
도 9는 본 발명의 실시예들에 따라서 복수의 온-다이 ECC 레벨을 구현하기 위한 가변적인 구성을 나타내는 도면이다.
도 9를 참조하면, 메모리 영역(MRG)은 데이터 영역(RGd), 하이브리드 영역(RGh) 및 패리티 영역(RGp)을 포함할 수 있다. 데이터 영역(RGd)은 전속적으로 기입 데이터를 저장하고, 패리티 영역(RGp)은 전속적으로 패리티 데이터를 저장한다. 하이브리드 영역(RGh)은 메모리 영역(MRG)에 할당되는 온-다이 ECC 레벨에 따라서 기입 데이터 또는 패리티 데이터를 저장하도록 설정된다.
제1 스위치(SWC1) 회로는 데이터 영역(RGd)의 입출력 노드들(ND1)과 ECC 회로(400)의 데이터 노드들(NDd)의 제1 부분에 연결되고, 제3 스위치 회로(SWC3)는 패리티 영역(RGp)의 입출력 노드들(ND3)과 ECC 회로(400)의 패리티 노드들(NDp)의 제1 부분에 연결된다. 제2 스위치(SWC2) 회로는 레벨 제어 신호(LVCON)에 응답하여 하이브리드 영역(RGh)의 입출력 노드들(ND2)을 ECC 회로(400)의 데이터 노드들(ND2)의 제2 부분 또는 ECC 회로(400)의 패리티 노드들(NDp)의 제2 부분에 선택적으로 연결된다.
레벨 제어 신호(LVCON)가 상대적으로 높은 온-다이 ECC 레벨을 나타내는 경우에는, 하이브리드 영역(RGh)이 패리티 데이터를 저장하도록 제2 스위치 회로(SWC2)가 하이브리드 영역(RGh)의 입출력 노드들(ND2)을 ECC 회로(400)의 패리티 노드들(NDp)의 일부에 연결한다. 반면에 레벨 제어 신호(LVCON)가 상대적으로 낮은 온-다이 ECC 레벨을 나타내는 경우에는, 하이브리드 영역(RGh)이 기입 데이터를 저장하도록 제2 스위치 회로(SWC2)가 하이브리드 영역(RGh)의 입출력 노드들(ND2)을 ECC 회로(400)의 데이터 노드들(NDd)의 일부에 연결한다.
결과적으로, 실질적인 데이터 영역의 사이즈에 대한 실질적인 패리티 영역의 사이즈의 비는, 온-다이 ECC 레벨이 상대적으로 높게 설정되는 경우에는 (NCh+NCp)/NCd가 되어 상대적으로 증가할 수 있고, 온-다이 ECC 레벨이 상대적으로 낮게 설정되는 경우에는 NCp/(NCd+NCh)가 되어 상대적으로 감소할 수 있다.
이와 같이, 메모리 셀 어레이의 가변적인 구성을 이용하여 서로 다른 복수의 온-다이 ECC 레벨들을 구현할 수 있다.
도 10은 도 5의 반도체 메모리 장치의 일부 구성을 나타내는 도면이다.
도 10에는 예시적으로 도 5를 참조하여 설명한 제1 뱅크 어레이(310) 및 제2 뱅크 어레이(320)와 관련 회로들(260a, 260b, 285a, 285b), 스위치 회로(SWC) 및 ECC 회로(400)가 도시되어 있다.
도 10을 참조하면, 제1 메인 데이터(MD1)는 제1 뱅크 어레이(310)의 제1 서브 어레이(SBA11)에 저장되고, 제1 메인 데이터(MD1)에 상응하는 제1 패리티 데이터(PRT1)는 제2 뱅크 어레이(320)의 제2 서브 어레이(SBA22)에 저장될 수 있다. 이 경우, 도 10에 도시된 바와 같이 제1 뱅크 어레이(310)의 워드 라인(WL11)과 제2 뱅크 어레이(320)의 워드 라인(WL21)은 동시에 활성화될 수 있다. 한편, 제2 메인 데이터(MD1)는 제2 뱅크 어레이(320)의 제2 서브 어레이(SBA21)에 저장되고, 제2 메인 데이터(MD2)에 상응하는 제2 패리티 데이터(PRT2)는 제1 뱅크 어레이(310)의 제2 서브 어레이(SBA12)에 저장될 수 있다. 이 경우, 도 10에 도시되지는 않았으나, 제2 뱅크 어레이(320)의 제2 서브 어레이(SBA21)에 상응하는 하나의 워드 라인과 제1 뱅크 어레이(310)의 제2 서브 어레이(SBA12)에 상응하는 하나의 워드 라인이 동시에 활성화될 수 있다.
이와 같이, 메인 데이터 또는 기입 데이터는 하나의 메모리 뱅크에 저장하고 상응하는 패리티 데이터는 다른 메모리 뱅크에 저장할 수 있다. 이 경우, 도 11 내지 13을 참조하여 후술하는 바와 같이, 메모리 영역, 예를 들어, 뱅크 어레이의 행을 기준으로 데이터 영역과 패리티 영역을 분할할 수 있다.
도 7 내지 9의 실시예들의 경우에는 메모리 영역의 열을 기준으로 데이터 영역과 패리티 영역을 분할한 반면, 도 11 내지 13의 실시예들의 경우에는 메모리 영역의 행을 기준으로 데이터 영역과 패리티 영역을 분할한 것이며, 도 7 내지 9와 중복되는 설명은 생략될 수 있다.
도 11 및 12는 본 발명의 실시예들에 따라서 복수의 온-다이 ECC 레벨을 구현하기 위한 메모리 셀 어레이의 고정적인 구성을 나타내는 도면들이다.
도 11 및 12를 참조하면, 메모리 셀 어레이에 포함되는 메모리 영역들(MRG1, MRG2, MRG3, MRG4)의 각각은 기입 데이터가 저장되는 데이터 영역 및 상기 기입 데이터에 상응하는 패리티 데이터가 저장되는 패리티 영역을 포함할 수 있다. 제1 메모리 영역(MRG1)은 제1 데이터 영역(RGd1) 및 제1 패리티 영역(RGp1)을 포함하고, 제2 메모리 영역(MRG2)은 제2 데이터 영역(RGd2) 및 제2 패리티 영역(RGp2)을 포함하고, 제3 메모리 영역(MRG3)은 제3 데이터 영역(RGd3) 및 제3 패리티 영역(RGp3)을 포함하고, 4 메모리 영역(MRG4)은 제4 데이터 영역(RGd4) 및 제4 패리티 영역(RGp4)을 포함한다.
도 11 및 12에는 상기 데이터 영역의 사이즈와 상기 패리티 영역의 사이즈의 비가 서로 다르게 구현된 제1 메모리 영역 쌍(MRG1, MRG2)과 제2 메모리 영역 쌍(MRG3, MRG4)를 도시하였으나, 메모리 셀 어레이에는 복수의 온-다이 ECC 레벨들의 설정에 따라서 사이즈 비가 서로 다른 2개 또는 4개 이상의 메모리 영역 쌍들이 포함될 수 있다.
일 실시예에서, 도 11에 도시된 바와 같이, 메모리 영역들(MRG1, MRG2, MRG3, MRG4)은, 전체 행 사이즈(NRt), 전체 열 사이즈(NCt), 상기 데이터 영역의 열 사이즈(NCt) 및 상기 패리티 영역의 열 사이즈(NCt)는 각각 서로 동일하고, 상기 데이터 영역의 행 사이즈(NRd1, NRd2)와 상기 패리티 영역의 행 사이즈(NRp1, NRp2)의 비가 서로 다를 수 있다. 즉 메모리 영역들(MRG1, MRG2, MRG3, MRG4)의 전체 사이즈는 동일하게 유지하되 데이터 영역과 패리티 영역의 행 사이즈들을 서로 다르게 형성할 수 있다. 따라서, 제1 및 제2 데이터 영역(RGd1, RGd2))과 제1 및 제2 패리티 영역(RGp1, RGp2)의 행 사이즈 비(NRp1/NRd1)는 제3 및 제4 데이터 영역(RGd3, RGd4)과 제3 및 제4 패리티 영역(RGp3, RGp4)의 행 사이즈 비(NRp2/NRd2)보다 작다. 따라서, 제1 및 제2 메모리 영역(MRG1, MRG2)에 상대적으로 낮은 온-다이 ECC 레벨을 할당하고, 제3 및 제4 메모리 영역(MRG3, MRG4))에 상대적으로 높은 온-다이 ECC 레벨을 할당할 수 있다.
일 실시예에서, 도 12에 도시된 바와 같이, 메모리 영역들(MRG1, MRG2, MRG3, MRG4)은, 전체 행 사이즈(NRt1, NRt2)는 다르고, 전체 열 사이즈(NCt), 상기 데이터 영역의 열 사이즈(NCt), 상기 패리티 영역의 열 사이즈(NCt) 및 상기 데이터 영역의 행 사이즈(NRd)는 각각 서로 동일하고, 상기 데이터 영역의 행 사이즈(NRd)와 상기 패리티 영역의 행 사이즈(NRp1, NRp2)의 비가 서로 다를 수 있다. 즉 메모리 영역들(MRG1, MRG2, MRG3, MRG4)의 데이터 영역들(RGd1, RGd2, RGd3, RGd4)의 사이즈는 동일하게 유지하되 전체 열 사이즈(NCt1, NCt2)을 서로 다르게 형성할 수 있다. 따라서, 제1 및 제2 데이터 영역(RGd1, RGd2))과 제1 및 제2 패리티 영역(RGp1, RGp2)의 행 사이즈 비(NRp1/NRd)는 제3 및 제4 데이터 영역(RGd3, RGd4)과 제3 및 제4 패리티 영역(RGp3, RGp4)의 행 사이즈 비(NRp2/NRd)보다 작다. 따라서, 제1 및 제2 메모리 영역(MRG1, MRG2)에 상대적으로 낮은 온-다이 ECC 레벨을 할당하고, 제3 및 제4 메모리 영역(MRG3, MRG4))에 상대적으로 높은 온-다이 ECC 레벨을 할당할 수 있다.
이와 같이, 메모리 셀 어레이의 고정적인 구성을 이용하여 서로 다른 복수의 온-다이 ECC 레벨들을 구현할 수 있다.
도 13은 본 발명의 실시예들에 따라서 복수의 온-다이 ECC 레벨을 구현하기 위한 가변적인 구성을 나타내는 도면이다.
도 13을 참조하면, 메모리 영역들(MRG1, MRG2)은 데이터 영역들(RGd1, RGd2), 하이브리드 영역들(RGh1, RGh2) 및 패리티 영역들(RGp1, RGp2)을 각각 포함할 수 있다. 데이터 영역들(RGd1, RGd2)은 전속적으로 기입 데이터를 저장하고, 패리티 영역들(RGp1, RGp2)은 전속적으로 패리티 데이터를 저장한다. 하이브리드 영역들(RGh1, RGh2) 은 메모리 영역(MRG)에 할당되는 온-다이 ECC 레벨에 따라서 기입 데이터 또는 패리티 데이터를 저장하도록 설정된다.
메모리 영역들(MRG1, MRG2)이 상대적으로 높은 온-다이 ECC 레벨로 설정되는 경우에는, 하이브리드 영역들(RGh1, RGh2)이 패리티 데이터를 저장하도록 설정될 수 있다. 반면에 메모리 영역들(MRG1, MRG2)이 상대적으로 낮은 온-다이 ECC 레벨로 설정되는 경우에는, 하이브리드 영역들(RGh1, RGh2)이 기입 데이터를 저장하도록 설정될 수 있다.
결과적으로, 실질적인 데이터 영역의 사이즈에 대한 실질적인 패리티 영역의 사이즈의 비는, 온-다이 ECC 레벨이 상대적으로 높게 설정되는 경우에는 (NRh+NRp)/NRd가 되어 상대적으로 증가할 수 있고, 온-다이 ECC 레벨이 상대적으로 낮게 설정되는 경우에는 NRp/(NRd+NRh)가 되어 상대적으로 감소할 수 있다.
이와 같이, 메모리 셀 어레이의 가변적인 구성을 이용하여 서로 다른 복수의 온-다이 ECC 레벨들을 구현할 수 있다.
도 14는 본 발명의 실시예들에 따른 반도체 메모리 장치에 포함되는 ECC 회로의 일 실시예를 나타내는 블록도이다.
도 14를 참조하면, ECC 회로(400)는 멀티플렉서(405), ECC 엔진(420), 버퍼부(410) 및 데이터 정정기(470)를 포함하여 구성될 수 있다. 버퍼부(410)는 제1 내지 제4 버퍼들(411~414)을 포함할 수 있다.
멀티플렉서(405)는 제1 선택 신호(SS1)에 응답하여 기입 동작에서는 기입 데이터(WMD)를 ECC 엔진(420)에 제공하고, 독출 동작에서는 버퍼(442)로부터 제공되는 독출 데이터(RMD)를 ECC 엔진(420)에 제공할 수 있다.
버퍼들(411, 413)은 모드 신호(MS)에 응답하여 기입 동작에서 활성화되고, 기입 데이터(WMD)와 패리티 데이터(PRT)를 데이터 노드들(NDd) 및 패리티 노드들(NDp)을 통하여 입출력 게이팅 회로(290)에 제공할 수 있다. 버퍼들(412, 414)은 모드 신호(MS)에 응답하여 독출 동작에서 활성화되고, 버퍼(412)는 데이터 노드들(NDd)을 통하여 독출 데이터(RMD)를 멀티플렉서(410)와 데이터 정정기(460)에 제공하고, 버퍼(414)는 패리티 노드들(NDp)을 통하여 패리티 데이터(PRT)를 ECC 엔진(420)에 제공할 수 있다.
ECC 엔진(420)은 기입 동작에서는 기입 데이터(WMD)에 대하여 ECC 인코딩을 수행하여 패리티 데이터(PRT)를 버퍼(413)에 제공할 수 있다. ECC 엔진(420)은 독출 동작에서는 버퍼(414)로부터 제공되는 패리티 데이터(PRT)를 기초로 멀티플렉서(405)로부터 제공되는 독출 데이터(RMD)에 대하여 ECC 디코딩을 수행하여 신드롬 데이터(SDR)를 데이터 정정기(460)에 제공할 수 있다.
데이터 정정기(470)는 ECC 엔진(420)으로부터 제공되는 신드롬 데이터(SDR)에 기초하여 독출 데이터(RMD)의 에러를 정정하여 정정된 메인 데이터(C_MD)를 제공할 수 있다.
도 14에서 제1 선택 신호(SS1), 및 모드 신호(MS)는 도 7의 제어 로직 회로(210)로부터 제공되는 제2 제어 신호(CTL2)에 포함될 수 있다.
도 15는 도 14의 ECC 회로에 포함되는 ECC 엔진의 일 실시예를 나타내는 블록도이다.
도 15를 참조하면, ECC 엔진(420)은 패리티 생성기(430), 체크 비트 생성기(440) 및 신드롬 생성기(450)를 포함할 수 있다.
패리티 생성기(430)는 배타적 오어 게이트 어레이를 이용하여 기입 데이터(WMD)를 기초로 패리티 데이터(PRT)를 생성할 수 있다. 패리티 생성기(430)는 도 16을 참조하여 후술하는 바와 같이 일체로서 동작하거나 개별적으로 동작하는 단위 생성기들을 포함할 수 있다.
체크 비트 생성기(440)는 독출 데이터(RMD)를 기초로 체크 비트들(CHB)을 생성할 수 있다. 체크 비트 생성기(440)는 일체로서 동작하거나 개별적으로 동작하는 단위 생성기들을 포함할 수 있다.
신드롬 생성기(430)는 독출 데이터(RMD)를 기초로 한 체크 비트들(CHB)과 버퍼(444)로부터 제공되는 패리티 데이터(PRT)를 기초로 신드롬 데이터(SDR)를 생성할 수 있다. 신드롬 생성기(430)는 복수의 단위 생성기들을 포함할 수 있고, 할당되는 온-다이 ECC 레벨에 따라서 인에이블되는 단위 생성기들의 수가 재구성될 수 있다.
도 16은 도 15의 ECC 엔진에 포함되는 패리티 생성기의 일 실시예를 나타내는 도면이다. 도 15의 ECC 엔진에 포함되는 체크 비트 생성기도 이와 유사한 구성을 가질 수 있다.
도 16을 참조하면, 패리티 생성기(430)는 복수의 단위 생성기들(431~43r)을 포함할 수 있다.
단위 생성기들(431~43r)은 엔진 구성 선택 신호(ECSS)에 응답하여 제1 엔진 구성 모드에서는 서로 연결되어 동작하고, 제2 엔진 구성 모드에서는 서로 분리되어 개별적으로 동작할 수 있다.
단위 생성기들(431~43r)은 각각 제1 XOR 모듈들(4311~43r1) 중 상응하는 하나, 디멀티플렉서들(4312~43r2) 중 상응하는 하나, 스위치들(4313~43r3) 중 상응하는 하나 및 제2 XOR 모듈들(4314~43r4) 중 상응하는 하나를 포함할 수 있다.
제1 XOR 모듈들(4311~43r1)은 메인 데이터(MD)를 구성하는 단위 데이터(UD1~UDr) 중 상응하는 하나에 대하여 XOR 연산을 수행하여 제1 부분 패리티 데이터(PRT11~PRT1r)를 각각 생성할 수 있다. 스위치들(4313~43r3)은 각각 엔진 구성 선택 신호(ECSS)에 응답하여 제1 엔진 구성 모드에서는 단위 데이터(UD1~UDr) 중 상응하는 하나를 제2 XOR 모듈들(4314~43r4) 중 상응하는 하나에 제공하고, 제2 엔진 구성 모드에서는 오픈될 수 있다. 제2 XOR 모듈들(4314~43r4)은 제1 엔진 구성 모드에서는 순차적으로 연결되어 단위 데이터(UD1~UDr)들 중 상응하는 하나에 대하여 XOR 연산을 수행하여 제2 부분 패리티 데이터(PRT21~PRT2r)를 순차적으로 생성할 수 있다.
디멀티플렉서들(4312~43r2)은 각각 엔진 구성 선택 신호(ECSS)에 응답하여 상대적으로 높은 온-다이 ECC 레벨이 설정된 경우에는 제1 부분 패리티 데이터(PRT11~PRT1r)를 제1 경로로 제공하고, 상대적으로 높은 온-다이 ECC 레벨이 설정된 경우에는 제1 부분 패리티 데이터(PRT11~PRT1r)를 제2 경로로 제공할 수 있다. 여기서 제1 경로는 단위 생성기들(431~43r)이 순차적으로 서로 연결되도록 하는 경로이고, 제2 경로는 단위 생성기들(431~43r)이 서로 분리되어 연결되지 않도록 하는 경로이다.
도 16에서 엔진 구성 선택 신호(ECSS)는 도 7의 제어 로직 회로(210)로부터 제공되는 제2 제어 신호(CTL2)에 포함될 수 있다.
도 17은 도 14의 ECC 회로에 포함되는 데이터 정정기의 일 실시예를 나타내는 도면이다.
도 17을 참조하면, 데이터 정정기(470)는 신드롬 디코더(471), 비트 반전기(473) 및 멀티플렉서로 구현되는 선택 회로(475)를 포함할 수 있다.
신드롬 디코더(471)는 신드롬 데이터(SDR)를 디코딩하여 상기 적어도 하나의 에러 비트의 위치를 나타내는 디코딩 신호(DS)와 상기 적어도 하나의 에러 비트의 수에 따른 로직 레벨을 가지는 선택 신호(SS2)를 생성할 수 있다. 비트 반전기(473)는 디코딩 신호(DS)에 응답하여 하나의 에러 비트를 반전시킬 수 있다. 선택 회로(475)는 선택 신호(SS2)에 응답하여 독출 데이터(RMD)와 비트 반전기(473)의 출력 중 하나를 정정된 메인 데이터(C_MD)로 제공할 수 있다.
신드롬 디코더(471)는 신드롬 데이터(SDR)에 기초하여 독출 데이터 (RMD)에 포함되는 적어도 하나의 에러 비트의 수가 상기 ECC의 에러 정정 가능 범위를 초과하는 경우에는 상기 선택 신호(SS2)를 제1 로직 레벨로서 출력할 수 있다. 선택 회로(475)는 제1 로직 레벨의 선택 신호(SS2)에 응답하여 상기 독출 데이터(RMD)를 정정된 메인 데이터(C_MD)로 출력할 수 있다. 신드롬 디코더(471)는 신드롬 데이터(SDR)에 기초하여 독출 데이터(RMD)에 포함되는 적어도 하나의 에러 비트의 수가 상기 ECC의 에러 정정 가능 범위 이내인 경우에는 상기 디코딩 신호(DS)를 제1 로직 레벨로서 출력하고 선택 신호(SS2)를 제2 로직 레벨로 출력할 수 있다. 비트 반전기(473)는 제1 로직 레벨의 디코딩 신호(DS)에 응답하여 상기 적어도 하나의 에러 비트를 반전시킬 수 있다. 선택 회로(475)는 제2 로직 레벨의 선택 신호(SS2)에 응답하여 비트 반전기(473)의 출력을 정정된 메인 데이터(C_MD)로 출력할 수 있다.
도 14 내지 17을 참조하여 설명한 구성 요소들은, 복수의 온-다이 ECC 레벨들을 적용하기 위한 메모리 셀 어레이의 전술한 구성 방법들에 따라서 고정적인 구성을 가질 수도 있고 가변적인 구성을 가질 수도 있다.
도 18 및 19는 본 발명의 실시예들에 따른 온-다이 ECC 제어 방법을 나타내는 순서도들이다.
도 18을 참조하면, 복수의 온-다이 ECC 레벨들 중 하나에 각각 상응하는 복수의 메모리 영역들을 메모리 셀 어레이에 형성한다(S310). 이에 따라서, 반도체 메모리 장치는 전술한 바와 같이 복수의 온-다이 ECC 레벨들을 구현하기 위한 고정적인 구성을 가질 수 있다. 반도체 메모리 장치로부터 메모리 콘트롤러로, 상기 복수의 메모리 영역들의 구성 정보를 제공한다(S320). 메모리 콘트롤러는 기입 데이터의 중요도에 따라서 상기 기입 데이터에 상응하는 온-다이 ECC 레벨을 결정하고(S330), 상기 온-다이 ECC 레벨에 상응하는 기입 어드레스를 결정한다(S340)
도 19를 참조하면, 메모리 콘트롤러부터 반도체 메모리 장치로, 메모리 셀 어레이에 포함되는 복수의 메모리 영역들의 구성 정보를 제공한다(S410). 이 경우, 반도체 메모리 장치는 전술한 바와 같이 복수의 온-다이 ECC 레벨들을 구현하기 위한 가변적인 구성을 가질 수 있다. 반도체 메모리 장치는 상기 구성 정보에 기초하여 상기 복수의 메모리 영역들의 각각에 대하여 데이터 영역 및 패리티 영역을 설정한다(S420). 한편 메모리 콘트롤러는 기입 데이터의 중요도에 따라서 상기 기입 데이터에 상응하는 온-다이 ECC 레벨을 결정하고(S430), 상기 온-다이 ECC 레벨에 상응하는 기입 어드레스를 결정한다(S440).
도 20a 및 20b는 본 발명의 일 실시예에 따른 적층형 메모리 장치의 구조를 나타내는 도면이다.
도 20a에 도시된 바와 같이, 반도체 메모리 장치(900)는 다수의 반도체 다이들 또는 반도체 레이어들(LA1 내지 LAk, k는 3이상의 자연수)을 구비할 수 있다. 가장 아래에 위치하는 반도체 레이어(LA1)는 마스터 레이어이고 나머지 반도체 레이어들(LA2 내지 LAk)은 슬레이브 레이어일 수 있다. 슬레이브 레이어들은 전술한 바와 같은 복수의 메모리 랭크들을 형성할 수 있다.
반도체 레이어들(LA1 내지 LAk)은 관통 비아(TSV)를 통해 신호를 서로 송수신하며, 마스터 레이어(LA1)는 칩 입출력 패드부를 통해 외부의 메모리 콘트롤러(미도시)와 통신할 수 있다. 상기 칩 입출력 패드부는 마스터 레이어(LA1)의 하면에 형성되거나 베이스 기판(미도시)에 형성될 수 있다.
제1 반도체 레이어(910) 내지 제k 반도체 레이어는 각각 메모리 셀 어레이 영역(921)을 구동하기 위한 각종 주변 회로들(922)을 구비한다. 예컨데, 주변 회로들(922)은 각 메모리 셀 어레이 영역(921)의 워드 라인을 구동하기 위한 로우 드라이버(X-Driver)와, 각 메모리 영역의 비트 라인을 구동하기 위한 칼럼 드라이버(Y-Driver)와, 데이터의 입출력을 제어하기 위한 데이터 입출력부, 외부로부터 커맨드(CMD)를 입력받아 버퍼링하는 커맨드 버퍼와, 외부로부터 어드레스를 입력받아 버퍼링하는 어드레스 버퍼 등을 구비할 수 있다.
제1 반도체 레이어(910)는 제어 로직을 더 포함할 수 있다. 제어 로직은 메모리 콘트롤러(미도시)로부터 제공되는 커맨드 및 어드레스 신호에 기초하여 메모리 영역(921)에 대한 액세스를 제어하고, 메모리 영역(921)을 액세스하기 위한 제어 신호들을 생성할 수 있다.
슬레이브 레이어에 해당하는 반도체 레이어들(LA2 내지 LAk)의 각각은 본 발명의 실시예들에 따른 온-다이 ECC를 수행하기 위한 ECC 회로(922)를 포함할 수 있다.
도 21b에는 고 대역폭 메모리의 구조의 일 예가 도시되어 있다. 도 21b를 참조하면, 고 대역폭 메모리(HBM, high bandwidth memory)(1100)는 복수의 DRAM 반도체 다이들(1120, 1130, 1140, 1150)이 적층된 구조를 포함할 수 있다. 고 대역폭 메모리는 채널이라 칭하는 복수의 독립된 인터페이스들을 통하여 상기 적층된 구조의 고 대역폭 동작에 최적화될 수 있다. HBM 표준에 따라서 각각의 DRAM 스택은 최대 8개의 채널까지 지원할 수 있다. 도 21b에는 4개의 DRAM 반도체 다이들이 적층되고 각각의 DRAM 반도체 다이가 2개의 채널(CHANNEL0, CHANNEL1)을 지원하는 예가 도시되어 있다. 각각의 반도체 다이는 상기 적층 구조에 추가적인 커패시티(capacity) 및 추가적인 채널을 제공할 수 있다. 각각의 채널은 DRAM 뱅크들의 독립된 세트에 대한 액세스를 제공한다. 하나의 채널로부터의 리퀘스트는 다른 채널에 부착된 데이터를 액세스하지 못한다. 채널들은 독립적으로 클록킹되고 서로 동기화될 필요가 없다.
고 대역폭 메모리(1100)는 스택 구조의 하부에 위치하고 신호의 재분배 및 다른 기능들을 제공하는 버퍼 다이 또는 인터페이스 다이(1110)를 선택적으로 포함할 수 있다. DRAM 반도체 다이들(1120, 1130, 1140, 1150)에 통상적으로 구현되는 기능들이 이러한 인터페이스 다이(1110)에 구현될 수 있다.
DRAM 반도체 다이들(1120, 1130, 1140, 1150)의 각각은 본 발명의 실시예들에 따른 온-다이 ECC를 수행하기 위한 ECC 회로(922)를 포함할 수 있다.
도 21은 본 발명의 실시예들에 따른 메모리 장치를 모바일 시스템에 응용한 예를 나타내는 블록도이다.
도 21을 참조하면, 모바일 시스템(1200)은 어플리케이션 프로세서(1210), 통신(Connectivity)부(1220), 메모리 장치(1230), 비휘발성 메모리 장치(1240), 사용자 인터페이스(1250) 및 파워 서플라이(1260)를 포함한다.
어플리케이션 프로세서(1210)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 통신부(1220)는 외부 장치와 무선 통신 또는 유선 통신을 수행할 수 있다. 메모리 장치(1230)는 어플리케이션 프로세서(1210)에 의해 처리되는 데이터를 저장하거나, 동작 메모리(Working Memory)로서 작동할 수 있다. 예를 들어, 메모리 장치(1230)는 DDR SDRAM, LPDDR SDRAM, GDDR SDRAM, RDRAM 등과 같은 동적 랜덤 액세스 메모리일 수 있다. 비휘발성 메모리 장치(1240)는 모바일 시스템(1200)을 부팅하기 위한 부트 이미지를 저장할 수 있다. 사용자 인터페이스(1250)는 키패드, 터치 스크린과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함할 수 있다. 파워 서플라이(1260)는 모바일 시스템(1200)의 동작 전압을 공급할 수 있다. 또한, 실시예에 따라, 모바일 시스템(1200)은 카메라 이미지 프로세서(Camera Image Processor; CIS)를 더 포함할 수 있고, 메모리 카드(Memory Card), 솔리드 스테이트 드라이브(Solid State Drive; SSD), 하드 디스크 드라이브(Hard Disk Drive; HDD), 씨디롬(CD-ROM) 등과 같은 저장 장치를 더 포함할 수 있다.
메모리 장치(1230) 및/또는 비휘발성 메모리 장치(1240)는 도 1 내지 도 19를 참조하여 전술한 바와 같은 본 발명의 실시예들에 따른 온-다이 ECC를 수행하기 위한 ECC 회로들(1241, 1231)을 포함할 수 있다. 어플리케이션 프로세서(1210)는 전술한 ECC 레벨 정보(LVINF)를 제공하기 위한 ECC 할당기(1211)를 포함할 수 있다.
본 발명의 실시예들은 메모리 장치 및 이를 포함하는 시스템에 유용하게 이용될 수 있다. 특히 본 발명의 실시예들은 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive; SSD), 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console) 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 메모리 셀 어레이; 및
    상기 메모리 셀 어레이에 저장되는 기입 데이터에 대하여 에러 체크 및 정정(ECC) 인코딩을 수행하고, 상기 메모리 셀 어레이로부터의 독출 데이터에 대하여 ECC 디코딩을 수행하는 ECC 회로를 포함하고,
    복수의 온-다이 ECC 레벨들 중에서 상기 기입 데이터의 중요도에 따라 결정되는 상기 기입 데이터에 상응하는 온-다이 ECC 레벨에 기초하여 상기 ECC 인코딩 및 상기 ECC 디코딩을 수행하는 것을 특징으로 하는 반도체 메모리 장치.
  2. 제1 항에 있어서,
    상기 기입 데이터의 중요도가 높을수록 상기 온-다이 ECC 레벨이 높게 결정되고,
    상기 온-다이 ECC 레벨이 높을수록 상기 기입 데이터의 비트 수에 대한 상기 기입 데이터에 상응하는 패리티 데이터의 비트 수의 비율이 높은 것을 특징으로 하는 반도체 메모리 장치.
  3. 제1 항에 있어서,
    상기 메모리 셀 어레이에 포함되는 복수의 메모리 영역들 중 적어도 2개의 메모리 영역들에 대하여, 상기 기입 데이터가 저장되는 데이터 영역의 사이즈와 상기 기입 데이터에 상응하는 패리티 데이터가 저장되는 패리티 영역의 사이즈의 비가 서로 다르도록 설정된 고정적인 구성을 갖는 것을 특징으로 하는 반도체 메모리 장치.
  4. 제1 항에 있어서,
    상기 메모리 셀 어레이에 포함되는 복수의 메모리 영역들 중 적어도 2개의 메모리 영역들에 대하여, 상기 기입 데이터가 저장되는 데이터 영역의 사이즈와 상기 기입 데이터에 상응하는 패리티 데이터가 저장되는 패리티 영역의 사이즈의 비가 서로 다르도록 설정하기 위한 가변적인 구성을 갖는 것을 특징으로 하는 반도체 메모리 장치.
  5. 제1 항에 있어서,
    상기 메모리 셀 어레이는 복수의 뱅크 어레이들을 포함하고,
    상기 복수의 뱅크 어레이들의 각각은 상기 기입 데이터가 저장되는 데이터 영역 및 상기 기입 데이터에 상응하는 패리티 데이터가 저장되는 패리티 영역을 포함하고,
    상기 복수의 뱅크 어레이들의 각각은 상기 복수의 온-다이 ECC 레벨들 중 하나에 상응하는 구성을 갖는 것을 특징으로 하는 반도체 메모리 장치.
  6. 제5 항에 있어서,
    상기 복수의 뱅크 어레이들 중 적어도 2개의 뱅크 어레이들은,
    상기 데이터 영역의 사이즈와 상기 패리티 영역의 사이즈의 비가 서로 다른 것을 특징으로 하는 반도체 메모리 장치.
  7. 제5 항에 있어서,
    상기 복수의 뱅크 어레이들 중 적어도 하나의 뱅크 어레이는,
    상기 하나의 뱅크 어레이에 할당되는 온-다이 ECC 레벨에 따라서 상기 기입 데이터 또는 상기 패리티 데이터를 저장하도록 설정되는 하이브리드 영역을 더 포함하고,
    상기 하이브리드 영역의 입출력 노드들은 상기 ECC 회로의 데이터 노드들의 일부 또는 상기 ECC 회로의 패리티 노드들의 일부에 선택적으로 연결되는 것을 특징으로 하는 반도체 메모리 장치.
  8. 적어도 하나의 반도체 메모리 장치; 및
    상기 적어도 하나의 반도체 메모리 장치를 제어하는 메모리 콘트롤러를 포함하고,
    상기 메모리 콘트롤러는 복수의 온-다이 에러 체크 및 정정(ECC) 레벨들 중에서 기입 데이터의 중요도에 따라서 상기 기입 데이터에 상응하는 온-다이 ECC 레벨을 결정하고,
    상기 반도체 메모리 장치는 상기 기입 데이터에 상응하는 온-다이 ECC 레벨에 기초하여 상기 ECC 인코딩 및 상기 ECC 디코딩을 수행하는 메모리 시스템.
  9. 제8 항에 있어서,
    상기 메모리 장치는, 상기 메모리 셀 어레이에 포함되는 복수의 메모리 영역들 중 적어도 2개의 메모리 영역들에 대하여, 상기 기입 데이터가 저장되는 데이터 영역의 사이즈와 상기 기입 데이터에 상응하는 패리티 데이터가 저장되는 패리티 영역의 사이즈의 비가 서로 다르도록 설정된 고정적인 구성을 갖고,
    상기 반도체 메모리 장치는, 상기 고정적인 구성에 관한 구성 정보를 상기 메모리 콘트롤러에 제공하고,
    상기 메모리 콘트롤러는 상기 구성 정보에 기초하여 상기 기입 데이터에 상응하는 어드레스를 결정하는 것을 특징으로 하는 메모리 시스템.
  10. 제8 항에 있어서,
    상기 메모리 장치는, 상기 메모리 셀 어레이에 포함되는 복수의 메모리 영역들 중 적어도 2개의 메모리 영역들에 대하여, 상기 기입 데이터가 저장되는 데이터 영역의 사이즈와 상기 기입 데이터에 상응하는 패리티 데이터가 저장되는 패리티 영역의 사이즈의 비가 서로 다르도록 설정하기 위한 가변적인 구성을 갖고,
    상기 메모리 장치는, 상기 메모리 콘트롤러로부터 제공되는 구성 정보에 기초하여 상기 가변적인 구성을 설정하고,
    상기 메모리 콘트롤러는 상기 구성 정보에 기초하여 상기 기입 데이터에 상응하는 어드레스를 결정하는 것을 특징으로 하는 메모리 시스템.
KR1020170148431A 2017-11-09 2017-11-09 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 KR20190052754A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170148431A KR20190052754A (ko) 2017-11-09 2017-11-09 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US16/104,497 US20190140668A1 (en) 2017-11-09 2018-08-17 Semiconductor memory device and memory system including the same for adaptive error check and correction
CN201811267790.4A CN109767806A (zh) 2017-11-09 2018-10-29 自适应错误检查与校正的半导体存储器装置和存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170148431A KR20190052754A (ko) 2017-11-09 2017-11-09 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20190052754A true KR20190052754A (ko) 2019-05-17

Family

ID=66327674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170148431A KR20190052754A (ko) 2017-11-09 2017-11-09 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템

Country Status (3)

Country Link
US (1) US20190140668A1 (ko)
KR (1) KR20190052754A (ko)
CN (1) CN109767806A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102664239B1 (ko) * 2023-10-06 2024-05-08 위더맥스(주) Ecc 가변 적용 장치 및 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190243566A1 (en) * 2018-02-05 2019-08-08 Infineon Technologies Ag Memory controller, memory system, and method of using a memory device
US11005501B2 (en) * 2019-02-19 2021-05-11 Micron Technology, Inc. Error correction on a memory device
KR20200142213A (ko) * 2019-06-12 2020-12-22 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
US11050440B2 (en) * 2019-10-21 2021-06-29 Macronix International Co., Ltd. Encoder, decoder, encoding method and decoding method based on low-density parity-check code
US11068342B1 (en) * 2020-06-01 2021-07-20 Western Digital Technologies, Inc. Redundancy data in integrated memory assembly
US11687407B2 (en) * 2020-08-27 2023-06-27 Micron Technologies, Inc. Shared error correction code (ECC) circuitry
US11907544B2 (en) 2020-08-31 2024-02-20 Micron Technology, Inc. Automated error correction with memory refresh
CN112420118B (zh) * 2020-12-11 2023-08-11 西安紫光国芯半导体有限公司 存储器及其存储方法和对应的电子设备
CN112420119B (zh) * 2020-12-11 2023-05-30 西安紫光国芯半导体有限公司 包含转换模块的存储器以及阵列单元模块
KR20230017006A (ko) * 2021-07-27 2023-02-03 에스케이하이닉스 주식회사 반도체 메모리 장치 및 반도체 시스템
US11605441B1 (en) 2021-08-30 2023-03-14 Samsung Electronics Co., Ltd. Memory systems having memory devices therein with enhanced error correction capability and methods of operating same

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961890B2 (en) * 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US6910175B2 (en) * 2001-09-14 2005-06-21 Koninklijke Philips Electronics N.V. Encoder redundancy selection system and method
JP3914839B2 (ja) * 2002-07-11 2007-05-16 エルピーダメモリ株式会社 半導体記憶装置
US7958433B1 (en) * 2006-11-30 2011-06-07 Marvell International Ltd. Methods and systems for storing data in memory using zoning
KR20100094241A (ko) * 2009-02-18 2010-08-26 삼성전자주식회사 예비 블록을 포함하지 않는 불휘발성 메모리 장치
US9189329B1 (en) * 2011-10-13 2015-11-17 Marvell International Ltd. Generating error correcting code (ECC) data using an ECC corresponding to an identified ECC protection level
US9323609B2 (en) * 2013-11-15 2016-04-26 Intel Corporation Data storage and variable length error correction information
US9768808B2 (en) * 2015-04-08 2017-09-19 Sandisk Technologies Llc Method for modifying device-specific variable error correction settings

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102664239B1 (ko) * 2023-10-06 2024-05-08 위더맥스(주) Ecc 가변 적용 장치 및 방법

Also Published As

Publication number Publication date
CN109767806A (zh) 2019-05-17
US20190140668A1 (en) 2019-05-09

Similar Documents

Publication Publication Date Title
US11269724B2 (en) Memory device, memory system, and method of operating the same
KR20190052754A (ko) 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
CN110120243B (zh) 半导体存储器装置、操作其的方法以及存储器系统
CN110148434B (zh) 半导体存储器件、存储系统和操作半导体存储器件的方法
CN109785894B (zh) 半导体存储器装置、存储器系统和操作方法
CN110995289B (zh) 错误检测码生成电路
KR102258140B1 (ko) 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
US10255989B2 (en) Semiconductor memory devices, memory systems including the same and methods of operating the same
KR102453437B1 (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US8874979B2 (en) Three dimensional(3D) memory device sparing
US10191805B2 (en) Semiconductor memory devices and memory systems including the same
KR20180061870A (ko) 메모리 모듈, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR20200046245A (ko) 메모리 모듈 및 메모리 시스템의 동작 방법
KR20210034726A (ko) 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템
US20200034259A1 (en) Memory module, memory system including the same and operation method thereof
US11605441B1 (en) Memory systems having memory devices therein with enhanced error correction capability and methods of operating same
US20230195327A1 (en) Memory system and method of operating the same
KR20240096194A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN118053467A (zh) 存储器件、存储器件的操作方法和存储系统