KR20190032793A - 메모리 모듈 - Google Patents
메모리 모듈 Download PDFInfo
- Publication number
- KR20190032793A KR20190032793A KR1020170121049A KR20170121049A KR20190032793A KR 20190032793 A KR20190032793 A KR 20190032793A KR 1020170121049 A KR1020170121049 A KR 1020170121049A KR 20170121049 A KR20170121049 A KR 20170121049A KR 20190032793 A KR20190032793 A KR 20190032793A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- ranks
- rank
- group
- module
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- 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/0793—Remedial or corrective actions
-
- 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
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
- G11C29/765—Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
- G11C29/883—Masking faults in memories by using spares or by reconfiguring with partially good memories using a single defective memory device with reduced capacity, e.g. half capacity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
Abstract
메모리 모듈은, 제1그룹에 속하는 다수의 제1메모리 랭크; 제2그룹에 속하는 다수의 제2메모리 랭크; 및 상기 다수의 제1메모리 랭크 중 결함인 제1메모리 랭크를 상기 다수의 제2메모리 랭크 중 결함이 없는 제2메모리 랭크로 맵핑하기 위한 랭크 맵핑 회로를 포함하고, 상기 다수의 제1메모리 랭크 중 상기 결함인 제1메모리 랭크로는 클럭의 공급이 차단될 수 있다.
Description
본 특허 문헌은 메모리 모듈에 관한 것이다.
최근 스마트 폰, 태블릿 PC와 같은 이동 통신 단말기의 보급이 대중화되고, 소셜 네트워크 서비스(SNS, Social Network Service), 사물 네트워크(M2M, Machine to Machine), 센서 네트워크(Sensor Network) 등의 사용이 증가함에 따라 데이터의 양, 생성 속도 및 그 다양성이 기하급수적으로 증가하고 있다. 빅 데이터의 처리를 위해서는 메모리의 속도도 중요하지만 메모리 장치 및 이를 포함하는 메모리 모듈의 저장 용량이 매우 클 것이 요구된다.
현재 시스템 메모리로 사용되고 있는 DIMM 타입의 메모리 모듈을 고용량으로 제작할 경우에, 메모리 모듈에 포함되는 메모리 장치들의 개수가 많아져 불량의 발생이 증가하고 있는데, 이에 대비하기 위한 기술이 요구된다.
본 발명의 실시예들은 불량이 발생해도 사용 가능한 메모리 모듈을 제공할 수 있다.
본 발명의 일실시예에 따른 메모리 모듈은, 제1그룹에 속하는 다수의 제1메모리 랭크; 제2그룹에 속하는 다수의 제2메모리 랭크; 및 상기 다수의 제1메모리 랭크 중 결함인 제1메모리 랭크를 상기 다수의 제2메모리 랭크 중 결함이 없는 제2메모리 랭크로 맵핑하기 위한 랭크 맵핑 회로를 포함하고, 상기 다수의 제1메모리 랭크 중 상기 결함인 제1메모리 랭크로는 클럭의 공급이 차단될 수 있다.
본 발명의 다른 실시예에 따른 메모리 모듈은 다수의 메모리 랭크; 및 랭크 결함 정보를 이용해 상기 다수의 메모리 랭크를 맵핑하기 위한 맵핑 회로를 포함하고, 상기 다수의 메모리 랭크 중 결함인 메모리 랭크로는 클럭의 공급이 차단될 수 있다.
본 발명의 실시예들에 따르면, 불량이 발생한 메모리 모듈을 사용할 수 있다.
도 1은 본 발명의 일실시예에 따른 메모리 모듈(100)의 구성도.
도 2는 도 1의 모듈 콘트롤러(110)의 일실시예 구성도.
도 3A는 랭크 맵핑 회로(250)의 맵핑 방식 중 (1) 하프 캐패시티 방식을 도시한 도면.
도 3B는 랭크 맵핑 회로(250)의 맵핑 테이블을 도시한 도면.
도 4A는 랭크 맵핑 회로(250)의 맵핑 방식 중 (2) 리니어 방식을 도시한 도면.
도 4B는 랭크 맵핑 회로(250)의 맵핑 테이블을 도시한 도면.
도 2는 도 1의 모듈 콘트롤러(110)의 일실시예 구성도.
도 3A는 랭크 맵핑 회로(250)의 맵핑 방식 중 (1) 하프 캐패시티 방식을 도시한 도면.
도 3B는 랭크 맵핑 회로(250)의 맵핑 테이블을 도시한 도면.
도 4A는 랭크 맵핑 회로(250)의 맵핑 방식 중 (2) 리니어 방식을 도시한 도면.
도 4B는 랭크 맵핑 회로(250)의 맵핑 테이블을 도시한 도면.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 본 발명을 설명함에 있어서, 본 발명의 요지와 무관한 공지의 구성은 생략될 수 있다. 각 도면의 구성 요소들에 참조 번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
도 1은 본 발명의 일실시예에 따른 메모리 모듈(100)의 구성도이다. 설명의 편의상 메모리 모듈(100)을 제어하는 호스트 상의 메모리 콘트롤러(1)를 도 1에 함께 도시한다.
도 1을 참조하면, 메모리 모듈(100)은 모듈 콘트롤러(110), 데이터 버퍼들(120_0~120_7), 메모리 랭크들(130_0~130_15), 클럭 게이팅 회로들(140_0~140_15) 및 SPD(150)를 포함할 수 있다. 메모리 모듈(100)은 DIMM(Dual In-Line Memory Module) 타입일 수 있다.
메모리 랭크들(130_0~130_15) 각각은 다수의 메모리 장치(칩)들을 포함할 수 있다. 예를 들어, 16개의 메모리 랭크들(130_0~130_15) 각각은 9개의 메모리 장치들을 포함할 수 있다. 이 경우 메모리 모듈에는 총 16*9=144개의 메모리 장치들을 포함할 수 있다. 메모리 모듈(100)에서 리드 및 라이트 동작은 메모리 랭크 단위로 수행될 수 있다. 즉, 라이트 동작시에 메모리 랭크들(130_0~130_15) 중 선택된 하나의 메모리 랭크 내의 9개의 메모리 장치들에서 동시에 라이트 동작이 수행될 수 있으며, 리드 동작시에 메모리 랭크들(130_0~130_15) 중 선택된 하나의 메모리 랭크 내의 9개의 메모리 장치들에서 동시에 리드 동작이 수행될 수 있다. 메모리 랭크들(130_0~130_15) 각각에 포함되는 메모리 장치들 각각은 DRAM(Dynamic Random Access Memory), RRAM(Resistive Random Access Memory), PRAM(Phase-change Random Access Memory), FRAM(Ferroelectric Random Access Memory), MRAM(Magnetic Random Access Memory) 등 다양한 종류의 메모리들 중 하나일 수 있다.
데이터 버퍼들(120_0~120_7)은 라이트 동작시에는 메모리 콘트롤러(1)로부터 데이터(DATA)를 수신해 모듈 콘트롤러(110)로 전달하고, 리드 동작시에는 모듈 콘트롤러(110)로부터 데이터를 수신해 메모리 콘트롤러(1)로 전달할 수 있다. 도면의 DATA_INT1은 메모리 모듈(100) 내부에서 데이터 버퍼들(120_0~120_7)과 모듈 콘트롤러(110) 간에 데이터를 송수신하기 위한 내부 데이터 버스를 나타낼 수 있다.
모듈 콘트롤러(110)는 메모리 콘트롤러(1)로부터 제공되는 커맨드(CMD), 어드레스(ADD) 및 클럭(CLK)을 버퍼링하여 메모리 랭크들(130_0~130_15)로 제공할 수 있다. 또한, 모듈 콘트롤러(110)는 데이터 버퍼들(120_0~120_7)과 메모리 랭크들(130_0~130_15) 간의 데이터를 전달하는 역할을 수행할 수 있다. 모듈 콘트롤러(110)는 라이트 동작시에는 데이터 버퍼들(120_0~120_7)로부터 전달된 라이트 데이터를 이용해 에러 정정 코드를 생성할 수 있다. 그리고 라이트 데이터와 에러 정정 코드가 메모리 랭크들(130_0~130_15)에 라이트될 수 있도록 라이트 데이터와 에러 정정 코드를 메모리 랭크들(130_0~130_15)로 전송할 수 있다. 또한, 모듈 콘트롤러(110)는 리드 동작시에는 메모리 랭크들(130_0~130_15)로부터 리드된 에러 정정 코드를 이용해 메모리 랭크들(130_0~130_15)로부터 리드된 리드 데이터의 에러를 정정하고, 에러가 정정된 리드 데이터를 데이터 버퍼들(120_0~120_7)로 전송할 수 있다. 따라서 데이터 버퍼들(120_0~120_7)과 모듈 콘트롤러(110) 간의 내부 데이터 버스(DATA_INT1)로는 데이터가 전송되고, 모듈 콘트롤러(110)와 메모리 랭크들(130_0~130_15) 간의 내부 데이터 버스(DATA_INT2)로는 데이터와 에러 정정 코드가 전송될 수 있다. 모듈 콘트롤러(110)의 에러 정정 코드 생성 동작 및 에러 정정 동작에 의해, 메모리 랭크들(130_0~130_15)에 포함되는 메모리 장치들의 개수 및 용량이 증가 되는 것에 의해 에러가 증가하는 문제가 어느 정도 해결될 수 있다.
한편, 모듈 콘트롤러(110)는 메모리 랭크들(130_0~130_15) 중 불량인 결함이 있는 메모리 랭크를 다른 메모리 랭크로 맵핑하는 동작을 수행할 수 있다. 메모리 랭크들 중 불량인 메모리 랭크가 포함된 경우에 메모리 모듈(100) 전체를 사용하지 못할 수 있는데, 모듈 콘트롤러(110)의 메모리 랭크 맵핑 동작으로 메모리 랭크들(130_0~130_15) 중 불량이 포함되어 있더라도 메모리 모듈(100)을 사용할 수 있다. 모듈 콘트롤러(110)는 메모리 랭크들(130_0~130_15)의 맵핑 정보를 SPD(150)로 제공해 맵핑 정보에 따라 메모리 모듈에서 사용 가능한 용량에 대한 정보가 SPD(150)로 업데이트되도록 할 수 있으며, 모듈 콘트롤러(110)는 메모리 랭크들(130_0~130_15) 중 맵핑에 의해 사용하지 않게 된 메모리 랭크들에 클럭(CLK)이 공급되지 않도록 하기 위해 클럭 게이팅 회로들(140_0~140_15)을 제어할 수 있다.
클럭 게이팅 회로들(140_0~140_15)은 메모리 랭크들(130_0~130_15)로 클럭(CLK)이 공급되는 것을 제어할 수 있다. 클럭 게이팅 회로들(140_0~140_15)은 모듈 콘트롤러(110)의 제어를 받아 메모리 랭크들(130_0~130_15)로의 클럭(CLK)의 공급을 제어할 수 있다. 예를 들어, 메모리 모듈(100)에서 메모리 랭크들(130_0~130_7, 130_10~130_15)이 사용되고 메모리 랭크들(130_8, 130_9)이 사용되지 않는 경우에 클럭 게이팅 회로들(140_0~140_7, 140_10~140_15)은 메모리 랭크들(130_0~130_7, 130_10~130_15)로 클럭(CLK)을 공급하고, 클럭 게이팅 회로들(140_8, 140_9)은 메모리 랭크들(130_8, 130_9)로 클럭(CLK)을 공급하지 않을 수 있다. 메모리 랭크들(130_8, 130_9)로 클럭(CLK)의 공급이 차단되는 경우에 메모리 랭크들(130_8, 130_9)에서 소비되는 전류량은 크게 줄어들 수 있다. 도 1에서는 클럭 게이팅 회로들(140_0~140_15)이 메모리 랭크들(130_0~130_15)과 별도로 존재하는 것으로 예시했는데, 클럭 게이팅 회로들(140_0~140_15)이 메모리 랭크들(130_0~130_15) 내에 구비될 수도 있다. 예를 들어, 메모리 랭크들(130_0~130_15) 각각의 메모리 장치들 내에 클럭 게이팅 회로들(140_0~140_15)이 내장될 수도 있다.
SPD(Serial Presence Detect)(150)는 메모리 모듈(100)에 대한 정보를 저장할 수 있다. SPD(150)에는 메모리 모듈(100)에 포함된 랭크의 개수, 메모리 모듈의 용량에 관한 정보 및 메모리 모듈의 각종 파라매터 등에 대한 정보가 저장되어 있을 수 있다. SPD(150)에 저장된 정보는 시스템 관리(SM: System Management) 버스(SM_BUS)를 통해 메모리 콘트롤러(1)로 제공될 수 있다. SPD(150)에 저장된 메모리 모듈에 포함된 랭크의 개수 및 전체 용량에 관한 정보는 모듈 콘트롤러(110)의 메모리 랭크들(130_0~130_15)의 맵핑 결과에 따라 업데이트될 수 있다.
도면의 CMD/ADD_INT는 메모리 모듈(100) 내부에서 커맨드(CMD)와 어드레스(ADD)를 전송하기 위한 내부 커맨드/어드레스 버스(CMD/ADD_INT)이고, CLK_INT는 메모리 모듈(100) 내부에서 클럭(CLK)을 전송하기 위한 내부 클럭 버스(CLK_INT)일 수 있다.
도 2는 도 1의 모듈 콘트롤러(110)의 일실시예 구성도이다.
도 2를 참조하면, 모듈 콘트롤러(110)는 에러 정정 코드 생성 회로(211), 에러 정정 회로(212), 커맨드 버퍼 회로(220), 어드레스 버퍼 회로(230), 클럭 버퍼 회로(240) 및 랭크 맵핑 회로(250)를 포함할 수 있다.
에러 정정 코드 생성 회로(211)는 라이트 동작시에 동작할 수 있다. 에러 정정 코드 생성 회로(211)는 데이터 버퍼들(120_0~120_7)로부터 전달된 에러 정정 코드를 생성하고, 데이터와 에러 정정 코드를 메모리 랭크들(130_0~130_15)로 전달할 수 있다. 내부 데이터 버스(DATA_INT1)로는 데이터가 전송되고, 내부 데이터 버스(DATA_INT2)로는 데이터와 에러 정정 코드가 전송될 수 있다.
에러 정정 회로(212)는 리드 동작시에 동작할 수 있다. 에러 정정 회로(212)는 메모리 랭크들(130_0~130_15)로부터 리드된 에러 정정 코드를 이용해 데이터의 에러를 정정하고 에러가 정정된 데이터를 데이터 버퍼들(120_0~120_7)로 전달할 수 있다.
커맨드 버퍼 회로(220)는 메모리 콘트롤러(1)로부터 전달되는 커맨드(CMD)를 버퍼링하고, 어드레스 버퍼 회로(220)는 메모리 콘트롤러(1)로부터 전달되는 어드레스(ADD)를 버퍼링해 내부 커맨드/어드레스 버스(CMD/ADD_INT)로 전달할 수 있다. 또한, 클럭 버퍼 회로(240)는 메모리 콘트롤러(1)로부터 전달되는 클럭(CLK)을 버퍼링해 내부 클럭 버스(CLK_INT)로 전달할 수 있다. 랭크 맵핑 회로(250)에 의해서 랭크가 맵핑되므로, 어드레스(ADD)에서 랭크를 선택하기 위한 부분은 랭크 맵핑 회로(250)에 의해 맵핑된 어드레스가 전달될 수 있다.
랭크 맵핑 회로(250)는 메모리 랭크들(130_0~130_15) 중 결함인 메모리 랭크를 결함이 없는 메모리 랭크로 맵핑할 수 있다. 여기서 결함인 메모리 랭크란 불량 메모리 셀을 많이 포함해 더 이상의 리페어가 불가능하고 에러 정정 회로(212)에 의해서도 에러의 정정이 불가능한 메모리 랭크를 의미할 수 있다. 랭크 맵핑 회로(250)의 맵핑 방식에는 (1) 하프 캐패시티(half capacity) 방식과 (2) 리니어(linear) 방식이 있을 수 있다. 도 3A, B 및 도 4A, B와 함께 랭크 맵핑 회로(250)의 맵핑 방식에 대해 자세히 알아보기로 한다.
도 3A는 랭크 맵핑 회로(250)의 맵핑 방식 중 (1) 하프 캐패시티 방식을 도시한 도면이다.
도 3A를 참조하면, 메모리 랭크들(130_0~130_15)은 0번 칩 선택 신호(CS0)에 대응하는 메모리 랭크들(130_0~130_7), 이하 제1그룹에 속하는 제1메모리 랭크들(130_0~130_7)이라 함,과 1번 칩 선택 신호(CS1)에 대응하는 메모리 랭크들(130_8~130_15), 이하 제2그룹에 속하는 제2메모리 랭크들(130_8~130_15)이라 함, 로 나뉘어질 수 있다.
제1그룹에 속하는 제1메모리 랭크들(130_0~130_7)은 0번 칩 선택 신호(CS0)가 활성화된 경우에 칩 아이디(CID)에 따라 선택될 수 있다. 예를 들어, 0번 칩 선택 신호(CS0)가 활성화된 경우에 3번 칩 아이디(CID3)가 선택되면 제1메모리 랭크(130_3)가 선택되고, 5번 칩 아이디(CID5)가 선택되면 제1메모리 랭크(130_5)가 선택될 수 있다. 여기서 칩 선택 신호들(CS0, CS1)는 커맨드 신호들 중 랭크를 선택하기 위해 사용되는 커맨드 신호이고, 칩 아이디(CID)는 어드레스 중 랭크를 선택하기 위해 사용되는 어드레스의 일부일 수 있다.
제2그룹에 속하는 제2메모리 랭크들(130_8~130_15)은 1번 칩 선택 신호(CS1)가 활성화된 경우에 칩 아이디(CID)에 따라 선택될 수 있다. 예를 들어, 1번 칩 선택 신호가 활성화된 경우에 1번 칩 아이디가 선택되면 제2메모리 랭크가 선택되고, 3번 칩 아이디가 선택되면 제2메모리 랭크가 선택될 수 있다.
하프 캐패시티 방식의 맵핑 방식은 메모리 랭크들(130_0~130_15) 중 절반만을 사용하는 방식이다. 즉, 하프 캐패시티 방식에서는 제1메모리 랭크들(130_0~130_7)만을 사용하고 제2메모리 랭크들(130_8~130_15)은 사용하지 않을 수 있다. 랭크 맵핑 회로(250)는 제1메모리 랭크들(130_0~130_7) 중 결함이 있는 제1메모리 랭크들(130_0, 130_3)을 제2메모리 랭크들(130_8, 130_12)로 맵핑할 수 있다. 제1메모리 랭크(130_0)는 동일한 칩 아이디를 가지는 제2메모리 랭크(130_8)로 맵핑될 수 있다. 제1메모리 랭크(130_3)는 동일한 칩 아이디를 가지는 제2메모리 랭크(130_11)에도 결함이 있으므로, 결함이 없는 제2메모리 랭크(130_12)로 맵핑될 수 있다.
랭크 맵핑 회로(250)는 맵핑 후 실제로 사용되는 메모리 랭크들(130_1, 130_2, 130_4~130_7, 130_8, 130_12)에는 클럭이 공급되고, 사용되지 않는 메모리 랭크들(130_0, 130_3, 130_9~130_11, 130_13~130_15)에는 클럭이 공급되지 않도록 클럭 게이팅 회로들(140_0~140_15)을 제어할 수 있다. 또한, 랭크 맵핑 회로(250)는 전체 메모리 랭크들 중 절반의 메모리 랭크들만이 사용된다는, 즉 8개의 메모리 랭크들만이 사용된다는, 정보 및 이들의 용량에 대한 정보를 SPD(150)에 업데이트할 수 있다.
도 3B는 랭크 맵핑 회로(250)의 맵핑 테이블을 도시한 도면이다. A에 표시된 메모리 랭크가 B에 표시된 메모리 랭크로 맵핑될 수 있다. A는 메모리 랭크를 나타내는 칩 선택 신호(CS)와 칩 아이디(CID)를 나타내기 위한 4비트로 구성되며, B도 메모리 랭크를 나타내는 칩 선택 신호(CS)와 칩 아이디(CID)를 나타내기 위한 4비트로 구성될 수 있다. 도 3B를 참조하면, 제1메모리 랭크들(130_0, 130_3)이 제2메모리 랭크들(130_8, 130_12)로 맵핑되는 것을 확인할 수 있다.
도 4A는 랭크 맵핑 회로(250)의 맵핑 방식 중 (2) 리니어 방식을 도시한 도면이다.
도 4A를 참조하면, 리니어 방식에서는 메모리 랭크들(130_0~130_15) 중 결함이 있는 메모리 랭크들(130_0, 130_3, 130_9, 130_11)을 제외한 메모리 랭크들(130_1, 130_2, 130_4~130_8, 130_10, 130_12~130_15) 이 사용될 수 있다. 도 4A의 경우에는 4개의 메모리 랭크들(130_0, 130_3, 130_9, 130_11)에 결함이 있으므로, 14개의 메모리 랭크들(130_1, 130_2, 130_4~130_8, 130_10, 130_12~130_15)이 사용될 수 있다. 사용되는 메모리 랭크들의 랭크 번호가 연속될 필요가 있으므로, 이 경우에도 랭크 맵핑 회로(250)에 의한 맵핑 동작이 필요할 수 있다.
랭크 맵핑 회로(250)는 결함이 있는 메모리 랭크들(130_0, 130_3, 130_9, 130_11) 중 낮은 번호의 메모리 랭크일 수록 결함이 없는 메모리 랭크들(130_1, 130_2, 130_4~130_8, 130_10, 130_12~130_15) 중 높은 번호의 메모리 랭크로 맵핑할 수 있다. 따라서, 결함이 있는 가장 낮은 번호의 메모리 랭크(130_0)가 결함이 없는 가장 높은 번호의 메모리 랭크(130_15)로 맵핑되고, 결함이 있는 2번째로 낮은 번호의 메모리 랭크(130_3)가 결함이 없는 2번째로 높은 번호의 메모리 랭크(130_14)로 맵핑되고, 결함이 있는 3번째로 낮은 번호의 메모리 랭크(130_9)가 결함이 없는 3번째로 높은 번호의 메모리 랭크(130_13)로 맵핑되고, 결함이 있는 4번째로 낮은 번호의 메모리 랭크(130_11)가 결함이 없는 4번째로 높은 번호의 메모리 랭크(130_12)로 맵핑될 수 있다.
랭크 맵핑 회로(250)는 맵핑 후 실제로 사용되는 메모리 랭크들(130_1, 130_2, 130_4~130_8, 130_10, 130_12~130_15)에는 클럭(CLK)이 공급되고, 사용되지 않는 메모리 랭크들(130_0, 130_3, 130_9, 130_11)에는 클럭(CLK)이 공급되지 않도록 클럭 게이팅 회로들(140_0~140_15)을 제어할 수 있다. 또한, 랭크 맵핑 회로(250)는 12개의 메모리 랭크들만이 사용된다는 정보 및 이들의 용량에 대한 정보를 SPD(150)에 업데이트할 수 있다.
도 4B는 랭크 맵핑 회로(250)의 맵핑 테이블을 도시한 도면이다. A에 표시된 메모리 랭크가 B에 표시된 메모리 랭크로 맵핑될 수 있다. A는 메모리 랭크를 나타내는 칩 선택 신호(CS)와 칩 아이디(CID)를 나타내기 위한 4비트로 구성되며, B도 메모리 랭크를 나타내는 칩 선택 신호(CS)와 칩 아이디(CID)를 나타내기 위한 4비트로 구성될 수 있다. 도 4B를 참조하면, 메모리 랭크(130_0)가 메모리 랭크(130_15)로 맵핑되고, 메모리 랭크(130_3)가 메모리 랭크(130_14)로 맵핑되고, 메모리 랭크(130_9)가 메모리 랭크(130_13)로 맵핑되고, 결함이 있는 메모리 랭크(130_11)가 메모리 랭크(130_12)로 맵핑되는 것을 확인할 수 있다.
본 발명은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위 내에서 다양한 실시예가 가능함을 알 수 있을 것이다.
100: 메모리 모듈
110: 모듈 콘트롤러
120_0~120_7: 데이터 버퍼들
130_0~130_15: 메모리 랭크들
140_0~140_15: 클럭 게이팅 회로들
150: SPD
110: 모듈 콘트롤러
120_0~120_7: 데이터 버퍼들
130_0~130_15: 메모리 랭크들
140_0~140_15: 클럭 게이팅 회로들
150: SPD
Claims (20)
- 제1그룹에 속하는 다수의 제1메모리 랭크;
제2그룹에 속하는 다수의 제2메모리 랭크; 및
상기 다수의 제1메모리 랭크 중 결함인 제1메모리 랭크를 상기 다수의 제2메모리 랭크 중 결함이 없는 제2메모리 랭크로 맵핑하기 위한 랭크 맵핑 회로를 포함하고,
상기 다수의 제1메모리 랭크 중 상기 결함인 제1메모리 랭크로는 클럭의 공급이 차단되는
메모리 모듈.
- 제 1항에 있어서,
상기 다수의 제2메모리 랭크 중 결함인 제2메모리 랭크로는 상기 클럭의 공급이 차단되는
메모리 모듈.
- 제 1항에 있어서,
상기 다수의 제2메모리 랭크 중 결함인 제2메모리 랭크와 상기 맵핑에 사용되지 않은 제2메모리 랭크로의 클럭 공급이 차단되는
메모리 모듈.
- 제 2항에 있어서,
상기 다수의 제1메모리 랭크 및 상기 다수의 제2메모리 랭크로 상기 클럭을 공급을 제어하기 위한 다수의 클럭 게이팅 회로
를 더 포함하는 메모리 모듈.
- 제 1항에 있어서,
상기 메모리 모듈의 전체 용량이 상기 제1그룹의 전체 용량과 동일하다는 정보를 메모리 콘트롤러로 제공하기 위한 SPD(Serial Presence Detect)를 더 포함하는
메모리 모듈.
- 제 1항에 있어서,
상기 랭크 맵핑 회로는 모듈 콘트롤러에 포함되고,
상기 모듈 콘트롤러는
상기 제1그룹 및 제2그룹으로 라이트될 라이트 데이터를 이용해 상기 라이트 데이터와 함께 저장될 에러 정정 코드를 생성하는 에러 정정 코드 생성 회로; 및
상기 제1그룹 및 제2그룹으로부터 리드된 에러 정정 코드를 이용해 상기 제1그룹 및 제2그룹으로부터 리드된 리드 데이터의 에러를 정정하는 에러 정정 회로를 더 포함하는
메모리 모듈.
- 제 6항에 있어서,
상기 모듈 콘트롤러는
상기 제1그룹 및 제2그룹으로 전달될 커맨드를 버퍼링하기 위한 커맨드 버퍼 회로; 및
상기 제1그룹 및 제2그룹으로 전달될 어드레스를 버퍼링하기 위한 어드레스 버퍼 회로를 더 포함하는
메모리 모듈.
- 제 6항에 있어서,
메모리 콘트롤러로부터 전달되는 라이트 데이터를 수신해 상기 모듈 콘트롤러로 전달하고, 상기 모듈 콘트롤러로부터 전달되는 리드 데이터를 수신해 상기 메모리 콘트롤러로 전달하기 위한 다수의 데이터 버퍼를 더 포함하는
메모리 모듈.
- 제 1항에 있어서,
상기 다수의 제1메모리 랭크 및 상기 다수의 제2메모리 랭크 각각은 다수의 메모리 장치를 포함하는
메모리 모듈.
- 제 9항에 있어서,
상기 다수의 메모리 장치 각각은 DRAM(Dynamic Random Access Memory)이고,
상기 메모리 모듈은 DIMM(Dual In-Line Memory Module) 타입인
메모리 모듈.
- 다수의 메모리 랭크; 및
랭크 결함 정보를 이용해 상기 다수의 메모리 랭크를 맵핑하기 위한 맵핑 회로를 포함하고,
상기 다수의 메모리 랭크 중 결함인 메모리 랭크로는 클럭의 공급이 차단되는
메모리 모듈.
- 제 11항에 있어서,
상기 맵핑 회로는
결함이 있는 하나 이상의 메모리 랭크 중 낮은 번호의 메모리 랭크일수록 결함이 없는 하나 이상의 메모리 랭크 중 높은 번호의 메모리 랭크로 맵핑되도록 동작하는
메모리 모듈.
- 제 11항에 있어서,
상기 다수의 메모리 랭크로 상기 클럭의 공급을 제어하기 위한 다수의 클럭 게이팅 회로
를 더 포함하는 클럭 게이팅 회로.
- 제 11항에 있어서,
상기 메모리 모듈의 전체 용량이 상기 다수의 메모리 랭크의 전체 용량 중 결함이 있는 메모리 랭크의 용량을 제외한 용량이라는 정보를 메모리 콘트롤러로 제공하기 위한 SPD(Serial Presence Detect)를 더 포함하는
메모리 모듈.
- 제 11항에 있어서,
상기 랭크 맵핑 회로는 모듈 콘트롤러에 포함되고,
상기 모듈 콘트롤러는
상기 다수의 메모리 랭크로 라이트될 라이트 데이터를 이용해 상기 라이트 데이터와 함께 저장될 에러 정정 코드를 생성하는 에러 정정 코드 생성 회로; 및
상기 다수의 메모리 랭크로부터 리드된 에러 정정 코드를 이용해 상기 다수의 메모리 랭크로부터 리드된 리드 데이터의 에러를 정정하는 에러 정정 회로를 더 포함하는
메모리 모듈.
- 제 15항에 있어서,
상기 모듈 콘트롤러는
상기 다수의 메모리 랭크로 전달될 커맨드를 버퍼링하기 위한 커맨드 버퍼 회로; 및
상기 다수의 메모리 랭크로 전달될 어드레스를 버퍼링하기 위한 어드레스 버퍼 회로를 더 포함하는
메모리 모듈.
- 제 11항에 있어서,
상기 다수의 랭크 각각은 다수의 메모리 장치를 포함하는
메모리 모듈.
- 제 17항에 있어서,
상기 다수의 메모리 장치 각각은 DRAM(Dynamic Random Access Memory)이고,
상기 메모리 모듈은 DIMM(Dual In-Line Memory Module) 타입인
메모리 모듈.
- 제 11항에 있어서,
상기 다수의 메모리 랭크는 제1그룹에 속하는 다수의 제1메모리 랭크와 제2그룹에 속하는 다수의 제2메모리 랭크로 나누어지고,
상기 맵핑 회로는 상기 다수의 제1메모리 랭크 중 결함인 메모리 랭크를 상기 다수의 제2메모리 랭크 중 결함이 없는 제2메모리 랭크로 맵핑하는
메모리 모듈.
- 제 19항에 있어서,
상기 다수의 제2메모리 랭크 중 상기 맵핑에 사용되지 않은 제2메모리 랭크로의 클럭 공급이 차단되는
메모리 모듈.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170121049A KR20190032793A (ko) | 2017-09-20 | 2017-09-20 | 메모리 모듈 |
US15/980,275 US10713137B2 (en) | 2017-09-20 | 2018-05-15 | Memory module |
TW107117225A TWI768047B (zh) | 2017-09-20 | 2018-05-21 | 記憶模組 |
CN201810906556.5A CN109522149B (zh) | 2017-09-20 | 2018-08-10 | 存储模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170121049A KR20190032793A (ko) | 2017-09-20 | 2017-09-20 | 메모리 모듈 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190032793A true KR20190032793A (ko) | 2019-03-28 |
Family
ID=65720291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170121049A KR20190032793A (ko) | 2017-09-20 | 2017-09-20 | 메모리 모듈 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10713137B2 (ko) |
KR (1) | KR20190032793A (ko) |
CN (1) | CN109522149B (ko) |
TW (1) | TWI768047B (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200015233A (ko) * | 2018-08-03 | 2020-02-12 | 삼성전자주식회사 | 불휘발성 메모리 장치들을 포함하는 반도체 메모리 모듈 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7949913B2 (en) * | 2007-08-14 | 2011-05-24 | Dell Products L.P. | Method for creating a memory defect map and optimizing performance using the memory defect map |
KR101842245B1 (ko) | 2011-07-25 | 2018-03-26 | 삼성전자주식회사 | 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법 |
US8819379B2 (en) * | 2011-11-15 | 2014-08-26 | Memory Technologies Llc | Allocating memory based on performance ranking |
US8724408B2 (en) * | 2011-11-29 | 2014-05-13 | Kingtiger Technology (Canada) Inc. | Systems and methods for testing and assembling memory modules |
US9158679B2 (en) * | 2012-10-10 | 2015-10-13 | Rambus Inc. | Data buffer with a strobe-based primary interface and a strobe-less secondary interface |
US9600189B2 (en) * | 2014-06-11 | 2017-03-21 | International Business Machines Corporation | Bank-level fault management in a memory system |
US9424173B2 (en) * | 2014-10-23 | 2016-08-23 | GlobalFoundries, Inc. | Performing secure address relocation within a multi-processor system sharing a same physical memory channel to external memory |
US9804920B2 (en) | 2014-11-20 | 2017-10-31 | Samsung Electronics Co., Ltd. | Rank and page remapping logic in a volatile memory |
US9626106B2 (en) * | 2015-01-13 | 2017-04-18 | Sandisk Technologies Llc | System and method for memory command queue management and configurable memory status checking |
KR102339780B1 (ko) * | 2015-10-29 | 2021-12-15 | 삼성전자주식회사 | 칩 아이디(id) 발생 회로를 갖는 반도체 장치 |
US9891864B2 (en) * | 2016-01-19 | 2018-02-13 | Micron Technology, Inc. | Non-volatile memory module architecture to support memory error correction |
-
2017
- 2017-09-20 KR KR1020170121049A patent/KR20190032793A/ko unknown
-
2018
- 2018-05-15 US US15/980,275 patent/US10713137B2/en active Active
- 2018-05-21 TW TW107117225A patent/TWI768047B/zh active
- 2018-08-10 CN CN201810906556.5A patent/CN109522149B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20190087292A1 (en) | 2019-03-21 |
CN109522149A (zh) | 2019-03-26 |
TW201923572A (zh) | 2019-06-16 |
US10713137B2 (en) | 2020-07-14 |
TWI768047B (zh) | 2022-06-21 |
CN109522149B (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347444B2 (en) | Memory device for controlling operations according to different access units of memory | |
US11579990B2 (en) | Intelligent post-packaging repair | |
US9659627B2 (en) | Semiconductor apparatus capable of preventing refresh error and memory system using the same | |
US20150286529A1 (en) | Memory device having controller with local memory | |
CN109767806A (zh) | 自适应错误检查与校正的半导体存储器装置和存储器*** | |
TWI652685B (zh) | 自我識別記憶體錯誤 | |
KR20180127707A (ko) | 메모리 모듈 및 이의 동작 방법 | |
CN212675921U (zh) | 存储器装置和存储器*** | |
US20180024950A1 (en) | Ring bus architecture for use in a memory module | |
KR20190086936A (ko) | 메모리 장치 | |
US10437306B2 (en) | Memory controller and memory system having the same | |
US11556440B2 (en) | Memory module, memory system including the same and operation method thereof | |
US9368236B2 (en) | Semiconductor memory apparatus and test method thereof | |
KR20190032793A (ko) | 메모리 모듈 | |
KR20170022633A (ko) | 메모리 시스템 | |
US20140181456A1 (en) | Memory, memory controller, memory system including the memory and the memory controller, and operating method of the memory system | |
CN116724355A (zh) | 存储单元的访问方法、修复方法、裸片和存储芯片 | |
EP4036917B1 (en) | Memory device, testing method therefor and usage method therefor, and memory system | |
US20240272836A1 (en) | Control circuit, memory device including the same, and method | |
CN114187954A (zh) | 存储器装置及其测试方法和使用方法、存储器*** |