KR102214556B1 - Memory devices and modules - Google Patents
Memory devices and modules Download PDFInfo
- Publication number
- KR102214556B1 KR102214556B1 KR1020150109526A KR20150109526A KR102214556B1 KR 102214556 B1 KR102214556 B1 KR 102214556B1 KR 1020150109526 A KR1020150109526 A KR 1020150109526A KR 20150109526 A KR20150109526 A KR 20150109526A KR 102214556 B1 KR102214556 B1 KR 102214556B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- memory
- module
- interface
- data
- 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
- G06F11/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
Abstract
본 발명의 실시 예는 모듈 에러 인터페이스, 그리고 복수의 메모리 장치들을 포함할 수 있다. 각각의 메모리 장치는 상기 모듈 에러 인터페이스에 연결되고, 데이터 인터페이스 및 장치 에러 인터페이스를 포함하고, 상기 데이터 에러 인터페이스 및 상기 모듈 에러 인터페이스를 통하여 에러 정보를 교환하도록 구성될 수 있다.An embodiment of the present invention may include a module error interface and a plurality of memory devices. Each memory device is connected to the module error interface, includes a data interface and a device error interface, and may be configured to exchange error information through the data error interface and the module error interface.
Description
본 발명은 메모리 시스템 아키텍처에 관한 것으로, 좀 더 상세하게는, 에러 정정 기능을 갖춘 메모리 시스템 아키텍처에 관한 것이다.The present invention relates to a memory system architecture, and more particularly, to a memory system architecture having an error correction function.
메모리 컨트롤러들은 에러 정정을 수행하도록 구성될 수 있다. 예를 들어, 메모리 컨트롤러는 메모리 모듈로부터, 64 비트가 데이터이고 8 비트가 패리티(parity)인, 72 비트의 데이터를 읽을 수 있다. 메모리 컨트롤러는 다른 에러 정정 기술들을 수행할 수 있다. 그러한 기술들을 사용하여, 메모리 모듈로부터 읽혀진 데이터에 있는 어떤 에러들은 확인될 수 있고, 정정될 수 있다. 게다가, 메모리 컨트롤러는 에러와 관련된 이용 가능한 정보를 생성할 수 있다. 메모리 컨트롤러를 포함하는 시스템은 메모리 페이지의 회수(retiring a memory page), 시스템 정지, 또는 이와 유사한 것과 같은, 에러 정보에 기초하여 운영 결정(operational decision)을 할 수 있다. 그러한 메모리 컨트롤러는 프로세서와 함께 집적될 수 있다. 예를 들어, 예를 들어, 인텔 제온(Intel Xeon®) 프로세서는 에러 정정을 수행하도록 구성된 집적 메모리 컨트롤러를 포함할 수 있다.The memory controllers can be configured to perform error correction. For example, the memory controller may read 72 bits of data, 64 bits of data and 8 bits of parity, from the memory module. The memory controller can perform other error correction techniques. Using such techniques, any errors in data read from the memory module can be identified and corrected. In addition, the memory controller can generate usable information related to the error. A system including a memory controller can make operational decisions based on error information, such as retiring a memory page, system halt, or the like. Such a memory controller can be integrated with the processor. For example, an Intel Xeon® processor may include an integrated memory controller configured to perform error correction.
그러나, 만일 데이터가 메모리 컨트롤러에 의해 수신되기 전에 에러 정정이 수행되면, 정정과 관련된 에러 정보는 메모리 컨트롤러에서 이용 가능하지 않을 수 있고, 따라서 시스템 관리 결정(system management decision)을 위해 시스템에 이용 가능하지 않을 수 있다. However, if error correction is performed before data is received by the memory controller, error information related to the correction may not be available in the memory controller, and therefore not available to the system for system management decisions. May not.
본 발명의 기술적 사상은 저비용 및 저전력 특성을 제공하는 메모리 장치 및 모듈을 제공한다.The technical idea of the present invention provides a memory device and a module that provide low cost and low power characteristics.
본 발명의 실시 예에 따른 메모리 모듈은, 모듈 에러 인터페이스, 그리고 복수의 메모리 장치들을 포함하되, 각각의 메모리 장치는 상기 모듈 에러 인터페이스에 연결되고, 데이터 인터페이스 및 장치 에러 인터페이스를 포함하고, 상기 장치 에러 인터페이스 및 상기 모듈 에러 인터페이스를 통하여 에러 정보를 교환하도록 구성될 수 있다.A memory module according to an embodiment of the present invention includes a module error interface and a plurality of memory devices, each memory device being connected to the module error interface, including a data interface and a device error interface, and the device error It may be configured to exchange error information through an interface and the module error interface.
예를 들어, 상기 모듈 에러 인터페이스 및 상기 메모리 장치들의 장치 에러 인터페이스들 각각에 연결되는 컨트롤러를 더 포함할 수 있다.For example, a controller connected to each of the module error interface and the device error interfaces of the memory devices may be further included.
예를 들어, 상기 컨트롤러는 리피터를 더 포함할 수 있다.For example, the controller may further include a repeater.
예를 들어, 상기 컨트롤러는 별도의 버스를 통하여 상기 장치 에러 인터페이스들 각각에 연결될 수 있다.For example, the controller may be connected to each of the device error interfaces through a separate bus.
예를 들어, 상기 컨트롤러는 공용 버스를 통하여 상기 장치 에러 인터페이스들 각각에 연결될 수 있다.For example, the controller may be connected to each of the device error interfaces through a common bus.
예를 들어, 각각의 메모리 장치는 식별 입력을 더 포함하고, 상기 메모리 장치는 상기 식별 입력을 통하여 상기 공용 버스와 관련된 식별을 수신하도록 구성될 수 있다.For example, each memory device may further include an identification input, and the memory device may be configured to receive an identification associated with the common bus through the identification input.
예를 들어, 상기 메모리 장치들은 데이지 체인 회선(daisy-chain link)에 연결될 수 있다.For example, the memory devices may be connected to a daisy-chain link.
예를 들어, 각각의 메모리는 상기 데이지 체인 회선을 통하여 수신된 신호에 응답하여 상기 장치 에러 인터페이스를 통하여 수신된 정보가 상기 메모리 장치와 관련되는지 여부를 판단하도록 구성될 수 있다.For example, each memory may be configured to determine whether information received through the device error interface is related to the memory device in response to a signal received through the daisy chain line.
예를 들어, 상기 컨트롤러에 연결되고 상기 모듈 에러 인터페이스를 통하여 통신하도록 구성되는 직렬 프레즌스 검출 모듈을 더 포함할 수 있다.For example, it may further include a serial presence detection module connected to the controller and configured to communicate through the module error interface.
예를 들어, 상기 컨트롤러는 어드레스를 수신하도록 구성되는 어드레스 입력을 더 포함하고, 상기 컨트롤러는 상기 어드레스에 기초하여 상기 모듈 에러 인터페이스를 통하여 수신된 통신에 응답하도록 구성될 수 있다.For example, the controller may further include an address input configured to receive an address, and the controller may be configured to respond to communication received through the module error interface based on the address.
예를 들어, 상기 컨트롤러는 상기 메모리 장치들의 상기 장치 에러 인터페이스들을 통하여 수신된 에러 정보를 수집하도록 구성될 수 있다.For example, the controller may be configured to collect error information received through the device error interfaces of the memory devices.
본 발명의 실시 예에 따른 메모리 모듈은, 모듈 에러 인터페이스, 복수의 메모리 장치들로써, 각각의 메모리 장치는 데이터 인터페이스 및 장치 에러 인터페이스를 포함하고, 상기 장치 에러 인터페이스를 통하여 에러 정보를 교환하도록 구성되는 것, 그리고 상기 모듈 에러 인터페이스 및 각각의 메모리 장치의 상기 장치 에러 인터페이스에 연결되는 컨트롤러를 포함할 수 있다.A memory module according to an embodiment of the present invention includes a module error interface and a plurality of memory devices, each of which includes a data interface and a device error interface, and is configured to exchange error information through the device error interface. And a controller connected to the module error interface and the device error interface of each memory device.
예를 들어, 모듈 데이터 인터페이스를 더 포함하되, 상기 컨트롤러는 상기 모듈 데이터 인터페이스 및 각각의 메모리 장치의 상기 데이터 인터페이스에 연결될 수 있다.For example, further comprising a module data interface, the controller may be connected to the module data interface and the data interface of each memory device.
예를 들어, 상기 컨트롤러에 연결되는 직렬 프레즌스 검출 모듈을 더 포함하되, 상기 직렬 프레즌스 검출 모듈은 상기 모듈 에러 인터페이스를 거쳐 상기 컨트롤러를 통하여 액세스 가능할 수 있다.For example, it may further include a serial presence detection module connected to the controller, the serial presence detection module can be accessed through the controller through the module error interface.
예를 들어, 상기 컨트롤러는 상기 직렬 프레즌스 검출 모듈로부터 제어 신호를 수신하도록 구성되고, 그리고 상기 컨트롤러는 상기 모듈 에러 인터페이스를 통하여 상기 제어 신호를 제공하도록 구성될 수 있다.For example, the controller may be configured to receive a control signal from the serial presence detection module, and the controller may be configured to provide the control signal through the module error interface.
예를 들어, 상기 컨트롤러는 상기 메모리 장치들의 상기 장치 에러 인터페이스들과 관련된 어드레스들을 결정하도록 구성될 수 있다.For example, the controller may be configured to determine addresses associated with the device error interfaces of the memory devices.
본 발명의 실시 예에 따른 방법은, 메모리 모듈의 모듈 에러 인터페이스를 통하여 통신을 수신하는 단계, 컨트롤러에 의해, 상기 컨트롤러에 연결된 적어도 하나의 메모리 장치로부터 에러 정보를 읽는 단계, 그리고 상기 에러 정보에 기초하여 상기 모듈 에러 인터페이스를 통하여 상기 통신에 응답하는 단계를 포함할 수 있다.A method according to an embodiment of the present invention includes receiving communication through a module error interface of a memory module, reading error information from at least one memory device connected to the controller by a controller, and based on the error information. Thus, it may include the step of responding to the communication through the module error interface.
예를 들어, 상기 방법은 상기 통신을 상기 적어도 하나의 메모리 장치로 포워딩하는 단계를 더 포함할 수 있다.For example, the method may further include forwarding the communication to the at least one memory device.
예를 들어, 상기 컨트롤러에 의해 상기 에러 정보를 읽는 단계는, 대응하는 전용 버스를 통하여 상기 적어도 하나의 메모리 장치 중 적어도 하나를 액세스하는 단계를 포함할 수 있다.For example, reading the error information by the controller may include accessing at least one of the at least one memory device through a corresponding dedicated bus.
예를 들어, 상기 컨트롤러에 의해 상기 에러 정보를 읽는 단계는, 공용 버스를 통하여 상기 적어도 하나의 메모리 장치 중 적어도 하나를 액세스하는 단계를 포함할 수 있다.For example, reading the error information by the controller may include accessing at least one of the at least one memory device through a common bus.
본 발명의 실시 예에 따른 시스템은, 데이터를 저장하고, 상기 저장된 데이터로부터 읽혀진 데이터의 에러를 정정하고, 상기 저장된 데이터로부터 읽혀진 상기 데이터의 상기 에러를 정정하는 것에 응답하여 에러 정보를 생성하도록 구성되는 메모리, 그리고 제 1 통신 경로 및 제 2 통신 경로를 통하여 상기 메모리에 연결되고, 상기 제 1 통신 경로를 통하여 상기 메모리로부터 데이터를 수신하고, 상기 제 2 통신 경로를 통하여 상기 메모리로부터 상기 에러 정보를 수신하도록 구성되는 프로세서를 포함할 수 있다.A system according to an embodiment of the present invention is configured to store data, correct an error in data read from the stored data, and generate error information in response to correcting the error in the data read from the stored data. A memory, and connected to the memory through a first communication path and a second communication path, receive data from the memory through the first communication path, and receive the error information from the memory through the second communication path It may include a processor configured to be.
예를 들어, 상기 에러는 싱글-비트 에러일 수 있고, 상기 에러 정보는 에러가 정정되었다는 것을 나타낼 수 있다.For example, the error may be a single-bit error, and the error information may indicate that the error has been corrected.
예를 들어, 상기 에러 정보는 정정된 에러 정보를 포함할 수 있고, 상기 프로세서는 상기 제 1 통신 경로와는 다른 경로를 통하여 상기 정정된 에러 정보를 수신하도록 구성될 수 있다. For example, the error information may include corrected error information, and the processor may be configured to receive the corrected error information through a path different from the first communication path.
예를 들어, 상기 메모리는 다이내믹 랜덤 액세스 메모리 모듈일 수 있다.For example, the memory may be a dynamic random access memory module.
예를 들어, 상기 시스템은 상기 프로세서 및 상기 메모리에 연결되고, 상기 프로세서 및 상기 메모리와 통신하도록 구성되는 컨트롤러를 더 포함할 수 잇다. 상기 컨트롤러는 상기 제 2 통신 경로의 일부일 수 있다.For example, the system may further include a controller connected to the processor and the memory and configured to communicate with the processor and the memory. The controller may be part of the second communication path.
예를 들어, 상기 컨트롤러는 베이스보드 관리 컨트롤러일 수 있다.For example, the controller may be a baseboard management controller.
예를 들어, 상기 컨트롤러는 지능형 플랫폼 관리 인터페이스(intelligent platform management interface)에 부합하는 인터페이스에 의해 상기 프로세서에 연결될 수 있다.For example, the controller may be connected to the processor by an interface conforming to an intelligent platform management interface.
예를 들어, 상기 컨트롤러는 SMBus (System Management Bus)에 부합하는 인터페이스에 의해 상기 메모리에 연결될 수 있다.For example, the controller may be connected to the memory by an interface conforming to the SMBus (System Management Bus).
예를 들어, 상기 컨트롤러는 상기 에러 정보를 저장하고, 상기 프로세서로부터 수신된 요청에 응답하여 상기 프로세서로 상기 에러 정보를 제공하도록 구성될 수 있다.For example, the controller may be configured to store the error information and provide the error information to the processor in response to a request received from the processor.
예를 들어, 상기 프로세서는 상기 메모리에 연결되는 메모리 컨트롤러를 포함할 수 있고, 상기 메모리 컨트롤러는 상기 제 1 통신 경로를 통하여 상기 메모리에 연결될 수 있다.For example, the processor may include a memory controller connected to the memory, and the memory controller may be connected to the memory through the first communication path.
예를 들어, 상기 프로세서는 상기 메모리에 연결된 메모리 컨트롤러를 포함할 수 있고, 상기 메모리 컨트롤러는 상기 메모리로부터 읽혀진 데이터의 에러를 정정하도록 구성되지 않을 수 있다.For example, the processor may include a memory controller connected to the memory, and the memory controller may not be configured to correct an error in data read from the memory.
예를 들어, 상기 제 1 통신 경로는 복수의 데이터 라인들 및 적어도 하나의 데이터 스트로브 라인을 포함할 수 있고, 상기 메모리는 상기 적어도 하나의 데이터 스트로브 라인을 통하여 전송된 신호에 의해 정정 불가능한 에러를 교환하도록 구성될 수 있다.For example, the first communication path may include a plurality of data lines and at least one data strobe line, and the memory exchanges an uncorrectable error by a signal transmitted through the at least one data strobe line. Can be configured to
예를 들어, 상기 시스템은 상기 메모리와 상기 프로세서 사이에 연결된 제 3 통신 경로를 더 포함할 수 있다. 상기 메모리는 상기 제 3 통신 경로를 통하여 정정 불가능한 에러를 교환하도록 구성될 수 있다.For example, the system may further include a third communication path connected between the memory and the processor. The memory may be configured to exchange an uncorrectable error through the third communication path.
예를 들어, 상기 프로세서는 상기 메모리에 의해 생성된 상기 에러 정보를 요청하도록 구성될 수 있다.For example, the processor may be configured to request the error information generated by the memory.
예를 들어, 상기 프로세서는 상기 에러 정보를 상기 메모리와 관련된 다른 정보와 결합하도록 구성될 수 있다.For example, the processor may be configured to combine the error information with other information related to the memory.
예를 들어, 상기 다른 정보는 상기 제 1 통신 경로를 통하여 수신된 정보에 기초할 수 있다.For example, the other information may be based on information received through the first communication path.
예를 들어, 상기 프로세서는 상기 제 2 통신 경로에 연결된 인터페이스를 포함할 수 있고, 상기 프로세서는 상기 인터페이스를 통하여 상기 에러 정보를 수신하고 상기 인터페이스를 통하여 다른 정보를 수신하도록 구성될 수 있다.For example, the processor may include an interface connected to the second communication path, and the processor may be configured to receive the error information through the interface and other information through the interface.
예를 들어, 상기 메모리는 적어도 하나의 직렬 프레즌스 검출 시스템 및 레지스터링 클록 드라이버 시스템을 포함할 수 있고, 상기 다른 정보는 상기 적어도 하나의 직렬 프레즌스 검출 시스템 및 상기 레지스터링 클록 드라이버 시스템으로부터 수신될 수 있다.For example, the memory may include at least one serial presence detection system and a registering clock driver system, and the other information may be received from the at least one serial presence detection system and the registering clock driver system. .
본 발명의 실시 예에 따른 메모리 모듈은, 데이터를 저장하도록 구성되는 적어도 하나의 메모리 장치, 제 1 인터페이스, 및 제 2 인터페이스를 포함할 수 있다. 상기 제 1 인터페이스는 상기 적어도 하나의 메모리 장치에 저장된 데이터를 전송하도록 구성될 수 있고, 상기 제 2 인터페이스는 상기 적어도 하나의 메모리 장치로부터 읽혀진 데이터의 에러를 정정하는 것에 응답하여 생성된 에러 정보를 전송하도록 구성될 수 있다.A memory module according to an embodiment of the present invention may include at least one memory device configured to store data, a first interface, and a second interface. The first interface may be configured to transmit data stored in the at least one memory device, and the second interface transmits error information generated in response to correcting an error in data read from the at least one memory device. Can be configured to
예를 들어, 상기 제 2 인터페이스는 적어도 하나의 직렬 프레즌스 검출 인터페이스 및 레지스터링 클록 드라이버 인터페이스를 포함할 수 있다.For example, the second interface may include at least one serial presence detection interface and a registering clock driver interface.
예를 들어, 상기 메모리 모듈은 상기 제 1 인터페이스에 연결되고, 정정 불가능한 에러의 감지에 응답하여 상기 제 1 인터페이스를 통하여 전송된 데이터 스트로브 신호를 변경하도록 구성되는 컨트롤러를 더 포함할 수 있다.For example, the memory module may further include a controller connected to the first interface and configured to change a data strobe signal transmitted through the first interface in response to detection of an uncorrectable error.
예를 들어, 상기 제 2 인터페이스는 정정 불가능한 에러의 감지에 응답하여 에러 정보를 전송하도록 구성될 수 있다.For example, the second interface may be configured to transmit error information in response to detection of an uncorrectable error.
본 발명의 실시 예에 따른 방법은, 메모리 모듈에서 에러를 포함하는 데이터를 읽는 단계, 상기 에러를 포함하는 데이터를 읽는 것에 기초하여 에러 정보를 생성하는 단계, 메모리 모듈에서 상기 에러 정보를 읽기 위한 커맨드를 수신하는 단계, 그리고 상기 메모리 모듈로부터, 상기 커맨드에 응답하여 상기 에러 정보를 전송하는 단계를 포함할 수 있다. A method according to an embodiment of the present invention may include reading data including an error from a memory module, generating error information based on reading the data including the error, and a command for reading the error information from a memory module. Receiving, and transmitting the error information from the memory module in response to the command.
예를 들어, 상기 방법은 컨트롤러에서 상기 에러 정보를 수신하는 단계, 그리고 상기 컨트롤러로부터 프로세서로, 상기 에러 정보를 전송하는 단계를 더 포함할 수 있다.For example, the method may further include receiving the error information from a controller, and transmitting the error information from the controller to a processor.
예를 들어, 상기 방법은, 상기 컨트롤러로부터, 상기 에러 정보를 읽기 위한 상기 커맨드를 전송하는 단계, 그리고 상기 컨트롤러에서 상기 에러 정보를 수신하는 단계를 더 포함할 수 있다.For example, the method may further include transmitting, from the controller, the command for reading the error information, and receiving the error information from the controller.
예를 들어, 에러 정보를 읽기 위한 상기 커맨드는 에러 정보를 읽기 위한 제 1 커맨드로 지칭될 수 있고, 상기 방법은, 컨트롤러의 상기 프로세서로부터, 에러 정보를 읽기 위한 제 2 커맨드를 수신하는 단계, 그리고 상기 컨트롤러로부터, 상기 제 2 커맨드에 응답하여 상기 제 1 커맨드를 전송하는 단계를 더 포함할 수 있다.For example, the command for reading error information may be referred to as a first command for reading error information, and the method includes receiving, from the processor of the controller, a second command for reading error information, and The method may further include transmitting the first command from the controller in response to the second command.
예를 들어, 상기 방법은, 상기 메모리 모듈로부터, 데이터 스트로브 신호를 변형함으로써 정정 불가능한 에러를 교환하는 단계를 더 포함할 수 있다.For example, the method may further include exchanging an uncorrectable error by modifying a data strobe signal from the memory module.
예를 들어, 상기 방법은, 프로세서에서, 상기 메모리 모듈과 관련된 추가 정보를 생성하는 단계, 그리고 상기 프로세서에서, 상기 추가 정보를 상기 에러 정보와 결합시키는 단계를 더 포함할 수 있다.For example, the method may further include, in a processor, generating additional information related to the memory module, and in the processor, combining the additional information with the error information.
예를 들어, 상기 메모리 모듈로부터 상기 에러 정보를 전송하는 단계는 통신 회선을 통하여 상기 에러 정보 및 다른 정보를 전송하는 단계를 포함할 수 있다.For example, transmitting the error information from the memory module may include transmitting the error information and other information through a communication line.
예를 들어, 상기 다른 정보는 상기 메모리 모듈과 관련되지 않은 정보일 수 있다.For example, the other information may be information not related to the memory module.
본 발명의 실시 예에 따른 시스템은, 메모리, 메인 메모리 채널을 통하여 상기 메모리에 연결된 프로세서, 그리고 상기 메인 메모리로부터 분리되고 상기 메모리 및 상기 프로세서에 연결된 통신 회선을 포함하되, 상기 메모리 및 프로세서는 상기 메인 메모리 채널 및 상기 통신 회선을 통하여 서로 통신하도록 구성될 수 있다.A system according to an embodiment of the present invention includes a memory, a processor connected to the memory through a main memory channel, and a communication line separated from the main memory and connected to the memory and the processor, wherein the memory and the processor are It may be configured to communicate with each other through a memory channel and the communication line.
예를 들어, 상기 프로세서는 메모리 컨트롤러를 포함할 수 있고, 상기 메모리 컨트롤러는 메인 메모리 채널의 일부일 수 있다.For example, the processor may include a memory controller, and the memory controller may be part of a main memory channel.
예를 들어, 상기 프로세서는 상기 통신 회선을 통하여 시스템 관리 정보를 수신하도록 구성될 수 있다.For example, the processor may be configured to receive system management information through the communication line.
예를 들어, 상기 시스템 관리 정보는 열 정보 및 전원 정보 중 적어도 하나를 포함할 수 있다.For example, the system management information may include at least one of thermal information and power information.
예를 들어, 상기 메모리는 상기 통신 회선을 통하여 상기 프로세서로 에러 정보를 교환하도록 구성될 수 있다.For example, the memory may be configured to exchange error information with the processor through the communication line.
본 발명의 실시 예에 따른 시스템은, 에러 정정 기능이 없는 메모리, 상기 메모리에 연결되고 상기 메모리로부터 읽혀진 데이터의 에러를 정정하고, 상기 에러에 응답하여 에러 정보를 생성하도록 구성되는 에러 정정 회로, 그리고 제 1 통신 경로 및 제 2 통신 경로를 통하여 상기 에러 정정 회로에 연결된 프로세서를 포함할 수 있다. 상기 프로세서는 상기 제 1 통신 경로를 통하여 상기 에러 정정 회로로부터 정정된 데이터를 수신하도록 구성될 수 있고, 상기 프로세서는 상기 제 2 통신 경로를 통하여 상기 에러 정정 회로로부터 상기 에러 정보를 수신하도록 구성될 수 있다.A system according to an embodiment of the present invention includes a memory without an error correction function, an error correction circuit configured to correct an error of data connected to the memory and read from the memory, and to generate error information in response to the error, and It may include a processor connected to the error correction circuit through the first communication path and the second communication path. The processor may be configured to receive corrected data from the error correction circuit through the first communication path, and the processor may be configured to receive the error information from the error correction circuit through the second communication path. have.
상기 제 2 통신 경로는 상기 에러 정정 회로로부터 상기 에러 정보를 수신하고 상기 프로세서에 상기 에러 정보를 전송하도록 구성될 수 있다.The second communication path may be configured to receive the error information from the error correction circuit and transmit the error information to the processor.
본 발명의 실시 예에 따른 방법은, 메모리 장치에서, 데이터 인터페이스를 통하여 수신된 읽기 커맨드에 응답하여 에러를 포함하는 데이터를 읽는 단계, 상기 에러를 포함하는 상기 데이터를 읽는 것에 기초하여 에러 정보를 기록하는 단계, 그리고 상기 메모리 모듈로부터, 상기 에러 인터페이스를 통하여 상기 에러 정보를 전송하는 단계를 포함할 수 있다.A method according to an embodiment of the present invention includes, in a memory device, reading data including an error in response to a read command received through a data interface, and writing error information based on reading the data including the error. And transmitting the error information from the memory module through the error interface.
예를 들어, 상기 방법은 상기 에러에 응답하여 메모리로부터 읽혀진 상기 데이터를 다시 읽는 단계, 그리고 상기 데이터를 다시 읽는 것에 응답하여 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, the method may further include re-reading the data read from memory in response to the error, and confirming the error in response to re-reading the data.
예를 들어, 만일 상기 다시 읽혀진 데이터가 정정 불가능한 에러를 나타낸다면, 상기 방법은 정정 불가능으로써 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if the re-read data indicates an uncorrectable error, the method may further include confirming the error as uncorrectable.
예를 들어, 만일 다시 읽혀진 데이터가 정정 불가능한 에러이고 상기 에러가 정정 불가능한 에러라는 것을 나타내면, 상기 방법은 리페어 불가능한 것으로서 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if the re-read data is an uncorrectable error and indicates that the error is an uncorrectable error, the method may further include confirming the error as non-repairable.
예를 들어, 만일 상기 읽혀진 데이터가 에러가 없다는 것을 나타내면, 상기 방법은 소프트-읽기 에러로써 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if the read data indicates that there is no error, the method may further include identifying the error as a soft-read error.
예를 들어, 상기 방법은 정정 가능한 에러인 상기 에러에 응답하여 상기 메모리에 정정된 데이터를 다시 쓰는 단계를 더 포함할 수 있다.For example, the method may further include rewriting the corrected data in the memory in response to the error, which is a correctable error.
예를 들어, 만일 상기 다시 쓰기 동안 정정 불가능한 에러가 발생하였다면, 상기 방법은 정정 불가능한 에러로써 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if an uncorrectable error occurs during the rewriting, the method may further include checking the error as an uncorrectable error.
예를 들어, 만일 상기 다시 쓰기 동안 에러가 발생하지 않았다면, 상기 방법은 소프트-읽기 에러로써 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if no error has occurred during the rewriting, the method may further include confirming the error as a soft-read error.
예를 들어, 만일 상기 다시 쓰기 동안 정정 가능한 에러가 발생하였다면, 상기 방법은 상기 메모리를 리페어 하는 것을 시도하는 단계를 더 포함할 수 있다.For example, if a correctable error occurs during the rewriting, the method may further include attempting to repair the memory.
예를 들어, 상기 방법은 상기 메모리를 리페어 하는 시도의 결과에 기초하여 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, the method may further include checking the error based on a result of an attempt to repair the memory.
예를 들어, 상기 방법은, 상기 메모리 모듈로부터, 데이터 스트로브 신호를 변형함으로써 정정 불가능한 에러를 교환하는 단계를 더 포함할 수 있다.For example, the method may further include exchanging an uncorrectable error by modifying a data strobe signal from the memory module.
본 발명의 실시 예에 따른 메모리 모듈은, 데이터 인터페이스, 에러 인터페이스, 그리고 복수의 메모리 장치들을 포함하되, 각각의 메모리 장치는 상기 데이터 인터페이스 및 상기 에러 인터페이스에 연결될 수 있고, 데이터를 저장하도록 구성되는 메모리, 상기 데이터 인터페이스, 상기 에러 인터페이스, 및 상기 메모리에 연결되는 컨트롤러를 포함할 수 있고, 상기 컨트롤러는 상기 데이터 인터페이스를 통하여 상기 메모리에 저장된 데이터를 전송하도록 구성되고, 상기 컨트롤러는 상기 에러 인터페이스를 통하여 메모리로부터 읽혀진 데이터의 에러를 정정하는 것에 응답하여 생성된 에러 정보를 전송하도록 구성될 수 있다.A memory module according to an embodiment of the present invention includes a data interface, an error interface, and a plurality of memory devices, each memory device being connected to the data interface and the error interface, and configured to store data. , The data interface, the error interface, and a controller connected to the memory, wherein the controller is configured to transmit data stored in the memory through the data interface, and the controller May be configured to transmit error information generated in response to correcting an error in data read from.
예를 들어, 상기 에러 인터페이스는 상기 메모리 장치들로부터 에러 정보를 수집하도록 구성될 수 있다.For example, the error interface may be configured to collect error information from the memory devices.
예를 들어, 각각의 메모리 장치에 대해, 상기 컨트롤러는 정정 불가능한 에러를 감지하는 것에 응답하여 상기 메모리 장치로부터 상기 데이터 인터페이스로 전송된 데이터 스트로브 신호를 변형하도록 구성될 수 있고, 상기 데이터 인터페이스는 상기 메모리 장치들의 하나 또는 그 이상으로부터의 변형된 데이터 스트로브 신호에 응답하여 데이터 스트로브 신호를 전송하도록 구성될 수 있다.For example, for each memory device, the controller may be configured to modify a data strobe signal transmitted from the memory device to the data interface in response to detecting an uncorrectable error, and the data interface It may be configured to transmit a data strobe signal in response to a modified data strobe signal from one or more of the devices.
본 발명의 실시 예에 따른 메모리 장치는, 데이터를 저장하도록 구성되는 메모리, 상기 메모리에 연결되고, 상기 메모리에 저장된 데이터를 읽고, 상기 메모리로부터 읽혀진 상기 데이터의 에러를 진단하고, 상기 에러를 진단하는 것에 응답하여 상기 에러의 에러 타입을 확인하도록 구성되는 컨트롤러를 포함할 수 있다.A memory device according to an embodiment of the present invention includes a memory configured to store data, a memory connected to the memory, reading data stored in the memory, diagnosing an error of the data read from the memory, and diagnosing the error. And a controller configured to check the error type of the error in response.
예를 들어, 상기 컨트롤러는 소프트-읽기 에러, 소프트-쓰기 에러, 하드 에러, 리페어 가능한 에러, 및 리페어 불가능한 에러 중 적어도 하나로서 상기 에러 타입을 확인할 수 있다.For example, the controller may check the error type as at least one of a soft-read error, a soft-write error, a hard error, a repairable error, and a non-repairable error.
예를 들어, 상기 컨트롤러는 상기 데이터를 다시 읽는 것에 응답하여 상기 에러를 진단하도록 구성될 수 있다.For example, the controller may be configured to diagnose the error in response to re-reading the data.
예를 들어, 상기 컨트롤러는 상기 데이터를 다시 쓰는 것에 응답하여 상기 에러를 진단하도록 구성될 수 있다.For example, the controller may be configured to diagnose the error in response to rewriting the data.
예를 들어, 상기 컨트롤러는 상기 데이터를 다시 쓰는 것에 응답하여 상기 메모리를 리페어 하는지 여부를 판단하도록 구성될 수 있다.For example, the controller may be configured to determine whether to repair the memory in response to rewriting the data.
본 발명의 실시 예에 따르면, 저비용 및 저전력 특성을 제공하는 메모리 장치 및 모듈을 제공할 수 있다.According to an embodiment of the present invention, a memory device and a module that provide low cost and low power characteristics can be provided.
도 1은 본 발명의 실시 예에 따른 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다.
도 2는 본 발명의 실시 예에 따른 컨트롤러를 포함하는 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다.
도 3은 본 발명의 실시 예에 따른 베이스보드 관리 컨트롤러(BMC)를 포함하는 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다.
도 4는 본 발명의 실시 예에 따른 프로세서-기반의 에러 정정을 수행하지 않는 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다.
도 5는 본 발명의 실시 예에 따른 오염된 데이터 스트로브 신호를 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다.
도 6은 본 발명의 실시 예에 따른 별도의 정정 불가능한 에러 신호를 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다.
도 7은 본 발명의 실시 예에 따른 소프트웨어 모듈을 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다.
도 8은 본 발명의 실시 예에 따른 에러 검출 및 정정 모듈을 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다.
도 9는 본 발명의 실시 예에 따른 수집 모듈을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다.
도 10은 본 발명의 일 실시 예에 따른 메모리 컨트롤 아키텍처 모듈로부터 정보를 수집하는 에러 정정 모듈을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다.
도 11은 본 발명의 실시 예에 따른 인터페이스를 공유하는 복수의 모듈을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다.
도 12는 본 발명의 실시 예에 따른 인터페이스를 공유하는 정정 가능 에러 모듈 및 직렬 프레즌스 검출/레지스터 클록 드라이버 모듈을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다.
도 13은 본 발명의 실시 예에 따른 DRAM 내 에러 정정 기술을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도도이다.
도 14a 내지 도 14d는 본 발명의 실시 예들에 따른 모듈 내 에러 정정 기술을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다.
도 15는 본 발명의 실시 예에 따른 메모리 모듈을 보여주는 개략도이다.
도 16은 본 발명의 실시 예에 따른 SPD 또는 RCD 인터페이스를 갖는 메모리 모듈을 보여주는 개략도이다.
도 17은 본 발명의 실시 예에 따른 별도의 정정 불가능한 에러 인터페이스를 갖는 메모리 모듈을 보여주는 개략도이다.
도 18은 본 발명의 실시 예에 따른 메모리 장치를 보여주는 개략도이다.
도 19는 본 발명의 실시 예에 따른 메모리 장치를 보여주는 개략도이다.
도 20은 본 발명의 실시 예에 따른 메모리 장치들을 포함하는 메모리 모듈을 보여주는 개략도이다.
도 21 내지 도 23은 본 발명의 다양한 실시 예들에 따른 메모리 모듈들을 보여주는 개략도이다.
도 24 내지 도 26은 본 발명의 다양한 실시 예들에 따른 메모리 모듈들의 일부를 보여주는 개략도이다.
도 27은 본 발명의 실시 예에 따른 메모리 모듈을 보여주는 개략도이다.
도 28은 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다.
도 29는 본 발명의 실시 예에 따른 에러를 다루는 기술을 보여주는 순서도이다.
도 30은 본 발명의 실시 예에 따른 에러를 다루는 기술을 보여주는 순서도이다.
도 31은 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다.
도 32는 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다.
도 33은 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다.
도 34는 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다.
도 35는 본 발명의 실시 예에 따른 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다.
도 36은 본 발명의 실시 예에 따른 서버를 보여주는 개략도이다.
도 37은 본 발명의 일 실시 예에 따른 서버 시스템을 보여주는 개략도이다.
도 38은 본 발명의 실시 예에 따른 데이터 센터를 보여주는 개략도이다.1 is a schematic diagram showing a system having a memory system architecture according to an embodiment of the present invention.
2 is a schematic diagram showing a system having a memory system architecture including a controller according to an embodiment of the present invention.
3 is a schematic diagram showing a system having a memory system architecture including a baseboard management controller (BMC) according to an embodiment of the present invention.
4 is a schematic diagram illustrating a system having a memory system architecture that does not perform processor-based error correction according to an embodiment of the present invention.
5 is a schematic diagram illustrating a system including a memory system architecture having a contaminated data strobe signal according to an embodiment of the present invention.
6 is a schematic diagram illustrating a system including a memory system architecture having a separate non-correctable error signal according to an embodiment of the present invention.
7 is a schematic diagram illustrating a system including a memory system architecture having a software module according to an embodiment of the present invention.
8 is a schematic diagram illustrating a system including a memory system architecture having an error detection and correction module according to an embodiment of the present invention.
9 is a schematic diagram illustrating a system including a memory system architecture having a collection module according to an embodiment of the present invention.
10 is a schematic diagram showing a system including a memory system architecture having an error correction module for collecting information from a memory control architecture module according to an embodiment of the present invention.
11 is a schematic diagram illustrating a system including a memory system architecture including a plurality of modules sharing interfaces according to an embodiment of the present invention.
12 is a schematic diagram showing a system including a memory system architecture having a correctable error module and a serial presence detection/register clock driver module sharing an interface according to an embodiment of the present invention.
13 is a schematic diagram illustrating a system including a memory system architecture with an error correction technology in DRAM according to an embodiment of the present invention.
14A to 14D are schematic diagrams illustrating a system including a memory system architecture with an error correction technique in a module according to embodiments of the present invention.
15 is a schematic diagram illustrating a memory module according to an embodiment of the present invention.
16 is a schematic diagram illustrating a memory module having an SPD or RCD interface according to an embodiment of the present invention.
17 is a schematic diagram illustrating a memory module having a separate non-correctable error interface according to an embodiment of the present invention.
18 is a schematic diagram illustrating a memory device according to an embodiment of the present invention.
19 is a schematic diagram illustrating a memory device according to an embodiment of the present invention.
20 is a schematic diagram illustrating a memory module including memory devices according to an embodiment of the present invention.
21 to 23 are schematic diagrams illustrating memory modules according to various embodiments of the present disclosure.
24 to 26 are schematic diagrams illustrating some of memory modules according to various embodiments of the present disclosure.
27 is a schematic diagram illustrating a memory module according to an embodiment of the present invention.
28 is a flowchart illustrating a method of exchanging error information according to an embodiment of the present invention.
29 is a flowchart illustrating a technique for handling an error according to an embodiment of the present invention.
30 is a flow chart illustrating a technique for handling errors according to an embodiment of the present invention.
31 is a flowchart illustrating a method of exchanging error information according to an embodiment of the present invention.
32 is a flowchart illustrating a method of exchanging error information according to an embodiment of the present invention.
33 is a flowchart illustrating a method of exchanging error information according to an embodiment of the present invention.
34 is a flowchart showing a method of exchanging error information according to an embodiment of the present invention.
35 is a schematic diagram illustrating a system equipped with a memory system architecture according to an embodiment of the present invention.
36 is a schematic diagram showing a server according to an embodiment of the present invention.
37 is a schematic diagram showing a server system according to an embodiment of the present invention.
38 is a schematic diagram showing a data center according to an embodiment of the present invention.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings in order to describe in detail enough to enable a person of ordinary skill in the art to easily implement the technical idea of the present invention. .
본 발명은 메모리 시스템 아키텍처에 관한 것이다. 이하의 설명은 이 분야에서 능숙한 자에 의해서 제작되고 사용될 수 있을 정도로 개시된다. 따라서, 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 예시되는 실시 예들은 특정한 실시를 제공하기 위하여 방법과 시스템들로 설명될 것이다. The present invention relates to a memory system architecture. The following description is disclosed to the extent that it can be made and used by those skilled in the art. Accordingly, the present invention is capable of making various changes and having various forms, and specific embodiments will be illustrated in the drawings and described in detail in the text. The illustrated embodiments will be described with methods and systems to provide a specific implementation.
그러나 이러한 방법들과 시스템들은 다른 실시 예에서도 효과적으로 동작할 것이다. “예시적인 실시 예”나 “일 실시 예”, 그리고 “다른 실시 예”가 동일 또는 다른 실시 예뿐만 아니라 다양한 실시 예를 참조할 수 있을 것이다. 이 실시 예들은 특정 구성을 포함하는 시스템 그리고/또는 장치들로 표현될 수 있다. 하지만, 본 발명의 실시 예에 따른 시스템 그리고/또는 장치들은 더 적은 구성들을 도시된 구성보다 더 적은 수의 구성을 포함할 수 있고, 배열의 변경이나 구성들의 종류의 변경이 본 발명의 범위를 벗어나지 않는 한도에서 행해질 수 있다. 본 발명의 예시적인 실시 예는 특정 단계를 포함하는 방법으로 설명될 수 있다. 그러나 그러한 방법과 시스템 동작은 본 발명의 실시 예와 모순되지 않는 다른 그리고/또는 다른 순서를 가진 추가적인 스텝을 갖는 방법에서도 효과적으로 동작할 수 있다. 따라서, 본 발명의 개념을 적용한 실시 예는 도시된 예에만 국한되지 않는 것으로 이해되어야 한다. However, these methods and systems will work effectively in other embodiments. “Example embodiment”, “one embodiment”, and “other embodiment” may refer to various embodiments as well as the same or different embodiments. These embodiments may be expressed as systems and/or devices including specific configurations. However, the systems and/or devices according to an embodiment of the present invention may include fewer configurations than the illustrated configuration, and a change in an arrangement or a change in types of configurations does not depart from the scope of the present invention. It can be done to the extent that it does not. Exemplary embodiments of the present invention may be described as a method including specific steps. However, such a method and system operation can effectively operate even in a method having additional steps in different and/or different order not contradictory to the embodiments of the present invention. Therefore, it should be understood that the embodiment to which the concept of the present invention is applied is not limited to the illustrated example.
어떤 요소들을 포함하는 특정 메모리 시스템 아키텍처에 포함되는 것으로 실시 예들이 설명될 것이다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 실시 예들이 다른 추가 구성이나 특징을 포함하는 메모리 시스템 아키텍처에서도 동일하게 동작할 수 있음을 이해할 수 있을 것이다. 하지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 방법과 시스템이 다른 구조에서도 동일하게 동작할 수 있음을 잘 이해할 것이다. 방법들과 시스템들은 문맥에서 단일 요소로 표현될 수도 있다. 하지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 방법들과 시스템들이 복수의 요소들을 갖는 메모리 시스템 아키텍처를 사용하여 동일하게 동작할 수 있음을 잘 이해할 것이다.Embodiments will be described as being included in a specific memory system architecture including certain elements. One of ordinary skill in the art to which the present invention pertains will appreciate that the embodiments of the present invention may operate in the same manner in a memory system architecture including other additional configurations or features. However, a person of ordinary skill in the art will appreciate that the method and system of the present invention can operate in the same manner in other structures. Methods and systems may be expressed as a single element in the context. However, it will be appreciated by those of ordinary skill in the art that the methods and systems may operate identically using a memory system architecture having a plurality of elements.
이 기술 분야에 정통한 사람은 일반적으로 여기서 사용되는 용어, 특히 첨부되는 청구항에 사용된 용어는 열린 용어이다(즉, '포함하는'이라는 용어는 '포함하되 한정되지 않는'으로, '갖는'이라는 용어는 '적어도 하나를 갖는'으로 해석되어야 한다). 이 기술 분야에 정통한 사람에게 있어서, 청구항에 기술된 특정 숫자는, 청구항 내에서 명시적으로 인용되었다고 해도, 그런 인용이 존재하지 않는 청구항에서는 특정 숫자의 한정이 존재하지 않는 것으로 이해되어서는 안된다. 예를 들면, 이해를 돕기 위해 후속되는 종속 청구항에서 '적어도 하나'와 '하나 또는 그 이상'이라는 구문이 포함될 수 있을 것이다. 하지만, 이와 같은 구문의 사용은 하나의 예시를 위해서 불명확한 '하나'라는 관사에 의해서 기술되는 한정으로 이해되어서는 안된다. Those familiar with the technical field generally refer to the terms used herein, in particular the terms used in the appended claims, as open terms (i.e. the term'comprising' is'including but not limited to', the term'having' Should be interpreted as'having at least one'). For those skilled in the art, a specific number recited in a claim, even if it is expressly recited in the claim, should not be understood as the absence of a specific number limitation in a claim where no such reference exists. For example, the phrases'at least one' and'one or more' may be included in the dependent claims that follow to aid understanding. However, the use of such a phrase should not be construed as a limitation described by the unclear article'one' for the sake of an example.
게다가, 'A, B, 또는 C 중에 적어도 하나'와 같은 관례가 사용되는 경우, 이러한 구문은 이 기술 분야에 정통한 사람에게 있어서 잘 이해될 것이다(즉, 'A, B, 또는 C 중에 적어도 하나를 포함하는 시스템'은 A 단독, B 단독, C 단독, A와 B, A와 C, B와 C, 그리고/또는 A와 B와 C 함께의 의미를 포함하지만, 어느 하나의 개념으로 한정되지는 않는다). 이 분야에서 정통한 사람에게 있어서, 상세한 설명이나 청구항 또는 도면에서 둘 또는 그 이상의 분리된 선택 가능한 용어들을 갖는 글자 그리고/또는 구문은 하나, 또는 둘 중 어느 하나, 또는 두 용어 모두를 포함할 가능성이 있는 것으로 고려되어야 한다. 예를 들면, 'A 또는 B'라는 구문은, 'A', 또는 'B' 또는 'A와 B'의 가능성을 포함하는 것으로 이해되어야 한다.In addition, where conventions such as'at least one of A, B, or C'are used, these phrases will be well understood by those familiar with the art (i.e., at least one of'A, B, or C). Inclusive system' includes the meaning of A alone, B alone, C alone, A and B, A and C, B and C, and/or A and B and C together, but is not limited to any one concept. ). For those familiar with the field, letters and/or phrases with two or more separate selectable terms in the detailed description, claims, or drawings are likely to include one, either, or both terms. Should be considered. For example, the phrase'A or B'should be understood to include the possibility of'A', or'B' or'A and B'.
도 1은 본 발명의 실시 예에 따른 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다. 시스템(100)은 프로세서(104)에 연결된 메모리(102)를 포함할 수 있다. 메모리(102)는 데이터를 저장하도록 구성될 수 있다. 데이터가 메모리(102)로부터 읽혀질 때, 메모리(102)는 (가능하면, 데이터에 있는) 에러를 정정하도록 구성될 수 있다. 예를 들어, 메모리(102)는 싱글-비트 에러(single-bit error)를 정정하도록 구성될 수 있다. 메모리(102)는 더블-비트 에러(double-bit error)를 감지하도록 구성될 수 있다. 비록 예시적으로 특정 비트 수의 에러가 정정되는 것으로 설명되었다 하더라도, 메모리(102)는 다양한 비트 수의 에러를 정정하거나 감지하도록 구성될 수 있다. 게다가, 비록 하나 또는 그 이상의 에러 정정 기술들이 싱글-비트 에러 정정 또는 더블-비트 에러 정정 감지를 초래한다 하더라도, 메모리(102)는 적어도 하나의 에러를 정정할 수 있는 어떠한 에러 정정 기술들이라도 수행할 수 있다.1 is a schematic diagram showing a system having a memory system architecture according to an embodiment of the present invention.
메모리(102)는 데이터를 저장하도록 구성된 장치를 포함할 수 있다. 특정한 예에서, 메모리(102)는 DRAM (dynamic random access memory)일 수 있다. 메모리(102)는 DDR, DDR2, DDR3, DDR4, 또는 이와 유사한 것과 같은 다양한 표준에 따라 DDR SDRAM (double data rate synchronous dynamic random access memory)을 포함할 수 있다. 다른 실시 예에서, 메모리(102)는 SRAM (static random access memory), 불휘발성 메모리, 또는 이와 유사한 것들을 포함할 수 있다.
메모리(102)는 저장된 데이터로부터 읽혀진 데이터에 있는 에러를 정정하거나 또는 에러 정정을 시도하는 것에 응답하여 에러 정보를 생성하도록 구성될 수 있다. 예를 들어, 에러 정보는 정정된 에러, 정정되지 않은 에러, 에러 없음(absence of an error), 에러의 개수, 또는 이와 유사한 것에 관한 정보를 포함할 수 있다. 에러 정보는 실제의 에러, 에러의 주소, 에러가 발생한 횟수, 또는 메모리(102)에 특유한 정보를 포함할 수 있다. 특정한 예에서, 에러 정보는 메모리(102)게 싱글-비트 에러를 정정한 것을 나타내는 싱글-비트 에러에 관한 정보를 포함할 수 있다. 비록 특정한 에러 정보가 설명되었다 하더라도, 에러 정보는 에러에 관한 어떤 정보라도 포함할 수 있다.
프로세서(104)는 메모리에 연결되고 명령들을 실행할 수 있도록 구성될 수 있다. 예를 들어, 프로세서(104)는 범용 프로세서, DSP (digital signal processor), GPU (graphics processing unit), ASIC (application specific integrated circuit), 프로그램 가능한 논리적 장치 (programmable logic device), 또는 이와 유사한 것일 수 있다.
프로세서(104)는 제 1 통신 경로(106) 및 제 2 통신 경로(108)를 통하여 메모리(102)에 연결될 수 있다. 프로세서(104)는 제 1 경로(106)를 통하여 메모리로부터 데이터를 수신하도록 구성될 수 있다. 예를 들어, 제 1 통신 경로(106)는 데이터 신호들, 스트로브 신호들, 클록 신호들, 인에이블 신호들, 또는 이와 유사한 것을 위한 신호 라인들을 갖춘 시스템 메모리 인터페이스일 수 있다. 즉, 통신 경로(106)는 프로세서(104)와 메인 시스템 메모리로서의 메모리(102) 사이의 인터페이스인 메인 메모리 채널의 일부일 수 있다. The
프로세서(104)는 다른 통신 경로인, 제 2 통신 경로(108)를 통하여 메모리(102)에 연결될 수 있다. 프로세서(104)는 제 2 통신 경로(108)를 통하여 메모리(102)로부터의 에러 정보를 수신하도록 구성될 수 있다. 따라서, 실시 예에서, 프로세서(104)는 제 1 통신 경로(106)보다는 차라리 제 2 통신 경로(108)를 통하여 에러 정보 및, 특히, 정정된 에러 정보를 수신하도록 구성될 수 있다. 정정된 에러 정보는 정정된 에러에 관한 정보이다. 앞서 설명된 바와 같이, 에러 정보는 에러와 관련된 다양한 타입의 정보를 포함할 수 있다. 따라서, 정정된 에러 정보는 정정된 에러와 관련된 유사한 타입의 정보를 포함할 수 있다.The
소프트웨어(110)는 프로세서(104)에 연결되는 것으로 도시되었다. 그러나, 소프트웨어(110)는 프로세서(104)에서 실행될 수 있는 다양한 프로그램들, 드라이버들, 모듈들, 루틴(routine)들, 또는 이와 유사한 것들을 나타낼 수 있다. 예를 들어, 소프트웨어(110)는 드라이버들, 커널 모듈들, 대몬(daemon)들, 애플리케이션들, 또는 이와 유사한 것들을 포함할 수 있다. 어떤 실시 예에서, 소프트웨어(110)는 프로세서(104)를 인에이블 시켜 본 명세서에서 설명되는 특정한 기능들을 수행하도록 구성될 수 있다.The
비록 하나의 메모리(102)가 예시적으로 사용되었다 하더라도, 어떤 수의 메모리들(102)이라도 통신 경로들(106 및 108)과 유사한 두 개의 통신 경로들을 통하여 프로세서(104)에 연결될 수 있다. 실시 예에서, 각각의 메모리(102)는 다른 메모리들(102)과 분리하여 전용의 제 1 통신 경로(106)를 통하여 그리고 다른 메모리들(102)과 분리하여 전용의 제 2 통신 경로(108)를 통하여 프로세서(104)에 연결될 수 있다. 그러나, 다른 실시 예에서, 제 1 통신 경로(106)는 하나 이상의 메모리(102)에 의해 공유될 수 있고, 제 2 통신 경로(108)는 하나 이상의 메모리(102)에 의해 공유될 수 있다. 게다가, 비록 단일의 제 1 통신 경로(106)가 설명되었다 하더라도, 하나 또는 그 이상의 메모리들(102) 사이에 복수의 제 1 통신 경로들(106)이 제공될 수 있다. 유사하게, 비록 단일의 제 2 통신 경로들(108)이 설명되었다 하더라도, 하나 또는 그 이상의 메모리들(102) 사이에 복수의 제 2 통신 경로들(108)이 제공될 수 있다.Although one
실시 예에서, 에러 정보는 아웃-오브-밴드(out-of-band) 통신 경로를 통하여 교환될 수 있다. 제 2 통신 경로(108)는 그러한 아웃-오브-밴드 통신 경로일 수 있다. 즉, 프로세서(104)와 메모리(102) 사이의 메인 통신은 제 1 통신 경로(106)를 통하여 수행될 수 있다. 이에 반해, 에러 정보는 아웃-오브-밴드 통신 경로(108)를 통하여 교환될 수 있다.In an embodiment, error information may be exchanged through an out-of-band communication path. The
도 2는 본 발명의 실시 예에 따른 컨트롤러를 포함하는 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(200)은 도 1의 메모리(102), 프로세서(104), 통신 경로들(106 및 108), 및 소프트웨어(110)와 유사한, 메모리(202), 프로세서(204), 통신 경로들(206 및 208), 및 소프트웨어(210)를 포함할 수 있다. 그러나, 제 2 통신 경로(208)는 컨트롤러(214) 그리고 컨트롤러(214)와 프로세서(204) 사이에 연결된 제 2 버스(216) 연결된 제 1 버스(212)를 포함할 수 있다. 즉, 프로세서(204) 및 메모리(202) 모두에 연결된 컨트롤러(214)는 제 2 통신 경로(208)의 일부일 수 있다.2 is a schematic diagram showing a system having a memory system architecture including a controller according to an embodiment of the present invention. In this embodiment,
컨트롤러(214)는 메모리(202) 및 프로세서(204)에 연결되도록 구성된 장치일 수 있다. 예를 들어, 컨트롤러(214)는 범용 프로세서, DSP (digital signal processor), GPU (graphics processing unit), ASIC (application specific integrated circuit), 프로그램 가능한 논리적 장치 (programmable logic device), 또는 이와 유사한 것일 수 있다.The
버스들(212 및 216)은 다양한 통신 회선일 수 있다. 예를 들어, 버스들(212 및 216)은 SMBus (system management bus), I2C (inter-integrated circuit) 버스, IPMI (intelligent platform management interface)를 준수하는 버스, 모드버스 (Modbus) 버스, 또는 이와 유사한 것일 수 있다. 특정한 실시 예에서, 통신 경로(208)의 적어도 일부는 통신 경로(206)보다 대체로 느린 전송 속도로 동작할 수 있다. 예를 들어, 메모리(202)와 프로세서(204) 사이의 통신 경로(206)는 10 GB/S의 데이터 전송 속도(data-rate transfer)보다 더 높도록 설계될 수 있다. 그러나, 통신 경로(208)는 10 Mbit/s, 100 kbit/s, 또는 이와 유사한 것보다 더 낮은 데이터 전송 속도를 가질 수 있다. 따라서, 어떤 실시 예에서, 통신 경로(206)와 통신 경로(208)의 데이터 전송 속도 비율은 약 100, 1000, 도는 그 이상일 수 있다.
실시 예에서, 제 2 통신 경로(208)는 전용 통신 경로일 수 있다. 즉, 제 2 통신 경로(208)는 오직 메모리(202)와 프로세서(204) 사이의 정보의 통신을 위해 사용될 수 있다. 그러나, 다른 실시 예에서, 컨트롤러(214)는 다른 장치들을 액세스 가능하도록 할 수 있다. 예를 들어, 불휘발성 메모리 장치(268)는 버스(212)에 의해 컨트롤러(214)로 연결될 수 있다. 다른 실시 예에서, 다른 장치들(266)은 컨트롤러(214)로 연결될 수 있다. 따라서, 메모리(202)로부터의 정보와는 다른 정보는 버스(212 및/또는 216)를 통하여 프로세서(204) 및/또는 메모리(202)로 그리고 프로세서(204) 및/또는 메모리(202)로부터 전송될 수 있다. 특히, 메모리(202)로부터의 에러 정보는, 불휘발성 메모리에 관한 목적을 포함하는 다른 목적을 위해 사용되는, 제 2 통신 경로(208)를 통하여 프로세서(204)와 교환될 수 있다.In an embodiment, the
실시 예에서, 컨트롤러(214)는 불휘발성 메모리(254)를 포함할 수 있다. 불휘발성 메모리(254)는 메모리(202)로부터의 에러 정보를 저장하도록 구성될 수 있다. 따라서, 에러 정보는 전원이 차단되더라도 컨트롤러(214)에 보존될 수 있다. 프로세서(24)는 컨트롤러(214)로부터의 에러 정보를 요청하도록 구성될 수 있다. 따라서, 컨트롤러(214)는 불휘발성 메모리(254)에 저장된 에러 정보를 제공함으로써 그러한 요청에 응답하도록 구성될 수 있고, 메모리(202)에 액세스하여 프로세서(204) 또는 이와 유사한 것에 응답하여 에러 정보를 검색할 수 있다.In an embodiment, the
실시 예에서, 컨트롤러(214)는 에러 정보를 위해 메모리(202)를 폴링(polling) 하도록 구성될 수 있다. 다른 실시 예에서, 메모리(202)는 메모리 정보를 컨트롤러(214)로 푸시(push) 하도록 구성될 수 있다. 이와 상관없이, 불휘발성 메모리(254)에 저장된 에러 정보는 대체로 최신의 정보(up-to-date copy)일 수 있다. In an embodiment, the
도 3은 본 발명의 실시 예에 따른 베이스보드 관리 컨트롤러(baseboard management controller; BMC)를 포함하는 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(300)은 도 2의 메모리(202), 프로세서(204), 통신 경로들(206 및 208), 그리고 소프트웨어(210)와 유사한, 메모리(302), 프로세서(304), 통신 경로들(306 및 308), 그리고 소프트웨어(310)를 포함할 수 있다. 그러나, 컨트롤러(314)는 BMC(314)일 수 있다.3 is a schematic diagram showing a system having a memory system architecture including a baseboard management controller (BMC) according to an embodiment of the present invention. In this embodiment,
BMC(baseboard management controller)(314)는 시스템(300)을 관리하도록 구성될 수 있다. 예를 들어, BMC(314)는 프로세서(304), 메모리(302), 다른 장치들(366), 또는 이와 유사한 것들의 센서들을 포함하는, 시스템(300)의 다양한 센서들에 연결될 수 있다. BMC(314)는 온도, 냉각 상태, 전원 상태, 또는 이와 유사한 것과 같은, 다양한 시스템 파라미터들에 대해 수집하고 보고하도록 구성될 수 있다. BMC(314)는 표준에 따라 시스템을 관리하고 정보로의 액세스를 인에이블 시키도록 구성될 수 있다. 관리 정보는 프로세서(304)에 이용 가능하도록 만들어질 수 있고, 따라서 소프트웨어(310)로 이용 가능해질 수 있다. 또는, BMC(314)는 아웃-오브-밴드 통신 경로와 같은, 다른 통신 경로를 통하여 이용 가능한 정보를 생성할 수 있다. 여기서, 아웃-오브-밴드 통신 경로는 프로세서(304)를 포함하지 않는 어떠한 통신 경로일 수 있다.The baseboard management controller (BMC) 314 may be configured to manage the
도 4는 본 발명의 실시 예에 따른 프로세서-기반의 에러 정정(processor-based error correction)을 수행하지 않는 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(400)은 도 1의 메모리(102), 프로세서(404), 통신 경로들(106 및 108), 및 소프트웨어(110)와 유사한 메모리(402), 프로세서(404), 통신 경로들(406 및 408), 및 소프트웨어(410)를 포함할 수 있다. 그러나, 본 실시 예에서, 프로세서(404)는 메모리 컨트롤러(MC)(450), 및 MCA (machine check architecture) 레지스터(452)를 포함할 수 있다.4 is a schematic diagram showing a system having a memory system architecture that does not perform processor-based error correction according to an embodiment of the present invention. In this embodiment, the
메모리 컨트롤러(450)는 프로세서(404)에 집적될 수 있다. 메모리 컨트롤러(450)는 프로세서(404)와 메모리(402) 사이의 메인 인터페이스인 메인 메모리 채널의 일부일 수 있다. 메모리 컨트롤러(450)는 통신 경로(406)를 통하여 메모리(402)에 저장된 데이터로의 액세스를 제어하도록 구성될 수 있다. 어떤 실시 예에서, 메모리 컨트롤러(450)는 에러를 정정하도록 구성될 수 있으나, 에러 정정이 메모리(402)에 의해 수행될 때 그러한 에러를 정정할 기회를 갖지 않을 수 있다. 그러나, 본 실시 예에서, 메모리 컨트롤러(450)는 메모리(402)로부터 읽혀진 데이터에 있는 에러를 정정하도록 구성되지 않을 수 있다. 메모리 컨트롤러(450)는 메모리(402)로부터 읽혀진 데이터에 기초한 어떠한 에러도 보고하도록 구성되지 않을 수 있다.The
MCA 레지스터(452)는 그 안에 하드웨어 에러가 보고될 수 있는 레지스터이다. 예를 들어, 캐시 에러, 버스에러, 데이터 에러, 또는 이와 유사한 것은 MCA 레지스터(452)에서 감지되고 보고될 수 있다. 그러나, 메모리 컨트롤러(450)는 메모리(402)로부터 읽혀진 데이터에 있는 에러를 정정하도록 구성되지 않기 때문에, 메모리(402)로부터 읽혀진 데이터에 기초한 어떠한 잠재적 에러 정보(potential error information)라도 MCA 레지스터(452)에 보고되지 않을 수 있다. 이에 상관없이, 앞서 설명된 바와 같이, 에러 정보는 통신 경로(408)를 통하여 프로세서(404)와 교환될 수 있다. 따라서, 메모리 컨트롤러(450) 및 MCA 레지스터(452)를 통하지 않고서라도, 에러 정보는 소프트웨어(410)에 이용 가능할 수 있다.The MCA register 452 is a register in which hardware errors can be reported. For example, a cache error, bus error, data error, or the like may be detected and reported in the
실시 예에서, 제 2 통신 경로(408)를 통한 에러 정보의 이용 가능성은 저비용의 시스템(400)을 가능하게 할 수 있다. 예를 들어, 어떤 메모리 정정이 없는 메모리 컨트롤러(450)를 갖춘 프로세서(404)가 사용될 수 있고, 에러 정보는 여전히 이용 가능할 수 있다. 특히, 메모리 에러 정정이 바람직함에도, 제 2 통신 경로(408)를 통하여 이용 가능한 에러 정보가 있기 때문에 에러 정정 기능이 없는 프로세서(404)가 사용될 수 있다. 따라서, 에러 정보를 사용하는 어떤 소프트웨어를 포함하는 소프트웨어(410)는, 마치 프로세서가 메모리 에러 정정을 할 수 있는 것처럼, 여전히 동작할 수 있다. 에러 정정이 없는 프로세서(404)는 더 낮은 전력, 더 낮은 비용의 프로세서일 수 있다. 따라서, 시스템(400)의 전체적인 전력 사용 및 비용은 감소할 수 있다.In an embodiment, the availability of error information over the
비록 메모리 컨트롤러(450)가 프로세서(404)에 집적된 것으로 도시되었다 하더라도, 메모리 컨트롤러(450)는 프로세서(404)와 분리될 수 있다. 이와 상관없이, 통신 경로(408)는 메모리 컨트롤러(450) 및 에러 정정 회로를 갖는 프로세서(404)의 다른 부분들을 우회할 수 있다. 그러한 구성요소들의 우회는 제 2 통신 경로(408)를 통한 에러 정보의 교환이 메모리 컨트롤러(450), MCA 레지스터(452), 또는 이와 유사한 것에 대체로 독립되도록 할 수 있다. 즉, 비록 유사한 정보가 메모리 컨트롤러(450) 및/또는 MCA 레지스터(452)를 통하여 이용 가능하지 않다 하더라도, 에러 정보는 여전히 이용 가능할 수 있다.Although the
도 5는 본 발명의 실시 예에 따른 오염된 데이터 스트로브 신호(poisoned data strobe signal)를 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(500)은 도 1의 메모리(102), 프로세서(104), 통신 경로들(106 및 108), 및 소프트웨어(110)와 유사한, 메모리(502), 프로세서(504), 통신 경로들(506 및 508), 및 소프트웨어(510)를 포함할 수 있다. 그러나, 본 실시 예에서, 통신 경로(506)는 데이터 라인들(532) 및 데이터 스트로브 라인(들)(533)을 포함할 수 있다. 다른 라인들은 통신 경로(506)의 일부로서 제공되었다. 그러나, 명료함을 위해 라인들은 도시되지 않았다.5 is a schematic diagram showing a system including a memory system architecture having a poisoned data strobe signal according to an embodiment of the present invention. In this embodiment, the
실시 예에서, 정정 불가능한 에러와 관련된 에러 정보 및 정정 가능한 에러와 관련된 에러 정보는 다른 경로를 통하여 교환될 수 있다. 앞서 설명된 바와 같이, 정정 가능한 에러 정보는 통신 경로(508)를 통하여 교환될 수 있다. 정정 불가능한 에러 정보는 정정 불가능한 에러에 기초하여 다양한 다른 타입의 정보를 포함할 수 있다. 정정 불가능한 에러 정보는 제 1 통신 경로(506)를 통하여 교환될 수 있다. 예를 들어, 메모리(502)는 데이터 스트로브 라인(들)(533)을 통하여 전송된 (또는 전송되지 않은) 신호에 의해 정정 불가능한 에러를 정정하도록 구성될 수 있다. 즉, 일반적인 데이터 전송 동안, 데이터 스트로브 라인(들)(533)을 통해 전송되는 데이터 스트로브 신호는 데이터가 전송될 때 토글링(toggle)될 수 있다. 그러나, 만일 메모리(502)가 정정 불가능한 에러를 감지했을 때, 메모리 (502)는, 일반적인 데이터 전송 동안의 데이터 스트로브 신호와는 다른, 데이터 스트로브 라인(들)(533)을 통한 전송을 위한 데이터 스트로브 신호를 생성하도록 구성될 수 있다. 특히, 메모리(502)는 데이터 스트로브 라인(들)(533)을 통해 전송된 데이터 스트로브 신호를 토글링하지 않도록 구성될 수 있다. 그러한 조건이 감지될 때, 프로세서(504)는 소프트웨어(510)에 의해 처리될 수 있는, 하드웨어 예외(hardware exception)를 생성하도록 구성될 수 있다.In an embodiment, error information related to an uncorrectable error and error information related to a correctable error may be exchanged through different paths. As described above, correctable error information may be exchanged through the
비록 통신 경로(506) 내의 신호 및/또는 라인들이 정정 불가능한 에러를 교환하기 위한 기술의 예로써 사용되었다 하더라도, 다른 신호들 및/또는 라인들이 프로세서와 정정 불가능한 에러를 교환하기 위해 사용될 수 있다. 어떻게 교환하는지와 상관없이, 시스템(500)을 정지시키거나 다른 액션을 취함으로써, 프로세서(504)는 그러한 정정 불가능한 에러의 교환에 응답하도록 구성될 수 있다.Although signals and/or lines in
도 6은 본 발명의 실시 예에 따른 별도의 정정 불가능한 에러 신호를 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(600)은 도 1의 메모리(102), 프로세서(104), 통신 경로(106 및 108), 및 소프트웨어(110)와 유사한 메모리(602), 프로세서(604), 통신 경로(606 및 608), 및 소프트웨어(610)를 포함할 수 있다. 그러나, 본 실시 예에서, 별도의 통신 경로(634)가 메모리(602)와 프로세서(604) 사이에 연결될 수 있다.6 is a schematic diagram illustrating a system including a memory system architecture having a separate non-correctable error signal according to an embodiment of the present invention. In this embodiment, the
도 5의 시스템(500)과 유사하게, 정정 불가능한 에러는 프로세서(604)와 교환될 수 있다. 본 실시 예에서, 메모리(602)는 통신 경로(634)를 통하여 정정 불가능한 에러 정보를 교환하도록 구성될 수 있다. 예를 들어, 제 3 통신 경로(634)는 제 1 통신 경로(606)와는 별도의 전용 라인일 수 있다. 따라서, 정정 불가능한 에러와 관련된 에러 정보는, 제 1 및 제 2 통신 경로(606 및 608)와는 다른 통신 경로를 통하여, 프로세서(604)에 의해 수신될 수 있다. Similar to
도 7은 본 발명의 실시 예에 따른 소프트웨어 모듈을 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(700)은 도 1의 메모리(102), 프로세서(104), 통신 경로(106 및 108), 및 소프트웨어(110)와 유사한 메모리(702), 프로세서(704), 통신 경로들(706 및 708), 및 소프트웨어(710)를 포함할 수 있다. 그러나, 본 실시 예에서, 소프트웨어(710)는 모듈(718)을 포함할 수 있다.7 is a schematic diagram illustrating a system including a memory system architecture having a software module according to an embodiment of the present invention. In this embodiment, the
모듈(718)은 프로세서를 통하여 에러 정보(722)를 액세스하도록 구성된 소프트웨어(710)의 일부를 나타낼 수 있다. 예를 들어, 모듈(718)은 커널 모듈, 드라이버, 확장, 또는 이와 유사한 것을 포함할 수 있다. 모듈(718)은 통신 경로(708)와 관련된 인터페이스를 위한 드라이버를 포함할 수 있다. 특정한 실시 예에서, 모듈(718)은 IPMI 버스, IPMI2 버스, 또는 이와 유사한 것과 관련된 드라이버를 포함할 수 있다. 다른 정보(720)는 소프트웨어(710)에 이용 가능할 수 있다. 에러 정보(722)는 에러 정보(722)와 관련된 소프트웨어(710)의 일부를 나타내도록 별도로 도시되었다.
본 실시 예에서, 모듈(718)은 프로세서(704)가 메모리(702)로부터의 에러 정보를 요청하게 할 수 있다. 예를 들어, 메모리(702)는 에러 정보를 생성할 수 있다. 이후, 프로세서(704)는 통신 경로(708)를 통하여 에러 정보를 위한 요청을 전송할 수 있다. 메모리(702)는 통신 경로(708)를 통하여 에러 정보와 함께 요청에 응답하도록 구성될 수 있다.In this embodiment, the
도 8은 본 발명의 실시 예에 따른 에러 검출 및 정정 모듈을 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(800)은 도 7의 메모리(702), 프로세서(704), 통신 경로(706 및 708), 및 정보(720 및 722)에 응답하여 동작하는 메모리 모듈(718)을 포함하는 소프트웨어(710)와 유사한 메모리(802), 프로세서(804), 통신 경로(806 및 808), 및 정보(820 및 822)에 응답하여 동작하는 메모리 모듈(818)을 포함하는 소프트웨어(810) 포함할 수 있다. 그러나, 본 실시 예에서, 소프트웨어(810)는 에러 검출 및 정정(error detection and correction; EDAC) 모듈(824)을 포함할 수 있다.8 is a schematic diagram illustrating a system including a memory system architecture having an error detection and correction module according to an embodiment of the present invention. In this embodiment,
실시 예에서, EDAC 모듈(824)은 메모리, 캐시, 입출력 장치, 주변 장치, 버스들, 및/또는 시스템(800)의 다른 부분들로부터 제공되는 에러 정보를 관리할 수 있고, 애플리케이션 레이어와 같은 고기능 레이어에 그러한 정보를 노출시킬 수 있다. 특히, EDAC 모듈(824)은 모듈(818)로부터 에러 정보를 수신하도록 구성될 수 있다. EDAC 모듈(824)은 에러 정보와 다른 정보를 조합하여, 다른 모듈들, 애플리케이션들, 또는 이와 유사한 것들이 에러 정보에 액세스하도록 구성될 수 있다. In an embodiment, the
도 9는 본 발명의 실시 예에 따른 수집 모듈을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(900)은 도 7의 메모리(702), 프로세서(704), 통신 경로들(706 및 708), 및 정보(720 및 722)에 응답하여 동작하는 모듈(718)을 포함하는 소프트웨어(710)와 유사한, 메모리(902), 프로세서(904), 통신 경로들(906 및 908), 및 정보(920 및 922)에 응답하여 동작하는 모듈(818)을 포함하는 소프트웨어(810)를 포함할 수 있다. 그러나, 본 실시 예에서, 소프트웨어(910)는 제 2 모듈(926)을 포함할 수 있다. 제 2 모듈(926)은 정보(920)를 수신하도록 구성될 수 있다. 특히, 이 다른 정보(920)는 메모리(902)에 대한 에러와 관련이 없는 정보를 포함할 수 있다. 다른 정보(920)의 적어도 일부(921)는 제 1 모듈(918)에 의해서 수신될 수 있다. 제 1 모듈(918)은 제 2 모듈(926)로부터의 다른 정보(920)의 일부 또는 전부와 에러 정보(922)를 조합할 수 있다. 제 1 모듈(918)은 단일 인터페이스에 조합된 정보를 제공할 수 있다. 예를 들어, 제 1 모듈(918)은, 도 8의 EDAC 모듈(824)과 같은, EDAC 모듈에 조합된 정보를 제공하도록 구성될 수 있다.9 is a schematic diagram illustrating a system including a memory system architecture having a collection module according to an embodiment of the present invention. In this embodiment,
도 10은 본 발명의 일 실시 예에 따른 메모리 컨트롤 아키텍처 모듈로부터 정보를 수집하는 에러 정정 모듈을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(1000)은 도 9의 메모리(902), 프로세서(904), 통신 경로들(906 및 908), 및 정보(920 및 922)에 응답하여 동작하는 모듈들(918 및 926)을 포함하는 소프트웨어(910)와 유사한, 메모리(1002), 프로세서(1004), 통신 경로들(1006 및 1008), 및 정보(1020 및 1022)에 응답하여 동작하는 모듈들(1018 및 1026)을 포함하는 소프트웨어(1010)를 포함할 수 있다. 그러나, 본 실시 예에서, 제 1 모듈(1018)은 에러 정정(error correction; EC) 모듈이고, 제 2 모듈(1026)은 MCA 모듈일 수 있다.10 is a schematic diagram showing a system including a memory system architecture having an error correction module for collecting information from a memory control architecture module according to an embodiment of the present invention. In this embodiment, the
MCA 모듈(1026)은 도 4의 MCA 레지스터(452)와 같은 MCA 레지스터로의 액세스를 제어하도록 구성될 수 있다. 정보(1020)는 MCA 레지스터(452)로부터의 정보를 나타낼 수 있다. EC 모듈(1018)은 MCA 모듈(1026)에 액세스하여 정보(1020)를 복구하도록 구성될 수 있다. EC 모듈(1018)은 MCA 모듈(1026)로부터의 정보(1020)를 에러 정보(1022)와 조합하고, 조합된 정보를 단일 인터페이스에 제공할 수 있다. The
특히, EC 모듈(1018)은 프로세서(1004)가 에러를 정정하도록 하는 MCA 모듈(1026)과 유사하거나 또는 동일한 방식으로 인터페이스를 제공할 수 있다. 예를 들어, 만일 프로세서(1004)가 메모리(1002)로부터 읽혀진 데이터에 있는 에러를 정정하도록 구성되었다면, 그 정보는 MCA 모듈(1026)을 통하여 이용 가능할 수 있다. 그러나, 만일 프로세서(1004)가 메모리(1002)로부터 읽혀진 데이터에 있는 에러를 정정하도록 구성되지 않고, 메모리(1002)에서 정정되는 에러 때문에 MCA 모듈(1026)에 의해 모니터링 되는 통신 경로에 의해 에러 정보를 수신하지 않는다면, MCA 모듈(1026)은 에러 정보를 제공할 수 없을 것이다. 이와 상관없이, EC 모듈(1018)은 통신 경로(1008)를 통하여 획득된 정보(1022)와 정보(1020)를 조합하고, MCA 모듈(1026)이 제공하여 프로세서(1004)로 하여금 메모리(1002)로부터 읽혀진 데이터에 있는 에러를 정정하도록 했던 정보 또는 MCA 모듈(1026)에 이용 가능한 에러 정보와 유사하거나 동일한 조합된 정보를 제공할 수 있다. 소프트웨어(1010)는 프로세서(1004)가 에러 정정 기능을 제공하는지의 여부와 상관없이 동일하거나 또는 유사한 인터페이스를 사용할 수 있다. 다시 말해서, 에러 정정 기능을 갖는 프로세서(1004)는 충분히 사용되는 에러 정보에 의존하는 소프트웨어에 대해 필수적인 것은 아니다. 결과적으로, 에러 정정 기능이 없는 프로세서(1004)에 의해서 비용 절감이 가능하다.In particular, the
도 11은 본 발명의 실시 예에 따른 인터페이스를 공유하는 복수의 모듈을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(1100)은 도 7의 메모리(702), 프로세서(704), 통신 경로들(706 및 708), 및 정보(720 및 722)에 응답하여 동작하는 소프트웨어(710)와 유사한, 메모리(1102), 프로세서(1104), 통신 경로들(1106 및 1108), 및 정보(1120 및 1122)에 응답하여 동작하는 소프트웨어(1110)를 포함할 수 있다. 그러나, 본 실시 예에서, 소프트웨어(1110)는 제 1 모듈(1118), 제 2 모듈(1128), 그리고 인터페이스 모듈(1130)을 포함할 수 있다.11 is a schematic diagram illustrating a system including a memory system architecture including a plurality of modules sharing interfaces according to an embodiment of the present invention. In this embodiment,
제 1 모듈(1118)은 도 7의 모듈(718)과 유사하다. 그러나, 제 1 모듈(1118)은 인터페이스 모듈(1130)을 통하여 메모리(1102)로부터 에러 정보를 수신하도록 구성될 수 있다. 인터페이스 모듈(1130)은 통신 경로(1108)에 인터페이스를 제공하도록 구성될 수 있다. 예를 들어, 인터페이스 모듈(1130)은 IPMI 버스를 통하여 액세스를 허용하도록 구성된 모듈일 수 있다. The
제 2 모듈(1128)과 같은 다른 모듈들도 인터페이스 모듈(1130)을 통하여 통신을 수행하도록 구성될 수 있다. 예를 들어, 제 2 모듈(1128)은 IPMI 버스에 접속되는 또 다른 장치들에 액세스하거나, 열 정보 또는 전원 정보와 같은 메모리(1102)의 다른 부분에 액세스하도록 구성될 수 있다. 에러 정보 및 다른 정보 모두는 인터페이스 모듈(1130)에 의해서 전달되는 정보(1122)의 일부분일 수 있다. 즉, 에러 정보는 전체 경로를 통하여 전용의 소프트웨어를 사용하여 전송될 수 있으나, 모듈들, 인터페이스들, 버스들, 또는 이와 유사한 것들과, 관련되거나 관련되지 않은 정보나 소스를 공유할 수 있다. Other modules such as the
도 12는 본 발명의 실시 예에 따른 인터페이스를 공유하는 정정 가능 에러 모듈 및 직렬 프레즌스 검출/레지스터 클록 드라이버 모듈(serial presence detect/ registering clock driver module)을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(1200)은 도 11의 메모리(1102), 프로세서(1104), 통신 경로들(1106 및 1108), 및 정보(1120 및 1122)에 응답하여 동작하는 모듈들(1118, 1128 및 1130)을 포함하는 소프트웨어(1110)와 유사한, 메모리(1202), 프로세서(1204), 통신 경로들(1206 및 1208), 및 정보(1220, 1222)에 응답하여 동작하는 모듈들(1218, 1228 및 1230)을 포함하는 소프트웨어(1110)를 포함한다. 그러나, 본 실시 예에서, 제 1 모듈(1218)은 정정된 에러(corrected error; CE) 모듈이고, 제 2 모듈(1228)은 직렬 프레즌스 검출(serial presence detect; SPD)/레지스터 클록 드라이버(registering clock driver; RCD) 모듈(1228)이다. 12 is a schematic diagram showing a system including a memory system architecture having a correctable error module sharing an interface and a serial presence detect/registering clock driver module according to an embodiment of the present invention . In this embodiment, the
특히, SPD/RCD 모듈(1228)은 직렬 프레즌스 검출 시스템 및/또는 레지스터 클록 드라이버 시스템에 관련된 정보에 액세스하도록 구성될 수 있다. SPD/RCD 모듈(1228)은 그러한 시스템의 하나 또는 둘 모두에 액세스하도록 구성될 수 있다. 정보는 제 2 통신 경로(1208)를 통하여 액세스 될 수 있다. 따라서, 본 실시 예에서 메모리(1202)로부터 제공되는 에러 정보는 SPD/RCD에 관련된 정보로서 통신 경로(1208)를 통하여 액세스 될 수 있다.In particular, the SPD/
도 13은 본 발명의 실시 예에 따른 DRAM 내 에러 정정 기술을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(1300)은, 도 10의 메모리(1002), 프로세서(1004), 및 정보(1020 및 1022)에 응답하여 동작하는 에러 정정 모듈(1018)과 MCA 모듈(1026)과 유사한, 메모리(1302), 프로세서(1304), 및 정보(1320 및 1322)에 응답하여 동작하는 에러 정정 모듈(1318)과 MCA(machine check architecture) 모듈(1326)을 포함하는 커널(1310)을 포함한다. 그러나, 본 실시 예에서, 메모리들(1302) 각각은 ECC 기능을 갖는 듀얼 라인 메모리 모듈(ECC DIMM)으로 제공될 수 있다.13 is a schematic diagram illustrating a system including a memory system architecture with an error correction technology in DRAM according to an embodiment of the present invention. In this embodiment, the
각각의 ECC DIMM(1302)은 데이터를 저장하고 저장된 데이터에 있는 에러를 정정하도록 구성될 수 있다. 본 실시 예에서, ECC DIMM(1302)은 대응하는 통신 경로들(1364)을 통하여 프로세서(1304)의 메모리 컨트롤러(1350)에 각각 연결될 수 있다. 통신 경로(1364)는 도 5의 통신 경로(506)와 유사하게 데이터 신호들 및 데이터 스트로브 신호들을 전달하기 위한 라인들을 포함할 수 있다. ECC DIMM(1302)은 도 3의 버스(312), BMC(314), 및 버스(316)와 유사한 버스(1312), BMC(1314), 및 버스(1316)를 포함하는 통신 경로(1308)를 통하여 프로세서(1304)에 각각 연결될 수 있다. Each
실시 예에서, ECC DIMM(1302)은 ECC DIMM(1302)로부터 읽혀진 데이터에 있는 하나 또는 그 이상의 에러를 정정하도록 구성될 수 있다. 에러 정정 기술은 싱글 에러 정정-더블 에러 검출(single error correction - double error detection; SEC-DEC) 기술, 싱글-칩 칩킬(single-chip chipkill) 기술, 더블-칩 칩킬(double-chip chipkill) 기술 등을 포함할 수 있다. 어떠한 에러 정정 기술이라도 사용될 수 있다. In an embodiment, the
본 실시 예에서, 메모리 컨트롤러(1350)는 에러 정정을 수행하도록 구성되지 않거나, 반대로 ECC DIMM(1302)으로부터 에러 정보를 수신하도록 구성되지 않을 수 있다. ECC DIMM(1302)을 경유하는 데이터는 이미 에러가 정정되었기 때문에, 메모리 컨트롤러(1350)는 정정 가능한 에러를 나타내는 어떠한 정보도 받지 않을 수 있다. 그러나, 에러 정보, 특히, 정정된 에러 정보는 버스(1312 및 1316) 그리고 BMC(1314)와 같은 통신 경로(1308)를 통하여 프로세서(1304)에 전달될 수 있다.In the present embodiment, the
실시 예에서, 프로세서(1304)는 에러 정정을 수행할 수 없는 프로세서일 수 있으나, 버스(1316)로 연결될 수 있는 인터페이스를 갖는 프로세서일 수 있다. 그러나, 일단 프로세서(1304)가 커널(1310), 특히, 에러 정정 모듈(1318)에 의해서 설정되면, 제반 시스템(1300)은 에러 정정 기능이 있는 프로세서를 갖는 시스템과 유사하게 에러 정정을 수행하도록 구성될 수 있다. In an embodiment, the
실시 예에서, 에러 정정 모듈(1318)은 에러 정정 인터페이스를 갖는 가상 메모리 컨트롤러를 생성할 수 있다. 예를 들어, 앞서 설명한 바와 같이, 에러 정정 모듈(1318)은 MCA 모듈(1326)로부터 정보를 수신하도록 구성될 수 있다. 이때 정보는 에러 정정 인터페이스를 갖는 실제의 메모리 컨트롤러가 일부 또는 전부의 에러 정보 없이 제공하는 정보일 수 있다. 에러 정정 모듈(1318)은 메모리 컨트롤러의 ECC 인터페이스로부터 기대되는 정보의 완성 셋을 생성하기 위한 에러 정보를 보완할 수 있다. 결과적으로, EDAC 모듈(1324), 메모리 ECC 대몬(1358), 다른 애플리케이션(1360) 등은 에러 정정과 함께 프로세서와 사용되는 것들의 변경 없이 사용될 수 있다. 예를 들어, EDAC 모듈(1324)은 메모리 ECC 정보를 위해서 EC 모듈(1318)을 폴링(polling)하도록 구성될 수 있다. 결국, EC 모듈(1318)은 제 2 통신 경로(1308)를 통하여 수신된 에러 정보를 리턴할 수 있다. EDAC 모듈(1324)과 통신하는 메모리 ECC 대몬(1358)은 에러 정보를 위해 EDAC 모듈(1324)을 폴링할 수 있다. 그 후, 메모리 ECC 대몬(1358)은 애플리케이션 레벨에서 에러 정보에 대응하는 액션을 취할 수 있다. 그러한 액션들은 페이지 만료, 시스템(1300)을 동작시키기 위한 다른 에러 관리 동작, 신뢰성 레벨을 유지하기 위한 동작, 폐기 추천 등을 포함할 수 있다. In an embodiment, the
상술한 바와 같이, 정정 불가능한 에러는 검출될 수 있다. 정정 불가능한 에러 정보는 메모리 컨트롤러(1350), MCA 레지스터(1352), 그리고 MCA 모듈(1326)을 통하여 에러 정정 모듈(1318)로 전달될 수 있다. 예를 들어, 정정 불가능한 에러는 MCA 모듈(1326)을 통하여 마스크 불가 인터럽트(non-maskable interrupt), 예외 등으로 전달될 수 있다. 특정 실시 예에서, 메모리 컨트롤러(1350)에 어떻게 전달되었는지에 관계없이, 메모리 컨트롤러(1350)는 정정 불가능한 에러에 응답하여 하드웨어 예외를 생성할 수 있다. MCA 모듈(1326)은 상술한 예외 정보를 가로채 에러 정정 모듈(1318)로 전달할 수 있다. 그러면 에러 정정 모듈(1318)은 예외 정보를 EDAC 모듈(1324)에 전달할 수 있다. 상술한 바와 같이 정정 불가능한 에러 정보를 전달하는 것에 더하여 또는 전달하는 것 대신에, 정정 불가능한 에러 정보는 통신 경로(1308)를 통하여 전달될 수 있다.As described above, an uncorrectable error can be detected. Uncorrectable error information may be transferred to the
실시 예에서, ECC DIMM(1302)은 정정된 데이터를 프로세서(1304)에 전달하도록 구성될 수 있다. 그러나, 데이터는 ECC DIMM(1302)과 메모리 컨트롤러(1350) 사이에서 오류가 생길 수 있다. 따라서, 어떤 형태의 에러 정정이 ECC DIMM(1302)과 프로세서(1304) 또는 메모리 컨트롤러(1350) 사이에서 수행될 수 있다. 예를 들어, ECC DIMM(1302)으로부터 전달되는 데이터는 통신 링크(1364) 상에서 발생하는 에러들을 검출하도록 의도된 에러 정정 코드로 인코딩될 수 있다. 이와 같은 에러 정정에 의해서, ECC DIMM(1302)의 저장 매체로부터 프로세서(1304)로 전달되는 전체 경로가 에러 정정으로 보호될 수 있다.In an embodiment, the
도 14a 내지 도 14d는 본 발명의 실시 예들에 따른 모듈 내 에러 정정 기술을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 도 14a를 참조하면, 시스템(1400)은 도 13의 시스템과 유사한 구성들을 포함할 수 있다. 그러나, 본 실시 예에서, ECC DIMM(1402)은 버퍼(1462)를 포함한다. 버퍼(1462)는 ECC DIMM(1402)으로부터 읽혀지는 데이터에 포함되는 에러를 정정하도록 구성될 수 있다. 특히, 비정정 데이터는 ECC DIMM(1402)의 DRAM 장치들(미도시)과 같은 내부 메모리 장치로부터 읽혀질 수 있다. 버퍼(1462)는 본 명세서에서 설명된 다른 메모리들과 유사하게 비정정 데이터의 에러를 정정하고, 정정된 에러 정보를 생성하도록 구성될 수 있다. 상술한 에러 정보는 통신 경로(1408)를 통하여 전달되고, 앞서 설명한 방법들에 의해서 사용될 수 있다. 즉, 에러 정보는 에러 정보가 생성된 방식에 관계없이 상술한 다양한 방법에 의해서 사용될 수 있다.14A to 14D are schematic diagrams illustrating a system including a memory system architecture with an error correction technique in a module according to embodiments of the present invention. Referring to FIG. 14A, the
도 14b를 참조하면, 시스템(1400)의 구성들은 도 14a의 그것들과 유사할 수 있다. 그러나, 본 실시 예에서, EDAC 모듈(1424)은 MCA 모듈(1426)과 정보를 교환하도록 구성될 수 있다. 예를 들어, EDAC 모듈(1424)은 하드웨어 관련 정보, 정정 불가능한 에러 정보, 또는 MCA 모듈(1426)을 통하여 이용 가능한 정보를 위해 MCA 모듈(1426)을 폴링하도록 구성될 수 있다. EDAC 모듈(1424)은 MCA 모듈(1426)로부터 제공되는 정보와 에러 정정 모듈(1418)로부터 전달되는 정보를 조합하도록 구성될 수 있다. Referring to FIG. 14B, configurations of the
도 14c를 참조하면, 시스템(1400)의 구성들은 도 14a의 그것들과 유사할 수 있다. 그러나, 본 실시 예에서, MCELOG 모듈(1425)은 에러 정정 모듈(1418)로부터의 정보를 수신하도록 구성될 수 있다. MCELOG 모듈(1425)은 메모리 에러, 데이터 전송 에러 등과 같은 다양한 시스템 에러와 관련된 머신 체크 이벤트(machine check event; MCE)들을 기록하도록 구성될 수 있다. MCELOG 모듈(1425)은 메모리 ECC 대몬(1458)으로의 인터럽트를 발생시키고, 메모리 ECC 대몬(1458)에 에러 정보를 전달하도록 구성될 수 있다. Referring to FIG. 14C, configurations of the
도 14d를 참조하면, 시스템(1400)의 구성들은 도 14c의 그것들과 유사할 수 있다. 그러나, 본 실시 예에서, 도 14a와 도 14b의 사이의 차이점과 유사하게, MCELOG 모듈(1425)은 도 14b의 EDAC 모듈(1424)과 유사하게 MCA 모듈(1426)로부터 제공되는 정보를 수신하도록 구성될 수 있다. Referring to FIG. 14D, configurations of the
비록, 도 14a 내지 도 14d에서 버퍼(1462)를 포함하는 ECC DIMM(1402)에 대해서 설명되었지만, 다른 실시 예에서, ECC DIMM(1302)를 포함하는 도 13의 시스템(1300)의 다양한 구성들이 적용될 수 있다. Although, in FIGS. 14A to 14D, the
도 15는 본 발명의 실시 예에 따른 메모리 모듈을 보여주는 개략도이다. 메모리 모듈(1500)은 하나 또는 그 이상의 메모리 장치들(1501), 데이터 인터페이스(1536), 에러 인터페이스(1538), 그리고 컨트롤러(1541)를 포함할 수 있다. 데이터 인터페이스(1536)는 메모리 장치들(1501)에 저장된 데이터로부터 데이터(1540)를 전송하고 수신하도록 구성될 수 있다. 메모리 모듈(1500)은 하나 또는 그 이상의 메모리 장치들(1501)로부터 읽혀진 데이터에 대해 에러 정보를 생성하도록 구성될 수 있다. 에러 인터페이스(1538)는 하나 또는 그 이상의 메모리 장치(1501)로부터 읽혀진 데이터에 있는 에러를 정정하는 것에 응답하여 생성된 에러 정보를 전송하도록 구성될 수 있다. 15 is a schematic diagram illustrating a memory module according to an embodiment of the present invention. The
데이터 인터페이스(1536)는 메모리 장치들(1501)에 저장된 데이터가 전송되는 인터페이스이고, 메모리 장치들(1501)에 저장될 데이터(1540)가 수신되는 인터페이스이다. 예를 들어, 데이터 인터페이스(1536)는 데이터 라인, 스트로브 라인, 어드레스 라인, 인에이블 라인, 클록 라인 등과 같은 라인들을 위한 버퍼, 드라이버 회로, 종단 회로(termination), 또는 다른 회로들을 포함할 수 있다.The
에러 인터페이스(1538)는 SMBus, IPMI, 또는 본 명세서에서 설명된 다른 버스들과 같은 특정 버스를 통하여 통신하도록 구성된 인터페이스일 수 있다. 실시 예에서, 에러 인터페이스(1538)는 메모리 모듈(1500)이 에러 정보와 더불어 다른 정보를 교환하기 위한 기존의 인터페이스일 수 있다. 따라서, 정보(1542)는 에러 정보뿐만 아니라 다른 정보도 포함할 수 있다. The
컨트롤러(1541)는 메모리 장치들(1501)과 연결되도록 구성된 어떤 장치일 수 있다. 예를 들어, 컨트롤러(214)는 범용 프로세서, DSP (digital signal processor), ASIC (application specific integrated circuit), 프로그램 가능한 논리 장치(programmable logic device) 등을 포함할 수 있다. 상세하게 후술 되겠지만, 컨트롤러(1541)는 RCD 등과 같은 버퍼를 포함할 수 있다.The controller 1541 may be any device configured to be connected to the
컨트롤러(1541)는 메모리 장치들(1501), 데이터 인터페이스(1536), 그리고 에러 인터페이스(1538)와 연결될 수 있다. 컨트롤러(1541)는 에러 정보를 얻도록 구성될 수 있다. 실시 예에서, 컨트롤러(1541)는 메모리 장치들(1501)로부터 에러 정보를 획득할 수 있지만, 다른 실시 예에서는, 컨트롤러(1541)는 메모리 장치들(1501)로부터의 데이터에 있는 에러를 정정하고 에러 정보를 생성하도록 구성될 수 있다. The controller 1541 may be connected to the
실시 예에서, 컨트롤러(1541)는 데이터 인터페이스(1536)를 통하여 정정 불가능한 에러를 교환하도록 구성될 수 있다. 예를 들어, 앞서 설명된 바와 같이, 데이터 스트로브 신호는 정정 불가능한 에러를 나타내도록 사용될 수 있다. 컨트롤러(1541)는 정정 불가능한 에러를 검출하는 것에 응답하여 데이터 인터페이스(1536)를 통하여 전송되는 스트로브 신호를 조정하도록 구성될 수 있다. In an embodiment, the controller 1541 may be configured to exchange an uncorrectable error through the
도 16은 본 발명의 실시 예에 따른 SPD 또는 RCD 인터페이스를 갖는 메모리 모듈을 보여주는 개략도이다. 본 실시 예에서, 메모리 모듈(1600)은 도 15에서 설명된 하나 또는 그 이상의 메모리 장치들(1501), 데이터 인터페이스(1536), 에러 인터페이스(1538), 및 컨트롤러(1541)와 유사한, 하나 또는 그 이상의 메모리 장치들(1601), 데이터 인터페이스(1636), 에러 인터페이스(1638), 및 컨트롤러(1641)를 포함할 수 있다. 그러나, 도 15의 에러 인터페이스(1538)는 여기서 SPD/RCD 인터페이스(1638)일 수 있다.16 is a schematic diagram illustrating a memory module having an SPD or RCD interface according to an embodiment of the present invention. In this embodiment, the
SPD/RCD 인터페이스(1638)는 직렬 프레즌스 검출(SPD) 시스템이나 RCD 시스템(미도시)으로의 액세스를 제공하기 위해 사용될 수 있다. 특정 실시 예에서, 에러 정보는 상술한 SPD 또는 RCD 시스템 내의 특정 레지스터나 메모리 영역을 통하여 이용 가능할 수 있다. 따라서, 에러 정보는 SPD 또는 RCD 정보가 획득될 수 있는 동일한 인터페이스를 통하여 획득될 수 있다.The SPD/
에러 정보가 기존의 하드웨어 인터페이스를 통하여 이용 가능하기 때문에, 추가적인 하드웨어는 불필요하다. 예를 들어, 에러 정보를 액세스하기 위한 SPD/RCD 인터페이스(1638)를 통하여 수신되는 커맨드는 어드레스, 레지스터 어드레스, 또는 SPD/RCD 시스템에 의해서 비사용되는 다른 필드 등에 있어서 다른 명령어들과 구별된다. 실시 예에서, 에러 정보를 게시하기 위해 SPD/RCD 시스템의 새로운 레지스터가 정의될 수 있다. 다른 실시 예에서, 에러 정보를 교환하기 위해 기존의 레지스터가 재사용될 수도 있을 것이다.Since error information is available through the existing hardware interface, additional hardware is unnecessary. For example, a command received through the SPD/
도 17은 본 발명의 실시 예에 따른 별도의 정정 불가능한 에러 인터페이스를 갖는 메모리 모듈을 보여주는 개략도이다. 본 실시 예에서, 메모리 모듈(1700)은 도 15에서 설명된 하나 또는 그 이상의 메모리 장치들(1501), 데이터 인터페이스(1536), 에러 인터페이스(1538), 및 컨트롤러(1541)와 유사한, 하나 또는 그 이상의 메모리 장치들(1701), 데이터 인터페이스(1736), 에러 인터페이스(1738), 및 컨트롤러(1741)를 포함할 수 있다. 그러나, 메모리 모듈(1700)은 또한 정정 불가능한 에러 인터페이스(1744)를 포함할 수 있다. 17 is a schematic diagram illustrating a memory module having a separate non-correctable error interface according to an embodiment of the present invention. In this embodiment, the
정정 불가능한 에러(uncorrectable error; UE) 인터페이스(1744)는 메모리 모듈(1700)이 정정 불가능한 에러를 교환하도록 구성된 별도의 인터페이스이다. 예를 들어, 정정 불가능한 에러 인터페이스(1744)는 전용 라인이거나, 전용의 버스 등일 수 있다. The uncorrectable error (UE) interface 1744 is a separate interface configured to allow the
도 18은 본 발명의 실시 예에 따른 메모리 장치를 보여주는 개략도이다. 본 실시 예에서, 메모리 장치(1800)는 데이터인터페이스(1836) 및 에러 인터페이스(1838)를 포함할 수 있다. 데이터 인터페이스(1836) 및 에러 인터페이스(1838)는 도 15의 데이터 인터페이스(1536) 및 에러 인터페이스(1538)와 유사할 수 있다. 그러나, 본 실시 예에서, 데이터 인터페이스(1836) 및 에러 인터페이스(1838)는 도 15의 메모리 모듈과 같은 메모리 모듈보다는 메모리 장치(1800)로의 인터페이스일 수 있다.18 is a schematic diagram illustrating a memory device according to an embodiment of the present invention. In this embodiment, the
메모리 장치(1800)는 컨트롤러(1841)를 포함할 수 있다. 컨트롤러(1814)는 메모리(1801) 및 인터페이스들(1836 및 1838)에 연결되도록 구성된 어떤 장치일 수 있다. 예를 들어, 컨트롤러(1841)는 범용 프로세서, DSP (digital signal processor), ASIC (application specific integrated circuit), 프로그램 가능한 논리 장치(programmable logic device) 등을 포함할 수 있다.The
메모리(1801)는 데이터를 저장하도록 구성될 수 있다. 예를 들어, 메모리(1801)는 메모리 셀 어레이일 수 있다. 그러나, 다른 실시 예에서, 데이터는 다른 구성들에 저장될 수 있다. 메모리(1801)는 전기적, 자기적, 화학적, 광학적, 또는 다른 타입의 저장 매체를 포함할 수 있다.The memory 1801 may be configured to store data. For example, the memory 1801 may be a memory cell array. However, in other embodiments, the data may be stored in other configurations. The memory 1801 may include electrical, magnetic, chemical, optical, or other types of storage media.
컨트롤러(1841)는 데이터 인터페이스(1836)를 통하여 메모리(1801)에 저장된 데이터를 전송하도록 구성될 수 있다. 컨트롤러(1841)는 데이터 인터페이스(1836)를 통하여 메모리(1801)에 저장될 데이터를 수신하도록 구성될 수 있다. 그러한 전송은 데이터(1840)로 표시되었다.The controller 1841 may be configured to transmit data stored in the memory 1801 through the
컨트롤러(1841)는 에러 인터페이스(1838)를 통하여 메모리(1801)로부터 읽혀진 데이터에 있는 에러를 정정하는 것에 응답하여 생성된 에러 정보를 전송하도록 구성될 수 있다. 에러 정보는 앞서 설명된 에러 정보의 타입과 유사할 수 있다. 컨트롤러(1841)는 에러 인터페이스(1838)를 통하여 커맨드, 명령, 또는 다른 정보를 수신하도록 구성될 수 있다. 그러한 커맨드, 명령, 또는 다른 정보의 전송은 정보(1842)로 표시되었다.The controller 1841 may be configured to transmit error information generated in response to correcting an error in data read from the memory 1801 through the
본 실시 예에서, 데이터(1840) 및 정보(1842) 모두 컨트롤러(1841)를 경유하는 것으로 도시되었다. 그러나, 다른 실시 예에서, 메모리 장치(1800)의 구성 요소들은 컨트롤러(1841)에 의해 제어되어, 데이터(1840) 및 정보(1842)는 컨트롤러(1841)를 경유하지 않을 수 있다. 예를 들어, 어떤 실시 예에서, 데이터 및/또는 에러 정보는 컨트롤러(1841)의 제어 하에 데이터 인터페이스(1836) 및 에러 인터페이스(1838)로 제공될 수 있으나, 컨트롤러(1841)를 경유할 수 있다.In this embodiment, both
도 19는 본 발명의 실시 예에 따른 메모리 장치를 보여주는 개략도이다. 본 실시 예에서, 메모리 장치(1900)는 메모리 셀 어레이(1901)를 포함할 수 있다. 메모리 셀 어레이(1901)는 데이터가 저장되는 메모리 셀들을 포함할 수 있다. 특히, 메모리 셀 어레이(1901)는 인코딩된 데이터를 저장하도록 구성될 수 있다. 센스 앰프(1902) 및 쓰기 회로(1904)는 데이터가 어드레스(1906)에 의해 특정되는 어드레스로 메모리 셀 어레이(1901)에 기록되고 메모리 셀 어레이(1901)로부터 읽혀지도록 하는 메모리 장치(1900)에 있는 회로의 예이다. 그러나, 다른 실시 예에서, 다른 읽기 및 쓰기 회로는 메모리 셀 어레이(1901)와 관련될 수 있다. 게다가, 비록 센스 앰프(1902) 및 쓰기 회로(1904)가 메모리 셀 어레이(1901)의 일부로 도시되었다 하더라도, 그러한 회로는 메모리 셀 어레이(1901)로부터 분리될 수 있다. 게다가, 비록 싱글 메모리 셀 어레이(1901)가 도시되었다 하더라도, 복수의 메모리 셀 어레이들(1901)이 제공될 수 있다.19 is a schematic diagram illustrating a memory device according to an embodiment of the present invention. In this embodiment, the
메모리 셀 어레이(1901)는 ECC (error correcting code) 엔진(1908)에 연결될 수 있다. ECC 엔진(1908)은 메모리 셀 어레이(1901)에 기록되는 데이터를 인코딩함으로써 그리고 메모리 셀 어레이(1901)로부터 읽혀지는 데이터를 디코딩함으로써 메모리로부터 읽혀진 데이터에 있는 적어도 하나의 에러를 정정하도록 구성될 수 있다. 특히, ECC 엔진(1908)은 쓰기 데이터(1910)를 수신하도록 구성될 수 있다. ECC 엔진(1908)은 쓰기 데이터(1910)를 인코딩하도록 구성되어, 인코딩된 데이터는 어드레스(1906)에 의해 특정된 장소에 쓰기 회로(1904)에 의해 메모리 셀 어레이(1901)로 기록될 수 있다. 유사하게, ECC 엔진(1908)은 메모리 셀 어레이(1901)로부터 인코딩된 데이터를 수신하고, 그 데이터를 디코딩된 출력 데이터(1924)로 디코딩하도록 구성될 수 있다. 그러한 인코딩 및 디코딩은 본 명세서에서 설명된 것과 같은 다양한 ECC 알고리즘에 따라 수행될 수 있다. 예를 들어, SEC-DED (Single Error Correct - Double Error Detect)가 ECC 알고리즘의 예로써 사용될 수 있으나, 다른 알고리즘들도 사용될 수 있다.The memory cell array 1901 may be connected to an error correcting code (ECC) engine 1908. The ECC engine 1908 may be configured to correct at least one error in the data read from the memory by encoding the data written to the memory cell array 1901 and decoding the data read from the memory cell array 1901. . In particular, the ECC engine 1908 may be configured to receive
비록 어드레스(1906) 및 쓰기 데이터(1910)와 같은 신호들이 메모리 셀 어레이(1901)에 데이터를 기록하는데 사용되는 신호들로써 도시되었으나, 메모리 장치(1900)는 메모리 셀 어레이(1901)에 데이터를 기록하는데 관련된 다른 신호들을 수신하고 처리하도록 구성될 수 있다. 그러나, 그러한 구성 요소들은 명료함을 위해 생략되었다. 게다가, 어드레스(1906)를 변형하거나, 액세스의 방향을 바꿀 수 있는 다른 구성요소들도 명료함을 위해 생략되었다.Although signals such as an
특정한 실시 예에서, 쓰기 동작 동안, ECC 엔진(1908)은 메모리 장치(1900)가 저장하는 비트들을 쓰기 데이터(1910)로써 수신하도록 구성될 수 있다. ECC 엔진(1908)은, 인코딩된 데이터로써 원래의 데이터 값들과 마찬가지로, 쓰기 회로(1904)를 사용하여 메모리 셀 어레이(1901)로, 쓰기 데이터(1910)에 대한 ECC 비트 값(들)을 계산하고 ECC 비트(들)을 전송하도록 구성될 수 있다. 그 후, 메모리 셀 어레이(1901)는 인코딩된 데이터를 저장하도록 구성될 수 있다.In a specific embodiment, during a write operation, the ECC engine 1908 may be configured to receive bits stored by the
읽기 동작 동안, ECC 엔진(1908)은 메모리 셀 어레이(1901)로부터 인코딩된 데이터를 수신하도록 구성될 수 있다. 즉, 센스 앰프(1902) 및 다른 회로는 인코딩된 데이터로써 앞서 저장된 ECC 비트(들) 및 원래의 데이터 값들을 읽어내는데 사용될 수 있다. 그 후, ECC 엔진(1908)은 인코딩된 데이터를 디코딩하고, 출력 데이터(1924)를 생성하고, 에러 정보를 생성할 수 있다.During a read operation, the ECC engine 1908 may be configured to receive encoded data from the memory cell array 1901. That is, the
출력 데이터(1924)는 메모리 장치(1900)로부터 출력될 수 있다. 어떤 실시 예에서, 다른 구성 요소들은 ECC 엔진과 메모리 장치(1900)의 출력 사이에 배치될 수 있다. 어떤 실시 예에서, 버퍼(1932)는 출력 데이터(1924)를 버퍼링하도록 구성될 수 있다. 어떤 실시 예에서, RCD 모듈(1934)은 출력 데이터(1924)를 수신하고, 버퍼링하고, 출력하도록 구성될 수 있다. 여기서, 그러한 옵션적인 구성 요소들은 점선으로 도시되었다.The
ECC 엔진(1908)은 에러 플래그를 생성하도록 구성될 수 있다. 예를 들어, ECC 엔진(1908)은 정정 가능한 에러(correctable error; CE) 플래그를 생성하도록 구성될 수 있다. CE 플래그는 ECC 엔진(1908)이 성공적으로 n-비트의 에러를 정정할 때 설정될 수 있으며, n은 ECC 엔진(1908)이 정정하도록 구성된 비트-에러의 수보다 적거나 동일할 수 있다. ECC 엔진(1908)은 정정 불가능한 에러(uncorrectable error; UE) 플래그를 생성하도록 구성될 수 있다. ECC 엔진(1908)이 정정하도록 구성된 비트-에러의 개수보다 크게 발생한 비트-에러의 개수를 ECC 엔진(1908)이 감지할 때, UE 플래그가 설정될 수 있다. 특정한 예에서, SEC-DED와 함께, CE 플래그는 싱글-비트 에러가 정정되었다는 것을 지시하고, UE 플래그는 두-비트 에러가 발생하였다는 것을 지시할 수 있다.The ECC engine 1908 may be configured to generate an error flag. For example, the ECC engine 1908 may be configured to generate a correctable error (CE) flag. The CE flag may be set when the ECC engine 1908 successfully corrects an n-bit error, and n may be less than or equal to the number of bit-errors the ECC engine 1908 is configured to correct. The ECC engine 1908 may be configured to generate an uncorrectable error (UE) flag. When the ECC engine 1908 detects the number of bit-errors that are larger than the number of bit-errors configured to be corrected by the ECC engine 1908, the UE flag may be set. In a particular example, with the SEC-DED, the CE flag indicates that a single-bit error has been corrected, and the UE flag may indicate that a two-bit error has occurred.
ECC 컨트롤러(1918)는 에러 정정 및 관련된 에러 정보를 관리하도록 구성될 수 있다. ECC 컨트롤러(1918)는 ECC 엔진으로부터 에러 정보(1914)를 수신하도록 구성될 수 있다. 에러 정보(1914)는 에러가 없는지, 정정 가능한 에러인지, 정정 불가능한 에러인지, 에러의 개수 등을 나타내는 정보를 포함할 수 있다. ECC 컨트롤러(1918)는 읽기와 관련된 어드레스(1906)를 수신하도록 구성될 수 있다. 따라서, ECC 컨트롤러(1918)는 ECC 엔진(1908)으로부터의 에러 정보(1914)와 어드레스(1906)를 새로운 에러 정보로 조합할 수 있다. 상세하게 후술 되겠지만, ECC 컨트롤러(1918)는 ECC 엔진(1908)에 의해 인코딩되고 메모리 셀 어레이(1901)에 기록되는 쓰기 데이터(1910)를 생성하도록 구성될 수 있다.The ECC controller 1918 may be configured to correct error and manage related error information. The ECC controller 1918 may be configured to receive
실시 예에서, ECC 컨트롤러(1918)는 에러 정보를 저장하도록 구성될 수 있다. 예를 들어, ECC 컨트롤러(1918)는 에러 정보가 저장되는 복수의 레지스터들을 포함할 수 있다. 다양한 에러 정보들이 ECC 컨트롤러(1918)에 저장될 수 있다. 상세하게 후술 되겠지만, 에러의 기록은 에러에 관한 정보를 포함하여 저장될 수 있다. 예를 들어, 에러 기록은 어드레스 정보, 에러의 타입 메모리 셀 어레이(1901)로부터 읽혀진 데이터, 리페어 또는 다른 액션들이 실행되었는지 여부 등과 같은 정보를 포함할 수 있다. In an embodiment, the ECC controller 1918 may be configured to store error information. For example, the ECC controller 1918 may include a plurality of registers in which error information is stored. Various error information may be stored in the ECC controller 1918. As will be described later in detail, the record of the error may be stored including information about the error. For example, the error write may include information such as address information, data read from the type of error memory cell array 1901, whether repair or other actions have been executed.
실시 예에서, ECC 컨트롤러(1918)는 외부 장치들과 통신(1926)을 수행하도록 구성될 수 있다. 예를 들어, 통신(1926)은 에러 정보의 전송을 포함할 수 있다. 정정 가능한 에러 또는 정정 불가능한 에러가 발생할 때, 에러 정보는 ECC 컨트롤러(1918)에 의해 전송될 수 있다. 그러한 전송은, 규칙적인 스케줄, 에러의 발생, 리프레시 사이클 동안 등에 따른 것과 같은, 외부 장치로부터의 요청에 응답한 것이거나 또는 자발적인 것일 수 있다. In an embodiment, the ECC controller 1918 may be configured to perform
실시 예에서, ECC 컨트롤러(1918)는 에러 정보를 교환하기 위해 SMBus와 같은 버스를 통하여 통신하도록 구성될 수 있다. 어떤 실시 예에서, 메모리 장치(1900)는 커맨드 버퍼(1928)를 포함할 수 있다. 커맨드 버퍼(1928)는 ECC 컨트롤러(1918)에 대한 버스를 통하여 수신된 커맨드들을 버퍼링하도록 구성될 수 있다. In an embodiment, the ECC controller 1918 may be configured to communicate over a bus such as SMBus to exchange error information. In some embodiments, the
실시 예에서, 메모리 컨트롤러(1900)는 SPD 모듈(1930)을 포함할 수 있다. ECC 컨트롤러(1918)는 SPD 모듈(1930)과 통신하도록 구성될 수 있다. SPD 모듈(1930)은 SPD 인터페이스와 관련된 동작들을 수행하도록 구성될 수 있다. 게다가, SPD 모듈(1930)은 ECC 컨트롤러(1918)를 통하여 에러 정보로의 액세스가 이용 가능하도록 구성될 수 있다. 예를 들어, SPD 모듈(1930)을 통하여 수신된 특정한 커맨드들은 적절한 커맨드들 및/또는 신호들로 변환되어 ECC 컨트롤러(1918)에 저장된 에러 정보를 액세스할 수 있다. In an embodiment, the
DQS 변경기(1920)는 ECC 엔진(1908)으로부터의 에러 정보(1916)에 응답하여 메모리 셀 어레이(1901)로부터의 데이터 스트로브 신호를 변경할 수 있고, 변경된 데이터 스트로브 신호(1922)를 출력할 수 있다. 특정한 실시 예에서, 에러 정보(1916)는 정정 불가능한 에러가 발생하였는지 여부를 나타내는 신호일 수 있다. DQS 변경기(1920)는 데이터 스트로브 신호(1912)를 변경하도록 구성되어, 만일 에러 정보(1916)가 정정 불가능한 에러가 발생하였다는 것을 나타내면 출력 데이터 스트로브 신호(1922)는 토글링 하지 않을 수 있다. 그러나, 만일 정정 불가능한 에러 신호가 발생하지 않았다면 DQS 변경기(1920)는 데이터 스트로브 신호들(1912)을 통과시킬 수 있다. 예를 들어, DQS 변경기(1920)는 OR 게이트, AND 게이트, NAND 게이트, 트랜스미션 게이트 등과 같은 논리 회로를 포함할 수 있다.The
실시 예에서, DQS 변경기(1920)는 시간에 민감한(time-sensitive) 정보를 교환하는데 사용될 수 있다. 예를 들어, 정정 불가능한 에러가 발생할 때, 에러는 현재의 읽기 동작과 관련될 수 있다. SMBus에 의한 것과 같이, 정정 불가능한 에러와 관련된 정보가 ECC 컨트롤러(1918)에 의해 외부 장치들과 교환되는 동안, 통신 경로는 데이터(1924)를 위한 통신 경로보다 더 느린 속도로 동작할 수 있다. 따라서, 정정 불가능한 에러의 발생의 통신은 대응하는 읽기 동작에 비해 지연될 수 있다. 반대로, DQS 변경기(1920)에 의해 정정 불가능한 에러가 발생하였다는 것을 통신하는 것은 대응하는 읽기 동작과 대체로 동시에 발생할 수 있다. 즉, 변경된 출력 데이터 스트로브 신호(1922)는 정정 불가능한 에러를 갖는 데이터(1924)의 전송과 관련된 데이터 스트로브 신호이다.In an embodiment, the
비록 메모리 장치(1900)의 특정한 구성 요소들이 예로써 설명되었다 하더라도, 다른 구성 요소들이 제공될 수 있다. 예를 들어, 메모리 장치(1900)는 다양한 스트로브 신호들, 선택 신호들, 제어 신호들, 인에이블 신호들 등을 수신하거나 전송하도록 구성될 수 있다.Although specific components of the
도 20은 본 발명의 실시 예에 따른 메모리 장치들을 포함하는 메모리 모듈을 보여주는 개략도이다. 본 실시 예에서, 메모리 모듈(2000)은 도 15의 데이터 인터페이스(1536) 및 에러 인터페이스(1538)와 유사한, 데이터 인터페이스(2036) 및 에러 인터페이스(2038)를 포함할 수 있다. 그러나, 본 실시 예에서, 메모리 모듈(2000)은 복수의 ECC 메모리 장치들(2001-1 내지 2001-N)을 포함할 수 있다. ECC 메모리 장치들(2001)은, 앞서 설명된 도 18 및 도 19의 메모리 장치들(1800 및 1900)과 같은, 본 명세서에서 설명된 메모리 장치들 중 어느 것일 수 있다. 20 is a schematic diagram illustrating a memory module including memory devices according to an embodiment of the present invention. In this embodiment, the
메모리 장치들(2001)의 예로써 메모리 장치(1800)를 사용하여, 그리고 도 18 및 도 20을 참조하여, 메모리 장치들(1800)의 각각은 데이터 인터페이스(2036) 및 에러 인터페이스(2038)에 연결될 수 있다. 데이터 인터페이스(2036)와 관련하여, 메모리 장치들(1800)의 데이터 인터페이스들(1836)은 적어도 데이터 인터페이스(2036)의 일부를 형성할 수 있다. 예를 들어, 각각의 데이터 인터페이스(1836)의 데이터 입출력들, 스트로브 신호들 등은 데이터 인터페이스(2036)에 수집될 수 있다. 데이터 인터페이스(2036)의 어드레스 입력 및/또는 다른 제어 신호들은 메모리 장치들(1800)의 데이터 인터페이스들(1836)에 분배될 수 있다. 따라서, 데이터는 데이터 인터페이스(2036)를 통하여 메모리 장치들(1800)(결과적으로, 메모리 모듈(2000))로 전송되거나 메모리 장치들(1800) (결과적으로, 메모리 모듈(2000))로부터 수신될 수 있다. Using the
유사하게, 에러 인터페이스들(1838)은 에러 인터페이스(2038)에 연결될 수 있다. 에러 인터페이스들(1838)은 다양한 방법으로 연결될 수 있다. 예를 들어, 에러 인터페이스들(1838) 및 에러 인터페이스(2038)는 메모리 모듈(2000) 내의 공용 버스로 연결될 수 있다. 다른 예에서, 에러 인터페이스(2038)는 메모리 장치들(2001)의 각각의 에러 인터페이스(1838)에 직접 연결될 수 있다. 에러 인터페이스(2038)는 메모리 장치들(1800)로부터 에러 정보를 수집하도록 구성될 수 있다. 따라서, 에러 정보는 에러 인터페이스(2038)를 통하여 메모리 장치들(1800) (결과적으로, 메모리 모듈(2000))로부터 전송되도록 구성될 수 있다.Similarly,
비록 도 18의 메모리 장치(1800)가 메모리 모듈(2000)의 메모리 장치(2001)의 예로써 사용되었다 하더라도, 다른 실시 예에서, 다른 메모리 장치들이 사용될 수 있다. 예를 들어, 도 19의 메모리 장치(1900)는 메모리 장치들(2001)로서 사용될 수 있다. 도 19를 참조하면, 각각의 메모리 장치(1900)의 어드레스(1906), 쓰기 데이터(1910), 출력 데이터(1924), 데이터 스트로브 신호(1922) 등은 데이터 인터페이스(2036)에 연결될 수 있다. 유사하게, 각각의 메모리 장치(1900)의 ECC 컨트롤러(1918)는 에러 인터페이스(2038)에 연결될 수 있다.Although the
도 21 내지 도 23은 본 발명의 다양한 실시 예들에 따른 메모리 모듈들을 보여주는 개략도이다. 도 21을 참조하면, 본 실시 예에서, 메모리 모듈(2100)은 도 15의 하나 또는 그 이상의 메모리 장치들(1501), 데이터 인터페이스(1536), 및 컨트롤러(1541)와 유사한, 하나 또는 그 이상의 메모리 장치들(2101), 데이터 인터페이스(2136), 및 컨트롤러(2141)를 포함할 수 있다. 모듈 에러 인터페이스(2138)는 에러 인터페이스(1538)와 유사할 수 있고, 정보(1542)와 유사한 정보(2142)를 교환하도록 구성될 수 있으나, 모듈 에러 인터페이스(2138)는 그것과 메모리 장치들(2101)의 장치 에러 인터페이스들(2139)과 구별하기 위해 "모듈"이라는 용어가 사용되었다. 상세하게 후술 되겠지만, 모듈 에러 인터페이스(2138)는 에러 정보를 교환하는 것과는 다른 통신을 위해 사용될 수 있다.21 to 23 are schematic diagrams illustrating memory modules according to various embodiments of the present disclosure. Referring to FIG. 21, in the present embodiment, the
여기서, 메모리 장치들(2101) 각각은 도 18의 데이터 인터페이스(1836) 및 에러 인터페이스(1838)와 유사한, 데이터 인터페이스(2137) 및 장치 에러 인터페이스(2139)를 포함할 수 있다. 메모리 장치들(2101)의 데이터 인터페이스들(2137)은 모듈의 데이터 인터페이스(2136)에 연결될 수 있으나, 그러한 연결은 명료함을 위해 도시되지 않았다. 게다가, 어떤 실시 예에서, 메모리 장치들(2101)의 데이터 인터페이스(2136)와 데이터 인터페이스들(2137)의 연결은 메모리 컨트롤러(2141)를 경유할 필요는 없다. 예를 들어, 어떤 실시 예에서, 메모리 모듈(2100)로부터 그리고 메모리 모듈(2100)로 전송되는 데이터(2140)는 컨트롤러(2141)에서 버퍼링 될 수 있으나, 다른 실시 예에서, 그러한 전송은 컨트롤러(2141)를 우회할 수 있다.Here, each of the memory devices 2101 may include a data interface 2137 and a device error interface 2139 similar to the
각각의 메모리 장치(2101)는 모듈 에러 인터페이스(2138)에 연결될 수 있고, 장치 에러 인터페이스 및 모듈 에러 인터페이스를 통하여 에러 정보를 교환하도록 구성될 수 있다. 본 실시 예에서, 컨트롤러(2141)는 장치 에러 인터페이스들(2139) 및 모듈 에러 인터페이스(2138)에 연결될 수 있다.Each memory device 2101 may be connected to a
좀 더 상세하게 후술 되겠지만, 컨트롤러(2141)는 에러 정보와 관련된 통신과 같은 메모리 장치들(2101)과 관련된 통신을 관리하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 대응하는 장치 에러 인터페이스들(2139)을 통하여 메모리 장치들(2101)과 관련된 에러 정보를 액세스하고, 메모리 장치들(2101)과의 통신을 포워딩하고, 메모리 장치들(2101)로부터의 에러 정보를 수집하도록 구성될 수 있다.As will be described in more detail later, the
특정한 실시 예에서, 컨트롤러(2141)는 모듈 에러 인터페이스(2138)를 통하여 액세스 가능한 레지스터들(2149)을 포함할 수 있다. 컨트롤러(2141)는 장치 에러 인터페이스들(2139)을 통하여 메모리 장치들(2101)과 통신함으로써 메모리 장치들(2101)로부터의 에러 정보를 수집하도록 구성될 수 있다. 그러한 에러 정보는 레지스터들(2149)에 저장될 수 있고 메모리 모듈(2100) 외부의 장치들에 액세스 가능할 수 있다. 또는 컨트롤러(2141)는 에러 정보를 조합하거나 에러 정보를 요약하도록 구성될 수 있다. 특히, 실시 예에서, 각각의 메모리 장치(2101)는 다른 메모리 장치들(2101)로부터 고립된 그것 자신의 에러 정보를 생성할 수 있다. 따라서, 컨트롤러(2141)가 메모리 장치들(2101)의 전부를 액세스할 때, 컨트롤러(2141)는 각각의 메모리 장치(2101)가 생성할 수 없는 추가적인 에러 정보를 생성하도록 구성될 수 있다. 비록 레지스터들(2149)이 예로써 사용되었다 하더라도, 에러 정보 및 다른 정보가 다른 방법으로 컨트롤러(2141)에 저장될 수 있다.In certain embodiments,
실시 예에서, 컨트롤러(2141)는 메모리 장치들(2101)과 관련된 커맨드들을 수신하도록 구성될 수 있다. 본 명세서에서 설명되는 바와 같이, 컨트롤러(2141)는 에러 정보를 읽기 위한 커맨드를 수신하도록 구성될 수 있다. 그러나, 컨트롤러(2141)는 메모리 장치들(2101)과 관련된 다른 타입의 통신들을 수신하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 메모리 장치들(2101)의 유지와 관련된 커맨드들을 수신하도록 구성될 수 있다. 그러한 관리의 예로써, 하나 또는 그 이상의 메모리 장치(2101) 내의 메모리 셀을 리페어 하거나, 데이터를 다시 쓰기 하거나, 리프레시 사이클을 초기화하기 위한 커맨드가 있을 수 있다. 컨트롤러(2141)는 그러한 통신들을 수신하고, 이에 응답하여 메모리 장치들(2101)과 통신하도록 구성될 수 있다.In an embodiment, the
도 22를 참조하면, 본 실시 예에서, 메모리 모듈(2200)은 메모리 모듈(2100)과 유사할 수 있으나, 메모리 모듈(2200)은 컨트롤러(2141)에 연결된 직렬 프레즌스 검출(serial presence detect; SPD)(2143) 모듈을 포함할 수 있다. SPD(2143)는 컨트롤러(2141)를 통하여 통신하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 SPD(2143)로의 그리고 SPD(2143)로부터의 통신을 포워딩하도록 구성될 수 있다. 다른 실시 예에서, 컨트롤러(2141)는 SPD(2143)로부터의 정보를 획득하도록 구성될 수 있고, 모듈 에러 인터페이스(2138)를 통하여 그러한 정보를 사용하여 SPD(2143)를 위한 프록시로서 동작할 수 있다. 비록 모듈 에러 인터페이스(2138)가 "에러"라는 용어를 사용하였다 하더라도, 에러 정보와는 다른 정보는 모듈 에러 인터페이스(2138)를 통하여 전송되고 수신될 수 있다.Referring to FIG. 22, in the present embodiment, the
실시 예에서, 컨트롤러(2141)는 SPD(2143)와 관련된 어드레스에 응답하도록 구성될 수 있다. 그러나, 컨트롤러(2141)는 다른 어드레스에 응답하거나 통신에 있어서 추가적인 정보를 사용하도록 구성되어, 통신이 SPD(2143)를 위해 의도되었는지, 에러 정보를 액세스하도록 의도되었는지, 메모리 장치들(2101)을 위해 의도되었는지, 컨트롤러(2141)를 위해 의도되었는지 여부 등을 판단할 수 있다.In an embodiment, the
도 23을 참조하면, 본 실시 예에서, 메모리 모듈(2300)은 도 21의 메모리 모듈(2100) 또는 도 22의 메모리 모듈(2200)과 유사할 수 있다. 그러나, 레지스터링 클록 드라이버(registering clock driver; RCD) 모듈(2145)은 컨트롤러(2141) 대신에 사용될 수 있다. 여기서, RCD(2145)는 메모리 모듈(2300)로 전송되고 메모리 모듈(2300)로부터 전송된 데이터를 버퍼링하도록 구성될 수 있다. 게다가, RCD(2145)는 컨트롤러(2141)와 관련하여 본 명세서에서 설명된 기능들을 제공하도록 구성될 수 있다.Referring to FIG. 23, in this embodiment, the
SPD(2143)는 RCD(2145)에 연결될 수 있다. 따라서, 메모리 모듈(2200)과 유사하게, SPD(2143)는 RCD(2145)를 통하여 액세스 가능할 수 있고, RCD(2145)는, 앞서 설명된 바와 같이 컨트롤러(2141)와 유사하게, SPD(2143)를 위한 프록시로써 동작할 수 있다.The
도 24 내지 도 26은 본 발명의 다양한 실시 예들에 따른 메모리 모듈들의 일부를 보여주는 개략도이다. 도 24를 참조하면, 본 실시 예에서, 컨트롤러(2141), 메모리 장치들(2101), 및 SPD(2143)는 도 22의 그것들과 유사할 수 있다. 컨트롤러(2141)는 버스(2452)에 연결될 수 있다. 버스(2542)는 SMBus, 또는 본 명세서에서 설명된 다른 버스들일 수 있다. 버스(2542)는 모듈 에러 인터페이스(2138)의 일부 또는 전부를 형성할 수 있다.24 to 26 are schematic diagrams illustrating some of memory modules according to various embodiments of the present disclosure. Referring to FIG. 24, in the present embodiment, the
컨트롤러(2141)는 어드레스(2454)를 수신하도록 구성될 수 있다. 어드레스(2454)는 하드웨어에 내장된(hardwired) 입력일 수 있다. 특정한 실시 예에서, 어드레스(2454)는, 특정한 소켓에 삽입되었을 때, 하이 또는 로우 값으로 연결되어 동일한 버스(2542)에 연결된 다른 것들로부터의 메모리 모듈과 구별시키는, 메모리 모듈 상의 일련의 핀들일 수 있다.The
실시 예에서, 어드레스(2454)는 메모리 장치들의 SPD 모듈에 연결될 수 있으나, 여기서 어드레스는 SPD(2143)와 같은 SPD 대신에 컨트롤러(2141)와 통신하도록 다른 목적에 맞게 만들어질 수 있다. 따라서, 본 명세서에서 설명된 메모리 모듈은 기존의 메모리 모듈과 핀 호환(pin-compatible)될 수 있다.In an embodiment, the address 2454 may be connected to the SPD module of the memory devices, but the address may be made for other purposes to communicate with the
본 실시 예에서, SPD(2143) 및 메모리 장치들(2101)은 별도의 버스들(2450)을 통하여 각각 컨트롤러(2141)에 연결될 수 있다. 여기서, 버스들은 메모리 장치들(2101-1 내지 2010-N)에 대응하도록 버스(2450-1 내지 2450-N)으로 표시되었다. 버스(2450-N+1)는 컨트롤러(2141) 및 SPD(2143)에 연결된 추가적인 버스에 대응할 수 있다. 특정한 실시 예에서, 버스들(2450) 각각은 SMBus들 또는 다른 유사한 통신 회선들일 수 있다. 그러나, 다른 실시 예에서, 예를 들어, 단지 두 개의 종말점을 가질 수 있는 통신 회선을 포함하는, 포인트-투-포인트 (point-to-point communication link) 통신 회선이 버스들(2450) 대신에 사용될 수 있다. 즉, 비록 버스라는 용어가 사용되었다 하더라도, 통신 회선은 두 개의 장치들에 연결되도록 구성될 수 있다.In this embodiment, the
실시 예에서, SPD(2143)는 제어 신호(2147)에 응답하거나 제어 신호(2147)를 생성하도록 구성될 수 있다. 제어 신호(2147)는 버스(2450-N+1)와 관련하여 아웃-오브 밴드(out-of band) 신호를 포함할 수 있다. 예를 들어, 제어 신호(2147)는 인터럽트 신호를 포함할 수 있다. 특히, 실시 예에서, 제어 신호(2147)는 SPD(2143)와 관련된 이벤트 신호일 수 있다. 컨트롤러(2141)는 제어 신호(2451)를 수신하거나 생성하도록 구성될 수 있다. 제어 신호(2451)는 SPD(2143)에 의해 사용되는 신호일 수 있다. 그러나, 컨트롤러(2141)는 SPD(2143)가 가질 수 있는 인터페이스를 사용하도록 구성될 수 있기 때문에, SDP(2143)는 제어 신호(2451)를 직접 수신하도록 구성되지 않을 수 있다. 따라서, 컨트롤러(2141)는 제어 신호(2147)로써 SPD(2143)와 제어 신호(2451)를 교환하도록 구성될 수 있다. 비록 SPD와 관련된 단일의 제어 신호가 예로써 사용되었다 하더라도, 다른 실시 예에서, 복수의 제어 신호들이 SPD(2143), 메모리 장치들(2101), 또는 다른 구성 요소들로(부터) 포워딩 될 수 있다. 명료함을 위해 그러한 제어 신호들은 도시되지 않았으나, 제공될 수도 있다.In an embodiment, the
게다가, 컨트롤러(2141)는 제어 신호(2147)와 유사한 제어 신호와 관련될 수 있는 SPD(2143)를 넘어 추가적인 기능을 포함할 수 있다. 예를 들어, 제어 신호(2141)는 메모리 장치들(2101)로부터의 에러 정보에 기초하여 인터럽트를 생성하도록 구성될 수 있다. 따라서, 제어 신호(2451)는 SPD(2143)로부터의 신호뿐만 아니라 에러 정보 기반의 인터럽트를 교환하는데 사용될 수 있다. 컨트롤러(2141)는 그러한 제어 신호가 컨트롤러(2141), SPD(2143) 등을 위해 의도되었는지 여부를 판단하도록 구성될 수 있다.In addition, the
실시 예에서, 많은 추가적인 핀들은 메모리 장치들(2101)을 위해 사용될 수 있다. 특정한 실시 예에서, 메모리 장치(2101)는 두 개의 추가적인 핀들(하나는 클록 신호를 위한 것이고 다른 하나는 데이터 신호를 위한 것)을 포함할 수 있다. 컨트롤러(2141)는 버스들(2452 및 2450-1 내지 2450-N+1)을 위한 2x(N+2)개의 핀들, 어드레스(2454)를 위한 세 개의 핀들, 및 제어 신호들(2451 및 2147)을 위한 두 개의 핀들을 포함할 수 있다. In an embodiment, many additional pins may be used for memory devices 2101. In a particular embodiment, the memory device 2101 may include two additional pins (one for a clock signal and one for a data signal). The
도 25a를 참조하면, 본 실시 예에서, 컨트롤러(2141), 메모리 장치들(2101), 및 SPD(2143)는 도 24의 그것들과 유사할 수 있다. 그러나, 컨트롤러(2141)는 버스(2450-1)를 통하여 메모리 장치들(2101)에 연결될 수 있고, 버스(2450-2)를 통하여 SPD(2143)에 연결될 수 있다. 본 실시 예에서, 버스들(2450-1 및 2450-2)은 별개의 버스들일 수 있다. Referring to FIG. 25A, in this embodiment, the
게다가, 버스(2450-1)는 메모리 장치들(2101)을 위한 공용 버스일 수 있다. 버스(2450)는 SMBus 버스들일 수 있다. 복수의 메모리 장치들(2101)은 버스(2450-1)에 연결될 수 있기 때문에, 각각의 메모리 장치(2101)는 대응하는 ID 입력(2456)을 포함할 수 있다. ID(2456)는 어드레스(2454)와 유사할 수 있다. 예를 들어, 각각의 메모리 장치(2101)에 대해, 대응하는 ID(2456)는 메모리 장치들(2101) 중 고유한 어드레스에 하드웨어에 내장(hardwired)될 수 있다. 특정한 예에서, 각각의 ID(2456)는 하이 또는 로우를 유지할 수 있는 네 개의 핀들을 포함할 수 있다. 따라서, 16개의 고유의 어드레스들은 ID(2456)들을 위해 이용 가능할 수 있다. 비록 네 개의 핀들이 예로써 사용되었지만, 어떤 개수의 핀들이라도 어떤 개수의 메모리 장치들(2101)과 구별하기 위해 사용될 수 있다.Furthermore, the bus 2450-1 may be a common bus for the memory devices 2101. The bus 2450 may be SMBus buses. Since the plurality of memory devices 2101 may be connected to the bus 2450-1, each memory device 2101 may include a corresponding ID input 2456. ID 2456 may be similar to address 2454. For example, for each memory device 2101, a corresponding ID 2456 may be hardwired in hardware at a unique address among the memory devices 2101. In a particular example, each ID 2456 may include four pins that can hold high or low. Thus, 16 unique addresses may be available for IDs 2456. Although four pins are used as an example, any number of pins may be used to distinguish it from any number of memory devices 2101.
메모리 장치들(2101) 각각은 대응하는 ID(2456)를 버스(2450-1)에 사용되는 어드레스 또는 다른 식별자로 전송하도록 구성될 수 있다. 실시 예에서 ID(2456)로부터 생성된 어드레스는 SMBus에 대한 슬레이브 어드레스로서 사용되는 어드레스일 수 있다. 본 실시 예에서, SPD(2143) 및 컨트롤러(2141)는 버스(2450-2) 상의 장치들일 수 있다. 따라서, 어드레스 입력은 SPD(2143)를 위해 사용될 필요는 없다.Each of the memory devices 2101 may be configured to transmit a corresponding ID 2456 to an address or other identifier used for the bus 2450-1. In an embodiment, the address generated from the ID 2456 may be an address used as a slave address for SMBus. In this embodiment, the
실시 예에서, 복수의 추가적인 핀들이 메모리 장치들(2101)을 위해 사용될 수 있다. 특정한 실시 예에서, 메모리 장치(2101)는, 도 24와 유사하게, 두 개의 추가적인 핀들(하나는 클록 신호를 위한 것이고 다른 하나는 데이터 신호를 위한 것)을 포함할 수 있으나, ID(2456)들을 위한 4개의 핀을 포함할 수도 있다. 컨트롤러(2141)는, 도 24와 유사하게, 버스들(2452, 2450-1, 및 2450-2)을 위한 6개의 핀들, 어드레스(2454)를 위한 3 개의 핀들, 및 컨트롤 신호들(2451 및 2147)을 위한 2 개의 핀들을 포함할 수 있다.In an embodiment, a plurality of additional pins may be used for the memory devices 2101. In a specific embodiment, the memory device 2101 may include two additional pins (one for a clock signal and one for a data signal), similar to FIG. 24, but the IDs 2456 It may also contain 4 pins for The
도 25b를 참조하면, 본 실시 예에서, 컨트롤러(2141), 메모리 장치들(2101), 및 SPD(2143)는 도 25a의 것들과 유사할 수 있다. 그러나, SPD(2143) 및 메모리 장치들(2101)은 공용 버스(2450)를 통하여 컨트롤러(2141)로 연결될 수 있다. 앞서 설명된 바와 같이, 메모리 장치들(2101)은 ID(2456)를 수신하도록 구성될 수 있다. SPD(2143)는 메모리 장치들(2101)과 같이 동일한 버스(2450) 상에 있기 때문에, SPD(2143)는 SPD(2143) 및 메모리 장치들(2101) 중 고유의 어드레스를 사용하도록 구성될 수 있다. SPD(2143)는 ID(2457)를 수신하도록 구성될 수 있다. SPD(2143)는 ID(2457)를 버스(2450)에서 사용하기 위한 어드레스로 변환시키도록 구성될 수 있다.Referring to FIG. 25B, in this embodiment, the
실시 예에서, ID(2457)의 형태는 ID(2456)들과는 다를 수 있다. 예를 들어, ID(2457)는 SPD(2143)의 어드레스를 지시하는데 사용되는 3개의 핀을 포함할 수 있는 반면, ID(2456)들은 각각 4개의 핀을 포함할 수 있다. 게다가, ID(2457) 및 ID(2456)들은 동일한 어드레스에 대응될 필요는 없다. 예를 들어, 010b의 ID(2457) 및 0010b의 ID(2456)는 다른 어드레스들에 대응할 수 있다.In an embodiment, the shape of the
실시 예에서, 복수의 추가적인 핀들이 메모리 장치들(2101)을 위해 사용될 수 있다. 특정한 실시 예에 있어서, 메모리 장치(2101)는, 도 24와 유사하게, 두 개의 추가적인 핀들(하나는 클록 신호를 위한 것이고 다른 하나는 데이터 신호를 위한 것)을 포함할 수 있으나, 역시 ID(2456)들을 위한 4개의 핀을 포함할 수도 있다. 컨트롤러(2141)는, 도 24와 유사하게, 버스들(2450 및 2452)을 위한 4개의 핀, 어드레스(2454)를 위한 3개의 핀, 및 제어 신호들(2451 및 2147)을 위한 2개의 핀을 포함할 수 있다.In an embodiment, a plurality of additional pins may be used for the memory devices 2101. In a specific embodiment, the memory device 2101 may include two additional pins (one for a clock signal and one for a data signal), similar to FIG. 24, but also ID 2456 It may also include 4 pins for ). The
도 26을 참조하면, 본 실시 예에서, 컨트롤러(2141), 메모리 장치들(2101), 및 SPD(2143)는 도 25b의 것들과 유사할 수 있다. SPD(2143)는 컨트롤러(2141)와 유사하게 어드레스(2454)를 수신하도록 구성될 수 있다. 그러나, 본 실시 예에서, 메모리 장치들(2101)은 ID(2456)들을 수신하도록 구성되지 않을 수 있다. 반대로, 메모리 장치들(2101)은, 버스(2450-1)로부터 분리된 단일의 와이어 또는 망(net)과 같은, 공용 버스(2459)에 각각 연결될 수 있다. 실시 예에서, 공용 버스는 데이지-체인 회선(daisy-chain link)일 수 있다.Referring to FIG. 26, in this embodiment, the
실시 예에서, 메모리 장치들(2101)은 버스(2459)에 연결될 수 있다. 메모리 장치들(2101)은, 컨트롤러(2141)를 통하여 수신된 정보가 버스(2459)를 통하여 수신된 신호에 응답하여 메모리 장치(2101)와 관련되는지 여부를 판단하도록 구성될 수 있다. 실시 예에서, 메모리 장치들(2101)은 버스(2459)를 통하여 통신하여, 메모리 장치들(2101)의 어드레스를 버스(2450)에 확립하도록 구성될 수 있다. 예를 들어, 제 1 메모리 장치는 카운터에 응답하여 어드레스를 결정할 수 있고 카운터를 증가시킬 수 있다. 카운터의 값은 제 2 메모리 장치(2101)로 전송될 수 있다. 제 2 메모리 장치(2101)는 카운터에 응답하여 어드레스를 결정하고 카운터를 증가시키도록 구성될 수 있다. 이 과정은 각각의 메모리 장치(2101)가 고유의 어드레스를 가질 때까지 계속될 수 있다.In an embodiment, the memory devices 2101 may be connected to the
실시 예에서, 복수의 추가적인 핀들이 메모리 장치들(2101)을 위해 사용될 수 있다. 특정한 예에서, 메모리 장치(2101)는, 도 24와 유사하게, 2개의 추가적인 핀들(하나는 클록 신호를 위한 것이고 다른 하나는 데이터 신호를 위한 것)을 포함할 수 있으나, 버스(2459)를 위한 하나의 추가적인 핀을 포함할 수도 있다. 컨트롤러(2141)는, 도 24와 유사하게, 버스들(2452, 2450-1, 및 2450-2)을 위한 6개의 핀, 어드레스(2454)를 위한 3개의 핀, 및 제어 신호(2451 및 2147)를 위한 2개의 핀을 포함할 수 있다.In an embodiment, a plurality of additional pins may be used for the memory devices 2101. In a specific example, memory device 2101 may include two additional pins (one for a clock signal and one for a data signal), similar to FIG. 24, but for
실시 예에서, 상술 된 구성의 어떤 구성에서라도, 컨트롤러(2141)는, 만일 동일한 버스에 연결되었다면, 메모리 장치들(2101) 및 SPD(2143)의 어드레스들을 결정하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 SMBus 어드레스 솔루션 프로토콜(address resolution protocol)을 사용하여 어드레스들을 메모리 장치들(2101) 및 SPD(2143)에 동적으로 할당하도록 구성될 수 있다. 비록 한 타입의 버스에서 어드레스들을 결정하는 기술이 예로써 사용되었다 하더라도, 다른 기술들이 특정한 버스(2450)에 적절하게 사용될 수 있다.In an embodiment, in any of the configurations described above, the
도 27은 본 발명의 실시 예에 따른 메모리 모듈을 보여주는 개략도이다. 본 실시 예에서, 메모리 모듈(2700)은 도 21의 메모리 모듈(2100)과 유사할 수 있다. 그러나, 리피터(repeater)(2750)가 컨트롤러(2141)로써 사용되었다. 리피터(2750) 리피터(2750)는, 메모리 장치들(2101) 및 SPD(2143)의 에러 인터페이스들(2139)이 통신 회선에 연결될 수 있도록, 모듈 에러 인터페이스(2138)에 연결된 통신 회선을 확장하도록 구성될 수 있다. 예를 들어, 만일 메모리 장치들(2101)의 로딩 및/또는 네트워크의 속성이 허락한다면, 리피터(2750)는 단지 공유 매체(shared medium)의 와이어와 같은 와이어일 수 있다. 다른 예에서, 리피터(2750)는 더 많은 장치들이 버스에 접속되도록 하거나, 더 긴 버스를 허용하도록 구성된 장치를 포함할 수 있다. 비록 리피터라는 용어가 사용되었다 하더라도, 리피터(2750)는 허브, 확장 장치, 스위치, 브릿지 등을 포함할 수 있다. 그리고 네트워크를 확장시킬 수 있는 장치는 리피터(2750)로서 사용될 수 있다. 메모리 장치들(2101)이 모듈 인터페이스(2138)를 통하여 직접 액세스 가능하기 때문에, 메모리 모듈(2700)의 각각의 메모리 장치(2101)는 BMC와 같은 외부 컨트롤러에 의해 에러 정보에 대해 개별적으로 정보를 얻을 수 있다. 27 is a schematic diagram illustrating a memory module according to an embodiment of the present invention. In this embodiment, the
실시 예에서, 메모리 장치들(2101), SPD(2143), 및 리피터(2750)의 구성은 도 25b와 유사할 수 있다. 즉, 도 25b 및 27을 참조하면, 메모리 장치들(2101)은, 리피터(2750)에 연결된, 버스(2450)에 각각 연결될 수 있다. 메모리 장치들(2101) 각각은 ID(2456)를 수신하도록 구성될 수 있다. 그 결과, 메모리 장치들(2101)은 버스(2450)에서의 사용을 위한 각각의 어드레스들을 결정하도록 구성될 수 있다.In an embodiment, configurations of the memory devices 2101, the
실시 예에서, 특정한 어드레스들 또는 ID들은 다양한 타입의 장치들과 관련될 수 있다. 예를 들어, 온도 센서들은 특정한 어드레스 또는 어드레스 범위와 관련될 수 있다. 그러나, 메모리 장치들(2101)은 그러한 어드레스 또는 ID 연관을 갖지 않을 수 있다. 따라서, 어드레스, ID, 그러한 파라미터들의 범위 등은, 본 명세서에서 설명된 메모리 모듈들을 사용할 수 있는 시스템에서 사용되지 않는 장치들과 같은, 다른 타입의 장치들로부터 다른 목적에 맞게 만들어질 수 있다. 예를 들어, I2C 먹스를 위한 ID 또는 어드레스는 메모리 장치들(2101)의 ID 또는 어드레스로서 사용될 수 있다.In an embodiment, specific addresses or IDs may be associated with various types of devices. For example, temperature sensors may be associated with a specific address or range of addresses. However, the memory devices 2101 may not have such an address or ID association. Thus, addresses, IDs, ranges of such parameters, and the like can be made for different purposes from other types of devices, such as devices not used in a system that can use the memory modules described herein. For example, the ID or address for the I2C mux may be used as the ID or address of the memory devices 2101.
도 28은 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 2800 단계에서, 메모리로부터 데이터를 읽을 때 에러가 발생할 수 있다. 이에 응답하여, 2802 단계에서, 에러가 진단될 수 있다. 좀 더 상세하게 후술 되겠지만, 에러가 확인될 뿐만 아니라, 에러를 정정하기 위한 다른 정정하는 액션(corrective action)도 취해질 수 있다.28 is a flowchart illustrating a method of exchanging error information according to an embodiment of the present invention. In
2804 단계에서, 에러 정보가 보고될 수 있다. 앞서 설명된 바와 같이, 메모리 장치, 메모리 모듈의 다른 구성 요소들, 및 프로세서 사이의 통신 회선은 에러 정보를 교환하는데 사용될 수 있다. 에러 정보(2804)를 보고하는 것은 그러한 통신 회선들을 통하여 수행될 수 있다.In
도 29는 본 발명의 실시 예에 따른 에러를 다루는 기술을 보여주는 순서도이다. 본 실시 예는, 정정 가능한 에러가 어떻게 다뤄지는지(예를 들어, 정정 가능한 에러가 도 19의 ECC 컨트롤러에 의해 어떻게 다뤄지는지)를 예시적으로 보여준다. 2900 단계에서, 정정 가능한 에러(CE)가 발생한 후, CE 기록이 생성될 수 있다. CE 기록은 앞서 설명된 에러와 관련된 다양한 정보를 포함할 수 있다.29 is a flowchart illustrating a technique for handling an error according to an embodiment of the present invention. This embodiment exemplarily shows how a correctable error is handled (eg, how a correctable error is handled by the ECC controller of FIG. 19). In
2902 단계에서, 데이터가 다시 읽혀질 수 있다. 본 실시 예에서, 데이터를 다시 읽어내는 것에 응답하여, 에러가 발생하지 않는 경우, 정정 가능한 에러가 발생하는 경우, 정정 불가능한 에러(uncorrectable error; UE)가 발생하는 경우와 같은, 3개의 결과가 발생할 수 있다. 만일 에러가 발생하지 않는다면, 2904 단계에서, 기록은 소프트-읽기 에러로 표시될 수 있다. 만일 정정 가능한 에러가 발생하면, 2908 단계에서, 정정된 데이터가 다시 쓰기 될 수 있다. 만일 정정 불가능한 에러가 발생하면, 2906 단계에서, 에러 기록은 정정 불가능한 에러 기록으로 업데이트 될 수 있다.In
2908 단계에서 정정된 데이터를 다시 쓰기하는 것의 일부로써, 에러가 발생할 수 있다. 만일 에러가 발생하지 않는다면, 2910 단계에서, 에러 기록은 소프트-읽기 에러로 표시될 수 있다. 만일 정정 불가능한 에러가 발생하였다면, 2906 단계에서, 에러 기록은 정정 불가능한 에러 기록으로 업데이트 될 수 있다.As part of rewriting the data corrected in
2912 단계에서, 만일 정정 가능한 에러가 발생하였다면, 메모리 셀이 리페어 가능한지 여부가 판단될 수 있다. 특정한 실시 예에서, 본 단계에서의 정정 가능한 에러는 에러가 다시 쓰기에 의해 리페어 될 수 없는지 여부를 나타낼 수 있다. 따라서, 에러는 하드웨어 에러에 의해 야기될 수 있다. 2912 단계에서 메모리 셀의 리페어 가능 여부에 대한 판단 결과에 의존하여, 에러 기록은 더 주석이 달릴 수 있고 리페어 될 수 있다. 만일 메모리 셀이 리페어 가능하다면, 2914 단계에서, 메모리 셀은 리페어 되고 에러는 하드 에러로 표시될 수 있다. 만일 메모리 셀이 리페어 불가능하다면, 2916 단계에서, 에러 기록은 리페어 불가능한 하드 에러로 표시될 수 있다. 따라서, 앞서 설명된 진단에 의해, 에러는 더 카테고리화 되거나 리페어 될 수 있다.In
비록 2908 단계에서의 다시 쓰기가 정정 불가능한 에러, 정정 가능한 에러, 또는 에러 없음을 지시하는 동작의 예로써 사용되었다 하더라도, 그러한 정보는 다른 동작들의 결과일 수 있다. 예를 들어, 2908 단계에서 데이터를 다시 쓰기 한 후, 읽기 동작이 수행될 수 있고 유사한 에러 정보가 생성될 수 있다.Although the rewrite in
도 30은 본 발명의 실시 예에 따른 에러를 다루는 기술을 보여주는 순서도이다. 본 실시 예를 정정 불가능한 에러가 어떻게 다뤄지는지(예를 들어, 정정 불가능한 에러가 도 19의 ECC 컨트롤러(1918)에 의해 어떻게 다뤄지는지)에 관한 예이다. 3000 단계에서, 정정 불가능한 에러(UE)가 발생한 후, UE 기록이 생성될 수 있다. 어떤 실시 예에서, UE 기록은 앞서 도 29에서 설명된 2906 단계에서의 UE 기록에 대한 업데이트의 결과일 수 있다.30 is a flow chart illustrating a technique for handling errors according to an embodiment of the present invention. This embodiment is an example of how an uncorrectable error is handled (eg, how an uncorrectable error is handled by the ECC controller 1918 of FIG. 19 ). In
3002 단계에서, UE 기록과 관련된 데이터가 다시 읽혀질 수 있다. 이에 응답하여, 다른 동작이 수행될 수 있다. 만일 다시 읽기 후 정정 불가능한 에러가 발생하면, 3006 단계에서, 기록은 리페어 불가능한 에러로 표시될 수 있다. 만일 에러가 발생하지 않으면, 3004 단계에서, 기록은 소프트-읽기 에러로 표시될 수 있다. 만일 정정 가능한 에러가 발생하면, 3008 단계에서, 정정된 에러가 다시 기록될 수 있다. 도 29의 2908 단계에서의 다시 쓰기와 유사하게, 동작으로부터 생성된 결과는, 다시 쓰기 후에 데이터를 다시 읽는 것과 같은, 다른 소스들로부터 비롯될 수 있다. In
데이터의 다시 쓰기의 결과에 응답하여, 다른 동작들이 수행될 수 있다. 만일 결과가 정정 불가능한 에러라면, 3006 단계에서, 기록은 리페어 불가능한 에러로 표시될 수 있다. 만일 에러가 발생하지 않았다면, 3010 단계에서, 기록은 소프트-읽기 및 소프트-쓰기 에러로 표시될 수 있다.In response to the result of the rewriting of data, other operations may be performed. If the result is an uncorrectable error, in
3012 단계에서, 만일 결과가 정정 가능한 에러라면, 메모리 셀이 리페어 가능한지 여부가 판단될 수 있다. 만일 메모리 셀이 리페어 가능하다면, 3014 단계에서, 리페어 동작이 실행되고, 기록은 소프트-읽기 및 리페어 가능한 하드 에러로 표시될 수 있다. 만일 메모리 셀이 리페어 불가능하다면, 3016 단계에서, 레코드는 소프트-읽기 및 리페어 불가능한 하드 에러로 표시될 수 있다. In
비록 에러들의 다양한 카테고리화가 상술 된 바와 같이 설명되었다 하더라도, 어떤 실시 예에서, 그러한 정보의 모든 것들이 메모리 장치의 외부에 이용 가능하지 않을 수 있다. 예를 들어, 도 20의 소프트-읽기 및 소프트-쓰기 에러와 같은 특정한 타입의 에러들은 소프트-에러로써 수집될 수 있다. 어떤 수집, 요약 등이라도 메모리 장치로부터 전송될 에러 정보를 생성하기 위해 수행될 수 있다. 게다가 메모리 장치는 상세한 특정 레벨을 제공하도록 구성하도록 구성될 수 있다.Although the various categorizations of errors have been described as described above, in some embodiments, all of such information may not be available outside of the memory device. Certain types of errors, such as the soft-read and soft-write errors of FIG. 20, for example, may be collected as soft-errors. Any collection, summary, etc. can be performed to generate error information to be transmitted from the memory device. In addition, the memory device can be configured to provide a specific level of detail.
실시 예에서, 도 29 및 도 30에서 설명된 것과 같은 기술을 사용하여, 메모리 장치는 소프트-읽기 에러 회복(예를 들어, 메모리 정화(memory scrubbing), 하드-에러 리페어 등과 같은 에러 관리 기술들을 수행하도록 구성될 수 있다.In an embodiment, using a technique as described in FIGS. 29 and 30, the memory device performs error management techniques such as soft-read error recovery (eg, memory scrubbing, hard-error repair, etc.). Can be configured to
실시 예에서, 앞서 설명된 동작들은 읽기 동작이 일어난 후 수행될 수 있다. 특히, 동작들은 읽기 동작을 막지 않도록 구성될 수 있다. 그러나, 일단 보수 간격, 리프레시 사이클 등과 같은 적절한 구간이 발생하면, 에러 기록들은 처리되고, 업데이트 되고, 메모리 셀들은 리페어 될 수 있다.In an embodiment, the operations described above may be performed after a read operation occurs. In particular, the operations can be configured so as not to prevent the read operation. However, once an appropriate interval, such as a maintenance interval, refresh cycle, etc., occurs, error records can be processed, updated, and memory cells repaired.
비록 에러의 처리에 관한 특정한 시퀀스들이 에러들을 카테고리화 하거나 메모리 셀들을 리페어하기 위한 기준의 예로써 사용되었지만, 다른 실시 예에서, 다른 시퀀스들이 사용될 수 있다. 예를 들어, 도 29를 참조하면, 2910 단계에서 메모리 셀이 리페어 가능한지 여부를 판단하는 것은, 2902 단계에서 다시 읽기 동작 때의 CE 및 2908 단계에서 다시 쓰기 동작 때의 CE를 수반하는, CE가 발생하면 실행될 수 있다. 그러나, 다른 실시 예에서, 2910 단계에서 메모리 셀이 리페어 가능한지 여부를 판단하는 것은, 2902 단계에서의 다시 읽기 동작이 복수의 다시 읽기 동작을 시도한 후 CE를 야기할 경우에만 실행될 수 있다. 즉, 어떤 실시 예에서, 에러들을 카테고리화 하는 특정한 기준은 앞서 설명된 예들과는 다를 수 있다.Although specific sequences relating to error handling have been used as examples of criteria for categorizing errors or repairing memory cells, in other embodiments, other sequences may be used. For example, referring to FIG. 29, determining whether a memory cell can be repaired in
나아가, 비록 에러 타입들의 특정한 명칭이 사용되었다 하더라도, 어떤 실시 예에서, 그러한 에러 타입들의 전부는 사용되지 않을 수 있다. 유사하게, 어떤 실시 예에서, 다른 에러 타입들이 사용될 수 있다.Furthermore, although specific names of error types have been used, in some embodiments, all of those error types may not be used. Similarly, in some embodiments, other error types may be used.
도 31은 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 3100 단계에서, 메모리로부터 데이터를 읽을 때 읽기 에러가 발생할 수 있다. 이에 응답하여, 에러 정보가 생성될 수 있다. 예를 들어, 읽기 에러는 정정된 정정 가능한 에러일 수 있다. 에러 정보는 정정 가능한 에러에 관한 정보일 수 있다. 예를 들어, 읽기 에러는 복수의 에러들일 수 있다. 이때, 에러 정보는 이들 에러에 관한 정보일 수 있다.31 is a flowchart illustrating a method of exchanging error information according to an embodiment of the present invention. In
3102 단계에서, 읽기 에러 커맨드가 수신될 수 있다. 실시 예에서, 읽기 에러 커맨드는 메모리 모듈에 의해 수신될 수 있다. 만일 에러가 발생하면, 3014 단계에서, 메모리는 에러 정보를 전송할 수 있다. 3102 단계에서 읽기 에러 커맨드를 수신하기 전에, 메모리 모듈은 발생한 에러에 관한 에러 정보를 저장할 수 있다. 3104 단계에서, 먼저 발생한 에러에 관한 에러 정보는 읽기 에러 커맨드에 응답하여 전송될 수 있다. 그러나, 만일 에러가 발생하지 않았다면, 3104 단계에서의 에러 정보의 전송은 에러가 발생하지 않았다는 것을 나타내는 정보의 전송일 수 있다.In step 3102, a read error command may be received. In an embodiment, the read error command may be received by the memory module. If an error occurs, in
앞서 설명된 바와 같이, 에러 정보는 버스를 통하여 전송될 수 있다. 특히, 버스는 메모리 모듈의 주 데이터 경로에 관하여 아웃-오브-밴드(out-of-band) 경로일 수 있다. 따라서, 3104 단계에서의 전송은 버스를 통하여 에러 정보를 전송하는 것을 포함할 수 있다.As described above, error information may be transmitted over the bus. In particular, the bus may be an out-of-band path with respect to the main data path of the memory module. Accordingly, the transmission in
도 31b는 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 도 31a 및 31b를 참조하면, 본 실시 예에서, 도 31b의 동작은 컨트롤러의 동작일 수 있다. 특히, 3106 단계에서, 읽기 에러 커맨드는 컨트롤러로부터 전송될 수 있다. 3106 단계에서 전송된 읽기 에러 커맨드는 3102 단계에서 수신된 읽기 에러 커맨드일 수 있다. 앞서 설명된 바와 같이, 3104 단계에서, 에러 정보는 전송될 수 있다. 3108 단계에서, 에러 정보가 컨트롤러에서 수신될 수 있다. 예를 들어, 컨트롤러는 메모리 모듈을 폴링 하도록 구성될 수 있다. 따라서, 컨트롤러는 3106 단계에서 읽기 에러 커맨드를 수신할 수 있고, 3108 단계에서 에러 정보를 수신할 수 있다. 앞서 설명된 바와 같이, 컨트롤러는, 메모리 컨트롤러가 에러 정보를 저장할 수 있는 불휘발성 메모리와 같은, 메모리를 포함할 수 있다. 이후, 3110 단계에서, 에러 정보는 프로세서로 전송될 수 있다.31B is a flowchart illustrating a method of exchanging error information according to an embodiment of the present invention. Referring to FIGS. 31A and 31B, in the present embodiment, the operation of FIG. 31B may be an operation of a controller. In particular, in
비록 예시적으로 읽기 에러 커맨드를 전송하는 컨트롤러를 사용하는 것이 설명되었다 하더라도, 다른 실시 예에서, 3106 단계에서 프로세서는 읽기 에러 커맨드를 전송할 수 있다. 3102 단계에서, 읽기 에러 커맨드는 메모리 모듈에 의해 수신될 수 있고, 3110 단계에서, 에러 정보는 프로세서로 전송될 수 있다.즉, 에러 정보는 컨트롤러에서 수신되거나 처리될 필요는 없다.Although the use of a controller that transmits a read error command has been described as an example, in another embodiment, in
도 32는 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 도 28 및 도 32를 참조하여, 그리고 3200 단계에서 예시적으로 메모리 모듈(2100)을 사용하여, 통신은 모듈 에러 인터페이스(2138)를 통하여 수신될 수 있다. 3202 단계에서, 에러 정보는 적어도 하나의 메모리 장치(2101)로부터 읽혀질 수 있다.32 is a flowchart illustrating a method of exchanging error information according to an embodiment of the present invention. With reference to FIGS. 28 and 32, and using the
실시 예에서, 3202 단계에서 에러 정보를 읽는 것은 3200 단계에서의 통신에 응답하여 수행될 수 있다. 그러나, 다른 실시 예에서, 에러 정보를 읽는 것은 이시(different time)(예를 들어, 통신을 수신하기 전을 포함)에 수행될 수 있다. 이와 상관없이, 3204 단계에서 메모리 장치들(2101)로부터의 에러 정보는 통신에 응답하기 위해 사용될 수 있다.In an embodiment, reading the error information in
3202 단계에서 에러 정보를 읽는 것은 다양한 방법으로 수행될 수 있다. 예를 들어, 메모리 장치들(2101) 각각은, 도 24에 도시된 바와 같은, 대응하는 전용 버스를 통하여 액세스 될 수 있다. 다른 실시 예에서, 메모리 장치들(2101) 각각은 도 25a, 25b, 또는 25c에 도시된 바와 같은, 공용 버스를 통하여 액세스 될 수 있다. 다른 실시 예에서, 통신은 도 27의 리피터(2750)와 같은 하나 또는 그 이상의 메모리 장치들(2101)에 포워딩 될 수 있다. Reading the error information in
비록 도 21의 메모리 모듈이 예로써 사용되었다 하더라도, 본 명세서에서 설명된 기술은 다른 메모리 모듈들, 시스템들 등에 의해 사용될 수 있다.Although the memory module of FIG. 21 is used as an example, the technology described herein may be used by other memory modules, systems, and the like.
도 33은 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 3300 단계에서, 읽기 에러가 발생할 수 있다. 3312 단계에서, 읽기 에러 커맨드는 컨트롤러로 전송될 수 있다. 예를 들어, 컨트롤러는 프로세서로부터 읽기 에러 커맨드를 수신할 수 있다. 3314 단계에서, 읽기 에러 커맨드는 메모리 모듈로 전송될 수 있다. 예를 들어, 3314 단계에서, 컨트롤러는 프로세서로부터 수신된 읽기 에러 커맨드를 메모리 모듈로 포워딩하거나, 읽기 에러 커맨드를 변형하거나, 메모리 모듈에 대한 다른 읽기 에러 커맨드를 생성하여, 읽기 에러 커맨드를 메모리 모듈로 전송할 수 있다. 3314 단계에서 전송된 읽기 에러 커맨드는 3302 단계에서 수신될 수 있고, 3304 단계에서 에러 정보는 도 31a의 3102 단계 및 3104 단계와 유사하게 전송될 수 있다. 앞서 설명된 바와 같이, 에러 정보는 프로세서로 전송될 수 있다.33 is a flowchart illustrating a method of exchanging error information according to an embodiment of the present invention. In
앞서 설명된 바와 같이, 컨트롤러는 에러 정보를 위해 메모리 모듈을 폴링할 수 있고 에러 정보를 저장할 수 있다. 따라서, 읽기 에러 커맨드가 프로세서로부터 컨트롤러에 의해 수신될 때, 컨트롤러는 이미 읽기 에러 정보를 가질 수 있다. 컨트롤러는 저장된 에러 정보를 프로세서로 전송할 수 있다. 그러나 컨트롤러는, 컨트롤러가 저장된 에러 정보를 프로세서로 전송하기 전에, 더 많은 에러 정보를 위해 메모리 모듈을 폴링할 필요는 없다. As described above, the controller can poll the memory module for error information and store the error information. Thus, when a read error command is received by the controller from the processor, the controller may already have read error information. The controller can transmit the stored error information to the processor. However, the controller need not poll the memory module for more error information before the controller sends the stored error information to the processor.
도 34는 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 3400 단계에서, 프로세서는 읽기 에러 커맨드를 전송할 수 있다. 이에 응답하여, 3402 단계에서, 프로세서는 에러 정보를 수신할 수 있다. 3406 단계에서, 프로세서는 에러 정보를 추가적인 정보와 결합할 수 있다. 앞서 설명된 바와 같이, 추가적인 정보는, 메모리 모듈과 관련되지 않은 정보를 포함하는, 프로세서의 상태, 주변부, 버스들 등과 같은, 다양한 정보일 수 있다. 특정한 실시 예에서, 프로세서는 에러 정보를 MCA 모듈로부터의 정보와 결합시킬 수 있다. 34 is a flowchart showing a method of exchanging error information according to an embodiment of the present invention. In
특정한 실시 예에서, 3408 단계에서, 결합된 정보는 EDAC 모듈에 제공될 수 있다. 앞서 설명한 바와 같이, EDAC 모듈은 다양한 시스템들의 에러에 대한 정보를 더 높은 레벨의 애플리케이션에 이용 가능할 수 있도록 한다. In a particular embodiment, in
도 35는 본 발명의 실시 예에 따른 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(3500)은 도 1의 프로세서(104) 및 소프트웨어(110)와 유사한, 프로세서(2104) 및 소프트웨어(2110)를 포함할 수 있다. 그러나, 본 실시 예에서, 시스템(3500)은 메모리(3502) 및 에러 정정 회로(3568)를 포함할 수 있다.35 is a schematic diagram illustrating a system equipped with a memory system architecture according to an embodiment of the present invention. In this embodiment,
본 실시 예에서, 메모리(3502)는 에러를 정정하도록 구성되지 않을 수 있다. 메모리(3502)는 에러 정정 회로(3568)에 연결되고, 통신 경로(3572)를 통하여 에러 정정 회로(2168)에 데이터를 전송하도록 구성될 수 있다. In this embodiment, the
에러 정정 회로(3568)는 메모리(3502)로부터 수신된 데이터의 에러를 정정하도록 구성될 수 있다. 에러 정정 회로(3568)는 제 2 통신 경로(3570) 및 제 3 통신 경로(3508)를 통하여 프로세서(2104)에 연결될 수 있다. 제 2 통신 경로(3570)는 프로세서(3504)가 데이터를 수신하도록 구성되는 메인 경로이다. 예를 들어, 제 2 통신 경로(3570)는 프로세서(3504)를 위한 시스템 버스일 수 있다. The
반면, 제 3 통신 경로(3508)는 앞서 설명된 통신 경로(108)와 유사하다. 즉, 제 3 통신 경로(3508)는 컨트롤러(3514)를 포함하는 별도의 아웃-오브-밴드 통신 경로이거나, 앞서 설명한 통신 경로들의 다양한 변형일 수 있다.On the other hand, the
도 36은 본 발명의 실시 예에 따른 서버를 보여주는 개략도이다. 본 실시 예에서, 서버(3600)는 독립형 서버(stand-alone server), 랙에 탑재된 서버(rack-mounted server), 블레이드 서버(blade server) 등을 포함할 수 있다. 서버(3600)는 메모리(3602), 프로세서(3604), 그리고 BMC(3614)를 포함할 수 있다. 프로세서(3604)는 통신 경로(3606)를 통하여 메모리(3602)와 연결될 수 있다. BMC(3614)는 버스(3616)를 통하혀 프로세서(3604)와 연결되고, 버스(3612)를 통하여 메모리(3602)와 연결될 수 있다. 메모리(3602), 프로세서(3604), BMC(3614), 통신 경로(3606), 그리고 버스들(3612 및 3616) 각각은 앞서 설명된 대응하는 구성들 중 어느 하나일 수 있다.36 is a schematic diagram showing a server according to an embodiment of the present invention. In this embodiment, the
도 37은 본 발명의 일 실시 예에 따른 서버 시스템을 보여주는 개략도이다. 본 실시 예에서, 서버 시스템(3700)은 복수의 서버들(3702-1 내지 3702-N)을 포함할 수 있다. 서버(3702)들 각각은 매니저(3704)와 연결될 수 있다. 하나 또는 그 이상의 서버들(3702)은 앞서 설명된 서버(3700)와 유사할 수 있다. 게다가, 매니저(3704)는 앞서 설명된 메모리 시스템 아키텍처를 구비한 시스템을 포함할 수 있다.37 is a schematic diagram showing a server system according to an embodiment of the present invention. In this embodiment, the
매니저(3704)는 서버 시스템(3700)의 서버(3702) 및 다른 구성들을 관리하도록 구성될 수 있다. 예를 들어, 매니저(3704)는 서버(3702)의 설정들을 관리하도록 구성될 수 있다. 서버들(3702) 각각은 매니저(3704)와 에러 정보를 교환하도록 구성될 수 있다. 에러 정보는 앞서 설명된 바와 같이 서버들(3702) 중 어느 하나에 있는 프로세서로 전송된 정정 가능한 에러 정보, 또는 정정 가능한 에러 정보에 기초한 다른 에러 정보를 포함할 수 있다. 매니저(3704)는 에러 정보에 기초하여 액션을 취하도록 구성될 수 있다. 예를 들어, 서버(3702-1)는 임계치를 초과하는 정정 가능한 에러를 포함할 수 있다. 매니저(3704)는 관리 및/또는 대체를 위해 서버(3702-1)의 기능을 서버(3702-2)로 넘겨주고, 서버(2302-1)를 셧다운 시키도록 구성될 수 있다. 비록 특정 예들이 제시되었다 하더라도, 매니저(3704)는 에러 정보에 기초하여 또 다른 액션을 취하도록 구성될 수도 있다.The
도 38은 본 발명의 실시 예에 따른 데이터 센터를 보여주는 개략도이다. 본 실시 예에서, 데이터 센터(3800)는 복수의 서버 시스템들(3802-1 내지 3802-N)을 포함할 수 있다. 서버 시스템들(3802)은 도 36에서 설명된 서버 시스템(3600)과 유사하다. 서버 시스템들(3802)은 인터넷과 같은 네트워크(3804)에 연결될 수 있다. 따라서, 서버 시스템들(3802)은 다양한 노드들(3806-1 내지 3806-M)과 네트워크(3804)를 통하여 통신할 수 있다. 예를 들어, 노드들(3806)은 클라이언트 컴퓨터, 다른 서버, 원거리 데이터 센터, 스토리지 시스템 등일 수 있다.38 is a schematic diagram showing a data center according to an embodiment of the present invention. In this embodiment, the
비록 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 기술적 사상의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 따라서 본 발명의 범위는 상술 된 실시 예에 국한되어 정해져서는 안되며, 후술하는 특허 청구범위뿐만 아니라 본 발명의 특허 청구범위와 균등한 것들에 의해 정해져야 한다. Although specific embodiments have been described in the detailed description of the present invention, various modifications may be made without departing from the scope of the technical idea of the present invention. Therefore, the scope of the present invention should not be defined by being limited to the above-described embodiments, and should be defined by the claims and equivalents of the present invention as well as the claims to be described later.
100: 시스템 102: 메모리
104: 프로세서 106: 제 1 통신 경로
109: 제 2 통신 경로 110: 소프트웨어
700: 메모리 모듈 702: 메모리
704: 프로세서 706, 708: 통신 경로들
710: 소프트웨어 718: 모듈
1300: 시스템 1302: ECC DIMM
1304: 프로세서 1310: 커널
1312, 1316: 버스 1314: BMC
1318: 에러 정정 모듈 1324: EDAC 모듈
1326: MCA 모듈 1350: 메모리 컨트롤러
1352: MCA 레지스터 1358: 메모리 ECC 대몬
1360: 다른 애플리케이션들 1364: 통신 경로들
1500: 메모리 모듈 1501: 메모리 장치들
1536: 데이터 인터페이스 1538: 에러 인터페이스
1541: 컨트롤러 1900: 메모리 장치
1901: 메모리 셀 어레이 1902: 센스 앰프
1904: 읽기 회로 1906: 어드레스
1908: ECC 엔진 1910: 쓰기 데이터
1912: 데이터 스트로브 신호 1918: ECC 컨트롤러
1920: DQS 변경기 1922: 데이터 스트로브 신호
1924: 출력 데이터 1928: 커맨드 버퍼
1930: 직렬 프레즌스 검출 모듈 1932: 버퍼
1934: 레지스터 클록 드라이버 모듈 2100: 메모리 모듈
2101: 메모리 장치 2136: 데이터 인터페이스
2137: 데이터 인터페이스 2138: 모듈 에러 인터페이스
2139: 장치 에러 인터페이스 2141: 컨트롤러
2143: 직렬 프레즌스 검출 모듈 2145: 레지스터링 클록 드라이버
2149: 레지스터 2750: 리피터100: system 102: memory
104: processor 106: first communication path
109: second communication path 110: software
700: memory module 702: memory
704:
710: software 718: module
1300: System 1302: ECC DIMM
1304: processor 1310: kernel
1312, 1316: Bus 1314: BMC
1318: error correction module 1324: EDAC module
1326: MCA module 1350: memory controller
1352: MCA register 1358: memory ECC daemon
1360: other applications 1364: communication paths
1500: memory module 1501: memory devices
1536: data interface 1538: error interface
1541: controller 1900: memory device
1901: memory cell array 1902: sense amplifier
1904: read circuit 1906: address
1908: ECC engine 1910: write data
1912: data strobe signal 1918: ECC controller
1920: DQS changer 1922: data strobe signal
1924: output data 1928: command buffer
1930: serial presence detection module 1932: buffer
1934: register clock driver module 2100: memory module
2101: memory device 2136: data interface
2137: data interface 2138: module error interface
2139: device error interface 2141: controller
2143: serial presence detection module 2145: registering clock driver
2149: register 2750: repeater
Claims (20)
상기 메모리 모듈과 외부로부터의 메인 메모리 경로와 상기 메모리 모듈 사이에서 데이터를 통신하고, 상기 메인 메모리 경로는 상기 시스템 제어 경로와 분리되는 메모리 모듈의 외부 모듈 데이터 인터페이스; 및
각각의 메모리 장치는 데이터를 저장하도록 구성되고, 각각의 메모리 장치는 장치 컨트롤러, 외부 모듈 에러 인터페이스에 연결된 장치 에러 인터페이스 및 외부 모듈에 연결된 장치 데이터 인터페이스를 포함하고, 에러 데이터 인터페이스는 상기 장치 데이터 인터페이스와 별개이고, 메모리 모듈 내부에 있는 복수의 메모리 장치를 포함하되,
각각의 장치 컨트롤러는
ECC (error correcting code) 엔진을 포함하고,
상기 ECC (error correcting code) 엔진은,
수정 된 데이터를 생성하기 위하여 ECC 엔진에 해당하는 메모리 장치에서 읽은 데이터의 에러를 수정하고,
상기 데이터의 에러의 수정에 응답하여 에러 정보를 생성하고,
상기 장치 에러 인터페이스를 통하여 상기 외부 모듈 에러 인터페이스로 상기 에러 정보를 교환하고, 그리고
상기 장치 에러 인터페이스를 통하여 상기 외부 모듈 데이터 인터페이스로 상기 수정된 데이터를 교환하고, 그리고
상기 ECC 엔진의 에러 수정에 응답하여 상기 에러 정보를 기록하는 ECC 컨트롤러를 포함하는 메모리 모듈.An external module error interface for communicating error information from a memory module to a system control path outside the memory module;
An external module data interface of a memory module that communicates data between the memory module and the external main memory path and the memory module, the main memory path being separated from the system control path; And
Each memory device is configured to store data, and each memory device includes a device controller, a device error interface connected to an external module error interface, and a device data interface connected to an external module, and the error data interface includes the device data interface and Separate, including a plurality of memory devices inside the memory module,
Each device controller
Includes an ECC (error correcting code) engine,
The ECC (error correcting code) engine,
In order to create the modified data, the error of the data read from the memory device corresponding to the ECC engine is corrected,
Generate error information in response to correction of the error in the data,
Exchange the error information to the external module error interface through the device error interface, and
Exchange the modified data to the external module data interface through the device error interface, and
A memory module including an ECC controller for recording the error information in response to error correction of the ECC engine.
상기 모듈 에러 인터페이스 및 상기 메모리 장치들의 상기 장치 에러 인터페이스들 각각에 연결되는 모듈 컨트롤러를 더 포함하는 메모리 모듈.The method of claim 1,
The memory module further comprises a module controller connected to the module error interface and each of the device error interfaces of the memory devices.
상기 모듈 컨트롤러는 리피터를 포함하는 메모리 모듈.The method of claim 2,
The module controller is a memory module including a repeater.
상기 메모리 모듈과 외부로부터의 메인 메모리 경로와 상기 메모리 모듈 사이에서 데이터를 교환하고, 상기 메인 메모리 경로는 상기 시스템 제어 경로와 분리되는 메모리 모듈의 외부 모듈 데이터 인터페이스; 및
메모리 모듈 내부에 있는 복수의 메모리 장치를 포함하되,
각각의 메모리 장치는 장치 데이터 인터페이스 및 장치 데이터 인터페이스와 분리된 장치 에러 인터페이스이고,
각각의 메모리 장치는,
수정 된 데이터를 생성하기 위하여 ECC 엔진에 해당하는 메모리 장치에서 읽은 데이터의 에러를 수정하고,
상기 데이터의 에러의 수정에 응답하여 에러 정보를 생성하고,
상기 장치 에러 인터페이스를 통하여 상기 외부 모듈 에러 인터페이스로 상기 에러 정보를 교환하고, 그리고
상기 외부 모듈 에러 인터페이스 및 각각의 메모리 장치의 상기 장치 에러 인터페이스와 연결되고, 상기 외부 모듈 데이터 인터페이스 및 각각의 메모리 장치의 상기 장치 데이터 인터페이스와 연결되는 모듈 컨트롤러를 포함하되,
상기 모듈 컨트롤러는,
각각의 장치 에러 인터페이스로부터 상기 외부 모듈 에러 인터페이스로 상기 에러 정보를 교환을 제어하고, 각각의 장치 데이터 인터페이스로부부터 상기 외부 모듈 데이터 인터페이스로 상기 수정된 데이터의 교환을 제어하는 메모리 모듈.An external module error interface for communicating error information from a memory module to a system control path outside the memory module;
An external module data interface of a memory module that exchanges data between the memory module and an external main memory path and the memory module, the main memory path being separated from the system control path; And
Including a plurality of memory devices inside the memory module,
Each memory device is a device data interface and a device error interface separate from the device data interface,
Each memory device,
In order to create the modified data, the error of the data read from the memory device corresponding to the ECC engine is corrected,
Generate error information in response to correction of the error in the data,
Exchange the error information to the external module error interface through the device error interface, and
A module controller connected to the external module error interface and the device error interface of each memory device, and connected to the external module data interface and the device data interface of each memory device,
The module controller,
A memory module for controlling the exchange of the error information from each device error interface to the external module error interface, and controlling the exchange of the modified data from each device data interface to the external module data interface.
상기 시스템 제어 경로는,
상기 메인 메모리에 대하여 아웃-오브-밴드 교환 경로를 포함하는 메모리 모듈.The method of claim 4,
The system control path,
A memory module comprising an out-of-band exchange path to the main memory.
상기 시스템 제어 경로는,
플랫폼 매니지먼트 버스를 포함하는 메모리 모듈.The method of claim 4,
The system control path,
Memory module with platform management bus.
상기 플랫폼 매니지먼트 버스는
시스템 매니지먼트 버스(SMBus), I2C(inter-integrated circuit) 버스, IPMI (intelligent platform management interface) 버스, 또는 모드버스(Modbus)를 포함하는 메모리 모듈.The method of claim 6,
The platform management bus is
A memory module including a system management bus (SMBus), an inter-integrated circuit (I2C) bus, an intelligent platform management interface (IPMI) bus, or a Modbus.
상기 시스템 제어 경로는 상기 메인 메모리 경로보다 느린 메모리 모듈.The method of claim 4,
The system control path is a memory module that is slower than the main memory path.
상기 메인 메모리 경로는 제1 데이터 속도를 포함하고, 상기 시스템 제어 경로는 제2 데이터 속도를 포함하되, 살기 제2 데이터 속도는 상기 제1 데이터 속도의 1/10보다 작거나 같은 메모리 모듈.The method of claim 8,
The main memory path includes a first data rate, the system control path includes a second data rate, and the second data rate to live is less than or equal to 1/10 of the first data rate.
상기 모듈 컨트롤러는,
에러 정보를 상기 외부 모듈 에러 인터페이스를 통하여 전송하는 것을 더 포함하는 메모리 모듈.The method of claim 4,
The module controller,
The memory module further comprising transmitting error information through the external module error interface.
상기 외부 모듈 에러 인터페이스는,
에러 정보에 대한 폴을 수신 할 수 있는 메모리 모듈.According to claim 1
The external module error interface,
A memory module that can receive polls for error information.
상기 시스템 제어 경로는,
상기 메인 메모리에 대하여 아웃-오브-밴드 교환 경로를 포함하는 메모리 모듈.The method of claim 1,
The system control path,
A memory module comprising an out-of-band exchange path to the main memory.
상기 시스템 제어 경로는,
플랫폼 매니지먼트 버스를 포함하는 메모리 모듈.The method of claim 1,
The system control path,
Memory module with platform management bus.
상기 플랫폼 매니지먼트 버스는
시스템 매니지먼트 버스(SMBus), I2C(inter-integrated circuit) 버스, IPMI (intelligent platform management interface) 버스, 또는 모드버스(Modbus)를 포함하는 메모리 모듈.The method of claim 13,
The platform management bus is
A memory module including a system management bus (SMBus), an inter-integrated circuit (I2C) bus, an intelligent platform management interface (IPMI) bus, or a Modbus.
상기 시스템 제어 경로는 상기 메인 메모리 경로보다 느린 메모리 모듈.The method of claim 1,
The system control path is a memory module that is slower than the main memory path.
상기 메인 메모리 경로는 제1 데이터 속도를 포함하고, 상기 시스템 제어 경로는 제2 데이터 속도를 포함하되, 살기 제2 데이터 속도는 상기 제1 데이터 속도의 1/10보다 작거나 같은 메모리 모듈.The method of claim 15,
The main memory path includes a first data rate, the system control path includes a second data rate, and the second data rate to live is less than or equal to 1/10 of the first data rate.
상기 모듈 컨트롤러는,
에러 정보를 상기 외부 모듈 에러 인터페이스를 통하여 전송하는 것을 더 포함하는 메모리 모듈.The method of claim 2,
The module controller,
The memory module further comprising transmitting error information through the external module error interface.
상기 외부 모듈 에러 인터페이스는,
에러 정보에 대한 폴을 수신 할 수 있는 메모리 모듈.The method of claim 4
The external module error interface,
A memory module that can receive polls for error information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210015698A KR102378466B1 (en) | 2014-08-19 | 2021-02-03 | Memory devices and modules |
Applications Claiming Priority (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462039396P | 2014-08-19 | 2014-08-19 | |
US62/039,396 | 2014-08-19 | ||
US201462057199P | 2014-09-29 | 2014-09-29 | |
US62/057,199 | 2014-09-29 | ||
US201462075231P | 2014-11-04 | 2014-11-04 | |
US62/075,231 | 2014-11-04 | ||
US14/594,049 | 2015-01-09 | ||
US14/594,049 US20160055058A1 (en) | 2014-08-19 | 2015-01-09 | Memory system architecture |
US14/678,968 | 2015-04-04 | ||
US14/678,968 US10002043B2 (en) | 2014-08-19 | 2015-04-04 | Memory devices and modules |
US14/678,977 | 2015-04-04 | ||
US14/678,977 US10002044B2 (en) | 2014-08-19 | 2015-04-04 | Memory devices and modules |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210015698A Division KR102378466B1 (en) | 2014-08-19 | 2021-02-03 | Memory devices and modules |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160022250A KR20160022250A (en) | 2016-02-29 |
KR102214556B1 true KR102214556B1 (en) | 2021-02-09 |
Family
ID=55375579
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150109526A KR102214556B1 (en) | 2014-08-19 | 2015-08-03 | Memory devices and modules |
KR1020210015698A KR102378466B1 (en) | 2014-08-19 | 2021-02-03 | Memory devices and modules |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210015698A KR102378466B1 (en) | 2014-08-19 | 2021-02-03 | Memory devices and modules |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6713740B2 (en) |
KR (2) | KR102214556B1 (en) |
CN (1) | CN105373345B (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10338838B2 (en) * | 2017-03-24 | 2019-07-02 | Samsung Electronics Co., Ltd. | Multi-mode NVMe over fabrics device for supporting CAN (controller area network) bus or SMBus interface |
US10747437B2 (en) * | 2017-05-02 | 2020-08-18 | Quanta Computer Inc. | SAS hard disk drive update via management controller |
KR102352156B1 (en) * | 2017-10-26 | 2022-01-17 | 삼성전자주식회사 | Slave device for performing address resolution protocol and operation method thereof |
KR102589913B1 (en) * | 2018-04-12 | 2023-10-13 | 삼성전자주식회사 | Semiconductor memory devices and memory systems including the same |
US11074126B2 (en) | 2018-07-12 | 2021-07-27 | Micron Technology, Inc. | Methods for error count reporting with scaled error count information, and memory devices employing the same |
KR102645140B1 (en) * | 2018-12-06 | 2024-03-07 | 삼성전자주식회사 | Memory system including fpga and method of operation thereof |
US11232049B2 (en) * | 2019-12-13 | 2022-01-25 | Micron Technology, Inc. | Memory module with computation capability |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010244553A (en) | 2009-03-31 | 2010-10-28 | Sean Eilert | Hierarchical memory architecture to connect mass storage devices |
JP2013522779A (en) | 2010-03-22 | 2013-06-13 | モサイド・テクノロジーズ・インコーポレーテッド | Composite semiconductor memory device with error correction |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02206099A (en) * | 1989-02-03 | 1990-08-15 | Nec Corp | Dynamic ram |
GB2289779B (en) * | 1994-05-24 | 1999-04-28 | Intel Corp | Method and apparatus for automatically scrubbing ECC errors in memory via hardware |
US6876591B2 (en) * | 2001-04-25 | 2005-04-05 | Koninklijke Philips Electronics N.V. | Integrated circuit with self-test device for an embedded non-volatile memory and related test method |
KR100597473B1 (en) * | 2004-06-11 | 2006-07-05 | 삼성전자주식회사 | Method of Testing Memory Module and Hub of Memory Module of the same |
JP4918824B2 (en) | 2006-08-18 | 2012-04-18 | 富士通株式会社 | Memory controller and memory control method |
KR100816053B1 (en) | 2006-11-21 | 2008-03-21 | 엠텍비젼 주식회사 | Memory device, memory system and dual port memory device with self-copy function |
US7949931B2 (en) | 2007-01-02 | 2011-05-24 | International Business Machines Corporation | Systems and methods for error detection in a memory system |
KR101397549B1 (en) * | 2007-08-16 | 2014-05-26 | 삼성전자주식회사 | Non-volatile semiconductor memory device and system capable of fast rogramming and read method thereof |
US8468417B2 (en) * | 2009-02-18 | 2013-06-18 | Micron Technology, Inc. | Data integrity in memory controllers and methods |
KR20130030099A (en) * | 2011-09-16 | 2013-03-26 | 삼성전자주식회사 | Flash memory device and reading method of flash memory device |
KR20130086887A (en) * | 2012-01-26 | 2013-08-05 | 삼성전자주식회사 | Memory buffer, devices having the same and data processing method thereof |
-
2015
- 2015-08-03 KR KR1020150109526A patent/KR102214556B1/en active IP Right Grant
- 2015-08-19 JP JP2015162163A patent/JP6713740B2/en active Active
- 2015-08-19 CN CN201510512333.7A patent/CN105373345B/en active Active
-
2021
- 2021-02-03 KR KR1020210015698A patent/KR102378466B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010244553A (en) | 2009-03-31 | 2010-10-28 | Sean Eilert | Hierarchical memory architecture to connect mass storage devices |
JP2013522779A (en) | 2010-03-22 | 2013-06-13 | モサイド・テクノロジーズ・インコーポレーテッド | Composite semiconductor memory device with error correction |
Also Published As
Publication number | Publication date |
---|---|
KR20210016598A (en) | 2021-02-16 |
CN105373345A (en) | 2016-03-02 |
KR102378466B1 (en) | 2022-03-24 |
KR20160022250A (en) | 2016-02-29 |
JP2016045958A (en) | 2016-04-04 |
JP6713740B2 (en) | 2020-06-24 |
CN105373345B (en) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10824499B2 (en) | Memory system architectures using a separate system control path or channel for processing error information | |
US10002043B2 (en) | Memory devices and modules | |
KR102378466B1 (en) | Memory devices and modules | |
CN105373443B (en) | Data system with memory system architecture and data reading method | |
US9065481B2 (en) | Bad wordline/array detection in memory | |
KR102262575B1 (en) | Memory devices and modules | |
US10606696B2 (en) | Internally-generated data storage in spare memory locations | |
US20210406126A1 (en) | Low latency availability in degraded redundant array of independent memory | |
US11520659B2 (en) | Refresh-hiding memory system staggered refresh | |
US8176388B1 (en) | System and method for soft error scrubbing | |
US10521113B2 (en) | Memory system architecture | |
US20240096439A1 (en) | Selective per die dram ppr for cxl type 3 device | |
KR20190052490A (en) | Semiconductor memory module, semiconductor memory system, and access method of accessing semiconductor memory module | |
JP2021520556A (en) | Transaction metadata |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |