KR20230080769A - 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법 - Google Patents

반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법 Download PDF

Info

Publication number
KR20230080769A
KR20230080769A KR1020210168234A KR20210168234A KR20230080769A KR 20230080769 A KR20230080769 A KR 20230080769A KR 1020210168234 A KR1020210168234 A KR 1020210168234A KR 20210168234 A KR20210168234 A KR 20210168234A KR 20230080769 A KR20230080769 A KR 20230080769A
Authority
KR
South Korea
Prior art keywords
matrix
syndrome
data
parity
error
Prior art date
Application number
KR1020210168234A
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 KR1020210168234A priority Critical patent/KR20230080769A/ko
Priority to US17/842,981 priority patent/US11829614B2/en
Priority to TW111124017A priority patent/TW202333165A/zh
Priority to CN202211076157.3A priority patent/CN116206666A/zh
Publication of KR20230080769A publication Critical patent/KR20230080769A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Algebra (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명의 실시예들에 따른 반도체 메모리 장치는 외부 장치와 통신 하는 버퍼 다이 및 복수의 메모리 다이들을 포함한다. 상기 복수의 메모리 다이들은 상기 버퍼 다이 상에 적층되며 복수의 관통 실리콘 비아(through silicon via)들을 통하여 상기 버퍼 다이에 연결된다. 상기 복수의 메모리 다이들 각각은 메모리 셀 어레이 및 에러 정정 코드(error correction code; 이하 'ECC') 엔진을 포함한다. 상기 메모리 셀 어레이는 복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 휘발성 메모리 셀들을 구비한다. 상기 ECC 엔진은 패리티 생성 행렬을 이용하여 상기 메모리 셀 어레이의 타겟 페이지에 저장되는 메인 데이터에 대하여 리드-솔로몬(RS) 인코딩을 수행하여 패리티 데이터를 생성하고, 패리티 체크 행렬을 이용하여 상기 타겟 페이지로부터 독출된 상기 메인 데이터와 상기 패리티 데이터에 대하여 RS 디코딩을 수행하여 상기 독출된 메인 데이터의 에러를 심볼 단위로 정정한다.
상기 패리티 체크 행렬은 상기 메인 데이터에 포함되는 복수의 심볼들 중 서로 다른 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 구비하고, 상기 단위 서브 행렬 및 알파 행렬은 각각 pㅧp(p는 2 이상의 자연수) 행렬 원소들을 포함하고, p는 복수의 심볼들 각각에 포함되는 데이터 비트들의 수를 나타내는 2 이상의 자연수이고, 상기 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하다.

Description

반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법{Semiconductor memory devices and methods of operating the same}
본 발명은 메모리 분야에 관한 것으로, 보다 상세하게는 성능을 향상시킬 수 있는 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법에 관한 것이다.
최근 대부분의 전자 시스템에서 기억 장치로서 사용되고 있는 반도체 메모리는 그 용량 및 속도가 모두 증가하고 있는 추세이다. 그리고 더 좁은 면적 안에 더 많은 용량의 메모리를 실장하고, 상기 메모리를 효율적으로 구동하기 위한 다양한 시도가 이루어지고 있다.
근래들어 반도체 메모리의 집적도 향상을 위하여, 기존의 평면 배치(2D) 방식에서 복수의 메모리 칩을 적층한 입체 구조(3D) 배치 기술이 응용되기 시작하였다. 고집적 및 고용량의 메모리 요구 추세에 따라, 상기 메모리칩의 3D 배치 구조를 이용하여 용량을 증가시키고, 반도체 칩 사이즈를 감소시켜 집적도를 향상시키며 동시에 생산 비용을 절감하기 위한 구조가 연구되고 있다.
본 발명의 일 목적은 에러 정정 코드(error correction code. 이하 'ECC') 엔진의 신드롬 및 패리티 연산의 지연을 감소시킬 수 있는 반도체 메모리 장치를 제공하는 것이다.
본 발명의 일 목적은 ECC 엔진의 신드롬 및 패리티 연산의 지연을 감소시킬 수 있는 반도체 메모리 장치의 동작 방법을 제공하는 것이다.
본 발명의 실시예들에 따른 반도체 메모리 장치는 외부 장치와 통신 하는 버퍼 다이 및 복수의 메모리 다이들을 포함한다. 상기 복수의 메모리 다이들은 상기 버퍼 다이 상에 적층되며 복수의 관통 실리콘 비아(through silicon via)들을 통하여 상기 버퍼 다이에 연결된다. 상기 복수의 메모리 다이들 각각은 메모리 셀 어레이 및 에러 정정 코드(error correction code; 이하 'ECC') 엔진을 포함한다. 상기 메모리 셀 어레이는 복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 휘발성 메모리 셀들을 구비한다. 상기 ECC 엔진은 패리티 생성 행렬을 이용하여 상기 메모리 셀 어레이의 타겟 페이지에 저장되는 메인 데이터에 대하여 리드-솔로몬(RS) 인코딩을 수행하여 패리티 데이터를 생성하고, 패리티 체크 행렬을 이용하여 상기 타겟 페이지로부터 독출된 상기 메인 데이터와 상기 패리티 데이터에 대하여 RS 디코딩을 수행하여 상기 독출된 메인 데이터의 에러를 심볼 단위로 정정한다.
상기 패리티 체크 행렬은 상기 메인 데이터에 포함되는 복수의 심볼들 중 서로 다른 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 구비하는 제1 부분과 상기 패리티 데이터에 관련되는 제2 부분을 포함한다.
상기 복수의 서브 행렬들 각각은 제1 대각선 방향으로 배치되는 두 개의 단위 서브 행렬 및 상기 제1 대각선 방향과 교차하는 제2 대각선 방향으로 배치되는 두 개의 동일한 알파 행렬들을 포함한다.
상기 단위 서브 행렬 및 알파 행렬은 각각 pㅧp(p는 2 이상의 자연수) 행렬 원소들을 포함하고, p는 복수의 심볼들 각각에 포함되는 데이터 비트들의 수를 나타내는 2 이상의 자연수이고, 상기 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하다.
본 발명의 실시예들에 따른 반도체 메모리 장치는 메모리 셀 어레이, 에러 정정 코드(error correction code; 이하 'ECC') 엔진 및 제어 로직 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 휘발성 메모리 셀들을 구비한다. 상기 ECC 엔진은 패리티 생성 행렬을 이용하여 상기 메모리 셀 어레이의 타겟 페이지에 저장되며 복수의 심볼들을 구비하는 메인 데이터에 대하여 리드-솔로몬(RS) 인코딩을 수행하여 패리티 데이터를 생성하고, 패리티 체크 행렬을 이용하여 상기 타겟 페이지로부터 독출된 메인 데이터와 상기 패리티 데이터에 대하여 RS 디코딩을 수행하여 상기 독출된 메인 데이터의 에러를 심볼 단위로 정정한다. 상기 제어 로직 회로는 외부 장치로부터의 커맨드 및 어드레스에 응답하여 상기 ECC 엔진을 제어한다.
상기 패리티 체크 행렬은 상기 메인 데이터에 포함되는 복수의 심볼들 중 서로 다른 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 구비하는 제1 부분과 상기 패리티 데이터에 관련되는 제2 부분을 포함한다.
상기 복수의 서브 행렬들 각각은 제1 대각선 방향으로 배치되는 두 개의 단위 서브 행렬 및 상기 제1 대각선 방향과 교차하는 제2 대각선 방향으로 배치되는 두 개의 동일한 알파 행렬들을 포함한다.
상기 단위 서브 행렬 및 알파 행렬은 각각 pㅧp(p는 2 이상의 자연수) 행렬 원소들을 포함하고, p는 복수의 심볼들 각각에 포함되는 데이터 비트들의 수를 나타내는 2 이상의 자연수이고, 상기 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하다.
본 발명의 실시예들에 따른 외부 장치와 통신하는 버퍼 다이 및 상기 버퍼 다이 상에 적층되며 복수의 관통 실리콘 비아(through silicon via)들을 통하여 상기 버퍼 다이에 연결되는 복수의 메모리 다이들을 포함하는 반도체 메모리 장치의 동작 방법이 제공된다. 상기 방법에 의하면, 상기 복수의 메모리 다이들 중 제1 메모리 다이의 에러 정정 코드(error correction code; 이하 'ECC') 엔진에서 패리티 생성 행렬을 이용하여 메인 데이터에 대하여 리드-솔로몬(RS) 인코딩을 인코딩을 수행하여 패리티 데이터를 생성하고, 상기 메인 데이터와 상기 패리티 데이터를 상기 제1 메모리 다이의 메모리 셀 어레이의 타겟 페이지에 저장하고, 패리티 체크 행렬을 이용하여 상기 타겟 페이지로부터 독출된 독출된 상기 메인 데이터와 상기 패리티 데이터에 대하여 RS 디코딩을 수행하여 상기 독출된 메인 데이터의 에러를 심볼 단위로 정정한다.
상기 패리티 체크 행렬은 상기 메인 데이터에 포함되는 복수의 심볼들 중 서로 다른 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 구비하는 제1 부분과 상기 패리티 데이터에 관련되는 제2 부분을 포함한다.
상기 복수의 서브 행렬들 각각은 제1 대각선 방향으로 배치되는 두 개의 단위 서브 행렬 및 상기 제1 대각선 방향과 교차하는 제2 대각선 방향으로 배치되는 두 개의 동일한 알파 행렬들을 포함한다.
상기 단위 서브 행렬 및 알파 행렬은 각각 pㅧp(p는 2 이상의 자연수) 행렬 원소들을 포함하고, p는 복수의 심볼들 각각에 포함되는 데이터 비트들의 수를 나타내는 2 이상의 자연수이고, 상기 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하다.
본 발명에 실시예들에 따르면 메모리 다이들 각각이 ECC 엔진을 포함하고, 상기 ECC 엔진은 패리티 체크 행렬을 이용하여 RS 디코딩을 수행하고, 상기 패리티 체크 행렬에 포함되며 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 단위 서브 행렬과 알파 행렬이 대각선 방향으로 대칭되도록 구성하여 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하도록 할 수 있다. 따라서 신드롬 및 패리티의 연산에 사용되는 패리티 체크 행렬이 단순화될 수 있으므로 신드롬 및 패리티의 연산에서 발생되는 지연을 감소시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 도 2의 메모리 시스템에서 메모리 컨트롤러를 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 데이터 처리 시스템을 나타낸다.
도 5는 본 발명의 실시예들에 따른 도 2의 적층형 메모리 장치를 나타내는 블록도이다.
도 6은 도 5의 적층형 메모리 장치에서 인터페이스 회로의 동작을 나타낸다.
도 7은 도 6에서 메모리 다이들 중 하나의 하나의 구성을 나타내는 블록도이다.
도 8은 본 발명의 실시예들에 따른 도 7의 메모리 다이에서 제1 뱅크 어레이를 나타낸다.
도 9a는 본 발명의 실시예들에 따른 도 7의 메모리 다이에서 ECC 엔진의 구성을 나타내는 블록도이다.
도 9b는 본 발명의 실시예들에 따른 도 9a의 ECC 엔진에서 에러 위치 신드롬 생성기의 구성을 나타낸다.
도 10은 도 9의 ECC 엔진에서 메모리에 저장되는 패리티 체크 행렬을 나타낸다.
도 11은 도 9의 ECC 엔진에서 메모리에 저장되는 패리티 체크 행렬의 다른 예를 나타낸다.
도 12는 도 10에서 단위 서브 행렬과 제로 서브 행렬을 나타낸다.
도 13은 도 10에서 알파 행렬들 중 하나를 나타낸다.
도 14는 도 10의 서브 행렬들 중 하나를 나타낸다.
도 15는 도 10에서 단위 서브 행렬과 제로 서브 행렬을 나타낸다.
도 16은 도 10에서 알파 행렬들 중 하나를 나타낸다.
도 17의 도 10에서 제로 서브 행렬을 나타낸다.
도 18은 도 9의 ECC 엔진에서 신드롬 생성기가 신드롬을 산출하는 것을 나타낸다.
도 19는 도 10의 서브 행렬들 중 하나를 나타낸다.
도 20은 본 발명의 실시예들에 따른 패리티 체크 행렬을 이용하여 에러 크기 신드롬과 에러 위치 신드롬을 생성하는 것을 나타낸다.
도 21은 본 발명의 실시예들에 따른 신드롬의 일 예를 나타낸다.
도 22는 본 발명의 실시예들에 따라 에러 크기 신드롬과 에러를 포함하는 심볼에 해당하는 알파 행렬에 기초한 곱셈의 결과를 나타낸다.
도 23은 본 발명의 실시예들에 따른 도 9의 ECC 엔진에서 RS 디코딩을 수행하는 것을 나타낸다.
도 24는 본 발명의 실시예들에 따른 반도체 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 25는 본 발명의 실시예들에 따른 반도체 메모리 장치를 보여주는 예시적인 블록도이다.
도 26은 본 발명의 실시예들에 따른 적층형 메모리 장치를 포함하는 반도체 패키지의 예를 나타내는 구조도이다.
도 27은 본 발명의 실시예들에 따른 반도체 메모리 장치를 구비하는 모바일 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(20) 및 반도체 메모리 장치(60)를 포함할 수 있다.
메모리 컨트롤러(20)는 중앙 처리 장치(CPU, 21)를 포함하고, 반도체 메모리 장치(60)로 커맨드(CMD), 어드레스(ADDR)를 제공하고, 메인 데이터(MD)를 반도체 메모리 장치(60)와 교환할 수 있다.
메모리 컨트롤러(20)는 외부의 호스트로부터의 요청에 따라 반도체 메모리 장치(60)를 액세스할 수 있다. CPU(21)는 메모리 컨트롤러(20)의 전반적 동작을 제어할 수 있다.
반도체 메모리 장치(60)는 메모리 셀 어레이(65), 제어 로직 회로(67) 및 ECC 엔진(400)을 포함할 수 있다.
메모리 셀 어레이(65)는 각각이 복수의 휘발성 메모리 셀들을 포함하는 복수의 메모리 셀 로우들을 포함할 수 있고, 하나의 메모리 셀 로우에 포함되는 휘발성 메모리 셀들은 대응하는 워드라인 및 복수의 비트라인들에 연결될 수 있다.
ECC 엔진(400)은 기입 동작에서 메인 데이터(MD)에 리드-솔로몬(이하 'RS') 인코딩을 수행하여 패리티 데이터를 생성하고 메인 데이터(MD)와 패리티 데이터를 메모리 셀 어레이(65)의 타겟 페이지에 저장할 수 있다.
ECC 엔진(400)은 독출 동작에서 메모리 셀 어레이(MCA)의 타겟 페이지에서 독출된 메인 데이터(MD)와 패리티 데이터에 대하여 RS 디코딩을 수행하여 메인 데이터(MD)의 에러들을 심볼 단위로 정정할 수 있다.
본 명세서에서 심볼은 RS 인코딩 및 RS 디코딩의 기본 단위로서 일정한 수의 비트들을 포함하는 데이터를 나타낸다. 예를 들어, 하나의 심볼은 8 비트 또는 16 비트의 데이터 비트들을 포함할 수 있다.
제어 로직 회로(67)는 메모리 컨트롤러(20)로부터의 커맨드(CMD) 및 어드레스(ADDR)에 기초하여 ECC 엔진(400)을 제어할 수 있다. 제어 로직 회로(67)는 커맨드(CMD) 및 어드레스(ADDR)에 기초하여 ECC 엔진(400)의 RS 인코딩 동작과 RS 디코딩 동작을 포함할 수 있다.
ECC 엔진(400)은 후술하는 바와 같이, 패리티 체크 행렬을 이용하여 상기 RS 인코딩 및 RS 디코딩을 수행할 수 있다. 상기 패리티 체크 행렬에 포함되며 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 단위 서브 행렬과 알파 행렬이 대각선 방향으로 대칭되도록 구성하여 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하도록 할 수 있다. 따라서 신드롬 및 패리티의 연산에 사용되는 패리티 체크 행렬이 단순화될 수 있으므로 신드롬 및 패리티의 연산에서 발생되는 지연을 감소시킬 수 있다.
도 2는 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 2를 참조하면, 메모리 시스템(10a)은 메모리 컨트롤러(20) 및 적층형 메모리 장치(70)를 포함할 수 있다. 적층형 메모리 장치(70)는 반도체 메모리 장치라 호칭될 수 있다. 메모리 컨트롤러(20)에 대한 설명은 도 1에서와 동일하므로 생략한다.
적층형 메모리 장치(70)는 버퍼 다이(100) 및 버퍼 다이 상에 적층되며 데이터를 저장하는 복수의 메모리 다이들(200)을 포함할 수 있다. 메모리 다이들(200)은 관통 실리콘 비아(120)를 통하여 버퍼 다이(100)에 연결될 수 있다. 본 명세서에서 메모리 다이들(200)은 코어 다이들로 호칭될 수도 있다.
버퍼 다이(100)는 메모리 컨트롤러(20)와 통신할 수 있고, 메모리 다이들(200) 각각은 복수의 휘발성 메모리 셀들을 구비하는 DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory) 등과 같은 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)일 수 있다. 메모리 다이들(200) 각각은 메모리 셀 어레이, ECC 엔진 및 제어 로직 회로를 포함할 수 있다.
따라서 ECC 엔진은 패리티 체크 행렬을 이용하여 상기 RS 인코딩 및 RS 디코딩을 수행할 수 있다. 상기 패리티 체크 행렬에 포함되며 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 단위 서브 행렬과 알파 행렬이 대각선 방향으로 대칭되도록 구성하여 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하도록 할 수 있다. 따라서 신드롬 및 패리티의 연산에 사용되는 패리티 체크 행렬이 단순화될 수 있으므로 신드롬 및 패리티의 연산에서 발생되는 지연을 감소시킬 수 있다.
버퍼 다이(100)는 인터페이스 회로(IFC, 130)를 포함할 수 있다. 인터페이스 회로(130)는 관통 실리콘 비아(120)에 연결되고, 관통 실리콘 비아들 통하여 메모리 다이들(200) 중 적어도 하나로부터 제공되는 메인 데이터(MD) 또는 정정된 메인 데이터를 메모리 컨트롤러(20)에 제공할 수 있다.
도 3은 본 발명의 실시예들에 따른 도 2의 메모리 시스템에서 메모리 컨트롤러를 나타내는 블록도이다.
도 3을 참조하면, 메모리 컨트롤러(20)는 중앙 처리 장치(21), 데이터 버퍼(23), ECC 디코더(30), 커맨드 버퍼(25) 및 어드레스 버퍼(27)를 포함할 수 있다. ECC 디코더(30)는 메모리 컨트롤러(20)에 포함되지 않을 수 있다.
중앙 처리 장치(21)는 호스트로부터 리퀘스트(REQ) 및 데이터(DTA)를 수신하고, 데이터(DTA)를 데이터 버퍼(23)에 제공한다.
데이터 버퍼(23)는 데이터(DTA)를 버퍼링하여 메인 데이터(MD)를 반도체 메모리 장치(70)에 제공한다.
ECC 디코더(30)는 독출 동작에서 반도체 메모리 장치(70)로부터 메인 데이터(MD)를 수신하고, 메인 데이터(MD) 대하여 ECC 디코딩을 수행하여 메인 데이터(MD)의 적어도 하나의 에러를 정정하여 정정된 데이터(C_MD)를 중앙 처리 장치(21)에 제공할 수 있다.
커맨드 버퍼(25)는 리퀘스트(REQ)에 상응하는 커맨드(CMD)를 저장하고, 중앙 처리 장치(21)의 제어에 따라 반도체 메모리 장치(70)에 커맨드(CMD)를 전송할 수 있다.
어드레스 버퍼(27)는 어드레스(ADDR)를 저장하고 중앙 처리 장치(21)의 제어에 따라 반도체 메모리 장치(70)에 어드레스(ADDR)를 전송할 수 있다.
도 4는 본 발명의 실시예들에 따른 데이터 처리 시스템을 나타낸다.
도 4를 참조하면, 데이터 처리 시스템(10b)는 어플리케이션 프로세서(20b) 및 적층형 메모리 장치(70)를 포함할 수 있다.
어플리케이션 프로세서(20b)는 메모리 컨트롤 모듈(40)을 포함할 수 있고, 메모리 컨트롤 모듈(40)과 적층형 메모리 장치(70)가 메모리 시스템을 구성할 수 있다. 적층형 메모리 장치(70)는 버퍼 다이(100) 및 메모리 다이들(200)을 포함할 수 있고, 메모리 다이들(200)은 순차적으로 적층된 메모리 다이들(200a~200r, r은 4 이상의 자연수)을 포함할 수 있다.
어플리케이션 프로세서(20b)는 호스트의 기능을 수행할 수 있다. 또한 어플리케이션 프로세서(20b)는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 시스템 온 칩은 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스(미도시)를 포함할 수 있으며, 상기 시스템 버스에 연결되는 각종 IP(Intellectual Property)들을 포함할 수 있다.
메모리 컨트롤 모듈(40)은 도 2의 메모리 컨트롤러(20)의 기능을 수행할 수 있다.
실시예에 있어서, 어플리케이션 프로세서(20b)는 메모리 컨트롤 모듈(40) 대신에 그래픽 프로세서(graphic processing unit 'GPU')를 포함할 수 있다. GPU는 도 2의 메모리 컨트롤러(20)의 기능을 수행할 수 있다. GPU는 그래픽 처리 과정에서 생성된 데이터를 적층형 메모리 장치(70)에 저장할 수 있다.
도 5는 본 발명의 실시예들에 따른 도 2의 적층형 메모리 장치를 나타내는 블록도이다.
도 5에서는 서로 독립된 인터페이스를 가지는 복수의 채널들을 포함함으로써 증가된 대역폭(Bandwidth)을 갖는 HBM(high bandwidth memory) 형태의 메모리 장치가 예시된다.
도 5를 참조하면, 적층형 메모리 장치(70a)는 다수 개의 레이어들을 포함할 수 있다. 일 예로서, 적층형 메모리 장치(70a)는 버퍼 다이(100)와 버퍼 다이(100) 상에 적층된 하나 이상의 메모리 다이들(200)을 포함할 수 있다. 도 5의 예에서는, 제1 내지 제 4 메모리 다이들(200a~200d)이 구비되는 예가 도시되었으나, 상기 메모리 다이들의 개수는 다양하게 변경될 수 있다.
또한, 메모리 다이들(200) 각각은 하나 이상의 채널을 포함할 수 있으며, 도 5의 예에서는 메모리 다이들(200) 각각이 두 개의 채널을 포함함에 따라 적층형 메모리 장치(70a)가 8 개의 채널들(CH1~CH8)을 갖는 예가 도시되어 있으나, 메모리 다이들(200) 각각은 4 개의 채널들을 포함할 수 있다.
예를 들어, 제1 메모리 다이(200a)가 제1 채널 및 제3 채널(CH1, CH3)을 포함하고, 제2 메모리 다이(200b)가 제2 채널 및 제4 채널(CH2, CH4)을 포함하며, 제3 메모리 다이(200c)가 제5 채널 및 제7 채널(CH5, CH7)을 포함하며, 제4 메모리 다이(200d)가 제6 채널 및 제8 채널(CH6, CH8)을 포함할 수 있다.
버퍼 다이(100)는 메모리 컨트롤러(외부 장치)와 통신하고, 메모리 컨트롤러로부터 커맨드, 어드레스 및 데이터를 수신할 수 있으며, 수신된 커맨드, 어드레스 및 데이터를 메모리 다이들(200)로 제공할 수 있다. 버퍼 다이(100)는 그 외면에 형성된 범프 등의 도전 수단(미도시)을 통해 메모리 컨트롤러와 통신할 수 있다. 버퍼 다이(100)는 커맨드, 어드레스 및 데이터를 버퍼링하며, 이에 따라 메모리 컨트롤러는 버퍼 다이(100)의 로드(load)만을 구동함으로써 메모리 다이들(200)과 인터페이스할 수 있다.
또한, 적층형 메모리 장치(70a)는 레이어들을 관통하는 복수의 관통 실리콘 비아(TSV, 120)들을 포함할 수 있다.
TSV(120)들은 복수의 채널들(CH1~CH8)에 대응하여 배치될 수 있다. TSV(120)들은 제1 내지 제4 메모리 다이들(200a~200d)을 관통하도록 배치되고, 제1 내지 제4 메모리 다이들(200a~200d) 각각은 TSV(120)에 연결된 송신부/수신부를 포함할 수 있다. 각 채널 별로 데이터 입출력이 독립하게 수행되는 노멀 동작시에는, 각각의 TSV(120)에 대해 어느 하나의 메모리 다이의 송신부/수신부만이 인에이블됨으로써, 각각의 TSV(120)는 어느 하나의 메모리 다이(또는, 어느 하나의 채널)의 데이터만을 독립하게 전달할 수 있다.
버퍼 다이(100)는 내부 커맨드 생성기(110), 인터페이스 회로(130), TSV 영역(112), 물리 영역(PHY, 113) 및 직접 액세스 영역(DA, 114)을 포함할 수 있다. 내부 커맨드 생성기(110)는 커맨드(CMD)에 기초하여 내부 커맨드를 생성한다.
TSV 영역(112)은 메모리 다이들(200)과의 통신을 위한 TSV(120)가 형성되는 영역이다.
또한, 물리(PHY) 영역(113)은 외부의 메모리 컨트롤러와의 통신을 위해 다수의 입출력 회로를 포함하는 영역으로서, 메모리 컨트롤러로부터의 각종 신호들은 물리 영역(113)을 통해 TSV 영역(112)으로 제공되고, 상기 각종 신호들은 또한 TSV(120)들을 통해 메모리 다이들(200)로 제공될 수 있다.
한편, 직접 액세스 영역(114)은 적층형 메모리 장치(70a)에 대한 테스트 모드에서 적층형 메모리 장치(70a)의 외면에 배치되는 도전 수단을 통해 외부의 테스트 장치와 직접 통신할 수 있다. 테스트 장치로부터 제공되는 각종 신호들은 직접 액세스 영역(114) 및 TSV 영역(112)을 통해 메모리 다이들(200)로 제공될 수 있다.
인터페이스 회로(130)는 외부 장치로부터 제공되는 어드레스 및 메인 데이터를 제1 내지 제4 메모리 다이들(200a~200d) 중 하나인 타겟 메모리 다이로 제공하고, 타겟 메모리 다이로부터 제공되는 메인 데이터를 외부 장치에 제공할 수 있다.
또한, 인터페이스 회로(130)는 타겟 메모리 다이로부터 제공되는 메인 데이터의 에러 상태를 나타내는 디코딩 상태 플래그를 외부 장치로 제공할 수 있다.
도 6은 도 5의 적층형 메모리 장치에서 인터페이스 회로의 동작을 나타낸다.
도 5 및 도 6을 참조하면, 버퍼 다이(100)는 내부 커맨드 생성기(110) 및 인터페이스 회로(130)를 포함하고, 내부 커맨드 생성기(110)에서 생성하는 내부 커맨드들(ICMD)은 채널 별로 서로 독립하게 형성되는 커맨드 TSV(TSV_C)를 통하여 메모리 다이들(200)로 제공될 수 있다. 내부 커맨드 생성기(110)는 커맨드(CMD)에 기초하여 복수의 동작 모드들 중 하나를 지정하는 모드 신호(MS)를 인터페이스 회로(130)에 제공할 수 있다.
인터페이스 회로(130)는 모드 신호(MS)에 응답하여 기입 동작에서는 메인 데이터(MD)를 메모리 다이들(200)에 공통으로 형성되는 데이터 TSV(TSV_D)를 통하여 해당 메모리 다이에 제공할 수 있다.
인터페이스 회로(130)는 모드 신호(MS)에 응답하여 독출 동작에서는 데이터 TSV(TSV_D)를 통하여 타겟 메모리 다이로부터 제공되는 메인 데이터(MD) 또는 정정된 메인 데이터(C_MD)와 디코딩 상태 플래그(DSF)를 외부 장치에 제공할 수 있다.
메모리 다이들(200a~200d) 각각은 내부 커맨드(ICMD)를 디코딩하여 내부 제어신호를 출력하는 커맨드 디코더들(CMDC, 211a~211d)과 독출된 데이터 및/또는 기입될 데이터를 데이터 TSV(TSV_D)에/로부터 제공/수신하는 데이터 입출력 버퍼(DAIA IOB, 295a~295d)를 포함할 수 있다.
어느 하나의 메모리 다이(예컨대, 제1 메모리 다이(200a))를 참조하면, 제1 메모리 다이(200a)는 커맨드 디코더(211a)의 디코딩 결과에 따라 메모리 동작을 수행하고, 일 예로서 제1 메모리 다이(200a) 내부의 셀 영역에 저장된 다수 비트들의 데이터가 독출되어 데이터 입출력 버퍼(295a)로 제공될 수 있다. 데이터 입출력 버퍼(295a)는 다수 비트들의 데이터를 병렬하게 처리할 수 있으며, 병렬하게 처리된 데이터를 다수의 데이터 TSV들(TSV_D)로 병렬하게 출력할 수 있다.
도 7은 도 6에서 메모리 다이들 중 하나의 하나의 구성을 나타내는 블록도이다.
도 7에서는 제1 메모리 다이(200a)의 구성을 도시하나, 제2 내지 제4 메모리 다이들(200b~200d) 각각의 구성은 제1 메모리 다이(200a)의 구성과 동일할 수 있다.
도 7을 참조하면, 메모리 다이(200a)는 제어 로직 회로(210), 어드레스 레지스터(220), 클럭 버퍼(225), 뱅크 제어 로직(230), 로우 어드레스 멀티플렉서(240), 컬럼 어드레스 래치(250), 로우 디코더(260), 컬럼 디코더(270), 메모리 셀 어레이(300), 센스 앰프부(285), 입출력 게이팅 회로(290), ECC 엔진(400a), 데이터 입출력 버퍼(295a) 및 리프레쉬 카운터(245)를 포함할 수 있다.
상기 메모리 셀 어레이(300)는 제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), 제1 내지 제8 센스 앰프들(285a~285h), 제1 내지 제8 컬럼 디코더들(270a~270h) 및 제1 내지 제8 로우 디코더들(260a~260h)은 제1 내지 제8 뱅크들을 각각 구성할 수 있다. 제1 내지 제8 뱅크 어레이들(310a~310h) 각각은 복수의 워드라인들(WL)과 복수의 비트라인들(BTL) 및 복수의 워드라인들(WL)과 복수의 비트라인들(BTL)이 교차하는 지점에 형성되는 복수의 메모리 셀들(MC)을 포함할 수 있다.
도 7에는 8개의 뱅크들을 포함하는 메모리 다이(200a)의 예가 도시되어 있으나, 실시예에 따라, 메모리 다이(200a)는 임의의 수의 뱅크들을 포함할 수 있다.
어드레스 레지스터(220)는 메모리 컨트롤러(20)로부터 뱅크 어드레스(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 뱅크 어레이들(310a~310h)로부터 출력된 데이터를 저장하기 위한 독출 데이터 래치들, 및 제1 내지 제8 뱅크 어레이들(310a~310h)에 데이터를 기입하기 위한 기입 드라이버들을 포함할 수 있다.
제1 내지 제8 뱅크 어레이들(310a~310h) 중 하나의 뱅크 어레이에서 독출된 코드워드(CW)는 상기 하나의 뱅크 어레이에 상응하는 센스 앰프에 의해 감지되고, 상기 독출 데이터 래치들에 저장될 수 있다.
상기 독출 데이터 래치들에 저장된 코드워드(CW)는 ECC 엔진(400a)에 제공될 수 있다. ECC 엔진(400a)은 코드워드(CW)에 대하여 리드-솔로몬(RS) 디코딩을 수행하여 심볼 단위로 에러를 정정하여 에러가 정정된 메인 데이터(MD)를 데이터 입출력 버퍼(295)를 통하여 메모리 컨트롤러(100)에 제공할 수 있다.
제1 내지 제8 뱅크 어레이들(310a~310h) 중 하나의 뱅크 어레이에 기입될 메인 데이터(MD)는 메모리 컨트롤러(20)로부터 데이터 입출력 버퍼(295a)에 제공될 수 있다. 데이터 입출력 버퍼(295a)에 제공된 메인 데이터(MD)는 ECC 엔진(400a)에 제공된다. ECC 엔진(400a)은 메인 데이터(MD)에 대하여 RS 인코딩을 수행하여 패리티 데이터를 생성하고, 메인 데이터(MD)와 패리티 데이터를 구비하는 코드워드(CW)를 입출력 게이팅 회로(290)에 제공한다.
ECC 엔진(400a)은 또한 코드워드(CW)에 포함되는 에러의 상태를 나타내는 디코딩 상태 플래그(DSF)를 생성하고, 디코딩 상태 플래그(DSF)를 메모리 컨트롤러(20)에 제공할 수 있다.
제어 로직 회로(210)는 메모리 다이(200a)의 동작을 제어할 수 있다. 예를 들어, 제어 로직 회로(210)는 메모리 다이(200a)가 기입 동작 또는 독출 동작을 수행하도록 제어 신호들을 생성할 수 있다.
제어 로직 회로(210)는 메모리 컨트롤러(20)로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(211a) 및 메모리 다이(200a)의 동작 모드를 설정하기 위한 모드 레지스터(212)를 포함할 수 있다.
제어 로직 회로(210)는 입출력 게이팅 회로(290)르 제어하기 위한 제1 제어 신호(CTL1) 및 ECC 엔진(400a)을 제어하기 위한 제2 제어 신호(CTL2)를 생성하고, 제1 제어 신호(CTL1)를 입출력 게이팅 회로(290)에 제공하고, 제2 제어 신호(CTL2)를 ECC 엔진(400a)에 제공할 수 있다.
도 8은 본 발명의 실시예들에 따른 도 7의 메모리 다이에서 제1 뱅크 어레이를 나타낸다.
도 8을 참조하면, 제1 뱅크 어레이(310a)는 복수의 워드라인들(WL1~WL2m, m은 2이상의 정수), 복수의 비트라인들(BTL1~BTL2n, n은 2이상의 정수), 그리고 복수의 워드라인들(WL1~WL2m)과 복수의 비트라인들(BTL1~BTL2n) 사이의 교차점에 배치되는 복수개의 메모리 셀들(MCs)을 포함한다.
메모리 셀(MC)은 DRAM 셀 구조를 갖는다. 메모리 셀들(MCs)이 연결되는 복수의 워드라인들(WL1~WL2m)을 제1 뱅크 어레이(310a)의 로우들(rows)이라고 정의하고, 메모리 셀들(MCs)이 연결되는 복수의 비트라인들(BTL1~BTL2n)을 제1 뱅크 어레이(310a)의 컬럼들(columns)이라고 정할 수 있다.
도 9a는 본 발명의 실시예들에 따른 도 7의 메모리 다이에서 ECC 엔진의 구성을 나타내는 블록도이다.
도 9a를 참조하면, ECC 엔진(400a)은 메모리(410), 멀티플렉서(411), 신드롬 생성기(420), 디멀티플렉서(415) 및 RS 디코더(425)를 포함할 수 있고,
멀티플렉서(411)는 인코딩 모드와 디코딩 모드를 지시하는 코딩 모드 신호(CM)에 응답하여 기입 동작의 인코딩 모드에서는 메인 데이터(MD)를 선택하고, 메인 데이터(MD)를 신드롬 생성기(420)에 제공하고, 독출 동작의 디코딩 모드에서는 독출 코드워드(RCW)를 선택하고, 독출 코드워드(RCW)를 신드롬 생성기(420)에 제공할 수 있다.
메모리(410)는 패리티 생성 행렬(PGM)과 패리티 체크 행렬(PCM)을 저장할 수 있다.
신드롬 생성기(420)는 인코딩 모드에서는 패리티 생성 행렬(PGM) 및 메인 데이터(MD)에 기초하여 패리티 데이터를 생성하고, 디코딩 모드에서는 패리티 체크 행렬(PCM) 및 독출 코드워드(RCW)에 기초하여 신드롬을 생성할 수 있다.
디멀티플렉서(415)는 코딩 모드 신호(CM)에 응답하여 인코딩 모드에서는 신드롬 생성기(420)의 출력을 패리티 데이터(PRT)로서 타겟 페이지에 제공하고, 디코딩 모드에서는 신드롬 생성기(420)의 출력을 신드롬(SDR)로서 RS 디코더(420)에 제공할 수 있다.
RS 디코더(420)는 에러 위치 신드롬 생성기(430), 비교기(450), 에러 위치 신호 생성기(470), 디코딩 상태 플래그 생성기(460), 버퍼(480) 및 데이터 정정기(490)를 포함할 수 있다.
RS 디코더(425)는 신드롬(SDR)에 기초하여 독출 코드워드(RCW)의 에러를 심볼 단위로 정정하여 정정된 코드워드(C_CW)를 출력할 수 있다.
신드롬(SDR)은 독출 코드워드(RCW)에 포함되는 에러의 개수를 나타내는 에러 크기 신드롬(SDR_M) 및 에러를 포함하는 심볼의 위치를 나타내는 에러 위치 신드롬(SDR_L)을 포함할 수 있다.
에러 위치 신드롬 생성기(430)는 디코딩 모드에서 디멀티플렉서(415)로부터 제공되는 신드롬(SDR)에 포함되는 에러 크기 신드롬(SDR_M)에 상응하는 알파 행렬을 곱하여 비교 에러 위치 신드롬(C_SDR_L)을 출력할 수 있다.
비교기(450)는 신드롬(SDR)에 포함되는 에러 위치 신드롬(SDR_L)과 에러 위치 신드롬 생성기(430)에서 제공되는 비교 에러 위치 신드롬(C_SDR_L)을 비교하고, 에러 위치 신드롬(SDR_L)과 비교 에러 위치 신드롬(C_SDR_L)의 동일성 여부를 나타내는 비교 신호(CS)를 출력할 수 있다.
에러가 발생한 심볼에 정정가능한 에러가 포함되는 경우에는 에러 위치 신드롬(SDR_L)과 비교 에러 위치 신드롬(C_SDR_L)이 동일하고, 에러가 발생하지 않은 심볼의 에러 위치 신드롬(SDR_L)과 비교 에러 위치 신드롬(C_SDR_L)이 동일하지 않을 수 있다.
또한 ECC 엔진(400a)의 에러 정정 능력을 초과하는 정정불가능 에러들이 포함되는 경우에는 모든 심볼의 에러 위치 신드롬(SDR_L)과 비교 에러 위치 신드롬(C_SDR_L)이 동일하지 않을 수 있다.
디코딩 상태 플래그 생성기(460)는 신드롬(SDR) 및 상기 비교 신호(CS)에 기초하여 독출 코드워드(RCW)의 에러 상태를 나타내는 디코딩 상태 플래그(DSF2)를 생성하고, 디코딩 상태 플래그(DSF2)를 제어 로직 회로(210)나 외부 장치에 제공할 수 있다.
에러 위치 신호 생성기(470)는 비교 신호(CS)에 기초하여 독출 코드워드(RCW)에서의 에러의 위치를 나타내는 에러 위치 신호(EPS)를 출력할 수 있다.
버퍼(480)는 독출 코드워드(RCW)를 저장하고, 독출 코드워드(RCW)를 데이터 정정기(490)에 제공한다.
데이터 정정기(490)는 에러 위치 신호(EPS)에 기초하여 독출 코드워드(RCW)의 에러를 정정하여 정정된 코드워드(C_CW)를 출력할 수 있다.
도 9b는 본 발명의 실시예들에 따른 도 9a의 ECC 엔진에서 에러 위치 신드롬 생성기의 구성을 나타낸다.
도 9b를 참조하면, 에러 위치 신드롬 생성기(430)는 복수의 곱셈기들(431, 432, … , 43(u-1), 43u(u는 4 이상의 자연수)) 및 버퍼(440)를 포함할 수 있다.
복수의 곱셈기들(431, 432, … , 43(u-1), 43u) 각각은 에러 크기 신드롬(SDR_M)에 하나의 코드워드에 포함되는 k 개의 심볼들에 해당하는 k/2 개의 알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))과 곱셈을 수행하여 곱셈의 결과들을 버퍼(440)에 제공할 수 있다.
버퍼(440)는 복수의 곱셈기들(431, 432, … , 43(u-1), 43u) 각각의 출력들을 비교 에러 위치 신드롬(C_SDR_L)으로 출력할 수 있다.
알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))에 대하여는 도 10 및 도 13을 참조하여 상세히 설명한다.
도 10은 도 9의 ECC 엔진에서 메모리에 저장되는 패리티 체크 행렬을 나타낸다.
도 10을 참조하면, 패리티 체크 행렬(PGM)은 제1 부분(PT1) 및 제2 부분(PT2)으로 구분될 수 있다.
제1 부분(PT1)은 독출 코드워드(RCW)의 메인 데이터(MD)의 데이터 비트들에 대응될 수 있고, 제2 부분(PT2)은 독출 코드워드(RCW)의 패리티 데이터(PRT)의 패리티 비트들에 대응될 수 있다.
제1 부분(PT1)은 하나의 코드워드에 포함되는 k 개의 심볼 중 두 개의 서로 다른 심볼들에 대응되는 서브 행렬들(SMT0, SMT1, …, SMT(k/2-2), SMT(k/2-1))을 포함할 수 있고, 제2 부분(PT2)은 패리티 데이터(PRT)에 대응되는 단위 서브 행렬(ISM)과 제로 서브 행렬(ZSM)을 포함할 수 있다.
서브 행렬들(SMT0, SMT1, …, SMT(k/2-2), SMT(k/2-1)) 각각은 제1 대각선 방향(DR1)으로 배치되는 두 개의 단위 서브 행렬(ISM)들 및 제1 대각선 방향(DR1)과 교차하는 제2 대각선 방향(DR2)로 배치되는 동일한 알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))을 각각 포함할 수 있다.
여기서 알파 행렬(αi0)는 p차의 원시 다항식(primitive polynomial)을 이용하여 얻을 수 있다. αi1 은 αi0를 거듭제곱하여 얻을 수 있고, 알파 행렬들의 원소들은 RS 코드에 기초하여 생성될 수 있다.
서브 행렬들(SMT0, SMT1, …, SMT(k/2-2), SMT(k/2-1)) 각각은 두 개의 단위 서브 행렬들(ISM) 및 동일한 알파 행렬들이 교차하는 방향으로 반복되는 구조를 가질 수 있다.
알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))은 갈로아 필드(Galois field)의 원소들일 수 있고, k 개의 심볼에 대응되는 k 개의 후보 알파 행렬들 중에서 1의 개수가 최소인 k/2 개의 후보 알파 행렬들을 선택하여 구성될 수 있다.
알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))은 αi로 표현될 수 있고, i는 1이상이고, 2p-1 이하이고, 인덱스(i)는 인덱스들(i0, i1, …, i(k/2)-2), i(k/2)-1) 중의 하나이고, 인덱스들(i0, i1, …, i(k/2)-2), i(k/2)-1) 중에서 선택된 두 개의 인덱스들(ij, il)의 합은 2p-1과 같지 않고, 인덱스들(i0, i1, …, i(k/2)-2), i(k/2)-1) 각각은 '0'이 아니다.
이런 조건이 만족되면, 패리티 체크 행렬(PCM)의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일할 수 있다. 여기서 y는 1 이상 q 이하의 자연수일 수 있다.
신드롬(SDR)은 패리티 체크 행렬(PCM)과 독출 코드워드의 벡터 표현의 전치 행렬의 행렬 곱셈을 수행하여 산출된다. 따라서 신드롬(SDR)의 연산에 사용되는 패리티 체크 행렬(PCM)이 단순화될 수 있으므로 신드롬(SDR) 연산에서 발생되는 지연을 감소시킬 수 있다.
기존의 심볼 단위의 ECC를 수행하는 RS 디코더에서는 심볼의 개수들에 상응하는 알파 행렬들을 이용하여 패리티 체크 행렬을 구성하고, 상기 패리티 체크 행렬과 독출 코드워드의 행렬 곱셈을 수행하여 신드롬과 패리티 데이터를 산출하였다. 따라서 신드롬과 패리티 데이터를 산출함에 있어 알파 행렬들에 포함되는 '1'의 개수에 따라 신드롬의 신드롬 비트들과 패리티 데이터의 패리티 비트들 사이에서 계산 시간의 차이에 해당하는 스큐가 발생하였다.
하지만 본 발명의 실시예들에 따른 도 10과 같은 구조의 패리티 체크 행렬(PCM)을 이용하면, 심볼들의 개수의 절반에 해당하는 알파 행렬들로 패리티 체크 행렬(PCM)을 구성할 수 있고, k 개의 후보 알파 행렬들 중에서 1의 개수가 최소인 k/2 개의 알파 행렬들을 선택되므로 신드롬과 패리티 데이터의 계산 시간이 감소될 수 있고, 패리티 체크 행렬(PCM)의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하므로 신드롬의 신드롬 비트들과 패리티 데이터의 패리티 비트들 사이의 계산 스큐가 감소될 수 있다.
도 10의 패리티 체크 행렬(PCM)은 제1 부분(PT1)은 도 9a의 패리티 생성 행렬(PGM)에 해당될 수 있다.
패리티 체크 행렬(PCM)은 또한 제1 방향(D1)으로 교번적으로 배치되는 단위 서브 행렬(ISM)과 알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))을 포함하는 제1 패리티 서브 행렬(HS11)과 제1 방향(D1)으로 교번적으로 배치되는 알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))과 단위 서브 행렬(ISM)을 포함하는 제2 패리티 서브 행렬(HS12)을 포함할 수 있다.
제1 패리티 서브 행렬(HS11)과 제2 패리티 서브 행렬(HS12)은 단위 서브 행렬(ISM)과 알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))이 교번적으로 배치되는 순서가 서로 반대이다. 따라서, 패리티 체크 행렬(PCM)의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하다.
도 10가 k가 짝수인 경우의 패리티 체크 행렬(PCM)을 나타낸다.
도 11은 도 9의 ECC 엔진에서 메모리에 저장되는 패리티 체크 행렬의 다른 예를 나타낸다.
도 11은 k가 짝수인 경우의 패리티 체크 행렬(PCMa)을 나타낸다.
도 11을 참조하면, 패리티 체크 행렬(PGM1)은 제1 부분(PT11) 및 제2 부분(PT2)으로 구분될 수 있다.
제1 부분(PT11)은 도 10의 제1 부분(PT1)과 비교할 때, 추가되는 심볼에 해당하는 두 개의 단위 서브 행렬(ISM)들을 더 포함할 수 있다. 추가되는 심볼은 메타 데이터에 해당할 수 있다.
도 12는 도 10에서 단위 서브 행렬과 제로 서브 행렬을 나타낸다.
도 12에서는 p가 8임을 가정한다.
도 12를 참조하면, 단위 서브 행렬(ISM1)은 pㅧp 행렬 원소들 중 대각선 방향의 p 개의 행렬 원소들만이 하이 레벨('1')이고 나머지 행렬 원소들은 제로이다. 또한 제로 서브 행렬(ZSM1)은 pㅧp 행렬 원소들 모두가 제로('0')이다.
도 13은 도 10에서 알파 행렬들 중 하나를 나타낸다.
도 13에서는 p가 8임을 가정하고, 알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1)) 중 알파 행렬(αi(k/2-1))을 나타낸다.
도 13을 참조하면, 알파 행렬(αi(k/2-1))의 로우들은 '1'의 개수가 하나인 5개의 로우들 및 '1'의 개수가 두 개인 3개의 로우들을 포함하여 구성된다.
도 14는 도 10의 서브 행렬들 중 하나를 나타낸다.
도 14에서는 p가 8임을 가정하고, 서브 행렬들(SMT0, SMT1, …, SMT(k/2-2), SMT(k/2-1)) 중 서브 행렬(SMT(k/2-1))의 구성을 나타낸다.
도 14를 참조하면, 서브 행렬(SMT(k/2-1))은 제1 대각선 방향으로 배치되는 도 12의 두 개의 단위 서브 행렬들(ISM1) 및 제2 대각선 방향으로 배치되는 도 13의 두 개의 알파 행렬(αi(k/2-1))을 포함하여 구성될 수 있다.
따라서, 서브 행렬(SMT(k/2-1))의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일할 수 있다.
예를 들어, 서브 행렬(SMT(k/2-1))의 제1 로우(511)의 '1'의 개수와 제9 로우(513)의 '1'의 개수는 2로서 동일할 수 있다. 또한, 서브 행렬(SMT(k/2-1))의 제2 로우의 '1'의 개수와 제10 로우의 '1'의 개수는 서로 동일할 수 있고, 서브 행렬(SMT(k/2-1))의 제3 로우의 '1'의 개수와 제11 로우의 '1'의 개수는 서로 동일할 수 있고, 서브 행렬(SMT(k/2-1))의 제3 로우의 '1'의 개수와 제12 로우의 '1'의 개수는 서로 동일할 수 있고, 서브 행렬(SMT(k/2-1))의 제4 로우의 '1'의 개수와 제12 로우의 '1'의 개수는 서로 동일할 수 있고, 서브 행렬(SMT(k/2-1))의 제5 로우의 '1'의 개수와 제13 로우의 '1'의 개수는 서로 동일할 수 있고, 서브 행렬(SMT(k/2-1))의 제6 로우의 '1'의 개수와 제14 로우의 '1'의 개수는 서로 동일할 수 있고, 서브 행렬(SMT(k/2-1))의 제7 로우의 '1'의 개수와 제15 로우의 '1'의 개수는 서로 동일할 수 있고, 서브 행렬(SMT(k/2-1))의 제8 로우의 '1'의 개수와 제16 로우의 '1'의 개수는 서로 동일할 수 있다.
서브 행렬(SMT(k/2-1))의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하므로 서브 행렬(SMT(k/2-1))을 이용하는 패리티 체크 행렬(PCM)의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수도 동일할 수 있다. 따라서, y 번째 로우에 해당하는 신드롬(SDR)의 신드롬 비트와 y+p 번째 로우에 해당하는 신드롬(SDR)의 신드롬 비트의 연산에서 연산 시간 차이에 따른 스큐를 최소화할 수 있고, 신드롬의 연산에서 발생할 수 있는 지연을 감소시킬 수 있다.
예를 들어, 서브 행렬(SMT(k/2-1))에 대응되는 두 개의 심볼들이 데이터 비트들(d[15]~d[00])을 포함하고, 서브 행렬(SMT(k/2-1))에 대응되는 신드롬이 신드롬 비트들(SB[00]~SB[15])을 포함하고, 패리티 데이터(PRT)가 패리티 비트들(PB[00]~PB[15])를 포함하는 경우를 가정한다.
신드롬 비트(SB[00])는 d[15]ㅧd[00]ㅧPB[00]으로 표현될 수 있고, 신드롬 비트(SB[08])는 d[08]ㅧd[07]ㅧPB[08]로 표현될 수 있다.
신드롬 비트(SB[01])는 d[14]ㅧd[08]ㅧd[00]ㅧPB[01]으로 표현될 수 있고, 신드롬 비트(SB[09])는 d[15]ㅧd[09]ㅧd[07]ㅧPB[09]로 표현될 수 있다.
신드롬 비트(SB[07])는 d[08]ㅧd[01]ㅧd[00]ㅧPB[07]으로 표현될 수 있고, 신드롬 비트(SB[15])는 d[09]ㅧd[08]ㅧd[00]ㅧPB[15]로 표현될 수 있다.
따라서 p만큼 차이가 나는 두 개의 신드롬 비트들을 산출하는데 필요한 곱셈 연산의 횟수가 동일하므로 p만큼 차이가 나는 두 개의 신드롬 비트들을 산출하는데 필요한 배타적 오어 게이트들의 개수도 동일하다.
도 15는 도 10에서 단위 서브 행렬과 제로 서브 행렬을 나타낸다.
도 15에서는 p가 16임을 가정한다.
도 15를 참조하면, 단위 서브 행렬(ISM2)은 pㅧp 행렬 원소들 중 대각선 방향의 p 개의 행렬 원소들만이 하이 레벨('1')이고 나머지 행렬 원소들은 제로이다.
도 16은 도 10에서 알파 행렬들 중 하나를 나타낸다.
도 16에서는 p가 16임을 가정하고, 알파 행렬(αi(k/2-1)')을 나타낸다.
도 16을 참조하면, 알파 행렬(αi(k/2-1)')의 로우들은 '1'의 개수가 하나인 13개의 로우들 및 '1'의 개수가 두 개인 3개의 로우들을 포함하여 구성된다.
도 17의 도 10에서 제로 서브 행렬을 나타낸다.
도 17에서는 p가 16임을 가정한다.
도 17을 참조하면, 제로 서브 행렬(ZSM2)은 pㅧp 행렬 원소들 모두가 제로('0')이다.
도 18은 도 9의 ECC 엔진에서 신드롬 생성기가 신드롬을 산출하는 것을 나타낸다.
도 18을 참조하면, 신드롬 생성기(420)는 패리티 체크 행렬(PCM)의 벡터 표현(H)와 독출 코드워드(RCW)의 벡터 표현(C)의 전치 행렬(C T)에 대하여 행렬 곱셈 연산을 수행하여 신드롬(SDR)을 산출할 수 있다.
독출 코드워드(RCW)의 벡터 표현(C)은 제1 내지 제k 심볼들(SBL0~SBL(k-1)) 및 패리티 데이터(PRT)를 포함할 수 있다.
도 19는 도 10의 서브 행렬들 중 하나를 나타낸다.
도 19에서는 p가 16임을 가정하고, 서브 행렬(SMT(k/2-1)')의 구성을 나타낸다.
도 19를 참조하면, 서브 행렬(SMT(k/2-1)')은 제1 대각선 방향으로 배치되는 도 15의 두 개의 단위 서브 행렬들(ISM2) 및 제2 대각선 방향으로 배치되는 도 16의 두 개의 알파 행렬(αi(k/2-1)')을 포함하여 구성될 수 있다.
따라서, 서브 행렬(SMT(k/2-1)')의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일할 수 있다. 예를 들어, 서브 행렬(SMT(k/2-1)')의 제1 로우(521)의 '1'의 개수와 제17 로우(523)의 '1'의 개수는 2로서 동일할 수 있다. 또한, 서브 행렬(SMT(k/2-1)')의 제2 로우의 '1'의 개수와 제18 로우의 '1'의 개수는 동일할 수 있고, 서브 행렬(SMT(k/2-1)')의 제3 로우의 '1'의 개수와 제19 로우의 '1'의 개수는 동일할 수 있고, 서브 행렬(SMT(k/2-1)')의 제16 로우의 '1'의 개수와 제32 로우의 '1'의 개수는 동일할 수 있다.
서브 행렬(SMT(k/2-1)')의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하므로 서브 행렬(SMT(k/2-1)')을 이용하는 패리티 체크 행렬(PCM)의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수도 동일할 수 있다. 따라서, y 번째 로우에 해당하는 신드롬(SDR)의 신드롬 비트와 y+p 번째 로우에 해당하는 신드롬(SDR)의 신드롬 비트의 연산에서 연산 시간 차이에 따른 스큐를 최소화할 수 있고, 신드롬의 연산에서 발생할 수 있는 지연을 감소시킬 수 있다.
도 20은 본 발명의 실시예들에 따른 패리티 체크 행렬을 이용하여 에러 크기 신드롬과 에러 위치 신드롬을 생성하는 것을 나타낸다.
도 20을 참조하면, 에러 크기 신드롬(SDR_M)은 도 10의 패리티 체크 행렬(PCM)의 제1 서브 체크 행렬(HS11)과 독출 코드워드(RCW)의 벡터 표현(C)의 전치 행렬(C T)의 행렬 곱을 통하여 획득될 수 있다. 또한, 에러 위치 신드롬(SDR_L)은 도 10의 패리티 체크 행렬(PCM)의 제2 서브 체크 행렬(HS12)과 독출 코드워드(RCW)의 벡터 표현(C)의 전치 행렬(C T)의 행렬 곱을 통하여 획득될 수 있다.
도 10을 참조하여 상술한 바와 같이, 제1 서브 체크 행렬(HS11)은 제1 방향(D1)으로 교번적으로 배치되는 단위 서브 행렬(ISM)과 알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))을 포함하고, 제2 서브 체크 행렬(HS12)은 1 방향(D1)으로 교번적으로 배치되는 알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))과 단위 서브 행렬(ISM)을 포함하므로, 에러 위치 신드롬(SDR_L)은 독출 코드 워드(RCW)에 포함되는 에러들의 수에 따라 다른 값을 가질 수 있고, 에러 위치 신드롬(SDR_L)은 독출 코드 워드(RCW)에서 에러들이 포함되는 심볼의 위치를 나타낼 수 있다.
도 21은 본 발명의 실시예들에 따른 신드롬의 일 예를 나타낸다.
도 21에서는 도 9의 ECC 엔진(400a)에 입력되는 독출 코드워드(RCW)가 복수의 심볼들로 구성되고, 복수의 심볼들 각각은 16 비트들을 포함하고, 복수의 심볼들 중 하나의 심볼이 하나의 에러를 포함하는 경우를 가정한다. 즉, 독출 코드워드(RCW)의 에러를 포함하지 않는 심볼들은 모두 '0'으로 구성되고, 에러를 포함하는 심볼을 '0000000000000001'으로 구성된다.
도 21을 참조하면, 신드롬(SDR)은 에러 크기 신드롬(SDR_M)과 에러 위치 신드롬(SDR_L)을 포함하고, 에러 크기 신드롬(SDR_M)은 하나의 심볼이 하나의 에러를 나타내는 '0000000000000001'로 표현되고, 에러 위치 신드롬(SDR_L)은 하나의 에러를 포함하는 심볼의 위치를 나타내는 '1001000100100000'으로 표현된다.
도 22는 본 발명의 실시예들에 따라 에러 크기 신드롬과 에러를 포함하는 심볼에 해당하는 알파 행렬에 기초한 곱셈의 결과를 나타낸다.
도 22을 참조하면, 에러 크기 신드롬(SDR_M)과 에러를 포함하는 심볼에 해당하는 알파 행렬(αi(k/2-1)')의 전치 행렬(αi(k/2-1)')T에 행렬 곱셈을 수행한 결과는 에러 위치 신드롬(SDR_L)의 값과 동일함을 알 수 있다.
즉, 알파 행렬(αi(k/2-1)')에 대응되는 심볼에 하나의 에러가 발생하였음을 알 수 있다.
도 23은 본 발명의 실시예들에 따른 도 9의 ECC 엔진에서 RS 디코딩을 수행하는 것을 나타낸다.
도 9 및 도 23를 참조하면, 디코딩 모드에서 타겟 페이지로부터 독출된 신드롬(SDR)이 RS 디코더(425)에 제공된다.
에러 위치 신드롬 생성기(430)는 신드롬(SDR)에 포함되는 에러 크기 신드롬(SDR_M)에 상응하는 알파 행렬을 곱하여 비교 에러 위치 신드롬(C_SDR_L)을 출력할 수 있다. 비교기(450)는 신드롬(SDR)에 포함되는 테스트 에러 위치 신드롬(SDR_L)과 에러 위치 신드롬 생성기(430)에서 생성하는 비교 에러 위치 신드롬(C_SDR_L)을 비교하고, 에러 위치 신드롬(SDR_L)과 비교 에러 위치 신드롬(C_SDR_L)의 동일성 여부를 나타내는 비교 신호(CS)를 출력할 수 있다.
디코딩 상태 플래그 생성기(460)는 비교 신호(CS)에 기초하여 신드롬(SDR)의 에러 상태를 나타내는 디코딩 상태 플래그(DSF)를 생성할 수 있다. 에러 위치 신호 생성기(470)는 비교 신호(CS)에 기초하여 독출 코드워드(RCW)에 포함되는 에러의 에러의 위치를 나타내는 에러 위치 신호(EPS)를 출력할 수 있다.
데이터 정정기(490)는 독출 코드워드(RCW)와 에러 위치 신호(EPS)의 대응하는 비트들 각각에 배타적 오어 연산을 수행하여 정정된 코드워드(C_CW)를 출력할 수 있다.
도 23에서는 독출 코드워드(RCW)가 복수의 심볼들(SBL0, SBL1, …, SBLk-1), 에러 크기 패리티(PRT_M) 및 에러 위치 패리티(PRT_L)을 포함하고, 복수의 심볼들(SBL0, SBL1, …, SBLk-1) 중 심볼 (SBLㅏ-1)이 하나의 에러를 포함하는 것을 가정한다. 즉, 심볼(SBLk-1)은 '0000000000000001'로 표현될 수 있다. 또한 복수의 심볼들(SBL0, SBL1, …, SBLk-1) 중 심볼(SBLk-1)을 제외한 나머지 심볼들 각각은 '0000000000000000'으로 표현될 수 있다. 따라서 에러 위치 신호 생성기(470)는 심볼(SBLk-1)에 포함되는 에러를 나타내는 에러 위치 신호(EPS)를 생성할 수 있다.
데이터 정정기(490)는 에러 위치 신호(EPS)와 독출 코드워드(RCW)에 대하여 배타적 오어 연산을 수행하여 정정된 코드워드(C_CW)를 출력할 수 있다.
심볼(SBLk-1)에 하나의 에러가 포함되는 경우, 데이터 정정기(490)는 에러 위치 신호(EPS)와 독출 코드워드(RCW)에 대하여 배타적 오어 연산을 수행하여 심볼(SBLk-1)의 에러를 정정할 수 있다. 데이터 정정기(490)는 하나의 심볼의 포함되는 데이터 비트들의 수와 동일한 에러들을 정정할 수 있다.
도 24는 본 발명의 실시예들에 따른 반도체 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 5 내지 도 24를 참조하면, 외부 장치와 통신하는 버퍼 다이(100), 버퍼 다이(100) 상에 적층되는 복수의 메모리 다이들(200a~200r) 및 메모리 다이들(200a~200r)을 관통하여 버퍼 다이(100)에 연결되는 관통 실리콘 비아(120)를 포함하고, 메모리 다이들(200a~200r) 각각은 메모리 셀 어레이, 제어 로직 회로, ECC 엔진을 포함하는 반도체 메모리 장치의 동작 방법이 제공된다.
상기 방법에 의하면, 테스트 모드에서 복수의 메모리 다이들(200a~200r) 제1 메모리 다이의 ECC 엔진(400a)에서 패리티 생성 행렬(PGM)을 이용하여 복수의 심볼들을 구비하는 메인 데이터에 대하여 리드-솔로몬(RS) 인코딩을 인코딩을 수행하여 패리티 데이터를 생성한다(S110).
ECC 엔진(400)은 상기 메인 데이터와 상기 패리티 데이터를 상기 제1 메모리 다이의 메모리 셀 어레이의 타겟 페이지에 저장한다(S120).
ECC 엔진(400)은 패리티 체크 행렬(PCM)을 이용하여 상기 타겟 페이지로부터 독출된 독출된 상기 메인 데이터와 상기 패리티 데이터에 대하여 RS 디코딩을 수행하여 상기 독출된 메인 데이터의 에러를 심볼 단위로 정정한다(S130).
ECC 엔진(400)은 버퍼 다이(100)를 통하여 정정된 메인 데이터와 에러의 상태를 나타내는 디코딩 상태 플래그를 외부 장치(즉 메모리 컨트롤러(20)에 전송한다(S140).
상기 패리티 체크 행렬(PCM)은 상기 복수의 심볼들 중 서로 다른 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들 서브 행렬들(SMT0, SMT1, …, SMT(k/2-2), SMT(k/2-1))을 구비하는 제1 부분(PT1)과 상기 패리티 데이터에 관련되는 제2 부분(PT2)을 포함할 수 있다,
상기 복수의 서브 행렬들 서브 행렬들(SMT0, SMT1, …, SMT(k/2-2), SMT(k/2-1)) 각각은 제1 대각선 방향으로 배치되는 두 개의 단위 서브 행렬(ISM) 및 상기 제1 대각선 방향과 교차하는 제2 대각선 방향으로 배치되는 두 개의 동일한 알파 행렬들(αi0, αi1, …, αi(k/2-2) , αi(k/2-1))을 각각 포함할 수 있다.,
상기 단위 서브 행렬 및 알파 행렬은 각각 pㅧp 행렬 원소들을 포함할 수 있다. p는 복수의 심볼들 각각에 포함되는 데이터 비트들의 수를 나타내고, 상기 패리티 체크 행렬(PCM)의 y(y는 1 이상 q 이하의 자연수) 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일할 수 있다.
따라서 본 발명의 실시예들에 따른 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법에서는 패리티 체크 행렬에 포함되며 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 단위 서브 행렬과 알파 행렬이 대각선 방향으로 대칭되도록 구성하여 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하도록 할 수 있다. 따라서 신드롬 및 패리티의 연산에 사용되는 패리티 체크 행렬이 단순화될 수 있으므로 신드롬 및 패리티의 연산에서 발생되는 지연을 감소시킬 수 있다.
도 25는 본 발명의 실시예들에 따른 반도체 메모리 장치를 보여주는 예시적인 블록도이다.
도 25를 참조하면, 반도체 메모리 장치(800)는, 스택드 칩 구조를 구현하기 위하여 적어도 하나의 버퍼 다이(Buffer Die, 810) 및 복수의 메모리 다이들(820-1,820-2,...,820-s(s는 3 이상의 자연수))을 포함할 수 있다.
복수의 메모리 다이들(820-1,820-2,...,820-s)은 버퍼 다이(810)의 상부에 적층되고 복수의 쓰루 실리콘 비아(이하 TSV) 라인들을 통해 데이터를 통신할 수 있다.
복수의 메모리 다이들(820-1,820-2,...,820-s) 각각은 데이터와 패리티 데이터를 저장하는 셀 코어(822) 및 ECC 엔진(824)을 포함할 수 있다. ECC 엔진(824)은 도 9의 ECC 엔진(400a)과 실질적으로 동일한 동작을 수행할 수 있다.
따라서 ECC 엔진(824)은 셀 코어(822)에 저장되는 데이터에 RS 인코딩을 수행하고, 패리티 체크 행렬에 기초하여 상기 셀 코어(822)부터 독출된 데이터에 RS 디코딩을 수행하여 상기 독출된 데이터의 에러를 심볼 단위로 정정할 수 있다.
이 경우에 상기 패리티 체크 행렬에 포함되며 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 단위 서브 행렬과 알파 행렬이 대각선 방향으로 대칭되도록 구성하여 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하도록 할 수 있다. 따라서 신드롬 및 패리티의 연산에 사용되는 패리티 체크 행렬이 단순화될 수 있으므로 신드롬 및 패리티의 연산에서 발생되는 지연을 감소시킬 수 있다.
버퍼 다이(810)는 ECC 엔진(814)을 구비하는 인터페이스 회로(812)를 포함할 수 있다.
ECC 엔진(814)은 비아 ECC 엔진으로 호칭될 수 있으며, 메모리 다이들(820-1,820-2,...,820-s) 중 적어도 하나로부터 제공되는 데이터의 전송 에러를 정정할 수 있다.
하나의 메모리 다이(820-s)에 형성되는 데이터 TSV 라인 그룹(832)은 복수의 TSV 라인들(L1~Ls)로 구성될 수 있고, 패리티 TSV 라인 그룹(834)은 복수의 TSV 라인들(L10~Lt)로 구성될 수 있다. 데이터 TSV 라인 그룹(832)의 TSV 라인들(L1~Ls)과 패리티 TSV 라인 그룹(834)의 TSV 라인들(L10~Lt)은 복수의 메모리 다이들(820-1,820-2,...,820-s)의 사이에 대응적으로 형성된 마이크로 범프(MCB)들에 연결될 수 있다.
반도체 메모리 장치(800)는 데이터 버스(B10)를 통해 외부의 메모리 컨트롤러와 통신하기 위해 3D 칩 구조 또는 2.5D 칩 구조를 가질 수 있다. 상기 버퍼 다이(810)는 데이터 버스(B10)를 통해 메모리 컨트롤러와 연결될 수 있다.
도 26은 본 발명의 실시예들에 따른 적층형 메모리 장치를 포함하는 반도체 패키지의 예를 나타내는 구조도이다.
도 26을 참조하면, 반도체 패키지(900)는 하나 이상의 적층형 메모리 장치(910) 및 GPU(920)를 포함할 수 있다. 상기 적층형 메모리 장치(910) 및 GUP(920)는 인터포저(Interposer, 930) 상에 장착되고, 적층형 메모리 장치(910) 및 GPU(920)가 장착된 인터포저(930)는 패키지 기판(940) 상에 장착될 수 있다. 패키지 기판(940)은 솔더 볼(950) 상에 실장될 수 있다.
GPU(920)는 도 2의 메모리 컨트롤러(20)와 실질적으로 동일한 기능을 수행하거나 도 2의 메모리 컨트롤러(20)를 내부에 포함할 수 있다. GPU(920)는 그래픽 처리 과정에서 생성되거나 이용되는 데이터를 하나 이상의 적층형 메모리 장치(910)에 저장할 수 있다.
적층형 메모리 장치(910)는 다양한 형태로 구현이 가능하며, 일 실시예에 따라 적층형 메모리 장치(910)는 다수 개의 레이어들이 적층된 HBM(High Bandwidth Memory) 형태의 메모리 장치일 수 있다. 이에 따라, 적층형 메모리 장치(910)는 버퍼 다이 및 복수의 메모리 다이들을 포함할 수 있다.
복수의 메모리 다이들 각각은 메모리 셀 어레이, 제어 로직 회로 및 ECC 엔진을 포함할 수 있다.
ECC 엔진은 상기 메모리 셀 어레이에 저장되는 데이터에 RS 인코딩을 수행하고, 패리티 체크 행렬에 기초하여 상기 메모리 셀 어레이로부터 독출된 데이터에 RS 디코딩을 수행하여 상기 독출된 데이터의 에러를 심볼 단위로 정정할 수 있다.
이 경우에 상기 패리티 체크 행렬에 포함되며 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 단위 서브 행렬과 알파 행렬이 대각선 방향으로 대칭되도록 구성하여 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하도록 할 수 있다. 따라서 신드롬 및 패리티의 연산에 사용되는 패리티 체크 행렬이 단순화될 수 있으므로 신드롬 및 패리티의 연산에서 발생되는 지연을 감소시킬 수 있다.
제어 로직 회로는 상기 ECC 엔진을 제어할 수 있다.
인터포저(930) 상에는 다수 개의 적층형 메모리 장치(910)들이 장착될 수 있으며, GPU(920)는 복수의 적층형 메모리 장치(910)들과 통신할 수 있다. 일 예로서, 적층형 메모리 장치(910)들 각각과 GPU(920)는 물리 영역을 포함할 수 있으며, 물리(PHY) 영역을 통해 적층형 메모리 장치(910)들과 GPU(920) 사이에서 통신이 수행될 수 있다.
도 27은 본 발명의 실시예들에 따른 반도체 메모리 장치를 구비하는 모바일 시스템을 나타내는 블록도이다.
도 27을 참조하면, 모바일 시스템(1000)은 어플리케이션 프로세서(1010), 통신(Connectivity) 모듈(1020), 사용자 인터페이스(1030), 비휘발성 메모리 장치(NVM, 1040), 휘발성 메모리 장치(VM, 1050) 및 파워 서플라이(1060)를 포함한다.
어플리케이션 프로세서(1010)는 메모리 컨트롤러(1011)를 포함할 수 있다. 메모리 컨트롤러(1011)는 도 3의 메모리 컨트롤러(20)를 채용할 수 있다.
어플리케이션 프로세서(1010)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 통신 모듈(1020)은 외부 장치와 무선 통신 또는 유선 통신을 수행할 수 있다.
휘발성 메모리 장치(1050) 은 어플리케이션 프로세서(1010)에 의해 처리되는 데이터를 저장하거나, 동작 메모리(Working Memory)로서 작동할 수 있다. 휘발성 메모리 장치(1050)는 도 9의 메모리 다이(200a)와 유사한 구성을 가질 수 있고, 메모리 셀 어레이(1051) 및 ECC 엔진(1053)을 구비할 수 있다. ECC 엔진(1053)은 도 9a의 ECC 엔진(400a)을 구비할 수 있다.
따라서 ECC 엔진(1053)은 ECC 엔진은 메모리 셀 어레이(1051)에 저장되는 데이터에 RS 인코딩을 수행하고, 패리티 체크 행렬에 기초하여 상기 메모리 셀 어레이로부터 독출된 데이터에 RS 디코딩을 수행하여 상기 독출된 데이터의 에러를 심볼 단위로 정정할 수 있다.
이 경우에 상기 패리티 체크 행렬에 포함되며 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 단위 서브 행렬과 알파 행렬이 대각선 방향으로 대칭되도록 구성하여 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일하도록 할 수 있다. 따라서 신드롬 및 패리티의 연산에 사용되는 패리티 체크 행렬이 단순화될 수 있으므로 신드롬 및 패리티의 연산에서 발생되는 지연을 감소시킬 수 있다.
비휘발성 메모리 장치(1040)는 모바일 시스템(1000)을 부팅하기 위한 부트 이미지를 저장할 수 있다.
사용자 인터페이스(1020)는 키패드, 터치 스크린과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함할 수 있다.
파워 서플라이(1060)는 모바일 시스템(1000)의 동작 전압을 공급할 수 있다.
모바일 시스템(1000) 또는 모바일 시스템(1000)의 구성요소들은 다양한 형태들의 패키지를 이용하여 실장될 수 있다.
본 발명은 반도체 메모리 장치 및 적층형 메모리 장치를 채용하는 다양한 시스템에 적용되어, 메모리 다이들에 포함되는 ECC 엔진에서 사용되는 패리티 체크 행렬을 대칭적으로 구성하여 신드롬 및 패리티 데이터를 연산할 때의 지연을 감소시킬 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 외부 장치와 통신하는 버퍼 다이; 및
    상기 버퍼 다이 상에 적층되며 복수의 관통 실리콘 비아(through silicon via)들을 통하여 상기 버퍼 다이에 연결되는 복수의 메모리 다이들을 포함하고,
    상기 복수의 메모리 다이들 각각은
    복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 휘발성 메모리 셀들을 구비하는 메모리 셀 어레이; 및
    패리티 생성 행렬을 이용하여 상기 메모리 셀 어레이의 타겟 페이지에 저장되는 메인 데이터에 대하여 리드-솔로몬(RS) 인코딩을 수행하여 패리티 데이터를 생성하고, 패리티 체크 행렬을 이용하여 상기 타겟 페이지로부터 독출된 상기 메인 데이터와 상기 패리티 데이터에 대하여 RS 디코딩을 수행하여 상기 독출된 메인 데이터의 에러를 심볼 단위로 정정하는 에러 정정 코드(error correction code; 이하 'ECC') 엔진을 포함하고,
    상기 패리티 체크 행렬은
    상기 메인 데이터에 포함되는 복수의 심볼들 중 서로 다른 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 구비하는 제1 부분과 상기 패리티 데이터에 관련되는 제2 부분을 포함하고,
    상기 복수의 서브 행렬들 각각은 제1 대각선 방향으로 배치되는 두 개의 단위 서브 행렬 및 상기 제1 대각선 방향과 교차하는 제2 대각선 방향으로 배치되는 두 개의 동일한 알파 행렬들을 포함하고,
    상기 단위 서브 행렬 및 알파 행렬은 각각 pㅧp 행렬 원소들을 포함하고,
    p는 복수의 심볼들 각각에 포함되는 데이터 비트들의 수를 나타내는 2 이상의 자연수이고,
    상기 패리티 체크 행렬의 y 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일한 반도체 메모리 장치.
  2. 제1항에 있어서,
    상기 단위 행렬은 상기 제1 대각선 방향의 p 개의 행렬 원소들은 '1'의 값을 가지고 나머지 행렬 원소들은 '0'의 값을 가지고,
    상기 알파 행렬은 갈로아 필드(Galois field)의 원소이고,
    상기 심볼들의 개수가 짝수인 k(k는 2 이상인 짝수) 일 때, 상기 알파 행렬의 수는 k/2인 것을 특징으로 하는 반도체 메모리 장치.
  3. 제2항에 있어서,
    상기 알파 행렬은 αi로 표현되고
    i는 1이상이고, 2p-1 이하인 것을 특징으로 하는 반도체 메모리 장치.
  4. 제2항에 있어서,
    상기 복수의 서브 행렬들은 제1 서브 행렬 내지 제k/2 서브 행렬을 포함하고,
    상기 제1 서브 행렬 내지 상기 제k/2 서브 행렬들 각각은 제1 알파 행렬 내지 제k/2 알파 행렬을 포함하고,
    제1 알파 행렬은 αi0로 표현되고, 제k/2 알파 행렬은 αi(k/2-1)로 표현되는 것을 특징으로 하는 반도체 메모리 장치.
  5. 제2항에 있어서,
    상기 ECC 엔진은 k/2 개의 알파 행렬들을 이용하여 상기 k 개의 심볼들에 대한 상기 RS 인코딩과 상기 RS 디코딩을 수행하는 것을 특징으로 하는 반도체 메모리 장치.
  6. 제1항에 있어서, 상기 ECC 엔진은
    기입 동작에서는 상기 패리티 생성 행렬을 이용하여 상기 메인 데이터에 대하여 상기 ES 인코딩을 수행하여 상기 패리티 데이터를 생성하고, 독출 동작에서는 상기 패리티 체크 행렬을 이용하여 상기 독출된 메인 데이터 및 상기 패리티 데이터를 포함하는 독출 코드워드를 기초로 에러 크기 신드롬과 에러 위치 신드롬을 포함하는 신드롬을 생성하는 신드롬 생성기; 및
    상기 신드롬에 기초하여 상기 독출 코드워드에 대하여 상기 RS 디코딩을 수행하는 RS 디코더를 포함하고,
    상기 에러 크기 신드롬은 상기 독출 코드워드에 포함되는 에러의 개수를 나타내고,
    상기 에러 위치 신드롬은 상기 에러를 포함하는 심볼의 위치를 나타내는 것을 특징으로 하는 반도체 메모리 장치.
  7. 제6항에 있어서, 상기 RS 디코더는
    상기 에러 크기 신드롬에 상응하는 알파 행렬을 곱하여 비교 에러 위치 신드롬을 생성하는 에러 위치 신드롬 생성기;
    상기 에러 위치 신드롬과 상기 비교 에러 위치 신드롬을 비교하고, 상기 비교의 결과를 나타내는 비교 신호를 출력하는 비교기;
    상기 비교 신호에 기초하여 상기 독출 코드워드의 에러 위치를 나타내는 에러 위치 신호를 생성하는 에러 위치 신호 생성기; 및
    상기 에러 위치 신호에 기초하여 상기 독출 코드워드의 에러를 정정하여 정정된 코드워드를 출력하는 데이터 정정기를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  8. 제7항에 있어서,
    상기 심볼에 포함되는 에러가 정정가능한 경우, 상기 심볼과 관련되는 상기 에러 위치 신드롬과 상기 비교 에러 위치 신드롬은 동일한 것을 특징으로 하는 반도체 메모리 장치.
  9. 제7항에 있어서,
    상기 독출 코드워드가 상기 ECC 엔진의 정정 능력을 초과하는 에러들을 포함하는 경우, 상기 복수의 심볼들 각각과 관련되는 에러 위치 신드롬과 비교 에러 위치 신드롬이 동일하지 않은 것을 특징으로 하는 반도체 메모리 장치.
  10. 제7항에 있어서, 상기 RS 디코더는
    상기 신드롬 및 상기 비교 신호에 기초하여 상기 독출 코드워드의 에러 상태를 나타내는 디코딩 상태 플래그 생성기를 더 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  11. 제6항에 있어서, 상기 신드롬 생성기는
    상기 독출 코드워드와 상기 패리티 체크 행렬에 행렬-곱셈 연산을 수행하여 상기 신드롬을 생성하는 것을 특징으로 하는 반도체 메모리 장치.
  12. 제6항에 있어서, 상기 ECC 엔진은
    코딩 모드 신호에 응답하여 상기 메인 데이터 및 상기 독출 코드워드 중 하나를 상기 신드롬 생성기에 제공하는 멀티플렉서;
    상기 코딩 모드 신호에 응답하여, 상기 신드롬 생성기의 출력을 상기 타겟 페이지 및 상기 RS 디코더 중 하나에 제공하는 디멀티플렉서를 더 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  13. 제12항에 있어서,
    상기 멀티플렉서는
    상기 코딩 모드 신호에 응답하여 인코딩 모드에서는 상기 메인 데이터를 선택하고, 디코딩 모드에서는 상기 독출 코드워드를 선택하는 것을 특징으로 하는 반도체 메모리 장치.
  14. 제12항에 있어서,
    상기 디멀티플렉서는
    상기 코딩 모드 신호에 응답하여 인코딩 모드에서는 상기 신드롬 생성기의 출력을 상기 패리티 데이터로서 상기 타겟 페이지에 제공하고, 디코딩 모드에서는 상기 신드롬 생성기의 출력을 상기 신드롬으로서 상기 RS 디코더에 제공하는 것을 특징으로 하는 반도체 메모리 장치.
  15. 제1항에 있어서,
    상기 패리티 생성 행렬은 상기 패리티 체크 행렬의 상기 제1 부분에 해당하는 것을 특징으로 하는 반도체 메모리 장치.
  16. 제1항에 있어서,
    상기 심볼들의 개수가 홀수일 때, 상기 제1 부분은 두 개의 단위 서브 행렬들을 더 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  17. 제1항에 있어서,
    상기 반도체 메모리 장치는 HBM(high bandwidth memory) 3에 해당하고,
    상기 버퍼 다이는 상기 복수의 메모리 다이들 중 적어도 하나로부터 전송되는 데이터의 전송 에러를 상기 RS 디코딩을 통하여 정정하는 비아 ECC 엔진을 포함하는 반도체 메모리 장치.
  18. 복수의 워드라인들과 복수의 비트라인들에 연결되는 복수의 휘발성 메모리 셀들을 구비하는 메모리 셀 어레이;
    패리티 생성 행렬을 이용하여 상기 메모리 셀 어레이의 타겟 페이지에 저장되는 메인 데이터에 대하여 리드-솔로몬(RS) 인코딩을 수행하여 패리티 데이터를 생성하고, 패리티 체크 행렬을 이용하여 상기 타겟 페이지로부터 독출된 메인 데이터와 상기 패리티 데이터에 대하여 RS 디코딩을 수행하여 상기 독출된 메인 데이터의 에러를 심볼 단위로 정정하는 에러 정정 코드(error correction code; 이하 'ECC') 엔진; 및
    외부 장치로부터의 커맨드 및 어드레스에 응답하여 상기 ECC 엔진을 제어하는 제어 로직 회로를 포함하고,
    상기 메인 데이터에 포함되는 복수의 심볼들 중 서로 다른 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 구비하는 제1 부분과 상기 패리티 데이터에 관련되는 제2 부분을 포함하고,
    상기 복수의 서브 행렬들 각각은 제1 대각선 방향으로 배치되는 두 개의 단위 서브 행렬 및 상기 제1 대각선 방향과 교차하는 제2 대각선 방향으로 배치되는 두 개의 동일한 알파 행렬들을 포함하고,
    상기 단위 서브 행렬 및 알파 행렬은 각각 pㅧp 행렬 원소들을 포함하고,
    p는 복수의 심볼들 각각에 포함되는 데이터 비트들의 수를 나타내는 2 이상의 자연수이고,
    상기 패리티 체크 행렬의 y(y는 1 이상 q 이하의 자연수) 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일한 반도체 메모리 장치.
  19. 제18항에 있어서,
    상기 단위 행렬은 상기 제1 대각선 방향의 p 개의 행렬 원소들은 '1'의 값을 가지고 나머지 행렬 원소들은 '0'의 값을 가지고,
    상기 알파 행렬은 갈로아 필드(Galois field)의 원소이고,
    상기 심볼들의 개수가 짝수인 k(k는 2 이상인 짝수) 일 때, 상기 알파 행렬의 수는 k/2인 것을 특징으로 하는 반도체 메모리 장치.
  20. 외부 장치와 통신하는 버퍼 다이 및 상기 버퍼 다이 상에 적층되며 복수의 관통 실리콘 비아(through silicon via)들을 통하여 상기 버퍼 다이에 연결되는 복수의 메모리 다이들을 포함하는 반도체 메모리 장치의 동작 방법으로서,
    상기 복수의 메모리 다이들 중 제1 메모리 다이의 에러 정정 코드(error correction code; 이하 'ECC') 엔진에서 패리티 생성 행렬을 이용하여 메인 데이터에 대하여 리드-솔로몬(RS) 인코딩을 인코딩을 수행하여 패리티 데이터를 생성하는 단계;
    상기 메인 데이터와 상기 패리티 데이터를 상기 제1 메모리 다이의 메모리 셀 어레이의 타겟 페이지에 저장하는 단계; 및
    패리티 체크 행렬을 이용하여 상기 타겟 페이지로부터 독출된 독출된 상기 메인 데이터와 상기 패리티 데이터에 대하여 RS 디코딩을 수행하여 상기 독출된 메인 데이터의 에러를 심볼 단위로 정정하는 단계를 포함하고,
    상기 패리티 체크 행렬은
    상기 메인 데이터에 포함되는 복수의 심볼들 중 서로 다른 두 개의 심볼들에 각각 대응되는 복수의 서브 행렬들을 구비하는 제1 부분과 상기 패리티 데이터에 관련되는 제2 부분을 포함하고,
    상기 복수의 서브 행렬들 각각은 제1 대각선 방향으로 배치되는 두 개의 단위 서브 행렬 및 상기 제1 대각선 방향과 교차하는 제2 대각선 방향으로 배치되는 두 개의 동일한 알파 행렬들을 포함하고,
    상기 단위 서브 행렬 및 알파 행렬은 각각 pㅧp 행렬 원소들을 포함하고,
    p는 복수의 심볼들 각각에 포함되는 데이터 비트들의 수를 나타내고,
    상기 패리티 체크 행렬의 y(y는 1 이상 q 이하의 자연수) 번째 로우의 '1'의 개수와 y+p 번째 로우의 '1'의 개수는 서로 동일한 반도체 메모리 장치의 동작 방법.
KR1020210168234A 2021-11-30 2021-11-30 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법 KR20230080769A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210168234A KR20230080769A (ko) 2021-11-30 2021-11-30 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US17/842,981 US11829614B2 (en) 2021-11-30 2022-06-17 Semiconductor memory devices and methods of operating semiconductor memory devices
TW111124017A TW202333165A (zh) 2021-11-30 2022-06-28 半導體記憶體及操作半導體記憶體的方法
CN202211076157.3A CN116206666A (zh) 2021-11-30 2022-09-02 半导体存储器件和操作半导体存储器件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210168234A KR20230080769A (ko) 2021-11-30 2021-11-30 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230080769A true KR20230080769A (ko) 2023-06-07

Family

ID=86500080

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210168234A KR20230080769A (ko) 2021-11-30 2021-11-30 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법

Country Status (4)

Country Link
US (1) US11829614B2 (ko)
KR (1) KR20230080769A (ko)
CN (1) CN116206666A (ko)
TW (1) TW202333165A (ko)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3755779A (en) * 1971-12-14 1973-08-28 Ibm Error correction system for single-error correction, related-double-error correction and unrelated-double-error detection
EP0386506A3 (en) 1989-03-06 1991-09-25 International Business Machines Corporation Low cost symbol error correction coding and decoding
US5099484A (en) 1989-06-09 1992-03-24 Digital Equipment Corporation Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
KR20050123336A (ko) 2004-06-24 2005-12-29 엘지전자 주식회사 Ldpc 코드를 이용한 가변 코드 레이트 적응 부호화 방법
KR20070063851A (ko) 2005-12-15 2007-06-20 삼성전자주식회사 패리티 검사 행렬, 패리티 검사 행렬 생성 방법, 인코딩방법 및 에러 정정 장치
JP5215537B2 (ja) 2006-06-28 2013-06-19 三星電子株式会社 情報符号化装置、情報復号装置、情報符号化方法、および情報復号方法
JP5844747B2 (ja) * 2011-01-21 2016-01-20 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 符号化方法、復号方法
US9317352B2 (en) * 2012-09-12 2016-04-19 Samsung Electronics Co., Ltd. Galois field arithmetic operation circuit and memory device
KR20140037443A (ko) 2012-09-18 2014-03-27 삼성전자주식회사 메모리 장치 및 그 튜닝 방법
KR102608908B1 (ko) 2016-06-23 2023-12-04 에스케이하이닉스 주식회사 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치
WO2018119700A1 (zh) 2016-12-27 2018-07-05 华为技术有限公司 一种数据传输方法、发送设备和接收设备
KR20210080807A (ko) * 2019-12-23 2021-07-01 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템
US10937453B1 (en) * 2020-03-26 2021-03-02 International Business Machines Corporation Magnetic tape device capable of selecting codeword rewrite based on determined threshold

Also Published As

Publication number Publication date
CN116206666A (zh) 2023-06-02
US11829614B2 (en) 2023-11-28
TW202333165A (zh) 2023-08-16
US20230168819A1 (en) 2023-06-01

Similar Documents

Publication Publication Date Title
US10922171B2 (en) Error correction code circuits, semiconductor memory devices and memory systems
US10997020B2 (en) Memory device, memory system, and method of operating the same
KR102479212B1 (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US11681579B2 (en) Semiconductor memory devices and memory systems including the same
KR102629405B1 (ko) 반도체 메모리 장치, 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US10846171B2 (en) Error correction code decoders, semiconductor memory devices and memory systems
KR20190097657A (ko) 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
CN112992257A (zh) 半导体存储器装置和存储器系统
US20210157675A1 (en) Controller and memory system
CN112527549A (zh) 存储器控制器和包括该存储器控制器的存储器系统
KR20210081534A (ko) 반도체 메모리 장치 및 메모리 시스템
US11409676B2 (en) System on chip, memory device, electronic device comprising the SoC and memory device, and method for storing data in the electronic device
KR20210080807A (ko) 메모리 컨트롤러 및 메모리 시스템
KR20200142213A (ko) 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
CN112749040A (zh) 存储器控制器以及包括该存储器控制器的存储器系统
US11841763B2 (en) Semiconductor memory devices with ECC engine defect determination based on test syndrome, test parity, expected decoding status and received decoding status
US20180083651A1 (en) Memory device with error check function of memory cell array and memory module including the same
KR102589913B1 (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20230080769A (ko) 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
WO2014064732A1 (en) Signal transmission system and storage system
EP4202939A1 (en) Memory system and method of operating the same
KR20240062654A (ko) 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
KR20230151417A (ko) 3-레벨 펄스 진폭 변조 시그널링을 위한 송신기, 수신기 및 이를 포함하는 시스템
KR20230068265A (ko) 에러 정정 회로, 메모리 시스템 및 에러 정정 방법
KR20230077606A (ko) 에러 정정 코드 회로, 에러 정정 코드 회로를 포함하는 메모리 장치, 및 에러 정정 코드 회로의 동작 방법