KR20240012254A - 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 - Google Patents

반도체 메모리 장치 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20240012254A
KR20240012254A KR1020220128271A KR20220128271A KR20240012254A KR 20240012254 A KR20240012254 A KR 20240012254A KR 1020220128271 A KR1020220128271 A KR 1020220128271A KR 20220128271 A KR20220128271 A KR 20220128271A KR 20240012254 A KR20240012254 A KR 20240012254A
Authority
KR
South Korea
Prior art keywords
data
test
error
latch
parity
Prior art date
Application number
KR1020220128271A
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 US18/174,186 priority Critical patent/US20240029808A1/en
Priority to TW112110476A priority patent/TW202405817A/zh
Priority to CN202310594310.XA priority patent/CN117437966A/zh
Publication of KR20240012254A publication Critical patent/KR20240012254A/ko

Links

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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1032Simple parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • 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

Abstract

반도체 메모리 장치는 메모리 셀 어레이, 온-다이(on-die) 에러 정정 코드(error correction code, 이하 'ECC') 엔진 및 제어 로직 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 메모리 셀들을 포함한다. 상기 온-다이 ECC 엔진은 제1 래치와 제2 래치를 포함한다. 상기 제어 로직 회로는 상기 온-다이 ECC 엔진을 제어한다. 상기 제어 로직 회로는 외부 장치로부터의 제1 모드 레지스트 셋 커맨드에 응답하여 상기 반도체 메모리 장치를 테스트 모드로 설정한다. 상기 온-다이 ECC 엔진은 상기 테스트 모드에서 상기 메모리 셀 어레이와 연결을 차단하고, 상기 외부 장치로부터의 기입 커맨드에 수반된 테스트 데이터를 수신하고, 상기 테스트 데이터를 상기 제1 래치에 저장하고, 상기 외부 장치로부터의 독출 커맨드에 응답하여 상기 테스트 데이터와 상기 제2 래치에 저장된, 특정 에러 비트를 선택적으로 포함하는 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 에러 비트의 포함 여부 및 정정가능 여부를 나타내는 심각성(severity) 신호를 상기 외부 장치에 제공한다.

Description

반도체 메모리 장치 및 이를 포함하는 메모리 시스템{Semiconductor memory devices and memory systems including the same}
본 발명은 메모리 분야에 관한 것으로, 보다 상세하게는 반도체 메모리 장치 및 이를 포함하는 메모리 시스템에 관한 것이다.
DRAM과 같은 휘발성 메모리 장치는 가격이 비교적 저렴하기 때문에 시스템 메모리와 같은 대용량 데이터를 저장하는데 사용되고 있다. 또한 DRAM과 같은 휘발성 반도체 메모리 장치에서는 집적도를 높이기 위하여 공정 스케일을 축소시키고 있다. 공정 스케일의 축소에 따라 비트 에러 비율(bit error rate)을 급격하게 증가하고 수율이 낮아질 것으로 예상된다. 따라서 반도체 메모리 장치의 신뢰성을 높일 수 있는 방안이 필요하다.
본 발명의 일 목적은 테스트 커버리지를 향상시킬 수 있는 반도체 메모리 장치를 제공하는데 있다.
본 발명의 일 목적은 테스트 커버리지를 향상시킬 수 있는 메모리 시스템을 제공하는데 있다.
상기 일 목적을 달성하기 위한 본 발명의 실시예들에 따른 반도체 메모리 장치는 메모리 셀 어레이, 온-다이(on-die) 에러 정정 코드(error correction code, 이하 'ECC') 엔진 및 제어 로직 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 메모리 셀들을 포함한다. 상기 온-다이 ECC 엔진은 제1 래치와 제2 래치를 포함한다. 상기 제어 로직 회로는 상기 온-다이 ECC 엔진을 제어한다. 상기 제어 로직 회로는 외부 장치로부터의 제1 모드 레지스트 셋 커맨드에 응답하여 상기 반도체 메모리 장치를 테스트 모드로 설정한다. 상기 온-다이 ECC 엔진은 상기 테스트 모드에서 상기 메모리 셀 어레이와 연결을 차단하고, 상기 외부 장치로부터의 기입 커맨드에 수반된 테스트 데이터를 수신하고, 상기 테스트 데이터를 상기 제1 래치에 저장하고, 상기 외부 장치로부터의 독출 커맨드에 응답하여 상기 테스트 데이터와 상기 제2 래치에 저장된 특정 에러 비트를 선택적으로 포함하는 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 에러 비트의 포함 여부 및 정정가능 여부를 나타내는 심각성(severity) 신호를 상기 외부 장치에 제공한다.
본 발명의 실시예들에 따른 메모리 시스템은 반도체 메모리 장치 및 상기 반도체 메모리 장치를 제어하는 메모리 컨트롤러를 포함한다. 상기 반도체 메모리 장치는 메모리 셀 어레이, 온-다이(on-die) 에러 정정 코드(error correction code, 이하 'ECC') 엔진 및 제어 로직 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 메모리 셀들을 포함한다. 상기 온-다이 ECC 엔진은 제1 래치와 제2 래치를 포함한다. 상기 제어 로직 회로는 상기 온-다이 ECC 엔진을 제어한다. 상기 제어 로직 회로는 상기 메모리 컨트롤러로부터의 제1 모드 레지스트 셋 커맨드에 응답하여 상기 반도체 메모리 장치를 테스트 모드로 설정한다. 상기 온-다이 ECC 엔진은 상기 테스트 모드에서 상기 메모리 셀 어레이와 연결을 차단하고, 상기 메모리 컨트롤러로부터의 기입 커맨드에 수반된 테스트 데이터를 수신하고, 상기 테스트 데이터를 상기 제1 래치에 저장하고, 상기 상기 메모리 컨트롤러로부터의 독출 커맨드에 응답하여 상기 테스트 데이터와 상기 제2 래치에 저장된 특정 에러 비트를 선택적으로 포함하는 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 에러 비트의 포함 여부 및 정정가능 여부를 나타내는 심각성(severity) 신호를 상기 상기 메모리 컨트롤러에 제공한다.
본 발명의 실시예들에 따른 반도체 메모리 장치는 메모리 셀 어레이, 온-다이(on-die) 에러 정정 코드(error correction code, 이하 'ECC') 엔진 및 제어 로직 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 메모리 셀들을 포함한다. 상기 온-다이 ECC 엔진은 제1 래치와 제2 래치를 포함한다. 상기 제어 로직 회로는 상기 온-다이 ECC 엔진을 제어한다. 상기 제어 로직 회로는 외부 장치로부터의 제1 모드 레지스트 셋 커맨드에 응답하여 상기 반도체 메모리 장치를 테스트 모드로 설정한다. 상기 온-다이 ECC 엔진은 상기 테스트 모드에서 상기 메모리 셀 어레이와 연결을 차단하고, 상기 외부 장치로부터의 기입 커맨드에 수반된 테스트 데이터를 수신하고, 상기 테스트 데이터를 상기 제1 래치에 저장하고, 상기 외부 장치로부터의 독출 커맨드에 응답하여 상기 테스트 데이터와 상기 제2 래치에 저장된 특정 에러 비트를 선택적으로 포함하는 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 에러 비트의 포함 여부 및 정정가능 여부를 나타내는 심각성(severity) 신호를 상기 외부 장치에 제공한다. 상기 온-다이 ECC 엔진은 인코딩/디코딩 로직, 데이터 정정기, 패리티 에러 패턴 생성기 및 심각성 신호 생성기를 포함한다. 상기 인코딩/디코딩 로직은 상기 테스트 모드에서는 상기 제1 래치에 저장된 상기 테스트 데이터와 상기 제2 래치에 저장된 상기 테스트 패리티 데이터에 대하여 상기 ECC 디코딩을 수행하여 신드롬을 생성한다. 상기 데이터 정정기는 상기 테스트 모드에서, 상기 신드롬에 기초하여 상기 테스트 데이터의 선택된 에러 비트를 정정하여 정정된 테스트 데이터를 출력한다. 상기 패리티 에러 패턴 생성기는 에러 비트 선택 신호에 기초하여 상기 제2 래치에 저장된 백그라운드 패리티 데이터에 에러 비트를 포함하는 패리티 에러 패턴을 인가한다. 상기 심각성 신호 생성기는 상기 신드롬에 기초하여 상기 심각성 신호를 생성한다.
본 발명의 실시예들에 따른 반도체 메모리 장치는 테스트 모드에서 메모리 셀 어레이와의 연결을 차단하고, 모드 레지스터의 설정에 의하여 테스트 패리티 데이터의 에러 비트 포함 여부 및 에러 비트를 포함하는 패리티 비트의 위치를 선택하고, 테스트 데이터 뿐만 아니라 테스트 패리티 데이터에 에러 비트를 삽입하고, 테스트 패리티 데이터를 메모리 컨트롤러로부터 수신하지 않고, 테스트 데이터와 테스트 패리티 데이터에 기초하여 ECC 디코딩을 수행하고 ECC 디코딩의 결과를 메모리 컨트롤러에 전송할 수 있다. 따라서, 반도체 메모리 장치는 패리티 체크 매트릭스를 노출시키지 않고 메모리 셀 어레이로부터의 영향을 차단한 채, 다양한 에러 패턴에 대하여 온-다이 ECC 엔진을 테스트할 수 있어, 테스트 커버리지를 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 메모리 컨트롤러를 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 반도체 메모리 장치에 제공되는 또는 반도체 메모리 장치로부터 출력되는 복수의 버스트 길이들에 대응되는 데이터 세트를 나타낸다.
도 4는 본 발명의 실시예들에 따른 도 2의 메모리 에러 삽입 레지스터 세트, 데이터 버퍼 및 테스트 데이터 생성기를 나타낸다.
도 5는 본 발명의 실시예들에 따른 도 4의 에러 삽입 레지스터 세트에 저장될 수 있는 제2 데이터 비트들을 나타낸다.
도 6 및 도 7은 본 발명의 실시예들에 따른 도 5의 데이터 삽입 레지스터 세트가 나타낼 수 있는 다양한 에러 패턴들을 나타낸다.
도 8은 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 반도체 메모리 장치의 구성을 나타내는 블록도이다.
도 9는 본 발명의 실시예들에 따른 도 8의 반도체 메모리 장치에서 제1 뱅크 어레이를 나타낸다.
도 10은 본 발명의 실시예들에 따른 도 8의 반도체 메모리 장치의 모드 레지스터들에 포함되는 테스트 모드 레지스터를 나타낸다.
도 11은 본 발명의 실시예들에 따른 도 8의 반도체 메모리 장치에서 온-다이 ECC 엔진의 구성을 나타내는 블록도이다.
도 12는 본 발명의 실시예들에 따른 도 11의 온-다이 ECC 엔진에서 인코딩/디코딩 로직을 나타낸다.
도 13은 본 발명의 실시예들에 따른 도 11의 온-다이 ECC 엔진에서 데이터 정정기의 구성을 나타낸다.
도 14는 본 발명의 실시예들에 따른 테스트 모드에서 반도체 메모리 장치가 수신하는 커맨드 시퀀스를 나타내고, 도 15는 테스트 모드에서 도 1의 메모리 시스템의 동작을 나타낸다.
도 16은 테스트 모드에서 도 11의 온-다이 ECC 엔진의 동작을 나타낸다.
도 17은 테스트 모드에서 도 16의 온-다이 ECC 엔진에서 입출력 되는 데이터를 나타낸다.
도 18은 테스트 모드에서 도 16의 온-다이 ECC 엔진에서 입출력 되는 데이터를 나타낸다.
도 19는 노멀 모드의 기입 동작에서 도 8의 반도체 메모리 장치의 일부를 나타낸다.
도 20은 노멀 모드의 독출 동작에서 도 8의 반도체 메모리 장치의 일부를 나타낸다.
도 21은 본 발명의 실시예들에 따른 반도체 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 22는 본 발명의 실시예들에 따른 반도체 메모리 장치를 보여주는 예시적인 블록도이다.
도 23은 본 발명의 실시예들에 따른 적층형 메모리 장치를 포함하는 반도체 패키지의 예를 나타내는 구조도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(20)은 메모리 컨트롤러(100) 및 반도체 메모리 장치(200)를 포함할 수 있다.
메모리 컨트롤러(Memory Controller; 100)는 메모리 시스템(Memory System; 20)의 동작을 전반적으로 제어하며, 외부의 호스트와 반도체 메모리 장치(200) 사이의 전반적인 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(100)는 호스트의 요청에 따라 반도체 메모리 장치(200)를 제어하여 데이터를 기입하거나(write) 데이터를 독출한다(read). 또한, 메모리 컨트롤러(100)는 반도체 메모리 장치(200)를 제어하기 위한 동작 커맨드(command)들을 인가하여, 반도체 메모리 장치(200)의 동작을 제어한다. 메모리 컨트롤러(100)는 외부 장치로 호칭될 수도 있다.
실시예에 따라, 반도체 메모리 장치(200)는 휘발성 메모리 셀들을 구비하는 DRAM(dynamic random access), GDDR7(graphic double data rate 7) SDRAM(synchronous DRAM)일 수 있다.
메모리 컨트롤러(100)는 반도체 메모리 장치(200)에 커맨드(CMD) 및 어드레스(ADDR)를 전송하고, 노멀 모드에서 반도체 메모리 장치(200)에 메인 데이터(MD)를 전송하고 테스트 모드에서 반도체 메모리 장치(200)에 테스트 데이터(TD)를 전송하고, 반도체 메모리 장치(200)로부터 심각성(severity) 신호(SEV)를 수신할 수 있다.
메모리 컨트롤러(100)는 중앙 처리 장치(central processing unit, 'CPU', 110) 및 에러 로그 레지스터(160)를 포함할 수 있다.
반도체 메모리 장치(200)는 메인 데이터(MD) 및 테스트 데이터(TD)가 가 저장되는 메모리 셀 어레이(310), 온-다이(on-die, 'OD') 에러 정정 코드(error correction code, 이하 'ECC') 엔진(400) 및 제어 로직 회로(210)를 포함할 수 있다.
제어 로직 회로(210)는 커맨드(CMD) 및 어드레스(ADDR)에 기초하여 메모리 셀 어레이(310)에 대한 액세스를 제어하고, 온-다이 ECC 엔진(400)을 제어할 수 있다. 제어 로직 회로(210)는 메모리 컨트롤러(100, 외부 장치)로부터의 제1 모드 레지스트 셋 커맨드에 응답하여 반도체 메모리 장치(200)의 동작 모드를 테스트 모드로 설정할 수 있다.
메모리 셀 어레이(310)는 노멀 셀 영역 및 패리티 셀 영역을 포함할 수 있다.
온-다이 ECC 엔진(400)은 테스트 모드에서 메모리 셀 어레이(310)와 연결을 차단하고, 메모리 컨트롤러(100)로부터의 기입 커맨드에 수반된 테스트 데이터(TD)를 수신하고, 테스트 데이터(TD))를 온-다이 ECC 엔진(400) 내부의 제1 래치에 저장하고, 메모리 컨트롤러(100)로부터의 독출 커맨드에 응답하여 테스트 데이터(TD)와 온-다이 ECC 엔진(400) 내부의 제2 래치에 저장된, 특정 에러 비트를 선택적으로 포함하는 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 에러 비트의 포함 여부 및 정정가능 여부를 나타내는 심각성 신호(SEV)를 메모리 컨트롤러(100)에 제공할 수 있다.
메모리 컨트롤러(100)는 심각성 신호(SEV)에 기초하여 온-다이 ECC 엔진(400)의 정상 동작 여부를 판단하고, 테스트 데이터(TD) 및 테스트 패리티 데이터의 다양한 에러 패턴과 관련된 온-다이 ECC 엔진(400)의 테스트 정보를 에러 로그 레지스터(160)에 저장할 수 있다.
도 2는 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 메모리 컨트롤러를 나타내는 블록도이다.
도 2를 참조하면, 메모리 컨트롤러(100)는 CPU(110), 데이터 버퍼(120), 테스트 데이터 생성기(130), 에러 삽입 레지스터(140), 멀티플렉서(170), 에러 로그 레지스터(160), 커맨드 버퍼(180) 및 어드레스 버퍼(180)를 포함할 수 있다.
CPU(110)는 호스트로부터 리퀘스트(REQ) 및 데이터(DTA)를 수신하고, 데이터 데이터(DTA)를 데이터 버퍼(120)에 제공한다. CPU(110)는 데이터 버퍼(120), 테스트 데이터 생성기(130), 에러 삽입 레지스터(140), 멀티플렉서(170), 에러 로그 레지스터(160), 커맨드 버퍼(180) 및 어드레스 버퍼(180)를 제어한다.
CPU(110)는 또한 반도체 메모리 장치(200)로부터의 심각성 신호(SEV)에 기초하여 테스트 모드에서 온-다이 ECC 엔진(400)의 정상 동작 여부를 판단할 수 있다.
데이터 버퍼(120)는 데이터(DTA)를 버퍼링하여 메인 데이터(MD)를 테스트 데이터 생성기(130)와 멀티플렉서(170)에 제공한다. 에러 삽입 레지스터 세트(140)는 반도체 메모리 장치(200)에 제공되는 테스트 데이터(TD)와 관련되는 적어도 하나의 에러 비트를 포함하는 에러 비트 세트를 저장할 수 있다.
테스트 데이터 생성기(130)는 메인 데이터(MD)와 에러 비트 세트(ER_BL)에 기초하여 테스트 데이터(TD)를 생성하고, 테스트 데이터(TD)를 멀티플렉서(170)에 제공한다. 멀티플렉서(170)는 모드 신호(MS)에 응답하여 노멀 모드에서는 메인 데이터(MD)를 선택하여 반도체 메모리 장치(200)에 제공하고 테스트 모드에서는 테스트 데이터(TD)를 선택하여 반도체 메모리 장치(200)에 제공한다.
커맨드 버퍼(180)는 리퀘스트(REQ)에 상응하는 커맨드(CMD)를 저장하고, CPU(110)의 제어에 따라 반도체 메모리 장치(200)에 커맨드(CMD)를 전송하고, 어드레스 버퍼(190)는 어드레스(ADDR)를 저장하고 중앙 처리 장치(110)의 제어에 따라 반도체 메모리 장치(200)에 어드레스(ADDR)를 전송할 수 있다.
도 3은 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 반도체 메모리 장치에 제공되는 또는 반도체 메모리 장치로부터 출력되는 복수의 버스트 길이들에 대응되는 데이터 세트를 나타낸다.
도 3을 참조하면, 반도체 메모리 장치(200)에는/각각으로부터는 복수의 버스트 길이들에 대응되는 데이터 세트(DQ_BL)가 입력/출력된다. 데이터 세트(DQ_BL)는 복수의 버스트 길이들 중 각각의 버스트 길이에 대응되는 데이터 세그먼트들(DQ_BL_SG1~DQ_BL_SGk)을 포함할 수 있다. 즉, 반도체 메모리 장치(200)의 메모리 셀 어레이(310)에는 복수의 버스트 길이들에 대응되는 데이터 세트(DQ_BL)가 저장될 수 있다. 데이터 세트(DQ_BL)는 메인 데이터(MD) 및 테스트 데이터(TD)를 포함할 수 있다.
도 4는 본 발명의 실시예들에 따른 도 2의 메모리 에러 삽입 레지스터 세트, 데이터 버퍼 및 테스트 데이터 생성기를 나타낸다.
도 4를 참조하면, 에러 삽입 레지스터 세트(140)는 레지스터 기입 회로(150) 및 복수의 에러 삽입 레지스터들(141~14k)을 포함할 수 있다. 데이터 버퍼(120)는 데이터 세트(DQ_BL) 중 반도체 메모리 장치(200)의 버스트 길이에 해당하는 제1 단위의 제1 데이터 비트들(DQ_BL_SG1~DQ_BL_SGk)을 각각 저장하는 복수의 데이터 입력 레지스터들(121~12k)을 포함할 수 있다. 데이터 입력 레지스터들(121~12k) 각각은 데이터 세트(DQ_BL) 중 상응하는 제1 단위의 제1 데이터 비트들(DQ_BL_SG1~DQ_BL_SGk) 각각을 테스트 데이터 생성기(130)에 제공할 수 있다.
에러 삽입 레지스터들(141~14k) 각각은 데이터 입력 레지스터들(121~12k) 각각에 상응하며, 제1 단위의 제1 데이터 비트들(DQ_BL_SG1~DQ_BL_SGk) 각각에 상응하는 제2 단위의 제2 데이터 비트들(EB_BL_SG1~EB_BL~SG2) 각각을 저장할 수 있다. 여기서 제1 단위와 제2 단위는 동일할 수 있다.
레지스터 기입 회로(150)는 CPU(110)의 제어에 따라 에러 삽입 레지스터들(121~12k)에 저장된 제2 데이터 비트들을 제1 로직 레벨(로직 로우 레벨)로 유지하거나, 적어도 하나의 제2 데이터 비트를 제2 로직 레벨(로직 하이 레벨)로 변경시킬 수 있다.
테스트 데이터 생성기(130)는 복수의 배타적 논리합 게이트들(131~13k)을 포함한다. 복수의 배타적 논리합 게이트들(131~13k)은 제1 단위의 제1 데이터 비트들(DQ_BL_SG1~DQ_BL_SGk)과 제2 단위의 제2 데이터 비트들(EB_BL_SG1~EB_BL~SG2) 중에서 상응하는 데이터 비트들에 대하여 배타적 논리합 연산을 수행하여 테스트 데이터(TD_SG1~TD_SGk)를 제공할 수 있다.
도 5는 본 발명의 실시예들에 따른 도 4의 에러 삽입 레지스터 세트에 저장될 수 있는 제2 데이터 비트들을 나타낸다.
도 5를 참조하면, 에러 삽입 레지스터 세트(140)의 에러 삽입 레지스터들(141~14k)에는 디폴트로 제1 로직 레벨의 제2 데이터 비트들(V)이 저장될 수 있다. 레지스터 기입 회로(150)는 CPU(110)의 제어에 기초하여 제2 데이터 비트들(V) 중 적어도 하나를 제2 로직 레벨로 변경함으로써 다양한 에러 패턴을 나타내는 테스트 데이터 (TD_SG1~TD_SGk)가 반도체 메모리 장치(200)에 제공되도록 할 수 있다.
도 6 및 도 7은 본 발명의 실시예들에 따른 도 5의 데이터 삽입 레지스터 세트가 나타낼 수 있는 다양한 에러 패턴들을 나타낸다.
도 6은 단일 비트 에러를 나타낸다.
도 6을 참조하면, 제2 데이터 비트들(EB_BL_SG1~EB_BL~SGk) 중에서 하나의 비트만이 로직 하이 레벨을 가진다. 따라서 도 6은 단일 비트 에러를 나타냄을 알 수 있다.
도 7은 더블 비트 에러를 나타낸다.
도 7을 참조하면, 제2 데이터 비트들(EB_BL_SG1~EB_BL~SGk) 중에서 두 개의 비트들이 로직 하이 레벨을 가진다. 따라서 도 7은 더블 비트 에러를 나타냄을 알 수 있다.
도 8은 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 반도체 메모리 장치의 구성을 나타내는 블록도이다.
도 8을 참조하면, 반도체 메모리 장치(200)는 제어 로직 회로(210), 어드레스 레지스터(220), 뱅크 제어 로직(230), 리프레쉬 카운터(245), 로우 어드레스 멀티플렉서(240), 칼럼 어드레스 래치(250), 로우 디코더(260), 칼럼 디코더(270), 메모리 셀 어레이(310), 센스 앰프부(285), 입출력 게이팅 회로(290), 온-다이 ECC 엔진(400) 및 신호 버퍼(297)을 포함할 수 있다.
메모리 셀 어레이(310)는 제1 내지 제8 뱅크 어레이들(310a~310h)을 포함할 수 있다. 또한, 로우 디코더(260)는 제1 내지 제8 뱅크 어레이들(310a~310h)에 각각 연결된 제1 내지 제8 로우 디코더들(260a~260h)을 포함하고, 칼럼 디코더(270)는 제1 내지 제8 뱅크 어레이들(310a~310h)에 각각 연결된 제1 내지 제8 칼럼 디코더들(270a~270h)을 포함하며, 상기 센스 앰프부(285)는 제1 내지 제8 뱅크 어레이들(310a~310h)에 각각 연결된 제1 내지 제8 센스 앰프들(285a~285h)을 포함할 수 있다.
제1 내지 제8 뱅크 어레이들(310a~310h) 각각은 복수의 워드라인(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)에 각각 인가될 수 있다.
리프레쉬 카운터(245)는 제어 로직 회로(210)의 제어에 따라 리프레쉬 로우 어드레스(REF_ADDR)를 순차적으로 증가시키거나 감소시킬 수 있다.
제어 로직 회로(210)는 메모리 컨트롤러(100)로부터의 커맨드(CMD)가 오토 리프레시 커맨드이거나 셀프 리프레쉬 진입 커맨드인 경우에 리프레쉬 로우 어드레스(REF_ADDR)를 순차적으로 출력하도록 리프레쉬 카운터(245)를 제어할 수 있다.
제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 뱅크 어레이들(310a~310h)로부터 출력된 데이터를 저장하기 위한 독출 데이터 래치들, 및 제1 내지 제8 뱅크 어레이들(310a~310h)에 데이터를 기입하기 위한 기입 드라이버들을 포함할 수 있다.
제1 내지 제8 뱅크 어레이들(310a~310h) 중 하나의 뱅크 어레이에서 독출된 코드워드(CW)는 상기 하나의 뱅크 어레이에 상응하는 센스 앰프에 의해 감지되고, 상기 독출 데이터 래치들에 저장될 수 있다. 상기 독출 데이터 래치들에 저장된 코드워드(CW)는 온-다이 ECC 엔진(400)에 의하여 ECC 디코딩이 수행된 후에 데이터 입출력 버퍼(295)를 통하여 상기 메모리 컨트롤러(100)에 제공될 수 있다.
제1 내지 제8 뱅크 어레이들(310a~310h) 중 하나의 뱅크 어레이에 기입될 메인 데이터(MD)는 온-다이 ECC 엔진(400)에 제공되고, 온-다이 ECC 엔진(400)은 메인 데이터(MD)에 기초하여 패리티 데이터를 생성하고, 메인 데이터(MD)와 패리티 데이터를 포함하는 코드워드(CW)를 입출력 게이팅 회로(290)에 제공하고, 입출력 게이팅 회로(290)는 상기 기입 드라이버들을 통하여 상기 코드워드(CW)를 상기 하나의 뱅크 어레이의 서브 페이지에 기입할 수 있다.
데이터 입출력 버퍼(295)는 노멀 모드의 기입 동작에서 메모리 컨트롤러(100)로부터 제공되는 메인 데이터(MD)를 온-다이 ECC 엔진(400)에 제공하고, 테스트 모드의 기입 동작에서는 적어도 하나의 에러 비트를 선택저긍로 포함하는 테스트 데이터(TD)를 온-다이 ECC 엔진(400)에 제공할 수 있다.
온-다이 ECC 엔진(400)은 노멀 모드에서는 기입 커맨드에 수반되는, 메인 데이터(MD)에 ECC 인코딩을 수행하여 패리티 데이터를 생성하고, 메인 데이터(MD)와 패리티 데이터를 포함하는 코드워드(CW)를 입출력 게이팅 회로(290)를 통하여 타겟 뱅크 어레이의 노멀 셀 영역과 패리티 셀 영역에 각각 기입할 수 있다.
온-다이 ECC 엔진(400)은 테스트 모드에서는 기입 커맨드에 수반되는, 적어도 하나의 에러 비트를 포함하는 테스트 데이터(TD)를 내부의 제1 래치에 갱신하고, 테스트 모드에서 독출 커맨드에 응답하여 상기 테스트 데이터(TD)와 내부의 제2 래치로부터 독출된 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 심각성 신호(SEV)를 생성하고, 심각성 신호(SEV)를 신호 버퍼(297)를 통하여 메모리 컨트롤러(100)에 제공할 수 있다.
제어 로직 회로(210)는 반도체 메모리 장치(200)의 동작을 제어할 수 있다. 예를 들어, 제어 로직 회로(210)는 반도체 메모리 장치(200)가 기입 동작, 독출 동작 또는 테스트 모드에서의 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 로직 회로(210)는 상기 메모리 컨트롤러(100)로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(211) 및 반도체 메모리 장치(200)의 동작 모드를 설정하기 위한 모드 레지스터들(212)을 포함할 수 있다.
예를 들어, 커맨드 디코더(211)는 기입 인에이블 신호, 로우 어드레스 스트로브 신호, 칼럼 어드레스 스트로브 신호, 칩 선택 신호 등을 디코딩하여 커맨드(CMD)에 상응하는 상기 제어 신호들을 생성할 수 있다.
특히 제어 로직 회로(210)는 커맨드(CMD)를 디코딩하여 입출력 게이팅 회로(290)를 제어하는 제1 제어 신호(CTL1) 및 온-다이 ECC 엔진(400)을 제어하는 제2 제어 신호(CTL2)를 생성할 수 있다.
도 9는 본 발명의 실시예들에 따른 도 8의 반도체 메모리 장치에서 제1 뱅크 어레이를 나타낸다.
도 9를 참조하면, 제1 뱅크 어레이(310a)는 복수개의 워드라인들(WL0~WLm-1, m은 2이상의 짝수인 정수), 복수개의 비트라인들(BL0~BLn-1, n은 2이상의 짝수인 정수), 그리고 워드라인들(WL0~WLm-1)과 비트라인들(BL0~BLn-1) 사이의 교차점에 배치되는 복수개의 메모리 셀들(MCs)을 포함한다.
워드라인들(WL0~WLm-1)은 제1 방향(D1)으로 연장되고, 비트라인들(BL0~BLn-1)은 제2 방향(D2)으로 연장될 수 있다.
각 메모리 셀(MC)은 DRAM 셀 구조를 갖는다. 또한, 짝수 워드라인(WL0) 각각과 홀수 워드라인(WL1)에 연결되는 메모리 셀들(MCs)의 배치가 서로 다름을 알 수 있다. 즉 액세스 어드레스에 의하여 짝수 워드라인이 선택되는 경우와 홀수 워드라인이 선택되는 경우에 인접한 셀들에 연결되는 비트라인들이 달라질 수 있다.
도 10은 본 발명의 실시예들에 따른 도 8의 반도체 메모리 장치의 모드 레지스터들에 포함되는 테스트 모드 레지스터를 나타낸다.
도 10을 참조하면, 테스트 모드 레지스터(MRx)는 복수의 동작 코드들(OP[6:0])을 저장할 수 있다.
복수의 동작 코드들(OP[6:0]) 중 제1 동작 코드(OP[6])에 의하여 ECC 에러 삽입 모드(ECC_Error_Injection)의 진입 여부가 설정될 수 있다. 제1 동작 코드(OP[6])가 제1 로직 레벨(로우 레벨)인 경우, 반도체 메모리 장치(200)는 노멀 동작을 수행하고, 제1 동작 코드(OP[6])가 제2 로직 레벨(하이 레벨)인 경우, 반도체 메모리 장치(200)는 테스트 모드에 진입하여 ECC 에러 삽입 모드에서 동작할 수 있다.
ECC 에러 삽입 모드로 설정되는 경우, 복수의 동작 코드들(OP[6:0]) 중 제2 동작 코드(OP[5])에 의하여 제1 래치(도 11의 423)에 저장되는 백그라운드 데이터의 타입이 설정될 수 있다. 즉, 제2 동작 코드(OP[5])가 제1 로직 레벨인 경우, 제1 코드워드(CW0)에 관련된 제1 타입의 백그라운드 데이터가 제1 래치(423)에 저장되고, 제2 동작 코드(OP[5])가 제2 로직 레벨인 경우, 제2 코드워드(CW2)에 관련된 제2 타입의 백그라운드 데이터가 제1 래치(423)에 저장될 수 있다.
제1 타입의 백그라운드 데이터의 데이터 비트들은 모두 로우 레벨이므로, 하이 레벨의 비트는 에러 비트를 나타낼 수 있고, 제2 타입의 백그라운드 데이터의 데이터 비트들은 모두 하이 레벨이므로, 로우 레벨의 비트는 에러 비트를 나타낼 수 있다.
ECC 에러 삽입 모드로 설정되는 경우, 복수의 동작 코드들(OP[6:0]) 중 제3 동작 코드(OP[4])에 의하여, 테스트 패리티 데이터의 에러 비트 포함 여부가 설정될 수 있다. 즉, 제3 동작 코드(OP[4])가 제1 로직 레벨인 경우, 테스트 패리티 데이터는 에러 비트를 포함하지 않고, 제3 동작 코드(OP[4])가 제2 로직 레벨인 경우, 테스트 패리티 데이터는 하나의 에러 비트를 포함할 수 있다.
ECC 에러 삽입 모드로 설정되고, 테스트 패리티 데이터가 상기 에러 비트를 포함하도록 설정되는 경우, 복수의 동작 코드들(OP[6:0]) 중 제4 내지 제7 동작 코드들(OP[3:0])에 의하여 상기 테스트 패리티 데이터의 패리티 비트들 중 상기 에러 비트를 포함하는 패리티 비트의 위치가 선택(Parity_sel)될 수 있다.
만일 테스트 패리티 데이터가 16-비티의 패리티 비트들을 포함하는 경우, 제4 내지 제7 동작 코드들(OP[3:0])이 [0000]이면, 에러 마스크는 [1000000000000000]일 수 있다. 또한 제4 내지 제7 동작 코드들(OP[3:0])이 [1111]이면, 에러 마스크는 [0000000000000001]일 수 있다. 에러 마스크와 백그라운드 패리티 데이터에 대하여 배타적 오어 연산이 수행되어 테스트 패리티 데이터가 생성될 수 있다.
즉, 본 발명의 실시예들에 따른 테스트 모드 레지스터(MRx)는 테스트 모드에서 백그라운드 데이터의 타입, 테스트 패리티 데이터의 에러 비트 포함 여부 및 테스트 패리티 데이터에서 에러 비트의 위치를 설정할 수 있다. 따라서, 메모리 컨트롤러(100)는 테스트 데이터가 에러 비트를 포함하는 경우 뿐만 아니라 테스트 패리티 데이터가 에러 비트를 포함하는 경우에도 온-다이 ECC 엔진(400)을 테스트할 수 있어, 테스트 커버리지를 향상시킬 수 있다.
도 11은 본 발명의 실시예들에 따른 도 8의 반도체 메모리 장치에서 온-다이 ECC 엔진의 구성을 나타내는 블록도이다.
도 11을 참조하면, 온-다이 ECC 엔진(400)은 디멀티플렉서(411), 제1 멀티플렉서(413), 제2 멀티플렉서(415), 제3 멀티플렉서(417), 제1 레지스터(421), 제1 래치(423), 제2 레지스터(425), 제2 래치(427), 패리티 에러 패턴 생성기(430), 인코딩/디코딩 로직(440), 데이터 정정기(470) 및 버퍼 회로(490)를 포함할 수 있다.
버퍼 회로(490)는 버퍼들(491, 492, 493, 494)를 포함할 수 있다. 버퍼들(491, 492, 493, 494)은 버퍼 제어 신호(BCTL)에 의하여 제어될 수 있다.
디멀티플렉서(411)는 노멀 모드에서 메인 데이터(MD)를 수신하고, 제1 선택 신호(SS1)에 응답하여 메인 데이터(MD)를 제2 멀티플렉서(415)와 버퍼 회로(490)의 버퍼(491)에 제공할 수 있다. 디멀티플렉서(411)는 테스트 모드에서는 테스트 데이터(TD)를 수신하고, 제1 선택 신호(SS1)에 응답하여 테스트 데이터(TD)를 제1 래치(423)에 갱신할 수 있다.
제1 멀티플렉서(413)는 노멀 모드에서 버퍼(492)로부터 메인 데이터(MD)를 수신하고, 제1 선택 신호(SS1)에 응답하여 메인 데이터(MD)를 제2 멀티플렉서(415)와 데이터 정정기(470)에 제공할 수 있다. 제1 멀티플렉서(413)는 테스트 모드에서 모드에서 제1 래치(423)로부터 테스트 데이터(TD)를 수신하고, 제1 선택 신호(SS1)에 응답하여 테스트 데이터(TD)를 제2 멀티플렉서(415)와 데이터 정정기(470)에 제공할 수 있다.
제2 멀티플렉서(415)는 제2 선택 신호(SS2)에 응답하여 기입 동작에서는 메인 데이터(MD)를 인코딩/디코딩 로직(440)에 제공하고, 테스트 모드에서는 제1 멀티플렉서(413)의 출력을 인코딩/디코딩 로직(440)에 제공할 수 있다.
제3 멀티플렉서(417)는 노멀 모드에서는 버퍼(494)로부터 패리티 데이터(PRT)를 수신하고, 제1 선택 신호(SS1)에 응답하여 패리티 데이터(PRT)를 인코딩/디코딩 로직(440)에 제공하고, 테스트 모드에서는 제2 래치(427)로부터 테스트 패리티 데이터(TPRT)를 수신하고, 제1 선택 신호(SS1)에 응답하여 테스트 패리티 데이터(TPRT)를 인코딩/디코딩 로직(440)에 제공할 수 있다.
제1 레지스터(421)는 제1 타입의 백그라운드 데이터(BD0) 및 제2 타입의 백그라운드 데이터(BD1)를 저장하고, 테스트 모드에서 제2 동작 코드(OP[5])의 설정에 의한 제1 레지스터 제어 신호(RCTL1)에 기초하여 제1 타입의 백그라운드 데이터(BD0) 및 제2 타입의 백그라운드 데이터(BD1) 중 하나를 백그라운드 데이터로서 제1 래치(423)에 제공할 수 있다.
제1 래치(423)는 테스트 모드에서 제1 타입의 백그라운드 데이터(BD0) 및 제2 타입의 백그라운드 데이터(BD1) 중 하나를 저장하고 있다가, 테스트 데이터(TD)에 의하여 갱신되고, 테스트 모드에서 제1 래치 제어 신호(LCTL1)에 기초하여 테스트 데이터(TD)를 제1 멀티플렉서(413)에 제공할 수 있다.
제2 레지스터(425)는 제1 타입의 백그라운드 패리티 데이터(P0) 및 제2 타입의 백그라운드 패리티 데이터(P1)를 저장하고, 테스트 모드에서 제2 동작 코드(OP[5])의 설정에 의한 제2 레지스터 제어 신호(RCTL2)에 기초하여 제1 타입의 백그라운드 패리티 데이터(P0) 및 제2 타입의 백그라운드 패리티 데이터(P1) 중 하나를 제2 래치(427)에 제공할 수 있다.
제2 래치(427)는 테스트 모드에서 제1 타입의 백그라운드 패리티 데이터(P0) 및 제2 타입의 백그라운드 패리티 데이터(P1) 중 하나를 저장하고 있다가, 패리티 에러 패턴(PEP)에 의하여 에러 비트가 삽입되고, 테스트 모드에서 제2 래치 제어 신호(LCTL2)에 기초하여 테스트 패리티 데이터(TPRT)를 제3 멀티플렉서(417)에 제공할 수 있다.
패리티 에러 패턴 생성기(430)는 제4 내지 제7 동작 코드들(OP[3:0])에 상응하는 에러 비트 설정 신호(EB_SEL)에 의하여 에러 비트의 위치가 설정되고, 에러 비트를 포함하는 패리티 에러 패턴(PEP)을 제2 래치(427)에 제공하고, 제2 래치(427)는 제1 타입의 백그라운드 패리티 데이터(P0) 및 제2 타입의 백그라운드 패리티 데이터(P1) 중 하나와 패리티 에러 패턴(PEP)에 대하여 배타적 오어 연산을 수행하여 테스트 패리티 데이터(TPRT)를 제2 래치(427)에 제공할 수 있다.
인코딩/디코딩 로직(440)은 노멀 모드의 기입 동작에서는 제2 멀티플렉서(415)로부터 메인 데이터(MD)를 수신하고, 메인 데이터(MD)에 대하여 ECC 인코딩을 수행하여 패리티 데이터(PRT)를 생성하고, 패리티 데이터(PRT)를 버퍼(493)를 통하여 메모리 셀 어레이(310)에 제공할 수 있다. 인코딩/디코딩 로직(440)은 노멀 모드의 독출 동작에서는 제2 멀티플렉서(415)로부터 메인 데이터(MD)를 수신하고, 제3 멀티플렉서(417)로부터 패리티 데이터(PRT)를 수신하고, 패리티 데이터(PRT)를 이용하여 메인 데이터(MD)에 대하여 ECC 디코딩을 수행하여 신드롬(SDR)을 생성하고, 신드롬(SDR)을 데이터 정정기(470)와 심각성 신호 생성기(480)에 제공할 수 있다.
인코딩/디코딩 로직(440)는 테스트 모드의 독출 동작에서는 제2 멀티플렉서(415)로부터 테스트 데이터(TD)를 수신하고, 제3 멀티플렉서(417)로부터 테스트 패리티 데이터(TPRT)를 수신하고, 테스트 패리티 데이터(TPRT)를 이용하여 테스트 데이터(TD)에 대하여 ECC 디코딩을 수행하여 신드롬(SDR)을 생성하고, 신드롬(SDR)을 데이터 정정기(470)와 심각성 신호 생성기(480)에 제공할 수 있다.
데이터 정정기(470)는 노멀 모드의 독출 동작에서, 메인 데이터(MD)를 수신하고, 신드롬(SDR)에 기초하여 메인 데이터(MD)의 하나의 에러 비트를 정정하여 정정된 메인 데이터(C_MD)를 출력할 수 있다. 데이터 정정기(470)은 테스트 모드의 독출 동작에서, 테스트 데이터(TD)를 수신하고, 신드롬(SDR)에 기초하여 테스트 데이터(TD)의 하나의 에러 비트를 정정하여 정정된 테스트 데이터(C_TD)를 출력할 수 있다.
데이터 정정기(470)는 독출 동작에서 메인 데이터(MD) 또는 테스트 데이터(TD)가 두 개 이상의 에러 비트들을 포함하는 경우에, 메인 데이터(MD) 또는 테스트 데이터(TD)의 두 개 이상의 에러 비트들을 정정하지 않고, 메인 데이터(MD) 또는 테스트 데이터(TD)를 출력할 수 있다.
심각성 신호 생성기(480)는 신드롬(SDR)에 기초하여 데이터(MD) 또는 테스트 데이터(TD)의 에러의 포함 여부 및 에러의 정정 가능 여부를 나타내는 심각성 신호(SEV)를 생성할 수 있다.
도 11에서 제1 선택 신호(SS1), 제2 선택 신호(SS2), 버퍼 제어 신호(BCTL), 제1 레지스터 제어 신호(RCTL1), 제2 레지스터 제어 신호(RCTL2), 제1 래치 제어 신호(LCTL1), 제2 래치 제어 신호(LCTL2) 및 에러 비트 선택 신호(EB_SEL)는 도 8의 제2 제어 신호(CTL2)에 포함될 수 있다.
도 12는 본 발명의 실시예들에 따른 도 11의 온-다이 ECC 엔진에서 인코딩/디코딩 로직을 나타낸다.
도 12를 참조하면, 인코딩/디코딩 로직(440)은 패리티 생성기(441), 체크 비트 생성기(443), 신드롬 생성기(450) 및 메모리(445)를 포함할 수 있다. 메모리(445)는 ECC(447)를 저장할 수 있다.
패리티 생성기(441)는 메모리(445)에 연결되고 배타적 오어 게이트 어레이를 이용하여 메인 데이터(MD)를 기초로 패리티 데이터(PRT)를 생성할 수 있다.
체크 비트 생성기(443)는 메모리(445)에 연결되고, ECC(447)를 이용하여 노멀 모드의 독출 동작에서는 메인 데이터(MD)를 기초로 체트 비트들(CHB)을 생성하고, 테스트 모드의 독출 동작에서는 테스트 데이터(TD)를 기초로 체크 비트들(CHB)를 생성할 수 있다.
신드롬 생성기(450)는 노멀 모드의 독출 동작에서는 메인 데이터(MD)를 기초로 한 체크 비트들(CHB)과 버퍼(494)로부터 제공되는 패리티 데이터(PRT)를 기초로 신드롬 데이터(SDR)를 생성하고, 테스트 모드의 독출 동작에서는 테스트 데이터(TD)를 기초로 한 체크 비트들(CHB)과 제2 래치(427)에서 제공되는 테스트 패리티 데이터(PRT)를 기초로 신드롬 데이터(SDR)를 생성할 수 있다. 신드롬 생성기(450)는 체크 비트들(CHB) 각각과 패리티 데이터(PRT) 또는 테스트 패리티 데이터(PRT)의 비트들 각각의 동일성 여부에 기초하여 신드롬 데이터(SDR)를 생성할 수 있다.
신드롬(SDR)은 복수의 신드롬 비트들을 포함할 수 있고, 복수의 신드롬 비트들 각각은 체크 비트들(CHB) 각각과 패리티 데이터(PRT) 또는 테스트 패리티 데이터(PRT)의 비트들 각각의 동일성 여부를 나타낼 수 있다. 따라서, 신드롬(SDR)은 에러 비트의 위치 및 에러 비트의 수를 나타낼 수 있다.
도 13은 본 발명의 실시예들에 따른 도 11의 온-다이 ECC 엔진에서 데이터 정정기의 구성을 나타낸다.
도 13을 참조하면, 데이터 정정기(470)는 신드롬 디코더(471), 비트 반전기(473) 및 멀티플렉서로 구현되는 선택 회로(475)를 포함할 수 있다.
신드롬 디코더(471)는 신드롬(SDR)을 디코딩하여 에러 비트의 위치를 나타내는 디코딩 신호(DS)와 상기 에러 비트의 수에 따른 로직 레벨을 가지는 제3 선택 신호(SS3)를 생성할 수 있다. 비트 반전기(473)는 디코딩 신호(DS)에 응답하여 에러 비트를 반전시킬 수 있다. 선택 회로(475)는 제3 선택 신호(SS3)에 응답하여 노멀 모드에서는 메인 데이터(MD)와 비트 반전기(473)의 출력 중 하나를 정정된 메인 데이터(C_MD)로 제공하고, 테스트 모드에서는 테스트 데이터(TD)와 비트 반전기(473)의 출력 중 하나를 정정된 테스트 데이터(C_TD)로 제공할 수 있다.
도 14는 본 발명의 실시예들에 따른 테스트 모드에서 반도체 메모리 장치가 수신하는 커맨드 시퀀스를 나타내고, 도 15는 테스트 모드에서 도 1의 메모리 시스템의 동작을 나타낸다.
도 1, 도 10, 도 11, 도 14 및 도 15를 참조하면, 메모리 컨트롤러(100)는 제1 모드 레지스터 셋 커맨드(MRS1)를 반도체 메모리 장치(200)에 인가하여(S110), 도 10의 반도체 메모리 장치(200)를 테스트 모드로 진입시키고(S115), 테스트 모드 레지스터(MRx)의 복수의 동작 코드들(OP[6:0])들은 에러 삽입 모드로 설정된다(S120). 복수의 동작 코드들(OP[6:0])들이 에러 삽입 모드로 설정된 것에 응답하여 제1 래치(423)에는 제1 타입의 백그라운드 데이터(BD0) 및 제2 타입의 백그라운드 데이터(BD1) 중 하나가 저장되고, 제2 래치(427)에는 제1 타입의 패리티 데이터(P0) 및 제2 타입의 패리티 데이터(P1) 중 하나가 저장된다.
메모리 컨트롤러(100)는 제1 기입 커맨드(WR1)와 제1 테스트 데이터(TD1)를 반도체 메모리 장치(200)에 인가하고(S125), 온-다이 ECC 엔진(400)은 제1 래치(423)에 제1 테스트 데이터(TD1)를 저장하여 제1 래치(423)를 갱신하고(S130), 패리티 에러 패턴(PEP)를 제2 래치(427)에 저장하여 제2 래치(427)를 갱신한다.
메모리 컨트롤러(100)는 제1 독출 커맨드(RD1)를 반도체 메모리 장치(200)에 인가하고(S135), 온-다이 ECC 엔진(400)은 제1 래치(423)에 저장된 제1 테스트 데이터(TD1)와 제2 래치(427)에 저장된 테스트 패리티 데이터(TPRT)에 기초하여 ECC 디코딩을 수행하고 ECC 디코딩의 결과에 기초하여 심각성 신호(SEV1)를 생성하고, 심각성 신호(SEV1)를 메모리 컨트롤러(100)에 전송한다(S145).
메모리 컨트롤러(100)는 제2 기입 커맨드(WR1)와 제2 테스트 데이터(TD2)를 반도체 메모리 장치(200)에 인가하고(S150), 온-다이 ECC 엔진(400)은 제1 래치(423)에 제2 테스트 데이터(TD2)를 저장하여 제1 래치(423)를 갱신한다(S155).
메모리 컨트롤러(100)는 제2 독출 커맨드(RD2)를 반도체 메모리 장치(200)에 인가하고(S160), 온-다이 ECC 엔진(400)은 제1 래치(423)에 저장된 제2 테스트 데이터(TD2)와 제2 래치(427)에 저장된 테스트 패리티 데이터(TPRT)에 기초하여 ECC 디코딩을 수행하고 ECC 디코딩의 결과에 기초하여 심각성 신호(SEV2)를 생성하고, 심각성 신호(SEV2)를 메모리 컨트롤러(100)에 전송한다(S170).
다양한 테스트 데이터와 다양한 테스트 패리티 데이터에 대하여 상술한 과정이 반복되고, 메모리 컨트롤러(100)는 제2 모드 레지스터 셋 커맨드(MRS2)를 반도체 메모리 장치(200)에 인가하고(S175), 반도체 메모리 장치(200)는 2 모드 레지스터 셋 커맨드(MRS2)에 응답하여 테스트 모드를 탈출한다(S180).
도 16은 테스트 모드에서 도 11의 온-다이 ECC 엔진의 동작을 나타낸다.
도 16에서는 테스트 모드에서 테스트 모드 레지스터(MRx)의 설정에 의하여 제1 래치(423)에 제1 타입의 백그라운드 데이터(BD0)가 저장되고, 제2 래치(427)에 제1 타입의 백그라운드 패리티 데이터(P0)가 저장됨을 가정한다.
도 16을 참조하면, 테스트 모드에서 버퍼 회로(490)는 버퍼 제어 신호(BCTL)에 기초하여 온-다이 ECC 엔진(400)과 메모리 셀 어레이(310)의 연결을 차단한다.
메모리 컨트롤러(100)로부터의 기입 커맨드에 수반된 테스트 데이터(TD)가 디멀티플렉서(411)를 통하여 제1 래치(423)에 저장되어, 제1 래치(423)가 갱신되고, 에러 비트 선택 신호(SEL)에 기초한 패리티 에러 패턴(PEP)이 제2 래치(427)에 저장되어, 제2 래치(427)가 갱신된다.
메모리 컨트롤러(100)로부터 독출 커맨드에 응답하여 인코딩/디코딩 로직(440)은 제1 래치(423)에 저장된 테스트 데이터(TD)와 제2 래치(427)에 저장된 테스트 패리티 데이터(TPRT)에 기초하여 ECC 디코딩을 수행하여 신드롬(SDR)를 생성하고, 심각성 신호 생성기(480)는 신드롬(SDR)에 기초하여 심각성 신호(SEV)를 생성할 수 있다. 또한, 데이터 정정기(470)는 신드롬(SDR)에 기초하여 테스트 데이터(TD)의 하나의 에러 비트를 정정하여 정정된 테스트 데이터(C_TD)를 출력할 수 있다.
도 17은 테스트 모드에서 도 16의 온-다이 ECC 엔진에서 입출력 되는 데이터를 나타낸다.
도 17에서는 테스트 모드에서 테스트 모드 레지스터(MRx)의 설정에 의하여 제1 래치(423)에 제1 타입의 백그라운드 데이터(BD0)가 저장되고, 제2 래치(427)에 제1 타입의 백그라운드 패리티 데이터(P0)가 저장됨을 가정한다.
도 17에서 에러 패턴 입력(Error Pattern Input)은 도 16의 테스트 데이터(TD)에 해당할 수 있고, 에러 패턴 출력(Error Pattern Output)은 도 16의 정정된 테스트 데이터(C_TD)에 해당할 수 있고, 패리티 에러(Parity Error)는 도 16의 테스트 패리티 데이터(TPRT)에 해당할 수 있고, 심각성 신호 결과(SEV Result)는 도 16의 심각성 신호(SEV)에 해당할 수 있고, 기대 심각성 신호(Expected SEV)는 도 2의 CPU(110)가 여러 가지 에러 패턴들에 대하여 예측하는 심각성 신호일 수 있다. 도 17에서 에러 패턴 입력(Error Pattern Input)과 에러 패턴 출력(Error Pattern Output) 각각에서 하이 레벨은 에러 비트를 나타낼 수 있다.
또한 도 17에서, 에러 패턴 입력(Error Pattern Input)과 에러 패턴 출력(Error Pattern Output)은 각각 256비트를 포함하고, 패리티 에러(Parity Error)는 16비트를 포함함을 가정한다.
도 17을 참조하면, 에러 패턴 입력(Error Pattern Input)과 패리티 에러(Parity Error)가 에러 비트를 포함하지 않는 경우, 도 16의 심각성 신호 생성기(480)는 에러가 발생하지 않았음(NE)을 나타내는 심각성 신호(SEV)를 메모리 컨트롤러(100)에 전송하고, CPU(110)는 에러가 발생하지 않았음(NE)을 나타내는 심각성 신호(SEV)와 기대 심각성 신호를 비교하여 온-다이 ECC 엔진(400)의 정상 동작 여부를 판단할 수 있다.
에러 패턴 입력(Error Pattern Input)과 패리티 에러(Parity Error) 중 하나가 에러 비트를 포함하는 경우, 도 16의 심각성 신호 생성기(480)는 하나의 에러 비트가 정정되었음(CE)을 나타내는 심각성 신호(SEV)를 메모리 컨트롤러(100)에 전송하고, CPU(110)는 CE를 나타내는 심각성 신호(SEV)와 기대 심각성 신호를 비교하여 온-다이 ECC 엔진(400)의 정상 동작 여부를 판단할 수 있다.
에러 패턴 입력(Error Pattern Input)이 두 개 이상의 에러 비트들을 포함하거나, 에러 패턴 입력(Error Pattern Input)과 패리티 에러(Parity Error) 각각이 에러 비트를 포함하는 경우, 도 16의 심각성 신호 생성기(480)는 에러 비트들을 정정할 수 없음(UE)을 나타내는 심각성 신호(SEV)를 메모리 컨트롤러(100)에 전송하고, CPU(110)는 UE를 나타내는 심각성 신호(SEV)와 기대 심각성 신호를 비교하여 온-다이 ECC 엔진(400)의 정상 동작 여부를 판단할 수 있다.
심각성 신호(SEV)와 기대 심각성 신호가 다른 경우, CPU(110)는 온-다이 ECC 엔진(400)이 비정상적으로 동작한다고 판단할 수 있다.
도 18은 테스트 모드에서 도 16의 온-다이 ECC 엔진에서 입출력 되는 데이터를 나타낸다.
도 18에서는 테스트 모드에서 테스트 모드 레지스터(MRx)의 설정에 의하여 제1 래치(423)에 제2 타입의 백그라운드 데이터(BD1)가 저장되고, 제2 래치(427)에 제1 타입의 백그라운드 패리티 데이터(P1)가 저장됨을 가정한다.
도 18에서 에러 패턴 입력(Error Pattern Input)은 도 16의 테스트 데이터(TD)에 해당할 수 있고, 에러 패턴 출력(Error Pattern Output)은 도 16의 정정된 테스트 데이터(C_TD)에 해당할 수 있고, 패리티 에러(Parity Error)는 도 16의 테스트 패리티 데이터(TPRT)에 해당할 수 있고, 심각성 신호 결과(SEV Result)는 도 16의 심각성 신호(SEV)에 해당할 수 있고, 기대 심각성 신호(Expected SEV)는 도 2의 CPU(110)가 여러 가지 에러 패턴들에 대하여 예측하는 심각성 신호일 수 있다. 도 18에서 에러 패턴 입력(Error Pattern Input)과 에러 패턴 출력(Error Pattern Output) 각각에서 로우 레벨은 에러 비트를 나타낼 수 있다.
또한 도 18에서, 에러 패턴 입력(Error Pattenr Input)과 에러 패턴 출력(Error Pattern Output)은 각각 256비트를 포함하고, 패리티 에러(Parity Error)는 16비트를 포함함을 가정한다.
도 18을 참조하면, 에러 패턴 입력(Error Pattern Input)과 패리티 에러(Parity Error)가 에러 비트를 포함하지 않는 경우, 도 16의 심각성 신호 생성기(480)는 에러가 발생하지 않았음(NE)을 나타내는 심각성 신호(SEV)를 메모리 컨트롤러(100)에 전송하고, CPU(110)는 에러가 발생하지 않았음(NE)을 나타내는 심각성 신호(SEV)와 기대 심각성 신호를 비교하여 온-다이 ECC 엔진(400)의 정상 동작 여부를 판단할 수 있다.
에러 패턴 입력(Error Pattern Input)과 패리티 에러(Parity Error) 중 하나가 에러 비트를 포함하는 경우, 도 16의 심각성 신호 생성기(480)는 하나의 에러 비트가 정정되었음(CE)을 나타내는 심각성 신호(SEV)를 메모리 컨트롤러(100)에 전송하고, CPU(110)는 CE를 나타내는 심각성 신호(SEV)와 기대 심각성 신호를 비교하여 온-다이 ECC 엔진(400)의 정상 동작 여부를 판단할 수 있다.
에러 패턴 입력(Error Pattern Input)이 두 개 이상의 에러 비트들을 포함하거나, 에러 패턴 입력(Error Pattern Input)과 패리티 에러(Parity Error) 각각이 에러 비트를 포함하는 경우, 도 16의 심각성 신호 생성기(480)는 에러 비트들을 정정할 수 없음(UE)을 나타내는 심각성 신호(SEV)를 메모리 컨트롤러(100)에 전송하고, CPU(110)는 UE를 나타내는 심각성 신호(SEV)와 기대 심각성 신호를 비교하여 온-다이 ECC 엔진(400)의 정상 동작 여부를 판단할 수 있다.
심각성 신호(SEV)와 기대 심각성 신호가 다른 경우, CPU(110)는 온-다이 ECC 엔진(400)이 비정상적으로 동작한다고 판단할 수 있다.
도 19는 노멀 모드의 기입 동작에서 도 8의 반도체 메모리 장치의 일부를 나타낸다.
도 19에서는 제어 로직 회로(210), 제1 뱅크 어레이(310a), 입출력 게이팅 회로(290) 및 온-다이 ECC 엔진(400)이 도시되어 있다.
도 19를 참조하면, 제1 뱅크 어레이(310a)는 노멀 셀 영역(NCA) 및 리던던시 셀 영역(RCA)을 포함할 수 있다.
노멀 셀 영역(NCA)은 복수의 제1 메모리 블록들(MB0~MB15, 311, 312, 313)을 포함할 수 있고, 리던던시 셀 영역(RCA)은 적어도 하나의 제2 메모리 블록(314)을 포함할 수 있다. 제2 메모리 블록(314)은 제1 메모리 블록들(311, 312, 313)에서 발생하는 불량 셀을 구제하기 위하여 ECC 용, 데이터 라인 리페어 용(data line repair) 및 블록 리페어용(block repair) 것으로 EDB 블록이라 칭할 수도 있다. 리던던시 셀 영역(RCA)은 패리티 셀 영역이라고 칭할 수도 있다.
입출력 게이팅 회로(290)는 제1 메모리 블록들(311, 312, 313) 및 제2 메모리 블록(294)과 각각 연결되는 복수의 스위칭 회로들(291a~291d)을 포함할 수 있다.
온-다이 ECC 엔진(400)은 스위칭 회로들(291a~291d)과 상응하는 제1 데이터 라인들(GIO) 및 제2 데이터 라인들(EDBIO) 각각을 통하여 연결될 수 있다. 제어 로직 회로(210)는 어드레스(ADDR) 및 커맨드(CMD)를 디코딩하여 스위칭 회로들(291a~291d)을 제어하는 제1 제어 신호(CTL1)를 입출력 게이팅 회로(290)에 제공하고, 제2 제어 신호(CTL2)를 온-다이 ECC 엔진(400)에 제공할 수 있다.
커맨드(CMD)가 기입 커맨드인 경우, 제어 로직 회로(210)는 제2 제어 신호(CTL2)를 온-다이 ECC 엔진(400)에 인가하고, 온-다이 ECC 엔진(400)은 제2 제어 신호(CTL2)에 응답하여 메인 데이터(MD)에 대하여 ECC 인코딩을 수행하여 패리티 데이터를 생성하고, 메인 데이터(MD)와 패리티 데이터를 포함하는 코드워드(CW)를 입출력 게이팅 회로(290)에 제공할 수 있다.
제어 로직 회로(210)는 제1 제어 신호(CTL1)를 입출력 게이팅 회로(290)에 인가하여 제1 뱅크 어레이(310)의 타겟 페이지의 하나의 서브 페이지에 코드워드(CW)가 저장되도록 할 수 있다.
도 20은 노멀 모드의 독출 동작에서 도 8의 반도체 메모리 장치의 일부를 나타낸다.
도 20에서 도 19와 반복되는 설명은 생략한다.
도 20을 참조하면, 커맨드(CMD)가 독출 동작을 지시하는 독출 커맨드인 경우, 제어 로직 회로(210)는 제1 제어 신호(CTL1)를 입출력 게이팅 회로(290)에 인가하여 제1 뱅크 어레이(310)의 타겟 페이지의 서브 페이지에 저장된 코드워드(RCW)가 온-다이 ECC 엔진(400)에 제공되도록 할 수 있다.
온-다이 ECC 엔진(400)은 코드워드(RCW)에 포함되는 패리티 데이터와 메인 데이터에 대하여 ECC 디코딩을 수행하여 하나의 코드워드(RCW)에 포함되는 하나의 에러 비트를 정정하고, 정정된 메인 데이터(C_MD)를 출력할 수 있다.
도 21은 본 발명의 실시예들에 따른 반도체 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 1 내지 도 18 및 도 21을 참조하면, 메모리 셀 어레이(310), 온-다이 ECC 엔진(400) 및 제어 로직 회로(210)를 포함하는 반도체 메모리 장치(200)의 동작 방법에서는 메모리 컨트롤러(100)로부터의 제1 모드 레지스트 셋 커맨드에 응답하여 제어 로직 회로(210)의 에러 삽입 모드와 관계되는 모드 레지스터(MRx)가 테스트 모드로 설정된다(S210).
테스트 모드 레지스터(MRx)의 복수의 동작 코드들(OP[6:0])에 의하여 ECC 에러 삽입 모드(ECC_Error_Injection)의 진입 여부, 백그라운드 데이터의 타입, 테스트 패리티 데이터의 에러 비트 포함 여부 및 에러 비트를 포함하는 패리티 비트의 위치가 선택될 수 있다.
메모리 컨트롤러(100)로부터의 기입 커맨드에 응답하여, 테스트 모드에서 메모리 셀 어레이(310)와의 연결을 차단하고, 온-다이 ECC 엔진(400)의 제1 래치(423)에 테스트 데이터(TD)가 저장되고(S220), 제2 래치(427)에 패리티 에러 패턴(PEP)이 인가된다.
메모리 컨트롤러(100)로부터의 독출 커맨드에 응답하여, 온-다이 ECC 엔진(400)의 인코딩/디코딩 로직(440)은 제1 래치(423)에 저장된 테스트 데이터(TD)와 제2 래치(427)에 저장된 테스트 패리티 데이터(TPRT)에 기초하여 ECC 인코딩을 수행하고(S230), 심각성 신호 생성기(480)는 ECC 인코딩의 결과인 신드롬(SDR)에 기초하여 심각성 신호(SEV)를 생성한다(S240).
반도체 메모리 장치(200)는 심각성 신호(SEV)를 메모리 컨트롤러(100)에 전송한다(S250). 메모리 컨트롤러(100)의 CPU(110)는 심각성 신호(SEV)에 기초하여 온-다이 ECC 엔진(400)의 정상 동작 여부를 판단한다.
따라서 본 발명의 실시예들에 따른 반도체 메모리 장치는 테스트 모드에서 메모리 셀 어레이와의 연결을 차단하고, 모드 레지스터의 설정에 의하여 테스트 패리티 데이터의 에러 비트 포함 여부 및 에러 비트를 포함하는 패리티 비트의 위치를 선택하고, 테스트 데이터 뿐만 아니라 테스트 패리티 데이터에 에러 비트를 삽입하고, 테스트 패리티 데이터를 메모리 컨트롤러로부터 수신하지 않고, 테스트 데이터와 테스트 패리티 데이터에 기초하여 ECC 디코딩을 수행하고 ECC 디코딩의 결과를 메모리 컨트롤러에 전송할 수 있다. 따라서, 반도체 메모리 장치는 패리티 체크 매트릭스를 노출시키지 않고 메모리 셀 어레이로부터의 영향을 차단한 채, 다양한 에러 패턴에 대하여 온-다이 ECC 엔진을 테스트할 수 있어, 테스트 커버리지를 향상시킬 수 있다.
도 22는 본 발명의 실시예들에 따른 반도체 메모리 장치를 보여주는 예시적인 블록도이다.
도 22를 참조하면, 반도체 메모리 장치(600)는, 스택드 칩 구조에서 소프트 데이터 페일의 분석 및 구제 기능을 제공하기 위해 적어도 하나의 버퍼 다이(610) 및 복수의 메모리 다이들(620-1,620-2,...,620-p, p는 4 이상의 자연수)을 포함할 수 있다.
복수의 메모리 다이들(620-1,620-2,...,620-p)은 적어도 하나의 버퍼 다이(610)의 상부에 적층되고 복수의 쓰루 실리콘 비아(이하 TSV) 라인들을 통해 데이터를 통신할 수 있다.
상기 복수의 메모리 다이들(620-1,620-2,...,620-p) 각각은 메모리 셀들을 구비하는 셀 코어(621), 버퍼 다이(610)로 전송되는 전송 데이터를 이용하여 전송 패리티 비트들을 생성하는 셀 코어 ECC 엔진(624) 및 제어 로직 회로(CLC, 623)을 포함할 수 있다. 셀 코어 ECC 엔진(624)은 도 11의 온-다이 ECC 엔진(400)을 채용할 수 있다. 제어 로직 회로(623)는 테스트 모드 레지스터를 포함할 수 있고, 테스트 모드 레지스터는 복수의 동작 코드들에 의하여 ECC 에러 삽입 모드의 진입 여부, 백그라운드 데이터의 타입, 테스트 패리티 데이터의 에러 비트 포함 여부 및 에러 비트를 포함하는 패리티 비트의 위치를 선택할 수 있다.
적어도 하나의 버퍼 다이(610)는 상기 복수의 TSV 라인들을 통해 수신되는 전송 데이터에 전송 에러가 발생된 경우에 전송 패리티 비트들을 이용하여 전송 에러를 정정함에 의해 에러 정정된 데이터를 생성하는 비아 ECC 엔진(612)을 포함할 수 있다.
반도체 메모리 장치(600)는 상기 TSV 라인들을 통해 상기 데이터 및 제어 신호들을 통신하는 스택 칩 타입 메모리 장치 혹은 스택드 메모리 장치일 수 있다. 상기 TSV 라인들은 실리콘 관통 전극들로도 칭해질 수 있다.
하나의 메모리 다이(620-p)에 형성되는 데이터 TSV 라인 그룹(632)은 복수의 TSV 라인들(L1~Lp)로 구성될 수 있고, 패리티 TSV 라인 그룹(634)은 복수의 TSV 라인들(L10~Lq)로 구성될 수 있다. 데이터 TSV 라인 그룹(632)의 TSV 라인들라인들(L1~Lp)과 패리티 TSV 라인 그룹(634)의 TSV 라인들(L10~Lq)은 복수의 메모리 다이들(620-1~620-p)의 사이에 대응적으로 형성된 마이크로 범프(MCB)들에 연결될 수 있다.
복수의 메모리 다이들(620-1~620-p) 각각은 하나의 액세스 트랜지스터와 하나의 스토리지 커패시터로 이루어진 DRAM 셀들을 가질 수 있다.
반도체 메모리 장치(600)는 데이터 버스(B10)를 통해 외부의 메모리 컨트롤러와 통신하기 위해 3D 칩 구조 또는 2.5D 칩 구조를 가질 수 있다. 상기 적어도 하나의 버퍼 다이(610)는 데이터 버스(B10)를 통해 메모리 컨트롤러 연결될 수 있다.
비아 ECC 엔진(612)은 데이터 TSV 라인 그룹(632)을 통해 수신되는 전송 데이터에 전송 에러가 발생되었는 지의 여부를 패리티 TSV 라인 그룹(634)을 통해 수신되는 전송 패리티 비트들을 이용하여 체크한다. 전송 에러가 발생되는 경우에 비아 ECC 엔진(612)은 전송 패리티 비트들을 이용하여 전송 데이터에 대한 전송 에러를 정정한다. 전송 에러의 비트 수가 정정 불가한 경우에 비아 ECC 엔진(612)은 데이터 에러 발생을 알리는 정보를 출력할 수 있다.
도 23은 본 발명의 실시예들에 따른 적층형 메모리 장치를 포함하는 반도체 패키지의 예를 나타내는 구조도이다.
도 23을 참조하면, 반도체 패키지(900)는 하나 이상의 적층형 메모리 장치(910) 및 그래픽 프로세서(GPU, 920)를 포함할 수 있고, 그래픽 프로세서(920)는 메모리 컨트롤러(925)를 포함할 수 있다.
상기 적층형 메모리 장치(910) 및 그래픽 프로세서(920)는 인터포저(Interposer, 930) 상에 장착되고, 적층형 메모리 장치(910) 및 그래픽 프로세서(920)가 장착된 인터포저(930)는 패키지 기판(940) 상에 장착될 수 있다. 메모리 컨트롤러(925)는 도 1의 메모리 컨트롤러(100)와 실질적으로 동일한 기능을 수행할 수 있다.
적층형 메모리 장치(910)는 다양한 형태로 구현이 가능하며, 일 실시예에 따라 적층형 메모리 장치(910)는 다수 개의 레이어들이 적층된 HBM(High Bandwidth Memory) 형태의 메모리 장치일 수 있다. 이에 따라, 적층형 메모리 장치(910)는 적어도 하나의 버퍼 다이 및 복수의 메모리 다이들을 포함하고 복수의 메모리 다이들은 각각 메모리 셀 어레이, 온-다이 ECC 엔진 및 제어 로직 회로를 포함할 수 있다.
인터포저(930) 상에는 다수 개의 적층형 메모리 장치(910)들이 장착될 수 있으며, 그래픽 프로세서(920)는 다수개의 적층형 메모리 장치(910)들과 통신할 수 있다. 일 예로서, 적층형 메모리 장치(910)들 각각과, 그래픽 프로세서(920)는 물리 영역을 포함할 수 있으며, 물리(PHY) 영역을 통해 적층형 메모리 장치(910)들과 그래픽 프로세서(920) 사이에서 통신이 수행될 수 있다.
상술한 바와 같이, 본 발명의 실시예들에 따른 반도체 메모리 장치는 테스트 모드에서 메모리 셀 어레이와의 연결을 차단하고, 모드 레지스터의 설정에 의하여 테스트 패리티 데이터의 에러 비트 포함 여부 및 에러 비트를 포함하는 패리티 비트의 위치를 선택하고, 테스트 데이터 뿐만 아니라 테스트 패리티 데이터에 에러 비트를 삽입하고, 테스트 패리티 데이터를 메모리 컨트롤러로부터 수신하지 않고, 테스트 데이터와 테스트 패리티 데이터에 기초하여 ECC 디코딩을 수행하고 ECC 디코딩의 결과를 메모리 컨트롤러에 전송할 수 있다. 따라서, 반도체 메모리 장치는 패리티 체크 매트릭스를 노출시키지 않고 메모리 셀 어레이로부터의 영향을 차단한 채, 다양한 에러 패턴에 대하여 온-다이 ECC 엔진을 테스트할 수 있어, 테스트 커버리지를 향상시킬 수 있다.
본 발명은 복수의 휘발성 메모리 셀들과 온-다이 ECC 엔진을 채용하는 반도체 메모리 장치를 사용하는 다양한 시스템에 적용될 수 있다.
상술한 바와 같이, 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 반도체 메모리 장치로서,
    복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    제1 래치와 제2 래치를 포함하는 온-다이(on-die) 에러 정정 코드(error correction code, 이하 'ECC') 엔진; 및
    상기 온-다이 ECC 엔진을 제어하는 제어 로직 회로를 포함하고,
    상기 제어 로직 회로는 외부 장치로부터의 제1 모드 레지스트 셋 커맨드에 응답하여 상기 반도체 메모리 장치를 테스트 모드로 설정하고,
    상기 온-다이 ECC 엔진은 상기 테스트 모드에서 상기 메모리 셀 어레이와 연결을 차단하고, 상기 외부 장치로부터의 기입 커맨드에 수반된 테스트 데이터를 수신하고, 상기 테스트 데이터를 상기 제1 래치에 저장하고, 상기 외부 장치로부터의 독출 커맨드에 응답하여 상기 테스트 데이터와 상기 제2 래치에 저장된, 특정 에러 비트를 선택적으로 포함하는 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 에러 비트의 포함 여부 및 정정가능 여부를 나타내는 심각성(severity) 신호를 상기 외부 장치에 제공하는 반도체 메모리 장치.
  2. 제1항에 있어서,
    상기 제1 모드 레지스터 셋 커맨드는 테스트 모드 레지스터 셋 커맨드인 것을 특징으로 하는 반도체 메모리 장치.
  3. 제1항에 있어서,
    상기 제어 로직 회로는 상기 테스트 모드가 설정되는 테스트 모드 레지스터를 포함하고,
    상기 테스트 모드 레지스터는 복수의 동작 코드들을 포함하고,
    상기 복수의 동작 코드들 중 제1 동작 코드에 의하여 ECC 에러 삽입 모드의 진입 여부가 설정되고,
    상기 ECC 에러 삽입 모드로 설정되는 경우,
    상기 복수의 동작 코드들 중 제2 동작 코드에 의하여 상기 제1 래치에 저장되는 백그라운드 데이터의 타입이 설정되고,
    상기 복수의 동작 코드들 중 제3 동작 코드에 의하여 상기 테스트 패리티 데이터의 에러 비트 포함 여부가 설정되고,
    상기 테스트 패리티 데이터가 상기 에러 비트를 포함하도록 설정되는 경우,
    상기 복수의 동작 코드들 중 제4 내지 제7 동작 코드들에 의하여 상기 테스트 패리티 데이터의 패리티 비트들 중 상기 에러 비트를 포함하는 패리티 비트의 위치가 선택되는 것을 특징으로 하는 반도체 메모리 장치.
  4. 제3항에 있어서,
    상기 제2 동작 코드에 의하여 상기 백그라운드 데이터가 제1 타입 및 제2 타입 중 하나로 설정되는 것에 응답하여,
    상기 온-다이 ECC 엔진은 하나의 에러 비트를 포함하는 상기 테스트 데이터를 상기 제1 래치에 갱신하고, 상기 하나의 에러 비트를 포함하는 상기 테스트 데이터와 에러 비트를 포함하는 않은 상기 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 정정가능을 나타내는 상기 심각성 신호를 상기 외부 장치에 전송하는 것을 특징으로 하는 반도체 메모리 장치.
  5. 제3항에 있어서,
    상기 제2 동작 코드에 의하여 상기 백그라운드 데이터가 제1 타입 및 제2 타입 중 하나로 설정되는 것에 응답하여,
    상기 온-다이 ECC 엔진은 에러 비트를 포함하지 않는 상기 테스트 데이터를 상기 제1 래치에 갱신하고, 에러 비트를 포함하지 않는 상기 테스트 데이터와 하나의 에러 비트를 포함하는 상기 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 정정가능을 나타내는 상기 심각성 신호를 상기 외부 장치에 전송하는 것을 특징으로 하는 반도체 메모리 장치.
  6. 제3항에 있어서,
    상기 제2 동작 코드에 의하여 상기 백그라운드 데이터가 제1 타입 및 제2 타입 중 하나로 설정되는 것에 응답하여,
    상기 온-다이 ECC 엔진은 하나의 에러 비트를 포함하는 상기 테스트 데이터를 상기 제1 래치에 갱신하고, 상기 하나의 에러 비트를 포함하는 상기 테스트 데이터와 하나의 에러 비트를 포함하는 상기 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 정정불가능을 나타내는 상기 심각성 신호를 상기 외부 장치에 전송하는 것을 특징으로 하는 반도체 메모리 장치.
  7. 제3항에 있어서,
    상기 제2 동작 코드에 의하여 상기 백그라운드 데이터가 제1 타입 및 제2 타입 중 하나로 설정되는 것에 응답하여,
    상기 온-다이 ECC 엔진은 두 개 이상의 에러 비트들을 포함하는 상기 테스트 데이터를 상기 제1 래치에 갱신하고, 상기 두 개 이상의 에러 비트들을 포함하는 상기 테스트 데이터와 에러 비트를 포함하지 않는 상기 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 정정불가능을 나타내는 상기 심각성 신호를 상기 외부 장치에 전송하는 것을 특징으로 하는 반도체 메모리 장치.
  8. 제3항에 있어서,
    상기 백그라운드 데이터가 제1 타입으로 설정되는 경우, 상기 테스트 데이터의 하이 레벨의 비트는 에러 비트를 나타내고,
    상기 백그라운드 데이터가 제2 타입으로 설정되는 경우, 상기 테스트 데이터의 로우 레벨의 비트는 에러 비트를 나타내는 것을 특징으로 하는 반도체 메모리 장치.
  9. 제1항에 있어서, 상기 온-다이 ECC 엔진은
    제1 선택 신호에 응답하여 노멀 모드에서는 상기 외부 장치로부터 제공되는 메인 데이터를 상기 메모리 셀 어레이에 제공하고, 상기 테스트 모드에서는 상기 테스트 데이터를 상기 제1 래치에 저장하는 디멀티플렉서;
    상기 노멀 모드의 기입 동작에서는 상기 메인 데이터에 대하여 ECC 인코딩을 수행하여 패리티 데이터를 생성하고, 상기 노멀 모드의 독출 동작에서는 상기 메인 데이터와 상기 패리티 데이터에 대하여 ECC 디코딩을 수행하여 신드롬을 생성하고, 상기 테스트 모드에서는 상기 테스트 데이터와 상기 테스트 패리티 데이터에 대하여 상기 ECC 디코딩을 수행하여 상기 신드롬을 생성하는 인코딩/디코딩 로직;
    상기 신드롬에 기초하여, 상기 노멀 모드에서는 상기 메인 데이터의 하나의 에러 비트를 정정하고, 상기 테스트 모드에서는 상기 테스트 데이터의 하나의 에러 비트를 정정하여 정정된 데이터를 출력하는 데이터 정정기;
    상기 노멀 모드에서는 상기 메인 데이터와 상기 패리티 데이터를 상기 메모리 셀 어레이에 제공하고, 상기 테스트 모드에서는 상기 메모리 셀 어레이와의 연결을 차단하는 버퍼 회로;
    에러 비트 선택 신호에 기초하여 상기 제2 래치에 저장된 백그라운드 패리티 데이터에 에러 비트를 포함하는 패리티 에러 패턴을 인가하는 패리티 에러 패턴 생성기; 및
    상기 신드롬에 기초하여 상기 심각성 신호를 생성하는 심각성 신호 생성기를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  10. 제9항에 있어서,
    상기 패리티 에러 패턴 생성기는 상기 에러 비트 선택 신호가 지시하는 위치에 상기 에러 비트를 포함하는 패리티 에러 패턴을 상기 제2 래치에 인가하고,
    상기 제2 래치는 상기 백그라운드 패리티 데이터와 상기 패리티 에러 패턴에 대하여 배타적 오어 연산을 수행하여 상기 테스트 패리티 데이터를 생성하는 것을 특징으로 하는 반도체 메모리 장치.
  11. 제9항에 있어서, 상기 인코딩/디코딩 로직은
    ECC에 연결되고, 상기 테스트 모드에서 상기 테스트 데이터를 기초로 체크 비트들을 생성하는 체크 비트 생성기; 및
    상기 체크 비트들 각각과 상기 테스트 패리티 데이터의 상응하는 비트들 각각의 동일성 여부에 기초하여 신드롬을 생성하는 신드롬 생성기를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  12. 제9항에 있어서, 상기 데이터 정정기는
    상기 테스트 모드에서 상기 테스트 데이터 및 상기 테스트 패리티 데이터에 하나의 에러 비트가 포함되는 경우, 상기 하나의 에러 비트를 정정하여 상기 정정된 데이터를 출력하고,
    상기 테스트 모드에서 상기 테스트 데이터 및 상기 테스트 패리티 데이터에 두 개 이상의 에러 비트들이 포함되는 경우, 상기 두 개 이상의 에러 비트들을 정정하지 않고 상기 테스트 데이터를 출력하는 것을 특징으로 하는 반도체 메모리 장치.
  13. 제9항에 있어서, 상기 온-다이 ECC 엔진은
    상기 테스트 모드에서 백그라운드 데이터를 상기 제1 래치에 제공하는 제1 레지스터;
    제1 선택 신호에 응답하여 상기 노멀 모드에서는 상기 메모리 셀 어레이로부터 제공되는 상기 메인 데이터를 출력하고, 상기 테스트 모드에서는 상기 제1 래치에 저장된 상기 테스트 데이터를 출력하는 제1 멀티플렉서;
    제2 선택 신호에 응답하여 상기 노멀 모드의 기입 동작에서는 상기 기입 데이터를 상기 인코딩/디코딩 로직에 제공하고, 상기 독출 동작에서는 상기 제1 멀티플렉서의 출력을 상기 인코딩/디코딩 로직에 제공하는 제2 멀티플렉서;
    상기 테스트 모드에서 상기 백그라운드 패리티 데이터를 상기 제2 래치에 제공하는 제2 레지스터; 및
    상기 제1 선택 신호에 응답하여 상기 노멀 모드에서는 상기 메모리 셀 어레이로부터 제공되는 패리티 데이터를 상기 인코딩/디코딩 로직에 제공하고, 상기 테스트 모드에서는 상기 제2 래치에 저장된 상기 테스트 패리티 데이터를 상기 인코딩/디코딩 로직에 제공하는 제3 멀티플렉서를 더 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  14. 제1항에 있어서,
    상기 제어 로직 회로는 상기 외부 장치로부터 독출 커맨드 이후에 인가되는 제2 모드 레지스터 셋 커맨드에 응답하여 상기 테스트 모드에서 탈출하는 것을 특징으로 하는 반도체 메모리 장치.
  15. 제1항에 있어서,
    적어도 하나의 버퍼 다이;
    상기 적어도 하나의 버퍼 다이 상에 적층되는 복수의 메모리 다이들' 및
    상기 메모리 다이들을 관통하는 복수의 관통 실리콘 비아(through silicon via)들을 포함하고,
    상기 복수의 메모리 다이들 각각은 상기 메모리 셀 어레이, 상기 제어 로직 회로 및 상기 온-다이 ECC 엔진을 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  16. 반도체 메모리 장치; 및
    상기 반도체 메모리 장치를 제어하는 메모리 컨트롤러를 포함하고,
    상기 반도체 메모리 장치는
    복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    제1 래치와 제2 래치를 포함하는 온-다이(on-die) 에러 정정 코드(error correction code, 이하 'ECC') 엔진; 및
    상기 온-다이 ECC 엔진을 제어하는 제어 로직 회로를 포함하고,
    상기 제어 로직 회로는 상기 메모리 컨트롤러로부터의 제1 모드 레지스트 셋 커맨드에 응답하여 상기 반도체 메모리 장치를 테스트 모드로 설정하고,
    상기 온-다이 ECC 엔진은 상기 테스트 모드에서 상기 메모리 셀 어레이와 연결을 차단하고, 상기 메모리 컨트롤러로부터의 기입 커맨드에 수반된 테스트 데이터를 수신하고, 상기 테스트 데이터를 상기 제1 래치에 저장하고, 상기 메모리 컨트롤러로부터의 독출 커맨드에 응답하여 상기 테스트 데이터와 상기 제2 래치에 저장된, 특정 에러 비트를 선택적으로 포함하는 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 에러 비트의 포함 여부 및 정정가능 여부를 나타내는 심각성(severity) 신호를 상기 메모리 컨트롤러에 제공하는 메모리 시스템.
  17. 제16항에 있어서,
    상기 메모리 컨트롤러는 상기 테스트 모드에서 상기 심각성 신호에 기초하여 상기 온-다이 ECC 엔진의 정상 동작 여부를 판단하는 중앙 처리 장치(central processing unit, 이하 'CPU')를 포함하고,
    상기 메모리 컨트롤러는 그래픽 프로세서(graphic processing unit, GPU)에 포함되는 것을 특징으로 하는 메모리 시스템.
  18. 제17항에 있어서,
    상기 제어 로직 회로는 상기 테스트 모드가 설정되는 테스트 모드 레지스터를 포함하고,
    상기 CPU는 상기 테스트 데이터 및 상기 테스트 패리티 데이터 중 적어도 하나가 상기 에러 비트를 포함하도록 상기 테스트 모드 레지스터를 설정하고,
    상기 심각성 신호 및 기대 심각성 신호의 비교에 기초하여 상기 온-다이 ECC 엔진의 정상 동작 여부를 판단하는 것을 특징으로 하는 메모리 시스템.
  19. 제16항에 있어서,
    상기 제어 로직 회로는 상기 테스트 모드가 설정되는 테스트 모드 레지스터를 포함하고,
    상기 테스트 모드 레지스터는 복수의 동작 코드들을 저장하고,
    상기 복수의 동작 코드들 중 제1 동작 코드에 의하여 ECC 에러 삽입 모드의 진입 여부가 설정되고,
    상기 ECC 에러 삽입 모드로 설정되는 경우,
    상기 복수의 동작 코드들 중 제2 동작 코드에 의하여 상기 제1 래치에 저장되는 백그라운드 데이터의 타입이 설정되고,
    상기 복수의 동작 코드들 중 제3 동작 코드에 의하여 상기 테스트 패리티 데이터의 에러 비트 포함 여부가 설정되고,
    상기 테스트 패리티 데이터가 상기 에러 비트를 포함하도록 설정되는 경우,
    상기 복수의 동작 코드들 중 제4 내지 제7 동작 코드들에 의하여 상기 테스트 패리티 데이터의 패리티 비트들 중 상기 에러 비트를 포함하는 패리티 비트의 위치가 선택되는 것을 특징으로 하는 메모리 시스템.
  20. 반도체 메모리 장치로서,
    복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    제1 래치와 제2 래치를 포함하는 온-다이(on-die) 에러 정정 코드(error correction code, 이하 'ECC') 엔진; 및
    상기 온-다이 ECC 엔진을 제어하는 제어 로직 회로를 포함하고,
    상기 제어 로직 회로는 외부 장치로부터의 제1 모드 레지스트 셋 커맨드에 응답하여 상기 반도체 메모리 장치를 테스트 모드로 설정하고,
    상기 온-다이 ECC 엔진은 상기 테스트 모드에서 상기 메모리 셀 어레이와 연결을 차단하고, 상기 외부 장치로부터의 기입 커맨드에 수반된 테스트 데이터를 수신하고, 상기 테스트 데이터를 상기 제1 래치에 저장하고, 상기 외부 장치로부터의 독출 커맨드에 응답하여 상기 테스트 데이터와 상기 제2 래치에 저장된, 특정 에러 비트를 선택적으로 포함하는 테스트 패리티 데이터에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩의 결과에 기초하여 에러 비트의 포함 여부 및 정정가능 여부를 나타내는 심각성(severity) 신호를 상기 외부 장치에 제공하고,
    상기 온-다이 ECC 엔진은
    상기 테스트 모드에서는 상기 제1 래치에 저장된 상기 테스트 데이터와 상기 제2 래치에 저장된 상기 테스트 패리티 데이터에 대하여 상기 ECC 디코딩을 수행하여 신드롬을 생성하는 인코딩/디코딩 로직;
    상기 테스트 모드에서, 상기 신드롬에 기초하여 상기 테스트 데이터의 선택된 에러 비트를 정정하여 정정된 테스트 데이터를 출력하는 데이터 정정기;
    에러 비트 선택 신호에 기초하여 상기 제2 래치에 저장된 백그라운드 패리티 데이터에 에러 비트를 포함하는 패리티 에러 패턴을 인가하는 패리티 에러 패턴 생성기; 및
    상기 신드롬에 기초하여 상기 심각성 신호를 생성하는 심각성 신호 생성기를 포함하는 반도체 메모리 장치.
KR1020220128271A 2022-07-20 2022-10-07 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 KR20240012254A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/174,186 US20240029808A1 (en) 2022-07-20 2023-02-24 Semiconductor memory devices and memory systems including the same
TW112110476A TW202405817A (zh) 2022-07-20 2023-03-21 半導體記憶體裝置和包括其的記憶體系統
CN202310594310.XA CN117437966A (zh) 2022-07-20 2023-05-24 半导体存储器装置和包括半导体存储器装置的存储器系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220089304 2022-07-20
KR20220089304 2022-07-20

Publications (1)

Publication Number Publication Date
KR20240012254A true KR20240012254A (ko) 2024-01-29

Family

ID=89717034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220128271A KR20240012254A (ko) 2022-07-20 2022-10-07 반도체 메모리 장치 및 이를 포함하는 메모리 시스템

Country Status (1)

Country Link
KR (1) KR20240012254A (ko)

Similar Documents

Publication Publication Date Title
CN110148434B (zh) 半导体存储器件、存储系统和操作半导体存储器件的方法
CN109785894B (zh) 半导体存储器装置、存储器系统和操作方法
US11681579B2 (en) Semiconductor memory devices and memory systems including the same
CN110120243B (zh) 半导体存储器装置、操作其的方法以及存储器系统
KR102453437B1 (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR102388803B1 (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR20210092391A (ko) 반도체 메모리 장치의 에러 정정 회로 및 반도체 메모리 장치
KR20210078201A (ko) 반도체 메모리 장치 및 메모리 시스템
US11436079B2 (en) Semiconductor memory devices having enhanced error correction circuits therein
KR20200074467A (ko) 에러 정정 코드 회로, 반도체 메모리 장치 및 메모리 시스템
KR20210089016A (ko) 메모리 컨트롤러 및 메모리 시스템
CN111090538A (zh) 存储器模块及操作包括该存储器模块的存储器系统的方法
US11762736B2 (en) Semiconductor memory devices
CN114627957A (zh) 存储器装置和包括该存储器装置的存储器系统
US11947810B2 (en) Semiconductor memory device and memory system including the same
KR102589913B1 (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
CN115994049A (zh) 半导体存储器装置和存储器系统
EP3985674A1 (en) Semiconductor memory device with test of ecc circuit
KR20240012254A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
TW202405817A (zh) 半導體記憶體裝置和包括其的記憶體系統
CN117437966A (zh) 半导体存储器装置和包括半导体存储器装置的存储器系统
KR20240062654A (ko) 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
KR20220156414A (ko) 반도체 메모리 장치
CN117995257A (zh) 半导体存储器装置和操作半导体存储器装置的方法