KR20200046245A - 메모리 모듈 및 메모리 시스템의 동작 방법 - Google Patents

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

Info

Publication number
KR20200046245A
KR20200046245A KR1020180127094A KR20180127094A KR20200046245A KR 20200046245 A KR20200046245 A KR 20200046245A KR 1020180127094 A KR1020180127094 A KR 1020180127094A KR 20180127094 A KR20180127094 A KR 20180127094A KR 20200046245 A KR20200046245 A KR 20200046245A
Authority
KR
South Korea
Prior art keywords
data
memory
parity
ecc
sub
Prior art date
Application number
KR1020180127094A
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 KR1020180127094A priority Critical patent/KR20200046245A/ko
Priority to US16/392,849 priority patent/US10867690B2/en
Priority to CN201910590044.7A priority patent/CN111090538A/zh
Publication of KR20200046245A publication Critical patent/KR20200046245A/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/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • 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/1024Identification of the type of error
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • 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/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/783Masking faults in memories by using spares or by reconfiguring using programmable devices with refresh of replacement cells, e.g. in DRAMs
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Landscapes

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

Abstract

메모리 모듈은 제1 채널을 구성하는 복수의 제1 데이터 메모리들 및 제1 ECC(error correction code) 메모리 및 제2 채널을 구성하는 복수의 제2 데이터 메모리들 및 제2 ECC 메모리를 포함한다. 상기 상기 제1 데이터 메모리들 및 제2 데이터 메모리들 각각은 복수의 버스트 길이들에 대응되는 데이터 세트를 저장하고, 상기 제1 ECC 메모리는 상기 제1 데이터 메모리들에 저장되는 제1 데이터 세트 전체에 해당하는 제1 서브 사용자 데이터 세트의 에러를 검출/정정하기 위한 제1 서브 패리티 데이터를 저장한다. 상기 제2 ECC 메모리는 상기 제2 데이터 메모리들에 저장되는 제2 데이터 세트 전체에 해당하는 제2 서브 사용자 데이터 세트의 에러를 검출/정정하기 위한 제2 서브 패리티 데이터를 저장하고, 상기 제1 채널과 상기 제2 채널은 서로 독립적이다.

Description

메모리 모듈 및 메모리 시스템의 동작 방법{Memory modules and methods of operating memory systems}
본 발명은 메모리 장치에 관한 것으로, 보다 상세하게는 메모리 모듈 및 메모리 시스템의 동작 방법에 관한 것이다.
일반적으로, 디램(DRAM: dynamic random access memory) 등과 같은 메모리 칩들은 고성능 및 대용량화의 실현을 위하여, 다수의 메모리 칩들이 인쇄 회로 기판(PCB: printed circuit board) 상에 탑재되는 메모리 모듈(memory module)의 형태로 컴퓨터 시스템에 실장된다. 이러한 메모리 모듈은 인쇄 회로 기판의 한쪽 면에 다수개의 메모리 칩들이 탑재되는 SIMM(single in memory module) 및 인쇄 회로 기판의 양면에 각각 다수 개의 메모리 칩들이 탑재되는 DIMM(dual in memory module) 등으로 구분될 수 있다. 이들 중 상대적으로 더 효율적인 DIMM이 현재 메모리 모듈의 대부분을 차지하고 있다.
이에 따라, 본 발명의 일 목적은 신뢰성과 사용성을 증가시킬 수 있는 메모리 모듈을 제공하는데 있다.
이에 따라, 본 발명의 일 목적은 신뢰성과 사용성을 증가시킬 수 있는 메모리 시스템의 동작 방법을 제공하는데 있다.
본 발명의 실시예들에 따른 메모리 모듈은 제1 채널을 구성하는 복수의 제1 데이터 메모리들 및 제1 ECC(error correction code) 메모리 및 제2 채널을 구성하는 복수의 제2 데이터 메모리들 및 제2 ECC 메모리를 포함한다. 상기 상기 제1 데이터 메모리들 및 제2 데이터 메모리들 각각은 복수의 버스트 길이들에 대응되는 데이터 세트를 저장하고, 상기 제1 ECC 메모리는 상기 제1 데이터 메모리들에 저장되는 제1 데이터 세트 전체에 해당하는 제1 서브 사용자 데이터 세트의 에러를 검출/정정하기 위한 제1 서브 패리티 데이터를 저장한다. 상기 제2 ECC 메모리는 상기 제2 데이터 메모리들에 저장되는 제2 데이터 세트 전체에 해당하는 제2 서브 사용자 데이터 세트의 에러를 검출/정정하기 위한 제2 서브 패리티 데이터를 저장하고, 상기 제1 채널과 상기 제2 채널은 서로 독립적이다.
본 발명의 실시예들에 따른 메모리 모듈은 복수의 제1 데이터 메모리들, 복수의 제2 데이터 메모리들 및 ECC(error correction code) 메모리를 포함한다. 상기 제1 데이터 메모리들 및 제2 데이터 메모리들 각각은 복수의 버스트 길이들에 대응되는 제1 데이터 세트와 제2 데이터 세트를 각각 저장하고,
상기 ECC 메모리는 상기 제1 데이터 세트 전체에 해당하는 제1 서브 사용자 데이터 세트 및 상기 제2 데이터 세트 전체에 해당하는 제2 서브 사용자 데이터 세트 중 적어도 하나의 에러를 검출/정정하기 위한 패리티 데이터를 저장한다. 적어도 상기 제1 데이터 메모리들은 제1 채널을 구성하고, 적어도 상기 제2 데이터 메모리들은 제2 채널을 구성하고, 상기 제1 채널과 상기 제2 채널은 서로 독립적이다.
본 발명의 실시예들에 따른 복수의 제1 데이터 메모리들, 복수의 제2 데이터 메모리들 및 ECC 메모리를 구비하는 메모리 모듈 및 상기 메모리 모듈을 제어하는 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법에서는, 상기 제1 데이터 메모리들 및 상기 제2 데이터 메모리들 각각에 복수의 버스트 길이(burst length)들에 대응하는 제1 데이터 세트와 제2 데이터 세트를 저장하고, 상기 ECC 메모리에 상기 제1 데이터 세트 전체와 관련된 제1 서브 패리티 데이터 및 상기 제2 데이터 세트 전체와 관련된 제2 서브 패리티 데이터를 저장하고, 상기 메모리 컨트롤러가 상기 제1 데이터 세트 전체와 상기 제2 데이터 세트 전체에 기초하여 상기 제1 데이터 메모리들 및 상기 제2 데이터 메모리들 각각의 에러를 검출하고, 상기 메모리 컨트롤러가 상기 제1 서브 패리티 데이터 및 상기 제2 서브 패리티 데이터에 기초하여 상기 검출된 에러의 종류를 판단하며, 상기 메모리 컨트롤러가 상기 에러가 검출된 데이터 메모리의 데이터 세트를 반전시킨다.
본 발명의 실시예들에 따르면, 메모리 모듈이 제1 데이터 메모리들, 제2 데이터 메모리들 및 적어도 하나의 ECC 메모리를 포함하고, 상기 제1 데이터 메모리들, 제2 데이터 메모리들 및 적어도 하나의 ECC 메모리가 하나의 버스트에 대하여 4 비트 또는 8 비트의 데이터를 입추력 함으로써 72 비트의 입출력 폭을 유지하도록 구성되어, 메모리 모듈의 신뢰성과 사용성을 증가시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 2a는 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 메모리 모듈의 예를 나타낸다.
도 2b는 도 2a의 메모리 모듈의 데이터 입출력 폭을 나타낸다.
도 3a는 본 발명의 실시예들에 따른 도 2a의 메모리 모듈에서 데이터 메모리들 각각에 제공되는 또는 데이터 메모리들 각각으로부터 출력되는 복수의 버스트 길이들에 대응되는 데이터 세트를 나타낸다.
도 3b는 본 발명의 실시예들에 따른 도 2a의 메모리 모듈에서 제1 ECC 메모리 및 제2 ECC 메모리에 제공되는 또는 의 메모리 시스템에서 패리티 메모리에 제공되는 또는 제1 ECC 메모리 및 제2 ECC 메모리로부터 출력되는 복수의 버스트 길이들에 대응되는 패리티 데이터를 나타낸다.
도 4는 본 발명의 실시예들에 따른 도 1의 메모리 컨트롤러에서 패리티 생성기를 나타내는 블록도이다.
도 5는 본 발명의 실시예들에 따른 도 2의 메모리 컨트롤러에서 패리티 체커를 나타내는 블록도이다.
도 6은 본 발명의 실시예들에 따른 도 2a의 메모리 모듈에 구비되는 제1 데이터 메모리들 및 제2 데이터 복수의 데이터 메모리들 중 하나의 구성을 나타내는 블록도이다.
도 7은 도 6에 도시된 메모리 셀을 예시적으로 나타내는 회로도이다.
도 8은 본 발명의 실시예들에 따른 도 6의 데이터 메모리에서 제1 뱅크 어레이를 나타낸다.
도 9는 본 발명의 실시예들에 따른 도 6의 데이터 메모리에서 ECC 엔진의 구성을 나타낸다.
도 10은 본 발명의 실시예들에 따른 도 9의 ECC엔진에서 ECC 디코더의 구성을 나타낸다.
도 11은 본 발명의 실시예들에 따른 도 6의 데이터 메모리에서 제1 뱅크 어레이, 입출력 게이팅 회로 및 ECC 엔진을 나타낸다.
도 12는 본 발명의 실시예들에 따른 도 2a의 메모리 모듈에서 제1 ECC 메모리의 제1 뱅크 어레이, 입출력 게이팅 회로 및 ECC 엔진을 나타낸다.
도 13은 도 2a의 메모리 모듈에서 랭크 단위의 에러 정정 동작을 나타낸다.
도 14a는 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 메모리 모듈의 다른 예를 나타낸다
도 14b는 도 14a의 메모리 모듈의 데이터 입출력 폭을 나타낸다.
도 15는 본 발명의 실시예들에 따른 도 14a의 메모리 모듈에서 데이터 메모리들 각각에 제공되는 또는 데이터 메모리들 각각으로부터 출력되는 복수의 버스트 길이들에 대응되는 데이터 세트를 나타낸다.
도 16a는 본 발명의 실시예들에 따른 도 14a의 메모리 모듈에서 ECC 메모리의 구성을 나타낸다.
도 16b는 본 발명의 일 실시예에 따른 16a의 ECC 메모리를 나타내는 사시도이다.
도 17은 본 발명의 실시예들에 따른 도 14a의 메모리 모듈의 동작을 나타낸다.
도 18은 본 발명의 실시예들에 따른 도 14a의 메모리 모듈의 동작을 나타낸다.
도 19는 본 발명의 실시예들에 따른 메모리 시스템의 동작 방법을 나타낸다.
도 20은 본 발명의 실시예들에 따른 메모리 시스템의 동작 방법을 나타낸다.
도 21은 본 발명의 실시예들에 따른 쿼드 랭크 메모리 모듈을 갖는 메모리 시스템을 나타내는 블록도이다.
도 22는 본 발명의 실시예에 따른 메모리 모듈을 모바일 시스템에 응용한 예를 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(20)은 메모리 컨트롤러(30) 및 메모리 모듈(100)을 포함할 수 있다. 메모리 모듈(100)은 복수의 반도체 메모리 장치들(200a~200k, 200t)을 포함할 수 있다. 복수의 반도체 메모리 장치들(200a~200k, 200t)은 복수의 데이터 메모리들(200a~200k) 및 적어도 하나의 하나의 ECC(error correction code) 메모리(200t)를 포함할 수 있다.
메모리 컨트롤러(Memory Controller; 30)는 메모리 시스템(Memory System; 20)의 동작을 전반적으로 제어하며, 외부의 호스트와 메모리들(또는 반도체 메모리 장치들, 200a~200k, 200t) 사이의 전반적인 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(30)는 상기 호스트의 요청에 따라 메모리 장치들(200a~200k, 200t)을 제어하여 데이터를 기입하거나(write) 데이터를 독출한다(read). 또한, 메모리 컨트롤러(30)는 메모리 장치들(200a~200k, 200t)을 제어하기 위한 동작 커맨드(command)들을 인가하여, 반도체 메모리 장치들(200a~200k, 200t)의 동작을 제어한다.
실시예에 따라, 반도체 메모리 장치들(200a~200k, 200t) 각각은 동적 메모리 셀들을 구비하는 DRAM(dynamic random access) 일 수 있다.
실시예에 있어서, 데이터 메모리들(200a~200k)의 수는 16 또는 8일 수 있으나 이에 한정되는 것은 아니다.
실시예에 있어서, 데이터 메모리들(200a~200k) 각각은 데이터 칩으로 호칭될 수 있고, ECC 메모리(200t)는 패리티 메모리 또는 리던던트 메모리로 호칭될 수 있다. 또한 ECC 메모리(200t)는 패리티 칩 또는 리던던트 칩으로 호칭될 수 있다
메모리 컨트롤러(30)와 메모리 모듈(100)은 클럭 신호(CLK)에 응답하여 데이터 세트(DQ_BL)와 패리티 데이터 세트(SPRT)를 주고 받을 수 있다.
데이터 세트(DQ_BL)는 데이터 메모리들(200a~200k) 각각에 제공되는/각각으로부터 출력되는 복수의 버스트 길이들에 대응하는 데이터 세트(DQ_BL)에 해당하고, 패리티 데이터 세트(SPRT)는 데이터 세트(DQ_BL)의 전체에 해당하는 사용자 데이터 세트와 관련된 패리티 데이터에 해당할 수 있다.
메모리 컨트롤러(30)는 사용자 데이터 세트에 기초하여 패리티 데이터(SPRT)를 생성하는 패리티 생성기(50)와 패리티 데이터(SPRT)를 이용하여 사용자 데이터 세트의 에러를 검출 및 정정하는 패리티 체커(60)를 포함할 수 있다.
데이터 메모리들(200a~200k) 및 ECC 메모리(200t) 각각은 버스트 동작(burst operation)을 수행할 수 있다. 여기서 버스트 동작은 데이터 메모리들(200a~200k) 및 ECC 메모리(200t)가 메모리 컨트롤러(30)로부터 수신한 초기 어드레스로부터 어드레스를 순차적으로 감소 혹은 증가함으로써 다량의 데이터를 기입하거나 독출하는 동작을 의미한다. 버스트 동작의 기본 단위를 버스트 길이(burst length; BL)라고 한다.
실시예에 있어서, 버스트 길이(BL)는 초기 어드레스로부터 어드레스를 증가 혹은 감소함으로써 연속적으로 독출하거나 기입하는 동작의 회수일 수 있다. 예를 들어, 메모리 장치들(200a~200k, 200t)이 DDR(double data rate) DRAM일 경우에, 버스트 길이(BL)가 16(BL=16)이라면, 클럭 신호(CLK)에 응답하여 초기 어드레스로부터 연속적으로 16회에 걸쳐 버스트 독출 동작 혹은 버스트 기입 동작이 수행된다는 것을 의미한다.
도 2a는 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 메모리 모듈의 예를 나타낸다.
도 2a를 참조하면, 메모리 모듈(100a)은 회로 기판(101)에 배치되는(실장되는) 제어 장치(110), 복수의 제1 데이터 메모리들(201a~201h), 제1 ECC 메모리(200ta), 복수의 제2 데이터 메모리들(202a~202h), 제2 ECC 메모리(200tb), 데이터 버퍼들(141~149, 151~159), SPD 칩(1200) 및 전원관리 집적회로(180)를 포함할 수 있다.
이하, 제1 데이터 메모리들(201a~201h), 제1 ECC 메모리(200ta), 제2 데이터 메모리들(202a~202h) 및 제2 ECC 메모리(200tb)을 메모리 장치들이라 한다.
여기서, 회로 기판(101)은 인쇄회로 기판으로서, 제1 방향(D1)의 제1 에지부(103) 및 제2 에지부(105) 사이에서 제1 방향(D1)과 수직인 제2 방향(D2)으로 연장된다.
제어 장치(110)는 메모리 컨트롤러(30)의 제어에 따라 메모리 장치들 및 전원관리 집적회로(180)를 제어할 수 있다. 예를 들어, 제어 장치(110)는 메모리 컨트롤러(30)로부터 어드레스(ADDR), 커맨드(CMD) 및 클럭 신호(CLK)를 수신할 수 있다.
제어 장치(110)는 수신된 신호들에 응답하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통하여 수신된 데이터가 메모리 장치들에 기입되거나 또는 메모리 장치들에 저장된 데이터가 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 출력되도록 메모리 장치들을 제어할 수 있다. 예를 들어, 제어 장치(110)는 메모리 컨트롤러(30)로부터 수신된 어드레스(ADDR), 커맨드(CMD)및 클럭 신호(CLK)를 메모리 장치들로 전달할 수 있다.
예시적으로, 메모리 장치들은 DRAM, SRAM, SDRAM과 같은 휘발성 메모리 장치를 포함할 수 있다. 특히, 메모리 장치들은 DDR5(double data rate 5) SDRAM을 포함할 수 있다.
SPD 칩(120)은 프로그램 가능 읽기 전용 기억 장치(EEPROM)일 수 있다. SPD(180)는 메모리 모듈(100a)의 초기 정보 또는 장치 정보(DI; Device Information)를 포함할 수 있다. 예시적으로, SPD 칩(120)은 메모리 모듈(100a)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보(DI)를 포함할 수 있다.
메모리 모듈(100a)을 포함하는 메모리 시스템(10)이 부팅될 때, 메모리 컨트롤러(30)는 SPD 칩(120)으로부터 장치 정보(DI)를 읽고, 이를 기반으로 메모리 모듈(100a)을 인식할 수 있다. 메모리 컨트롤러(30)는 SPD 칩(120)으로부터의 장치 정보(DI)를 기반으로 메모리 모듈(100a)을 제어할 수 있다.
전원관리 집적회로(180)는 입력 전압(VIN)을 기초로 전원 전압(VDD)을 생성하고, 생성된 전원 전압(VDD)을 메모리 장치들에 제공할 수 있다. 메모리 장치들은 전원 전압(VDD)을 기반으로 하여 동작할 수 있다.
제어 장치(110)는 회로 기판(101)의 중심부에 배치되고, 제1 데이터 메모리들(201a~201h) 및 제1 ECC 메모리(200ta)는 제어 장치(110)와 제1 에지부(103) 사이에 배치되고 제2 데이터 메모리들(202a~202h) 및 제2 ECC 메모리(200tb)는 제어 장치(110)와 제2 에지부(105) 사이에 배치될 수 있다. 제1 데이터 메모리들(201a~201h)은 데이터 버퍼들(141~149)을 통하여 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고받을 수 있고, 제1 ECC 메모리(200ta)는 데이터 버퍼(149)를 통하여 제1 서브 패리티 데이터(SPRT11)를 주고 받을 수 있다. 제2 데이터 메모리들(202a~202h)은 데이터 버퍼들(151~158)을 통하여 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고받을 수 있고, 제2 ECC 메모리(200tb)는 데이터 버퍼(159)을 통하여 제2 서브 패리티 데이터(SPRT12)를 주고 받을 수 있다.
제어 장치(110)는 제1 커맨드/어드레스 전송선(131)을 통하여 제1 데이터 메모리들(201a~201h) 및 제1 ECC 메모리(200ta)에 커맨드/어드레스 신호를 제공하고, 제2 커맨드/어드레스 전송선(133)을 통하여 제2 데이터 메모리들(202a~202h) 및 제2 ECC 메모리(200tb)에 커맨드/어드레스 신호를 제공할 수 있다.
SPD 칩(120)은 제어 장치(110)에 인접하게 배치될 수 있고, 전원관리 집적회로(180)는 제2 ECC 메모리(200tb)와 제2 에지부(105) 사이에 배치될 수 있다.
도 2b는 도 2a의 메모리 모듈의 데이터 입출력 폭을 나타낸다.
도 2b를 참조하면, 제1 데이터 메모리들(201a~201h) 및 제1 ECC 메모리(200ta)는 메모리 모듈(100a)의 제1 채널(CH_1)을 구성할 수 있고, 제2 데이터 메모리들(202a~202h) 및 제2 ECC 메모리(200tb)는 메모리 모듈(100a)의 제2 채널(CH_2)을 구성할 수 있다. 상기 제1 채널(CH_1)과 상기 제2 채널(CH_2)은 독립적으로 동작할 수 있다.
제1 데이터 메모리들(201a~201h) 및 제2 데이터 메모리들(202a~202h) 각각은 하나의 버스트 (길이)에 대응하여 4 비트의 데이터를 저장하고, 제1 ECC 메모리(200ta) 및 제2 ECC 메모리(200tb)는 하나의 버스트에 대응하여 4 비트의 패리티 비트들을 저장할 수 있다. 따라서 메모리 모듈(100a)은 하나의 버스트에 대응하여 72 비트의 입출력 폭을 가질 수 있다.
도 3a는 본 발명의 실시예들에 따른 도 2a의 메모리 모듈에서 데이터 메모리들 각각에 제공되는 또는 데이터 메모리들 각각으로부터 출력되는 복수의 버스트 길이들에 대응되는 데이터 세트를 나타낸다.
도 3a를 참조하면, 제1 데이터 메모리들(201a~201h) 및 제2 데이터 메모리들(202a~202h) 각각에는/각각으로부터는 복수의 버스트 길이들에 대응되는 데이터 세트(DQ_BL)가 입력/출력된다. 데이터 세트(DQ_BL)는 복수의 버스트 길이들 중 각각의 버스트 길이에 대응되는 데이터 세그먼트들(DQ_BL_SG1~DQ_BL_SG16)을 포함할 수 있다. 도 3a에서 버스트 길이(BL)는 16으로 가정하였다.
도 3b는 본 발명의 실시예들에 따른 도 2a의 메모리 모듈에서 제1 ECC 메모리 및 제2 ECC 메모리에 제공되는 또는 의 메모리 시스템에서 패리티 메모리에 제공되는 또는 제1 ECC 메모리 및 제2 ECC 메모리로부터 출력되는 복수의 버스트 길이들에 대응되는 패리티 데이터를 나타낸다.
도 3b를 참조하면, 제1 ECC 메모리(200ta) 및 제2 ECC 메모리(200tb) 각각에는/로부터는 하나의 버스트 길이에 대응되는 패리티 비트들(PRT_BL1~PRT_BL16)이 버스트 길이(BL)에 해당하는 횟수만큼 입력/출력된다. 도 3b에서 버스트 길이(BL)는 16로 가정하였으나 이에 한정되는 것은 아니다. 하나의 버스트 길이에 대응되는 패리티 비트들(PRT_BL1~PRT_BL16) 각각은 제1 데이터 메모리들(201a~201h) 및 제2 데이터 메모리들(202a~202h)에 저장되는 대응하는 데이터 세그먼트(DQ_BL_SG)들에 기초하여 생성될 수 있다.
도 4는 본 발명의 실시예들에 따른 도 1의 메모리 컨트롤러에서 패리티 생성기를 나타내는 블록도이다.
도 4을 참조하면, 패리티 생성기(50)는 패리티 생성 회로(51)를 포함할 수 있다.
패리티 생성 회로(51)는 사용자 데이터 세트(SDQ)를 입력받고, 이에 대응되는 패리티 데이터(SPRT)를 생성할 수 있다. 패리티 생성 회로(51)는 ECC 인코더로 구성될 수 있다. 패리티 데이터(SPRT)는 기입 버퍼(미도시)에 저장될 수 있다. 기입 버퍼에 저장된 패리티 데이터(SPRT)는 사용자 데이터 세트(SDQ)와 함께 메모리 모듈(100)로 제공될 수 있다.
도 5는 본 발명의 실시예들에 따른 도 2의 메모리 컨트롤러에서 패리티 체커를 나타내는 블록도이다.
도 5를 참조하면, 패리티 체커(60)는 체크 비트 발생기(61), 비교기(62) 및 데이터 정정기(63)를 포함할 수 있다.
체크 비트 발생기(61)는 사용자 데이터 세트(SDQ)를 입력받고, 사용자 데이터 세트(SDQ)에 상응하는 체크 비트들의 세트(SPc)을 생성한다. 비교기는 체크 비트들의 세트(SPc)과 패리티 데이터(SPRT)를 랭크 단위로 비교하여 에러의 발생 유무와 에러의 위치를 나타내는 신드롬 데이터(SDR2)를 생성한다. 데이터 정정기(63)는 사용자 데이터 세트(SDQ)를 입력받고, 신드롬 데이터(SDR2)에 기초하여 에러가 발생한 데이터 세트(DQ_BL)의 데이터 비트들을 반전시켜, 사용자 데이터 세트(SDQ)의 에러를 정정할 수 있다. 실시예에 있어서, 패리티 체커(60)는 ECC 디코더로 구성될 수 있고, SECDED(single error correction double error detection) 코드를 사용하여 사용자 데이터 세트(SDQ)에 대하여 랭크 단위로 ECC 디코딩을 수행할 수 있다.
도 6은 본 발명의 실시예들에 따른 도 2a의 메모리 모듈에 구비되는 제1 데이터 메모리들 및 제2 데이터 복수의 데이터 메모리들 중 하나의 구성을 나타내는 블록도이다.
도 6에서는 데이터 메모리(201a)의 구성을 나타내지만, 다른 데이터 메모리들(201b~201h, 202a~202h) 각각의 구성 및 제1 및 제2 ECC 메모리들(200ta, 200tb) 각각의 구성도, 데이터 메모리(201a)의 구성과 실질적으로 동일할 수 있다.
도 6을 참조하면, 데이터 메모리(201a)는 제어 로직 회로(210), 어드레스 레지스터(220), 뱅크 제어 로직(230), 로우 어드레스 멀티플렉서(240), 컬럼 어드레스 래치(250), 로우 디코더(260), 컬럼 디코더(270), 메모리 셀 어레이(300), 센스 앰프부(285), 입출력 게이팅 회로(290), 데이터 입출력 버퍼(295), ECC 엔진(400) 및 리프레쉬 카운터(245)를 포함할 수 있다.
상기 메모리 셀 어레이(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)이 교차하는 지점에 형성되는 복수의 메모리 셀들(MC)을 포함할 수 있다.
어드레스 레지스터(220)는 메모리 컨트롤러(30)로부터 뱅크 어드레스(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)를 디코딩하여 상기 로우 어드레스에 상응하는 워드 라인을 활성화할 수 있다. 예를 들어, 상기 활성화된 뱅크 로우 디코더는 로우 어드레스(RA)에 상응하는 워드 라인에 워드 라인 구동 전압을 인가할 수 있다.
컬럼 어드레스 래치(250)는 어드레스 레지스터(220)로부터 컬럼 어드레스(COL_ADDR)를 수신하고, 수신된 컬럼 어드레스(COL_ADDR) 또는 매핑된 칼럼 어드레스(MCA)를 일시적으로 저장할 수 있다. 또한, 컬럼 어드레스 래치(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 엔진(400)에 의하여 ECC 디코딩이 수행된 후에 데이터 입출력 버퍼(295)를 통하여 상기 메모리 컨트롤러(30)에 제공될 수 있다.
제1 내지 제8 뱅크 어레이들(310~380) 중 하나의 뱅크 어레이에 기입될 데이터(또는 데이터 세트, DQ_BL)는 메모리 컨트롤러(30)로부터 데이터 입출력 버퍼(295)에 제공될 수 있다. 데이터 입출력 버퍼(295)에 제공된 데이터(DQ_BL)는 ECC 엔진(400)에 제공된다. ECC 엔진(400)은 데이터(DQ_BL)에 대하여 ECC 인코딩을 수행하여 제1 패리티 비트들을 생성하고, 데이터(DQ_BL)와 제1 패리티 비트들을 포함하는 코드워드(CW)를 입출력 게이팅 회로(290)에 제공한다. 입출력 게이팅 회로(290)는 상기 기입 드라이버들을 통하여 상기 하나의 뱅크 어레이의 노멀 셀 영역(제1 메모리 영역)과 리던던시 셀 영역(제2 메모리 영역)에 데이터(DQ_BL)와 제1 패리티 데이터를 각각 기입할 수 있다.
ECC 엔진(400)은 상기 ECC 인코딩과 ECC 디코딩을 수행함에 있어, 생성 매트릭스로 표현되는 ECC를 사용할 수 있다. ECC 엔진(400)은 또한 ECC 디코딩을 수행한 결과, 데이터(DQ_BL)에 정정불가능한 에러가 포함되는 경우, 이를 나타내는 에러 플래그 신호(EFL1)을 제1 ECC 메모리(200ta)에 제공할 수 있다.
제어 로직 회로(210)는 데이터 메모리(201a)의 동작을 제어할 수 있다. 예를 들어, 제어 로직 회로(210)는 데이터 메모리(201a)가 기입 동작 또는 독출 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 로직 회로(200a)는 메모리 컨트롤러(30)로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(211) 및 데이터 메모리(201a)의 동작 모드를 설정하기 위한 모드 레지스터(212)를 포함할 수 있다.
예를 들어, 커맨드 디코더(211)는 기입 인에이블 신호, 로우 어드레스 스트로브 신호, 컬럼 어드레스 스트로브 신호, 칩 선택 신호(/CS) 등을 디코딩하여 커맨드(CMD)에 상응하는 상기 제어 신호들을 생성할 수 있다. 제어 로직 회로(210)는 입출력 게이팅 회로(290)를 제어하는 제1 제어 신호(CTL11) 및 ECC 엔진(400)를 제어하는 제2 제어 신호(CTL12)를 생성할 수 있다.
도 7은 도 6에 도시된 메모리 셀을 예시적으로 나타내는 회로도이다.
도 7을 참조하면, 메모리 셀(MC)은 셀 커패시터(CC)와 트랜지스터(CT)를 포함한다.
트랜지스터(CT)는 워드 라인(WL)의 전압에 따라 셀 커패시터(CC)를 비트라인에 연결 또는 차단하는 선택 소자이다. 트랜지스터(CT)는 셀 커패시터(CC)와 워드라인(WL)과 비트라인(BTL) 사이에 연결되며, 셀 커패시터(CC)는 트랜지스터(CT)와 플레이트 전압(미도시) 사이에 연결된다.
도 8은 본 발명의 실시예들에 따른 도 6의 데이터 메모리에서 제1 뱅크 어레이를 나타낸다.
도 8을 참조하면, 제1 뱅크 어레이(310)는 복수개의 워드라인들(WL1~WLm, m은 2이상의 정수), 복수개의 비트라인들(BL1~BLn, n은 2이상의 정수), 그리고 워드라인들(WL1~WLm)과 비트라인들(BL1~BLn) 사이의 교차점에 배치되는 복수개의 메모리 셀들(MCs)을 포함한다. 각 메모리 셀(MC)은 DRAM 셀 구조를 갖는다. 메모리 셀들(MCs)이 연결되는 워드라인들(WLs)을 제1 뱅크 어레이(310)의 로우들(rows)이라고 정의하고, 메모리 셀들(MCs)이 연결되는 비트라인들(BLs)을 제1 뱅크 어레이(310)의 칼럼들(columns)이라고 정할 수 있다.
도 9는 본 발명의 실시예들에 따른 도 6의 데이터 메모리에서 ECC 엔진의 구성을 나타낸다.
도 9를 참조하면, ECC 엔진(400)는 메모리(410), ECC 인코더(430) 및 ECC 디코더(450)를 포함할 수 있다.
메모리(410)는 ECC를 저장할 수 있고, 상기 ECC는 생성 매트릭스로 표현되고, 데이터에 포함되는 데이터 비트들에 상응하는 복수의 칼럼 벡터들을 포함할 수 있다.
ECC 인코더(430)는 메모리(410)에 연결되고, 기입 동작에서 ECC(410)를 이용하여 메인 데이터(DQ_BL, 또는 MD)에 대하여 ECC 인코딩을 수행하여 제1 패리티 비트들(PRT1)를 생성할 수 있다. ECC 인코더(430)는 메인 데이터(MD)와 제1 패리티 비트들(PRT1)을 포함하는 코드워드(CW)를 입출력 게이팅 회로(290)에 제공할 수 있다.
ECC 디코더(450)는 메모리(410)에 연결되고, 독출 동작에서, 메인 데이터(MD) 및 제1 패리티 비트들(PRT1)을 포함하는 코드워드(CW)를 수신하고, ECC를 이용하여 제1 패리티 비트들(PRT1)에 기초하여 메인 데이터(MD)에 대하여 ECC 디코딩을 수행하여 메인 데이터(MD)의 에러를 정정하고 정정된 메인 데이터(C_MD)를 출력할 수 있다. ECC 디코더(450)는 또한 메인 데이터(MD)의 에러가 정정불가능한 경우에 이를 나타내는 에러 플래그 신호(EFL1)를 제어 장치(110) 및 제1 ECC 메모리(200ta)에 제공할 수 있다.
도 9에서 메모리(410)가 ECC 인코더(430) 및 ECC 디코더(450)에 연결된다고 설명하였지만, 메모리(410)에 저장된 ECC는 ECC 인코더(430) 및 ECC 디코더(450) 내부에 배타적 오어 게이트들로 구현될 수 있다.
도 10은 본 발명의 실시예들에 따른 도 9의 ECC엔진에서 ECC 디코더의 구성을 나타낸다.
도 10을 참조하면, ECC 디코더(450)는 체크 비트 생성기(451), 신드롬 생성기(453) 및 데이터 정정기(455)를 포함할 수 있다.
체크 비트 생성기(451)는 상기 ECC를 이용하여 메인 데이터(MD)의 데이터 비트들을 기초로 체크 비트들(CHB)을 생성한다. 신드롬 생성기(453)는 체크 비트들(CHB)과 제1 비트들(PRT1)의 비교에 기초하여, 에러의 발생 유무와 에러의 위치를 나타내는 신드롬 데이터(SDR)를 생성한다.
데이터 정정기(455)는 메인 데이터(MD)와 신드롬 데이터(SDR)를 수신하고, 신드롬 데이터(SDR)에 기초하여 메인 데이터(MD)의 에러를 정정하고, 정정된 메인 데이터(C_MD)를 출력할 수 있다.
도 9 및 도 10에서 상기 ECC는 SEC_DED(single error correction double error detection) 코드일 수 있다.
도 11은 본 발명의 실시예들에 따른 도 6의 데이터 메모리에서 제1 뱅크 어레이, 입출력 게이팅 회로 및 ECC 엔진을 나타낸다.
도 11을 참조하면, 데이터 메모리(20a)의 제1 뱅크 어레이(310)는 노멀 셀 영역(제1 메모리 영역, 311) 및 리던던시 셀 영역(제2 메모리 영역, 313)을 포함할 수 있다.
입출력 게이팅 회로(290)는 복수의 스위치들(291a, 291b, 291d)을 포함할 수 있다. 스위치들(291a, 291b)은 노멀 셀 영역(311)과 연결되고, 스위치(291d)는 리던던시 셀 영역(313)과 연결될 수 있다. 입출력 게이팅 회로(290)는 ECC 엔진(400)으로부터 데이터 세트(DQ_BL) 및 데이터 세트(DQ_BL)와 관련된 제1 패리티 비트들(PRT1)을 수신하고, 데이터 세트(DQ_BL)는 노멀 셀 영역(311)에 저장하고, 제1 패리티 비트들(PRT1)은 리던던시 셀 영역(313)에 저장할 수 있다.
입출력 게이팅 회로(290)는 제어 로직 회로(210)로부터의 제1 제어 신호(CTL11)에 기초하여 상술한 동작을 수행할 수 있고, ECC 엔진(400)은 제어 로직 회로(210)로부터의 제2 제어 신호(CTL12)에 기초하여 상술한 ECC 인코딩과 ECC 디코딩을 수행할 수 있다.
도 12는 본 발명의 실시예들에 따른 도 2a의 메모리 모듈에서 제1 ECC 메모리의 제1 뱅크 어레이, 입출력 게이팅 회로 및 ECC 엔진을 나타낸다.
도 12를 참조하면, 제1 ECC 메모리(200ta)의 제1 뱅크 어레이(310t)는 제1 패리티 영역(311t) 및 제2 패리티 영역(313t)을 포함할 수 있다.
입출력 게이팅 회로(290t)는 복수의 스위치들(292a, 292b, 292d)을 포함할 수 있다. 스위치들(292a, 292b)은 제1 패리티 영역(311t)과 연결되고, 스위치(292d)는 제2 패리티 영역(313t)과 연결될 수 있다. 입출력 게이팅 회로(290t)는 제1 ECC 메모리(200ta)의 ECC 엔진(400t)으로부터 패리티 데이터(SPRT) 및 패리티 데이터(SPRT)와 관련된 내부 패리티 비트들(PRT2)을 수신하고, 패리티 데이터(SPRT)는 제1 패리티 영역(311t)에 저장하고, 내부 패리티 비트들(PRT2)은 제2 패리티 영역(313t)에 저장할 수 있다.
입출력 게이팅 회로(290t)는 제1 ECC 메모리(200ta)의 제어 로직 회로로부터의 제1 제어 신호(CTL21)에 기초하여 상술한 동작을 수행할 수 있고, ECC 엔진(400t)은 제어 로직 회로로부터의 제2 제어 신호(CTL22)에 기초하여 상술한 동작을 수행할 수 있다.
도 13은 도 2a의 메모리 모듈에서 랭크 단위의 에러 정정 동작을 나타낸다.
도 13을 참조하면, 제1 데이터 메모리들(201a~201h) 및 제2 데이터 메모리들(202a~202h) 각각에는 64 비트의 데이터 비트들이 저장되고, 제1 ECC 메모리(200ta) 및 제2 제2 ECC 메모리(200tb) 각각에는 제1 데이터 메모리들(201a~201h) 및 제2 데이터 메모리들(202a~202h)에 저장되는 데이터 비트들에 대하여 랭크 단위로 4 비트씩 모두 64 비트의 패리티 데이터가 저장된다.
예를 들어, 데이터 메모리(20aa)가 제1 에러 비트(511) 및 제2 에러 비트(513)를 포함하는 경우, 제1 에러 비트(511) 및 제2 에러 비트(513)로 인한 오정정 비트(515)가 랭크 단위의 해프-코드워드(517)에 포함되는 경우, 랭크 단위의 해프-코드워드(517)는 제1 에러 비트(511) 및 오정정 비트(515)를 포함하게 되어, 해프-코드워드(517)의 에러를 검출할 수 있다.
도 14a는 본 발명의 실시예들에 따른 도 1의 메모리 시스템에서 메모리 모듈의 다른 예를 나타낸다.
도 14a를 참조하면, 메모리 모듈(100b)은 회로 기판(101)에 배치되는(실장되는) 제어 장치(110b), 복수의 제1 데이터 메모리들(203a~203d), 복수의 제2 데이터 메모리들(204a~204d), ECC 메모리(200tc), 데이터 버퍼들(161~168, 170), SPD 칩(120b) 및 전원관리 집적회로(180b)를 포함할 수 있다.
이하, 제1 데이터 메모리들(203a~203d), 제2 데이터 메모리들(204a~204d) 및 ECC 메모리(200tc)을 메모리 장치들이라 한다.
여기서, 회로 기판(101)은 인쇄회로 기판으로서, 제1 방향(D1)의 제1 에지부(103) 및 제2 에지부(105) 사이에서 제1 방향(D1)과 수직인 제2 방향(D2)으로 연장된다.
제어 장치(110b)는 메모리 컨트롤러(30)의 제어에 따라 메모리 장치들 및 전원관리 집적회로(180)를 제어할 수 있다. 예를 들어, 제어 장치(110b)는 메모리 컨트롤러(30)로부터 어드레스(ADDR), 커맨드(CMD) 및 클럭 신호(CLK)를 수신할 수 있다.
제어 장치(110b)는 수신된 신호들에 응답하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통하여 수신된 데이터가 메모리 장치들에 기입되거나 또는 메모리 장치들에 저장된 데이터가 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 출력되도록 메모리 장치들을 제어할 수 있다. 예를 들어, 제어 장치(110)는 메모리 컨트롤러(30)로부터 수신된 어드레스(ADDR), 커맨드(CMD)및 클럭 신호(CLK)를 메모리 장치들로 전달할 수 있다.
예시적으로, 메모리 장치들은 DRAM, SRAM, SDRAM과 같은 휘발성 메모리 장치를 포함할 수 있다. 특히, 메모리 장치들은 DDR5(double data rate 5) SDRAM을 포함할 수 있다.
SPD 칩(120b)은 프로그램 가능 읽기 전용 기억 장치(EEPROM)일 수 있다. SPD(180)는 메모리 모듈(100b)의 초기 정보 또는 장치 정보(DI; Device Information)를 포함할 수 있다. 예시적으로, SPD 칩(120b)은 메모리 모듈(100b)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보(DI)를 포함할 수 있다.
메모리 모듈(100b)을 포함하는 메모리 시스템(10)이 부팅될 때, 메모리 컨트롤러(30)는 SPD 칩(120b)으로부터 장치 정보(DI)를 읽고, 이를 기반으로 메모리 모듈(100b)을 인식할 수 있다. 메모리 컨트롤러(30)는 SPD 칩(120b)으로부터의 장치 정보(DI)를 기반으로 메모리 모듈(100b)을 제어할 수 있다.
전원관리 집적회로(180b)는 입력 전압(VIN)을 기초로 전원 전압(VDD)을 생성하고, 생성된 전원 전압(VDD)을 메모리 장치들에 제공할 수 있다. 메모리 장치들은 전원 전압(VDD)을 기반으로 하여 동작할 수 있다.
제어 장치(110b)는 회로 기판(101)의 중심부에 배치되고, 제1 데이터 메모리들(203a~203d)은 제어 장치(110b)와 제1 에지부(103) 사이에 배치되고 제2 데이터 메모리들(204a~204d)는 제어 장치(110b)와 제2 에지부(105) 사이에 배치될 수 있다. ECC 메모리(200tc)는 제어 장치(110b)와 인접하게 회로 기판(101)의 중심부에 배치될 수 있다.
제1 데이터 메모리들(203a~203d) 및 2 데이터 메모리들(204a~204d) 각각은 도 6의 데이터 메모리(201a)와 실질적으로 동일한 구성을 가질 수 있다.
제1 데이터 메모리들(203a~203d)은 데이터 버퍼들(161~164)을 통하여 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고받을 수 있고, 제2 데이터 메모리들(204a~204d)은 데이터 버퍼들(165~168, 170)을 통하여 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고받을 수 있다. ECC 메모리(200tc)는 데이터 버퍼(170)를 통하여 패리티 데이터 세트(SPRT)를 주고받을 수 있다.
제어 장치(110b)는 제1 커맨드/어드레스 전송선(135)을 통하여 제1 데이터 메모리들(203a~203d)에 커맨드/어드레스 신호를 제공하고, 제2 커맨드/어드레스 전송선(137)을 통하여 제2 데이터 메모리들(204a~204d) 및 ECC 메모리(200tc)에 커맨드/어드레스 신호를 제공할 수 있다.
SPD 칩(120b)은 제어 장치(110b)에 인접하게 배치될 수 있고, 전원관리 집적회로(180b)는 데이터 메모리(204d)와 제2 에지부(105) 사이에 배치될 수 있다.
ECC 메모리(200tc)는 제1 패리티 영역 및 제2 패리티 영역을 구비하고, 제어 장치(110b)는 슈도 채널 선택 신호(PCSS)를 ECC 메모리(200tc)에 인가하여 제1 패리티 영역 및 제2 패리티 영역 중 적어도 하나를 활성화시키고, 활성화된 영역에 패리티 데이터를 저장할 수 있다.
이 경우에, 제1 데이터 메모리들(203a~203d)에 저장되는 제1 서브 사용자 데이터 세트와 관련된 제1 서브 패리티 데이터는 제1 패리티 영역에 저장될 수 있고, 제2 데이터 메모리들(204a~204d)에 저장되는 제2 서브 사용자 데이터 세트와 관련된 제2 서브 패리티 데이터는 제2 패리티 영역에 저장될 수 있다.
도 14b는 도 14a의 메모리 모듈의 데이터 입출력 폭을 나타낸다.
도 14b를 참조하면, 제1 데이터 메모리들(203a~203d) 및 제2 데이터 메모리들(204a~204d) 각각은 하나의 버스트 (길이)에 대응하여 8 비트의 데이터를 저장하고, ECC 메모리(200tc)는 하나의 버스트에 대응하여 8 비트의 패리티 비트들을 저장할 수 있다. 따라서 메모리 모듈(100b)은 하나의 버스트에 대응하여 72 비트의 입출력 폭을 가질 수 있다. 제1 데이터 메모리들(203a~203d) 및 ECC 메모리(200tc)의 일부는 제1 채널을 구성할 수 있고, 제2 데이터 메모리들(204a~204d) 및 ECC 메모리(200tc)의 일부는 제2 채널을 구성할 수 있다. 제1 채널과 제2 채널을 서로에 대하여 독립적이다.
도 15는 본 발명의 실시예들에 따른 도 14a의 메모리 모듈에서 데이터 메모리들 각각에 제공되는 또는 데이터 메모리들 각각으로부터 출력되는 복수의 버스트 길이들에 대응되는 데이터 세트를 나타낸다.
도 15를 참조하면, 제1 데이터 메모리들(203a~203d) 및 제2 데이터 메모리들(204a~204d) 각각에는/각각으로부터는 복수의 버스트 길이들에 대응되는 데이터 세트(DQ_BL)가 입력/출력된다. 데이터 세트(DQ_BL)는 복수의 버스트 길이들 중 각각의 버스트 길이에 대응되는 데이터 세그먼트들(DQ_BL_SG1~DQ_BL_SG16)을 포함할 수 있다. 도 15에서 버스트 길이(BL)는 16으로 가정하였다.
도 16a는 본 발명의 실시예들에 따른 도 14a의 메모리 모듈에서 ECC 메모리의 구성을 나타낸다.
도 16a를 참조하면, ECC 메모리(200tc)는 칩 입출력 패드부(213) 및 복수의 메모리 다이들(MD1, MD2)을 포함한다.
칩 입출력 패드부(213)는 외부 장치와 연결되는 칩 커맨드-어드레스 패드부(214), 칩 하위 데이터 패드부(215) 및 칩 상위 데이터 패드부(216)를 포함한다. 칩 커맨드-어드레스 패드부(214), 칩 하위 데이터 패드부(215) 및 칩 상위 데이터 패드부(216)는 각각 복수의 패드들을 포함할 수 있다. 예를 들어, 칩 커맨드-어드레스 패드부(214)는 제어 장치(110b) 같은 외부 장치로부터 커맨드(CMD1) 및 어드레스(ADDR1)를 수신하기 위한 복수의 패드들을 포함할 수 있고, 칩 하위 데이터 패드부(215)는 메모리 컨트롤러(30)와 제1 서브 패리티 데이터(PRT_L)를 교신하기 위한 복수의 패드들을 포함할 수 있고, 칩 상위 데이터 패드부(216)는 상기 메모리 컨트롤러와 제2 서브 패리티 데이터(PRT_U)를 교신하기 위한 복수의 패드들을 포함할 수 있다.
제1 메모리 다이(MD1)는 칩 커맨드-어드레스 패드부(214) 및 칩 하위 데이터 패드부(215)와 전기적으로 연결(electrically connected to)되고, 칩 상위 데이터 패드부(216)와 전기적으로 단절(electrically disconnected from)된다. 제2 메모리 다이(MD2)는 칩 커맨드-어드레스 패드부(214) 및 칩 상위 데이터 패드부(216)와 전기적으로 연결되고 칩 하위 데이터 패드부(215)와 전기적으로 단절된다.
제1 메모리 다이(MD1)는 제1 서브 채널을 구성하는 복수의 제1 뱅크 어레이들과 제2 서브 채널을 구성하는 복수의 제2 뱅크 어레이들을 포함할 수 있고, 제1 뱅크 어레이들은 제1 패리티 영역을 구성할 수 있고, 제2 뱅크 어레이들은 제2 패리티 영역을 구성할 수 있다. 제2 메모리 다이(MD2)는 제1 서브 채널을 구성하는 복수의 제3 뱅크 어레이들과 제2 서브 채널을 구성하는 복수의 제4 뱅크 어레이들을 포함할 수 있고, 제3 뱅크 어레이들은 제1 패리티 영역을 구성하고 제4 뱅크 어레이들은 제2 패리티 영역을 구성할 수 있다.
도 16b는 본 발명의 일 실시예에 따른 16a의 ECC 메모리를 나타내는 사시도이다.
도 16b를 참조하면, ECC 메모리(200tc)은 베이스 기판(508) 및 베이스 기판(508) 위에 적층되는 복수의 메모리 다이들(518, 528)을 포함한다.
베이스 기판(508)은 제1 서브 채널 영역(SUB_CH1)에 상응하는 제1 입출력 패드부 및 제2 서브 채널 영역(SUB_CH2)에 상응하는 제2 입출력 패드부를 포함할 수 있다. 상기 제1 입출력 패드부는 외부 장치와 연결되는 제1 칩 커맨드-어드레스 패드부(38), 제1 칩 하위 데이터 패드부(48) 및 제1 칩 상위 데이터 패드부(58)를 포함하고, 상기 제2 입출력 패드부는 외부 장치와 연결되는 제2 칩 커맨드-어드레스 패드부(39), 제2 칩 하위 데이터 패드부(49) 및 제2 칩 상위 데이터 패드부(59)를 포함한다.
제1 칩 커맨드-어드레스 패드부(38)는 제1 칩 선택 신호(CSA), 제1 클럭 인에이블 신호(CKEA) 및 제1 커맨드-어드레스 신호들(CAA0~CAA4)을 수신하는 복수의 패드들을 포함할 수 있다. 제1 칩 하위 데이터 패드부(48)는 4비트의 하위 데이터(DQA0~DQA3)를 교신하는 4 개의 패드들을 포함할 수 있고, 제1 칩 상위 데이터 패드부(58)는 4 비트의 상위 데이터(DQA4~DQA7)를 교신하는 4 개의 패드들을 포함할 수 있다.
제2 칩 커맨드-어드레스 패드부(39)는 제2 칩 선택 신호(CSB), 제2 클럭 인에이블 신호(CKEB) 및 제2 커맨드-어드레스 신호들(CAB0~CAB4)을 수신하는 복수의 패드들을 포함할 수 있다. 제2 칩 하위 데이터 패드부(49)는 4 비트의 하위 데이터(DQB0~DQB3)를 교신하는 4 개의 패드들을 포함할 수 있고, 제2 칩 상위 데이터 패드부(59)는 4 비트의 상위 데이터(DQB4~DQB7)를 교신하는 4 개의 패드들을 포함할 수 있다.
제1 메모리 다이(518) 및 제2 메모리 다이(528)의 각각은 서로 독립적으로 동작하는 제1 서브 채널 영역(SUB_CH1) 및 제2 서브 채널 영역(SUB_CH2)을 포함할 수 있다.
제1 메모리 다이(518)는 제1 서브 채널 영역(SUB_CH1)에 상응하는 제1 다이 입출력 패드부(538, 548, 558) 및 제2 서브 채널 영역(SUB_CH2)에 상응하는 제2 다이 입출력 패드부(539, 549, 559)를 포함할 수 있다. 제1 다이 입출력 패드부(538, 548, 558)는 제1 칩 커맨드-어드레스 패드부(38)에 상응하는 제1 다이 커맨드-어드레스 패드부(538), 제1 칩 하위 데이터 패드부(48)에 상응하는 제1 다이 하위 데이터 패드부(548) 및 제1 칩 상위 데이터 패드부(58)에 상응하는 제1 다이 상위 데이터 패드부(558)을 포함할 수 있다. 제2 다이 입출력 패드부(539, 549, 559)는 제2 칩 커맨드-어드레스 패드부(39)에 상응하는 제2 다이 커맨드-어드레스 패드부(539), 제2 칩 하위 데이터 패드부(49)에 상응하는 제2 다이 하위 데이터 패드부(549) 및 제2 칩 상위 데이터 패드부(59)에 상응하는 제2 다이 상위 데이터 패드부(559)를 포함할 수 있다. 제2 메모리 다이(528)도 제1 메모리 다이(518)과 동일한 구조의 제1 서브 채널 영역(SUB_CH1)에 상응하는 제1 다이 입출력 패드부(미도시) 및 제2 서브 채널 영역(SUB_CH2)에 상응하는 제2 다이 입출력 패드부를 포함할 수 있다.
제1 메모리 다이(518)의 다이 커맨드-어드레스 패드부들(538, 539) 및 제2 반도체 다이(528)의 다이 커맨드-어드레스 패드부들(미도시)은 칩 커맨드-어드레스 패드부들(38, 39)에 공통으로 연결될 수 있다. 제1 메모리 다이(518)의 다이 하위 데이터 패드부들(548, 549)는 칩 하위 데이터 패드부들(48, 49)과 전기적으로 연결되고 제1 메모리 다이(518)의 다이 상위 데이터 패드부들(558, 559)는 칩 상위 데이터 패드부들(58, 59)과 전기적으로 단절될 수 있다. 제2 메모리 다이(528)의 다이 상위 데이터 패드부들(미도시)은 상위 데이터 패드부들(58, 59)과 전기적으로 연결되고 제2 반도체 다이(528)의 다이 하위 데이터 패드부들(미도시)은 하위 데이터 패드부들(48, 49)과 전기적으로 단절될 수 있다.
도 16b에 도시된 바와 같이, 제1 메모리 다이(518) 및 제2 메모리 다이(528)는 본딩 와이어(bonding wire)들을 통하여 칩 하위 데이터 패드부들(48. 49) 및 칩 상위 데이터 패드부들(58, 59)과 각각 연결될 수 있다. 또한, 제1 메모리 다이(518) 및 제2 메모리 다이(528)는 본딩 와이어들을 통하여 칩 커맨드-어드레스 패드부들(38, 39)에 공통으로 연결될 수 있다. 다른 실시예에서, 제1 메모리 다이(518) 및 제2 메모리 다이(528)은 관통 비아(TSV: through-silicon via)를 통하여 칩 커맨드-어드레스 패드부들(38, 39)에 공통으로 연결될 수 있다.
도 17은 본 발명의 실시예들에 따른 도 14a의 메모리 모듈의 동작을 나타낸다.
도 17을 참조하면, 제1 데이터 메모리들(203a~203d) 및 ECC 메모리(200tc)는 제1 채널(CH11)을 구성할 수 있고, 제2 데이터 메모리들(204a~204d) 및 ECC 메모리(200tc)는 제2 채널(CH12)을 구성할 수 있다. 제1 채널(CH11)과 제2 채널(CH12)는 서로 독립적으로 동작한다. 따라서 제1 채널(CH11)의 동작 시에는 ECC 메모리(200tc)는 제1 데이터 메모리들(203a~203d)에 저장되는 제1 서브 사용자 데이터 세트와 관련된 제1 서브 패리티 데이터를 제1 서브 패리티 영역 및 제2 서브 패리티 영역에 저장할 수 있다. 또한 제2 채널(CH12)의 동작 시에는 ECC 메모리(200tc)는 제1 데이터 메모리들(203a~203d)에 저장되는 제2 서브 사용자 데이터 세트와 관련된 제2 서브 패리티 데이터를 제1 서브 패리티 영역 및 제2 서브 패리티 영역에 저장할 수 있다. 이 경우에 제어 장치(110b)는 슈도 채널 선택 신호(PCSS)를 ECC 메모리(200tc)에 인가하여 데이터를 제1 서브 패리티 영역 및 제2 서브 패리티 영역을 활성화시킬 수 있다.
도 18은 본 발명의 실시예들에 따른 도 14a의 메모리 모듈의 동작을 나타낸다.
도 18을 참조하면, 제1 데이터 메모리들(203a~203d) 및 ECC 메모리(200tc)는 제1 채널(CH21)을 구성할 수 있고, 제2 데이터 메모리들(204a~204d)는 제2 채널(CH22)을 구성할 수 있다. 제1 채널(CH21)과 제2 채널(CH22)는 서로 독립적으로 동작한다. 따라서 제1 채널(CH21)의 동작 시에는 ECC 메모리(200tc)는 제1 데이터 메모리들(203a~203d)에 저장되는 제1 서브 사용자 데이터 세트와 관련된 제1 서브 패리티 데이터를 제1 서브 패리티 영역 및 제2 서브 패리티 영역에 저장할 수 있다. 이 경우에 제어 장치(110b)는 슈도 채널 선택 신호(PCSS)를 ECC 메모리(200tc)에 인가하여 데이터를 제1 서브 패리티 영역 및 제2 서브 패리티 영역을 활성화시킬 수 있다.
또한 제2 채널(CH12)의 동작 시에는 제어 장치(110b)는 슈도 채널 선택 신호(PCSS)를 ECC 메모리(200tc)에 인가하여 데이터를 제1 서브 패리티 영역 및 제2 서브 패리티 영역을 비활성화시킬 수 있다.
도 18은 제1 서브 사용자 데이터 세트의 신뢰성이 제2 서브 사용자 데이터 세트의 신뢰성보다 우선시되는 경우를 가정한다.
도 19는 본 발명의 실시예들에 따른 메모리 시스템의 동작 방법을 나타낸다.
도 1 내지 도 13 및 도 19를 참조하면, 복수의 제1 데이터 메모리들(201a~201h), 제1 ECC 메모리(200ta), 복수의 제2 데이터 메모리들(202a~202h), 제2 ECC 메모리(200tb)를 구비하는 메모리 모듈(100a)와 메모리 모듈(100a)을 제어하는 메모리 컨트롤러(30)를 포함하는 메모리 시스템(20)의 동작 방법에서는, 제1 데이터 메모리들(201a~201h) 각각에 제1 데이터 세트를 저장하면서, 제1 ECC 메모리(200ta)에 제1 데이터 세트 전체와 관련된 제1 서브 패리티 데이터를 저장한다(S110). 제2 데이터 메모리들(202a~203h) 각각에 제2 데이터 세트를 저장하면서, 제2 ECC 메모리(200tb)에 제2 데이터 세트 전체와 관련된 제2 서브 패리티 데이터를 저장한다(S120).
메모리 컨트롤러(30)가 제1 데이터 세트, 제2 데이터 세트, 제1 서브 패리티 데이터 및 제2 서브 패리티 데이터를 독출한다(S130). 메모리 컨트롤러(30)가 제1 데이터 세트 및 제2 데이터 세트에 기초하여 제1 데이터 세트 및 제2 데이터 세트에 포함된 에러를 검출한다(S140). 메모리 컨트롤러(30)가 제1 서브 패리티 데이터 및 제2 서브 패리티 데이터에 기초하여 검출된 에러의 종류를 판별하고, 에러가 검출된 데이터 메모리의 데이터를 반전한다(S150).
도 20은 본 발명의 실시예들에 따른 메모리 시스템의 동작 방법을 나타낸다.
도 1, 도 14a 도 18 및 도 20을 참조하면, 복수의 제1 데이터 메모리들(203a~203d), 복수의 제2 데이터 메모리들(204a~204d) 및 ECC 메모리(200tc)를 구비하는 메모리 모듈(100b) 및 메모리 모듈(100b)을 제어하는 메모리 컨트롤러(30)를 포함하는 메모리 시스템의 동작 방법에서는 제1 데이터 메모리들(203a~203d) 각각에 제1 데이터 세트를 저장하면서, 제2 데이터 메모리들(204a~204d) 각각에 제2 데이터 세트를 저장한다(S210). ECC 메모리(200tc)에 제1 데이트 세트들 전체와 관련된 제1 서브 패리티 데이터 및 제2 데이터 세트들 전체와 관련된 제2 서브 패리티 데이터를 저장한다(S220). 제1 서브 패리티 데이터 및 제2 서브 패리티 데이터는 ECC 메모리(200tc)의 제1 패리티 영역 및 제2 패리티 영역 각각에 저장될 수 있고, 제1 패리티 영역에 저장되거나 제2 패리티 영역에 저장될 수 있다.
메모리 컨트롤러(30)가 제1 데이터 세트, 제2 데이터 세트, 제1 서브 패리티 데이터 및 제2 서브 패리티 데이터를 독출하여, 제1 데이터 메모리들(203a~203d) 각각 및 제2 데이터 메모리들(204a~204d) 각각의 에러를 검출한다(S230). 메모리 컨트롤러(30)가 제1 서브 패리티 데이터 및 제2 서브 패리티 데이터에 기초하여 검출된 에러의 종류를 판단한다(S240). 메모리 컨트롤러(30)가 에러가 검출된 데이터 메모리의 데이터를 반전시킨다(S250).
도 21은 본 발명의 실시예들에 따른 쿼드 랭크 메모리 모듈을 갖는 메모리 시스템을 나타내는 블록도이다.
도 21을 참조하면, 메모리 시스템(700)은 메모리 컨트롤러(710), 및 적어도 하나 이상의 메모리 모듈(720, 730)을 포함할 수 있다.
메모리 컨트롤러(710)는 프로세서나 호스트로부터 인가되는 명령을 수행하도록 메모리 모듈들을 제어할 수 있다. 메모리 컨트롤러(710)는 프로세서나 호스트의 내부에 구현될 수도 있으며, 어플리케이션 프로세서 또는 SoC로 구현될 수 도 있다. 메모리 컨트롤러(710)의 버스(70)에는 신호 무결성(signal integrity)을 위해 소스 터미네이션이 저항(RTT)을 통해 구현된다.
제1 메모리 모듈(720) 및 제2 메모리 모듈(730)은 버스(740)를 통하여 메모리 컨트롤러(710)에 연결된다. 제1 메모리 모듈(720) 및 제2 메모리 모듈(730) 각각은 도 2a의 메모리 모듈(100a) 또는 도 14a의 메모리 모듈(100b)로 구현될 수 있다. 제1 메모리 모듈(720)은 적어도 하나 이상의 메모리 랭크(R1, R2)를 포함하고, 제2 메모리 모듈(730)은 적어도 하나 이상의 메모리 랭크(R3, R4)를 포함할 수 있다.
제1 메모리 모듈(720) 및 제2 메모리 모듈(730) 각각은 제1 데이터 메모리들, 제2 데이터 메모리들 및 적어도 하나의 ECC 메모리를 포함하여 72 비트의 데이터 입출력 폭을 유지하면서, 에러 검출 및 정정 동작을 수행할 수 있다.
도 22는 본 발명의 실시예에 따른 메모리 모듈을 모바일 시스템에 응용한 예를 나타내는 블록도이다.
도 22를 참조하면, 모바일 시스템(900)은 어플리케이션 프로세서(910), 통신(Connectivity) 모듈(920), 사용자 인터페이스(930), 비휘발성 메모리 장치(940), 메모리 모듈(950) 및 파워 서플라이(960)를 포함한다. 어플리케이션 프로세서(910)는 메모리 컨트롤러(911)를 포함할 수 있다.
어플리케이션 프로세서(910)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 통신부(920)는 외부 장치와 무선 통신 또는 유선 통신을 수행할 수 있다.
메모리 모듈(950) 은 어플리케이션 프로세서(910)에 의해 처리되는 데이터를 저장하거나, 동작 메모리(Working Memory)로서 작동할 수 있다. 메모리 모듈(950)은 복수의 반도체 메모리 장치들(951~95q) 및 제어 장치(962)를 포함할 수 있다. 반도체 메모리 장치들(951~95q)은 제1 데이터 메모리들, 제2 데이터 메모리들 및 적어도 하나의 ECC 메모리를 포함하여 72 비트의 데이터 입출력 폭을 유지하면서, 에러 검출 및 정정 동작을 수행할 수 있다.
비휘발성 메모리 장치(940)는 모바일 시스템(900)을 부팅하기 위한 부트 이미지를 저장할 수 있다. 사용자 인터페이스(920)는 키패드, 터치 스크린과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함할 수 있다. 파워 서플라이(960)는 모바일 시스템(900)의 동작 전압을 공급할 수 있다.
모바일 시스템(900) 또는 모바일 시스템(900)의 구성요소들은 다양한 형태들의 패키지를 이용하여 실장될 수 있다.
본 발명은 ECC 메모리를 구비하는 메모리 모듈을 채용하는 메모리 시스템에 적용될 수 있다.
상기에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술분야에서 통상의 지식을 가진 자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (20)

  1. 제1 채널을 구성하는 복수의 제1 데이터 메모리들 및 제1 ECC(error correction code) 메모리; 및
    제2 채널을 구성하는 복수의 제2 데이터 메모리들 및 제2 ECC 메모리를 포함하고,
    상기 제1 데이터 메모리들 및 제2 데이터 메모리들 각각은 복수의 버스트 길이들에 대응되는 데이터 세트를 저장하고,
    상기 제1 ECC 메모리는 상기 제1 데이터 메모리들에 저장되는 제1 데이터 세트 전체에 해당하는 제1 서브 사용자 데이터 세트의 에러를 검출/정정하기 위한 제1 서브 패리티 데이터를 저장하고,
    상기 제2 ECC 메모리는 상기 제2 데이터 메모리들에 저장되는 제2 데이터 세트 전체에 해당하는 제2 서브 사용자 데이터 세트의 에러를 검출/정정하기 위한 제2 서브 패리티 데이터를 저장하고,
    상기 제1 채널과 상기 제2 채널은 서로 독립적인 메모리 모듈.
  2. 제1항에 있어서,
    상기 제1 데이터 메모리들 각각과 상기 제2 데이터 메모리들 각각은 상기 복수의 버스트 길이들 중 하나의 버스트 길이에 대응하여 4 비트의 데이터를 저장하고,
    상기 제1 ECC 메모리 및 상기 제2 ECC 메모리는 상기 하나의 버스트 길이에 대응하여 4 비트의 패리티 비트들을 저장하는 메모리 모듈.
  3. 제2항에 있어서,
    상기 제1 채널과 상기 제2 채널은 상기 하나의 버스트 길이에 대응하여 72 비트의 데이터 입출력 폭을 가지는 메모리 모듈.
  4. 제1항에 있어서,
    상기 제1 데이터 메모리들과 상기 제2 데이터 메모리들 각각은
    상기 데이터 세트를 저장하는 제1 메모리 영역, 상기 데이터 세트를 기초로 생성된 제1 패리티 비트들을 저장하는 제2 메모리 영역을 구비하는 메모리 셀 어레이를 포함하는 메모리 모듈.
  5. 제4항에 있어서,
    상기 제1 데이터 메모리들과 상기 제2 데이터 메모리들 각각은
    상기 데이터 세트에 대하여 ECC 인코딩을 수행하여 제1 패리티 비트들을 생성하는 ECC 인코더; 및
    상기 제1 메모리 영역으로부터 독출된 상기 데이터 세트에 대하여 ECC 디코딩을 수행하여 상기 데이터 세트의 에러를 정정하는 ECC 디코더를 포함하는 ECC 엔진을 더 포함하는 메모리 모듈.
  6. 제1항에 있어서,
    상기 제1 ECC 메모리는 상기 제1 서브 패리티 데이터를 저장하는 제1 패리티 영역 및 상기 제1 서브 패리티 데이터를 기초로 생성된 내부 패리티 비트들을 저장하는 제2 메모리 영역을 구비하는 메모리 셀 어레이를 포함하는 메모리 모듈.
  7. 제6항에 있어서, 상기 제1 ECC 메모리는
    상기 제1 서브 패리티 데이터에 ECC 인코딩을 수행하여 상기 내부 패리티 비트들을 생성하는 ECC 인코더; 및
    상기 제1 메모리 영역으로부터 독출된 상기 제1 서브 패리티 데이터에 ECC 디코딩을 수행하여 상기 제1 서브 패리티 데이터에 포함된 에러를 선택적으로 정정하는 ECC 디코더를 구비하는 ECC 엔진을 더 포함하는 메모리 모듈.
  8. 제1항에 있어서,
    상기 제2 ECC 메모리는 상기 제2 서브 패리티 데이터를 저장하는 제1 패리티 영역 및 상기 제2 서브 패리티 데이터를 기초로 생성된 내부 패리티 비트들을 저장하는 제2 패리티 영역을 구비하는 메모리 셀 어레이를 포함하는 메모리 모듈.
  9. 제8항에 있어서, 상기 제2 ECC 메모리는
    상기 제2 서브 패리티 데이터에 ECC 인코딩을 수행하여 상기 내부 패리티 비트들을 생성하는 ECC 인코더; 및
    상기 제1 메모리 영역으로부터 독출된 상기 제2 서브 패리티 데이터에 ECC 디코딩을 수행하여 상기 제2 서브 패리티 데이터에 포함된 에러를 선택적으로 정정하는 ECC 디코더를 구비하는 ECC 엔진을 더 포함하는 메모리 모듈.
  10. 제1항에 있어서,
    상기 제1 ECC 메모리는 상기 제1 서브 패리티 데이터를 이용하여 상기 제1 데이터 메모리들 중 에러가 검출된 적어도 하나의 데이터 메모리의 에러를 정정하고,
    상기 제2 ECC 메모리는 상기 제2 서브 패리티 데이터를 이용하여 상기 제2 데이터 메모리들 중 에러가 검출된 적어도 하나의 데이터 메모리의 에러를 정정하는 메모리 모듈.
  11. 복수의 제1 데이터 메모리들;
    복수의 제2 데이터 메모리들; 및
    ECC(error correction code) 메모리를 포함하고,
    상기 제1 데이터 메모리들 및 제2 데이터 메모리들 각각은 복수의 버스트 길이들에 대응되는 제1 데이터 세트와 제2 데이터 세트를 각각 저장하고,
    상기 ECC 메모리는 상기 제1 데이터 세트 전체에 해당하는 제1 서브 사용자 데이터 세트 및 상기 제2 데이터 세트 전체에 해당하는 제2 서브 사용자 데이터 세트 중 적어도 하나의 에러를 검출/정정하기 위한 패리티 데이터를 저장하고,
    적어도 상기 제1 데이터 메모리들은 제1 채널을 구성하고,
    적어도 상기 제2 데이터 메모리들은 제2 채널을 구성하고,
    상기 제1 채널과 상기 제2 채널은 서로 독립적인 메모리 모듈.
  12. 제11항에 있어서,
    상기 제1 데이터 메모리들 각각과 상기 제2 데이터 메모리들 각각은 상기 복수의 버스트 길이들 중 하나의 버스트 길이에 대응하여 8 비트의 데이터를 저장하고,
    상기 ECC 메모리는 상기 하나의 버스트 길이에 대응하여 8 비트의 패리티 비트들을 저장하는 메모리 모듈.
  13. 제11항에 있어서, 상기 ECC 메모리는
    상기 제1 서브 사용자 데이터 세트와 관련된 제1 서브 패리티 데이터 및 상기 제2 서브 사용자 데이터 세트와 관련된 제2 서브 패리티 데이터 중 적어도 하나를 저장하는 제1 패리티 영역; 및
    상기 제1 서브 패리티 데이터 및 상기 제2 서브 패리티 데이터 중 적어도 하나를 저장하는 제2 패리티 영역을 구비하는 메모리 셀 어레이를 포함하는 메모리 모듈.
  14. 제13항에 있어서,
    외부의 메모리 컨트롤러로부터 수신된 커맨드 및 어드레스에 기초하여 상기 제1 데이터 메모리들, 상기 제2 데이터 메모리들 및 상기 ECC 메모리를 제어하는 제어 장치를 더 포함하고,
    상기 제어 장치는 상기 ECC 메모리에 슈도 채널 선택 신호를 인가하여 상기 제1 패리티 영역 및 상기 제2 패리티 영역 중 적어도 하나를 활성화시키는 메모리 모듈.
  15. 제14항에 있어서, 상기 제어 장치는
    상기 제1 채널의 동작 시에 상기 슈도 채널 선택 신호를 상기 ECC 메모리에 인가하여 상기 제1 패리티 영역을 활성화시켜 상기 제1 서브 패리티 데이터를 상기 제1 패리티 영역에 저장하고,
    상기 제2 채널의 동작 시에 상기 슈도 채널 선택 신호를 상기 ECC 메모리에 인가하여 상기 제2 패리티 영역을 활성화시켜 상기 제2 서브 패리티 데이터를 상기 제2 영역에 저장하고,
    상기 제1 채널은 상기 제1 패리티 영역을 더 포함하고,
    상기 제2 채널은 상기 제2 패리티 영역을 더 포함하는 메모리 모듈.
  16. 제14항에 있어서, 상기 제어 장치는
    상기 제1 채널의 동작 시에 상기 슈도 채널 선택 신호를 상기 ECC 메모리에 인가하여 상기 제1 패리티 영역과 상기 제2 패리티 영역을 활성화시켜 상기 제1 서브 패리티 데이터를 상기 제1 패리티 영역과 상기 제2 패리티 영역에 저장하고,
    상기 제2 채널의 동작 시에 상기 슈도 채널 선택 신호를 상기 ECC 메모리에 인가하여 상기 제1 패리티 영역과 상기 제2 패리티 영역을 활성화시켜 상기 제2 서브 패리티 데이터를 상기 제1 패리티 영역과 상기 제2 패리티 영역에 저장하고,
    상기 제1 채널과 상기 제2 채널은 상기 제1 패리티 영역과 상기 제2 패리티 영역을 공유하는 메모리 모듈.
  17. 제14항에 있어서, 상기 제어 장치는
    상기 제1 채널의 동작 시에 상기 슈도 채널 선택 신호를 상기 ECC 메모리에 인가하여 상기 제1 패리티 영역과 상기 제2 패리티 영역을 활성화시켜 상기 제1 서브 패리티 데이터를 상기 제1 패리티 영역과 상기 제2 패리티 영역에 저장하고,
    상기 제2 채널의 동작 시에 상기 슈도 채널 선택 신호를 상기 ECC 메모리에 인가하여 상기 제1 패리티 영역과 상기 제2 패리티 영역을 비활성화시키고,
    상기 제1 채널은 상기 제1 패리티 영역과 상기 제2 패리티 영역을 더 포함하는 메모리 모듈.
  18. 제11항에 있어서,
    상기 제1 데이터 메모리들과 상기 제2 데이터 메모리들 각각은
    상기 데이터 세트에 대하여 ECC 인코딩을 수행하여 제1 패리티 비트들을 생성하는 ECC 인코더; 및
    상기 제1 메모리 영역으로부터 독출된 상기 데이터 세트에 대하여 ECC 디코딩을 수행하여 상기 데이터 세트의 에러를 정정하는 ECC 디코더를 포함하는 ECC 엔진을 더 포함하는 메모리 모듈.
  19. 제1항에 있어서,
    상기 ECC 메모리는 상기 패리티 데이터를 이용하여 상기 제1 데이터 메모리들 및 상기 제2 데이터 메모리들 중 에러가 검출된 적어도 하나의 데이터 메모리의 에러를 정정하는 메모리 모듈.
  20. 복수의 제1 데이터 메모리들, 복수의 제2 데이터 메모리들 및 ECC 메모리를 구비하는 메모리 모듈 및 상기 메모리 모듈을 제어하는 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법으로서,
    상기 제1 데이터 메모리들 및 상기 제2 데이터 메모리들 각각에 복수의 버스트 길이(burst length)들에 대응하는 제1 데이터 세트와 제2 데이터 세트를 저장하는 단계;
    상기 ECC 메모리에 상기 제1 데이터 세트 전체와 관련된 제1 서브 패리티 데이터 및 상기 제2 데이터 세트 전체와 관련된 제2 서브 패리티 데이터를 저장하는 단계;
    상기 메모리 컨트롤러가 상기 제1 데이터 세트 전체와 상기 제2 데이터 세트 전체에 기초하여 상기 제1 데이터 메모리들 및 상기 제2 데이터 메모리들 각각의 에러를 검출하는 단계;
    상기 메모리 컨트롤러가 상기 제1 서브 패리티 데이터 및 상기 제2 서브 패리티 데이터에 기초하여 상기 검출된 에러의 종류를 판단하는 단계; 및
    상기 메모리 컨트롤러가 상기 에러가 검출된 데이터 메모리의 데이터 세트를 반전시키는 단계를 포함하는 메모리 시스템의 동작 방법.
KR1020180127094A 2018-10-24 2018-10-24 메모리 모듈 및 메모리 시스템의 동작 방법 KR20200046245A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180127094A KR20200046245A (ko) 2018-10-24 2018-10-24 메모리 모듈 및 메모리 시스템의 동작 방법
US16/392,849 US10867690B2 (en) 2018-10-24 2019-04-24 Memory modules and methods of operating memory systems including the same
CN201910590044.7A CN111090538A (zh) 2018-10-24 2019-07-02 存储器模块及操作包括该存储器模块的存储器系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180127094A KR20200046245A (ko) 2018-10-24 2018-10-24 메모리 모듈 및 메모리 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
KR20200046245A true KR20200046245A (ko) 2020-05-07

Family

ID=70327184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180127094A KR20200046245A (ko) 2018-10-24 2018-10-24 메모리 모듈 및 메모리 시스템의 동작 방법

Country Status (3)

Country Link
US (1) US10867690B2 (ko)
KR (1) KR20200046245A (ko)
CN (1) CN111090538A (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021047527A (ja) * 2019-09-17 2021-03-25 キオクシア株式会社 メモリシステム
US11367478B2 (en) * 2020-01-14 2022-06-21 Changxin Memory Technologies, Inc. Integrated circuit structure and memory
US11500719B1 (en) * 2020-03-31 2022-11-15 Amazon Technologies, Inc. Reliability improvements for memory technologies
US11437114B1 (en) * 2020-05-04 2022-09-06 Meta Platforms, Inc. Reduced error correction code for dual channel DDR dynamic random-access memory
KR20210157830A (ko) * 2020-06-22 2021-12-29 에스케이하이닉스 주식회사 메모리 및 메모리의 동작 방법
US11157359B2 (en) * 2020-09-24 2021-10-26 Intel Corporation Techniques to implement a hybrid error correction code scheme
US11762736B2 (en) * 2021-05-18 2023-09-19 Samsung Electronics Co., Ltd. Semiconductor memory devices
US20230236933A1 (en) * 2022-01-22 2023-07-27 Micron Technology, Inc. Shadow dram with crc+raid architecture, system and method for high ras feature in a cxl drive
CN114490172B (zh) * 2022-04-02 2022-07-12 武汉杰开科技有限公司 数据存储系统及方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523381B2 (en) * 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
US7779334B2 (en) * 2006-06-26 2010-08-17 Taiwan Semiconductor Manufacturing Company, Ltd. Memory having an ECC system
KR101425020B1 (ko) * 2008-03-17 2014-08-04 삼성전자주식회사 메모리 장치 및 데이터 판정 방법
US8301980B2 (en) * 2009-09-28 2012-10-30 Nvidia Corporation Error detection and correction for external DRAM
US8806245B2 (en) 2010-11-04 2014-08-12 Apple Inc. Memory read timing margin adjustment for a plurality of memory arrays according to predefined delay tables
US8836394B2 (en) 2012-03-26 2014-09-16 Rambus Inc. Method and apparatus for source-synchronous signaling
KR102083498B1 (ko) * 2012-07-03 2020-04-14 삼성전자 주식회사 선택적 ecc 동작을 수행하는 메모리 장치
US9069698B2 (en) * 2012-09-06 2015-06-30 Advanced Micro Devices, Inc. Channel rotating error correction code
US8938656B2 (en) * 2012-09-14 2015-01-20 Sandisk Technologies Inc. Data storage device with intermediate ECC stage
KR102002925B1 (ko) * 2012-11-01 2019-07-23 삼성전자주식회사 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
CN104598169B (zh) * 2012-12-31 2018-02-09 苏州国芯科技有限公司 用于flash存储器的高可靠性数据读取方法
US9588840B2 (en) * 2013-04-18 2017-03-07 Samsung Electronics Co., Ltd. Memory devices that perform masked write operations and methods of operating the same
KR101862379B1 (ko) * 2013-04-19 2018-07-05 삼성전자주식회사 Ecc 동작과 리던던시 리페어 동작을 공유하는 메모리 장치
US9658642B2 (en) 2013-07-01 2017-05-23 Intel Corporation Timing control for unmatched signal receiver
KR20160041318A (ko) 2014-10-07 2016-04-18 에스케이하이닉스 주식회사 스트로브 신호 인터벌 검출 회로 및 이를 이용한 메모리 시스템
KR102324769B1 (ko) * 2015-06-29 2021-11-10 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20170060263A (ko) * 2015-11-24 2017-06-01 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US9786353B2 (en) 2016-02-18 2017-10-10 Intel Corporation Reconfigurable clocking architecture
US9898362B2 (en) * 2016-04-07 2018-02-20 Atmel Corporation Multi-channel RAM with ECC for partial writes
KR20170121798A (ko) * 2016-04-26 2017-11-03 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
EP3553662A1 (en) * 2016-05-28 2019-10-16 Advanced Micro Devices, Inc. Intergral post package repair
KR102479212B1 (ko) * 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
KR20180061870A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 메모리 모듈, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US9984740B1 (en) 2017-03-21 2018-05-29 Micron Technology, Inc. Timing control for input receiver
KR102358321B1 (ko) * 2017-04-10 2022-02-08 에스케이하이닉스 주식회사 메모리 시스템, 메모리 장치 및 그의 동작 방법
US10546628B2 (en) * 2018-01-03 2020-01-28 International Business Machines Corporation Using dual channel memory as single channel memory with spares

Also Published As

Publication number Publication date
CN111090538A (zh) 2020-05-01
US10867690B2 (en) 2020-12-15
US20200135292A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
US11216339B2 (en) Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices
US11385960B2 (en) Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices
KR102258140B1 (ko) 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
KR20200046245A (ko) 메모리 모듈 및 메모리 시스템의 동작 방법
CN109785894B (zh) 半导体存储器装置、存储器系统和操作方法
US11681579B2 (en) Semiconductor memory devices and memory systems including the same
US10922171B2 (en) Error correction code circuits, semiconductor memory devices and memory systems
US10846171B2 (en) Error correction code decoders, semiconductor memory devices and memory systems
KR20180061870A (ko) 메모리 모듈, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190052754A (ko) 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US11436079B2 (en) Semiconductor memory devices having enhanced error correction circuits therein
US20230142474A1 (en) Memory device and memory system including the same
US20240201868A1 (en) Semiconductor memory device and memory system including the same
US11860734B2 (en) Semiconductor memory devices and memory systems
US11921579B2 (en) Method of operating memory device, method of operating memory controller and memory system
KR20220050315A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20210147131A (ko) 반도체 메모리 모듈을 액세스하는 방법
US20240029808A1 (en) Semiconductor memory devices and memory systems including the same
US11803501B2 (en) Routing assignments based on error correction capabilities
KR20240096194A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR20240007996A (ko) 반도체 메모리 장치 및 메모리 모듈

Legal Events

Date Code Title Description
A201 Request for examination