KR102427323B1 - 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법 - Google Patents

반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법 Download PDF

Info

Publication number
KR102427323B1
KR102427323B1 KR1020170148210A KR20170148210A KR102427323B1 KR 102427323 B1 KR102427323 B1 KR 102427323B1 KR 1020170148210 A KR1020170148210 A KR 1020170148210A KR 20170148210 A KR20170148210 A KR 20170148210A KR 102427323 B1 KR102427323 B1 KR 102427323B1
Authority
KR
South Korea
Prior art keywords
data
controller
buffers
fail
data buffer
Prior art date
Application number
KR1020170148210A
Other languages
English (en)
Other versions
KR20190052490A (ko
Inventor
남희현
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170148210A priority Critical patent/KR102427323B1/ko
Priority to US15/996,482 priority patent/US10698781B2/en
Priority to DE102018122482.6A priority patent/DE102018122482A1/de
Priority to CN201811317210.8A priority patent/CN109753239B/zh
Publication of KR20190052490A publication Critical patent/KR20190052490A/ko
Application granted granted Critical
Publication of KR102427323B1 publication Critical patent/KR102427323B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/702Masking faults in memories by using spares or by reconfiguring by replacing auxiliary circuits, e.g. spare voltage generators, decoders or sense amplifiers, to be used instead of defective ones
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/84Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability
    • G11C29/846Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability by choosing redundant lines at an output stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • G11C2029/3602Pattern generator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/835Masking faults in memories by using spares or by reconfiguring using programmable devices with roll call arrangements for redundant substitutions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers

Abstract

본 발명은 반도체 메모리 모듈에 관한 것이다. 본 발명의 반도체 메모리 모듈은 휘발성 메모리 장치, 불휘발성 메모리 장치, 데이터 버퍼들, 그리고 휘발성 메모리 장치 또는 불휘발성 메모리 장치로부터 읽은 제1 데이터를 데이터 버퍼들을 통해 외부 장치로 출력하고, 그리고 외부 장치로부터 데이터 버퍼들을 통해 수신되는 제2 데이터를 휘발성 메모리 장치 또는 불휘발성 메모리 장치에 기입하는 제어기를 포함한다. 데이터 버퍼들 중 손상된 데이터 버퍼의 위치를 가리키는 페일 정보를 포함하는 페일 오버 요청에 따라, 제어기는 페일 오버 동작을 수행한다. 페일 오버 동작 시에, 제어기는 손상된 데이터 버퍼와 연관된 제3 데이터를 데이터 버퍼들 중에서 페일 오버 데이터 버퍼를 통해 외부 장치와 통신한다.

Description

반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법{SEMICONDUCTOR MEMORY MODULE, SEMICONDUCTOR MEMORY SYSTEM, AND ACCESS METHOD OF ACCESSING SEMICONDUCTOR MEMORY MODULE}
본 발명은 반도체 회로에 관한 것으로, 더 상세하게는 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법에 관한 것이다.
반도체 메모리는 반도체 소자들을 이용하여 데이터를 저장하는 데에 사용된다. 반도체 메모리는 동적 랜덤 액세스 메모리 또는 정정 랜덤 액세스 메모리와 같은 휘발성 메모리, 그리고 플래시 메모리, 상 변화 메모리, 강유전체 메모리, 자기 메모리, 저항성 메모리 등과 같은 불휘발성 메모리를 포함한다.
통상적으로, 휘발성 메모리는 고속의 랜덤 액세스를 지원하며, 개인용 컴퓨터, 서버 또는 워크스테이션과 같은 컴퓨팅 시스템의 주 메모리로 사용된다. 불휘발성 메모리는 큰 저장 용량을 지원하며, 컴퓨팅 시스템의 보조 스토리지로 사용된다.
근래에, 스토리지 클래스 메모리(SCM, Storage Class Memory)에 대한 연구 및 개발이 진행되고 있다. 스토리지 클래스 메모리는 불휘발성의 큰 저장 용량과 고속의 랜덤 액세스 모두를 지원하는 것을 목표로 개발되고 있다. 기존의 주 메모리와의 호환성을 위하여, 스토리지 클래스 메모리는 동적 랜덤 액세스 메모리와 동일한 메모리 모듈을 기반으로 연구 및 개발되고 있다.
본 발명의 목적은 반도체 메모리 모듈에서 데이터 버퍼의 손상으로 인해 불휘발성 저장소에 저장된 데이터를 읽을 수 없는 문제를 해결하고자 하는 것이다.
본 발명의 실시 예에 따른 반도체 메모리 모듈은 휘발성 메모리 장치, 불휘발성 메모리 장치, 데이터 버퍼들, 그리고 휘발성 메모리 장치 또는 불휘발성 메모리 장치로부터 읽은 제1 데이터를 데이터 버퍼들을 통해 외부 장치로 출력하고, 그리고 외부 장치로부터 데이터 버퍼들을 통해 수신되는 제2 데이터를 휘발성 메모리 장치 또는 불휘발성 메모리 장치에 기입하는 제어기를 포함한다. 데이터 버퍼들 중 손상된 데이터 버퍼의 위치를 가리키는 페일 정보를 포함하는 페일 오버 요청에 따라, 제어기는 페일 오버 동작을 수행한다. 페일 오버 동작 시에, 제어기는 손상된 데이터 버퍼와 연관된 제3 데이터를 데이터 버퍼들 중에서 페일 오버 데이터 버퍼를 통해 외부 장치와 통신한다.
본 발명의 실시 예에 따른 반도체 메모리 시스템은 반도체 메모리 모듈, 그리고 반도체 메모리 모듈을 제어하는 메모리 제어기를 포함한다. 반도체 메모리 모듈은 휘발성 메모리 장치, 불휘발성 메모리 장치, 데이터 버퍼들, 그리고 휘발성 메모리 장치 또는 불휘발성 메모리 장치로부터 읽은 제1 데이터를 데이터 버퍼들을 통해 메모리 제어기로 출력하고, 그리고 메모리 제어기로부터 데이터 버퍼들을 통해 수신되는 제2 데이터를 휘발성 메모리 장치 또는 불휘발성 메모리 장치에 기입하는 제어기를 포함한다. 메모리 제어기는 데이터 버퍼들 중 적어도 하나의 데이터 버퍼가 손상된 데이터 버퍼일 때, 손상된 데이터 버퍼를 우회하는 페일 오버 동작을 수행한다.
휘발성 메모리 장치, 불휘발성 메모리 장치, 그리고 데이터 버퍼들을 포함하는 본 발명의 실시 예에 따른 반도체 메모리 모듈을 액세스하는 액세스 방법은 데이터 버퍼들에 대해 에러 위치 검색을 수행하는 단계, 그리고 에러 위치 검색에서 손상된 데이터 버퍼가 검출되면, 손상된 데이터 버퍼를 우회하여 불휘발성 메모리에 저장된 데이터를 읽는 페일 오버 동작을 수행하는 단계를 포함한다.
본 발명의 실시 예들에 따르면, 데이터 버퍼가 손상된 때에, 손상된 데이터 버퍼와 연관된 데이터가 다른 데이터 버퍼를 통해 액세스 되는 페일 오버가 수행된다. 따라서, 반도체 메모리 모듈의 데이터 버퍼의 손상으로 인해 불휘발성 저장소에 저장된 데이터를 읽을 수 없게 되는 것이 방지된다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 반도체 메모리 모듈을 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 보여주는 블록도이다.
도 4는 메모리 제어기가 에러 위치 검색을 수행하는 예를 보여주는 순서도이다.
도 5는 도 4의 방법에 의해 반도체 메모리 모듈에서 에러가 검색되는 예를 보여준다.
도 6은 메모리 제어기가 페일 오버 동작을 수행하는 예를 보여주는 순서도이다.
도 7은 제어기가 페일 오버 동작을 수행하는 예를 보여주는 순서도이다.
도 8은 손상된 데이터 버퍼가 존재하지 않는 때에 반도체 메모리 모듈이 데이터를 출력하는 예를 보여준다.
도 9는 제1 내지 제8 데이터 버퍼들이 제1 내지 제8 데이터들을 출력하는 예를 보여주는 타이밍도이다.
도 10은 제3 및 제6 데이터 버퍼들이 손상된 때에, 반도체 메모리 모듈이 페일 오버 동작을 통해 데이터를 출력하는 예를 보여준다.
도 11은 도 10의 페일 오버 데이터 버퍼들 및 정상 데이터 버퍼들이 제1 내지 제8 데이터들을 출력하는 예를 보여주는 타이밍도이다.
도 12는 메모리 제어기가 페일 오버 동작을 수행하는 응용 예를 보여주는 순서도이다.
도 13은 도 12의 방법에 따라 페일 오버 데이터 버퍼들이 선택되는 반도체 메모리 모듈의 예를 보여준다.
도 14는 도 13의 페일 오버 데이터 버퍼들이 제1 내지 제8 데이터들을 출력하는 예를 보여주는 타이밍도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템(10)을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(10)은 반도체 메모리 모듈들(100), 스토리지 장치들(20), 그리고 호스트 장치(30)를 포함할 수 있다. 반도체 메모리 모듈들(100)은 호스트 장치(30)의 주 메모리(main memory)로 사용될 수 있다.
예를 들어, 호스트 장치(30)는 메모리 시스템(10)을 제어하는 데에 필요한 다양한 코드들을 반도체 메모리 모듈들(100)에 저장하고 액세스할 수 있다. 호스트 장치(30)는 메모리 시스템(10)에서 실행되는 운영 체제 또는 응용들의 코드들, 인스턴스들 또는 연관된 데이터를 반도체 메모리 모듈들(100)에 저장하고 액세스할 수 있다.
반도체 메모리 모듈들(100) 각각은 휘발성 메모리 장치(110) 및 불휘발성 메모리 장치(120)를 포함한다. 휘발성 메모리 장치(110)는 고속의 랜덤 액세스를 지원할 수 있다. 불휘발성 메모리 장치(120)는 불휘발성의 대용량 저장소를 지원할 수 있다. 예를 들어, 반도체 메모리 모듈들(100)은 스토리지 클래스 메모리들(Storage Class Memories)일 수 있다.
예시적으로, 반도체 메모리 모듈들(100)은 동종의 메모리 모듈들일 수 있다. 예를 들어, 반도체 메모리 모듈들(100)은 동일한 구조들을 가질 수 있다. 다른 예로서, 반도체 메모리 모듈들(100)은 이종의 메모리 모듈들일 수 있다. 예를 들어, 반도체 메모리 모듈들(100) 중 적어도 하나는 휘발성 메모리 장치(110)만을 포함하거나 또는 불휘발성 메모리 장치(120)만을 포함할 수 있다.
스토리지 장치들(20)은 호스트 장치(30)의 보조 저장소로 사용될 수 있다. 호스트 장치(30)는 장기적으로 저장하여야 하는 데이터를 스토리지 장치들(20)에 저장할 수 있다. 예를 들어, 호스트 장치(30)는 메모리 시스템(10)에서 실행되는 운영 체제 또는 응용들의 원본 데이터 또는 이들에 의해 생성되는 데이터를 스토리지 장치들(20)에 저장하고 액세스할 수 있다.
스토리지 장치들(20)은 다양한 형태로 구현될 수 있다. 예를 들어, 스토리지 장치들(20)은 하드 디스크 드라이브(Hard Disk Drive), 솔리드 스테이트 드라이브(Solid State Drive), 그리고 광학 디스크 드라이브(Optical Disk Drive) 중 하나 또는 이들 중 둘 이상의 조합으로 구현될 수 있다.
호스트 장치(30)는 반도체 메모리 모듈들(100) 및 스토리지 장치들(20)을 액세스하도록 구성된다. 호스트 장치(30)는 반도체 메모리 슬롯들(31), 메모리 제어기(32), 스토리지 슬롯들(34), 장치 드라이버(35), 프로세서(36), 모뎀(37), 그리고 사용자 인터페이스(38)를 포함한다.
반도체 메모리 슬롯들(31)은 반도체 메모리 모듈들(100)이 부착되도록 구성될 수 있다. 반도체 메모리 슬롯들(31)은 반도체 메모리 모듈들(100)과 연결되는 핀들을 포함할 수 있다. 예를 들어, 반도체 메모리 슬롯들(31) 각각은 DIMM (Dual In-line Memory Module)에 기반한 구조를 가질 수 있다.
메모리 제어기(32)는 반도체 메모리 슬롯들(31)을 통해 반도체 메모리 모듈들(100)을 액세스할 수 있다. 메모리 제어기(32)는 프로세서(36)의 요청에 따라 반도체 메모리 모듈들(100)에 데이터를 기입하거나 반도체 메모리 모듈들(100)로부터 데이터를 읽을 수 있다.
메모리 제어기(32)는 제1 페일 오버 제어기(33)를 포함할 수 있다. 제1 페일 오버 제어기(33)는 반도체 메모리 모듈들(100) 중 적어도 하나의 모듈의 데이터 버퍼가 물리적으로 손상된 때에, 손상된 데이터 버퍼(failed data buffer)와 연관된 데이터를 손상된 데이터 버퍼를 우회하는 우회 경로를 통해 읽는 페일 오버 동작을 지원할 수 있다.
스토리지 슬롯들(34)은 스토리지 장치들(20)이 부착되도록 구성될 수 있다. 스토리지 슬롯들(34)은 스토리지 장치들(20)과 연결되는 핀들을 포함할 수 있다. 예를 들어, 스토리지 슬롯들(34) 각각은 SATA (Serial Advanced Technology Attachment), PCI (Peripheral Component Interconnect), USB (Universal Serial Bus) 등과 같은 다양한 표준들 중 적어도 하나에 따른 구조를 가질 수 있다.
장치 드라이버(35)는 스토리지 슬롯들(34)을 통해 스토리지 장치들(20)을 액세스할 수 있다. 장치 드라이버(35)는 프로세서(36)의 요청에 따라 스토리지 장치들(20)에 데이터를 기입하거나 스토리지 장치들(20)로부터 데이터를 읽을 수 있다. 스토리지 장치들(20)의 종류에 따라, 장치 드라이버(35)는 둘 이상의 이종의 드라이버들을 포함할 수 있다.
프로세서(36)는 메모리 시스템(10)의 동작들을 제어할 수 있다. 프로세서(36)는 메모리 시스템(10)의 구동을 위해 필요한 다양한 코드들, 운영 체제, 그리고 응용들을 실행할 수 있다. 프로세서(36)는 메모리 제어기(32)를 통해 반도체 메모리 모듈들(100)을 액세스할 수 있다. 프로세서(36)는 장치 드라이버(35)를 통해 스토리지 장치들(20)을 액세스할 수 있다.
프로세서(36)는 모뎀(37)을 통해 네트워크(NET)와 통신할 수 있다. 모뎀(37)은 유선 또는 무선 통신을 통해 네트워크(NET)와 통신할 수 있다. 예를 들어, 모뎀(37)은 이더넷(Ethernet)과 같은 유선 통신 또는 와이파이(Wi-Fi), 블루투스, NFC (Near Field Communication), LTE (Long Term Evolution) 등과 같은 무선 통신을 지원할 수 있다.
프로세서(36)는 사용자 인터페이스(38)를 통해 사용자(USER)와 통신할 수 있다. 예를 들어, 사용자 인터페이스(38)는 터치 패드, 터치 패널, 키보드, 마우스, 카메라, 마이크로폰, 센서 등과 같은 입력 인터페이스, 그리고 모니터, 스피커, 모터 등과 같은 출력 인터페이스를 포함할 수 있다.
메모리 시스템(10)은 반도체 메모리 모듈(100)을 포함하는 점에 기반하여 명명된 것이며, 메모리 시스템(10)의 명칭은 본 발명의 범위를 한정하지 않는다. 예를 들어, 메모리 시스템(10)은 개인용 컴퓨터, 서버, 워크스테이션 등과 같은 다양한 컴퓨팅 장치들 중 하나에 포함될 수 있다.
메모리 시스템(10)의 성능을 향상하기 위하여, 반도체 메모리 모듈들(100)의 저장 용량을 증가할 필요가 있다. 반도체 메모리 모듈들(100)의 저장 용량을 증가시키는 것은 반도체 메모리 모듈들(100)의 수를 증가함으로써 달성될 수 있다. 그러나 기존에 지정된 표준들과 같은 현실적인 제약으로 인해, 반도체 메모리 슬롯들(31)의 수가 한정된다. 따라서, 반도체 메모리 모듈들(100)의 수를 증가하는 것 또한 한정된다.
따라서, 반도체 메모리 모듈들(100)의 용량을 증가하기 위하여, 반도체 메모리 모듈들(100) 각각의 용량을 증가하는 것이 시도되고 있다. 통상적인 메모리 시스템(10)의 주 메모리는 동적 랜덤 액세스 메모리로 구성된다. 동적 랜덤 액세스 메모리의 용량을 증가시킴으로써 반도체 메모리 모듈들(100)의 용량을 증가시키는 것은 큰 비용을 초래한다.
상대적으로 적은 비용으로 반도체 메모리 모듈들(100) 각각의 용량을 증가하기 위하여, 반도체 메모리 모듈들(100) 각각에 휘발성 메모리 장치(110)와 불휘발성 메모리 장치(120)를 조합할 수 있다. 제조 비용이 높고 응답 속도가 빠른 휘발성 메모리 장치(110)는 상대적으로 빠른 응답 속도가 필요한 데이터를 저장하는 데에 사용될 수 있다. 제조 비용이 낮고 큰 용량을 제공하는 불휘발성 메모리 장치(120)는 상대적으로 낮은 응답 속도가 허용되는 데이터를 저장하는 데에 사용될 수 있다.
다른 예로서, 휘발성 메모리 장치(110) 및 불휘발성 메모리 장치(120)는 계층적으로 사용될 수 있다. 예를 들어, 휘발성 메모리 장치(110)는 불휘발성 메모리 장치(120)의 버퍼 메모리 또는 캐시 메모리로 사용될 수 있다. 휘발성 메모리 장치(110)와 불휘발성 메모리 장치(120)를 조합함으로써, 상대적으로 낮은 비용으로 반도체 메모리 모듈들(100) 각각의 용량이 증가될 수 있다.
기존에 사용되는 주 메모리들과의 호환을 위하여, 휘발성 메모리 장치(110) 및 불휘발성 메모리 장치(120)를 포함하는 반도체 메모리 모듈들(100)은 기존의 주 메모리들과 동일한 표준에 따라 설계된다. 예를 들어, 반도체 메모리 모듈들(100)은 DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load-Reduced DIMM)과 같은 표준들 중 적어도 하나에 따라 설계될 수 있다.
도 2는 본 발명의 실시 예에 따른 반도체 메모리 모듈(100a)을 보여주는 블록도이다. 예시적으로, LRDIMM 표준에 따라 설계된 반도체 메모리 모듈(100a)이 도 2에 도시된다. 도 2를 참조하면, 반도체 메모리 모듈(100a)은 휘발성 메모리 장치(110), 불휘발성 메모리 장치(120), 제어기(130), 그리고 제1 내지 제8 데이터 버퍼들(141~148)을 포함한다.
휘발성 메모리 장치(110)는 제1 내지 제4 휘발성 메모리들(111~114)을 포함한다. 제1 내지 제4 휘발성 메모리들(111~114)은 서로 분리된 패키지들로 형성될 수 있다. 제1 내지 제4 휘발성 메모리들(111~114)은 동적 랜덤 액세스 메모리들을 포함할 수 있다.
불휘발성 메모리 장치(120)는 제1 내지 제4 불휘발성 메모리들(121~124)을 포함할 수 있다. 제1 내지 제4 불휘발성 메모리들(121~124)은 서로 분리된 패키지들로 형성될 수 있다. 다른 예로서, 제1 내지 제4 불휘발성 메모리들(121~124)은 불휘발성 메모리 장치(120) 내에서 서로 다른 어드레스들에 의해 식별되는 저장 영역들일 수 있다.
불휘발성 메모리 장치(120)는 플래시 메모리 장치, 상 변화 메모리 장치, 강유전체 메모리 장치, 저항성 메모리 장치, 자기 메모리 장치와 같은 다양한 불휘발성 메모리 장치들 중 적어도 하나를 포함할 수 있다.
제어기(130)는 호스트 장치(30)로부터 제1 커맨드 및 어드레스(CA1), 제1 클럭 신호(CK1), 그리고 제1 제어 신호(CTRL1)를 수신할 수 있다. 제어기(130)는 제1 내지 제8 데이터 버퍼들(141~148)과 제2 데이터 신호들(DQ2)을 통신할 수 있다. 제어기(130)는 제1 커맨드 및 어드레스(CA1), 제1 클럭 신호(CK1), 그리고 제1 제어 신호(CTRL1)에 따라, 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)를 액세스할 수 있다.
제어기(130)는 제2 커맨드 및 어드레스(CA2), 제2 클럭 신호(CK2), 그리고 제2 제어 신호(CTRL2)를 휘발성 메모리 장치(110)로 전송하고, 휘발성 메모리 장치(110)와 제3 데이터 신호들(DQ3)을 통신할 수 있다. 제어기(130)는 제3 커맨드 및 어드레스(CA3), 제3 클럭 신호(CK3), 그리고 제3 제어 신호(CTRL3)를 불휘발성 메모리 장치(120)로 전송하고, 불휘발성 메모리 장치(120)와 제4 데이터 신호들(DQ4)을 통신할 수 있다.
예시적으로, 제1 커맨드 및 어드레스(CA1), 제2 커맨드 및 어드레스(CA2), 그리고 제3 커맨드 및 어드레스(CA3)는 서로 다른 포맷들을 가질 수 있다. 다른 예로서, 제1 커맨드 및 어드레스(CA1), 제2 커맨드 및 어드레스(CA2), 그리고 제3 커맨드 및 어드레스(CA3) 중 적어도 두 개는 동일한 포맷들을 가질 수 있다.
예를 들어, 제어기(130)가 휘발성 메모리 장치(110)와 통신하는 포맷과 불휘발성 메모리 장치(120)와 통신하는 포맷은 서로 다를 수 있다. 제어기(130)는 제1 버퍼 커맨드(CMD_B1)를 전송하여 제1 내지 제4 데이터 버퍼들(141~144)을 제어할 수 있다. 제어기(130)는 제2 버퍼 커맨드(CMD_B2)를 전송하여 제5 내지 제8 데이터 버퍼들(145~148)을 제어할 수 있다.
제1 내지 제8 데이터 버퍼들(141~148)은 데이터 스트로브 신호들(DQS)과 동기되어 호스트 장치(30)와 제1 데이터 신호들(DQ1)을 통신할 수 있다. 제1 내지 제8 데이터 버퍼들(141~148)은 호스트 장치(30)로부터 수신되는 제1 데이터 신호들(DQ1)을 제2 데이터 신호들(DQ2)로서 제어기(130)로 전달할 수 있다.
제1 내지 제8 데이터 버퍼들(141~148)은 제어기(130)로부터 수신되는 제2 데이터 신호들(DQ2)을 제1 데이터 신호들(DQ1)로서 호스트 장치(30)로 전달할 수 있다. 제1 내지 제8 데이터 버퍼들(141~148)은 서로 분리된 패키지들로 형성될 수 있다.
제1 커맨드 및 어드레스(CA1) 또는 제1 제어 신호(CTRL1)가 휘발성 메모리 장치(110)를 가리킬 때, 제어기(130)는 제1 커맨드 및 어드레스(CA1)와 제1 제어 신호(CTRL1)를 제2 커맨드 및 어드레스(CA2)와 제2 제어 신호(CTRL2)로서 휘발성 메모리 장치(110)에 전달할 수 있다. 제어기(130)는 제1 클럭 신호(CK1)를 제2 클럭 신호(CK2)로서 또는 제2 클럭 신호(CK2)로 변환하여 휘발성 메모리 장치(110)에 전달할 수 있다.
제1 커맨드 및 어드레스(CA1)가 쓰기 동작을 가리킬 때, 제어기(130)는 제1 내지 제8 데이터 버퍼들(141~148)로부터 수신되는 제2 데이터 신호들(DQ2)을 제3 데이터 신호들(DQ3)로서 휘발성 메모리 장치(110)로 전달할 수 있다. 제1 커맨드 및 어드레스(CA1)가 읽기 동작을 가리킬 때, 제어기(130)는 휘발성 메모리 장치(110)로부터 수신되는 제3 데이터 신호들(DQ3)을 제1 내지 제8 데이터 버퍼들(141~148)로 전달할 수 있다.
예시적으로, 제어기(130)는 제1 내지 제4 휘발성 메모리들(111~114)과 제1 내지 제8 데이터 버퍼들(141~148)을 물리적으로 서로 연관할 수 있다. 예를 들어, 제어기(130)는 제1 휘발성 메모리(111)를 제1 및 제2 데이터 버퍼들(141, 142)과 물리적으로 연관할 수 있다. 제어기(130)는 제1 휘발성 메모리(111)와 통신하는 제3 데이터 신호들(DQ3)을 제2 데이터 신호들(DQ2)로서 제1 및 제2 데이터 버퍼들(141, 142)과 통신할 수 있다.
마찬가지로, 제어기(130)는 제2 휘발성 메모리(112)를 제3 및 제4 데이터 버퍼들(143, 144)과 물리적으로 연관할 수 있다. 제어기(130)는 제3 휘발성 메모리(113)를 제5 및 제6 데이터 버퍼들(145, 146)과 물리적으로 연관할 수 있다. 제어기(130)는 제4 휘발성 메모리(114)를 제7 및 제8 데이터 버퍼들(147, 148)과 물리적으로 연관할 수 있다.
다른 예로서, 제어기(130)는 제1 내지 제4 휘발성 메모리들(111~114)과 통신되는 데이터를 제1 내지 제8 데이터 버퍼들(141~148)에 분산할 수 있다. 예를 들어, 제어기(130)는 제k 휘발성 메모리(k는 양의 정수)에 기입될 데이터를 제1 내지 제8 데이터 버퍼들(141~148)을 통해 분산하여 수신할 수 있다. 제어기(130)는 제k 휘발성 메모리로부터 읽은 데이터를 제1 내지 제8 데이터 버퍼들(141~148)을 통해 분산하여 출력할 수 있다.
제1 커맨드 및 어드레스(CA1) 또는 제1 제어 신호(CTRL1)가 불휘발성 메모리 장치(120)를 가리킬 때, 제어기(130)는 제1 커맨드 및 어드레스(CA1)와 제1 제어 신호(CTRL1)를 제3 커맨드 및 어드레스(CA3)와 제3 제어 신호(CTRL3)로 변환하여 불휘발성 메모리 장치(120)에 전달할 수 있다.
제어기(130)는 제1 클럭 신호(CK1)를 제3 클럭 신호(CK3)로서 또는 제3 클럭 신호(CK3)로 변환하여 불휘발성 메모리 장치(120)에 전달할 수 있다. 제3 클럭 신호(CK3)는 커맨드 또는 데이터와 연관되어 필요한 때에만 토글하고 필요하지 않은 때에 토글하지 않는 스트로브 신호일 수 있다.
제1 커맨드 및 어드레스(CA1)가 쓰기 동작을 가리킬 때, 제어기(130)는 제1 내지 제8 데이터 버퍼들(141~148)로부터 수신되는 제2 데이터 신호들(DQ2)을 제4 데이터 신호들(DQ4)로서 불휘발성 메모리 장치(120)로 전달할 수 있다. 제1 커맨드 및 어드레스(CA1)가 읽기 동작을 가리킬 때, 제어기(130)는 불휘발성 메모리 장치(120)로부터 수신되는 제4 데이터 신호들(DQ4)을 제1 내지 제8 데이터 버퍼들(141~148)로 전달할 수 있다.
예시적으로, 제어기(130)는 제1 내지 제4 불휘발성 메모리들(121~124)과 제1 내지 제8 데이터 버퍼들(141~148)을 물리적으로 서로 연관할 수 있다. 예를 들어, 제어기(130)는 제1 불휘발성 메모리(121)를 제1 및 제2 데이터 버퍼들(141, 142)과 물리적으로 연관할 수 있다. 제어기(130)는 제1 불휘발성 메모리(121)와 통신하는 제4 데이터 신호들(DQ4)을 제2 데이터 신호들(DQ2)로서 제1 및 제2 데이터 버퍼들(141, 142)과 통신할 수 있다.
마찬가지로, 제어기(130)는 제2 불휘발성 메모리(122)를 제3 및 제4 데이터 버퍼들(143, 144)과 물리적으로 연관할 수 있다. 제어기(130)는 제3 불휘발성 메모리(123)를 제5 및 제6 데이터 버퍼들(145, 146)과 물리적으로 연관할 수 있다. 제어기(130)는 제4 불휘발성 메모리(124)를 제7 및 제8 데이터 버퍼들(147, 148)과 물리적으로 연관할 수 있다.
다른 예로서, 제어기(130)는 제1 내지 제4 불휘발성 메모리들(121~124)과 통신되는 데이터를 제1 내지 제8 데이터 버퍼들(141~148)에 분산할 수 있다. 예를 들어, 제어기(130)는 제k 불휘발성 메모리(k는 양의 정수)에 기입될 데이터를 제1 내지 제8 데이터 버퍼들(141~148)을 통해 분산하여 수신할 수 있다. 제어기(130)는 제k 불휘발성 메모리로부터 읽은 데이터를 제1 내지 제8 데이터 버퍼들(141~148)을 통해 분산하여 출력할 수 있다.
예시적으로, 휘발성 메모리들, 불휘발성 메모리들, 그리고 데이터 버퍼들의 수는 한정되지 않는다. 휘발성 메모리들 또는 불휘발성 메모리들의 수는 데이터 버퍼들의 수와 동일할 수 있다. 데이터 버퍼들의 수는 9개로 변경될 수 있다.
데이터 버퍼들(141~148) 중 적어도 하나가 손상(논리적 또는 물리적으로)되면, 손상된 데이터 버퍼를 통해 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 기입된 데이터가 소실될 수 있다. 예를 들어, 손상된 데이터 버퍼를 통해 기입된 데이터를 읽을 때에, 읽혀진 데이터에 데이터 버퍼의 손상으로 인한 에러가 존재할 수 있다.
손상된 데이터 버퍼에 의해 유발되는 에러가 정정 또는 치유 불가능하면, 불휘발성 메모리 장치(120)에 저장된 데이터의 일부가 읽기 불가능할 수 있다. 즉, 손상된 데이터 버퍼로 인해, 불휘발성 메모리 장치(120)에 저장된 데이터의 일부가 소실될 수 있다.
예를 들어, 휘발성 메모리들(111~114) 또는 불휘발성 메모리들(121~124)은 데이터 버퍼들(141~148)과 물리적으로 연관될 때, 데이터 버퍼의 손상은 다른 측면의 문제를 더 유발할 수 있다. 예를 들어, 특정한 데이터 버퍼를 이용하여 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 기입된 데이터는 동일한 데이터 버퍼를 통해서만 읽혀질 수 있다.
이러한 경우, 손상된 데이터 버퍼와 물리적으로 연관된 불휘발성 메모리의 데이터는 에러 없이 읽는 것이 불가능하다. 즉, 손상된 데이터 버퍼와 물리적으로 연관된 불휘발성 메모리에 저장된 데이터 전체가 소실될 수 있다. 이와 같은 문제를 해결하기 위하여, 제어기(130)는 제2 페일 오버 제어기(131)를 포함한다. 제2 페일 오버 제어기(131)는 도 1의 제1 페일 오버 제어기(33)와 함께 페일 오버 동작을 지원할 수 있다.
페일 오버 동작 시에, 반도체 메모리 모듈(100a)은 손상된 데이터 버퍼와 연관된 데이터를 손상된 데이터 버퍼가 아닌 다른 데이터 버퍼(예를 들어, 페일 오버 데이터 버퍼)를 통해 호스트 장치(30)로 출력할 수 있다. 페일 오버 동작이 지원되면, 손상된 데이터 버퍼와 연관된 데이터가 데이터 버퍼의 손상으로 인한 읽기 에러 없이 호스트 장치(30)로 출력될 수 있다. 즉, 데이터의 복원 및 백업이 수행될 수 있다.
도 3은 본 발명의 실시 예에 따른 메모리 시스템(10)의 동작 방법을 보여주는 블록도이다. 도 1 내지 도 3을 참조하면, S110 단계에서, 메모리 제어기(32)는 에러 검색 이벤트를 검출할 수 있다. 예를 들어, 메모리 제어기(32)는 반도체 메모리 모듈(100a)로부터 데이터를 읽을 때에 읽기 에러(또는 정정 불가능한 읽기 에러)가 발생하면, 에러 검색 이벤트가 검출된 것으로 판단할 수 있다.
다른 예로서, 메모리 제어기(32)는 호스트 장치(30)에 전원이 공급될 때, 또는 반도체 메모리 모듈(100a)과 트레이닝을 수행할 때에, 에러 검색 이벤트가 검출된 것으로 판단할 수 있다. 예를 들어, 트레이닝은 메모리 제어기(32)가 반도체 메모리 모듈(100a)과 데이터 전송의 신뢰성을 높이기 위해 수행하는 일련의 조정들을 포함할 수 있다.
S120 단계에서, 에러 검색 이벤트가 검출됨에 따라, 메모리 제어기(32)는 에러 위치 검색을 수행할 수 있다. 예를 들어, 에러 위치는 제1 내지 제8 데이터 버퍼들(141~148) 중에서 손상된 데이터 버퍼의 위치를 가리킬 수 있다. S130 단계에서, 에러 위치가 검색되지 않으면, 즉 데이터 버퍼들(141~148) 중 손상된 데이터 버퍼가 존재하지 않으면, 페일 오버 동작은 수행되지 않는다.
S130 단계에서, 에러 위치가 검색되면, 메모리 제어기(32)의 제1 페일 오버 제어기(33)는 반도체 메모리 모듈(100a)의 제2 페일 오버 제어기(131)와 함께 페일 오버 동작을 수행할 수 있다. 예를 들어, 반도체 메모리 모듈(100a)은 손상된 데이터 버퍼를 우회하여, 손상된 데이터 버퍼와 연관된 데이터를 페일 오버 데이터 버퍼를 통해 메모리 제어기(32)로 출력할 수 있다.
예시적으로, 메모리 제어기(32)는 에러 위치들의 수를 문턱 값과 비교할 수 있다. 에러 위치들의 수가 문턱 값 이상이면, 메모리 제어기(32)는 S140 단계의 페일 오버 동작을 수행할 수 있다. 에러 위치들의 수가 문턱 값보다 작으면, 메모리 제어기(32)는 S140 단계의 페일 오버 동작을 수행하지 않을 수 있다.
도 4는 메모리 제어기(32)가 에러 위치 검색을 수행하는 예를 보여주는 순서도이다. 도 1, 도 2 및 도 4를 참조하면, S210 단계에서, 메모리 제어기(32)는 반도체 메모리 모듈(100a)에 에러 검색 패턴을 기입할 수 있다. 예를 들어, 메모리 제어기(32)는 제1 쓰기를 수행하도록 제1 커맨드 및 어드레스(CA1)와 제1 제어 신호(CTRL1)를 반도체 메모리 모듈(100a)로 전송할 수 있다. 에러 검색 패턴은 데이터 버퍼들(141~148)을 통해 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 기입될 수 있다.
다른 예로서, 메모리 제어기(32)는 제2 쓰기를 수행하도록 제1 커맨드 및 어드레스(CA1)와 제1 제어 신호(CTRL1)를 반도체 메모리 모듈(100a)로 전송할 수 있다. 에러 검색 패턴은 데이터 버퍼들(141~148)에 저장되고, 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)로 전달되지 않을 수 있다. 에러 검색 패턴은 에러 검색을 용이하게 할 수 있도록 지원하는 임의의 패턴일 수 있다. 예를 들어, 에러 검색 패턴은 유사 임의 패턴(Pseudo Random Pattern)을 포함할 수 있다.
S220 단계에서, 메모리 제어기(32)는 반도체 메모리 모듈(100a)에 기입된 패턴을 읽을 수 있다. 예를 들어, 메모리 제어기(32)는 제1 읽기를 수행하도록 제1 커맨드 및 어드레스(CA1)와 제1 제어 신호(CTRL1)를 반도체 메모리 모듈(100a)로 전송할 수 있다. 반도체 메모리 모듈(100a)은 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 기입된 에러 검색 패턴을 데이터 버퍼들(141~148)을 통해 메모리 제어기(32)로 출력할 수 있다.
다른 예로서, 메모리 제어기(32)는 제2 읽기를 수행하도록 제1 커맨드 및 어드레스(CA1)와 제1 제어 신호(CTRL1)를 반도체 메모리 모듈(100a)로 전송할 수 있다. 반도체 메모리 모듈(100a)은 데이터 버퍼들(141~148)에 저장된 에러 검색 패턴을 메모리 제어기(32)로 출력할 수 있다.
S230 단계에서, 메모리 제어기(32)는 반도체 메모리 모듈(100a)로부터 읽혀진 패턴과 에러 검색 패턴을 비교할 수 있다. 메모리 제어기(32)는 데이터 버퍼들(141~148) 각각과 연관된 읽혀진 패턴과 에러 검색 패턴을 비교할 수 있다. S240 단계에서, 특정한 데이터 버퍼의 읽혀진 패턴과 에러 검색 패턴이 동일하면, 메모리 제어기(32)는 해당 데이터 버퍼에서 에러가 검색되지 않은 것으로 판단할 수 있다.
S240 단계에서, 특정한 데이터 버퍼의 읽혀진 패턴과 에러 검색 패턴이 동일하지 않으면, 메모리 제어기(32)는 해당 데이터 버퍼에서 에러가 검색된 것으로 판단할 수 있다. 메모리 제어기(32)는 데이터 버퍼들(141~148) 각각에서 에러가 검색되는지 판단할 수 있다.
예를 들어, 메모리 제어기(32)는 에러 검색 패턴의 값들을 바꾸면서, S210 단계 내지 S250 단계를 여러 번 수행할 수 있다. 특정한 데이터 버퍼에서 에러가 검색되는 횟수 또는 비율이 문턱 값 이상이면, 메모리 제어기(32)는 해당 데이터 버퍼에서 에러가 검색된 것으로 최종적으로 판단할 수 있다. 특정한 데이터 버퍼에서 에러가 검색되는 횟수 또는 비율이 문턱 값보다 낮으면, 메모리 제어기(32)는 해당 데이터 버퍼에서 에러가 검색되지 않은 것으로 최종적으로 판단할 수 있다.
에러 검색 패턴의 값을 변경하며 S210 단계 내지 S250를 반복적으로 수행하면, 손상된 데이터 버퍼의 읽혀진 패턴과 에러 검색 패턴이 우연히 일치하여 손상된 데이터 버퍼의 검색이 실패하는 것이 방지된다. 따라서, 메모리 제어기(32)가 손상된 데이터 버퍼를 정확하게 검색하는 성능이 향상된다.
도 5는 도 4의 방법에 의해 반도체 메모리 모듈(100a)에서 에러가 검색되는 예를 보여준다. 도 1 및 도 5를 참조하면, 메모리 제어기(32)는 제1 데이터 버퍼(141)를 통해 에러 검색 패턴으로서 '1010'을 기입할 수 있다. 메모리 제어기(32)는 제1 데이터 버퍼(141)를 통해 에러 검색 패턴과 동일한 '1010'을 읽을 수 있다. 따라서, 메모리 제어기(32)는 제1 데이터 버퍼(141)에서 에러가 검색되지 않은 것으로 판단할 수 있다.
마찬가지로, 메모리 제어기(32)는 제2, 제4, 제5, 제7 및 제8 데이터 버퍼들(142, 144, 145, 147, 148)을 통해 에러 검색 패턴들로서 각각 '1010'을 기입할 수 있다. 메모리 제어기(32)는 제2, 제4, 제5, 제7 및 제8 데이터 버퍼들(142, 144, 145, 147, 148) 각각을 통해 에러 검색 패턴과 동일한 '1010'을 읽을 수 있다. 따라서, 메모리 제어기(32)는 제2, 제4, 제5, 제7 및 제8 데이터 버퍼들(142, 144, 145, 147, 148)에서 에러가 검색되지 않은 것으로 판단할 수 있다.
메모리 제어기(32)는 제3 및 제6 데이터 버퍼들(143, 146)을 통해 에러 검색 패턴들로서 각각 '1010'을 기입할 수 있다. 메모리 제어기(32)는 제3 및 제6 데이터 버퍼들(143, 146)을 통해 에러 검색 패턴과 다른 '1011' 및 '1110'을 각각 읽을 수 있다. 따라서, 메모리 제어기(32)는 제3 및 제6 데이터 버퍼들(143, 146)에서 에러가 검색된 것으로 판단할 수 있다.
도 5에서, 제1 내지 제8 데이터 버퍼들(141~148)을 통해 동일한 에러 검색 패턴들이 기입되는 것으로 설명되었다. 그러나 제1 내지 제8 데이터 버퍼들(141~148)을 통해 기입되는 에러 검색 패턴들은 서로 다를 수 있다. 예를 들어, 제1 내지 제8 데이터 버퍼들(141~148)에 기입되는 에러 검색 패턴들은 원본 패턴에 반전, 순환 시프트와 같은 인코딩 스킴들 중 적어도 하나를 적용하여 생성될 수 있다.
도 6은 메모리 제어기(32)가 페일 오버 동작을 수행하는 예를 보여주는 순서도이다. 도 1, 도 2 및 도 6을 참조하면, S310 단계에서, 제1 페일 오버 제어기(33)는 손상된 데이터 버퍼에 대한 페일 오버 데이터 버퍼를 선택할 수 있다. 예를 들어, 제1 페일 오버 제어기(33)는 하나의 손상된 데이터 버퍼에 대해 적어도 하나의 페일 오버 데이터 버퍼를 선택할 수 있다.
다른 예로서, 제1 페일 오버 제어기(33)는 둘 이상의 손상된 데이터 버퍼들에 대해 적어도 하나의 페일 오버 데이터 버퍼를 선택할 수 있다. 즉, 제1 페일 오버 제어기(33)는 둘 이상의 손상된 데이터 버퍼들과 연관된 데이터가 적어도 하나의 페일 오버 데이터 버퍼를 통해 읽혀지도록 선택할 수 있다.
S320 단계에서, 제1 페일 오버 제어기(33)는 제1 커맨드 및 어드레스(CA1) 또는 제1 제어 신호(CTRL1)를 통해 페일 오버 정보를 제2 페일 오버 제어기(131)로 전달할 수 있다. 페일 오버 정보는 손상된 데이터 버퍼 또는 손상된 데이터 버퍼에 대한 페일 오버 데이터 버퍼를 가리키는 페일 정보를 포함할 수 있다. 페일 오버 정보는 페일 오버 요청과 함께 전달될 수 있다.
S330 단계에서, 메모리 제어기(32)는 정상 데이터 버퍼를 통해 한 번의 트랜잭션(transaction) 당 데이터를 한 번 수신할 수 있다. 정상 데이터 버퍼는 손상된 데이터 버퍼 또는 페일 오버 데이터 버퍼가 아닌 나머지 데이터 버퍼를 가리킨다. 트랜잭션은 메모리 제어기(32)가 반도체 메모리 모듈(100a)로 한 번의 읽기 요청(또는 데이터의 출력을 요구하는 임의의 요청)을 전송함에 따라 수행되는 동작 사이클을 가리킨다.
예를 들어, 반도체 메모리 모듈(100a)과 메모리 제어기(32) 사이에 특정한 버스트 길이(Burst Length)가 약속된 때에, 반도체 메모리 모듈(100a)은 한 번의 읽기 요청에 대해 하나의 데이터 버퍼를 통해 버스트 길이에 해당하는 데이터를 출력할 수 있다. 버스트 길이에 해당하는 데이터를 출력하는 동작 사이클이 하나의 트랜잭션일 수 있다.
S340 단계에서, 메모리 제어기(32)는 페일 오버 데이터 버퍼를 통해 한 번의 트랜잭션 당 데이터를 적어도 두 번 수신할 수 있다. 예를 들어, 메모리 제어기(32)는 한 번의 읽기 요청에 따라 페일 오버 데이터 버퍼를 통해 적어도 두 개의 버스트 길이에 해당하는 데이터를 수신할 수 있다.
하나의 버스트 길이에 해당하는 데이터는 페일 오버 데이터 버퍼와 연관된 데이터일 수 있다. 적어도 다른 하나의 버스트 길이에 해당하는 데이터는 적어도 하나의 손상된 데이터 버퍼와 연관된 데이터일 수 있다. 메모리 제어기(32)는 정상 데이터 버퍼를 통해 수신되는 데이터와 페일 오버 데이터 버퍼를 통해 수신되는 데이터를 조합하여, 원본 데이터를 복원할 수 있다.
도 7은 제어기(130)가 페일 오버 동작을 수행하는 예를 보여주는 순서도이다. 도 1, 도 2 및 도 7을 참조하면, S410 단계에서, 제어기(130)는 제1 커맨드 및 어드레스(CA1) 또는 제1 제어 신호(CTRL1)를 통해 메모리 제어기(32)로부터 페일 오버 정보를 수신할 수 있다.
S420 단계에서, 제2 페일 오버 제어기(131)는 페일 오버 정보에 따라, 손상된 데이터 버퍼에 대한 페일 오버 데이터 버퍼를 선택할 수 있다. S430 단계에서, 반도체 메모리 모듈(100a)은 한 번의 읽기 요청에 응답하여, 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 저장된 데이터를 정상 데이터 버퍼를 통해 한 번의 트랜잭션 당 한 번 출력할 수 있다.
S440 단계에서, 반도체 메모리 모듈(100a)은 한 번의 읽기 요청에 응답하여, 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 저장된 데이터를 페일 오버 데이터 버퍼를 통해 한 번의 트랜잭션 당 적어도 두 번 출력할 수 있다. 하나의 버스트 길이에 해당하는 데이터는 페일 오버 데이터 버퍼와 연관된 데이터일 수 있다. 적어도 다른 하나의 버스트 길이에 해당하는 데이터는 손상된 데이터 버퍼와 연관된 데이터일 수 있다.
도 8은 손상된 데이터 버퍼가 존재하지 않는 때에 반도체 메모리 모듈(100a)이 데이터를 출력하는 예를 보여준다. 도 8을 참조하면, 한 번의 읽기 요청에 응답하여, 한 번의 트랜잭션 동안에 반도체 메모리 모듈(100a)은 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 저장된 제1 내지 제8 데이터들(DATA1~DATA8)을 각각 제1 내지 제8 데이터 버퍼들(141~148)을 통해 출력할 수 있다.
도 9는 제1 내지 제8 데이터 버퍼들(141~148)이 제1 내지 제8 데이터들(DATA1~DATA8)을 출력하는 예를 보여주는 타이밍도이다. 도 8 및 도 9를 참조하면, 제1 내지 제8 데이터들(DATA1~DATA8)은 데이터 스트로브 신호(DQS)에 동기되어 출력될 수 있다. 제1 내지 제8 데이터들(DATA1~DATA8)은 동일한 길이들을 가질 수 있다. 예를 들어, 제1 내지 제8 데이터들(DATA1~DATA8)은 버스트 길이에 대응하는 동일한 길이들을 가질 수 있다.
도 10은 제3 및 제6 데이터 버퍼들(143, 146)이 손상된 때에, 반도체 메모리 모듈(100a)이 페일 오버 동작을 통해 데이터를 출력하는 예를 보여준다. 도 10을 참조하면, 제3 데이터 버퍼(143)가 손상되고, 제3 데이터 버퍼(143)의 페일 오버 데이터 버퍼로 제2 데이터 버퍼(142)가 선택될 수 있다. 또한, 제6 데이터 버퍼(146)가 손상되고, 제6 데이터 버퍼(146)의 페일 오버 데이터 버퍼로 제5 데이터 버퍼(145)가 선택될 수 있다.
따라서, 제3 및 제6 데이터 버퍼들(143, 146)은 손상된 데이터 버퍼들일 수 있다. 제1, 제4, 제7 및 제8 데이터 버퍼들(141, 144, 147, 148)은 정상 데이터 버퍼들일 수 있다. 제2 및 제5 데이터 버퍼들(142, 145)은 페일 오버 데이터 버퍼들일 수 있다.
한 번의 읽기 요청에 응답하여, 한 번의 트랜잭션 동안에, 반도체 메모리 모듈(100a)은 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 저장된 제1, 제4, 제7 및 제8 데이터들(DATA1, DATA4, DATA7, DATA8)을 제1, 제4, 제7 및 제8 데이터 버퍼들(141, 144, 147, 148)을 통해 각각 출력할 수 있다.
한 번의 읽기 요청에 응답하여, 한 번의 트랜잭션 동안에, 반도체 메모리 모듈(100a)은 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 저장된 제2 및 제3 데이터들(DATA2, DATA3)을 제2 데이터 버퍼(142)를 통해 출력할 수 있다.
한 번의 읽기 요청에 응답하여, 한 번의 트랜잭션 동안에, 반도체 메모리 모듈(100a)은 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 저장된 제5 및 제6 데이터들(DATA5, DATA6)을 제5 데이터 버퍼(145)를 통해 출력할 수 있다.
도 11은 도 10의 페일 오버 데이터 버퍼들 및 정상 데이터 버퍼들이 제1 내지 제8 데이터들(DATA1~DATA8)을 출력하는 예를 보여주는 타이밍도이다. 도 10 및 도 11을 참조하면, 정상 데이터 버퍼들인 제1, 제4, 제7 및 제8 데이터 버퍼들(141, 144, 147, 148)은 하나의 버스트 길이에 해당하는 제1, 제4, 제7 및 제8 데이터들(DATA1, DATA4, DATA7, DATA8)을 각각 출력할 수 있다.
페일 오버 데이터 버퍼들인 제2 및 제5 데이터 버퍼들(142, 145)은 자신들과 연관된 제2 및 제5 데이터들(DATA2, DATA5)을 정상 데이터 버퍼들과 동시에 각각 출력할 수 있다. 이후에, 제2 및 제5 데이터 버퍼들(142, 145)은 손상된 데이터 버퍼들과 연관된 제3 및 제6 데이터들(DATA3, DATA6)을 각각 출력할 수 있다.
제3 및 제6 데이터들(DATA3, DATA6)이 출력되는 동안, 제1, 제4, 제7 및 제8 데이터 버퍼들(141, 144, 147, 148)은 데이터를 출력하지 않을 수 있다. 다른 예로서, 제3 및 제6 데이터들(DATA3, DATA6)이 출력되는 동안, 제1, 제4, 제7 및 제8 데이터 버퍼들(141, 144, 147, 148)은 더미 데이터를 출력할 수 있다.
도 1의 메모리 제어기(32)는 제1 내지 제8 데이터들(DATA1~DATA8)을 하나의 트랜잭션 동안에 수신된 하나의 데이터 그룹으로 처리할 수 있다. 예를 들어, 메모리 제어기(32)는 제3 데이터(DATA3) 및 제6 데이터(DATA6)를 재배열하여 원본 데이터를 복원할 수 있다.
예시적으로, 제어기(130)는 손상된 데이터 버퍼들인 제3 및 제6 데이터 버퍼들(143, 146)에 대한 전원 공급을 차단할 수 있다. 손상된 데이터 버퍼들에 대한 전원 공급을 차단함으로써, 반도체 메모리 모듈(100a)의 전력 소모, 특히 페일 오버 동작 시의 전력 소모가 절감될 수 있다.
도 12는 메모리 제어기(32)가 페일 오버 동작을 수행하는 응용 예를 보여주는 순서도이다. 도 1, 도 2 및 도 12를 참조하면, S510 단계에서, 메모리 제어기(32)는 손상된 데이터 버퍼 및 손상되지 않은 데이터 버퍼에 대한 페일 오버 데이터 버퍼들을 선택할 수 있다.
예를 들어, 메모리 제어기(32) 또는 제어기(130)는 데이터 버퍼들(141~148)을 그룹화하여 관리할 수 있다. 특정한 그룹에 속한 데이터 버퍼가 손상되면, 메모리 제어기(32)는 손상된 데이터 버퍼와 동일한 그룹에 속한 손상되지 않은 데이터 버퍼에 대해서도 페일 오버 데이터 버퍼를 선택할 수 있다.
다른 예로서, 메모리 제어기(32) 또는 제어기(130)는 데이터 버퍼들(141~148) 중에서 활성화된 데이터 버퍼들, 예를 들어 정상 데이터 버퍼들 및 페일 오버 데이터 버퍼들의 총 수를 관리할 수 있다. 예를 들어, 메모리 제어기(32)는 활성화된 데이터 버퍼들의 수를 2의 제곱수로 관리할 수 있다.
손상된 데이터 버퍼가 존재하지 않을 때, 메모리 제어기(32)는 활성화된 데이터 버퍼들의 수를 데이터 버퍼들(141~148)의 총 수로 관리할 수 있다. 손상된 데이터 버퍼가 발생하면, 메모리 제어기(32)는 활성화된 데이터 버퍼들의 수를 미리 정해진 제1 값으로 조절할 수 있다. 활성화된 데이터 버퍼들의 수를 제1 값으로 조절할 때, 메모리 제어기(32)는 손상된 데이터 버퍼뿐 아니라 손상되지 않은 데이터 버퍼에 대해서도 페일 오버 데이터 버퍼를 선택할 수 있다.
손상된 데이터 버퍼들의 수가 증가하여 활성화된 데이터 버퍼들의 수가 제1 값보다 감소하면, 메모리 제어기(32)는 활성화된 데이터 버퍼들의 수를 미리 정해진 제2 값으로 조절할 수 있다. 활성화된 데이터 버퍼들의 수를 제2 값으로 조절할 때, 메모리 제어기(32)는 손상된 데이터 버퍼뿐 아니라 손상되지 않은 데이터 버퍼에 대해서도 페일 오버 데이터 버퍼를 선택할 수 있다.
손상되지 않았음에도 페일 오버 데이터 버퍼가 지정된 데이터 버퍼들은 사용되지 않을 수 있다. 제어기(130)는 사용되지 않는 데이터 버퍼들에 대한 전원 공급을 차단할 수 있다. 사용되지 않는 데이터 버퍼들에 대한 전원 공급이 차단되면, 반도체 메모리 모듈(100a)의 전력 소비가 절감될 수 있다.
도 13은 도 12의 방법에 따라 페일 오버 데이터 버퍼들이 선택되는 반도체 메모리 모듈(100a)의 예를 보여준다. 도 1, 도 12 및 도 13을 참조하면, 손상된 제3 데이터 버퍼(143)에 대해 제2 데이터 버퍼(142)가 페일 오버 데이터 버퍼로 선택될 수 있다. 제2 데이터 버퍼(142)는 자신과 연관된 제2 데이터(DATA2) 및 제3 데이터 버퍼(143)와 연관된 제3 데이터(DATA3)를 출력할 수 있다.
사용되지 않는 제4 데이터 버퍼(144)에 대해 제1 데이터 버퍼(141)가 페일 오버 데이터 버퍼로 선택될 수 있다. 제1 데이터 버퍼(141)는 자신과 연관된 제1 데이터(DATA1) 및 제4 데이터 버퍼(144)와 연관된 제4 데이터(DATA4)를 출력할 수 있다.
손상된 제6 데이터 버퍼(146)에 대해 제5 데이터 버퍼(145)가 페일 오버 데이터 버퍼로 선택될 수 있다. 제5 데이터 버퍼(145)는 자신과 연관된 제5 데이터(DATA5) 및 제6 데이터 버퍼(146)와 연관된 제6 데이터(DATA6)를 출력할 수 있다.
사용되지 않는 제8 데이터 버퍼(148)에 대해 제7 데이터 버퍼(147)가 페일 오버 데이터 버퍼로 선택될 수 있다. 제7 데이터 버퍼(147)는 자신과 연관된 제7 데이터(DATA7) 및 제8 데이터 버퍼(148)와 연관된 제8 데이터(DATA8)를 출력할 수 있다.
도 14는 도 13의 페일 오버 데이터 버퍼들이 제1 내지 제8 데이터들(DATA1~DATA8)을 출력하는 예를 보여주는 타이밍도이다. 도 10 및 도 11을 참조하면, 제1, 제2, 제5 및 제7 데이터 버퍼들(141, 142, 145, 147)은 자신들과 연관된 제1, 제2 제5 및 제7 데이터들(DATA1, DATA2, DATA5, DATA7)을 각각 동시에 출력할 수 있다.
이후에, 제1, 제2, 제5 및 제7 데이터 버퍼들(141, 142, 145, 147)은 손상된 제3 및 제6 데이터 버퍼들(143, 146)과 사용되지 않는 제4 및 제8 데이터 버퍼들(144, 148)과 연관된 제3, 제4, 제6 및 제8 데이터들(DATA3, DATA4, DATA6, DATA8)을 각각 동시에 출력할 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(10)은 데이터 버퍼들(141~148) 중 적어도 하나가 손상되어도, 휘발성 메모리 장치(110) 또는 불휘발성 메모리 장치(120)에 저장된 데이터를 페일 오버 동작을 통해 읽을 수 있다. 페일 오버 동작에 따르면, 데이터 버퍼의 손상에 따른 에러가 방지된다.
상술된 실시 예들에서, 페일 오버 데이터 버퍼들은 자신과 연관된 데이터를 먼저 출력하고, 이후에 손상된 데이터 버퍼 또는 사용되지 않는 데이터 버퍼와 연관된 데이터를 출력하는 것으로 설명되었다. 그러나 페일 오버 데이터 버퍼는 손상된 데이터 버퍼 또는 사용되지 않는 데이터 버퍼와 연관된 데이터를 출력한 후에 자신과 연관된 데이터를 출력하도록 변경될 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
10: 메모리 시스템
20: 스토리지 장치들
30: 호스트 장치
32: 메모리 제어기
33: 제1 페일 오버 제어기
100: 반도체 메모리 모듈들
100a: 반도체 메모리 모듈
110: 휘발성 메모리 장치
111~114: 휘발성 메모리들
120: 불휘발성 메모리 장치
130: 제어기
131: 제2 페일 오버 제어기
141~148: 제1 내지 제8 데이터 버퍼들

Claims (20)

  1. 휘발성 메모리 장치;
    불휘발성 메모리 장치;
    데이터 버퍼들; 그리고
    상기 휘발성 메모리 장치 또는 상기 불휘발성 메모리 장치로부터 읽은 제1 데이터를 상기 데이터 버퍼들을 통해 외부 장치로 출력하고, 그리고 상기 외부 장치로부터 상기 데이터 버퍼들을 통해 수신되는 제2 데이터를 상기 휘발성 메모리 장치 또는 상기 불휘발성 메모리 장치에 기입하는 제어기를 포함하고,
    상기 데이터 버퍼들 중 손상된 데이터 버퍼의 위치를 가리키는 페일 정보를 포함하는 페일 오버 요청에 따라, 상기 제어기는 페일 오버 동작을 수행하고,
    상기 페일 오버 동작 시에, 상기 제어기는 상기 손상된 데이터 버퍼와 연관된 제3 데이터를 상기 데이터 버퍼들 중에서 페일 오버 데이터 버퍼를 통해 상기 외부 장치와 통신하고, 그리고
    상기 페일 오버 동작 시에, 상기 제어기는 상기 불휘발성 메모리 장치로부터 읽은 상기 제1 데이터 중 상기 페일 오버 데이터 버퍼와 연관된 제4 데이터 및 상기 제3 데이터를 상기 페일 오버 데이터 버퍼를 통해 상기 외부 장치로 출력하고, 그리고 상기 제1 데이터 중 정상 데이터 버퍼들과 연관된 제5 데이터를 상기 정상 데이터 버퍼들을 통해 상기 외부 장치로 출력하는 반도체 메모리 모듈.
  2. 제1항에 있어서,
    상기 페일 오버 동작 시에, 상기 제어기는 상기 페일 오버 데이터 버퍼와 연관된 제4 데이터를 상기 페일 오버 데이터 버퍼를 통해 상기 외부 장치와 더 통신하는 반도체 메모리 모듈.
  3. 제1항에 있어서,
    상기 페일 오버 동작 시에, 상기 제어기는 상기 데이터 버퍼들 중 정상 데이터 버퍼와 연관된 제4 데이터를 상기 정상 데이터 버퍼를 통해 상기 외부 장치와 통신하는 반도체 메모리 모듈.
  4. 제1항에 있어서,
    상기 제어기는 상기 외부 장치로부터 수신되는 커맨드와 제어 신호에 따라 동작하고,
    상기 페일 오버 요청은 상기 커맨드 또는 상기 제어 신호의 형태로 수신되는 반도체 메모리 모듈.
  5. 제1항에 있어서,
    상기 제3 및 제4 데이터들은 상기 페일 오버 데이터 버퍼를 통해 순차적으로 출력되는 반도체 메모리 모듈.
  6. 제1항에 있어서,
    상기 페일 오버 동작 시에, 상기 제어기는 상기 불휘발성 메모리 장치에 저장된 유효 데이터를 상기 외부 장치로 출력하는 반도체 메모리 모듈.
  7. 제1항에 있어서,
    상기 제어기는 상기 손상된 데이터 버퍼에 대한 전원 공급을 차단하는 반도체 메모리 모듈.
  8. 제1항에 있어서,
    상기 페일 정보는 상기 페일 오버 데이터 버퍼의 위치를 더 포함하는 반도체 메모리 모듈.
  9. 반도체 메모리 모듈; 그리고
    상기 반도체 메모리 모듈을 제어하는 메모리 제어기를 포함하고,
    상기 반도체 메모리 모듈은:
    휘발성 메모리 장치;
    불휘발성 메모리 장치;
    데이터 버퍼들; 그리고
    상기 휘발성 메모리 장치 또는 상기 불휘발성 메모리 장치로부터 읽은 제1 데이터를 상기 데이터 버퍼들을 통해 상기 메모리 제어기로 출력하고, 그리고 상기 메모리 제어기로부터 상기 데이터 버퍼들을 통해 수신되는 제2 데이터를 상기 휘발성 메모리 장치 또는 상기 불휘발성 메모리 장치에 기입하는 제어기를 포함하고,
    상기 메모리 제어기는 상기 데이터 버퍼들 중 적어도 하나의 데이터 버퍼가 손상된 데이터 버퍼일 때, 상기 손상된 데이터 버퍼를 우회하는 페일 오버 동작을 수행하고,
    상기 페일 오버 동작 시에, 상기 메모리 제어기는 상기 데이터 버퍼들 중 정상 데이터 버퍼들을 통해 제3 데이터를 수신하고, 그리고 상기 손상된 데이터 버퍼와 연관된 데이터를 우회하여 통신하는 페일 오버 데이터 버퍼를 통해 제4 데이터를 수신하고, 그리고
    상기 메모리 제어기는 상기 제3 데이터 및 상기 제4 데이터를 상기 데이터 버퍼들과 연관된 하나의 데이터 그룹으로 처리하는 반도체 메모리 시스템.
  10. 제9항에 있어서,
    상기 메모리 제어기는 상기 손상된 데이터 버퍼를 검색하는 에러 위치 검색(error position search)을 상기 데이터 버퍼들에 대해 수행하는 반도체 메모리 시스템.
  11. 제10항에 있어서,
    상기 에러 위치 검색 시에, 상기 메모리 제어기는 상기 데이터 버퍼들 각각에 제3 데이터를 기입하고, 상기 데이터 버퍼들 각각으로부터 제4 데이터를 읽고, 그리고 상기 제3 데이터와 제4 데이터를 비교하는 반도체 메모리 시스템.
  12. 제11항에 있어서,
    상기 메모리 제어기는 상기 제3 데이터의 데이터 패턴을 변경하며, 상기 제3 데이터의 기입, 상기 제4 데이터의 읽기, 그리고 상기 제3 데이터와 상기 제4 데이터의 비교를 반복하는 반도체 메모리 시스템.
  13. 제12항에 있어서,
    상기 메모리 제어기는 상기 데이터 버퍼들 중 상기 제3 데이터와 상기 제4 데이터가 서로 다른 데이터 버퍼 또는 상기 변경된 제3 데이터 및 상기 제4 데이터가 서로 다른 데이터 버퍼를 상기 손상된 데이터 버퍼로 판단하는 반도체 메모리 시스템.
  14. 제9항에 있어서,
    상기 페일 오버 동작 시에, 상기 메모리 제어기는 상기 페일 오버 동작을 요청하는 페일 오버 요청을 커맨드 또는 제어 신호의 형태로 상기 제어기로 전송하는 반도체 메모리 시스템.
  15. 제14항에 있어서,
    상기 페일 오버 요청은 상기 손상된 데이터 버퍼의 위치에 대한 정보, 그리고 상기 데이터 버퍼들 중에서 상기 손상된 데이터 버퍼와 연관된 데이터를 우회하여 통신하는 페일 오버 데이터 버퍼의 위치에 대한 정보 중 적어도 하나를 포함하는 반도체 메모리 시스템.
  16. 휘발성 메모리, 불휘발성 메모리, 데이터 버퍼들 및 제어기를 포함하는 반도체 메모리 모듈; 그리고
    상기 데이터 버퍼들 중 손상된 데이터 버퍼를 검출하고, 그리고 페일오버 요청을 제공하도록 구성되는 메모리 제어기를 포함하고,
    상기 제어기는 상기 페일오버 요청에 응답하여, 상기 휘발성 메모리 또는 상기 불휘발성 메모리로부터 데이터를 읽고, 그리고 상기 데이터를 상기 데이터 버퍼들 중 정상 데이터 버퍼들 및 페일 오버 데이터 버퍼를 통해 상기 메모리 제어기에 제공하는 것을 포함하는 페일오버 동작을 수행하고, 그리고
    상기 페일오버 데이터 버퍼는 상기 손상된 데이터 버퍼와 연관된 우회 경로를 제공하고, 그리고
    상기 페일 오버 동작 동안, 상기 제어기는 상기 손상된 데이터 버퍼와 연관된 데이터 및 상기 페일 오버 데이터 버퍼와 연관된 데이터를 상기 페일 오버 데이터 버퍼를 통해 상기 메모리 제어기에 순차적으로 전달하도록 구성되는 반도체 메모리 시스템.
  17. 제16항에 있어서,
    상기 페일 오버 동작 동안, 상기 제어기는 정상 데이터 버퍼들과 연관된 데이터를 상기 정상 데이터 버퍼를 통해 상기 메모리 제어기로 전달하도록 구성되는 반도체 메모리 시스템.
  18. 삭제
  19. 삭제
  20. 삭제
KR1020170148210A 2017-11-08 2017-11-08 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법 KR102427323B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170148210A KR102427323B1 (ko) 2017-11-08 2017-11-08 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법
US15/996,482 US10698781B2 (en) 2017-11-08 2018-06-03 Semiconductor memory module, semiconductor memory system, and method of accessing semiconductor memory module
DE102018122482.6A DE102018122482A1 (de) 2017-11-08 2018-09-14 Halbleiter-Speichermodul, Halbleiter-Speichersystem und Verfahren zum Zugreifen auf ein Halbleiter-Speichermodul
CN201811317210.8A CN109753239B (zh) 2017-11-08 2018-11-07 半导体存储模块、半导体存储系统和访问其的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170148210A KR102427323B1 (ko) 2017-11-08 2017-11-08 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법

Publications (2)

Publication Number Publication Date
KR20190052490A KR20190052490A (ko) 2019-05-16
KR102427323B1 true KR102427323B1 (ko) 2022-08-01

Family

ID=66179371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170148210A KR102427323B1 (ko) 2017-11-08 2017-11-08 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법

Country Status (4)

Country Link
US (1) US10698781B2 (ko)
KR (1) KR102427323B1 (ko)
CN (1) CN109753239B (ko)
DE (1) DE102018122482A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102499794B1 (ko) 2018-05-21 2023-02-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037280A1 (en) * 2001-08-20 2003-02-20 Berg Jerry D. Computer memory error management system and method
US20150363309A1 (en) * 2014-06-17 2015-12-17 Kingtiger Technology (Canada) Inc. System and method of increasing reliability of non-volatile memory storage

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07311658A (ja) * 1994-05-18 1995-11-28 Oki Electric Ind Co Ltd ディスクアレイ装置
US5751939A (en) * 1995-11-29 1998-05-12 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
DE102004052612B4 (de) * 2004-10-29 2008-04-17 Qimonda Ag Halbleiterspeicherbaustein, Halbleiterspeichermodul und Verfahren zur Übertragung von Schreibdaten zu Halbleiterspeicherbausteinen
US8352805B2 (en) * 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US8296337B2 (en) * 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
KR100909965B1 (ko) * 2007-05-23 2009-07-29 삼성전자주식회사 버스를 공유하는 휘발성 메모리 및 불휘발성 메모리를구비하는 반도체 메모리 시스템 및 불휘발성 메모리의 동작제어 방법
KR101425957B1 (ko) * 2007-08-21 2014-08-06 삼성전자주식회사 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템
US8046542B2 (en) * 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US9128632B2 (en) 2009-07-16 2015-09-08 Netlist, Inc. Memory module with distributed data buffers and method of operation
US8688901B2 (en) 2009-12-08 2014-04-01 Intel Corporation Reconfigurable load-reduced memory buffer
US10817502B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US8694857B2 (en) 2011-04-13 2014-04-08 Inphi Corporation Systems and methods for error detection and correction in a memory module which includes a memory buffer
JP5490062B2 (ja) * 2011-07-19 2014-05-14 株式会社東芝 不揮発性半導体記憶装置
KR20130049332A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
KR20130086887A (ko) 2012-01-26 2013-08-05 삼성전자주식회사 메모리 버퍼, 이를 포함하는 장치들 및 이의 데이터 처리 방법
CN104094351A (zh) * 2012-01-31 2014-10-08 惠普发展公司,有限责任合伙企业 内存模块缓冲器数据存储
US8966327B1 (en) * 2012-06-21 2015-02-24 Inphi Corporation Protocol checking logic circuit for memory system reliability
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
KR101989792B1 (ko) * 2012-11-01 2019-06-17 삼성전자주식회사 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 동작 방법
US9032177B2 (en) * 2012-12-04 2015-05-12 HGST Netherlands B.V. Host read command return reordering based on time estimation of flash read command completion
KR102143517B1 (ko) * 2013-02-26 2020-08-12 삼성전자 주식회사 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US9129674B2 (en) * 2013-06-27 2015-09-08 Intel Corporation Hybrid memory device
US9449651B2 (en) 2014-03-21 2016-09-20 Diablo Technologies Inc. System and method for offsetting the data buffer latency of a device implementing a JEDEC standard DDR-4 LRDIMM chipset
US9354872B2 (en) * 2014-04-24 2016-05-31 Xitore, Inc. Apparatus, system, and method for non-volatile data storage and retrieval
US9348518B2 (en) 2014-07-02 2016-05-24 International Business Machines Corporation Buffered automated flash controller connected directly to processor memory bus
US20160188414A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Fault tolerant automatic dual in-line memory module refresh
CN106155926B (zh) 2015-04-09 2019-11-26 澜起科技股份有限公司 存储器及存储器的数据交互方法
US10261697B2 (en) 2015-06-08 2019-04-16 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
KR102430561B1 (ko) 2015-09-11 2022-08-09 삼성전자주식회사 듀얼 포트 디램을 포함하는 메모리 모듈
US20170123991A1 (en) * 2015-10-28 2017-05-04 Sandisk Technologies Inc. System and method for utilization of a data buffer in a storage device
KR102513903B1 (ko) * 2015-12-03 2023-03-28 삼성전자주식회사 불휘발성 메모리 모듈 및 메모리 시스템
KR102491651B1 (ko) 2015-12-14 2023-01-26 삼성전자주식회사 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
KR102523141B1 (ko) 2016-02-15 2023-04-20 삼성전자주식회사 휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 불휘발성 메모리 모듈
US9904611B1 (en) 2016-11-29 2018-02-27 International Business Machines Corporation Data buffer spare architectures for dual channel serial interface memories

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037280A1 (en) * 2001-08-20 2003-02-20 Berg Jerry D. Computer memory error management system and method
US20150363309A1 (en) * 2014-06-17 2015-12-17 Kingtiger Technology (Canada) Inc. System and method of increasing reliability of non-volatile memory storage

Also Published As

Publication number Publication date
US20190138413A1 (en) 2019-05-09
KR20190052490A (ko) 2019-05-16
CN109753239B (zh) 2023-11-21
US10698781B2 (en) 2020-06-30
CN109753239A (zh) 2019-05-14
DE102018122482A1 (de) 2019-05-09

Similar Documents

Publication Publication Date Title
TWI710892B (zh) 動態隨機存取記憶體的錯誤更正方法
CN110148434B (zh) 半导体存储器件、存储系统和操作半导体存储器件的方法
KR102553704B1 (ko) 에러 타입에 기초하는 ecc의 동적 적용
US8892942B2 (en) Rank sparing system and method
KR102426619B1 (ko) 영구 메모리 시스템 등을 위한 데이터 무결성
US7624225B2 (en) System and method for providing synchronous dynamic random access memory (SDRAM) mode register shadowing in a memory system
US7984329B2 (en) System and method for providing DRAM device-level repair via address remappings external to the device
US8874979B2 (en) Three dimensional(3D) memory device sparing
CN101477480B (zh) 内存控制方法、装置及内存读写系统
KR20140108398A (ko) 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
CN108074595A (zh) 存储器系统的接口方法、接口电路和存储器模块
KR20190012566A (ko) 에러 정정 기능을 갖는 메모리 시스템, 메모리 모듈 및 메모리 컨트롤러의 동작 방법
US9262284B2 (en) Single channel memory mirror
KR20190052754A (ko) 적응적 온-다이 에러 체크 및 정정을 위한 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
JP4349532B2 (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
US11721408B2 (en) Memory device capable of outputting fail data in parallel bit test and memory system including the memory device
US20230236934A1 (en) Instant write scheme with dram submodules
US11456021B2 (en) Methods, semiconductor devices, and semiconductor systems
KR102427323B1 (ko) 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법
US11688453B2 (en) Memory device, memory system and operating method
US11210208B2 (en) Memory system including memory module, memory module, and operating method of memory module
CN116783654A (zh) 自适应错误校正以提高系统存储器可靠性、可用性和可服务性(ras)
KR102583301B1 (ko) 디램 디바이스 및 그 랭크 매핑 방법과 이를 위한 컴퓨터 프로그램
US11803501B2 (en) Routing assignments based on error correction capabilities

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant