KR20160022250A - Memory devices and modules - Google Patents

Memory devices and modules Download PDF

Info

Publication number
KR20160022250A
KR20160022250A KR1020150109526A KR20150109526A KR20160022250A KR 20160022250 A KR20160022250 A KR 20160022250A KR 1020150109526 A KR1020150109526 A KR 1020150109526A KR 20150109526 A KR20150109526 A KR 20150109526A KR 20160022250 A KR20160022250 A KR 20160022250A
Authority
KR
South Korea
Prior art keywords
error
memory
module
controller
interface
Prior art date
Application number
KR1020150109526A
Other languages
Korean (ko)
Other versions
KR102214556B1 (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

Landscapes

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

Abstract

Provided are a memory device and a memory module which provide low cost and low power characteristics. According to an embodiment of the present invention, the memory module comprises: a module error interface, and a plurality of memory devices. Each of the memory devices is connected to the module error interface, includes a data interface and a device error interface, and communicates error information through the device error interface and the module error interface.

Description

메모리 장치 및 모듈{MEMORY DEVICES AND MODULES}[0001] MEMORY DEVICES AND MODULES [0002]

본 발명은 메모리 시스템 아키텍처에 관한 것으로, 좀 더 상세하게는, 에러 정정 기능을 갖춘 메모리 시스템 아키텍처에 관한 것이다.The present invention relates to a memory system architecture, and more particularly, to a memory system architecture with error correction capability.

메모리 컨트롤러들은 에러 정정을 수행하도록 구성될 수 있다. 예를 들어, 메모리 컨트롤러는 메모리 모듈로부터, 64 비트가 데이터이고 8 비트가 패리티(parity)인, 72 비트의 데이터를 읽을 수 있다. 메모리 컨트롤러는 다른 에러 정정 기술들을 수행할 수 있다. 그러한 기술들을 사용하여, 메모리 모듈로부터 읽혀진 데이터에 있는 어떤 에러들은 확인될 수 있고, 정정될 수 있다. 게다가, 메모리 컨트롤러는 에러와 관련된 이용 가능한 정보를 생성할 수 있다. 메모리 컨트롤러를 포함하는 시스템은 메모리 페이지의 회수(retiring a memory page), 시스템 정지, 또는 이와 유사한 것과 같은, 에러 정보에 기초하여 운영 결정(operational decision)을 할 수 있다. 그러한 메모리 컨트롤러는 프로세서와 함께 집적될 수 있다. 예를 들어, 예를 들어, 인텔 제온(Intel Xeon®) 프로세서는 에러 정정을 수행하도록 구성된 집적 메모리 컨트롤러를 포함할 수 있다.The memory controllers may be configured to perform error correction. For example, a memory controller can read 72 bits of data from a memory module, where 64 bits are data and 8 bits are parity. The memory controller may perform other error correction techniques. Using such techniques, certain errors in the data read from the memory module can be identified and corrected. In addition, the memory controller can generate available information related to the error. A system including a memory controller may make an operational decision based on error information, such as a retiring a memory page, a system halt, or the like. Such a memory controller may be integrated with the processor. For example, an Intel Xeon (R) processor, for example, may include an integrated memory controller configured to perform error correction.

그러나, 만일 데이터가 메모리 컨트롤러에 의해 수신되기 전에 에러 정정이 수행되면, 정정과 관련된 에러 정보는 메모리 컨트롤러에서 이용 가능하지 않을 수 있고, 따라서 시스템 관리 결정(system management decision)을 위해 시스템에 이용 가능하지 않을 수 있다. However, if error correction is performed before the data is received by the memory controller, the error information associated with the correction may not be available in the memory controller and thus may be available to the system for system management decisions .

본 발명의 기술적 사상은 저비용 및 저전력 특성을 제공하는 메모리 장치 및 모듈을 제공한다.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 coupled to the module error interface, the device comprising a data interface and a device error interface, And to exchange error information via the interface and the module error interface.

예를 들어, 상기 모듈 에러 인터페이스 및 상기 메모리 장치들의 장치 에러 인터페이스들 각각에 연결되는 컨트롤러를 더 포함할 수 있다.For example, it may further comprise a controller coupled to each of the module error interface and the device error interfaces of the memory devices.

예를 들어, 상기 컨트롤러는 리피터를 더 포함할 수 있다.For example, the controller may further include a repeater.

예를 들어, 상기 컨트롤러는 별도의 버스를 통하여 상기 장치 에러 인터페이스들 각각에 연결될 수 있다.For example, the controller may be coupled to each of the device error interfaces via a separate bus.

예를 들어, 상기 컨트롤러는 공용 버스를 통하여 상기 장치 에러 인터페이스들 각각에 연결될 수 있다.For example, the controller may be coupled to each of the device error interfaces via 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 via the device error interface is associated with the memory device in response to a signal received via the daisy-chain line.

예를 들어, 상기 컨트롤러에 연결되고 상기 모듈 에러 인터페이스를 통하여 통신하도록 구성되는 직렬 프레즌스 검출 모듈을 더 포함할 수 있다.For example, it may further comprise a serial presence detection module coupled to the controller and configured to communicate via 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 communications received via the module error interface based on the address.

예를 들어, 상기 컨트롤러는 상기 메모리 장치들의 상기 장치 에러 인터페이스들을 통하여 수신된 에러 정보를 수집하도록 구성될 수 있다.For example, the controller may be configured to collect error information received via the device error interfaces of the memory devices.

본 발명의 실시 예에 따른 메모리 모듈은, 모듈 에러 인터페이스, 복수의 메모리 장치들로써, 각각의 메모리 장치는 데이터 인터페이스 및 장치 에러 인터페이스를 포함하고, 상기 장치 에러 인터페이스를 통하여 에러 정보를 교환하도록 구성되는 것, 그리고 상기 모듈 에러 인터페이스 및 각각의 메모리 장치의 상기 장치 에러 인터페이스에 연결되는 컨트롤러를 포함할 수 있다.A memory module according to an embodiment of the present invention includes a module error interface, a plurality of memory devices, each memory device including a data interface and a device error interface, the device being configured to exchange error information via the device error interface And a controller coupled to the module error interface and to the device error interface of each memory device.

예를 들어, 모듈 데이터 인터페이스를 더 포함하되, 상기 컨트롤러는 상기 모듈 데이터 인터페이스 및 각각의 메모리 장치의 상기 데이터 인터페이스에 연결될 수 있다.For example, it may further comprise a module data interface, the controller being connectable to the module data interface and to the data interface of each memory device.

예를 들어, 상기 컨트롤러에 연결되는 직렬 프레즌스 검출 모듈을 더 포함하되, 상기 직렬 프레즌스 검출 모듈은 상기 모듈 에러 인터페이스를 거쳐 상기 컨트롤러를 통하여 액세스 가능할 수 있다.For example, the system may further include a serial presence detection module coupled to the controller, wherein the serial presence detection module may be accessible through the controller via 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 responding to the communication via the module error interface.

예를 들어, 상기 방법은 상기 통신을 상기 적어도 하나의 메모리 장치로 포워딩하는 단계를 더 포함할 수 있다.For example, the method may further comprise 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 via a corresponding dedicated bus.

예를 들어, 상기 컨트롤러에 의해 상기 에러 정보를 읽는 단계는, 공용 버스를 통하여 상기 적어도 하나의 메모리 장치 중 적어도 하나를 액세스하는 단계를 포함할 수 있다.For example, the step of reading the error information by the controller may include accessing at least one of the at least one memory device via a common bus.

본 발명의 실시 예에 따른 시스템은, 데이터를 저장하고, 상기 저장된 데이터로부터 읽혀진 데이터의 에러를 정정하고, 상기 저장된 데이터로부터 읽혀진 상기 데이터의 상기 에러를 정정하는 것에 응답하여 에러 정보를 생성하도록 구성되는 메모리, 그리고 제 1 통신 경로 및 제 2 통신 경로를 통하여 상기 메모리에 연결되고, 상기 제 1 통신 경로를 통하여 상기 메모리로부터 데이터를 수신하고, 상기 제 2 통신 경로를 통하여 상기 메모리로부터 상기 에러 정보를 수신하도록 구성되는 프로세서를 포함할 수 있다.A system in accordance with an embodiment of the present invention is configured to store error correction information to correct error in data read from the stored data and to generate error information in response to correcting the error in the data read from the stored data A memory coupled to the memory via a first communication path and a second communication path for receiving data from the memory via the first communication path and receiving the error information from the memory via the second communication path And a processor coupled to the processor.

예를 들어, 상기 에러는 싱글-비트 에러일 수 있고, 상기 에러 정보는 에러가 정정되었다는 것을 나타낼 수 있다.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 via a different path than 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 processor coupled 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 coupled to the processor by an interface that is compliant with an intelligent platform management interface.

예를 들어, 상기 컨트롤러는 SMBus (System Management Bus)에 부합하는 인터페이스에 의해 상기 메모리에 연결될 수 있다.For example, the controller may be coupled to the memory by an interface that conforms to a System Management Bus (SMBus).

예를 들어, 상기 컨트롤러는 상기 에러 정보를 저장하고, 상기 프로세서로부터 수신된 요청에 응답하여 상기 프로세서로 상기 에러 정보를 제공하도록 구성될 수 있다.For example, the controller may be configured to store the error information and to 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 coupled to the memory, and the memory controller may be coupled to the memory via the first communication path.

예를 들어, 상기 프로세서는 상기 메모리에 연결된 메모리 컨트롤러를 포함할 수 있고, 상기 메모리 컨트롤러는 상기 메모리로부터 읽혀진 데이터의 에러를 정정하도록 구성되지 않을 수 있다.For example, the processor may include a memory controller coupled to the memory, and the memory controller may not be configured to correct errors 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 may exchange an uncorrectable error by a signal transmitted over the at least one data strobe line .

예를 들어, 상기 시스템은 상기 메모리와 상기 프로세서 사이에 연결된 제 3 통신 경로를 더 포함할 수 있다. 상기 메모리는 상기 제 3 통신 경로를 통하여 정정 불가능한 에러를 교환하도록 구성될 수 있다.For example, the system may further include a third communication path coupled between the memory and the processor. The memory may be configured to exchange uncorrectable errors over 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 associated with the memory.

예를 들어, 상기 다른 정보는 상기 제 1 통신 경로를 통하여 수신된 정보에 기초할 수 있다.For example, the other information may be based on information received via the first communication path.

예를 들어, 상기 프로세서는 상기 제 2 통신 경로에 연결된 인터페이스를 포함할 수 있고, 상기 프로세서는 상기 인터페이스를 통하여 상기 에러 정보를 수신하고 상기 인터페이스를 통하여 다른 정보를 수신하도록 구성될 수 있다.For example, the processor may include an interface coupled to the second communication path, and the processor may be configured to receive the error information via the interface and receive other information via the interface.

예를 들어, 상기 메모리는 적어도 하나의 직렬 프레즌스 검출 시스템 및 레지스터링 클록 드라이버 시스템을 포함할 수 있고, 상기 다른 정보는 상기 적어도 하나의 직렬 프레즌스 검출 시스템 및 상기 레지스터링 클록 드라이버 시스템으로부터 수신될 수 있다.For example, the memory may include at least one serial presence detection system and a register ring clock driver system, and the other information may be received from the at least one serial presence detection system and the register ring 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. Wherein the first interface is configured to transmit data stored in the at least one memory device and the second interface transmits error information generated in response to correcting errors in data read from the at least one memory device .

예를 들어, 상기 제 2 인터페이스는 적어도 하나의 직렬 프레즌스 검출 인터페이스 및 레지스터링 클록 드라이버 인터페이스를 포함할 수 있다.For example, the second interface may include at least one serial presence detection interface and a register ring clock driver interface.

예를 들어, 상기 메모리 모듈은 상기 제 1 인터페이스에 연결되고, 정정 불가능한 에러의 감지에 응답하여 상기 제 1 인터페이스를 통하여 전송된 데이터 스트로브 신호를 변경하도록 구성되는 컨트롤러를 더 포함할 수 있다.For example, the memory module may further include a controller coupled to the first interface and configured to change a data strobe signal transmitted via 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 uncorrectable error.

본 발명의 실시 예에 따른 방법은, 메모리 모듈에서 에러를 포함하는 데이터를 읽는 단계, 상기 에러를 포함하는 데이터를 읽는 것에 기초하여 에러 정보를 생성하는 단계, 메모리 모듈에서 상기 에러 정보를 읽기 위한 커맨드를 수신하는 단계, 그리고 상기 메모리 모듈로부터, 상기 커맨드에 응답하여 상기 에러 정보를 전송하는 단계를 포함할 수 있다. A method according to an embodiment of the present invention includes the steps of reading data including an error in a memory module, generating error information based on reading the data including the error, generating a command for reading the error information from the memory module And transmitting the error information from the memory module in response to the command.

예를 들어, 상기 방법은 컨트롤러에서 상기 에러 정보를 수신하는 단계, 그리고 상기 컨트롤러로부터 프로세서로, 상기 에러 정보를 전송하는 단계를 더 포함할 수 있다.For example, the method may further comprise receiving the error information at a controller, and transmitting the error information from the controller to the processor.

예를 들어, 상기 방법은, 상기 컨트롤러로부터, 상기 에러 정보를 읽기 위한 상기 커맨드를 전송하는 단계, 그리고 상기 컨트롤러에서 상기 에러 정보를 수신하는 단계를 더 포함할 수 있다.For example, the method may further comprise transmitting the command for reading the error information from the controller, 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, the method comprising: receiving a second command from the processor of the controller for reading error information; and And transmitting, from the controller, the first command in response to the second command.

예를 들어, 상기 방법은, 상기 메모리 모듈로부터, 데이터 스트로브 신호를 변형함으로써 정정 불가능한 에러를 교환하는 단계를 더 포함할 수 있다.For example, the method may further comprise exchanging, from the memory module, an uncorrectable error by modifying the data strobe signal.

예를 들어, 상기 방법은, 프로세서에서, 상기 메모리 모듈과 관련된 추가 정보를 생성하는 단계, 그리고 상기 프로세서에서, 상기 추가 정보를 상기 에러 정보와 결합시키는 단계를 더 포함할 수 있다.For example, the method may further comprise, in the processor, generating additional information associated with the memory module, and at the processor, combining the additional information with the error information.

예를 들어, 상기 메모리 모듈로부터 상기 에러 정보를 전송하는 단계는 통신 회선을 통하여 상기 에러 정보 및 다른 정보를 전송하는 단계를 포함할 수 있다.For example, the step of transmitting the error information from the memory module may include transmitting the error information and other information via 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 coupled to the memory via a main memory channel, and a communication line separate from the main memory and connected to the memory and the processor, A memory channel, and the communication line.

예를 들어, 상기 프로세서는 메모리 컨트롤러를 포함할 수 있고, 상기 메모리 컨트롤러는 메인 메모리 채널의 일부일 수 있다.For example, the processor may include a memory controller, which may be part of a main memory channel.

예를 들어, 상기 프로세서는 상기 통신 회선을 통하여 시스템 관리 정보를 수신하도록 구성될 수 있다.For example, the processor may be configured to receive system management information via the communication line.

예를 들어, 상기 시스템 관리 정보는 열 정보 및 전원 정보 중 적어도 하나를 포함할 수 있다.For example, the system management information may include at least one of column information and power information.

예를 들어, 상기 메모리는 상기 통신 회선을 통하여 상기 프로세서로 에러 정보를 교환하도록 구성될 수 있다.For example, the memory may be configured to exchange error information to the processor via the communication line.

본 발명의 실시 예에 따른 시스템은, 에러 정정 기능이 없는 메모리, 상기 메모리에 연결되고 상기 메모리로부터 읽혀진 데이터의 에러를 정정하고, 상기 에러에 응답하여 에러 정보를 생성하도록 구성되는 에러 정정 회로, 그리고 제 1 통신 경로 및 제 2 통신 경로를 통하여 상기 에러 정정 회로에 연결된 프로세서를 포함할 수 있다. 상기 프로세서는 상기 제 1 통신 경로를 통하여 상기 에러 정정 회로로부터 정정된 데이터를 수신하도록 구성될 수 있고, 상기 프로세서는 상기 제 2 통신 경로를 통하여 상기 에러 정정 회로로부터 상기 에러 정보를 수신하도록 구성될 수 있다.A system according to an embodiment of the present invention includes a memory having no error correction function, an error correction circuit configured to correct errors in data read from the memory and connected to the memory, and to generate error information in response to the error, and And a processor coupled to the error correction circuit through a first communication path and a second communication path. The processor may be configured to receive corrected data from the error correction circuitry via the first communication path and the processor may be configured to receive the error information from the error correction circuitry via the second communication path have.

상기 제 2 통신 경로는 상기 에러 정정 회로로부터 상기 에러 정보를 수신하고 상기 프로세서에 상기 에러 정보를 전송하도록 구성될 수 있다.The second communication path may be configured to receive the error information from the error correction circuit and to transmit the error information to the processor.

본 발명의 실시 예에 따른 방법은, 메모리 장치에서, 데이터 인터페이스를 통하여 수신된 읽기 커맨드에 응답하여 에러를 포함하는 데이터를 읽는 단계, 상기 에러를 포함하는 상기 데이터를 읽는 것에 기초하여 에러 정보를 기록하는 단계, 그리고 상기 메모리 모듈로부터, 상기 에러 인터페이스를 통하여 상기 에러 정보를 전송하는 단계를 포함할 수 있다.A method according to an embodiment of the present invention includes the steps of: reading, in a memory device, data including an error in response to a read command received via a data interface; writing error information based on reading the data including the error; And transmitting the error information from the memory module via the error interface.

예를 들어, 상기 방법은 상기 에러에 응답하여 메모리로부터 읽혀진 상기 데이터를 다시 읽는 단계, 그리고 상기 데이터를 다시 읽는 것에 응답하여 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, the method may further comprise rereading the data read from the memory in response to the error, and verifying the error in response to rereading the data.

예를 들어, 만일 상기 다시 읽혀진 데이터가 정정 불가능한 에러를 나타낸다면, 상기 방법은 정정 불가능으로써 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if the re-read data indicates an uncorrectable error, the method may further comprise verifying the error by uncorrectable.

예를 들어, 만일 다시 읽혀진 데이터가 정정 불가능한 에러이고 상기 에러가 정정 불가능한 에러라는 것을 나타내면, 상기 방법은 리페어 불가능한 것으로서 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if the re-read data indicates an uncorrectable error and the error indicates an uncorrectable error, the method may further comprise identifying the error as being non-repairable.

예를 들어, 만일 상기 읽혀진 데이터가 에러가 없다는 것을 나타내면, 상기 방법은 소프트-읽기 에러로써 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if the read data indicates that there is no error, the method may further comprise identifying the error as a soft-read error.

예를 들어, 상기 방법은 정정 가능한 에러인 상기 에러에 응답하여 상기 메모리에 정정된 데이터를 다시 쓰는 단계를 더 포함할 수 있다.For example, the method may further comprise rewriting the corrected data in the memory in response to the error being a correctable error.

예를 들어, 만일 상기 다시 쓰기 동안 정정 불가능한 에러가 발생하였다면, 상기 방법은 정정 불가능한 에러로써 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if an uncorrectable error has occurred during the rewriting, the method may further comprise identifying the error as an uncorrectable error.

예를 들어, 만일 상기 다시 쓰기 동안 에러가 발생하지 않았다면, 상기 방법은 소프트-읽기 에러로써 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, if an error has not occurred during the rewriting, the method may further comprise identifying the error as a soft-read error.

예를 들어, 만일 상기 다시 쓰기 동안 정정 가능한 에러가 발생하였다면, 상기 방법은 상기 메모리를 리페어 하는 것을 시도하는 단계를 더 포함할 수 있다.For example, if a correctable error has occurred during the rewriting, the method may further include attempting to repair the memory.

예를 들어, 상기 방법은 상기 메모리를 리페어 하는 시도의 결과에 기초하여 상기 에러를 확인하는 단계를 더 포함할 수 있다.For example, the method may further comprise identifying the error based on a result of an attempt to repair the memory.

예를 들어, 상기 방법은, 상기 메모리 모듈로부터, 데이터 스트로브 신호를 변형함으로써 정정 불가능한 에러를 교환하는 단계를 더 포함할 수 있다.For example, the method may further comprise exchanging, from the memory module, an uncorrectable error by modifying the data strobe signal.

본 발명의 실시 예에 따른 메모리 모듈은, 데이터 인터페이스, 에러 인터페이스, 그리고 복수의 메모리 장치들을 포함하되, 각각의 메모리 장치는 상기 데이터 인터페이스 및 상기 에러 인터페이스에 연결될 수 있고, 데이터를 저장하도록 구성되는 메모리, 상기 데이터 인터페이스, 상기 에러 인터페이스, 및 상기 메모리에 연결되는 컨트롤러를 포함할 수 있고, 상기 컨트롤러는 상기 데이터 인터페이스를 통하여 상기 메모리에 저장된 데이터를 전송하도록 구성되고, 상기 컨트롤러는 상기 에러 인터페이스를 통하여 메모리로부터 읽혀진 데이터의 에러를 정정하는 것에 응답하여 생성된 에러 정보를 전송하도록 구성될 수 있다.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 coupled to the data interface and the error interface, , The data interface, the error interface, and a controller coupled to the memory, wherein the controller is configured to transmit data stored in the memory via the data interface, And to send the generated error information in response to correcting errors in the data read from the memory.

예를 들어, 상기 에러 인터페이스는 상기 메모리 장치들로부터 에러 정보를 수집하도록 구성될 수 있다.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 sent from the memory device to the data interface in response to detecting an uncorrectable error, 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 coupled to the memory for reading data stored in the memory, diagnosing errors in the data read from the memory, And a controller configured to acknowledge the error type of the error in response to the error.

예를 들어, 상기 컨트롤러는 소프트-읽기 에러, 소프트-쓰기 에러, 하드 에러, 리페어 가능한 에러, 및 리페어 불가능한 에러 중 적어도 하나로서 상기 에러 타입을 확인할 수 있다.For example, the controller can identify 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 rereading 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 embodiments of the present invention, it is possible to provide a memory device and a module that provide low cost and low power characteristics.

도 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 illustrating a system with a memory system architecture according to an embodiment of the present invention.
2 is a schematic diagram illustrating a system with a memory system architecture including a controller in accordance with an embodiment of the present invention.
3 is a schematic diagram illustrating a system with a memory system architecture including a baseboard management controller (BMC) in accordance with an embodiment of the present invention.
4 is a schematic diagram illustrating a system with a memory system architecture that does not perform processor-based error correction in accordance with an embodiment of the present invention.
5 is a schematic diagram illustrating a system including a memory system architecture with a corrupted data strobe signal in accordance with an embodiment of the present invention.
Figure 6 is a schematic diagram showing a system including a memory system architecture with a separate uncorrectable error signal according to an embodiment of the present invention.
7 is a schematic diagram illustrating a system including a memory system architecture with a software module in accordance with an embodiment of the present invention.
8 is a schematic diagram illustrating a system including a memory system architecture with an error detection and correction module in accordance with an embodiment of the present invention.
9 is a schematic diagram showing a system including a memory system architecture with a collection module according to an embodiment of the present invention.
10 is a schematic diagram illustrating a system including a memory system architecture with an error correction module for collecting information from a memory control architecture module in accordance with an embodiment of the present invention.
11 is a schematic diagram illustrating a system including a memory system architecture with a plurality of modules sharing an interface in accordance with an embodiment of the present invention.
12 is a schematic diagram illustrating a system including a memory system architecture with a correctable error module and a serial presence detection / register clock driver module sharing an interface in accordance with an embodiment of the present invention.
13 is a schematic diagram showing a system including a memory system architecture with an error correction technique in a DRAM according to an embodiment of the present invention.
14A-14D are schematic diagrams showing a system including a memory system architecture with an intra-module error correction technique in accordance with embodiments of the present invention.
15 is a schematic diagram showing a memory module according to an embodiment of the present invention.
16 is a schematic diagram showing a memory module having an SPD or RCD interface according to an embodiment of the present invention.
17 is a schematic diagram showing a memory module having a separate uncorrectable error interface according to an embodiment of the present invention.
18 is a schematic diagram showing a memory device according to an embodiment of the present invention.
19 is a schematic diagram showing a memory device according to an embodiment of the present invention.
20 is a schematic diagram illustrating a memory module including memory devices in accordance with an embodiment of the present invention.
Figures 21 through 23 are schematic diagrams illustrating memory modules in accordance with various embodiments of the present invention.
Figures 24-26 are schematic diagrams showing some of the memory modules in accordance with various embodiments of the present invention.
27 is a schematic diagram showing a memory module according to an embodiment of the present invention.
28 is a flowchart showing a method of exchanging error information according to an embodiment of the present invention.
29 is a flow chart illustrating a technique for handling errors 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 showing a method of exchanging error information according to an embodiment of the present invention.
32 is a flowchart showing a method of exchanging error information according to an embodiment of the present invention.
33 is a flowchart showing 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 showing a system 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 in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out 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 various modifications and various forms, and specific embodiments are illustrated in the drawings and described in detail in the following description. The illustrated embodiments will be described in terms of methods and systems in order to provide specific implementations.

그러나 이러한 방법들과 시스템들은 다른 실시 예에서도 효과적으로 동작할 것이다. “예시적인 실시 예”나 “일 실시 예”, 그리고 “다른 실시 예”가 동일 또는 다른 실시 예뿐만 아니라 다양한 실시 예를 참조할 수 있을 것이다. 이 실시 예들은 특정 구성을 포함하는 시스템 그리고/또는 장치들로 표현될 수 있다. 하지만, 본 발명의 실시 예에 따른 시스템 그리고/또는 장치들은 더 적은 구성들을 도시된 구성보다 더 적은 수의 구성을 포함할 수 있고, 배열의 변경이나 구성들의 종류의 변경이 본 발명의 범위를 벗어나지 않는 한도에서 행해질 수 있다. 본 발명의 예시적인 실시 예는 특정 단계를 포함하는 방법으로 설명될 수 있다. 그러나 그러한 방법과 시스템 동작은 본 발명의 실시 예와 모순되지 않는 다른 그리고/또는 다른 순서를 가진 추가적인 스텝을 갖는 방법에서도 효과적으로 동작할 수 있다. 따라서, 본 발명의 개념을 적용한 실시 예는 도시된 예에만 국한되지 않는 것으로 이해되어야 한다. However, these methods and systems will work effectively in other embodiments as well. &Quot; exemplary embodiment ", " one embodiment ", and " other embodiment " may refer to the same or different embodiments as well as various embodiments. These embodiments may be represented by systems and / or devices that include a particular configuration. However, systems and / or devices according to embodiments of the present invention may include fewer configurations, fewer configurations than the depicted configuration, and variations in arrangement or type of configurations do not depart from the scope of the present invention Can be done without limitation. Exemplary embodiments of the present invention may be described in a manner that includes specific steps. However, such methods and system operations may also operate effectively in methods having additional steps with different and / or different orders that are not inconsistent with embodiments of the present invention. Therefore, it should be understood that the embodiments to which the concept of the present invention is applied are not limited to the illustrated examples.

어떤 요소들을 포함하는 특정 메모리 시스템 아키텍처에 포함되는 것으로 실시 예들이 설명될 것이다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 실시 예들이 다른 추가 구성이나 특징을 포함하는 메모리 시스템 아키텍처에서도 동일하게 동작할 수 있음을 이해할 수 있을 것이다. 하지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 방법과 시스템이 다른 구조에서도 동일하게 동작할 수 있음을 잘 이해할 것이다. 방법들과 시스템들은 문맥에서 단일 요소로 표현될 수도 있다. 하지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 방법들과 시스템들이 복수의 요소들을 갖는 메모리 시스템 아키텍처를 사용하여 동일하게 동작할 수 있음을 잘 이해할 것이다.Embodiments will be described as being included in a particular memory system architecture including certain elements. Those skilled in the art will appreciate that embodiments of the present invention may operate in a memory system architecture including other additional features or features. It will be appreciated, however, by one of ordinary skill in the art that the method and system of the present invention may operate identically in other configurations. Methods and systems may be represented by a single element in the context. However, those skilled in the art will appreciate that the methods and systems may operate identically using a memory system architecture having a plurality of elements.

이 기술 분야에 정통한 사람은 일반적으로 여기서 사용되는 용어, 특히 첨부되는 청구항에 사용된 용어는 열린 용어이다(즉, '포함하는'이라는 용어는 '포함하되 한정되지 않는'으로, '갖는'이라는 용어는 '적어도 하나를 갖는'으로 해석되어야 한다). 이 기술 분야에 정통한 사람에게 있어서, 청구항에 기술된 특정 숫자는, 청구항 내에서 명시적으로 인용되었다고 해도, 그런 인용이 존재하지 않는 청구항에서는 특정 숫자의 한정이 존재하지 않는 것으로 이해되어서는 안된다. 예를 들면, 이해를 돕기 위해 후속되는 종속 청구항에서 '적어도 하나'와 '하나 또는 그 이상'이라는 구문이 포함될 수 있을 것이다. 하지만, 이와 같은 구문의 사용은 하나의 예시를 위해서 불명확한 '하나'라는 관사에 의해서 기술되는 한정으로 이해되어서는 안된다. Those skilled in the art will readily appreciate that the terms generally used herein, particularly those used in the appended claims, are open terms (i.e., the term 'comprising' includes 'including but not limited to' Should be interpreted as having at least one). For those of ordinary skill in the art, the particular numbers recited in a claim should not be construed as a reference to a particular number, even if the recitation is explicitly recited in the claim, without the reference being made to such a claim. For example, the phrase "at least one" and "one or more" may be included in subsequent dependent claims to facilitate understanding. However, the use of such phrases should not be construed as a limitation that is described by the article "one" which is unclear for one illustration.

게다가, '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 convention such as' at least one of A, B, or C 'is used, such a syntax will be well understood by those skilled in the art (i.e.,' at least one of A, B, Includes the meaning of A alone, B alone, C alone, A and B, A and C, B and C, and / or A together with B and C, but is not limited to any one concept ). For those of ordinary skill in the art, it is contemplated that the letters and / or phrases having two or more separate selectable terms in the description, claims, or drawings may include one, or both, or both terms . 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 illustrating a system with a memory system architecture according to an embodiment of the present invention. The system 100 may include a memory 102 coupled to the processor 104. The memory 102 may be configured to store data. When data is read from the memory 102, the memory 102 may be configured to correct errors (if possible, in the data). For example, the memory 102 may be configured to correct a single-bit error. The memory 102 may be configured to detect a double-bit error. Although illustratively the particular number of bits of error has been described as being corrected, the memory 102 may be configured to correct or detect various bits of error. In addition, although one or more error correction techniques result in single-bit error correction or double-bit error correction detection, the memory 102 may perform any error correction techniques that can correct at least one error .

메모리(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), 불휘발성 메모리, 또는 이와 유사한 것들을 포함할 수 있다.The memory 102 may comprise an apparatus configured to store data. In a particular example, the memory 102 may be a dynamic random access memory (DRAM). The memory 102 may include 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), non-volatile memory, or the like.

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

프로세서(104)는 메모리에 연결되고 명령들을 실행할 수 있도록 구성될 수 있다. 예를 들어, 프로세서(104)는 범용 프로세서, DSP (digital signal processor), GPU (graphics processing unit), ASIC (application specific integrated circuit), 프로그램 가능한 논리적 장치 (programmable logic device), 또는 이와 유사한 것일 수 있다.The processor 104 may be configured to be coupled to a 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, .

프로세서(104)는 제 1 통신 경로(106) 및 제 2 통신 경로(108)를 통하여 메모리(102)에 연결될 수 있다. 프로세서(104)는 제 1 경로(106)를 통하여 메모리로부터 데이터를 수신하도록 구성될 수 있다. 예를 들어, 제 1 통신 경로(106)는 데이터 신호들, 스트로브 신호들, 클록 신호들, 인에이블 신호들, 또는 이와 유사한 것을 위한 신호 라인들을 갖춘 시스템 메모리 인터페이스일 수 있다. 즉, 통신 경로(106)는 프로세서(104)와 메인 시스템 메모리로서의 메모리(102) 사이의 인터페이스인 메인 메모리 채널의 일부일 수 있다. The processor 104 may be coupled to the memory 102 via a first communication path 106 and a second communication path 108. The processor 104 may be configured to receive data from the memory via the 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, communication path 106 may be part of the main memory channel, which is the interface between processor 104 and memory 102 as 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 via a second communication path 108, which is another communication path. The processor 104 may be configured to receive error information from the memory 102 via the second communication path 108. Thus, in an embodiment, the processor 104 may be configured to receive error information and, in particular, corrected error information via the second communication path 108 rather than the first communication path 106. The corrected error information is information regarding the corrected error. As described above, the error information may include various types of information related to the error. Thus, the corrected error information may include similar types of information associated with the corrected error.

소프트웨어(110)는 프로세서(104)에 연결되는 것으로 도시되었다. 그러나, 소프트웨어(110)는 프로세서(104)에서 실행될 수 있는 다양한 프로그램들, 드라이버들, 모듈들, 루틴(routine)들, 또는 이와 유사한 것들을 나타낼 수 있다. 예를 들어, 소프트웨어(110)는 드라이버들, 커널 모듈들, 대몬(daemon)들, 애플리케이션들, 또는 이와 유사한 것들을 포함할 수 있다. 어떤 실시 예에서, 소프트웨어(110)는 프로세서(104)를 인에이블 시켜 본 명세서에서 설명되는 특정한 기능들을 수행하도록 구성될 수 있다.The software 110 is shown coupled 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, the software 110 may be configured to enable the processor 104 to perform the 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)이 제공될 수 있다.Any number of memories 102 may be connected to the processor 104 through two communication paths similar to the communication paths 106 and 108, although one memory 102 is used by way of example. Each memory 102 has a dedicated second communication path 108 separate from other memories 102 and via a dedicated first communication path 106 and separate from the other memories 102, Lt; RTI ID = 0.0 > 104 < / RTI > 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, a plurality of first communication paths 106 may be provided between one or more memories 102, although a single first communication path 106 has been described. Similarly, although a 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, the error information may be exchanged through an out-of-band communication path. 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 via the first communication path 106. [ On the other hand, the 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 illustrating a system with a memory system architecture including a controller in accordance with an embodiment of the present invention. In this embodiment, the system 200 includes a memory 202, a processor 204, a memory 202, and a memory 204, similar to the memory 102, the processor 104, the communication paths 106 and 108, Communication paths 206 and 208, and software 210. The second communication path 208 may include a controller 214 and a first bus 212 coupled to 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), 또는 이와 유사한 것일 수 있다.Controller 214 may be a device configured to be coupled to memory 202 and processor 204. For example, 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, .

버스들(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, 도는 그 이상일 수 있다.Busses 212 and 216 may be various communication lines. For example, the buses 212 and 216 may be a system management bus (SMBus), an inter-integrated circuit (I2C) bus, an intelligent platform management interface (IPMI) compliant bus, a Modbus bus, Lt; / RTI > In certain embodiments, at least a portion of the communication path 208 may operate at a substantially 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, communication path 208 may have a lower data rate than 10 Mbit / s, 100 kbit / s, or the like. Thus, in some embodiments, the data transmission rate ratio of communication path 206 and communication path 208 may be approximately 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 may 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 non-volatile memory device 268 may be coupled to the controller 214 by a bus 212. In other embodiments, other devices 266 may be coupled to the controller 214. Thus, information other than information from memory 202 may be transferred to and / or from processor 204 and / or memory 202 via bus 212 and / or 216 and / or from processor 204 and / . In particular, the error information from the memory 202 may be exchanged with the processor 204 via the second communication path 208, which is used for other purposes, including purposes related to non-volatile memory.

실시 예에서, 컨트롤러(214)는 불휘발성 메모리(254)를 포함할 수 있다. 불휘발성 메모리(254)는 메모리(202)로부터의 에러 정보를 저장하도록 구성될 수 있다. 따라서, 에러 정보는 전원이 차단되더라도 컨트롤러(214)에 보존될 수 있다. 프로세서(24)는 컨트롤러(214)로부터의 에러 정보를 요청하도록 구성될 수 있다. 따라서, 컨트롤러(214)는 불휘발성 메모리(254)에 저장된 에러 정보를 제공함으로써 그러한 요청에 응답하도록 구성될 수 있고, 메모리(202)에 액세스하여 프로세서(204) 또는 이와 유사한 것에 응답하여 에러 정보를 검색할 수 있다.In an embodiment, the controller 214 may include a non-volatile memory 254. The non-volatile memory 254 may be configured to store error information from the memory 202. Therefore, the error information can be saved in the controller 214 even if the power is turned off. The processor 24 may be configured to request error information from the controller 214. Controller 214 may be configured to respond to such a request by providing error information stored in non-volatile memory 254 and may access memory 202 and provide error information in response to 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 polling the memory 202 for error information. In another embodiment, the memory 202 may be configured to push memory information to the controller 214. Regardless, the error information stored in the non-volatile memory 254 may be an 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 illustrating a system with a memory system architecture including a baseboard management controller (BMC) in accordance with an embodiment of the present invention. In this embodiment, the system 300 includes a memory 302, a processor 304, a memory 302, and a memory 304, similar to the memory 202, the processor 204, the communication paths 206 and 208, Communication paths 306 and 308, and software 310. 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)를 포함하지 않는 어떠한 통신 경로일 수 있다.A baseboard management controller (BMC) 314 may be configured to manage the system 300. For example, the BMC 314 may be coupled to various sensors of the system 300, including sensors of the processor 304, memory 302, other devices 366, or the like. The BMC 314 may be configured to collect and report on various system parameters, such as temperature, cooling state, power state, or the like. The BMC 314 can be configured to manage the system in accordance with standards and enable access to information. 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 available over other communication paths, 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 illustrating a system with a memory system architecture that does not perform processor-based error correction in accordance with an embodiment of the present invention. In this embodiment, the system 400 includes a memory 102, a processor 404, communication paths 106 and 108, and a memory 402 similar to the software 110, the processor 404, Paths 406 and 408, and software 410. However, in the present 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 into the processor 404. The memory controller 450 may be part of the main memory channel, which is the 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, the memory controller 450 may be configured to correct errors, but may not have the opportunity to correct such errors when error correction is performed by the memory 402. However, in the present embodiment, the memory controller 450 may not be configured to correct errors in the data read from the memory 402. Memory controller 450 may not be configured to report any error based on data read from 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 a hardware error can be reported. For example, cache errors, bus errors, data errors, 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 may be written to the MCA register 452, May not be reported. Regardless, as described above, the error information can 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 via 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, processor 404 without error correction capability can be used because there is error information available through second communication path 408. [ Thus, the software 410, which includes any software that uses error information, can still operate as if the processor could make a memory error correction. 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 memory controller 450 is shown as being integrated in processor 404, memory controller 450 may be separate from processor 404. Regardless, communication path 408 may bypass memory controller 450 and other parts of processor 404 having error correction circuitry. The bypassing of such components may cause the exchange of error information via the second communication path 408 to be substantially independent of the memory controller 450, the MCA register 452, or the like. That is, even if similar information is not available through memory controller 450 and / or MCA register 452, 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 illustrating a system including a memory system architecture having a poisoned data strobe signal in accordance with an embodiment of the present invention. In the present embodiment, the system 500 includes a memory 502, a processor 504, a memory 502, and a memory 502, similar to the memory 110, the processor 104, the communication paths 106 and 108, Communication paths 506 and 508, and software 510. However, in the present embodiment, communication path 506 may include data lines 532 and data strobe line (s) The other lines were 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, the error information associated with the uncorrectable error and the error information associated with the correctable error may be exchanged over different paths. As described above, the correctable error information can be exchanged via communication path 508. [ The uncorrectable error information may include various other types of information based on uncorrectable errors. The uncorrectable error information may be exchanged via the first communication path 506. [ For example, memory 502 may be configured to correct uncorrectable errors by signals transmitted (or not transmitted) through data strobe line (s) 533. That is, during normal data transmission, the data strobe signal transmitted via data strobe line (s) 533 may be toggled when data is transmitted. However, if the memory 502 detects an uncorrectable error, the memory 502 may provide a data strobe for transmission over the data strobe line (s) 533, different from the data strobe signal during normal data transmission Signal. ≪ / RTI > In particular, the memory 502 may be configured not to toggle the data strobe signal transmitted via the data strobe line (s) 533. When such a condition is detected, the processor 504 may be configured to generate a hardware exception, which may be processed by the software 510.

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

도 6은 본 발명의 실시 예에 따른 별도의 정정 불가능한 에러 신호를 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(600)은 도 1의 메모리(102), 프로세서(104), 통신 경로(106 및 108), 및 소프트웨어(110)와 유사한 메모리(602), 프로세서(604), 통신 경로(606 및 608), 및 소프트웨어(610)를 포함할 수 있다. 그러나, 본 실시 예에서, 별도의 통신 경로(634)가 메모리(602)와 프로세서(604) 사이에 연결될 수 있다.Figure 6 is a schematic diagram showing a system including a memory system architecture with a separate uncorrectable error signal according to an embodiment of the present invention. In this embodiment, system 600 includes memory 102, processor 104, communication paths 106 and 108, and memory 110 similar to software 110, processor 604, (606 and 608), and software (610). However, in the present embodiment, a separate communication path 634 may be coupled 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, uncorrectable errors may be interchanged with processor 604. In this embodiment, the memory 602 may be configured to exchange uncorrectable error information via the communication path 634. [ For example, the third communication path 634 may be a dedicated line separate from the first communication path 606. Thus, error information associated with uncorrectable errors can be received by the processor 604 via 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 with a software module in accordance with an embodiment of the present invention. In the present embodiment, system 700 includes memory 102, processor 104, communication paths 106 and 108, and memory 1102 similar to software 110, processor 704, communication path 702, (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 a kernel module, a driver, an extension, or the like. Module 718 may include a driver for an interface associated with communication path 708. In a particular embodiment, the module 718 may include drivers associated with an IPMI bus, an IPMI2 bus, or the like. Other information 720 may be available to the software 710. Error information 722 is shown separately to indicate a portion of software 710 associated with error information 722. [

본 실시 예에서, 모듈(718)은 프로세서(704)가 메모리(702)로부터의 에러 정보를 요청하게 할 수 있다. 예를 들어, 메모리(702)는 에러 정보를 생성할 수 있다. 이후, 프로세서(704)는 통신 경로(708)를 통하여 에러 정보를 위한 요청을 전송할 수 있다. 메모리(702)는 통신 경로(708)를 통하여 에러 정보와 함께 요청에 응답하도록 구성될 수 있다.In this embodiment, module 718 may cause processor 704 to request error information from memory 702. [ For example, the memory 702 may generate error information. Thereafter, the processor 704 may send a request for error information via the communication path 708. Memory 702 may be configured to respond to the request with error information via 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 with an error detection and correction module in accordance with an embodiment of the present invention. The system 800 includes a memory module 718 that operates in response to the memory 702, the processor 704, the communication paths 706 and 708, and the information 720 and 722 of FIG. Includes a software 810 that includes a memory 802 similar to the software 710 that performs the functions described herein, a processor 804, communication paths 806 and 808, and 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, peripherals, busses, and / or other parts of the system 800, You can expose such information to the layer. In particular, the EDAC module 824 may be configured to receive error information from the module 818. The EDAC module 824 may be configured to combine error information and other information so that other modules, applications, or the like may 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 showing a system including a memory system architecture with a collection module according to an embodiment of the present invention. The system 900 includes a module 708 that operates in response to the memory 702, the processor 704, the communication paths 706 and 708, and the information 720 and 722 of FIG. Software 810 including a memory 902, a processor 904, communication paths 906 and 908, and a module 818 operating in response to information 920 and 922, similar to software 710, . ≪ / RTI > However, in the present embodiment, the software 910 may include a 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 the error for 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 with the error information 922. The first module 918 may provide the combined information to a single interface. For example, the first module 918 may be configured to provide information combined with the EDAC module, such as the EDAC module 824 of FIG.

도 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 illustrating a system including a memory system architecture with an error correction module for collecting information from a memory control architecture module in accordance with an embodiment of the present invention. In this embodiment, system 1000 includes modules 918 and 926 (not shown) operating in response to memory 902, a processor 904, communication paths 906 and 908, and information 920 and 922, A memory 1002, a processor 1004, communication paths 1006 and 1008, and modules 1018 and 1026 operating in response to information 1020 and 1022, similar to software 910, (Not shown). However, in the present 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. The information 1020 may represent information from the MCA register 452. EC module 1018 may be configured to access MCA module 1026 to recover information 1020. EC module 1018 may combine information 1020 from MCA module 1026 with error information 1022 and provide the combined information to 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 similar or similar to the MCA module 1026, which allows the processor 1004 to correct errors. 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 errors in the data read from the memory 1002, error information may be provided by the communication path monitored by the MCA module 1026 due to errors corrected in the memory 1002 If not, the MCA module 1026 will not be able to provide error information. Regardless, the EC module 1018 combines the information 1020 with the information 1022 obtained via the communication path 1008 and provides the MCA module 1026 with the processor 1004 to access the memory 1002, Information that is similar or identical to the error information available to the MCA module 1026, or information that has been used to correct errors in the data read from the MCA module 1026. [ 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 error information that is sufficiently used. As a result, cost reduction is possible 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 with a plurality of modules sharing an interface in accordance with 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. A memory 1102, a processor 1104, communication paths 1106 and 1108, and software 1110 that operates in response to information 1120 and 1122. However, in the present 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. However, the first module 1118 may be configured to receive error information from the memory 1102 via 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 via the IPMI bus.

제 2 모듈(1128)과 같은 다른 모듈들도 인터페이스 모듈(1130)을 통하여 통신을 수행하도록 구성될 수 있다. 예를 들어, 제 2 모듈(1128)은 IPMI 버스에 접속되는 또 다른 장치들에 액세스하거나, 열 정보 또는 전원 정보와 같은 메모리(1102)의 다른 부분에 액세스하도록 구성될 수 있다. 에러 정보 및 다른 정보 모두는 인터페이스 모듈(1130)에 의해서 전달되는 정보(1122)의 일부분일 수 있다. 즉, 에러 정보는 전체 경로를 통하여 전용의 소프트웨어를 사용하여 전송될 수 있으나, 모듈들, 인터페이스들, 버스들, 또는 이와 유사한 것들과, 관련되거나 관련되지 않은 정보나 소스를 공유할 수 있다. Other modules, such as the second module 1128, may also be configured to communicate via the interface module 1130. [ For example, the second module 1128 may be configured to access other devices connected to the IPMI bus, or 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 conveyed by the interface module 1130. That is, the error information may be transmitted using dedicated software over the entire path, but may share information or sources related or unrelated to modules, interfaces, busses, 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)이다. Figure 12 is a schematic diagram illustrating a system including a memory system architecture with a correctable error module and a serial presence detect / register clock driver module sharing an interface in accordance with an embodiment of the present invention . In this embodiment, system 1200 includes modules 1118, 1128 (not shown) operating in response to memory 1102, processor 1104, communication paths 1106 and 1108, and information 1120 and 1122, And modules 1218, 1228 (or modules) that operate in response to information 1202, 1222, and memory 1202, processor 1204, communication paths 1206 and 1208, And 1230). However, in the present embodiment, the first module 1218 is a corrected error (CE) module and the second module 1228 is a serial presence detect (SPD) / 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. Information may be accessed via the second communication path 1208. [ Therefore, the error information provided from the memory 1202 in this embodiment can be accessed via the communication path 1208 as information related to the SPD / RCD.

도 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 showing a system including a memory system architecture with an error correction technique in a DRAM according to an embodiment of the present invention. In this embodiment, the system 1300 is similar to the MCA module 1026 and the error correction module 1018 operating in response to the memory 1002, the processor 1004, and the 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 the present 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 can be configured to store data and correct errors in the stored data. In this embodiment, the ECC DIMM 1302 may be coupled to the memory controller 1350 of the processor 1304 via corresponding communication paths 1364, respectively. Communication path 1364 may include lines for communicating data signals and data strobe signals similar to communication path 506 of FIG. ECC DIMM 1302 includes a communication path 1308 including bus 1312, BMC 1314, and bus 1316, similar to bus 312, BMC 314, and bus 316 of FIG. Lt; / RTI > to processor 1304, respectively.

실시 예에서, 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 the data read from the ECC DIMM 1302. Error correction techniques include single error correction (SEC-DEC) technology, single-chip chipkill technology, and double-chip chipkill technology. . ≪ / RTI > Any error correction technique can be used.

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

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

실시 예에서, 에러 정정 모듈(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, error correction module 1318 may create 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. 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 the 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, etc. can be used without error correction and modifications to those used with the processor. For example, the EDAC module 1324 may be configured to poll the EC module 1318 for memory ECC information. As a result, the EC module 1318 may return the error information received via the second communication path 1308. A memory ECC daemon 1358 in communication with the EDAC module 1324 may poll the EDAC module 1324 for error information. The memory ECC daemon 1358 may then take an action corresponding to the error information at the application level. Such actions may include page expiration, other error management operations to operate the system 1300, operations to maintain a confidence level, discard recommendations, 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, uncorrectable errors can be detected. Uncorrectable error information may be communicated to error correction module 1318 via memory controller 1350, MCA register 1352, and MCA module 1326. For example, uncorrectable errors may be communicated via MCA module 1326 to non-maskable interrupts, exceptions, and so on. In certain embodiments, regardless of how it is passed to the memory controller 1350, the memory controller 1350 can generate a hardware exception in response to an uncorrectable error. The MCA module 1326 may intercept the exception information and pass the exception information to the error correction module 1318. The error correction module 1318 may then pass the exception information to the EDAC module 1324. [ In addition to or in addition to conveying uncorrectable error information as described above, uncorrectable error information may be communicated via 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 communicate the corrected data to the processor 1304. [ However, the data may be erroneous between the ECC DIMM 1302 and the memory controller 1350. Thus, any form of error correction may be performed between the ECC DIMM 1302 and the processor 1304 or the memory controller 1350. [ For example, the data conveyed from the ECC DIMM 1302 may be encoded with an error correction code that is intended to detect errors occurring on the communication link 1364. By such error correction, the entire path from the storage medium of the ECC DIMM 1302 to the processor 1304 can 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-14D are schematic diagrams showing a system including a memory system architecture with an intra-module error correction technique in accordance with embodiments of the present invention. Referring to FIG. 14A, system 1400 may include configurations similar to the system of FIG. However, in the present embodiment, the ECC DIMM 1402 includes a buffer 1462. Buffer 1462 may be configured to correct errors contained in data read from ECC DIMM 1402. [ In particular, the uncompensated data can be read from an internal memory device such as DRAM devices (not shown) of the ECC DIMM 1402. Buffer 1462 can be configured to correct errors in uncorrected data and generate corrected error information similar to the other memories described herein. The above-described error information is communicated via communication path 1408 and can be used by the methods described above. That is, the error information can be used by the various methods described above irrespective of the manner in which the error information is generated.

도 14b를 참조하면, 시스템(1400)의 구성들은 도 14a의 그것들과 유사할 수 있다. 그러나, 본 실시 예에서, EDAC 모듈(1424)은 MCA 모듈(1426)과 정보를 교환하도록 구성될 수 있다. 예를 들어, EDAC 모듈(1424)은 하드웨어 관련 정보, 정정 불가능한 에러 정보, 또는 MCA 모듈(1426)을 통하여 이용 가능한 정보를 위해 MCA 모듈(1426)을 폴링하도록 구성될 수 있다. EDAC 모듈(1424)은 MCA 모듈(1426)로부터 제공되는 정보와 에러 정정 모듈(1418)로부터 전달되는 정보를 조합하도록 구성될 수 있다. 14B, the configurations of system 1400 may be similar to those of FIG. 14A. However, in the present embodiment, the EDAC module 1424 can 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 can be configured to combine the information provided from the MCA module 1426 with the information conveyed 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, the configurations of system 1400 may be similar to those of FIG. 14A. However, in the present embodiment, the MCELOG module 1425 can be configured to receive information from the error correction module 1418. The MCELOG module 1425 may be configured to record machine check events (MCEs) associated with various system errors such as memory errors, data transmission errors, and the like. MCELOG module 1425 may be configured to generate an interrupt to memory ECC daemon 1458 and to convey error information to memory ECC daemon 1458. [

도 14d를 참조하면, 시스템(1400)의 구성들은 도 14c의 그것들과 유사할 수 있다. 그러나, 본 실시 예에서, 도 14a와 도 14b의 사이의 차이점과 유사하게, MCELOG 모듈(1425)은 도 14b의 EDAC 모듈(1424)과 유사하게 MCA 모듈(1426)로부터 제공되는 정보를 수신하도록 구성될 수 있다. Referring to FIG. 14D, the configurations of system 1400 may be similar to those of FIG. 14C. 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. However, in the present embodiment, .

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

도 15는 본 발명의 실시 예에 따른 메모리 모듈을 보여주는 개략도이다. 메모리 모듈(1500)은 하나 또는 그 이상의 메모리 장치들(1501), 데이터 인터페이스(1536), 에러 인터페이스(1538), 그리고 컨트롤러(1541)를 포함할 수 있다. 데이터 인터페이스(1536)는 메모리 장치들(1501)에 저장된 데이터로부터 데이터(1540)를 전송하고 수신하도록 구성될 수 있다. 메모리 모듈(1500)은 하나 또는 그 이상의 메모리 장치들(1501)로부터 읽혀진 데이터에 대해 에러 정보를 생성하도록 구성될 수 있다. 에러 인터페이스(1538)는 하나 또는 그 이상의 메모리 장치(1501)로부터 읽혀진 데이터에 있는 에러를 정정하는 것에 응답하여 생성된 에러 정보를 전송하도록 구성될 수 있다. 15 is a schematic diagram showing a memory module according to an embodiment of the present invention. 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 the data stored in the memory devices 1501. 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 send the generated error information in response to correcting errors in the data read from the 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 the data 1540 to be stored in the memory devices 1501 is received. For example, data interface 1536 may include a buffer, driver circuit, termination, or other circuitry for lines such as a data line, a strobe line, an address line, an enable line, a clock line,

에러 인터페이스(1538)는 SMBus, IPMI, 또는 본 명세서에서 설명된 다른 버스들과 같은 특정 버스를 통하여 통신하도록 구성된 인터페이스일 수 있다. 실시 예에서, 에러 인터페이스(1538)는 메모리 모듈(1500)이 에러 정보와 더불어 다른 정보를 교환하기 위한 기존의 인터페이스일 수 있다. 따라서, 정보(1542)는 에러 정보뿐만 아니라 다른 정보도 포함할 수 있다. The error interface 1538 may be an interface configured to communicate over a particular bus, such as SMBus, IPMI, or other buses described herein. In an embodiment, the error interface 1538 may be an existing interface for the memory module 1500 to exchange other information with error information. Thus, the information 1542 may include other information as well as error 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 coupled to the memory devices 1501. For example, the controller 214 may comprise a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a programmable logic device, and the like. Controller 1541 may include a buffer such as an RCD or the like, as will be described in greater detail below.

컨트롤러(1541)는 메모리 장치들(1501), 데이터 인터페이스(1536), 그리고 에러 인터페이스(1538)와 연결될 수 있다. 컨트롤러(1541)는 에러 정보를 얻도록 구성될 수 있다. 실시 예에서, 컨트롤러(1541)는 메모리 장치들(1501)로부터 에러 정보를 획득할 수 있지만, 다른 실시 예에서는, 컨트롤러(1541)는 메모리 장치들(1501)로부터의 데이터에 있는 에러를 정정하고 에러 정보를 생성하도록 구성될 수 있다. Controller 1541 may be coupled to memory devices 1501, data interface 1536, and 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 other embodiments, the controller 1541 may correct errors in the data from the memory devices 1501, Information. ≪ / RTI >

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

도 16은 본 발명의 실시 예에 따른 SPD 또는 RCD 인터페이스를 갖는 메모리 모듈을 보여주는 개략도이다. 본 실시 예에서, 메모리 모듈(1600)은 도 15에서 설명된 하나 또는 그 이상의 메모리 장치들(1501), 데이터 인터페이스(1536), 에러 인터페이스(1538), 및 컨트롤러(1541)와 유사한, 하나 또는 그 이상의 메모리 장치들(1601), 데이터 인터페이스(1636), 에러 인터페이스(1638), 및 컨트롤러(1641)를 포함할 수 있다. 그러나, 도 15의 에러 인터페이스(1538)는 여기서 SPD/RCD 인터페이스(1638)일 수 있다.16 is a schematic diagram showing 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 the one or more memory devices 1501, data interface 1536, error interface 1538, and controller 1541 described in Figure 15, And may include memory devices 1601, a data interface 1636, an error interface 1638, and a controller 1641. 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 may be used to provide access to a serial presence detection (SPD) system or an RCD system (not shown). In certain embodiments, the error information may be available through a specific register or memory area within the SPD or RCD system described above. Thus, the error information can be obtained through the same interface over which the SPD or RCD information can be obtained.

에러 정보가 기존의 하드웨어 인터페이스를 통하여 이용 가능하기 때문에, 추가적인 하드웨어는 불필요하다. 예를 들어, 에러 정보를 액세스하기 위한 SPD/RCD 인터페이스(1638)를 통하여 수신되는 커맨드는 어드레스, 레지스터 어드레스, 또는 SPD/RCD 시스템에 의해서 비사용되는 다른 필드 등에 있어서 다른 명령어들과 구별된다. 실시 예에서, 에러 정보를 게시하기 위해 SPD/RCD 시스템의 새로운 레지스터가 정의될 수 있다. 다른 실시 예에서, 에러 정보를 교환하기 위해 기존의 레지스터가 재사용될 수도 있을 것이다.Since the error information is available through the existing hardware interface, no additional hardware is needed. For example, commands received via the SPD / RCD interface 1638 for accessing error information are distinguished from other instructions in the address, register address, or other fields that are 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 showing a memory module having a separate uncorrectable error interface according to an embodiment of the present invention. In this embodiment, the memory module 1700 is similar to the one or more memory devices 1501, data interface 1536, error interface 1538, and controller 1541 described in FIG. The memory device 1701, the data interface 1736, the error interface 1738, and the 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 that the memory module 1700 is configured to exchange uncorrectable errors. For example, the uncorrectable error interface 1744 may be a dedicated line, a dedicated bus, or the like.

도 18은 본 발명의 실시 예에 따른 메모리 장치를 보여주는 개략도이다. 본 실시 예에서, 메모리 장치(1800)는 데이터인터페이스(1836) 및 에러 인터페이스(1838)를 포함할 수 있다. 데이터 인터페이스(1836) 및 에러 인터페이스(1838)는 도 15의 데이터 인터페이스(1536) 및 에러 인터페이스(1538)와 유사할 수 있다. 그러나, 본 실시 예에서, 데이터 인터페이스(1836) 및 에러 인터페이스(1838)는 도 15의 메모리 모듈과 같은 메모리 모듈보다는 메모리 장치(1800)로의 인터페이스일 수 있다.18 is a schematic diagram showing 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 the error interface 1838 may be similar to the data interface 1536 and the error interface 1538 of FIG. 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.

메모리 장치(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. Controller 1814 may be any device configured to be coupled to 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 comprise 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 via the data interface 1836. Controller 1841 may be configured to receive data to be stored in memory 1801 via data interface 1836. [ Such transmissions are indicated by data 1840.

컨트롤러(1841)는 에러 인터페이스(1838)를 통하여 메모리(1801)로부터 읽혀진 데이터에 있는 에러를 정정하는 것에 응답하여 생성된 에러 정보를 전송하도록 구성될 수 있다. 에러 정보는 앞서 설명된 에러 정보의 타입과 유사할 수 있다. 컨트롤러(1841)는 에러 인터페이스(1838)를 통하여 커맨드, 명령, 또는 다른 정보를 수신하도록 구성될 수 있다. 그러한 커맨드, 명령, 또는 다른 정보의 전송은 정보(1842)로 표시되었다.The controller 1841 may be configured to transmit the generated error information in response to correcting the error in the data read from the memory 1801 via the error interface 1838. [ The error information may be similar to the type of error information described above. Controller 1841 may be configured to receive commands, instructions, or other information via error interface 1838. The transmission of such a command, command, 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 via controller 1841. [ However, in other embodiments, the components of memory device 1800 may be controlled by controller 1841 so that data 1840 and information 1842 may not pass through controller 1841. [ For example, in some embodiments, data and / or error information may be provided to data interface 1836 and error interface 1838 under the control of controller 1841, but may be via 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 showing 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 can be configured to store encoded data. The sense amplifier 1902 and the write circuit 1904 are arranged in a memory device 1900 that allows data to be written into the memory cell array 1901 at an address specified by the address 1906 and read from the memory cell array 1901 It 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 the sense amplifier 1902 and the write circuit 1904 are shown as a part of the memory cell array 1901, such a circuit can be separated from the memory cell array 1901. [ In addition, although a single memory cell array 1901 is shown, a plurality of memory cell arrays 1901 can 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 coupled to an error correcting code (ECC) engine 1908. The ECC engine 1908 can 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 by 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 a 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 to decode the data into decoded output data 1924. [ Such encoding and decoding may be performed according to various ECC algorithms as described herein. For example, SEC-DED (Single Error Correct-Double Error Detect) may be used as an example of an ECC algorithm, but other algorithms may be used.

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

특정한 실시 예에서, 쓰기 동작 동안, ECC 엔진(1908)은 메모리 장치(1900)가 저장하는 비트들을 쓰기 데이터(1910)로써 수신하도록 구성될 수 있다. ECC 엔진(1908)은, 인코딩된 데이터로써 원래의 데이터 값들과 마찬가지로, 쓰기 회로(1904)를 사용하여 메모리 셀 어레이(1901)로, 쓰기 데이터(1910)에 대한 ECC 비트 값(들)을 계산하고 ECC 비트(들)을 전송하도록 구성될 수 있다. 그 후, 메모리 셀 어레이(1901)는 인코딩된 데이터를 저장하도록 구성될 수 있다.In a particular 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 to the memory cell array 1901 using the write circuit 1904 as well as the original data values as the encoded data 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 the encoded data from the memory cell array 1901. That is, sense amp 1902 and other circuitry can be used to read the previously stored ECC bit (s) and original data values as encoded data. The ECC engine 1908 may then decode the encoded data, generate output data 1924, and generate error information.

출력 데이터(1924)는 메모리 장치(1900)로부터 출력될 수 있다. 어떤 실시 예에서, 다른 구성 요소들은 ECC 엔진과 메모리 장치(1900)의 출력 사이에 배치될 수 있다. 어떤 실시 예에서, 버퍼(1932)는 출력 데이터(1924)를 버퍼링하도록 구성될 수 있다. 어떤 실시 예에서, RCD 모듈(1934)은 출력 데이터(1924)를 수신하고, 버퍼링하고, 출력하도록 구성될 수 있다. 여기서, 그러한 옵션적인 구성 요소들은 점선으로 도시되었다.Output data 1924 may be output from memory device 1900. In some embodiments, other components may be placed between the ECC engine and the output of the memory device 1900. In some embodiments, the buffer 1932 may be configured to buffer the output data 1924. In some embodiments, the RCD module 1934 may be configured to receive, buffer, and output the output data 1924. Here, such optional components are shown in dashed 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 n-bit errors, and n may be less or equal to the number of bit-errors that the ECC engine 1908 is configured to correct. The ECC engine 1908 may be configured to generate an uncorrectable error (UE) flag. The UE flag can be set when the ECC engine 1908 detects the number of bit-errors that occur more than the number of bit-errors that the ECC engine 1908 is configured to correct. In a particular example, with SEC-DED, the CE flag indicates that the single-bit error has been corrected and the UE flag can 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 can be configured to manage error correction and associated error information. The ECC controller 1918 can be configured to receive error information 1914 from the ECC engine. The error information 1914 may include information indicating whether there is an error, a correctable error, an uncorrectable error, the number of errors, and the like. ECC controller 1918 may be configured to receive address 1906 associated with the read. Therefore, the ECC controller 1918 can combine the error information 1914 and the address 1906 from the ECC engine 1908 into new error information. ECC controller 1918 may be configured to generate write data 1910 that is encoded by ECC engine 1908 and written to memory cell array 1901, as will be described in greater detail below.

실시 예에서, 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 can be stored in the ECC controller 1918. [ As will be described in greater detail below, the recording of errors can be stored including information about errors. For example, the error record may include information such as address information, data read from the type of memory cell 1901 of the error, whether the repair or other actions have been performed, and so on.

실시 예에서, ECC 컨트롤러(1918)는 외부 장치들과 통신(1926)을 수행하도록 구성될 수 있다. 예를 들어, 통신(1926)은 에러 정보의 전송을 포함할 수 있다. 정정 가능한 에러 또는 정정 불가능한 에러가 발생할 때, 에러 정보는 ECC 컨트롤러(1918)에 의해 전송될 수 있다. 그러한 전송은, 규칙적인 스케줄, 에러의 발생, 리프레시 사이클 동안 등에 따른 것과 같은, 외부 장치로부터의 요청에 응답한 것이거나 또는 자발적인 것일 수 있다. In an embodiment, the ECC controller 1918 may be configured to perform communications 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 can be transmitted by the ECC controller 1918. Such transmission may be in response to a request from an external device, such as following a regular schedule, the occurrence of an error, during a refresh cycle, or the like, or it may be spontaneous.

실시 예에서, 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 the SMBus to exchange error information. In some embodiments, the memory device 1900 may include a command buffer 1928. The command buffer 1928 can be configured to buffer the commands received via the bus to 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 associated with the SPD interface. In addition, the SPD module 1930 can be configured to enable access to error information via the ECC controller 1918. [ For example, the specific commands received via the SPD module 1930 may be converted to 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 and output the modified data strobe signal 1922 in response to error information 1916 from the ECC engine 1908 . In a particular embodiment, the error information 1916 may be a signal that indicates whether an uncorrectable error has occurred. The DQS modifier 1920 is configured to change the data strobe signal 1912 so that the output data strobe signal 1922 may not toggle if the error information 1916 indicates that an uncorrectable error has occurred. However, if an uncorrectable error signal has not occurred, DQS modifier 1920 may pass data strobe signals 1912. For example, the DQS modifier 1920 may include logic circuitry such as an OR gate, an AND gate, a NAND gate, a transmission gate, and the like.

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

비록 메모리 장치(1900)의 특정한 구성 요소들이 예로써 설명되었다 하더라도, 다른 구성 요소들이 제공될 수 있다. 예를 들어, 메모리 장치(1900)는 다양한 스트로브 신호들, 선택 신호들, 제어 신호들, 인에이블 신호들 등을 수신하거나 전송하도록 구성될 수 있다.Although specific components of the memory device 1900 have been described by way of example, 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 in accordance with 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 the error interface 1538 of FIG. However, in this embodiment, the memory module 2000 may include a plurality of ECC memory devices 2001-1 through 2001-N. 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 memory device 1800 as an example of memory devices 2001 and referring to Figures 18 and 20, each of memory devices 1800 is connected to data interface 2036 and error interface 2038 . In conjunction with data interface 2036, data interfaces 1836 of memory devices 1800 may form at least a portion of data interface 2036. [ For example, data inputs and outputs, strobe signals, etc., of each data interface 1836 may be collected in a data interface 2036. Address inputs and / or other control signals of data interface 2036 may be distributed to data interfaces 1836 of memory devices 1800. The data may thus be transferred to the memory devices 1800 (and consequently to the memory module 2000) via the data interface 2036 or received from the memory devices 1800 (consequently, the memory module 2000) have.

유사하게, 에러 인터페이스들(1838)은 에러 인터페이스(2038)에 연결될 수 있다. 에러 인터페이스들(1838)은 다양한 방법으로 연결될 수 있다. 예를 들어, 에러 인터페이스들(1838) 및 에러 인터페이스(2038)는 메모리 모듈(2000) 내의 공용 버스로 연결될 수 있다. 다른 예에서, 에러 인터페이스(2038)는 메모리 장치들(2001)의 각각의 에러 인터페이스(1838)에 직접 연결될 수 있다. 에러 인터페이스(2038)는 메모리 장치들(1800)로부터 에러 정보를 수집하도록 구성될 수 있다. 따라서, 에러 정보는 에러 인터페이스(2038)를 통하여 메모리 장치들(1800) (결과적으로, 메모리 모듈(2000))로부터 전송되도록 구성될 수 있다.Similarly, the error interfaces 1838 can be coupled to the error interface 2038. Error interfaces 1838 can be connected in various ways. For example, error interfaces 1838 and error interface 2038 may be coupled to a common bus within memory module 2000. [ In another example, the error interface 2038 may be coupled directly 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. Thus, the error information can be configured to be transmitted from the memory devices 1800 (and consequently, the memory module 2000) via 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, in other embodiments, other memory devices may be used. For example, the memory device 1900 of FIG. 19 may be used as the memory devices 2001. 19, address 1906, write data 1910, output data 1924, data strobe signal 1922, etc. of each memory device 1900 may be coupled to a data interface 2036. Similarly, the ECC controller 1918 of each memory device 1900 may be coupled to the error interface 2038.

도 21 내지 도 23은 본 발명의 다양한 실시 예들에 따른 메모리 모듈들을 보여주는 개략도이다. 도 21을 참조하면, 본 실시 예에서, 메모리 모듈(2100)은 도 15의 하나 또는 그 이상의 메모리 장치들(1501), 데이터 인터페이스(1536), 및 컨트롤러(1541)와 유사한, 하나 또는 그 이상의 메모리 장치들(2101), 데이터 인터페이스(2136), 및 컨트롤러(2141)를 포함할 수 있다. 모듈 에러 인터페이스(2138)는 에러 인터페이스(1538)와 유사할 수 있고, 정보(1542)와 유사한 정보(2142)를 교환하도록 구성될 수 있으나, 모듈 에러 인터페이스(2138)는 그것과 메모리 장치들(2101)의 장치 에러 인터페이스들(2139)과 구별하기 위해 "모듈"이라는 용어가 사용되었다. 상세하게 후술 되겠지만, 모듈 에러 인터페이스(2138)는 에러 정보를 교환하는 것과는 다른 통신을 위해 사용될 수 있다.Figures 21 through 23 are schematic diagrams illustrating memory modules in accordance with various embodiments of the present invention. 21, in this embodiment, the memory module 2100 includes one or more memory devices 1501, a data interface 1536, and a controller 1541, similar to the one or more memory devices 1501, Devices 2101, a data interface 2136, and a controller 2141. Module error interface 2138 may be similar to error interface 1538 and may be configured to exchange information 2142 similar to information 1542 while module error interface 2138 may be configured to communicate with it and memory devices 2101 The term "module" has been used to distinguish it from the device error interfaces 2139 of FIG. As will be described in detail below, 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 the error interface 1838 of FIG. The data interfaces 2137 of the memory devices 2101 may be coupled to the data interface 2136 of the module, but such connections are not shown for clarity. In addition, in some embodiments, the connection of data interfaces 2136 and data interfaces 2137 of memory devices 2101 need not go through memory controller 2141. For example, in some embodiments, data 2140 transmitted from memory module 2100 and to memory module 2100 may be buffered in controller 2141, but in other embodiments such transfers may be performed by controller 2141 ) Can be bypassed.

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

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

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

실시 예에서, 컨트롤러(2141)는 메모리 장치들(2101)과 관련된 커맨드들을 수신하도록 구성될 수 있다. 본 명세서에서 설명되는 바와 같이, 컨트롤러(2141)는 에러 정보를 읽기 위한 커맨드를 수신하도록 구성될 수 있다. 그러나, 컨트롤러(2141)는 메모리 장치들(2101)과 관련된 다른 타입의 통신들을 수신하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 메모리 장치들(2101)의 유지와 관련된 커맨드들을 수신하도록 구성될 수 있다. 그러한 관리의 예로써, 하나 또는 그 이상의 메모리 장치(2101) 내의 메모리 셀을 리페어 하거나, 데이터를 다시 쓰기 하거나, 리프레시 사이클을 초기화하기 위한 커맨드가 있을 수 있다. 컨트롤러(2141)는 그러한 통신들을 수신하고, 이에 응답하여 메모리 장치들(2101)과 통신하도록 구성될 수 있다.In an embodiment, the controller 2141 may be configured to receive commands associated with 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 the maintenance of the memory devices 2101. As an example of such management, there may be a command to repair a memory cell in one or more memory devices 2101, rewrite data, or initialize a refresh cycle. Controller 2141 may be configured to receive such communications and to communicate with memory devices 2101 in response.

도 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)를 통하여 전송되고 수신될 수 있다.22, in this embodiment, memory module 2200 may be similar to memory module 2100, but memory module 2200 may include a serial presence detect (SPD) coupled to controller 2141, Lt; RTI ID = 0.0 > 2143 < / RTI > SPD 2143 may be configured to communicate via controller 2141. For example, the controller 2141 may be configured to forward communications to and from the SPD 2143. In another embodiment, the controller 2141 may be configured to obtain information from the SPD 2143 and operate as a proxy for the SPD 2143 using such information via the module error interface 2138 . Although module error interface 2138 uses the term "error ", information other than error information can be transmitted and received via module error interface 2138. [

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

도 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. 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 the data sent to and from the memory module 2300. In addition, the RCD 2145 may be configured to provide the functions described herein with respect to the controller 2141.

SPD(2143)는 RCD(2145)에 연결될 수 있다. 따라서, 메모리 모듈(2200)과 유사하게, SPD(2143)는 RCD(2145)를 통하여 액세스 가능할 수 있고, RCD(2145)는, 앞서 설명된 바와 같이 컨트롤러(2141)와 유사하게, SPD(2143)를 위한 프록시로써 동작할 수 있다.SPD 2143 may be coupled to RCD 2145. Thus, similar to memory module 2200, SPD 2143 may be accessible via RCD 2145 and RCD 2145 may be coupled to SPD 2143, similar to controller 2141, Lt; / RTI >

도 24 내지 도 26은 본 발명의 다양한 실시 예들에 따른 메모리 모듈들의 일부를 보여주는 개략도이다. 도 24를 참조하면, 본 실시 예에서, 컨트롤러(2141), 메모리 장치들(2101), 및 SPD(2143)는 도 22의 그것들과 유사할 수 있다. 컨트롤러(2141)는 버스(2452)에 연결될 수 있다. 버스(2542)는 SMBus, 또는 본 명세서에서 설명된 다른 버스들일 수 있다. 버스(2542)는 모듈 에러 인터페이스(2138)의 일부 또는 전부를 형성할 수 있다.Figures 24-26 are schematic diagrams showing some of the memory modules in accordance with various embodiments of the present invention. Referring to FIG. 24, in this embodiment, controller 2141, memory devices 2101, and SPD 2143 may be similar to those of FIG. Controller 2141 may be coupled to bus 2452. Bus 2542 may be an SMBus, or other buses as described herein. The bus 2542 may form part or all of the module error interface 2138.

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

실시 예에서, 어드레스(2454)는 메모리 장치들의 SPD 모듈에 연결될 수 있으나, 여기서 어드레스는 SPD(2143)와 같은 SPD 대신에 컨트롤러(2141)와 통신하도록 다른 목적에 맞게 만들어질 수 있다. 따라서, 본 명세서에서 설명된 메모리 모듈은 기존의 메모리 모듈과 핀 호환(pin-compatible)될 수 있다.In an embodiment, address 2454 may be coupled to the SPD module of the memory devices, where the address may be tailored to another purpose to communicate with controller 2141 instead of SPD, such as SPD 2143. Thus, the memory module described herein can be pin-compatible with existing memory modules.

본 실시 예에서, 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 connected to the controller 2141 via separate buses 2450, respectively. Here, the buses are indicated by buses 2450-1 to 2450-N to correspond to the memory devices 2101-1 to 2010-N. Bus 2450-N + 1 may correspond to an additional bus connected to controller 2141 and SPD 2143. In a particular embodiment, each of the buses 2450 may be SMBus or other similar communication lines. However, in other embodiments, a point-to-point communication link communication line may be used instead of the buses 2450, including, for example, a communication line that may have only two end points. . That is, although the term bus is used, the communication line may 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, SPD 2143 may be configured to respond to control signal 2147 or to generate control signal 2147. The control signal 2147 may comprise an out-of-band signal with respect to the bus 2450-N + 1. For example, control signal 2147 may include an interrupt signal. In particular, in an embodiment, the control signal 2147 may be an event signal associated with the SPD 2143. Controller 2141 may be configured to receive or generate control signal 2451. Control signal 2451 may be a signal used by SPD 2143. However, SDP 2143 may not be configured to receive control signal 2451 directly, since controller 2141 may be configured to use an interface that SPD 2143 may have. Accordingly, controller 2141 may be configured to exchange control signal 2451 with SPD 2143 as control signal 2147. Although a single control signal associated with the SPD is used as an example, in other embodiments, multiple control signals may be forwarded to the SPD 2143, memory devices 2101, or other components . Such control signals for clarity are not shown, 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 may be used to exchange interrupts based on error information as well as signals from the SPD 2143. Controller 2141 may be configured to determine whether such control signals are intended for controller 2141, SPD 2143, and so on.

실시 예에서, 많은 추가적인 핀들은 메모리 장치들(2101)을 위해 사용될 수 있다. 특정한 실시 예에서, 메모리 장치(2101)는 두 개의 추가적인 핀들(하나는 클록 신호를 위한 것이고 다른 하나는 데이터 신호를 위한 것)을 포함할 수 있다. 컨트롤러(2141)는 버스들(2452 및 2450-1 내지 2450-N+1)을 위한 2x(N+2)개의 핀들, 어드레스(2454)를 위한 세 개의 핀들, 및 제어 신호들(2451 및 2147)을 위한 두 개의 핀들을 포함할 수 있다. In an embodiment, a number of additional pins may be used for the memory devices 2101. In a particular embodiment, the memory device 2101 may include two additional pins (one for the clock signal and one for the data signal). Controller 2141 includes 2x (N + 2) pins for busses 2452 and 2450-1 through 2450-N + 1, three pins for address 2454, and control signals 2451 and 2147, Lt; RTI ID = 0.0 > a < / RTI >

도 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, controller 2141, memory devices 2101, and SPD 2143 may be similar to those of Fig. However, controller 2141 may be coupled to memory devices 2101 via bus 2450-1 and to SPD 2143 via bus 2450-2. In this embodiment, 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)과 구별하기 위해 사용될 수 있다.In addition, bus 2450-1 may be a public bus for memory devices 2101. [ Bus 2450 may be an SMBus bus. Since a plurality of memory devices 2101 may be coupled to 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, the corresponding ID 2456 may be hardwired into the hardware at a unique address in the memory devices 2101. [ In a particular example, each ID 2456 may include four pins that can be held high or low. Thus, sixteen unique addresses may be available for the IDs 2456. Although four pins are used by way of example, any number of pins can be used to distinguish them 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 transfer the corresponding ID 2456 to an address or other identifier used on the bus 2450-1. In an embodiment, the address generated from ID 2456 may be an address used as a slave address for the SMBus. In this embodiment, SPD 2143 and controller 2141 may be devices on bus 2450-2. Thus, 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. 24, the memory device 2101 may include two additional pins (one for the clock signal and the other for the data signal), but the IDs 2456 < RTI ID = 0.0 > ≪ / RTI > The controller 2141 includes six pins for the buses 2452, 2450-1, and 2450-2, three pins for the address 2454, and control signals 2451 and 2147 Lt; RTI ID = 0.0 > 2 < / RTI >

도 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)에서 사용하기 위한 어드레스로 변환시키도록 구성될 수 있다.25B, in this embodiment, controller 2141, memory devices 2101, and 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 via a common bus 2450. [ As described above, the memory devices 2101 may be configured to receive the ID 2456. Because SPD 2143 is on the same bus 2450 as memory devices 2101, SPD 2143 can be configured to use a unique address of SPD 2143 and memory devices 2101 . SPD 2143 may be configured to receive ID 2457. SPD 2143 may be configured to convert ID 2457 to an address for use on 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 form of ID 2457 may be different from ID 2456. For example, ID 2457 may include three pins used to indicate the address of SPD 2143, while IDs 2456 may each include four pins. In addition, ID 2457 and ID 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. 24, the memory device 2101 may include two additional pins (one for the clock signal and the other for the data signal), but also the ID 2456 ) ≪ / RTI > The controller 2141 includes four pins for the buses 2450 and 2452, three pins for the address 2454 and two pins for the control signals 2451 and 2147, .

도 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, controller 2141, memory devices 2101, and SPD 2143 may be similar to those of Fig. 25b. SPD 2143 may be configured to receive address 2454 similar to controller 2141. [ However, in the present embodiment, the memory devices 2101 may not be configured to receive the IDs 2456. [ Conversely, the memory devices 2101 can each be coupled 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, memory devices 2101 may be coupled to bus 2459. Memory devices 2101 may be configured to determine whether information received via controller 2141 is associated with memory device 2101 in response to a signal received via bus 2459. [ In an embodiment, memory devices 2101 may be configured to communicate over bus 2459 to establish an address on memory devices 2101 on bus 2450. [ For example, the first memory device may determine the address in response to the counter and may increment the counter. The value of the counter can be transferred to the second memory device 2101. The second memory device 2101 may be configured to determine the address and increment the counter in response to the counter. This process can 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 particular example, the memory device 2101 may include two additional pins (one for the clock signal and one for the data signal), similar to FIG. 24, but for the bus 2459 And may include one additional pin. Controller 2141 includes six pins for busses 2452, 2450-1 and 2450-2, three pins for address 2454, and control signals 2451 and 2147, Lt; RTI ID = 0.0 > 2 < / RTI >

실시 예에서, 상술 된 구성의 어떤 구성에서라도, 컨트롤러(2141)는, 만일 동일한 버스에 연결되었다면, 메모리 장치들(2101) 및 SPD(2143)의 어드레스들을 결정하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 SMBus 어드레스 솔루션 프로토콜(address resolution protocol)을 사용하여 어드레스들을 메모리 장치들(2101) 및 SPD(2143)에 동적으로 할당하도록 구성될 수 있다. 비록 한 타입의 버스에서 어드레스들을 결정하는 기술이 예로써 사용되었다 하더라도, 다른 기술들이 특정한 버스(2450)에 적절하게 사용될 수 있다.In an embodiment, in any of the configurations described above, controller 2141 may be configured to determine the addresses of memory devices 2101 and SPD 2143, if connected to the same bus. For example, controller 2141 may be configured to dynamically assign addresses to memory devices 2101 and SPD 2143 using an SMBus address resolution protocol. Although the techniques for determining addresses on one type of bus are used by way of example, other techniques may be used appropriately 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 showing 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. However, a repeater 2750 has been used as the controller 2141. The repeater 2750 repeater 2750 is configured to extend the communication line connected to the module error interface 2138 such that the error interfaces 2139 of the memory devices 2101 and the SPD 2143 can be connected to the communication line. . For example, if the loading of the memory devices 2101 and / or the nature of the network allows, the repeater 2750 may simply be a wire like a wire of a shared medium. In another example, the repeater 2750 may include a device configured to allow more devices to be connected to the bus, or to allow a longer bus. Although the term repeater is used, the repeater 2750 may include hubs, expansion devices, switches, bridges, and the like. And a device capable of extending the network can be used as the repeater 2750. Because the memory devices 2101 are directly accessible through the module interface 2138, each memory device 2101 of the memory module 2700 obtains information about the error information separately by an external controller such as a BMC .

실시 예에서, 메모리 장치들(2101), SPD(2143), 및 리피터(2750)의 구성은 도 25b와 유사할 수 있다. 즉, 도 25b 및 27을 참조하면, 메모리 장치들(2101)은, 리피터(2750)에 연결된, 버스(2450)에 각각 연결될 수 있다. 메모리 장치들(2101) 각각은 ID(2456)를 수신하도록 구성될 수 있다. 그 결과, 메모리 장치들(2101)은 버스(2450)에서의 사용을 위한 각각의 어드레스들을 결정하도록 구성될 수 있다.In an embodiment, the configuration of memory devices 2101, SPD 2143, and repeater 2750 may be similar to Fig. 25b. 25B and 27, memory devices 2101 may each be coupled to bus 2450, which is coupled to repeater 2750. [ Each of the memory devices 2101 may be configured to receive an ID 2456. As a result, the memory devices 2101 may be configured to determine respective addresses for use on the 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 particular address or address range. However, the memory devices 2101 may not have such an address or ID association. Thus, an address, an ID, a range of such parameters, etc., can be tailored to different purposes from other types of devices, such as those not used in a system that can use the memory modules described herein. For example, the ID or address for the I2C mux can be used as the ID or address of the memory devices 2101. [

도 28은 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 2800 단계에서, 메모리로부터 데이터를 읽을 때 에러가 발생할 수 있다. 이에 응답하여, 2802 단계에서, 에러가 진단될 수 있다. 좀 더 상세하게 후술 되겠지만, 에러가 확인될 뿐만 아니라, 에러를 정정하기 위한 다른 정정하는 액션(corrective action)도 취해질 수 있다.28 is a flowchart showing 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 the memory. In response, in step 2802, an error may be diagnosed. As will be described in more detail below, not only are errors identified, but other corrective actions can also be taken to correct errors.

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

도 29는 본 발명의 실시 예에 따른 에러를 다루는 기술을 보여주는 순서도이다. 본 실시 예는, 정정 가능한 에러가 어떻게 다뤄지는지(예를 들어, 정정 가능한 에러가 도 19의 ECC 컨트롤러에 의해 어떻게 다뤄지는지)를 예시적으로 보여준다. 2900 단계에서, 정정 가능한 에러(CE)가 발생한 후, CE 기록이 생성될 수 있다. CE 기록은 앞서 설명된 에러와 관련된 다양한 정보를 포함할 수 있다.29 is a flow chart illustrating a technique for handling errors according to an embodiment of the present invention. This embodiment illustrates by way of example how the correctable error is addressed (e.g., how the correctable error is handled by the ECC controller of FIG. 19). In step 2900, after the correctable error (CE) occurs, a CE record can 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 rereading the data, three results are generated, such as when no error occurs, when a correctable error occurs, or when an uncorrectable error (UE) occurs . If no error occurs, in step 2904, the write may be indicated as a soft-read error. If a correctable error occurs, then in step 2908 the corrected data may be rewritten. If an uncorrectable error occurs, in step 2906, the error record may be updated with an uncorrectable error record.

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

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

비록 2908 단계에서의 다시 쓰기가 정정 불가능한 에러, 정정 가능한 에러, 또는 에러 없음을 지시하는 동작의 예로써 사용되었다 하더라도, 그러한 정보는 다른 동작들의 결과일 수 있다. 예를 들어, 2908 단계에서 데이터를 다시 쓰기 한 후, 읽기 동작이 수행될 수 있고 유사한 에러 정보가 생성될 수 있다.Although the rewriting in step 2908 is 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 the 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 (e.g., how an uncorrectable error is handled by the ECC controller 1918 of FIG. 19). In step 3000, after uncorrectable error (UE) occurs, a UE record can be generated. In some embodiments, the UE record may be the result of an update to the UE record in step 2906, previously described in FIG.

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

데이터의 다시 쓰기의 결과에 응답하여, 다른 동작들이 수행될 수 있다. 만일 결과가 정정 불가능한 에러라면, 3006 단계에서, 기록은 리페어 불가능한 에러로 표시될 수 있다. 만일 에러가 발생하지 않았다면, 3010 단계에서, 기록은 소프트-읽기 및 소프트-쓰기 에러로 표시될 수 있다.In response to the result of rewriting the data, other operations may be performed. If the result is an uncorrectable error, then in step 3006 the record may be marked as a non-repairable error. If no error has occurred, in step 3010, the write may be indicated as a soft-read and a soft-write error.

3012 단계에서, 만일 결과가 정정 가능한 에러라면, 메모리 셀이 리페어 가능한지 여부가 판단될 수 있다. 만일 메모리 셀이 리페어 가능하다면, 3014 단계에서, 리페어 동작이 실행되고, 기록은 소프트-읽기 및 리페어 가능한 하드 에러로 표시될 수 있다. 만일 메모리 셀이 리페어 불가능하다면, 3016 단계에서, 레코드는 소프트-읽기 및 리페어 불가능한 하드 에러로 표시될 수 있다. In step 3012, if the result is a correctable error, it may be determined whether or not the memory cell is repairable. If the memory cell is repairable, in 3014, a repair operation is performed, and the write may be indicated by a soft-readable 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 various categorization of errors have been described as described above, in some embodiments, all of such information may not be available outside the memory device. For example, certain types of errors, such as soft-read and soft-write errors in Figure 20, may be collected as soft-errors. Any collection, summary, etc. may be performed to generate error information to be transmitted from the memory device. In addition, the memory device may be configured to configure to provide a specific level of detail.

실시 예에서, 도 29 및 도 30에서 설명된 것과 같은 기술을 사용하여, 메모리 장치는 소프트-읽기 에러 회복(예를 들어, 메모리 정화(memory scrubbing), 하드-에러 리페어 등과 같은 에러 관리 기술들을 수행하도록 구성될 수 있다.In an embodiment, using techniques such as those described in Figures 29 and 30, the memory device performs error management techniques such as soft-read error recovery (e.g., memory scrubbing, hard-error repair, etc.) .

실시 예에서, 앞서 설명된 동작들은 읽기 동작이 일어난 후 수행될 수 있다. 특히, 동작들은 읽기 동작을 막지 않도록 구성될 수 있다. 그러나, 일단 보수 간격, 리프레시 사이클 등과 같은 적절한 구간이 발생하면, 에러 기록들은 처리되고, 업데이트 되고, 메모리 셀들은 리페어 될 수 있다.In an embodiment, the operations described above may be performed after a read operation occurs. In particular, the operations may be configured not to block the read operation. However, once a proper interval such as a repair interval, a refresh cycle, or the like occurs, the error records are processed, updated, and the memory cells can be repaired.

비록 에러의 처리에 관한 특정한 시퀀스들이 에러들을 카테고리화 하거나 메모리 셀들을 리페어하기 위한 기준의 예로써 사용되었지만, 다른 실시 예에서, 다른 시퀀스들이 사용될 수 있다. 예를 들어, 도 29를 참조하면, 2910 단계에서 메모리 셀이 리페어 가능한지 여부를 판단하는 것은, 2902 단계에서 다시 읽기 동작 때의 CE 및 2908 단계에서 다시 쓰기 동작 때의 CE를 수반하는, CE가 발생하면 실행될 수 있다. 그러나, 다른 실시 예에서, 2910 단계에서 메모리 셀이 리페어 가능한지 여부를 판단하는 것은, 2902 단계에서의 다시 읽기 동작이 복수의 다시 읽기 동작을 시도한 후 CE를 야기할 경우에만 실행될 수 있다. 즉, 어떤 실시 예에서, 에러들을 카테고리화 하는 특정한 기준은 앞서 설명된 예들과는 다를 수 있다.Although certain sequences relating to the processing of errors have been used as an example of criteria for categorizing errors or repairing memory cells, other embodiments may be used in other embodiments. For example, referring to FIG. 29, it is determined whether the memory cell is repairable in step 2910. In step 2902, the CE is read again. In step 2908, Can be executed. However, in another embodiment, determining whether the memory cell is repairable in step 2910 can be performed only when the re-read operation in step 2902 causes a CE after attempting a plurality of re-read operations. That is, in some embodiments, the specific criteria for categorizing errors may be different from the examples described above.

나아가, 비록 에러 타입들의 특정한 명칭이 사용되었다 하더라도, 어떤 실시 예에서, 그러한 에러 타입들의 전부는 사용되지 않을 수 있다. 유사하게, 어떤 실시 예에서, 다른 에러 타입들이 사용될 수 있다.Further, even if a particular name of the error types is used, in some embodiments, all such error types may not be used. Similarly, in some embodiments, other error types may be used.

도 31은 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 3100 단계에서, 메모리로부터 데이터를 읽을 때 읽기 에러가 발생할 수 있다. 이에 응답하여, 에러 정보가 생성될 수 있다. 예를 들어, 읽기 에러는 정정된 정정 가능한 에러일 수 있다. 에러 정보는 정정 가능한 에러에 관한 정보일 수 있다. 예를 들어, 읽기 에러는 복수의 에러들일 수 있다. 이때, 에러 정보는 이들 에러에 관한 정보일 수 있다.31 is a flowchart showing 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, error information can 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, a read error may be a plurality of errors. At this time, 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, a read error command may be received by the memory module. If an error occurs, in step 3014, the memory can transmit the error information. Before receiving the read error command in step 3102, the memory module may store error information regarding the error that has occurred. In step 3104, the error information regarding the error that has occurred first may be transmitted in response to the read error command. However, if no error has occurred, the transmission of the error information in step 3104 may be a transmission of information indicating that no error has occurred.

앞서 설명된 바와 같이, 에러 정보는 버스를 통하여 전송될 수 있다. 특히, 버스는 메모리 모듈의 주 데이터 경로에 관하여 아웃-오브-밴드(out-of-band) 경로일 수 있다. 따라서, 3104 단계에서의 전송은 버스를 통하여 에러 정보를 전송하는 것을 포함할 수 있다.As described above, the error information can be transmitted through the bus. In particular, the bus may be an out-of-band path with respect to the primary data path of the memory module. Thus, the transmission in step 3104 may include transmitting error information via the bus.

도 31b는 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 도 31a 및 31b를 참조하면, 본 실시 예에서, 도 31b의 동작은 컨트롤러의 동작일 수 있다. 특히, 3106 단계에서, 읽기 에러 커맨드는 컨트롤러로부터 전송될 수 있다. 3106 단계에서 전송된 읽기 에러 커맨드는 3102 단계에서 수신된 읽기 에러 커맨드일 수 있다. 앞서 설명된 바와 같이, 3104 단계에서, 에러 정보는 전송될 수 있다. 3108 단계에서, 에러 정보가 컨트롤러에서 수신될 수 있다. 예를 들어, 컨트롤러는 메모리 모듈을 폴링 하도록 구성될 수 있다. 따라서, 컨트롤러는 3106 단계에서 읽기 에러 커맨드를 수신할 수 있고, 3108 단계에서 에러 정보를 수신할 수 있다. 앞서 설명된 바와 같이, 컨트롤러는, 메모리 컨트롤러가 에러 정보를 저장할 수 있는 불휘발성 메모리와 같은, 메모리를 포함할 수 있다. 이후, 3110 단계에서, 에러 정보는 프로세서로 전송될 수 있다.31B is a flowchart showing a method of exchanging error information according to an embodiment of the present invention. Referring to Figs. 31A and 31B, in this embodiment, the operation of Fig. 31B may be the operation of the 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, the error information can be transmitted. In step 3108, error information may be received at the controller. For example, the controller may be configured to poll the memory module. Accordingly, the controller can receive the read error command in step 3106 and receive the error information in step 3108. [ As described above, the controller may include a memory, such as a non-volatile memory, through 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, in an exemplary embodiment, the use of a controller to transmit a read error command has been described, in another embodiment, the processor may send a read error command in step 3106. [ 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, i.e., the error information need not be received or processed by the controller.

도 32는 본 발명의 실시 예에 따른 에러 정보를 교환하는 방법을 보여주는 순서도이다. 도 28 및 도 32를 참조하여, 그리고 3200 단계에서 예시적으로 메모리 모듈(2100)을 사용하여, 통신은 모듈 에러 인터페이스(2138)를 통하여 수신될 수 있다. 3202 단계에서, 에러 정보는 적어도 하나의 메모리 장치(2101)로부터 읽혀질 수 있다.32 is a flowchart showing a method of exchanging error information according to an embodiment of the present invention. Referring to Figures 28 and 32, and using memory module 2100 illustratively in step 3200, communication may be received via the module error interface 2138. In step 3202, the error information can 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 other embodiments, reading the error information may be performed at a different time (e.g., before receiving the communication). Regardless, 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 via a corresponding dedicated bus, as shown in FIG. In another embodiment, each of the memory devices 2101 may be accessed via a public bus, as shown in FIG. 25A, 25B, or 25C. In another embodiment, communication may be forwarded to one or more memory devices 2101, such as repeater 2750 of FIG.

비록 도 21의 메모리 모듈이 예로써 사용되었다 하더라도, 본 명세서에서 설명된 기술은 다른 메모리 모듈들, 시스템들 등에 의해 사용될 수 있다.Although the memory module of FIG. 21 is used by way of example, the techniques 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 showing 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 sent to the controller. For example, the controller may receive a read error command from the processor. In step 3314, a read error command may be sent to the memory module. For example, in step 3314, the controller may forward the read error command received from the processor to the memory module, modify the read error command, generate another read error command for the memory module, and send a read error command to the memory module Lt; / RTI > The read error command transmitted in step 3314 may be received in step 3302 and the error information may be transmitted in step 3304 similarly to steps 3102 and 3104 of FIG. As described above, the error information can be sent to the processor.

앞서 설명된 바와 같이, 컨트롤러는 에러 정보를 위해 메모리 모듈을 폴링할 수 있고 에러 정보를 저장할 수 있다. 따라서, 읽기 에러 커맨드가 프로세서로부터 컨트롤러에 의해 수신될 때, 컨트롤러는 이미 읽기 에러 정보를 가질 수 있다. 컨트롤러는 저장된 에러 정보를 프로세서로 전송할 수 있다. 그러나 컨트롤러는, 컨트롤러가 저장된 에러 정보를 프로세서로 전송하기 전에, 더 많은 에러 정보를 위해 메모리 모듈을 폴링할 필요는 없다. As described above, the controller can poll the memory module for error information and store 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 send the stored error information to the processor. However, the controller does not need to 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 step 3400, the processor may send a read error command. In response, in step 3402, the processor may receive the error information. In step 3406, the processor may combine the error information with additional information. As described above, the additional information may be various information, such as the state of the processor, peripherals, busses, etc., including information not related to the memory module. In a particular 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 enables information on errors of various systems to be available for higher level applications.

도 35는 본 발명의 실시 예에 따른 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(3500)은 도 1의 프로세서(104) 및 소프트웨어(110)와 유사한, 프로세서(2104) 및 소프트웨어(2110)를 포함할 수 있다. 그러나, 본 실시 예에서, 시스템(3500)은 메모리(3502) 및 에러 정정 회로(3568)를 포함할 수 있다.35 is a schematic diagram showing a system with a memory system architecture according to an embodiment of the present invention. In this embodiment, the system 3500 may include a processor 2104 and software 2110, similar to the processor 104 and the software 110 of FIG. However, in the present 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 errors. Memory 3502 may be coupled to error correction circuit 3568 and configured to transmit data to error correction circuitry 2168 via communication path 3572. [

에러 정정 회로(3568)는 메모리(3502)로부터 수신된 데이터의 에러를 정정하도록 구성될 수 있다. 에러 정정 회로(3568)는 제 2 통신 경로(3570) 및 제 3 통신 경로(3508)를 통하여 프로세서(2104)에 연결될 수 있다. 제 2 통신 경로(3570)는 프로세서(3504)가 데이터를 수신하도록 구성되는 메인 경로이다. 예를 들어, 제 2 통신 경로(3570)는 프로세서(3504)를 위한 시스템 버스일 수 있다. The error correction circuit 3568 can be configured to correct errors in the data received from the memory 3502. [ Error correction circuit 3568 may be coupled to processor 2104 via a second communication path 3570 and a third communication path 3508. Second communication path 3570 is the main path through which 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 it may be various variations 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 coupled to the memory 3602 via a communication path 3606. The BMC 3614 is coupled to the processor 3604 via a bus 3616 and to the memory 3602 via a bus 3612. Memory 3602, processor 3604, BMC 3614, communication path 3606, and busses 3612 and 3616, respectively, may be any 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 through 3702-N. Each of the servers 3702 may be coupled to a 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 configurations of the server system 3700. For example, the manager 3704 may be configured to manage the 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 sent to the 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 actions based on the error information. For example, server 3702-1 may include a correctable error that exceeds a threshold. The manager 3704 may be configured to pass 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 the present embodiment, the data center 3800 may include a plurality of server systems 3802-1 through 3802-N. Server systems 3802 are similar to the server system 3600 described in FIG. Server systems 3802 may be coupled to a network 3804, such as the Internet. Thus, the server systems 3802 can communicate with the various nodes 3806-1 through 3806-M via the network 3804. For example, nodes 3806 may be client computers, other servers, remote data centers, storage systems, and the like.

비록 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 기술적 사상의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 따라서 본 발명의 범위는 상술 된 실시 예에 국한되어 정해져서는 안되며, 후술하는 특허 청구범위뿐만 아니라 본 발명의 특허 청구범위와 균등한 것들에 의해 정해져야 한다. Although a detailed description of the present invention has been provided for specific embodiments, various modifications may be made without departing from the scope of the present invention. Accordingly, the scope of the present invention should not be limited by the above-described embodiments, but should be determined by the scope of the claims of the present invention as well as the claims of the present invention.

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 modifier 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: Registered Ring Clock Driver
2149: Register 2750: Repeater

Claims (20)

모듈 에러 인터페이스; 그리고
복수의 메모리 장치들을 포함하되,
각각의 메모리 장치는 상기 모듈 에러 인터페이스에 연결되고, 데이터 인터페이스 및 장치 에러 인터페이스를 포함하고, 상기 장치 에러 인터페이스 및 상기 모듈 에러 인터페이스를 통하여 에러 정보를 교환하도록 구성되는 메모리 모듈.
Module error interface; And
A plurality of memory devices,
Each memory device coupled to the module error interface, the memory module including a data interface and a device error interface, the memory module being configured to exchange error information via the device error interface and the module error interface.
제 1 항에 있어서,
상기 모듈 에러 인터페이스 및 상기 메모리 장치들의 상기 장치 에러 인터페이스들 각각에 연결되는 컨트롤러를 더 포함하는 메모리 모듈.
The method according to claim 1,
A module error interface and a controller coupled to each of the device error interfaces of the memory devices.
제 2 항에 있어서,
상기 컨트롤러는 리피터를 포함하는 메모리 모듈.
3. The method of claim 2,
Wherein the controller comprises a repeater.
제 2 항에 있어서,
상기 컨트롤러는 별도의 버스를 통하여 상기 장치 에러 인터페이스들 각각에 연결되는 메모리 모듈.
3. The method of claim 2,
Wherein the controller is coupled to each of the device error interfaces via a separate bus.
제 2 항에 있어서,
상기 컨트롤러는 공용 버스를 통하여 상기 장치 에러 인터페이스들 각각에 연결되는 메모리 모듈.
3. The method of claim 2,
The controller being coupled to each of the device error interfaces via a common bus.
제 5 항에 있어서,
각각의 메모리 장치는 식별 입력을 더 포함하고, 상기 메모리 장치는 상기 식별 입력을 통하여 상기 공용 버스와 관련된 식별을 수신하도록 구성되는 메모리 모듈.
6. The method of claim 5,
Each memory device further comprising an identification input, and wherein the memory device is configured to receive an identification associated with the common bus through the identification input.
제 2 항에 있어서,
상기 메모리 장치들은 데이지 체인 회선(daisy-chain link)에 연결되는 메모리 모듈.
3. The method of claim 2,
Wherein the memory devices are connected to a daisy-chain link.
제 7 항에 있어서,
각각의 메모리는 상기 데이지 체인 회선을 통하여 수신된 신호에 응답하여 상기 장치 에러 인터페이스를 통하여 수신된 정보가 상기 메모리 장치와 관련되는지 여부를 판단하도록 구성되는 메모리 모듈.
8. The method of claim 7,
Wherein each memory is configured to determine whether information received via the device error interface is associated with the memory device in response to a signal received via the daisy chain circuit.
제 2 항에 있어서,
상기 컨트롤러에 연결되고 상기 모듈 에러 인터페이스를 통하여 통신하도록 구성되는 직렬 프레즌스 검출 모듈을 더 포함하는 메모리 모듈.
3. The method of claim 2,
And a serial presence detection module coupled to the controller and configured to communicate via the module error interface.
제 2 항에 있어서,
상기 컨트롤러는 어드레스를 수신하도록 구성되는 어드레스 입력을 더 포함하고,
상기 컨트롤러는 상기 어드레스에 기초하여 상기 모듈 에러 인터페이스를 통하여 수신된 통신에 응답하도록 구성되는 메모리 모듈.
3. The method of claim 2,
The controller further comprising an address input configured to receive an address,
Wherein the controller is configured to respond to communications received via the module error interface based on the address.
제 2 항에 있어서,
상기 컨트롤러는 상기 메모리 장치들의 상기 장치 에러 인터페이스들을 통하여 수신된 에러 정보를 수집하도록 구성되는 메모리 모듈.
3. The method of claim 2,
Wherein the controller is configured to collect error information received via the device error interfaces of the memory devices.
모듈 에러 인터페이스;
복수의 메모리 장치들로써, 각각의 메모리 장치는 데이터 인터페이스 및 장치 에러 인터페이스를 포함하고, 상기 장치 에러 인터페이스를 통하여 에러 정보를 교환하도록 구성되는 것; 그리고
상기 모듈 에러 인터페이스 및 각각의 메모리 장치의 상기 장치 에러 인터페이스에 연결되는 컨트롤러를 포함하는 메모리 모듈.
Module error interface;
A plurality of memory devices, each memory device including a data interface and a device error interface, the device being configured to exchange error information via the device error interface; And
A module error interface and a controller coupled to the device error interface of each memory device.
제 12 항에 있어서,
모듈 데이터 인터페이스를 더 포함하되,
상기 컨트롤러는 상기 모듈 데이터 인터페이스 및 각각의 메모리 장치의 상기 데이터 인터페이스에 연결되는 메모리 모듈.
13. The method of claim 12,
Further comprising a module data interface,
Wherein the controller is coupled to the module data interface and to the data interface of each memory device.
제 12 항에 있어서,
상기 컨트롤러에 연결되는 직렬 프레즌스 검출 모듈을 더 포함하되,
상기 직렬 프레즌스 검출 모듈은 상기 모듈 에러 인터페이스를 거쳐 상기 컨트롤러를 통하여 액세스 가능한 메모리 모듈.
13. The method of claim 12,
And a serial presence detection module coupled to the controller,
Wherein the serial presence detection module is accessible via the controller via the module error interface.
제 14 항에 있어서,
상기 컨트롤러는 상기 직렬 프레즌스 검출 모듈로부터 제어 신호를 수신하도록 구성되고, 그리고
상기 컨트롤러는 상기 모듈 에러 인터페이스를 통하여 상기 제어 신호를 제공하도록 구성되는 메모리 모듈.
15. The method of claim 14,
The controller being configured to receive a control signal from the serial presence detection module, and
Wherein the controller is configured to provide the control signal via the module error interface.
제 12 항에 있어서,
상기 컨트롤러는 상기 메모리 장치들의 상기 장치 에러 인터페이스들과 관련된 어드레스들을 결정하도록 구성되는 메모리 모듈.
13. The method of claim 12,
Wherein the controller is configured to determine addresses associated with the device error interfaces of the memory devices.
메모리 모듈의 모듈 에러 인터페이스를 통하여 통신을 수신하는 단계;
컨트롤러에 의해, 상기 컨트롤러에 연결된 적어도 하나의 메모리 장치로부터 에러 정보를 읽는 단계; 그리고
상기 에러 정보에 기초하여 상기 모듈 에러 인터페이스를 통하여 상기 통신에 응답하는 단계를 포함하는 방법.
Receiving communication through a module error interface of the memory module;
Reading error information from the at least one memory device connected to the controller by the controller; And
And responding to the communication via the module error interface based on the error information.
제 17 항에 있어서,
상기 통신을 상기 적어도 하나의 메모리 장치로 포워딩하는 단계를 더 포함하는 방법.
18. The method of claim 17,
Further comprising forwarding the communication to the at least one memory device.
제 17 항에 있어서,
상기 컨트롤러에 의해 상기 에러 정보를 읽는 단계는:
대응하는 전용 버스를 통하여 상기 적어도 하나의 메모리 장치 중 적어도 하나를 액세스하는 단계를 포함하는 방법.
18. The method of claim 17,
The step of reading the error information by the controller comprises:
Accessing at least one of the at least one memory device through a corresponding dedicated bus.
제 17 항에 있어서,
상기 컨트롤러에 의해 상기 에러 정보를 읽는 단계는:
공용 버스를 통하여 상기 적어도 하나의 메모리 장치 중 적어도 하나를 액세스하는 단계를 포함하는 방법.
18. The method of claim 17,
The step of reading the error information by the controller comprises:
Accessing at least one of the at least one memory device through a common bus.
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 US20160055058A1 (en) 2014-08-19 2015-01-09 Memory system architecture
US14/594,049 2015-01-09
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 true KR20160022250A (en) 2016-02-29
KR102214556B1 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190119489A (en) * 2018-04-12 2019-10-22 삼성전자주식회사 Semiconductor memory devices and memory systems including the same
WO2020014604A1 (en) * 2018-07-12 2020-01-16 Micron Technology, Inc. Methods for error count reporting with scaled error count information, and memory devices employing the same
KR20200069110A (en) * 2018-12-06 2020-06-16 삼성전자주식회사 Memory system including fpga and method of operation thereof
WO2021118848A1 (en) * 2019-12-13 2021-06-17 Micron Technology, Inc. Memory module with computation capability

Families Citing this family (3)

* 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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090017844A (en) * 2007-08-16 2009-02-19 삼성전자주식회사 Non-volatile semiconductor memory device and system capable of fast rogramming and read method thereof
JP2010244553A (en) * 2009-03-31 2010-10-28 Sean Eilert Hierarchical memory architecture to connect mass storage devices
KR20110118168A (en) * 2009-02-18 2011-10-28 마이크론 테크놀로지, 인크. Data integrity in memory controllers and methods
JP2013522779A (en) * 2010-03-22 2013-06-13 モサイド・テクノロジーズ・インコーポレーテッド Composite semiconductor memory device with error correction

Family Cites Families (9)

* 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
JP2004520673A (en) * 2001-04-25 2004-07-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Integrated circuit with embedded non-volatile memory self-diagnosis device and related diagnostic 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
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090017844A (en) * 2007-08-16 2009-02-19 삼성전자주식회사 Non-volatile semiconductor memory device and system capable of fast rogramming and read method thereof
KR20110118168A (en) * 2009-02-18 2011-10-28 마이크론 테크놀로지, 인크. Data integrity in memory controllers and methods
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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190119489A (en) * 2018-04-12 2019-10-22 삼성전자주식회사 Semiconductor memory devices and memory systems including the same
WO2020014604A1 (en) * 2018-07-12 2020-01-16 Micron Technology, Inc. Methods for error count reporting with scaled error count information, and memory devices employing 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
US11698831B2 (en) 2018-07-12 2023-07-11 Micron Technology, Inc. Methods for error count reporting with scaled error count information, and memory devices employing the same
US11977444B2 (en) 2018-07-12 2024-05-07 Lodestar Licensing Group Llc Methods for error count reporting with scaled error count information, and memory devices employing the same
KR20200069110A (en) * 2018-12-06 2020-06-16 삼성전자주식회사 Memory system including fpga and method of operation thereof
WO2021118848A1 (en) * 2019-12-13 2021-06-17 Micron Technology, Inc. Memory module with computation capability

Also Published As

Publication number Publication date
KR20210016598A (en) 2021-02-16
JP6713740B2 (en) 2020-06-24
KR102378466B1 (en) 2022-03-24
JP2016045958A (en) 2016-04-04
CN105373345B (en) 2020-11-10
CN105373345A (en) 2016-03-02
KR102214556B1 (en) 2021-02-09

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
TWI417891B (en) Memory mirroring apparatus and method
KR102262575B1 (en) Memory devices and modules
US9477550B2 (en) ECC bypass using low latency CE correction with retry select signal
US10606696B2 (en) Internally-generated data storage in spare memory locations
US7984357B2 (en) Implementing minimized latency and maximized reliability when data traverses multiple buses
US6615374B1 (en) First and next error identification for integrated circuit devices
US8566672B2 (en) Selective checkbit modification for error correction
US10521113B2 (en) Memory system architecture
US8176388B1 (en) System and method for soft error scrubbing
US20240086090A1 (en) Memory channel disablement
JP2021520556A (en) Transaction metadata
CN114442918A (en) Memory module and operation method thereof

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