KR102214556B1 - Memory devices and modules - Google Patents

Memory devices and modules Download PDF

Info

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
Application number
KR1020150109526A
Other languages
Korean (ko)
Other versions
KR20160022250A (en
Inventor
차오홍 후
홍종 정
강욱송
잔 핑
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/594,049 external-priority patent/US20160055058A1/en
Priority claimed from US14/678,968 external-priority patent/US10002043B2/en
Priority claimed from US14/678,977 external-priority patent/US10002044B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20160022250A publication Critical patent/KR20160022250A/en
Priority to KR1020210015698A priority Critical patent/KR102378466B1/en
Application granted granted Critical
Publication of KR102214556B1 publication Critical patent/KR102214556B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/073Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus 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

메모리 장치 및 모듈{MEMORY DEVICES AND MODULES}Memory devices and modules {MEMORY DEVICES AND MODULES}

본 발명은 메모리 시스템 아키텍처에 관한 것으로, 좀 더 상세하게는, 에러 정정 기능을 갖춘 메모리 시스템 아키텍처에 관한 것이다.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. System 100 may include memory 102 coupled to processor 104. Memory 102 may be configured to store data. When data is read from memory 102, memory 102 may be configured to correct errors (if possible in the data). For example, memory 102 can be configured to correct single-bit errors. Memory 102 may be configured to detect double-bit errors. Although illustratively described as correcting errors of a specific number of bits, memory 102 may be configured to correct or detect errors of various number of bits. In addition, even though one or more error correction techniques result in single-bit error correction or double-bit error correction detection, memory 102 may perform any error correction techniques capable of correcting at least one error. I can.

메모리(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), 불휘발성 메모리, 또는 이와 유사한 것들을 포함할 수 있다.Memory 102 may include a device configured to store data. In a particular example, memory 102 may be a dynamic random access memory (DRAM). The memory 102 may include a double data rate synchronous dynamic random access memory (DDR SDRAM) according to various standards such as DDR, DDR2, DDR3, DDR4, or the like. In another embodiment, the memory 102 may include static random access memory (SRAM), nonvolatile memory, or the like.

메모리(102)는 저장된 데이터로부터 읽혀진 데이터에 있는 에러를 정정하거나 또는 에러 정정을 시도하는 것에 응답하여 에러 정보를 생성하도록 구성될 수 있다. 예를 들어, 에러 정보는 정정된 에러, 정정되지 않은 에러, 에러 없음(absence of an error), 에러의 개수, 또는 이와 유사한 것에 관한 정보를 포함할 수 있다. 에러 정보는 실제의 에러, 에러의 주소, 에러가 발생한 횟수, 또는 메모리(102)에 특유한 정보를 포함할 수 있다. 특정한 예에서, 에러 정보는 메모리(102)게 싱글-비트 에러를 정정한 것을 나타내는 싱글-비트 에러에 관한 정보를 포함할 수 있다. 비록 특정한 에러 정보가 설명되었다 하더라도, 에러 정보는 에러에 관한 어떤 정보라도 포함할 수 있다.Memory 102 may be configured to correct errors in data read from stored data or to generate error information in response to attempting error correction. For example, the error information may include information about a corrected error, an uncorrected error, an absence of an error, the number of errors, or similar. The error information may include an actual error, an address of an error, a number of times an error has occurred, or information specific to the memory 102. In a particular example, the error information may include information about a single-bit error indicating that the memory 102 has corrected the single-bit error. Even if specific error information has been described, the error information may include any information about the error.

프로세서(104)는 메모리에 연결되고 명령들을 실행할 수 있도록 구성될 수 있다. 예를 들어, 프로세서(104)는 범용 프로세서, DSP (digital signal processor), GPU (graphics processing unit), ASIC (application specific integrated circuit), 프로그램 가능한 논리적 장치 (programmable logic device), 또는 이와 유사한 것일 수 있다.Processor 104 may be configured to be connected to memory and capable of executing instructions. For example, the processor 104 may be a general purpose processor, a digital signal processor (DSP), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a programmable logic device, or similar. .

프로세서(104)는 제 1 통신 경로(106) 및 제 2 통신 경로(108)를 통하여 메모리(102)에 연결될 수 있다. 프로세서(104)는 제 1 경로(106)를 통하여 메모리로부터 데이터를 수신하도록 구성될 수 있다. 예를 들어, 제 1 통신 경로(106)는 데이터 신호들, 스트로브 신호들, 클록 신호들, 인에이블 신호들, 또는 이와 유사한 것을 위한 신호 라인들을 갖춘 시스템 메모리 인터페이스일 수 있다. 즉, 통신 경로(106)는 프로세서(104)와 메인 시스템 메모리로서의 메모리(102) 사이의 인터페이스인 메인 메모리 채널의 일부일 수 있다. The processor 104 may be coupled to the memory 102 through a first communication path 106 and a second communication path 108. Processor 104 may be configured to receive data from memory via first path 106. For example, the first communication path 106 may be a system memory interface with signal lines for data signals, strobe signals, clock signals, enable signals, or the like. That is, the communication path 106 may be part of a main memory channel, which is an interface between the processor 104 and the memory 102 as a main system memory.

프로세서(104)는 다른 통신 경로인, 제 2 통신 경로(108)를 통하여 메모리(102)에 연결될 수 있다. 프로세서(104)는 제 2 통신 경로(108)를 통하여 메모리(102)로부터의 에러 정보를 수신하도록 구성될 수 있다. 따라서, 실시 예에서, 프로세서(104)는 제 1 통신 경로(106)보다는 차라리 제 2 통신 경로(108)를 통하여 에러 정보 및, 특히, 정정된 에러 정보를 수신하도록 구성될 수 있다. 정정된 에러 정보는 정정된 에러에 관한 정보이다. 앞서 설명된 바와 같이, 에러 정보는 에러와 관련된 다양한 타입의 정보를 포함할 수 있다. 따라서, 정정된 에러 정보는 정정된 에러와 관련된 유사한 타입의 정보를 포함할 수 있다.The processor 104 may be coupled to the memory 102 through another communication path, a second communication path 108. Processor 104 may be configured to receive error information from memory 102 via second communication path 108. Thus, in an embodiment, the processor 104 may be configured to receive error information and, in particular, corrected error information through the second communication path 108 rather than the first communication path 106. The corrected error information is information on the corrected error. As described above, the error information may include various types of information related to an error. Accordingly, the corrected error information may include similar types of information related to the corrected error.

소프트웨어(110)는 프로세서(104)에 연결되는 것으로 도시되었다. 그러나, 소프트웨어(110)는 프로세서(104)에서 실행될 수 있는 다양한 프로그램들, 드라이버들, 모듈들, 루틴(routine)들, 또는 이와 유사한 것들을 나타낼 수 있다. 예를 들어, 소프트웨어(110)는 드라이버들, 커널 모듈들, 대몬(daemon)들, 애플리케이션들, 또는 이와 유사한 것들을 포함할 수 있다. 어떤 실시 예에서, 소프트웨어(110)는 프로세서(104)를 인에이블 시켜 본 명세서에서 설명되는 특정한 기능들을 수행하도록 구성될 수 있다.The software 110 is shown to be connected to the processor 104. However, the software 110 may represent various programs, drivers, modules, routines, or the like that may be executed on the processor 104. For example, the software 110 may include drivers, kernel modules, daemons, applications, or the like. In some embodiments, software 110 may be configured to enable processor 104 to perform specific functions described herein.

비록 하나의 메모리(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 memory 102 has been used as an example, any number of memories 102 may be connected to the processor 104 through two communication paths similar to the communication paths 106 and 108. In an embodiment, each memory 102 is separated from the other memories 102 via a dedicated first communication path 106 and a dedicated second communication path 108 separate from the other memories 102. It may be connected to the processor 104 through. However, in other embodiments, the first communication path 106 may be shared by one or more memories 102 and the second communication path 108 may be shared by one or more memories 102. In addition, although a single first communication path 106 has been described, a plurality of first communication paths 106 may be provided between one or more memories 102. Similarly, although single second communication paths 108 have been described, a plurality of second communication paths 108 may be provided between one or more memories 102.

실시 예에서, 에러 정보는 아웃-오브-밴드(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 second communication path 108 may be such an out-of-band communication path. That is, the main communication between the processor 104 and the memory 102 may be performed through the first communication path 106. In contrast, error information can be exchanged through the out-of-band communication path 108.

도 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, system 200 is similar to memory 102, processor 104, communication paths 106 and 108, and software 110 of FIG. 1, memory 202, processor 204, Communication paths 206 and 208, and software 210 may be included. However, the second communication path 208 may include a first bus 212 connected to the controller 214 and a second bus 216 connected between the controller 214 and the processor 204. That is, the controller 214 connected to both the processor 204 and the memory 202 may be part of the second communication path 208.

컨트롤러(214)는 메모리(202) 및 프로세서(204)에 연결되도록 구성된 장치일 수 있다. 예를 들어, 컨트롤러(214)는 범용 프로세서, DSP (digital signal processor), GPU (graphics processing unit), ASIC (application specific integrated circuit), 프로그램 가능한 논리적 장치 (programmable logic device), 또는 이와 유사한 것일 수 있다.The controller 214 may be a device configured to be connected to the memory 202 and the processor 204. For example, the controller 214 may be a general purpose processor, a digital signal processor (DSP), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a programmable logic device, or similar. .

버스들(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, 도는 그 이상일 수 있다.Buses 212 and 216 may be various communication lines. For example, the buses 212 and 216 are SMBus (system management bus), I2C (inter-integrated circuit) bus, IPMI (intelligent platform management interface) compliant bus, Modbus bus, or similar Can be. In certain embodiments, at least a portion of the communication path 208 may operate at a generally slower transmission rate than the communication path 206. For example, the communication path 206 between the memory 202 and the processor 204 may be designed to be higher than a data-rate transfer of 10 GB/S. However, the communication path 208 may have a data transfer rate lower than 10 Mbit/s, 100 kbit/s, or the like. Thus, in some embodiments, the ratio of the data rate of the communication path 206 to the communication path 208 may be about 100, 1000, or more.

실시 예에서, 제 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 second communication path 208 may be a dedicated communication path. That is, the second communication path 208 can only be used for communication of information between the memory 202 and the processor 204. However, in other embodiments, the controller 214 may make other devices accessible. For example, the nonvolatile memory device 268 may be connected to the controller 214 by the bus 212. In another embodiment, other devices 266 may be connected to the controller 214. Thus, information other than the information from the memory 202 is transferred to and from the processor 204 and/or memory 202 via the bus 212 and/or 216. Can be. In particular, error information from memory 202 may be exchanged with processor 204 via second communication path 208, which is used for other purposes, including those with nonvolatile memory.

실시 예에서, 컨트롤러(214)는 불휘발성 메모리(254)를 포함할 수 있다. 불휘발성 메모리(254)는 메모리(202)로부터의 에러 정보를 저장하도록 구성될 수 있다. 따라서, 에러 정보는 전원이 차단되더라도 컨트롤러(214)에 보존될 수 있다. 프로세서(24)는 컨트롤러(214)로부터의 에러 정보를 요청하도록 구성될 수 있다. 따라서, 컨트롤러(214)는 불휘발성 메모리(254)에 저장된 에러 정보를 제공함으로써 그러한 요청에 응답하도록 구성될 수 있고, 메모리(202)에 액세스하여 프로세서(204) 또는 이와 유사한 것에 응답하여 에러 정보를 검색할 수 있다.In an embodiment, the controller 214 may include a nonvolatile memory 254. Nonvolatile memory 254 may be configured to store error information from memory 202. Therefore, error information can be stored in the controller 214 even when the power is cut off. Processor 24 may be configured to request error information from controller 214. Accordingly, the controller 214 may be configured to respond to such a request by providing error information stored in the nonvolatile memory 254, and access the memory 202 to receive the error information in response to the processor 204 or the like. You can search.

실시 예에서, 컨트롤러(214)는 에러 정보를 위해 메모리(202)를 폴링(polling) 하도록 구성될 수 있다. 다른 실시 예에서, 메모리(202)는 메모리 정보를 컨트롤러(214)로 푸시(push) 하도록 구성될 수 있다. 이와 상관없이, 불휘발성 메모리(254)에 저장된 에러 정보는 대체로 최신의 정보(up-to-date copy)일 수 있다. In an embodiment, the controller 214 may be configured to poll the memory 202 for error information. In another embodiment, the memory 202 may be configured to push memory information to the controller 214. Regardless of this, the error information stored in the nonvolatile memory 254 may be generally up-to-date copy.

도 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, system 300 is similar to memory 202, processor 204, communication paths 206 and 208, and software 210 of FIG. 2, memory 302, processor 304, Communication paths 306 and 308, and software 310 may be included. However, the controller 314 may be a BMC 314.

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 system 300. For example, BMC 314 may be connected to various sensors of system 300, including sensors of processor 304, memory 302, other devices 366, or the like. BMC 314 can be configured to collect and report on various system parameters, such as temperature, cooling status, power status, or the like. BMC 314 may be configured to manage the system and enable access to information according to standards. The management information may be made available to the processor 304 and thus may be made available to the software 310. Alternatively, the BMC 314 may generate information usable through another communication path, such as an out-of-band communication path. Here, the out-of-band communication path may be any communication path that does not include the processor 304.

도 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 system 400 includes memory 102, processor 404, communication paths 106 and 108 of FIG. 1, and a memory 402 similar to software 110, processor 404, and communication. Paths 406 and 408, and software 410. However, in this embodiment, the processor 404 may include a memory controller (MC) 450 and a machine check architecture (MCA) register 452.

메모리 컨트롤러(450)는 프로세서(404)에 집적될 수 있다. 메모리 컨트롤러(450)는 프로세서(404)와 메모리(402) 사이의 메인 인터페이스인 메인 메모리 채널의 일부일 수 있다. 메모리 컨트롤러(450)는 통신 경로(406)를 통하여 메모리(402)에 저장된 데이터로의 액세스를 제어하도록 구성될 수 있다. 어떤 실시 예에서, 메모리 컨트롤러(450)는 에러를 정정하도록 구성될 수 있으나, 에러 정정이 메모리(402)에 의해 수행될 때 그러한 에러를 정정할 기회를 갖지 않을 수 있다. 그러나, 본 실시 예에서, 메모리 컨트롤러(450)는 메모리(402)로부터 읽혀진 데이터에 있는 에러를 정정하도록 구성되지 않을 수 있다. 메모리 컨트롤러(450)는 메모리(402)로부터 읽혀진 데이터에 기초한 어떠한 에러도 보고하도록 구성되지 않을 수 있다.The memory controller 450 may be integrated in the processor 404. The memory controller 450 may be a part of a main memory channel that is a main interface between the processor 404 and the memory 402. Memory controller 450 may be configured to control access to data stored in memory 402 via communication path 406. In some embodiments, memory controller 450 may be configured to correct errors, but when error correction is performed by memory 402, it may not have an opportunity to correct such errors. However, in this embodiment, the memory controller 450 may not be configured to correct an error in data read from the memory 402. The memory controller 450 may not be configured to report any errors based on data read from the memory 402.

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 MCA register 452. However, since the memory controller 450 is not configured to correct errors in the data read from the memory 402, any potential error information based on the data read from the memory 402 is the MCA register 452. May not be reported on. Regardless, as described above, error information may be exchanged with the processor 404 via the communication path 408. Thus, even without going through the memory controller 450 and the MCA register 452, error information may be available to the software 410.

실시 예에서, 제 2 통신 경로(408)를 통한 에러 정보의 이용 가능성은 저비용의 시스템(400)을 가능하게 할 수 있다. 예를 들어, 어떤 메모리 정정이 없는 메모리 컨트롤러(450)를 갖춘 프로세서(404)가 사용될 수 있고, 에러 정보는 여전히 이용 가능할 수 있다. 특히, 메모리 에러 정정이 바람직함에도, 제 2 통신 경로(408)를 통하여 이용 가능한 에러 정보가 있기 때문에 에러 정정 기능이 없는 프로세서(404)가 사용될 수 있다. 따라서, 에러 정보를 사용하는 어떤 소프트웨어를 포함하는 소프트웨어(410)는, 마치 프로세서가 메모리 에러 정정을 할 수 있는 것처럼, 여전히 동작할 수 있다. 에러 정정이 없는 프로세서(404)는 더 낮은 전력, 더 낮은 비용의 프로세서일 수 있다. 따라서, 시스템(400)의 전체적인 전력 사용 및 비용은 감소할 수 있다.In an embodiment, the availability of error information over the second communication path 408 may enable a low cost system 400. For example, a processor 404 with a memory controller 450 without any memory correction may be used, and error information may still be available. In particular, although memory error correction is desirable, a processor 404 without an error correction function may be used because there is error information available through the second communication path 408. Thus, software 410, including any software that uses error information, can still operate, as if the processor was able to correct memory errors. The processor 404 without error correction may be a lower power, lower cost processor. Thus, the overall power usage and cost of the system 400 can be reduced.

비록 메모리 컨트롤러(450)가 프로세서(404)에 집적된 것으로 도시되었다 하더라도, 메모리 컨트롤러(450)는 프로세서(404)와 분리될 수 있다. 이와 상관없이, 통신 경로(408)는 메모리 컨트롤러(450) 및 에러 정정 회로를 갖는 프로세서(404)의 다른 부분들을 우회할 수 있다. 그러한 구성요소들의 우회는 제 2 통신 경로(408)를 통한 에러 정보의 교환이 메모리 컨트롤러(450), MCA 레지스터(452), 또는 이와 유사한 것에 대체로 독립되도록 할 수 있다. 즉, 비록 유사한 정보가 메모리 컨트롤러(450) 및/또는 MCA 레지스터(452)를 통하여 이용 가능하지 않다 하더라도, 에러 정보는 여전히 이용 가능할 수 있다.Although the memory controller 450 is shown to be integrated in the processor 404, the memory controller 450 may be separated from the processor 404. Regardless, communication path 408 may bypass memory controller 450 and other portions of processor 404 with error correction circuitry. Bypassing such components may allow the exchange of error information over the second communication path 408 to be largely independent of the memory controller 450, the MCA register 452, or the like. That is, although similar information is not available through the memory controller 450 and/or the MCA register 452, the error information may still be available.

도 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 system 500 includes a memory 502, a processor 504, similar to the memory 102, processor 104, communication paths 106 and 108, and software 110 of FIG. Communication paths 506 and 508, and software 510 may be included. However, in this embodiment, the communication path 506 may include data lines 532 and data strobe line(s) 533. Other lines have been provided as part of the communication path 506. However, the lines are not shown for clarity.

실시 예에서, 정정 불가능한 에러와 관련된 에러 정보 및 정정 가능한 에러와 관련된 에러 정보는 다른 경로를 통하여 교환될 수 있다. 앞서 설명된 바와 같이, 정정 가능한 에러 정보는 통신 경로(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 communication path 508. The non-correctable error information may include various other types of information based on the non-correctable error. Uncorrectable error information may be exchanged through the first communication path 506. For example, the memory 502 may be configured to correct an uncorrectable error by a signal transmitted (or not transmitted) through the data strobe line(s) 533. That is, during normal data transmission, a data strobe signal transmitted through the data strobe line(s) 533 may be toggled when data is transmitted. However, if the memory 502 detects an uncorrectable error, the memory 502 is a data strobe for transmission through the data strobe line(s) 533, different from the data strobe signal during normal data transmission. It can be configured to generate a signal. In particular, the memory 502 may be configured not to toggle the data strobe signal transmitted through the data strobe line(s) 533. When such a condition is detected, processor 504 may be configured to generate a hardware exception, which may be handled by software 510.

비록 통신 경로(506) 내의 신호 및/또는 라인들이 정정 불가능한 에러를 교환하기 위한 기술의 예로써 사용되었다 하더라도, 다른 신호들 및/또는 라인들이 프로세서와 정정 불가능한 에러를 교환하기 위해 사용될 수 있다. 어떻게 교환하는지와 상관없이, 시스템(500)을 정지시키거나 다른 액션을 취함으로써, 프로세서(504)는 그러한 정정 불가능한 에러의 교환에 응답하도록 구성될 수 있다.Although signals and/or lines in communication path 506 have been used as an example of a technique for exchanging an uncorrectable error, other signals and/or lines may be used to exchange an uncorrectable error with the processor. Regardless of how the exchange is made, by stopping the system 500 or taking other actions, the processor 504 may be configured to respond to such an exchange of non-correctable errors.

도 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 system 600 includes memory 102, processor 104, communication paths 106 and 108 of FIG. 1, and memory 602 similar to software 110, processor 604, and communication path. 606 and 608, and software 610. However, in this embodiment, a separate communication path 634 may be connected between the memory 602 and the processor 604.

도 5의 시스템(500)과 유사하게, 정정 불가능한 에러는 프로세서(604)와 교환될 수 있다. 본 실시 예에서, 메모리(602)는 통신 경로(634)를 통하여 정정 불가능한 에러 정보를 교환하도록 구성될 수 있다. 예를 들어, 제 3 통신 경로(634)는 제 1 통신 경로(606)와는 별도의 전용 라인일 수 있다. 따라서, 정정 불가능한 에러와 관련된 에러 정보는, 제 1 및 제 2 통신 경로(606 및 608)와는 다른 통신 경로를 통하여, 프로세서(604)에 의해 수신될 수 있다. Similar to system 500 of FIG. 5, non-correctable errors may be exchanged with processor 604. In this embodiment, the memory 602 may be configured to exchange uncorrectable error information through the communication path 634. For example, the third communication path 634 may be a dedicated line separate from the first communication path 606. Accordingly, error information related to an uncorrectable error may be received by the processor 604 through a communication path different from the first and second communication paths 606 and 608.

도 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 system 700 includes memory 102, processor 104, communication paths 106 and 108 of FIG. 1, and memory 702 similar to software 110, processor 704, and communication path. S 706 and 708, and software 710. However, in this embodiment, the software 710 may include a module 718.

모듈(718)은 프로세서를 통하여 에러 정보(722)를 액세스하도록 구성된 소프트웨어(710)의 일부를 나타낼 수 있다. 예를 들어, 모듈(718)은 커널 모듈, 드라이버, 확장, 또는 이와 유사한 것을 포함할 수 있다. 모듈(718)은 통신 경로(708)와 관련된 인터페이스를 위한 드라이버를 포함할 수 있다. 특정한 실시 예에서, 모듈(718)은 IPMI 버스, IPMI2 버스, 또는 이와 유사한 것과 관련된 드라이버를 포함할 수 있다. 다른 정보(720)는 소프트웨어(710)에 이용 가능할 수 있다. 에러 정보(722)는 에러 정보(722)와 관련된 소프트웨어(710)의 일부를 나타내도록 별도로 도시되었다.Module 718 may represent a portion of software 710 configured to access error information 722 through a processor. For example, module 718 may include kernel modules, drivers, extensions, or the like. Module 718 may include drivers for interfaces associated with communication path 708. In certain embodiments, module 718 may include a driver associated with an IPMI bus, an IPMI2 bus, or the like. Other information 720 may be available to software 710. Error information 722 is shown separately to represent a portion of software 710 associated with error information 722.

본 실시 예에서, 모듈(718)은 프로세서(704)가 메모리(702)로부터의 에러 정보를 요청하게 할 수 있다. 예를 들어, 메모리(702)는 에러 정보를 생성할 수 있다. 이후, 프로세서(704)는 통신 경로(708)를 통하여 에러 정보를 위한 요청을 전송할 수 있다. 메모리(702)는 통신 경로(708)를 통하여 에러 정보와 함께 요청에 응답하도록 구성될 수 있다.In this embodiment, the module 718 may cause the processor 704 to request error information from the memory 702. For example, the memory 702 may generate error information. Thereafter, the processor 704 may transmit a request for error information through the communication path 708. The memory 702 may be configured to respond to the request with error information over the communication path 708.

도 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, system 800 includes memory 702 of FIG. 7, processor 704, communication paths 706 and 708, and memory module 718 that operates in response to information 720 and 722. A memory 802 similar to software 710, a processor 804, communication paths 806 and 808, and software 810 including a memory module 818 that operates in response to information 820 and 822. can do. However, in this embodiment, the software 810 may include an error detection and correction (EDAC) module 824.

실시 예에서, EDAC 모듈(824)은 메모리, 캐시, 입출력 장치, 주변 장치, 버스들, 및/또는 시스템(800)의 다른 부분들로부터 제공되는 에러 정보를 관리할 수 있고, 애플리케이션 레이어와 같은 고기능 레이어에 그러한 정보를 노출시킬 수 있다. 특히, EDAC 모듈(824)은 모듈(818)로부터 에러 정보를 수신하도록 구성될 수 있다. EDAC 모듈(824)은 에러 정보와 다른 정보를 조합하여, 다른 모듈들, 애플리케이션들, 또는 이와 유사한 것들이 에러 정보에 액세스하도록 구성될 수 있다. In an embodiment, the EDAC module 824 can manage error information provided from memory, cache, input/output devices, peripheral devices, buses, and/or other parts of the system 800 You can expose such information to the layer. In particular, EDAC module 824 can be configured to receive error information from module 818. The EDAC module 824 may be configured to combine error information with other information so that other modules, applications, or the like can access the error information.

도 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, system 900 includes memory 702 of FIG. 7, processor 704, communication paths 706 and 708, and a module 718 that operates in response to information 720 and 722. Software 810, which includes a memory 902, processor 904, communication paths 906 and 908, and a module 818 that operates in response to information 920 and 922, similar to software 710 It may include. However, in this embodiment, the software 910 may include the second module 926. The second module 926 may be configured to receive the information 920. In particular, this other information 920 may include information that is not related to an error in the memory 902. At least a portion 921 of the other information 920 may be received by the first module 918. The first module 918 may combine some or all of the other information 920 from the second module 926 and the error information 922. The first module 918 may provide combined information in a single interface. For example, the first module 918 may be configured to provide combined information to an EDAC module, such as the EDAC module 824 of FIG. 8.

도 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 system 1000 includes modules 918 and 926 that operate in response to memory 902, processor 904, communication paths 906 and 908, and information 920 and 922 of FIG. ), similar to software 910, including memory 1002, processor 1004, communication paths 1006 and 1008, and modules 1018 and 1026 that operate in response to information 1020 and 1022. Included software 1010 may be included. However, in this embodiment, the first module 1018 may be an error correction (EC) module, and the second module 1026 may be an MCA module.

MCA 모듈(1026)은 도 4의 MCA 레지스터(452)와 같은 MCA 레지스터로의 액세스를 제어하도록 구성될 수 있다. 정보(1020)는 MCA 레지스터(452)로부터의 정보를 나타낼 수 있다. EC 모듈(1018)은 MCA 모듈(1026)에 액세스하여 정보(1020)를 복구하도록 구성될 수 있다. EC 모듈(1018)은 MCA 모듈(1026)로부터의 정보(1020)를 에러 정보(1022)와 조합하고, 조합된 정보를 단일 인터페이스에 제공할 수 있다. The MCA module 1026 may be configured to control access to an MCA register, such as the MCA register 452 of FIG. 4. The information 1020 may represent information from the MCA register 452. The EC module 1018 may be configured to access the MCA module 1026 and recover the information 1020. The EC module 1018 may combine the information 1020 from the MCA module 1026 with the error information 1022 and provide the combined information in a single interface.

특히, 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 EC module 1018 may provide an interface in a manner similar or the same as the MCA module 1026 allowing the processor 1004 to correct an error. For example, if the processor 1004 is configured to correct errors in data read from the memory 1002, the information may be available through the MCA module 1026. However, if the processor 1004 is not configured to correct an error in the data read from the memory 1002, the error information is transmitted by the communication path monitored by the MCA module 1026 due to the error being corrected in the memory 1002. If not, the MCA module 1026 will not be able to provide error information. Regardless of this, the EC module 1018 combines the information 1022 and the information 1020 obtained through the communication path 1008, and the MCA module 1026 provides the processor 1004 to the memory 1002. Information used to correct an error in data read from the MCA module 1026 or combined information similar or identical to the error information available to the MCA module 1026 may be provided. The software 1010 may use the same or similar interface regardless of whether the processor 1004 provides an error correction function. In other words, the processor 1004 having an error correction function is not essential for software that depends on sufficiently used error information. As a result, it is possible to reduce cost by the processor 1004 without an error correction function.

도 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, system 1100 is similar to software 710 that operates in response to memory 702, processor 704, communication paths 706 and 708, and information 720 and 722 of FIG. 7. , Memory 1102, processor 1104, communication paths 1106 and 1108, and software 1110 that operates in response to information 1120 and 1122. However, in this embodiment, the software 1110 may include a first module 1118, a second module 1128, and an interface module 1130.

제 1 모듈(1118)은 도 7의 모듈(718)과 유사하다. 그러나, 제 1 모듈(1118)은 인터페이스 모듈(1130)을 통하여 메모리(1102)로부터 에러 정보를 수신하도록 구성될 수 있다. 인터페이스 모듈(1130)은 통신 경로(1108)에 인터페이스를 제공하도록 구성될 수 있다. 예를 들어, 인터페이스 모듈(1130)은 IPMI 버스를 통하여 액세스를 허용하도록 구성된 모듈일 수 있다. The first module 1118 is similar to the module 718 of FIG. 7. However, the first module 1118 may be configured to receive error information from the memory 1102 through the interface module 1130. The interface module 1130 may be configured to provide an interface to the communication path 1108. For example, the interface module 1130 may be a module configured to allow access through an IPMI bus.

제 2 모듈(1128)과 같은 다른 모듈들도 인터페이스 모듈(1130)을 통하여 통신을 수행하도록 구성될 수 있다. 예를 들어, 제 2 모듈(1128)은 IPMI 버스에 접속되는 또 다른 장치들에 액세스하거나, 열 정보 또는 전원 정보와 같은 메모리(1102)의 다른 부분에 액세스하도록 구성될 수 있다. 에러 정보 및 다른 정보 모두는 인터페이스 모듈(1130)에 의해서 전달되는 정보(1122)의 일부분일 수 있다. 즉, 에러 정보는 전체 경로를 통하여 전용의 소프트웨어를 사용하여 전송될 수 있으나, 모듈들, 인터페이스들, 버스들, 또는 이와 유사한 것들과, 관련되거나 관련되지 않은 정보나 소스를 공유할 수 있다. Other modules such as the second module 1128 may also be configured to perform communication via the interface module 1130. For example, the second module 1128 may be configured to access other devices connected to the IPMI bus, or to access other portions of the memory 1102 such as thermal information or power information. Both error information and other information may be part of the information 1122 delivered by the interface module 1130. That is, error information may be transmitted using dedicated software through the entire path, but related or unrelated information or sources may be shared with modules, interfaces, buses, or the like.

도 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 system 1200 includes modules 1118 and 1128 operating in response to memory 1102, processor 1104, communication paths 1106 and 1108, and information 1120 and 1122 of FIG. And modules 1218 and 1228 that operate in response to software 1110 including memory 1202, processor 1204, communication paths 1206 and 1208, and information 1220 and 1222, including 1130. And software 1110 including 1230). However, in this embodiment, the first module 1218 is a corrected error (CE) module, and the second module 1228 is a serial presence detect (SPD)/register clock driver (registering clock). driver (RCD) module 1228.

특히, SPD/RCD 모듈(1228)은 직렬 프레즌스 검출 시스템 및/또는 레지스터 클록 드라이버 시스템에 관련된 정보에 액세스하도록 구성될 수 있다. SPD/RCD 모듈(1228)은 그러한 시스템의 하나 또는 둘 모두에 액세스하도록 구성될 수 있다. 정보는 제 2 통신 경로(1208)를 통하여 액세스 될 수 있다. 따라서, 본 실시 예에서 메모리(1202)로부터 제공되는 에러 정보는 SPD/RCD에 관련된 정보로서 통신 경로(1208)를 통하여 액세스 될 수 있다.In particular, the SPD/RCD module 1228 may be configured to access information related to the serial presence detection system and/or the register clock driver system. The SPD/RCD module 1228 may be configured to access one or both of such systems. The information can be accessed through the second communication path 1208. Accordingly, in the present embodiment, error information provided from the memory 1202 is information related to SPD/RCD and may be accessed through the communication path 1208.

도 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 system 1300 is similar to the error correction module 1018 and the MCA module 1026 operating in response to the memory 1002, the processor 1004, and information 1020 and 1022 of FIG. , A memory 1302, a processor 1304, and a kernel 1310 including an error correction module 1318 and a machine check architecture (MCA) module 1326 that operate in response to information 1320 and 1322. . However, in this embodiment, each of the memories 1302 may be provided as a dual line memory module (ECC DIMM) having an ECC function.

각각의 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 may be configured to store data and correct errors in the stored data. In this embodiment, the ECC DIMM 1302 may be connected to the memory controller 1350 of the processor 1304 through corresponding communication paths 1362. Communication path 1364 may include lines for carrying data signals and data strobe signals similar to communication path 506 of FIG. 5. ECC DIMM 1302 has a communication path 1308 including bus 312, BMC 314, and bus 1312, BMC 1314, and bus 1316 similar to bus 316 of FIG. Each may be connected to the processor 1304 through the.

실시 예에서, ECC DIMM(1302)은 ECC DIMM(1302)로부터 읽혀진 데이터에 있는 하나 또는 그 이상의 에러를 정정하도록 구성될 수 있다. 에러 정정 기술은 싱글 에러 정정-더블 에러 검출(single error correction - double error detection; SEC-DEC) 기술, 싱글-칩 칩킬(single-chip chipkill) 기술, 더블-칩 칩킬(double-chip chipkill) 기술 등을 포함할 수 있다. 어떠한 에러 정정 기술이라도 사용될 수 있다. In an embodiment, the ECC DIMM 1302 may be configured to correct one or more errors in data read from the ECC DIMM 1302. Error correction technologies include single error correction-double error detection (SEC-DEC) technology, single-chip chipkill technology, and double-chip chipkill technology. It may include. Any error correction technique can be used.

본 실시 예에서, 메모리 컨트롤러(1350)는 에러 정정을 수행하도록 구성되지 않거나, 반대로 ECC DIMM(1302)으로부터 에러 정보를 수신하도록 구성되지 않을 수 있다. ECC DIMM(1302)을 경유하는 데이터는 이미 에러가 정정되었기 때문에, 메모리 컨트롤러(1350)는 정정 가능한 에러를 나타내는 어떠한 정보도 받지 않을 수 있다. 그러나, 에러 정보, 특히, 정정된 에러 정보는 버스(1312 및 1316) 그리고 BMC(1314)와 같은 통신 경로(1308)를 통하여 프로세서(1304)에 전달될 수 있다.In the present embodiment, the memory controller 1350 may not be configured to perform error correction or, conversely, may not be configured to receive error information from the ECC DIMM 1302. Since the error has already been corrected in the data passing through the ECC DIMM 1302, the memory controller 1350 may not receive any information indicating a correctable error. However, error information, particularly corrected error information, may be communicated to the processor 1304 through a communication path 1308 such as the buses 1312 and 1316 and BMC 1314.

실시 예에서, 프로세서(1304)는 에러 정정을 수행할 수 없는 프로세서일 수 있으나, 버스(1316)로 연결될 수 있는 인터페이스를 갖는 프로세서일 수 있다. 그러나, 일단 프로세서(1304)가 커널(1310), 특히, 에러 정정 모듈(1318)에 의해서 설정되면, 제반 시스템(1300)은 에러 정정 기능이 있는 프로세서를 갖는 시스템과 유사하게 에러 정정을 수행하도록 구성될 수 있다. In an embodiment, the processor 1304 may be a processor that cannot perform error correction, but may be a processor having an interface that can be connected to the bus 1316. However, once the processor 1304 is set by the kernel 1310, in particular, the error correction module 1318, the overall system 1300 is configured to perform error correction similar to a system having a processor having an error correction function. Can be.

실시 예에서, 에러 정정 모듈(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 error correction module 1318 may generate a virtual memory controller having an error correction interface. For example, as described above, the error correction module 1318 may be configured to receive information from the MCA module 1326. In this case, the information may be information provided by an actual memory controller having an error correction interface without some or all error information. The error correction module 1318 may supplement error information for generating a complete set of information expected from the ECC interface of the memory controller. As a result, the EDAC module 1324, the memory ECC daemon 1358, other applications 1360, and the like can be used without modification of the processor and those used with error correction. For example, the EDAC module 1324 may be configured to poll the EC module 1318 for memory ECC information. Consequently, the EC module 1318 may return the error information received through the second communication path 1308. The memory ECC daemon 1358 in communication with the EDAC module 1324 may poll the EDAC module 1324 for error information. After that, the memory ECC daemon 1358 may take an action corresponding to the error information at the application level. Such actions may include page expiration, other error management actions to operate system 1300, actions to maintain a reliability level, recommendation for discard, and the like.

상술한 바와 같이, 정정 불가능한 에러는 검출될 수 있다. 정정 불가능한 에러 정보는 메모리 컨트롤러(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 error correction module 1318 through the memory controller 1350, the MCA register 1352, and the MCA module 1326. For example, an uncorrectable error may be transmitted as a non-maskable interrupt or an exception through the MCA module 1326. In a specific embodiment, regardless of how it is delivered to the memory controller 1350, the memory controller 1350 may generate a hardware exception in response to an uncorrectable error. The MCA module 1326 may intercept the above-described exception information and transmit it to the error correction module 1318. Then, the error correction module 1318 may transmit exception information to the EDAC module 1324. In addition to or instead of transmitting the non-correctable error information as described above, the non-correctable error information may be transmitted through the communication path 1308.

실시 예에서, 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 ECC DIMM 1302 may be configured to transmit the corrected data to the processor 1304. However, data errors may occur between the ECC DIMM 1302 and the memory controller 1350. Accordingly, some form of error correction may be performed between the ECC DIMM 1302 and the processor 1304 or the memory controller 1350. For example, data transferred from the ECC DIMM 1302 may be encoded with an error correction code intended to detect errors occurring on the communication link 1362. By such error correction, the entire path transmitted from the storage medium of the ECC DIMM 1302 to the processor 1304 may be protected by error correction.

도 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 system 1400 may include similar configurations to the system of FIG. 13. However, in this embodiment, the ECC DIMM 1402 includes a buffer 1462. The buffer 1462 may be configured to correct an error included in data read from the ECC DIMM 1402. In particular, uncorrected data may be read from internal memory devices such as DRAM devices (not shown) of the ECC DIMM 1402. The buffer 1462 may be configured to correct an error of uncorrected data and generate corrected error information, similar to other memories described herein. The above-described error information is transmitted through the communication path 1408, and may be used by the methods described above. That is, the error information can be used by various methods described above regardless of how the error information is generated.

도 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 system 1400 may be similar to those of FIG. 14A. However, in this embodiment, the EDAC module 1424 may be configured to exchange information with the MCA module 1426. For example, the EDAC module 1424 may be configured to poll the MCA module 1426 for hardware-related information, uncorrectable error information, or information available through the MCA module 1426. The EDAC module 1424 may be configured to combine information provided from the MCA module 1426 with information delivered from the error correction module 1418.

도 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 system 1400 may be similar to those of FIG. 14A. However, in this embodiment, the MCELOG module 1425 may be configured to receive information from the error correction module 1418. The MCELOG module 1425 may be configured to record machine check events (MCEs) related to various system errors such as memory errors, data transmission errors, and the like. The MCELOG module 1425 may be configured to generate an interrupt to the memory ECC daemon 1458 and transmit error information to the memory ECC daemon 1458.

도 14d를 참조하면, 시스템(1400)의 구성들은 도 14c의 그것들과 유사할 수 있다. 그러나, 본 실시 예에서, 도 14a와 도 14b의 사이의 차이점과 유사하게, MCELOG 모듈(1425)은 도 14b의 EDAC 모듈(1424)과 유사하게 MCA 모듈(1426)로부터 제공되는 정보를 수신하도록 구성될 수 있다. Referring to FIG. 14D, configurations of the system 1400 may be similar to those of FIG. 14C. However, in this embodiment, similar to the difference between FIGS. 14A and 14B, the MCELOG module 1425 is configured to receive information provided from the MCA module 1426 similar to the EDAC module 1424 of FIG. 14B. Can be.

비록, 도 14a 내지 도 14d에서 버퍼(1462)를 포함하는 ECC DIMM(1402)에 대해서 설명되었지만, 다른 실시 예에서, ECC DIMM(1302)를 포함하는 도 13의 시스템(1300)의 다양한 구성들이 적용될 수 있다. Although, in FIGS. 14A to 14D, the ECC DIMM 1402 including the buffer 1462 was described, in another embodiment, various configurations of the system 1300 of FIG. 13 including the ECC DIMM 1302 may be applied. I can.

도 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 memory module 1500 may include one or more memory devices 1501, a data interface 1536, an error interface 1538, and a controller 1541. The data interface 1536 may be configured to transmit and receive data 1540 from data stored in the memory devices 1501. The memory module 1500 may be configured to generate error information for data read from one or more memory devices 1501. The error interface 1538 may be configured to transmit error information generated in response to correcting an error in data read from one or more memory devices 1501.

데이터 인터페이스(1536)는 메모리 장치들(1501)에 저장된 데이터가 전송되는 인터페이스이고, 메모리 장치들(1501)에 저장될 데이터(1540)가 수신되는 인터페이스이다. 예를 들어, 데이터 인터페이스(1536)는 데이터 라인, 스트로브 라인, 어드레스 라인, 인에이블 라인, 클록 라인 등과 같은 라인들을 위한 버퍼, 드라이버 회로, 종단 회로(termination), 또는 다른 회로들을 포함할 수 있다.The data interface 1536 is an interface through which data stored in the memory devices 1501 is transmitted, and an interface through which data 1540 to be stored in the memory devices 1501 is received. For example, the data interface 1536 may include buffers, driver circuits, termination circuits, or other circuits for lines such as data lines, strobe lines, address lines, enable lines, clock lines, and the like.

에러 인터페이스(1538)는 SMBus, IPMI, 또는 본 명세서에서 설명된 다른 버스들과 같은 특정 버스를 통하여 통신하도록 구성된 인터페이스일 수 있다. 실시 예에서, 에러 인터페이스(1538)는 메모리 모듈(1500)이 에러 정보와 더불어 다른 정보를 교환하기 위한 기존의 인터페이스일 수 있다. 따라서, 정보(1542)는 에러 정보뿐만 아니라 다른 정보도 포함할 수 있다. The error interface 1538 may be an interface configured to communicate over a specific bus, such as SMBus, IPMI, or other buses described herein. In an embodiment, the error interface 1538 may be an existing interface through which the memory module 1500 exchanges error information and other information. Accordingly, the information 1542 may include not only error information but also other information.

컨트롤러(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 memory devices 1501. For example, the controller 214 may include a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a programmable logic device, and the like. As will be described later in detail, the controller 1541 may include a buffer such as an RCD or the like.

컨트롤러(1541)는 메모리 장치들(1501), 데이터 인터페이스(1536), 그리고 에러 인터페이스(1538)와 연결될 수 있다. 컨트롤러(1541)는 에러 정보를 얻도록 구성될 수 있다. 실시 예에서, 컨트롤러(1541)는 메모리 장치들(1501)로부터 에러 정보를 획득할 수 있지만, 다른 실시 예에서는, 컨트롤러(1541)는 메모리 장치들(1501)로부터의 데이터에 있는 에러를 정정하고 에러 정보를 생성하도록 구성될 수 있다. The controller 1541 may be connected to the memory devices 1501, the data interface 1536, and the error interface 1538. The controller 1541 may be configured to obtain error information. In an embodiment, the controller 1541 may obtain error information from the memory devices 1501, but in another embodiment, the controller 1541 corrects an error in data from the memory devices 1501 and It can be configured to generate information.

실시 예에서, 컨트롤러(1541)는 데이터 인터페이스(1536)를 통하여 정정 불가능한 에러를 교환하도록 구성될 수 있다. 예를 들어, 앞서 설명된 바와 같이, 데이터 스트로브 신호는 정정 불가능한 에러를 나타내도록 사용될 수 있다. 컨트롤러(1541)는 정정 불가능한 에러를 검출하는 것에 응답하여 데이터 인터페이스(1536)를 통하여 전송되는 스트로브 신호를 조정하도록 구성될 수 있다. In an embodiment, the controller 1541 may be configured to exchange an uncorrectable error through the data interface 1536. For example, as described above, a data strobe signal can be used to indicate an uncorrectable error. The controller 1541 may be configured to adjust the strobe signal transmitted through the data interface 1536 in response to detecting an uncorrectable error.

도 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 memory module 1600 is similar to one or more of the memory devices 1501, the data interface 1536, the error interface 1538, and the controller 1541 described in FIG. The above memory devices 1601, a data interface 1636, an error interface 1638, and a controller 1641 may be included. However, the error interface 1538 of FIG. 15 may be the SPD/RCD interface 1638 here.

SPD/RCD 인터페이스(1638)는 직렬 프레즌스 검출(SPD) 시스템이나 RCD 시스템(미도시)으로의 액세스를 제공하기 위해 사용될 수 있다. 특정 실시 예에서, 에러 정보는 상술한 SPD 또는 RCD 시스템 내의 특정 레지스터나 메모리 영역을 통하여 이용 가능할 수 있다. 따라서, 에러 정보는 SPD 또는 RCD 정보가 획득될 수 있는 동일한 인터페이스를 통하여 획득될 수 있다.The SPD/RCD interface 1638 can be used to provide access to a serial presence detection (SPD) system or an RCD system (not shown). In a specific embodiment, error information may be available through a specific register or memory area in the above-described SPD or RCD system. Accordingly, error information can be obtained through the same interface from which SPD or RCD information can be obtained.

에러 정보가 기존의 하드웨어 인터페이스를 통하여 이용 가능하기 때문에, 추가적인 하드웨어는 불필요하다. 예를 들어, 에러 정보를 액세스하기 위한 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/RCD interface 1638 for accessing error information is distinguished from other commands in address, register address, or other fields not used by the SPD/RCD system. In an embodiment, a new register of the SPD/RCD system may be defined to post error information. In other embodiments, existing registers may be reused to exchange error information.

도 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 memory module 1700 is one or more similar to the one or more memory devices 1501, the data interface 1536, the error interface 1538, and the controller 1541 described in FIG. The above memory devices 1701, a data interface 1736, an error interface 1738, and a controller 1741 may be included. However, the memory module 1700 may also include an uncorrectable error interface 1744.

정정 불가능한 에러(uncorrectable error; UE) 인터페이스(1744)는 메모리 모듈(1700)이 정정 불가능한 에러를 교환하도록 구성된 별도의 인터페이스이다. 예를 들어, 정정 불가능한 에러 인터페이스(1744)는 전용 라인이거나, 전용의 버스 등일 수 있다. The uncorrectable error (UE) interface 1744 is a separate interface configured to allow the memory module 1700 to exchange uncorrectable errors. For example, the non-correctable error interface 1744 may be a dedicated line or a dedicated bus.

도 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 memory device 1800 may include a data interface 1836 and an error interface 1838. The data interface 1836 and error interface 1838 may be similar to the data interface 1536 and error interface 1538 of FIG. 15. However, in the present embodiment, the data interface 1836 and the error interface 1838 may be interfaces to the memory device 1800 rather than a memory module such as the memory module of FIG. 15.

메모리 장치(1800)는 컨트롤러(1841)를 포함할 수 있다. 컨트롤러(1814)는 메모리(1801) 및 인터페이스들(1836 및 1838)에 연결되도록 구성된 어떤 장치일 수 있다. 예를 들어, 컨트롤러(1841)는 범용 프로세서, DSP (digital signal processor), ASIC (application specific integrated circuit), 프로그램 가능한 논리 장치(programmable logic device) 등을 포함할 수 있다.The memory device 1800 may include a controller 1841. The controller 1814 may be any device configured to be connected to the memory 1801 and interfaces 1836 and 1838. For example, the controller 1841 may include a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a programmable logic device, and the like.

메모리(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 data interface 1836. The controller 1841 may be configured to receive data to be stored in the memory 1801 through the data interface 1836. Such transmission was marked as data 1840.

컨트롤러(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 error interface 1838. The error information may be similar to the type of error information described above. The controller 1841 may be configured to receive a command, command, or other information via the error interface 1838. The transmission of such commands, orders, or other information is indicated by information 1842.

본 실시 예에서, 데이터(1840) 및 정보(1842) 모두 컨트롤러(1841)를 경유하는 것으로 도시되었다. 그러나, 다른 실시 예에서, 메모리 장치(1800)의 구성 요소들은 컨트롤러(1841)에 의해 제어되어, 데이터(1840) 및 정보(1842)는 컨트롤러(1841)를 경유하지 않을 수 있다. 예를 들어, 어떤 실시 예에서, 데이터 및/또는 에러 정보는 컨트롤러(1841)의 제어 하에 데이터 인터페이스(1836) 및 에러 인터페이스(1838)로 제공될 수 있으나, 컨트롤러(1841)를 경유할 수 있다.In this embodiment, both data 1840 and information 1842 are shown as being via controller 1841. However, in another embodiment, components of the memory device 1800 are controlled by the controller 1841, so that data 1840 and information 1842 may not pass through the controller 1841. For example, in some embodiments, data and/or error information may be provided to the data interface 1836 and the error interface 1838 under the control of the controller 1841, but may be via the controller 1841.

도 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 memory device 1900 may include a memory cell array 1901. The memory cell array 1901 may include memory cells in which data is stored. In particular, the memory cell array 1901 may be configured to store encoded data. Sense amplifier 1902 and write circuit 1904 are present in memory device 1900 that allow data to be written to and read from memory cell array 1901 at an address specified by address 1906. This is an example of a circuit. However, in other embodiments, other read and write circuits may be associated with the memory cell array 1901. In addition, although sense amplifier 1902 and write circuit 1904 are shown as part of memory cell array 1901, such circuits can be separated from memory cell array 1901. In addition, although a single memory cell array 1901 is shown, a plurality of memory cell arrays 1901 may be provided.

메모리 셀 어레이(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 write data 1910. The ECC engine 1908 is configured to encode the write data 1910, so that the encoded data can be written to the memory cell array 1901 by the write circuit 1904 at the location specified by the address 1906. Similarly, the ECC engine 1908 may be configured to receive encoded data from the memory cell array 1901 and decode the data into decoded output data 1924. Such encoding and decoding can be performed according to various ECC algorithms such as those described herein. For example, SEC-DED (Single Error Correct-Double Error Detect) may be used as an example of the ECC algorithm, but other algorithms may also be used.

비록 어드레스(1906) 및 쓰기 데이터(1910)와 같은 신호들이 메모리 셀 어레이(1901)에 데이터를 기록하는데 사용되는 신호들로써 도시되었으나, 메모리 장치(1900)는 메모리 셀 어레이(1901)에 데이터를 기록하는데 관련된 다른 신호들을 수신하고 처리하도록 구성될 수 있다. 그러나, 그러한 구성 요소들은 명료함을 위해 생략되었다. 게다가, 어드레스(1906)를 변형하거나, 액세스의 방향을 바꿀 수 있는 다른 구성요소들도 명료함을 위해 생략되었다.Although signals such as an address 1906 and write data 1910 are shown as signals used to write data to the memory cell array 1901, the memory device 1900 writes data to the memory cell array 1901. It can be configured to receive and process other related signals. However, such components have been omitted for clarity. In addition, other components that can modify the address 1906 or change the direction of access have also been omitted for clarity.

특정한 실시 예에서, 쓰기 동작 동안, 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 memory device 1900 as write data 1910. The ECC engine 1908 calculates the ECC bit value(s) for the write data 1910 into the memory cell array 1901 using the write circuit 1904, as with the original data values as encoded data. It may be configured to transmit ECC bit(s). Thereafter, the memory cell array 1901 may be configured to store the encoded data.

읽기 동작 동안, 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 sense amplifier 1902 and other circuits may be used to read previously stored ECC bit(s) and original data values as encoded data. Thereafter, the ECC engine 1908 may decode the encoded data, generate output data 1924, and generate error information.

출력 데이터(1924)는 메모리 장치(1900)로부터 출력될 수 있다. 어떤 실시 예에서, 다른 구성 요소들은 ECC 엔진과 메모리 장치(1900)의 출력 사이에 배치될 수 있다. 어떤 실시 예에서, 버퍼(1932)는 출력 데이터(1924)를 버퍼링하도록 구성될 수 있다. 어떤 실시 예에서, RCD 모듈(1934)은 출력 데이터(1924)를 수신하고, 버퍼링하고, 출력하도록 구성될 수 있다. 여기서, 그러한 옵션적인 구성 요소들은 점선으로 도시되었다.The output data 1924 may be output from the memory device 1900. In some embodiments, other components may be disposed between the ECC engine and the output of the memory device 1900. In some embodiments, buffer 1932 may be configured to buffer output data 1924. In some embodiments, RCD module 1934 may be configured to receive, buffer, and output output data 1924. Here, such optional components are shown in dotted lines.

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 error information 1914 from the ECC engine. The error information 1914 may include information indicating whether there is no error, whether it is a correctable error, whether it is an error that cannot be corrected, and the number of errors. The ECC controller 1918 may be configured to receive an address 1906 associated with the read. Accordingly, the ECC controller 1918 can combine the error information 1914 and the address 1906 from the ECC engine 1908 into new error information. As will be described later in detail, the ECC controller 1918 may be configured to generate write data 1910 that are encoded by the ECC engine 1908 and written to the memory cell array 1901.

실시 예에서, 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 communication 1926 with external devices. For example, communication 1926 may include transmission of error information. When a correctable error or an uncorrectable error occurs, the error information may be transmitted by the ECC controller 1918. Such transmission may be spontaneous or in response to a request from an external device, such as according to a regular schedule, occurrence of an error, during a refresh cycle, and the like.

실시 예에서, 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 memory device 1900 may include a command buffer 1928. The command buffer 1928 may be configured to buffer commands received through the bus for the ECC controller 1918.

실시 예에서, 메모리 컨트롤러(1900)는 SPD 모듈(1930)을 포함할 수 있다. ECC 컨트롤러(1918)는 SPD 모듈(1930)과 통신하도록 구성될 수 있다. SPD 모듈(1930)은 SPD 인터페이스와 관련된 동작들을 수행하도록 구성될 수 있다. 게다가, SPD 모듈(1930)은 ECC 컨트롤러(1918)를 통하여 에러 정보로의 액세스가 이용 가능하도록 구성될 수 있다. 예를 들어, SPD 모듈(1930)을 통하여 수신된 특정한 커맨드들은 적절한 커맨드들 및/또는 신호들로 변환되어 ECC 컨트롤러(1918)에 저장된 에러 정보를 액세스할 수 있다. In an embodiment, the memory controller 1900 may include an SPD module 1930. The ECC controller 1918 may be configured to communicate with the SPD module 1930. The SPD module 1930 may be configured to perform operations related to an SPD interface. In addition, the SPD module 1930 may be configured to enable access to error information through the ECC controller 1918. For example, certain commands received through the SPD module 1930 may be converted into appropriate commands and/or signals to access error information stored in the ECC controller 1918.

DQS 변경기(1920)는 ECC 엔진(1908)으로부터의 에러 정보(1916)에 응답하여 메모리 셀 어레이(1901)로부터의 데이터 스트로브 신호를 변경할 수 있고, 변경된 데이터 스트로브 신호(1922)를 출력할 수 있다. 특정한 실시 예에서, 에러 정보(1916)는 정정 불가능한 에러가 발생하였는지 여부를 나타내는 신호일 수 있다. DQS 변경기(1920)는 데이터 스트로브 신호(1912)를 변경하도록 구성되어, 만일 에러 정보(1916)가 정정 불가능한 에러가 발생하였다는 것을 나타내면 출력 데이터 스트로브 신호(1922)는 토글링 하지 않을 수 있다. 그러나, 만일 정정 불가능한 에러 신호가 발생하지 않았다면 DQS 변경기(1920)는 데이터 스트로브 신호들(1912)을 통과시킬 수 있다. 예를 들어, DQS 변경기(1920)는 OR 게이트, AND 게이트, NAND 게이트, 트랜스미션 게이트 등과 같은 논리 회로를 포함할 수 있다.The DQS modifier 1920 may change the data strobe signal from the memory cell array 1901 in response to the error information 1916 from the ECC engine 1908, and may output the changed data strobe signal 1922. . In a specific embodiment, the error information 1916 may be a signal indicating whether an uncorrectable error has occurred. The DQS modifier 1920 is configured to change the data strobe signal 1912, so if the error information 1916 indicates that an uncorrectable error has occurred, the output data strobe signal 1922 may not be toggled. However, if an uncorrectable error signal has not occurred, the DQS modifier 1920 may pass the data strobe signals 1912. For example, the DQS modifier 1920 may include a logic circuit such as an OR gate, an AND gate, a NAND gate, and a transmission gate.

실시 예에서, DQS 변경기(1920)는 시간에 민감한(time-sensitive) 정보를 교환하는데 사용될 수 있다. 예를 들어, 정정 불가능한 에러가 발생할 때, 에러는 현재의 읽기 동작과 관련될 수 있다. SMBus에 의한 것과 같이, 정정 불가능한 에러와 관련된 정보가 ECC 컨트롤러(1918)에 의해 외부 장치들과 교환되는 동안, 통신 경로는 데이터(1924)를 위한 통신 경로보다 더 느린 속도로 동작할 수 있다. 따라서, 정정 불가능한 에러의 발생의 통신은 대응하는 읽기 동작에 비해 지연될 수 있다. 반대로, DQS 변경기(1920)에 의해 정정 불가능한 에러가 발생하였다는 것을 통신하는 것은 대응하는 읽기 동작과 대체로 동시에 발생할 수 있다. 즉, 변경된 출력 데이터 스트로브 신호(1922)는 정정 불가능한 에러를 갖는 데이터(1924)의 전송과 관련된 데이터 스트로브 신호이다.In an embodiment, the DQS modifier 1920 may be used to exchange time-sensitive information. For example, when an uncorrectable error occurs, the error may be related to the current read operation. While information related to an uncorrectable error, such as by SMBus, is exchanged with external devices by the ECC controller 1918, the communication path may operate at a slower rate than the communication path for data 1924. Accordingly, communication of occurrence of an uncorrectable error may be delayed compared to a corresponding read operation. Conversely, communication that an uncorrectable error has occurred by the DQS modifier 1920 may occur substantially simultaneously with a corresponding read operation. That is, the changed output data strobe signal 1922 is a data strobe signal related to transmission of data 1924 having an uncorrectable error.

비록 메모리 장치(1900)의 특정한 구성 요소들이 예로써 설명되었다 하더라도, 다른 구성 요소들이 제공될 수 있다. 예를 들어, 메모리 장치(1900)는 다양한 스트로브 신호들, 선택 신호들, 제어 신호들, 인에이블 신호들 등을 수신하거나 전송하도록 구성될 수 있다.Although specific components of the memory device 1900 have been described as examples, other components may be provided. For example, the memory device 1900 may be configured to receive or transmit various strobe signals, selection signals, control signals, enable signals, and the like.

도 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 memory module 2000 may include a data interface 2036 and an error interface 2038, similar to the data interface 1536 and error interface 1538 of FIG. 15. However, in this embodiment, the memory module 2000 may include a plurality of ECC memory devices 2001-1 to 2001 -N. The ECC memory devices 2001 may be any of the memory devices described herein, such as the memory devices 1800 and 1900 of FIGS. 18 and 19 described above.

메모리 장치들(2001)의 예로써 메모리 장치(1800)를 사용하여, 그리고 도 18 및 도 20을 참조하여, 메모리 장치들(1800)의 각각은 데이터 인터페이스(2036) 및 에러 인터페이스(2038)에 연결될 수 있다. 데이터 인터페이스(2036)와 관련하여, 메모리 장치들(1800)의 데이터 인터페이스들(1836)은 적어도 데이터 인터페이스(2036)의 일부를 형성할 수 있다. 예를 들어, 각각의 데이터 인터페이스(1836)의 데이터 입출력들, 스트로브 신호들 등은 데이터 인터페이스(2036)에 수집될 수 있다. 데이터 인터페이스(2036)의 어드레스 입력 및/또는 다른 제어 신호들은 메모리 장치들(1800)의 데이터 인터페이스들(1836)에 분배될 수 있다. 따라서, 데이터는 데이터 인터페이스(2036)를 통하여 메모리 장치들(1800)(결과적으로, 메모리 모듈(2000))로 전송되거나 메모리 장치들(1800) (결과적으로, 메모리 모듈(2000))로부터 수신될 수 있다. Using the memory device 1800 as an example of the memory devices 2001, and referring to FIGS. 18 and 20, each of the memory devices 1800 may be connected to a data interface 2036 and an error interface 2038. I can. With respect to the data interface 2036, the data interfaces 1836 of the memory devices 1800 may form at least a part of the data interface 2036. For example, data input/outputs, strobe signals, and the like of each data interface 1836 may be collected in the data interface 2036. Address input and/or other control signals of the data interface 2036 may be distributed to the data interfaces 1836 of the memory devices 1800. Thus, data can be transmitted to or received from memory devices 1800 (and consequently, memory module 2000) via data interface 2036 to memory devices 1800 (consequently, memory module 2000). have.

유사하게, 에러 인터페이스들(1838)은 에러 인터페이스(2038)에 연결될 수 있다. 에러 인터페이스들(1838)은 다양한 방법으로 연결될 수 있다. 예를 들어, 에러 인터페이스들(1838) 및 에러 인터페이스(2038)는 메모리 모듈(2000) 내의 공용 버스로 연결될 수 있다. 다른 예에서, 에러 인터페이스(2038)는 메모리 장치들(2001)의 각각의 에러 인터페이스(1838)에 직접 연결될 수 있다. 에러 인터페이스(2038)는 메모리 장치들(1800)로부터 에러 정보를 수집하도록 구성될 수 있다. 따라서, 에러 정보는 에러 인터페이스(2038)를 통하여 메모리 장치들(1800) (결과적으로, 메모리 모듈(2000))로부터 전송되도록 구성될 수 있다.Similarly, error interfaces 1838 may be connected to error interface 2038. The error interfaces 1838 can be connected in a variety of ways. For example, the error interfaces 1838 and the error interface 2038 may be connected to a common bus in the memory module 2000. In another example, the error interface 2038 may be directly connected to each error interface 1838 of the memory devices 2001. The error interface 2038 may be configured to collect error information from the memory devices 1800. Accordingly, the error information may be configured to be transmitted from the memory devices 1800 (as a result, the memory module 2000) through the error interface 2038.

비록 도 18의 메모리 장치(1800)가 메모리 모듈(2000)의 메모리 장치(2001)의 예로써 사용되었다 하더라도, 다른 실시 예에서, 다른 메모리 장치들이 사용될 수 있다. 예를 들어, 도 19의 메모리 장치(1900)는 메모리 장치들(2001)로서 사용될 수 있다. 도 19를 참조하면, 각각의 메모리 장치(1900)의 어드레스(1906), 쓰기 데이터(1910), 출력 데이터(1924), 데이터 스트로브 신호(1922) 등은 데이터 인터페이스(2036)에 연결될 수 있다. 유사하게, 각각의 메모리 장치(1900)의 ECC 컨트롤러(1918)는 에러 인터페이스(2038)에 연결될 수 있다.Although the memory device 1800 of FIG. 18 is used as an example of the memory device 2001 of the memory module 2000, other memory devices may be used in other embodiments. For example, the memory device 1900 of FIG. 19 may be used as the memory devices 2001. Referring to FIG. 19, an address 1906, write data 1910, output data 1924, data strobe signal 1922, and the like of each memory device 1900 may be connected to a data interface 2036. Similarly, the ECC controller 1918 of each memory device 1900 may be connected to the error interface 2038.

도 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 memory module 2100 is one or more memory devices similar to the one or more memory devices 1501, the data interface 1536, and the controller 1541 of FIG. 15. Devices 2101, a data interface 2136, and a controller 2141 may be included. The module error interface 2138 may be similar to the error interface 1538, and may be configured to exchange information 2142 similar to the information 1542, but the module error interface 2138 can be used with it and the memory devices 2101. The term "module" has been used to distinguish it from the device error interfaces 2139 of ). As will be described later in detail, the module error interface 2138 can be used for communication other than exchanging error information.

여기서, 메모리 장치들(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 data interface 1836 and error interface 1838 of FIG. 18. The data interfaces 2137 of the memory devices 2101 may be connected to the data interface 2136 of the module, but such connections are not shown for clarity. Further, in some embodiments, the connection of the data interface 2136 and the data interfaces 2137 of the memory devices 2101 need not be via the memory controller 2141. For example, in some embodiments, data 2140 transferred from and to memory module 2100 may be buffered in controller 2141, but in other embodiments, such transfer may be ) Can be bypassed.

각각의 메모리 장치(2101)는 모듈 에러 인터페이스(2138)에 연결될 수 있고, 장치 에러 인터페이스 및 모듈 에러 인터페이스를 통하여 에러 정보를 교환하도록 구성될 수 있다. 본 실시 예에서, 컨트롤러(2141)는 장치 에러 인터페이스들(2139) 및 모듈 에러 인터페이스(2138)에 연결될 수 있다.Each memory device 2101 may be connected to a module error interface 2138, and may be configured to exchange error information through a device error interface and a module error interface. In this embodiment, the controller 2141 may be connected to the device error interfaces 2139 and the module error interface 2138.

좀 더 상세하게 후술 되겠지만, 컨트롤러(2141)는 에러 정보와 관련된 통신과 같은 메모리 장치들(2101)과 관련된 통신을 관리하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 대응하는 장치 에러 인터페이스들(2139)을 통하여 메모리 장치들(2101)과 관련된 에러 정보를 액세스하고, 메모리 장치들(2101)과의 통신을 포워딩하고, 메모리 장치들(2101)로부터의 에러 정보를 수집하도록 구성될 수 있다.As will be described in more detail later, the controller 2141 may be configured to manage communication related to the memory devices 2101, such as communication related to error information. For example, the controller 2141 accesses error information related to the memory devices 2101 through the corresponding device error interfaces 2139, forwards communication with the memory devices 2101, and It may be configured to collect error information from 2101.

특정한 실시 예에서, 컨트롤러(2141)는 모듈 에러 인터페이스(2138)를 통하여 액세스 가능한 레지스터들(2149)을 포함할 수 있다. 컨트롤러(2141)는 장치 에러 인터페이스들(2139)을 통하여 메모리 장치들(2101)과 통신함으로써 메모리 장치들(2101)로부터의 에러 정보를 수집하도록 구성될 수 있다. 그러한 에러 정보는 레지스터들(2149)에 저장될 수 있고 메모리 모듈(2100) 외부의 장치들에 액세스 가능할 수 있다. 또는 컨트롤러(2141)는 에러 정보를 조합하거나 에러 정보를 요약하도록 구성될 수 있다. 특히, 실시 예에서, 각각의 메모리 장치(2101)는 다른 메모리 장치들(2101)로부터 고립된 그것 자신의 에러 정보를 생성할 수 있다. 따라서, 컨트롤러(2141)가 메모리 장치들(2101)의 전부를 액세스할 때, 컨트롤러(2141)는 각각의 메모리 장치(2101)가 생성할 수 없는 추가적인 에러 정보를 생성하도록 구성될 수 있다. 비록 레지스터들(2149)이 예로써 사용되었다 하더라도, 에러 정보 및 다른 정보가 다른 방법으로 컨트롤러(2141)에 저장될 수 있다.In certain embodiments, controller 2141 may include registers 2149 accessible through module error interface 2138. The controller 2141 may be configured to collect error information from the memory devices 2101 by communicating with the memory devices 2101 through the device error interfaces 2139. Such error information may be stored in registers 2149 and may be accessible to devices external to memory module 2100. Alternatively, the controller 2141 may be configured to combine error information or summarize error information. In particular, in an embodiment, each memory device 2101 may generate its own error information isolated from other memory devices 2101. Accordingly, when the controller 2141 accesses all of the memory devices 2101, the controller 2141 may be configured to generate additional error information that each memory device 2101 cannot generate. Although registers 2149 are used as an example, error information and other information may be stored in the controller 2141 in different ways.

실시 예에서, 컨트롤러(2141)는 메모리 장치들(2101)과 관련된 커맨드들을 수신하도록 구성될 수 있다. 본 명세서에서 설명되는 바와 같이, 컨트롤러(2141)는 에러 정보를 읽기 위한 커맨드를 수신하도록 구성될 수 있다. 그러나, 컨트롤러(2141)는 메모리 장치들(2101)과 관련된 다른 타입의 통신들을 수신하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 메모리 장치들(2101)의 유지와 관련된 커맨드들을 수신하도록 구성될 수 있다. 그러한 관리의 예로써, 하나 또는 그 이상의 메모리 장치(2101) 내의 메모리 셀을 리페어 하거나, 데이터를 다시 쓰기 하거나, 리프레시 사이클을 초기화하기 위한 커맨드가 있을 수 있다. 컨트롤러(2141)는 그러한 통신들을 수신하고, 이에 응답하여 메모리 장치들(2101)과 통신하도록 구성될 수 있다.In an embodiment, the controller 2141 may be configured to receive commands related to the memory devices 2101. As described herein, the controller 2141 may be configured to receive a command for reading error information. However, the controller 2141 may be configured to receive other types of communications related to the memory devices 2101. For example, the controller 2141 may be configured to receive commands related to maintenance of the memory devices 2101. As an example of such management, there may be a command for repairing memory cells in one or more memory devices 2101, rewriting data, or initializing a refresh cycle. The controller 2141 may be configured to receive such communications and communicate with the memory devices 2101 in response thereto.

도 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 memory module 2200 may be similar to the memory module 2100, but the memory module 2200 is connected to the controller 2141 and detects a serial presence (SPD). (2143) may include modules. The SPD 2143 may be configured to communicate through the controller 2141. For example, controller 2141 can be configured to forward communication to and from SPD 2143. In another embodiment, the controller 2141 may be configured to obtain information from the SPD 2143, and may act as a proxy for the SPD 2143 using such information through the module error interface 2138. . Although the module error interface 2138 uses the term "error", information other than the error information may be transmitted and received through the module error interface 2138.

실시 예에서, 컨트롤러(2141)는 SPD(2143)와 관련된 어드레스에 응답하도록 구성될 수 있다. 그러나, 컨트롤러(2141)는 다른 어드레스에 응답하거나 통신에 있어서 추가적인 정보를 사용하도록 구성되어, 통신이 SPD(2143)를 위해 의도되었는지, 에러 정보를 액세스하도록 의도되었는지, 메모리 장치들(2101)을 위해 의도되었는지, 컨트롤러(2141)를 위해 의도되었는지 여부 등을 판단할 수 있다.In an embodiment, the controller 2141 may be configured to respond to an address associated with the SPD 2143. However, the controller 2141 is configured to respond to a different address or use additional information in the communication, such that whether the communication is intended for the SPD 2143, to access error information, or for the memory devices 2101. It may be determined whether it is intended or not for the controller 2141.

도 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 memory module 2300 may be similar to the memory module 2100 of FIG. 21 or the memory module 2200 of FIG. 22. However, a registering clock driver (RCD) module 2145 may be used instead of the controller 2141. Here, the RCD 2145 may be configured to buffer data transmitted to the memory module 2300 and transmitted from the memory module 2300. In addition, RCD 2145 may be configured to provide the functions described herein in connection with controller 2141.

SPD(2143)는 RCD(2145)에 연결될 수 있다. 따라서, 메모리 모듈(2200)과 유사하게, SPD(2143)는 RCD(2145)를 통하여 액세스 가능할 수 있고, RCD(2145)는, 앞서 설명된 바와 같이 컨트롤러(2141)와 유사하게, SPD(2143)를 위한 프록시로써 동작할 수 있다.The SPD 2143 may be connected to the RCD 2145. Thus, similar to the memory module 2200, the SPD 2143 may be accessible through the RCD 2145, and the RCD 2145, similar to the controller 2141, as described above, the SPD 2143 It can act as a proxy for

도 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 controller 2141, the memory devices 2101, and the SPD 2143 may be similar to those of FIG. 22. The controller 2141 may be connected to the bus 2452. Bus 2542 may be an SMBus, or other buses described herein. Bus 2542 may form part or all of module error interface 2138.

컨트롤러(2141)는 어드레스(2454)를 수신하도록 구성될 수 있다. 어드레스(2454)는 하드웨어에 내장된(hardwired) 입력일 수 있다. 특정한 실시 예에서, 어드레스(2454)는, 특정한 소켓에 삽입되었을 때, 하이 또는 로우 값으로 연결되어 동일한 버스(2542)에 연결된 다른 것들로부터의 메모리 모듈과 구별시키는, 메모리 모듈 상의 일련의 핀들일 수 있다.The controller 2141 may be configured to receive the address 2454. The address 2454 may be an input hardwired in hardware. In certain embodiments, address 2454 may be a series of pins on a memory module that, when inserted into a particular socket, are connected to a high or low value to distinguish the memory module from others connected to the same bus 2542 have.

실시 예에서, 어드레스(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 controller 2141 instead of the SPD such as the SPD 2143. Accordingly, the memory module described in this specification may be pin-compatible with an existing memory module.

본 실시 예에서, 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 and the memory devices 2101 may be respectively connected to the controller 2141 through separate buses 2450. Here, the buses are indicated as buses 2450-1 to 2450-N to correspond to the memory devices 2101-1 to 2010-N. The bus 2450-N+1 may correspond to an additional bus connected to the controller 2141 and the SPD 2143. In a particular embodiment, each of the buses 2450 may be SMBus or other similar communication lines. However, in another embodiment, for example, a point-to-point communication link, including a communication line that may have only two endpoints, is used instead of the buses 2450. I can. That is, although the term bus is used, a communication line can be configured to be connected to two devices.

실시 예에서, 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 SPD 2143 may be configured to respond to the control signal 2147 or to generate the control signal 2147. The control signal 2147 may include an out-of band signal in relation to the bus 2450-N+1. For example, the control signal 2147 may include an interrupt signal. In particular, in an embodiment, the control signal 2147 may be an event signal related to the SPD 2143. The controller 2141 may be configured to receive or generate a control signal 2451. The control signal 2451 may be a signal used by the SPD 2143. However, since the controller 2141 may be configured to use an interface that the SPD 2143 may have, the SDP 2143 may not be configured to directly receive the control signal 2451. Accordingly, the controller 2141 may be configured to exchange the SPD 2143 and the control signal 2451 as the control signal 2147. Although a single control signal related to the SPD is used as an example, in another embodiment, a plurality of control signals may be forwarded to/from the SPD 2143, the memory devices 2101, or other components. . Such control signals are not shown for clarity, but may be provided.

게다가, 컨트롤러(2141)는 제어 신호(2147)와 유사한 제어 신호와 관련될 수 있는 SPD(2143)를 넘어 추가적인 기능을 포함할 수 있다. 예를 들어, 제어 신호(2141)는 메모리 장치들(2101)로부터의 에러 정보에 기초하여 인터럽트를 생성하도록 구성될 수 있다. 따라서, 제어 신호(2451)는 SPD(2143)로부터의 신호뿐만 아니라 에러 정보 기반의 인터럽트를 교환하는데 사용될 수 있다. 컨트롤러(2141)는 그러한 제어 신호가 컨트롤러(2141), SPD(2143) 등을 위해 의도되었는지 여부를 판단하도록 구성될 수 있다.In addition, the controller 2141 may include additional functionality beyond the SPD 2143, which may be associated with a control signal similar to the control signal 2147. For example, the control signal 2141 may be configured to generate an interrupt based on error information from the memory devices 2101. Thus, the control signal 2451 can be used to exchange not only the signal from the SPD 2143 but also an interrupt based on error information. The controller 2141 may be configured to determine whether such a control signal is intended for the controller 2141, the SPD 2143, or the like.

실시 예에서, 많은 추가적인 핀들은 메모리 장치들(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 controller 2141 includes 2x(N+2) pins for the buses 2452 and 2450-1 to 2450-N+1, three pins for the address 2454, and control signals 2451 and 2147. It may contain two pins for

도 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 controller 2141, the memory devices 2101, and the SPD 2143 may be similar to those of FIG. 24. However, the controller 2141 may be connected to the memory devices 2101 through the bus 2450-1, and may be connected to the SPD 2143 through the bus 2450-2. In this embodiment, the buses 2450-1 and 2450-2 may be separate buses.

게다가, 버스(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 SPD 2143 and the controller 2141 may be devices on the bus 2450-2. Thus, the address input need not be used for SPD 2143.

실시 예에서, 복수의 추가적인 핀들이 메모리 장치들(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 controller 2141 has six pins for the buses 2452, 2450-1, and 2450-2, three pins for the address 2454, and control signals 2451 and 2147, similar to FIG. 24. It may include two pins for ).

도 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 controller 2141, the memory devices 2101, and the SPD 2143 may be similar to those of FIG. 25A. However, the SPD 2143 and the memory devices 2101 may be connected to the controller 2141 through a common bus 2450. As described above, the memory devices 2101 may be configured to receive the ID 2456. Since the SPD 2143 is on the same bus 2450 as the memory devices 2101, the SPD 2143 may be configured to use a unique address among the SPD 2143 and the memory devices 2101. . SPD 2143 may be configured to receive ID 2457. The SPD 2143 may be configured to convert the ID 2457 into an address for use in the bus 2450.

실시 예에서, 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 ID 2457 may be different from the ID 2456. For example, ID 2457 may include three pins used to indicate the address of SPD 2143, while ID 2456 may each include four pins. In addition, IDs 2457 and IDs 2456 need not correspond to the same address. For example, ID 2457 of 010b and ID 2456 of 0010b may correspond to different addresses.

실시 예에서, 복수의 추가적인 핀들이 메모리 장치들(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 controller 2141 has 4 pins for the buses 2450 and 2452, 3 pins for the address 2454, and 2 pins for the control signals 2451 and 2147, similar to FIG. 24. Can include.

도 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 controller 2141, the memory devices 2101, and the SPD 2143 may be similar to those of FIG. 25B. The SPD 2143 may be configured to receive the address 2454 similar to the controller 2141. However, in this embodiment, the memory devices 2101 may not be configured to receive IDs 2456. Conversely, the memory devices 2101 may be respectively connected to a common bus 2459, such as a single wire or net separated from the bus 2450-1. In an embodiment, the public bus may be a daisy-chain link.

실시 예에서, 메모리 장치들(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 bus 2459. The memory devices 2101 may be configured to determine whether information received through the controller 2141 is related to the memory device 2101 in response to a signal received through the bus 2459. In an embodiment, the memory devices 2101 may be configured to communicate through the bus 2459 to establish addresses of the memory devices 2101 on the bus 2450. For example, the first memory device can determine the address and increment the counter in response to the counter. The counter value may be transmitted to the second memory device 2101. The second memory device 2101 may be configured to determine an address and increment the counter in response to the counter. This process may continue until each memory device 2101 has a unique address.

실시 예에서, 복수의 추가적인 핀들이 메모리 장치들(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 bus 2459. It may also contain one additional pin. Controller 2141, similar to FIG. 24, 6 pins for buses 2452, 2450-1, and 2450-2, 3 pins for address 2454, and control signals 2451 and 2147. Can include 2 pins 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 controller 2141 may be configured to determine the addresses of the memory devices 2101 and the SPD 2143, if connected to the same bus. For example, the controller 2141 may be configured to dynamically allocate addresses to the memory devices 2101 and SPD 2143 using the SMBus address resolution protocol. Although a technique for determining addresses in one type of bus is used as an example, other techniques may be appropriately used for a particular bus 2450.

도 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 memory module 2700 may be similar to the memory module 2100 of FIG. 21. However, a repeater 2750 was used as the controller 2141. The repeater 2750 and the repeater 2750 are configured to expand the communication line connected to the module error interface 2138 so that the error interfaces 2139 of the memory devices 2101 and the SPD 2143 can be connected to the communication line. Can be. For example, if the loading of memory devices 2101 and/or the nature of the network permit, repeater 2750 may only be a wire, such as a wire of a shared medium. In another example, repeater 2750 may include a device configured to allow more devices to be connected to the bus, or to allow longer buses. Although the term repeater is used, the repeater 2750 may include a hub, an extension device, a switch, a bridge, and the like. In addition, a device capable of expanding the network may be used as the repeater 2750. Since the memory devices 2101 are directly accessible through the module interface 2138, each memory device 2101 of the memory module 2700 obtains information about error information individually by an external controller such as BMC. I can.

실시 예에서, 메모리 장치들(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 SPD 2143, and the repeater 2750 may be similar to those of FIG. 25B. That is, referring to FIGS. 25B and 27, the memory devices 2101 may be connected to the repeater 2750 and connected to the bus 2450, respectively. Each of the memory devices 2101 may be configured to receive an ID 2456. As a result, memory devices 2101 can be configured to determine respective addresses for use on bus 2450.

실시 예에서, 특정한 어드레스들 또는 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 step 2800, an error may occur when reading data from memory. In response, in step 2802, an error may be diagnosed. As will be described later in more detail, not only the error is identified, but also other corrective actions for correcting the error may be taken.

2804 단계에서, 에러 정보가 보고될 수 있다. 앞서 설명된 바와 같이, 메모리 장치, 메모리 모듈의 다른 구성 요소들, 및 프로세서 사이의 통신 회선은 에러 정보를 교환하는데 사용될 수 있다. 에러 정보(2804)를 보고하는 것은 그러한 통신 회선들을 통하여 수행될 수 있다.In step 2804, error information may be reported. As described above, a communication line between the memory device, other components of the memory module, and the processor may be used to exchange error information. Reporting error information 2804 can be done over such communication lines.

도 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 step 2900, after a correctable error (CE) occurs, a CE record may be generated. The CE record may contain various information related to the error described above.

2902 단계에서, 데이터가 다시 읽혀질 수 있다. 본 실시 예에서, 데이터를 다시 읽어내는 것에 응답하여, 에러가 발생하지 않는 경우, 정정 가능한 에러가 발생하는 경우, 정정 불가능한 에러(uncorrectable error; UE)가 발생하는 경우와 같은, 3개의 결과가 발생할 수 있다. 만일 에러가 발생하지 않는다면, 2904 단계에서, 기록은 소프트-읽기 에러로 표시될 수 있다. 만일 정정 가능한 에러가 발생하면, 2908 단계에서, 정정된 데이터가 다시 쓰기 될 수 있다. 만일 정정 불가능한 에러가 발생하면, 2906 단계에서, 에러 기록은 정정 불가능한 에러 기록으로 업데이트 될 수 있다.In step 2902, the data can be read again. In this embodiment, in response to re-reading data, three consequences occur, such as when an error does not occur, when a correctable error occurs, or when an uncorrectable error (UE) occurs. I can. If no error occurs, in step 2904, the write can be marked as a soft-read error. If a correctable error occurs, in step 2908, the corrected data may be rewritten. If an uncorrectable error occurs, in step 2906, the error record may be updated to an uncorrectable error record.

2908 단계에서 정정된 데이터를 다시 쓰기하는 것의 일부로써, 에러가 발생할 수 있다. 만일 에러가 발생하지 않는다면, 2910 단계에서, 에러 기록은 소프트-읽기 에러로 표시될 수 있다. 만일 정정 불가능한 에러가 발생하였다면, 2906 단계에서, 에러 기록은 정정 불가능한 에러 기록으로 업데이트 될 수 있다.As part of rewriting the data corrected in step 2908, an error may occur. If no error occurs, in step 2910, the error record may be marked as a soft-read error. If an uncorrectable error has occurred, in step 2906, the error record may be updated to an uncorrectable error record.

2912 단계에서, 만일 정정 가능한 에러가 발생하였다면, 메모리 셀이 리페어 가능한지 여부가 판단될 수 있다. 특정한 실시 예에서, 본 단계에서의 정정 가능한 에러는 에러가 다시 쓰기에 의해 리페어 될 수 없는지 여부를 나타낼 수 있다. 따라서, 에러는 하드웨어 에러에 의해 야기될 수 있다. 2912 단계에서 메모리 셀의 리페어 가능 여부에 대한 판단 결과에 의존하여, 에러 기록은 더 주석이 달릴 수 있고 리페어 될 수 있다. 만일 메모리 셀이 리페어 가능하다면, 2914 단계에서, 메모리 셀은 리페어 되고 에러는 하드 에러로 표시될 수 있다. 만일 메모리 셀이 리페어 불가능하다면, 2916 단계에서, 에러 기록은 리페어 불가능한 하드 에러로 표시될 수 있다. 따라서, 앞서 설명된 진단에 의해, 에러는 더 카테고리화 되거나 리페어 될 수 있다.In step 2912, if a correctable error has occurred, it may be determined whether the memory cell is repairable. In a specific embodiment, the correctable error in this step may indicate whether the error cannot be repaired by rewriting. Thus, errors can be caused by hardware errors. Depending on the result of determining whether the memory cell can be repaired in step 2912, the error record can be further annotated and repaired. If the memory cell is repairable, in step 2914, the memory cell is repaired and the error may be marked as a hard error. If the memory cell is non-repairable, in step 2916, an error record may be marked as a non-repairable hard error. Thus, by the diagnosis described above, errors can be further categorized or repaired.

비록 2908 단계에서의 다시 쓰기가 정정 불가능한 에러, 정정 가능한 에러, 또는 에러 없음을 지시하는 동작의 예로써 사용되었다 하더라도, 그러한 정보는 다른 동작들의 결과일 수 있다. 예를 들어, 2908 단계에서 데이터를 다시 쓰기 한 후, 읽기 동작이 수행될 수 있고 유사한 에러 정보가 생성될 수 있다.Although the rewrite in step 2908 was used as an example of an operation indicating an uncorrectable error, a correctable error, or no error, such information may be the result of other operations. For example, after rewriting data in step 2908, a read operation may be performed and similar error information may be generated.

도 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 step 3000, after an uncorrectable error (UE) occurs, a UE record may be generated. In some embodiments, the UE recording may be a result of an update to the UE recording in step 2906 described in FIG. 29 above.

3002 단계에서, UE 기록과 관련된 데이터가 다시 읽혀질 수 있다. 이에 응답하여, 다른 동작이 수행될 수 있다. 만일 다시 읽기 후 정정 불가능한 에러가 발생하면, 3006 단계에서, 기록은 리페어 불가능한 에러로 표시될 수 있다. 만일 에러가 발생하지 않으면, 3004 단계에서, 기록은 소프트-읽기 에러로 표시될 수 있다. 만일 정정 가능한 에러가 발생하면, 3008 단계에서, 정정된 에러가 다시 기록될 수 있다. 도 29의 2908 단계에서의 다시 쓰기와 유사하게, 동작으로부터 생성된 결과는, 다시 쓰기 후에 데이터를 다시 읽는 것과 같은, 다른 소스들로부터 비롯될 수 있다. In step 3002, data related to the UE record may be read again. In response to this, other operations may be performed. If an uncorrectable error occurs after reading again, in step 3006, the record may be marked as an unrepairable error. If no error occurs, in step 3004, the record can be marked as a soft-read error. If a correctable error occurs, in step 3008, the corrected error may be recorded again. Similar to the rewrite in step 2908 of FIG. 29, the result generated from the operation may come from other sources, such as reading the data again after the rewriting.

데이터의 다시 쓰기의 결과에 응답하여, 다른 동작들이 수행될 수 있다. 만일 결과가 정정 불가능한 에러라면, 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 step 3006, the record may be marked as an unrepairable error. If no errors have occurred, in step 3010, the write can be marked as soft-read and soft-write errors.

3012 단계에서, 만일 결과가 정정 가능한 에러라면, 메모리 셀이 리페어 가능한지 여부가 판단될 수 있다. 만일 메모리 셀이 리페어 가능하다면, 3014 단계에서, 리페어 동작이 실행되고, 기록은 소프트-읽기 및 리페어 가능한 하드 에러로 표시될 수 있다. 만일 메모리 셀이 리페어 불가능하다면, 3016 단계에서, 레코드는 소프트-읽기 및 리페어 불가능한 하드 에러로 표시될 수 있다. In step 3012, if the result is a correctable error, it may be determined whether the memory cell is repairable. If the memory cell is repairable, in step 3014, a repair operation is performed, and the write may be marked as a soft-read and repairable hard error. If the memory cell is not repairable, in step 3016, the record may be marked as a soft-read and non-repairable hard error.

비록 에러들의 다양한 카테고리화가 상술 된 바와 같이 설명되었다 하더라도, 어떤 실시 예에서, 그러한 정보의 모든 것들이 메모리 장치의 외부에 이용 가능하지 않을 수 있다. 예를 들어, 도 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 step 2910 is accompanied by a CE during a reread operation in step 2902 and a CE during a rewrite operation in step 2908. If you do, it can be executed. However, in another embodiment, determining whether the memory cell is repairable in step 2910 may be performed only when the re-read operation in step 2902 causes CE after attempting a plurality of re-read operations. That is, in some embodiments, a specific criterion for categorizing errors may be different from the examples described above.

나아가, 비록 에러 타입들의 특정한 명칭이 사용되었다 하더라도, 어떤 실시 예에서, 그러한 에러 타입들의 전부는 사용되지 않을 수 있다. 유사하게, 어떤 실시 예에서, 다른 에러 타입들이 사용될 수 있다.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 step 3100, a read error may occur when reading data from the memory. In response to this, error information may be generated. For example, the read error may be a corrected correctable error. The error information may be information on a correctable error. For example, the read error may be a plurality of errors. In this case, the error information may be information on these errors.

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 step 3014, the memory may transmit error information. Before receiving the read error command in step 3102, the memory module may store error information regarding an error that has occurred. In step 3104, error information regarding an error that has occurred first may be transmitted in response to a read error command. However, if no error has occurred, transmission of error information in step 3104 may be transmission of information indicating that no error has occurred.

앞서 설명된 바와 같이, 에러 정보는 버스를 통하여 전송될 수 있다. 특히, 버스는 메모리 모듈의 주 데이터 경로에 관하여 아웃-오브-밴드(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 step 3104 may include transmitting error information through the bus.

도 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 step 3106, a read error command may be transmitted from the controller. The read error command transmitted in step 3106 may be a read error command received in step 3102. As described above, in step 3104, error information may be transmitted. In step 3108, error information may be received at the controller. For example, the controller can be configured to poll a memory module. Accordingly, the controller may receive a read error command in step 3106 and receive error information in step 3108. As described above, the controller may include a memory, such as a nonvolatile memory, in which the memory controller may store error information. Thereafter, in step 3110, the error information may be transmitted to the processor.

비록 예시적으로 읽기 에러 커맨드를 전송하는 컨트롤러를 사용하는 것이 설명되었다 하더라도, 다른 실시 예에서, 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 step 3106, the processor may transmit a read error command. In step 3102, the read error command may be received by the memory module, and in step 3110, the error information may be transmitted to the processor. That is, the error information need not be received or processed in the controller.

도 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 memory module 2100 by way of example in step 3200, communication may be received through the module error interface 2138. In step 3202, error information may be read from at least one memory device 2101.

실시 예에서, 3202 단계에서 에러 정보를 읽는 것은 3200 단계에서의 통신에 응답하여 수행될 수 있다. 그러나, 다른 실시 예에서, 에러 정보를 읽는 것은 이시(different time)(예를 들어, 통신을 수신하기 전을 포함)에 수행될 수 있다. 이와 상관없이, 3204 단계에서 메모리 장치들(2101)로부터의 에러 정보는 통신에 응답하기 위해 사용될 수 있다.In an embodiment, reading the error information in step 3202 may be performed in response to the communication in step 3200. However, in another embodiment, reading the error information may be performed at different times (including, for example, before receiving the communication). Regardless, the error information from the memory devices 2101 in step 3204 may be used to respond to the communication.

3202 단계에서 에러 정보를 읽는 것은 다양한 방법으로 수행될 수 있다. 예를 들어, 메모리 장치들(2101) 각각은, 도 24에 도시된 바와 같은, 대응하는 전용 버스를 통하여 액세스 될 수 있다. 다른 실시 예에서, 메모리 장치들(2101) 각각은 도 25a, 25b, 또는 25c에 도시된 바와 같은, 공용 버스를 통하여 액세스 될 수 있다. 다른 실시 예에서, 통신은 도 27의 리피터(2750)와 같은 하나 또는 그 이상의 메모리 장치들(2101)에 포워딩 될 수 있다. Reading the error information in step 3202 may be performed in various ways. For example, each of the memory devices 2101 may be accessed through a corresponding dedicated bus, as shown in FIG. 24. In another embodiment, each of the memory devices 2101 may be accessed through a common bus, as shown in FIGS. 25A, 25B, or 25C. In another embodiment, communication may be forwarded to one or more memory devices 2101 such as repeater 2750 of FIG. 27.

비록 도 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 step 3300, a read error may occur. In step 3312, a read error command may be transmitted to the controller. For example, the controller may receive a read error command from the processor. In step 3314, the read error command may be transmitted to the memory module. For example, in step 3314, the controller forwards the read error command received from the processor to the memory module, transforms the read error command, or generates another read error command for the memory module, and sends the read error command to the memory module. Can be transmitted. The read error command transmitted in step 3314 may be received in step 3302, and in step 3304, the error information may be transmitted similarly to steps 3102 and 3104 of FIG. 31A. As described above, the error information may be transmitted to the processor.

앞서 설명된 바와 같이, 컨트롤러는 에러 정보를 위해 메모리 모듈을 폴링할 수 있고 에러 정보를 저장할 수 있다. 따라서, 읽기 에러 커맨드가 프로세서로부터 컨트롤러에 의해 수신될 때, 컨트롤러는 이미 읽기 에러 정보를 가질 수 있다. 컨트롤러는 저장된 에러 정보를 프로세서로 전송할 수 있다. 그러나 컨트롤러는, 컨트롤러가 저장된 에러 정보를 프로세서로 전송하기 전에, 더 많은 에러 정보를 위해 메모리 모듈을 폴링할 필요는 없다. 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 operation 3400, the processor may transmit a read error command. In response thereto, in step 3402, the processor may receive error information. In step 3406, the processor may combine the error information with additional information. As described above, the additional information may be various types of information, such as a state of a processor, a peripheral part, and buses, including information not related to a memory module. In a specific embodiment, the processor may combine error information with information from the MCA module.

특정한 실시 예에서, 3408 단계에서, 결합된 정보는 EDAC 모듈에 제공될 수 있다. 앞서 설명한 바와 같이, EDAC 모듈은 다양한 시스템들의 에러에 대한 정보를 더 높은 레벨의 애플리케이션에 이용 가능할 수 있도록 한다. In a particular embodiment, in step 3408, the combined information may be provided to the EDAC module. As described above, the EDAC module makes information about errors in various systems available to higher level applications.

도 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, system 3500 may include a processor 2104 and software 2110, similar to the processor 104 and software 110 of FIG. 1. However, in this embodiment, the system 3500 may include a memory 3502 and an error correction circuit 3568.

본 실시 예에서, 메모리(3502)는 에러를 정정하도록 구성되지 않을 수 있다. 메모리(3502)는 에러 정정 회로(3568)에 연결되고, 통신 경로(3572)를 통하여 에러 정정 회로(2168)에 데이터를 전송하도록 구성될 수 있다. In this embodiment, the memory 3502 may not be configured to correct an error. The memory 3502 is connected to the error correction circuit 3568 and may be configured to transmit data to the error correction circuit 2168 through the communication path 3352.

에러 정정 회로(3568)는 메모리(3502)로부터 수신된 데이터의 에러를 정정하도록 구성될 수 있다. 에러 정정 회로(3568)는 제 2 통신 경로(3570) 및 제 3 통신 경로(3508)를 통하여 프로세서(2104)에 연결될 수 있다. 제 2 통신 경로(3570)는 프로세서(3504)가 데이터를 수신하도록 구성되는 메인 경로이다. 예를 들어, 제 2 통신 경로(3570)는 프로세서(3504)를 위한 시스템 버스일 수 있다. The error correction circuit 3568 may be configured to correct an error in data received from the memory 3502. The error correction circuit 3568 may be connected to the processor 2104 through the second communication path 3570 and the third communication path 3508. The second communication path 3570 is the main path through which the processor 3504 is configured to receive data. For example, the second communication path 3570 may be a system bus for the processor 3504.

반면, 제 3 통신 경로(3508)는 앞서 설명된 통신 경로(108)와 유사하다. 즉, 제 3 통신 경로(3508)는 컨트롤러(3514)를 포함하는 별도의 아웃-오브-밴드 통신 경로이거나, 앞서 설명한 통신 경로들의 다양한 변형일 수 있다.On the other hand, the third communication path 3508 is similar to the communication path 108 described above. That is, the third communication path 3508 may be a separate out-of-band communication path including the controller 3514 or may be various modifications of the communication paths described above.

도 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 server 3600 may include a stand-alone server, a rack-mounted server, a blade server, and the like. The server 3600 may include a memory 3602, a processor 3604, and a BMC 3614. The processor 3604 may be connected to the memory 3602 through a communication path 3606. The BMC 3614 may be connected to the processor 3604 through a bus 3616 and may be connected to the memory 3602 through a bus 3612. Each of the memory 3602, the processor 3604, the BMC 3614, the communication path 3606, and the buses 3612 and 3616 may be any one of the corresponding configurations described above.

도 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 server system 3700 may include a plurality of servers 3702-1 to 3702-N. Each of the servers 3702 may be connected to the manager 3704. One or more of the servers 3702 may be similar to the server 3700 described above. In addition, the manager 3704 may include a system having the memory system architecture described above.

매니저(3704)는 서버 시스템(3700)의 서버(3702) 및 다른 구성들을 관리하도록 구성될 수 있다. 예를 들어, 매니저(3704)는 서버(3702)의 설정들을 관리하도록 구성될 수 있다. 서버들(3702) 각각은 매니저(3704)와 에러 정보를 교환하도록 구성될 수 있다. 에러 정보는 앞서 설명된 바와 같이 서버들(3702) 중 어느 하나에 있는 프로세서로 전송된 정정 가능한 에러 정보, 또는 정정 가능한 에러 정보에 기초한 다른 에러 정보를 포함할 수 있다. 매니저(3704)는 에러 정보에 기초하여 액션을 취하도록 구성될 수 있다. 예를 들어, 서버(3702-1)는 임계치를 초과하는 정정 가능한 에러를 포함할 수 있다. 매니저(3704)는 관리 및/또는 대체를 위해 서버(3702-1)의 기능을 서버(3702-2)로 넘겨주고, 서버(2302-1)를 셧다운 시키도록 구성될 수 있다. 비록 특정 예들이 제시되었다 하더라도, 매니저(3704)는 에러 정보에 기초하여 또 다른 액션을 취하도록 구성될 수도 있다.The manager 3704 may be configured to manage the server 3702 and other components of the server system 3700. For example, the manager 3704 may be configured to manage settings of the server 3702. Each of the servers 3702 may be configured to exchange error information with the manager 3704. The error information may include correctable error information transmitted to a processor in any one of the servers 3702 as described above, or other error information based on correctable error information. The manager 3704 may be configured to take an action based on the error information. For example, the server 3702-1 may include a correctable error exceeding a threshold. The manager 3704 may be configured to transfer the function of the server 3702-1 to the server 3702-2 for management and/or replacement, and to shut down the server 2302-1. Although specific examples have been presented, the manager 3704 may be configured to take another action based on the error information.

도 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 data center 3800 may include a plurality of server systems 3802-1 to 3802-N. Server systems 3802 are similar to server system 3600 described in FIG. 36. Server systems 3802 may be connected to a network 3804 such as the Internet. Accordingly, the server systems 3802 may communicate with various nodes 3806-1 to 3806-M through the network 3804. For example, nodes 3806 may be a client computer, another server, a remote data center, a storage system, or the like.

비록 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 기술적 사상의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 따라서 본 발명의 범위는 상술 된 실시 예에 국한되어 정해져서는 안되며, 후술하는 특허 청구범위뿐만 아니라 본 발명의 특허 청구범위와 균등한 것들에 의해 정해져야 한다. 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: processor 706, 708: communication paths
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.
제 1 항에 있어서,
상기 모듈 에러 인터페이스 및 상기 메모리 장치들의 상기 장치 에러 인터페이스들 각각에 연결되는 모듈 컨트롤러를 더 포함하는 메모리 모듈.
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.
제 2 항에 있어서,
상기 모듈 컨트롤러는 리피터를 포함하는 메모리 모듈.
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.
제 4 항에 있어서,
상기 시스템 제어 경로는,
상기 메인 메모리에 대하여 아웃-오브-밴드 교환 경로를 포함하는 메모리 모듈.
The method of claim 4,
The system control path,
A memory module comprising an out-of-band exchange path to the main memory.
제 4 항에 있어서,
상기 시스템 제어 경로는,
플랫폼 매니지먼트 버스를 포함하는 메모리 모듈.
The method of claim 4,
The system control path,
Memory module with platform management bus.
제 6 항에 있어서,
상기 플랫폼 매니지먼트 버스는
시스템 매니지먼트 버스(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.
제 4 항에 있어서,
상기 시스템 제어 경로는 상기 메인 메모리 경로보다 느린 메모리 모듈.
The method of claim 4,
The system control path is a memory module that is slower than the main memory path.
제 8 항에 있어서,
상기 메인 메모리 경로는 제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.
제 4 항에 있어서,
상기 모듈 컨트롤러는,
에러 정보를 상기 외부 모듈 에러 인터페이스를 통하여 전송하는 것을 더 포함하는 메모리 모듈.
The method of claim 4,
The module controller,
The memory module further comprising transmitting error information through the external module error interface.
제1항에 있어서
상기 외부 모듈 에러 인터페이스는,
에러 정보에 대한 폴을 수신 할 수 있는 메모리 모듈.
According to claim 1
The external module error interface,
A memory module that can receive polls for error information.
제 1 항에 있어서,
상기 시스템 제어 경로는,
상기 메인 메모리에 대하여 아웃-오브-밴드 교환 경로를 포함하는 메모리 모듈.
The method of claim 1,
The system control path,
A memory module comprising an out-of-band exchange path to the main memory.
제 1 항에 있어서,
상기 시스템 제어 경로는,
플랫폼 매니지먼트 버스를 포함하는 메모리 모듈.
The method of claim 1,
The system control path,
Memory module with platform management bus.
제 13 항에 있어서,
상기 플랫폼 매니지먼트 버스는
시스템 매니지먼트 버스(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.
제 1 항에 있어서,
상기 시스템 제어 경로는 상기 메인 메모리 경로보다 느린 메모리 모듈.
The method of claim 1,
The system control path is a memory module that is slower than the main memory path.
제 15 항에 있어서,
상기 메인 메모리 경로는 제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.
제 2 항에 있어서,
상기 모듈 컨트롤러는,
에러 정보를 상기 외부 모듈 에러 인터페이스를 통하여 전송하는 것을 더 포함하는 메모리 모듈.
The method of claim 2,
The module controller,
The memory module further comprising transmitting error information through the external module error interface.
제 4 항에 있어서
상기 외부 모듈 에러 인터페이스는,
에러 정보에 대한 폴을 수신 할 수 있는 메모리 모듈.
The method of claim 4
The external module error interface,
A memory module that can receive polls for error information.
삭제delete 삭제delete
KR1020150109526A 2014-08-19 2015-08-03 Memory devices and modules KR102214556B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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