KR20200081045A - 3차원 적층 메모리 장치 및 그 동작 방법 - Google Patents

3차원 적층 메모리 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20200081045A
KR20200081045A KR1020180171133A KR20180171133A KR20200081045A KR 20200081045 A KR20200081045 A KR 20200081045A KR 1020180171133 A KR1020180171133 A KR 1020180171133A KR 20180171133 A KR20180171133 A KR 20180171133A KR 20200081045 A KR20200081045 A KR 20200081045A
Authority
KR
South Korea
Prior art keywords
cache line
data stored
core die
memory device
memories
Prior art date
Application number
KR1020180171133A
Other languages
English (en)
Inventor
강신행
송준호
이승원
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180171133A priority Critical patent/KR20200081045A/ko
Priority to US16/456,094 priority patent/US11386975B2/en
Publication of KR20200081045A publication Critical patent/KR20200081045A/ko
Priority to US17/840,722 priority patent/US11830562B2/en

Links

Images

Classifications

    • 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/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding 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 cache or content addressable memories
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/3193Tester hardware, i.e. output processing circuits with comparison between actual response and known fault free response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/38Response verification devices
    • 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/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • 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/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/04Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
    • H01L25/065Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L25/0657Stacked arrangements of devices
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/12Structure, shape, material or disposition of the bump connectors prior to the connecting process
    • H01L2224/13Structure, shape, material or disposition of the bump connectors prior to the connecting process of an individual bump connector
    • H01L2224/13001Core members of the bump connector
    • H01L2224/1302Disposition
    • H01L2224/13025Disposition the bump connector being disposed on a via connection of the semiconductor or solid-state body
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L2224/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • H01L2224/161Disposition
    • H01L2224/16135Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip
    • H01L2224/16145Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked
    • H01L2224/16146Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked the bump connector connecting to a via connection in the semiconductor or solid-state body
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L2224/17Structure, shape, material or disposition of the bump connectors after the connecting process of a plurality of bump connectors
    • H01L2224/171Disposition
    • H01L2224/1718Disposition being disposed on at least two different sides of the body, e.g. dual array
    • H01L2224/17181On opposite sides of the body
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06513Bump or bump-like direct electrical connections between devices, e.g. flip-chip connection, solder bumps
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06541Conductive via connections through the device, e.g. vertical interconnects, through silicon via [TSV]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06555Geometry of the stack, e.g. form of the devices, geometry to facilitate stacking
    • H01L2225/06565Geometry of the stack, e.g. form of the devices, geometry to facilitate stacking the devices having the same size and there being no auxiliary carrier between the devices
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L24/00Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
    • H01L24/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L24/10Bump connectors ; Manufacturing methods related thereto
    • H01L24/12Structure, shape, material or disposition of the bump connectors prior to the connecting process
    • H01L24/13Structure, shape, material or disposition of the bump connectors prior to the connecting process of an individual bump connector
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L24/00Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
    • H01L24/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L24/10Bump connectors ; Manufacturing methods related thereto
    • H01L24/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L24/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L24/00Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
    • H01L24/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L24/10Bump connectors ; Manufacturing methods related thereto
    • H01L24/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L24/17Structure, shape, material or disposition of the bump connectors after the connecting process of a plurality of bump connectors
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/18Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/15Details of package parts other than the semiconductor or other solid state devices to be connected
    • H01L2924/151Die mounting substrate
    • H01L2924/1517Multilayer substrate
    • H01L2924/15192Resurf arrangement of the internal vias

Abstract

버퍼 다이 및 버퍼 다이 상에 적층되는 복수의 코어 다이 메모리들을 포함하는 3차원 적층 메모리 장치에서, 버퍼 다이는 여분 공간의 일부에 상기 복수의 코어 다이 메모리들의 캐시로 동작하는 제 1 메모리 모듈을 포함하고, 버퍼 다이의 여분 공간의 다른 일부에 복수의 코어 다이 메모리들에 오류가 발생한 경우, 오류가 발생한 영역을 대체하는 제 2 메모리 모듈을 포함할 수 있다.

Description

3차원 적층 메모리 장치 및 그 동작 방법{A three-dimensional stacked memory device and operating method for the same}
본 개시는 3차원 적층 메모리 장치 및 그 동작 방법에 관한 것이다.
메모리 장치, 예컨대 반도체 메모리 장치 등이 점점 고집적화 됨에 따라 통상적인 2차원 구조의 고집적화는 거의 한계에 다다르고 있다. 이러한 2차원 구조를 넘어서 3차원적으로 배열되는 메모리 셀들을 구비하는 3차원 적층 메모리 장치들이 제안되고 있다.
다만, 3차원 적층 메모리 장치는 2차원 구조의 메모리 장치보다 복잡한 구조를 가지며 설계상의 어려움이 있는 바, 고신뢰성을 갖춘 3차원 적층 메모리 장치가 요구될 수 있다.
다양한 실시예들은 3차원 적층 메모리 장치 및 그 동작 방법을 제공하는데 있다. 본 개시가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 기술적 과제를 해결하기 위한 수단으로서, 일 측면에 따른 3차원 적층 메모리 장치는, 버퍼 다이(buffer die); 및 상기 버퍼 다이 상에 적층되는 복수의 코어 다이(core die) 메모리들을 포함하고, 상기 버퍼 다이는, 상기 버퍼 다이의 여분 공간의 일부에 배치되어 상기 복수의 코어 다이 메모리들의 캐시(cache)로 동작하는 제 1 메모리 모듈; 상기 제 1 메모리 모듈을 구성하는 적어도 하나의 캐시라인(cacheline)에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 캐시라인에 대응되는 영역에 저장된 데이터 간의 비교 결과에 기초하여 상기 영역의 오류(fault)를 검출하는 컨트롤러; 및 상기 버퍼 다이의 여분 공간의 다른 일부에 배치되어, 상기 영역에 오류가 검출되는 경우 상기 영역을 대체하는 제 2 메모리 모듈을 포함할 수 있다.
또한, 다른 측면에 따른 복수의 코어 다이(core die) 메모리들 및 버퍼 다이(buffer die)를 포함하는 3차원 적층 메모리 장치의 제어 방법은, 제 1 메모리 모듈을 구성하는 적어도 하나의 캐시라인(cacheline)에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 캐시라인에 대응되는 영역에 저장된 데이터 간의 비교 결과를 수신하는 단계; 상기 비교 결과에 기초하여 상기 영역의 오류(fault)를 검출하는 단계; 및 버퍼 다이의 여분 공간의 다른 일부에 배치되어, 상기 영역에 오류가 검출되는 경우 제 2 메모리 모듈이 상기 영역을 대체하도록 제어하는 단계를 포함하고, 제 1 메모리 모듈은 상기 버퍼 다이의 여분 공간의 일부에 배치되어 상기 복수의 코어 다이 메모리들의 캐시로 동작할 수 있다.
또한, 또 다른 측면에 따르면, 전술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
도 1은 3차원 적층 메모리 장치 및 호스트 프로세서를 포함하는 전자 시스템 구성의 일 예를 나타내는 도면이다.
도 2는 3차원 적층 메모리 장치의 구성의 일 예를 나타내는 블록도이다.
도 3은 3차원 적층 메모리 장치 및 호스트 프로세서를 포함하는 시스템에서 각 구성 요소들의 상호 동작 방식을 나타내는 도면이다.
도 4a, 도 4b 및 도 4c는 캐시의 라이트 백 동작의 일 예를 나타내는 도면이다.
도 5는 데이터 독출 명령에 따른 3차원 적층 메모리 장치의 동작 과정 및 오류 검출 과정의 일 예를 설명하기 위한 흐름도이다.
도 6은 데이터 기입 명령에 따른 3차원 적층 메모리 장치의 동작 과정 및 오류 검출 과정의 일 예를 설명하기 위한 흐름도이다.
도 7은 병렬 비트 테스트 모듈에서 비교를 수행하는 일 예를 나타내는 도면이다.
도 8은 3차원 적층 메모리 장치의 제어 방법의 일 예를 설명하기 위한 흐름도이다.
본 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 기술분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 임의로 선정된 용어도 있으며, 이 경우 해당 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들의 전반에 걸친 내용을 토대로 정의되어야 한다.
실시예들에 대한 설명들에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 구성요소를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 실시예들에서 사용되는 "구성된다" 또는 "포함한다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 도는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
하기 실시예들에 대한 설명은 권리범위를 제한하는 것으로 해석되지 말아야 하며, 해당 기술분야의 당업자가 용이하게 유추할 수 있는 것은 실시예들의 권리범위에 속하는 것으로 해석되어야 할 것이다. 이하 첨부된 도면들을 참조하면서 오로지 예시를 위한 실시예들을 상세히 설명하기로 한다.
도 1은 3차원 적층 메모리 장치 및 호스트 프로세서를 포함하는 전자 시스템 구성의 일 예를 나타내는 도면이다.
도 1을 참조하면, 전자 시스템(100)은 3차원 적층 메모리 장치(110) 및 호스트 프로세서(160)를 포함할 수 있다. 3차원 적층 메모리 장치(110)는 버퍼 다이(buffer die)(120), 버퍼 다이(120) 상에 적층되는 복수의 코어 다이(core die) 메모리들(130) 및 인터포저(interposer)(130) 및 도전 수단들(150)을 포함할 수 있다. 3차원 적층 메모리 장치(110)는 인터포저(140)를 통해 호스트 프로세서(160)와 연결될 수 있다. 다만, 도 1에 도시된 3차원 적층 메모리 장치(110)에는 본 실시예들와 관련된 구성요소들만이 도시되어 있다. 따라서, 3차원 적층 메모리 장치(110)에는 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당업자에게 자명하다. 한편, 도 1에는 버퍼 다이(120) 상에 4개의 코어 다이 메모리들(130)만이 적층된 것으로 도시되어 있으나, 적층되는 코어 다이 메모리들(130)의 개수는 이에 한정되는 것은 아니다.
3차원 적층 메모리 장치(110)에서, 버퍼 다이(120) 및 복수의 코어 다이 메모리들(130)은 인터포저(140) 상에 적층될 수 있다. 인터포저(140)는 다양한 칩 간의 전기적 연결을 제공하는 중간 매체로서, 실리콘 인터포저에 해당할 수 있다.
버퍼 다이(120)는 호스트 프로세서(160)로부터 수신된 데이터 신호, 커맨드 신호, 어드레스 신호 및 칩 선택 신호 등을 복수의 코어 다이 메모리들(130)에 제공하거나 복수의 코어 다이 메모리들(130)로부터 수신된 데이터 신호를 호스트 프로세서(160)에 제공하기 위한 인터페이스 동작을 수행할 수 있다. 또한, 버퍼 다이(120)는 복수의 코어 다이 메모리들(130)에 대한 테스트 동작을 수행하는 회로를 포함할 수 있다.
복수의 코어 다이 메모리들(130)은 호스트 프로세서(160)에서 처리된 데이터들 또는 처리될 데이터들을 저장할 수 있다. 또한, 복수의 코어 다이 메모리들(130)은 호스트 프로세서(160)로부터 요청되는 데이터를 독출 또는 기입할 수 있다. 복수의 코어 다이 메모리들(130)은 각각은 DRAM(dynamic random access memory)일 수 있다. 다만, 이에 제한되는 것은 아니며, 복수의 코어 다이 메모리들(130)은 각각은 SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리일 수도 있다.
3차원 적층 메모리 장치(110)는 버퍼 다이(120) 및 복수의 코어 다이 메모리들(130) 각각이 적층되어 패키징(Packaging)된 것일 수 있다. 한편, 버퍼 다이(120)에 적층되는 복수의 코어 다이 메모리들(130)은 버퍼 다이(120)와 전기적으로 연결되며, 이를 위하여 3차원 적층 메모리 장치(110) 내에는 복수의 코어 다이 메모리들(130) 각각을 서로 연결하는 도전 수단들(150)을 포함할 수 있다.
예를 들어, 3차원 적층 메모리 장치(110)에는 도전 수단들(150)으로써 스루 실리콘 비아(Through Silicon Via, TSV)가 적용될 수 있다. TSV를 복수의 코어 다이 메모리들(130) 사이의 도전 수단으로 사용하기 위하여, 3차원 적층 메모리 장치(110)내의 복수의 코어 다이 메모리들(130)은 그 내부에 수직으로 관통하여 형성되는 적어도 하나의 비아(via)를 포함할 수 있다.
호스트 프로세서(160)는 시스템의 전반적인 동작을 제어하고, 논리 연산을 수행할 수 있다. 예를 들어 호스트 프로세서(160)는 시스템-온-칩(SoC, System-on-chip)으로 구성될 수 있다. 호스트 프로세서(160)는 중앙 처리 장치(Centrol Processing Unit, CPU) 또는 지능 소자(Intellectual Properties, IP)를 포함할 수 있다. CPU는 3차원 적층 메모리 장치(110)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. IP는 예를 들면, GPU(Graphic Processing Unit), MFC(Multi-Format Codec), 비디오 모듈(예컨대, 카메라 인터페이스(Camera Interface), JPEG(Joint Photographic Experts Group) 프로세서, 비디오 프로세서(Video Processor), 또는 믹서(Mixer), 등), 오디오 시스템(Audio System), 드라이버(Driver), 디스플레이 드라이버(Display Driver), 휘발성 메모리(Volatile Memory Device), 비휘발성 메모리(Non-volatile Memory), 메모리 컨트롤러(Memory Controller), 캐시 메모리(Cache Memory), 시리얼 포트(Serial Port), 시스템 타이머(SystemTimer), 워치독타이머(Watch Dog Timer) 또는 아날로그-디지털 컨버터(Analog-to-Digital Converter) 등을 포함할 수 있다.
한편, 3차원 적층 메모리 장치(110)는 인터포저(140)에 의해 호스트 프로세서(160)와 결합되어 있으므로, 복수의 코어 다이 메모리들(130)에 일부 오류가 발생한 경우 보드 전체를 폐기해야 하는 문제점이 발생할 수 있다. 따라서, 이러한 문제점을 해결하기 위해, 버퍼 다이(120)에 존재하는 여분 공간에 별도의 메모리 모듈을 추가할 수 있다. 구체적으로, 복수의 코어 다이 메모리들(130)의 일부 영역에 오류가 발생한 경우, 추가한 메모리 모듈은 복수의 코어 다이 메모리들(130)에서 오류가 발생한 영역을 대체하도록 제어될 수 있다.
이와 같은 방식을 적용하는 경우, 버퍼 다이의 여분 공간을 활용함과 동시에 복수의 코어 다이 메모리들(130)에 일부 오류가 발생한 경우 보드 전체를 폐기해야 하는 문제점을 해결할 수 있다. 이하 도 2 내지 도 8을 참조하여 복수의 코어 다이 메모리들(130)의 일부 영역에 오류가 발생하였는지 여부를 검출하는 과정 및 버퍼 다이(120)에 존재하는 여분 공간을 활용하여 오류가 발생된 영역을 대체하는 과정에 대해 보다 상세히 설명한다.
도 2는 3차원 적층 메모리 장치의 구성의 일 예를 나타내는 블록도이다.
도 2를 참조하면, 3차원 적층 메모리 장치(200)는 버퍼 다이(210) 및 복수의 코어 다이 메모리들(220)을 포함할 수 있다. 복수의 코어 다이 메모리들(220)은 버퍼 다이(210) 상에 적층될 수 있다. 버퍼 다이(210)는 여분 공간에 제 1 메모리 모듈(230), 제 2 메모리 모듈(240) 및 컨트롤러(250)를 더 포함할 수 있다. 한편, 도 2 에서 도 1과 중복되는 설명은 생략하기로 한다.
버퍼 다이(210)는 여분 공간의 일부에 복수의 코어 다이 메모리들(220)의 캐시(cache)로 동작하는 제 1 메모리 모듈(230)을 포함할 수 있다.
캐시는 복수의 코어 다이 메모리들(220)에 저장된 데이터의 적어도 일부를 임시로 저장하는 메모리일 수 있다. 일반적으로 3차원 적층 메모리 장치(200)와 연결된 호스트 프로세서는 복수의 코어 다이 메모리들(220)에 저장된 명령어나 데이터를 가져와서 처리한다. 복수의 코어 다이 메모리들(220)의 처리 속도는 호스트 프로세서에 비해서 매우 느리기 때문에 동작 속도를 개선하기 위해, 복수의 코어 다이 메모리들(220)보다 용량은 작지만 처리 속도가 매우 빠른 캐시로서, 제 1 메모리 모듈(230)이 이용될 수 있다.
제 1 메모리 모듈(230)은 3차원 적층 메모리 장치(200)와 연결된 호스트 프로세서가 최근에 엑세스(access)한 데이터를 저장할 수 있다. 제 1 메모리 모듈(230)을 이용하면, 호스트 프로세서에 의해 요청된 데이터가 제 1 메모리 모듈(230)에 존재하는 경우에, 복수의 코어 다이 메모리들(220)을 엑세스하지 않고 제 1 메모리 모듈(230)이 엑세스되므로, 데이터의 처리 속도가 증가될 수 있다.
또한, 버퍼 다이(210)는 컨트롤러(250)를 포함할 수 있다. 구체적으로, 컨트롤러(250)는 메모리 컨트롤러로서, 제 1 메모리 모듈(230)을 제어하는 제 1 컨트롤러(260) 및 제 2 메모리 모듈(240)을 제어하는 제 2 컨트롤러(270)를 포함할 수 있다. 그러나, 이에 제한되는 것은 아니며 컨트롤러(250)는 제 1 메모리 모듈(230) 및 제 2 메모리 모듈(240)을 동시에 제어하는 하나의 메모리 컨트롤러에 해당할 수도 있다.
제 1 컨트롤러(260)는 제 1 메모리 모듈(230)을 제어하는 캐시 컨트롤러에 해당할 수 있다. 제 1 컨트롤러(260)는 호스트 프로세서가 요청하는 데이터가 제 1 메모리 모듈(230)을 구성하는 적어도 하나의 캐시라인(cacheline)에 존재하는 지 여부를 검출할 수 있다. 캐시라인은 복수의 코어 다이 메모리들(220)로부터 로딩되는 데이터의 단위를 의미한다.
제 1 컨트롤러(260)는 호스트 프로세서가 요청하는 데이터가 제 1 메모리 모듈(230)을 구성하는 캐시라인에 존재하지 않는 경우, 호스트 프로세서가 요청하는 데이터를 저장하기 위해 교체될 희생 캐시라인을 결정할 수 있다. 예를 들어, 제 1 컨트롤러(260)는 캐시를 구성하는 캐시라인들 중 희생 캐시라인을 선택할 수 있고, 희생 캐시라인에 대응되는 영역에 호스트 프로세서가 요청하는 데이터를 새롭게 저장할 수 있다.
한편, 희생 캐시라인에 저장된 데이터는 더티(dirty) 비트를 포함할 수 있다. 더티 비트의 값이 클린 상태를 가리키는 경우, 희생 캐시라인에 저장된 데이터와 복수의 코어 다이 메모리들(220)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터는 일치해야 한다. 일치하지 않는 경우, 복수의 코어 다이 메모리들(220)에서 희생 캐시라인에 대응되는 영역에 오류가 발생한 것으로 볼 수 있다. 이를 이용하여, 희생 캐시라인에 저장된 데이터의 더티 비트의 값이 클린 상태를 가리키는 경우, 희생 캐시라인에 저장된 데이터와 복수의 코어 다이 메모리들(220)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터 간 비교가 수행되어, 복수의 코어 다이 메모리들(220)에 오류가 발생하였는지 여부가 판단될 수 있다.
제 2 컨트롤러(270)는 제 2 메모리 모듈(240)을 제어할 수 있다. 제 2 컨트롤러(270)는 제 2 메모리 모듈(240)을 이용하여, 3차원 적층 메모리 장치(200)의 신뢰성/가용성/보수성(Reliability/ Availability/ Serviceability, RAS) 기능을 향상시킬 수 있다. 예를 들어, 제 2 컨트롤러(270)는 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들(220)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터 간의 비교 결과에 기초하여, 복수의 코어 다이 메모리들(220)에서 희생 캐시라인에 대응되는 영역의 오류를 검출할 수 있다.
제 2 컨트롤러(270)는 희생 캐시라인에 저장된 데이터의 더티 비트의 값이 클린 상태를 가리키는 상황에서, 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들(220)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터가 일치하지 않는다는 비교 결과를 수신하는 경우, 복수의 코어 다이 메모리들(220)에서 희생 캐시라인에 대응되는 영역에 오류가 발생되었다고 결정할 수 있다. 이러한 경우, 제 2 컨트롤러(270)는 호스트 프로세서가 복수의 코어 다이 메모리들(220)에서 희생 캐시라인에 대응되는 영역에 엑세스하려는 경우, 제 2 메모리 모듈(240)을 엑세스하도록 제어할 수 있다.
제 2 메모리 모듈(240)은 버퍼 다이(210)의 여분 공간의 다른 일부에 배치될 수 있다. 제 2 메모리 모듈(240)은 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리일 수 있으나, 이에 한정되지 않는다.
제 2 메모리 모듈(240)은 복수의 코어 다이 메모리들(220)에서 오류가 검출된 영역을 대체할 수 있다. 구체적으로, 복수의 코어 다이 메모리들(220)에서 제 1 메모리 모듈(230)을 구성하는 적어도 하나의 캐시라인에 대응되는 영역에 오류가 검출된 경우, 제 2 메모리 모듈(240)은 오류가 검출된 영역을 대체하여 동작할 수 있다. 상술한 바와 같이. 제 2 컨트롤러(270)는 호스트 프로세서가 오류가 검출된 영역에 엑세스하려는 경우, 해당 영역 대신 제 2 메모리 모듈(240)을 엑세스하도록 제어할 수 있고, 이에 따라 제 2 메모리 모듈(240)이 복수의 코어 다이 메모리들(220)에서 오류가 검출된 영역을 대체할 수 있다.
도 3은 3차원 적층 메모리 장치 및 호스트 프로세서를 포함하는 시스템에서 각 구성 요소들의 상호 동작 방식을 나타내는 도면이다.
도 3을 참조하면, 3차원 적층 메모리(300)는 버퍼 다이(310) 및 코어 다이 메모리(320)를 포함할 수 있고, 호스트 프로세서(330)는 버퍼 다이(310)를 통해 코어 다이 메모리(320)와 연결될 수 있다. 버퍼 다이(310)와 코어 다이 메모리(320)는 도전 수단으로 연결될 수 있으며, 도전 수단은 예를 들어 스루 실리콘 비아(TSV)일 수 있다.
도 3에는 설명의 편의를 위해 1개의 코어 다이 메모리(320)만이 도시되어 있으나, 3차원 적층 메모리(300)가 더 많은 수의 코어 다이 메모리들을 포함할 수 있음은 해당 기술분야의 통상의 기술자라면 쉽게 이해할 것이다. 한편, 도 3에서 도 1 및 도 2와 중복되는 설명은 생략하기로 한다.
버퍼 다이(310)는 기본적으로 PHY(physical interface) 회로 및 MBIST(mmory built-in self-test) 회로를 포함할 수 있다. PHY 회로는 호스트 프로세서 또는 코어 다이 메모리 등으로부터 신호를 받아들여서 이를 해당 시스템 내부에서 사용할 수 있는 신호로 변경하고, 변조된 데이터를 다시 복조하여 본래의 패킷 형태로 해당 시스템에 전송할 수 있다. MBIST 회로는 3차원 적층 메모리(300)가 원하는 대로 동작을 하는지 여부를 확인할 수 있는 자체 테스트 회로일 수 있다.
버퍼 다이는 상술한 회로들을 배치하고 남는 여분 공간에 제 1 메모리 모듈(340), 제 2 메모리 모듈(350), 제 1 컨트롤러(360) 및 제 2 컨트롤러(370)를 더 포함할 수 있다. 한편, 버퍼 다이(310)에는 상술한 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당업자에게 자명하다.
제 1 메모리 모듈(340)은 예를 들어 코어 다이 메모리(320)의 캐시로 동작할 수 있으며, 제 1 컨트롤러(360)는 캐시 컨트롤러에 해당할 수 있다. 제 1 컨트롤러(360)는 호스트 프로세서(330)로부터 데이터의 독출 또는 기입 명령이 있는 경우, 호스트 프로세서(330)가 요청한 데이터가 제 1 메모리 모듈(340)을 구성하는 적어도 하나의 캐시라인에 존재하는 지 여부를 검출할 수 있다.
호스트 프로세서(330)가 요청한 데이터가 제 1 메모리 모듈(340)을 구성하는 캐시라인에 존재하는 경우(캐시 히트, cache hit)에는, 제 1 컨트롤러(360)는 호스트 프로세서(330)가 요청한 데이터를 독출하여 호스트 프로세서(330)로 전달하거나 호스트 프로세서(330)가 요청한 데이터를 캐시라인에 기입할 수 있다.
호스트 프로세서(330)가 요청한 데이터가 제 1 메모리 모듈(340)을 구성하는 캐시라인에 존재하지 않는 경우(캐시 미스, cache miss)에는, 제 1 컨트롤러(360)는 캐시를 구성하는 캐시라인들 중 희생 캐시라인을 결정할 수 있다. 제 1 컨트롤러(360)는 희생 캐시라인에 대응되는 영역에 호스트 프로세서(330)가 요청하는 데이터를 새롭게 저장할 수 있다.
이 때, 제 1 컨트롤러(360)는 희생 캐시라인에 저장된 데이터의 더티 비트의 값을 확인하여 희생 캐시라인에 저장된 데이터를, 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터에 라이트 백(write back)할지 여부를 결정할 수 있다. 캐시의 라이트 백 동작에 대해서는 이하 도 4를 참조하여 설명한다.
도 4a, 도 4b 및 도 4c는 캐시의 라이트 백 동작의 일 예를 나타내는 도면이다.
도 4a를 참조하면, 캐시(400)를 구성하는 캐시라인(410)은 유효(Valid) 비트, 더티(Dirty) 비트, 태그(Tag) 필드 및 데이터(Data) 필드를 포함할 수 있다.
유효 비트는 캐시라인(410)의 데이터가 유효한지 여부를 나타낼 수 있다. 예를 들어, 도 4a에 도시된 바와 같이, 유효 비트가 1인 경우는 유효한 캐시라인(410)임을 나타낼 수 있고, 유효 비트가 0인 경우는 유효한 캐시라인(410)이 아님을 나타낼 수 있다. 다만, 반드시 이에 제한되는 것은 아니고, 유효 비트가 1인 경우에 유효한 캐시라인(410)이 아님을 나타내고, 유효 비트가 0인 경우에 유효한 캐시라인(410)임을 나타낼 수도 있다.
더티 비트는 캐시라인(410)의 데이터의 갱신 여부를 나타낼 수 있다. 더티 비트의 값이 1인 경우에는 캐시라인(410)의 데이터가 갱신되었음을 나타내고, 더티 비트의 값이 0인 경우에는 캐시라인(410)의 데이터가 갱신되지 않았음을 나타낼 수 있다. 다만, 반드시 이에 제한되는 것은 아니고, 더티 비트가 1인 경우에 데이터가 갱신되지 않았음을 나타내고, 더티 비트가 0인 경우에 데이터가 갱신되었음을 나타낼 수도 있다.
태그 필드는 캐시 히트 또는 캐시 미스 여부를 판단하기 위한 것으로, 제 1 컨트롤러(360)는 호스트 프로세서(330)로부터 요청된 데이터의 주소의 색인 값(index)에 대응되는 캐시라인들을 한정하고, 한정된 캐시라인들 중 특정 캐시라인(410)의 태그 필드의 값과 호스트 프로세서(330)로부터 요청된 데이터의 주소의 태그 값이 일치하는 경우, 해당 캐시라인에서 캐시 히트가 발생한 것으로 판단할 수 있다. 반면, 한정된 모든 캐시라인들의 태그 필드의 값과 호스트 프로세서(330)로부터 요청된 데이터의 주소의 태그 값이 일치하지 않는 경우 캐시 미스로 판단할 수 있다. 데이터 필드는 캐시라인(410)의 데이터를 저장하는 영역에 해당할 수 있다.
호스트 프로세서(430)가 특정한 작업을 수행함에 따라 새롭게 생성된 데이터를 메모리에 저장하려는 경우, 새롭게 생성된 데이터는 캐시(400)에만 저장될 수 있고, 캐시(400)는 코어 다이 메모리(420)에 새롭게 생성된 데이터를 나중에 저장하는 라이트 백(write back) 방식으로 동작할 수 있다.
라이트 백 동작 방식에서, 캐시 히트인 경우에는, 새롭게 생성된 데이터를 코어 다이 메모리(420)에 저장하지 않고 캐시(400)에만 저장할 수 있다. 캐시 미스인 경우에도 마찬가지로, 희생 캐시라인을 결정함과 동시에 새롭게 생성된 데이터를 코어 다이 메모리(420)에 저장하지 않고 캐시(400)에만 저장할 수 있다. 이 때, 희생 캐시라인에 저장된 데이터가 갱신된 적이 있는 경우, 즉 더티 비트의 값이 1인 경우에는 갱신된 데이터를 코어 다이 메모리(420)에서 희생 캐시라인에 대응되는 영역에 오버 라이트(overwrite)하여 저장할 수 있다.
예를 들어 도 4a를 참조하면, 캐시라인(410)에 데이터가 0x1234가 저장되어 있는 경우, 저장된 데이터가 갱신된 적이 없다면 캐시라인(410)에 저장된 데이터와 코어 다이 메모리(4010)에 저장된 데이터는 0x1234로 일치할 수 있다.
다만, 도 4b를 참조하면, 데이터 0x1234가 0xabcd로 갱신되어 호스트 프로세서로부터 0xabcd 기입 명령이 있는 경우, 캐시라인(410)에 저장된 데이터 0x1234는 0xabcd로 오버 라이트 되어, 캐시(400)에 데이터 0xabcd가 저장될 수 있다. 따라서, 캐시라인(410)에 저장된 데이터는 갱신되었으므로, 캐시라인(410)의 더티 비트의 값이 1로 바뀌게 된다. 라이트 백 동작 방식에서는 갱신된 데이터가 코어 다이 메모리(420)에 바로 기입되지 않으므로, 코어 다이 메모리(420)에는 여전히 데이터 0x1234가 저장되어 있다.
이 때, 도 4c를 참조하면, 호스트 프로세서로부터 새롭게 생성된 데이터를 저장하기 위해 데이터 0xabcd가 저장된 캐시라인(410)이 새롭게 생성된 데이터를 저장하기 위해 교체될 희생 캐시라인으로 결정되는 경우, 제 1 컨트롤러(360)는 코어 다이 메모리(420)에 데이터 0xabcd를 오버라이트할 수 있다. 이와 같은 라이트 백 방식으로, 코어 다이 메모리(420)에의 접근을 최소화할 수 있다.
다시 도 3으로 돌아와서, 희생 캐시라인에 저장된 데이터의 더티 비트의 값이 더티 상태를 가리키는 경우에, 제 1 컨트롤러(360)는 라이트 백 동작을 수행할 수 있다. 예를 들어, 제 1 컨트롤러(360)는 는 희생 캐시라인에 저장된 데이터를 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 오버 라이트(overwrite)할 수 있다.
희생 캐시라인에 저장된 데이터의 더티 비트의 값이 클린 상태를 가리키는 경우에는, 제 1 컨트롤러(360)는 라이트 백 동작을 수행하지 않고 희생 캐시라인에 대응되는 영역에 호스트 프로세서가 요청하는 데이터를 새롭게 저장할 수 있다.
한편, 더티 비트의 값이 클린 상태라는 것은 희생 캐시라인에 저장된 데이터의 갱신이 이루어지지 않았음을 의미하므로, 희생 캐시라인에 저장된 데이터와 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터는 일치해야 한다. 다만, 일치하지 않는다면, 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 오류가 있다고 예측 가능하다.
병렬 비트 테스트 모듈(parallel bit test module)(380)은, 희생 캐시라인에 저장된 데이터의 더티 비트의 값이 클린 상태를 가리키는 경우, 희생 캐시라인에 저장된 데이터와 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터를 비교할 수 있다. 병렬 비트 테스트 모듈(380)은 병렬 비트 비교(parallel bit comparison) 방식으로 비교를 수행할 수 있다. 또한, 병렬 비트 테스트 모듈(380)은 희생 캐시라인에 저장된 데이터와 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터를 비교한 결과를 제 2 컨트롤러(370)로 송신할 수 있다. 한편, 병렬 비트 테스트 모듈(380)은 코어 다이 메모리(320) 상에 배치될 수 있으나, 이에 제한되는 것은 아니다. 병렬 비트 테스트 모듈(380)에 관하여는 도 7을 참조하여 상세하게 설명할 것이다.
제 2 컨트롤러(370)는 병렬 비트 테스트 모듈(380)로부터, 희생 캐시라인에 저장된 데이터와 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터가 일치하지 않는다는 비교 결과를 수신하는 경우, 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 오류(fault)가 발생되었다고 결정할 수 있다. 이러한 경우, 제 2 컨트롤러(370)는 제 2 메모리 모듈(350)이 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역을 대체하도록 제어할 수 있다. 또한, 제 2 컨트롤러(370)는 병렬 비트 테스트 모듈(380)로부터, 희생 캐시라인에 저장된 데이터와 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터가 일치한다는 비교 결과를 수신하는 경우에는, 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 오류가 발생하지 않았다고 결정할 수 있다.
구체적으로, 제 2 컨트롤러(370)는 호스트 프로세서(330)가 코어 다이 메모리(320)에서 희생 캐시라인에 대응되는 영역에 엑세스 하려는 경우, 해당 영역 대신 제 2 메모리 모듈(350)을 엑세스하도록 제어할 수 있다. 따라서, 코어 다이 메모리(320)의 일부에 오류가 발생하더라도 버퍼 다이(310)의 여분 공간에 배치된 제 2 메모리 모듈(350)을 이용하여 대체할 수 있으므로, 메모리 전체가 교체될 필요가 없고, 3차원 적층 메모리(300)의 신뢰성이 향상될 수 있다. 이와 같은 방식은, 오류 검출 코드를 사용하거나 코어 다이 메모리(320)에 저장된 데이터의 복사본을 저장해두는 방식에 비해 오류 검출을 위한 오버헤드(overhead)를 최소화할 수 있다.
한편, 제 2 컨트롤러(370)는 제 2 메모리 모듈(350)의 모든 영역이 코어 다이 메모리(320)에서 오류가 검출된 영역들을 대체하도록 동작하는 경우에는, 오류가 검출된 영역들에서 하드 에러(hard error)가 발생하였는지 여부를 결정할 수 있다. 여기서 하드 에러는 소프트 에러와 대비되는 개념으로서 복구가 불가능한 에러를 의미한다. 제 2 컨트롤러(370)는 제 2 메모리 모듈(350)이 오류가 검출된 영역들 중 하드 에러가 발생하지 않은 영역들을 대체하여 동작하지 않도록 제어할 수 있다. 따라서, 코어 다이 메모리(320)에서 더 이상 오류가 검출된 영역을 대체할 제 2 메모리 모듈(350)의 공간이 없는 경우라도, 하드 에러가 발생하지 않은 영역들을 대체하는 제 2 메모리 모듈의 공간은 다시 여분 공간이 될 수 있는 바, 제 2 메모리 모듈(350)을 효율적으로 활용할 수 있다.
도 5는 데이터 독출 명령에 따른 3차원 적층 메모리 장치의 동작 과정 및 오류 검출 과정의 일 예를 설명하기 위한 흐름도이다.
510 단계에서, 3차원 적층 메모리 장치는 호스트 프로세서로부터 데이터 독출 명령을 수신할 수 있다. 데이터 독출 명령은 데이터의 주소의 색인 값과 태그 값을 포함할 수 있다.
520 단계에서, 3차원 적층 메모리 장치는 캐시히트인지 여부를 판단할 수 있다. 구체적으로, 3차원 적층 메모리 장치는 호스트 프로세서로부터 요청된 데이터의 주소의 색인 값을 통해 캐시라인들을 한정하고, 한정된 캐시라인들 중 특정 캐시라인의 태그 필드의 값과 호스트 프로세서로부터 요청된 데이터의 주소의 태그 값이 일치하는 경우 캐시히트로 판단하고, 일치하지 않는 경우 캐시미스로 판단할 수 있다. 캐시히트인 경우, 530 단계로 진행된다. 하지만, 캐시 미스인 경우, 540 단계로 진행한다.
530 단계에서, 3차원 적층 메모리 장치는 캐시로부터 요청된 데이터를 독출할 수 있다. 예를 들어, 3차원 적층 메모리 장치는 호스트 프로세서로부터 요청된 데이터의 주소의 색인 값을 통해 캐시라인들을 한정하고, 한정된 캐시라인들 중 호스트 프로세서로부터 요청된 데이터의 주소의 태그 값과 일치하는 태그 필드의 값을 갖는 캐시라인의 데이터를 독출하고, 이를 호스트 프로세서에 전달할 수 있다.
540 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인을 결정할 수 있다. 3차원 적층 메모리 장치는 호스트 프로세서로부터 요청된 데이터를 저장하기 위해 교체될 희생 캐시라인을 결정할 수 있다.
550 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인이 더티 상태인지 판단할 수 있다. 희생 캐시라인에 저장된 데이터는 더티 비트를 포함하며, 더티 비트의 값이 1인 경우 더티 상태를 가리킬 수 있으며 더티 비트의 값이 0인 경우 클린 상태를 가리킬 수 있다. 희생 캐시라인이 더티 상태인 경우 희생 캐시라인에 저장된 데이터의 갱신이 이루어졌음을 나타낼 수 있고, 희생 캐시라인인 클린 상태인 경우는 희생 캐시라인에 저장된 데이터의 갱신이 이루어지지 않았음을 나타낼 수 있다. 클린 상태인 경우, 560단계로 진행된다. 하지만, 더티 상태인 경우, 570 단계로 진행한다.
560 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인이 클린 상태임을 판단한 경우, 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터 간 비교를 수행할 수 있다. 더티 비트의 값이 클린 상태라는 것은 희생 캐시라인에 저장된 데이터의 갱신이 이루어지지 않았음을 의미하므로, 희생 캐시라인에 저장된 데이터와 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터는 일치해야 한다. 일치하지 않는다면, 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 오류가 있다고 예측 가능하다.
561 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터가 일치하는 지 여부를 판단할 수 있다, 일치하는 경우, 562 단계로 진행된다. 하지만, 일치하지 않는 경우, 563 단계로 진행한다.
562 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터가 일치하는 경우, 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 오류가 발생하지 않았다고 결정할 수 있다.
563 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터가 일치하지 않는 경우, 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 오류가 발생하였다고 결정할 수 있다.
570 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인이 더티 상태임을 판단한 경우, 희생 캐시라인에 저장된 데이터를 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 오버라이트할 수 있다.
580 단계에서, 3차원 적층 메모리 장치는 복수의 코어 다이 메모리들로부터 호스트 프로세서로부터 요청된 데이터를 독출할 수 있다.
590 단계에서, 데이터 독출 동작이 완료될 수 있다.
도 6은 데이터 기입 명령에 따른 3차원 적층 메모리 장치의 동작 과정 및 오류 검출 과정의 일 예를 설명하기 위한 흐름도이다.
600 단계에서, 3차원 적층 메모리 장치는 호스트 프로세서로부터 데이터 기입 명령을 수신할 수 있다. 데이터 기입 명령은 데이터의 주소의 색인 값과 태그 값을 포함할 수 있다.
610 단계에서, 3차원 적층 메모리 장치는 캐시히트인지 여부를 판단할 수 있다. 구체적으로, 3차원 적층 메모리 장치는 호스트 프로세서로부터 요청된 데이터의 주소의 색인 값을 통해 캐시라인들을 한정하고, 한정된 캐시라인들 중 특정 캐시라인의 태그 필드의 값과 호스트 프로세서로부터 요청된 데이터의 주소의 태그 값이 일치하는 경우 캐시히트로 판단하고, 일치하지 않는 경우 캐시미스로 판단할 수 있다. 캐시히트인 경우, 620 단계로 진행된다. 하지만, 캐시 미스인 경우, 630 단계로 진행한다.
620 단계에서, 3차원 적층 메모리 장치는 캐시에 요청된 데이터를 기입할 수 있다.
630 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인을 결정할 수 있다. 3차원 적층 메모리 장치는 호스트 프로세서로부터 요청된 데이터를 저장하기 위해 교체될 희생 캐시라인을 결정할 수 있다.
640 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인이 더티 상태인지 판단할 수 있다. 희생 캐시라인에 저장된 데이터는 더티 비트를 포함하며, 더티 비트의 값이 1인 경우 더티 상태를 가리킬 수 있으며 더티 비트의 값이 0인 경우 클린 상태를 가리킬 수 있다. 희생 캐시라인이 더티 상태인 경우 희생 캐시라인에 저장된 데이터의 갱신이 이루어졌음을 나타낼 수 있고, 희생 캐시라인인 클린 상태인 경우는 희생 캐시라인에 저장된 데이터의 갱신이 이루어지지 않았음을 나타낼 수 있다. 클린 상태인 경우, 650단계로 진행된다. 하지만, 더티 상태인 경우, 660 단계로 진행한다.
650 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인이 클린 상태임을 판단한 경우, 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터 간 비교를 수행할 수 있다. 더티 비트의 값이 클린 상태라는 것은 희생 캐시라인에 저장된 데이터의 갱신이 이루어지지 않았음을 의미하므로, 희생 캐시라인에 저장된 데이터와 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터는 일치해야 한다. 일치하지 않는다면, 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 오류가 있다고 예측 가능하다.
651 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터가 일치하는 지 여부를 판단할 수 있다, 일치하는 경우, 652 단계로 진행된다. 하지만, 일치하지 않는 경우, 653 단계로 진행한다.
652 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터가 일치하는 경우, 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 오류가 발생하지 않았다고 결정할 수 있다.
653 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터가 일치하지 않는 경우, 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 오류가 발생하였다고 결정할 수 있다.
660 단계에서, 3차원 적층 메모리 장치는 희생 캐시라인이 더티 상태임을 판단한 경우, 희생 캐시라인에 저장된 데이터를 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 오버라이트할 수 있다.
670 단계에서, 3차원 적층 메모리 장치는 복수의 코어 다이 메모리들에서 호스트 프로세서로부터 요청된 데이터를 기입할 캐시라인에 대응되는 영역에 저장된 데이터를 독출할 수 있다.
680 단계에서, 3차원 적층 메모리 장치는 호스트 프로세서로부터 요청된 데이터를 저장한 캐시라인의 더티 비트의 값을 더티 상태로 변경할 수 있다.
690 단계에서, 데이터 기입 동작이 완료될 수 있다.
도 7은 병렬 비트 테스트 모듈에서 비교를 수행하는 일 예를 나타내는 도면이다.
도 7을 참조하면, 코어 다이 메모리(700)는 데이터를 저장하기 위한 메모리 셀 어레이(memory cell array)(710) 및 데이터 버스 모듈(data bus module)(720)을 포함할 수 있다. 메모리 셀 어레이(710)는 단위 메모리 셀을 복수 개 포함할 수 있다. 또한, 데이터 버스 모듈(720)은 내부에 병렬 비트 테스트 모듈(parallel bit test module)(730)을 포함할 수 있다. 한편, 코어 다이 메모리(700)에는 상술한 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당업자에게 자명하다.
병렬 비트 테스트 모듈(730)은 메모리 셀 어레이(710)에서 독출한 데이터와 데이터 버스를 통해 캐시로부터 수신한 데이터를 비교할 수 있다. 캐시로부터 수신한 데이터는 희생 캐시라인에 저장된 데이터에 해당할 수 있다. 또한, 메모리 셀 어레이(710)에서 독출한 데이터는 메모리 셀 어레이(710)에서 희생 캐시라인에 대응되는 영역에 저장된 데이터에 해당할 수 있다.
병렬 비트 테스트 모듈(730)은 메모리 셀 어레이(710)에서 독출한 데이터와 데이터 버스를 통해 캐시로부터 수신한 데이터를 비교한 비교 결과를 출력할 수 있다. 비교 결과는 메모리 셀 어레이(710)에서 독출한 데이터와 데이터 버스를 통해 캐시로부터 수신한 데이터가 일치하는 경우 1일 수 있고, 일치하지 않는 경우 0일 수 있으나 이에 제한되는 것은 아니다.
병렬 비트 테스트 모듈(730)은 병렬 비트 비교 회로를 포함할 수 있다. 구체적으로, 병렬 비트 테스트 모듈은 병렬로 연결된 하나 이상의 병렬 비트 비교 회로를 포함할 수 있다. 또한, 병렬 비트 비교 회로는 적어도 하나의 서브 비교 회로를 포함할 수 있다. 예를 들어, 서브 비교 회로는 복수 개의 XOR 게이트 및 한 개의 NOR 게이트를 포함할 수 있다. XOR 게이트는 각각 한 비트의 데이터를 비교할 수 있다. XOR 게이트는 비교하는 두 데이터가 같은 경우에‘0’을, 다른 경우에는‘1' 을 출력할 수 있다. 또한 NOR 게이트는 모든 입력이 모두‘0’인 경우에만 '1’을 출력하고 하나라도‘1’인 경우에는‘0’을 출력할 수 있다.
예를 들어 메모리 셀 어레이(710)에서 독출한 데이터가 ‘0100’의 데이터를 갖고 있고, 캐시로부터 수신한 데이터가 ‘0100’의 데이터를 갖고 있는 경우에, 4개의 XOR 게이트는 각각 한 비트씩 비교할 수 있다. 이 경우 메모리 셀 어레이(710)에서 독출한 데이터와 캐시로부터 수신한 데이터가 동일하기 때문에 모든 XOR 게이트는‘0’을 출력할 수 있다. 모든 XOR 게이트의 출력이‘0’이기 때문에 이를 입력으로 받은 NOR 게이트는 비교 결과로써‘1’을 출력할 수 있다. 한편, 병렬 비트 비교 회로의 회로 구성은 상술한 바로 한정되지 않는다.
한편, 병렬 비트 테스트 모듈(730)이 출력한 비교 결과는 데이터 버스를 통해 버퍼 다이의 여분 공간에 배치된 컨트롤러로 전송될 수 있다. 컨트롤러는 병렬 비트 테스트 모듈(730)로부터 전송받은 비교 결과에 기초하여 코어 다이 메모리에 오류가 발생했는지 여부를 검출할 수 있다. 예를 들어, 컨트롤러는 비교 결과로서 '0'을 전송받는 경우, 컨트롤러는 메모리 셀 어레이(710)에서 희생 캐시라인에 대응되는 영역에 오류가 발생되었다고 결정할 수 있다. 이러한 경우, 컨트롤러는 버퍼 다이의 여분 공간에 배치된 제 2 메모리 모듈이 메모리 셀 어레이(710)에서 희생 캐시라인에 대응되는 영역을 대체하도록 제어할 수 있다.
도 8은 3차원 적층 메모리 장치의 제어 방법의 일 예를 설명하기 위한 흐름도이다.
도 8을 참조하면, 3차원 적층 메모리 장치의 동작 방법은 도 1 내지 도 7에 도시된 3차원 적층 메모리 장치에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 1 내지 도 7의 3차원 적층 메모리 장치에 관하여 이상에서 기술된 내용은 도 8의 3차원 적층 메모리 장치의 동작 방법에도 적용됨을 알 수 있다.
810 단계에서, 3차원 적층 메모리 장치는 버퍼 다이의 여분 공간의 일부에 배치되어 복수의 코어 다이 메모리들의 캐시로 동작하는 제 1 메모리 모듈을 구성하는 적어도 하나의 캐시라인(cacheline)에 저장된 데이터 및 복수의 코어 다이 메모리들에서 캐시라인에 대응되는 영역에 저장된 데이터 간의 비교 결과를 수신할 수 있다. 3차원 적층 메모리 장치는 호스트 프로세서가 요청하는 데이터가 제 1 메모리 모듈을 구성하는 적어도 하나의 캐시라인에 존재하지 않는 경우, 요청하는 데이터를 저장하기 위해 교체될 희생 캐시라인을 결정할 수 있다. 이 때, 희생 캐시라인에 저장된 데이터에 포함된 더티 비트의 값이 클린 상태를 가리키는 경우, 희생 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 희생 캐시라인에 대응되는 영역에 저장된 데이터 간 비교가 수행될 수 있다.
820 단계에서, 3차원 적층 메모리 장치는 비교 결과에 기초하여 영역의 오류(fault)를 검출할 수 있다. 3차원 적층 메모리 장치는 캐시라인에 저장된 데이터 및 복수의 코어 다이 메모리들에서 캐시라인에 대응되는 영역에 저장된 데이터가 일치하지 않는다는 비교 결과를 수신하는 경우, 복수의 코어 다이 메모리들에서 캐시라인에 대응되는 영역에 오류가 발생되었다고 결정할 수 있다.
830 단계에서, 3차원 적층 메모리 장치는 오류가 검출되는 경우, 버퍼 다이의 여분 공간의 다른 일부에 배치된 제 2 메모리 모듈이 영역을 대체하도록 제어할 수 있다. 3차원 적층 메모리 장치는 3차원 적층 메모리 장치와 연결된 호스트 프로세서가 복수의 코어 다이 메모리들에서 오류가 검출된 영역에 엑세스하려는 경우, 해당 영역 대신 제 2 메모리 모듈을 엑세스하도록 제어할 수 있다.
본 실시예들은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 명세서의 설명은 예시를 위한 것이며, 본 명세서의 내용이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 실시예의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 3차원 적층 메모리 장치에 있어서,
    버퍼 다이(buffer die); 및
    상기 버퍼 다이 상에 적층되는 복수의 코어 다이(core die) 메모리들을 포함하고,
    상기 버퍼 다이는,
    상기 버퍼 다이의 여분 공간의 일부에 배치되어 상기 복수의 코어 다이 메모리들의 캐시(cache)로 동작하는 제 1 메모리 모듈;
    상기 제 1 메모리 모듈을 구성하는 적어도 하나의 캐시라인(cacheline)에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 캐시라인에 대응되는 영역에 저장된 데이터 간의 비교 결과에 기초하여 상기 영역의 오류(fault)를 검출하는 컨트롤러; 및
    상기 버퍼 다이의 여분 공간의 다른 일부에 배치되어, 상기 영역에 오류가 검출되는 경우 상기 영역을 대체하는 제 2 메모리 모듈을 포함하는, 3차원 적층 메모리 장치.
  2. 제 1 항에 있어서,
    상기 컨트롤러는 상기 캐시라인에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 캐시라인에 대응되는 영역에 저장된 데이터가 일치하지 않는다는 비교 결과를 수신하는 경우, 상기 영역에 오류가 발생되었다고 결정하는, 3차원 적층 메모리 장치.
  3. 제 1 항에 있어서,
    상기 컨트롤러는 상기 3차원 적층 메모리 장치와 연결된 호스트 프로세서가 오류가 검출된 상기 영역에 엑세스(access)하려는 경우, 상기 영역 대신 상기 제 2 메모리 모듈을 엑세스하도록 제어하는, 3차원 적층 메모리 장치.
  4. 제 1 항에 있어서,
    상기 컨트롤러는, 상기 3차원 적층 메모리 장치와 연결된 호스트 프로세서가 요청하는 데이터가 상기 제 1 메모리 모듈을 구성하는 적어도 하나의 캐시라인에 존재하는지 여부를 검출하고,
    검출되지 않는 경우, 상기 요청하는 데이터를 저장하기 위해 교체될 희생 캐시라인을 결정하는, 3차원 적층 메모리 장치.
  5. 제 4 항에 있어서,
    상기 희생 캐시라인에 저장된 데이터에 포함된 더티 비트의 값이 클린 상태를 가리키는 경우, 상기 희생 캐시라인에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 희생 캐시라인에 대응되는 영역에 저장된 데이터 간 비교가 수행되는, 3차원 적층 메모리 장치.
  6. 제 5 항에 있어서,
    상기 클린 상태는 상기 희생 캐시라인에 저장된 데이터의 갱신이 이루어지지 않음을 나타내는, 3차원 적층 메모리 장치.
  7. 제 4 항에 있어서,
    상기 컨트롤러는, 상기 희생 캐시라인에 저장된 데이터에 포함된 더티 비트의 값이 더티 상태를 가리키는 경우, 상기 희생 캐시라인에 저장된 데이터를 상기 복수의 코어 다이 메모리들에서 상기 희생 캐시라인에 대응되는 영역에 오버 라이트(overwrite)하는, 3차원 적층 메모리 장치.
  8. 제 1 항에 있어서,
    상기 캐시라인에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 캐시라인에 대응되는 영역에 저장된 데이터 간의 비교는 각각의 데이터를 구성하는 비트들이 한 비트씩 병렬적으로 비교되는 병렬 비트 비교(parallel bit comparison) 방식으로 수행되는, 3차원 적층 메모리 장치.
  9. 제 1 항에 있어서,
    상기 캐시라인에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 캐시라인에 대응되는 영역에 저장된 데이터 간의 비교는 병렬 비트 테스트 모듈(parallel bit test module)에서 수행되고,
    상기 병렬 비트 테스트 모듈은 상기 복수의 코어 다이 메모리들 상에 배치되는, 3차원 적층 메모리 장치.
  10. 제 1 항에 있어서,
    상기 제 2 메모리 모듈의 모든 영역이 상기 복수의 코어 다이 메모리들에서 오류가 검출된 영역들을 대체하도록 동작하는 경우, 상기 컨트롤러는,
    상기 오류가 검출된 영역들에서 하드 에러(hard fault)가 발생하였는지 여부를 결정하고,
    상기 제 2 메모리 모듈이 상기 오류가 검출된 영역들 중 상기 하드 에러가 발생하지 않은 영역들을 대체하여 동작하지 않도록 제어하는, 3차원 적층 메모리 장치.
  11. 복수의 코어 다이(core die) 메모리들 및 버퍼 다이(buffer die)를 포함하는 3차원 적층 메모리 장치의 제어 방법에 있어서,
    상기 버퍼 다이의 여분 공간의 일부에 배치되어 상기 복수의 코어 다이 메모리들의 캐시로 동작하는 제 1 메모리 모듈을 구성하는 적어도 하나의 캐시라인(cacheline)에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 캐시라인에 대응되는 영역에 저장된 데이터 간의 비교 결과를 수신하는 단계;
    상기 비교 결과에 기초하여 상기 영역의 오류(fault)를 검출하는 단계; 및
    상기 영역에 오류가 검출되는 경우 상기 버퍼 다이의 여분 공간의 다른 일부에 배치된 제 2 메모리 모듈이 상기 영역을 대체하도록 제어하는 단계를 포함하는, 방법.
  12. 제 11 항에 있어서,
    상기 영역의 오류를 검출하는 단계는,
    상기 캐시라인에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 캐시라인에 대응되는 영역에 저장된 데이터가 일치하지 않는다는 비교 결과를 수신하는 경우, 상기 영역에 오류가 발생되었다고 결정하는 단계를 포함하는, 방법.
  13. 제 11 항에 있어서,
    상기 제 2 메모리 모듈이 상기 영역을 대체하도록 제어하는 단계는,
    상기 3차원 적층 메모리 장치와 연결된 호스트 프로세서가 상기 영역에 엑세스(access)하려는 경우, 상기 영역 대신 상기 제 2 메모리 모듈을 엑세스하도록 제어하는 단계를 포함하는, 방법.
  14. 제 11 항에 있어서,
    상기 방법은,
    상기 3차원 적층 메모리 장치와 연결된 호스트 프로세서가 요청하는 데이터가 상기 제 1 메모리 모듈을 구성하는 적어도 하나의 캐시라인에 존재하는지 여부를 검출하는 단계; 및
    검출되지 않는 경우, 상기 요청하는 데이터를 저장하기 위해 교체될 희생 캐시라인을 결정하는 단계를 더 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 희생 캐시라인에 저장된 데이터에 포함된 더티 비트의 값이 클린 상태를 가리키는 경우, 상기 희생 캐시라인에 저장된 데이터 및 상기 복수의 코어 다이 메모리들에서 상기 희생 캐시라인에 대응되는 영역에 저장된 데이터 간 비교가 수행되는, 방법.
  16. 제 15 항에 있어서,
    상기 클린 상태는
    상기 희생 캐시라인에 저장된 데이터의 갱신이 이루어지지 않음을 나타내는, 방법.
  17. 제 14 항에 있어서,
    상기 방법은,
    상기 희생 캐시라인에 저장된 데이터에 포함된 더티 비트의 값이 더티 상태를 가리키는 경우, 상기 희생 캐시라인에 저장된 데이터를 상기 복수의 코어 다이 메모리들에서 상기 희생 캐시라인에 대응되는 영역에 오버 라이트(overwrite)하는 단계를 더 포함하는, 방법.
  18. 제 11 항에 있어서,
    상기 캐시라인에 저장된 데이터와 상기 복수의 코어 다이 메모리들에서 상기 캐시라인에 대응되는 영역에 저장된 데이터 간의 비교는 각각의 데이터를 구성하는 비트들이 한 비트씩 병렬적으로 비교되는 병렬 비트 비교(parallel bit comparison) 방식으로 수행되는, 방법.
  19. 제 11 항에 있어서,
    상기 방법은,
    상기 제 2 메모리 모듈의 모든 영역이 상기 복수의 코어 다이 메모리들에서 오류가 검출된 영역들을 대체하도록 동작하는 경우, 상기 오류가 검출된 영역들에서 하드 에러(hard fault)가 발생하였는지 여부를 결정하는 단계; 및
    상기 제 2 메모리 모듈이 상기 오류가 검출된 영역들 중 상기 하드 에러가 발생하지 않은 영역들을 대체하여 동작하지 않도록 제어하는 단계를 더 포함하는, 방법.
  20. 제 11 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020180171133A 2018-12-27 2018-12-27 3차원 적층 메모리 장치 및 그 동작 방법 KR20200081045A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180171133A KR20200081045A (ko) 2018-12-27 2018-12-27 3차원 적층 메모리 장치 및 그 동작 방법
US16/456,094 US11386975B2 (en) 2018-12-27 2019-06-28 Three-dimensional stacked memory device and method
US17/840,722 US11830562B2 (en) 2018-12-27 2022-06-15 Three-dimensional stacked memory device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180171133A KR20200081045A (ko) 2018-12-27 2018-12-27 3차원 적층 메모리 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20200081045A true KR20200081045A (ko) 2020-07-07

Family

ID=71124291

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180171133A KR20200081045A (ko) 2018-12-27 2018-12-27 3차원 적층 메모리 장치 및 그 동작 방법

Country Status (2)

Country Link
US (2) US11386975B2 (ko)
KR (1) KR20200081045A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11139033B2 (en) 2019-10-10 2021-10-05 Samsung Electronics Co., Ltd. Semiconductor memory device employing processing in memory (PIM) and operation method of the semiconductor memory device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210063496A (ko) 2019-11-22 2021-06-02 삼성전자주식회사 프로세싱 회로를 포함하는 메모리 장치, 그리고 시스템 온 칩과 메모리 장치를 포함하는 전자 장치
US11923027B2 (en) * 2021-12-28 2024-03-05 Micron Technology, Inc. Read command fault detection in a memory system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592616A (en) 1995-06-07 1997-01-07 Dell Usa, Lp Method for performing efficient memory testing on large memory arrays using test code executed from cache memory
US6400619B1 (en) 2001-04-25 2002-06-04 International Business Machines Corporation Micro-cell redundancy scheme for high performance eDRAM
KR100684471B1 (ko) 2005-02-25 2007-02-22 장훈 내장 에스램의 자체 복구 방법 및 장치
CN101689141B (zh) * 2007-06-20 2012-10-17 富士通株式会社 高速缓存装置、运算处理装置及其控制方法
US8612809B2 (en) * 2009-12-31 2013-12-17 Intel Corporation Systems, methods, and apparatuses for stacked memory
US20120221785A1 (en) 2011-02-28 2012-08-30 Jaewoong Chung Polymorphic Stacked DRAM Memory Architecture
US8921991B2 (en) 2011-09-01 2014-12-30 Chengdu Haicun Ip Technology Llc Discrete three-dimensional memory
US9286172B2 (en) * 2011-12-22 2016-03-15 Intel Corporation Fault-aware mapping for shared last level cache (LLC)
JP2013196393A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法
US9778982B2 (en) * 2013-12-09 2017-10-03 Hewlett Packard Enterprise Development Lp Memory erasure information in cache lines
US9424195B2 (en) * 2014-04-15 2016-08-23 Advanced Micro Devices, Inc. Dynamic remapping of cache lines
US10459809B2 (en) * 2017-06-30 2019-10-29 Intel Corporation Stacked memory chip device with enhanced data protection capability
US10877839B2 (en) * 2017-09-22 2020-12-29 Arteris, Inc. Recovery of a coherent system in the presence of an uncorrectable error
US10606690B2 (en) * 2017-09-29 2020-03-31 Intel Corporation Memory controller error checking process using internal memory device codes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11139033B2 (en) 2019-10-10 2021-10-05 Samsung Electronics Co., Ltd. Semiconductor memory device employing processing in memory (PIM) and operation method of the semiconductor memory device
US11600340B2 (en) 2019-10-10 2023-03-07 Samsung Electronics Co., Ltd. Semiconductor memory device employing processing in memory (PIM) and operation method of the semiconductor memory device

Also Published As

Publication number Publication date
US11830562B2 (en) 2023-11-28
US11386975B2 (en) 2022-07-12
US20200210296A1 (en) 2020-07-02
US20220310194A1 (en) 2022-09-29

Similar Documents

Publication Publication Date Title
US11687454B2 (en) Memory circuit and cache circuit configuration
KR102491651B1 (ko) 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
JP7252845B2 (ja) 高帯域幅メモリのras(信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造
US10943183B2 (en) Electronics device performing software training on memory channel and memory channel training method thereof
US9996282B2 (en) Method of operating data storage device and method of operating system including the same
US20160203091A1 (en) Memory controller and memory system including the same
US10866921B2 (en) Apparatuses and methods for an operating system cache in a solid state device
JP7007102B2 (ja) 不揮発性メモリモジュール、及び格納装置の動作方法
US10599363B2 (en) Nonvolatile memory capable of outputting data using wraparound scheme, computing system having the same, and read method thereof
US20050114613A1 (en) Multi-chip package type memory system
US20180018095A1 (en) Method of operating storage device and method of operating data processing system including the device
US20100185811A1 (en) Data processing system and method
KR20200081045A (ko) 3차원 적층 메모리 장치 및 그 동작 방법
US9952945B2 (en) Electronic equipment including storage device
TWI737703B (zh) 非揮發性記憶體模組以及操作儲存裝置的方法
US9158676B2 (en) Nonvolatile memory controller and a nonvolatile memory system
US20150199201A1 (en) Memory system operating method providing hardware initialization
US10976368B2 (en) Memory apparatus relating to determination of a failed region and test method thereof, memory module and system using the same
US20160291897A1 (en) Data storage device and devices having the same
US10621098B2 (en) Computing device and non-volatile dual in-line memory module that evict and prefetch data with respect to memories having different operating speeds
US20190362261A1 (en) Machine learning device and machine learning system using the same
US20150128000A1 (en) Method of operating memory system
US20150153965A1 (en) Electronic system and method of operating the same
JP2011070470A (ja) 半導体記憶装置
US20170031633A1 (en) Method of operating object-oriented data storage device and method of operating system including the same

Legal Events

Date Code Title Description
A201 Request for examination