KR20180040474A - Memory module reporting fail information of chip unit and Operating method of Memory module and Memory controller - Google Patents

Memory module reporting fail information of chip unit and Operating method of Memory module and Memory controller Download PDF

Info

Publication number
KR20180040474A
KR20180040474A KR1020170001318A KR20170001318A KR20180040474A KR 20180040474 A KR20180040474 A KR 20180040474A KR 1020170001318 A KR1020170001318 A KR 1020170001318A KR 20170001318 A KR20170001318 A KR 20170001318A KR 20180040474 A KR20180040474 A KR 20180040474A
Authority
KR
South Korea
Prior art keywords
fail
chip
memory
data
bit
Prior art date
Application number
KR1020170001318A
Other languages
Korean (ko)
Inventor
임선영
조영진
최장석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US15/688,120 priority Critical patent/US10169126B2/en
Priority to CN201710858013.6A priority patent/CN107943609B/en
Publication of KR20180040474A publication Critical patent/KR20180040474A/en
Priority to US16/236,750 priority patent/US10725672B2/en

Links

Images

Classifications

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

Landscapes

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

Abstract

Disclosed are a memory module reporting fail information in chip units and an operating method of the memory module and a memory controller. The memory module according to an aspect of the technical idea of the present disclosure comprises: first to M^th memory chips mounted on a module board and respectively storing data (where, M is an integer of 2 or more); and an (M+1)^th memory chip mounted on the module board and storing a parity code for restoring data of a memory chip, in which chip-unit failure has occurred, among the first to M^th memory chips. Fail bits are generated by an on-chip error detection operation from the first to (M+1)^th memory chips, and fail information according to a result of operation of the fail bits from the first to (M+1)^th memory chips is output. The present invention is able to reduce manufacturing costs and improve capability of detecting and correcting errors.

Description

칩 단위의 페일 정보를 레포팅하는 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법{Memory module reporting fail information of chip unit and Operating method of Memory module and Memory controller}[0001] The present invention relates to a memory module, a memory module, and a memory controller for reporting fail information on a chip basis,

본 개시의 기술적 사상은 메모리 모듈에 관한 것으로서, 자세하게는 칩 단위의 페일 정보를 레포팅하는 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법에 관한 것이다.TECHNICAL FIELD [0002] The present invention relates to a memory module, and more particularly, to a memory module, a memory module, and a memory controller that report fail information on a chip basis.

고성능 전자 시스템에 널리 사용되고 있는 반도체 메모리 장치는 그 용량 및 속도가 증가하고 있다. 반도체 메모리 장치의 일 예로서 DRAM은 휘발성 메모리(volatile-memory)로서, 커패시터에 저장되어 있는 전하(charge)에 의해 데이터를 판정하는 메모리이다. Semiconductor memory devices, which are widely used in high performance electronic systems, are increasing in capacity and speed. As an example of a semiconductor memory device, a DRAM is a volatile memory, and is a memory that determines data by a charge stored in a capacitor.

반도체 메모리 장치의 동작이 고속화됨에 따라 데이터의 에러 발생 확률이 증가하게 된다. 에러를 정정하는 일 예로서 칩 단위로 에러를 복구하는 방안이 제안되며, 메모리 컨트롤러는 소정 단위의 비트들의 데이터에 대응하는 패리티 코드(예컨대, ECC 패리티)를 생성하고, 데이터와 패리티 코드를 다수의 메모리 칩들이 포함된 반도체 메모리 장치(예컨대, 메모리 패키지, 메모리 모듈 등)에 기록하며, 독출된 데이터와 패리티 코드를 이용한 복구 알고리즘을 통해 페일 칩의 데이터가 복구될 수 있다. 그러나, 패리티 코드를 저장하기 위해 별도로 구비되어야 할 메모리 칩들의 개수가 증가될 수 있으며, 이는 반도체 메모리 장치의 구현 단가를 상승시키는 요인이 된다. As the operation of the semiconductor memory device increases in speed, the probability of error occurrence of data increases. As an example of correcting an error, there is proposed a method of recovering an error on a chip-by-chip basis. The memory controller generates a parity code (for example, ECC parity) corresponding to data of a predetermined unit of bits, (For example, a memory package, a memory module, etc.) including the memory chips, and the data of the fail chip can be recovered through the recovery algorithm using the read data and the parity code. However, the number of memory chips to be separately provided for storing the parity code can be increased, which increases the implementation cost of the semiconductor memory device.

본 개시의 기술적 사상은 제조 단가를 감소시킴과 함께 에러 검출 및 정정 능력을 향상할 수 있는 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법을 제공한다.The technical idea of the present disclosure provides a method of operating a memory module, a memory module, and a memory controller that can reduce manufacturing cost and improve error detection and correction capability.

상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일 측면에 따른 메모리 모듈은, 모듈 보드 상에 장착되고, 각각 데이터를 저장하는 제1 내지 제M 메모리 칩들(단, M 은 2 이상의 정수) 및 상기 모듈 보드 상에 장착되고, 상기 제1 내지 제M 메모리 칩들 중 칩 단위 페일이 발생된 메모리 칩의 데이터를 복구하기 위한 패리티 코드를 저장하는 제(M+1) 메모리 칩을 구비하고, 상기 제1 내지 제(M+1) 메모리 칩들로부터 칩 내부 에러 검출 동작을 통해 페일 비트들이 생성되고, 상기 제1 내지 제(M+1) 메모리 칩들로부터의 페일 비트들을 연산한 결과에 따른 페일 정보를 출력하는 것을 특징으로 한다.In order to achieve the above object, a memory module according to one aspect of the technical idea of the present disclosure includes first to Mth memory chips, each of which is mounted on a module board and stores data, wherein M is an integer of 2 or more And a (M + 1) th memory chip mounted on the module board and storing a parity code for recovering data of a memory chip in which the chip unit fail is generated among the first to Mth memory chips, Fail bits are generated from the first to (M + 1) th memory chips through an intra-chip error detection operation, and fail information according to a result of calculating fail bits from the first to (M + And outputs the output signal.

또한, 본 개시의 기술적 사상의 다른 일 측면에 따른 메모리 모듈은, 각각 인-디램 에러 정정 회로(In-DRAM ECC)를 포함하고, 내부 에러 검출을 통해 칩 단위의 페일 여부를 나타내는 페일 비트를 출력하는 M 개의 DRAM 칩들(단, M 은 2 이상의 정수) 및 상기 M 개의 DRAM 칩들부터 상기 페일 비트들을 수신하고, 상기 페일 비트들에 대한 연산 동작을 통해 페일 정보를 생성하여 출력하는 버퍼 칩을 구비하는 것을 특징으로 한다.Further, the memory module according to another aspect of the technical idea of the present disclosure includes an in-DRAM error correction circuit (In-DRAM ECC), and outputs a fail bit indicating whether or not the chip unit fails through internal error detection And a buffer chip for receiving the fail bits from the M DRAM chips and generating and outputting fail information through a calculation operation on the fail bits, .

또한, 본 개시의 기술적 사상의 일 측면에 따른 메모리 컨트롤러의 동작방법은, 다수의 메모리 칩들로부터 데이터 및 이에 대응하는 패리티 코드를 수신하는 단계와, 상기 다수의 메모리 칩들 중 적어도 하나의 메모리 칩이 페일되었음을 나타내는 페일 정보를 수신하는 단계와, 상기 다수의 메모리 칩들 중 페일이 발생된 메모리 칩의 위치를 나타내는 페일 비트의 제공을 요청하는 단계 및 상기 페일 비트 및 상기 패리티 코드를 이용하여 상기 페일이 발생된 메모리 칩의 데이터를 복구하는 단계를 구비하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a method of operating a memory controller, the method comprising: receiving data and corresponding parity codes from a plurality of memory chips; Requesting a fail bit indicating a position of a failed memory chip among the plurality of memory chips, and using the fail bit and the parity code, And recovering the data of the memory chip.

또한, 본 개시의 기술적 사상의 일 측면에 따른 메모리 모듈의 동작방법은, 다수의 메모리 칩들에 저장된 데이터 및 상기 메모리 칩들의 페일을 복구하기 위한 패리티 코드를 독출하는 단계와, 상기 다수의 메모리 칩들 각각으로부터, 칩 내부 에러 검출 동작을 통해 칩 단위의 페일 여부를 나타내는 페일 비트를 생성하는 단계 및 상기 생성된 페일 비트에 대한 연산을 통해 생성된 페일 정보를 출력하는 단계를 구비하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a method of operating a memory module, comprising: reading data stored in a plurality of memory chips and a parity code for recovering failures of the memory chips; Generating a fail bit indicating whether or not a chip unit fails, through the chip internal error detecting operation, and outputting the fail information generated through the operation on the generated fail bit.

본 개시의 기술적 사상에 따른 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법에 따르면, 페일 칩의 위치를 나타내는 검출 코드를 생성함이 없이 페일된 메모리 칩의 데이터를 복구할 수 있으므로 반도체 메모리 장치의 제조 단가를 감소시킬 수 있는 효과가 있다.According to the operation method of the memory module, the memory module and the memory controller according to the technical idea of the present disclosure, the data of the failed memory chip can be recovered without generating the detection code indicating the position of the fail chip, There is an effect that the unit price can be reduced.

또한, 본 개시의 기술적 사상에 따른 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법에 따르면, 특정 메모리 칩에 별도의 검출 코드를 저장함이 없이 페일 칩의 데이터를 복구함과 함께 랜덤 에러 및/또는 멀티 비트 에러를 정정할 수 있으므로, 반도체 메모리 장치의 에러 정정 능력을 향상할 수 있는 효과가 있다.According to the operation method of the memory module, the memory module and the memory controller according to the technical idea of the present disclosure, it is possible to recover data of the fail chip without storing a separate detection code in a specific memory chip, The bit error can be corrected, so that the error correction capability of the semiconductor memory device can be improved.

도 1은 본 발명의 예시적 실시예에 따른 메모리 시스템을 나타내는 도면이다.
도 2는 본 발명의 다른 예시적 실시예에 따른 메모리 시스템을 나타내는 도면이다.
도 3은 본 발명의 또 다른 예시적 실시예에 따른 메모리 시스템을 나타내는 도면이다.
도 4는 본 발명의 예시적인 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 5는 본 발명의 다른 예시적인 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 6은 본 발명의 예시적인 실시예에 따른 메모리 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 7, 8은 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템의 구체적인 구현 예를 나타내는 블록도이다.
도 9는 도 7에 도시된 RCD의 일 구현 예를 나타내는 블록도이다.
도 10은 메모리 컨트롤러에서의 에러 정정 과정의 일 예를 나타내는 플로우차트이다.
도 11은 본 발명의 또 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다.
도 12는 본 발명의 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다.
도 13은 본 발명의 또 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다.
도 14는 본 발명의 또 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다.
도 15는 본 발명의 또 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다.
도 16은 본 발명의 변형 가능한 실시예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 플로우차트이다.
도 17은 본 발명의 일 실시 예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
1 is a diagram of a memory system in accordance with an exemplary embodiment of the present invention.
2 is a diagram of a memory system according to another exemplary embodiment of the present invention.
3 is a diagram of a memory system in accordance with another exemplary embodiment of the present invention.
4 is a flowchart showing an operation method of a semiconductor memory device according to an exemplary embodiment of the present invention.
5 is a flowchart showing an operation method of a semiconductor memory device according to another exemplary embodiment of the present invention.
Figure 6 is a block diagram illustrating a specific implementation of a memory system in accordance with an exemplary embodiment of the present invention.
Figures 7 and 8 are block diagrams illustrating specific implementations of a memory system in accordance with another illustrative embodiment of the present invention.
9 is a block diagram illustrating an embodiment of the RCD shown in FIG.
10 is a flowchart showing an example of an error correction process in the memory controller.
11 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention.
12 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention.
13 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention.
14 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention.
15 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention.
16 is a flowchart showing an operation method of the memory controller according to the modified embodiment of the present invention.
17 is a block diagram illustrating a data processing system in accordance with one embodiment of the present invention.

이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 예시적 실시예에 따른 메모리 시스템을 나타내는 도면이다.1 is a diagram of a memory system in accordance with an exemplary embodiment of the present invention.

도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(11) 및 반도체 메모리 장치(12)를 포함할 수 있으며, 반도체 메모리 장치(12)는 다수 개의 메모리 칩들(12_1 ~ 12_M)을 포함할 수 있다. 일 예로서, 반도체 메모리 장치(12)는 휘발성 메모리 칩으로서 다수 개의 다이나믹 랜덤 억세스 메모리 칩(DRAM Chip)들을 포함할 수 있다. DRAM 칩은 DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR (Low Power Double Data Rate) SDRAM, GDDR (Graphics Double Data Rate) SDRAM, RDRAM (Rambus Dynamic Random Access Memory) 등에 해당할 수 있다. 그러나, 본 발명의 실시예들은 이에 국한될 필요가 없으며, 일 예로서 반도체 메모리 장치(12)는 플래시(flash) 메모리, MRAM(Magnetic RAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM) 및 ReRAM(Resistive RAM) 등의 불휘발성 메모리로 구현되어도 무방하다. 또한, 메모리 칩들(12_1 ~ 12_M) 각각은 DDR, DDR2, DDR3, DDR4 및 DDR5 등과 같은 다양한 표준들에 따른 DRAM 칩에 해당할 수 있다. 1, a memory system 10 may include a memory controller 11 and a semiconductor memory device 12, and the semiconductor memory device 12 may include a plurality of memory chips 12_1 to 12_M. have. As an example, the semiconductor memory device 12 may include a plurality of dynamic random access memory chips (DRAM Chips) as volatile memory chips. The DRAM chip may correspond to a DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory), an LPDDR (Low Power Double Data Rate) SDRAM, a GDDR (Graphics Double Data Rate) SDRAM and a RDRAM (Rambus Dynamic Random Access Memory). For example, the semiconductor memory device 12 may include a flash memory, a magnetic RAM (MRAM), a ferroelectric RAM (FeRAM), a phase change RAM (PRAM) Or a nonvolatile memory such as ReRAM (Resistive RAM). Each of the memory chips 12_1 to 12_M may correspond to a DRAM chip according to various standards such as DDR, DDR2, DDR3, DDR4 and DDR5.

이하의 설명에서는, 메모리 칩들(12_1 ~ 12_M) 각각이 DRAM 칩인 것으로 지칭될 것이나, 상기 메모리 칩들(12_1 ~ 12_M)은 이외에도 다른 다양한 종류(예컨대, 불휘발성 메모리)의 칩으로 구현되어도 무방할 것이다.In the following description, each of the memory chips 12_1 to 12_M will be referred to as a DRAM chip. However, the memory chips 12_1 to 12_M may be implemented by chips of various other types (for example, nonvolatile memory).

일 실시예에 따라, 반도체 메모리 장치(12)는 다수 개의 DRAM 칩들(12_1 ~ 12_M)이 적층 구조를 갖는 반도체 패키지에 해당할 수 있다. 또는, 일 실시예에 따라, 반도체 메모리 장치(12)는 다수 개의 DRAM 칩들(12_1 ~ 12_M)이 모듈 보드에 장착된 메모리 모듈에 해당할 수 있다. 도 1에서는 하나의 반도체 메모리 장치(12)가 도시되었으나, 메모리 컨트롤러(11)는 다수 개의 반도체 메모리 장치들과 통신하여 데이터(DATA)를 기록하거나 독출할 수 있다. 또한, 이하의 실시예들에서는 반도체 메모리 장치(12)가 메모리 모듈에 해당하는 것으로 설명되나, 전술한 바와 같이 반도체 메모리 장치(12)는 다수의 DRAM 칩들을 포함하는 다양한 종류의 메모리 장치(예컨대, 메모리 패키지 등)에 해당하여도 무방할 것이다. According to an embodiment, the semiconductor memory device 12 may correspond to a semiconductor package having a stacked structure of a plurality of DRAM chips 12_1 to 12_M. Alternatively, according to one embodiment, the semiconductor memory device 12 may correspond to a memory module in which a plurality of DRAM chips 12_1 to 12_M are mounted on a module board. Although one semiconductor memory device 12 is shown in FIG. 1, the memory controller 11 may communicate with a plurality of semiconductor memory devices to write or read data (DATA). Although the semiconductor memory device 12 is described as being a memory module in the following embodiments, the semiconductor memory device 12 may include various types of memory devices including a plurality of DRAM chips (for example, A memory package, or the like).

메모리 컨트롤러(11)는 각종 신호들을 반도체 메모리 장치(12)로 제공하여 메모리 동작을 제어한다. 예컨대, 메모리 컨트롤러(11)는 데이터(DATA) 및 패리티 정보(Info_PAR)를 반도체 메모리 장치(12)로 제공하고, 반도체 메모리 장치(12)로부터 데이터(DATA) 및 패리티 정보(Info_PAR)를 독출할 수 있다. 메모리 컨트롤러(11)는 ECC 엔진(11_1)을 포함할 수 있으며, ECC 엔진(11_1)은 데이터(DATA) 및 패리티 정보(Info_PAR)를 이용한 에러 정정 동작을 통해 데이터(DATA)에 포함된 에러를 정정할 수 있다. 일 실시예에 따라, 메모리 컨트롤러(11)는 호스트로 지칭될 수 있으며, 호스트는 전반적인 처리 동작을 수행하는 중앙 처리 장치(CPU) 및 반도체 메모리 장치(12)의 억세스를 수행하는 컨트롤 모듈을 포함하는 것으로 정의될 수도 있다. 또는, 상기 호스트는 어플리케이션 프로세서(Application Processor)에 해당할 수 있다.The memory controller 11 provides various signals to the semiconductor memory device 12 to control the memory operation. For example, the memory controller 11 can supply data (DATA) and parity information (Info_PAR) to the semiconductor memory device 12 and can read data (DATA) and parity information (Info_PAR) from the semiconductor memory device 12 have. The memory controller 11 may include an ECC engine 11_1 and the ECC engine 11_1 corrects an error included in the data DATA through an error correction operation using data DATA and parity information Info_PAR can do. According to one embodiment, the memory controller 11 may be referred to as a host, and the host may include a central processing unit (CPU) that performs overall processing operations and a control module that performs access to the semiconductor memory device 12 . ≪ / RTI > Alternatively, the host may correspond to an application processor.

패리티 정보(Info_PAR)은 에러 정정 및/또는 페일 칩의 복구에 관련된 각종 정보들을 포함할 수 있다. 일 실시예에 따라, 에러 정정 및/또는 페일 칩의 복구를 위한 패리티 값을 갖는 패리티 코드(Parity code)가 상기 패리티 정보(Info_PAR)에 포함될 수 있다. 또한, 에러 정정 및/또는 페일 칩의 복구를 위해 에러가 발생된 위치나 페일 칩의 위치를 검출하기 위한 검출 코드(detection code)가 상기 패리티 정보(Info_PAR)에 더 포함될 수 있다. The parity information (Info_PAR) may include various information related to error correction and / or recovery of a fail chip. According to one embodiment, a parity code having a parity value for error correction and / or recovery of a fail chip may be included in the parity information (Info_PAR). Further, a detection code for detecting a position where an error has occurred or a position of a fail chip may be further included in the parity information (Info_PAR) for error correction and / or recovery of a fail chip.

일 실시예에 따라, DRAM 칩들(12_1 ~ 12_M) 각각에는 In DRAM ECC(미도시)가 채용될 수 있으며, 이에 따라 DRAM 칩들(12_1 ~ 12_M) 각각은 칩 내부에서 칩 레벨의 에러 검출/정정 동작을 수행할 수 있으며, 에러 검출 결과에 따라 DRAM 칩 내부 데이터의 에러를 정정하거나 에러 정정이 불가능함을 나타내는 정보(예컨대, 각 칩의 페일 여부를 나타내는 페일 비트)를 생성할 수 있다. 예컨대, 반도체 메모리 장치(12)가 M 개의 DRAM 칩들(12_1 ~ 12_M)을 포함함에 따라, M 개의 DRAM 칩들(12_1 ~ 12_M) 각각이 1 비트의 페일 비트를 생성하는 것으로 가정할 때, 반도체 메모리 장치(12) 내에서는 M 개의 DRAM 칩들(12_1 ~ 12_M)의 페일 상태를 나타내는 M 비트의 페일 비트들이 생성될 수 있다. According to one embodiment, an In DRAM ECC (not shown) may be employed in each of the DRAM chips 12_1 to 12_M, so that each of the DRAM chips 12_1 to 12_M performs chip level error detection / And it is possible to correct errors in the DRAM chip internal data or to generate information indicating that error correction is impossible (for example, a fail bit indicating whether or not each chip fails) in accordance with the error detection result. For example, assuming that the semiconductor memory device 12 includes M DRAM chips 12_1 to 12_M, each of the M DRAM chips 12_1 to 12_M generates a 1-bit fail bit, The M bits of fail bits indicating the fail state of the M DRAM chips 12_1 to 12_M can be generated in the memory 12.

일 실시예에 따라, 반도체 메모리 장치(12)는 M 비트의 페일 비트들을 이용하여 페일 정보(Info_F)를 생성할 수 있으며, 생성된 페일 정보(Info_F)를 메모리 컨트롤러(11)로 출력할 수 있다. 상기 페일 정보(Info_F)는 다양한 방식에 따라 생성될 수 있다. 일 예로서, 반도체 메모리 장치(12) 내의 M 개의 DRAM 칩들(12_1 ~ 12_M)로부터 M 비트에 해당하는 페일 비트들이 생성되고, 상기 페일 비트들을 연산한 결과에 기반하여 페일 정보(Info_F)가 생성될 수 있다. 예컨대, M 비트의 페일 비트들에 대한 XOR 연산이 수행됨으로써 페일 정보(Info_F)가 생성되고, 이에 따라 M 개의 DRAM 칩들(12_1 ~ 12_M) 중 적어도 하나의 DRAM 칩이 페일된 경우 페일 정보(Info_F)는 제1 로직 상태(예컨대, 로직 하이)를 가질 수 있다. 반면에, M 개의 DRAM 칩들(12_1 ~ 12_M)에 페일이 발생되지 않은 경우 페일 정보(Info_F)는 제2 로직 상태(예컨대, 로직 로우)를 가질 수 있다.According to one embodiment, the semiconductor memory device 12 may generate the fail information (Info_F) using the M bits of fail bits and output the generated fail information (Info_F) to the memory controller (11) . The fail information (Info_F) may be generated according to various methods. As an example, fail bits corresponding to M bits are generated from M DRAM chips 12_1 to 12_M in the semiconductor memory device 12, and fail information (Info_F) is generated based on the result of calculation of the fail bits . For example, the fail information (Info_F) is generated by performing the XOR operation on the M bits of the fail bits, thereby generating the fail information (Info_F) when at least one of the DRAM chips (12_1 to 12_M) May have a first logic state (e.g., logic high). On the other hand, the fail information Info_F may have a second logic state (e.g., logic low) when failures have not occurred in the M DRAM chips 12_1 to 12_M.

반도체 메모리 장치(12)는 페일 정보(Info_F)를 메모리 컨트롤러(11, 또는 호스트)로 제공하고, 메모리 컨트롤러(11)는 페일 정보(Info_F)에 기반하여 반도체 메모리 장치(12)에서 어느 DRAM 칩이 페일인지를 판단할 수 있다. 메모리 컨트롤러(11)의 ECC 엔진(11_1)은 페일 정보(Info_F)에 기반하여 패리티 정보(Info_PAR)를 이용한 에러 정정 동작 및/또는 페일 칩의 데이터 복구 동작을 수행할 수 있다. 메모리 컨트롤러(11)에서의 에러 검출/정정 동작은 모듈 레벨 또는 시스템 레벨의 에러 검출/정정 동작에 해당할 수 있다.The semiconductor memory device 12 provides the fail information Info_F to the memory controller 11 or the host and the memory controller 11 determines which DRAM chip is in the semiconductor memory device 12 based on the fail information Info_F It is possible to judge whether or not it is a failure. The ECC engine 11_1 of the memory controller 11 can perform the error correction operation using the parity information Info_PAR and / or the data recovery operation of the fail chip based on the fail information Info_F. The error detection / correction operation in the memory controller 11 may correspond to a module level or system level error detection / correction operation.

예컨대, 페일 정보(Info_F)가 페일된 DRAM 칩이 존재하지 않음을 나타낼 때, ECC 엔진(11_1)은 패리티 정보(Info_PAR)를 이용한 일반 에러 정정 동작을 수행함으로써 데이터(DATA)에 존재하는 에러를 정정할 수 있다. 일 예로서, 패리티 정보(Info_PAR)는 페일 칩의 데이터를 복구하기 위한 코드와 함께, 소정 개수의 비트(예컨대, 1 비트)의 에러를 검출 또는 정정하기 위한 코드 정보를 포함할 수 있으며, 페일된 DRAM 칩이 존재하지 않는 경우 데이터 복구 동작은 수행되지 않을 수 있다. 또한, 페일 정보(Info_F)가 적어도 하나의 페일된 DRAM 칩이 존재함을 나타낼 때, ECC 엔진(11_1)은 패리티 정보(Info_PAR)를 이용한 데이터(DATA) 복구 동작을 통해 페일된 DRAM 칩의 데이터를 복구할 수 있다. 이에 따라, 메모리 컨트롤러(11)는 반도체 메모리 장치(12)의 DRAM 칩들(12_1 ~ 12_M)의 페일 상태를 레포팅받고, 레포팅 결과에 따라 페일 칩의 데이터 복구 동작을 선택적으로 수행할 수 있다.For example, when the fail information (Info_F) indicates that there is no failed DRAM chip, the ECC engine 11_1 corrects an error present in the data (DATA) by performing a general error correcting operation using the parity information (Info_PAR) can do. As an example, the parity information (Info_PAR) may include code information for detecting or correcting a predetermined number of bits (for example, one bit) of error, together with code for recovering data of the fail chip, If there is no DRAM chip, a data recovery operation may not be performed. Further, when the fail information (Info_F) indicates that at least one failed DRAM chip exists, the ECC engine 11_1 stores the data of the failed DRAM chip through the data (DATA) recovery operation using the parity information (Info_PAR) It can be recovered. Accordingly, the memory controller 11 is informed of the fail status of the DRAM chips 12_1 to 12_M of the semiconductor memory device 12, and can selectively perform the data recovery operation of the fail chip according to the reporting result.

본 발명의 실시예들에서, 상기 페일 칩에 대한 데이터 복구 동작은 다양한 에러 정정 알고리즘을 통해 수행될 수 있다. 예컨대, 메모리 컨트롤러(11)는 리드-솔로몬 에러 정정 코드(Reed-Solomon Error Correction Code) 등 다양한 방식에 기반하는 데이터 복구 스킴(scheme)을 통해 페일 칩의 데이터를 복구할 수 있다.In embodiments of the present invention, the data recovery operation for the fail chip may be performed through various error correction algorithms. For example, the memory controller 11 may recover the data of the fail chip through a data recovery scheme based on various schemes such as a Reed-Solomon Error Correction Code.

메모리 컨트롤러(11)는 소정 단위의 데이터(예컨대, 32 또는 64 비트의 데이터)에 대해 내부 코딩(예컨대, ECC 코딩)을 통해 패리티 정보(Info_PAR)를 생성할 수 있다. 본 발명의 일 실시예에 따라, 패리티 정보(Info_PAR)는 페일 칩의 위치를 검출하기 위한 검출 코드를 포함함이 없이 데이터 복구 동작에 이용되는 패리티 코드만을 포함할 수 있다. 이에 따라, 메모리 컨트롤러(11)는 소정 단위의 데이터에 대한 인코딩 과정을 통해 패리티 코드만을 생성할 수 있다. 만약, 기존에 64 비트의 데이터에 대응하여 4 비트의 검출 코드가 생성된 경우, 본 발명의 실시예에 따르면 상기 4 비트의 검출 코드가 생성되거나 저장될 필요가 없으므로, 상기 검출 코드의 저장을 위한 자원(예컨대, DRAM 칩 또는 DRAM 칩의 저장 영역)이 감소될 수 있다. The memory controller 11 can generate parity information (Info_PAR) through internal coding (e.g., ECC coding) on a predetermined unit of data (e.g., 32 or 64 bits of data). According to an embodiment of the present invention, the parity information (Info_PAR) may include only the parity code used for the data recovery operation without including the detection code for detecting the position of the fail chip. Accordingly, the memory controller 11 can generate only a parity code through an encoding process for a predetermined unit of data. If a 4-bit detection code is generated corresponding to 64-bit data, the 4-bit detection code need not be generated or stored according to the embodiment of the present invention. Therefore, The resource (for example, the storage area of the DRAM chip or the DRAM chip) can be reduced.

또는, 변형 가능한 실시예에 따라, 메모리 컨트롤러(11)는 상기 소정 단위의 데이터에 대한 인코딩을 통해 패리티 코드 및 검출 코드를 모두 생성할 수 있다. 반면에, 메모리 컨트롤러(11)는 패리티 코드만을 반도체 메모리 장치(12)에 저장함으로써, 반도체 메모리 장치(12)에서 검출 코드의 저장을 위한 자원이 감소될 수 있다. Alternatively, according to a variant embodiment, the memory controller 11 may generate both a parity code and a detection code through encoding for the predetermined unit of data. On the other hand, by storing only the parity code in the semiconductor memory device 12, the memory controller 11 can reduce resources for storing the detection code in the semiconductor memory device 12. [

또한, 변형 가능한 실시예에 따라, 메모리 컨트롤러(11)는 상기 소정 단위의 데이터에 대한 인코딩을 통해 페일 칩의 데이터 복구를 위한 패리티 코드 및 추가의 에러 정정을 위한 코드 정보를 생성할 수 있다. 상기 코드 정보는 반도체 메모리 장치(12)에서 기존에 검출 코드의 저장을 위한 자원에 저장될 수 있다. 즉, 본 변형 가능한 실시예에 따르면 코드 또는 각종 정보들의 저장을 위한 자원을 증가함이 없이 추가의 에러 정정(예컨대, 랜덤 에러 및/또는 멀티 비트 에러 정정)을 위한 코드 정보가 반도체 메모리 장치(12)에 저장될 수 있으며, 이를 통해 반도체 메모리 장치(12)의 데이터 신뢰도가 향상될 수 있다. In addition, according to the deformable embodiment, the memory controller 11 can generate parity code for data recovery of a fail chip and code information for additional error correction through encoding of the predetermined unit of data. The code information may be stored in a resource for storing the detection code in the semiconductor memory device 12. [ That is, according to this variant embodiment, code information for additional error correction (e.g., random error and / or multi-bit error correction) can be provided to semiconductor memory device 12 ), Whereby the data reliability of the semiconductor memory device 12 can be improved.

본 발명의 예시적인 실시예에 따라, 상기 패리티 코드에는 페일 칩의 데이터 복구를 위한 코드 이외에, 적어도 하나의 일반 에러를 정정하기 위한 코드가 더 포함될 수도 있다. 또한, 본 발명의 실시예에 따라 기존에 검출 코드의 저장을 위한 자원에 저장되는 추가의 코드 정보는, 설명의 편의상 상기 패리티 코드와 구분되는 구성인 것으로 설명될 것이나, 상기 추가의 코드 정보가 패리티 코드에 포함되는 것으로 정의되어도 무방할 것이다.According to an exemplary embodiment of the present invention, the parity code may further include code for correcting at least one general error, in addition to the code for data recovery of the fail chip. Further, according to an embodiment of the present invention, additional code information stored in a resource for storing a detection code will be described as being configured to be distinguished from the parity code for convenience of explanation. However, It may be defined as being included in the code.

또한, 변형 가능한 실시예에 따라, 메모리 컨트롤러(11)는 반도체 메모리 장치(12)로부터 에러 상태를 레포팅받을 수 있으므로, 상기 소정 단위의 데이터에 대한 인코딩을 통해 최소의 사이즈를 갖는 검출 코드만을 생성할 수 있다. 일 예로서, 다양한 방식의 인코딩들 중 검출 코드의 사이즈를 최소화할 수 있는 인코딩 방식이 메모리 컨트롤러(11)에 적용될 수 있으며, 상기 최소화된 사이즈를 갖는 검출 코드가 반도체 메모리 장치(12)에 저장될 수 있다. 예컨대, 기존의 4 비트의 검출 코드보다 작은 사이즈(예컨대, 2 비트)의 검출 코드가 생성되어 반도체 메모리 장치(12)에 저장되고, 이로 인해 추가로 활용될 수 있는 자원에는 전술한 추가의 에러 정정을 위한 코드 정보나, 또는 다른 다양한 용도의 정보(예컨대, 반도체 메모리 장치가 캐쉬로 이용되는 경우 인덱스 또는 태그 정보 등)가 저장될 수 있다.Further, according to the deformable embodiment, since the memory controller 11 can receive an error status from the semiconductor memory device 12, the memory controller 11 generates only the detection code having the smallest size through encoding of the predetermined unit of data . As an example, an encoding scheme capable of minimizing the size of the detected code among various types of encodings can be applied to the memory controller 11, and a detection code having the minimized size is stored in the semiconductor memory device 12 . For example, a detection code smaller than the existing 4-bit detection code (e.g., 2 bits) is generated and stored in the semiconductor memory device 12, and the resources that can be further utilized thereby include the above- (E.g., index or tag information when the semiconductor memory device is used as a cache, and the like) can be stored.

도 1에 도시된 실시예에 따르면, 페일 칩의 위치를 판단하기 위한 검출 코드가 저장될 필요가 없으므로 반도체 메모리 장치(12)에 구비되는 DRAM 칩의 개수가 감소될 수 있다. 또한, 기존의 검출 코드를 저장하기 위한 자원을 추가의 에러 검출 및 정정(예컨대, 랜덤 에러나 멀티 비트 에러의 정정)을 저장하기 위한 자원으로 활용할 수 있으므로, 메모리 시스템(10)의 데이터 신뢰도가 향상될 수 있다.According to the embodiment shown in FIG. 1, since the detection code for determining the position of the fail chip does not need to be stored, the number of DRAM chips provided in the semiconductor memory device 12 can be reduced. Further, since the resource for storing the existing detection code can be utilized as a resource for storing additional error detection and correction (e.g., random error or correction of multi-bit error), data reliability of the memory system 10 can be improved .

도 2는 본 발명의 다른 예시적 실시예에 따른 메모리 시스템을 나타내는 도면이다. 도 2에 도시된 구성들을 설명함에 있어서, 도 1에 도시된 것과 동일한 구성은 그 동작 또한 동일 또는 유사하므로, 이에 대한 구체적인 설명은 생략된다.2 is a diagram of a memory system according to another exemplary embodiment of the present invention. In the description of the configurations shown in FIG. 2, the same configurations as those shown in FIG. 1 are the same or similar in their operation, and a detailed description thereof will be omitted.

도 2를 참조하면, 메모리 시스템(100)은 메모리 컨트롤러(110) 및 반도체 메모리 장치(120)를 포함할 수 있으며, 반도체 메모리 장치(120)는 DRAM 칩들(121_1 ~ 121_M)을 포함할 수 있다. 또한, 메모리 컨트롤러(110)는 ECC 엔진(111_1)을 포함할 수 있다. Referring to FIG. 2, the memory system 100 may include a memory controller 110 and a semiconductor memory device 120, and the semiconductor memory device 120 may include DRAM chips 121_1 to 121_M. In addition, the memory controller 110 may include an ECC engine 111_1.

전술한 실시예에서와 같이, DRAM 칩들(121_1 ~ 121_M) 각각은 In DRAM ECC(미도시)를 포함하고, 독출된 데이터에 대한 칩 레벨의 에러 검출 동작을 통해 에러 정정이 불가능함을 나타내는 페일 비트를 생성할 수 있다. 즉, 반도체 메모리 장치(120)의 DRAM 칩들(121_1 ~ 121_M)로부터 M 비트의 페일 비트(Fail[1:M])가 생성될 수 있으며, M 비트의 페일 비트(Fail[1:M])를 이용한 연산 동작을 통해 페일 정보(Info_F)가 생성되어 메모리 컨트롤러(110)로 출력될 수 있다.As in the above embodiment, each of the DRAM chips 121_1 to 121_M includes an In DRAM ECC (not shown), and a fail bit indicating that error correction is impossible through a chip level error detection operation on the read data Lt; / RTI > That is, M bits of fail bits (Fail [1: M]) can be generated from the DRAM chips 121_1 to 121_M of the semiconductor memory device 120, and M bits of fail bits [Fail [1: M] Fail information (Info_F) can be generated and output to the memory controller (110) through the used operation operation.

일 실시예에 따라, DRAM 칩들(121_1 ~ 121_M) 각각으로부터 1 비트의 페일 비트가 생성됨에 따라 반도체 메모리 장치(120)에서 M 비트의 페일 비트(Fail[1:M])가 생성되는 것으로 설명되었으나 본 발명의 실시예는 이에 국한될 필요는 없다. 일 예로서, DRAM 칩들(121_1 ~ 121_M) 각각으로부터 2 비트 이상의 페일 비트가 생성되거나, 또는 DRAM 칩들(121_1 ~ 121_M) 중 일부(예컨대, 데이터를 저장하는 DRAM 칩들)의 칩들에서만 페일 비트가 생성되는 경우, 반도체 메모리 장치(120)에서 생성되는 페일 비트(Fail[1:M])의 비트 수는 변동될 수 있을 것이다. According to one embodiment, a failure bit (Fail [1: M]) of M bits is generated in the semiconductor memory device 120 as a 1-bit fail bit is generated from each of the DRAM chips 121_1 to 121_M The embodiment of the present invention need not be limited to this. For example, two or more fail bits may be generated from each of the DRAM chips 121_1 to 121_M, or a fail bit may be generated only in chips of some of the DRAM chips 121_1 to 121_M (for example, DRAM chips storing data) The number of bits of the fail bit (Fail [1: M]) generated in the semiconductor memory device 120 may be varied.

또한, 일 실시예에 따라, M 비트의 페일 비트(Fail[1:M])를 이용한 연산 동작을 통해 생성되는 페일 정보(Info_F)는 1 비트에 해당할 수 있다. 또는, M 비트의 페일 비트(Fail[1:M])를 이용한 연산 동작이 다른 다양한 연산 과정을 통해 생성되는 경우에는 페일 정보(Info_F)는 다른 개수의 비트들을 포함할 수 있다.Also, according to an embodiment, the fail information (Info_F) generated through the arithmetic operation using the M bits of the fail bit (Fail [1: M]) may correspond to one bit. Alternatively, if the operation using the M bits of the fail bit (Fail [1: M]) is generated through various other calculation processes, the fail information Info_F may include a different number of bits.

도 2에 도시된 실시예에서, 반도체 메모리 장치(120)는 데이터(DATA) 및 패리티 정보(Info_PAR)와 함께 페일 정보(Info_F)를 메모리 컨트롤러(110)로 출력할 수 있다. 패리티 정보(Info_PAR)를 통해 하나 이상의 일반 에러가 정정이 가능한 것으로 가정할 때, DRAM 칩들(121_1 ~ 121_M)에서 칩 단위의 페일이 발생되지 않은 경우에는, 메모리 컨트롤러(110)는 수신된 패리티 정보(Info_PAR)를 이용한 일반 정정 동작을 통해 데이터(DATA)에 존재하는 하나 이상의 일반 에러를 정정할 수 있다. 반면에, 페일 정보(Info_F)가 제1 로직 레벨을 갖는 경우 메모리 컨트롤러(110)는 적어도 하나의 DRAM 칩이 페일임을 판단할 수 있으며, 반도체 메모리 장치(120)로 별도의 커맨드를 제공함으로써 반도체 메모리 장치(120) 내에 저장된 페일 비트(Fail[1:M])를 독출할 수 있다. 메모리 컨트롤러(110)는 페일 비트(Fail[1:M])를 통해 칩 단위의 페일이 발생된 DRAM 칩의 위치를 판단할 수 있으며, 페일 비트(Fail[1:M]) 및 패리티 정보(Info_PAR)를 이용하여 페일된 DRAM 칩의 데이터(DATA)를 복구할 수 있다.2, the semiconductor memory device 120 may output fail information (Info_F) to the memory controller 110 together with data (DATA) and parity information (Info_PAR). If a chip-level failure is not generated in the DRAM chips 121_1 to 121_M, it is assumed that one or more general errors can be corrected through the parity information (Info_PAR), the memory controller 110 stores the received parity information Info_PAR) to correct one or more generic errors present in the data (DATA). On the other hand, if fail information (Info_F) has a first logic level, the memory controller 110 can determine that at least one DRAM chip is a failure, and by providing a separate command to the semiconductor memory device 120, The fail bit (Fail [1: M]) stored in the device 120 can be read. The memory controller 110 can determine the position of the DRAM chip in which the fail of the chip unit is generated through the fail bit (Fail [1: M]) and the fail bit (Fail [1: M]) and the parity information ) Can be used to recover the data (DATA) of a failed DRAM chip.

도 3은 본 발명의 또 다른 예시적 실시예에 따른 메모리 시스템을 나타내는 도면이다. 도 3에 도시된 구성들을 설명함에 있어서, 도 1 및 도 2에 도시된 것과 동일한 구성은 그 동작 또한 동일 또는 유사하므로, 이에 대한 구체적인 설명은 생략된다.3 is a diagram of a memory system in accordance with another exemplary embodiment of the present invention. In describing the configurations shown in FIG. 3, the same configurations as those shown in FIG. 1 and FIG. 2 are the same or similar in their operation, so a detailed description thereof will be omitted.

도 3을 참조하면, 메모리 시스템(200)은 메모리 컨트롤러(210) 및 반도체 메모리 장치(220)를 포함할 수 있으며, 반도체 메모리 장치(220)는 M 개의 DRAM 칩들(221_1 ~ 221_M)을 포함할 수 있다. 또한, 메모리 컨트롤러(210)는 ECC 엔진(211_1)을 포함할 수 있다. 또한, 반도체 메모리 장치(220)는 별도의 페일 정보를 생성하기 위한 연산 과정 없이, M 개의 DRAM 칩들(221_1 ~ 221_M)로부터 생성된 페일 비트(Fail[1:M])를 메모리 컨트롤러(210)로 출력할 수 있다.3, the memory system 200 may include a memory controller 210 and a semiconductor memory device 220, and the semiconductor memory device 220 may include M DRAM chips 221_1 to 221_M. have. In addition, the memory controller 210 may include an ECC engine 211_1. In addition, the semiconductor memory device 220 transmits the fail bit (Fail [1: M]) generated from the M DRAM chips 221_1 to 221_M to the memory controller 210 without an arithmetic operation for generating separate fail information Can be output.

M 개의 DRAM 칩들(221_1 ~ 221_M) 중 M-1 개의 DRAM 칩에는 데이터(DATA)가 저장될 수 있으며, 나머지 1 개의 DRAM 칩에는 패리티 정보(Info_PAR)가 저장될 수 있다. 또한, 반도체 메모리 장치(220)는 M 개의 DRAM 칩들(221_1 ~ 221_M) 각각에서 독출되는 데이터(DATA) 또는 패리티 정보(Info_PAR)를 메모리 컨트롤러(210)로 출력하기 위한 M 개의 포트들을 포함할 있으며, 각각의 포트는 다수 개의 핀들을 포함할 수 있다. 만약, DRAM 칩들(221_1 ~ 221_M) 각각이 4 비트 단위로 데이터(DATA) 또는 패리티 정보(Info_PAR)를 출력하는 경우, 각각의 포트는 4 개의 핀들을 포함할 수 있다.Data (DATA) may be stored in M-1 DRAM chips among the M DRAM chips 221_1 to 221_M, and parity information (Info_PAR) may be stored in the remaining one DRAM chip. The semiconductor memory device 220 includes M ports for outputting data (DATA) or parity information (Info_PAR) read from each of the M DRAM chips 221_1 to 221_M to the memory controller 210, Each port may include a plurality of pins. If each of the DRAM chips 221_1 to 221_M outputs data (DATA) or parity information (Info_PAR) on a 4-bit basis, each port may include four pins.

전술한 바와 같이 반도체 메모리 장치(220)에서 검출 코드(detection code)가 저장되는 DRAM 칩이 제거될 수 있으며, 이에 따라 반도체 메모리 장치(220)는 상기 제거된 DRAM 칩에 대응하는 포트를 더 포함할 수 있다. 즉, 반도체 메모리 장치(220)는 M 개의 DRAM 칩들(221_1 ~ 221_M)에 대응하여 (M+1) 개의 포트들을 포함할 수 있다. 일 실시예에 따라, 페일 비트(Fail[1:M])는 상기 제거된 DRAM 칩에 대응하는 추가 포트를 통해 메모리 컨트롤러(210)로 제공될 수 있다. 메모리 컨트롤러(210)는 페일 비트(Fail[1:M])에 기반하여 페일이 발생된 DRAM 칩의 위치를 판단하고, 페일 비트(Fail[1:M]) 및 패리티 정보(Info_PAR)를 이용하여 페일된 DRAM 칩의 데이터(DATA)를 복구할 수 있다.As described above, the DRAM chip in which the detection code is stored in the semiconductor memory device 220 may be removed, so that the semiconductor memory device 220 further includes a port corresponding to the removed DRAM chip . That is, the semiconductor memory device 220 may include (M + 1) ports corresponding to the M DRAM chips 221_1 to 221_M. According to one embodiment, the fail bit (Fail [1: M]) may be provided to the memory controller 210 via an additional port corresponding to the removed DRAM chip. The memory controller 210 determines the position of the failed DRAM chip based on the fail bit (Fail [1: M]) and uses the fail bit (Fail [1: M]) and the parity information (Info_PAR) The data (DATA) of the failed DRAM chip can be recovered.

도 4는 본 발명의 예시적인 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다. 4 is a flowchart showing an operation method of a semiconductor memory device according to an exemplary embodiment of the present invention.

도 4를 참조하면, 반도체 메모리 장치는 다수 개의 DRAM 칩들을 포함하고, 다수 개의 DRAM 칩들 각각에 In DRAM ECC가 채용됨에 따라 칩 내 ECC를 이용한 페일 검출 동작이 수행될 수 있다(S11). 일 예로서, DRAM 칩들 각각은 정정이 불가능한 에러가 발생하였을 때 해당 DRAM 칩이 페일된 것으로 판단하고, 이에 따른 페일 비트를 생성할 수 있다. 또한, 각각의 DRAM 칩은 페일 검출 결과로서 1 비트에 해당하는 페일 비트를 생성할 수 있으며, 반도체 메모리 장치가 M 개의 DRAM 칩들을 포함함에 따라 반도체 메모리 장치 내에서 M 비트에 해당하는 페일 비트가 생성될 수 있다.Referring to FIG. 4, the semiconductor memory device includes a plurality of DRAM chips, and an In DRAM ECC is employed in each of the plurality of DRAM chips, so that fail detection using the in-chip ECC can be performed (S11). As an example, each of the DRAM chips may determine that a corresponding DRAM chip is failed when an uncorrectable error occurs, and may generate a fail bit according to the failure. In addition, each DRAM chip can generate a fail bit corresponding to one bit as a result of fail detection, and a fail bit corresponding to M bits is generated in the semiconductor memory device as the semiconductor memory device includes M DRAM chips .

반도체 메모리 장치는 페일 검출 결과를 이용한 연산을 수행하고, 연산 결과에 따른 페일 정보를 메모리 컨트롤러로 출력할 수 있다(S12). 예컨대, M 개의 DRAM 칩들로부터 생성된 M 개의 비트의 페일 비트에 대한 XOR 연산을 통해 1 비트의 페일 정보가 생성될 수 있다. 페일 정보가 제1 로직 상태에 해당하는 경우에는 M 개의 DRAM 칩들 중 적어도 하나의 DRAM 칩이 페일되었음을 나타내고, 페일 정보가 제2 로직 상태에 해당하는 경우에는 M 개의 DRAM 칩들에 페일이 발생되지 않았음을 나타낼 수 있다.The semiconductor memory device performs calculation using the fail detection result and outputs fail information according to the calculation result to the memory controller (S12). For example, 1-bit fail information can be generated by performing an XOR operation on M-bit fail bits generated from M DRAM chips. If the fail information corresponds to the first logic state, at least one DRAM chip among the M DRAM chips is failed, and if the fail information corresponds to the second logic state, failures have not occurred in the M DRAM chips. Lt; / RTI >

메모리 컨트롤러는 페일 정보의 로직 상태에 기반하여 페일 칩의 데이터를 복구하기 위한 복구 동작을 선택적으로 수행할 수 있으며, 페일 정보가 제1 로직 상태에 해당함에 따라 반도체 메모리 장치는 메모리 컨트롤러로부터 페일 비트의 제공 요청을 수신할 수 있다(S13). 반도체 메모리 장치 내의 소정의 저장 회로(예컨대, 레지스터)에는 앞서 생성된 M 개의 비트를 포함하는 페일 비트가 일시적으로 저장될 수 있으며, 반도체 메모리 장치는 상기 메모리 컨트롤러로부터의 요청에 응답하여 저장 회로에 저장된 M 비트의 페일 비트를 메모리 컨트롤러로 출력할 수 있다(S14).The memory controller may selectively perform a recovery operation for recovering data of the fail chip based on the logic state of the fail information. When the fail information corresponds to the first logic state, the semiconductor memory device receives the fail bit from the memory controller (S13). A fail bit including the previously generated M bits may be temporarily stored in a predetermined storage circuit (e.g., a register) in the semiconductor memory device, and the semiconductor memory device may store the fail bit stored in the storage circuit in response to the request from the memory controller M-bit fail bits can be output to the memory controller (S14).

도 5는 본 발명의 다른 예시적인 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다. 도 5의 실시예에서, 반도체 메모리 장치는 M 개의 DRAM 칩들을 포함하고, 각각의 DRAM 칩으로부터의 데이터 또는 패리티 정보는 하나의 포트를 통해 출력되며, 반도체 메모리 장치는 M 개의 DRAM 칩들에 대응하여 (M+1) 개의 포트들을 포함하는 것으로 가정된다. 또한, 본 발명의 실시예에 따라 패리티 정보는 검출 코드를 포함하지 않는 것으로 가정된다.5 is a flowchart showing an operation method of a semiconductor memory device according to another exemplary embodiment of the present invention. In the embodiment of FIG. 5, the semiconductor memory device includes M DRAM chips, wherein data or parity information from each DRAM chip is output through one port, and the semiconductor memory device corresponds to M DRAM chips M + 1) ports. Also, it is assumed that parity information does not include a detection code according to an embodiment of the present invention.

도 5를 참조하면, 반도체 메모리 장치는 데이터와 함께 페일 칩의 데이터를 복구하는 데 이용되는 패리티 코드를 저장할 수 있으며, 일 예로서 (M-1) 개의 DRAM 칩들에는 데이터가 저장되고 나머지 1 개의 DRAM 칩에는 패리티 코드가 저장될 수 있다. 메모리 컨트롤러로부터의 독출 요청에 따라, 반도체 메모리 장치의 M 개의 DRAM 칩들로부터 데이터 및 패리티 코드가 독출될 수 있다(S21).Referring to FIG. 5, a semiconductor memory device may store a parity code used to recover data of a fail chip together with data. In one example, data is stored in (M-1) DRAM chips, The chip may store a parity code. In response to the read request from the memory controller, data and parity codes can be read from the M DRAM chips of the semiconductor memory device (S21).

또한, 상기 데이터 및 패리티 코드의 독출 과정에서 M 개의 DRAM 칩들 각각에 구비되는 In DRAM ECC를 이용하여 각 DRAM 칩 별로 정정 불가능한 에러가 발생되었는지 여부에 따라 페일이 검출될 수 있다(S22). 또한, 페일 발생 여부를 검출한 결과에 따라 각각의 DRAM 칩에서 1 비트의 페일 비트가 생성될 수 있으며, 이에 따라 반도체 메모리 장치에서 M 비트에 해당하는 페일 비트가 생성될 수 있다(S23).Also, in the process of reading the data and the parity code, a fail may be detected depending on whether or not an uncorrectable error has occurred for each DRAM chip using the In DRAM ECC included in each of the M DRAM chips (S22). In addition, a 1-bit fail bit may be generated in each DRAM chip according to a result of detecting the occurrence of a fail, so that a fail bit corresponding to M bits can be generated in the semiconductor memory device (S23).

상기 데이터 및 패리티 코드와 상기 생성된 페일 비트가 (M+1) 개의 포트들을 통해 출력될 수 있으며, 일 예로서 데이터, 패리티 코드 및 페일 비트는 (M+1) 개의 포트들을 통해 병렬하게 출력될 수 있다. 예컨대, 반도체 메모리 장치에 구비되는 M 개의 DRAM 칩들로부터의 데이터 및 패리티 코드는 대응하는 M 개의 포트들을 통해 출력될 수 있다(S24). 반면에, 반도체 메모리 장치는 상기 M 개의 DRAM 칩들에 대응하지 않는 추가의 포트가 구비되고, 상기 페일 비트는 (M+1) 개의 포트들 중 상기 추가의 포트를 통해 출력될 수 있다(S25). 예컨대, 상기 (M+1) 개의 포트들 각각은 동일한 개수의 핀들을 포함할 수 있으며, 본 발명의 실시예에 따라 검출 코드를 저장하기 위한 하나의 DRAM 칩이 반도체 메모리 장치에서 제거되는 경우, 상기 추가의 포트는 반도체 메모리 장치에서 제거된 DRAM 칩에 대응하는 포트일 수 있다.The data, the parity code and the generated fail bit may be output through (M + 1) ports. In one example, the data, the parity code and the fail bit are outputted in parallel through the (M + 1) . For example, data and parity codes from M DRAM chips provided in the semiconductor memory device may be output through the corresponding M ports (S24). On the other hand, the semiconductor memory device is provided with an additional port that does not correspond to the M DRAM chips, and the fail bit may be output through the additional one of the (M + 1) ports (S25). For example, each of the (M + 1) ports may include the same number of pins, and when one DRAM chip for storing a detection code according to the embodiment of the present invention is removed from the semiconductor memory device, The additional port may be a port corresponding to the DRAM chip removed from the semiconductor memory device.

도 6은 본 발명의 예시적인 실시예에 따른 메모리 시스템의 구체적인 구현 예를 나타내는 블록도이다. Figure 6 is a block diagram illustrating a specific implementation of a memory system in accordance with an exemplary embodiment of the present invention.

도 6을 참조하면, 메모리 시스템(300)은 메모리 컨트롤러(310) 및 반도체 메모리 장치를 포함할 수 있으며, 반도체 메모리 장치는 M 개의 DRAM 칩들(321_1 ~ 321_M)이 모듈 보드(module board) 상에 장착된 메모리 모듈(320)을 포함할 수 있다. 또한, 메모리 컨트롤러(310)는 ECC 엔진(311_1)을 포함할 수 있다. 또한, 메모리 모듈(320)은 모듈 보드 상에 장착되고 메모리 컨트롤러(310)로부터 커맨드 및 어드레스를 수신하고 이를 M 개의 DRAM 칩들(321_1 ~ 321_M)로 전달하는 RCD(register clock driver, 322)를 더 포함할 수 있다. 일 실시예에 따라, 상기 RCD(322)는 별도의 반도체 칩으로 구현되어 모듈 보드 상에 장착될 수 있다. 또한, 상기 RCD가 배치된 반도체 칩은 커맨드/어드레스 및/또는 페일 비트(Fail 1 ~ Fail M)를 일시적으로 저장하는 점에서 버퍼 칩으로 지칭될 수 있을 것이다.6, the memory system 300 may include a memory controller 310 and a semiconductor memory device, wherein the semiconductor memory device includes M DRAM chips 321_1 to 321_M mounted on a module board And a memory module 320 coupled to the memory module. In addition, the memory controller 310 may include an ECC engine 311_1. The memory module 320 further includes a register clock driver 322 mounted on the module board and receiving a command and an address from the memory controller 310 and delivering the command and address to the M DRAM chips 321_1 to 321_M can do. According to one embodiment, the RCD 322 may be implemented as a separate semiconductor chip and mounted on a module board. In addition, the semiconductor chip in which the RCD is disposed may be referred to as a buffer chip in that it temporarily stores a command / address and / or a fail bit (Fail 1 to Fail M).

메모리 모듈(320)은 다양한 형태의 모듈로 구현될 수 있다. 일 예로서, 메모리 모듈(320)은 서버에 주로 이용되는 듀얼 인-라인 메모리 모듈(Dual in-line memory module, DIMM)에 해당할 수 있다. 또한, 메모리 모듈(320)은 다양한 종류의 DIMM에 해당할 수 있으며, 예컨대 FB-DIMM 및 LR-DIMM 등 다양한 종류의 DIMM이 메모리 모듈(320)에 적용될 수 있다. 또는, 메모리 모듈(320)은 전원이 종료되면 데이터가 손실되는 휘발성 메모리의 문제를 보완하기 위해 불휘발성 메모리(예컨대, 플래시 메모리, 미도시)가 탑재된 NVDIMM(Non-volatile DIMM)에 해당할 수 있다. 그러나, 본 발명의 실시예들은 이에 국한될 필요가 없으며, SIMM(Single in-line memory module), SO-DIMM(Small-outline DIMM), UDIMM(Unbuffered DIMM), RBDIMM(Rank-buffered DIMM), mini-DIMM 및 micro-DIMM 등 다양한 메모리 모듈에 본 발명의 실시예가 적용될 수 있을 것이다.The memory module 320 may be implemented with various types of modules. As an example, the memory module 320 may correspond to a dual in-line memory module (DIMM) that is mainly used in a server. In addition, the memory module 320 may correspond to various kinds of DIMMs, and various types of DIMMs such as an FB-DIMM and an LR-DIMM may be applied to the memory module 320. Alternatively, the memory module 320 may correspond to a non-volatile DIMM (NVDIMM) equipped with a nonvolatile memory (e.g., flash memory, not shown) to compensate for the problem of volatile memory in which data is lost when the power is turned off have. However, embodiments of the present invention need not be limited thereto, and may be implemented in a single in-line memory module (SIMM), a small-outline DIMM (SO-DIMM), a unbuffered DIMM (UDIMM), a rank- Embodiments of the present invention may be applied to various memory modules such as a DIMM and a micro-DIMM.

도 6에 도시된 바와 같이, 메모리 컨트롤러(310)는 데이터(DATA) 및 패리티 정보를 생성하여 메모리 모듈(320)로 제공할 수 있다. 본 실시예에서, 검출 코드가 메모리 모듈(320)에 저장되지 않음에 따라, 패리티 코드(Parity)만이 선택적으로 패리티 정보로서 메모리 모듈(320)로 제공될 수 있다. 메모리 컨트롤러(310)는 M 개의 DRAM 칩들(321_1 ~ 321_M)에 대응하여 M 개의 입출력 포트들(미도시)을 포함할 수 있다. M 개의 DRAM 칩들(321_1 ~ 321_M)에는 데이터(DATA) 및 패리티 코드(Parity)가 저장되고, 패리티 코드(Parity)는 데이터(DATA)를 저장하는 (M-1) 개의 DRAM 칩들(321_1 ~ 321_(M-1))에 발생된 칩 단위의 페일을 복구하기 위한 정보로서 이용될 수 있다.As shown in FIG. 6, the memory controller 310 may generate data (DATA) and parity information and provide it to the memory module 320. In this embodiment, as the detection code is not stored in the memory module 320, only the parity code (Parity) can be selectively provided to the memory module 320 as parity information. The memory controller 310 may include M input / output ports (not shown) corresponding to the M DRAM chips 321_1 to 321_M. Data (DATA) and parity code (Parity) are stored in M DRAM chips 321_1 to 321_M and parity codes are stored in (M-1) DRAM chips 321_1 to 321_ M-1) of the failure of the chip unit.

M 개의 DRAM 칩들(321_1 ~ 321_M) 각각은 In DRAM ECC(ECC)를 포함하고, In DRAM ECC는 각각의 대응하는 DRAM 칩에서 독출된 데이터(DATA) 또는 패리티 코드(Parity)에 정정 불가능한 에러가 발생되었는 지 여부를 검출하여 페일 비트를 생성할 수 있다. 일 예로서, M 개의 DRAM 칩들(321_1 ~ 321_M)로부터 M 개의 비트들을 갖는 페일 비트(Fail 1 ~ Fail M)가 생성되고, 모듈 보드 상의 배선을 통해 RCD(322)로 제공될 수 있다. Each of the M DRAM chips 321_1 to 321_M includes an In DRAM ECC (ECC), and the In DRAM ECC generates an uncorrectable error in data (DATA) or parity code (Parity) read from each corresponding DRAM chip The fail bit can be generated. As an example, the fail bits (Fail 1 to Fail M) having M bits from the M DRAM chips 321_1 to 321_M may be generated and provided to the RCD 322 through the wirings on the module board.

RCD(322)는 수신된 페일 비트(Fail 1 ~ Fail M)에 대한 연산 처리를 수행함으로써 페일 정보(Info_F)를 생성할 수 있다. 일 실시예에 따라, 페일 정보(Info_F)는 모듈 보드에 형성되는 레포트 핀에 해당하는 별도의 단자(323)를 통해 메모리 컨트롤러(310)로 제공될 수 있다. 또한, 일 예로서, 상기 별도의 단자는 하나의 비트를 출력하는 하나의 핀을 포함할 수 있으며, RCD(322)는 페일 비트(Fail 1 ~ Fail M)에 기반하여 1 비트의 페일 정보(Info_F)를 생성하고 이를 별도의 단자(323)를 통해 메모리 컨트롤러(310)로 제공할 수 있다. 일 실시예에 따라, 메모리 모듈(320)이 NVDIMM에 해당하는 경우 NVDIMM 형태의 메모리 모듈에서 불휘발성 메모리의 동작과 관련하여 정의되는 에러 레포트 핀이 본 발명의 실시예에 따른 페일 정보(Info_F)를 출력하기 위한 상기 별도의 단자(323)로 이용될 수 있다.RCD 322 can generate fail information (Info_F) by performing arithmetic processing on the received fail bits (Fail 1 to Fail M). According to one embodiment, the fail information Info_F may be provided to the memory controller 310 via a separate terminal 323 corresponding to a report pin formed on the module board. Also, as an example, the separate terminal may include one pin for outputting one bit, and the RCD 322 may generate 1-bit fail information (Info_F And may provide it to the memory controller 310 through a separate terminal 323. [ According to one embodiment, when the memory module 320 corresponds to an NVDIMM, an error report pin defined in relation to the operation of the nonvolatile memory in the memory module of the NVDIMM type is used as the fail information (Info_F) according to the embodiment of the present invention. And may be used as the separate terminal 323 for outputting.

한편, 전술한 바와 같이 메모리 컨트롤러(310)는 페일 정보(Info_F)를 수신하고 이에 기반하여 에러 정정 동작 및/또는 데이터 복구 동작을 수행할 수 있다. 일 예로서, 페일 정보(Info_F)의 로직 상태에 따라 칩 단위의 페일이 발생되었는지가 판단될 수 있으며, 칩 단위 페일이 발생되지 않은 경우 ECC 엔진(311_1)은 패리티 코드(Parity)를 이용한 일반 에러 정정 동작을 수행할 수 있다. 반면에, 칩 단위 페일이 발생된 경우에는 ECC 엔진(311_1)은 시스템 레벨의 에러 정정에 기반하는 데이터 복구 동작을 수행할 수 있다.Meanwhile, as described above, the memory controller 310 may receive the fail information (Info_F) and perform an error correcting operation and / or a data restoring operation based thereon. As an example, it can be determined whether a chip unit failure has occurred according to the logic state of the fail information (Info_F). If no chip unit fail has occurred, the ECC engine 311_1 generates a general error A correction operation can be performed. On the other hand, when a chip unit failure is generated, the ECC engine 311_1 can perform a data recovery operation based on a system level error correction.

도 7, 8은 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템의 구체적인 구현 예를 나타내는 블록도이다. Figures 7 and 8 are block diagrams illustrating specific implementations of a memory system in accordance with another illustrative embodiment of the present invention.

도 7을 참조하면, 메모리 시스템(400)은 메모리 컨트롤러(410) 및 메모리 모듈(420)을 포함할 수 있으며, 메모리 모듈(420)의 모듈 보드 상에는 M 개의 DRAM 칩들(421_1 ~ 421_M)이 장착될 수 있다. 또한, 메모리 컨트롤러(410)는 ECC 엔진(411) 및 커맨드 생성기(412)를 포함할 수 있다. 또한, 메모리 모듈(420)은 RCD(422)를 더 포함할 수 있으며, RCD(422)는 레지스터(422_1)를 포함할 수 있다.7, the memory system 400 may include a memory controller 410 and a memory module 420, and M DRAM chips 421_1 to 421_M may be mounted on the module board of the memory module 420 . In addition, the memory controller 410 may include an ECC engine 411 and a command generator 412. In addition, the memory module 420 may further include an RCD 422, and the RCD 422 may include a register 422_1.

전술한 실시예들에 따라, RCD(422)는 M 개의 DRAM 칩들(421_1 ~ 421_M)로부터 페일 비트(Fail 1 ~ Fail M)를 수신하고, RCD(422)는 페일 비트(Fail 1 ~ Fail M)를 이용한 연산 동작을 통해 페일 정보(Info_F)를 생성하며, 페일 정보(Info_F)는 모듈 보드에 형성되는 레포트 핀에 해당하는 추가의 단자(423)를 통해 메모리 컨트롤러(410)로 제공될 수 있다. The RCD 422 receives the fail bits Fail 1 to Fail M from the M DRAM chips 421_1 to 421_M and the RCD 422 receives the fail bits Fail 1 to Fail M, The fail information Info_F may be provided to the memory controller 410 through an additional terminal 423 corresponding to a report pin formed on the module board.

메모리 컨트롤러(410)는 수신된 페일 정보(Info_F)에 기반하여 에러 정정 동작을 수행할 수 있으며, 만약 페일 정보(Info_F)가 제2 로직 상태에 해당함에 따라 페일 칩이 존재하지 않는 것으로 판단되면, ECC 엔진(411)은 패리티 코드(Parity)를 이용한 일반 에러 정정 동작을 수행할 수 있다. 반면에, 페일 정보(Info_F)가 제1 로직 상태에 해당함에 따라 적어도 하나의 페일 칩이 존재하는 것으로 판단되면, 커맨드 생성기(412)는 RCD(422) 내의 레지스터(422_1)를 억세스하기 위한 레지스터 억세스 커맨드(CMD_Reg)를 생성하여 메모리 모듈(420)로 제공한다. 또한, 레지스터(422_1)로부터 독출된 페일 비트(Fail 1 ~ Fail M)가 메모리 컨트롤러(410)로 제공될 수 있다. The memory controller 410 may perform an error correction operation based on the received fail information Info_F and if it is determined that the fail chip does not exist as the fail information Info_F corresponds to the second logic state, The ECC engine 411 can perform a general error correction operation using a parity code (Parity). On the other hand, if it is determined that there is at least one fail chip as the fail information (Info_F) corresponds to the first logic state, the command generator 412 generates a register access for accessing the register 422_1 in the RCD 422 Command CMD_Reg to the memory module 420. [ Also, the fail bit (Fail 1 to Fail M) read from the register 422 _ 1 may be provided to the memory controller 410.

메모리 모듈(420)은 M 개의 DRAM 칩들(421_1 ~ 421_M)에 대응하여 M 개의 포트들을 포함할 수 있으며, 또한 RCD(422)와 메모리 컨트롤러(410) 사이의 신호 송수신을 위한 포트(424)를 더 포함할 수 있다. 상기 포트(424)는 다수의 핀들을 포함할 수 있으며, 전술한 레지스터 억세스 커맨드(CMD_Reg)는 포트(424)를 통해 RCD(422)로 제공되고, 또한 RCD(422)로부터의 페일 비트(Fail 1 ~ Fail M)는 상기 포트(424)를 통해 메모리 컨트롤러(410)로 제공될 수 있다.The memory module 420 may include M ports corresponding to the M DRAM chips 421_1 to 421_M and may further include a port 424 for transmitting and receiving signals between the RCD 422 and the memory controller 410 . The port 424 may include a plurality of pins and the aforementioned register access command CMD_Reg may be provided to the RCD 422 via port 424 and may also include a fail bit from the RCD 422, To Fail M may be provided to the memory controller 410 via the port 424.

ECC 엔진(411)은 수신된 페일 비트(Fail 1 ~ Fail M)에 기반하여 페일이 발생된 칩의 위치를 판단할 수 있으며, 페일 비트(Fail 1 ~ Fail M) 및 패리티 코드(Parity)를 이용한 시스템 레벨의 에러 정정에 기반하는 복구 동작을 통해 페일 칩의 데이터(DATA)를 복구할 수 있다.The ECC engine 411 can determine the position of the failed chip based on the received fail bits (Fail 1 to Fail M) and can determine the position of the failed chip by using the fail bits (Fail 1 to Fail M) and the parity code The data (DATA) of the fail chip can be recovered through the recovery operation based on the system level error correction.

한편, 도 8에서는 전술한 실시예에서 페일 비트(Fail[1:M])가 전송되는 경로가 변형된 예가 도시된다. 8 shows an example in which the path through which the fail bit (Fail [1: M]) is transmitted is modified in the above-described embodiment.

도 8을 참조하면, 칩 단위의 데이터 복구를 위해 검출 코드를 저장하는 기존의 DRAM 칩이 메모리 모듈에서 제거된 예가 도시된다. 즉, 기존에 페일 칩의 위치를 나타내는 검출 코드가 저장된 DRAM 칩(예컨대, 검출 코드 칩)이 모듈 보드로부터 제거되고, 검출 코드를 저장하는 DRAM 칩에 대응하여 배치되었던 하나의 포트(425)가 전술한 페일 비트(Fail[1:M])를 전송하는 포트로서 이용될 수 있다. 이에 따라, 모듈 보드에는 RCD(422)와 상기 포트(425)에 포함되는 다수의 핀들 사이의 전기적 연결을 위한 배선들이 형성될 수 있다.Referring to FIG. 8, an example in which a conventional DRAM chip storing a detection code for chip-level data recovery is removed from the memory module is shown. That is, a DRAM chip (for example, a detection code chip) in which a detection code indicating the position of a failing chip is stored is removed from the module board, and one port 425 corresponding to the DRAM chip storing the detection code And can be used as a port for transmitting one fail bit (Fail [1: M]). Accordingly, wirings for electrical connection between the RCD 422 and a plurality of pins included in the port 425 may be formed on the module board.

도 8의 실시예에 따르면, 기존에 페일 칩의 데이터를 복구하기 위한 검출 코드를 저장하는 DRAM 칩이 제거될 수 있으므로 메모리 모듈의 제조 단가가 감소될 수 있다. 또한, 다수의 비트들을 포함하는 페일 비트(Fail[1:M])를 메모리 컨트롤러로 제공하기 위한 별도의 포트가 모듈 보드 상에 형성될 필요가 없으므로 모듈 보드 상에 형성되는 포트들의 개수가 감소될 수 있을 것이다. According to the embodiment of FIG. 8, the DRAM chip storing the detection code for recovering the data of the fail chip in the past can be removed, so that the manufacturing cost of the memory module can be reduced. In addition, since a separate port for providing a fail bit (Fail [1: M]) including a plurality of bits to the memory controller does not need to be formed on the module board, the number of ports formed on the module board is reduced It will be possible.

도 9는 도 7에 도시된 RCD의 일 구현 예를 나타내는 블록도이다. 9 is a block diagram illustrating an embodiment of the RCD shown in FIG.

도 7 및 도 9를 참조하면, RCD(422)는 레지스터(422_1), 페일 정보 생성기(422_2) 및 커맨드/어드레스 버퍼(422_3)를 포함할 수 있다. 커맨드/어드레스 버퍼(422_3)는 메모리 컨트롤러(410)로부터 제공되는 커맨드(CMD) 및 어드레스(ADD)를 수신하고 저장할 수 있으며, 저장된 커맨드(CMD) 및 어드레스(ADD)를 M 개의 DRAM 칩들(421_1 ~ 421_M)로 제공할 수 있다. 7 and 9, the RCD 422 may include a register 422_1, a fail information generator 422_2, and a command / address buffer 422_3. The command / address buffer 422_3 may receive and store the command CMD and address ADD provided from the memory controller 410 and store the stored command CMD and address ADD in the M DRAM chips 421_1 to 421_1, 421_M).

M 개의 DRAM 칩들(421_1 ~ 421_M)로부터 생성된 페일 비트(Fail 1 ~ Fail M)는 레지스터(422_1) 및 페일 정보 생성기(422_2)로 제공될 수 있다. 페일 정보 생성기(422_2)는 XOR 또는 기타 다른 다양한 방식을 통한 연산 동작을 통해 페일 정보(Info_F)를 생성한다. 또한, 레지스터(422_1)는 메모리 컨트롤러(410)로부터의 레지스터 억세스 커맨드(CMD_Reg) 또는 상기 레지스터 억세스 커맨드(CMD_Reg)를 디코딩한 결과에 응답하여 내부에 저장된 M 비트의 페일 비트(Fail[1:M])를 출력할 수 있다. Fail bits (Fail 1 to Fail M) generated from the M DRAM chips 421_1 to 421_M may be provided to the register 422_1 and the fail information generator 422_2. Fail information generator 422_2 generates fail information (Info_F) through arithmetic operation through XOR or other various methods. The register 422_1 also receives an M-bit fail bit (Fail [1: M]) stored therein in response to a result of decoding the register access command CMD_Reg or the register access command CMD_Reg from the memory controller 410, Can be output.

도 10은 메모리 컨트롤러에서의 에러 정정 과정의 일 예를 나타내는 플로우차트이다. 10 is a flowchart showing an example of an error correction process in the memory controller.

도 10을 참조하면, 메모리 컨트롤러는 소정 단위의 데이터에 대응하는 패리티 코드를 생성하고 이를 다수 개의 DRAM 칩들을 포함하는 메모리 모듈에 기록할 수 있다. 소정 개수의 비트의 데이터에 대응하여 패리티 코드가 생성될 수 있으며, 일 예로서 32 비트 또는 64 비트의 데이터에 대응하여 4 비트의 패리티 코드가 생성될 수 있다. Referring to FIG. 10, the memory controller may generate a parity code corresponding to a predetermined unit of data and write the parity code to a memory module including a plurality of DRAM chips. A parity code may be generated corresponding to a predetermined number of bits of data. For example, a parity code of 4 bits may be generated corresponding to 32 bits or 64 bits of data.

또한, 메모리 컨트롤러는 데이터 및 이에 대응하는 패리티 코드를 독출하기 위한 커맨드를 메모리 모듈로 제공하고, 메모리 컨트롤러는 독출된 데이터 및 패리티 코드를 수신할 수 있다(S31). 또한, 전술한 실시예들에 따라 메모리 모듈 내에서 DRAM 칩들 각각에서 칩 레벨의 에러 검출 결과에 기반하여 페일 비트가 생성되고, 상기 페일 비트를 이용한 연산 동작을 통해 페일 정보가 생성되며, 메모리 컨트롤러는 상기 페일 정보를 수신할 수 있다(S32).Further, the memory controller provides a command to the memory module to read the data and the corresponding parity code, and the memory controller can receive the read data and the parity code (S31). Also, according to the above-described embodiments, a fail bit is generated based on a chip level error detection result in each of the DRAM chips in the memory module, and fail information is generated through a calculation operation using the fail bit, The fail information can be received (S32).

메모리 컨트롤러는 시스템 레벨의 에러 정정을 수행하는 ECC 엔진을 포함하고, 수신된 페일 정보에 따라 칩 단위의 페일을 복구하기 위한 복구 동작을 선택적으로 수행할 수 있다. 일 예로서, 페일 정보에 따라 적어도 하나의 DRAM 칩이 페일된 것으로 판단된 경우에는 상기 수신된 패리티 코드를 이용하여 페일 칩의 데이터를 복구하는 동작을 수행한다(S33). The memory controller includes an ECC engine for performing system level error correction, and can selectively perform a recovery operation for recovering a failure of a chip unit according to the received fail information. For example, if it is determined that at least one DRAM chip is failed according to the fail information, the failing chip data is recovered using the received parity code (S33).

상기 데이터 복구 동작에 의해 데이터가 성공적으로 복구되었는지가 판단되고(S34), 데이터가 정상적으로 복구된 경우에는 복구된 데이터가 호스트로 제공될 수 있다(S35). 반면에, 데이터의 복구가 실패한 경우에는, 메모리 컨트롤러는 메모리 모듈 내에 저장된 페일 비트를 독출하기 위해 레지스터 억세스 커맨드를 생성하여 메모리 모듈로 출력할 수 있다(S36).It is determined whether the data has been successfully recovered by the data recovery operation (S34). If the data is normally recovered, the recovered data can be provided to the host (S35). On the other hand, if the recovery of the data fails, the memory controller may generate a register access command to read the fail bit stored in the memory module and output it to the memory module (S36).

일 실시예에 따라, 메모리 컨트롤러는 M 개의 메모리 칩들에 대응하는 M 비트의 페일 비트를 수신하고(S37), 수신된 페일 비트 및 패리티 코드를 이용한 데이터 복구 동작을 수행할 수 있다(S38). 상기 데이터 복구 동작은 페일 비트에 근거하여 페일이 발생된 DRAM 칩의 위치를 판단한 상태에서의 복구 동작에 해당하고, 이에 따라 페일이 발생된 DRAM 칩의 데이터의 복구 확률이 증가한다. 상기와 같은 과정에 따라 페일이 발생된 DRAM 칩의 데이터가 정상적으로 복구되면, 복구된 데이터가 호스트로 제공될 수 있다(S35).According to one embodiment, the memory controller may receive an M-bit fail bit corresponding to M memory chips (S37), and perform a data recovery operation using the received fail bit and parity code (S38). The data recovery operation corresponds to a recovery operation in a state where the position of the DRAM chip in which the fail is generated is determined based on the fail bit, thereby increasing the probability of recovery of the data of the DRAM chip in which the fail occurs. If the data of the failed DRAM chip is normally recovered according to the above procedure, the recovered data can be provided to the host (S35).

도 11은 본 발명의 또 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다.11 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention.

도 11의 예에서는 DDR4의 스펙에서 정의된 바에 따라 64 비트의 데이터(DATA)에 대응하여 패리티 정보가 생성되는 예가 도시된다. 또한, 일 실시예에 따라, 메모리 모듈(500A)에 저장되는 패리티 정보는 검출 코드를 제외한 4 비트의 패리티 코드(Parity) 만을 포함할 수 있다. 이에 따라 메모리 모듈(500A)의 모듈 보드 상에 제1 내지 제17 DRAM 칩들(510_1A ~ 510_17A)이 장착될 수 있으며, 또한, 제1 내지 제17 DRAM 칩들(510_1A ~ 510_17A) 각각은 4 비트(X4)의 데이터(DATA) 또는 패리티 코드(Parity)를 출력하고, 제1 내지 제16 DRAM 칩들(510_1A ~ 510_16A)은 데이터(DATA)를 저장하며, 제17 DRAM 칩(510_17A)은 패리티 코드(Parity)를 저장할 수 있다. In the example of FIG. 11, parity information is generated corresponding to 64-bit data (DATA) as defined in the DDR4 specification. Also, according to one embodiment, the parity information stored in the memory module 500A may include only a 4-bit parity code except for the detection code. The first to seventeenth DRAM chips 510_1A to 510_17A may be mounted on the module board of the memory module 500A and each of the first to seventeenth DRAM chips 510_1A to 510_17A may include four bits X4 The first to the sixteenth DRAM chips 510_1A to 510_16A store the data DATA and the seventeenth DRAM chip 510_17A outputs the parity code Parity, Can be stored.

전술한 실시예들에 따라, 칩 단위의 페일이 발생된 DRAM 칩의 위치를 나타내기 위한 검출 코드가 메모리 컨트롤러에서 생성되지 않거나, 또는 메모리 모듈(500A)에 저장되지 않으므로, 메모리 모듈(500A)에서 검출 코드를 저장하기 위한 DRAM 칩이 제거될 수 있다. 또한, 64 비트의 데이터(DATA) 및 이에 대응하는 4 비트의 패리티 코드(Parity)가 제1 내지 제17 DRAM 칩들(510_1A ~ 510_17A)로부터 독출되고, RCD(520A)로부터 제1 내지 제17 DRAM 칩들(510_1A ~ 510_17A)의 페일 비트(Fail[1:17])가 메모리 컨트롤러(미도시)로 제공될 수 있다. 도 11에는 도시되지 않았으나, 페일 비트(Fail[1:17])가 제공되기에 앞서 상기 페일 비트(Fail[1:17])를 연산하여 생성되는 페일 정보가 메모리 컨트롤러로 먼저 제공될 수 있다.According to the above-described embodiments, since the detection code for indicating the position of the DRAM chip in which the failure occurs in the chip unit is not generated in the memory controller or is not stored in the memory module 500A, The DRAM chip for storing the detection code can be removed. The 64-bit data (DATA) and the corresponding 4-bit parity code are read from the first to seventeenth DRAM chips 510_1A to 510_17A, and the first to seventeenth DRAM chips (Fail [1:17]) of the memory cells 510_1A to 510_17A may be provided to the memory controller (not shown). Although not shown in FIG. 11, the fail information generated by computing the fail bit (Fail [1: 17]) before the fail bit (Fail [1:17]) is provided may be first provided to the memory controller.

도 11에 도시된 포트(530A)는 전술한 모듈 보드로부터 제거된(또는, 모듈 보드에 장착되지 않은) 검출 코드를 저장하기 위한 DRAM 칩에 대응하는 포트일 수 있으며, 상기 포트(530A)는 데이터(DATA) 또는 패리티 코드(Parity)를 출력하기 위한 포트와 동일한 개수의 핀들을 포함할 수 있다. 일 예로서, 17 개의 비트들을 포함하는 상기 페일 비트(Fail[1:17])는 4 개의 비트들씩 순차적으로 상기 포트(530A)를 통해 메모리 컨트롤러로 제공될 수 있다.The port 530A shown in Fig. 11 may be a port corresponding to a DRAM chip for storing a detection code removed from the above-described module board (or not mounted on the module board), and the port 530A may be a port (DATA) or a parity code (Parity). As an example, the fail bit (Fail [1: 17]) including seventeen bits may be provided to the memory controller through the port 530A sequentially by four bits.

도 12는 본 발명의 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다. 도 12에서는 DDR5의 스펙에서 정의된 바에 따라 32 비트의 데이터(DATA)에 대응하여 패리티 정보가 생성되는 예가 도시된다. 또한, 일 실시예에 따라, 메모리 모듈(500B)에 저장되는 패리티 정보는 검출 코드를 제외한 4 비트의 패리티 코드(Parity) 만을 포함할 수 있다.12 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention. 12 shows an example in which parity information is generated corresponding to 32-bit data (DATA) as defined in the specification of the DDR5. In addition, according to one embodiment, the parity information stored in the memory module 500B may include only a 4-bit parity code excluding the detection code.

메모리 모듈(500B)의 모듈 보드 상에 제1 내지 제9 DRAM 칩들(510_1B ~ 510_9B)이 장착될 수 있으며, 또한, 제1 내지 제9 DRAM 칩들(510_1B ~ 510_9B) 각각은 4 비트(X4)의 데이터(DATA) 또는 패리티 코드(Parity)를 출력하고, 제1 내지 제8 DRAM 칩들(510_1B ~ 510_8B)은 데이터(DATA)를 저장하며, 제9 DRAM 칩(510_9B)은 패리티 코드(Parity)를 저장할 수 있다. 또한, 모듈 보드에는 전술한 모듈 보드로부터 제거된(또는, 모듈 보드에 장착되지 않은) 검출 코드를 저장하기 위한 DRAM 칩에 대응하는 포트(530B)가 배치될 수 있으며, 제1 내지 제9 DRAM 칩들(510_1B ~ 510_9B)로부터 생성된 9 개의 비트들을 포함하는 페일 비트(Fail[1:9])가 RCD(520B)에 저장되고, RCD(520B)는 페일 비트(Fail[1:9])를 4 개의 비트들씩 순차적으로 상기 포트(530B)를 통해 메모리 컨트롤러로 제공할 수 있다.The first to ninth DRAM chips 510_1B to 510_9B may be mounted on the module board of the memory module 500B and each of the first to ninth DRAM chips 510_1B to 510_9B may have a 4 bit The first to eighth DRAM chips 510_1 to 510_8B store the data DATA and the ninth DRAM chip 510_9B stores the parity code Parity. . Further, the module board may be provided with a port 530B corresponding to the DRAM chip for storing the detection code removed from the module board (or not mounted on the module board), and the first to ninth DRAM chips (Fail [1: 9]) containing nine bits generated from the RCDs 510_1B to 510_9B are stored in the RCD 520B, and the RCD 520B stores the fail bits Fail [1: 9] May be sequentially provided to the memory controller through the port 530B.

도 13은 본 발명의 또 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다. 도 13에서는 64 비트의 데이터(DATA)에 대응하여 패리티 정보가 생성되는 예가 도시된다. 또한, 일 실시예에 따라, 메모리 모듈(500C)에 저장되는 패리티 정보는 검출 코드를 제외한 4 비트의 패리티 코드(Parity) 만을 포함할 수 있다. 또한, 메모리 모듈(500C)의 모듈 보드 상에는 제1 내지 제9 DRAM 칩들(510_1C ~ 510_9C)이 장착될 수 있으며, 또한, 제1 내지 제9 DRAM 칩들(510_1C ~ 510_9C) 각각은 8 비트(X8)의 정보를 출력할 수 있으며, 제1 내지 제8 DRAM 칩들(510_1C ~ 510_8C)은 데이터(DATA)를 저장하고, 제9 DRAM 칩(510_9C)은 패리티 코드(Parity)를 저장할 수 있다. 13 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention. 13 shows an example in which parity information is generated corresponding to 64-bit data (DATA). In addition, according to one embodiment, the parity information stored in the memory module 500C may include only a 4-bit parity code excluding the detection code. The first to ninth DRAM chips 510_1C to 510_9C may be mounted on the module board of the memory module 500C and each of the first to ninth DRAM chips 510_1C to 510_9C may include eight bits X8, The first to eighth DRAM chips 510_1C to 510_8C may store the data DATA and the ninth DRAM chip 510_9C may store the parity code.

제1 내지 제9 DRAM 칩들(510_1C ~ 510_9C) 각각이 8 비트 단위로 정보를 입출력함에 따라, 제1 내지 제8 DRAM 칩들(510_1C ~ 510_8C) 각각은 8 비트 단위로 데이터(DATA)를 저장하고 독출할 수 있다. 반면에, 본 발명의 일 실시예에 따라 패리티 정보는 4 비트에 해당하는 패리티 코드(Parity) 만을 포함할 수 있으며, 이에 따라 제9 DRAM 칩(510_9C)에 대한 8 비트 단위의 기록 동작에 있어서 4 비트에 해당하는 패리티 코드(Parity)와 함께 나머지 4 비트에 해당하는 더미 데이터(Dummy)가 제9 DRAM 칩(510_9C)에 함께 기록될 수 있다. 더미 데이터(Dummy)는 실제 데이터(DATA)나 패리티 코드(Parity)와는 무관한 임의의 데이터로서, 일 예로 모두 "0"의 값을 갖거나 또는 모두 "1"의 값을 갖는 데이터일 수 있다.As each of the first to ninth DRAM chips 510_1C to 510_9C inputs and outputs information in 8-bit units, each of the first to eighth DRAM chips 510_1C to 510_8C stores data (DATA) in units of 8 bits, Can be released. On the other hand, according to an embodiment of the present invention, the parity information may include only a parity code corresponding to 4 bits. Accordingly, in the 8-bit write operation for the ninth DRAM chip 510_9C, The dummy data Dummy corresponding to the remaining 4 bits together with the parity code corresponding to the bit can be recorded together with the ninth DRAM chip 510_9C. The dummy data is arbitrary data irrelevant to the actual data (DATA) or the parity code (Parity). For example, the dummy data may have a value of "0"

상기 실시예에서는 제1 내지 제9 DRAM 칩들(510_1C ~ 510_9C) 각각이 8 비트 단위로 정보가 입출력됨에 따라 제9 DRAM 칩(510_9C)에 4 비트의 더미 데이터(Dummy)가 기록되는 것으로 설명되었으나, 본 발명의 실시예들은 이에 국한될 필요가 없다. 일 예로서, 별도의 더미 데이터(Dummy)를 생성함이 없이 4 비트의 패리티 코드(Parity) 만이 제9 DRAM 칩(510_9C)에 저장될 수도 있을 것이다. 또는, 제9 DRAM 칩(510_9C)에서 4 비트의 패리티 코드(Parity)와 함께 에러 정정 능력을 향상하기 위한 추가의 코드 정보(예컨대, 랜덤 에러나 멀티 비트 에러를 정정하기 위한 정정 코드)가 더 저장될 수도 있을 것이다. In the above-described embodiment, 4-bit dummy data is written in the ninth DRAM chip 510_9C as information is input / output in units of 8 bits for each of the first to ninth DRAM chips 510_1C to 510_9C. The embodiments of the present invention need not be limited thereto. As an example, only a 4-bit parity code may be stored in the ninth DRAM chip 510_9C without generating separate dummy data (Dummy). Alternatively, in the ninth DRAM chip 510_9C, additional code information (for example, a random error or a correction code for correcting a multi-bit error) for improving the error correction capability is stored in addition to the 4-bit parity code .

한편, 기존의 검출 코드가 이용되는 경우 상기 검출 코드는 패리티 코드(Parity)와 함께 제9 DRAM 칩(510_9C)에 저장될 수 있는 반면에, 도 13의 실시예에서는 상기 검출 코드가 제9 DRAM 칩(510_9C)에 저장되지 않는다. 즉, 도 13의 실시예에서는 검출 코드가 패리티 코드(Parity)와 서로 별개의 DRAM 칩에 저장되지 않으며, 이에 따라 모듈 보드로부터 제거되는 별도의 DRAM 칩이 존재하지 않는다. On the other hand, when an existing detection code is used, the detection code can be stored in the ninth DRAM chip 510_9C together with the parity code, whereas in the embodiment of Fig. 13, Lt; RTI ID = 0.0 > 510_9C. ≪ / RTI > That is, in the embodiment of FIG. 13, the detection code is not stored in the DRAM chip separate from the parity code (Parity), and accordingly, there is no separate DRAM chip removed from the module board.

일 실시예에 따라, 제1 내지 제9 DRAM 칩들(510_1C ~ 510_9C)로부터 생성된 9 개의 비트들을 포함하는 페일 비트(Fail[1:9])가 RCD(520C)에 저장되고, RCD(520C)는 페일 비트(Fail[1:9])를 모듈 보드에 형성되는 별도의 포트(530C)를 통해 메모리 컨트롤러로 제공할 수 있다. 예컨대, 상기 모듈 보드에는 제1 내지 제9 DRAM 칩들(510_1C ~ 510_9C)에 대응하는 9 개의 포트들(미도시)과 함께 상기 RCD(520C)에 대응하는 추가의 포트(530C)가 더 배치될 수 있으며, RCD(520C)는 페일 비트(Fail[1:9])를 8 개의 비트들씩 순차적으로 상기 추가의 포트(530C)를 통해 메모리 컨트롤러로 제공할 수 있다. 변형 가능한 실시예로서, 상기 추가의 포트(530C)는 데이터(DATA) 또는 패리티 코드(Parity)를 출력하는 포트와는 서로 다른 개수의 핀들을 포함할 수 있으며, 일 예로서 페일 비트(Fail[1:9])는 상기 추가의 포트(530C)를 통해 4 비트씩 순차적으로 출력되어도 무방할 것이다. According to one embodiment, a fail bit (Fail [1: 9]) containing nine bits generated from the first to ninth DRAM chips 510_1C to 510_9C is stored in the RCD 520C, and the RCD 520C, May provide a fail bit (Fail [1: 9]) to the memory controller via a separate port 530C formed in the module board. For example, the module board may further include additional ports 530C corresponding to the RCD 520C with nine ports (not shown) corresponding to the first to ninth DRAM chips 510_1C to 510_9C , And RCD 520C may provide the fail bit (Fail [1: 9]) eight bits sequentially to the memory controller via the additional port 530C. As an alternative embodiment, the additional port 530C may include a different number of pins than the port that outputs data (DATA) or parity code (Parity) : 9] may be output sequentially by 4 bits through the additional port 530C.

또한, 메모리 컨트롤러는 제1 내지 제9 DRAM 칩들(510_1C ~ 510_9C)로부터 독출된 64 비트의 데이터(DATA)와 4 비트의 패리티 코드(Parity)를 이용한 에러 정정 동작(또는, 페일 칩의 데이터 복구 동작)을 수행할 수 있다. 이 때, 더미 데이터(Dummy)는 독출되지 않거나, 또는 독출되더라도 메모리 컨트롤러에 의해 이용되지 않을 수 있다.In addition, the memory controller performs an error correction operation using the 64-bit data (DATA) read from the first to ninth DRAM chips 510_1C to 510_9C and the 4-bit parity code (or the fail- ) Can be performed. At this time, the dummy data (Dummy) is not read or may not be used by the memory controller even if it is read.

도 14는 본 발명의 또 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다. 도 14에서는 기존에 검출 코드를 저장하기 위한 DRAM 칩이 모듈 보드에서 제거되지 않는 예가 도시된다. 또한, 도 14에서는 구체적인 비트의 개수에 대한 도시가 생략되었으나, 전술한 실시예들에서와 동일 또는 유사하게 64 비트의 데이터에 대응하여 패리티 정보가 생성되거나 또는 32 비트의 데이터에 대응하여 패리티 정보가 생성될 수 있을 것이다. 14 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention. In Fig. 14, an example is shown in which a DRAM chip for storing a detection code has not been removed from the module board. 14, the specific number of bits is omitted. However, parity information is generated corresponding to 64-bit data in the same or similar manner as in the above-described embodiments, or parity information corresponding to 32-bit data is generated .

도 14를 참조하면, 메모리 모듈(500D)의 모듈 보드에는 M 개의 DRAM 칩들(510_1D ~ 510_MD)이 장착될 수 있으며, 또한, M 개의 DRAM 칩들(510_1D ~ 510_MD) 각각은 다수 비트들의 정보를 출력할 수 있다. 예컨대, 전술한 바와 같이 M 개의 DRAM 칩들(510_1D ~ 510_MD) 각각은 4 비트(X4) 또는 8 비트(X8) 단위의 정보를 출력할 수 있으며, 본 실시예에서는 M 개의 DRAM 칩들(510_1D ~ 510_MD) 각각이 4 비트(X4) 단위의 정보를 출력하는 것으로 가정한다.14, M DRAM chips 510_1D through 510_MD may be mounted on the module board of the memory module 500D, and each of the M DRAM chips 510_1D through 510_MD may output information of a plurality of bits . For example, as described above, each of the M DRAM chips 510_1D to 510_MD may output information in units of 4 bits (X4) or 8 bits (X8). In this embodiment, the M DRAM chips 510_1D to 510_MD, It is assumed that each outputs 4-bit (X4) unit information.

제1 내지 제(M-2) DRAM 칩들(510_1D ~ 510_(M-2)D) 각각은 데이터(DATA)를 저장하고 출력할 수 있다. 또한, 제M DRAM 칩(510_MD)은 패리티 코드(Parity)를 저장하고 출력할 수 있다. 또한, 기존에 검출 코드를 저장하기 위해 이용된 제(M-1) DRAM 칩(510_(M-1)D)은 에러 검출 및 정정 능력을 향상하기 위한 코드 정보(Info_secded)를 저장할 수 있다. Each of the first to (M-2) th DRAM chips 510_1D to 510_ (M-2) D may store and output data (DATA). In addition, the Mth DRAM chip 510_MD may store and output a parity code. In addition, the (M-1) th DRAM chip 510_ (M-1) D used for storing the detection code may store code information (Info_secded) for improving error detection and correction capability.

RCD(520D)는 M 개의 DRAM 칩들(510_1D ~ 510_MD)로부터 제공된 페일 비트(Fail[1:M])를 RCD(520D)에 대응하는 포트(530D)을 통해 출력할 수 있다. 메모리 컨트롤러의 ECC 엔진(미도시)은 페일 비트(Fail[1:M])와 패리티 코드(Parity)를 이용하여 페일이 발생된 DRAM 칩의 데이터(DATA)를 복구할 수 있다. 또한, 메모리 컨트롤러의 ECC 엔진은 페일 칩의 데이터 복구 이외에, 추가로 제(M-1) DRAM 칩(510_(M-1)D)으로부터 독출된 코드 정보(Info_secded)를 이용하여 에러 검출 및 정정 동작을 수행할 수 있다. 예컨대, 메모리 컨트롤러의 ECC 엔진은 코드 정보(Info_secded)를 이용하여 랜덤 에러를 정정하거나 멀티 비트 에러를 정정할 수 있다.The RCD 520D may output the fail bits Fail [1: M] provided from the M DRAM chips 510_1D to 510_MD through the port 530D corresponding to the RCD 520D. The ECC engine (not shown) of the memory controller can recover the data (DATA) of the failed DRAM chip by using the fail bit (Fail [1: M]) and the parity code (Parity). The ECC engine of the memory controller can perform error detection and correction operation using the code information (Info_secded) read from the (M-1) th DRAM chip 510_ (M-1) Can be performed. For example, the ECC engine of the memory controller can correct random errors or correct multi-bit errors using code information (Info_secded).

일 실시예에 따라, 메모리 컨트롤러의 ECC 엔진은 코드 정보(Info_secded)를 이용하여 제1 내지 제(M-2) DRAM 칩들(510_1D ~ 510_(M-2)D)로부터 독출된 데이터(DATA)에 대해 싱글 에러 정정/더블 에러 검출(Single Error Correction/Double Error Detection, SEC/DED) 동작을 수행할 수 있다. 그러나, 이는 본 발명의 일 실시예에 불과한 것으로서, 코드 정보(Info_secded)는 다양한 방식의 에러 검출 및 정정 알고리즘에 따라 에러의 검출 및 정정에 이용되는 정보일 수 있다.According to one embodiment, the ECC engine of the memory controller stores the data (DATA) read from the first to M-2th DRAM chips 510_1D to 510_ (M-2) D using code information (Info_secded) A single error correction / double error detection (SEC / DED) operation can be performed. However, this is only an embodiment of the present invention, and the code information (Info_secded) may be information used for error detection and correction according to various types of error detection and correction algorithms.

패리티 정보를 저장하기 위한 자원의 많은 양이 검출 코드를 저장하는 데 이용되는 경우에는, 페일 칩의 데이터를 복구하는 것 이외에 별도의 일반 에러 정정이 불가능하거나 또는 1 비트의 에러만이 정정이 가능할 수 있다. 반면에, 상기와 같은 실시예에 따르면, 기존의 검출 코드를 저장하는 자원에 에러 검출 및 정정에 이용되는 코드 정보가 저장될 수 있으므로, 에러의 검출 및 정정 능력이 향상될 수 있다.In the case where a large amount of resources for storing the parity information is used for storing the detection code, it is possible to perform a general error correction in addition to restoring the data of the fail chip, or only one bit error can be corrected have. On the other hand, according to the embodiment as described above, the code information used for error detection and correction can be stored in the resource storing the existing detection code, so that the error detection and correction capability can be improved.

한편, 전술한 실시예들에서는 모듈 보드 상에 장착된 DRAM 칩이 X4 또는 X8 의 데이터 폭에 해당하는 입출력 단위를 갖는 것으로 설명되었으나, 본 발명의 실시예는 이에 국한될 필요 없이 x16의 입출력 단위 등으로 다양한 형태로 변형이 가능할 것이다.In the above-described embodiments, the DRAM chip mounted on the module board has an input / output unit corresponding to the data width of X4 or X8. However, the embodiment of the present invention is not limited thereto, It will be possible to change it into various forms.

도 15는 본 발명의 또 다른 예시적인 실시예에 따른 메모리 모듈의 일 구현 예를 나타내는 블록도이다. 도 15에서는 전술한 도 14의 실시예에서와 같이 기존에 검출 코드를 저장하기 위한 DRAM 칩이 모듈 보드에서 제거되지 않는 예가 도시된다. 또한, 도 15의 실시예에서는 각각의 DRAM 칩이 다수 비트들을 갖는 단위로서 정보를 입출력할 수 있으며, DRAM 칩들 각각이 4 비트(X4) 단위의 정보를 출력하는 것으로 가정할 것이다.15 is a block diagram illustrating an embodiment of a memory module according to another exemplary embodiment of the present invention. In Fig. 15, an example is shown in which the DRAM chip for storing the detection code is not removed from the module board as in the embodiment of Fig. 14 described above. In the embodiment of FIG. 15, it is assumed that each DRAM chip can input and output information as a unit having a plurality of bits, and each of the DRAM chips outputs information of 4 bits (X4) units.

도 15를 참조하면, 메모리 모듈(500E)의 모듈 보드에는 M 개의 DRAM 칩들(510_1E ~ 510_ME)이 장착될 수 있으며, 또한 M 개의 DRAM 칩들(510_1D ~ 510_MD) 각각은 다수 비트들의 정보를 출력할 수 있다. 일 예로서, 제1 내지 제(M-2) DRAM 칩들(510_1E ~ 510_(M-2)E) 각각은 데이터(DATA)를 저장하고 출력할 수 있다. 또한, 제M DRAM 칩(510_ME)은 패리티 코드(Parity)를 저장하고 출력할 수 있다. 또한, 기존에 검출 코드를 저장하기 위해 이용된 제(M-1) DRAM 칩(510_(M-1)E)은 페일 칩의 위치를 나타내는 검출 코드로서 CRC(cyclic redundancy check) 코드 및 추가의 에러 검출/정정 동작에 이용되는 코드 정보(Info_secded)를 저장할 수 있다. 또한, RCD(520E)는 M 개의 DRAM 칩들(510_1E ~ 510_ME)로부터 제공된 페일 비트(Fail[1:M])를 RCD(520E)에 대응하는 포트(530E)을 통해 출력할 수 있다.15, M DRAM chips 510_1E to 510_ME may be mounted on the module board of the memory module 500E, and each of the M DRAM chips 510_1D to 510_MD may output information of a plurality of bits have. As an example, each of the first to (M-2) th DRAM chips 510_1E to 510_ (M-2) E may store and output data (DATA). In addition, the Mth DRAM chip 510_ME can store and output a parity code. The (M-1) DRAM chip 510_ (M-1) E used for storing the detection code has a CRC (cyclic redundancy check) code as a detection code indicating the position of the fail chip, (Info_secded) used for the detection / correction operation. Also, the RCD 520E may output the fail bit (Fail [1: M]) provided from the M DRAM chips 510_1E to 510_ME through the port 530E corresponding to the RCD 520E.

도 15에 도시된 실시예에 따르면, 페일 비트(Fail[1:M])를 통해 페일이 발생된 DRAM 칩의 위치가 판단될 수 있으므로, 메모리 모듈(500E)의 제(M-1) DRAM 칩(510_(M-1)E)에 저장되는 검출 코드로서 CRC(cyclic redundancy check) 코드의 정보(또는, 비트 수)는 최소화될 수 있다. 이에 따라, 제(M-1) DRAM 칩(510_(M-1)E)에는 최소한의 비트들(예컨대, 1 또는 2 비트)을 갖는 CRC 코드가 저장되고, 그 이외의 영역에 에러 정정 능력을 향상하기 위한 추가의 에러 검출/정정 동작에 이용될 수 있는 코드 정보(Info_secded)가 저장될 수 있다. 즉, 페일 칩이 발생된 경우 페일 비트(Fail[1:M]), CRC 코드 및 패리티 코드(Parity)를 이용한 복구 동작이 수행되고, 이와는 별개로 코드 정보(Info_secded)를 이용하여 데이터(DATA)에 발생된 에러를 검출/정정하기 위한 동작이 더 수행될 수 있다.  According to the embodiment shown in FIG. 15, since the position of the DRAM chip in which a failure has occurred can be determined through the fail bit (Fail [1: M]), the (M- (Or the number of bits) of the cyclic redundancy check (CRC) code as the detection code stored in the memory 510_ (M-1) E can be minimized. Accordingly, a CRC code having a minimum number of bits (e.g., 1 or 2 bits) is stored in the (M-1) th DRAM chip 510_ (M-1) E and error correction capability Code information (Info_secded) which can be used for additional error detection / correcting operation to improve can be stored. That is, when a fail chip is generated, a recovery operation is performed using a fail bit (Fail [1: M]), a CRC code, and a parity code. Separately, a recovery operation is performed using code information (Info_secded) An operation for detecting / correcting an error that has occurred in the optical disc 100 can be further performed.

도 16은 본 발명의 변형 가능한 실시예에 따른 메모리 컨트롤러의 동작 방법을 나타내는 플로우차트이다. 16 is a flowchart showing an operation method of the memory controller according to the modified embodiment of the present invention.

도 16을 참조하면, 메모리 컨트롤러는 다수 개의 DRAM 칩들을 포함하는 반도체 메모리 장치(예컨대, 메모리 모듈)로부터 데이터 및 패리티 코드를 수신할 수 있다(S41). 또한, 메모리 컨트롤러는 페일 칩의 데이터 복구에 이용되는 페일 비트를 수신함과 함께, 데이터 복구와는 별개로 추가의 에러 검출/정정 동작(예컨대, 랜덤 에러 정정 또는 멀티 비트 에러 정정 동작)에 이용되는 코드 정보를 수신할 수 있다(S42). 도 16에서는 도시되지 않았으나, 전술한 실시예들에 따라 메모리 컨트롤러는 다수 비트들을 갖는 페일 비트를 연산하여 생성된 페일 정보를 먼저 수신할 수 있으며, 페일 정보가 적어도 하나의 DRAM 칩이 페일되었음을 나타내는 로직 레벨을 가질 경우, 메모리 컨트롤러는 별개의 커맨드를 반도체 메모리 장치로 제공하여 상기 페일 비트를 수신할 수 있다.Referring to FIG. 16, a memory controller may receive data and parity codes from a semiconductor memory device (e.g., a memory module) including a plurality of DRAM chips (S41). In addition, the memory controller receives the fail bit used for data recovery of the fail chip, and generates a code used for an additional error detection / correction operation (for example, a random error correction or a multi-bit error correction operation) Information can be received (S42). Although not shown in FIG. 16, according to the above-described embodiments, the memory controller may calculate the fail bit having a plurality of bits to receive the generated fail information first, and the fail information may include logic indicating that at least one DRAM chip has failed Level, the memory controller can receive the fail bit by providing a separate command to the semiconductor memory device.

메모리 컨트롤러는 페일 비트를 이용하여 페일 칩의 데이터를 복구할 수 있다(S43). 예컨대, 메모리 컨트롤러는 페일 비트를 참조하여 페일이 발생된 DRAM 칩의 위치를 판단할 수 있으며, 상기 수신된 패리티 코드를 이용한 복구 동작을 통해 발생된 DRAM 칩의 데이터를 복구할 수 있다. 또한, 상기 복구 동작이 완료되면, 다수의 DRAM 칩들에 발생된 에러를 검출 및 정정하기 위한 동작이 더 수행될 수 있으며, 일 예로 상기 수신된 코드 정보를 이용하여 에러가 검출 및 정정될 수 있다(S44).The memory controller can recover the data of the fail chip using the fail bit (S43). For example, the memory controller can determine the location of the DRAM chip where the fail occurred by referring to the fail bit, and recover the DRAM chip data generated through the recovery operation using the received parity code. Further, when the recovery operation is completed, an operation for detecting and correcting an error generated in the plurality of DRAM chips may be further performed, and an error may be detected and corrected using the received code information, for example S44).

도 17은 본 발명의 일 실시 예에 따른 데이터 처리 시스템을 나타내는 블록도이다. 데이터 처리 시스템(600)은 데이터 서버(610) 및 하나 이상의 클라이언트 컴퓨터들(621, 622)을 포함할 수 있다. 데이터 서버(610) 및 하나 이상의 클라이언트 컴퓨터들(621, 622)은 인터넷 또는 Wi-Fi 등의 다양한 네트워크를 통해 상호 연결될 수 있다. 데이터 서버(610)는 데이터 센터, 인터넷 데이터 센터 또는 클라우드 데이터 센터 등에 해당할 수 있다.17 is a block diagram illustrating a data processing system in accordance with one embodiment of the present invention. Data processing system 600 may include a data server 610 and one or more client computers 621 and 622. The data server 610 and the one or more client computers 621 and 622 may be interconnected via various networks such as the Internet or Wi-Fi. The data server 610 may correspond to a data center, an Internet data center, a cloud data center, or the like.

데이터 서버(610)는 데이터베이스(611) 및 호스트(612)를 포함할 수 있다. 데이터베이스(611)는 전술한 실시예들에 따른 반도체 메모리 장치를 포함할 수 있으며, 일 예로서 데이터베이스(611)는 전술한 실시예들에 따른 다수의 DRAM 모듈들(611_1)을 포함할 수 있다. 즉, 전술한 실시예들에서의 반도체 메모리 장치 및 메모리 컨트롤러는 서버 시스템에 이용될 수 있다. 또한, 호스트(612)는 데이터베이스(611)에 데이터를 저장하고, 데이터베이스(611)로부터 데이터를 독출하여 클라이언트 컴퓨터들(621, 622)로 제공할 수 있다.The data server 610 may include a database 611 and a host 612. The database 611 may include a semiconductor memory device according to the above-described embodiments. As an example, the database 611 may include a plurality of DRAM modules 611_1 according to the above-described embodiments. That is, the semiconductor memory device and the memory controller in the above-described embodiments can be used in a server system. The host 612 may store data in the database 611 and may read the data from the database 611 and provide it to the client computers 621 and 622. [

호스트(612)는 전술한 실시예들에 따른 메모리 컨트롤러를 포함할 수 있다. 이에 따라, 호스트(612)는 데이터와 함께 에러 검출 및 정정에 이용되는 패리티 정보를 생성하여 데이터베이스(611)에 더 저장할 수 있다. 일 실시예에 따라, 데이터베이스(611)에 구비되는 메모리 모듈들(611_1) 각각은 다수 개의 DRAM 칩들을 포함하고, 다수 개의 DRAM 칩들 각각은 In DRAM ECC를 이용하여 각각의 DRAM 칩의 페일 발생 여부를 나타내는 페일 비트를 생성할 수 있다. 또한, 데이터베이스(611)에 구비되는 메모리 모듈들(611_1) 각각은 페일 비트를 이용한 연산 동작을 통해 전술한 실시예에서의 페일 정보를 생성할 수 있다. Host 612 may include a memory controller according to the embodiments described above. Accordingly, the host 612 can generate parity information used for error detection and correction together with the data, and can further store the parity information in the database 611. [ According to one embodiment, each of the memory modules 611_1 included in the database 611 includes a plurality of DRAM chips, and each of the plurality of DRAM chips uses the In DRAM ECC to determine whether failures of respective DRAM chips are generated Can generate the fail bit to indicate. In addition, each of the memory modules 611_1 provided in the database 611 can generate the fail information in the above-described embodiment through the arithmetic operation using the fail bit.

데이터베이스(611)에 대한 독출 동작을 통해, 데이터 및 패리티 정보(또는, 패리티 코드)가 독출되어 호스트(612)로 제공될 수 있다. 또한, 전술한 실시예들에 따라 페일 정보 및/또는 페일 비트가 호스트(612)로 제공되고, 이에 따라 데이터베이스(611)에서 발생된 페일 상태가 호스트(612)로 레포팅될 수 있다. 호스트(612)는 수신된 각종 정보들을 이용하여 페일이 발생된 DRAM 칩의 데이터를 복구할 수 있다. Data and parity information (or parity code) can be read and provided to the host 612 through a read operation on the database 611. [ Also, fail information and / or fail bits may be provided to the host 612 in accordance with the above described embodiments, so that the fail state generated in the database 611 may be reported to the host 612. [ The host 612 can recover the data of the DRAM chip on which the fail is generated by using the received various information.

이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, exemplary embodiments have been disclosed in the drawings and specification. Although the embodiments have been described herein with reference to specific terms, it should be understood that they have been used only for the purpose of describing the technical idea of the present disclosure and not for limiting the scope of the present disclosure as defined in the claims . Therefore, those skilled in the art will appreciate that various modifications and equivalent embodiments are possible without departing from the scope of the present invention. Accordingly, the true scope of protection of the present disclosure should be determined by the technical idea of the appended claims.

Claims (20)

모듈 보드 상에 장착되고, 각각 데이터를 저장하는 제1 내지 제M 메모리 칩들(단, M 은 2 이상의 정수); 및
상기 모듈 보드 상에 장착되고, 상기 제1 내지 제M 메모리 칩들 중 칩 단위 페일이 발생된 메모리 칩의 데이터를 복구하기 위한 패리티 코드를 저장하는 제(M+1) 메모리 칩을 구비하고,
상기 제1 내지 제(M+1) 메모리 칩들로부터 칩 내부 에러 검출 동작을 통해 페일 비트들이 생성되고, 상기 제1 내지 제(M+1) 메모리 칩들로부터의 페일 비트들을 연산한 결과에 따른 페일 정보를 출력하는 것을 특징으로 하는 메모리 모듈.
First to Mth memory chips (M is an integer of 2 or more) mounted on the module board and storing data, respectively; And
And a (M + 1) -th memory chip mounted on the module board and storing a parity code for recovering data of a memory chip in which a chip unit fail is generated among the first to Mth memory chips,
Fail bits are generated from the first to (M + 1) th memory chips through an intra-chip error detection operation, and fail information according to a result of calculating fail bits from the first to (M + To the memory module.
제1항에 있어서,
상기 모듈 보드 상에 장착되고, 상기 제1 내지 제(M+1) 메모리 칩들로부터 상기 페일 비트들을 수신하고, 상기 페일 비트들을 연산하여 상기 페일 정보를 생성하는 버퍼 칩을 더 구비하는 것을 특징으로 하는 메모리 모듈.
The method according to claim 1,
Further comprising a buffer chip mounted on the module board for receiving the fail bits from the first to (M + 1) -th memory chips, and calculating the fail bits to generate the fail information Memory modules.
제2항에 있어서,
상기 버퍼 칩은, 상기 수신된 페일 비트들을 임시적으로 저장하고, 메모리 컨트롤러로부터의 억세스 커맨드에 응답하여 상기 페일 비트들을 출력하는 레지스터를 포함하는 것을 특징으로 하는 메모리 모듈.
3. The method of claim 2,
Wherein the buffer chip comprises a register for temporarily storing the received fail bits and for outputting the fail bits in response to an access command from a memory controller.
제2항에 있어서,
상기 버퍼 칩은, 상기 제1 내지 제(M+1) 메모리 칩들로부터 (M+1) 비트에 해당하는 상기 페일 비트들을 수신하고, 상기 페일 비트들을 연산한 결과에 따라 1 비트에 해당하는 상기 페일 정보를 출력하는 것을 특징으로 하는 메모리 모듈.
3. The method of claim 2,
The buffer chip receives the fail bits corresponding to (M + 1) bits from the first to (M + 1) th memory chips, and generates a fail bit corresponding to one bit And outputs the information.
제4항에 있어서,
상기 메모리 모듈은 NVDIMM(Non-volatile DIMM)이고, 상기 페일 정보는 상기 NVDIMM의 불휘발성 메모리의 동작과 관련하여 정의되는 에러 레포트 핀을 통해 출력되는 것을 특징으로 하는 메모리 모듈.
5. The method of claim 4,
Wherein the memory module is a non-volatile DIMM (NVDIMM), and the fail information is output through an error report pin defined in association with the operation of the nonvolatile memory of the NVDIMM.
제1항에 있어서,
상기 모듈 보드는, 상기 제1 내지 제(M+1) 메모리 칩들에 대응하는 (M+1) 개의 제1 포트들과 추가의 제2 포트를 포함하고, 상기 제1 포트와 제2 포트는 서로 동일한 개수의 핀들을 포함하며,
상기 페일 비트는 상기 제2 포트를 통해 출력되는 것을 특징으로 하는 메모리 모듈.
The method according to claim 1,
Wherein the module board includes (M + 1) first ports and an additional second port corresponding to the first to (M + 1) -th memory chips, and the first port and the second port are connected to each other Comprising the same number of pins,
And the fail bit is output through the second port.
제1항에 있어서,
상기 제(M+1) 메모리 칩에는, 상기 제1 내지 제M 메모리 칩들에서 발생된 랜덤 에러 및 멀티 비트 에러 중 적어도 하나를 정정하기 위한 코드 정보가 더 저장되는 것을 특징으로 하는 메모리 모듈.
The method according to claim 1,
Wherein code information for correcting at least one of a random error and a multi-bit error generated in the first to Mth memory chips is further stored in the (M + 1) th memory chip.
제1항에 있어서,
상기 모듈 보드 상에 장착되는 제(M+2) 메모리 칩을 더 구비하고,
상기 제(M+2) 메모리 칩에는 상기 제1 내지 제M 메모리 칩들에서 발생된 랜덤 에러 및 멀티 비트 에러 중 적어도 하나를 정정하기 위한 코드 정보가 저장되는 것을 특징으로 하는 메모리 모듈.
The method according to claim 1,
(M + 2) memory chips mounted on the module board,
And code information for correcting at least one of a random error and a multi-bit error generated in the first to Mth memory chips is stored in the (M + 2) th memory chip.
제8항에 있어서,
상기 제(M+2) 메모리 칩에는 상기 제1 내지 제M 메모리 칩들 중 칩 단위 페일이 발생된 메모리 칩의 위치를 나타내는 검출 코드가 더 저장되는 것을 특징으로 하는 메모리 모듈.
9. The method of claim 8,
And a detection code indicating a position of a memory chip in which the chip unit fail is generated among the first to Mth memory chips is further stored in the (M + 2) th memory chip.
각각 인-디램 에러 정정 회로(In-DRAM ECC)를 포함하고, 내부 에러 검출을 통해 칩 단위의 페일 여부를 나타내는 페일 비트를 출력하는 M 개의 DRAM 칩들(단, M 은 2 이상의 정수); 및
상기 M 개의 DRAM 칩들부터 상기 페일 비트들을 수신하고, 상기 페일 비트들에 대한 연산 동작을 통해 페일 정보를 생성하여 출력하는 버퍼 칩을 구비하는 것을 특징으로 하는 메모리 모듈.
M DRAM chips (M is an integer of 2 or more) each including an in-DRAM error correction circuit (In-DRAM ECC) and outputting a fail bit indicating whether or not a chip unit fails through an internal error detection; And
And a buffer chip for receiving the fail bits from the M DRAM chips and generating and outputting fail information through a calculation operation on the fail bits.
제10항에 있어서,
상기 M 개의 DRAM 칩들 각각은 정정 불가능한 에러가 발생되었는지를 검출한 결과에 따른 로직 상태를 갖는 1 비트의 페일 비트를 출력하고,
상기 버퍼 칩은 상기 M 개의 DRAM 칩들로부터의 M 개의 비트들에 해당하는 페일 비트를 연산하여 1 비트의 페일 정보를 생성하는 것을 특징으로 하는 메모리 모듈.
11. The method of claim 10,
Each of the M DRAM chips outputs a 1-bit fail bit having a logic state according to a result of detecting whether an uncorrectable error has occurred,
Wherein the buffer chip generates a 1-bit fail information by calculating a fail bit corresponding to M bits from the M DRAM chips.
제10항에 있어서,
상기 버퍼 칩은, 상기 M 개의 DRAM 칩들로부터 수신된 페일 비트들을 임시적으로 저장하고, 메모리 컨트롤러로부터의 억세스 커맨드에 응답하여 상기 페일 비트들을 출력하는 레지스터를 포함하는 것을 특징으로 하는 메모리 모듈.
11. The method of claim 10,
Wherein the buffer chip comprises a register for temporarily storing the fail bits received from the M DRAM chips and outputting the fail bits in response to an access command from the memory controller.
제10항에 있어서,
상기 M 개의 DRAM 칩들은, 데이터를 저장하는 다수 개의 제1 DRAM 칩들과 칩 단위의 페일을 복구하기 위한 패리티 정보를 저장하는 적어도 하나의 제2 DRAM 칩을 포함하는 것을 특징으로 하는 메모리 모듈.
11. The method of claim 10,
Wherein the M DRAM chips include a plurality of first DRAM chips for storing data and at least one second DRAM chip for storing parity information for recovering failures on a chip-by-chip basis.
제13항에 있어서,
상기 패리티 정보는, 상기 M 개의 DRAM 칩들 중 페일이 발생된 DRAM 칩의 위치를 나타내는 검출 코드 없이 데이터의 복구에 이용되는 패리티 코드만을 포함하는 것을 특징으로 하는 메모리 모듈.
14. The method of claim 13,
Wherein the parity information includes only a parity code used for data recovery without a detection code indicating a position of a DRAM chip in which the fail is generated among the M DRAM chips.
다수의 메모리 칩들로부터 데이터 및 이에 대응하는 패리티 코드를 수신하는 단계;
상기 다수의 메모리 칩들 중 적어도 하나의 메모리 칩이 페일되었음을 나타내는 페일 정보를 수신하는 단계;
상기 다수의 메모리 칩들 중 페일이 발생된 메모리 칩의 위치를 나타내는 페일 비트의 제공을 요청하는 단계; 및
상기 페일 비트 및 상기 패리티 코드를 이용하여 상기 페일이 발생된 메모리 칩의 데이터를 복구하는 단계를 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
Receiving data from a plurality of memory chips and a corresponding parity code;
Receiving fail information indicating that at least one of the plurality of memory chips is failed;
Requesting provision of a fail bit indicating a position of a memory chip in which a failure has occurred among the plurality of memory chips; And
And recovering the data of the failed memory chip using the fail bit and the parity code.
제15항에 있어서,
상기 다수의 메모리 칩들에 저장될 데이터에 대한 인코딩 과정을 통해, 상기 페일이 발생된 메모리 칩의 위치를 나타내는 검출 코드를 생성함이 없이 상기 데이터를 복구하는 데 이용되는 패리티 코드만을 선택적으로 생성하는 단계; 및
상기 생성된 패리티 코드가 상기 다수의 메모리 칩들 중 어느 하나의 메모리 칩에 저장되도록 제어하는 단계를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
16. The method of claim 15,
Selectively generating only a parity code used for recovering the data without generating a detection code indicating a position of the failed memory chip through an encoding process for data to be stored in the plurality of memory chips ; And
And controlling the generated parity code to be stored in one of the plurality of memory chips.
제15항에 있어서,
상기 페일 비트의 제공을 요청하는 단계는, 상기 수신된 페일 정보가 적어도 하나의 메모리 칩이 페일되었음을 나타내는 제1 로직 상태를 가질 때 선택적으로 수행되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
16. The method of claim 15,
Wherein requesting the provision of the fail bit is selectively performed when the received fail information has a first logic state indicating that at least one memory chip has failed.
제15항에 있어서,
상기 페일 비트의 제공을 요청하는 단계는, 상기 수신된 패리티 코드를 이용하여 상기 페일 칩의 데이터를 복구할 수 없을 때 선택적으로 수행되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
16. The method of claim 15,
Wherein the requesting of the fail bit is selectively performed when data of the fail chip can not be recovered using the received parity code.
제15항에 있어서,
상기 페일 칩의 복구를 위한 패리티 코드 이외에, 랜덤 에러 또는 멀티 비트 에러를 정정하기 위한 코드 정보를 수신하는 단계; 및
상기 페일 칩의 데이터를 복구한 후 상기 코드 정보를 이용한 에러 정정 동작을 수행하는 단계를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
16. The method of claim 15,
Receiving code information for correcting a random error or a multi-bit error, in addition to the parity code for recovery of the fail chip; And
And performing an error correction operation using the code information after recovering the data of the fail chip.
제15항에 있어서,
상기 데이터를 복구하는 단계는, 상기 수신된 페일 정보가 적어도 하나의 메모리 칩이 페일되었음을 나타내는 제1 로직 상태를 가질 때 선택적으로 수행되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.
16. The method of claim 15,
Wherein recovering the data is selectively performed when the received fail information has a first logic state indicating that at least one memory chip has failed.
KR1020170001318A 2016-10-12 2017-01-04 Memory module reporting fail information of chip unit and Operating method of Memory module and Memory controller KR20180040474A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/688,120 US10169126B2 (en) 2016-10-12 2017-08-28 Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
CN201710858013.6A CN107943609B (en) 2016-10-12 2017-09-20 Memory module, memory controller and system and corresponding operating method thereof
US16/236,750 US10725672B2 (en) 2016-10-12 2018-12-31 Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662406969P 2016-10-12 2016-10-12
US62/406,969 2016-10-12

Publications (1)

Publication Number Publication Date
KR20180040474A true KR20180040474A (en) 2018-04-20

Family

ID=62088289

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170001318A KR20180040474A (en) 2016-10-12 2017-01-04 Memory module reporting fail information of chip unit and Operating method of Memory module and Memory controller

Country Status (1)

Country Link
KR (1) KR20180040474A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200019463A (en) * 2018-08-14 2020-02-24 삼성전자주식회사 Storage device and operation method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200019463A (en) * 2018-08-14 2020-02-24 삼성전자주식회사 Storage device and operation method thereof

Similar Documents

Publication Publication Date Title
CN107943609B (en) Memory module, memory controller and system and corresponding operating method thereof
JP6882115B2 (en) DRAM-assisted error correction method for DDR SDRAM interface
CN108121617B (en) Memory module, memory system and method of operating a memory system
JP7276742B2 (en) Shared parity check to correct memory errors
KR102198611B1 (en) Method of correcting error in a memory
KR102579014B1 (en) Error correction code decoder, semiconductor memory device and memory system
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
US20190034270A1 (en) Memory system having an error correction function and operating method of memory module and memory controller
US10725672B2 (en) Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
US7587658B1 (en) ECC encoding for uncorrectable errors
US7480847B2 (en) Error correction code transformation technique
US11928025B2 (en) Memory device protection
TW201435896A (en) Memory controllers to form symbols based on bursts
US10162703B2 (en) Methods of correcting data errors and semiconductor devices used therein
US20210019225A1 (en) Techniques to implement a hybrid error correction code scheme
CN112749040A (en) Memory controller and memory system including the same
US11714704B2 (en) Modified checksum using a poison data pattern
US11775382B2 (en) Modified parity data using a poison data unit
US10261860B2 (en) Semiconductor systems
KR20180040474A (en) Memory module reporting fail information of chip unit and Operating method of Memory module and Memory controller
KR20200133808A (en) Error correction using hierarchical decoder
KR20230121611A (en) Adaptive error correction to improve system memory reliability, availability and serviceability (RAS)
CN118202335A (en) Data stripe protection

Legal Events

Date Code Title Description
A201 Request for examination