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

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

Info

Publication number
KR102589913B1
KR102589913B1 KR1020180065750A KR20180065750A KR102589913B1 KR 102589913 B1 KR102589913 B1 KR 102589913B1 KR 1020180065750 A KR1020180065750 A KR 1020180065750A KR 20180065750 A KR20180065750 A KR 20180065750A KR 102589913 B1 KR102589913 B1 KR 102589913B1
Authority
KR
South Korea
Prior art keywords
status flag
data
decoding status
read data
error
Prior art date
Application number
KR1020180065750A
Other languages
English (en)
Other versions
KR20190119489A (ko
Inventor
김대현
주용규
공준진
이기준
이명규
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/217,249 priority Critical patent/US11036578B2/en
Priority to CN201910067433.1A priority patent/CN110377453B/zh
Publication of KR20190119489A publication Critical patent/KR20190119489A/ko
Priority to US17/344,180 priority patent/US11681579B2/en
Application granted granted Critical
Publication of KR102589913B1 publication Critical patent/KR102589913B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

반도체 메모리 장치는 메모리 셀 어레이, 에러 정정 코드(error correction code; 이하 'ECC') 엔진, 채널 인터페이스 회로 및 제어 로직 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 메모리 셀들을 구비한다. 상기 ECC 엔진은 상기 메모리 셀 어레이로부터 독출된 독출 데이터에 포함되는 적어도 하나의 에러 비트를 검출 및/또는 정정하고, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 디코딩 상태 플래그를 생성한다. 상기 채널 인터페이스 회로는 상기 ECC 엔진으로부터 상기 독출 데이터 및 상기 디코딩 상태 플래그를 수신하고, 상기 독출 데이터 및 상기 디코딩 상태 플래그를 외부의 메모리 컨트롤러에 전송하되, 상기 디코딩 상태 플래그를 제1 핀을 통하여 상기 메모리 컨트롤러에 실시간으로 전송한다. 상기 제어 로직 회로는 상기 메모리 컨트롤러로부터의 어드레스 및 커맨드에 응답하여 상기 ECC 엔진 및 상기 채널 인터페이스 회로를 제어한다.

Description

반도체 메모리 장치 및 이를 포함하는 메모리 시스템{Semiconductor memory devices and memory systems including the same}
본 발명은 메모리 분야에 관한 것으로, 보다 상세하게는 반도체 메모리 장치 및 이를 포함하는 메모리 시스템에 관한 것이다.
반도체 메모리 장치는 플래시 메모리 장치와 같은 불휘발성 메모리 장치와 DRAM과 같은 휘발성 메모리 장치로 구분될 수 있다. DRAM과 같은 휘발성 메모리 장치는 가격이 비교적 저렴하기 때문에 시스템 메모리와 같은 대용량 데이터를 저장하는데 사용되고 있다. 또한 DRAM과 같은 휘발성 반도체 메모리 장치에서는 집적도를 높이기 위하여 공정 스케일을 축소시키고 있다. 공정 스케일의 축소에 따라 비트 에러 비율(bit error rate)을 급격하게 증가하고 수율이 낮아질 것으로 예상된다. 따라서 반도체 메모리 장치의 신뢰성을 높일 수 있는 방안이 필요하다.
본 발명의 일 목적은 신뢰성과 성능을 높일 수 있는 반도체 메모리 장치를 제공하는데 있다.
본 발명의 일 목적은 신뢰성과 성능을 높일 수 있는 상기 반도체 메모리 장치를 포함하는 메모리 시스템을 제공하는데 있다.
상기 일 목적을 달성하기 위한 본 발명의 실시예들에 따른 반도체 메모리 장치는 메모리 셀 어레이, 에러 정정 코드(error correction code; 이하 'ECC') 엔진, 채널 인터페이스 회로 및 제어 로직 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 메모리 셀들을 구비한다. 상기 ECC 엔진은 상기 메모리 셀 어레이로부터 독출된 독출 데이터에 포함되는 적어도 하나의 에러 비트를 검출 및/또는 정정하고, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 디코딩 상태 플래그를 생성한다. 상기 채널 인터페이스 회로는 상기 ECC 엔진으로부터 상기 독출 데이터 및 상기 디코딩 상태 플래그를 수신하고, 상기 독출 데이터 및 상기 디코딩 상태 플래그를 외부의 메모리 컨트롤러에 전송하되, 상기 디코딩 상태 플래그를 제1 핀을 통하여 상기 메모리 컨트롤러에 실시간으로 전송한다. 상기 제어 로직 회로는 상기 메모리 컨트롤러로부터의 어드레스 및 커맨드에 응답하여 상기 ECC 엔진 및 상기 채널 인터페이스 회로를 제어한다.
상기 일 목적을 달성하기 위한 본 발명의 실시예들에 따른 본 발명의 실시예들에 따른 반도체 메모리 장치는 메모리 셀 어레이, 에러 정정 코드(error correction code; 이하 'ECC') 엔진, 채널 인터페이스 회로 및 제어 로직 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 메모리 셀들을 구비한다. 상기 ECC 엔진은 상기 메모리 셀 어레이로부터 독출된 독출 데이터에 포함되는 적어도 하나의 에러 비트를 검출 및/또는 정정하고, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 디코딩 상태 플래그를 생성한다. 상기 채널 인터페이스 회로는 상기 ECC 엔진으로부터 상기 독출 데이터 및 상기 디코딩 상태 플래그를 수신하고, 상기 디코딩 상태 플래그를 내부의 레지스터에 저장하고, 상기 독출 데이터를 외부의 메모리 컨트롤러에 전송한다. 상기 제어 로직 회로는 상기 메모리 컨트롤러로부터의 어드레스 및 커맨드에 응답하여 상기 ECC 엔진 및 상기 채널 인터페이스 회로를 제어한다. 상기 제어 로직 회로는 상기 채널 인터페이스 회로를 제어하여 상기 디코딩 상태 플래그가 상기 메모리 컨트롤러에 전송되도록 한다.
상기 일 목적을 달성하기 위한 본 발명의 실시예들에 따른 메모리 시스템은 반도체 메모리 장치 및 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는 상기 반도체 메모리 장치를 제어한다. 상기 반도체 메모리 장치는 메모리 셀 어레이, 에러 정정 코드(error correction code; 이하 'ECC') 엔진, 채널 인터페이스 회로 및 제어 로직 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 메모리 셀들을 구비한다. 상기 ECC 엔진은 상기 메모리 셀 어레이로부터 독출된 독출 데이터에 포함되는 적어도 하나의 에러 비트를 검출 및/또는 정정하고, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 디코딩 상태 플래그를 생성한다. 상기 채널 인터페이스 회로는 상기 ECC 엔진으로부터 상기 독출 데이터 및 상기 디코딩 상태 플래그를 수신하고, 상기 독출 데이터 및 상기 디코딩 상태 플래그를 상기 메모리 컨트롤러에 전송하되, 상기 디코딩 상태 플래그를 제1 핀을 통하여 상기 메모리 컨트롤러에 실시간으로 전송한다. 상기 제어 로직 회로는 상기 메모리 컨트롤러로부터의 어드레스 및 커맨드에 응답하여 상기 ECC 엔진 및 상기 채널 인터페이스 회로를 제어한다.
본 발명의 실시예들에 따르면, 반도체 메모리 장치가 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 정보를 반도체 메모리 장치의 핀을 통하여 메모리 컨트롤러에 전송하여 에러가 발생한 어드레스를 실시간으로 모니터링할 수 있다. 따라서 반도체 메모리 장치의 신뢰성과 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 메모리 컨트롤러의 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 반도체 메모리 장치의 구성을 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 도 2의 반도체 메모리 장치에서 제1 뱅크 어레이의 일 예를 나타낸다.
도 5는 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치에서 제1 뱅크 어레이의 다른 예를 나타낸다.
도 6은 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치에서 ECC 엔진의 구성을 나타내는 블록도이다.
도 7은 본 발명의 실시예들에 따른 도 6의 ECC 인코더를 나타낸다.
도 8은 본 발명의 실시예들에 따른 도 6의 ECC 디코더를 나타낸다.
도 9는 본 발명의 실시예들에 따른 도 8의 디코딩 상태 플래그 생성기의 일 예를 나타낸다.
도 10은 본 발명의 실시예들에 따른 도 8의 디코딩 상태 플래그 생성기의 다른 예를 나타낸다.
도 11은 본 발명의 실시예들에 따른 도 8의 디코딩 상태 플래그 생성기의 다른 예를 나타낸다.
도 12는 본 발명의 실시예들에 따른 도 8의 디코딩 상태 플래그 생성기의 다른 예를 나타낸다.
도 13은 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치에서 채널 인터페이스 회로의 예를 나타내는 블록도이다.
도 14는 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치에서 채널 인터페이스 회로의 다른 예를 나타내는 블록도이다.
도 15 내지 도 19는 각각 채널 인터페이스 회로에서 디코딩 상태 플레그가 메모리 컨트롤러로 전송되는 것을 나타낸다.
도 20 내지 도 22는 각각 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치가 디코딩 상태 플래그를 메모리 컨트롤러에 전송하는 것을 나타낸다.
도 23은 본 발명의 실시예들에 따른 반도체 메모리 장치를 보여주는 예시적인 블록도이다.
도 24는 본 발명의 실시예들에 따른 반도체 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 25는 본 발명의 실시예들에 따른 도 23의 반도체 메모리 장치가 3D 칩 구조에 적용되는 예를 나타내는 블록도이다.
도 26은 본 발명의 실시예에 따른 반도체 메모리 장치를 모바일 시스템에 응용한 예를 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(20)은 메모리 컨트롤러(100) 및 적어도 하나의 반도체 메모리 장치(200)를 포함할 수 있다.
메모리 컨트롤러(Memory Controller; 100)는 메모리 시스템(Memory System; 20)의 동작을 전반적으로 제어하며, 외부의 호스트와 반도체 메모리 장치(200) 사이의 전반적인 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(100)는 호스트의 요청에 따라 반도체 메모리 장치(200)를 제어하여 데이터를 기입하거나(write) 데이터를 독출한다(read). 또한, 메모리 컨트롤러(100)는 반도체 메모리 장치(200)를 제어하기 위한 동작 커맨드(command)들을 인가하여, 반도체 메모리 장치(200)의 동작을 제어한다.
실시예에 따라, 반도체 메모리 장치(200)는 동적 메모리 셀들을 구비하는 DRAM(dynamic random access), DDR4(double data rate 4) SDRAM(synchronous DRAM), LPDDR4(low power DDR4) SDRAM 또는 LPDDR5 SDRAM, DDR5 SDRAM, GDDR(graphic DDR일 수 있다. 실시예에 따라, 반도체 메모리 장치(200)는 정적 메모리 셀들(또는 비트 셀들)을 포함하는 정적 메모리(SRAM) 장치일 수 있다.
메모리 컨트롤러(100)는 반도체 메모리 장치(200)에 클럭 신호(CK), 커맨드(CMD) 및 어드레스(ADDR)를 전송하고, 반도체 메모리 장치(200)와 데이터(DQ)를 주고받을 수 있다. 반도체 메모리 장치(200)는 메모리 컨트롤러(100)에 디코딩 상태 플래그(DSF)를 전송할 수 있다. 디코딩 상태 플래그(DSF)는 반도체 메모리 장치(200)의 메모리 셀 어레이(300)에 발생된 적어도 하나의 에러 비트의 검출 및/또는 정정에 관련된 정보를 포함할 수 있다.
디코딩 상태 플래그(DSF)는 한 비트 또는 두 개 이상의 비트들을 포함할 수 있다. 예를 들어, 디코딩 상태 플래그(DSF)가 하나의 비트로 구성되는 경우, 상기 에러 비트가 검출되지 않은 경우, 디코딩 상태 플래그(DSF)는 '0'일 수 있고, 하나 이상의 에러 비트가 검출되는 경우, 디코딩 상태 플래그(DSF)는 '1'일 수 있다. 다른 실시예에 있어서, 상기 에러 비트가 검출되지 않거나 하나의 에러 비트가 검출되는 경우, 디코딩 상태 플래그(DSF)는 '0'일 수 있고, 두 개 이상의 에러 비트가 검출되는 경우, 디코딩 상태 플래그(DSF)는 '1'일 수 있다. 예를 들어, 디코딩 상태 플래그(DSF)가 두 개의 비트로 구성되는 경우, 에러 비트가 검출되지 않는 경우, '00', 하나의 에러 비트가 검출되는 경우, '01' 두 개 이상의 에러 비트가 검출되는 경우, '10'의 값을 가질 수 있다. 디코딩 상태 플래그(DSF)는 고정된 값을 가질 수도 있고, 반도체 메모리 장치(200)의 모드를 설정하는 모드 레지스터 세트를 메모리 컨트롤러(100)가 설정하여, 디코딩 상태 플래그(DSF)가 나타내는 에러 비트의 종류를 변경할 수 도 있다.
반도체 메모리 장치(200)는 데이터(DQ)가 저장되는 메모리 셀 어레이(300), 에러 정정 코드(error correction code, 이하 'ECC') 엔진(400), 제어 로직 회로(210) 및 채널 인터페이스 회로(500)를 포함할 수 있다.
ECC 엔진(400)은 제어 로직 회로(210)의 제어에 따라 메모리 셀 어레이(300)의 타겟 페이지로부터 코드워드 단위로 데이터를 독출하여 ECC 디코딩을 수행하고, 상기 데이터에 적어도 하나의 에러 비트가 포함되는 경우, 상기 적어도 하나의 에러 비트의 처리에 관한 디코딩 상태 플래그(DSF)를 채널 인터페이스 회로(500)에 제공할 수 있다.
채널 인터페이스 회로(500)는 ECC 엔진(400)으로부터 정정된 데이터 또는 데이터를 및 디코딩 상태 플래그(DSF)를 제공받고, 상기 데이터(DQ)와 디코딩 상태 플래그(DSF)를 메모리 컨트롤러(100)에 전송할 수 있다. 채널 인터페이스 회로(500)는 디코딩 상태 플래그(DSF)를 반도체 메모리 장치(200)의 제1 핀을 통하여 실시간으로 메모리 컨트롤러(100)에 전송할 수 있다. 상기 제1 핀은 반도체 메모리 장치(200)가 메모리 컨트롤러(100)로부터 데이터와 관련된 데이터 반전 비트를 수신하는 핀이거나 데이터(DQ)를 수신하는 데이터 핀일 수 있다. 또한 상기 제1 핀은 반도체 메모리 장치(200)가 메모리 컨트롤러(100)로부터, 일정한 데이터 비트의 기입 여부를 결정하는 데이터 마스크 핀일 수 있다.
채널 인터페이스 회로(500)는 디코딩 상태 플래그(DSF)를 데이터(DQ)와 병렬적으로 메모리 컨트롤러(100)에 전송하고, 메모리 컨트롤러(100)는 디코딩 상태 플래그(DSF)에 기초하여 데이터(DQ)의 에러를 정정하거나, 반도체 메모리 장치(200)의 에러 관리 정책을 결정할 수 있다.
도 2는 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 메모리 컨트롤러의 구성을 나타내는 블록도이다.
도 2를 참조하면, 메모리 컨트롤러(100)는 중앙 처리 장치(CPU, 110), 호스트 인터페이스(120), 데이터 레지스터(125), 데이터 반전 판단 회로(130), 데이터 반전 회로(135), 데이터 입력 버퍼(140), 디코딩 상태 플래그 디코더(170), ECC 엔진(180), 커맨드 버퍼(190) 및 어드레스 버퍼(195)를 포함할 수 있다.
호스트 인터페이스(120)는 외부의 호스트로부터 제공되는 리퀘스트(REQ) 및 호스트 데이터(HDQ)를 수신하고, 호스트 데이터(HDQ)를 데이터 레지스터(125)에 제공한다.
데이터 레지스터(125)는 호스트 데이터(HDQ)를 연속적으로(또는 순차적으로) 데이터 반전 판단 회로(130) 및 데이터 반전 회로(135)에 제공한다. 여기서 호스트 데이터(HDQ)는 복수의 단위 데이터들을 포함할 수 있다.
데이터 반전 판단 회로(130)는 단위 데이터들 각각에 포함되는 제1 로직 레벨을 갖는 제1 데이터 비트들의 수를 카운팅하고, 상기 카운팅에 기초하여 상기 단위 데이터를 각각의 반전 여부를 나타내는 판정 신호(DET1)를 데이터 반전 회로(135)에 제공한다. 데이터 반전 회로(135)는 판정 신호(DET1)에 응답하여 단위 데이터를 각각을 선택적으로 반전시켜 데이터(DQ)로 제공할 수 있다.
예를 들어, 제1 로직 레벨이 로우 레벨('0')인 경우에, 데이터 반전 판단 회로(130)는 단위 데이터를 각각에 포함되는 제1 데이터 비트들의 수가 제2 로직 레벨(하이 레벨)을 가지는 제2 데이터 비트들의 수보다 큰 경우에 제1 로직 레벨의 판정 신호(DET1)를 데이터 반전 회로(135)에 제공할 수 있다. 데이터 반전 회로(135)는 제1 로직 레벨의 판정 신호(DET1)를 수신하는 경우에 대응되는 단위 데이터의 비트들을 반전시킬 수 있다. 데이터 반전 판단 회로(130)는 단위 데이터들 각각에 대한 판정 신호(DET1)를 DBI 비트들(DBI)로 출력할 수 있다.
DBI 기술은 전송선의 전류 절감을 위해서 사용되는 기술로서, 복수의 데이터 핀들을 갖는 반도체 메모리 장치에 적용될 수 있다. 예컨대, 전송선이 전원 전압(Vdd)으로 터미네이션(termination)되어 있는 경우, 하이 레벨의 신호에 비해 로우 레벨의 신호를 전송하는 데에 더 많은 전류가 소모된다. 따라서, 상기 복수의 데이터 핀들을 통해 전송하려는 데이터에서 로우 레벨의 비트 수가 하이 레벨의 비트 수보다 많은 경우 상기 데이터를 반전하여, 로우 레벨의 비트 수가 상기 데이터의 전체 비트수의 절반 이하가 되도록 하고, 상기 데이터를 반전했다는 신호를 추가로 전송할 수 있다.
데이터 입력 버퍼(140)는 반도체 메모리 장치(140)로부터 데이터(DQ)를 수신하고, 수신한 데이터(DQ)를 ECC 엔진(180)에 제공할 수 있다.
디코딩 상태 플래그 디코더(DSF)는 디코딩 상태 플래그(DSF)를 수신하고, 디코딩 상태 플래그(DSF)를 디코딩하여 디코딩 상태 플래그(DSF)의 정보를 나타내는 디코딩 신호(DS)를 CPU(110)와 ECC 엔진(180)에 제공할 수 있다. 디코딩 상태 플래그(DSF)와 디코딩 신호(DS)는 ECC 엔진(400)이 SEDSEC(single bit error detection single bit error correction)의 능력을 갖는 경우, 에러 비트가 발견되지 않은 경우(no error; NE), 하나의 에러 비트가 발견되어 정정된 경우(correctable error; CE), 두 개 이상의 에러 비트가 발견되었으나 정정되지 못한 경우(uncorrectable error; UE) 등을 포함하는 ECC 디코딩 결과와 관련된 정보일 수 있다.
커맨드 버퍼(190)는 리퀘스트(REQ)에 상응하는 커맨드(CMD)를 저장하고, CPU(110)의 제어에 따라 반도체 메모리 장치(200a)에 커맨드(CMD)를 전송하고, 어드레스 버퍼(190)는 어드레스(ADDR)를 저장하고 CPU(110)의 제어에 따라 반도체 메모리 장치(200a)에 어드레스(ADDR)를 전송할 수 있다.
CPU(110)는 리퀘스트(REQ)에 따라 데이터 레지스터(125)와 ECC 엔진(180)을 제어하고, 인에이블 신호(EN1)를 데이터 반전 판단 회로(130)에 제공하여 데이터 반전 판단 회로(130)를 선택적으로 활성화시킬 수 있다. 또한 CPU(110)는 ECC 엔진(180)을 제어하여 ECC 엔진(180)이 디코딩 신호(DS)에 응답하여 데이터(DQ)에 포함되는 에러를 선택적으로 정정하고 정정된 데이터(C_DQ)를 호스트 인터페이스(120)에 제공하도록 할 수 있다.
CPU(110)는 또한 디코딩 신호(DS)에 기초하여 반도체 메모리 장치(200)의 에러 관리 정책을 결정할 수 있다. 예를 들어, 데이터(DQ)에 ECC 엔진(400)의 정정 능력을 초과하는 에러 비트들의 포함되는 경우, CPU(110)는 상기 에러 비트들을 리던던시 자원을 이용하여 리페어하도록 반도체 메모리 장치(200)를 제어할 수 있다.
다른 실시예로서, 자율 주행 자동차와 같이 높은 안전성과 신뢰성을 요구하는 시스템에 있어 반도체 메모리 장치(200)를 여러 개 사용하여 시스템의 신뢰성을 향상하는 경우, 예를 들어 TMR(Triple Modular Redundancy)와 같이 신뢰할 수 있는 다른 대안의 메모리가 있는 경우에는, 메모리 컨트롤러(100)는 디코딩 상태 플래그(DSF)에 따라 여러 비트의 에러 (Multi-Bit Error)가 발생한 경우에는 안전성(Safety) 확보를 위해 해당 메모리를 사용하지 않도록 하는 등의 조치를 취할 수 있다.
도 3은 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 반도체 메모리 장치의 구성을 나타내는 블록도이다.
도 3을 참조하면, 반도체 메모리 장치(200)는 제어 로직 회로(210), 어드레스 레지스터(220), 뱅크 제어 로직(230), 리프레쉬 카운터(245), 로우 어드레스 멀티플렉서(240), 칼럼 어드레스 래치(250), 로우 디코더(260), 칼럼 디코더(270), 메모리 셀 어레이(300), 센스 앰프부(285), 입출력 게이팅 회로(290), ECC 엔진(400), 채널 인터페이스 회로(500) 및 데이터 입력 버퍼(295)를 포함할 수 있다.
상기 메모리 셀 어레이(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)에 의해 활성화된 뱅크 칼럼 디코더는 상응하는 입출력 게이팅 회로를 통하여 뱅크 어드레스(BANK_ADDR) 및 칼럼 어드레스(COL_ADDR)에 상응하는 센스 앰프를 활성화시킬 수 있다.
입출력 게이팅 회로(290)는 입출력 데이터를 게이팅하는 회로들과 함께, 입력 데이터 마스크 로직, 제1 내지 제8 뱅크 어레이들(310~380)로부터 출력된 데이터를 저장하기 위한 독출 데이터 래치들, 및 제1 내지 제8 뱅크 어레이들(310~380)에 데이터를 기입하기 위한 기입 드라이버들을 포함할 수 있다.
제1 내지 제8 뱅크 어레이들(310~380) 중 하나의 뱅크 어레이에서 독출될 코드워드(CW)는 상기 하나의 뱅크 어레이에 상응하는 센스 앰프에 의해 감지되고, 상기 독출 데이터 래치들에 저장될 수 있다. 상기 독출 데이터 래치들에 저장된 코드워드(CW)는 ECC 엔진(400)에 의하여 ECC 디코딩이 수행된 후에 채널 인터페이스 회로(500)에 제공될 수 있다.
제1 내지 제8 뱅크 어레이들(310~380) 중 하나의 뱅크 어레이에 기입될 데이터(DQ)는 데이터 입력 버퍼(295)로부터 ECC 엔진(400)에 제공되고, ECC 엔진(400)은 데이터(DQ)에 기초하여 패리티 비트들을 생성하고, 상기 메인 데이터와 상기 패리티 비트들을 입출력 게이팅 회로(290)에 제공하고, 입출력 게이팅 회로(290)는 상기 기입 드라이버들을 통하여 상기 데이터와 상기 패리티 비트들을 상기 하나의 뱅크 어레이의 서브 페이지에 기입할 수 있다.
데이터 입력 버퍼(295)는 기입 동작에서 메모리 컨트롤러(100)로부터 제공되는 클럭 신호(CK)에 기초하여 데이터(DQ)를 ECC 엔진(400)에 제공할 수 있다. 실시예에 있어서, 데이터 입력 버퍼(295)는 기입 동작에서 메모리 컨트롤러(100)로부터 제공되는 데이터 반전 비트(DBI)에 기초하여 데이터(DQ)를 선택적으로 반전시키고, 반전되거나 비반전된 데이터(DQ)를 ECC 엔진(400)에 제공할 수 있다. 데이터 입력 버퍼(295)는 도 2에 도시된 바와 같은 데이터 반전 판단 회로(130) 및 데이터 반전 회로(135)를 포함할 수 있다.
데이터 입력 버퍼(295)는 DBI 모드에서는 데이터 반전 비트(DBI)에 기초하여 데이터(DQ)를 선택적으로 반전시키고, 반전되거나 비반전된 데이터(DQ)를 ECC 엔진(400)에 제공할 수 있다. 데이터 입력 버퍼(295)는 비-DBI 모드에서는 데이터 반전 비트(DBI)에 관계없이 데이터(DQ)를 ECC 엔진(400)에 제공할 수 있다.
ECC 엔진(400)은 메모리 셀 어레이(300)의 타겟 페이지의 일부 영역(서브 페이지)으로부터 독출된 코드워드 단위의 데이터에 대하여 ECC 디코딩을 수행하고, 상기 코드워드가 적어도 하나의 에러 비트를 포함하는 경우, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관련된 디코딩 상태 플래그(DSF)를 채널 인터페이스 회로(500)에 제공할 수 있다. 또한, ECC 엔진(400)은 적어도 하나의 에러 비트가 정정된 독출 데이터(C_DQ) 또는 독출 데이터(DQ)를 채널 인터페이스 회로(500)에 제공할 수 있다.
채널 인터페이스 회로(500)는 정정된 독출 데이터(C_DQ) 및 디코딩 상태 플래그(DSF)를 수신하고, 독출 데이터(DQ) 및 디코딩 상태 플래그(DSF)를 링크 패리티 비트들(LPRT)과 같이 메모리 컨트롤러(100)에 전송할 수 있다. 또한 채널 인터페이스 회로(500)는 독출 데이터(DQ) 및 디코딩 상태 플래그(DSF)를 메모리 컨트롤러(100)에 전송할 수 있다.
제어 로직 회로(210)는 반도체 메모리 장치(200)의 동작을 제어할 수 있다. 예를 들어, 제어 로직 회로(210)는 반도체 메모리 장치(200)가 기입 동작 또는 독출 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 로직 회로(210)는 상기 메모리 컨트롤러(100)로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(211) 및 반도체 메모리 장치(200)의 동작 모드를 설정하기 위한 모드 레지스터(212)를 포함할 수 있다.
예를 들어, 커맨드 디코더(211)는 기입 인에이블 신호, 로우 어드레스 스트로브 신호, 칼럼 어드레스 스트로브 신호, 칩 선택 신호 등을 디코딩하여 커맨드(CMD)에 상응하는 상기 제어 신호들을 생성할 수 있다. 특히 제어 로직 회로(210)는 커맨드(CMD)를 디코딩하여 입출력 게이팅 회로 블록(290)을 제어하는 제1 제어 신호(CTL1), ECC 엔진(400)을 제어하는 제2 제어 신호(CTL2) 및 채널 인터페이스 회로(500)를 제어하는 제3 제어 신호(CTL3)를 생성할 수 있다.
도 3의 반도체 메모리 장치(200)가 SRAM으로 구현되는 경우, 필요한 회로들이 반도체 메모리 장치(200) 내부에 포함될 수 있다.
도 4는 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치에서 제1 뱅크 어레이의 일 예를 나타낸다.
도 4를 참조하면, 제1 뱅크 어레이(310a)는 복수개의 워드라인들(WL1~WLm, m은 2이상의 정수), 복수개의 비트라인들(BTL1~BTLn, n은 2이상의 정수), 그리고 워드라인들(WL1~WLm)과 비트라인들(BTL1~BTLn) 사이의 교차점에 배치되는 복수개의 동적 메모리 셀들(MCs)을 포함한다. 동적 메모리 셀들(MCs) 각각은 워드라인들(WL1~WLm) 각각과 비트라인들(BTL1~BTLn) 각각에 연결되는 셀 트랜지스터 및 상기 셀 트랜지스터에 연결되는 셀 커패시터를 포함할 수 있다.
도 5는 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치에서 제1 뱅크 어레이의 다른 예를 나타낸다.
도 5를 참조하면, 제1 뱅크 어레이(310b)는 복수개의 워드라인들(WL1~WLm, 복수개의 비트라인들(BTL1~BTLr, r은 2이상의 정수), 복수개의 상보 비트라인들(BTLB1~BTLBr) 및 워드라인들(WL1~WLm), 비트라인들(BTL1~BTLr) 및 상보 비트라인들(BTLB1~BTLBr)에 연결되는 복수개의 비트셀들(315)을 포함한다. 도 5에서는 워드라인(WLj), 비트라인(BTLk) 및 상보 비트라인(BTLBk)에 연결되는 비트셀(315)이 도시된다.
즉 반도체 메모리 장치(200)는 내부에 ECC 엔진을 포함하는 DRAM 또는 SRAM으로 구성될 수 있다.
도 6은 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치에서 ECC 엔진의 구성을 나타내는 블록도이다.
도 6을 참조하면, ECC 엔진(400)은 ECC 인코더(410) 및 ECC 디코더(430)를 포함할 수 있다.
도 6에서는 제1 뱅크 어레이(310)를 ECC 엔진(400)과 함께 도시한다. 제1 뱅크 어레이(310)는 노멀 셀 어레이(NCA) 및 리던던시 셀 어레이(RCA)를 포함할 수 있다.
ECC 인코더(410)는 제1 뱅크 어레이(310)의 노멀 셀 어레이(NCA)에 저장될 기입 데이터(WDQ)와 관련된 패리티 비트들(PRT)를 생성할 수 있다. 패리티 비트들(PRT)은 제1 뱅크 어레이(310)의 리던던시 셀 어레이(RCA)에 저장될 수 있다.
ECC 디코더(430)는 제1 뱅크 어레이(310)로부터 독출된 독출 데이터(RDQ)와 패리티 비트들(PRT)을 이용하여 독출 데이터(RDQ)에 대하여 ECC 디코딩을 수행할 수 있다. ECC 디코딩의 수행 결과, 독출 데이터(RDQ)가 적어도 하나의 에러 비트를 포함하는 경우, ECC 디코더(430)는 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관련된 디코딩 상태 플래그(DSF)를 출력할 수 있다. ECC 디코더(430)는 또한 적어도 하나의 에러 비트를 정정하여 정정된 데이터(C_DQ)를 출력할 수 있다.
실시예에 따라서, ECC 디코더(430)는 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부 관한 에러 처리 정보를 ECC 디코더(430) 외부에 위치하는 디코딩 상태 플래그 생성기에 제공하고, 상기 디코딩 상태 플래그 생성기가 상기 에러 처리 정보에 기초하여 상기 디코딩 상태 플래그(DSF)를 생성할 수 있다.
도 7은 본 발명의 실시예들에 따른 도 6의 ECC 인코더를 나타낸다.
도 7을 참조하면, ECC 인코더(410)는 패리티 생성기(420)를 포함할 수 있다. 패리티 생성기(420)는 128 비트의 기입 데이터(WDQ)와 8 비트의 베이시트 비트(BB)를 수신하고, XOR 어레이 연산을 이용하여 8 비트의 패리티 비트들(PRT)를 생성할 수 있다. 베이시트 비트(BB)는 128 비트의 기입 데이터(WDQ)에 대한 패리티 비트들(PRT)을 발생시키기 위한 비트로서 예를 들어, b'0000000 비트들로 구성될 수 있다. 베이시트 비트(BB)는 b'0000000 비트들 대신에 다른 특정 비트들을 이용할 수 있다.
도 8은 본 발명의 실시예들에 따른 도 6의 ECC 디코더를 나타낸다.
도 8을 참조하면, ECC 디코더(430)는 신드롬 생성 회로(440), XOR 게이트(451), 에러 로케이터(460), 데이터 정정기(470) 및 디코딩 상태 플래그 생성기(480)를 포함할 수 있다. 신드롬 생성 회로(440)는 체크 비트 생성기(441) 및 신드롬 생성기(443)를 포함할 수 있다.
체크 비트 생성기(441)는 XOR 어레이 연산을 이용하여 독출 데이터(RDQ)에 기초하여 체크 비트들(CHB)을 생성하고, 신드롬 생성기(443)는 패리티 비트들(PRT)과 체크 비트들(CHB)의 상승하는 비트들을 비교하여 신드롬(SDR)을 생성한다.
에러 로케이터(460)는 신드롬(SDR)의 비트들이 모두 제로가 아닌 경우, 신드롬(SDR)을 디코딩하여 독출 데이터(RDQ)에 포함되는 에러 비트의 위치를 나타내는 에러 위치 신호(EPS)를 데이터 정정기(470)에 제공한다. 에러 로케이터(460)는 또한 독출 데이터(RDQ)에 적어도 하나의 에러 비트가 포함되는 경우, 상기 적어도 하나의 에러 비트의 수를 나타내는 에러 카운트 신호(ECN)와 상기 에러 비트가 ECC 디코더(430)의 정정 가능 이내인지 여부를 나타내는 에러 플래그 신호(EFG)를 디코딩 상태 플래그 생성기(480)에 제공할 수 있다.
도시하지는 않았지만, 에러 로케이터(460)는 어드레스(ADDR)를 수신하고, 신드롬(SDR)의 비트들이 모두 제로가 아닌 경우, 상기 적어도 하나의 에러 비트를 포함하는 코드워드 단위의 데이터의 어드레스를 에러 어드레스로서 채널 인터페이스 회로(500)에 제공하고, 채널 인터페이스 회로(500)는 상기 에러 어드레스를 내부의 레지스터에 저장하고, 제어 로직 회로(210)의 제어에 따라 상기 레지스터에 저장된 에러 어드레스를 메모리 컨트롤러(100)에 전송할 수 있다.
데이터 정정기(470)는 독출 데이터(RDQ)를 수신하고, 독출 데이터(RDQ)에 에러 비트가 포함되는 경우, 에러 위치 신호(EPS)에 기초하여 독출 데이터(RDQ)의 에러 비트를 정정하여 정정된 데이터(C_DQ)를 출력한다. 데이터 정정기(470)는 또한 독출 데이터(RDQ)와 정정된 데이터(C_DQ)를 디코딩 상태 플래그 생성기(480)에 제공할 수 있다.
도 9는 본 발명의 실시예들에 따른 도 8의 디코딩 상태 플래그 생성기의 일 예를 나타낸다.
도 9를 참조하면, 디코딩 상태 플래그 생성기(480a)는 디코딩 상태 플래그 디코더(481) 및 신호 생성기(482)를 포함할 수 있다.
디코딩 상태 플래그 디코더(481)는 에러 카운트 신호(ECN) 및 에러 플래그 신호(EFG)를 수신하고, 에러 카운트 신호(ECN) 및 에러 플래그 신호(EFG)를 디코딩하여 디코딩 신호(DS1)를 생성한다. 신호 생성기(482)는 디코딩 신호(DS1)를 수신하고, 디코딩 신호(DS1)가 나타내는 에러 비트의 개수, 종류 및 정정 여부에 기초하여 디코딩 상태 플래그(DSF1)를 생성한다. 디코딩 상태 플래그(DSF1)는 복수 비트들로 구성되어, 에러 비트의 개수, 종류 및 정정 여부를 나타낼 수 있다.
도 10은 본 발명의 실시예들에 따른 도 8의 디코딩 상태 플래그 생성기의 다른 예를 나타낸다.
도 10을 참조하면, 디코딩 상태 플래그 생성기(480b)는 버퍼(483), 비교기(484) 및 신호 생성기(485)를 포함할 수 있다.
버퍼(483)는 독출 데이터(RDQ)를 저장하고, 독출 데이터(RDQ)를 비교기(484)에 제공할 수 있다. 비교기(484)는 독출 데이터(RDQ)와 정정된 독출 데이터(C_DQ)의 상응하는 비트들을 서로 비교하고, 비교의 결과를 나타내는 비교 신호(CS)를 출력할 수 있다.
신호 생성기(485)는 비교 신호(CS)를 수신하고, 비교 신호(CS)의 비트들에서 하이 레벨을 가지는 비트들의 수에 기초하여 디코딩 상태 플래그(DSF2)를 생성한다. 디코딩 상태 플래그(DSF1)는 독출 데이터(RDQ)에 포함되는 에러 비트들의 수를 나타낼 수 있다.
도 11은 본 발명의 실시예들에 따른 도 8의 디코딩 상태 플래그 생성기의 다른 예를 나타낸다.
도 11을 참조하면, 디코딩 상태 플래그 생성기(480c)는 디코딩 상태 플래그 디코더(486), 버퍼(487) 및 신호 생성기(488)를 포함할 수 있다.
디코딩 상태 플래그 디코더(481)는 에러 플래그 신호(EFG)를 수신하고, 에러 비트의 정정 가능 여부를 나타내는 에러 플래그 신호(EFG) 디코딩하여 디코딩 신호(DS2)를 생성한다. 버퍼(487)는 정정된 독출 데이터(C_DQ)를 저장하여 신호 생성기(487)에 제공한다.
신호 생성기(488)는 디코딩 신호(DS2)와 정정된 독출 데이터(C_DQ)를 수신하고, 디코딩 신호(DS2)가 에러 비트의 정정 가능 여부 및 정정된 독출 데이터(C_DQ)에 기초하여 디코딩 상태 플래그(DSF3)를 생성한다. 디코딩 상태 플래그(DSF3)는 복수 비트들로 구성되어, 독출 데이터(RDQ)에 포함되는 제1 로직 레벨의 데이터 비트들의 수 또는 제2 로직 레벨의 비트들의 수를 나타낼 수 있다.
도 12는 본 발명의 실시예들에 따른 도 8의 디코딩 상태 플래그 생성기의 다른 예를 나타낸다.
도 12를 참조하면, 디코딩 상태 플래그 생성기(480d)는 버퍼(483), 비교기(484), 디코더(491) 및 신호 생성기(492)를 포함할 수 있다.
버퍼(483)는 독출 데이터(RDQ)를 저장하고, 독출 데이터(RDQ)를 비교기(484)에 제공할 수 있다. 비교기(484)는 독출 데이터(RDQ)와 정정된 독출 데이터(C_DQ)의 상응하는 비트들을 서로 비교하고, 비교의 결과를 나타내는 비교 신호(CS)를 출력할 수 있다.
디코더(491)는 비교 신호(CS)와 정정된 독출 데이터(C_DQ)를 수신하고, 비교 신호(CS)와 정정된 독출 데이터(C_DQ)를 디코딩하여 디코딩 신호(DS3)를 생성할 수 있다.
신호 생성기(492)는 디코딩 신호(DS3)에 기초하여 디코딩 상태 플래그(DSF4)를 생성할 수 있다. 따라서, 디코딩 상태 플래그(DSF4)는 독출 데이터(RDQ)에 포함되는 제1 로직 레벨의 데이터 비트가 제2 로직 레벨의 데이터 비트로 독출되거나 제2 로직 레벨의 데이터 비트가 제1 로직 레벨의 데이터 비트로 독출되는 수를 나타낼 수 있다.
도 13은 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치에서 채널 인터페이스 회로의 예를 나타내는 블록도이다.
도 13에서는 설명의 편의를 위하여 ECC 디코더(430)를 채널 인터페이스 회로(500a)와 함께 도시하였다. 또한 도 13에서는 디코딩 상태 플래그 생성기(480)가 ECC 디코더(430)에 포함되는 것으로 도시되었으나, 디코딩 상태 플래그 생성기(480)는 ECC 디코더(430) 외부에 배치될 수 있다.
도 13을 참조하면, 채널 인터페이스 회로(500a)는 DBI 인코더(510), 패리티 생성기(515), 레지스터(516), 멀티플렉서들(520, 525, 530) 및 직렬화기(540)를 포함할 수 있다.
ECC 디코더(430)는 데이터(DQ) 또는 정정된 데이터(C_DQ)를 제공할 수 있고, 디코딩 상태 플래그 생성기(480)는 디코딩 상태 플래그(DSF)를 제공할 수 있다.
DBI 인코더(510)는 인에이블 신호(EN2)에 응답하여 활성화되는 경우, 데이터(DQ) 또는 정정된 데이터(C_DQ)를 선택적으로 반전하여 데이터(DQ')와 데이터(DQ')의 반전 여부를 나타내는 데이터 반전 비트(DBI)를 출력할 수 있다. DBI 인코더(510)는 데이터 반전 판단 회로 및 데이터 반전 회로를 포함할 수 있다.
패리티 생성기(515)는 데이터(DQ) 또는 정정된 데이터(C_DQ)에 기초하여, 링크 혹은 인터페이스에서 발생하는 에러를 검출하고 정정하기 위한 링크 ECC와 관련된 링크 패리티 비트들(LPRT)를 생성할 수 있다. 레지스터(516)는 미리 정의된 패턴(PDP)를 저장하고, 레지스터 제어 신호(RCTL)에 응답하여 미리 정의된 패턴(PDP)을 출력할 수 있다.
멀티플렉서(520)는 데이터(DQ) 및 반전 데이터(DQ')를 수신하고, 선택 신호(SS11)에 응답하여 비-DBI 모드에서는 데이터(DQ)를 직렬화기(540)에 제공하고, DBI 모드에서는 반전 데이터(DQ')를 직렬화기(540)에 제공한다.
멀티플렉서(525)는 디코딩 상태 플래그(DSF)와 미리 정의된 패턴(PDP)을 수신하고, 선택 신호(SS12)에 응답하여 디코딩 상태 플래그(DSF)와 미리 정의된 패턴(PDP) 중 하나를 멀티플렉서(530)에 제공할 수 있다.
멀티플렉서(530)는 데이터 반전 비트(DBI), 링크 패리티 비트들(LPRT) 및 멀티플렉서(525)의 출력을 수신하고, 선택 신호(SS21)에 응답하여 DBI 모드에서는 데이터 반전 비트(DBI)를 직렬화기(540)에 제공하고, 비-DBI 모드에서는 링크 패리티 비트들(LPRT) 및 멀티플렉서(525)의 출력을 시간-분할(time-division) 멀티플렉싱하여 직렬화기(540)에 제공할 수 있다.
직렬화기(540)는 멀티플렉서(520)의 출력을 직렬화하여 데이터 핀(DQP)을 통하여 메모리 컨트롤러(100)에 전송하고, 멀티플렉서(530)의 출력을 직렬화하여 DMI 핀(DMIP)을 통하여 메모리 컨트롤러(100)에 전송할 수 있다.
실시예에 따라서, 패리티 생성기(515)는 인에이블 신호(EN3)에 의하여 비활성화될 수 있다. 이 경우에, 채널 인터페이스 회로(500a)는 DMI 핀(DMIP)을 통하여 디코딩 상태 플래그(DSF)를 한번 메모리 컨트롤러(100)에 전송하거나, 디코딩 상태 플래그(DSF)를 반복하여 메모리 컨트롤러(100)에 전송하거나, 미리 정의된 패턴(PDP)를 메모리 컨트롤러(100)에 전송할 수 있다.
선택 신호들(SS11, SS12, SS21), 레지스터 제어 신호(RCTL) 및 인에이블 신호들(EN2, EN3)는 도 3의 제3 제어 신호(CTL3)에 포함될 수 있다.
도 14는 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치에서 채널 인터페이스 회로의 다른 예를 나타내는 블록도이다.
도 14에서는 설명의 편의를 위하여 ECC 디코더(430)를 채널 인터페이스 회로(500b)와 함께 도시하였다. 또한 도 14에서는 디코딩 상태 플래그 생성기(480)가 ECC 디코더(430)에 포함되는 것으로 도시되었으나, 디코딩 상태 플래그 생성기(480)는 ECC 디코더(430) 외부에 배치될 수 있다.
도 14를 참조하면, 채널 인터페이스 회로(500b)는 DBI 인코더(510), 패리티 생성기(515), 멀티플렉서들(520, 535) 및 직렬화기(540)를 포함할 수 있다.
ECC 인코더(430)는 데이터(DQ) 또는 정정된 데이터(C_DQ)를 제공할 수 있고, 디코딩 상태 플래그 생성기(480)는 디코딩 상태 플래그(DSF)를 제공할 수 있다.
DBI 인코더(510)는 인에이블 신호(EN2)에 응답하여 활성화되는 경우, 데이터(DQ) 또는 정정된 데이터(C_DQ)를 선택적으로 반전하여 데이터(DQ')와 데이터(DQ')의 반전 여부를 나타내는 데이터 반전 비트(DBI)를 출력할 수 있다.
패리티 생성기(517)는 인에이블 신호(EN3)에 응답하여 활성화되는 경우, 데이터(DQ) 또는 정정된 데이터(C_DQ) 및 디코딩 상태 플래그(DSF)에 기초하여 링크 패리티 비트들(LPRT)를 생성하고, 링크 패리티 비트들(LPRT) 및 디코딩 상태 플래그(DSF)를 출력할 수 있다. 즉, 패리티 생성기(517)는 데이터(DQ) 또는 정정된 데이터(C_DQ)에 기초하여 디코딩 상태 플래그(DSF)에 대하여 ECC 인코딩을 수행할 수 있다. 따라서, 링크 패리티 비트들(LPRT)은 디코딩 상태 플래그(DSF)의 전송 시 발생할 수 있는 에러로부터 디코딩 상태 플래그(DSF)를 보호할 수 있다.
멀티플렉서(520)는 데이터(DQ) 및 반전 데이터(DQ')를 수신하고, 선택 신호(SS11)에 응답하여 비-DBI 모드에서는 데이터(DQ)를 직렬화기(540)에 제공하고, DBI 모드에서는 반전 데이터(DQ')를 직렬화기(540)에 제공한다.
멀티플렉서(535)는 데이터 반전 비트(DBI) 및 링크 패리티 비트들(LPRT) 및 디코딩 상태 플래그(DSF)를 수신하고, 선택 신호(SS22)에 응답하여 DBI 모드에서는 데이터 반전 비트(DBI)를 직렬화기(540)에 제공하고, 비-DBI 모드에서는 링크 패리티 비트들(LPRT) 및 디코딩 상태 플래그(DSF)를 직렬화기(540)에 제공할 수 있다.
직렬화기(540)는 멀티플렉서(520)의 출력을 직렬화하여 데이터 핀(DQP)을 통하여 메모리 컨트롤러(100)에 전송하고, 멀티플렉서(535)의 출력을 직렬화하여 DMI 핀(DMIP)을 통하여 메모리 컨트롤러(100)에 전송할 수 있다.
선택 신호들(SS11, SS22) 및 인에이블 신호들(EN2, EN3)는 도 3의 제3 제어 신호(CTL3)에 포함될 수 있다.
도 15 내지 도 19는 각각 채널 인터페이스 회로에서 디코딩 상태 플레그가 메모리 컨트롤러로 전송되는 것을 나타낸다.
도 15 내지 도 19에서 기입 클럭 신호(WCK)는 메모리 컨트롤러(100)에서 커맨드(CMD)와 같이 제공되고, 독출 레이턴시(RL)는 독출 커맨드(RD) 수신 후 데이터(DQ)가 출력될 때까지의 지연을 나타낸다. 또한, 독출 스트로브 신호(RDQS)는 반도체 메모리 장치(200)가 데이터(DQ)와 함께 메모리 컨트롤러(100)에 전송하는 신호이다.
도 15를 참조하면, 데이터(DQ)가 버스트 단위(DQ_BRT)로 메모리 컨트롤러(100)로 전송될 때, 채널 인터페이스 회로(500)는 DMI 핀(DMIP)을 통하여 디코딩 상태 플래그(DSF)와 링크 패리티 비트들(LPRT)을 시간-멀티플렉싱하여 메모리 컨트롤러(100)로 전송함을 알 수 있다.
도 16을 참조하면, 도 13의 패리티 생성기(515)가 비활성화되고, 데이터(DQ)가 버스트 단위(DQ_BRT)로 메모리 컨트롤러(100)로 전송될 때, 채널 인터페이스 회로(500)는 DMI 핀(DMIP)을 통하여 디코딩 상태 플래그(DSF)만을 메모리 컨트롤러(100)로 전송함을 알 수 있다.
도 17을 참조하면, 도 13의 패리티 생성기(515)가 비활성화되고, 데이터(DQ)가 버스트 단위(DQ_BRT)로 메모리 컨트롤러(100)로 전송될 때, 채널 인터페이스 회로(500)는 DMI 핀(DMIP)을 통하여 디코딩 상태 플래그(DSF)를 반복하여 메모리 컨트롤러(100)로 전송함을 알 수 있다.
도 18을 참조하면, 도 13의 패리티 생성기(515)가 비활성화되고, 멀티플렉서(525)가 미리 정의된 패턴(PDP)를 선택하고, 데이터(DQ)가 버스트 단위(DQ_BRT)로 메모리 컨트롤러(100)로 전송될 때, 채널 인터페이스 회로(500)는 DMI 핀(DMIP)을 통하여 미리 정의된 패턴(PDP)을 메모리 컨트롤러(100)로 전송함을 알 수 있다.
도 19를 참조하면, 도 14의 패리티 생성기(517)가 활성화되고, 패리티 생성기(517)가 데이터(DQ)에 기초하여 디코딩 상태 플래그(DSF)를 인코딩하고, 채널 인터페이스 회로(500)는 DMI 핀(DMIP)을 통하여 인코딩된 디코딩 상태 플래그(DSF_EN)와 링크 패리티 비트들(LPRT)을 시간-멀티플렉싱하여 메모리 컨트롤러(100)로 전송함을 알 수 있다.
도 20 내지 도 22는 각각 본 발명의 실시예들에 따른 도 3의 반도체 메모리 장치가 디코딩 상태 플래그를 메모리 컨트롤러에 전송하는 것을 나타낸다.
도 20 내지 도 22에서 메모리 코어/페리(201)는 도 3의 반도체 메모리 장치(200)에서 ECC 엔진(400), 채널 인터페이스 회로(500) 및 데이터 입력 버퍼(295)를 제외한 다른 구성 요소들을 포함하는 것으로 가정한다.
도 20을 참조하면, 반도체 메모리 장치(200a)에서 ECC 엔진(400)은 에러 카운트 신호(ECN) 및 에러 플래그 신호(EFG)를 적어도 포함하는 에러 처리 정보(EPI)를 디코딩 상태 플래그 생성기(480)에 제공하고, 디코딩 상태 플래그 생성기(480)는 에러 처리 정보(EPI)에 기초하여 디코딩 상태 플래그(DSF)를 생성하고, 디코딩 상태 플래그(DSF)를 제1 핀(204)을 통하여 실시간으로 메모리 컨트롤러(100)에 전송할 수 있다. 반도체 메모리 장치(200a)는 제2 핀(204)을 통하여 메모리 컨트롤러(100)와 데이터(DQ)를 주고 받을 수 있다. 여기서 제1 핀(204)는 DMI 핀이거가 DBI 핀이거나 DM 핀일 수 있다. 즉 DSF 생성기(480)는 링크 패리티 비트들과 디코딩 상태 플래그(DSF)를 시간-분할 멀티플렉싱하여 메모리 컨트롤러(100)에 전송할 수 있다.
도 21을 참조하면, 반도체 메모리 장치(200b)에서 ECC 엔진(400)은 에러 카운트 신호(ECN) 및 에러 플래그 신호(EFG)를 적어도 하나 포함하는 에러 처리 정보(EPI)를 디코딩 상태 플래그 생성기(480)에 제공할 수 있다.
디코딩 상태 플래그 생성기(480)는 에러 처리 정보(EPI) 및/또는 데이터(DQ)에 기초하여 디코딩 상태 플래그(DSF)를 생성하고, 멀티플렉서(495)는 데이터(DQ) 및 디코딩 상태 플래그(DSF)를 핀(202)을 통하여 시간-분할 멀티플렉싱하여 실시간으로 메모리 컨트롤러(100)에 전송할 수 있다. 여기서 핀(202)은 데이터 핀일 수 있다.
도 22을 참조하면, 반도체 메모리 장치(200b)에서 ECC 엔진(400)은 에러 카운트 신호(ECN) 및 에러 플래그 신호(EFG)를 적어도 하나 포함하는 에러 처리 정보(EPI)를 디코딩 상태 플래그 생성기(480)에 제공할 수 있다.
디코딩 상태 플래그 생성기(480)는 에러 처리 정보(EPI) 및/또는 데이터(DQ)에 기초하여 디코딩 상태 플래그(DSF)를 생성하고, 디코딩 상태 플래그(DSF)를 레지스터(497)에 저장할 수 있다. 레지스터(497)는 또한 ECC 엔진(400)으로부터 제공되는 에러 처리 정보(EPI)를 저장할 수 있다. 에러 처리 정보(EPI)는 적어도 하나의 에러 비트와 관련된 신드롬 및 에러 어드레스를 더 포함할 수 있다.
도 3의 제어 로직 회로(210)는 레지스터(REG)를 제어하여 디코딩 상태 플래그(DSF)가 주기적으로 또는 특정한 시간에 메모리 컨트롤러(100)로 전송되도록 할 수 있다.
도 23은 본 발명의 실시예들에 따른 반도체 메모리 장치를 보여주는 예시적인 블록도이다.
도 23을 참조하면, 반도체 메모리 장치(600)는, 스택드 칩 구조에서 소프트 데이터 페일의 분석 및 구제 기능을 제공하기 위해 제1 그룹 다이(610)와 제2 그룹 다이(620)를 포함할 수 있다.
상기 제1 그룹 다이(610)는 적어도 하나의 버퍼 다이(Buffer Die)로 이루어질 수 있다. 상기 제2 그룹 다이(620)는 상기 제1 그룹 다이(610)의 상부에 적층되고 복수의 쓰루 실리콘 비아(이하 TSV) 라인들을 통해 데이터를 통신하는 복수의 메모리 다이들(620-1,620-2,...,620-p)을 포함할 수 있다.
상기 복수의 메모리 다이들(620-1,620-2,...,620-p) 중 적어도 하나는 제1 그룹 다이(610)로 전송되는 전송 데이터를 이용하여 전송 패리티 비트들과 에러 처리 정보를 생성하는 제1 타입 ECC 엔진(622)을 포함할 수 있다. 여기서, 제1 타입 ECC 엔진(622)는 메모리 다이에 설치되는 회로이므로 셀 코어 ECC 엔진으로 칭해질 수 있다. 제1 타입 ECC 엔진(622)는 도 6의 ECC 엔진(400)을 채용할 수 있다.
버퍼 다이(610)는 상기 복수의 TSV 라인들을 통해 수신되는 전송 데이터에 전송 에러가 발생된 경우에 전송 패리티 비트들을 이용하여 전송 에러를 정정함에 의해 에러 정정된 데이터를 생성하는 제2 타입 ECC 엔진(612) 및 채널 인터페이스 회로(614)를 포함할 수 있다.
여기서, 제2 타입 ECC 엔진(612)는 전송로의 페일을 정정하기 위한 회로이므로 비아 ECC 엔진으로 칭해질 수 있다. 채널 인터페이스 회로(614)는 도 13의 채널 인터페이스 회로(500a) 및 도 14의 채널 인터페이스 회로(500b) 중 하나로 구성될 수 있다.
반도체 메모리 장치(600)는 상기 TSV 라인들을 통해 상기 데이터 및 제어 신호들을 통신하는 스택 칩 타입 메모리 장치 혹은 스택드 메모리 장치일 수 있다. 상기 TSV 라인들은 실리콘 관통 전극들로도 칭해질 수 있다.
제1 타입 ECC 엔진(622)은 상술한 바와 같이, 메모리 다이(620-p)에서 독출된 데이터가 적어도 하나의 에러 비트를 포함하는 경우, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 가능성 여부에 관련된 디코딩 상태 플래그를 채널 인터페이스 회로(614)에 전송할 수 있다.
제1 타입 ECC 엔진(622)는 전송 데이터가 전송되기 이전에 메모리 다이(620-p)로부터 출력되는 데이터에 대한 에러 정정도 수행할 수 있다.
전송 데이터에 발생된 전송 에러는 상기 TSV 라인들에서 발생되는 노이즈에 기인하여 생성될 수 있다. 상기 TSV 라인들에서 발생되는 노이즈에 기인하여 생성되는 데이터 페일은 메모리 다이 자체에 기인하여 발생되는 데이터 페일과는 구별되는 것이므로 소프트 데이터 페일일 수 있다. 이러한 소프트 데이터 페일은 전송로 전송 페일에 의해 발생된 것이므로 ECC 동작 구현에 의해 검출 및 구제될 수 있다.
전송 데이터가 128비트인 경우에 상기 전송 패리티 비트들은 8비트로 설정될 수 있다. 실시예들에 따라서, 설정되는 비트수는 가변될 수 있다.
따라서, 하나의 메모리 다이(620-p)에 형성되는 데이터 TSV 라인 그룹(632)은 64개의 TSV 라인들(L1~Lp)로 구성될 수 있고, 패리티 TSV 라인 그룹(634)은 8개의 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)를 통해 메모리 컨트롤러와 연결될 수 있다. 버퍼 다이(610)에 포함되는 채널 인터페이스 회로(614)는 데이터 버스(B10)를 통하여 디코딩 상태 플래그를 메모리 컨트롤러에 실시간으로 전송할 수 있다.
셀 코어 ECC 엔진인 제1 타입 ECC 엔진(622)는 데이터 TSV 라인 그룹(632)을 통해 전송 데이터를 출력한다. 또한, 제1 타입 ECC 엔진(622)는 패리티 TSV 라인 그룹(634)을 통해 전송 패리티 비트들을 출력한다. 상기 출력되는 전송 데이터는 제1 타입 ECC 엔진(632)에 의해 에러 정정된 데이터일 수 있다.
비아 ECC 엔진인 제2 타입 ECC 엔진(612)는 데이터 TSV 라인 그룹(632)을 통해 수신되는 전송 데이터에 전송 에러가 발생되었는 지의 여부를 패리티 TSV 라인 그룹(634)을 통해 수신되는 전송 패리티 비트들을 이용하여 체크한다. 전송 에러가 발생되는 경우에 제2 타입 ECC 엔진(612)는 전송 패리티 비트들을 이용하여 전송 데이터에 대한 전송 에러를 정정한다. 전송 에러의 비트 수가 정정 불가한 경우에 상기 제2 타입 ECC 엔진(112)는 데이터 에러 발생을 알리는 정보를 출력할 수 있다.
고대역폭 메모리(high bandwidth memory; HBM) 이나 스택드 칩 구조에서 독출되는 데이터에 에러가 발생된 경우에 메모리 다이의 자체에서 발생된 에러인지 쓰루 실리콘 비아를 통해 데이터가 전송될 시에 노이즈에 기인하여 발생된 전송 에러인지가 불량 유형의 분석을 위해 구별되어야 한다.
본 발명의 실시예들에서는 도 23에서와 같이 메모리 다이에는 셀 코어 ECC 엔진을 설치하고, 버퍼 다이에는 비아 ECC 엔진을 설치함으로써 소프트 데이터 페일의 검출 및 정정을 검증할 수 있다. 소프트 데이터 페일은 쓰루 실리콘 비아 라인들을 통해 데이터가 전송될 시에 노이즈에 기인하여 발생된 전송 에러를 포함할 수 있다.
또한 도시하지는 않았지만, 버퍼 다이(310)는 도 2의 메모리 컨트롤러(100)와 같은 메모리 컨트롤러를 포함할 수 있다.
다른 실시예에 있어서, 반도체 메모리 장치(600)는 하이브리드 메모리 큐브(Hybrid memory cube; 이하 'HMC)와 같은 적층형 메모리 장치로 구성될 수 있다. 이 경우에, HMC에 포함되는 버퍼 다이에 메모리 컨트롤러가 포함될 수 있고, 메모리 다이에 본 발명의 실시예들에 따른 채널 인터페이스 회로와 ECC 엔진이 구비될 수 있다.
도 24는 본 발명의 실시예들에 따른 반도체 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 3 내지 도 24를 참조하면, 메모리 셀 어레이(300), ECC 엔진(400) 및 채널 인터페이스 회로(500)를 포함하는 반도체 메모리 장치(200)의 동작 방법에서는, ECC 엔진(400)이 메모리 셀 어레이(300)로부터 독출된 독출 데이터(DQ)에 대하여 ECC 디코딩을 수행하고, 상기 ECC 디코딩에서 생성된 정보에 기초하여 에러 처리 정보(EPI)를 생성한다(S110). 여기서 에러 처리 정보(EPI)는 상기 독출 데이터가 적어도 하나의 에러 비트를 포함하는 경우, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 가능 여부에 관련된 정보를 포함할 수 있다.
ECC 엔진(400) 내부 또는 외부의 디코딩 상태 플래그 생성기(480)는 상기 에러 처리 정보(EPI)에 기초하여 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 가능 여부에 관련된 디코딩 상태 플래그(DSF)를 생성하고, 상기 디코딩 상태 플래그(DSF)를 채널 인터페이스 회로(500)에 제공한다(S120).
상기 채널 인터페이스 회로(500)는 상기 독출 데이터(DQ)와 디코딩 상태 플래그(DSF)를 실시간으로 메모리 컨트롤러(100)에 전송한다(S130).
상기 채널 인터페이스 회로(500)는 디코딩 상태 플래그(DSF)를 데이터 반전 비트를 수신하는 DMI 핀을 통하여 메모리 컨트롤러(100)에 전송할 수 있다.
채널 인터페이스 회로(500)는 링크 패리티 비트들과 디코딩 상태 플래그(DSF)를 상기 DMI 핀을 통하여 시간-멀티플렉싱을 이용하여 메모리 컨트롤러(100)에 전송할 수 있다. 채널 인터페이스 회로(500)는 디코딩 상태 플래그(DSF)만을 상기 DMI 핀을 통하여 메모리 컨트롤러(100)에 전송하거나, 디코딩 상태 플래그(DSF)를 반복하여 메모리 컨트롤러(100)에 전송할 수 있다.
따라서 본 발명의 실시예들에 따르면, 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 정보를 반도체 메모리 장치의 핀을 통하여 메모리 컨트롤러에 전송하여 에러가 발생한 어드레스를 실시간으로 모니터링할 수 있다. 따라서 반도체 메모리 장치의 신뢰성과 성능을 향상시킬 수 있다.
도 25는 본 발명의 실시예들에 따른 도 23의 반도체 메모리 장치가 3D 칩 구조에 적용되는 예를 나타내는 블록도이다.
도 25는 인터포저 층의 개재 없이 호스트와 HBM을 직접 적으로 연결한 3D 칩 구조(700)를 나타낸다.
도 25를 참조하면, PCB(720)의 상부에는 플립 칩 범프(FB)들을 통해 SoC, CPG, 혹은 GPU 일 수 있는 호스트 다이(710)가 배치된다. 상기 호스트 다이(710)의 상부에는 제2 그룹 다이(620)와 같은 HBM 구조를 형성하기 위한 메모리 다이들(D11~D14)이 적층된다.
도 25에서는 도 23의 버퍼 다이(610) 혹은 로직 다이가 생략되어 있으나, 버퍼 다이(610)는 메모리 다이(D11)와 호스트 다이(710) 사이에 배치될 수 있다. HBM 구조를 구현하기 위해 메모리 다이들(D11~D14)에는 실리콘 관통 전극이라 불려지는 TSV 라인들이 형성된다. TSV 라인들은 메모리 다이들 사이에 형성된 마이크로 범프(MCB)들과 전기적으로 연결될 수 있다.
도 26은 본 발명의 실시예에 따른 반도체 메모리 장치를 모바일 시스템에 응용한 예를 나타내는 블록도이다.
도 26을 참조하면, 모바일 시스템(900)은 어플리케이션 프로세서(910), 통신 회로(Connectivity)(920), 사용자 인터페이스(930), 비휘발성 메모리 장치(940), 휘발성 메모리 장치(950) 및 파워 서플라이(960)를 포함한다. 휘발성 메모리 장치(950)는 메모리 셀 어레이(951) 및 채널 인터페이스 회로(953)를 포함할 수 있다.
어플리케이션 프로세서(910)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 어플리케이션 프로세서(910)는 휘발성 메모리 장치(950)를 제어하는 메모리 컨트롤러(911)를 포함할 수 있다.
통신 회로(920)는 외부 장치와 무선 통신 또는 유선 통신을 수행할 수 있다.
휘발성 메모리 장치(950)는 어플리케이션 프로세서(910)에 의해 처리되는 데이터를 저장하거나, 동작 메모리(Working Memory)로서 작동할 수 있다. 휘발성 메모리 장치(950)는 도 3의 반도체 메모리 장치(200)로 구현될 수 있다. 휘발성 메모리 장치(950)는 메모리 셀 어레이(951) 및 채널 인터페이스 회로(953)를 포함할 수 있다. 따라서 채널 인터페이스 회로(953)는 메모리 셀 어레이(951)에서 발생한 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 가능 여부와 관련된 디코딩 상태 플래그(DSF)를 메모리 컨트롤러(911)에 실시간으로 전송할 수 있다.
비휘발성 메모리 장치(940)는 모바일 시스템(900)을 부팅하기 위한 부트 이미지를 저장할 수 있다.
사용자 인터페이스(930)는 키패드, 터치 스크린과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함할 수 있다. 파워 서플라이(960)는 모바일 시스템(900)의 동작 전압을 공급할 수 있다.
모바일 시스템(900) 또는 모바일 시스템(900)의 구성요소들은 다양한 형태들의 패키지를 이용하여 실장될 수 있다.
따라서 본 발명의 실시예들에 따른 반도체 메모리 장치 및 이를 포함하는 메모리 시스템에서는 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 정보를 반도체 메모리 장치의 핀을 통하여 메모리 컨트롤러에 전송하여 에러가 발생한 어드레스를 실시간으로 모니터링할 수 있다. 따라서 반도체 메모리 장치의 신뢰성과 성능을 향상시킬 수 있다.
본 발명은 ECC 엔진을 채용하는 반도체 메모리 장치를 사용하는 다양한 시스템에 적용될 수 있다. 즉 본 발명은 스마트 폰, 내비게이션 시스템, 노트북 컴퓨터, 데스크 탑 컴퓨터, 게임 콘솔 등과 같은 반도체 메모리 장치를 동작 메모리로 사용하는 다양한 시스템에 적용될 수 있다.
상술한 바와 같이, 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 복수의 메모리 셀들을 구비하는 메모리 셀 어레이;
    상기 메모리 셀 어레이로부터 독출된 독출 데이터에 포함되는 적어도 하나의 에러 비트를 검출 및/또는 정정하고, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 디코딩 상태 플래그를 생성하는 에러 정정 코드(error correction code; 이하 'ECC') 엔진;
    상기 ECC 엔진으로부터 상기 독출 데이터 및 상기 디코딩 상태 플래그를 수신하고, 상기 독출 데이터 및 상기 디코딩 상태 플래그를 외부의 메모리 컨트롤러에 전송하되, 상기 디코딩 상태 플래그와 링크 패리티 비트들을 제1 핀을 통하여 상기 메모리 컨트롤러에 전송하는 동안 상기 독출 데이터를 제2 핀을 통하여 상기 메모리 컨트롤러에 전송하는 채널 인터페이스 회로; 및
    상기 메모리 컨트롤러로부터의 어드레스 및 커맨드에 응답하여 상기 ECC 엔진 및 상기 채널 인터페이스 회로를 제어하는 제어 로직 회로를 포함하고,
    상기 제1 핀은 데이터 마스크 및 반전 핀이고 상기 제2 핀은 데이터 핀인 반도체 메모리 장치.
  2. 제1항에 있어서,
    상기 제1 핀은 상기 독출 데이터와 관련된 데이터 반전 비트를 상기 메모리 컨트롤러에 전송하는 핀 또는 상기 메모리 컨트롤러로부터 데이터 마스크 신호를 수신하는 핀이고,
    상기 채널 인터페이스 회로는 상기 독출 데이터에 기초하여 상기 독출 데이터의 전송 시 발생할 수 있는 에러를 검출 및/또는 정정할 수 있는 상기 링크 패리티 비트들을 생성하는 패리티 생성기를 포함하고,
    상기 채널 인터페이스 회로는 상기 디코딩 상태 플래그와 상기 링크 패리티를 상기 제1 핀을 통하여 상기 메모리 컨트롤러에 전송하는 반도체 메모리 장치.
  3. 제2항에 있어서,
    상기 채널 인터페이스 회로는 시간-분할(time-division) 멀티플렉싱을 통하여 상기 링크 패리티 비트들과 상기 디코딩 상태 플래그를 상기 제1 핀을 통하여 상기 메모리 컨트롤러에 전송하는 반도체 메모리 장치.
  4. 제2항에 있어서,
    상기 링크 패리티 생성기는 상기 제어 로직 회로의 제어에 따라 비활성화되고,
    상기 채널 인터페이스 회로는 상기 디코딩 상태 플래그를 상기 제1 핀을 통하여 상기 메모리 컨트롤러에 전송하는 반도체 메모리 장치.
  5. 제4항에 있어서,
    상기 채널 인터페이스 회로는 상기 디코딩 상태 플래그를 상기 제1 핀을 통하여 상기 메모리 컨트롤러에 반복적으로 전송하는 반도체 메모리 장치.
  6. 제2항에 있어서,
    상기 채널 인터페이스 회로는 상기 디코딩 상태 플래그에 상응하는 제1 패턴을 저장하는 레지스터를 더 포함하고, 상기 제1 패턴을 상기 제1 핀을 통하여 상기 메모리 컨트롤러에 전송하는 반도체 메모리 장치.
  7. 제1항에 있어서,
    상기 제1 핀은 상기 독출 데이터와 관련된 데이터 반전 비트가 상기 메모리 컨트롤러에 전송되는 핀이고,
    상기 채널 인터페이스 회로는 상기 독출 데이터 및 상기 디코딩 상태 플래그에 기초하여 상기 디코딩 상태 플래그의 전송 시 발생할 수 있는 에러를 검출 및/또는 정정할 수 있는 상기 링크 패리티 비트들을 생성하는 패리티 생성기를 포함하고,
    상기 채널 인터페이스 회로는 상기 디코딩 상태 플래그와 상기 링크 패리티 비트들을 상기 제1 핀을 통하여 상기 메모리 컨트롤러에 전송하는 반도체 메모리 장치.
  8. 제7항에 있어서,
    상기 채널 인터페이스 회로는 시간-분할 멀티플렉싱을 통하여 상기 링크 패리티 비트들과 상기 디코딩 상태 플래그를 상기 제1 핀을 통하여 상기 메모리 컨트롤러에 전송하는 반도체 메모리 장치.
  9. 제1항에 있어서,
    상기 제1 핀은 상기 독출 데이터가 상기 메모리 컨트롤러에 전송되는 데이터 핀이고,
    상기 채널 인터페이스 회로는 시간-멀티플렉싱을 통하여 상기 독출 데이터와 상기 디코딩 상태 플래그를 상기 제1 핀을 통하여 상기 메모리 컨트롤러에 전송하는 반도체 메모리 장치.
  10. 제1항에 있어서,
    상기 독출 데이터가 상기 적어도 하나의 에러 비트를 포함하는 경우, 상기 ECC 엔진은 상기 적어도 하나의 에러 비트와 관련된 신드롬 및 에러 위치 신호에 더 기초하여 상기 디코딩 상태 플래그를 생성하는 반도체 메모리 장치.
  11. 제1항에 있어서, 상기 ECC 엔진은
    상기 독출 데이터 및 상기 독출 데이터와 관련된 패리티 비트들에 기초하여 상기 적어도 하나의 에러 비트를 정정 및/또는 검출하는 ECC 디코더; 및
    상기 적어도 하나의 에러 비트의 검출 여부를 나타내는 에러 카운트 신호 및 상기 적어도 하나의 에러 비트의 정정 가능 여부를 나타내는 에러 플래그 신호에 기초하여 상기 디코딩 상태 플래그를 생성하는 디코딩 상태 플래그 생성기를 포함하고,
    상기 ECC 디코더는 상기 에러 카운트 신호 및 상기 에러 플래그 신호를 상기 디코딩 상태 플래그 생성기에 제공하는 반도체 메모리 장치.
  12. 제1항에 있어서, 상기 ECC 엔진은
    상기 독출 데이터 및 상기 독출 데이터와 관련된 패리티 비트들에 기초하여 상기 적어도 하나의 에러 비트를 정정 및/또는 검출하는 ECC 디코더; 및
    상기 독출 데이터 및 상기 독출 데이터의 상기 적어도 하나의 에러 비트가 정정된 정정된 독출 데이터의 상응하는 비트들의 비교에 기초하여 상기 디코딩 상태 플래그를 생성하는 디코딩 상태 플래그 생성기를 포함하고,
    상기 ECC 디코더는 정정된 독출 데이터를 상기 디코딩 상태 플래그 생성기에 제공하는 반도체 메모리 장치.
  13. 제12항에 있어서,
    상기 디코딩 상태 플래그는 제1 로직 레벨의 데이터 비트가 제2 로직 레벨의 데이터 비트로 독출되거나 제2 로직 레벨의 데이터 비트가 제1 로직의 데이터 비트로 독출된 경우를 나타내는 반도체 메모리 장치.
  14. 제1항에 있어서, 상기 ECC 엔진은
    상기 독출 데이터 및 상기 독출 데이터와 관련된 패리티 비트들에 기초하여 상기 적어도 하나의 에러 비트를 정정 및/또는 검출하는 ECC 디코더; 및
    상기 적어도 하나의 에러 비트의 정정 가능 여부를 나타내는 에러 플래그 신호 및 상기 독출 데이터의 상기 적어도 하나의 에러 비트가 정정된 정정된 독출 데이터에 기초하여 상기 디코딩 상태 플래그를 생성하는 디코딩 상태 플래그 생성기를 포함하고,
    상기 ECC 디코더는 상기 에러 플래그 신호 및 상기 정정된 독출 데이터를 상기 디코딩 상태 플래그 생성기에 제공하는 반도체 메모리 장치.
  15. 제1항에 있어서,
    상기 복수의 메모리 셀들은 각각 동적 메모리 셀 또는 정적 메모리 셀인 반도체 메모리 장치.
  16. 제1항에 있어서, 상기 반도체 메모리 장치는
    적어도 하나의 버퍼 다이를 구비하는 제1 그룹 다이; 및
    상기 제1 그룹 다이의 상부에 적층되고 복수의 관통 라인들을 통해 데이터를 통신하는 복수의 메모리 다이들을 구비하는 제2 그룹 다이를 포함하며,
    상기 복수의 다이들 중 적어도 하나는 상기 메모리 셀 어레이와 상기 ECC 엔진을 포함하고, 상기 ECC 엔진은 상기 제1 그룹 다이로 전송되는 전송 데이터를 이용하여 전송 패리티 비트들을 생성하고,
    상기 버퍼 다이는,
    상기 복수의 관통 라인들을 통해 수신되는 상기 전송 데이터에 전송 에러가 발생된 경우에 상기 전송 패리티 비트들을 이용하여 상기 전송 에러를 정정하는 비아 ECC 엔진 및 상기 채널 인터페이스 회로를 포함하는 반도체 메모리 장치.
  17. 복수의 메모리 셀들을 구비하는 메모리 셀 어레이;
    상기 메모리 셀 어레이로부터 독출된 독출 데이터에 포함되는 적어도 하나의 에러 비트를 검출 및/또는 정정하고, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 디코딩 상태 플래그를 생성하는 에러 정정 코드(error correction code; 이하 'ECC') 엔진;
    상기 ECC 엔진으로부터 상기 독출 데이터 및 상기 디코딩 상태 플래그를 수신하고, 상기 디코딩 상태 플래그를 내부의 레지스터에 저장하고, 상기 독출 데이터를 외부의 메모리 컨트롤러에 전송하는 채널 인터페이스 회로; 및
    상기 메모리 컨트롤러로부터의 어드레스 및 커맨드에 응답하여 상기 ECC 엔진 및 상기 채널 인터페이스 회로를 제어하는 제어 로직 회로를 포함하고,
    상기 제어 로직 회로는 상기 채널 인터페이스 회로를 제어하여 상기 디코딩 상태 플래그와 패리티 비트들이 데이터 마스크 및 반전 핀을 통하여 상기 독출 데이터와 동시에 상기 메모리 컨트롤러에 전송되도록 하는 반도체 메모리 장치.
  18. 제17항에 있어서,
    상기 제어 로직 회로는 상기 채널 인터페이스 회로를 제어하여 상기 레지스터에 저장된 상기 디코딩 상태 플래그가 주기적으로 또는 정해진 타이밍에 상기 메모리 컨트롤러에 전송되도록 하는 반도체 메모리 장치.
  19. 반도체 메모리 장치; 및
    상기 반도체 메모리 장치를 제어하는 메모리 컨트롤러를 포함하고,
    상기 반도체 메모리 장치는,
    복수의 메모리 셀들을 구비하는 메모리 셀 어레이;
    상기 메모리 셀 어레이로부터 독출된 독출 데이터에 포함되는 적어도 하나의 에러 비트를 검출 및/또는 정정하고, 상기 적어도 하나의 에러 비트의 검출 여부 및/또는 정정 여부에 관한 디코딩 상태 플래그를 생성하는 에러 정정 코드(error correction code; 이하 'ECC') 엔진;
    상기 ECC 엔진으로부터 상기 독출 데이터 및 상기 디코딩 상태 플래그를 수신하고, 상기 독출 데이터 및 상기 디코딩 상태 플래그를 상기 메모리 컨트롤러에 전송하되, 상기 디코딩 상태 플래그를 제1 핀을 통하여 상기 메모리 컨트롤러에 전송하는 동안 상기 독출 데이터를 데이터 핀을 통하여 상기 메모리 컨트롤러에 전송하는 채널 인터페이스 회로(상기 제1 핀은 데이터 마스크 및 반전 핀임); 및
    상기 메모리 컨트롤러로부터의 어드레스 및 커맨드에 응답하여 상기 ECC 엔진 및 상기 채널 인터페이스 회로를 제어하는 제어 로직 회로를 포함하고,
    상기 메모리 컨트롤러는 상기 디코딩 상태 플래그에 기초하여 상기 반도체 메모리 장치의 에러 관리 정책을 결정하는 메모리 시스템.
  20. 제19항에 있어서, 상기 메모리 컨트롤러는
    상기 디코딩 상태 플래그를 디코딩하여 디코딩 신호를 생성하는 디코딩 상태 플래그 디코더; 및
    상기 디코딩 신호에 기초하여 상기 반도체 메모리 장치의 에러 관리 정책을 결정하는 중앙 처리 장치를 포함하는 메모리 시스템.
KR1020180065750A 2018-04-12 2018-06-08 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 KR102589913B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/217,249 US11036578B2 (en) 2018-04-12 2018-12-12 Semiconductor memory devices and memory systems including the same
CN201910067433.1A CN110377453B (zh) 2018-04-12 2019-01-24 半导体存储器装置和包括半导体存储器装置的存储器系统
US17/344,180 US11681579B2 (en) 2018-04-12 2021-06-10 Semiconductor memory devices and memory systems including the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180042701 2018-04-12
KR20180042701 2018-04-12

Publications (2)

Publication Number Publication Date
KR20190119489A KR20190119489A (ko) 2019-10-22
KR102589913B1 true KR102589913B1 (ko) 2023-10-13

Family

ID=68420245

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180065750A KR102589913B1 (ko) 2018-04-12 2018-06-08 반도체 메모리 장치 및 이를 포함하는 메모리 시스템

Country Status (1)

Country Link
KR (1) KR102589913B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112712839B (zh) * 2019-10-25 2024-07-26 长鑫存储技术(上海)有限公司 读操作电路、半导体存储器和读操作方法
CN112712840B (zh) * 2019-10-25 2024-06-28 长鑫存储技术(上海)有限公司 读操作电路、半导体存储器和读操作方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140047305A1 (en) 2006-10-18 2014-02-13 Micron Technology, Inc. Memory system and method using ecc with flag bit to identify modified data

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102214556B1 (ko) * 2014-08-19 2021-02-09 삼성전자주식회사 메모리 장치 및 모듈
US10061645B2 (en) * 2015-06-30 2018-08-28 Qualcomm Incorporated Memory array and link error correction in a low power memory sub-system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140047305A1 (en) 2006-10-18 2014-02-13 Micron Technology, Inc. Memory system and method using ecc with flag bit to identify modified data

Also Published As

Publication number Publication date
KR20190119489A (ko) 2019-10-22

Similar Documents

Publication Publication Date Title
CN110377453B (zh) 半导体存储器装置和包括半导体存储器装置的存储器系统
US11269724B2 (en) Memory device, memory system, and method of operating the same
CN110120243B (zh) 半导体存储器装置、操作其的方法以及存储器系统
CN110148434B (zh) 半导体存储器件、存储系统和操作半导体存储器件的方法
KR102453437B1 (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
CN109785894B (zh) 半导体存储器装置、存储器系统和操作方法
KR102658230B1 (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR20170130384A (ko) 에러 타입에 기초하는 ecc의 동적 적용
KR20170054182A (ko) 반도체 장치
KR20220021097A (ko) 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
KR20200142213A (ko) 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
US11860734B2 (en) Semiconductor memory devices and memory systems
KR102589913B1 (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20220050315A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US20230142474A1 (en) Memory device and memory system including the same
US11947810B2 (en) Semiconductor memory device and memory system including the same
KR20240012254A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20230095437A (ko) 메모리 시스템 및 이의 동작 방법
CN117437966A (zh) 半导体存储器装置和包括半导体存储器装置的存储器系统

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right