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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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
Description
본 개시의 기술적 사상은 메모리 모듈에 관한 것으로서, 자세하게는 칩 단위의 페일 정보를 레포팅하는 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법에 관한 것이다.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
이하의 설명에서는, 메모리 칩들(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
메모리 컨트롤러(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
패리티 정보(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
일 실시예에 따라, 반도체 메모리 장치(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
반도체 메모리 장치(12)는 페일 정보(Info_F)를 메모리 컨트롤러(11, 또는 호스트)로 제공하고, 메모리 컨트롤러(11)는 페일 정보(Info_F)에 기반하여 반도체 메모리 장치(12)에서 어느 DRAM 칩이 페일인지를 판단할 수 있다. 메모리 컨트롤러(11)의 ECC 엔진(11_1)은 페일 정보(Info_F)에 기반하여 패리티 정보(Info_PAR)를 이용한 에러 정정 동작 및/또는 페일 칩의 데이터 복구 동작을 수행할 수 있다. 메모리 컨트롤러(11)에서의 에러 검출/정정 동작은 모듈 레벨 또는 시스템 레벨의 에러 검출/정정 동작에 해당할 수 있다.The
예컨대, 페일 정보(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
본 발명의 실시예들에서, 상기 페일 칩에 대한 데이터 복구 동작은 다양한 에러 정정 알고리즘을 통해 수행될 수 있다. 예컨대, 메모리 컨트롤러(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
메모리 컨트롤러(11)는 소정 단위의 데이터(예컨대, 32 또는 64 비트의 데이터)에 대해 내부 코딩(예컨대, ECC 코딩)을 통해 패리티 정보(Info_PAR)를 생성할 수 있다. 본 발명의 일 실시예에 따라, 패리티 정보(Info_PAR)는 페일 칩의 위치를 검출하기 위한 검출 코드를 포함함이 없이 데이터 복구 동작에 이용되는 패리티 코드만을 포함할 수 있다. 이에 따라, 메모리 컨트롤러(11)는 소정 단위의 데이터에 대한 인코딩 과정을 통해 패리티 코드만을 생성할 수 있다. 만약, 기존에 64 비트의 데이터에 대응하여 4 비트의 검출 코드가 생성된 경우, 본 발명의 실시예에 따르면 상기 4 비트의 검출 코드가 생성되거나 저장될 필요가 없으므로, 상기 검출 코드의 저장을 위한 자원(예컨대, DRAM 칩 또는 DRAM 칩의 저장 영역)이 감소될 수 있다. The
또는, 변형 가능한 실시예에 따라, 메모리 컨트롤러(11)는 상기 소정 단위의 데이터에 대한 인코딩을 통해 패리티 코드 및 검출 코드를 모두 생성할 수 있다. 반면에, 메모리 컨트롤러(11)는 패리티 코드만을 반도체 메모리 장치(12)에 저장함으로써, 반도체 메모리 장치(12)에서 검출 코드의 저장을 위한 자원이 감소될 수 있다. Alternatively, according to a variant embodiment, the
또한, 변형 가능한 실시예에 따라, 메모리 컨트롤러(11)는 상기 소정 단위의 데이터에 대한 인코딩을 통해 페일 칩의 데이터 복구를 위한 패리티 코드 및 추가의 에러 정정을 위한 코드 정보를 생성할 수 있다. 상기 코드 정보는 반도체 메모리 장치(12)에서 기존에 검출 코드의 저장을 위한 자원에 저장될 수 있다. 즉, 본 변형 가능한 실시예에 따르면 코드 또는 각종 정보들의 저장을 위한 자원을 증가함이 없이 추가의 에러 정정(예컨대, 랜덤 에러 및/또는 멀티 비트 에러 정정)을 위한 코드 정보가 반도체 메모리 장치(12)에 저장될 수 있으며, 이를 통해 반도체 메모리 장치(12)의 데이터 신뢰도가 향상될 수 있다. In addition, according to the deformable embodiment, the
본 발명의 예시적인 실시예에 따라, 상기 패리티 코드에는 페일 칩의 데이터 복구를 위한 코드 이외에, 적어도 하나의 일반 에러를 정정하기 위한 코드가 더 포함될 수도 있다. 또한, 본 발명의 실시예에 따라 기존에 검출 코드의 저장을 위한 자원에 저장되는 추가의 코드 정보는, 설명의 편의상 상기 패리티 코드와 구분되는 구성인 것으로 설명될 것이나, 상기 추가의 코드 정보가 패리티 코드에 포함되는 것으로 정의되어도 무방할 것이다.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
도 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
도 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
전술한 실시예에서와 같이, 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
일 실시예에 따라, 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
또한, 일 실시예에 따라, 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
도 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
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
전술한 바와 같이 반도체 메모리 장치(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
도 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
메모리 모듈(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
도 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
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 (
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)로 이용될 수 있다.
한편, 전술한 바와 같이 메모리 컨트롤러(310)는 페일 정보(Info_F)를 수신하고 이에 기반하여 에러 정정 동작 및/또는 데이터 복구 동작을 수행할 수 있다. 일 예로서, 페일 정보(Info_F)의 로직 상태에 따라 칩 단위의 페일이 발생되었는지가 판단될 수 있으며, 칩 단위 페일이 발생되지 않은 경우 ECC 엔진(311_1)은 패리티 코드(Parity)를 이용한 일반 에러 정정 동작을 수행할 수 있다. 반면에, 칩 단위 페일이 발생된 경우에는 ECC 엔진(311_1)은 시스템 레벨의 에러 정정에 기반하는 데이터 복구 동작을 수행할 수 있다.Meanwhile, as described above, the
도 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
전술한 실시예들에 따라, 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
메모리 컨트롤러(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
메모리 모듈(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
ECC 엔진(411)은 수신된 페일 비트(Fail 1 ~ Fail M)에 기반하여 페일이 발생된 칩의 위치를 판단할 수 있으며, 페일 비트(Fail 1 ~ Fail M) 및 패리티 코드(Parity)를 이용한 시스템 레벨의 에러 정정에 기반하는 복구 동작을 통해 페일 칩의 데이터(DATA)를 복구할 수 있다.The
한편, 도 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
도 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
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 (
도 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
전술한 실시예들에 따라, 칩 단위의 페일이 발생된 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
도 11에 도시된 포트(530A)는 전술한 모듈 보드로부터 제거된(또는, 모듈 보드에 장착되지 않은) 검출 코드를 저장하기 위한 DRAM 칩에 대응하는 포트일 수 있으며, 상기 포트(530A)는 데이터(DATA) 또는 패리티 코드(Parity)를 출력하기 위한 포트와 동일한 개수의 핀들을 포함할 수 있다. 일 예로서, 17 개의 비트들을 포함하는 상기 페일 비트(Fail[1:17])는 4 개의 비트들씩 순차적으로 상기 포트(530A)를 통해 메모리 컨트롤러로 제공될 수 있다.The
도 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
메모리 모듈(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
도 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
제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
또한, 메모리 컨트롤러는 제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
제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
일 실시예에 따라, 메모리 컨트롤러의 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
도 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
도 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.
데이터 서버(610)는 데이터베이스(611) 및 호스트(612)를 포함할 수 있다. 데이터베이스(611)는 전술한 실시예들에 따른 반도체 메모리 장치를 포함할 수 있으며, 일 예로서 데이터베이스(611)는 전술한 실시예들에 따른 다수의 DRAM 모듈들(611_1)을 포함할 수 있다. 즉, 전술한 실시예들에서의 반도체 메모리 장치 및 메모리 컨트롤러는 서버 시스템에 이용될 수 있다. 또한, 호스트(612)는 데이터베이스(611)에 데이터를 저장하고, 데이터베이스(611)로부터 데이터를 독출하여 클라이언트 컴퓨터들(621, 622)로 제공할 수 있다.The
호스트(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
데이터베이스(611)에 대한 독출 동작을 통해, 데이터 및 패리티 정보(또는, 패리티 코드)가 독출되어 호스트(612)로 제공될 수 있다. 또한, 전술한 실시예들에 따라 페일 정보 및/또는 페일 비트가 호스트(612)로 제공되고, 이에 따라 데이터베이스(611)에서 발생된 페일 상태가 호스트(612)로 레포팅될 수 있다. 호스트(612)는 수신된 각종 정보들을 이용하여 페일이 발생된 DRAM 칩의 데이터를 복구할 수 있다. Data and parity information (or parity code) can be read and provided to the
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.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+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 내지 제(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.
상기 버퍼 칩은, 상기 수신된 페일 비트들을 임시적으로 저장하고, 메모리 컨트롤러로부터의 억세스 커맨드에 응답하여 상기 페일 비트들을 출력하는 레지스터를 포함하는 것을 특징으로 하는 메모리 모듈.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.
상기 버퍼 칩은, 상기 제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.
상기 메모리 모듈은 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 내지 제(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.
상기 제(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.
상기 모듈 보드 상에 장착되는 제(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.
상기 제(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.
상기 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.
상기 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.
상기 버퍼 칩은, 상기 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.
상기 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.
상기 패리티 정보는, 상기 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.
상기 다수의 메모리 칩들에 저장될 데이터에 대한 인코딩 과정을 통해, 상기 페일이 발생된 메모리 칩의 위치를 나타내는 검출 코드를 생성함이 없이 상기 데이터를 복구하는 데 이용되는 패리티 코드만을 선택적으로 생성하는 단계; 및
상기 생성된 패리티 코드가 상기 다수의 메모리 칩들 중 어느 하나의 메모리 칩에 저장되도록 제어하는 단계를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.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.
상기 페일 비트의 제공을 요청하는 단계는, 상기 수신된 페일 정보가 적어도 하나의 메모리 칩이 페일되었음을 나타내는 제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.
상기 페일 비트의 제공을 요청하는 단계는, 상기 수신된 패리티 코드를 이용하여 상기 페일 칩의 데이터를 복구할 수 없을 때 선택적으로 수행되는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.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.
상기 페일 칩의 복구를 위한 패리티 코드 이외에, 랜덤 에러 또는 멀티 비트 에러를 정정하기 위한 코드 정보를 수신하는 단계; 및
상기 페일 칩의 데이터를 복구한 후 상기 코드 정보를 이용한 에러 정정 동작을 수행하는 단계를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러의 동작방법.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.
상기 데이터를 복구하는 단계는, 상기 수신된 페일 정보가 적어도 하나의 메모리 칩이 페일되었음을 나타내는 제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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200019463A (en) * | 2018-08-14 | 2020-02-24 | 삼성전자주식회사 | Storage device and operation method thereof |
-
2017
- 2017-01-04 KR KR1020170001318A patent/KR20180040474A/en active Search and Examination
Cited By (1)
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 |