KR20160022250A - Memory devices and modules - Google Patents
Memory devices and modules Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
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
Description
본 발명은 메모리 시스템 아키텍처에 관한 것으로, 좀 더 상세하게는, 에러 정정 기능을 갖춘 메모리 시스템 아키텍처에 관한 것이다.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
메모리(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
메모리(102)는 저장된 데이터로부터 읽혀진 데이터에 있는 에러를 정정하거나 또는 에러 정정을 시도하는 것에 응답하여 에러 정보를 생성하도록 구성될 수 있다. 예를 들어, 에러 정보는 정정된 에러, 정정되지 않은 에러, 에러 없음(absence of an error), 에러의 개수, 또는 이와 유사한 것에 관한 정보를 포함할 수 있다. 에러 정보는 실제의 에러, 에러의 주소, 에러가 발생한 횟수, 또는 메모리(102)에 특유한 정보를 포함할 수 있다. 특정한 예에서, 에러 정보는 메모리(102)게 싱글-비트 에러를 정정한 것을 나타내는 싱글-비트 에러에 관한 정보를 포함할 수 있다. 비록 특정한 에러 정보가 설명되었다 하더라도, 에러 정보는 에러에 관한 어떤 정보라도 포함할 수 있다.The
프로세서(104)는 메모리에 연결되고 명령들을 실행할 수 있도록 구성될 수 있다. 예를 들어, 프로세서(104)는 범용 프로세서, DSP (digital signal processor), GPU (graphics processing unit), ASIC (application specific integrated circuit), 프로그램 가능한 논리적 장치 (programmable logic device), 또는 이와 유사한 것일 수 있다.The
프로세서(104)는 제 1 통신 경로(106) 및 제 2 통신 경로(108)를 통하여 메모리(102)에 연결될 수 있다. 프로세서(104)는 제 1 경로(106)를 통하여 메모리로부터 데이터를 수신하도록 구성될 수 있다. 예를 들어, 제 1 통신 경로(106)는 데이터 신호들, 스트로브 신호들, 클록 신호들, 인에이블 신호들, 또는 이와 유사한 것을 위한 신호 라인들을 갖춘 시스템 메모리 인터페이스일 수 있다. 즉, 통신 경로(106)는 프로세서(104)와 메인 시스템 메모리로서의 메모리(102) 사이의 인터페이스인 메인 메모리 채널의 일부일 수 있다. The
프로세서(104)는 다른 통신 경로인, 제 2 통신 경로(108)를 통하여 메모리(102)에 연결될 수 있다. 프로세서(104)는 제 2 통신 경로(108)를 통하여 메모리(102)로부터의 에러 정보를 수신하도록 구성될 수 있다. 따라서, 실시 예에서, 프로세서(104)는 제 1 통신 경로(106)보다는 차라리 제 2 통신 경로(108)를 통하여 에러 정보 및, 특히, 정정된 에러 정보를 수신하도록 구성될 수 있다. 정정된 에러 정보는 정정된 에러에 관한 정보이다. 앞서 설명된 바와 같이, 에러 정보는 에러와 관련된 다양한 타입의 정보를 포함할 수 있다. 따라서, 정정된 에러 정보는 정정된 에러와 관련된 유사한 타입의 정보를 포함할 수 있다.The
소프트웨어(110)는 프로세서(104)에 연결되는 것으로 도시되었다. 그러나, 소프트웨어(110)는 프로세서(104)에서 실행될 수 있는 다양한 프로그램들, 드라이버들, 모듈들, 루틴(routine)들, 또는 이와 유사한 것들을 나타낼 수 있다. 예를 들어, 소프트웨어(110)는 드라이버들, 커널 모듈들, 대몬(daemon)들, 애플리케이션들, 또는 이와 유사한 것들을 포함할 수 있다. 어떤 실시 예에서, 소프트웨어(110)는 프로세서(104)를 인에이블 시켜 본 명세서에서 설명되는 특정한 기능들을 수행하도록 구성될 수 있다.The
비록 하나의 메모리(102)가 예시적으로 사용되었다 하더라도, 어떤 수의 메모리들(102)이라도 통신 경로들(106 및 108)과 유사한 두 개의 통신 경로들을 통하여 프로세서(104)에 연결될 수 있다. 실시 예에서, 각각의 메모리(102)는 다른 메모리들(102)과 분리하여 전용의 제 1 통신 경로(106)를 통하여 그리고 다른 메모리들(102)과 분리하여 전용의 제 2 통신 경로(108)를 통하여 프로세서(104)에 연결될 수 있다. 그러나, 다른 실시 예에서, 제 1 통신 경로(106)는 하나 이상의 메모리(102)에 의해 공유될 수 있고, 제 2 통신 경로(108)는 하나 이상의 메모리(102)에 의해 공유될 수 있다. 게다가, 비록 단일의 제 1 통신 경로(106)가 설명되었다 하더라도, 하나 또는 그 이상의 메모리들(102) 사이에 복수의 제 1 통신 경로들(106)이 제공될 수 있다. 유사하게, 비록 단일의 제 2 통신 경로들(108)이 설명되었다 하더라도, 하나 또는 그 이상의 메모리들(102) 사이에 복수의 제 2 통신 경로들(108)이 제공될 수 있다.Any number of
실시 예에서, 에러 정보는 아웃-오브-밴드(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.
도 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
컨트롤러(214)는 메모리(202) 및 프로세서(204)에 연결되도록 구성된 장치일 수 있다. 예를 들어, 컨트롤러(214)는 범용 프로세서, DSP (digital signal processor), GPU (graphics processing unit), ASIC (application specific integrated circuit), 프로그램 가능한 논리적 장치 (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, 도는 그 이상일 수 있다.
실시 예에서, 제 2 통신 경로(208)는 전용 통신 경로일 수 있다. 즉, 제 2 통신 경로(208)는 오직 메모리(202)와 프로세서(204) 사이의 정보의 통신을 위해 사용될 수 있다. 그러나, 다른 실시 예에서, 컨트롤러(214)는 다른 장치들을 액세스 가능하도록 할 수 있다. 예를 들어, 불휘발성 메모리 장치(268)는 버스(212)에 의해 컨트롤러(214)로 연결될 수 있다. 다른 실시 예에서, 다른 장치들(266)은 컨트롤러(214)로 연결될 수 있다. 따라서, 메모리(202)로부터의 정보와는 다른 정보는 버스(212 및/또는 216)를 통하여 프로세서(204) 및/또는 메모리(202)로 그리고 프로세서(204) 및/또는 메모리(202)로부터 전송될 수 있다. 특히, 메모리(202)로부터의 에러 정보는, 불휘발성 메모리에 관한 목적을 포함하는 다른 목적을 위해 사용되는, 제 2 통신 경로(208)를 통하여 프로세서(204)와 교환될 수 있다.In an embodiment, the
실시 예에서, 컨트롤러(214)는 불휘발성 메모리(254)를 포함할 수 있다. 불휘발성 메모리(254)는 메모리(202)로부터의 에러 정보를 저장하도록 구성될 수 있다. 따라서, 에러 정보는 전원이 차단되더라도 컨트롤러(214)에 보존될 수 있다. 프로세서(24)는 컨트롤러(214)로부터의 에러 정보를 요청하도록 구성될 수 있다. 따라서, 컨트롤러(214)는 불휘발성 메모리(254)에 저장된 에러 정보를 제공함으로써 그러한 요청에 응답하도록 구성될 수 있고, 메모리(202)에 액세스하여 프로세서(204) 또는 이와 유사한 것에 응답하여 에러 정보를 검색할 수 있다.In an embodiment, the
실시 예에서, 컨트롤러(214)는 에러 정보를 위해 메모리(202)를 폴링(polling) 하도록 구성될 수 있다. 다른 실시 예에서, 메모리(202)는 메모리 정보를 컨트롤러(214)로 푸시(push) 하도록 구성될 수 있다. 이와 상관없이, 불휘발성 메모리(254)에 저장된 에러 정보는 대체로 최신의 정보(up-to-date copy)일 수 있다. In an embodiment, the
도 3은 본 발명의 실시 예에 따른 베이스보드 관리 컨트롤러(baseboard management controller; BMC)를 포함하는 메모리 시스템 아키텍처를 갖춘 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(300)은 도 2의 메모리(202), 프로세서(204), 통신 경로들(206 및 208), 그리고 소프트웨어(210)와 유사한, 메모리(302), 프로세서(304), 통신 경로들(306 및 308), 그리고 소프트웨어(310)를 포함할 수 있다. 그러나, 컨트롤러(314)는 BMC(314)일 수 있다.3 is a schematic diagram 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
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
도 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
메모리 컨트롤러(450)는 프로세서(404)에 집적될 수 있다. 메모리 컨트롤러(450)는 프로세서(404)와 메모리(402) 사이의 메인 인터페이스인 메인 메모리 채널의 일부일 수 있다. 메모리 컨트롤러(450)는 통신 경로(406)를 통하여 메모리(402)에 저장된 데이터로의 액세스를 제어하도록 구성될 수 있다. 어떤 실시 예에서, 메모리 컨트롤러(450)는 에러를 정정하도록 구성될 수 있으나, 에러 정정이 메모리(402)에 의해 수행될 때 그러한 에러를 정정할 기회를 갖지 않을 수 있다. 그러나, 본 실시 예에서, 메모리 컨트롤러(450)는 메모리(402)로부터 읽혀진 데이터에 있는 에러를 정정하도록 구성되지 않을 수 있다. 메모리 컨트롤러(450)는 메모리(402)로부터 읽혀진 데이터에 기초한 어떠한 에러도 보고하도록 구성되지 않을 수 있다.The
MCA 레지스터(452)는 그 안에 하드웨어 에러가 보고될 수 있는 레지스터이다. 예를 들어, 캐시 에러, 버스에러, 데이터 에러, 또는 이와 유사한 것은 MCA 레지스터(452)에서 감지되고 보고될 수 있다. 그러나, 메모리 컨트롤러(450)는 메모리(402)로부터 읽혀진 데이터에 있는 에러를 정정하도록 구성되지 않기 때문에, 메모리(402)로부터 읽혀진 데이터에 기초한 어떠한 잠재적 에러 정보(potential error information)라도 MCA 레지스터(452)에 보고되지 않을 수 있다. 이에 상관없이, 앞서 설명된 바와 같이, 에러 정보는 통신 경로(408)를 통하여 프로세서(404)와 교환될 수 있다. 따라서, 메모리 컨트롤러(450) 및 MCA 레지스터(452)를 통하지 않고서라도, 에러 정보는 소프트웨어(410)에 이용 가능할 수 있다.The MCA register 452 is a register in which a hardware error can be reported. For example, cache errors, bus errors, data errors, or the like may be detected and reported in the
실시 예에서, 제 2 통신 경로(408)를 통한 에러 정보의 이용 가능성은 저비용의 시스템(400)을 가능하게 할 수 있다. 예를 들어, 어떤 메모리 정정이 없는 메모리 컨트롤러(450)를 갖춘 프로세서(404)가 사용될 수 있고, 에러 정보는 여전히 이용 가능할 수 있다. 특히, 메모리 에러 정정이 바람직함에도, 제 2 통신 경로(408)를 통하여 이용 가능한 에러 정보가 있기 때문에 에러 정정 기능이 없는 프로세서(404)가 사용될 수 있다. 따라서, 에러 정보를 사용하는 어떤 소프트웨어를 포함하는 소프트웨어(410)는, 마치 프로세서가 메모리 에러 정정을 할 수 있는 것처럼, 여전히 동작할 수 있다. 에러 정정이 없는 프로세서(404)는 더 낮은 전력, 더 낮은 비용의 프로세서일 수 있다. 따라서, 시스템(400)의 전체적인 전력 사용 및 비용은 감소할 수 있다.In an embodiment, the availability of error information via the
비록 메모리 컨트롤러(450)가 프로세서(404)에 집적된 것으로 도시되었다 하더라도, 메모리 컨트롤러(450)는 프로세서(404)와 분리될 수 있다. 이와 상관없이, 통신 경로(408)는 메모리 컨트롤러(450) 및 에러 정정 회로를 갖는 프로세서(404)의 다른 부분들을 우회할 수 있다. 그러한 구성요소들의 우회는 제 2 통신 경로(408)를 통한 에러 정보의 교환이 메모리 컨트롤러(450), MCA 레지스터(452), 또는 이와 유사한 것에 대체로 독립되도록 할 수 있다. 즉, 비록 유사한 정보가 메모리 컨트롤러(450) 및/또는 MCA 레지스터(452)를 통하여 이용 가능하지 않다 하더라도, 에러 정보는 여전히 이용 가능할 수 있다.Although
도 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
실시 예에서, 정정 불가능한 에러와 관련된 에러 정보 및 정정 가능한 에러와 관련된 에러 정보는 다른 경로를 통하여 교환될 수 있다. 앞서 설명된 바와 같이, 정정 가능한 에러 정보는 통신 경로(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
비록 통신 경로(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
도 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,
도 5의 시스템(500)과 유사하게, 정정 불가능한 에러는 프로세서(604)와 교환될 수 있다. 본 실시 예에서, 메모리(602)는 통신 경로(634)를 통하여 정정 불가능한 에러 정보를 교환하도록 구성될 수 있다. 예를 들어, 제 3 통신 경로(634)는 제 1 통신 경로(606)와는 별도의 전용 라인일 수 있다. 따라서, 정정 불가능한 에러와 관련된 에러 정보는, 제 1 및 제 2 통신 경로(606 및 608)와는 다른 통신 경로를 통하여, 프로세서(604)에 의해 수신될 수 있다. Similar to
도 7은 본 발명의 실시 예에 따른 소프트웨어 모듈을 갖는 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(700)은 도 1의 메모리(102), 프로세서(104), 통신 경로(106 및 108), 및 소프트웨어(110)와 유사한 메모리(702), 프로세서(704), 통신 경로들(706 및 708), 및 소프트웨어(710)를 포함할 수 있다. 그러나, 본 실시 예에서, 소프트웨어(710)는 모듈(718)을 포함할 수 있다.7 is a schematic diagram illustrating a system including a memory system architecture with a software module in accordance with an embodiment of the present invention. In the present embodiment,
모듈(718)은 프로세서를 통하여 에러 정보(722)를 액세스하도록 구성된 소프트웨어(710)의 일부를 나타낼 수 있다. 예를 들어, 모듈(718)은 커널 모듈, 드라이버, 확장, 또는 이와 유사한 것을 포함할 수 있다. 모듈(718)은 통신 경로(708)와 관련된 인터페이스를 위한 드라이버를 포함할 수 있다. 특정한 실시 예에서, 모듈(718)은 IPMI 버스, IPMI2 버스, 또는 이와 유사한 것과 관련된 드라이버를 포함할 수 있다. 다른 정보(720)는 소프트웨어(710)에 이용 가능할 수 있다. 에러 정보(722)는 에러 정보(722)와 관련된 소프트웨어(710)의 일부를 나타내도록 별도로 도시되었다.
본 실시 예에서, 모듈(718)은 프로세서(704)가 메모리(702)로부터의 에러 정보를 요청하게 할 수 있다. 예를 들어, 메모리(702)는 에러 정보를 생성할 수 있다. 이후, 프로세서(704)는 통신 경로(708)를 통하여 에러 정보를 위한 요청을 전송할 수 있다. 메모리(702)는 통신 경로(708)를 통하여 에러 정보와 함께 요청에 응답하도록 구성될 수 있다.In this embodiment,
도 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
실시 예에서, EDAC 모듈(824)은 메모리, 캐시, 입출력 장치, 주변 장치, 버스들, 및/또는 시스템(800)의 다른 부분들로부터 제공되는 에러 정보를 관리할 수 있고, 애플리케이션 레이어와 같은 고기능 레이어에 그러한 정보를 노출시킬 수 있다. 특히, EDAC 모듈(824)은 모듈(818)로부터 에러 정보를 수신하도록 구성될 수 있다. EDAC 모듈(824)은 에러 정보와 다른 정보를 조합하여, 다른 모듈들, 애플리케이션들, 또는 이와 유사한 것들이 에러 정보에 액세스하도록 구성될 수 있다. In an embodiment, the
도 9는 본 발명의 실시 예에 따른 수집 모듈을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(900)은 도 7의 메모리(702), 프로세서(704), 통신 경로들(706 및 708), 및 정보(720 및 722)에 응답하여 동작하는 모듈(718)을 포함하는 소프트웨어(710)와 유사한, 메모리(902), 프로세서(904), 통신 경로들(906 및 908), 및 정보(920 및 922)에 응답하여 동작하는 모듈(818)을 포함하는 소프트웨어(810)를 포함할 수 있다. 그러나, 본 실시 예에서, 소프트웨어(910)는 제 2 모듈(926)을 포함할 수 있다. 제 2 모듈(926)은 정보(920)를 수신하도록 구성될 수 있다. 특히, 이 다른 정보(920)는 메모리(902)에 대한 에러와 관련이 없는 정보를 포함할 수 있다. 다른 정보(920)의 적어도 일부(921)는 제 1 모듈(918)에 의해서 수신될 수 있다. 제 1 모듈(918)은 제 2 모듈(926)로부터의 다른 정보(920)의 일부 또는 전부와 에러 정보(922)를 조합할 수 있다. 제 1 모듈(918)은 단일 인터페이스에 조합된 정보를 제공할 수 있다. 예를 들어, 제 1 모듈(918)은, 도 8의 EDAC 모듈(824)과 같은, EDAC 모듈에 조합된 정보를 제공하도록 구성될 수 있다.9 is a schematic diagram showing a system including a memory system architecture with a collection module according to an embodiment of the present invention. The
도 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,
MCA 모듈(1026)은 도 4의 MCA 레지스터(452)와 같은 MCA 레지스터로의 액세스를 제어하도록 구성될 수 있다. 정보(1020)는 MCA 레지스터(452)로부터의 정보를 나타낼 수 있다. EC 모듈(1018)은 MCA 모듈(1026)에 액세스하여 정보(1020)를 복구하도록 구성될 수 있다. EC 모듈(1018)은 MCA 모듈(1026)로부터의 정보(1020)를 에러 정보(1022)와 조합하고, 조합된 정보를 단일 인터페이스에 제공할 수 있다. The
특히, EC 모듈(1018)은 프로세서(1004)가 에러를 정정하도록 하는 MCA 모듈(1026)과 유사하거나 또는 동일한 방식으로 인터페이스를 제공할 수 있다. 예를 들어, 만일 프로세서(1004)가 메모리(1002)로부터 읽혀진 데이터에 있는 에러를 정정하도록 구성되었다면, 그 정보는 MCA 모듈(1026)을 통하여 이용 가능할 수 있다. 그러나, 만일 프로세서(1004)가 메모리(1002)로부터 읽혀진 데이터에 있는 에러를 정정하도록 구성되지 않고, 메모리(1002)에서 정정되는 에러 때문에 MCA 모듈(1026)에 의해 모니터링 되는 통신 경로에 의해 에러 정보를 수신하지 않는다면, MCA 모듈(1026)은 에러 정보를 제공할 수 없을 것이다. 이와 상관없이, EC 모듈(1018)은 통신 경로(1008)를 통하여 획득된 정보(1022)와 정보(1020)를 조합하고, MCA 모듈(1026)이 제공하여 프로세서(1004)로 하여금 메모리(1002)로부터 읽혀진 데이터에 있는 에러를 정정하도록 했던 정보 또는 MCA 모듈(1026)에 이용 가능한 에러 정보와 유사하거나 동일한 조합된 정보를 제공할 수 있다. 소프트웨어(1010)는 프로세서(1004)가 에러 정정 기능을 제공하는지의 여부와 상관없이 동일하거나 또는 유사한 인터페이스를 사용할 수 있다. 다시 말해서, 에러 정정 기능을 갖는 프로세서(1004)는 충분히 사용되는 에러 정보에 의존하는 소프트웨어에 대해 필수적인 것은 아니다. 결과적으로, 에러 정정 기능이 없는 프로세서(1004)에 의해서 비용 절감이 가능하다.In particular, the
도 11은 본 발명의 실시 예에 따른 인터페이스를 공유하는 복수의 모듈을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(1100)은 도 7의 메모리(702), 프로세서(704), 통신 경로들(706 및 708), 및 정보(720 및 722)에 응답하여 동작하는 소프트웨어(710)와 유사한, 메모리(1102), 프로세서(1104), 통신 경로들(1106 및 1108), 및 정보(1120 및 1122)에 응답하여 동작하는 소프트웨어(1110)를 포함할 수 있다. 그러나, 본 실시 예에서, 소프트웨어(1110)는 제 1 모듈(1118), 제 2 모듈(1128), 그리고 인터페이스 모듈(1130)을 포함할 수 있다.11 is a schematic diagram illustrating a system including a memory system architecture with a plurality of modules sharing an interface in accordance with an embodiment of the present invention. In this embodiment,
제 1 모듈(1118)은 도 7의 모듈(718)과 유사하다. 그러나, 제 1 모듈(1118)은 인터페이스 모듈(1130)을 통하여 메모리(1102)로부터 에러 정보를 수신하도록 구성될 수 있다. 인터페이스 모듈(1130)은 통신 경로(1108)에 인터페이스를 제공하도록 구성될 수 있다. 예를 들어, 인터페이스 모듈(1130)은 IPMI 버스를 통하여 액세스를 허용하도록 구성된 모듈일 수 있다. The
제 2 모듈(1128)과 같은 다른 모듈들도 인터페이스 모듈(1130)을 통하여 통신을 수행하도록 구성될 수 있다. 예를 들어, 제 2 모듈(1128)은 IPMI 버스에 접속되는 또 다른 장치들에 액세스하거나, 열 정보 또는 전원 정보와 같은 메모리(1102)의 다른 부분에 액세스하도록 구성될 수 있다. 에러 정보 및 다른 정보 모두는 인터페이스 모듈(1130)에 의해서 전달되는 정보(1122)의 일부분일 수 있다. 즉, 에러 정보는 전체 경로를 통하여 전용의 소프트웨어를 사용하여 전송될 수 있으나, 모듈들, 인터페이스들, 버스들, 또는 이와 유사한 것들과, 관련되거나 관련되지 않은 정보나 소스를 공유할 수 있다. Other modules, such as the
도 12는 본 발명의 실시 예에 따른 인터페이스를 공유하는 정정 가능 에러 모듈 및 직렬 프레즌스 검출/레지스터 클록 드라이버 모듈(serial presence detect/ registering clock driver module)을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(1200)은 도 11의 메모리(1102), 프로세서(1104), 통신 경로들(1106 및 1108), 및 정보(1120 및 1122)에 응답하여 동작하는 모듈들(1118, 1128 및 1130)을 포함하는 소프트웨어(1110)와 유사한, 메모리(1202), 프로세서(1204), 통신 경로들(1206 및 1208), 및 정보(1220, 1222)에 응답하여 동작하는 모듈들(1218, 1228 및 1230)을 포함하는 소프트웨어(1110)를 포함한다. 그러나, 본 실시 예에서, 제 1 모듈(1218)은 정정된 에러(corrected error; CE) 모듈이고, 제 2 모듈(1228)은 직렬 프레즌스 검출(serial presence detect; SPD)/레지스터 클록 드라이버(registering clock driver; RCD) 모듈(1228)이다. 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,
특히, SPD/RCD 모듈(1228)은 직렬 프레즌스 검출 시스템 및/또는 레지스터 클록 드라이버 시스템에 관련된 정보에 액세스하도록 구성될 수 있다. SPD/RCD 모듈(1228)은 그러한 시스템의 하나 또는 둘 모두에 액세스하도록 구성될 수 있다. 정보는 제 2 통신 경로(1208)를 통하여 액세스 될 수 있다. 따라서, 본 실시 예에서 메모리(1202)로부터 제공되는 에러 정보는 SPD/RCD에 관련된 정보로서 통신 경로(1208)를 통하여 액세스 될 수 있다.In particular, the SPD /
도 13은 본 발명의 실시 예에 따른 DRAM 내 에러 정정 기술을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 본 실시 예에서, 시스템(1300)은, 도 10의 메모리(1002), 프로세서(1004), 및 정보(1020 및 1022)에 응답하여 동작하는 에러 정정 모듈(1018)과 MCA 모듈(1026)과 유사한, 메모리(1302), 프로세서(1304), 및 정보(1320 및 1322)에 응답하여 동작하는 에러 정정 모듈(1318)과 MCA(machine check architecture) 모듈(1326)을 포함하는 커널(1310)을 포함한다. 그러나, 본 실시 예에서, 메모리들(1302) 각각은 ECC 기능을 갖는 듀얼 라인 메모리 모듈(ECC DIMM)으로 제공될 수 있다.13 is a schematic diagram 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
각각의 ECC DIMM(1302)은 데이터를 저장하고 저장된 데이터에 있는 에러를 정정하도록 구성될 수 있다. 본 실시 예에서, ECC DIMM(1302)은 대응하는 통신 경로들(1364)을 통하여 프로세서(1304)의 메모리 컨트롤러(1350)에 각각 연결될 수 있다. 통신 경로(1364)는 도 5의 통신 경로(506)와 유사하게 데이터 신호들 및 데이터 스트로브 신호들을 전달하기 위한 라인들을 포함할 수 있다. ECC DIMM(1302)은 도 3의 버스(312), BMC(314), 및 버스(316)와 유사한 버스(1312), BMC(1314), 및 버스(1316)를 포함하는 통신 경로(1308)를 통하여 프로세서(1304)에 각각 연결될 수 있다. Each
실시 예에서, ECC DIMM(1302)은 ECC DIMM(1302)로부터 읽혀진 데이터에 있는 하나 또는 그 이상의 에러를 정정하도록 구성될 수 있다. 에러 정정 기술은 싱글 에러 정정-더블 에러 검출(single error correction - double error detection; SEC-DEC) 기술, 싱글-칩 칩킬(single-chip chipkill) 기술, 더블-칩 칩킬(double-chip chipkill) 기술 등을 포함할 수 있다. 어떠한 에러 정정 기술이라도 사용될 수 있다. In an embodiment, the
본 실시 예에서, 메모리 컨트롤러(1350)는 에러 정정을 수행하도록 구성되지 않거나, 반대로 ECC DIMM(1302)으로부터 에러 정보를 수신하도록 구성되지 않을 수 있다. ECC DIMM(1302)을 경유하는 데이터는 이미 에러가 정정되었기 때문에, 메모리 컨트롤러(1350)는 정정 가능한 에러를 나타내는 어떠한 정보도 받지 않을 수 있다. 그러나, 에러 정보, 특히, 정정된 에러 정보는 버스(1312 및 1316) 그리고 BMC(1314)와 같은 통신 경로(1308)를 통하여 프로세서(1304)에 전달될 수 있다.In this embodiment, the
실시 예에서, 프로세서(1304)는 에러 정정을 수행할 수 없는 프로세서일 수 있으나, 버스(1316)로 연결될 수 있는 인터페이스를 갖는 프로세서일 수 있다. 그러나, 일단 프로세서(1304)가 커널(1310), 특히, 에러 정정 모듈(1318)에 의해서 설정되면, 제반 시스템(1300)은 에러 정정 기능이 있는 프로세서를 갖는 시스템과 유사하게 에러 정정을 수행하도록 구성될 수 있다. In an embodiment,
실시 예에서, 에러 정정 모듈(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,
상술한 바와 같이, 정정 불가능한 에러는 검출될 수 있다. 정정 불가능한 에러 정보는 메모리 컨트롤러(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
실시 예에서, ECC DIMM(1302)은 정정된 데이터를 프로세서(1304)에 전달하도록 구성될 수 있다. 그러나, 데이터는 ECC DIMM(1302)과 메모리 컨트롤러(1350) 사이에서 오류가 생길 수 있다. 따라서, 어떤 형태의 에러 정정이 ECC DIMM(1302)과 프로세서(1304) 또는 메모리 컨트롤러(1350) 사이에서 수행될 수 있다. 예를 들어, ECC DIMM(1302)으로부터 전달되는 데이터는 통신 링크(1364) 상에서 발생하는 에러들을 검출하도록 의도된 에러 정정 코드로 인코딩될 수 있다. 이와 같은 에러 정정에 의해서, ECC DIMM(1302)의 저장 매체로부터 프로세서(1304)로 전달되는 전체 경로가 에러 정정으로 보호될 수 있다.In an embodiment, the
도 14a 내지 도 14d는 본 발명의 실시 예들에 따른 모듈 내 에러 정정 기술을 갖춘 메모리 시스템 아키텍처를 포함하는 시스템을 보여주는 개략도이다. 도 14a를 참조하면, 시스템(1400)은 도 13의 시스템과 유사한 구성들을 포함할 수 있다. 그러나, 본 실시 예에서, ECC DIMM(1402)은 버퍼(1462)를 포함한다. 버퍼(1462)는 ECC DIMM(1402)으로부터 읽혀지는 데이터에 포함되는 에러를 정정하도록 구성될 수 있다. 특히, 비정정 데이터는 ECC DIMM(1402)의 DRAM 장치들(미도시)과 같은 내부 메모리 장치로부터 읽혀질 수 있다. 버퍼(1462)는 본 명세서에서 설명된 다른 메모리들과 유사하게 비정정 데이터의 에러를 정정하고, 정정된 에러 정보를 생성하도록 구성될 수 있다. 상술한 에러 정보는 통신 경로(1408)를 통하여 전달되고, 앞서 설명한 방법들에 의해서 사용될 수 있다. 즉, 에러 정보는 에러 정보가 생성된 방식에 관계없이 상술한 다양한 방법에 의해서 사용될 수 있다.14A-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,
도 14b를 참조하면, 시스템(1400)의 구성들은 도 14a의 그것들과 유사할 수 있다. 그러나, 본 실시 예에서, EDAC 모듈(1424)은 MCA 모듈(1426)과 정보를 교환하도록 구성될 수 있다. 예를 들어, EDAC 모듈(1424)은 하드웨어 관련 정보, 정정 불가능한 에러 정보, 또는 MCA 모듈(1426)을 통하여 이용 가능한 정보를 위해 MCA 모듈(1426)을 폴링하도록 구성될 수 있다. EDAC 모듈(1424)은 MCA 모듈(1426)로부터 제공되는 정보와 에러 정정 모듈(1418)로부터 전달되는 정보를 조합하도록 구성될 수 있다. 14B, the configurations of
도 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
도 14d를 참조하면, 시스템(1400)의 구성들은 도 14c의 그것들과 유사할 수 있다. 그러나, 본 실시 예에서, 도 14a와 도 14b의 사이의 차이점과 유사하게, MCELOG 모듈(1425)은 도 14b의 EDAC 모듈(1424)과 유사하게 MCA 모듈(1426)로부터 제공되는 정보를 수신하도록 구성될 수 있다. Referring to FIG. 14D, the configurations of
비록, 도 14a 내지 도 14d에서 버퍼(1462)를 포함하는 ECC DIMM(1402)에 대해서 설명되었지만, 다른 실시 예에서, ECC DIMM(1302)를 포함하는 도 13의 시스템(1300)의 다양한 구성들이 적용될 수 있다. Although described with respect to an
도 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.
데이터 인터페이스(1536)는 메모리 장치들(1501)에 저장된 데이터가 전송되는 인터페이스이고, 메모리 장치들(1501)에 저장될 데이터(1540)가 수신되는 인터페이스이다. 예를 들어, 데이터 인터페이스(1536)는 데이터 라인, 스트로브 라인, 어드레스 라인, 인에이블 라인, 클록 라인 등과 같은 라인들을 위한 버퍼, 드라이버 회로, 종단 회로(termination), 또는 다른 회로들을 포함할 수 있다.The
에러 인터페이스(1538)는 SMBus, IPMI, 또는 본 명세서에서 설명된 다른 버스들과 같은 특정 버스를 통하여 통신하도록 구성된 인터페이스일 수 있다. 실시 예에서, 에러 인터페이스(1538)는 메모리 모듈(1500)이 에러 정보와 더불어 다른 정보를 교환하기 위한 기존의 인터페이스일 수 있다. 따라서, 정보(1542)는 에러 정보뿐만 아니라 다른 정보도 포함할 수 있다. The
컨트롤러(1541)는 메모리 장치들(1501)과 연결되도록 구성된 어떤 장치일 수 있다. 예를 들어, 컨트롤러(214)는 범용 프로세서, DSP (digital signal processor), ASIC (application specific integrated circuit), 프로그램 가능한 논리 장치(programmable logic device) 등을 포함할 수 있다. 상세하게 후술 되겠지만, 컨트롤러(1541)는 RCD 등과 같은 버퍼를 포함할 수 있다.The controller 1541 may be any device configured to be coupled to the
컨트롤러(1541)는 메모리 장치들(1501), 데이터 인터페이스(1536), 그리고 에러 인터페이스(1538)와 연결될 수 있다. 컨트롤러(1541)는 에러 정보를 얻도록 구성될 수 있다. 실시 예에서, 컨트롤러(1541)는 메모리 장치들(1501)로부터 에러 정보를 획득할 수 있지만, 다른 실시 예에서는, 컨트롤러(1541)는 메모리 장치들(1501)로부터의 데이터에 있는 에러를 정정하고 에러 정보를 생성하도록 구성될 수 있다. Controller 1541 may be coupled to
실시 예에서, 컨트롤러(1541)는 데이터 인터페이스(1536)를 통하여 정정 불가능한 에러를 교환하도록 구성될 수 있다. 예를 들어, 앞서 설명된 바와 같이, 데이터 스트로브 신호는 정정 불가능한 에러를 나타내도록 사용될 수 있다. 컨트롤러(1541)는 정정 불가능한 에러를 검출하는 것에 응답하여 데이터 인터페이스(1536)를 통하여 전송되는 스트로브 신호를 조정하도록 구성될 수 있다. In an embodiment, the controller 1541 may be configured to exchange uncorrectable errors via the
도 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
SPD/RCD 인터페이스(1638)는 직렬 프레즌스 검출(SPD) 시스템이나 RCD 시스템(미도시)으로의 액세스를 제공하기 위해 사용될 수 있다. 특정 실시 예에서, 에러 정보는 상술한 SPD 또는 RCD 시스템 내의 특정 레지스터나 메모리 영역을 통하여 이용 가능할 수 있다. 따라서, 에러 정보는 SPD 또는 RCD 정보가 획득될 수 있는 동일한 인터페이스를 통하여 획득될 수 있다.The SPD /
에러 정보가 기존의 하드웨어 인터페이스를 통하여 이용 가능하기 때문에, 추가적인 하드웨어는 불필요하다. 예를 들어, 에러 정보를 액세스하기 위한 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 /
도 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
정정 불가능한 에러(uncorrectable error; UE) 인터페이스(1744)는 메모리 모듈(1700)이 정정 불가능한 에러를 교환하도록 구성된 별도의 인터페이스이다. 예를 들어, 정정 불가능한 에러 인터페이스(1744)는 전용 라인이거나, 전용의 버스 등일 수 있다. The uncorrectable error (UE) interface 1744 is a separate interface that the
도 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
메모리 장치(1800)는 컨트롤러(1841)를 포함할 수 있다. 컨트롤러(1814)는 메모리(1801) 및 인터페이스들(1836 및 1838)에 연결되도록 구성된 어떤 장치일 수 있다. 예를 들어, 컨트롤러(1841)는 범용 프로세서, DSP (digital signal processor), ASIC (application specific integrated circuit), 프로그램 가능한 논리 장치(programmable logic device) 등을 포함할 수 있다.The
메모리(1801)는 데이터를 저장하도록 구성될 수 있다. 예를 들어, 메모리(1801)는 메모리 셀 어레이일 수 있다. 그러나, 다른 실시 예에서, 데이터는 다른 구성들에 저장될 수 있다. 메모리(1801)는 전기적, 자기적, 화학적, 광학적, 또는 다른 타입의 저장 매체를 포함할 수 있다.The memory 1801 may be configured to store data. For example, the memory 1801 may be a memory cell array. However, in other embodiments, the data may be stored in other configurations. The memory 1801 may 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
컨트롤러(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
본 실시 예에서, 데이터(1840) 및 정보(1842) 모두 컨트롤러(1841)를 경유하는 것으로 도시되었다. 그러나, 다른 실시 예에서, 메모리 장치(1800)의 구성 요소들은 컨트롤러(1841)에 의해 제어되어, 데이터(1840) 및 정보(1842)는 컨트롤러(1841)를 경유하지 않을 수 있다. 예를 들어, 어떤 실시 예에서, 데이터 및/또는 에러 정보는 컨트롤러(1841)의 제어 하에 데이터 인터페이스(1836) 및 에러 인터페이스(1838)로 제공될 수 있으나, 컨트롤러(1841)를 경유할 수 있다.In this embodiment, both
도 19는 본 발명의 실시 예에 따른 메모리 장치를 보여주는 개략도이다. 본 실시 예에서, 메모리 장치(1900)는 메모리 셀 어레이(1901)를 포함할 수 있다. 메모리 셀 어레이(1901)는 데이터가 저장되는 메모리 셀들을 포함할 수 있다. 특히, 메모리 셀 어레이(1901)는 인코딩된 데이터를 저장하도록 구성될 수 있다. 센스 앰프(1902) 및 쓰기 회로(1904)는 데이터가 어드레스(1906)에 의해 특정되는 어드레스로 메모리 셀 어레이(1901)에 기록되고 메모리 셀 어레이(1901)로부터 읽혀지도록 하는 메모리 장치(1900)에 있는 회로의 예이다. 그러나, 다른 실시 예에서, 다른 읽기 및 쓰기 회로는 메모리 셀 어레이(1901)와 관련될 수 있다. 게다가, 비록 센스 앰프(1902) 및 쓰기 회로(1904)가 메모리 셀 어레이(1901)의 일부로 도시되었다 하더라도, 그러한 회로는 메모리 셀 어레이(1901)로부터 분리될 수 있다. 게다가, 비록 싱글 메모리 셀 어레이(1901)가 도시되었다 하더라도, 복수의 메모리 셀 어레이들(1901)이 제공될 수 있다.19 is a schematic diagram showing a memory device according to an embodiment of the present invention. In this embodiment, the
메모리 셀 어레이(1901)는 ECC (error correcting code) 엔진(1908)에 연결될 수 있다. ECC 엔진(1908)은 메모리 셀 어레이(1901)에 기록되는 데이터를 인코딩함으로써 그리고 메모리 셀 어레이(1901)로부터 읽혀지는 데이터를 디코딩함으로써 메모리로부터 읽혀진 데이터에 있는 적어도 하나의 에러를 정정하도록 구성될 수 있다. 특히, ECC 엔진(1908)은 쓰기 데이터(1910)를 수신하도록 구성될 수 있다. ECC 엔진(1908)은 쓰기 데이터(1910)를 인코딩하도록 구성되어, 인코딩된 데이터는 어드레스(1906)에 의해 특정된 장소에 쓰기 회로(1904)에 의해 메모리 셀 어레이(1901)로 기록될 수 있다. 유사하게, ECC 엔진(1908)은 메모리 셀 어레이(1901)로부터 인코딩된 데이터를 수신하고, 그 데이터를 디코딩된 출력 데이터(1924)로 디코딩하도록 구성될 수 있다. 그러한 인코딩 및 디코딩은 본 명세서에서 설명된 것과 같은 다양한 ECC 알고리즘에 따라 수행될 수 있다. 예를 들어, SEC-DED (Single Error Correct - Double Error Detect)가 ECC 알고리즘의 예로써 사용될 수 있으나, 다른 알고리즘들도 사용될 수 있다.The memory cell array 1901 may be 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
비록 어드레스(1906) 및 쓰기 데이터(1910)와 같은 신호들이 메모리 셀 어레이(1901)에 데이터를 기록하는데 사용되는 신호들로써 도시되었으나, 메모리 장치(1900)는 메모리 셀 어레이(1901)에 데이터를 기록하는데 관련된 다른 신호들을 수신하고 처리하도록 구성될 수 있다. 그러나, 그러한 구성 요소들은 명료함을 위해 생략되었다. 게다가, 어드레스(1906)를 변형하거나, 액세스의 방향을 바꿀 수 있는 다른 구성요소들도 명료함을 위해 생략되었다.Although signals such as
특정한 실시 예에서, 쓰기 동작 동안, 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
읽기 동작 동안, 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,
출력 데이터(1924)는 메모리 장치(1900)로부터 출력될 수 있다. 어떤 실시 예에서, 다른 구성 요소들은 ECC 엔진과 메모리 장치(1900)의 출력 사이에 배치될 수 있다. 어떤 실시 예에서, 버퍼(1932)는 출력 데이터(1924)를 버퍼링하도록 구성될 수 있다. 어떤 실시 예에서, RCD 모듈(1934)은 출력 데이터(1924)를 수신하고, 버퍼링하고, 출력하도록 구성될 수 있다. 여기서, 그러한 옵션적인 구성 요소들은 점선으로 도시되었다.
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
실시 예에서, 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
실시 예에서, 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
실시 예에서, 메모리 컨트롤러(1900)는 SPD 모듈(1930)을 포함할 수 있다. ECC 컨트롤러(1918)는 SPD 모듈(1930)과 통신하도록 구성될 수 있다. SPD 모듈(1930)은 SPD 인터페이스와 관련된 동작들을 수행하도록 구성될 수 있다. 게다가, SPD 모듈(1930)은 ECC 컨트롤러(1918)를 통하여 에러 정보로의 액세스가 이용 가능하도록 구성될 수 있다. 예를 들어, SPD 모듈(1930)을 통하여 수신된 특정한 커맨드들은 적절한 커맨드들 및/또는 신호들로 변환되어 ECC 컨트롤러(1918)에 저장된 에러 정보를 액세스할 수 있다. In an embodiment, the
DQS 변경기(1920)는 ECC 엔진(1908)으로부터의 에러 정보(1916)에 응답하여 메모리 셀 어레이(1901)로부터의 데이터 스트로브 신호를 변경할 수 있고, 변경된 데이터 스트로브 신호(1922)를 출력할 수 있다. 특정한 실시 예에서, 에러 정보(1916)는 정정 불가능한 에러가 발생하였는지 여부를 나타내는 신호일 수 있다. DQS 변경기(1920)는 데이터 스트로브 신호(1912)를 변경하도록 구성되어, 만일 에러 정보(1916)가 정정 불가능한 에러가 발생하였다는 것을 나타내면 출력 데이터 스트로브 신호(1922)는 토글링 하지 않을 수 있다. 그러나, 만일 정정 불가능한 에러 신호가 발생하지 않았다면 DQS 변경기(1920)는 데이터 스트로브 신호들(1912)을 통과시킬 수 있다. 예를 들어, DQS 변경기(1920)는 OR 게이트, AND 게이트, NAND 게이트, 트랜스미션 게이트 등과 같은 논리 회로를 포함할 수 있다.The
실시 예에서, DQS 변경기(1920)는 시간에 민감한(time-sensitive) 정보를 교환하는데 사용될 수 있다. 예를 들어, 정정 불가능한 에러가 발생할 때, 에러는 현재의 읽기 동작과 관련될 수 있다. SMBus에 의한 것과 같이, 정정 불가능한 에러와 관련된 정보가 ECC 컨트롤러(1918)에 의해 외부 장치들과 교환되는 동안, 통신 경로는 데이터(1924)를 위한 통신 경로보다 더 느린 속도로 동작할 수 있다. 따라서, 정정 불가능한 에러의 발생의 통신은 대응하는 읽기 동작에 비해 지연될 수 있다. 반대로, DQS 변경기(1920)에 의해 정정 불가능한 에러가 발생하였다는 것을 통신하는 것은 대응하는 읽기 동작과 대체로 동시에 발생할 수 있다. 즉, 변경된 출력 데이터 스트로브 신호(1922)는 정정 불가능한 에러를 갖는 데이터(1924)의 전송과 관련된 데이터 스트로브 신호이다.In an embodiment,
비록 메모리 장치(1900)의 특정한 구성 요소들이 예로써 설명되었다 하더라도, 다른 구성 요소들이 제공될 수 있다. 예를 들어, 메모리 장치(1900)는 다양한 스트로브 신호들, 선택 신호들, 제어 신호들, 인에이블 신호들 등을 수신하거나 전송하도록 구성될 수 있다.Although specific components of the
도 20은 본 발명의 실시 예에 따른 메모리 장치들을 포함하는 메모리 모듈을 보여주는 개략도이다. 본 실시 예에서, 메모리 모듈(2000)은 도 15의 데이터 인터페이스(1536) 및 에러 인터페이스(1538)와 유사한, 데이터 인터페이스(2036) 및 에러 인터페이스(2038)를 포함할 수 있다. 그러나, 본 실시 예에서, 메모리 모듈(2000)은 복수의 ECC 메모리 장치들(2001-1 내지 2001-N)을 포함할 수 있다. ECC 메모리 장치들(2001)은, 앞서 설명된 도 18 및 도 19의 메모리 장치들(1800 및 1900)과 같은, 본 명세서에서 설명된 메모리 장치들 중 어느 것일 수 있다. 20 is a schematic diagram illustrating a memory module including memory devices in accordance with an embodiment of the present invention. In this embodiment, the
메모리 장치들(2001)의 예로써 메모리 장치(1800)를 사용하여, 그리고 도 18 및 도 20을 참조하여, 메모리 장치들(1800)의 각각은 데이터 인터페이스(2036) 및 에러 인터페이스(2038)에 연결될 수 있다. 데이터 인터페이스(2036)와 관련하여, 메모리 장치들(1800)의 데이터 인터페이스들(1836)은 적어도 데이터 인터페이스(2036)의 일부를 형성할 수 있다. 예를 들어, 각각의 데이터 인터페이스(1836)의 데이터 입출력들, 스트로브 신호들 등은 데이터 인터페이스(2036)에 수집될 수 있다. 데이터 인터페이스(2036)의 어드레스 입력 및/또는 다른 제어 신호들은 메모리 장치들(1800)의 데이터 인터페이스들(1836)에 분배될 수 있다. 따라서, 데이터는 데이터 인터페이스(2036)를 통하여 메모리 장치들(1800)(결과적으로, 메모리 모듈(2000))로 전송되거나 메모리 장치들(1800) (결과적으로, 메모리 모듈(2000))로부터 수신될 수 있다. Using
유사하게, 에러 인터페이스들(1838)은 에러 인터페이스(2038)에 연결될 수 있다. 에러 인터페이스들(1838)은 다양한 방법으로 연결될 수 있다. 예를 들어, 에러 인터페이스들(1838) 및 에러 인터페이스(2038)는 메모리 모듈(2000) 내의 공용 버스로 연결될 수 있다. 다른 예에서, 에러 인터페이스(2038)는 메모리 장치들(2001)의 각각의 에러 인터페이스(1838)에 직접 연결될 수 있다. 에러 인터페이스(2038)는 메모리 장치들(1800)로부터 에러 정보를 수집하도록 구성될 수 있다. 따라서, 에러 정보는 에러 인터페이스(2038)를 통하여 메모리 장치들(1800) (결과적으로, 메모리 모듈(2000))로부터 전송되도록 구성될 수 있다.Similarly, the error interfaces 1838 can be coupled to the
비록 도 18의 메모리 장치(1800)가 메모리 모듈(2000)의 메모리 장치(2001)의 예로써 사용되었다 하더라도, 다른 실시 예에서, 다른 메모리 장치들이 사용될 수 있다. 예를 들어, 도 19의 메모리 장치(1900)는 메모리 장치들(2001)로서 사용될 수 있다. 도 19를 참조하면, 각각의 메모리 장치(1900)의 어드레스(1906), 쓰기 데이터(1910), 출력 데이터(1924), 데이터 스트로브 신호(1922) 등은 데이터 인터페이스(2036)에 연결될 수 있다. 유사하게, 각각의 메모리 장치(1900)의 ECC 컨트롤러(1918)는 에러 인터페이스(2038)에 연결될 수 있다.Although the
도 21 내지 도 23은 본 발명의 다양한 실시 예들에 따른 메모리 모듈들을 보여주는 개략도이다. 도 21을 참조하면, 본 실시 예에서, 메모리 모듈(2100)은 도 15의 하나 또는 그 이상의 메모리 장치들(1501), 데이터 인터페이스(1536), 및 컨트롤러(1541)와 유사한, 하나 또는 그 이상의 메모리 장치들(2101), 데이터 인터페이스(2136), 및 컨트롤러(2141)를 포함할 수 있다. 모듈 에러 인터페이스(2138)는 에러 인터페이스(1538)와 유사할 수 있고, 정보(1542)와 유사한 정보(2142)를 교환하도록 구성될 수 있으나, 모듈 에러 인터페이스(2138)는 그것과 메모리 장치들(2101)의 장치 에러 인터페이스들(2139)과 구별하기 위해 "모듈"이라는 용어가 사용되었다. 상세하게 후술 되겠지만, 모듈 에러 인터페이스(2138)는 에러 정보를 교환하는 것과는 다른 통신을 위해 사용될 수 있다.Figures 21 through 23 are schematic diagrams illustrating memory modules in accordance with various embodiments of the present invention. 21, in this embodiment, the
여기서, 메모리 장치들(2101) 각각은 도 18의 데이터 인터페이스(1836) 및 에러 인터페이스(1838)와 유사한, 데이터 인터페이스(2137) 및 장치 에러 인터페이스(2139)를 포함할 수 있다. 메모리 장치들(2101)의 데이터 인터페이스들(2137)은 모듈의 데이터 인터페이스(2136)에 연결될 수 있으나, 그러한 연결은 명료함을 위해 도시되지 않았다. 게다가, 어떤 실시 예에서, 메모리 장치들(2101)의 데이터 인터페이스(2136)와 데이터 인터페이스들(2137)의 연결은 메모리 컨트롤러(2141)를 경유할 필요는 없다. 예를 들어, 어떤 실시 예에서, 메모리 모듈(2100)로부터 그리고 메모리 모듈(2100)로 전송되는 데이터(2140)는 컨트롤러(2141)에서 버퍼링 될 수 있으나, 다른 실시 예에서, 그러한 전송은 컨트롤러(2141)를 우회할 수 있다.Here, each of the memory devices 2101 may include a data interface 2137 and a device error interface 2139, similar to the
각각의 메모리 장치(2101)는 모듈 에러 인터페이스(2138)에 연결될 수 있고, 장치 에러 인터페이스 및 모듈 에러 인터페이스를 통하여 에러 정보를 교환하도록 구성될 수 있다. 본 실시 예에서, 컨트롤러(2141)는 장치 에러 인터페이스들(2139) 및 모듈 에러 인터페이스(2138)에 연결될 수 있다.Each memory device 2101 may be coupled to a
좀 더 상세하게 후술 되겠지만, 컨트롤러(2141)는 에러 정보와 관련된 통신과 같은 메모리 장치들(2101)과 관련된 통신을 관리하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 대응하는 장치 에러 인터페이스들(2139)을 통하여 메모리 장치들(2101)과 관련된 에러 정보를 액세스하고, 메모리 장치들(2101)과의 통신을 포워딩하고, 메모리 장치들(2101)로부터의 에러 정보를 수집하도록 구성될 수 있다.As will be discussed in more detail below, the
특정한 실시 예에서, 컨트롤러(2141)는 모듈 에러 인터페이스(2138)를 통하여 액세스 가능한 레지스터들(2149)을 포함할 수 있다. 컨트롤러(2141)는 장치 에러 인터페이스들(2139)을 통하여 메모리 장치들(2101)과 통신함으로써 메모리 장치들(2101)로부터의 에러 정보를 수집하도록 구성될 수 있다. 그러한 에러 정보는 레지스터들(2149)에 저장될 수 있고 메모리 모듈(2100) 외부의 장치들에 액세스 가능할 수 있다. 또는 컨트롤러(2141)는 에러 정보를 조합하거나 에러 정보를 요약하도록 구성될 수 있다. 특히, 실시 예에서, 각각의 메모리 장치(2101)는 다른 메모리 장치들(2101)로부터 고립된 그것 자신의 에러 정보를 생성할 수 있다. 따라서, 컨트롤러(2141)가 메모리 장치들(2101)의 전부를 액세스할 때, 컨트롤러(2141)는 각각의 메모리 장치(2101)가 생성할 수 없는 추가적인 에러 정보를 생성하도록 구성될 수 있다. 비록 레지스터들(2149)이 예로써 사용되었다 하더라도, 에러 정보 및 다른 정보가 다른 방법으로 컨트롤러(2141)에 저장될 수 있다.In a particular embodiment, the
실시 예에서, 컨트롤러(2141)는 메모리 장치들(2101)과 관련된 커맨드들을 수신하도록 구성될 수 있다. 본 명세서에서 설명되는 바와 같이, 컨트롤러(2141)는 에러 정보를 읽기 위한 커맨드를 수신하도록 구성될 수 있다. 그러나, 컨트롤러(2141)는 메모리 장치들(2101)과 관련된 다른 타입의 통신들을 수신하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 메모리 장치들(2101)의 유지와 관련된 커맨드들을 수신하도록 구성될 수 있다. 그러한 관리의 예로써, 하나 또는 그 이상의 메모리 장치(2101) 내의 메모리 셀을 리페어 하거나, 데이터를 다시 쓰기 하거나, 리프레시 사이클을 초기화하기 위한 커맨드가 있을 수 있다. 컨트롤러(2141)는 그러한 통신들을 수신하고, 이에 응답하여 메모리 장치들(2101)과 통신하도록 구성될 수 있다.In an embodiment, the
도 22를 참조하면, 본 실시 예에서, 메모리 모듈(2200)은 메모리 모듈(2100)과 유사할 수 있으나, 메모리 모듈(2200)은 컨트롤러(2141)에 연결된 직렬 프레즌스 검출(serial presence detect; SPD)(2143) 모듈을 포함할 수 있다. SPD(2143)는 컨트롤러(2141)를 통하여 통신하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 SPD(2143)로의 그리고 SPD(2143)로부터의 통신을 포워딩하도록 구성될 수 있다. 다른 실시 예에서, 컨트롤러(2141)는 SPD(2143)로부터의 정보를 획득하도록 구성될 수 있고, 모듈 에러 인터페이스(2138)를 통하여 그러한 정보를 사용하여 SPD(2143)를 위한 프록시로서 동작할 수 있다. 비록 모듈 에러 인터페이스(2138)가 "에러"라는 용어를 사용하였다 하더라도, 에러 정보와는 다른 정보는 모듈 에러 인터페이스(2138)를 통하여 전송되고 수신될 수 있다.22, in this embodiment,
실시 예에서, 컨트롤러(2141)는 SPD(2143)와 관련된 어드레스에 응답하도록 구성될 수 있다. 그러나, 컨트롤러(2141)는 다른 어드레스에 응답하거나 통신에 있어서 추가적인 정보를 사용하도록 구성되어, 통신이 SPD(2143)를 위해 의도되었는지, 에러 정보를 액세스하도록 의도되었는지, 메모리 장치들(2101)을 위해 의도되었는지, 컨트롤러(2141)를 위해 의도되었는지 여부 등을 판단할 수 있다.In an embodiment,
도 23을 참조하면, 본 실시 예에서, 메모리 모듈(2300)은 도 21의 메모리 모듈(2100) 또는 도 22의 메모리 모듈(2200)과 유사할 수 있다. 그러나, 레지스터링 클록 드라이버(registering clock driver; RCD) 모듈(2145)은 컨트롤러(2141) 대신에 사용될 수 있다. 여기서, RCD(2145)는 메모리 모듈(2300)로 전송되고 메모리 모듈(2300)로부터 전송된 데이터를 버퍼링하도록 구성될 수 있다. 게다가, RCD(2145)는 컨트롤러(2141)와 관련하여 본 명세서에서 설명된 기능들을 제공하도록 구성될 수 있다.Referring to FIG. 23, in this embodiment, the
SPD(2143)는 RCD(2145)에 연결될 수 있다. 따라서, 메모리 모듈(2200)과 유사하게, SPD(2143)는 RCD(2145)를 통하여 액세스 가능할 수 있고, RCD(2145)는, 앞서 설명된 바와 같이 컨트롤러(2141)와 유사하게, SPD(2143)를 위한 프록시로써 동작할 수 있다.
도 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,
컨트롤러(2141)는 어드레스(2454)를 수신하도록 구성될 수 있다. 어드레스(2454)는 하드웨어에 내장된(hardwired) 입력일 수 있다. 특정한 실시 예에서, 어드레스(2454)는, 특정한 소켓에 삽입되었을 때, 하이 또는 로우 값으로 연결되어 동일한 버스(2542)에 연결된 다른 것들로부터의 메모리 모듈과 구별시키는, 메모리 모듈 상의 일련의 핀들일 수 있다.
실시 예에서, 어드레스(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
본 실시 예에서, SPD(2143) 및 메모리 장치들(2101)은 별도의 버스들(2450)을 통하여 각각 컨트롤러(2141)에 연결될 수 있다. 여기서, 버스들은 메모리 장치들(2101-1 내지 2010-N)에 대응하도록 버스(2450-1 내지 2450-N)으로 표시되었다. 버스(2450-N+1)는 컨트롤러(2141) 및 SPD(2143)에 연결된 추가적인 버스에 대응할 수 있다. 특정한 실시 예에서, 버스들(2450) 각각은 SMBus들 또는 다른 유사한 통신 회선들일 수 있다. 그러나, 다른 실시 예에서, 예를 들어, 단지 두 개의 종말점을 가질 수 있는 통신 회선을 포함하는, 포인트-투-포인트 (point-to-point communication link) 통신 회선이 버스들(2450) 대신에 사용될 수 있다. 즉, 비록 버스라는 용어가 사용되었다 하더라도, 통신 회선은 두 개의 장치들에 연결되도록 구성될 수 있다.In this embodiment, the
실시 예에서, SPD(2143)는 제어 신호(2147)에 응답하거나 제어 신호(2147)를 생성하도록 구성될 수 있다. 제어 신호(2147)는 버스(2450-N+1)와 관련하여 아웃-오브 밴드(out-of band) 신호를 포함할 수 있다. 예를 들어, 제어 신호(2147)는 인터럽트 신호를 포함할 수 있다. 특히, 실시 예에서, 제어 신호(2147)는 SPD(2143)와 관련된 이벤트 신호일 수 있다. 컨트롤러(2141)는 제어 신호(2451)를 수신하거나 생성하도록 구성될 수 있다. 제어 신호(2451)는 SPD(2143)에 의해 사용되는 신호일 수 있다. 그러나, 컨트롤러(2141)는 SPD(2143)가 가질 수 있는 인터페이스를 사용하도록 구성될 수 있기 때문에, SDP(2143)는 제어 신호(2451)를 직접 수신하도록 구성되지 않을 수 있다. 따라서, 컨트롤러(2141)는 제어 신호(2147)로써 SPD(2143)와 제어 신호(2451)를 교환하도록 구성될 수 있다. 비록 SPD와 관련된 단일의 제어 신호가 예로써 사용되었다 하더라도, 다른 실시 예에서, 복수의 제어 신호들이 SPD(2143), 메모리 장치들(2101), 또는 다른 구성 요소들로(부터) 포워딩 될 수 있다. 명료함을 위해 그러한 제어 신호들은 도시되지 않았으나, 제공될 수도 있다.In an embodiment,
게다가, 컨트롤러(2141)는 제어 신호(2147)와 유사한 제어 신호와 관련될 수 있는 SPD(2143)를 넘어 추가적인 기능을 포함할 수 있다. 예를 들어, 제어 신호(2141)는 메모리 장치들(2101)로부터의 에러 정보에 기초하여 인터럽트를 생성하도록 구성될 수 있다. 따라서, 제어 신호(2451)는 SPD(2143)로부터의 신호뿐만 아니라 에러 정보 기반의 인터럽트를 교환하는데 사용될 수 있다. 컨트롤러(2141)는 그러한 제어 신호가 컨트롤러(2141), SPD(2143) 등을 위해 의도되었는지 여부를 판단하도록 구성될 수 있다.In addition, the
실시 예에서, 많은 추가적인 핀들은 메모리 장치들(2101)을 위해 사용될 수 있다. 특정한 실시 예에서, 메모리 장치(2101)는 두 개의 추가적인 핀들(하나는 클록 신호를 위한 것이고 다른 하나는 데이터 신호를 위한 것)을 포함할 수 있다. 컨트롤러(2141)는 버스들(2452 및 2450-1 내지 2450-N+1)을 위한 2x(N+2)개의 핀들, 어드레스(2454)를 위한 세 개의 핀들, 및 제어 신호들(2451 및 2147)을 위한 두 개의 핀들을 포함할 수 있다. In an embodiment, 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).
도 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,
게다가, 버스(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,
실시 예에서, 복수의 추가적인 핀들이 메모리 장치들(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
도 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,
실시 예에서, 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
실시 예에서, 복수의 추가적인 핀들이 메모리 장치들(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
도 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,
실시 예에서, 메모리 장치들(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
실시 예에서, 복수의 추가적인 핀들이 메모리 장치들(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
실시 예에서, 상술 된 구성의 어떤 구성에서라도, 컨트롤러(2141)는, 만일 동일한 버스에 연결되었다면, 메모리 장치들(2101) 및 SPD(2143)의 어드레스들을 결정하도록 구성될 수 있다. 예를 들어, 컨트롤러(2141)는 SMBus 어드레스 솔루션 프로토콜(address resolution protocol)을 사용하여 어드레스들을 메모리 장치들(2101) 및 SPD(2143)에 동적으로 할당하도록 구성될 수 있다. 비록 한 타입의 버스에서 어드레스들을 결정하는 기술이 예로써 사용되었다 하더라도, 다른 기술들이 특정한 버스(2450)에 적절하게 사용될 수 있다.In an embodiment, in any of the configurations described above,
도 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
실시 예에서, 메모리 장치들(2101), SPD(2143), 및 리피터(2750)의 구성은 도 25b와 유사할 수 있다. 즉, 도 25b 및 27을 참조하면, 메모리 장치들(2101)은, 리피터(2750)에 연결된, 버스(2450)에 각각 연결될 수 있다. 메모리 장치들(2101) 각각은 ID(2456)를 수신하도록 구성될 수 있다. 그 결과, 메모리 장치들(2101)은 버스(2450)에서의 사용을 위한 각각의 어드레스들을 결정하도록 구성될 수 있다.In an embodiment, the configuration of memory devices 2101,
실시 예에서, 특정한 어드레스들 또는 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
2804 단계에서, 에러 정보가 보고될 수 있다. 앞서 설명된 바와 같이, 메모리 장치, 메모리 모듈의 다른 구성 요소들, 및 프로세서 사이의 통신 회선은 에러 정보를 교환하는데 사용될 수 있다. 에러 정보(2804)를 보고하는 것은 그러한 통신 회선들을 통하여 수행될 수 있다.In
도 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
2902 단계에서, 데이터가 다시 읽혀질 수 있다. 본 실시 예에서, 데이터를 다시 읽어내는 것에 응답하여, 에러가 발생하지 않는 경우, 정정 가능한 에러가 발생하는 경우, 정정 불가능한 에러(uncorrectable error; UE)가 발생하는 경우와 같은, 3개의 결과가 발생할 수 있다. 만일 에러가 발생하지 않는다면, 2904 단계에서, 기록은 소프트-읽기 에러로 표시될 수 있다. 만일 정정 가능한 에러가 발생하면, 2908 단계에서, 정정된 데이터가 다시 쓰기 될 수 있다. 만일 정정 불가능한 에러가 발생하면, 2906 단계에서, 에러 기록은 정정 불가능한 에러 기록으로 업데이트 될 수 있다.In
2908 단계에서 정정된 데이터를 다시 쓰기하는 것의 일부로써, 에러가 발생할 수 있다. 만일 에러가 발생하지 않는다면, 2910 단계에서, 에러 기록은 소프트-읽기 에러로 표시될 수 있다. 만일 정정 불가능한 에러가 발생하였다면, 2906 단계에서, 에러 기록은 정정 불가능한 에러 기록으로 업데이트 될 수 있다.As part of rewriting the corrected data in
2912 단계에서, 만일 정정 가능한 에러가 발생하였다면, 메모리 셀이 리페어 가능한지 여부가 판단될 수 있다. 특정한 실시 예에서, 본 단계에서의 정정 가능한 에러는 에러가 다시 쓰기에 의해 리페어 될 수 없는지 여부를 나타낼 수 있다. 따라서, 에러는 하드웨어 에러에 의해 야기될 수 있다. 2912 단계에서 메모리 셀의 리페어 가능 여부에 대한 판단 결과에 의존하여, 에러 기록은 더 주석이 달릴 수 있고 리페어 될 수 있다. 만일 메모리 셀이 리페어 가능하다면, 2914 단계에서, 메모리 셀은 리페어 되고 에러는 하드 에러로 표시될 수 있다. 만일 메모리 셀이 리페어 불가능하다면, 2916 단계에서, 에러 기록은 리페어 불가능한 하드 에러로 표시될 수 있다. 따라서, 앞서 설명된 진단에 의해, 에러는 더 카테고리화 되거나 리페어 될 수 있다.In
비록 2908 단계에서의 다시 쓰기가 정정 불가능한 에러, 정정 가능한 에러, 또는 에러 없음을 지시하는 동작의 예로써 사용되었다 하더라도, 그러한 정보는 다른 동작들의 결과일 수 있다. 예를 들어, 2908 단계에서 데이터를 다시 쓰기 한 후, 읽기 동작이 수행될 수 있고 유사한 에러 정보가 생성될 수 있다.Although the rewriting in
도 30은 본 발명의 실시 예에 따른 에러를 다루는 기술을 보여주는 순서도이다. 본 실시 예를 정정 불가능한 에러가 어떻게 다뤄지는지(예를 들어, 정정 불가능한 에러가 도 19의 ECC 컨트롤러(1918)에 의해 어떻게 다뤄지는지)에 관한 예이다. 3000 단계에서, 정정 불가능한 에러(UE)가 발생한 후, UE 기록이 생성될 수 있다. 어떤 실시 예에서, UE 기록은 앞서 도 29에서 설명된 2906 단계에서의 UE 기록에 대한 업데이트의 결과일 수 있다.30 is a flow chart illustrating a technique for handling errors according to an embodiment of the present invention. This embodiment is an example of how an uncorrectable error is handled (e.g., how an uncorrectable error is handled by the ECC controller 1918 of FIG. 19). In
3002 단계에서, UE 기록과 관련된 데이터가 다시 읽혀질 수 있다. 이에 응답하여, 다른 동작이 수행될 수 있다. 만일 다시 읽기 후 정정 불가능한 에러가 발생하면, 3006 단계에서, 기록은 리페어 불가능한 에러로 표시될 수 있다. 만일 에러가 발생하지 않으면, 3004 단계에서, 기록은 소프트-읽기 에러로 표시될 수 있다. 만일 정정 가능한 에러가 발생하면, 3008 단계에서, 정정된 에러가 다시 기록될 수 있다. 도 29의 2908 단계에서의 다시 쓰기와 유사하게, 동작으로부터 생성된 결과는, 다시 쓰기 후에 데이터를 다시 읽는 것과 같은, 다른 소스들로부터 비롯될 수 있다. In
데이터의 다시 쓰기의 결과에 응답하여, 다른 동작들이 수행될 수 있다. 만일 결과가 정정 불가능한 에러라면, 3006 단계에서, 기록은 리페어 불가능한 에러로 표시될 수 있다. 만일 에러가 발생하지 않았다면, 3010 단계에서, 기록은 소프트-읽기 및 소프트-쓰기 에러로 표시될 수 있다.In response to the result of rewriting the data, other operations may be performed. If the result is an uncorrectable error, then in
3012 단계에서, 만일 결과가 정정 가능한 에러라면, 메모리 셀이 리페어 가능한지 여부가 판단될 수 있다. 만일 메모리 셀이 리페어 가능하다면, 3014 단계에서, 리페어 동작이 실행되고, 기록은 소프트-읽기 및 리페어 가능한 하드 에러로 표시될 수 있다. 만일 메모리 셀이 리페어 불가능하다면, 3016 단계에서, 레코드는 소프트-읽기 및 리페어 불가능한 하드 에러로 표시될 수 있다. In
비록 에러들의 다양한 카테고리화가 상술 된 바와 같이 설명되었다 하더라도, 어떤 실시 예에서, 그러한 정보의 모든 것들이 메모리 장치의 외부에 이용 가능하지 않을 수 있다. 예를 들어, 도 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
나아가, 비록 에러 타입들의 특정한 명칭이 사용되었다 하더라도, 어떤 실시 예에서, 그러한 에러 타입들의 전부는 사용되지 않을 수 있다. 유사하게, 어떤 실시 예에서, 다른 에러 타입들이 사용될 수 있다.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
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
앞서 설명된 바와 같이, 에러 정보는 버스를 통하여 전송될 수 있다. 특히, 버스는 메모리 모듈의 주 데이터 경로에 관하여 아웃-오브-밴드(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
도 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
비록 예시적으로 읽기 에러 커맨드를 전송하는 컨트롤러를 사용하는 것이 설명되었다 하더라도, 다른 실시 예에서, 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
도 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
실시 예에서, 3202 단계에서 에러 정보를 읽는 것은 3200 단계에서의 통신에 응답하여 수행될 수 있다. 그러나, 다른 실시 예에서, 에러 정보를 읽는 것은 이시(different time)(예를 들어, 통신을 수신하기 전을 포함)에 수행될 수 있다. 이와 상관없이, 3204 단계에서 메모리 장치들(2101)로부터의 에러 정보는 통신에 응답하기 위해 사용될 수 있다.In an embodiment, reading the error information in
3202 단계에서 에러 정보를 읽는 것은 다양한 방법으로 수행될 수 있다. 예를 들어, 메모리 장치들(2101) 각각은, 도 24에 도시된 바와 같은, 대응하는 전용 버스를 통하여 액세스 될 수 있다. 다른 실시 예에서, 메모리 장치들(2101) 각각은 도 25a, 25b, 또는 25c에 도시된 바와 같은, 공용 버스를 통하여 액세스 될 수 있다. 다른 실시 예에서, 통신은 도 27의 리피터(2750)와 같은 하나 또는 그 이상의 메모리 장치들(2101)에 포워딩 될 수 있다. Reading the error information in
비록 도 21의 메모리 모듈이 예로써 사용되었다 하더라도, 본 명세서에서 설명된 기술은 다른 메모리 모듈들, 시스템들 등에 의해 사용될 수 있다.Although the memory module of FIG. 21 is used 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
앞서 설명된 바와 같이, 컨트롤러는 에러 정보를 위해 메모리 모듈을 폴링할 수 있고 에러 정보를 저장할 수 있다. 따라서, 읽기 에러 커맨드가 프로세서로부터 컨트롤러에 의해 수신될 때, 컨트롤러는 이미 읽기 에러 정보를 가질 수 있다. 컨트롤러는 저장된 에러 정보를 프로세서로 전송할 수 있다. 그러나 컨트롤러는, 컨트롤러가 저장된 에러 정보를 프로세서로 전송하기 전에, 더 많은 에러 정보를 위해 메모리 모듈을 폴링할 필요는 없다. 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
특정한 실시 예에서, 3408 단계에서, 결합된 정보는 EDAC 모듈에 제공될 수 있다. 앞서 설명한 바와 같이, EDAC 모듈은 다양한 시스템들의 에러에 대한 정보를 더 높은 레벨의 애플리케이션에 이용 가능할 수 있도록 한다. In a particular embodiment, in
도 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
본 실시 예에서, 메모리(3502)는 에러를 정정하도록 구성되지 않을 수 있다. 메모리(3502)는 에러 정정 회로(3568)에 연결되고, 통신 경로(3572)를 통하여 에러 정정 회로(2168)에 데이터를 전송하도록 구성될 수 있다. In this embodiment, the
에러 정정 회로(3568)는 메모리(3502)로부터 수신된 데이터의 에러를 정정하도록 구성될 수 있다. 에러 정정 회로(3568)는 제 2 통신 경로(3570) 및 제 3 통신 경로(3508)를 통하여 프로세서(2104)에 연결될 수 있다. 제 2 통신 경로(3570)는 프로세서(3504)가 데이터를 수신하도록 구성되는 메인 경로이다. 예를 들어, 제 2 통신 경로(3570)는 프로세서(3504)를 위한 시스템 버스일 수 있다. The
반면, 제 3 통신 경로(3508)는 앞서 설명된 통신 경로(108)와 유사하다. 즉, 제 3 통신 경로(3508)는 컨트롤러(3514)를 포함하는 별도의 아웃-오브-밴드 통신 경로이거나, 앞서 설명한 통신 경로들의 다양한 변형일 수 있다.On the other hand, the
도 36은 본 발명의 실시 예에 따른 서버를 보여주는 개략도이다. 본 실시 예에서, 서버(3600)는 독립형 서버(stand-alone server), 랙에 탑재된 서버(rack-mounted server), 블레이드 서버(blade server) 등을 포함할 수 있다. 서버(3600)는 메모리(3602), 프로세서(3604), 그리고 BMC(3614)를 포함할 수 있다. 프로세서(3604)는 통신 경로(3606)를 통하여 메모리(3602)와 연결될 수 있다. BMC(3614)는 버스(3616)를 통하혀 프로세서(3604)와 연결되고, 버스(3612)를 통하여 메모리(3602)와 연결될 수 있다. 메모리(3602), 프로세서(3604), BMC(3614), 통신 경로(3606), 그리고 버스들(3612 및 3616) 각각은 앞서 설명된 대응하는 구성들 중 어느 하나일 수 있다.36 is a schematic diagram showing a server according to an embodiment of the present invention. In this embodiment, the
도 37은 본 발명의 일 실시 예에 따른 서버 시스템을 보여주는 개략도이다. 본 실시 예에서, 서버 시스템(3700)은 복수의 서버들(3702-1 내지 3702-N)을 포함할 수 있다. 서버(3702)들 각각은 매니저(3704)와 연결될 수 있다. 하나 또는 그 이상의 서버들(3702)은 앞서 설명된 서버(3700)와 유사할 수 있다. 게다가, 매니저(3704)는 앞서 설명된 메모리 시스템 아키텍처를 구비한 시스템을 포함할 수 있다.37 is a schematic diagram showing a server system according to an embodiment of the present invention. In this embodiment, the
매니저(3704)는 서버 시스템(3700)의 서버(3702) 및 다른 구성들을 관리하도록 구성될 수 있다. 예를 들어, 매니저(3704)는 서버(3702)의 설정들을 관리하도록 구성될 수 있다. 서버들(3702) 각각은 매니저(3704)와 에러 정보를 교환하도록 구성될 수 있다. 에러 정보는 앞서 설명된 바와 같이 서버들(3702) 중 어느 하나에 있는 프로세서로 전송된 정정 가능한 에러 정보, 또는 정정 가능한 에러 정보에 기초한 다른 에러 정보를 포함할 수 있다. 매니저(3704)는 에러 정보에 기초하여 액션을 취하도록 구성될 수 있다. 예를 들어, 서버(3702-1)는 임계치를 초과하는 정정 가능한 에러를 포함할 수 있다. 매니저(3704)는 관리 및/또는 대체를 위해 서버(3702-1)의 기능을 서버(3702-2)로 넘겨주고, 서버(2302-1)를 셧다운 시키도록 구성될 수 있다. 비록 특정 예들이 제시되었다 하더라도, 매니저(3704)는 에러 정보에 기초하여 또 다른 액션을 취하도록 구성될 수도 있다.The
도 38은 본 발명의 실시 예에 따른 데이터 센터를 보여주는 개략도이다. 본 실시 예에서, 데이터 센터(3800)는 복수의 서버 시스템들(3802-1 내지 3802-N)을 포함할 수 있다. 서버 시스템들(3802)은 도 36에서 설명된 서버 시스템(3600)과 유사하다. 서버 시스템들(3802)은 인터넷과 같은 네트워크(3804)에 연결될 수 있다. 따라서, 서버 시스템들(3802)은 다양한 노드들(3806-1 내지 3806-M)과 네트워크(3804)를 통하여 통신할 수 있다. 예를 들어, 노드들(3806)은 클라이언트 컴퓨터, 다른 서버, 원거리 데이터 센터, 스토리지 시스템 등일 수 있다.38 is a schematic diagram showing a data center according to an embodiment of the present invention. In the present embodiment, the
비록 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 기술적 사상의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 따라서 본 발명의 범위는 상술 된 실시 예에 국한되어 정해져서는 안되며, 후술하는 특허 청구범위뿐만 아니라 본 발명의 특허 청구범위와 균등한 것들에 의해 정해져야 한다. 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:
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.
상기 모듈 에러 인터페이스 및 상기 메모리 장치들의 상기 장치 에러 인터페이스들 각각에 연결되는 컨트롤러를 더 포함하는 메모리 모듈.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.
상기 컨트롤러는 리피터를 포함하는 메모리 모듈.3. The method of claim 2,
Wherein the controller comprises a repeater.
상기 컨트롤러는 별도의 버스를 통하여 상기 장치 에러 인터페이스들 각각에 연결되는 메모리 모듈.3. The method of claim 2,
Wherein the controller is coupled to each of the device error interfaces via a separate bus.
상기 컨트롤러는 공용 버스를 통하여 상기 장치 에러 인터페이스들 각각에 연결되는 메모리 모듈.3. The method of claim 2,
The controller being coupled to each of the device error interfaces via a common bus.
각각의 메모리 장치는 식별 입력을 더 포함하고, 상기 메모리 장치는 상기 식별 입력을 통하여 상기 공용 버스와 관련된 식별을 수신하도록 구성되는 메모리 모듈.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.
상기 메모리 장치들은 데이지 체인 회선(daisy-chain link)에 연결되는 메모리 모듈.3. The method of claim 2,
Wherein the memory devices are connected to a daisy-chain link.
각각의 메모리는 상기 데이지 체인 회선을 통하여 수신된 신호에 응답하여 상기 장치 에러 인터페이스를 통하여 수신된 정보가 상기 메모리 장치와 관련되는지 여부를 판단하도록 구성되는 메모리 모듈.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.
상기 컨트롤러에 연결되고 상기 모듈 에러 인터페이스를 통하여 통신하도록 구성되는 직렬 프레즌스 검출 모듈을 더 포함하는 메모리 모듈.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.
상기 컨트롤러는 어드레스를 수신하도록 구성되는 어드레스 입력을 더 포함하고,
상기 컨트롤러는 상기 어드레스에 기초하여 상기 모듈 에러 인터페이스를 통하여 수신된 통신에 응답하도록 구성되는 메모리 모듈.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.
상기 컨트롤러는 상기 메모리 장치들의 상기 장치 에러 인터페이스들을 통하여 수신된 에러 정보를 수집하도록 구성되는 메모리 모듈.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.
모듈 데이터 인터페이스를 더 포함하되,
상기 컨트롤러는 상기 모듈 데이터 인터페이스 및 각각의 메모리 장치의 상기 데이터 인터페이스에 연결되는 메모리 모듈.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.
상기 컨트롤러에 연결되는 직렬 프레즌스 검출 모듈을 더 포함하되,
상기 직렬 프레즌스 검출 모듈은 상기 모듈 에러 인터페이스를 거쳐 상기 컨트롤러를 통하여 액세스 가능한 메모리 모듈.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.
상기 컨트롤러는 상기 직렬 프레즌스 검출 모듈로부터 제어 신호를 수신하도록 구성되고, 그리고
상기 컨트롤러는 상기 모듈 에러 인터페이스를 통하여 상기 제어 신호를 제공하도록 구성되는 메모리 모듈.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.
상기 컨트롤러는 상기 메모리 장치들의 상기 장치 에러 인터페이스들과 관련된 어드레스들을 결정하도록 구성되는 메모리 모듈.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.
상기 통신을 상기 적어도 하나의 메모리 장치로 포워딩하는 단계를 더 포함하는 방법.18. The method of claim 17,
Further comprising forwarding the communication to the at least one memory device.
상기 컨트롤러에 의해 상기 에러 정보를 읽는 단계는:
대응하는 전용 버스를 통하여 상기 적어도 하나의 메모리 장치 중 적어도 하나를 액세스하는 단계를 포함하는 방법.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.
상기 컨트롤러에 의해 상기 에러 정보를 읽는 단계는:
공용 버스를 통하여 상기 적어도 하나의 메모리 장치 중 적어도 하나를 액세스하는 단계를 포함하는 방법.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.
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)
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)
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)
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)
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 |
-
2015
- 2015-08-03 KR KR1020150109526A patent/KR102214556B1/en active IP Right Grant
- 2015-08-19 JP JP2015162163A patent/JP6713740B2/en active Active
- 2015-08-19 CN CN201510512333.7A patent/CN105373345B/en active Active
-
2021
- 2021-02-03 KR KR1020210015698A patent/KR102378466B1/en active IP Right Grant
Patent Citations (4)
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)
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 |