KR20170064626A - Nonvolatile memory moduel - Google Patents

Nonvolatile memory moduel Download PDF

Info

Publication number
KR20170064626A
KR20170064626A KR1020150170115A KR20150170115A KR20170064626A KR 20170064626 A KR20170064626 A KR 20170064626A KR 1020150170115 A KR1020150170115 A KR 1020150170115A KR 20150170115 A KR20150170115 A KR 20150170115A KR 20170064626 A KR20170064626 A KR 20170064626A
Authority
KR
South Korea
Prior art keywords
tag
memory
volatile memory
address
data
Prior art date
Application number
KR1020150170115A
Other languages
Korean (ko)
Other versions
KR102538246B1 (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 KR1020150170115A priority Critical patent/KR102538246B1/en
Priority to US15/366,137 priority patent/US10303372B2/en
Publication of KR20170064626A publication Critical patent/KR20170064626A/en
Priority to US16/414,893 priority patent/US11106363B2/en
Priority to US17/389,834 priority patent/US11614866B2/en
Application granted granted Critical
Publication of KR102538246B1 publication Critical patent/KR102538246B1/en

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • 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
    • 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
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명에 따른 불휘발성 메모리 모듈은 불휘발성 메모리, 불휘발성 메모리의 캐시 메모리이고, 저장된 데이터에 대한 태그 정보를 포함하는 휘발성 메모리, 불휘발성 메모리를 제어하도록 구성되는 제어기, 및 외부 장치로부터 커맨드 및 어드레스를 수신하고, 수신된 커맨드 어드레스에 응답하여, 제1 버스를 통해 휘발성 메모리로 제1 커맨드 및 어드레스를 전송하고, 제2 버스를 통해 제어기로 제2 커맨드 및 어드레스를 제공하는 모듈 컨트롤러를 포함한다.A nonvolatile memory module according to the present invention is a nonvolatile memory, a cache memory of a nonvolatile memory, and includes a volatile memory including tag information for stored data, a controller configured to control the nonvolatile memory, And a module controller responsive to the received command address to transmit the first command and address to the volatile memory via the first bus and to provide the second command and address to the controller via the second bus.

Figure P1020150170115
Figure P1020150170115

Description

불휘발성 메모리 모듈{NONVOLATILE MEMORY MODUEL}[0001] NONVOLATILE MEMORY MODULE [0002]

본 발명은 반도체 메모리에 관한 것으로 더욱 상세하게는 불휘발성 메모리 모듈에 관한 것이다.The present invention relates to a semiconductor memory, and more particularly, to a nonvolatile memory module.

반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phosphide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.A semiconductor memory device is a memory device implemented using semiconductors such as silicon (Si), germanium (Ge), gallium arsenide (GaAs), indium phosphide (InP) to be. Semiconductor memory devices are classified into a volatile memory device and a nonvolatile memory device.

휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등이 있다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불 휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다.The volatile memory device is a memory device in which data stored in the volatile memory device is lost when power supply is interrupted. Volatile memory devices include static RAM (SRAM), dynamic RAM (DRAM), and synchronous DRAM (SDRAM). A nonvolatile memory device is a memory device that retains data that has been stored even when power is turned off. A nonvolatile memory device includes a ROM (Read Only Memory), a PROM (Programmable ROM), an EPROM (Electrically Programmable ROM), an EEPROM (Electrically Erasable and Programmable ROM), a flash memory device, a PRAM ), RRAM (Resistive RAM), and FRAM (Ferroelectric RAM).

특히, DRAM은 빠른 응답 속도 및 빠른 동작 속도를 갖기 때문에, 시스템의 주 메모리(main memory)로써 널리 사용된다. 그러나, DRAM은 전원 공급이 차단되면 데이터가 소멸되는 휘발성 메모리이기 때문에, DRAM에 저장된 데이터를 보존하기 위해서는 별도의 장치가 요구된다. 또한, DRAM은 캐패시터를 사용하여 데이터를 저장하기 때문에, 단위 셀의 크기가 크고, 이로 인하여, 제한된 영역에 DRAM 용량을 증가시키는데 어려움이 있다.In particular, since DRAM has a fast response speed and a high operation speed, it is widely used as a main memory of the system. However, since the DRAM is a volatile memory in which data is lost when the power supply is interrupted, a separate device is required to store the data stored in the DRAM. Also, because the DRAM stores data using a capacitor, the size of the unit cell is large, which makes it difficult to increase the DRAM capacity in a limited area.

본 발명의 목적은 불휘발성 메모리 및 휘발성 메모리를 사용하여 대용량 및 고성능을 갖는 불휘발성 메모리 모듈을 제공하는데 있다. An object of the present invention is to provide a nonvolatile memory module having a large capacity and a high performance by using a nonvolatile memory and a volatile memory.

본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈은 불휘발성 메모리, 상기 불휘발성 메모리의 캐시 메모리이고, 저장된 데이터에 대한 태그 정보를 포함하는 휘발성 메모리, 상기 불휘발성 메모리를 제어하도록 구성되는 제어기, 및 외부 장치로부터 커맨드 및 어드레스를 수신하고, 상기 수신된 커맨드 어드레스에 응답하여, 제1 버스를 통해 상기 휘발성 메모리로 제1 커맨드 및 어드레스를 전송하고, 제2 버스를 통해 상기 제어기로 제2 커맨드 및 어드레스를 제공하는 모듈 컨트롤러를 포함한다.A nonvolatile memory module according to an embodiment of the present invention includes a nonvolatile memory, a cache memory of the nonvolatile memory, and includes a volatile memory including tag information on stored data, a controller configured to control the nonvolatile memory, Receiving a command and an address from an external device and sending a first command and address to the volatile memory via a first bus in response to the received command address and sending a second command and address to the controller via a second bus, And a module controller.

실시 예로서, 상기 태그 정보는 상기 외부 장치로부터 수신된 어드레스 중 적어도 일부를 포함하는 것을 특징으로 한다.In an embodiment, the tag information includes at least a part of addresses received from the external apparatus.

실시 예로서, 상기 휘발성 메모리는 복수의 휘발성 메모리 칩들을 포함하고, 상기 복수의 휘발성 메모리 칩들 중 적어도 하나는 상기 태그 정보를 저장하는 태그 전용 휘발성 메모리 칩이고, 나머지는 데이터를 저장하는 것을 특징으로 한다. In an embodiment, the volatile memory includes a plurality of volatile memory chips, at least one of the plurality of volatile memory chips is a tag-dedicated volatile memory chip storing the tag information, and the remainder stores data .

실시 예로서, 상기 휘발성 메모리와 태그 데이터 라인을 공유하는 태그 제어 회로를 더 포함한다. As an embodiment, it further includes a tag control circuit sharing the tag data line with the volatile memory.

실시 예로서, 상기 태그 제어 회로는 상기 태그 데이터 라인을 통해 태그를 수신하고, 상기 모듈 컨트롤러로부터 상기 어드레스를 수신하고, 상기 수신된 어드레스의 적어도 일부 및 상기 태그를 비교함으로써 캐시 히트 또는 캐시 미스에 대한 캐시 정보를 출력하는 것을 특징으로 한다. In an embodiment, the tag control circuit receives the tag via the tag data line, receives the address from the module controller, and compares at least a portion of the received address with the tag to determine a cache hit or cache miss And outputs the cache information.

실시 예로서, 상기 태그 제어 회로는 상기 외부 장치로부터 수신된 어드레스 중 적어도 일부를 기반으로 상기 태그 데이터 라인의 전압을 구동하여 상기 휘발성 메모리로 상기 태그 정보를 전송하는 것을 특징으로 한다.In an embodiment, the tag control circuit drives the voltage of the tag data line based on at least a part of the addresses received from the external device, and transmits the tag information to the volatile memory.

실시 예로서, 상기 불휘발성 메모리는 낸드 플래시 메모리를 포함하고, 상기 휘발성 메모리는 동적 랜덤 액세스 메모리(DRAM; Dynamic Random Access Memory)를 포함하는 것을 특징으로 한다.In an embodiment, the non-volatile memory includes a NAND flash memory, and the volatile memory includes a dynamic random access memory (DRAM).

본 발명의 일 실시 예에 따른 불휘발성 메모리 모듈은 제1 메모리, 상기 제1 메모리의 캐시 메모리인 제2 메모리, 상기 제2 메모리에 저장된 데이터의 태그 정보를 저장하는 제3 메모리, 상기 제1 메모리를 제어하도록 구성되는 제어기, 및 외부 장치로부터 커맨드 및 어드레스를 수신하고, 상기 수신된 커맨드 어드레스에 응답하여, 제1 버스를 통해 상기 제어기로 제1 커맨드 및 어드레스를 전송하고, 제2 버스를 통해 상기 제2 메모리로 제2 커맨드 및 어드레스를 제공하는 모듈 컨트롤러를 포함한다. A nonvolatile memory module according to an embodiment of the present invention includes a first memory, a second memory that is a cache memory of the first memory, a third memory that stores tag information of data stored in the second memory, And a controller configured to receive a command and an address from an external device and to transmit a first command and an address to the controller via a first bus in response to the received command address, And a module controller for providing a second command and address to the second memory.

본 발명의 일 실시 예에 따른 메모리 시스템은 제1 메모리, 상기 제1 메모리의 캐시 메모리인 제2 메모리, 상기 제1 메모리 및 상기 제2 메모리와 데이터 버스를 공유하고, 상기 버스를 통해 상기 제1 및 제2 메모리들을 제어하도록 구성되는 메모리 컨트롤러를 포함하고, 상기 제2 메모리는 상기 제2 메모리에 저장된 데이터에 대한 태그를 저장하도록 구성되는 태그 전용 메모리를 포함하는 것을 특징으로 한다.A memory system according to an embodiment of the present invention includes a first memory, a second memory that is a cache memory of the first memory, a second memory that shares a data bus with the first memory and the second memory, And a memory controller configured to control the second memories, wherein the second memory includes a tag only memory configured to store a tag for data stored in the second memory.

실시 예로서, 상기 제2 메모리의 상기 태그 전용 메모리는 상기 메모리 컨트롤러의 제어에 따라 상기 데이터 버스를 통해 상기 태그를 출력하는 것을 특징으로 한다.In an embodiment, the tag dedicated memory of the second memory outputs the tag through the data bus under the control of the memory controller.

실시 예로서, 상기 메모리 컨트롤러는 상기 데이터 버스를 통해 상기 태그를 수신하고, 상기 수신된 태그를 기반으로 캐시 히트 또는 캐시 미스를 판별하는 것을 특징으로 한다.In an embodiment, the memory controller receives the tag via the data bus, and determines a cache hit or a cache miss based on the received tag.

실시 예로서, 상기 제2 메모리는 상기 태그 전용 메모리에 저장된 태그를 기반으로 캐시 정보를 출력하도록 구성된다.In an embodiment, the second memory is configured to output cache information based on a tag stored in the tag dedicated memory.

본 발명에 따르면, 불휘발성 메모리 및 휘발성 메모리를 사용하여 대용량 및 고성능을 갖는 불휘발성 메모리 모듈이 제공된다. 불휘발성 메모리 모듈은 시스템의 주 메모리로써 사용되며, 이로 인하여 항샹된 성능 및 감소된 비용을 갖는 불휘발성 메모리 모듈이 제공된다. According to the present invention, there is provided a nonvolatile memory module having a large capacity and a high performance by using a nonvolatile memory and a volatile memory. A non-volatile memory module is used as the main memory of the system, thereby providing a non-volatile memory module with improved performance and reduced cost.

도 1은 본 발명의 실시 예에 따른 사용자 시스템을 예시적으로 보여주는 블록도이다.
도 2는 도 1의 불휘발성 메모리 모듈을 상세하게 보여주는 블록도이다.
도 3은 도 2의 불휘발성 메모리 모듈의 쓰기 동작을 보여주는 순서도이다.
도 4는 도 3의 동작 방법을 상세하게 설명하기 위한 타이밍도이다.
도 5는 도 2의 불휘발성 메모리 모듈(100)의 읽기 동작을 보여주는 순서도이다.
도 6은 도 5의 읽기 동작을 상세하게 설명하기 위한 타이밍도이다.
도 7은 도 2의 불휘발성 메모리 모듈(100)의 다른 읽기 동작을 보여주는 순서도이다.
도 8은 도 7의 읽기 동작을 상세하게 설명하기 위한 타이밍도이다.
도 9는 도 2의 휘발성 메모리의 캐시 구조를 설명하기 위한 도면이다.
도 10은 도 9의 태그를 상세하게 설명하기 위한 도면이다.
도 11은 도 2의 불휘발성 메모리 모듈의 태그 관리 방법을 설명하기 위한 도면이다.
도 12는 도 2의 불휘발성 메모리 모듈의 태그 관리 방법을 설명하기 위한 도면이다.
도 13은 도 11 및 도 12에 도시된 불휘발성 메모리 모듈들의 태그 전송 방법을 설명하기 위한 타이밍도들이다.
도 14는 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다.
도 15는 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다.
도 16은 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다.
도 17은 본 발명의 다른 실시 예에 따른 태그를 상세하게 설명하기 위한 도면이다.
도 18은 도 2의 불휘발성 메모리 모듈의 동작 방법을 설명하기 위한 순서도이다.
도 19는 도 2의 불휘발성 메모리 모듈의 다른 동작 방법을 설명하기 위한 순서도이다.
도 20은 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다.
도 21은 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다.
도 22는 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다.
도 23은 본 발명에 따른 불휘발성 메모리 모듈에 포함된 불휘발성 메모리를 예시적으로 보여주는 블록도이다.
도 24는 본 발명에 따른 불휘발성 메모리 모듈의 불휘발성 메모리에 포함된 메모리 블록들 중 제1 메모리 블록을 예시적으로 보여주는 회로도이다.
도 25는 본 발명에 따른 불휘발성 메모리 모듈의 휘발성 메모리를 예시적으로 보여주는 블록도이다.
도 26은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 서버 시스템을 예시적으로 보여주는 도면이다.
도 27은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 사용자 시스템을 예시적으로 보여주는 블록도이다.
1 is a block diagram illustrating an exemplary user system in accordance with an embodiment of the present invention.
2 is a detailed block diagram of the nonvolatile memory module of FIG.
3 is a flowchart showing a write operation of the nonvolatile memory module of FIG.
4 is a timing diagram for explaining the operation method of FIG. 3 in detail.
5 is a flowchart showing a read operation of the nonvolatile memory module 100 of FIG.
6 is a timing chart for explaining the read operation of FIG. 5 in detail.
FIG. 7 is a flowchart showing another read operation of the nonvolatile memory module 100 of FIG.
8 is a timing chart for explaining the read operation of FIG. 7 in detail.
FIG. 9 is a diagram for explaining the cache structure of the volatile memory of FIG. 2. FIG.
FIG. 10 is a diagram for explaining the tag of FIG. 9 in detail.
FIG. 11 is a diagram for explaining a tag management method of the nonvolatile memory module of FIG. 2. FIG.
12 is a diagram for explaining a tag management method of the nonvolatile memory module of FIG.
13 is a timing chart for explaining a tag transmission method of the nonvolatile memory modules shown in FIG. 11 and FIG.
14 is a block diagram showing another example of the nonvolatile memory module of FIG.
15 is a block diagram showing another example of the nonvolatile memory module of FIG.
16 is a block diagram showing another example of the nonvolatile memory module of FIG.
17 is a diagram for explaining a tag according to another embodiment of the present invention in detail.
18 is a flowchart for explaining an operation method of the nonvolatile memory module of FIG.
19 is a flowchart for explaining another operation method of the nonvolatile memory module of FIG.
20 is a block diagram showing another example of the nonvolatile memory module of FIG.
FIG. 21 is a block diagram showing another example of the nonvolatile memory module of FIG. 2. FIG.
22 is a block diagram showing another example of the nonvolatile memory module of FIG.
23 is a block diagram exemplarily showing a nonvolatile memory included in the nonvolatile memory module according to the present invention.
24 is a circuit diagram illustrating a first memory block among the memory blocks included in the nonvolatile memory of the nonvolatile memory module according to the present invention.
25 is a block diagram illustrating an exemplary volatile memory of a non-volatile memory module according to the present invention.
26 is a diagram illustrating a server system to which a non-volatile memory module according to the present invention is applied.
27 is a block diagram illustrating an example of a user system to which a nonvolatile memory module according to the present invention is applied.

이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 당업자에 의해 수행될 수 있다. 더욱이, 잘 알려진 기능들 및 구조들에 대한 설명들은 명확성 및 간결성을 위하여 생략된다. 본문에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.In the following, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, details such as detailed configurations and structures are provided merely to assist in an overall understanding of embodiments of the present invention. Modifications of the embodiments described herein may be made by those skilled in the art without departing from the spirit and scope of the invention. Moreover, descriptions of well-known functions and structures are omitted for clarity and brevity. The terms used in the present specification are defined in consideration of the functions of the present invention and are not limited to specific functions. Definitions of terms may be determined based on the description in the detailed description.

이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.Modules in the following figures or detailed description may be shown in the drawings or may be connected to others in addition to the components described in the detailed description. The connections between the modules or components may be direct or non-direct, respectively. The connections between the modules or components may be a communication connection or a physical connection, respectively.

상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 계층(layer) 등의 용어를 참조하여 설명되는 구성 요소들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 애플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈(MEMS; microelectromechanical system), 수동 소자, 또는 그것들의 조합을 포함할 수 있다. The components described with reference to terms such as a unit or a unit, a module, a layer or the like used in the detailed description may be implemented in the form of software, hardware, or a combination thereof. Illustratively, the software may be machine code, firmware, embedded code, and application software. For example, the hardware may include electrical circuits, electronic circuits, processors, computers, integrated circuits, integrated circuit cores, pressure sensors, inertial sensors, microelectromechanical systems (MEMS), passive components, .

다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서의 당업자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기술 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.Unless defined otherwise, all terms including technical and scientific meanings used herein have the meaning as understood by one of ordinary skill in the art to which this invention belongs. Generally, terms defined in the dictionary are interpreted to have equivalent meaning to the contextual meanings in the related art and are not to be construed as having ideal or overly formal meaning unless expressly defined in the text.

또한, 이하에서, 설명의 편의를 위하여 특정 실시 예들을 기반으로 본 발명이 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니며, 다양한 실시 예들 각각이 구현되거나 또는 다양한 실시 예들의 조합이 구현될 수 있다.In the following, the present invention will be described on the basis of specific embodiments for convenience of description, but the scope of the present invention is not limited thereto, and various embodiments may be implemented or a combination of various embodiments may be implemented have.

도 1은 본 발명의 실시 예에 따른 사용자 시스템을 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 사용자 시스템(10)은 불휘발성 메모리 모듈들(100), 프로세서(101), 칩셋(102), 그래픽 처리 유닛(103), 입출력 장치(104), 스토리지 장치(105)를 포함한다. 예시적으로, 사용자 시스템(10)은 컴퓨터, 노트북, 서버, 워크 스테이션, 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Media Player), 스마트폰, 또는 웨어러블(Wearable) 장치와 같은 컴퓨팅 시스템일 수 있다. 1 is a block diagram illustrating an exemplary user system in accordance with an embodiment of the present invention. 1, a user system 10 includes non-volatile memory modules 100, a processor 101, a chipset 102, a graphics processing unit 103, an input / output device 104, a storage device 105 . Illustratively, the user system 10 may be a computing system such as a computer, a laptop, a server, a workstation, a handheld communication terminal, a PDA (Personal Digital Assistant), a Portable Media Player (PMP), a smart phone, or a wearable device Lt; / RTI >

사용자 시스템(10)은 불휘발성 메모리 모듈(100), 프로세서(101), 칩셋(102), 그래픽 처리 유닛(103), 입출력 장치(104), 및 스토리지 장치(105)를 포함한다.The user system 10 includes a nonvolatile memory module 100, a processor 101, a chipset 102, a graphics processing unit 103, an input / output device 104, and a storage device 105.

프로세서(101)는 사용자 시스템(100)의 제반 동작을 제어할 수 있다. 프로세서(101)는 사용자 시스템(100)에서 수행되는 다양한 연산을 수행하고, 데이터를 처리할 수 있다.The processor 101 may control all operations of the user system 100. The processor 101 may perform various operations performed on the user system 100 and process the data.

불휘발성 메모리 모듈(100)은 프로세서(101)와 직접적으로 연결될 수 있다. 예를 들어, 불휘발성 메모리 모듈(100)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module) 형태를 가질 수 있고, 불휘발성 메모리 모듈(100)은 프로세서(101)와 직접적으로 연결된 DIMM 소켓에 장착되어 프로세서(101)와 통신할 수 있다. 예시적으로, 불휘발성 메모리 모듈(100)은 NVDIMM 프로토콜을 기반으로 프로세서(101)와 통신할 수 있다.The non-volatile memory module 100 may be directly coupled to the processor 101. For example, the non-volatile memory module 100 may be in the form of a dual in-line memory module (DIMM), and the non-volatile memory module 100 may be directly coupled to the processor 101 DIMM socket and can communicate with the processor 101. < RTI ID = 0.0 > Illustratively, the non-volatile memory module 100 may communicate with the processor 101 based on the NVDIMM protocol.

불휘발성 메모리 모듈(100)은 프로세서(101)의 주 메모리 또는 동작 메모리로써 사용될 수 있다. 불휘발성 메모리 모듈(100)은 불휘발성 메모리 및 휘발성 메모리를 포함할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같이 전원 공급이 차단되어도 데이터가 소실되지 않는 메모리를 포함할 수 있다. 휘발성 메모리는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같이 전원이 차단되면, 데이터가 소실되는 메모리를 포함할 수 있다.The non-volatile memory module 100 may be used as the main memory or the working memory of the processor 101. [ The non-volatile memory module 100 may include a non-volatile memory and a volatile memory. The non-volatile memory may be a ROM, a PROM, an EPROM, an EEPROM, a flash memory, a phase-change RAM (PRAM), a magnetic RAM (MRAM) RRAM (Resistive RAM), FRAM (Ferroelectric RAM), and the like. The volatile memory may include a memory such as a static RAM (SRAM), a dynamic RAM (DRAM), a synchronous DRAM (SDRAM), or the like.

예시적으로, 불휘발성 메모리 모듈(100)의 불휘발성 메모리는 사용자 시스템(10) 또는 프로세서(101)의 주 메모리(main memory)로써 사용되고, 휘발성 메모리는 사용자 시스템(10), 프로세서(101), 또는 불휘발성 메모리 모듈(100)의 캐시 메모리(cache memory)로써 사용될 수 있다.The nonvolatile memory of the nonvolatile memory module 100 is used as the main memory of the user system 10 or the processor 101 and the volatile memory is used as the main memory of the user system 10, Or as a cache memory of the non-volatile memory module 100. [

칩셋(102)은 프로세서(101)와 전기적으로 연결되고, 프로세서(101)의 제어에 따라 사용자 시스템(10)의 하드웨어를 제어할 수 있다. 예를 들어, 칩셋(102)은 주요 버스들을 통해 GPU(103), 입출력 장치(104), 및 스토리지 장치(105)와 각각 연결되고, 주요 버스들에 대한 브릿지 역할을 수행할 수 있다. The chipset 102 is electrically connected to the processor 101 and can control the hardware of the user system 10 under the control of the processor 101. [ For example, the chipset 102 may be connected to the GPU 103, the input / output device 104, and the storage device 105 via the main buses, respectively, and may serve as a bridge to the main buses.

GPU(103)는 사용자 시스템(10)의 영상 데이터를 출력하기 위한 일련의 연산 동작을 수행할 수 있다. 예시적으로, GPU(103)는 시스템-온-칩 형태로 프로세서(101) 내에 실장될 수 있다.The GPU 103 may perform a series of arithmetic operations to output image data of the user system 10. [ Illustratively, the GPU 103 may be implemented in the processor 101 in a system-on-chip form.

입출력 장치(104)는 사용자 시스템(10)으로 데이터 또는 명령어를 입력하거나 또는 외부로 데이터를 출력하는 다양한 장치들을 포함한다. 예를 들어, 입출력 장치(104)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 압전 소자, 온도 센서, 생체 인식 센서 등과 같은 사용자 입력 장치들 및 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 장치들을 포함할 수 있다.The input / output device 104 includes various devices that input data or instructions to the user system 10 or output data to the outside. For example, the input / output device 104 may be a keyboard, a keypad, a button, a touch panel, a touch screen, a touch pad, a touch ball, a camera, a microphone, a gyroscope sensor, a vibration sensor, User input devices and user output devices such as a Liquid Crystal Display (LCD), an Organic Light Emitting Diode (OLED) display, an AMOLED (Active Matrix OLED) display, an LED, a speaker,

스토리지 장치(105)는 사용자 시스템(10)의 대용량 저장 매체로서 사용될 수 있다. 스토리지 장치(105)는 하드 디스크 드라이브, SSD, 메모리 카드, 메모리 스틱 등과 같은 대용량 저장 매체들을 포함할 수 있다.The storage device 105 may be used as a mass storage medium of the user system 10. Storage device 105 may include mass storage media such as hard disk drives, SSDs, memory cards, memory sticks, and the like.

도 2는 도 1의 불휘발성 메모리 모듈을 상세하게 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 불휘발성 메모리 모듈(100)은 모듈 컨트롤러(110), 이종 메모리 장치(120), 데이터 버퍼(130), 및 직렬 프레즌스 검출 칩(140)(SPD chip; Serial Presence Detect chip)을 포함한다.2 is a detailed block diagram of the nonvolatile memory module of FIG. 1 and 2, a nonvolatile memory module 100 includes a module controller 110, a heterogeneous memory device 120, a data buffer 130, and a serial presence detection chip 140 (SPD chip; Serial Presence Detect chip.

모듈 컨트롤러(110)는 프로세서(101)로부터 커맨드/어드레스(CA)를 수신하고, 수신된 커맨드/어드레스(CA)에 응답하여 이종 메모리 장치(120)를 제어할 수 있다. 예를 들어, 모듈 컨트롤러(110)는 프로세서(101)로부터의 커맨드/어드레스(CA)에 응답하여 커맨드/어드레스(CA_n) 및 커맨드/어드레스(CA_v)를 이종 메모리 장치(120)로 제공할 수 있다.The module controller 110 may receive the command / address CA from the processor 101 and control the disparate memory device 120 in response to the received command / address CA. For example, the module controller 110 may provide a command / address CA_n and a command / address CA_v to the disparate memory device 120 in response to a command / address CA from the processor 101 .

예시적으로, 커맨드/어드레스(CA_n)는 이종 메모리 장치(120)에 포함된 불휘발성 메모리(123)를 제어하기 위한 커맨드/어드레스이고, 커맨드/어드레스(CA_v)는 이종 메모리 장치(120)에 포함된 휘발성 메모리(121)를 제어하기 위한 커맨드/어드레스일 수 있다.Illustratively, the command / address CA_n is a command / address for controlling the nonvolatile memory 123 included in the heterogeneous memory device 120, and the command / address CA_v is included in the heterogeneous memory device 120 / RTI > command / address for controlling the volatile memory < RTI ID = 0.0 > 121 < / RTI &

이하에서, 간결한 설명을 위하여, 프로세서(101)로부터 제공되는 커맨드/어드레스(CA)는 '모듈 커맨드/어드레스'라 칭하고, 모듈 컨트롤러(110)로부터 휘발성 메모리(121)로 제공되는 커맨드/어드레스(CA_v)는 'VM(Volatile Memory) 커맨드/어드레스'라 칭하고, 모듈 컨트롤러(110)로부터 NVM 제어기(122)로 제공되는 커맨드/어드레스(CA_n)는 'NVM(Nonvolatile Memory) 커맨드/어드레스'라 칭한다.Hereinafter, for the sake of brevity, the command / address CA provided from the processor 101 is referred to as a 'module command / address', and a command / address CA_v provided from the module controller 110 to the volatile memory 121 And a command / address CA_n provided from the module controller 110 to the NVM controller 122 is referred to as a NVM (command for nonvolatile memory) command / address.

예시적으로, NVM 커맨드/어드레스(CA_n) 및 VM 커맨드/어드레스(CA_v)와 서로 다른 커맨드/어드레스 버스를 통해 제공될 수 있다.Illustratively, it may be provided via a different command / address bus with the NVM command / address CA_n and the VM command / address CA_v.

예시적으로, 모듈 컨트롤러는 RCD(Register Clock Driver)일 수 있다By way of example, the module controller may be an RCD (Register Clock Driver)

이종 메모리 장치(120)는 휘발성 메모리(121), 불휘발성 메모리 제어기(122)(NVM 제어기), 및 불휘발성 메모리(123)를 포함한다. 휘발성 메모리(121)는 모듈 컨트롤러(110)로부터의 VM 커맨드/어드레스(CA_v)에 응답하여 동작할 수 있다. 휘발성 메모리(121)는 VM 커맨드/어드레스(CA_v)에 응답하여 메모리 데이터 라인(MDQ) 및 태그 데이터 라인(TDQ)을 통해 데이터 및 태그(TAG)를 각각 출력할 수 있다. 휘발성 메모리(121)는 VM 커맨드/어드레스(CA_v)에 따라 메모리 데이터 라인(MDQ) 및 태그 데이터 라인(TDQ)을 통해 각각 수신된 데이터 및 태그를 기입할 수 있다.The heterogeneous memory device 120 includes a volatile memory 121, a non-volatile memory controller 122 (NVM controller), and a non-volatile memory 123. The volatile memory 121 may operate in response to the VM command / address CA_v from the module controller 110. The volatile memory 121 can output the data and the tag TAG through the memory data line MDQ and the tag data line TDQ in response to the VM command / address CA_v, respectively. The volatile memory 121 can write the data and the tag respectively received via the memory data line MDQ and the tag data line TDQ according to the VM command / address CA_v.

NVM 제어기(122)는 모듈 컨트롤러(110)로부터의 NVM 커맨드/어드레스(CA_n)에 응답하여 동작할 수 있다. 예를 들어, NVM 제어기(122)는 모듈 컨트롤러(110)로부터의 NVM 커맨드/어드레스(CA_n)에 따라, 메모리 데이터 라인(MDQ)을 통해 수신된 데이터를 불휘발성 메모리(123)에 프로그램하거나 또는 불휘발성 메모리(123)에 프로그램된 데이터를 메모리 데이터 라인(MDQ)을 통해 출력할 수 있다.The NVM controller 122 may operate in response to an NVM command / address (CA_n) from the module controller 110. For example, the NVM controller 122 may program the data received via the memory data line (MDQ) to the nonvolatile memory 123, or may be programmed into the nonvolatile memory 123 according to the NVM command / address (CA_n) from the module controller 110 The data programmed in the volatile memory 123 can be output through the memory data line MDQ.

NVM 제어기(122)는 불휘발성 메모리(123)를 제어하기 위한 다양한 동작을 수행할 수 있다. 예를 들어, NVM 제어기(122)는 불휘발성 메모리(123)를 효율적으로 사용하기 위하여 가비지 콜렉션, 웨어 레벨링, 어드레스 변환 등과 같은 동작을 수행할 수 있다. 예시적으로, NVM 제어기(122)는 에러 정정 회로, 랜더마이져 등과 같은 구성 요소들을 더 포함할 수 있다.The NVM controller 122 may perform various operations for controlling the non-volatile memory 123. [ For example, the NVM controller 122 may perform operations such as garbage collection, wear leveling, address translation, etc. to efficiently use the non-volatile memory 123. Illustratively, the NVM controller 122 may further include components such as error correction circuitry, a renderer, and the like.

예시적으로, 휘발성 메모리(121) 및 NVM 제어기(122)는 서로 동일한 메모리 데이터 라인(MDQ)을 공유할 수 있다. Illustratively, volatile memory 121 and NVM controller 122 may share the same memory data line (MDQ).

예시적으로, 휘발성 메모리(121) 및 모듈 컨트롤러(110)는 태그 데이터 라인(TDQ)을 서로 공유할 수 있다. 또는 휘발성 메모리(121), NVM 제어기(122), 및 모듈 컨트롤러(110)는 태그 데이터 라인(TDQ)을 서로 공유할 수 있다. NVM 제어기(122)는 태그 데이터 라인(TDQ)을 통해 태그(TAG)를 출력할 수 있다.Illustratively, volatile memory 121 and module controller 110 may share tag data lines (TDQ) with one another. Or the volatile memory 121, the NVM controller 122 and the module controller 110 may share the tag data line TDQ with each other. The NVM controller 122 may output the tag (TAG) through the tag data line (TDQ).

데이터 버퍼(130)는 메모리 데이터 라인(MDQ)을 통해 데이터를 수신하고, 수신된 데이터를 데이터 라인(DQ)을 통해 프로세서(101)로 제공할 수 있다. 또는 데이터 버퍼(130)는 데이터 라인(DQ)을 통해 데이터를 수신하고, 수신된 데이터를 메모리 데이터 라인(MDQ)을 통해 출력할 수 있다. 예시적으로, 데이터 버퍼(130)는 모듈 컨트롤러(110)의 제어(예를 들어, 버퍼 커맨드(미도시))에 응답하여 동작할 수 있다. 예시적으로, 데이터 버퍼(130)는 메모리 데이터 라인(MDQ) 상의 신호 및 데이터 라인(DQ) 상의 신호를 구분하는 역할을 수행할 수 있다. 또는 데이터 버퍼(130)는 메모리 데이터 라인(MDQ) 및 데이터 라인(DQ) 사이의 신호를 차단하는 역할을 수행할 수 있다. 즉, 데이터 버퍼(130)에 의해 메모리 데이터 라인(MDQ)의 신호가 데이터 라인(DQ)에 영향을 미치지 않거나 또는 데이터 버퍼(130)에 의해 데이터 라인(DQ)의 신호가 메모리 데이터 라인(MDQ)의 신호에 영향을 미치지 않을 수 있다.The data buffer 130 may receive data via the memory data line MDQ and provide the received data to the processor 101 via the data line DQ. Or the data buffer 130 may receive data through the data line DQ and output the received data through the memory data line MDQ. Illustratively, the data buffer 130 may operate in response to control of the module controller 110 (e.g., a buffer command (not shown)). Illustratively, the data buffer 130 may serve to distinguish between a signal on the memory data line MDQ and a signal on the data line DQ. Or the data buffer 130 may serve to block signals between the memory data line MDQ and the data line DQ. That is, if the signal of the memory data line MDQ does not affect the data line DQ by the data buffer 130 or if the signal of the data line DQ is supplied to the memory data line MDQ by the data buffer 130, It may not affect the signal of FIG.

예시적으로, 메모리 데이터 라인(MDQ)은 불휘발성 메모리 모듈(100)에 포함된 구성 요소들(예를 들어, 휘발성 메모리, 불휘발성 메모리, 데이터 버퍼 등) 사이의 데이터 전송 경로일 수 있고, 데이터 라인(DQ)은 불휘발성 메모리 모듈(100) 및 프로세서(101) 사이의 데이터 전송 경로일 수 있다. 태그 데이터 라인(TDQ)은 태그(TAG)를 송수신하기 위한 전송 경로일 수 있다.Illustratively, the memory data line MDQ may be a data transmission path between the components (e.g., volatile memory, nonvolatile memory, data buffer, etc.) included in the non-volatile memory module 100, The line DQ may be a data transmission path between the nonvolatile memory module 100 and the processor 101. [ The tag data line (TDQ) may be a transmission path for transmitting and receiving a tag (TAG).

예시적으로, 메모리 데이터 라인(MDQ), 데이터 라인(DQ), 및 태그 데이터 라인(TDQ) 각각은 복수의 배선들을 포함할 수 있다. 또한, 비록 도면에 도시되지는 않았으나, 메모리 데이터 라인(MDQ), 데이터 라인(DQ), 및 태그 데이터 라인(TDQ) 각각은 메모리 데이터 스트로브 라인(MDQS), 데이터 스트로브 라인(DQS), 및 태그 데이터 스트로브 라인(TDQS)을 포함할 수 있다. 이하에서, 도면의 간결성을 위하여, 데이터 스트로브 라인(MDQS), 데이터 스트로브 라인(DQS), 및 태그 데이터 스트로브 라인(TDQS)의 참조 번호 및 구성은 생략된다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 메모리 데이터 라인(MDQ), 데이터 라인(DQ), 및 태그 데이터 라인(TDQ)과 연결된 구성 요소들은 데이터 스트로브 라인(MDQS), 데이터 스트로브 라인(DQS), 및 태그 데이터 스트로브 라인(TDQS)의 신호에 동기하여 데이터 또는 태그를 송수신할 수 있다.Illustratively, each of the memory data line MDQ, the data line DQ, and the tag data line TDQ may include a plurality of wirings. Each of the memory data line MDQ, the data line DQ and the tag data line TDQ is connected to the memory data strobe line MDQS, the data strobe line DQS, and the tag data line TDQ, And a strobe line (TDQS). Hereinafter, in order to simplify the drawing, reference numerals and configurations of the data strobe line MDQS, the data strobe line DQS, and the tag data strobe line TDQS are omitted. However, the scope of the present invention is not limited thereto, and the components connected to the memory data line MDQ, the data line DQ, and the tag data line TDQ may be a data strobe line MDQS, a data strobe line DQS ), And a tag data strobe line (TDQS) in synchronism with each other.

SPD(140)는 프로그램 가능 읽기 전용 기억 장치(EEPROM; Electrically Erasable Programmable Read-Only Memory)일 수 있다. SPD(140)는 불휘발성 메모리 모듈(100)의 초기 정보 또는 장치 정보(DI)를 포함할 수 있다. 예시적으로, SPD(140)는 불휘발성 메모리 모듈(100)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 장치 정보(DI)를 포함할 수 있다. 불휘발성 메모리 모듈(100)이 포함된 사용자 시스템(10)이 부팅될 때, 프로세서(101)는 SPD(140)로부터 장치 정보(DI)를 읽고, 이를 기반으로 불휘발성 메모리 모듈(100)을 인식할 수 있다. 프로세서(101)는 SPD(140)로부터 읽은 장치 정보(DI)를 기반으로, 불휘발성 메모리 모듈(100)을 제어할 수 있다.SPD 140 may be an electrically erasable programmable read-only memory (EEPROM). SPD 140 may include initial information or device information DI of non-volatile memory module 100. Illustratively, SPD 140 may include device information DI such as module type, module configuration, storage capacity, module type, execution environment, etc. of non-volatile memory module 100. When the user system 10 including the nonvolatile memory module 100 is booted, the processor 101 reads the device information DI from the SPD 140 and recognizes the nonvolatile memory module 100 based on the information can do. The processor 101 may control the nonvolatile memory module 100 based on the device information DI read from the SPD 140. [

이하에서, 간결한 설명을 위하여, 휘발성 메모리(121)는 DRAM인 것으로 가정하고, 불휘발성 메모리(123)는 낸드 플래시 메모리인 것으로 가정한다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 휘발성 메모리(121)는 다른 종류의 랜덤 액세스 메모리를 포함할 수 있고, 불휘발성 메모리(123)는 다른 종류의 불휘발성 메모리 장치들을 포함할 수 있다.Hereinafter, for the sake of brevity, it is assumed that the volatile memory 121 is a DRAM, and the nonvolatile memory 123 is a NAND flash memory. However, the scope of the present invention is not so limited, and the volatile memory 121 may include other types of random access memory, and the non-volatile memory 123 may include other types of non-volatile memory devices .

예시적으로, 휘발성 메모리(121)는 복수의 휘발성 메모리 칩들을 포함할 수 있고, 각 휘발성 메모리 칩들은 별도의 칩, 별도의 패키지 등으로 구현될 수 있다. 각 휘발성 메모리 칩들은 서로 다른 메모리 데이터 라인들 또는 태그 데이터 라인을 통해 모듈 컨트롤러(110) 또는 NVM 제어기(122)와 연결될 수 있다. Illustratively, the volatile memory 121 may include a plurality of volatile memory chips, and each volatile memory chip may be implemented as a separate chip, a separate package, or the like. Each volatile memory chip may be connected to the module controller 110 or the NVM controller 122 via different memory data lines or tag data lines.

예시적으로, 프로세서(101)는 불휘발성 메모리 모듈(100)의 불휘발성 메모리(123)를 메인 메모리로써 사용할 수 있다. 즉, 프로세서(101)는 불휘발성 메모리(123)의 저장 공간을 메인 메모리 영역으로 인식할 수 있다. 휘발성 메모리(121)는 프로세서(101) 및 불휘발성 메모리(123)의 캐시 메모리로써 동작할 수 있다. 예시적으로, 휘발성 메모리(121)는 후 기입 캐시(write-back cache)로 사용될 수 있다. 즉, 프로세서(101)로부터의 모듈 커맨드/어드레스(CA)에 응답하여 모듈 컨트롤러(110)는 캐시 히트 또는 캐시 미스를 판별하고, 판별 결과에 따라 휘발성 메모리(121) 또는 불휘발성 메모리(123)를 제어할 수 있다. Illustratively, the processor 101 can use the nonvolatile memory 123 of the nonvolatile memory module 100 as a main memory. That is, the processor 101 can recognize the storage space of the nonvolatile memory 123 as a main memory area. The volatile memory 121 may operate as a cache memory of the processor 101 and the nonvolatile memory 123. [ Illustratively, volatile memory 121 may be used as a write-back cache. That is, in response to the module command / address CA from the processor 101, the module controller 110 determines a cache hit or a cache miss, and judges whether the cache hit or the cache miss has occurred in the volatile memory 121 or the nonvolatile memory 123 Can be controlled.

예시적으로, 캐시 히트는 프로세서(101)로부터 수신된 모듈 커맨드/어드레스(CA)와 대응되는 데이터가 휘발성 메모리(121)에 저장되어 있는 경우를 가리킨다. 캐시 미스는 프로세서(101)로부터 수신된 모듈 커맨드/어드레스(CA)와 대응되는 데이터가 휘발성 메모리(121)에 저장되어 있지 않은 경우를 가리킨다. Illustratively, the cache hit indicates a case where data corresponding to the module command / address (CA) received from the processor 101 is stored in the volatile memory 121. [ The cache miss indicates a case where data corresponding to the module command / address (CA) received from the processor 101 is not stored in the volatile memory 121.

예시적으로, 모듈 컨트롤러(110)는 태그(TAG)를 기반으로 캐시 히트 또는 캐시 미스 여부를 판별할 수 있다. 모듈 컨트롤러(110)는 프로세서(101)로부터 수신된 모듈 커맨드/어드레스(CA) 및 태그(TAG)를 비교함으로써 캐시 히트 또는 캐시 미스 여부를 판별할 수 있다.Illustratively, the module controller 110 may determine whether to cache hits or cache miss based on the tag (TAG). The module controller 110 can determine whether a cache hit or a cache miss by comparing the module command / address CA and the tag TAG received from the processor 101. [

예시적으로, 태그(TAG)는 휘발성 메모리(121)에 저장된 데이터와 대응되는 어드레스(address)의 일부를 포함할 수 있다. 예시적으로, 모듈 컨트롤러(110)는 태그 데이터 라인(TDQ)을 통해 휘발성 메모리(121)와 태그(TAG)를 주고 받을 수 있다. 예시적으로, 휘발성 메모리(121)에 데이터가 기입될 때, 모듈 컨트롤러(110)의 제어에 따라, 데이터와 대응되는 태그(TAG)가 휘발성 메모리(121)에 함께 기입될 수 있다. Illustratively, the tag (TAG) may include a portion of an address corresponding to the data stored in the volatile memory (121). Illustratively, the module controller 110 can exchange tag (TAG) with the volatile memory 121 via the tag data line (TDQ). Illustratively, when data is written to the volatile memory 121, a tag (TAG) corresponding to the data can be written together with the volatile memory 121 under the control of the module controller 110. [

예시적으로, 휘발성 메모리(121) 및 불휘발성 메모리(123)는 n:1(단, n은 자연수)의 직접 사상(direct mapping) 관계를 가질 수 있다. 즉, 휘발성 메모리(121)는 불휘발성 메모리(123)의 직접 사상 캐시(direct mapped cache)일 수 있다. 예를 들어, 휘발성 메모리(121)의 제1 휘발성 저장 영역은 불휘발성 메모리(123)의 제1 내지 제n 불휘발성 저장 영역들과 대응될 수 있다. 이 때, 제1 휘발성 저장 영역 및 제1 내지 제n 불휘발성 저장 영역들 각각은 서로 동일한 크기일 수 있다. 예시적으로, 제1 휘발성 저장 영역은 부가 정보(예를 들어, 태그, ECC, 더티 정보 등)를 저장하기 위한 영역을 더 포함할 수 있다.Illustratively, the volatile memory 121 and the nonvolatile memory 123 may have a direct mapping relationship of n: 1 (where n is a natural number). That is, the volatile memory 121 may be a direct mapped cache of the non-volatile memory 123. [ For example, the first volatile storage area of the volatile memory 121 may correspond to the first to n-th non-volatile storage areas of the non-volatile memory 123. [ At this time, the first volatile storage area and the first through n-th nonvolatile storage areas may be the same size. Illustratively, the first volatile storage area may further include an area for storing additional information (e.g., tags, ECC, dirty information, etc.).

비록 도면에 도시되지는 않았으나, 불휘발성 메모리 모듈(100)은 별도의 메모리(미도시)를 더 포함할 수 있다. 별도의 메모리(미도시)는 NVM 제어기(122)에서 사용되는 데이터, 프로그램, 소프트웨어 등과 같은 정보를 저장할 수 있다. 예를 들어, 별도의 메모리는 NVM 제어기(122)에 의해 관리되는 매핑 테이블, FTL 등과 같은 정보를 저장할 수 있다. 또는 별도의 메모리는 불휘발성 메모리(123)로부터 읽은 데이터 또는 불휘발성 메모리(123)에 저장될 데이터를 임시 저장하기 위한 버퍼 메모리일 수 있다.Although not shown in the figure, the non-volatile memory module 100 may further include a separate memory (not shown). A separate memory (not shown) may store information such as data, programs, and software used in the NVM controller 122. For example, the separate memory may store information such as a mapping table, FTL, etc., managed by the NVM controller 122. Or a separate memory may be a buffer memory for temporarily storing data read from the nonvolatile memory 123 or data to be stored in the nonvolatile memory 123. [

이하에서, 도 3 내지 도 8을 참조하여, 불휘발성 메모리 모듈(100)의 쓰기 동작 및 읽기 동작이 상세하게 설명된다. 이하에서, 간결한 설명을 위하여, 휘발성 메모리(121)와 연관된 구성 요소들(예를 들어, 데이터, 태그, 커맨드/어드레스 등)은 '_v'의 참조 기호를 사용하여 표현된다. 예를 들어, 휘발성 메모리(121)를 제어하기 위하여 모듈 컨트롤러(110)로부터 출력되는 VM 커맨드/어드레스는 'CA_v'로 표현되고, 모듈 컨트롤러(110)의 제어에 따라 휘발성 메모리(121)로부터 출력되는 데이터는 'DT_v'로 표현된다. 좀 더 상세하게는, 휘발성 메모리(121)에 데이터를 기입하기 위한 VM 쓰기 커맨드는 'WR_v'로 표현되고, 휘발성 메모리(121)로부터 데이터를 읽기 위한 VM 읽기 커맨드는 'RD_v'로 표현된다.Hereinafter, the write operation and the read operation of the nonvolatile memory module 100 will be described in detail with reference to FIG. 3 to FIG. In the following, for the sake of brevity, the components (e.g., data, tags, commands / addresses, etc.) associated with volatile memory 121 are represented using the reference symbols of '_v'. For example, the VM command / address output from the module controller 110 to control the volatile memory 121 is expressed as 'CA_v', and is output from the volatile memory 121 under the control of the module controller 110 The data is represented by 'DT_v'. More specifically, the VM write command for writing data to the volatile memory 121 is represented by 'WR_v', and the VM read command for reading data from the volatile memory 121 is represented by 'RD_v'.

마찬가지로, 불휘발성 메모리(123)와 연관된 구성 요소들(예를 들어, 데이터, 태그, 커맨드/어드레스 등)은 '_n'의 참조 기호를 사용하여 표현된다. 예를 들어, 불휘발성 메모리(123)를 제어하기 위하여 모듈 컨트롤러(110)로부터 출력되는 NVM 커맨드/어드레스는 'CA_n'로 표현되고, 모듈 컨트롤러(110)의 제어에 따라 불휘발성 메모리(121)로부터 출력되는 데이터는 'DT_n'로 표현된다. 좀 더 상세하게는, 불휘발성 메모리(123)에 데이터를 기입하기 위한 NVM 쓰기 커맨드는 'WR_n'으로 표현되고, 불휘발성 메모리(123)로부터 데이터를 읽기 위한 NVM 읽기 커맨드는 'RD_n'으로 표현된다.Likewise, components (e.g., data, tags, commands / addresses, etc.) associated with non-volatile memory 123 are represented using the reference character of '_n'. For example, the NVM command / address output from the module controller 110 to control the nonvolatile memory 123 is expressed as 'CA_n', and is output from the nonvolatile memory 121 under the control of the module controller 110 The output data is represented by 'DT_n'. More specifically, the NVM write command for writing data to the nonvolatile memory 123 is represented by 'WR_n', and the NVM read command for reading data from the nonvolatile memory 123 is represented by 'RD_n' .

도 3은 도 2의 불휘발성 메모리 모듈의 쓰기 동작을 보여주는 순서도이다. 도 1 내지 도 3을 참조하면, S11 단계에서, 프로세서(101)는 불휘발성 메모리 모듈(100)로 모듈 쓰기 커맨드 및 어드레스(WR, ADD)를 전송한다. 예를 들어, 프로세서(101)는 불휘발성 메모리 모듈(100)에 쓰기 데이터(DT_w)를 기입하기 위하여 모듈 쓰기 커맨드 및 어드레스(WR, ADD)를 불휘발성 메모리 모듈(100)로 전송한다. 예시적으로, 모듈 쓰기 커맨드 및 어드레스(WR, ADD)는 쓰기 데이터(DT_w)에 대응하는 어드레스(ADD)를 포함할 수 있다. 쓰기 데이터에 대응하는 어드레스(ADD)는 불휘발성 메모리 모듈(100)의 저장 공간, 즉, 불휘발성 메모리(123)의 저장 공간 중 일부에 대응하는 논리적 어드레스, 메모리 어드레스일 수 있다.3 is a flowchart showing a write operation of the nonvolatile memory module of FIG. Referring to Figs. 1 to 3, in step S11, the processor 101 transmits a module write command and addresses WR, ADD to the nonvolatile memory module 100. [ For example, the processor 101 transmits the module write command and the addresses WR and ADD to the nonvolatile memory module 100 in order to write the write data DT_w to the nonvolatile memory module 100. Illustratively, the module write command and addresses WR and ADD may include an address ADD corresponding to write data DT_w. The address ADD corresponding to the write data may be a logical address, a memory address corresponding to a storage space of the nonvolatile memory module 100, that is, a part of the storage space of the nonvolatile memory 123. [

S12 단계에서, 불휘발성 메모리 모듈(100)은 수신된 모듈 쓰기 커맨드 및 어드레스(WR, ADD)에 응답하여 휘발성 메모리(121)에 대한 읽기 동작을 수행할 수 있다. 예를 들어, 불휘발성 메모리 모듈(100)은 휘발성 메모리(121)의 영역 중 수신된 어드레스(ADD) 또는 수신된 어드레스(ADD)의 일부와 대응되는 영역에서 데이터 및 태그(TAG)를 읽을 수 있다. 예시적으로, 불휘발성 메모리 모듈(100)은 읽은 태그(TAG) 및 어드레스(ADD)를 비교함으로써 캐시 히트 또는 캐시 미스 여부를 판별할 수 있다.In step S12, the nonvolatile memory module 100 can perform a read operation to the volatile memory 121 in response to the received module write command and the addresses WR and ADD. For example, the non-volatile memory module 100 may read data and a tag (TAG) in an area corresponding to a received address ADD or a portion of the received address ADD in the area of the volatile memory 121 . Illustratively, the non-volatile memory module 100 can determine whether a cache hit or a cache miss by comparing the read tag (TAG) and the address (ADD).

S13 단계에서, 불휘발성 메모리 모듈(100)은 S12 단계의 읽기 동작의 결과를 기반으로 플러시 동작을 선택적으로 수행할 수 있다. 예를 들어, S12 단계의 읽기 동작의 결과가 캐시 미스를 가리키는 경우, 불휘발성 메모리 모듈(100)은 휘발성 메모리(121)로부터 읽은 데이터가 불휘발성 메모리(123)에 저장되도록 플러시 동작을 수행할 수 있다. 예시적으로, 도 2를 참조하여 설명된 바와 같이, 불휘발성 메모리(123)를 제어하는 NVM 제어기(122) 및 휘발성 메모리(121)는 메모리 데이터 라인(MDQ)을 공유한다. 즉, 휘발성 메모리(121)로부터 읽은 데이터에 의해 메모리 데이터 라인(MDQ)의 전압이 구동될 경우, 불휘발성 메모리(123)를 제어하는 NVM 제어기(122)는 메모리 데이터 라인(MDQ)을 통해 휘발성 메모리(121)로부터 읽은 데이터를 수신(또는 감지)할 수 있다. NVM 제어기(122)는 수신된 데이터를 불휘발성 메모리(123)에 프로그램할 수 있다.In step S13, the nonvolatile memory module 100 may selectively perform the flush operation based on the result of the read operation in step S12. For example, when the result of the read operation in step S12 indicates a cache miss, the nonvolatile memory module 100 can perform a flush operation such that data read from the volatile memory 121 is stored in the nonvolatile memory 123 have. Illustratively, as described with reference to FIG. 2, the NVM controller 122 and volatile memory 121, which control the non-volatile memory 123, share a memory data line (MDQ). That is, when the voltage of the memory data line MDQ is driven by the data read from the volatile memory 121, the NVM controller 122, which controls the nonvolatile memory 123, (Or sense) the data read from the memory 121. The NVM controller 122 may program the received data into the nonvolatile memory 123.

예시적으로, S12 단계의 읽기 동작의 결과가 캐시 히트를 가리키는 경우, 불휘발성 메모리 모듈(100)은 플러시 동작을 수행하지 않을 수 있다. 또는 S12 단계의 읽기 동작의 결과가 캐시 히트를 가리키고, 읽은 데이터가 더티 데이터(dirty data)인 경우, 불휘발성 메모리 모듈(100)은 플러시 동작을 수행할 수 있다.Illustratively, when the result of the read operation in step S12 indicates a cache hit, the non-volatile memory module 100 may not perform the flush operation. Or the result of the read operation in step S12 indicates a cache hit, and the read data is dirty data, the nonvolatile memory module 100 may perform a flush operation.

예시적으로, 불휘발성 메모리 모듈(100)의 플러시 동작, 캐시 히트 또는 캐시 미스 판별, 더티 데이터 판별과 같은 동작들은 NVM 제어기(122)에 의해 수행될 수 있다.Illustratively, operations such as flushing of the non-volatile memory module 100, cache hit or cache miss discrimination, dirty data discrimination can be performed by the NVM controller 122.

S14 단계에서, 프로세서(101)는 불휘발성 메모리 모듈(100)로 쓰기 데이터(DT_w)를 전송할 수 있다. 예시적으로, S11 단계로부터 미리 정해진 시간이 경과한 이후에, S14 단계의 동작이 수행될 수 있다. 즉, 프로세서(101)는 모듈 쓰기 커맨드 및 어드레스(WR, ADD)를 전송하고, 미리 정해진 시간이 경과한 이후에, 불휘발성 메모리 모듈(100)로 쓰기 데이터(DT_w)를 전송할 수 있다. 이 때, 미리 정해진 시간은 쓰기 레이턴시(WL; Write Latency)일 수 있다. 예시적으로, 쓰기 레이턴시(WL)는 불휘발성 메모리 모듈(100)의 동작 특성에 따라 미리 정해진 시간 또는 클럭 주기일 수 있다. 쓰기 레이턴시(WL)에 대한 정보는 SPD(140)에 저장되고, 장치 정보(DI)로써 프로세서(101)로 제공될 수 있다. 프로세서(101)는 장치 정보(DI)를 기반으로 쓰기 데이터(DT_w)를 전송할 수 있다.In step S14, the processor 101 can transmit the write data DT_w to the nonvolatile memory module 100. [ Illustratively, after the predetermined time has elapsed from step S11, the operation of step S14 may be performed. That is, the processor 101 can transmit the write data DT_w to the nonvolatile memory module 100 after a predetermined time has elapsed, by transmitting the module write command and the addresses WR and ADD. In this case, the predetermined time may be a write latency (WL). Illustratively, the write latency WL may be a predetermined time or clock period, depending on the operating characteristics of the non-volatile memory module 100. The information on the write latency WL may be stored in the SPD 140 and provided to the processor 101 as the device information DI. The processor 101 can transmit the write data DT_w based on the device information DI.

S15 단계에서, 불휘발성 메모리 모듈(100)은 수신된 쓰기 데이터(DT_w)를 휘발성 메모리(121) 또는 불휘발성 메모리(133)에 기입 또는 프로그램할 수 있다.The nonvolatile memory module 100 can write or program the received write data DT_w in the volatile memory 121 or the nonvolatile memory 133 in step S15.

도 4는 도 3의 동작 방법을 상세하게 설명하기 위한 타이밍도이다. 예시적으로, 본 발명의 기술적 사상이 커맨드, 어드레스, 데이터, 태그 등의 크기 및 타이밍은 도 4에 도시된 타이밍도에 국한되는 것은 아니다. 4 is a timing diagram for explaining the operation method of FIG. 3 in detail. Illustratively, the technical idea of the present invention is not limited to the timing and the timing of the command, the address, the data, the tag, and the like.

도 1 내지 도 4를 참조하면, 불휘발성 메모리 모듈(100)은 프로세서(101)로부터 모듈 쓰기 커맨드 및 제1 어드레스(WR, ADD1)를 수신한다. 불휘발성 메모리 모듈(100)의 모듈 컨트롤러(110)는 수신된 모듈 쓰기 커맨드 및 제1 어드레스(WR, ADD1)에 응답하여, NVM 커맨드/어드레스(CA_n) 및 VM 메모리 커맨드/어드레스(CA_n)를 출력할 수 있다. 이 때, NVM 커맨드/어드레스(CA_n)는 NVM 쓰기 커맨드 및 제1 어드레스(WR_v, ADD1)를 포함하고, VM 커맨드/어드레스(CA_v)는 VM 읽기 커맨드 및 제1 어드레스(RD_v, ADD1) 및 VM 쓰기 커맨드, 제1 어드레스(WR_v, ADD1)를 포함할 수 있다. 1 to 4, the nonvolatile memory module 100 receives the module write command and the first address WR, ADD1 from the processor 101. [ The module controller 110 of the nonvolatile memory module 100 outputs the NVM command / address CA_n and the VM memory command / address CA_n in response to the received module write command and the first address WR and ADD1 can do. At this time, the NVM command / address CA_n includes the NVM write command and the first address WR_v, ADD1, and the VM command / address CA_v includes the VM read command and the first address RD_v, ADD1, Command, and a first address WR_v, ADD1.

불휘발성 메모리 모듈(100)의 휘발성 메모리(121)는 VM 읽기 커맨드(RD_v)에 응답하여 휘발성 메모리(121)의 영역 중 제1 어드레스(ADD1)와 대응되는 영역에 저장된 데이터(DT_v) 및 태그(TAG_v)를 출력할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 휘발성 메모리(121)는 데이터(DT_v)를 기반으로 메모리 데이터 라인(MDQ)의 전압을 구동함으로써, 메모리 데이터 라인(MD 통해 데이터(DT_v)를 출력할 수 있다. 휘발성 메모리(121)는 태그(TAG)를 기반으로 태그 데이터 라인(TDQ)의 전압을 구동함으로써, 태그 데이터 라인(TDQ)을 통해 태그(TAG)를 출력할 수 있다.The volatile memory 121 of the nonvolatile memory module 100 responds to the VM read command RD_v by reading the data DT_v and the tag DT_v stored in the area corresponding to the first address ADD1 in the area of the volatile memory 121 TAG_v). For example, as described above, the volatile memory 121 can output the data DT_v via the memory data line (MD) by driving the voltage of the memory data line MDQ based on the data DT_v . The volatile memory 121 can output the tag TAG through the tag data line TDQ by driving the voltage of the tag data line TDQ based on the tag TAG.

프로세서(101)는 데이터 라인(DQ)을 통해 쓰기 데이터(DT_w)를 출력할 수 있다. 불휘발성 메모리 모듈(100)은 데이터 라인(DQ)을 통해 수신된 쓰기 데이터(DT_w)를 메모리 데이터 라인(MDQ)을 통해 휘발성 메모리(121) 또는 NVM 제어기(122)로 제공하고, 쓰기 데이터(DT_w)(또는 제1 어드레스(ADD1))와 대응되는 태그(TAG_w)를 태그 데이터 라인(TDQ)을 통해 휘발성 메모리(121)로 제공할 수 있다. 휘발성 메모리(121) 또는 NVM 제어기(122)는 수신된 신호들을 기반으로 쓰기 동작 또는 프로그램 동작을 수행할 수 있다.The processor 101 can output the write data DT_w via the data line DQ. The nonvolatile memory module 100 provides the write data DT_w received via the data line DQ to the volatile memory 121 or the NVM controller 122 via the memory data line MDQ and supplies the write data DT_w (Or the first address ADD1) to the volatile memory 121 through the tag data line TDQ. The volatile memory 121 or the NVM controller 122 may perform a write operation or a program operation based on the received signals.

비록 도면에 도시되지는 않았으나, 휘발성 메모리(121)로부터 읽은 태그(TAG_v)에 따라 플러시 동작이 선택적으로 수행될 수 있다. Although not shown in the drawing, the flush operation can be selectively performed according to the tag TAG_v read from the volatile memory 121. [

도 5는 도 2의 불휘발성 메모리 모듈(100)의 읽기 동작을 보여주는 순서도이다. 도 1, 도 2, 및 도 5를 참조하면, S21 단계에서, 프로세서(101)는 불휘발성 메모리 모듈(100)로 모듈 읽기 커맨드 및 어드레스(RD, ADD)를 전송한다. 5 is a flowchart showing a read operation of the nonvolatile memory module 100 of FIG. Referring to FIGS. 1, 2 and 5, in step S21, the processor 101 transmits a module read command and addresses (RD, ADD) to the nonvolatile memory module 100.

S21 단계에서, 불휘발성 메모리 모듈(100)은 모듈 읽기 커맨드 및 어드레스(RD, ADD)에 응답하여, 휘발성 메모리(121)에 대한 읽기 동작을 수행한다. 예를 들어, 모듈 읽기 커맨드 및 어드레스(RD, ADD)는 불휘발성 메모리 모듈(100)에 저장된 데이터를 읽기 위한 읽기 커맨드 및 읽기 데이터에 대응하는 읽기 어드레스를 포함할 수 있다. 불휘발성 메모리 모듈(100)은 휘발성 메모리(121)의 영역 중 읽기 어드레스와 대응하는 영역에 저장된 데이터 및 태그를 읽을 수 있다.In step S21, the nonvolatile memory module 100 performs a read operation to the volatile memory 121 in response to the module read command and the addresses (RD, ADD). For example, the module read command and the addresses (RD, ADD) may include a read command for reading data stored in the nonvolatile memory module 100 and a read address corresponding to the read data. The nonvolatile memory module 100 can read the data and the tag stored in the area corresponding to the read address in the area of the volatile memory 121.

S22 단계에서, 불휘발성 메모리 모듈(100)은 읽기 결과를 기반으로 캐시 히트 또는 캐시 미스를 판별할 수 있다. 앞서 설명된 바와 같이, 태그(TAG)는 어드레스의 일부 정보를 포함한다. 불휘발성 메모리 모듈(100)은 수신된 읽기 어드레스 및 태그(TAG)를 비교함으로써 캐시 히트 또는 캐시 미스를 판별할 수 있다. 수신된 어드레스의 일부와 태그(TAG)가 일치하는 경우, 불휘발성 메모리 모듈(100)은 캐시 히트로 판별하고, 수신된 어드레스의 일부와 태그(TAG)가 일치하지 않는 경우, 불휘발성 메모리 모듈(100)은 캐시 미스로 판별한다.In step S22, the nonvolatile memory module 100 can determine a cache hit or a cache miss based on the read result. As described above, the tag TAG includes some information of the address. The non-volatile memory module 100 can determine a cache hit or a cache miss by comparing the received read address and the tag (TAG). When a part of the received address matches the tag (TAG), the nonvolatile memory module 100 determines that it is a cache hit, and if the tag (TAG) does not match a part of the received address, the nonvolatile memory module 100) is judged as a cache miss.

예시적으로, 캐시 미스로 판별된 경우의 읽기 동작은 도 7 및 도 8을 참조하여 설명된다.Illustratively, a read operation in the case of being determined as a cache miss will be described with reference to Figs. 7 and 8. Fig.

캐시 히트로 판별된 경우, S24 단계에서, 불휘발성 메모리 모듈(100)은 휘발성 메모리(121)로부터 읽은 데이터 및 캐시 정보(INFO)를 프로세서(101)로 전송한다. 캐시 정보(INFO)는 출력되는 데이터가 캐시 히트인지 또는 캐시 미스인지에 대한 정보를 포함한다. 프로세서(101)는 캐시 정보(INFO)를 통해 수신된 데이터(DT_v)가 유효한 데이터인지 판별할 수 있다. 즉, 불휘발성 메모리 모듈(100)이 캐시 히트(H)에 대한 정보를 캐시 정보(INFO)로써 제공함으로써 프로세서(101)는 수신된 데이터가 유효한 데이터인 것을 인지할 수 있다.The nonvolatile memory module 100 transfers the data read from the volatile memory 121 and the cache information INFO to the processor 101 in step S24. The cache information INFO includes information on whether the outputted data is a cache hit or a cache miss. The processor 101 can determine whether the data DT_v received via the cache information INFO is valid data. That is, since the nonvolatile memory module 100 provides the cache hit information H as cache information INFO, the processor 101 can recognize that the received data is valid data.

예시적으로, S21 단계로부터 미리 정해진 시간이 경과한 이후에 S24 단계의 동작이 수행될 수 있다. 즉, 프로세서(101)가 모듈 읽기 커맨드 및 어드레스(RD, ADD)를 전송하고, 미리 정해진 시간이 경과한 이후에, 불휘발성 메모리 모듈(100)로부터 읽기 데이터가 수신될 것이다. 이 때, 미리 정해진 시간은 읽기 레이턴시(RL; Read Latency)일 수 있다. 읽기 레이턴시(RL)는 불휘발성 메모리 모듈(100)의 동작 특성에 따라 미리 정해진 시간 또는 클럭 주기일 수 있다. 읽기 레이턴시(RL)에 대한 정보는 SPD(140)에 저장되고, 장치 정보(DI)로써 프로세서(101)로 제공될 수 있다. 프로세서(101)는 읽기 레이턴시(RL)를 기반으로 불휘발성 메모리 모듈을 제어할 수 잇다.Illustratively, after the predetermined time has elapsed from step S21, the operation of step S24 may be performed. That is, the processor 101 transmits the module read command and the addresses (RD, ADD), and read data will be received from the nonvolatile memory module 100 after a predetermined time has elapsed. At this time, the predetermined time may be a read latency (RL). The read latency RL may be a predetermined time or a clock cycle depending on the operating characteristics of the nonvolatile memory module 100. [ Information about the read latency RL may be stored in the SPD 140 and provided to the processor 101 as device information DI. The processor 101 can control the non-volatile memory module based on the read latency (RL).

도 6은 도 5의 읽기 동작을 상세하게 설명하기 위한 타이밍도이다. 도 1, 도 2, 도 5, 및 도 6을 참조하면, 불휘발성 메모리 모듈(100)은 프로세서(101)로부터 모듈 읽기 커맨드 및 제1 어드레스(RD, ADD1)를 수신하고, 수신된 신호에 응답하여 NVM 커맨드/어드레스(CA_n) 및 VM 커맨드/어드레스(CA_v)를 출력한다. 이 때, NVM 커맨드/어드레스(CA_n)는 불휘발성 메모리(123)에 저장된 데이터를 읽기 위한 NVM 읽기 커맨드 및 제1 어드레스(RD_n, ADD1)를 포함할 수 있다. VM 커맨드/어드레스(CA_v)는 휘발성 메모리(121)에 저장된 데이터를 읽기 위한 VM 읽기 커맨드 및 제1 어드레스(RD_v, ADD1)를 포함할 수 있다.6 is a timing chart for explaining the read operation of FIG. 5 in detail. Referring to Figures 1, 2, 5 and 6, the non-volatile memory module 100 receives a module read command and a first address (RD, ADD1) from the processor 101, And outputs the NVM command / address CA_n and the VM command / address CA_v. At this time, the NVM command / address CA_n may include an NVM read command for reading data stored in the nonvolatile memory 123 and a first address RD_n and ADD1. The VM command / address CA_v may include a VM read command for reading data stored in the volatile memory 121 and a first address RD_v, ADD1.

휘발성 메모리(121)는 VM 읽기 커맨드 및 제1 어드레스(RD_v, ADD1)에 응답하여, 휘발성 메모리(121)의 영역 중 제1 어드레스(ADD1)와 대응되는 영역에 저장된 데이터(DT_v) 및 태그(TAG_v)를 출력할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 휘발성 메모리(121)는 데이터(DT_v)를 기반으로 메모리 데이터 라인(MDQ)의 전압을 구동함으로써, 메모리 데이터 라인(MDQ)을 통해 데이터(DT_v)를 출력할 수 있다. 휘발성 메모리(121)는 태그(TAG_v)를 기반으로 태그 데이터 라인(TDQ)의 전압을 구동함으로써, 태그 데이터 라인(TDQ)을 통해 태그(TAG_v)를 출력할 수 있다.The volatile memory 121 responds to the VM read command and the first address RD_v and ADD1 to write the data DT_v and the tag TAG_v stored in the area corresponding to the first address ADD1 in the area of the volatile memory 121 Can be output. For example, as described above, the volatile memory 121 outputs the data DT_v through the memory data line MDQ by driving the voltage of the memory data line MDQ based on the data DT_v . The volatile memory 121 can output the tag TAG_v through the tag data line TDQ by driving the voltage of the tag data line TDQ based on the tag TAG_v.

모듈 컨트롤러(110)는 태그 데이터 라인(TDQ)을 통해 태그(TAG_v)를 수신하고, 수신된 태그(TAG_v) 및 제1 어드레스(ADD1)를 비교함으로써 캐시 히트인지 또는 캐시 미스인지 판별할 수 있다.The module controller 110 can receive the tag TAG_v via the tag data line TDQ and compare the received tag TAG_v and the first address ADD1 to determine whether it is a cache hit or a cache miss.

캐시 히트인 경우, 불휘발성 메모리 모듈(100)은 휘발성 메모리(131)로부터 읽은 데이터(DT_v)를 데이터 라인(DQ)을 통해 출력하고, 캐시 히트(H) 정보를 포함하는 캐시 정보(INFO)를 출력할 수 있다. 프로세서(101)는 캐시 히트(H) 정보를 포함하는 캐시 정보(INFO)를 수신함으로써, 데이터 라인(DQ)을 통해 수신된 데이터(DT_v)가 유효한 데이터임을 인지할 수 있다.The nonvolatile memory module 100 outputs the data DT_v read from the volatile memory 131 through the data line DQ and stores the cache information INFO containing the cache hit information H Can be output. The processor 101 can recognize that the data DT_v received via the data line DQ is valid data by receiving the cache information INFO including the cache hit H information.

도 7은 도 2의 불휘발성 메모리 모듈(100)의 다른 읽기 동작을 보여주는 순서도이다. 예시적으로, 도 7을 참조하여, 캐시 미스인 경우의 읽기 동작이 설명된다. FIG. 7 is a flowchart showing another read operation of the nonvolatile memory module 100 of FIG. Illustratively, with reference to FIG. 7, a read operation in the case of a cache miss will be described.

도 1, 도 2, 도 5, 및 도 7을 참조하면, S23 단계의 판별 결과가 캐시 미스인 것을 가리키는 경우, S25 단계의 동작이 수행된다. S25 단계에서, 불휘발성 메모리 모듈(100)은 휘발성 메모리(121)로부터 읽은 데이터(DT_v) 및 캐시 정보(INFO)를 프로세서(101)로 전송한다. 이 때, 캐시 정보(INFO)는 캐시 미스(M)에 대한 정보를 포함할 것이다.Referring to FIGS. 1, 2, 5, and 7, if the determination result in step S23 indicates that the cache miss is detected, the operation in step S25 is performed. The nonvolatile memory module 100 transfers the data DT_v and the cache information INFO read from the volatile memory 121 to the processor 101 in step S25. At this time, the cache information INFO will contain information about the cache miss M.

예시적으로, 앞서 설명된 바와 같이, S25 단계의 동작 또한 모듈 읽기 커맨드 및 어드레스(RD, ADD)가 수신된 시점으로부터 읽기 레이턴시(RL) 이후에 수행될 수 있다.Illustratively, as described above, the operation of step S25 may also be performed after the read latency RL from the time the module read command and the addresses RD, ADD are received.

S26 단계에서, 불휘발성 메모리 모듈(100)은 불휘발성 메모리(123)에 대한 선-읽기 동작을 수행할 수 있다. 예시적으로, 선-읽기 동작은 NVM 제어기(122)가 불휘발성 메모리(123)로부터 데이터를 읽고, 읽은 데이터를 NVM 제어기(122)에 포함된 데이터 버퍼(미도시)에 저장하는 동작을 가리킨다. 또는 선-읽기 동작은 프로세서(101)의 명령에 따라 NVM 제어기(122)가 읽기 레이턴시(RL) 이내에 불휘발성 메모리(123)로부터의 데이터를 출력할 수 있도록 읽기 데이터를 준비하는 동작을 가리킨다. 즉, 불휘발성 메모리(123)에 대한 선-읽기 동작이 완료된 경우, 프로세서(101)로부터의 명령에 응답하여 읽기 레이턴시(RL) 이내에 불휘발성 메모리(123)로부터의 데이터가 출력될 것이다. In step S26, the non-volatile memory module 100 may perform a pre-reading operation with respect to the non-volatile memory 123. [ Illustratively, a pre-read operation refers to an operation in which the NVM controller 122 reads data from the non-volatile memory 123 and stores the read data in a data buffer (not shown) included in the NVM controller 122. Or read-ahead operation refers to an operation of preparing read data so that the NVM controller 122 can output the data from the non-volatile memory 123 within a read latency (RL) according to a command of the processor 101. [ That is, when the pre-reading operation for the non-volatile memory 123 is completed, the data from the non-volatile memory 123 will be output within the read latency RL in response to the instruction from the processor 101. [

예시적으로, 선-읽기 동작은 S22 단계 내지 S25 단계의 동작들이 수행되는 동안 수행될 수 있다. 또는 선-읽기 동작은 캐시 미스로 판별된 경우, NVM 제어기(122)에 의해 수행될 수 있다. 예를 들어, NVM 제어기(122)는 모듈 컨트롤러(110)로부터 제1 어드레스(ADD1)를 수신하고, 태그 데이터 라인(TDQ)을 통해 태그(TAG)를 수신할 수 있다. NVM 제어기(122)는 수신된 제1 어드레스(ADD1) 및 태그(TAG)를 비교함으로써 캐시 히트인지 또는 캐시 미스인지 판별할 수 있다. 판별 결과에 따라, NVM 제어기(122)는 선-읽기 동작을 수행할 수 있다. 예시적으로, NVM 제어기(122)에 의한 캐시 히트 또는 캐시 미스에 대한 판별 동작은 휘발성 메모리(121)로부터 태그(TAG_v)가 출력된 이후에 수행될 수 있다.Illustratively, a pre-read operation may be performed while operations S22 to S25 are performed. Or a pre-read operation may be performed by the NVM controller 122 if it is determined to be a cache miss. For example, the NVM controller 122 may receive the first address ADD1 from the module controller 110 and the tag TAG via the tag data line TDQ. The NVM controller 122 can determine whether a cache hit or a cache miss by comparing the received first address ADD1 and the tag TAG. According to the determination result, the NVM controller 122 can perform a pre-read operation. Illustratively, a determination operation for a cache hit or a cache miss by the NVM controller 122 may be performed after the tag TAG_v is output from the volatile memory 121. [

선-읽기 동작이 완료된 이후에, S27 단계에서, 불휘발성 메모리 모듈(100)은 레디 신호(R)를 프로세서(101)로 제공한다. 예시적으로, 레디 신호(R)는 불휘발성 메모리 모듈(100)이 선-읽기 동작을 완료했음을 알리는 신호일 수 있다. 레디 신호(R)는 캐시 정보(INFO)가 전송되는 신호 라인을 통해 제공되거나 또는 별도의 신호 라인을 통해 제공될 수 있다.After the pre-read operation is completed, the nonvolatile memory module 100 provides the ready signal R to the processor 101 in step S27. Illustratively, the ready signal R may be a signal indicating that the non-volatile memory module 100 has completed the pre-read operation. The ready signal R may be provided through a signal line through which the cache information INFO is transmitted or may be provided via a separate signal line.

S28 단계에서, 프로세서(101)는 레디 신호(R)에 응답하여 모듈 읽기 커맨드 및 어드레스(NRD, ADD)를 불휘발성 메모리 모듈(100)로 제공할 수 있다. 예시적으로, 모듈 읽기 커맨드는(NRD)는 S21 단계의 모듈 읽기 커맨드(RD)와 다를 수 있다. 모듈 읽기 커맨드(NRD)는 불휘발성 메모리(123)로부터의 데이터를 읽기 위한 커맨드/어드레스일 수 있다.In step S28, the processor 101 may provide the module read command and the addresses NRD and ADD to the non-volatile memory module 100 in response to the ready signal R. [ Illustratively, the module read command (NRD) may be different from the module read command RD in step S21. The module read command NRD may be a command / address for reading data from the nonvolatile memory 123.

S29 단계에서, 모듈 읽기 커맨드 및 어드레스(NRD, ADD)에 응답하여 불휘발성 메모리 모듈(100)은 불휘발성 메모리(123)에 대한 읽기 동작 및 휘발성 메모리(121)에 대한 쓰기 동작을 수행한다. 예를 들어, 불휘발성 메모리 모듈(100)의 NVM 제어기(122)는 선-읽기 동작에서 준비된 데이터를 기반으로 메모리 데이터 라인(MDQ)을 구동할 수 있다. 휘발성 메모리(121)는 메모리 데이터 라인(MDQ)을 통해 NVM 제어기(122)로부터 출력된 데이터(즉, 불휘발성 메모리(123)로부터 출력된 데이터)를 수신하고, 수신된 데이터를 기입할 수 있다. 이 때, 휘발성 메모리(121)의 쓰기 동작은 읽기 캐싱 동작일 수 있다.In step S29, the nonvolatile memory module 100 performs a read operation to the nonvolatile memory 123 and a write operation to the volatile memory 121 in response to the module read command and the addresses NRD and ADD. For example, the NVM controller 122 of the non-volatile memory module 100 may drive a memory data line (MDQ) based on data prepared in a pre-read operation. The volatile memory 121 can receive the data output from the NVM controller 122 (i.e., the data output from the nonvolatile memory 123) via the memory data line MDQ and write the received data. At this time, the write operation of the volatile memory 121 may be a read caching operation.

S2a 단계에서, 불휘발성 메모리 모듈(100)은 불휘발성 메모리(123)로부터의 데이터(DT_n)를 프로세서(101)로 전송할 수 있다. 예를 들어, 불휘발성 메모리 모듈(100)은 데이터 라인(DQ)을 통해 불휘발성 메모리(123)로부터의 데이터(DT_n)를 출력할 수 있다. 예시적으로, S2a 단계의 동작은 S28 단계의 동작으로부터 미리 정해진 시간 이후에 수행될 수 있다. 미리 정해진 시간은 읽기 레이턴시(RL')일 수 있다. 예시적으로, 도 7의 읽기 레이턴시(RL')는 도 5의 읽기 레이턴시(RL)와 다를 수 있으며, 이들에 대한 정보는 SPD(140)에 저장되고, 장치 정보(DI)로써 프로세서(101)로 제공될 수 있다. In step S2a, the nonvolatile memory module 100 can transfer the data DT_n from the nonvolatile memory 123 to the processor 101. [ For example, the non-volatile memory module 100 can output the data DT_n from the nonvolatile memory 123 via the data line DQ. Illustratively, the operation of step S2a may be performed after a predetermined time from the operation of step S28. The predetermined time may be the read latency RL '. 7 may be different from the read latency RL of FIG. 5, and information about them may be stored in the SPD 140 and stored in the processor 101 as device information DI. For example, the read latency RL of FIG. Lt; / RTI >

도 8은 도 7의 읽기 동작을 상세하게 설명하기 위한 타이밍도이다. 간결한 설명을 위하여, 앞서 설명된 구성과 중복되는 구성들에 대한 상세한 설명은 생략된다.8 is a timing chart for explaining the read operation of FIG. 7 in detail. For the sake of brevity, a detailed description of the configurations overlapping with those described above is omitted.

도 1, 도 2, 도 5, 도 7, 및 도 8을 참조하면, 불휘발성 메모리 모듈(100)은 프로세서(101)로부터 모듈 읽기 커맨드 및 제1 어드레스(RD, ADD1)를 수신한다. 불휘발성 메모리 모듈(100)의 모듈 컨트롤러(110)는 모듈 읽기 커맨드 및 제1 어드레스(RD, ADD1)에 응답하여 NVM 읽기 커맨드 및 제1 어드레스(RD_n, ADD1)를 NVM 제어기(122)로 제공하고, VM 읽기 커맨드 및 제1 어드레스(RD_v, ADD1)를 휘발성 메모리(121)로 제공한다. Referring to FIGS. 1, 2, 5, 7 and 8, the nonvolatile memory module 100 receives a module read command and a first address RD, ADD1 from the processor 101. The module controller 110 of the nonvolatile memory module 100 provides the NVM read command and the first address RD_n and ADD1 to the NVM controller 122 in response to the module read command and the first address RD and ADD1 , The VM read command and the first address (RD_v, ADD1) to the volatile memory 121.

휘발성 메모리(121)는 VM 읽기 커맨드 및 제1 어드레스(RD_v, ADD1)에 응답하여, 휘발성 메모리(121)의 영역 중 제1 어드레스(ADD1)에 대응하는 영역의 데이터(DT_v) 및 태그(TAG_v)를 메모리 데이터 라인(MDQ)을 통해 출력할 수 있다. 즉, 휘발성 메모리(121)는 데이터(DT_v) 및 태그(TAG_v)를 기반으로 메모리 데이터 라인(MDQ) 및 태그 데이터 라인(TDQ)의 전압들을 각각 구동할 수 있다. 메모리 데이터 라인(MDQ) 상의 데이터(DT_v)는 모듈 컨트롤러(110) 및 데이터 버퍼(130)의 제어에 따라 데이터 라인(DQ)을 통해 출력된다. The volatile memory 121 responds to the VM read command and the first address RD_v and ADD1 to write the data DT_v and the tag TAG_v in the area corresponding to the first address ADD1 in the area of the volatile memory 121, Can be output through the memory data line MDQ. That is, the volatile memory 121 can drive voltages of the memory data line MDQ and the tag data line TDQ, respectively, based on the data DT_v and the tag TAG_v. Data DT_v on the memory data line MDQ is output through the data line DQ under the control of the module controller 110 and the data buffer 130. [

모듈 컨트롤러(110)는 휘발성 메모리(121)로부터 출력된 태그(TAG_v) 및 제1 어드레스(ADD1)를 비교함으로써, 캐시 히트 또는 캐시 미스 여부를 판별할 수 있다. 캐시 미스인 경우, 모듈 컨트롤러(110)는 캐시 미스(M)에 대한 캐시 정보(INFO)를 프로세서(101)로 전송할 수 있다. 이 때, 프로세서(101)는 데이터 라인(DQ)을 통해 수신된 데이터(DT_v)가 캐시 미스(M)임을 인지할 수 있다.The module controller 110 can determine whether a cache hit or a cache miss by comparing the tag TAG_v and the first address ADD1 output from the volatile memory 121. [ In the case of a cache miss, the module controller 110 may transmit cache information (INFO) for the cache miss (M) to the processor 101. At this time, the processor 101 may recognize that the data DT_v received via the data line DQ is a cache miss M.

불휘발성 메모리 모듈(100)은 선-읽기 동작을 수행할 수 있다. 예시적으로, NVM 제어기(122)는 모듈 컨트롤러(110)로부터의 불휘발성 메모리 읽기 커맨드 및 제1 어드레스(ADD1)에 응답하여 불휘발성 메모리(123)의 영역 중 제1 어드레스(ADD1)와 대응되는 영역의 데이터를 준비(또는 별도의 데이터 버퍼에 저장)할 수 있다. 선-읽기 동작이 완료된 경우, 모듈 컨트롤러(110)는 준비 신호(R)를 프로세서(101)로 전송할 수 있다. 예시적으로, 준비 신호(R)는 캐시 정보(INFO)와 동일한 라인, 또는 별도의 신호 라인, 또는 데이터 라인(DQ)을 통해 프로세서(101)로 제공될 수 있다.The non-volatile memory module 100 may perform a pre-read operation. Illustratively, the NVM controller 122 responds to the nonvolatile memory read command and the first address ADD1 from the module controller 110 to compare the first address ADD1 in the area of the nonvolatile memory 123 The data of the area can be prepared (or stored in a separate data buffer). When the pre-read operation is completed, the module controller 110 can transmit the ready signal R to the processor 101. [ Illustratively, the ready signal R may be provided to the processor 101 via the same line as the cache information INFO, a separate signal line, or the data line DQ.

준비 신호(R)에 응답하여, 프로세서(101)는 모듈 읽기 커맨드 및 제1 어드레스(NRD, ADD1)를 불휘발성 메모리 모듈(100)로 전송한다. 모듈 읽기 커맨드 및 제1 어드레스(NRD, ADD1)에 응답하여, 불휘발성 메모리 모듈(100)은 NVM 읽기 커맨드 및 제1 어드레스(RD_n', ADD1)를 NVM 제어기(122)로 제공한다. 예시적으로, 모듈 읽기 커맨드(NRD)에 따른 NVM 읽기 커맨드 (RD_n)는 모듈 읽기 커맨드(RD)에 따른 NVM 읽기 커맨드(RD_n)와 다를 수 있다.In response to the ready signal R, the processor 101 transmits the module read command and the first addresses NRD and ADD1 to the nonvolatile memory module 100. [ In response to the module read command and the first address NRD, ADD1, the nonvolatile memory module 100 provides the NVM read command and the first address RD_n ', ADD1 to the NVM controller 122. Illustratively, the NVM read command RD_n in accordance with the module read command NRD may be different from the NVM read command RD_n in accordance with the module read command RD.

예시적으로, 모듈 읽기 커맨드들(NRD, RD) 각각은 프로세서(101) 및 불휘발성 메모리 모듈(100) 사이의 통신 규약에 의해 미리 정의된 커맨드일 수 있다.Illustratively, each of the module read commands NRD and RD may be a predefined command by a communication protocol between the processor 101 and the non-volatile memory module 100. [

NVM 제어기(122)는 NVM 읽기 커맨드 및 제1 어드레스(RD_n', ADD1)에 응답하여, 선-읽기 동작에서 준비된 데이터(DT_n)를 메모리 데이터 라인(MDQ)을 통해 출력할 수 있다. 예시적으로, NVM 제어기(122)는 데이터(DT_n)와 대응되는 태그(TAG_n)를 태그 데이터 라인(TDQ)을 통해 출력할 수 있다. 예시적으로, 데이터(DT_n)와 대응되는 태그(TAG_n)는 데이터(DT_n)와 대응되는 제1 어드레스(ADD1)의 일부를 포함할 수 있다. 메모리 데이터 라인(MDQ) 상의 데이터(DT_n)는 모듈 컨트롤러(110) 및 데이터 버퍼(130)의 제어에 따라 데이터 라인(DQ)으로 출력될 수 있다. The NVM controller 122 may output the data DT_n prepared in the pre-read operation through the memory data line MDQ in response to the NVM read command and the first address RD_n ', ADD1. Illustratively, the NVM controller 122 may output the tag TAG_n corresponding to the data DT_n via the tag data line TDQ. Illustratively, the tag TAG_n corresponding to the data DT_n may include a portion of the first address ADD1 corresponding to the data DT_n. The data DT_n on the memory data line MDQ may be output to the data line DQ under the control of the module controller 110 and the data buffer 130. [

예시적으로, 데이터(DT_n)가 출력되는 동안 불휘발성 메모리 모듈(100)은 읽기 캐싱(read caching)을 수행할 수 있다. 예를 들어, 모듈 컨트롤러(110)는 불휘발성 메모리 읽기 커맨드/어드레스(CA_NRD)에 응답하여 VM 쓰기 커맨드 및 제1 어드레스(WR_v, ADD1)를 휘발성 메모리(121)로 제공할 수 있다.Illustratively, the non-volatile memory module 100 can perform read caching while the data DT_n is output. For example, the module controller 110 may provide the VM write command and the first address WR_v, ADD1 to the volatile memory 121 in response to a nonvolatile memory read command / address (CA_NRD).

예시적으로, VM 쓰기 커맨드 및 제1 어드레스(WR_v, ADD1)는 NVM 읽기 커맨드 및 제1 어드레스(RD_n', ADD1)와 소정의 시간을 가질 수 있다. 즉, NVM 제어기(122)가 NVM 읽기 커맨드 및 제1 어드레스(RD_n', ADD1)에 응답하여 메모리 데이터 라인(MDQ)을 통해 데이터(DT_n)를 출력하는 시점에 동기되어 VM 쓰기 커맨드 및 제1 어드레스(WR_v, ADD1)가 휘발성 메모리(121)로 제공될 수 있다.Illustratively, the VM write command and the first address WR_v, ADD1 may have a predetermined time with the NVM read command and the first address RD_n ', ADD1. That is, the NVM controller 122 synchronizes with the timing at which the NVM controller 122 outputs the data DT_n via the memory data line MDQ in response to the NVM read command and the first address RD_n ', ADD1, (WR_v, ADD1) may be provided to the volatile memory 121. [

휘발성 메모리(121)는 휘발성 메모리 쓰기 커맨드 및 제1 어드레스(WR_v, ADD1)에 응답하여, 휘발성 메모리(121)의 영역 중 제1 어드레스(ADD1)와 대응되는 영역에 메모리 데이터 라인(MDQ) 상의 데이터(DT_n) 및 태그 데이터 라인(TDQ) 상의 태그(TAG_n)를 기입할 수 있다. 상술된 읽기 캐싱을 통해, 불휘발성 메모리 모듈(100)의 캐시 히트율이 증가할 수 있다.The volatile memory 121 stores data on the memory data line MDQ in an area corresponding to the first address ADD1 in the area of the volatile memory 121 in response to the volatile memory write command and the first address WR_v and ADD1. (DT_n) and a tag (TAG_n) on the tag data line (TDQ). Through the above-described read caching, the cache hit rate of the nonvolatile memory module 100 can be increased.

상술된 바와 같은 불휘발성 메모리 모듈(100)의 구조, 쓰기 동작, 또는 읽기 동작은 예시적인 것이며, 본 발명의 기술적 사상으로부터의 벗어남 없이 다양하게 변형될 수 있다.The structure, write operation, or read operation of the non-volatile memory module 100 as described above is exemplary and can be variously modified without departing from the technical idea of the present invention.

도 9는 도 2의 휘발성 메모리의 캐시 구조를 설명하기 위한 도면이다. 간결한 설명을 위하여, 휘발성 메모리(121)의 캐시 구조를 설명하는데 불필요한 구성 요소들은 생략된다. 또한, 불휘발성 메모리(123)의 저장 영역은 제1 내지 제4 영역들(AR1~AR4)로 구분되는 것으로 가정한다. 제1 내지 제4 영역들(AR1~AR4)은 논리적으로 구분된 영역들이며, 불휘발성 메모리(123)의 저장 영역은 제1 내지 제4 영역들(AR1~AR4) 이외의 저장 공간을 더 포함할 수 있다. FIG. 9 is a diagram for explaining the cache structure of the volatile memory of FIG. 2. FIG. For the sake of brevity, the components unnecessary for explaining the cache structure of the volatile memory 121 are omitted. It is also assumed that the storage area of the nonvolatile memory 123 is divided into the first to fourth areas AR1 to AR4. The first to fourth areas AR1 to AR4 are logically divided areas and the storage area of the nonvolatile memory 123 further includes storage areas other than the first to fourth areas AR1 to AR4 .

도 2 및 도 9를 참조하면, 휘발성 메모리(121)는 불휘발성 메모리(123)보다 빠른 액세스 속도를 가질 수 있다. 즉, 불휘발성 메모리(123)에 저장된 데이터 중 일부를 휘발성 메모리(121)에 저장함으로써, 모듈 컨트롤러(110) 또는 프로세서(101)의 요청에 따른 액세스 속도가 향상될 수 있다. 예를 들어, 휘발성 메모리(121)는 불휘발성 메모리(123)의 캐시 메모리로써 사용될 수 있다. 예를 들어, 휘발성 메모리(121)는 불휘발성 메모리(123)에 저장된 데이터 중 일부를 저장할 수 있고, 모듈 컨트롤러(110) 또는 프로세서(101)의 요청에 따라, 저장된 데이터를 출력할 수 있다.2 and 9, the volatile memory 121 may have a faster access rate than the non-volatile memory 123. [ That is, by storing a part of the data stored in the nonvolatile memory 123 in the volatile memory 121, the access speed according to the request of the module controller 110 or the processor 101 can be improved. For example, the volatile memory 121 can be used as the cache memory of the nonvolatile memory 123. [ Volatile memory 121 may store some of the data stored in nonvolatile memory 123 and may output the stored data upon request of module controller 110 or processor 101. For example,

예시적으로, 휘발성 메모리(121)는 불휘발성 메모리(123)와 직접 사상(Direct Mapping) 관계를 가질 수 있다. 예를 들어, 휘발성 메모리(121)는 복수의 엔트리들(ET01~ET0n)을 포함할 수 있다. 하나의 엔트리(ET; Entry)는 캐시 라인 단위의 데이터 및 태그(TAG)를 저장하는 저장 공간을 가리킬 수 있다. 캐시 라인 단위는 모듈 컨트롤러(110) 또는 프로세서(101)의 요청에 따른 최소 엑세스 단위를 가리킬 수 있다. 휘발성 메모리(121)는 복수의 엔트리들(ET01~ET0n)만큼의 저장 용량을 가질 수 있다.Illustratively, the volatile memory 121 may have a direct mapping relationship with the non-volatile memory 123. For example, the volatile memory 121 may include a plurality of entries ET01 to ET0n. One entry (ET) may indicate a storage space for storing data and tags (TAG) in units of cache lines. The cache line unit may indicate the minimum access unit according to the request of the module controller 110 or the processor 101. The volatile memory 121 may have a storage capacity as many as the plurality of entries ET01 to ET0n.

불휘발성 메모리(123)는 제1 내지 제4 영역들(AR1~AR4)을 포함할 수 있다. 제1 내지 제4 영역들(AR1~AR4) 각각은 복수의 캐시 라인들(CL11~CL1n, CL21~CL2n, CL31~CL3n, CL41~CL4n)을 각각 포함할 수 있다. 예시적으로, 복수의 캐시 라인들(CL11~CL1n, CL21~CL2n, CL31~CL3n, CL41~CL4n) 각각은 프로세서(101) 또는 모듈 컨트롤러(110)의 요청에 따른 데이터 액세스 단위의 저장 공간을 가리킬 수 있다. The nonvolatile memory 123 may include first to fourth areas AR1 to AR4. Each of the first to fourth areas AR1 to AR4 may include a plurality of cache lines CL11 to CL1n, CL21 to CL2n, CL31 to CL3n, and CL41 to CL4n, respectively. Illustratively, each of the plurality of cache lines CL11 to CL1n, CL21 to CL2n, CL31 to CL3n, CL41 to CL4n indicates a storage space of a data access unit according to a request of the processor 101 or the module controller 110 .

예를 들어, 제1 영역(AR1)은 캐시 라인들(CL11~CL1n)을 포함할 수 있다. 캐시 라인들(CL11~CL1n) 각각은 복수의 엔트리들(ET1~ETn) 각각과 1:1 대응될 수 있다. 즉, 제1 캐시 라인(CL11)은 제1 엔트리(ET1)와 대응되고, 제2 캐시 라인(CL12)은 제2 엔트리(ET2)와 대응될 수 있다. 제2 영역(AR1)은 캐시 라인들(CL21~CL2n)을 포함할 수 있고, 캐시 라인들(CL21~CL2n) 각각은 복수의 엔트리들(ET1~ETn) 각각과 1:1 대응될 수 있다. 마찬가지로, 제3 및 제4 영역들(AR3, AR4) 각각은 캐시 라인들(CL31~CL3n, CL41~CL4n) 각각을 포함하고, 캐시 라인들(CL31~CL3n, CL41~CL4n) 각각은 복수의 엔트리들(ET1~ETn)과 대응될 수 있다.For example, the first area AR1 may include cache lines CL11 to CL1n. Each of the cache lines CL11 to CL1n may correspond to each of the plurality of entries ET1 to ETn in a one-to-one correspondence. That is, the first cache line CL11 may correspond to the first entry ET1, and the second cache line CL12 may correspond to the second entry ET2. The second area AR1 may include cache lines CL21 to CL2n and each of the cache lines CL21 to CL2n may correspond to each of the plurality of entries ET1 to ETn in a one-to-one correspondence. Similarly, each of the third and fourth areas AR3 and AR4 includes cache lines CL31 to CL3n and CL41 to CL4n, respectively, and each of the cache lines CL31 to CL3n and CL41 to CL4n includes a plurality of entries Lt; RTI ID = 0.0 > ET1-ETn. ≪ / RTI >

상술된 바와 같이, 휘발성 메모리(121)는 불휘발성 메모리(123)와 직접 사상(Direct Mapping) 관계를 가질 수 있다. 휘발성 메모리(121)의 제1 엔트리(ET1)는 제1 내지 제4 영역들(AR1~AR4)의 캐시 라인들(CL11, CL21, CL31, CL41)과 대응되고, 제1 내지 제4 영역들(AR1~AR4)의 캐시 라인들(CL11, CL21, CL31, CL41) 중 어느 하나의 캐시 라인에 저장된 데이터(DT_v)를 저장할 수 있다. 다시 말해서, 제1 엔트리(ET1)에 저장된 데이터(DT_v)는 제1 내지 제4 영역들(AR1~AR4)의 캐시 라인들(CL11, CL21, CL31, CL41) 중 어느 하나와 대응될 것이다.As described above, the volatile memory 121 may have a direct mapping relationship with the nonvolatile memory 123. [ The first entry ET1 of the volatile memory 121 corresponds to the cache lines CL11, CL21, CL31 and CL41 of the first to fourth areas AR1 to AR4, CL1, CL31, and CL41 in the cache lines AR1 to AR4. In other words, the data DT_v stored in the first entry ET1 will correspond to any one of the cache lines CL11, CL21, CL31, and CL41 of the first to fourth areas AR1 to AR4.

제1 엔트리(ET1)는 저장된 데이터(DT_v)에 대한 태그(TAG)를 포함할 수 있다. 예시적으로, 태그(TAG)는 제1 엔트리(ET1)에 저장된 데이터(DT_v)가 제1 내지 제4 영역들(AR1~AR4)의 캐시 라인들(CL11, CL21, CL31, CL41) 중 어느 캐시 라인과 대응되는지에 대한 정보일 수 있다. The first entry ETl may comprise a tag (TAG) for the stored data DT_v. Illustratively, the tag TAG is configured such that the data DT_v stored in the first entry ET1 is stored in any one of the cache lines CL11, CL21, CL31, CL41 of the first to fourth areas AR1 to AR4 Lt; / RTI > correspond to a line.

예시적으로, 복수의 캐시 라인들(CL11~CL1n, CL21~CL2n, CL31~CL3n, CL41~CL4n) 각각은 프로세서(101)로부터 제공되는 어드레스(ADD)에 의해 구분 또는 선택될 수 있다. 즉, 프로세서(101)로부터 제공되는 어드레스(ADD)에 의해 복수의 캐시 라인들(CL11~CL1n, CL21~CL2n, CL31~CL3n, CL41~CL4n) 중 적어도 하나의 캐시 라인이 선택되고, 선택된 캐시 라인에 대한 액세스 동작이 수행될 수 있다.Illustratively, each of the plurality of cache lines CL11 to CL1n, CL21 to CL2n, CL31 to CL3n, and CL41 to CL4n may be distinguished or selected by an address ADD provided from the processor 101. [ That is, at least one of the plurality of cache lines CL11 to CL1n, CL21 to CL2n, CL31 to CL3n, and CL41 to CL4n is selected by the address ADD provided from the processor 101, Can be performed.

복수의 엔트리들(ET1~ETn) 각각은 프로세서(101)로부터 제공되는 어드레스(ADD) 중 적어도 일부에 의해 구분 또는 선택될 수 있다. 즉, 프로세서(101)로부터 제공되는 어드레스(ADD) 중 적어도 일부에 의해 복수의 엔트리들(ET1~ETn) 중 적어도 하나의 엔트리가 선택되고, 선택된 엔트리에 대한 액세스 동작이 수행될 수 있다.Each of the plurality of entries ET1 to ETn may be distinguished or selected by at least a part of the addresses ADD provided from the processor 101. [ That is, at least one entry among the plurality of entries ET1 to ETn is selected by at least a part of the addresses ADD provided from the processor 101, and an access operation to the selected entry can be performed.

태그(TAG)는 프로세서(101)로부터 제공되는 어드레스(ADD) 중 적어도 일부 또는 나머지 일부를 포함할 수 있다. 예를 들어, 어드레스(ADD)에 의해 의 적어도 일부에 의해 복수의 엔트리들(ET1~ETn) 중 적어도 하나가 선택되고, 선택된 엔트리로부터의 태그(TAG_v)가 어드레스(ADD)에 포함되는 경우, 캐시 히트(H)인 것으로 판별될 수 있다. 또는 어드레스(ADD)에 의해 의 적어도 일부에 의해 복수의 엔트리들(ET1~ETn) 중 적어도 하나가 선택되고, 선택된 엔트리로부터의 태그(TAG_v)가 어드레스(ADD)에 포함되지 않는 경우, 캐시 미스(M)인 것으로 판별될 수 있다.The tag TAG may include at least a portion or the rest of the addresses ADD provided from the processor 101. For example, if at least one of the plurality of entries ET1 to ETn is selected by at least a portion of the address ADD and the tag TAG_v from the selected entry is included in the address ADD, It can be determined that it is hit (H). At least one of the plurality of entries ET1 to ETn is selected by at least a part of the address ADD or the tag TAG_v from the selected entry is not included in the address ADD, M). ≪ / RTI >

상술된 바와 같이, 불휘발성 메모리 모듈(100)이 휘발성 메모리(121)를 캐시 메모리로 사용함으로써, 불휘발성 메모리 모듈(100)의 성능이 향상된다. 이 때, 불휘발성 메모리 모듈(100)은 휘발성 메모리(121)에 저장된 태그(TAG)를 기반으로 캐시 히트 및 미스 여부를 판별할 수 있다.As described above, the nonvolatile memory module 100 improves the performance of the nonvolatile memory module 100 by using the volatile memory 121 as the cache memory. At this time, the nonvolatile memory module 100 can determine whether or not the cache hit and miss based on the tag (TAG) stored in the volatile memory 121.

도 10은 도 9의 태그를 상세하게 설명하기 위한 도면이다. 도 1, 도 2, 및 도 10을 참조하면, 프로세서(101)로부터 제공되는 어드레스(ADD)는 행 어드레스(Row Address) 및 열 어드레스(Column Address)를 포함할 수 있다. 행 어드레스(Row Address)는 복수의 행 비트들(R1~Ri)을 포함할 수 있고, 열 어드레스(Column Address)는 복수의 열 비트들(C1~Ck)을 포함할 수 있다. 예시적으로, 복수의 행 비트들(R1~Ri) 및 복수의 열 비트들(C1~Ck)에 따라, 불휘발성 메모리(123)의 복수의 캐시 라인들 중 적어도 하나가 선택될 수 있다.FIG. 10 is a diagram for explaining the tag of FIG. 9 in detail. 1, 2, and 10, an address ADD provided from the processor 101 may include a row address and a column address. The row address may include a plurality of row bits R1 to Ri and the column address may include a plurality of column bits C1 to Ck. Illustratively, at least one of the plurality of cache lines of the non-volatile memory 123 may be selected in accordance with the plurality of row bits R1 to Ri and the plurality of column bits C1 to Ck.

예시적으로, 태그(TAG)는 복수의 행 비트들(R1~Ri) 중 적어도 일부를 포함할 수 있다. 예를 들어, 태그(TAG)는 제1 내지 제4 행 비트들(R1~R4)을 포함할 수 있다. 이 때, 나머지 행 비트들(R5~Ri) 및 열 비트들(C1~Ck)은 휘발성 메모리(121)의 어드레스(ADD_vm)일 수 있다. 즉, 나머지 행 비트들(R5~Ri) 및 열 비트들(C1~Ck)에 의해 휘발성 메모리(121)의 복수의 엔트리들 중 적어도 하나가 선택될 수 있다. 예시적으로, 태그(TAG)는 행 어드레스(Row Address)의 복수의 행 비트들 중 최상위 비트들 일부를 포함할 수 있다. Illustratively, the tag TAG may comprise at least a portion of a plurality of row bits R1-Ri. For example, the tag TAG may include first through fourth row bits R1 through R4. At this time, the remaining row bits R5 to Ri and the column bits C1 to Ck may be the address ADD_vm of the volatile memory 121. [ That is, at least one of the plurality of entries of the volatile memory 121 can be selected by the remaining row bits R5 to Ri and column bits C1 to Ck. Illustratively, the tag TAG may include some of the most significant bits of a plurality of row bits of a row address.

예시적으로, 본 발명의 기술적 사상에 따른 어드레스의 구성은 도 10에 도시된 어드레스(ADD)에 한정되지 않는다. 예를 들어, 프로세서(101)로부터의 어드레스(ADD)는 칩 어드레스, 뱅크 어드레스, 행 어드레스, 또는 열 어드레스를 더 포함할 수 있다. 또는 프로세서(101)로부터의 어드레스(ADD)는 다양한 형태의 어드레스(ADD)로 변형될 수 있다.Illustratively, the configuration of the address according to the technical idea of the present invention is not limited to the address ADD shown in Fig. For example, the address ADD from the processor 101 may further include a chip address, a bank address, a row address, or a column address. Or the address ADD from the processor 101 may be modified into various types of addresses ADD.

또한, 본 발명의 기술적 사상에 따른 태그(TAG)의 구성은 도 10에 도시된 태그(TAG)에 한정되지 않는다. 태그(TAG)는 어드레스(ADD)의 적어도 일부를 포함할 수 있다. 이 때, 어드레스(ADD)의 적어도 일부는 복수의 행 비트들(R1~Ri) 중 일부 또는 복수의 열 비트들(C1~Ck) 중 일부 또는 그것들의 조합을 포함할 수 있다.Further, the structure of the tag (TAG) according to the technical idea of the present invention is not limited to the tag (TAG) shown in Fig. The tag TAG may include at least a portion of the address ADD. At this time, at least a portion of the address ADD may include some or a combination of some or a plurality of column bits (C1 to Ck) of the plurality of row bits (R1 to Ri).

또한, 본 발명의 기술적 사상에 따른 태그(TAG)에 포함된 어드레스 비트들은 미리 정해진 비트 자릿수를 가질 수 있다. 예를 들어, 태그(TAG)는 어드레스(ADD)의 n(n은 자연수)개의 최상위 비트들을 포함할 수 있다. 이 때, n개의 최상위 비트들은 미리 정해진 비트 자릿수일 것이다. 또한, 태그(TAG)에 포함된 어드레스 비트들은 모듈 컨트롤러(110), 태그 제어 회로(TC), 또는 NVM 제어기(122)에 의해 가변될 수 있다. Also, the address bits included in the tag (TAG) according to the technical idea of the present invention may have predetermined bit digits. For example, the tag TAG may include n most significant bits of the address ADD (where n is a natural number). At this time, the n most significant bits may be a predetermined number of bits. The address bits included in the tag TAG may also be varied by the module controller 110, the tag control circuit TC, or the NVM controller 122. [

도 11은 도 2의 불휘발성 메모리 모듈의 태그 관리 방법을 설명하기 위한 도면이다. 간결한 설명을 위하여, 태그 관리 방법을 설명하는데 불필요한 구성 요소들 및 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 또한, 간결한 설명을 위하여, 불휘발성 메모리 모듈(100)은 프로세서(101)로부터 모듈 읽기 커맨드 및 제1 어드레스(RD, ADD1)를 수신하고, 수신된 신호에 응답하여 동작하는 것으로 가정한다. 또한, 제1 어드레스(ADD1)의 적어도 일부는 휘발성 메모리(121)의 제1 엔트리(ET1)와 대응되는 것으로 가정한다. 즉, 휘발성 메모리(121)는 제1 어드레스(ADD1)에 응답하여 제1 엔트리(ET1)를 선택 또는 활성화할 수 있다.FIG. 11 is a diagram for explaining a tag management method of the nonvolatile memory module of FIG. 2. FIG. For the sake of brevity, detailed descriptions of the components that are not necessary for explaining the tag management method and the components described above are omitted. Also, for the sake of brevity, it is assumed that the non-volatile memory module 100 receives the module read command and the first address (RD, ADD1) from the processor 101 and operates in response to the received signal. It is also assumed that at least a part of the first address ADD1 corresponds to the first entry ET1 of the volatile memory 121. [ That is, the volatile memory 121 can select or activate the first entry ET1 in response to the first address ADD1.

도 1 및 도 11을 참조하면, 불휘발성 메모리 모듈(100)은 모듈 컨트롤러(110), 휘발성 메모리(121), NVM 제어기(122), 불휘발성 메모리(123), 및 데이터 버퍼(130)를 포함한다. 모듈 컨트롤러(110), 휘발성 메모리(121), NVM 제어기(122), 불휘발성 메모리(123), 및 데이터 버퍼(130)는 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.1 and 11, the nonvolatile memory module 100 includes a module controller 110, a volatile memory 121, an NVM controller 122, a nonvolatile memory 123, and a data buffer 130 do. Since the module controller 110, the volatile memory 121, the NVM controller 122, the nonvolatile memory 123, and the data buffer 130 have been described above, detailed description thereof will be omitted.

모듈 컨트롤러(110)는 프로세서(101)로부터 모듈 읽기 커맨드 및 제1 어드레스(RD, ADD1)를 수신하고, 수신된 신호에 응답하여 VM 읽기 커맨드 및 제1 어드레스(RD_v, ADD1)를 휘발성 메모리(121)로 전송하고, NVM 읽기 커맨드 및 제1 어드레스(RD_n, ADD1)를 NVM 제어기(122)로 전송한다.The module controller 110 receives the module read command and the first address RD and ADD1 from the processor 101 and outputs the VM read command and the first address RD_v and ADD1 to the volatile memory 121 And transmits the NVM read command and the first address RD_n and ADD1 to the NVM controller 122. [

휘발성 메모리(121)는 수신된 VM 읽기 커맨드 및 제1 어드레스(RD_v, ADD1)에 응답하여, 제1 엔트리(ET1)를 선택하고, 선택된 제1 엔트리(ET1)에 포함된 태그(TAG_v) 및 데이터(DT_v)를 출력할 수 있다. 이 때, 태그(TAG_v)는 휘발성 메모리(121), NVM 제어기(122), 및 모듈 컨트롤러(110)가 서로 공유하는 태그 데이터 라인(TDQ)을 통해 출력되고, 데이터(DT_v)는 휘발성 메모리(121) 및 NVM 제어기(122)가 서로 공유하는 메모리 데이터 라인(MDQ)을 통해 출력된다. The volatile memory 121 selects the first entry ET1 in response to the received VM read command and the first address RD_v and ADD1 and stores the tag TAG_v and data included in the selected first entry ET1 (DT_v). At this time, the tag TAG_v is output via the tag data line TDQ shared by the volatile memory 121, the NVM controller 122, and the module controller 110, and the data DT_v is output from the volatile memory 121 And the NVM controller 122 are output via the memory data line MDQ shared by the NVM controller 122. [

예시적으로, 모듈 컨트롤러(110)는 태그 제어 회로(TC; Tag Control Circuit)를 포함할 수 있다. 태그 제어 회로(TC)는 태그 데이터 라인(TDQ)과 연결될 수 있다. 태그 제어 회로(TC)는 태그 데이터 라인(TDQ)을 통해 휘발성 메모리(121)로부터 태그(TAG)를 수신하고, 수신된 태그(TAG) 및 어드레스(ADD)를 비교할 수 있다. 태그 제어 회로(TC)는 비교 결과에 따라 캐시 히트(H) 또는 캐시 미스(M)에 대한 캐시 정보(INFO)를 프로세서(101)로 출력할 수 있다.Illustratively, the module controller 110 may include a tag control circuit (TC). The tag control circuit TC can be connected to the tag data line TDQ. The tag control circuit TC can receive the tag TAG from the volatile memory 121 via the tag data line TDQ and compare the received tag TAG and address ADD. The tag control circuit TC can output cache information H for the cache hit H or cache information INFO for the cache miss M to the processor 101 according to the comparison result.

예를 들어, 앞서 설명된 바와 같이, 태그(TAG)는 데이터(DT_v)와 대응되는 어드레스의 적어도 일부를 포함할 수 있다. 태그 제어 회로(TC)는 프로세서(101)로부터 수신된 어드레스(예를 들어, 제1 어드레스(ADD1)) 및 휘발성 메모리(121)로부터 수신된 태그(TAG)를 비교할 수 있다. 제1 어드레스(ADD1)의 적어도 일부 및 수신된 태그(TAG)가 서로 일치하는 경우, 태그 제어 회로(TC)는 캐시 히트(H)에 대한 캐시 정보(INFO)를 출력할 수 있다. 이와 반대로, 제1 어드레스(ADD1)의 적어도 일부 및 수신된 태그(TAG)가 서로 일치하지 않는 경우, 태그 제어 회로(TC)는 캐시 미스(M)에 대한 캐시 정보(INFO)를 출력할 수 있다.For example, as described above, the tag TAG may include at least a part of the address corresponding to the data DT_v. The tag control circuit TC can compare the address received from the processor 101 (for example, the first address ADD1) and the tag (TAG) received from the volatile memory 121. [ The tag control circuit TC may output the cache information INFO for the cache hit H if at least a part of the first address ADD1 and the received tag TAG coincide with each other. On the other hand, if at least a part of the first address ADD1 and the received tag TAG do not coincide with each other, the tag control circuit TC can output the cache information INFO for the cache miss M .

예시적으로, NVM 제어기(122)는 태그 데이터 라인(TDQ)을 통해 태그(TAG)를 수신하고, 수신된 태그(TAG)를 기반으로 읽기 캐싱, 데이터 플러쉬 등의 동작을 수행할 수 있다. Illustratively, the NVM controller 122 may receive the tag (TAG) via the tag data line (TDQ) and perform operations such as read caching, data flushing, etc. based on the received tag (TAG).

도 12는 도 2의 불휘발성 메모리 모듈의 태그 관리 방법을 설명하기 위한 도면이다. 도 1 및 도 12를 참조하면, 불휘발성 메모리 모듈(100)은 모듈 컨트롤러(110), 휘발성 메모리(121), NVM 제어기(122), 불휘발성 메모리(123), 및 데이터 버퍼(130)를 포함할 수 있다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다.12 is a diagram for explaining a tag management method of the nonvolatile memory module of FIG. 1 and 12, the nonvolatile memory module 100 includes a module controller 110, a volatile memory 121, an NVM controller 122, a nonvolatile memory 123, and a data buffer 130 can do. For the sake of brevity, a detailed description of the components described above is omitted.

모듈 컨트롤러(110)는 프로세서(101)로부터 모듈 쓰기 커맨드 및 제1 어드레스(WR, ADD1)를 수신하고, 수신된 신호에 응답하여, VM 쓰기 커맨드 및 제1 어드레스(WR_v, ADD1)를 휘발성 메모리(121)로 전송하고, NVM 쓰기 커맨드 및 제1 어드레스(ADD1)를 NVM 제어기(122)로 전송할 수 있다.The module controller 110 receives the module write command and the first address WR and ADD1 from the processor 101 and outputs the VM write command and the first address WR_v and ADD1 to the volatile memory 121, and may transmit the NVM write command and the first address ADD1 to the NVM controller 122. [

예시적으로, 모듈 컨트롤러(110)는 수신된 모듈 쓰기 커맨드 및 제1 어드레스(WR, ADD1) 에 응답하여, VM 읽기 커맨드 및 제1 어드레스(RD_v, ADD1)를 휘발성 메모리(121)로 전송할 수 있다. 도면의 간결성을 위하여, 이와 같은 구성은 생략된다.Illustratively, the module controller 110 may transmit the VM read command and the first address RD_v, ADD1 to the volatile memory 121 in response to the received module write command and the first address WR, ADD1 . In order to simplify the drawing, such a configuration is omitted.

휘발성 메모리(121)는 수신된 VM 쓰기 커맨드 및 제1 어드레스(WR_v, ADD1)에 응답하여 제1 엔트리(ET1)를 선택할 수 있다. 예시적으로, 제1 엔트리(ET1)는 제1 어드레스(ADD1)의 적어도 일부와 대응되는 휘발성 메모리(121)의 저장 영역을 가리킬 수 있다.The volatile memory 121 can select the first entry ET1 in response to the received VM write command and the first address WR_v, ADD1. Illustratively, the first entry ET1 may point to a storage area of the volatile memory 121 that corresponds to at least a portion of the first address ADD1.

데이터 버퍼(130)는 프로세서(101)로부터 제공되는 쓰기 데이터(DT_v)를 메모리 데이터 라인(MDQ)을 통해 휘발성 메모리(121) 및 NVM 제어기(122)로 제공할 수 있다. 휘발성 메모리(121)는 메모리 데이터 라인(MDQ)을 통해 수신된 쓰기 데이터(DT_w)를 제1 어드레스(ADD1)의 적어도 일부에 의해 선택된 제1 엔트리(ET1)에 기입할 수 있다. 이 때, 휘발성 메모리(121)는 태그 데이터 라인(TDQ)을 통해 수신된 쓰기 태그(TAG_w)를 쓰기 데이터(DT_w)와 함께 제1 엔트리(ET1)에 기입할 수 있다.The data buffer 130 may provide the write data DT_v provided from the processor 101 to the volatile memory 121 and the NVM controller 122 via the memory data line MDQ. The volatile memory 121 can write the write data DT_w received via the memory data line MDQ to the first entry ET1 selected by at least a part of the first address ADD1. At this time, the volatile memory 121 can write the write tag TAG_w received via the tag data line TDQ to the first entry ET1 together with the write data DT_w.

예시적으로, 쓰기 태그(TAG_w)는 모듈 컨트롤러(110)의 태그 제어 회로(TC)에 의해 생성된 태그일 수 있다. 예를 들어, 태그 제어 회로(TC)는 프로세서(101)로부터 수신된 제1 어드레스(ADD1)의 적어도 일부를 쓰기 태그(TAG)로써 선택할 수 있다. 즉, 쓰기 태그(TAG_w)는 휘발성 메모리(121)에 기입될 쓰기 데이터(DT_w)와 대응될 수 있다.Illustratively, the write tag (TAG_w) may be a tag generated by the tag control circuit (TC) of the module controller (110). For example, the tag control circuit TC may select at least a portion of the first address ADD1 received from the processor 101 as a write tag (TAG). That is, the write tag (TAG_w) may correspond to write data (DT_w) to be written to the volatile memory (121).

태그 제어 회로(TC)는 선택된 쓰기 태그(TAG_w)를 기반으로 태그 데이터 라인(TDQ)의 전압을 구동함으로써, 쓰기 태그(TAG_w)를 휘발성 메모리(121)로 제공할 수 있다. The tag control circuit TC can supply the write tag TAG_w to the volatile memory 121 by driving the voltage of the tag data line TDQ based on the selected write tag TAG_w.

상술된 바와 같이, 쓰기 동작시, 불휘발성 메모리 모듈(100)가 쓰기 태그(TAG_w) 및 쓰기 데이터(DT_w)를 휘발성 메모리(121)의 복수의 엔트리들 중 동일한 엔트리에 함께 기입함으로써, 이후 캐시 히트 또는 캐시 미스 판별 동작이 정상적으로 수행될 수 있다. As described above, in the write operation, the nonvolatile memory module 100 writes the write tag (TAG_w) and write data (DT_w) together in the same entry among the plurality of entries in the volatile memory 121, Or the cache miss determination operation can be normally performed.

도 13은 도 11 및 도 12에 도시된 불휘발성 메모리 모듈들의 태그 전송 방법을 설명하기 위한 타이밍도들이다. 도 11 내지 도 13을 참조하면, 도 13의 X축은 시간(time)을 가리킨다.13 is a timing chart for explaining a tag transmission method of the nonvolatile memory modules shown in FIG. 11 and FIG. Referring to Figs. 11 to 13, the X-axis in Fig. 13 indicates time.

도 13의 제1 섹션에 도시된 바와 같이, 휘발성 메모리(121)에 저장된 태그(TAG_v)는 태그 데이터 라인(TDQ)을 통해 휘발성 메모리(121)로부터 출력될 수 있다. 이 때, 태그(TAG)는 태그 데이터 스트로브 라인(TDQS)에 동기되어 출력될 수 있다. 태그 데이터 스트로브 라인(TDQS)의 신호는 태그 제어 회로(TC) 또는 휘발성 메모리(121)에 의해 구동될 수 있다.The tag TAG_v stored in the volatile memory 121 may be output from the volatile memory 121 via the tag data line TDQ, as shown in the first section of Fig. At this time, the tag TAG can be output in synchronization with the tag data strobe line TDQS. The signal of the tag data strobe line (TDQS) can be driven by the tag control circuit (TC) or the volatile memory (121).

마찬가지로, 도 13의 제2 섹션에 도시된 바와 같이, 쓰기 태그(TAG_w)는 태그 데이터 라인(TDQ)을 통해 출력될 수 있다. 이 때, 쓰기 태그(TAG)는 태그 데이터 스트로브 라인(TDQS)에 동기되어 출력될 수 있다. 태그 데이터 스트로브 라인(TDQS)의 신호는 태그 제어 회로(TC) 또는 휘발성 메모리(121)에 의해 구동될 수 있다.Similarly, as shown in the second section of Fig. 13, the write tag (TAG_w) may be output via the tag data line (TDQ). At this time, the write tag (TAG) can be output in synchronization with the tag data strobe line (TDQS). The signal of the tag data strobe line (TDQS) can be driven by the tag control circuit (TC) or the volatile memory (121).

상술된 바와 같이, 태그(TAG)는 태그 데이터 스트로브 라인(TDQS)의 신호에 동기되어 태그 데이터 라인(TDQ)을 통해 송수신될 수 있다. 예시적으로, 태그 데이터 스트로브 라인(TDQS)은 프로세서(101) 및 불휘발성 메모리 모듈(100) 사이의 데이터 스트로브 라인(DQS), 또는 불휘발성 메모리 모듈(100) 내의 메모리 데이터 스트로브 라인(MDQ)과 다른 신호 라인일 수 있다. 태그 데이터 스트로브 라인(TDQS)은 프로세서(101) 및 불휘발성 메모리 모듈(100) 사이의 데이터 스트로브 라인(DQS), 또는 불휘발성 메모리 모듈(100) 내의 메모리 데이터 스트로브 라인(MDQ)과 동일한 주파수의 클럭 신호일 수 있다.As described above, the tag TAG can be transmitted / received via the tag data line TDQ in synchronization with the signal of the tag data strobe line TDQS. Illustratively, the tag data strobe line TDQS is connected to the data strobe line DQS between the processor 101 and the nonvolatile memory module 100, or the memory data strobe line MDQ in the nonvolatile memory module 100, It may be another signal line. The tag data strobe line TDQS is a clock signal having the same frequency as the data strobe line DQS between the processor 101 and the nonvolatile memory module 100 or the memory data strobe line MDQ in the nonvolatile memory module 100, Signal.

도 14는 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다. 도 1 및 도 14를 참조하면, 불휘발성 메모리 모듈(200)은 모듈 컨트롤러(210), 제1 및 제2 휘발성 메모리들(221_1, 221_2), NVM 제어기(222), 불휘발성 메모리(223), 및 데이터 버퍼(230)를 포함한다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다.14 is a block diagram showing another example of the nonvolatile memory module of FIG. 1 and 14, a nonvolatile memory module 200 includes a module controller 210, first and second volatile memories 221_1 and 221_2, an NVM controller 222, a nonvolatile memory 223, And a data buffer 230. For the sake of brevity, a detailed description of the components described above is omitted.

도 14의 불휘발성 메모리 모듈(200)은 태그 전용 휘발성 메모리인 제2 휘발성 메모리(221_2)를 더 포함한다. 태그 전용 휘발성 메모리인 제2 휘발성 메모리(221_2)는 동일한 엔트리에 저장된 데이터(DT_v)에 대한 태그(TAG_v)를 저장하도록 구성된다. 예를 들어, 제1 및 제2 휘발성 메모리들(221_1, 221_2)은 모듈 컨트롤러(210)로부터의 VM 커맨드/어드레스(CA_v)에 응답하여, 제1 엔트리(ET1)를 선택할 수 있다. 제1 엔트리(ET1)는 제1 및 제2 휘발성 메모리들(221_1, 221_2) 각각의 일부를 포함할 수 있다.The nonvolatile memory module 200 of FIG. 14 further includes a second volatile memory 221_2 which is a tag-dedicated volatile memory. The second volatile memory 221_2, which is a tag-dedicated volatile memory, is configured to store the tag TAG_v for the data DT_v stored in the same entry. For example, the first and second volatile memories 221_1 and 221_2 may select the first entry ET1 in response to the VM command / address CA_v from the module controller 210. [ The first entry ET1 may include a part of each of the first and second volatile memories 221_1 and 221_2.

제1 휘발성 메모리(221_1)의 제1 엔트리(ET1)는 데이터(DT_v)를 포함할 수 있다. 제1 휘발성 메모리(221_1)는 메모리 데이터 라인(MDQ)을 통해 데이터(DT_v)를 송수신할 수 있다. 제2 휘발성 메모리(221_2)의 제1 엔트리(ET1)는 태그(TAG_v)를 포함할 수 있다. 제2 휘발성 메모리(221_2)는 태그 데이터 라인(TDQ)을 통해 태그(TAG_v)를 송수신할 수 있다.The first entry ET1 of the first volatile memory 221_1 may include data DT_v. The first volatile memory 221_1 can transmit and receive data DT_v via the memory data line MDQ. The first entry ET1 of the second volatile memory 221_2 may include a tag TAG_v. The second volatile memory 221_2 can transmit and receive the tag TAG_v via the tag data line TDQ.

예시적으로, 제1 및 제2 휘발성 메모리들(221_1, 221_2) 각각은 별도의 다이, 별도의 칩, 또는 별도의 패키지로 구현될 수 있다. Illustratively, each of the first and second volatile memories 221_1 and 221_2 may be implemented as a separate die, a separate chip, or a separate package.

즉, 불휘발성 메모리 모듈(200)은 태그(TAG)를 저장하기 위한 태그 전용 휘발성 메모리를 포함하고, 태그 전용 휘발성 메모리는 데이터를 저장하기 위한 휘발성 메모리와 별도의 칩으로 구현될 수 있다. 이 때, 태그 전용 휘발성 메모리는 다른 휘발성 메모리들과 동일하게 모듈 컨트롤러(210)로부터의 VM 커맨드/어드레스(CA_v)에 따라 동작할 수 있다.That is, the nonvolatile memory module 200 includes a tag dedicated volatile memory for storing a tag (TAG), and the tag dedicated volatile memory can be implemented as a chip separate from a volatile memory for storing data. At this time, the tag-dedicated volatile memory can operate in accordance with the VM command / address CA_v from the module controller 210 in the same manner as other volatile memories.

도 15는 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다. 도 1 및 도 15를 참조하면, 불휘발성 메모리 모듈(300)은 모듈 컨트롤러(310), 제1 내지 제3 휘발성 메모리들(321_1~321_3), NVM 제어기(322), 불휘발성 메모리(323), 및 데이터 버퍼(330)를 포함한다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다.15 is a block diagram showing another example of the nonvolatile memory module of FIG. 1 and 15, the non-volatile memory module 300 includes a module controller 310, first to third volatile memories 321_1 to 321_3, an NVM controller 322, a non-volatile memory 323, And a data buffer 330. For the sake of brevity, a detailed description of the components described above is omitted.

도 14의 불휘발성 메모리 모듈(200)과 달리 도 15의 불휘발성 메모리 모듈(300)은 태그 전용 휘발성 메모리인 제3 휘발성 메모리(221_3)을 더 포함할 수 있다. 즉, 불휘발성 메모리 모듈(300)은 적어도 두개의 태그 전용 휘발성 메모리들을 포함할 수 있다.Unlike the nonvolatile memory module 200 of FIG. 14, the nonvolatile memory module 300 of FIG. 15 may further include a third volatile memory 221_3, which is a volatile memory dedicated to a tag. That is, the non-volatile memory module 300 may include at least two volatile memories dedicated to the tag.

태그 전용 휘발성 메모리인 제2 및 제3 휘발성 메모리들(321_2, 321_3)은 제1 휘발성 메모리(321_1)에 저장된 데이터(DT_v)와 대응되는 태그(TAG_v)를 저장하도록 구성된다. 예를 들어, 제1 내지 제3 휘발성 메모리들(321_1~321_3) 각각은 모듈 컨트롤러(210)로부터의 VM 커맨드/어드레스(CA_v)에 응답하여 동작할 수 있다. 제1 내지 제3 휘발성 메모리들(321_1~321_3) 각각은 모듈 컨트롤러(310)로부터의 VM 커맨드/어드레스(CA_v)에 응답하여 제1 어드레스(ADD1)의 적어도 일부와 대응되는 제1 엔트리(ET1)를 선택하고, 선택된 제1 엔트리(ET1)에 대한 엑세스를 수행할 수 있다.The second and third volatile memories 321_2 and 321_3 which are the tag exclusive volatile memories are configured to store the tag TAG_v corresponding to the data DT_v stored in the first volatile memory 321_1. For example, each of the first to third volatile memories 321_1 to 321_3 may operate in response to a VM command / address CA_v from the module controller 210. [ Each of the first to third volatile memories 321_1 to 321_3 includes a first entry ET1 corresponding to at least a part of the first address ADD1 in response to the VM command / address CA_v from the module controller 310, And perform access to the selected first entry ET1.

예시적으로, 제1 엔트리(ET1)는 제1 휘발성 메모리(221_1)의 데이터(DT_v), 제2 휘발성 메모리(321_2)의 태그(TAG_v), 제3 휘발성 메모리(321_3)의 태그(TAG_v)를 포함할 수 있다. 제2 휘발성 메모리(321_2)의 태그(TAG_v)는 제1 태그 데이터 라인(TDQ1)을 통해 NVM 제어기(322) 및 모듈 컨트롤러(210)로 제공되고, 제3 휘발성 메모리(321_2)의 태그(TAG_v)는 제2 태그 데이터 라인(TDQ2)을 통해 NVM 제어기(322) 및 RDC(310)로 제공될 수 있다.Illustratively, the first entry ET1 stores the data DT_v of the first volatile memory 221_1, the tag TAG_v of the second volatile memory 321_2, and the tag TAG_v of the third volatile memory 321_3 . The tag TAG_v of the second volatile memory 321_2 is provided to the NVM controller 322 and the module controller 210 via the first tag data line TDQ1 and the tag TAG_v of the third volatile memory 321_ May be provided to the NVM controller 322 and the RDC 310 via the second tag data line (TDQ2).

또는, 비록 도면에 도시되지는 않았으나, 제2 휘발성 메모리(321_1)는 제1 태그 데이터 라인(TDQ1)을 통해 쓰기 태그(TAG_w)(도 12 참조)를 수신하고, 수신된 쓰기 태그(TAG_w)를 제1 엔트리(ET1)에 기입하고, 제3 휘발성 메모리(321_3)는 제2 태그 데이터 라인(TDQ2)을 통해 쓰기 태그(TAG_w)(도 12 참조)를 수신하고, 수신된 쓰기 태그(TAG_w)를 제1 엔트리(ET1)에 기입할 수 있다. 즉, 불휘발성 메모리 모듈(300)은 적어도 2개의 태그 전용 휘발성 메모리들을 포함할 수 있다. 적어도 2개의 태그 전용 휘발성 메모리들 각각은 별도의 다이, 별도의 칩, 별도의 패키지로 구현될 수 있다. Alternatively, although not shown in the figure, the second volatile memory 321_1 receives the write tag TAG_w (see FIG. 12) through the first tag data line TDQ1 and writes the received write tag TAG_w The third volatile memory 321_3 receives the write tag TAG_w (see FIG. 12) via the second tag data line TDQ2 and writes the received write tag TAG_w into the first entry ET1 And can write to the first entry ET1. That is, the non-volatile memory module 300 may include at least two tag-specific volatile memories. Each of the at least two tag dedicated volatile memories may be implemented as a separate die, a separate chip, or a separate package.

예시적으로, 태그 전용 휘발성 메모리는 제1 및 제2 휘발성 메모리들(221_1, 221_2)에 한정되지 않는다. 불휘발성 메모리 모듈(200)은 적어도 2개 이상의 태그 전용 휘발성 메모리를 포함할 수 있고, 적어도 2개 이상의 태그 전용 휘발성 메모리는 별도의 칩, 별도의 패키지로 각각 구현될 수 있다. Illustratively, the tag only volatile memory is not limited to the first and second volatile memories 221_1 and 221_2. The non-volatile memory module 200 may include at least two or more tag-dedicated volatile memories, and at least two or more tag-dedicated volatile memories may be implemented as separate chips or separate packages, respectively.

예시적으로, 제2 휘발성 메모리(321_2)의 제1 엔트리(ET1)에 기입된 태그(TAG_v)는 제2 휘발성 메모리(321_3)의 제1 엔트리(ET1)에 기입된 태그(TAG_v)와 동일한 값을 가질 수 있다. 즉, 특정 요인으로 인하여, 태그 전용 휘발성 메모리인 제2 및 제3 휘발성 메모리들(321_2, 321_3) 중 어느 하나가 정상 동작하지 않더라도, (즉, 칩-킬 상황에서) 정상적으로 동작하는 나머지 하나의 휘발성 메모리를 통해 태그(TAG)를 송수신함으로써, 불휘발성 메모리 모듈(200)이 정상적으로 동작할 수 있다. Illustratively, the tag TAG_v written in the first entry ET1 of the second volatile memory 321_2 is the same value as the tag TAG_v written in the first entry ET1 of the second volatile memory 321_3 Lt; / RTI > That is, even if any one of the second and third volatile memories 321_2 and 321_3, which are the tag-only volatile memories, does not operate normally due to a specific factor (i.e., in a chip-kill situation) By transmitting and receiving the tag TAG through the memory, the nonvolatile memory module 200 can operate normally.

도 16은 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다. 도 16을 참조하면, 불휘발성 메모리 모듈(400)은 모듈 컨트롤러(410), 휘발성 메모리(421), NVM 제어기(422), 불휘발성 메모리(423), 데이터 버퍼(430), 및 태그 제어 회로(TC)를 포함한다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다.16 is a block diagram showing another example of the nonvolatile memory module of FIG. 16, the non-volatile memory module 400 includes a module controller 410, a volatile memory 421, an NVM controller 422, a non-volatile memory 423, a data buffer 430, and a tag control circuit TC). For the sake of brevity, a detailed description of the components described above is omitted.

도 16의 불휘발성 메모리 모듈(400)은 별도의 태그 제어 회로(TC)를 포함한다. 앞서 설명된 바와 같이, 태그 제어 회로(TC)는 태그 데이터 라인(TDQ)을 통해 태그(TAG)를 수신하거나 또는 태그 데이터 라인(TDQ)을 통해 쓰기 태그(TAG_w)를 휘발성 메모리(421)로 제공할 수 있다. 예를 들어, 태그 제어 회로(TC)는 모듈 컨트롤러(410) 외부에 배치되며, 모듈 컨트롤러(410)로부터 제1 어드레스(ADD1)(즉, 프로세서(101)로부터 제공된 어드레스))를 수신하고, 수신된 제1 어드레스(ADD1)를 기반으로 쓰기 태그(TAG_w)를 생성할 수 있다. 또는 태그 제어 회로(TC)는 태그 데이터 라인(TDQ)을 통해 수신된 태그(TAG_v) 및 어드레스(ADD1)를 비교함으로써, 캐시 히트 또는 캐시 미스에 대한 캐시 정보(INFO)를 출력할 수 있다.The nonvolatile memory module 400 of FIG. 16 includes a separate tag control circuit TC. As described above, the tag control circuit TC receives the tag TAG via the tag data line TDQ or supplies the write tag TAG_w via the tag data line TDQ to the volatile memory 421 can do. For example, the tag control circuit TC is disposed outside the module controller 410 and receives the first address ADD1 (i.e., the address provided from the processor 101) from the module controller 410, It is possible to generate the write tag TAG_w based on the first address ADD1. Or the tag control circuit TC may compare the tag TAG_v and the address ADD1 received via the tag data line TDQ to output cache information INFO for cache hit or cache miss.

예시적으로, 본 발명에 따른 불휘발성 메모리 모듈의 구성은 앞서 설명된 실시 예들에 국한되지 않는다. 예를 들어, 본 발명에 따른 불휘발성 메모리 모듈은 적어도 하나의 태그 전용 휘발성 메모리를 포함하고, 적어도 하나의 태그 전용 휘발성 메모리는 별도의 태그 제어 회로와 태그 데이터 라인(TDQ)을 공유하도록 구성될 수 있다.Illustratively, the configuration of the non-volatile memory module according to the present invention is not limited to the embodiments described above. For example, a non-volatile memory module according to the present invention may include at least one volatile memory dedicated to a tag, and at least one volatile memory dedicated to tag may be configured to share a tag data line (TDQ) with a separate tag control circuit. have.

도 17은 본 발명의 다른 실시 예에 따른 태그를 상세하게 설명하기 위한 도면이다. 간결한 설명을 위하여, 도 9를 참조하여 설명된 구성 요소들에 대한 상세한 설명은 생략된다.17 is a diagram for explaining a tag according to another embodiment of the present invention in detail. For the sake of brevity, a detailed description of the components described with reference to FIG. 9 is omitted.

도 2 및 도 17을 참조하면, 휘발성 메모리(121)는 복수의 엔트리들(ET1'~ETn')을 포함한다. 불휘발성 메모리(123)는 제1 내지 제4 영역들(AR1~AR4)을 포함하고, 각 영역은 복수의 캐시 라인들(CL11~CL1n, CL21~CL2n, CL31~CL3n, CL41~CL4n)을 각각 포함한다. 2 and 17, the volatile memory 121 includes a plurality of entries ET1 'to ETn'. The nonvolatile memory 123 includes first to fourth areas AR1 to AR4 each of which includes a plurality of cache lines CL11 to CL1n, CL21 to CL2n, CL31 to CL3n, and CL41 to CL4n, .

예시적으로, 도 9를 참조하여 설명된 복수의 엔트리들(ET1~ETn)과 달리, 도 17의 복수의 엔트리들(ET1'~ETn') 각각은 데이터(DT_v), 태그(TAG), 데이터 에러 정정 코드(ECC_DT), 태그 에러 정정 코드(ECC_TAG), 및 더티 정보(DRT)를 포함할 수 있다.Illustratively, unlike the plurality of entries ET1 to ETn described with reference to Fig. 9, each of the plurality of entries ET1 'to ETn' in Fig. 17 includes data DT_v, tag TAG, An error correction code ECC_DT, a tag error correction code ECC_TAG, and dirty information DRT.

태그(TAG)는 동일한 엔트리에 저장된 데이터(DT_v)와 대응되는 어드레스의 적어도 일부일 수 있다. 데이터 에러 정정 코드(ECC_DT)는 동일한 엔트리에 저장된 데이터(DT_v)에 대한 에러 정정 코드일 수 있다. 태그 에러 정정 코드(ECC_TAG)는 동일한 엔트리에 저장된 태그(TAG)에 대한 에러 정정 코드일 수 있다. 더티 정보(DRT)는 동일한 엔트리에 저장된 데이터(DT_v)에 대한 더티 정보를 가리킬 수 있다.The tag TAG may be at least a part of the address corresponding to the data DT_v stored in the same entry. The data error correction code ECC_DT may be an error correction code for the data DT_v stored in the same entry. The tag error correction code ECC_TAG may be an error correction code for the tag (TAG) stored in the same entry. The dirty information DRT may indicate dirty information for the data DT_v stored in the same entry.

예시적으로, 태그(TAG), 데이터 에러 정정 코드(ECC_DT), 태그 에러 정정 코드(ECC_TAG), 및 더티 정보(DRT)는 도 14 및 도 15를 참조하여 설명된 태그 전용 휘발성 메모리들에 저장될 수 있다. 태그(TAG), 데이터 에러 정정 코드(ECC_DT), 태그 에러 정정 코드(ECC_TAG), 및 더티 정보(DRT)는 태그 데이터 라인(TDQ)을 통해 모듈 컨트롤러, NVM 제어기, 또는 태그 제어 회로로 제공될 수 있다.Illustratively, the tag TAG, the data error correction code ECC_DT, the tag error correction code ECC_TAG, and the dirty information DRT are stored in the tag-only volatile memories described with reference to Figs. 14 and 15 . The tag TAG, the data error correction code ECC_DT, the tag error correction code ECC_TAG, and the dirty information DRT may be provided to the module controller, the NVM controller, or the tag control circuit via the tag data line TDQ. have.

도 18은 도 2의 불휘발성 메모리 모듈의 동작 방법을 설명하기 위한 순서도이다. 예시적으로, 도 18의 동작은 불휘발성 메모리 모듈의 태그 제어 회로(TC)에 의해 수행될 수 있다. 앞서 설명된 바와 같이, 태그 제어 회로(TC)는 모듈 컨트롤러 내부에 포함되거나, 또는 모듈 컨트롤러 외부에 배치되어 별도의 칩으로 제공되거나 또는 NVM 제어기 내에 포함될 수 있다. 간결한 설명을 위하여, 태그 제어 회로(TC)는 모듈 컨트롤러에 포함되는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되지 않음은 잘 이해될 것이다.18 is a flowchart for explaining an operation method of the nonvolatile memory module of FIG. Illustratively, the operation of FIG. 18 may be performed by the tag control circuit TC of the non-volatile memory module. As described above, the tag control circuit TC may be included inside the module controller, or may be disposed outside the module controller, provided as a separate chip, or included in the NVM controller. For the sake of brevity, it is assumed that the tag control circuit (TC) is included in the module controller. However, it is to be understood that the scope of the present invention is not limited thereto.

도 2, 도 11 및 도 18을 참조하면, S110 단계에서, 모듈 컨트롤러(110)는 프로세서(101)(도 1 참조)로부터 어드레스(ADD)를 수신한다. 예시적으로, 모듈 컨트롤러(110)는 외부 장치로부터 모듈 커맨드/어드레스(CA)를 수신할 수 있다. 모듈 커맨드/어드레스(CA)는 액세스될 데이터 또는 영역에 대응하는 어드레스(ADD)를 포함할 수 있다.2, 11 and 18, in step S110, the module controller 110 receives the address ADD from the processor 101 (see FIG. 1). Illustratively, the module controller 110 may receive a module command / address (CA) from an external device. The module command / address CA may include an address ADD corresponding to the data or area to be accessed.

S120 단계에서, 모듈 컨트롤러(110)는 수신된 어드레스(ADD) 중 일부를 태그(TAG)로서 선택할 수 있다. 예를 들어, 도 10을 참조하여 설명된 바와 같이, 어드레스(ADD)는 복수의 비트들(R1~Ri, C1~Ck)을 포함하고, 복수의 비트들 중 일부 비트들이 태그(TAG)로써 선택될 수 있다. 즉, 태그(TAG)는 어드레스(ADD)의 일부를 포함할 것이다.In step S120, the module controller 110 can select a part of the received address ADD as a tag (TAG). For example, as described with reference to FIG. 10, the address ADD includes a plurality of bits R1 to Ri, C1 to Ck, and some of the plurality of bits are selected as a tag TAG . That is, the tag TAG will include a part of the address ADD.

예시적으로, 앞서 설명된 바와 같이, 태그(TAG)로써 선택되는 어드레스(ADD)의 일부는 미리 정해진 비트 자릿수를 가질 수 있다. 또는 태그(TAG)로써 선택되는 어드레스(ADD)의 일부는 태그 제어 회로(TC)에 의해 가변될 수 있다.Illustratively, as described above, a portion of the address ADD selected with the tag TAG may have a predetermined number of bits. Or a part of the address ADD selected by the tag TAG may be varied by the tag control circuit TC.

S130 단계에서, 모듈 컨트롤러(110)는 선택된 태그(TAG)를 기반으로 태그 데이터 라인(TDQ)의 전압을 구동할 수 있다.In step S130, the module controller 110 may drive the voltage of the tag data line (TDQ) based on the selected tag (TAG).

예시적으로, 휘발성 메모리(121)는 태그 데이터 라인(TDQ)의 전압을 감지함으로써 태그(TAG)를 수신하고, 수신된 태그(TAG)를 어드레스(ADD)의 적어도 일부와 대응되는 엔트리에 기입할 수 있다. Illustratively, the volatile memory 121 receives the tag TAG by sensing the voltage of the tag data line TDQ and writes the received tag TAG to the entry corresponding to at least a portion of the address ADD .

도 19는 도 2의 불휘발성 메모리 모듈의 다른 동작 방법을 설명하기 위한 순서도이다. 예시적으로, 도 19의 동작은 불휘발성 메모리 모듈의 태그 제어 회로(TC)에 의해 수행될 수 있다. 앞서 설명된 바와 같이, 태그 제어 회로(TC)는 모듈 컨트롤러 내부에 포함되거나, 또는 모듈 컨트롤러 외부에 배치되어 별도의 칩으로 제공되거나 또는 NVM 제어기 내에 포함될 수 있다. 간결한 설명을 위하여, 태그 제어 회로(TC)는 모듈 컨트롤러에 포함되는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되지 않음은 잘 이해될 것이다.19 is a flowchart for explaining another operation method of the nonvolatile memory module of FIG. Illustratively, the operation of Fig. 19 can be performed by the tag control circuit TC of the non-volatile memory module. As described above, the tag control circuit TC may be included inside the module controller, or may be disposed outside the module controller, provided as a separate chip, or included in the NVM controller. For the sake of brevity, it is assumed that the tag control circuit (TC) is included in the module controller. However, it is to be understood that the scope of the present invention is not limited thereto.

도 2, 도 11, 및 도 19를 참조하면, S210 단계에서, 모듈 컨트롤러(110)는 프로세서(101)(도 1 참조)로부터 어드레스(ADD)를 수신한다.2, 11, and 19, in step S210, the module controller 110 receives an address ADD from the processor 101 (see FIG. 1).

S220 단계에서, 모듈 컨트롤러(110)는 태그 데이터 라인(TDQ)을 통해 태그(TAG)를 수신한다. 예를 들어, 모듈 컨트롤러(110)는 휘발성 메모리 또는 태그 전용 휘발성 메모리로부터 태그 데이터 라인(TDQ)을 통해 태그(TAG)를 수신한다.In step S220, the module controller 110 receives the tag (TAG) through the tag data line (TDQ). For example, the module controller 110 receives a tag (TAG) via a tag data line (TDQ) from a volatile memory or a tag dedicated volatile memory.

S230 단계에서, 모듈 컨트롤러(110)는 수신된 어드레스(ADD)의 일부 및 수신된 태그(TAG)를 비교함으로써, 캐시 히트 또는 캐시 미스 여부를 판별할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 모듈 컨트롤러(110)는 수신된 태그(TAG) 및 수신된 어드레스(ADD)의 일부가 일치하는 경우, 캐시 히트인 것으로 판별하고, 수신된 태그(TAG) 및 수신된 어드레스(ADD)의 일부가 일치하지 않는 경우, 캐시 미스인 것으로 판별한다.In step S230, the module controller 110 can determine whether the cache hit or the cache miss by comparing a part of the received address ADD and the received tag TAG. For example, as described above, the module controller 110 determines that it is a cache hit when a part of the received tag (TAG) and the received address (ADD) coincide with each other, If a part of the received address ADD does not coincide, it is determined that the cache miss is present.

S240 단계에서, 모듈 컨트롤러(110)는 판별 결과를 기반으로 캐시 정보(INFO)를 출력한다. 예를 들어, 모듈 컨트롤러(110)는 판별 결과에 따라, 캐시 히트 또는 캐시 미스에 대한 정보를 캐시 정보(INFO)로써 출력할 수 있다. In step S240, the module controller 110 outputs cache information INFO based on the determination result. For example, the module controller 110 can output information on cache hit or cache miss as cache information INFO according to the determination result.

도 20은 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다. 도 1 및 도 20을 참조하면, 불휘발성 메모리 모듈(500)은 모듈 컨트롤러(MC), 복수의 이종 메모리 장치들(HMD), 복수의 데이터 버퍼들(DB), 및 SPD를 포함한다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 예시적으로, 도 20의 불휘발성 메모리 모듈(500)은 LRDIMM(Load Reduced Dual In-line Memory Module)의 구조를 가질 수 있다.20 is a block diagram showing another example of the nonvolatile memory module of FIG. 1 and 20, a non-volatile memory module 500 includes a module controller MC, a plurality of heterogeneous memory devices (HMD), a plurality of data buffers (DB), and an SPD. For the sake of brevity, a detailed description of the components described above is omitted. Illustratively, the non-volatile memory module 500 of FIG. 20 may have a structure of a Load Reduced Dual In-line Memory Module (LRDIMM).

모듈 컨트롤러(MC)는 프로세서(101)로부터 모듈 커맨드/어드레스(CA)를 수신하고, 수신된 신호에 응답하여 VM 커맨드/어드레스(CA_v) 및 NVM 커맨드 어드레스(CA_n)를 복수의 이종 메모리 장치들(HDM) 각각으로 제공할 수 있다.The module controller MC receives the module command / address CA from the processor 101 and sends the VM command / address CA_v and the NVM command address CA_n to the plurality of disparate memory devices HDM), respectively.

복수의 이종 메모리 장치들(HMD) 각각은 도 9 내지 도 16을 참조하여 설명된 휘발성 메모리들, NVM 제어기들, 및 불휘발성 메모리들을 각각 포함하는 이종 메모리 장치일 수 있다. 예를 들어, 복수의 이종 메모리 장치들(HMD) 각각은 메모리 데이터 라인(MDQ)을 통해 복수의 데이터 버퍼(DB)와 연결되고, 서로 태그 데이터 라인(TDQ)을 공유할 수 있다. 즉, 복수의 이종 메모리 장치들(HMD) 각각은 태그 또는 데이터를 저장할 수 있고, 모듈 컨트롤러(MC)의 제어에 따라 태그 또는 데이터를 각각 태그 데이터 라인(TDQ) 및 메모리 데이터 라인(MDQ)을 통해 송수신할 수 있다. Each of the plurality of heterogeneous memory devices HMD may be a heterogeneous memory device that includes volatile memories, NVM controllers, and nonvolatile memories, each of which is described with reference to Figs. 9-16. For example, each of the plurality of heterogeneous memory devices HMD may be connected to a plurality of data buffers DB via a memory data line MDQ and may share a tag data line TDQ with each other. That is, each of the plurality of heterogeneous memory devices HMD may store a tag or data, and may transmit the tag or the data via the tag data line TDQ and the memory data line MDQ, respectively, under the control of the module controller MC It can transmit and receive.

예시적으로, 복수의 이종 메모리 장치들(HMD) 각각은 도 1 내지 도 19를 참조하여 설명된 동작 방법을 기반으로 동작할 수 있다. Illustratively, each of the plurality of heterogeneous memory devices (HMDs) may operate based on the method of operation described with reference to FIGS.

도 21은 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다. 도 1 및 도 21을 참조하면, 불휘발성 메모리 모듈(600)은 모듈 컨트롤러(MC), 복수의 이종 메모리 장치들(HMD), 태그 전용 이종 메모리 장치(TAG HMD), 복수의 데이터 버퍼(DB), 및 SPD를 포함할 수 있다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 예시적으로, 도 21의 불휘발성 메모리 모듈(600)은 LRDIMM의 구조를 가질 수 있다.FIG. 21 is a block diagram showing another example of the nonvolatile memory module of FIG. 2. FIG. 1 and 21, the nonvolatile memory module 600 includes a module controller MC, a plurality of heterogeneous memory devices HMD, a tag dedicated memory device TAG HMD, a plurality of data buffers DB, , And SPD. For the sake of brevity, a detailed description of the components described above is omitted. Illustratively, the non-volatile memory module 600 of FIG. 21 may have the structure of an LRDIMM.

도 21의 불휘발성 메모리 모듈(600)은 도 20의 불휘발성 메모리 모듈(500)과 달리 태그 전용 이종 메모리 장치(TAG HMD)를 포함한다. 복수의 이종 메모리 장치들(HMD) 각각은 데이터(DT_v)를 저장하도록 구성되며, 태그 데이터 라인(TDQ)과 연결되지 않을 수 있다. 태그 전용 이종 메모리 장치(TAG HMD)는 도 11 내지 도 19를 참조하여 설명된, 휘발성 메모리들, NVM 제어기들, 및 불휘발성 메모리들을 포함할 수 있다. 즉, 태그 전용 이종 메모리 장치(TAG HMD)는 모듈 컨트롤러(MC)의 VM 커맨드/어드레스(CA_v)에 따라 대응되는 태그(TAG)를 저장 및 출력하도록 구성될 수 있다. 이 때, 태그 전용 이종 메모리 장치(TAG HMD)는 모듈 컨트롤러(MC)와 태그 데이터 라인(TDQ)을 공유하도록 구성될 수 있다.The nonvolatile memory module 600 of FIG. 21 includes a tag dedicated memory device (TAG HMD) unlike the nonvolatile memory module 500 of FIG. Each of the plurality of heterogeneous memory devices HMD is configured to store data DT_v and may not be connected to the tag data line TDQ. The tag-specific heterogeneous memory device (TAG HMD) may include volatile memories, NVM controllers, and non-volatile memories described with reference to FIGS. 11-19. That is, the tag dedicated heterogeneous memory device (TAG HMD) can be configured to store and output the corresponding tag (TAG) according to the VM command / address (CA_v) of the module controller (MC). At this time, the tag dedicated heterogeneous memory device (TAG HMD) may be configured to share the tag data line (TDQ) with the module controller (MC).

도 22는 도 2의 불휘발성 메모리 모듈의 다른 예를 보여주는 블록도이다. 도 1 및 도 22를 참조하면, 불휘발성 메모리 모듈(700)은 모듈 컨트롤러(MC), 복수의 휘발성 메모리들(VM11~VM1n, VM21~VM2m), 제1 및 제2 NVM 제어기들(722a, 722b), 복수의 불휘발성 메모리들(NVM11~NVM1k, NVM21~NVM2i), 태그 전용 휘발성 메모리(TVM), SPD, 복수의 데이터 버퍼들(DB), 및 태그 제어 회로(TC; Tag Control circuit)를 포함한다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 설명은 생략된다. 예시적으로, 도 14의 불휘발성 메모리 모듈(700)은 LRDIMM의 구조를 가질 수 있다.22 is a block diagram showing another example of the nonvolatile memory module of FIG. 1 and 22, the non-volatile memory module 700 includes a module controller MC, a plurality of volatile memories VM11 to VM1n, VM21 to VM2m, first and second NVM controllers 722a and 722b ), A plurality of nonvolatile memories (NVM11 to NVM1k, NVM21 to NVM2i), a tag dedicated volatile memory (TVM), an SPD, a plurality of data buffers (DB), and a tag control circuit do. For the sake of brevity, a description of the components described above is omitted. Illustratively, the non-volatile memory module 700 of FIG. 14 may have the structure of an LRDIMM.

복수의 휘발성 메모리들(VM11~VM1n, VM21~VM2m) 중 일부 휘발성 메모리들(예를 들어, VM11~VM1n)은 제1 NVM 제어기(722a)와 메모리 데이터 라인(MDQ)을 각각 공유하도록 구성된다. 나머지 휘발성 메모리들(예를 들어, VM21~VM2m)은 제2 NVM 제어기(722b)와 메모리 데이터 라인(MDQ)을 각각 공유하도록 구성된다. 복수의 휘발성 메모리들(VM11~VM1n, VM21~VM2m) 각각은 복수의 데이터 버퍼들(DB) 각각과 메모리 데이터 라인(MDQ)을 공유하도록 구성된다. Some of the volatile memories (for example, VM11 to VM1n) of the plurality of volatile memories VM11 to VM1n and VM21 to VM2m are configured to share the memory data line MDQ with the first NVM controller 722a, respectively. The remaining volatile memories (e.g., VM21 to VM2m) are configured to share the memory data line MDQ with the second NVM controller 722b, respectively. Each of the plurality of volatile memories (VM11 to VM1n, VM21 to VM2m) is configured to share a memory data line (MDQ) with each of a plurality of data buffers (DB).

복수의 불휘발성 메모리들(NVM11~NVM1k, NVM21~NVM2i) 중 일부 불휘발성 메모리들(예를 들어, NVM11~NVM1k)은 제1 NVM 제어기(722a)의 제어에 따라 동작하도록 구성된다. 나머지 불휘발성 메모리들(예를 들어, NVM21~NVM2i)은 제2 NVM 제어기(722b)의 제어에 따라 동작하도록 구성된다. Some nonvolatile memories (for example, NVM11 to NVM1k) of the plurality of nonvolatile memories (NVM11 to NVM1k, NVM21 to NVM2i) are configured to operate under the control of the first NVM controller 722a. The remaining nonvolatile memories (for example, NVM21 to NVM2i) are configured to operate under the control of the second NVM controller 722b.

태그 전용 휘발성 메모리(TVM; tag dedicated volatile memory)는 모듈 컨트롤러(MC), 제1 NVM 제어기(722a), 및 제2 NVM 제어기(722b)와 태그 데이터 라인(TDQ)을 공유하도록 구성된다.The tag dedicated volatile memory (TVM) is configured to share the tag data line (TDQ) with the module controller (MC), the first NVM controller 722a, and the second NVM controller 722b.

예시적으로, 도 12에 도시된 구성 요소들 각각은 복수의 반도체 칩들로 구현될 수 있고, 복수의 반도체 칩들 중 적어도 일부는 하나의 패키지로 구현될 수 있다. 예를 들어, 복수의 휘발성 메모리들(VM11~VM1n, VM21~VM2m), 복수의 불휘발성 메모리들(NVM11~NVM1k, NVM21~NVM2i), 제1 NVM 제어기(722a), 및 제2 NVM 제어기(722b) 각각은 별도의 반도체 칩들로 구현될 수 있다. 복수의 휘발성 메모리들(VM11~VM1n, VM21~VM2m), 복수의 불휘발성 메모리들(NVM11~NVM1k, NVM21~NVM2i), 제1 NVM 제어기(722a), 및 제2 NVM 제어기(722b) 중 일부 구성 요소들은 하나의 패키지로 구현될 수 있다.Illustratively, each of the components shown in FIG. 12 may be implemented as a plurality of semiconductor chips, and at least some of the plurality of semiconductor chips may be implemented as a single package. For example, a plurality of volatile memories VM11 to VM1n, VM21 to VM2m, a plurality of nonvolatile memories NVM11 to NVM1k, NVM21 to NVM2i, a first NVM controller 722a, and a second NVM controller 722b May be implemented as separate semiconductor chips. Some of the plurality of volatile memories VM11 to VM1n and VM21 to VM2m, the plurality of nonvolatile memories NVM11 to NVM1k and NVM21 to NVM2i, the first NVM controller 722a and the second NVM controller 722b Elements can be implemented in a single package.

예를 들어, 복수의 휘발성 메모리들(VM11~VM1n, VM21~VM2m) 중 일부(예를 들어, VM11~VM1n)가 하나의 패키지로 구성되고, NVM 제어기(722a) 및 불휘발성 메모리 모듈들(NVM11~NVM1k, NVM21~NVM2i) 중 일부(NVM11~NVM1k)가 다른 하나의 패키지로 구현될 수 있다. For example, some of the plurality of volatile memories (VM11 to VM1n, VM21 to VM2m) (for example, VM11 to VM1n) are constituted by one package and the NVM controller 722a and the nonvolatile memory modules NVM11 NVM1k, NVM21 to NVM2i may be implemented in another package.

예시적으로, 태그 전용 휘발성 메모리(TVM)는 복수의 반도체 칩들을 포함할 수 있다. 예를 들어, 태그 전용 휘발성 메모리(TVM)는 복수의 태그 전용 휘발성 메모리 칩들을 포함하고, 복수의 휘발성 메모리 칩들 각각은 서로 동일한 태그 정보, ECC 정보, 더티 정보 등을 저장할 수 있다. 이 경우, 어느 하나의 태그 전용 휘발성 메모리 칩의 정상 동작하지 않더라도, 다른 태그 전용 휘발성 메모리 칩을 통해 정상적으로 태그 정보, ECC 정보, 더티 정보 등을 기입 또는 출력할 수 있다. 예시적으로, 태그 전용 휘발성 메모리(TVM)는 다른 구성 요소들과 별도의 패키지로 구현될 수 있다. 또는 태그 전용 휘발성 메모리(TVM)는 다른 구성 요소들 중 적어도 일부와 함께 패키지로 구현될 수 있다.Illustratively, the tag dedicated volatile memory (TVM) may comprise a plurality of semiconductor chips. For example, the tag-only volatile memory (TVM) includes a plurality of tag-dedicated volatile memory chips, and each of the plurality of volatile memory chips can store the same tag information, ECC information, dirty information, and the like. In this case, the tag information, the ECC information, the dirty information, and the like can be normally written or output through the other tag-dedicated volatile memory chip even when the normal operation of any one of the volatile tag chips dedicated to the tag is not performed. Illustratively, the tag-specific volatile memory (TVM) may be implemented in a separate package from the other components. Or tag only volatile memory (TVM) may be implemented in a package with at least some of the other components.

태그 제어 회로(TC)는 태그 전용 휘발성 메모리(TVM)와 태그 데이터 라인(TDQ)을 공유하도록 구성된다. 즉, 태그 제어 회로(TC)는 태그 데이터 라인(TDQ)을 통해 태그 전용 휘발성 메모리(TVM)로부터 태그(TAG)를 수신하거나 또는 태그 데이터 라인(TDQ)을 통해 태그(TAG)를 태그 전용 휘발성 메모리(TVM)로 전송할 수 있다.The tag control circuit TC is configured to share the tag data volatile memory TVM with the tag data line TDQ. That is, the tag control circuit TC receives the tag TAG from the tag-dedicated volatile memory TVM via the tag data line TDQ or transmits the tag TAG via the tag data line TDQ to the tag- (TVM).

태그 제어 회로(TC)는 모듈 컨트롤러(MC)의 제어에 따라 캐시 히트 또는 캐시 미스 여부를 판별하고, 판별 결과를 캐시 정보(INFO)로써 출력할 수 있다. 예를 들어, 태그 제어 회로(TC)는 모듈 컨트롤러(MC)의 제어에 따라 태그 전용 휘발성 메모리(TVM)로부터 태그(TAG)를 수신할 수 있다. 태그 제어 회로(TC)는 모듈 컨트롤러(MC)로부터의 태그(TAG)(또는 어드레스(ADD)) 및 태그 전용 휘발성 메모리(TVM)로부터의 태그(TAG)를 비교함으로써 캐시 히트 또는 캐시 미스를 판별할 수 있다.The tag control circuit TC can determine whether the cache hit or the cache miss according to the control of the module controller MC and output the determination result as the cache information INFO. For example, the tag control circuit TC can receive the tag TAG from the tag dedicated volatile memory TVM under the control of the module controller MC. The tag control circuit TC compares the tag TAG (or the address ADD) from the module controller MC and the tag TAG from the tag dedicated volatile memory TVM to determine a cache hit or a cache miss .

예시적으로, 태그 제어 회로(TC)는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 태그 제어 회로(TC)는 모듈 컨트롤러(MC)에 포함되거나 또는 제1 및 제2 NVM 제어기들(722a, 722b)에 각각 포함될 수 있다.Illustratively, the tag control circuit TC may be implemented in software or hardware and the tag control circuit TC may be included in the module controller MC or may be incorporated into the first and second NVM controllers 722a and 722b Respectively.

도 23은 본 발명에 따른 불휘발성 메모리 모듈에 포함된 불휘발성 메모리를 예시적으로 보여주는 블록도이다. 도 23을 참조하면, 불휘발성 메모리(1100)는 메모리 셀 어레이(1110), 어드레스 디코더(1120), 제어 로직 회로(1130), 페이지 버퍼(1140), 및 입출력 회로(1150)를 포함한다.23 is a block diagram exemplarily showing a nonvolatile memory included in the nonvolatile memory module according to the present invention. Referring to FIG. 23, the nonvolatile memory 1100 includes a memory cell array 1110, an address decoder 1120, a control logic circuit 1130, a page buffer 1140, and an input / output circuit 1150.

메모리 셀 어레이(1110)는 복수의 메모리 블록들을 포함하고, 복수의 메모리 블록들 각각은 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들 각각은 복수의 워드라인들(WL)과 각각 연결될 수 있다. 복수의 메모리 셀들 각각은 1-비트를 저장하는 싱글 레벨 셀(SLC)이거나 또는 적어도 2-비트를 저장하는 멀티 레벨 셀(MLC)일 수 있다.The memory cell array 1110 includes a plurality of memory blocks, and each of the plurality of memory blocks includes a plurality of memory cells. Each of the plurality of memory cells may be connected to a plurality of word lines WL, respectively. Each of the plurality of memory cells may be a single level cell (SLC) storing one bit or a multilevel cell (MLC) storing at least two bits.

어드레스 디코더(1120)는 NVM 제어기(112)(도 2 참조)로부터 어드레스(ADDR)를 수신하고, 수신된 어드레스(ADDR)를 디코딩할 수 있다. 예시적으로, NVM 제어기(112)로부터 수신된 어드레스(ADDR)는 불휘발성 메모리(1100)의 저장 영역의 물리적 위치를 가리키는 물리적 어드레스(physical address)일 수 있다. 어드레스 디코더(1120)는 디코딩된 어드레스를 기반으로 복수의 워드라인들(WL) 중 적어도 하나의 워드라인을 선택하고, 선택된 워드라인의 전압을 구동할 수 있다.The address decoder 1120 can receive the address ADDR from the NVM controller 112 (see FIG. 2) and decode the received address ADDR. Illustratively, the address ADDR received from the NVM controller 112 may be a physical address indicating the physical location of the storage area of the non-volatile memory 1100. The address decoder 1120 may select at least one word line of the plurality of word lines WL based on the decoded address, and may drive the voltage of the selected word line.

제어 로직 회로(1130)는 NVM 제어기(112)(도 2 참조)로부터 커맨드(CMD) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들에 응답하여 어드레스 디코더(1120), 페이지 버퍼(1140), 및 입출력 회로(1150)를 제어할 수 있다.The control logic circuit 1130 receives the command CMD and the control signal CTRL from the NVM controller 112 (see FIG. 2) and generates the address decoder 1120, page buffer 1140, And the input / output circuit 1150 can be controlled.

페이지 버퍼(1140)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(1110)와 연결되고, 복수의 데이터 라인들(DL)을 통해 입출력 회로(1150)와 연결된다. 페이지 버퍼(1140)는 복수의 비트 라인들(BL)의 전압을 감지하여 메모리 셀 어레이(1110)에 저장된 데이터를 읽을 수 있다. 또는 페이지 버퍼(1140)는 복수의 데이터 라인들(DL)을 통해 수신되는 데이터를 기반으로 복수의 비트 라인들(BL)의 전압을 제어할 수 있다.The page buffer 1140 is connected to the memory cell array 1110 through a plurality of bit lines BL and is connected to the input / output circuit 1150 through a plurality of data lines DL. The page buffer 1140 can sense the voltages of the plurality of bit lines BL and read data stored in the memory cell array 1110. [ Or the page buffer 1140 may control the voltages of the plurality of bit lines BL based on data received through the plurality of data lines DL.

입출력 회로(1150)는 제어 로직 회로(1130)의 제어에 따라 NVM 제어기(112)(도 2 참조)로부터 데이터를 수신하고, 수신된 데이터를 페이지 버퍼(1140)로 전달할 수 있다. 또는 입출력 회로(1150)는 페이지 버퍼(1140)로부터 데이터를 수신하고, 수신된 데이터를 NVM 제어기(112)로 전달할 수 있다.Output circuit 1150 may receive data from the NVM controller 112 (see FIG. 2) under control of the control logic circuit 1130 and may pass the received data to the page buffer 1140. Or the I / O circuit 1150 may receive data from the page buffer 1140 and pass the received data to the NVM controller 112. [

예시적으로, NVM 제어기(122)는 모듈 컨트롤러(110)(도 2 참조)로부터의 NVM 커맨드/어드레스(CA_v)를 기반으로 어드레스(ADDR), 커맨드(CMD), 및 제어 신호(CTRL)를 생성할 수 있다. Illustratively, the NVM controller 122 generates an address ADDR, a command CMD, and a control signal CTRL based on the NVM command / address CA_v from the module controller 110 (see FIG. 2) can do.

도 24는 본 발명에 따른 불휘발성 메모리 모듈의 불휘발성 메모리에 포함된 메모리 블록들 중 제1 메모리 블록을 예시적으로 보여주는 회로도이다. 예시적으로, 도 24를 참조하여 3차원 구조의 제1 메모리 블록(BLK1)이 설명된다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 다른 메모리 블록들 또한 제1 메모리 블록(BLK1)과 유사한 구조를 가질 수 있다.24 is a circuit diagram illustrating a first memory block among the memory blocks included in the nonvolatile memory of the nonvolatile memory module according to the present invention. Illustratively, the first memory block BLK1 of a three-dimensional structure will be described with reference to Fig. However, the scope of the present invention is not limited thereto, and other memory blocks may have a structure similar to that of the first memory block BLK1.

도 24를 참조하면, 제1 메모리 블록(BLK1)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.Referring to FIG. 24, the first memory block BLK1 includes a plurality of cell strings CS11, CS12, CS21, and CS22. A plurality of cell strings CS11, CS12, CS21, and CS22 may be arranged along a row direction and a column direction to form rows and columns.

복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC8), 접지 선택 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다. 예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(CTF; charge trap flash) 메모리 셀일 수 있다.Each of the plurality of cell strings CS11, CS12, CS21, and CS22 includes a plurality of cell transistors. For example, each of the plurality of cell strings CS11, CS12, CS21, and CS22 includes string selection transistors SSTa and SSTb, a plurality of memory cells MC1 to MC8, ground selection transistors GSTa and GSTb, And dummy memory cells DMC1, DMC2. Illustratively, each of the plurality of cell transistors included in the plurality of cell strings CS11, CS12, CS21, CS22 may be a charge trap flash (CTF) memory cell.

복수의 메모리 셀들(MC1~MC8)은 직렬 연결되며, 행 방향 및 열 방향에 의해 형성된 평면과 수직한 방향인 높이 방향(height direction)으로 적층된다. 스트링 선택 트랜지스터들(SSTa, SSTb)은 직렬 연결되고, 직렬 연결된 스트링 선택 트랜지스터들(SSTa, SSTb)은 복수의 메모리 셀들(MC1~MC8) 및 비트라인(BL) 사이에 제공된다. 접지 선택 트랜지스터들(GSTa, GSTb)은 직렬 연결되고, 직렬 연결된 접지 선택 트랜지스터들(GSTa, GSTb)은 복수의 메모리 셀들(MC1~MC8) 및 공통 소스 라인(CSL) 사이에 제공된다.The plurality of memory cells MC1 to MC8 are connected in series and are stacked in a height direction perpendicular to the plane formed by the row direction and the column direction. The string selection transistors SSTa and SSTb are connected in series and the string selection transistors SSTa and SSTb connected in series are provided between the plurality of memory cells MC1 to MC8 and the bit line BL. The ground selection transistors GSTa and GSTb are connected in series and the ground selection transistors GSTa and GSTb connected in series are provided between the plurality of memory cells MC1 to MC8 and the common source line CSL.

예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 접지 선택 트랜지스터들(GSTa, GSTb) 사이에 제1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 스트링 선택 트랜지스터들(SSTa, SSTb) 사이에 제2 더미 메모리 셀(DMC2)이 제공될 수 있다. Illustratively, a first dummy memory cell DMC1 may be provided between the plurality of memory cells MC1 to MC8 and the ground selection transistors GSTa and GSTb. Illustratively, a second dummy memory cell DMC2 may be provided between the plurality of memory cells MC1 to MC8 and the string selection transistors SSTa and SSTb.

셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다. 예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 행의 접지 선택 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 접지 선택 트랜지스터들(GSTa)은 제1 접지 선택 라인에 연결될 수 있고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 접지 선택 트랜지스터들(GSTa)은 제2 접지 선택 라인에 연결될 수 있다.The ground selection transistors GSTa and GSTb of the cell strings CS11, CS12, CS21 and CS22 can be commonly connected to the ground selection line GSL. By way of example, the ground select transistors of the same row may be connected to the same ground select line, and the other row of ground select transistors may be connected to another ground select line. For example, the first ground selection transistors GSTa of the cell strings CS11, CS12 of the first row may be connected to the first ground selection line and the first ground selection transistors GSTa of the cell strings CS21, CS12 of the second row The first ground selection transistors (GSTa) may be connected to the second ground selection line.

예시적으로, 도면에 도시되지는 않았으나, 기판(미도시)으로부터 동일한 높이에 제공되는 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 높이에 제공되는 접지 선택 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 접지 선택 트랜지스터들(GSTa)은 제1 접지 선택 라인에 연결되고, 제2 접지 선택 트랜지스터들(GSTb)은 제2 접지 선택 라인에 연결될 수 있다.Illustratively, although not shown in the drawings, the ground select transistors provided at the same height from the substrate (not shown) may be connected to the same ground select line, and the ground select transistors provided at different heights may be connected to other ground select lines . For example, the first ground selection transistors GSTa of the cell strings CS11, CS12, CS21, and CS22 are connected to the first ground selection line and the second ground selection transistors GSTb are connected to the second ground selection Line. ≪ / RTI >

기판 또는 접지 선택 트랜지스터(GSTa, GSTb)으로부터 동일한 높이의 메모리 셀들은 동일한 워드라인에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들은 서로 다른 워드라인에 연결된다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 내지 제8 메모리 셀들(MC8)은 제1 내지 제8 워드라인들(WL1~WL8)에 각각 공통으로 연결된다.Memory cells of the same height from the substrate or ground select transistors (GSTa, GSTb) are commonly connected to the same word line, and memory cells of different heights are connected to different word lines. For example, the first to eighth memory cells MC8 of the cell strings CS11, CS12, CS21 and CS22 are commonly connected to the first to eighth word lines WL1 to WL8, respectively.

동일한 높이의 제1 스트링 선택 트랜지스터들(SSTa) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결된다.Of the first string selection transistors (SSTa) of the same height, the string selection transistors in the same row are connected to the same string selection line, and the other row string selection transistors are connected to another string selection line. For example, the first string selection transistors SSTa of the cell strings CS11 and CS12 of the first row are connected in common with the string selection line SSL1a and the cell strings CS21 and CS22 of the second row ) Are connected in common with the string selection line SSL1a.

마찬가지로, 동일한 높이의 제2 스트링 선택 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)과 공통으로 연결된다.Likewise, the string selection transistors of the same row among the second string selection transistors SSTb of the same height are connected to the same string selection line, and the string selection transistors of the other row are connected to another string selection line. For example, the second string selection transistors SSTb of the cell strings CS11 and CS12 of the first row are connected in common with the string selection line SSL1b and the cell strings CS21 and CS22 of the second row ) Are connected in common with the string selection line SSL2b.

예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드라인과 연결된다. 예를 들어, 제1 더미 메모리 셀들(DMC1)은 제1 더미 워드라인(DWL1)과 연결되고, 제2 더미 메모리 셀들(DMC2)은 제2 더미 워드라인(DWL2)과 연결된다. Illustratively, dummy memory cells of the same height are connected to the same dummy word line, and dummy memory cells of different heights are connected to another dummy word line. For example, the first dummy memory cells DMC1 are connected to the first dummy word line DWL1, and the second dummy memory cells DMC2 are connected to the second dummy word line DWL2.

예시적으로, 도 24에 도시된 제1 메모리 블록(BLK1)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 제1 메모리 블록(BLK1)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들은 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 제1 메모리 블록(BLK1)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.Illustratively, the first memory block BLK1 shown in FIG. 24 is exemplary and the number of cell strings may be increased or decreased, and the number of rows and columns comprised by the cell strings, depending on the number of cell strings, Increase or decrease. The number of the cell transistors GST, MC, DMC, SST, etc. of the first memory block BLK1 may be increased or decreased, and the height of the first memory block BLK1 Can be increased or decreased. Also, the number of lines (GSL, WL, DWL, SSL, etc.) connected to the cell transistors may be increased or decreased according to the number of cell transistors.

예시적으로, 본 발명에 따른 불휘발성 메모리는 상술된 구성에 한정되지 않는다. 본 발명의 기술적 사상에 따른 예시적인 실시 예로서, 불휘발성 메모리는 3차원 메모리 어레이를 포함할 수 있다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithically)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.Illustratively, the nonvolatile memory according to the present invention is not limited to the above-described configuration. As an exemplary embodiment according to the technical concept of the present invention, the non-volatile memory may include a three-dimensional memory array. The three-dimensional memory array may be monolithically formed on one or more physical levels of arrays of memory cells having an active region disposed over a silicon substrate and circuits associated with operation of the memory cells. The circuitry associated with the operation of the memory cells may be located within or on the substrate. The term monolithic means that layers of each level in a three-dimensional array are deposited directly on the lower level layers of the three-dimensional array.

본 발명의 기술적 사상에 따른 예시적인 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가지며, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.As an exemplary embodiment according to the technical concept of the present invention, a three-dimensional memory array has vertical directionality and includes vertical NAND strings in which at least one memory cell is located on the other memory cell. The at least one memory cell includes a charge trap layer. Each vertical NAND string may include at least one select transistor located over the memory cells. The at least one select transistor has the same structure as the memory cells and can be formed monolithically with the memory cells.

3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖고, 3차원 메모리 어레이에 적합한 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.A three-dimensional memory array comprising a plurality of levels and having word lines or bit lines shared between the levels, a configuration suitable for a three-dimensional memory array is disclosed in U.S. Patent No. 7,679,133, U.S. Patent No. 8,553,466 U.S. Patent No. 8,654,587, U.S. Patent No. 8,559,235, and U.S. Patent Application Publication No. 2011/0233648, which are incorporated herein by reference.

도 25는 본 발명에 따른 불휘발성 메모리 모듈의 휘발성 메모리를 예시적으로 보여주는 블록도이다. 도 25를 참조하면, 휘발성 메모리(1200)는 메모리 셀 어레이(1210), 어드레스 버퍼(1220), X-디코더(1230), Y-디코더(1240), 감지 증폭기 및 쓰기 드라이버(1250), 및 입출력 회로(1260)를 포함할 수 있다. 25 is a block diagram illustrating an exemplary volatile memory of a non-volatile memory module according to the present invention. 25, a volatile memory 1200 includes a memory cell array 1210, an address buffer 1220, an X-decoder 1230, a Y-decoder 1240, a sense amplifier and a write driver 1250, Circuitry 1260.

메모리 셀 어레이(1210)는 복수의 메모리 셀들을 포함하고, 복수의 메모리 셀들 각각은 복수의 워드 라인들(WL) 및 복수의 비트 라인들(BL)과 연결된다. 복수의 메모리 셀들 각각은 워드라인 및 비트라인이 교차하는 지점에 위치할 수 있다. 예시적으로, 복수의 메모리 셀들 각각은 스토리지 캐패시터 및 엑세스 트랜지스터를 포함할 수 있다.The memory cell array 1210 includes a plurality of memory cells, and each of the plurality of memory cells is connected to a plurality of word lines WL and a plurality of bit lines BL. Each of the plurality of memory cells may be located at a point where the word line and the bit line intersect. Illustratively, each of the plurality of memory cells may include a storage capacitor and an access transistor.

어드레스 버퍼(1220)는 모듈 컨트롤러(110)(도 2 참조)로부터 어드레스(ADD)를 수신하고, 수신된 어드레스를 임시 저장할 수 있다. 예시적으로, 어드레스 버퍼(1220)는 수신된 어드레스(ADD) 중 행 어드레스(ADD_row)를 X-디코더(1230)로 제공하고, 열 어드레스(ADD_col)를 Y-디코더(1240)로 제공할 수 있다.The address buffer 1220 can receive the address ADD from the module controller 110 (see FIG. 2) and temporarily store the received address. Illustratively, the address buffer 1220 may provide the row address ADD_row of the received address ADD to the X-decoder 1230 and provide the column address ADD_col to the Y-decoder 1240 .

X-디코더(1230)는 복수의 워드 라인들(WL)을 통해 메모리 셀 어레이(1210)와 연결된다. X-디코더(1230)는 모듈 컨트롤러(110)(도 2 참조)로부터의 행 어드레스 스트로브(RAS) 신호에 응답하여 행 어드레스(ADD_row)를 기반으로 복수의 워드 라인들(WL) 중 적어도 하나의 워드 라인을 활성화시킬 수 있다.The X-decoder 1230 is connected to the memory cell array 1210 through a plurality of word lines WL. The X-decoder 1230 is responsive to a row address strobe (RAS) signal from the module controller 110 (see FIG. 2) to generate at least one word of the plurality of word lines WL Line can be activated.

Y-디코더(1240)는 어드레스 버퍼(1220)로부터 열 어드레스(ADD_col)를 수신할 수 있다. Y-디코더(1240)는 열 어드레스 스트로브(CAS) 신호에 응답하여 열 어드레스(ADD_col)를 기반으로 감지 증폭기 및 쓰기 드라이버(1250)를 제어할 수 있다. The Y-decoder 1240 may receive the column address ADD_col from the address buffer 1220. Y-decoder 1240 may control sense amplifier and write driver 1250 based on column address ADD_col in response to a column address strobe (CAS) signal.

감지 증폭기 및 쓰기 드라이버(1250)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(1210)와 연결된다. 감지 증폭기 및 쓰기 드라이버(1250)는 복수의 비트 라인들(BL)의 전압 변화를 감지할 수 있다. 또는 감지 증폭기 및 쓰기 드라이버(1250)는 입출력 회로(1260)로부터 수신된 데이터를 기반으로 복수의 비트 라인들(BL)의 전압을 제어할 수 있다.The sense amplifier and write driver 1250 is coupled to the memory cell array 1210 via a plurality of bit lines BL. The sense amplifier and write driver 1250 may sense a voltage change of the plurality of bit lines BL. Or the sense amplifier and write driver 1250 may control the voltages of the plurality of bit lines BL based on the data received from the input / output circuit 1260.

입출력 회로(1260)는 감지 증폭기 및 쓰기 드라이버(1250)로부터 데이터를 수신하고, 수신된 데이터를 메모리 데이터 라인(MDQ)(또는 데이터 라인(DQ))을 통해 출력할 수 있다. 또는 입출력 회로(1260)는 메모리 데이터 라인(MDQ)(또는 데이터 라인(DQ))을 통해 데이터를 수신하고, 수신된 데이터를 감지 증폭기 및 쓰기 드라이버(1250)에 전달할 수 있다.The input / output circuit 1260 can receive data from the sense amplifier and write driver 1250 and output the received data through the memory data line MDQ (or the data line DQ). Or input / output circuit 1260 can receive data via the memory data line MDQ (or data line DQ) and deliver the received data to the sense amplifier and write driver 1250.

예시적으로, 어드레스(ADD)는 모듈 컨트롤러(110)(도 2 참조)로부터 제공되는 VM 커맨드/어드레스(CA_v)에 포함된 어드레스일 수 있다. 행 어드레스 스트로브(RAS) 및 열 어드레스 스트로브(CAS)는 모듈 컨트롤러(110)(도 2 참조)로부터 제공되는 VM 커맨드/어드레스(CA_v)에 포함된 신호들일 수 있다.Illustratively, the address ADD may be an address contained in the VM command / address CA_v provided from the module controller 110 (see FIG. 2). The row address strobe RAS and the column address strobe CAS may be signals included in the VM command / address CA_v provided from the module controller 110 (see FIG. 2).

도 26은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 서버 시스템을 예시적으로 보여주는 도면이다. 도 26을 참조하면, 서버 시스템(2000)은 복수의 서버 랙들(2100)을 포함할 수 있다. 복수의 서버 랙들(2100) 각각은 복수의 불휘발성 메모리 모듈들(2200)을 포함할 수 있다. 복수의 불휘발성 메모리 모듈들(2200)은 복수의 서버 랙들(2100) 각각에 포함된 프로세서들과 직접적으로 연결될 수 있다. 예를 들어, 복수의 불휘발성 메모리 모듈들(2200) 듀얼 인-라인 메모리 모듈의 형태를 갖고, 프로세서와 전기적으로 연결된 DIMM 소켓에 장착되어 프로세서와 서로 통신할 수 있다. 예시적으로, 복수의 불휘발성 메모리 모듈들(2200)은 서버 시스템(2000)의 스토리지로서 사용될 수 있다. 예시적으로, 복수의 불휘발성 메모리 모듈들(2200)은 도 1 내지 도 25를 참조하여 설명된 불휘발성 메모리 모듈이거나 또는 동작 방법을 기반으로 동작할 수 있다. 26 is a diagram illustrating a server system to which a non-volatile memory module according to the present invention is applied. Referring to FIG. 26, the server system 2000 may include a plurality of server racks 2100. Each of the plurality of server racks 2100 may include a plurality of non-volatile memory modules 2200. The plurality of nonvolatile memory modules 2200 may be directly connected to the processors included in each of the plurality of server racks 2100. For example, a plurality of non-volatile memory modules 2200 may take the form of dual in-line memory modules and may be mounted in a DIMM socket electrically connected to the processor to communicate with the processor. Illustratively, a plurality of non-volatile memory modules 2200 may be used as storage in the server system 2000. Illustratively, the plurality of non-volatile memory modules 2200 may be the non-volatile memory module described with reference to Figs. 1-25 or may operate based on the method of operation.

도 27은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 사용자 시스템을 예시적으로 보여주는 블록도이다. 도 27을 참조하면, 사용자 시스템(3000)은 프로세서(3001) 및 복수의 메모리들(3110~3140)을 포함할 수 있다.27 is a block diagram illustrating an example of a user system to which a nonvolatile memory module according to the present invention is applied. Referring to FIG. 27, the user system 3000 may include a processor 3001 and a plurality of memories 3110 to 3140.

프로세서(3001)는 메모리 컨트롤러(3002)를 포함할 수 있다. 메모리 컨트롤러(3002)는 버스(3003)를 통해 복수의 메모리들(3110~3140)과 통신할 수 있다. 예시적으로, 버스(3003)는 복수의 메모리들(3110~3140) 각각과 연결된 전용 버스들 또는 복수의 메모리들(3110~3140)과 공유되는 공용 버스를 포함할 수 있다. 예시적으로, 버스(3003)는 도 1 내지 도 26을 참조하여 설명된, 데이터 라인(DQ), 메모리 데이터 라인(MDQ), 태그 데이터 라인(TDQ) 중 적어도 하나를 포함할 수 있다.The processor 3001 may include a memory controller 3002. The memory controller 3002 can communicate with the plurality of memories 3110 to 3140 via the bus 3003. Illustratively, the bus 3003 may include a dedicated bus shared with each of the plurality of memories 3110 - 3140 or a shared bus shared with the plurality of memories 3110 - 3140. Illustratively, the bus 3003 may include at least one of a data line DQ, a memory data line MDQ, and a tag data line TDQ, described with reference to FIGS.

예시적으로, 복수의 메모리들(3110~3140) 중 적어도 일부는 도 1 내지 도 26을 참조하여 설명된 불휘발성 메모리 모듈이거나 또는 도 1 내지 도 26을 참조하여 설명된 동작 방법을 기반으로 동작할 수 있다.Illustratively, at least some of the plurality of memories 3110 through 3140 may be non-volatile memory modules as described with reference to Figs. 1-26, or may operate based on the method of operation described with reference to Figs. 1-26 .

또는, 복수의 메모리 모듈들(3110~3140) 중 적어도 일부는 불휘발성 메모리를 포함하고, 나머지 일부는 휘발성 메모리를 포함할 수 있다. 휘발성 메모리를 포함하는 메모리 모듈은 불휘발성 메모리를 포함하는 메모리 모듈의 캐시 메모리로서 사용될 수 있다. 즉, 도 1 내지 도 26을 참조하여 설명된 바와 같이, 복수의 메모리 모듈들(3110~3140) 중 일부는 사용자 시스템(3000)의 메인 메모리로써 사용되고, 나머지는 캐시 메모리로써 사용될 수 있다. 캐시 메모리로써 사용되는 메모리들은 도 1 내지 도 26을 참조하여 설명된 휘발성 메모리이거나 또는 도 1 내지 도 26을 참조하여 설명된 휘발성 메모리와 같이 동작할 수 있다. Alternatively, at least some of the plurality of memory modules 3110-310 may include non-volatile memory, and the remaining portions may include volatile memory. A memory module including a volatile memory may be used as a cache memory of a memory module including a non-volatile memory. That is, as described with reference to FIGS. 1 to 26, some of the plurality of memory modules 3110 to 3140 may be used as the main memory of the user system 3000, and others may be used as the cache memory. The memories used as cache memory may be the volatile memory described with reference to Figs. 1-26 or may operate as the volatile memory described with reference to Figs. 1-26.

예시적으로, 메모리 컨트롤러(3002)는 도 1 내지 도 26을 참조하여 설명된 모듈 컨트롤러 또는 제어기이거나 또는, 도 1 내지 도 26을 참조하여 설명된 모듈 컨트롤러 또는 제어기와 같이 동작할 수 있다. Illustratively, the memory controller 3002 may be the module controller or controller described with reference to Figs. 1-26, or it may operate with the module controller or controller described with reference to Figs. 1-26.

본 발명의 상세한 설명에서는 구체적인 실시 예들에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the claims equivalent to the claims of the present invention as well as the claims.

10 : 사용자 시스템
100 : 불휘발성 메모리 모듈
101 : 프로세서
110 : 모듈 컨트롤러
120 : 이종 메모리 장치
121 : 휘발성 메모리
122 : 불휘발성 메모리 제어기
123 : 불휘발성 메모리
130 : DB
140 : 직렬 프레즌스 검출 칩(SPD)
CA : 모듈 커맨드/어드레스
CA_v : VM 커맨드/어드레스
CA_n : NVM 커맨드/어드레스
TAG : 태그
DQ : 데이터 라인
TDQ : 태그 데이터 라인
MDQ : 메모리 데이터 라인
10: User system
100: Nonvolatile memory module
101: Processor
110: Module controller
120: heterogeneous memory device
121: volatile memory
122: Nonvolatile memory controller
123: nonvolatile memory
130: DB
140: Serial Presence Detection Chip (SPD)
CA: Module command / address
CA_v: VM command / address
CA_n: NVM command / address
TAG: Tag
DQ: Data line
TDQ: Tag data line
MDQ: memory data line

Claims (10)

불휘발성 메모리;
상기 불휘발성 메모리의 캐시 메모리이고, 저장된 데이터에 대한 태그 정보를 포함하는 휘발성 메모리;
상기 불휘발성 메모리를 제어하도록 구성되는 제어기; 및
외부 장치로부터 커맨드 및 어드레스를 수신하고, 상기 수신된 커맨드 어드레스에 응답하여, 제1 버스를 통해 상기 휘발성 메모리로 제1 커맨드 및 어드레스를 전송하고, 제2 버스를 통해 상기 제어기로 제2 커맨드 및 어드레스를 제공하는 모듈 컨트롤러를 포함하는 불휘발성 메모리 모듈.
A nonvolatile memory;
A volatile memory of said non-volatile memory, said volatile memory including tag information for stored data;
A controller configured to control the non-volatile memory; And
Receiving a command and an address from an external device and sending a first command and address to the volatile memory via a first bus in response to the received command address and sending a second command and address to the controller via a second bus, And a module controller for providing the module controller with the module controller.
제 1 항에 있어서,
상기 태그 정보는 상기 외부 장치로부터 수신된 어드레스 중 적어도 일부를 포함하는 것을 특징으로 하는 불휘발성 메모리 모듈.
The method according to claim 1,
Wherein the tag information includes at least a part of addresses received from the external device.
제 2 항에 있어서,
상기 수신된 어드레스 중 적어도 일부는 상기 수신된 어드레스 중 행 어드레스의 일부인 것을 특징으로 하는 불휘발성 메모리 모듈.
3. The method of claim 2,
Wherein at least some of the received addresses are part of a row address of the received addresses.
제 1 항에 있어서,
상기 휘발성 메모리는 복수의 휘발성 메모리 칩들을 포함하고,
상기 복수의 휘발성 메모리 칩들 중 적어도 하나는 상기 태그 정보를 저장하는 태그 전용 휘발성 메모리 칩이고, 나머지는 데이터를 저장하는 것을 특징으로 하는 불휘발성 메모리 모듈.
The method according to claim 1,
Wherein the volatile memory comprises a plurality of volatile memory chips,
Wherein at least one of the plurality of volatile memory chips is a tag-dedicated volatile memory chip that stores the tag information, and the remaining volatile memory chips store data.
제 4 항에 있어서,
상기 적어도 하나의 태그 전용 휘발성 메모리 칩은 상기 모듈 컨트롤러 및 상기 제어기와 태그 데이터 라인을 공유하고, 상기 나머지 휘발성 메모리 칩은 상기 제어기와 메모리 데이터 라인을 공유하도록 구성되는 불휘발성 메모리 모듈.
5. The method of claim 4,
Wherein the at least one tag dedicated volatile memory chip shares a tag data line with the module controller and the controller and the remaining volatile memory chip is configured to share a memory data line with the controller.
제 4 항에 있어서,
상기 복수의 휘발성 메모리 칩들은 상기 제1 버스를 통해 수신되는 제1 커맨드 및 어드레스에 응답하여 동작하는 것을 특징으로 하는 불휘발성 메모리 모듈.
5. The method of claim 4,
Wherein the plurality of volatile memory chips operate in response to a first command and an address received via the first bus.
제 4 항에 있어서,
상기 적어도 하나의 태그 전용 휘발성 메모리 칩은 상기 태그 정보에 대응하는 데이터의 에러 정정 코드, 상기 태그 정보의 에러 정정 코드, 상기 태그 정보에 대응하는 데이터의 더티 정보를 더 포함하는 것을 특징으로 하는 불휘발성 메모리 모듈.
5. The method of claim 4,
Wherein the at least one tag volatile memory chip further comprises an error correction code of data corresponding to the tag information, an error correction code of the tag information, and dirty information of data corresponding to the tag information. Memory modules.
제 1 항에 있어서,
상기 휘발성 메모리와 태그 데이터 라인을 공유하는 태그 제어 회로를 더 포함하는 불휘발성 메모리 모듈.
The method according to claim 1,
And a tag control circuit sharing the tag data line with the volatile memory.
제 8 항에 있어서,
상기 태그 제어 회로는 상기 태그 데이터 라인을 통해 태그를 수신하고, 상기 모듈 컨트롤러로부터 상기 어드레스를 수신하고, 상기 수신된 어드레스의 적어도 일부 및 상기 태그를 비교함으로써 캐시 히트 또는 캐시 미스에 대한 캐시 정보를 출력하는 것을 특징으로 하는 불휘발성 메모리 모듈.
9. The method of claim 8,
The tag control circuit receives a tag via the tag data line, receives the address from the module controller, and outputs cache information for a cache hit or cache miss by comparing at least a portion of the received address with the tag Wherein the nonvolatile memory module is a nonvolatile memory module.
제1 메모리;
상기 제1 메모리의 캐시 메모리인 제2 메모리; 및
상기 제1 메모리 및 상기 제2 메모리와 데이터 버스를 공유하고, 상기 버스를 통해 상기 제1 및 제2 메모리들을 제어하도록 구성되는 메모리 컨트롤러를 포함하고,
상기 제2 메모리는 상기 제2 메모리에 저장된 데이터에 대한 태그를 저장하도록 구성되는 태그 전용 메모리를 포함하는 것을 특징으로 하는 메모리 시스템.






A first memory;
A second memory that is a cache memory of the first memory; And
And a memory controller configured to share a data bus with the first memory and the second memory and to control the first and second memories via the bus,
Wherein the second memory comprises a tag only memory configured to store a tag for data stored in the second memory.






KR1020150170115A 2015-12-01 2015-12-01 Nonvolatile memory moduel KR102538246B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020150170115A KR102538246B1 (en) 2015-12-01 2015-12-01 Nonvolatile memory moduel
US15/366,137 US10303372B2 (en) 2015-12-01 2016-12-01 Nonvolatile memory device and operation method thereof
US16/414,893 US11106363B2 (en) 2015-12-01 2019-05-17 Nonvolatile memory device and operation method thereof
US17/389,834 US11614866B2 (en) 2015-12-01 2021-07-30 Nonvolatile memory device and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150170115A KR102538246B1 (en) 2015-12-01 2015-12-01 Nonvolatile memory moduel

Publications (2)

Publication Number Publication Date
KR20170064626A true KR20170064626A (en) 2017-06-12
KR102538246B1 KR102538246B1 (en) 2023-06-01

Family

ID=59219344

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150170115A KR102538246B1 (en) 2015-12-01 2015-12-01 Nonvolatile memory moduel

Country Status (1)

Country Link
KR (1) KR102538246B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200003709A (en) * 2018-07-02 2020-01-10 삼성전자주식회사 High bandwidth memory reliability, accessibility, and seviceability cache architecture

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080147902A1 (en) * 2006-12-13 2008-06-19 Fujitsu Limited Monitoring device, semiconductor integrated circuit, and monitoring method
JP2014232543A (en) * 2012-06-19 2014-12-11 株式会社東芝 Control program, host apparatus control method, information processing apparatus, and host apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080147902A1 (en) * 2006-12-13 2008-06-19 Fujitsu Limited Monitoring device, semiconductor integrated circuit, and monitoring method
JP2014232543A (en) * 2012-06-19 2014-12-11 株式会社東芝 Control program, host apparatus control method, information processing apparatus, and host apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200003709A (en) * 2018-07-02 2020-01-10 삼성전자주식회사 High bandwidth memory reliability, accessibility, and seviceability cache architecture

Also Published As

Publication number Publication date
KR102538246B1 (en) 2023-06-01

Similar Documents

Publication Publication Date Title
US11614866B2 (en) Nonvolatile memory device and operation method thereof
KR102523141B1 (en) Nonvolatile memory module comprising volatile memory device and nonvolatile memory device
US9767903B2 (en) Nonvolatile memory module having dual-port DRAM
KR102249810B1 (en) Storage device and operating method of storage device
KR102358053B1 (en) Storage device including a plurality of nonvolatile memory chips
KR20170016548A (en) Nonvolatile memory module having back-up function
KR102321745B1 (en) Dynamic random access memory device, operation method of the same, and memory module including the same
KR20210144180A (en) Storage device and operating method thereof
US11361803B2 (en) Memory device and operating method of the memory device
KR20210123884A (en) Storage device and operating method thereof
CN114077387A (en) Storage device and operation method thereof
KR20160144577A (en) Nonvolatile memory module and user device comprising the same
KR102513903B1 (en) Nonvolatile memory module and memory system
CN114373498A (en) Page buffer, memory device including the same, and operating method thereof
KR102538246B1 (en) Nonvolatile memory moduel
KR102548574B1 (en) Nonvolatile memory module
KR102475547B1 (en) Nonvolatile memory device and operation method thereof
KR20160144574A (en) Nonvolatile memory module and data write method thereof
KR102513913B1 (en) Nonvolatile memory module and memory system
KR20210101972A (en) Memory controller and operating method thereof
KR20170085923A (en) Method for accessing heterogeneous memories and memory module including heterogeneous memories
TW201740278A (en) Method for accessing heterogeneous memories and memory module including heterogeneous memories
KR20160144556A (en) Nonvolatile memory module
TW202324104A (en) Storage device and method of operating the same
KR20220050697A (en) Storage device and operating method thereof

Legal Events

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