KR20170010214A - Nonvolatile memory module and storage system having the same - Google Patents

Nonvolatile memory module and storage system having the same Download PDF

Info

Publication number
KR20170010214A
KR20170010214A KR1020150101100A KR20150101100A KR20170010214A KR 20170010214 A KR20170010214 A KR 20170010214A KR 1020150101100 A KR1020150101100 A KR 1020150101100A KR 20150101100 A KR20150101100 A KR 20150101100A KR 20170010214 A KR20170010214 A KR 20170010214A
Authority
KR
South Korea
Prior art keywords
data
ram
area
stored
host
Prior art date
Application number
KR1020150101100A
Other languages
Korean (ko)
Other versions
KR102482901B1 (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 KR1020150101100A priority Critical patent/KR102482901B1/en
Priority to US15/132,466 priority patent/US10048878B2/en
Publication of KR20170010214A publication Critical patent/KR20170010214A/en
Priority to US16/044,024 priority patent/US10671299B2/en
Application granted granted Critical
Publication of KR102482901B1 publication Critical patent/KR102482901B1/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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

Abstract

According to an embodiment of the present invention, a non-volatile memory module includes: at least one non-volatile memory; a random access memory (RAM) for storing data exchanged between the host and the at least one non-volatile memory; and a dual in-line memory module (DIMM) controller for controlling data exchange between the RAM and the at least one non-volatile memory. The allocation to the access area upon access to the RAM is performed in a write transaction that writes data to the RAM and the release of the allocation is performed in a read transaction of the written data. According to the embodiment of the present invention, the performance of the non-volatile memory module can be improved by efficiently using the RAM provided in a physical layer of a non-volatile memory module having a relatively small capacity.

Description

불휘발성 메모리 모듈 및 그것을 포함하는 스토리지 시스템{NONVOLATILE MEMORY MODULE AND STORAGE SYSTEM HAVING THE SAME}TECHNICAL FIELD [0001] The present invention relates to a nonvolatile memory module and a storage system including the same,

본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 상세하게는, 불휘발성 메모리 모듈 및 그것을 포함하는 스토리지 시스템에 관한 것이다.The present invention relates to a semiconductor memory device, and more particularly, to a nonvolatile memory module and a storage system including the same.

반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽기 및 쓰기 속도가 빠른 장점이 있지만, 전원 공급이 끊기면 저장된 데이터가 사라져 버리는 단점이 있다. 반면에, 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 저장된 데이터가 보존된다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 저장하는 데 쓰인다.The semiconductor memory device may be classified into a volatile semiconductor memory device and a non-volatile semiconductor memory device. Although volatile semiconductor memory devices have advantages of high read and write speed, there is a disadvantage that the stored data disappears when the power supply is cut off. On the other hand, the nonvolatile semiconductor memory device preserves the stored data even if the power supply is interrupted. Therefore, the nonvolatile semiconductor memory device is used to store contents to be stored regardless of whether power is supplied or not.

최근에 호스트와 데이터 스토리지 사이의 통신 속도를 향상시키기 위한 많은 연구가 이루어지고 있다. 예를 들어, 플래시 메모리를, 메모리(예를 들어, DRAM 등) 슬롯에 장착하여 통신 속도를 향상시키려는 연구 등이 있다. 다만, 이 경우 기존의 인터페이스와의 호환성 유지, 및 데이터의 신뢰성을 확보가 필수적으로 요구된다. 따라서, 기존의 인터페이스와 호환성을 유지하고 데이터의 신뢰성을 보장할 수 있는 플래시 메모리 장치를 개발하는 것이 중요한 문제로 부각되고 있다.Recently, much research has been done to improve the communication speed between host and data storage. For example, there is a study to improve the communication speed by mounting a flash memory in a memory (e.g., a DRAM, etc.) slot. However, in this case, it is essential to maintain compatibility with existing interfaces and to ensure data reliability. Therefore, it is important to develop a flash memory device capable of maintaining compatibility with existing interfaces and ensuring data reliability.

본 발명의 기술적 사상은 상대적으로 적은 용량을 갖는, 불휘발성 메모리 모듈의 물리 계층에 구비되는 램을 효율적으로 사용할 수 있는 방법을 제공한다.The technical idea of the present invention provides a method of efficiently using a RAM provided in a physical layer of a nonvolatile memory module having a relatively small capacity.

본 발명의 실시 예에 따른 불휘발성 메모리 모듈은, 적어도 하나의 불휘발성 메모리, 그리고 호스트와 상기 적어도 하나의 불휘발성 메모리 사이에서 교환되는 데이터가 저장되는 램, 및 상기 램과 상기 적어도 하나의 불휘발성 메모리 사이의 데이터 교환을 제어하는 DIMM 컨트롤러를 포함하는 디바이스 컨트롤러를 포함하되, 상기 램으로의 접근시에 접근 영역에 대한 할당은 상기 램에 데이터를 기록하는 쓰기 트랜잭션에서 수행되고, 상기 할당에 대한 해제는 상기 기록된 데이터의 읽기 트랜잭션에서 수행될 수 있다.A non-volatile memory module according to an embodiment of the present invention includes at least one non-volatile memory, a RAM in which data exchanged between the host and the at least one non-volatile memory is stored, A device controller comprising a DIMM controller for controlling the exchange of data between the memories, wherein access to the access area upon access to the RAM is performed in a write transaction that writes data to the RAM, May be performed in a read transaction of the recorded data.

실시 예로써, 상기 불휘발성 메모리 모듈에 대한 쓰기 동작 시, 상기 호스트는 상기 데이터를 상기 램에 저장할 때 상기 데이터가 저장될 영역을 할당하고, 상기 DIMM 컨트롤러는 상기 데이터를 상기 램으로부터 읽어낼 때 상기 데이터가 저장되었던 영역에 대한 상기 할당을 해제할 수 있다.In an embodiment, the host may allocate an area where the data is to be stored when the host stores the data in the RAM in a write operation to the nonvolatile memory module, and when the DIMM controller reads the data from the RAM, The allocation for the area in which the data was stored can be released.

다른 실시 예로써, 상기 불휘발성 메모리 모듈에 대한 읽기 동작 시, 상기 DIMM 컨트롤러는 상기 데이터를 상기 램에 저장할 때 상기 데이터가 저장될 영역을 할당하고, 상기 호스트는 상기 데이터를 상기 램으로부터 읽어낼 때 상기 데이터가 저장되었던 영역에 대한 상기 할당을 해제할 수 있다.In another embodiment, the DIMM controller allocates an area in which the data is to be stored when the DIMM controller stores the data in the RAM, and when the host reads the data from the RAM And can release the allocation for the area in which the data was stored.

또 다른 실시 예로써, 상기 DIMM 컨트롤러는, 상기 DIMM 컨트롤러가 상기 램에 저장된 상기 데이터를 읽어냈는지 여부에 관한 상태 정보를 생성하는 영역 관리자를 포함할 수 있다.In another embodiment, the DIMM controller may include a region manager that generates state information as to whether the DIMM controller has read the data stored in the RAM.

또 다른 실시 예로써, 상기 램은 상태 정보를 저장하는 상태 영역을 포함할 수 있다.In another embodiment, the RAM may include a status area for storing status information.

또 다른 실시 예로써, 상기 할당된 영역은 겹쳐 쓰기가 금지되고, 상기 해제된 영역은 겹쳐 쓰기가 허용될 수 있다.As another embodiment, the allocated area is prohibited from being overwritten, and the released area may be allowed to be overwritten.

또 다른 실시 예로써, 상기 호스트와 상기 불휘발성 메모리 모듈은 듀얼 데이터 레이트(dual data rate; DDR) 인터페이스를 통하여 통신할 수 있다.In yet another embodiment, the host and the non-volatile memory module may communicate via a dual data rate (DDR) interface.

또 다른 실시 예로써, 상기 불휘발성 메모리 모듈은 듀얼 인-라인 메모리 모듈(Dual In-line Memory Module; DIMM)일 수 있다.In yet another embodiment, the non-volatile memory module may be a dual in-line memory module (DIMM).

또 다른 실시 예로써, 상기 적어도 하나의 불휘발성 메모리는 3 차원 메모리 어레이를 포함할 수 있다.In yet another embodiment, the at least one non-volatile memory may comprise a three-dimensional memory array.

본 발명의 실시 예에 따른 스토리지 시스템은 호스트, 그리고 적어도 하나의 불휘발성 메모리, 상기 호스트와 상기 적어도 하나의 불휘발성 메모리 사이에서 교환되는 데이터가 저장되는 램, 및 상기 램과 상기 적어도 하나의 불휘발성 메모리 사이의 데이터 교환을 제어하는 DIMM 컨트롤러를 포함하는 디바이스 컨트롤러를 포함하는 불휘발성 메모리 모듈을 포함하되, 상기 램으로의 접근시에 접근 영역에 대한 할당은 상기 램에 데이터를 기록하는 쓰기 트랜잭션에서 수행되고, 상기 할당에 대한 해제는 상기 기록된 데이터의 읽기 트랜잭션에서 수행될 수 있다.A storage system according to an embodiment of the present invention includes a host and at least one non-volatile memory, a RAM in which data exchanged between the host and the at least one non-volatile memory is stored, A nonvolatile memory module including a device controller including a DIMM controller for controlling data exchange between memories, wherein allocation to an access area when accessing the ram is performed in a write transaction that writes data to the ram And release of the allocation may be performed in a read transaction of the recorded data.

실시 예로써, 불휘발성 메모리 모듈에 대한 쓰기 동작 시, 상기 호스트는 상기 데이터를 상기 램에 저장할 때 상기 데이터가 저장될 영역을 할당하고, 상기 DIMM 컨트롤러는 상기 데이터를 상기 램으로부터 읽어낼 때 상기 데이터가 저장되었던 영역에 대한 상기 할당을 해제할 수 있다.As an embodiment, in a write operation to a nonvolatile memory module, the host allocates the area in which the data is to be stored when storing the data in the RAM, and when the DIMM controller reads the data from the RAM, Can be released from the allocation to the area where the < RTI ID = 0.0 >

다른 실시 예로써, 상기 DIMM 컨트롤러는, 상기 DIMM 컨트롤러가 상기 램에 저장된 상기 데이터를 읽어냈는지 여부에 관한 상태 정보를 생성하는 제 1 영역 관리자를 포함할 수 있다.In another embodiment, the DIMM controller may include a first area manager for generating status information regarding whether the DIMM controller has read the data stored in the RAM.

또 다른 실시 예로써, 상기 불휘발성 메모리 모듈에 대한 읽기 동작 시, 상기 DIMM 컨트롤러는 상기 데이터를 상기 램에 저장할 때 상기 데이터가 저장될 영역을 할당하고, 상기 호스트는 상기 데이터를 상기 램으로부터 읽어낼 때 상기 데이터가 저장되었던 영역에 대한 상기 할당을 해제할 수 있다.In another embodiment, the DIMM controller allocates an area where the data is to be stored when the DIMM controller stores the data in the RAM, and the host reads the data from the RAM in a read operation to the nonvolatile memory module The allocation for the area in which the data was stored can be released.

또 다른 실시 예로써, 상기 호스트는, 상기 호스트가 상기 램에 저장된 상기 데이터를 읽어냈는지 여부에 관한 상태 정보를 생성하는 제 2 영역 관리자를 포함할 수 있다.In another embodiment, the host may include a second area manager that generates status information regarding whether the host has read the data stored in the RAM.

또 다른 실시 예로써, 상기 할당된 영역은 겹쳐 쓰기가 금지되고, 상기 해제된 영역은 겹쳐 쓰기가 허용될 수 있다.As another embodiment, the allocated area is prohibited from being overwritten, and the released area may be allowed to be overwritten.

본 발명의 실시 예에 따르면, 상대적으로 적은 용량을 갖는, 불휘발성 메모리 모듈의 물리 계층에 구비되는 램을 효율적으로 사용할 수 있다.According to the embodiment of the present invention, a RAM provided in a physical layer of a nonvolatile memory module having a relatively small capacity can be efficiently used.

도 1은 본 발명의 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다.
도 2는 도 1에 도시된 불휘발성 메모리 모듈 및 소프트웨어 계층을 예시적으로 보여주는 블록도이다.
도 3은 도 2에 도시된 램의 구조를 상세하게 보여주는 블록도이다.
도 4는 본 발명의 실시 예에 따른 스토리지 시스템의 동작 방법을 보여주는 블록도이다.
도 5는 본 발명의 다른 실시 예에 따른, 스토리지 시스템의 동작 방법을 보여주는 블록도이다.
도 6은 본 발명의 실시 예에 따른 불휘발성 메모리 모듈에 대한 쓰기 동작을 보여주는 순서도이다.
도 7은 본 발명의 또 다른 실시 예에 따른, 스토리지 시스템의 동작 방법을 보여주는 블록도이다.
도 8은 본 발명의 다른 실시 예에 따른 불휘발성 메모리 모듈에 대한 쓰기 동작을 보여주는 순서도이다.
도 9는 도 1에 도시된 불휘발성 메모리들 중 어느 하나를 예시적으로 보여주는 블록도이다.
도 10는 도 9의 메모리 셀 어레이에 포함된 메모리 블록들 중 어느 하나의 예를 보여주는 회로도이다.
도 11은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 12는 도 11의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도이다.
도 13은 도 11의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도이다.
도 14는 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다.
도 15는 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 16은 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 17은 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 18은 본 발명의 실시 예에 따른 불휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 도면이다.
1 is a block diagram illustrating a storage system according to an embodiment of the present invention.
2 is a block diagram illustrating an exemplary non-volatile memory module and software layer shown in FIG.
3 is a detailed block diagram illustrating the structure of the RAM shown in FIG.
4 is a block diagram illustrating a method of operating a storage system according to an embodiment of the present invention.
5 is a block diagram illustrating a method of operating a storage system in accordance with another embodiment of the present invention.
6 is a flowchart illustrating a write operation for a nonvolatile memory module according to an embodiment of the present invention.
7 is a block diagram illustrating a method of operating a storage system in accordance with another embodiment of the present invention.
8 is a flowchart illustrating a write operation to a nonvolatile memory module according to another embodiment of the present invention.
FIG. 9 is a block diagram exemplarily showing any one of the non-volatile memories shown in FIG. 1. FIG.
10 is a circuit diagram showing an example of any one of the memory blocks included in the memory cell array of FIG.
FIG. 11 is a block diagram illustrating a computing system to which a non-volatile memory module according to the present invention is applied.
FIG. 12 is a block diagram illustrating one of the non-volatile memory modules of FIG. 11; FIG.
FIG. 13 is a block diagram illustrating one of the non-volatile memory modules of FIG. 11 by way of example.
FIG. 14 is a block diagram illustrating another example of a computing system to which the nonvolatile memory module according to the present invention is applied.
15 is a block diagram illustrating an exemplary nonvolatile memory module of FIG.
FIG. 16 is a block diagram illustrating an exemplary nonvolatile memory module of FIG. 14;
17 is a block diagram illustrating an exemplary nonvolatile memory module of FIG.
18 is a diagram illustrating a server system to which a nonvolatile memory system according to an embodiment of the present invention is applied.

앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and should provide a further description of the claimed invention. Reference numerals are shown in detail in the preferred embodiments of the present invention, examples of which are shown in the drawings. Wherever possible, the same reference numbers are used in the description and drawings to refer to the same or like parts.

한 요소 또는 층이 다른 요소 또는 층에 "연결되는", "결합하는", 또는 "인접하는" 것으로 언급되는 때에는, 다른 요소 또는 층에 직접적으로 연결되거나, 결합 되거나, 또는 인접하는 것일 수 있고, 혹은 그 사이에 끼워지는 요소 또는 층이 존재할 수 있음이 잘 이해될 것이다. 본 명세서에서 사용되는 "및/또는"이라는 용어는 나열된 요소들의 하나 또는 그 이상의 가능한 조합들을 포함할 것이다.When an element or layer is referred to as being "connected," "coupled", or "adjacent" to another element or layer, it may be directly connected, joined, or adjacent to another element or layer, It is to be understood that there may be elements or layers interposed therebetween. As used herein, the term "and / or" will include one or more possible combinations of the listed elements.

비록 "제 1", "제 2" 등의 용어가 여기서 다양한 요소를 설명하기 위해 사용될 수 있다 하더라도, 이들 요소는 이 용어들에 의해 한정되지 않는다. 이 용어들은 단지 다른 것들로부터 하나의 구성요소를 구별하기 위해 사용될 수 있다. 따라서, 본 명세서에서 사용된 제 1 구성요소, 구간, 층과 같은 용어는 본 발명의 사상을 벗어나지 않는 범위 내에서 제 2 구성요소, 구간, 층 등으로 사용될 수 있다.Although the terms "first "," second "and the like can be used herein to describe various elements, these elements are not limited by these terms. These terms may only be used to distinguish one element from the other. Accordingly, terms such as first element, section, and layer used in this specification may be used as a second element, section, layer, etc. without departing from the spirit of the present invention.

"아래의", "하부의", "위의", "상부의", 및 이와 유사한 용어들은 직접적으로(directly) 또는 다른 층을 개재하여(indirectly) 배치되는 경우를 모두 포함한다. 그리고, 공간적으로 상대적인 이러한 용어들은 도면에 도시된 방향에 더하여 다른 방향을 포함하는 것으로 이해되어야 한다. 예를 들어, 만일 장치가 뒤집히면, "아래의"로 설명된 구성요소는 "위의"가 될 것이다.The terms "lower "," lower ", "upper "," upper ", and like terms encompass both directly and indirectly. It should be understood that these terms spatially relative include directions in addition to those shown in the figures. For example, if the device is upside down, the component described as "below" will be "up".

본 명세서에서 설명되는 용어는 단지 특정한 실시 예를 설명하기 위한 목적으로 사용되며, 그것에 한정되지 않는다. "하나의"와 같은 용어는 달리 명백하게 지칭하지 않으면 복수의 형태를 포함하는 것으로 이해되어야 한다. "포함하는" 또는 "구성되는"과 같은 용어는 설명된 특징, 단계, 동작, 성분, 및/또는 구성요소의 존재를 명시하며, 추가적인 하나 또는 그 이상의 특징, 단계, 동작, 성분, 구성요소 및/또는 그들의 그룹의 존재를 배제하지 않는다.The terminology described herein is used for the purpose of describing a specific embodiment only, and is not limited thereto. Terms such as "one" should be understood to include plural forms unless explicitly referred to as " one ". The terms "comprising" or "comprising" are used to specify the presence of stated features, steps, operations, components, and / or components and may include additional features, steps, operations, components, And / or does not exclude the presence of their group.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시 예를 첨부된 도면을 참조하여 설명할 것이다.Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings so that those skilled in the art can easily carry out the technical idea of the present invention.

도 1은 본 발명의 실시 예에 따른 스토리지 시스템(10)을 보여주는 블록도이다. 스토리지 시스템(10)은 호스트(100) 및 불휘발성 메모리 모듈(200)을 포함할 수 있다. 1 is a block diagram illustrating a storage system 10 in accordance with an embodiment of the present invention. The storage system 10 may include a host 100 and a non-volatile memory module 200.

호스트(100)는 불휘발성 메모리 모듈(200)에 대한 읽기 동작 또는 쓰기 동작을 수행할 수 있다. 호스트(100)는 불휘발성 메모리 모듈(200)에 데이터를 쓰거나, 저장된 데이터를 읽어내기 위해 디바이스 컨트롤러(210)의 물리 계층(230)을 액세스할 수 있다. 예를 들어, 호스트(100)는 물리 계층(230)에 포함된 램(234)을 액세스하여, 불휘발성 메모리(280)를 액세스하기 위한 커맨드 및 어드레스 등을 기록할 수 있다. The host 100 may perform a read operation or a write operation with respect to the nonvolatile memory module 200. The host 100 can access the physical layer 230 of the device controller 210 to write data to the nonvolatile memory module 200 or to read the stored data. For example, the host 100 can access the RAM 234 included in the physical layer 230 and write commands and addresses and the like for accessing the nonvolatile memory 280. [

본 발명의 실시 예에 따른 스토리지 시스템(10)은 제 2 영역 관리자(110) 및 제 1 영역 관리자(242)를 포함할 수 있다. 예를 들어, 제 2 영역 관리자(110)는 호스트(100)에 구비될 수 있고, 제 1 영역 관리자(242)는 디바이스 컨트롤러(240)에 구비될 수 있다.The storage system 10 according to an embodiment of the present invention may include a second area manager 110 and a first area manager 242. [ For example, the second area manager 110 may be provided in the host 100, and the first area manager 242 may be provided in the device controller 240.

제 2 영역 관리자(110)는 호스트(100)가 램(234)으로부터 읽어낼 데이터가 저장된 영역을 관리할 수 있다. 좀 더 상세하게 설명하면, DIMM 컨트롤러(240)가 램(234)에 데이터(예를 들어, 읽기 데이터 등)를 기록할 때, DIMM 컨트롤러(240)는 데이터가 램(234)에 저장될 영역을 할당한다. 이후, 호스트(100)가 램(234)에 저장된 데이터를 읽어갈 때, 호스트(100)는 영역 할당을 해제할 수 있다. 이와 같은 해제에 따라, 해제된 영역은 겹쳐 쓰기(overwrite)가 가능한 상태가 된다. 그리고, 제 2 영역 관리자(110)는 해제된 영역에 저장되었던 데이터가 처리되었음을 나타내는 상태 정보를 생성하고, 램(234)에 상태 정보를 업데이트 할 수 있다. DIMM 컨트롤러(240)는 업데이트 된 상태 정보를 참조하여, 램(234)에 대한 다음의 쓰기 동작을 실행할 수 있다.The second area manager 110 can manage the area where the host 100 reads data from the RAM 234. More specifically, when the DIMM controller 240 writes data (e.g., read data, etc.) to the RAM 234, the DIMM controller 240 determines whether the data is to be stored in the RAM 234 . Thereafter, when the host 100 reads the data stored in the RAM 234, the host 100 can release the area allocation. With this release, the released area is ready for overwriting. The second area manager 110 may generate status information indicating that the data stored in the released area has been processed and update the status information in the RAM 234. [ The DIMM controller 240 can perform the next write operation to the RAM 234 by referring to the updated status information.

제 1 영역 관리자(242)는 DIMM 컨트롤러(242)가 램(234)으로부터 읽어낼 데이터가 저장된 영역을 관리할 수 있다. 좀 더 상세하게 설명하면, 호스트(100)가 램(234)에 데이터(예를 들어, 스토리지 커맨드, 스토리지 어드레스, 읽기 데이터 등)를 기록할 때, 호스트(100)는 데이터가 램(234)에 저장될 영역을 할당한다. 이후, DIMM 컨트롤러(242)가 램(234)에 저장된 데이터를 읽어갈 때, DIMM 컨트롤러(242)는 영역 할당을 해제할 수 있다. 이와 같은 해제에 따라, 해제된 영역은 겹쳐 쓰기(overwrite)가 가능한 상태가 된다. 그리고, 제 1 영역 관리자(242)는 해제된 영역에 저장되었던 데이터가 처리되었음을 나타내는 상태 정보를 생성하고, 램(234)에 상태 정보를 업데이트 할 수 있다. 호스트(100)는 업데이트 된 상태 정보를 참조하여, 램(234)에 대한 다음의 쓰기 동작을 실행할 수 있다.The first area manager 242 can manage the area where the DIMM controller 242 reads data from the RAM 234. More specifically, when the host 100 writes data (e.g., storage command, storage address, read data, etc.) to the RAM 234, the host 100 sends data to the RAM 234 Allocate the area to be saved. Thereafter, when the DIMM controller 242 reads the data stored in the RAM 234, the DIMM controller 242 can release the area allocation. With this release, the released area is ready for overwriting. The first area manager 242 may then generate state information indicating that the data stored in the released area has been processed and update the state information in the RAM 234. [ The host 100 can execute the next write operation to the RAM 234 by referring to the updated status information.

본 발명의 실시 예에 따르면, 호스트(100) 또는 DIMM 컨트롤러(240)가 불휘발성 메모리 모듈(200)의 물리 영역(230)에 구비된 램(234)에 데이터를 전송하는 순간에, 데이터가 저장될 영역이 할당된다. 그리고, 할당된 영역에 저장된 데이터의 처리가 완료되면, 호스트(100) 또는 DIMM 컨트롤러(240)는 영역 할당을 해제한다. 즉, 데이터가 램(234)에 저장되는 순간에 영역이 할당되고, 데이터가 램(234)으로부터 읽혀지는 순간에 영역 할당이 해제됨으로써, 상대적으로 작은 용량을 갖는 램(234)을 효율적으로 사용할 수 있다.According to the embodiment of the present invention, when the host 100 or the DIMM controller 240 transmits data to the RAM 234 provided in the physical area 230 of the nonvolatile memory module 200, Area is allocated. When the processing of the data stored in the allocated area is completed, the host 100 or the DIMM controller 240 releases the area allocation. That is, the area is allocated at the moment when data is stored in the RAM 234, and the area is released at the moment when the data is read from the RAM 234, so that the RAM 234 having a relatively small capacity can be efficiently used have.

불휘발성 메모리 모듈(200)은 디바이스 컨트롤러(210), 복수의 불휘발성 메모리들(280), 및 버퍼(290)를 포함할 수 있다. 디바이스 컨트롤러(210)는 적어도 하나의 프로세서(220), 물리 계층(즉, DIMM PHY)(230), DIMM 컨트롤러(240), 불휘발성 메모리 인터페이스(250), ROM(260), 및 버퍼 매니저(270)를 포함활 수 있다.The non-volatile memory module 200 may include a device controller 210, a plurality of non-volatile memories 280, and a buffer 290. The device controller 210 includes at least one processor 220, a physical layer (i.e., DIMM PHY) 230, a DIMM controller 240, a non-volatile memory interface 250, a ROM 260, and a buffer manager 270 ).

프로세서(220)는 디바이스 컨트롤러(210)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(220)는 디바이스 컨트롤러(210) 내에서 실행되는, 호스트(100)와 불휘발성 메모리 모듈(200) 사이에서의 데이터 교환 동작, 에러 정정, 스크램블링 등과 같은 다양한 기능을 수행하기 위한 펌웨어를 실행할 수 있다. 예를 들어, 프로세서(220)는 멀티-코어(multi-core)일 수 있으며, 각각의 코어들은 상술한 동작들 중 적어도 하나를 수행할 수 있다.The processor 220 may control the overall operation of the device controller 210. For example, the processor 220 may perform various functions such as data exchange operations, error correction, scrambling, etc., between the host 100 and the nonvolatile memory module 200, which are executed in the device controller 210 You can run the firmware. For example, the processor 220 may be multi-core, and each core may perform at least one of the operations described above.

DIMM PHY(230)는 호스트(100)로부터 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록(CK)를 수신하는 램 컨트롤러(232)를 포함할 수 있다. 그리고, DIMM PHY(230)는 데이터(DQ)와 데이터 스트로브 신호(DQS)를 사용하여 호스트(100)와 교환하는 데이터를 저장하는 램(234)을 포함할 수 있다. 이때, 호스트(100)로부터 수신된 램 어드레스(ADDR_R)에 따라 지정된 램(234)의 공간에, 데이터(DQ)가 저장될 수 있다. 데이터(DQ)는 불휘발성 메모리(280)를 액세스하기 위한 스토리지 커맨드(CMD_S), 스토리지 어드레스(ADDR_S), 데이터(DATA), 및 상태 정보(STI) 중 적어도 하나 이상을 포함할 수 있다. 상태 정보(STI)는 램(234)에 저장된 데이터의 상태(예를 들어, 처리가 완료되었는지, 처리 중 에러가 발생하였는지 여부 등등)에 관한 정보를 포함할 수 있다.DIMM PHY 230 may include a RAM controller 232 for receiving a RAM command CMD_R, a RAM address ADDR_R, and a clock CK from host 100. The DIMM PHY 230 may include a RAM 234 for storing data exchanged with the host 100 using the data DQ and the data strobe signal DQS. At this time, the data DQ can be stored in the space of the RAM 234 designated according to the RAM address ADDR_R received from the host 100. [ The data DQ may include at least one of a storage command CMD_S for accessing the nonvolatile memory 280, a storage address ADDR_S, data DATA, and status information STI. The status information (STI) may include information about the status of the data stored in the RAM 234 (e.g., whether the process has been completed, whether an error occurred during the process, etc.).

램(234)은 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 저장하는 영역, 데이터(DATA)를 저장하는 영역, 상태 정보(STI)를 저장하는 영역으로 구분될 수 있다. 예를 들어, 램(234)은 링버퍼, 시리얼 버퍼 등으로 구현될 수 있다.The RAM 234 can be divided into an area for storing the storage command CMD_S and a storage address ADDR_S, an area for storing data DATA, and an area for storing status information STI. For example, the RAM 234 may be implemented as a ring buffer, a serial buffer, or the like.

DIMM 컨트롤러(240)는 램(234)에 저장된 데이터를 읽어내기 위해 램(234)에 액세스할 수 있다. 예를 들어, DIMM 컨트롤러(240)는 불휘발성 메모리(280)로 저장될 쓰기 데이터를 읽어내고, 이를 불휘발성 메모리(280)로 전송할 수 있다. 그리고, DIMM 컨트롤러(240)는 불휘발성 메모리(280)로부터 읽혀진 데이터를 램(234)으로 전달할 수 있다. DIMM controller 240 may access RAM 234 to read data stored in RAM 234. [ For example, the DIMM controller 240 can read write data to be stored in the nonvolatile memory 280 and transmit it to the nonvolatile memory 280. [ The DIMM controller 240 can then transfer the data read from the non-volatile memory 280 to the RAM 234. [

본 발명의 실시 예에 따르면, DIMM 컨트롤러(240)는, 호스트(100)로부터 수신된 데이터(예를 들어, 스토리지 커맨드, 스토리지 어드레스, 쓰기 데이터 등)가 저장되는 램(234)의 영역을 관리하는 제 1 영역 관리자(242)를 포함할 수 있다. 예를 들어, 쓰기 커맨드에 따라 호스트(100)로부터 수신된 쓰기 데이터가 램(234)에 기록될 때, 호스트(100)는 쓰기 데이터가 저장될 램(234)의 특정 영역을 할당할 수 있다. 그리고, DIMM 컨트롤러(240)가 할당된 영역에 저장된 쓰기 데이터를 읽어가면, DIMM 컨트롤러(100)는 영역 할당을 해제할 수 있다. 즉, 해제된 영역은 겹쳐 쓰기(overwrite)가 가능한 상태가 된다. 그리고, 제 1 영역 관리자(242)는 해제된 영역에 관한 상태 정보(STI)를 생성하고 RAM(234)으로 전송한다. 호스트(100)는 업데이트 된 상태 정보(STI)를 참조하여, 다음의 쓰기 동작을 실행할 수 있다.According to an embodiment of the present invention, the DIMM controller 240 manages the area of the RAM 234 in which data (e.g., storage command, storage address, write data, etc.) received from the host 100 is stored And may include a first zone manager 242. For example, when the write data received from the host 100 according to the write command is written to the RAM 234, the host 100 can allocate a specific area of the RAM 234 where the write data is to be stored. When the DIMM controller 240 reads the write data stored in the area allocated by the DIMM controller 240, the DIMM controller 100 can release the area allocation. That is, the released area becomes a state in which overwriting is possible. Then, the first area manager 242 generates state information (STI) about the released area and transfers it to the RAM 234. [ The host 100 can execute the next write operation with reference to the updated status information (STI).

불휘발성 메모리 인터페이스(250)는 디바이스 컨트롤러(210)와 불휘발성 메모리(280) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 디바이스 컨트롤러(210)는 불휘발성 메모리 인터페이스(250)를 통하여 불휘발성 메모리(280)와 데이터를 송수신할 수 있다.The non-volatile memory interface 250 may provide an interface between the device controller 210 and the non-volatile memory 280. For example, the device controller 210 can transmit and receive data to and from the nonvolatile memory 280 via the nonvolatile memory interface 250.

ROM(260)은 디바이스 컨트롤러(210)를 동작시키는데 필요한 다양한 동작 또는 펌웨어 등이 저장될 수 있다. 예를 들어, ROM(260)은 에러 검출기(244)에 의해 검출된 에러를 정정하는 펌웨어를 저장할 수 있다. 그리고, ROM(260)은 호스트(100)와의 인터페이싱을 수행하기 위한 코드 데이터를 저장할 수 있다.The ROM 260 may store various operations or firmware necessary for operating the device controller 210 and the like. For example, the ROM 260 may store firmware that corrects errors detected by the error detector 244. The ROM 260 may store code data for performing interfacing with the host 100.

버퍼 매니저(270)는 디바이스 컨트롤러(210)와 버퍼(290) 사이의 인터페이스를 제공할 수 있다. The buffer manager 270 may provide an interface between the device controller 210 and the buffer 290.

불휘발성 메모리(280)는 3차원 메모리 어레이를 포함할 수 있다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.Non-volatile memory 280 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 monolithical 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호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다. 그러나, 이에 한정되지 않으며, 불휘발성 메모리(280)는 플래너(planar) 타입의 메모리 어레이를 포함할 수도 있다.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. However, it is not limited thereto, and the non-volatile memory 280 may include a planar type memory array.

불휘발성 메모리(280)는 복수의 채널(CH)들을 통하여 불휘발성 메모리 인터페이스(250)와 연결될 수 있다. 불휘발성 메모리(280)는 EEPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM (Spin-Torque Magnetic RAM) 등과 같은 다양한 불휘발성 메모리 중 적어도 하나 이상을 포함할 수 있다.The non-volatile memory 280 may be coupled to the non-volatile memory interface 250 via a plurality of channels CH. The nonvolatile memory 280 may be implemented as an electrically erasable and programmable ROM (EEPROM), a NAND flash memory, a NOR flash memory, a PRAM (Phase-change RAM), a ReRAM (Resistor RAM), a FRAM (Ferroelectric RAM), a STT- Torque Magnetic RAM), and the like.

버퍼(290)는 디바이스 컨트롤러(210)의 버퍼 메모리, 워킹 메모리 또는 캐시 메모리로써 사용될 수 있다. 예를 들어, 버퍼 메모리(290)는 DRAM(dynamic random access memory), SRAM(static random access memory), PRAM(Phase-change RAM) 등과 같은 다양한 랜덤 액세스 메모리를 포함할 수 있다.The buffer 290 can be used as a buffer memory, a working memory, or a cache memory of the device controller 210. For example, the buffer memory 290 may include various random access memories such as dynamic random access memory (DRAM), static random access memory (SRAM), phase-change RAM (PRAM)

도 2는 도 1에 도시된 불휘발성 메모리 모듈 및 소프트웨어 계층을 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 호스트에서 호스트 계층 소프트웨어(100')가 구동될 수 있다. 그리고 불휘발성 메모리 모듈(200)에는 불휘발성 메모리 계층의 소프트웨어 또는 펌웨어(200')가 구동될 수 있다.2 is a block diagram illustrating an exemplary non-volatile memory module and software layer shown in FIG. Referring to FIG. 1, a host layer software 100 'may be run at a host. And the nonvolatile memory module 200 may be operated with software or firmware 200 'of the nonvolatile memory layer.

호스트 계층(100')에서 다양한 소프트웨어들이 구동될 수 있다. 예를 들어, 애플리케이션(101')과 운영 체제(102')는 호스트 상위 계층(HL1)에 포함될 수 있다. 애플리케이션(101')은 기본적인 서비스로 구동되거나, 사용자에 의해 구동되는 상위 계층의 소프트웨어일 수 있다. 운영 체제(102')는 프로그램 실행, 파일 접근, 애플리케이션의 구동, 불휘발성 메모리 모듈(200)의 제어 등과 같은 스토리지 시스템(10)에 대한 전반적인 제어 동작을 수행할 수 있다.Various software may be run in the host layer 100 '. For example, the application 101 'and the operating system 102' may be included in the host upper layer HL1. The application 101 'may be either a basic service or an upper layer software driven by a user. The operating system 102 'may perform overall control operations on the storage system 10, such as executing programs, accessing files, running applications, controlling non-volatile memory modules 200, and the like.

램 드라이버(103') 및 DIMM 계층(104')은 불휘발성 메모리 모듈(200)에 접근하기 위한 호스트 하위 계층(HL2)를 구성할 수 있다. 램 드라이버(103')나 DIMM 계층 드라이버(104')는 실질적으로 운영 체제의 커널(Kernel)에 포함될 수도 있다. 호스트 상위 계층(HL1)에서 제공되는 접근 요청에 대해, 램 드라이버(103')는 불휘발성 메모리 모듈(200)의 램(234')에 접근하기 위한 제어 동작을 수행할 수 있다. 예를 들어, 램 드라이버(103')는 운영 체제(102') 레벨에서 불휘발성 메모리 모듈(200)의 램(234')을 제어하기 위한 제어 모듈일 수 있다. 램(234')에 대한 애플리케이션(101')이나 운영 체제(102')에서의 접근 요청이 발생하면, 램 드라이버(103')가 호출될 수 있다. 그리고, 램 드라이버(103')와 함께 DIMM 계층 드라이버(104')가 호출되어 램(234')에 대한 실질적인 물리 계층 레벨에서의 접근을 지원할 수 있다.The RAM driver 103 'and the DIMM layer 104' may constitute a host lower layer HL2 for accessing the non-volatile memory module 200. [ The RAM driver 103 'or the DIMM layer driver 104' may be substantially included in the kernel of the operating system. For an access request provided by the host upper layer HL1, the RAM driver 103 'may perform a control operation for accessing the RAM 234' of the nonvolatile memory module 200. [ For example, the RAM driver 103 'may be a control module for controlling the RAM 234' of the non-volatile memory module 200 at the operating system 102 'level. When an access request is made in the application 101 'or the operating system 102' to the RAM 234 ', the RAM driver 103' can be called. The DIMM layer driver 104 'may then be invoked with the ramdriver 103' to support a substantial physical layer level of access to the RAM 234 '.

불휘발성 메모리 계층(200')에는 메모리 상위 계층(ML1)과 메모리 하위 계층(ML2)이 포함될 수 있다. 메모리 상위 계층(ML1)에서는 램(234')에 기록되는 상위 명령어(CMD_R)나 상위 어드레스(ADDR_R)에 따른 불휘발성 메모리(280')로의 접근이 제어된다. 메모리 상위 계층(ML1)은 컨트롤 계층(240')에 의해서 불휘발성 메모리(280')로의 접근 및 메모리 관리 동작이 수행될 수 있다. 예를 들어, 불휘발성 메모리(280')에 대한 가비지 컬렉션, 웨어 레벨링, 스트림 제어 등에 대한 제어가 컨트롤 계층(240')에 의해서 수행될 수 있다. 반면, 메모리 하위 계층(ML2)에서는 램(234')과 호스트(100) 간의 인터페이싱이 수행될 수 있다. 즉, 메모리 하위 계층(ML2)은 램 컨트롤러(232)를 통해서 제공되는 램 명령어(CMD_R)나 램 어드레스(ADDR_R)에 대한 램(234')의 데이터를 읽거나 기록하는 동작을 수행할 수 있다. 메모리 하위 계층(ML2)은 메모리 상위 계층(ML1)의 요청에 따라 램(234')에 접근할 수도 있다. The non-volatile memory layer 200 'may include a memory upper layer ML1 and a memory lower layer ML2. Access to the nonvolatile memory 280 'in accordance with the upper instruction CMD_R or the upper address ADDR_R recorded in the RAM 234' is controlled in the memory upper layer ML1. The memory upper layer ML1 can be accessed by the control layer 240 'and the memory management operation can be performed to the nonvolatile memory 280'. For example, control over garbage collection, wear leveling, stream control, etc., for the non-volatile memory 280 'may be performed by the control layer 240'. On the other hand, in the memory lower layer ML2, interfacing between the RAM 234 'and the host 100 can be performed. That is, the memory lower layer ML2 may perform an operation of reading or writing data of the RAM 234 'to the RAM command (CMD_R) or the RAM address (ADDR_R) provided through the RAM controller 232. The memory lower layer ML2 may access the RAM 234 'at the request of the memory upper layer ML1.

상술한 계층 구조를 갖는 소프트웨어 또는 펌웨어에 의해 호스트는 불휘발성 메모리(280)에 접근할 수 있다. 즉, DIMM 형태로 구성되는 불휘발성 메모리 모듈의 불휘발성 메모리(280)에 대한 접근은 램(234)을 매개체로 하여 제공되는 커맨드, 어드레스(CMD_R, ADDR_R)를 디코딩함으로써 수행될 수 있다.The host can access the nonvolatile memory 280 by software or firmware having the above-described hierarchical structure. That is, the access to the nonvolatile memory 280 of the nonvolatile memory module formed in the DIMM form can be performed by decoding the command, the address (CMD_R, ADDR_R) provided via the RAM 234 as an intermediary.

도 3은 도 2에 도시된 램의 구조를 상세하게 보여주는 블록도이다. 도 3을 참조하면, 램(234)은 커맨드 영역(234a), 쓰기 영역(234b), 읽기 영역(234c), 및 상태 영역(234d)을 포함할 수 있다. 호스트(100) 또는 DIMM 컨트롤러(240)로부터 수신된 데이터는, 호스트(100)로부터 수신된 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클럭(CK)에 따라, 커맨드 영역(234a), 쓰기 영역(234b), 읽기 영역(234c), 및 상태 영역(234d) 중 어느 하나에 저장될 수 있다. 예를 들어, 램(234)은 호스트와 DIMM 컨트롤러(240)에 의해 동시에 액세스 될 수 있는 듀얼 포트 SRAM일 수 있다.3 is a detailed block diagram illustrating the structure of the RAM shown in FIG. 3, the RAM 234 may include a command area 234a, a writing area 234b, a reading area 234c, and a status area 234d. The data received from the host 100 or the DIMM controller 240 are written into the command area 234a and the write area 234b in accordance with the RAM command ADDR_R and the clock CK received from the host 100 Area 234b, read area 234c, and status area 234d. For example, the RAM 234 may be a dual port SRAM that can be accessed by the host and the DIMM controller 240 simultaneously.

커맨드 영역(234a)은 램 컨트롤러(232)의 제어에 따라 호스트(100)로부터 수신되는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 저장할 수 있다. DIMM 컨트롤러는 커맨드 영역(234a)에 저장된 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 읽을 수 있다. The command area 234a can store the storage command CMD_S and the storage address ADDR_S received from the host 100 under the control of the RAM controller 232. [ The DIMM controller can read the storage command CMD_S and the storage address ADDR_S stored in the command area 234a.

쓰기 영역(234b)은 램 컨트롤러(232)의 제어에 따라 수신되는 쓰기 데이터(DATA_W)를 저장할 수 있다. DIMM 컨트롤러(240)는 램(234)의 쓰기 영역(234b)에 저장된 쓰기 데이터(DATA_W)를 읽을 수 있다. The write area 234b may store the write data (DATA_W) received under the control of the RAM controller 232. The DIMM controller 240 can read the write data (DATA_W) stored in the write area 234b of the RAM 234.

읽기 영역(234c)은 DIMM 컨트롤러(232)의 제어에 따라 수신되는 읽기 데이터(DATA_R)를 저장할 수 있다. DIMM 컨트롤러(240)는 램(234)의 읽기 영역(234c)에 저장된 쓰기 데이터(DATA_R)를 읽을 수 있다. The read area 234c may store read data (DATA_R) received under the control of the DIMM controller 232. [ The DIMM controller 240 can read the write data (DATA_R) stored in the read area 234c of the RAM 234. [

상태 영역(234d)은 램(234)에 저장된 데이터가 처리되었는지 여부에 관한 상태 정보(STI)를 저장할 수 있다. 여기서, 램에 저장된 데이터가 처리되었다 함은, 커맨드 영역(234a)에 저장된 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S), 쓰기 영역(234b)에 저장된 쓰기 데이터(DATA_W), 또는 읽기 영역(234c)에 저장된 읽기 데이터(DATA_W)가 호스트(100) 또는 DIMM 컨트롤러(240)에 의해 읽혀졌다는 것을 의미할 수 있다. 상태 영역(234d)에 저장된 상태 정보는 호스트(100)로 전달되거나 또는 DIMM 컨트롤러(240)로 전달될 수 있다. 예를 들어, 호스트(100)는 상태 정보(STI)를 참조하여 다음의 스토리지 커맨드(CMD_S) 또는 쓰기 데이터(DATA_W)를 램(234)으로 전달할 수 있다. 또는 DIMM 컨트롤러(240)는 상태 정보(STI)를 참조하여 다음의 읽기 데이터(DATA_R)를 램(234)으로 전달할 수 있다. Status area 234d may store status information (STI) as to whether data stored in RAM 234 has been processed. The storage command CMD_S and the storage address ADDR_S stored in the command area 234a and the write data DATA_W stored in the write area 234b or the read area 234c, May be read by the host 100 or the DIMM controller 240. In this case, The state information stored in the state area 234d may be transmitted to the host 100 or to the DIMM controller 240. [ For example, the host 100 may transmit the next storage command CMD_S or write data DATA_W to the RAM 234 by referring to the state information (STI). Or the DIMM controller 240 can refer to the status information (STI) and forward the next read data (DATA_R) to the RAM 234.

도 4는 본 발명의 실시 예에 따른 스토리지 시스템(10)의 동작 방법을 보여주는 블록도이다. 본 실시 예에서는, 램(234)으로 저장되는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)에 대한 영역 할당 및 영역 할당의 해제, 그리고 상태 정보(STI) 업데이트 동작에 관하여 설명하기로 한다.4 is a block diagram illustrating a method of operating the storage system 10 in accordance with an embodiment of the present invention. In this embodiment, a description will be given of the operation of area allocation and release of area allocation for the storage command CMD_S and the storage address ADDR_S stored in the RAM 234, and updating of the state information (STI).

불휘발성 메모리 모듈(도 2 참조, 200)에 대한 특정 동작을 수행하고자 하는 경우, 호스트(100)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 램(234)에 기록할 수 있다(①). 이때, 호스트(100)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)의 저장을 위해 커맨드 영역(234a)의 특정 영역(CA1)을 할당할 수 있다(①). 즉, 커맨드 영역(234a)에 대한 데이터의 기록과, 영역의 할당은 같은 타이밍에 발생할 수 있다. 호스트(100)에 의해 할당된 영역(CA1)은 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S) 만을 위한 영역이며, 다른 데이터에 의해 겹쳐 쓰기가 되지 않는다. 이후 상세하게 설명되겠지만, 상태 정보(STI)의 업데이트에 따라, 영역(CA1)의 할당이 해제된 후에야 겹쳐 쓰기가 가능해진다.The host 100 may write the storage command CMD_S and the storage address ADDR_S to the RAM 234 when performing a specific operation on the nonvolatile memory module 200 . At this time, the host 100 can allocate the specific area CA1 of the command area 234a for storing the storage command CMD_S and the storage address ADDR_S (1). That is, data recording and allocation of the command area 234a can occur at the same timing. The area CA1 allocated by the host 100 is an area for only the storage command CMD_S and the storage address ADDR_S and is not overwritten by other data. As will be described in detail later, in accordance with the update of the state information (STI), overwriting is possible only after the allocation of the area CA1 is released.

DIMM 컨트롤러(240)는 램(234)을 액세스하여 램(234)에 저장된 데이터를 읽어낼 수 있다(②). 그리고, 읽어냄과 동시에, DIMM 컨트롤러(234)는 데이터가 저장되었던 특정 영역(CA1)의 할당을 해제한다. DIMM 컨트롤러(240)에 의한 해제에 따라, 데이터가 저장되었던 영역(CA1)은 겹쳐 쓰기가 가능해진다(②). 즉, 커맨드 영역(234a)에 대한 데이터의 읽기와, 영역 할당의 해제는 같은 타이밍에 발생할 수 있다. The DIMM controller 240 can access the RAM 234 and read the data stored in the RAM 234 (2). Then, at the same time, the DIMM controller 234 releases the allocation of the specific area CA1 in which the data was stored. According to the release by the DIMM controller 240, the area CA1 in which data is stored becomes overwritable (2). That is, the reading of data in the command area 234a and the release of the area allocation can occur at the same timing.

제 1 영역 관리자(242)는 DIMM 컨트롤러(240)에 의해 해제된 영역에 관한 상태 정보를 생성할 수 있다(③). 예를 들어, 제 1 영역 관리자(242)에 의해 생성된 상태 정보는, 데이터가 저장되었던 영역(CA1)의 할당이 해제되었으니 겹쳐 쓰기가 가능하다는 식별 표시(예를 들어, 플래그 등)를 포함할 수 있다.The first area manager 242 may generate state information regarding the area released by the DIMM controller 240 (3 & cir &). For example, the status information generated by the first area manager 242 includes an identification mark (e.g., a flag, etc.) indicating that the area CA1 in which data was stored has been unallocated and is overwritable .

제 1 영역 관리자(242)는 상태 정보(STI)를 업데이트 할 수 있다(④). 예를 들어, 상태 정보(STI)는 램(234)의 상태 영역(234d)에 저장될 수 있다. 본 발명의 실시 예에서, 해제된 영역(CA1)에 관한 상태 정보(STI_CA1)가 상태 영역(234d)에 저장될 수 있다.The first area manager 242 can update the state information (STI) (4). For example, the status information (STI) may be stored in the status area 234d of the RAM 234. In the embodiment of the present invention, the state information STI_CA1 relating to the released area CA1 may be stored in the state area 234d.

호스트(100)는 램(234)의 상태 영역(234d)을 액세스하여, 상태 정보(STI_CA1)를 읽어낼 수 있다(⑤). 예를 들어, 호스트(100)는 상태 영역(234d)을 액세스하기 위해 주기적으로 램(234)을 폴링(polling) 하거나, 또는 인터럽트 방식을 사용하여 램(234)을 액세스할 수 있다.The host 100 can access the status area 234d of the RAM 234 and read out the status information STI_CA1 (5). For example, the host 100 may periodically poll the RAM 234 to access the status area 234d, or access the RAM 234 using an interrupt method.

이와 같은 동작 방법에 의하면, 상대적으로 적은 용량을 갖는 램(234)을 효율적으로 이용할 수 있다. 즉, 데이터가 램(234)에 저장될 영역을 미리 할당하지 않고, 데이터를 저장하는 주체(subject)(즉, 호스트(100) 또는 DIMM 컨트롤러(240))가 실제로 램(234)에 데이터를 저장하는 순간에 영역을 할당한다. 그리고, 램(234)에 저장된 데이터가 읽혀지자마자, 읽어간 주체(subject)(즉, DIMM 컨트롤러(240) 또는 호스트(100))에 의해 영역 할당을 해제함으로써, 램(234)의 가용 영역(available area)을 좀 더 유연하게 활용할 수 있다.According to this operation method, the RAM 234 having a relatively small capacity can be efficiently used. That is, a subject storing data (i. E. Host 100 or DIMM controller 240) may actually store data in RAM 234 without pre-allocating the area to be stored in RAM 234 And allocates the area at the moment when it is done. As soon as the data stored in the RAM 234 is read, the area allocation is released by the subject (that is, the DIMM controller 240 or the host 100) available area can be used more flexibly.

도 5는 본 발명의 다른 실시 예에 따른, 스토리지 시스템(10)의 동작 방법을 보여주는 블록도이다. 본 실시 예에서는, 쓰기 동작에 따른 데이터의 이동, 램(234)의 특정 영역에 대한 영역 할당 및 영역 할당의 해제, 그리고 상태 정보(STI) 업데이트 동작에 관하여 설명하기로 한다.5 is a block diagram illustrating a method of operating the storage system 10, in accordance with another embodiment of the present invention. In this embodiment, a description will be given of movement of data in accordance with a write operation, allocation of an area to a specific area of the RAM 234, release of area allocation, and update of the state information (STI).

우선, 쓰기 동작에 관한 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 호스트(100)로부터 램(234)으로 전송될 수 있다(①). 이때, 호스트(100)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)의 저장을 위해 커맨드 영역(234a)의 특정 영역(CA1)을 할당할 수 있다(①). 즉, 커맨드 영역(234a)에 대한 데이터의 기록과, 영역의 할당은 같은 타이밍에 발생할 수 있다. 호스트(100)에 의해 할당된 영역(CA1)은 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S) 만을 위한 영역이며, 다른 데이터에 의해 겹쳐 쓰기가 되지 않는다.First, the storage command CMD_S and the storage address ADDR_S relating to the write operation can be transferred from the host 100 to the RAM 234 (1). At this time, the host 100 can allocate the specific area CA1 of the command area 234a for storing the storage command CMD_S and the storage address ADDR_S (1). That is, data recording and allocation of the command area 234a can occur at the same timing. The area CA1 allocated by the host 100 is an area for only the storage command CMD_S and the storage address ADDR_S and is not overwritten by other data.

DIMM 컨트롤러(240)는 램(234)을 액세스하여 램(234)에 저장된 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 읽어낼 수 있다(②). 그리고, 읽어냄과 동시에, DIMM 컨트롤러(234)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 저장되었던 특정 영역(CA1)의 할당을 해제한다(②). DIMM 컨트롤러(240)에 의한 해제에 따라, 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 저장되었던 영역(CA1)은 겹쳐 쓰기가 가능한 상태가 된다. 즉, 커맨드 영역(234a)에 대한 데이터의 읽기와, 영역 할당의 해제는 같은 타이밍에 발생할 수 있다. The DIMM controller 240 accesses the RAM 234 to read the storage command CMD_S and the storage address ADDR_S stored in the RAM 234 (2). Then, at the same time, the DIMM controller 234 releases the allocation of the specific area CA1 in which the storage command CMD_S and the storage address ADDR_S were stored (2). The area CA1 in which the storage command CMD_S and the storage address ADDR_S have been stored becomes a state in which overwriting is possible in accordance with the release by the DIMM controller 240. [ That is, the reading of data in the command area 234a and the release of the area allocation can occur at the same timing.

제 1 영역 관리자(242)는 DIMM 컨트롤러(240)에 의해 해제된 영역(CA1)에 관한 상태 정보(STI_CA1)를 생성할 수 있다(③). 예를 들어, 제 1 영역 관리자(242)에 의해 생성된 상태 정보는, 데이터가 저장되었던 영역(CA1)의 할당이 해제되었으니 겹쳐 쓰기가 가능하다는 식별 표시(예를 들어, 플래그 등)를 포함할 수 있다. 제 1 영역 관리자(242)는 상태 정보(STI_CA1)를 업데이트 할 수 있다(④). 예를 들어, 상태 정보(STI_CA1)는 램(234)의 상태 영역(234d)에 저장될 수 있다.The first area manager 242 can generate the state information STI_CA1 related to the area CA1 released by the DIMM controller 240 (3). For example, the status information generated by the first area manager 242 includes an identification mark (e.g., a flag, etc.) indicating that the area CA1 in which data was stored has been unallocated and is overwritable . The first area manager 242 can update the state information STI_CA1 (4). For example, the status information STI_CA1 may be stored in the status area 234d of the RAM 234. [

호스트(100)는 램(234)의 상태 영역(234d)을 액세스하여, 상태 정보(STI_CA1)를 읽어낼 수 있다(⑤). 예를 들어, 호스트(100)는 상태 영역(234d)을 액세스하기 위해 주기적으로 램(234)을 폴링(polling) 하거나, 또는 인터럽트 방식을 사용하여 램(234)을 액세스할 수 있다.The host 100 can access the status area 234d of the RAM 234 and read out the status information STI_CA1 (5). For example, the host 100 may periodically poll the RAM 234 to access the status area 234d, or access the RAM 234 using an interrupt method.

쓰기 동작과 관련된 스토리지 커맨드(CMD_S)에 따라 쓰기 데이터(DATA_W)가 호스트(100)로부터 램(234)으로 전송될 수 있다(⑥). 이때, 호스트(100)는 쓰기 데이터(DATA_W)의 저장을 위해 쓰기 영역(234b)의 특정 영역(WA1)을 할당할 수 있다(⑥). 즉, 쓰기 영역(234b)에 대한 데이터의 기록과, 영역의 할당은 같은 타이밍에 발생할 수 있다. 호스트(100)에 의해 할당된 영역(WA1)은 쓰기 데이터(DATA_W) 만을 위한 영역이며, 다른 데이터에 의해 겹쳐 쓰기가 되지 않는다.Write data (DATA_W) may be transferred from the host 100 to the RAM 234 (6) according to the storage command CMD_S related to the write operation. At this time, the host 100 can allocate the specific area WA1 of the write area 234b for storing the write data (DATA_W) (6). That is, the data write to the write area 234b and the allocation of the area can occur at the same timing. The area WA1 allocated by the host 100 is an area for only write data (DATA_W), and is not overwritten by other data.

DIMM 컨트롤러(240)는 램(234)을 액세스하여 램(234)에 저장된 쓰기 데이터(DATA_W)를 읽어낼 수 있다(⑦). 그리고, 읽어냄과 동시에, DIMM 컨트롤러(234)는 데이터가 저장되었던 특정 영역(WA1)의 할당을 해제한다(⑦). DIMM 컨트롤러(240)에 의한 해제에 따라, 쓰기 데이터(DATA_W)가 저장되었던 영역(WA1)은 겹쳐 쓰기가 가능한 상태가 된다. 즉, 쓰기 영역(234b)에 대한 데이터의 읽기와, 영역 할당의 해제는 같은 타이밍에 발생할 수 있다. The DIMM controller 240 can access the RAM 234 and read the write data (DATA_W) stored in the RAM 234 (7). Then, at the same time, the DIMM controller 234 cancels the allocation of the specific area WA1 where the data was stored (7). With the release by the DIMM controller 240, the area WA1 in which the write data (DATA_W) is stored becomes a state in which overwriting is possible. That is, the reading of data in the writing area 234b and the releasing of the area allocation can occur at the same timing.

제 1 영역 관리자(242)는 DIMM 컨트롤러(240)에 의해 해제된 영역(WA1)에 관한 상태 정보(STI_WA1)를 생성할 수 있다(⑧). 예를 들어, 제 1 영역 관리자(242)에 의해 생성된 상태 정보는, 데이터가 저장되었던 영역(WA1)의 할당이 해제되었으니 겹쳐 쓰기가 가능하다는 식별 표시(예를 들어, 플래그 등)를 포함할 수 있다. 제 1 영역 관리자(242)는 상태 정보(STI_WA1)를 업데이트 할 수 있다(⑨). 예를 들어, 상태 정보(STI_WA1)는 램(234)의 상태 영역(234d)에 저장될 수 있다.The first area manager 242 can generate the state information STI_WA1 related to the area WA1 released by the DIMM controller 240 (8). For example, the state information generated by the first area manager 242 includes an identification mark (for example, a flag, etc.) indicating that the area WA1 in which data was stored has been deallocated and is overwritable . The first area manager 242 can update the state information STI_WA1 (9). For example, the status information STI_WA1 may be stored in the status area 234d of the RAM 234. [

호스트(100)는 램(234)의 상태 영역(234d)을 액세스하여, 상태 정보(STI_WA1)를 읽어낼 수 있다(⑩). 예를 들어, 호스트(100)는 상태 영역(234d)을 액세스하기 위해 주기적으로 램(234)을 폴링(polling) 하거나, 또는 인터럽트 방식을 사용하여 램(234)을 액세스할 수 있다.The host 100 can access the status area 234d of the RAM 234 and read the status information STI_WA1 (10). For example, the host 100 may periodically poll the RAM 234 to access the status area 234d, or access the RAM 234 using an interrupt method.

본 도면에서는 영역(CA1)에 관한 상태 정보(STI_CA1)가 업데이트 되어 호스트(100)로 전달된 후, 쓰기 데이터(DATA_W)가 램(234)의 쓰기 영역(234b)으로 전송되는 것으로 도시되었다. 그러나, 이는 설명의 편의 및 이해를 돕기 위한 것이며, 상태 정보(STI_CA1)가 업데이트 되기 전이라도, 쓰기 데이터(DATA_W)는 쓰기 영역(234b)으로 전송될 수 있다. 물론, 이때 쓰기 영역(234b)은 호스트(100)로부터 쓰기 데이터(DATA_W)를 전송받기에 충분한 메모리 공간을 가져야 할 것이다.The state information STI_CA1 of the area CA1 is updated and transferred to the host 100 and then the write data DATA_W is transferred to the write area 234b of the RAM 234. [ However, this is for convenience of explanation and understanding, and write data (DATA_W) can be transferred to the write area 234b even before the status information (STI_CA1) is updated. Of course, at this time, the write area 234b should have sufficient memory space to receive the write data (DATA_W) from the host 100. [

도 6은 본 발명의 실시 예에 따른 불휘발성 메모리 모듈(200)에 대한 쓰기 동작을 보여주는 순서도이다. 이해를 돕기 위해, 도 3 및 5를 함께 참조하여 설명될 것이다.6 is a flowchart showing a write operation for the non-volatile memory module 200 according to an embodiment of the present invention. For ease of understanding, FIGS. 3 and 5 will be described with reference to FIG.

S11 단계에서, 호스트(100)는 램(234)의 커맨드 영역(234a)에 대한 쓰기를 위한 램 커맨드(CMD_R), 및 커맨드 영역(234a)을 선택하기 위한 램 어드레스(ADDR_R)를 램 컨트롤러(232)로 전송할 수 있다.In step S11, the host 100 transfers the RAM command CMD_R for writing to the command area 234a of the RAM 234 and the RAM address ADDR_R for selecting the command area 234a to the RAM controller 232 ).

S12 단계에서, 호스트(100)는 선택된 커맨드 영역(234a)에 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 기록하기 위한 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 모듈(200)로 전송할 수 있다. 예를 들어, 스토리지 커맨드(CMD_S)는 불휘발성 메모리(280)에 대한 쓰기 동작을 위한 커맨드이고, 스토리지 어드레스(ADDR_S)는 쓰기 데이터(DATA_W)가 저장될 불휘발성 메모리(280)의 어드레스일 수 있다. In step S12, the host 100 transfers the data signal DQ and the data strobe signal DQS for writing the storage command CMD_S and the storage address ADDR_S to the selected command area 234a in the nonvolatile memory module 200 ). For example, the storage command CMD_S may be a command for a write operation to the nonvolatile memory 280, and the storage address ADDR_S may be an address of the nonvolatile memory 280 where the write data DATA_W is to be stored .

그리고, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)의 전송과 함께, 호스트(100)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)가 저장될 영역(CA1)을 할당할 수 있다. 호스트(100)에 의한 할당에 따라, 영역(CA1)은 겹쳐 쓰기가 불가능한 상태가 될 수 있다. 예를 들어, S11 단계 및 S12 단계는 스토리지 커맨드(CMD_S)에 대한 처리 과정(transaction)일 수 있다.With the transmission of the data signal DQ and the data strobe signal DQS, the host 100 can allocate the area CA1 in which the data signal DQ and the data strobe signal DQS are to be stored. According to the assignment by the host 100, the area CA1 can be in an overwrite impossible state. For example, steps S11 and S12 may be a transaction for the storage command CMD_S.

S13 단계에서, DIMM 컨트롤러(240)는 커맨드 영역(234a)에 저장된 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 읽어내고, 상태 정보(STI_CA1)를 생성할 수 있다. 예를 들어, DIMM 컨트롤러(240)에 구비된 제 1 영역 관리자(242)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 저장되었던 영역(CA1)의 할당이 해제되었다는 상태 정보(STI_CA1)를 생성할 수 있다.In step S13, the DIMM controller 240 reads the storage command CMD_S and the storage address ADDR_S stored in the command area 234a, and generates the state information STI_CA1. For example, the first area manager 242 provided in the DIMM controller 240 generates state information STI_CA1 indicating that the allocation of the area CA1 in which the storage command CMD_S and the storage address ADDR_S have been stored is released can do.

S14 단계에서, 호스트(100)는 램(234)의 상태 영역(234d)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 모듈(200)로 전송할 수 있다. The host 100 can transmit the RAM command CMD_R and the RAM address ADDR_R for selecting the status area 234d of the RAM 234 to the nonvolatile memory module 200 in step S14.

S15 단계에서, 호스트(100)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통하여 상태 영역(234d)에 저장된 상태 정보(STI_CA1)를 읽을 수 있다. 예를 들어, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 상태 정보(STI_CA1)를 포함할 수 있다. 그리고, 호스트(100)는 상태 정보(STI_CA1)를 통하여 영역(CA1)은 겹쳐 쓰기가 가능하다는 것을 인식할 수 있다. 예를 들어, 호스트(100)는 다음의 스토리지 커맨드를 영역(CA1)에 겹쳐 쓰기 할 수도 있다.In step S15, the host 100 can read the status information STI_CA1 stored in the status area 234d via the data signal DQ and the data strobe signal DQS. For example, the data signal DQ and the data strobe signal DQS may include status information STI_CA1. Then, the host 100 can recognize that the area CA1 can be overwritten through the state information STI_CA1. For example, the host 100 may overwrite the next storage command into the area CA1.

S16 단계에서, 호스트(100)는 램(234)의 쓰기 영역(234b)에 대한 쓰기를 위한 램 커맨드(CMD_R), 및 쓰기 영역(234b)을 선택하기 위한 램 어드레스(ADDR_R)를 램 컨트롤러(232)로 전송할 수 있다.In step S16, the host 100 sends a RAM command (CMD_R) for writing to the writing area 234b of the RAM 234 and a RAM address ADDR_R for selecting the writing area 234b to the RAM controller 232 ).

S17 단계에서, 호스트(100)는 선택된 쓰기 영역(234b)에 쓰기 데이터(DATA_W)를 기록하기 위한 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 모듈(200)로 전송할 수 있다. 그리고, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)의 전송과 함께, 호스트(100)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)가 저장될 영역(WA1)을 할당할 수 있다. 호스트(100)에 의한 할당에 따라, 영역(WA1)은 겹쳐 쓰기가 불가능한 상태가 될 수 있다. 예를 들어, S16 단계 및 S17 단계는 쓰기 데이터(DATA_W)에 대한 처리 과정(transaction)일 수 있다.In step S17, the host 100 may transmit the data signal DQ and the data strobe signal DQS for writing the write data (DATA_W) to the non-volatile memory module 200 in the selected write area 234b. Along with the transfer of the data signal DQ and the data strobe signal DQS, the host 100 can allocate the area WA1 in which the data signal DQ and the data strobe signal DQS are to be stored. According to the assignment by the host 100, the area WA1 can be in a state in which it can not be overwritten. For example, steps S16 and S17 may be a transaction for write data (DATA_W).

S18 단계에서, DIMM 컨트롤러(240)는 쓰기 영역(234b)에 저장된 쓰기 데이터(DATA_W)를 읽어내고, 상태 정보(STI_WA1)를 생성할 수 있다. 예를 들어, DIMM 컨트롤러(240)에 구비된 제 1 영역 관리자(242)는 쓰기 데이터(DATA_W)가 저장되었던 영역(WA1)의 할당이 해제되었다는 상태 정보(STI_WA1)를 생성할 수 있다.In step S18, the DIMM controller 240 can read the write data (DATA_W) stored in the write area 234b and generate the state information (STI_WA1). For example, the first area manager 242 provided in the DIMM controller 240 can generate the state information STI_WA1 indicating that the area WA1 in which the write data DATA_W was stored is deallocated.

S19 단계에서, 호스트(100)는 램(234)의 상태 영역(234d)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 모듈(200)로 전송할 수 있다. The host 100 can transmit the RAM command CMD_R and the RAM address ADDR_R for selecting the status area 234d of the RAM 234 to the nonvolatile memory module 200 in step S19.

S20 단계에서, 호스트(100)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통하여 상태 영역(234d)에 저장된 상태 정보(STI_WA1)를 읽을 수 있다. 예를 들어, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 상태 정보(STI_WA1)를 포함할 수 있다. 그리고, 호스트(100)는 상태 정보(STI_WA1)를 통하여 영역(WA1)은 겹쳐 쓰기가 가능하다는 것을 인식할 수 있다. 예를 들어, 호스트(100)는 다음의 쓰기 데이터를 영역(WA1)에 저장할 수도 있다.In step S20, the host 100 can read the status information STI_WA1 stored in the status area 234d via the data signal DQ and the data strobe signal DQS. For example, the data signal DQ and the data strobe signal DQS may include status information STI_WA1. Then, the host 100 can recognize that the area WA1 can be overwritten through the state information STI_WA1. For example, the host 100 may store the following write data in the area WA1.

이상 설명된 바와 같은 쓰기 동작에 따르면, 상대적으로 적은 용량을 갖는 램(234)을 효율적으로 사용할 수 있다. 즉, 데이터가 램(234)에 저장될 때 데이터가 저장될 공간이 할당되고, 데이터가 램(234)으로부터 읽혀질 때 데이터가 저장되었던 영역의 할당을 해제함으로써, 램(234)의 가용 영역(available area)을 좀 더 유연하게 활용할 수 있다.According to the writing operation as described above, the RAM 234 having a relatively small capacity can be efficiently used. That is, by allocating space in which data is to be stored when data is stored in the RAM 234, and allocating the area in which the data was stored when the data is read from the RAM 234, area can be used more flexibly.

도 7은 본 발명의 또 다른 실시 예에 따른, 스토리지 시스템(10)의 동작 방법을 보여주는 블록도이다. 본 실시 예에서는, 읽기 동작에 따른 데이터의 이동, 램(234)의 특정 영역에 대한 영역 할당 및 영역 할당의 해제, 그리고 상태 정보(STI) 업데이트 동작에 관하여 설명하기로 한다.FIG. 7 is a block diagram illustrating a method of operating a storage system 10, in accordance with another embodiment of the present invention. In this embodiment, the movement of data in accordance with the read operation, the allocation of the area to the specific area of the RAM 234, the release of the area allocation, and the update of the status information (STI) will be described.

우선, 읽기 동작에 관한 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 호스트(100)로부터 램(234)으로 전송될 수 있다(①). 이때, 호스트(100)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)의 저장을 위해 커맨드 영역(234a)의 특정 영역(CA1)을 할당할 수 있다(①). 즉, 커맨드 영역(234a)에 대한 데이터의 기록과, 영역의 할당은 같은 타이밍에 발생할 수 있다. 호스트(100)에 의해 할당된 영역(CA1)은 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S) 만을 위한 영역이며, 다른 데이터에 의해 겹쳐 쓰기가 되지 않는다.First, the storage command CMD_S and the storage address ADDR_S relating to the read operation can be transferred from the host 100 to the RAM 234 (1). At this time, the host 100 can allocate the specific area CA1 of the command area 234a for storing the storage command CMD_S and the storage address ADDR_S (1). That is, data recording and allocation of the command area 234a can occur at the same timing. The area CA1 allocated by the host 100 is an area for only the storage command CMD_S and the storage address ADDR_S and is not overwritten by other data.

DIMM 컨트롤러(240)는 램(234)을 액세스하여 램(234)에 저장된 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 읽어낼 수 있다(②). 그리고, 읽어냄과 동시에, DIMM 컨트롤러(234)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 저장되었던 특정 영역(CA1)의 할당을 해제한다(②). DIMM 컨트롤러(240)에 의한 해제에 따라, 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 저장되었던 영역(CA1)은 겹쳐 쓰기가 가능한 상태가 된다. 즉, 커맨드 영역(234a)에 대한 데이터의 읽기와, 영역 할당의 해제는 같은 타이밍에 발생할 수 있다. The DIMM controller 240 accesses the RAM 234 to read the storage command CMD_S and the storage address ADDR_S stored in the RAM 234 (2). Then, at the same time, the DIMM controller 234 releases the allocation of the specific area CA1 in which the storage command CMD_S and the storage address ADDR_S were stored (2). The area CA1 in which the storage command CMD_S and the storage address ADDR_S have been stored becomes a state in which overwriting is possible in accordance with the release by the DIMM controller 240. [ That is, the reading of data in the command area 234a and the release of the area allocation can occur at the same timing.

제 1 영역 관리자(242)는 DIMM 컨트롤러(240)에 의해 해제된 영역(CA1)에 관한 상태 정보(STI_CA1)를 생성할 수 있다(③). 예를 들어, 제 1 영역 관리자(242)에 의해 생성된 상태 정보는, 데이터가 저장되었던 영역(CA1)의 할당이 해제되었으니 겹쳐 쓰기가 가능하다는 식별 표시(예를 들어, 플래그 등)를 포함할 수 있다. 제 1 영역 관리자(242)는 상태 정보(STI_CA1)를 업데이트 할 수 있다(④). 예를 들어, 상태 정보(STI_CA1)는 램(234)의 상태 영역(234d)에 저장될 수 있다.The first area manager 242 can generate the state information STI_CA1 related to the area CA1 released by the DIMM controller 240 (3). For example, the status information generated by the first area manager 242 includes an identification mark (e.g., a flag, etc.) indicating that the area CA1 in which data was stored has been unallocated and is overwritable . The first area manager 242 can update the state information STI_CA1 (4). For example, the status information STI_CA1 may be stored in the status area 234d of the RAM 234. [

호스트(100)는 램(234)의 상태 영역(234d)을 액세스하여, 상태 정보(STI_CA1)를 읽어낼 수 있다(⑤). 예를 들어, 호스트(100)는 상태 영역(234d)을 액세스하기 위해 주기적으로 램(234)을 폴링(polling) 하거나, 또는 인터럽트 방식을 사용하여 램(234)을 액세스할 수 있다.The host 100 can access the status area 234d of the RAM 234 and read out the status information STI_CA1 (5). For example, the host 100 may periodically poll the RAM 234 to access the status area 234d, or access the RAM 234 using an interrupt method.

읽기 동작과 관련된 스토리지 커맨드(CMD_S)에 따라 읽기 데이터(DATA_R)가 DIMM 컨트롤러(240)로부터 램(234)으로 전송될 수 있다(⑥). 이때, DIMM 컨트롤러(240)는 읽기 데이터(DATA_R)의 저장을 위해 읽기 영역(234c)의 특정 영역(RA1)을 할당할 수 있다(⑥). 즉, 읽기 영역(234c)에 대한 데이터의 기록과, 영역의 할당은 같은 타이밍에 발생할 수 있다. DIMM 컨트롤러(240)에 의해 할당된 영역(RA1)은 읽기 데이터(DATA_R) 만을 위한 영역이며, 다른 데이터에 의해 겹쳐 쓰기가 되지 않는다.The read data (DATA_R) may be transferred from the DIMM controller 240 to the RAM 234 in accordance with the storage command CMD_S related to the read operation (6). At this time, the DIMM controller 240 can allocate the specific area RA1 of the read area 234c for storing the read data (DATA_R) (6). That is, the recording of data to the read area 234c and the allocation of the area can occur at the same timing. The area RA1 allocated by the DIMM controller 240 is an area for only the read data (DATA_R), and is not overwritten by other data.

호스트(100)는 램(234)을 액세스하여 램(234)에 저장된 읽기 데이터(DATA_R)를 읽어낼 수 있다(⑦). 그리고, 읽어냄과 동시에, 호스트(100)는 데이터가 저장되었던 특정 영역(RA1)의 할당을 해제한다(⑦). 호스트(100)에 의한 해제에 따라, 읽기 데이터(DATA_R)가 저장되었던 영역(RA1)은 겹쳐 쓰기가 가능한 상태가 된다. 즉, 읽기 영역(234c)에 대한 데이터의 읽기와, 영역 할당의 해제는 같은 타이밍에 발생할 수 있다. The host 100 can access the RAM 234 and read the read data (DATA_R) stored in the RAM 234 (7). Then, at the same time, the host 100 releases the allocation of the specific area RA1 in which the data is stored (7). With the release by the host 100, the area RA1 in which the read data (DATA_R) is stored becomes a state in which overwriting is possible. That is, the reading of data in the reading area 234c and the releasing of the area allocation can occur at the same timing.

제 2 영역 관리자(110)는 DIMM 컨트롤러(240)에 의해 해제된 영역(RA1)에 관한 상태 정보(STI_RA1)를 생성할 수 있다(⑧). 예를 들어, 제 2 영역 관리자(110)에 의해 생성된 상태 정보는, 읽기 데이터(DATA_R)가 저장되었던 영역(RA1)의 할당이 해제되었으니 겹쳐 쓰기가 가능하다는 식별 표시(예를 들어, 플래그 등)를 포함할 수 있다. 제 2 영역 관리자(110)는 상태 정보(STI_RA1)를 업데이트 할 수 있다(⑨). 예를 들어, 상태 정보(STI_RA1)는 램(234)의 상태 영역(234d)에 저장될 수 있다.The second area manager 110 can generate the state information STI_RA1 related to the area RA1 released by the DIMM controller 240 (8). For example, the status information generated by the second area manager 110 may include an identification mark (e.g., a flag or the like) indicating that overwriting is possible because the area RA1 in which the read data (DATA_R) ). The second area manager 110 can update the state information STI_RA1 (9). For example, the status information STI_RA1 may be stored in the status area 234d of the RAM 234. [

DIMM 컨트롤러(240)는 램(234)의 상태 영역(234d)을 액세스하여, 상태 정보(STI_RA1)를 읽어낼 수 있다(⑩). DIMM 컨트롤러(240)는 상태 정보(STI_RA1)를 참조하여, 다음의 쓰기 동작을 수행할 수 있다. 예를 들어, DIMM 컨트롤러(240)는 쓰기 데이터(DATA_W)가 저장되었던 영역(RA1)에 다음의 쓰기 데이터를 겹쳐 쓰기 할 수도 있다.The DIMM controller 240 can access the status area 234d of the RAM 234 and read out the status information STI_RA1 (10). The DIMM controller 240 can perform the next write operation with reference to the state information (STI_RA1). For example, the DIMM controller 240 may overwrite the next write data in the area RA1 in which the write data (DATA_W) was stored.

본 도면에서는 영역(CA1)에 관한 상태 정보(STI_CA1)가 업데이트 되어 호스트(100)로 전달된 후, 읽기 데이터(DATA_R)가 램(234)의 읽기 영역(234c)으로 전송되는 것으로 도시되었다. 그러나, 이는 설명의 편의 및 이해를 돕기 위한 것이며, 상태 정보(STI_CA1)가 업데이트 되기 전이라도, 읽기 데이터(DATA_R)는 읽기 영역(234c)으로 전송될 수 있다. 물론, 이때 읽기 영역(234c)은 DIMM 컨트롤러(240)로부터 읽기 데이터(DATA_R)를 전송받기에 충분한 메모리 공간을 가져야 할 것이다.The state information STI_CA1 of the area CA1 is updated and transferred to the host 100 and then the read data DATA_R is transmitted to the read area 234c of the RAM 234. [ However, this is for convenience and ease of explanation, and the read data (DATA_R) can be transferred to the read area 234c even before the status information (STI_CA1) is updated. Of course, at this time, the read area 234c should have sufficient memory space to receive the read data (DATA_R) from the DIMM controller 240.

도 8은 본 발명의 다른 실시 예에 따른 불휘발성 메모리 모듈(200)에 대한 쓰기 동작을 보여주는 순서도이다. 이해를 돕기 위해, 도 3 및 7을 함께 참조하여 설명될 것이다.FIG. 8 is a flowchart showing a write operation to the non-volatile memory module 200 according to another embodiment of the present invention. For ease of understanding, reference will be made to Figs. 3 and 7 together.

S31 단계에서, 호스트(100)는 램(234)의 커맨드 영역(234a)에 대한 쓰기를 위한 램 커맨드(CMD_R), 및 커맨드 영역(234a)을 선택하기 위한 램 어드레스(ADDR_R)를 램 컨트롤러(232)로 전송할 수 있다.In step S31, the host 100 transfers the RAM command CMD_R for writing to the command area 234a of the RAM 234 and the RAM address ADDR_R for selecting the command area 234a to the RAM controller 232 ).

S32 단계에서, 호스트(100)는 선택된 커맨드 영역(234a)에 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 기록하기 위한 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 모듈(200)로 전송할 수 있다. 예를 들어, 스토리지 커맨드(CMD_S)는 불휘발성 메모리(280)에 대한 읽기 동작을 위한 커맨드이고, 스토리지 어드레스(ADDR_S)는 불휘발성 메모리(280)로부터 읽어낼 읽기 데이터(DATA_R)가 저장된 어드레스일 수 있다. In step S32, the host 100 transfers the data signal DQ and the data strobe signal DQS for writing the storage command CMD_S and the storage address ADDR_S to the selected command area 234a in the nonvolatile memory module 200 ). For example, the storage command CMD_S is a command for a read operation to the nonvolatile memory 280, and the storage address ADDR_S is an address where the read data (DATA_R) to be read from the nonvolatile memory 280 is stored have.

그리고, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)의 전송과 함께, 호스트(100)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)가 저장될 영역(CA1)을 할당할 수 있다. 호스트(100)에 의한 할당에 따라, 영역(CA1)은 겹쳐 쓰기가 불가능한 상태가 될 수 있다. 예를 들어, S31 단계 및 S32 단계는 스토리지 커맨드(CMD_S)에 대한 처리 과정(transaction)일 수 있다.With the transmission of the data signal DQ and the data strobe signal DQS, the host 100 can allocate the area CA1 in which the data signal DQ and the data strobe signal DQS are to be stored. According to the assignment by the host 100, the area CA1 can be in an overwrite impossible state. For example, steps S31 and S32 may be a transaction for the storage command CMD_S.

S33 단계에서, DIMM 컨트롤러(240)는 커맨드 영역(234a)에 저장된 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)를 읽어내고, 상태 정보(STI_CA1)를 생성할 수 있다. 예를 들어, DIMM 컨트롤러(240)에 구비된 제 1 영역 관리자(242)는 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)가 저장되었던 영역(CA1)의 할당이 해제되었다는 상태 정보(STI_CA1)를 생성할 수 있다.In step S33, the DIMM controller 240 reads the storage command CMD_S and the storage address ADDR_S stored in the command area 234a, and generates the state information STI_CA1. For example, the first area manager 242 provided in the DIMM controller 240 generates state information STI_CA1 indicating that the allocation of the area CA1 in which the storage command CMD_S and the storage address ADDR_S have been stored is released can do.

S34 단계에서, 호스트(100)는 램(234)의 상태 영역(234d)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 모듈(200)로 전송할 수 있다. The host 100 can transmit the RAM command CMD_R and the RAM address ADDR_R for selecting the status area 234d of the RAM 234 to the nonvolatile memory module 200 in step S34.

S35 단계에서, 호스트(100)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통하여 상태 영역(234d)에 저장된 상태 정보(STI_CA1)를 읽을 수 있다. 예를 들어, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 상태 정보(STI_CA1)를 포함할 수 있다. 그리고, 호스트(100)는 상태 정보(STI_CA1)를 통하여 영역(CA1)은 겹쳐 쓰기가 가능하다는 것을 인식할 수 있다. 예를 들어, 호스트(100)는 다음의 스토리지 커맨드를 영역(CA1)에 겹쳐 쓰기 할 수도 있다.In step S35, the host 100 can read the status information STI_CA1 stored in the status area 234d via the data signal DQ and the data strobe signal DQS. For example, the data signal DQ and the data strobe signal DQS may include status information STI_CA1. Then, the host 100 can recognize that the area CA1 can be overwritten through the state information STI_CA1. For example, the host 100 may overwrite the next storage command into the area CA1.

S36 단계에서, 호스트(100)는 램(234)의 읽기 영역(234c)에 대한 쓰기를 위한 램 커맨드(CMD_R), 및 읽기 영역(234c)을 선택하기 위한 램 어드레스(ADDR_R)를 램 컨트롤러(232)로 전송할 수 있다.In step S36, the host 100 sends a RAM command (CMD_R) for writing to the reading area 234c of the RAM 234 and a RAM address ADDR_R for selecting the reading area 234c to the RAM controller 232 ).

S37 단계에서, 호스트(100)는 읽기 영역(234c)에 저장된 읽기 데이터(DATA_R)를 읽어내기 위하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 모듈(200)로부터 수신할 수 있다. 물론, 이에 앞서, 불휘발성 메모리(280)로부터 읽어낸 읽기 데이터(DATA_R)가 읽기 영역(234c)에 저장될 때, DIMM 컨트롤러(240)는 읽기 데이터(DATA_R) 데이터가 저장될 영역(RA1)을 할당할 것이다. 할당에 따라, 영역(RA1)은 겹쳐 쓰기가 불가능한 상태가 될 것이다. 그리고, 불휘발성 메모리 모듈(200)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)가 수신되면, 호스트(100)는 읽기 데이터(DATA_R)가 저장되었던 영역(RA1)의 할당을 해제할 수 있다. 호스트(100)에 의한 해제에 따라, 영역(RA1)은 겹쳐 쓰기가 가능한 상태가 될 수 있다. 예를 들어, S36 단계 및 S37 단계는 읽기 데이터(DATA_R)에 대한 처리 과정(transaction)일 수 있다.In step S37, the host 100 can receive the data signal DQ and the data strobe signal DQS from the non-volatile memory module 200 to read the read data (DATA_R) stored in the read area 234c have. Of course, when the read data (DATA_R) read from the nonvolatile memory 280 is stored in the read area 234c, the DIMM controller 240 sets the area RA1 in which the read data (DATA_R) data is stored Will be assigned. According to the allocation, the area RA1 will be in an overwrite impossible state. When the data signal DQ and the data strobe signal DQS are received from the nonvolatile memory module 200, the host 100 can release the allocation of the area RA1 in which the read data DATA_R was stored . With the release by the host 100, the area RA1 can be put in an overwriteable state. For example, steps S36 and S37 may be a transaction on the read data (DATA_R).

S38 단계에서, 호스트(100)는 읽기 영역(234c)에 저장된 읽기 데이터(DATA_R)를 읽어낸 후, 상태 정보(STI_RA1)를 생성할 수 있다. 예를 들어, 호스트(100)에 구비된 제 2 영역 관리자(110)는 읽기 데이터(DATA_R)가 저장되었던 영역(RA1)의 할당이 해제되었다는 상태 정보(STI_RA1)를 생성할 수 있다.In step S38, the host 100 may read the read data (DATA_R) stored in the read area 234c and then generate the status information (STI_RA1). For example, the second area manager 110 provided in the host 100 can generate the state information STI_RA1 indicating that the area RA1 in which the read data (DATA_R) was stored has been deallocated.

S39 단계에서, 호스트(100)는 램(234)의 상태 영역(234d)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 모듈(200)로 전송할 수 있다. The host 100 can transmit the RAM command CMD_R and the RAM address ADDR_R for selecting the status area 234d of the RAM 234 to the nonvolatile memory module 200 in step S39.

S40 단계에서, 호스트(100)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통하여 상태 영역(234d)에 상태 정보(STI_RA1)를 저장할 수 있다. 예를 들어, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 상태 정보(STI_RA1)를 포함할 수 있다. 그리고, DIMM 컨트롤러(240)는 상태 정보(STI_RA1)를 통하여 영역(RA1)은 겹쳐 쓰기가 가능하다는 것을 인식할 수 있다. 예를 들어, DIMM 컨트롤러(240)는 다음의 읽기 데이터를 영역(RA1)에 저장할 수도 있다.In step S40, the host 100 may store the status information STI_RA1 in the status area 234d via the data signal DQ and the data strobe signal DQS. For example, the data signal DQ and the data strobe signal DQS may include status information STI_RA1. Then, the DIMM controller 240 can recognize that the area RA1 is overwritable through the state information (STI_RA1). For example, the DIMM controller 240 may store the following read data in the area RA1.

S41 단계에서, 호스트(100)는 읽은 상태 정보(STI_CA1) 및 읽기 데이터(DATA_R)를 참조하여, 읽기 동작이 완료되었는지 여부를 판단할 수 있다. 만일 읽기 동작이 완료되었다고 판단되면(Yes), 절차는 종료된다. 반면, 읽기 동작이 완료되지 않았다고 판단되면(No), S37 단계 내지 S40 단계가 반복하여 실행될 수 있다. 즉, 호스트(100)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통하여 읽기 데이터(DATA_W)를 수신하고, 상태 데이터를 업데이트 한다. 결국, S41 단계에서, 모든 읽기 데이터(DATA_R)가 읽기 영역(234c)으로부터 읽혀지면, 읽기 동작은 종료할 것이다.In step S41, the host 100 can determine whether or not the read operation is completed by referring to the read state information (STI_CA1) and the read data (DATA_R). If it is determined that the read operation is completed (Yes), the procedure is ended. On the other hand, if it is determined that the read operation is not completed (No), steps S37 to S40 may be repeatedly performed. That is, the host 100 receives the read data (DATA_W) via the data signal (DQ) and the data strobe signal (DQS), and updates the status data. As a result, in step S41, if all the read data DATA_R is read from the read area 234c, the read operation will end.

이상 설명된 바와 같은 쓰기 동작에 따르면, 상대적으로 적은 용량을 갖는 램(234)을 효율적으로 사용할 수 있다. 즉, 데이터가 램(234)에 저장될 때 데이터가 저장될 공간이 할당되고, 데이터가 램(234)으로부터 읽혀질 때 데이터가 저장되었던 영역의 할당을 해제함으로써, 램(234)의 가용 영역(available area)을 좀 더 유연하게 활용할 수 있다.According to the writing operation as described above, the RAM 234 having a relatively small capacity can be efficiently used. That is, by allocating space in which data is to be stored when data is stored in the RAM 234, and allocating the area in which the data was stored when the data is read from the RAM 234, area can be used more flexibly.

도 9는 도 1에 도시된 불휘발성 메모리들 중 어느 하나를 예시적으로 보여주는 블록도이다. 도 9를 참조하면, 불휘발성 메모리(280)는 메모리 셀 어레이(281), 어드레스 디코더(282), 페이지 버퍼(283), 입출력 회로(284), 그리고 제어 로직 및 전압 발생 회로(285)를 포함할 수 있다.FIG. 9 is a block diagram exemplarily showing any one of the non-volatile memories shown in FIG. 1. FIG. 9, the non-volatile memory 280 includes a memory cell array 281, an address decoder 282, a page buffer 283, an input / output circuit 284, and control logic and voltage generation circuit 285 can do.

메모리 셀 어레이(281)는 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 각각은 복수의 셀 스트링들을 포함할 수 있다. 복수의 셀 스트링들 각각은 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들은 복수의 워드라인들(WL)과 연결될 수 있다. 복수의 메모리 셀들 각각은 1-비트를 저장하는 단일 레벨 셀(Single Level Cell; SLC) 또는 적어도 2-비트를 저장하는 멀티 레벨 셀(Multi Level Cell; MLC)을 포함할 수 있다.The memory cell array 281 may include a plurality of memory blocks. Each of the plurality of memory blocks may include a plurality of cell strings. Each of the plurality of cell strings includes a plurality of memory cells. The plurality of memory cells may be connected to a plurality of word lines WL. Each of the plurality of memory cells may include a single level cell (SLC) storing one bit or a multi level cell (MLC) storing at least two bits.

어드레스 디코더(282)는 복수의 워드라인들(WL), 스트링 선택 라인들(SSL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(281)와 연결된다. 어드레스 디코더(282)는 외부 장치로부터 어드레스(ADDR_P)를 수신하고, 수신된 물리 어드레스(ADDR_P)를 디코딩하여, 복수의 워드라인들(WL)을 구동할 수 있다. 예를 들어, 어드레스 디코더(282)는 외부 장치로부터 수신된 물리 어드레드(ADDR_P)를 디코딩하고, 디코딩된 물리 어드레스(ADDR_P)를 기반으로 복수의 워드라인들(WL) 중 적어도 하나의 워드라인을 선택하고, 선택된 적어도 하나의 워드 라인을 구동할 수 있다. 예시적으로, 물리 어드레스(ADDR_P)는 스토리지 어드레스(ADDR_S)가 변환된, 불휘발성 메모리(280)의 물리 어드레스를 나타낼 수 있다. 상술된 어드레스 변환 동작은 디바이스 컨트롤러(230) 또는 디바이스 컨트롤러(230)에 의해 구동되는 플래시 변환 계층(FTL)에 의해 수행될 수 있다.The address decoder 282 is connected to the memory cell array 281 through a plurality of word lines WL, string selection lines SSL, and ground selection lines GSL. The address decoder 282 can receive the address ADDR_P from the external device and decode the received physical address ADDR_P to drive the plurality of word lines WL. For example, the address decoder 282 decodes the physical address ADDR_P received from the external device and generates at least one word line of the plurality of word lines WL based on the decoded physical address ADDR_P And may drive at least one selected word line. Illustratively, the physical address ADDR_P may indicate the physical address of the nonvolatile memory 280 to which the storage address ADDR_S is converted. The address conversion operation described above can be performed by the flash conversion layer (FTL) driven by the device controller 230 or the device controller 230. [

페이지 버퍼(283)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(281)와 연결된다. 페이지 버퍼(283)는 제어 로직 및 전압 발생 회로(285)의 제어에 따라 입출력 회로(284)로부터 수신된 데이터(DATA)가 메모리 셀 어레이(281)에 저장되도록 비트 라인들(BL)을 제어할 수 있다. 페이지 버퍼(283)는 제어 로직 및 전압 발생 회로(285)의 제어에 따라 메모리 셀 어레이(281)에 저장된 데이터를 읽고, 읽은 데이터를 입출력 회로(284)로 전달할 수 있다. 예시적으로, 페이지 버퍼(283)는 입출력 회로(284)로부터 페이지 단위로 데이터를 수신하거나 또는 메모리 셀 어레이(281)로부터 페이지 단위로 데이터를 읽을 수 있다.The page buffer 283 is connected to the memory cell array 281 through a plurality of bit lines BL. The page buffer 283 controls the bit lines BL so that the data (DATA) received from the input / output circuit 284 is stored in the memory cell array 281 under the control of the control logic and voltage generation circuit 285 . The page buffer 283 can read the data stored in the memory cell array 281 and transmit the read data to the input / output circuit 284 under the control of the control logic and voltage generation circuit 285. [ By way of example, the page buffer 283 may receive data on a page-by-page basis from the input / output circuit 284 or may read data on a page-by-page basis from the memory cell array 281.

입출력 회로(284)는 외부 장치로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 페이지 버퍼(283)로 전달할 수 있다. 또는 입출력 회로(284)는 페이지 버퍼(283)로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 외부 장치(예를 들어, DIMM 컨트롤러(230))로 전달할 수 있다. 예를 들어, 입출력 회로(284)는 제어 신호(CTRL)와 동기화되어 외부 장치와 데이터(DATA)를 송수신할 수 있다.The input / output circuit 284 can receive the data (DATA) from the external device and transfer the received data (DATA) to the page buffer 283. Or input / output circuit 284 may receive data (DATA) from page buffer 283 and transfer the received data (DATA) to an external device (e.g., DIMM controller 230). For example, the input / output circuit 284 can transmit and receive data (DATA) with an external device in synchronization with the control signal CTRL.

제어 로직 및 전압 발생 회로(285)는 외부 장치로부터 스토리지 커맨드(CMD_S) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들에 응답하여 어드레스 디코더(282), 페이지 버퍼(283), 및 입출력 회로(284)를 제어할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(285)는 신호들(CMD_S, CTRL)에 응답하여 데이터(DATA)가 메모리 셀 어레이(281)에 저장되도록 다른 구성 요소들을 제어할 수 있다. 또는 제어 로직 및 전압 발생 회로(285)는 신호들(CMD_S, CTRL)에 응답하여 메모리 셀 어레이(281)에 저장된 데이터(DATA)가 외부 장치로 전송되도록 다른 구성 요소들을 제어할 수 있다. 예를 들어, 외부 장치로부터 수신된 스토리지 커맨드(CMD_S)는 도 2의 스토리지 커맨드(CMD_S)가 변형된 커맨드일 수 있다. 제어 신호(CTRL)는 디바이스 컨트롤러(230)가 불휘발성 메모리(280)를 제어하기 위하여 제공하는 신호일 수 있다.The control logic and voltage generation circuit 285 receives the storage command CMD_S and the control signal CTRL from the external device and generates an address decoder 282, a page buffer 283, and an input / (284). For example, the control logic and voltage generation circuitry 285 may control other components so that the data (DATA) is stored in the memory cell array 281 in response to signals CMD_S, CTRL. Or control logic and voltage generation circuitry 285 may control other components such that data (DATA) stored in memory cell array 281 is transferred to an external device in response to signals CMD_S and CTRL. For example, the storage command CMD_S received from the external device may be a modified command of the storage command CMD_S of FIG. The control signal CTRL may be a signal that the device controller 230 provides to control the non-volatile memory 280.

제어 로직 및 전압 발생 회로(285)는 불휘발성 메모리(280)가 동작하는데 요구되는 다양한 전압들을 생성할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(285)는 복수의 프로그램 전압들, 복수의 패스 전압들, 복수의 선택 읽기 전압들, 복수의 비선택 읽기 전압들, 복수의 소거 전압들, 복수의 검증 전압들과 같은 다양한 전압들을 생성할 수 있다. 제어 로직 및 전압 발생 회로(285)는 생성된 다양한 전압들을 어드레스 디코더(282)로 제공하거나 또는 메모리 셀 어레이(281)의 기판으로 제공할 수 있다.The control logic and voltage generation circuit 285 may generate various voltages required for the non-volatile memory 280 to operate. For example, the control logic and voltage generation circuitry 285 may include a plurality of programmable voltages, a plurality of pass voltages, a plurality of selected read voltages, a plurality of unselected read voltages, a plurality of erase voltages, Can generate various voltages such as voltages. The control logic and voltage generation circuit 285 may provide the various voltages generated to the address decoder 282 or to the substrate of the memory cell array 281.

도 10는 도 9의 메모리 셀 어레이에 포함된 메모리 블록들 중 어느 하나의 예를 보여주는 회로도이다. 예시적으로, 도 10를 참조하여 3차원 구조의 메모리 블록(BLK1)이 설명된다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 복수의 불휘발성 메모리(280) 각각에 포함된 다른 메모리 블록들 또한 메모리 블록(BLK1)과 유사한 구조를 가질 수 있다.10 is a circuit diagram showing an example of any one of the memory blocks included in the memory cell array of FIG. Illustratively, a 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 included in each of the plurality of nonvolatile memories 280 may have a structure similar to that of the memory block BLK1.

도 10를 참조하면, 메모리 블록(BLK1)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.Referring to FIG. 10, the 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)은 스트링 선택 라인들(SSL1a, SSL1b)와 연결되어, 제 1 행을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 스트링 선택 라인들(SSL2a, SSL2b)와 연결되어 제 2 행을 형성할 수 있다.For example, the cell strings CS11 and CS12 may be connected to the string selection lines SSL1a and SSL1b to form a first row. The cell strings CS21 and CS22 may be connected to the string selection lines SSL2a and SSL2b to form a second row.

예를 들어, 셀 스트링들(CS11, CS21)은 제 1 비트라인(BL1)과 연결되어 제 1 열을 형성할 수 있다. 셀 스트링들(CS12, CS22)은 제 2 비트라인(BL2)과 연결되어 제 2 열을 형성할 수 있다.For example, the cell strings CS11 and CS21 may be connected to the first bit line BL1 to form a first column. The cell strings CS12 and CS22 may be connected to the second bit line BL2 to form a second column.

복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택된 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC8), 접지 선택된 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다. 예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(charge trap flash; CTF) 메모리 셀일 수 있다.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 the string selected transistors SSTa and SSTb, the plurality of memory cells MC1 to MC8, the ground selected 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 selected transistors SSTa and SSTb are connected in series and the strings of selected 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 selected transistors GSTa and GSTb are connected in series and the grounded selected 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 a plurality of memory cells MC1 to MC8 and ground selected 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 selected 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 selected transistors GSTa and GSTb of the cell strings CS11, CS12, CS21 and CS22 can be connected in common to the ground selection line GSL. By way of example, the ground selected transistors in the same row can be connected to the same ground select line, and the ground selected transistors in the other row can be connected to different ground select lines. For example, the first ground selected 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 selected transistors GSTa of the cell strings CS21, CS12 of the second row The first ground selected 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 selected transistors provided at the same height from the substrate (not shown) may be connected to the same ground select line, and the ground selected transistors provided at different heights may be connected to another ground select line . For example, the first ground selected transistors (GSTa) of the cell strings (CS11, CS12, CS21, CS22) are connected to a first ground selection line and the second ground selection transistors (GSTb) 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 selected 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, cell strings The first to eighth memory cells MC8 of the memory cells 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)과 공통으로 연결된다.Strings of the same row among the first string selected transistors (SSTa) of the same height are connected to the same string selection line, and the other strings of string selected transistors are connected to another string selection line. For example, the first string selected 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, string selected transistors of the same row of the second string selected transistors (SSTb) of the same height are connected to the same string select line, and the other strings of string selected transistors are connected to different string select lines. For example, the second string selected transistors SSTb of the cell strings CS11, CS12 of the first row are connected in common with the string selection line SSL1b and the cell strings CS21, CS22 of the second row ) Are connected in common with the string selection line SSL2b.

비록 도면에 도시되지는 않았으나, 동일한 행의 셀 스트링들의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 및 제 2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 제 2 행의 셀 스트링들(CS21, CS22)의 제 1 및 제 2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. Although not shown in the figure, string selected transistors of cell strings in the same row may be connected in common to the same string select line. For example, the first and second string selected transistors (SSTa, SSTb) of the cell strings CS11, CS12 of the first row may be connected in common to the same string selection line. The first and second string selected transistors (SSTa, SSTb) of the cell strings CS21, CS22 of the second row may be connected in common to the same string selection line.

예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드라인과 연결된다. 예를 들어, 제 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.

메모리 블록(BLK1)에서, 읽기 및 쓰기는 행 단위로 수행될 수 있다. 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLKa)의 하나의 행이 선택될 수 있다.In the memory block BLK1, reading and writing can be performed line by line. For example, one row of the memory block BLKa may be selected by the string selection lines SSL1a, SSL1b, SSL2a, and SSL2b.

예를 들어, 스트링 선택 라인들(SSL1a, SSL1b)이 턴-온 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제 1 행의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제 2 행의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결되어 구동된다. 워드라인을 구동함으로써 구동되는 행의 셀 스트링의 메모리 셀들 중 동일한 높이의 메모리 셀들이 선택된다. 선택된 메모리 셀들에서 읽기 및 쓰기 동작이 수행될 수 있다. 선택된 메모리 셀들은 물리 페이지 단위를 형성할 수 있다. For example, when the string selection lines SSL1a and SSL1b are supplied with the turn-on voltage and the turn-off voltage is supplied to the string selection lines SSL2a and SSL2b, the cell strings CS11, CS12 are connected to the bit lines BL1, BL2. When the turn-on voltage is supplied to the string selection lines SSL2a and SSL2b and the turn-off voltage is supplied to the string selection lines SSL1a and SSL1B, the cell strings CS21 and CS22 of the second row are supplied with bit Connected to the lines BL1 and BL2 and driven. Memory cells of the same height among the memory cells of the cell strings of the row driven by driving the word lines are selected. Read and write operations can be performed on selected memory cells. Selected memory cells may form a physical page unit.

제 1 메모리 블록(BLK1)에서, 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 제 1 메모리 블록(BLK1)의 모든 메모리 셀들(MC)이 하나의 소거 요청에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 제 1 메모리 블록(BLK1)의 메모리 셀들(MC) 중 일부는 하나의 소거 요청에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들에 연결된 워드 라인에 저전압(예를 들어, 접지 전압)이 공급되고, 소거 금지된 메모리 셀들에 연결된 워드 라인은 플로팅될 수 있다.In the first memory block BLK1, erasing may be performed in units of memory blocks or units of subblocks. When erasing is performed in units of memory blocks, all the memory cells MC of the first memory block BLK1 can be erased simultaneously according to one erase request. When performed in units of sub-blocks, some of the memory cells MC of the first memory block BLK1 may be simultaneously erased in response to one erase request, and some of the memory cells MC of the first memory block BLK1 may be erased. A low voltage (e. G., Ground voltage) is applied to the word line connected to the erased memory cells, and the word line connected to the erased memory cells can be floated.

예시적으로, 도시된 메모리 블록(BLK1)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 제 1 메모리 블록(BLK1)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들는 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 메모리 블록(BLK1)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.Illustratively, the illustrated memory block BLK1 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 may be increased or decreased depending on the number of cell strings have. 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 memory block BLK1 may be increased according to the number of cell transistors Or may be reduced. 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.

도 11은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다. 도 11을 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1100), 불휘발성 메모리 모듈들(1200, 1201), 램 모듈들(1300, 1301), 칩셋(1400), GPU(1500), 입출력 장치(1600), 그리고 스토리지 장치(1700)를 포함한다.FIG. 11 is a block diagram illustrating a computing system to which a non-volatile memory module according to the present invention is applied. 11, a computing system 1000 includes a processor 1100, non-volatile memory modules 1200 and 1201, RAM modules 1300 and 1301, a chipset 1400, a GPU 1500, an input / 1600, and a storage device 1700.

프로세서(1100)는 컴퓨팅 시스템(1000)의 제반 동작을 제어할 수 있다. 프로세서(1100)는 컴퓨팅 시스템(1000)에서 수행되는 다양한 연산을 수행할 수 있다.The processor 1100 may control all operations of the computing system 1000. The processor 1100 may perform various operations performed in the computing system 1000.

불휘발성 메모리 모듈들(1200, 1201) 및 램 모듈들(1300, 1301)은 프로세서(1100)와 직접적으로 연결될 수 있다. 예를 들어, 불휘발성 메모리 모듈들(1200, 1201), 램 모듈들(1300, 1301) 각각은 듀얼 인-라인 메모리 모듈(Dual In-line Memory Module; DIMM) 형태를 가질 수 있다. 또는, 불휘발성 메모리 모듈들(1200, 1201) 및 램 모듈들(1300, 1301) 각각은 프로세서(1100)와 직접적으로 연결된 DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다. 예시적으로, 불휘발성 메모리 모듈들(1200, 1201)은 도 1 내지 도 10을 참조하여 설명된 불휘발성 메모리 모듈일 수 있다. The non-volatile memory modules 1200 and 1201 and the RAM modules 1300 and 1301 may be directly connected to the processor 1100. For example, each of the non-volatile memory modules 1200 and 1201 and the RAM modules 1300 and 1301 may have the form of a dual in-line memory module (DIMM). Alternatively, each of the non-volatile memory modules 1200, 1201 and the RAM modules 1300, 1301 may be mounted in a DIMM socket directly connected to the processor 1100 to communicate with the processor 1100. Illustratively, the non-volatile memory modules 1200 and 1201 may be the non-volatile memory modules described with reference to FIGS.

불휘발성 메모리 모듈들(1200, 1201) 및 램 모듈들(1300, 1301)은 동일한 인터페이스(1150)를 통해 프로세서(1100)와 통신할 수 있다. 예를 들어, 불휘발성 메모리 모듈들(1200, 1201) 및 램 모듈들(1300, 1301)은 DDR (Double Data Rate) 방식의 인터페이스(1150)를 통해 통신할 수 있다. 예시적으로, 프로세서(1100)는 램 모듈들(1300, 1301)을 컴퓨팅 시스템(1000)의 동작 메모리, 버퍼 메모리, 또는 캐시 메모리로서 사용할 수 있다.The non-volatile memory modules 1200 and 1201 and the RAM modules 1300 and 1301 may communicate with the processor 1100 via the same interface 1150. For example, the non-volatile memory modules 1200 and 1201 and the RAM modules 1300 and 1301 may communicate through a DDR (Double Data Rate) interface 1150. Illustratively, processor 1100 may use RAM modules 1300 and 1301 as operational memory, buffer memory, or cache memory of computing system 1000.

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

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

입출력 장치(1600)는 컴퓨팅 시스템(1000)으로 데이터 또는 명령어를 입력하거나 또는 외부로 데이터를 출력하는 다양한 장치들을 포함한다. 예를 들어, 입출력 장치(1600)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 압전 소자 등과 같은 사용자 입력 장치들 및 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 장치들을 포함할 수 있다.The input / output device 1600 includes various devices that input data or instructions to the computing system 1000 or output data to the outside. For example, the input / output device 1600 may include a user input device such as 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, Liquid Crystal Display), OLED (Organic Light Emitting Diode) display device, AMOLED (Active Matrix OLED) display device, LED, speaker, motor and the like.

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

예시적으로, 불휘발성 메모리 모듈들(1200, 1201)은 프로세서(1100)에 의해 컴퓨팅 시스템(1000)의 저장 매체로서 사용될 수 있다. 불휘발성 메모리 모듈들(1200, 1201) 및 프로세서(1100) 사이의 인터페이스(1150)는 스토리지 장치(1700) 및 프로세서(1100) 사이의 인터페이스보다 고속 인터페이스일 수 있다. 즉, 프로세서(1100)가 불휘발성 메모리 모듈들(1200, 1201)을 저장 매체로서 사용함으로써 컴퓨팅 시스템의 성능이 향상된다. Illustratively, the non-volatile memory modules 1200 and 1201 may be used by the processor 1100 as a storage medium of the computing system 1000. The interface 1150 between the non-volatile memory modules 1200 and 1201 and the processor 1100 may be a higher speed interface than the interface between the storage device 1700 and the processor 1100. [ That is, the performance of the computing system is improved by the processor 1100 using the nonvolatile memory modules 1200 and 1201 as a storage medium.

불휘발성 메모리 모듈들(1200, 1201)은 프로세서(1100)와의 인터페이스 프로토콜에 최적화된 구조의 SRAM을 포함할 수 있다. 즉, 뱅크 그룹 단위로 또는 뱅크 단위로 구분되는 복수의 램을 통해서 프로세서(1100)는 불휘발성 메모리에 접근하기 위한 명령어, 어드레스, 데이터를 불휘발성 메모리 모듈들(1200, 1201)에 제공할 수 있을 것이다. The non-volatile memory modules 1200 and 1201 may include an SRAM having a structure optimized for an interface protocol with the processor 1100. That is, the processor 1100 can provide instructions, addresses, and data for accessing the non-volatile memory to the non-volatile memory modules 1200 and 1201 through a plurality of RAMs, which are divided into bank groups or bank units will be.

도 12는 도 11의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도이다. 예시적으로, 도 12는 LRDIMM (Load Reduced DIMM) 형태를 갖는 불휘발성 메모리 모듈(1200)을 보여준다. 예시적으로, 도 12에 도시된 불휘발성 메모리 모듈(1200)은 듀얼 인-라인 메모리 모듈(Dual In-line Memory Module; DIMM)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다. FIG. 12 is a block diagram illustrating one of the non-volatile memory modules of FIG. 11; FIG. Illustratively, FIG. 12 shows a non-volatile memory module 1200 having the form of a Load Reduced DIMM (LRDIMM). 12 may be in the form of a dual in-line memory module (DIMM) and may be mounted in a DIMM socket to communicate with the processor 1100 .

도 12를 참조하면, 불휘발성 메모리 모듈(1200)은 디바이스 컨트롤러(1210), 불휘발성 메모리 장치(1220), 버퍼(1230), 및 직렬 프레즌스 검출 칩(1240)(Serial Presence Detect chip; SPD)를 포함할 수 있다. 디바이스 컨트롤러(1210)는 램(1211)을 포함할 수 있다. 예시적으로, 불휘발성 메모리 장치(1220)는 복수의 불휘발성 메모리들(NVM)을 포함할 수 있다. 불휘발성 메모리 장치(1220)에 포함된 복수의 불휘발성 메모리들 각각은 별도의 칩, 별도의 패키지, 별도의 장치, 또는 별도의 모듈로 각각 구현될 수 있다. 또는 불휘발성 메모리 장치(1220)는 하나의 칩 또는 하나의 패키지로 구현될 수 있다.12, the non-volatile memory module 1200 includes a device controller 1210, a non-volatile memory device 1220, a buffer 1230, and a Serial Presence Detect chip 1240 . The device controller 1210 may include a RAM 1211. Illustratively, non-volatile memory device 1220 may include a plurality of non-volatile memories (NVM). Each of the plurality of nonvolatile memories included in the nonvolatile memory device 1220 may be implemented as a separate chip, a separate package, a separate device, or a separate module, respectively. Or non-volatile memory device 1220 may be implemented as a single chip or as a single package.

예시적으로, 디바이스 컨트롤러(1210), 램(1211), 불휘발성 메모리 장치(1220), 및 버퍼(1230)는 도 1에서 설명된 디바이스 컨트롤러(210), 램(234), 버퍼(290), 및 복수의 불휘발성 메모리(280)와 동일하거나 또는 유사하게 동작할 수 있다. 불휘발성 메모리 모듈(1200)은 프로세서(1100)와의 인터페이스 프로토콜에 최적화된 구조의 SRAM을 포함할 수 있다. 즉, 뱅크 그룹 단위로 또는 뱅크 단위로 구분되는 램(1211)을 통해서 프로세서(1100)는 불휘발성 메모리 장치(1220)에 접근하기 위한 명령어, 어드레스, 데이터를 불휘발성 메모리 모듈들(1200, 1205)에 제공할 수 있을 것이다. The device controller 1210, the RAM 1211, the nonvolatile memory device 1220 and the buffer 1230 are illustratively connected to the device controller 210, the RAM 234, the buffer 290, And a plurality of non-volatile memories 280, which are the same or similar. The non-volatile memory module 1200 may include an SRAM having a structure optimized for an interface protocol with the processor 1100. That is, the processor 1100 transmits a command, address, and data for accessing the non-volatile memory device 1220 to the non-volatile memory modules 1200 and 1205 through the RAM 1211, which is divided into bank groups or bank units. . ≪ / RTI >

예시적으로, 디바이스 컨트롤러(1210)는 프로세서(1100)와 복수의 데이터 신호들(DQ) 및 복수의 데이터 스트로브 신호들(DQS)을 송수신할 수 있고, 별도의 신호 라인들을 통해 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클록(CK)을 수신할 수 있다. Illustratively, the device controller 1210 can send and receive a plurality of data signals DQ and a plurality of data strobe signals DQS to and from the processor 1100, and receives a RAM command CMD_R via separate signal lines. The RAM address ADDR_R, and the clock CK.

SPD(1240)는 프로그램 가능 읽기 전용 기억 장치(EEPROM)일 수 있다. SPD(1240)는 불휘발성 메모리 모듈(1200)의 초기 정보 또는 장치 정보를 포함할 수 있다. 예시적으로, SPD(1240)는 불휘발성 메모리 모듈(1300)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보를 포함할 수 있다. 불휘발성 메모리 모듈(1200)이 포함된 컴퓨팅 시스템이 부팅될 때, 컴퓨팅 시스템의 프로세서(1100)는 SPD(1240)를 읽고, 이를 기반으로 불휘발성 메모리 모듈(1200)을 인식할 수 있다. 프로세서(1100)는 SPD(1240)를 기반으로 불휘발성 메모리 모듈(1200)을 저장 매체로서 사용할 수 있다.SPD 1240 may be a programmable read-only memory (EEPROM). SPD 1240 may include initial information or device information of non-volatile memory module 1200. Illustratively, SPD 1240 may include initial information or device information such as module type, module configuration, storage capacity, module type, execution environment, etc. of non-volatile memory module 1300. When the computing system including the non-volatile memory module 1200 is booted, the processor 1100 of the computing system can read the SPD 1240 and recognize the non-volatile memory module 1200 based on the SPD 1240. The processor 1100 may use the nonvolatile memory module 1200 as a storage medium based on the SPD 1240.

예시적으로, SPD(1240)는 부가 통신 채널(Side-Band Communication Channel)을 통해 프로세서(1100)와 통신할 수 있다. 프로세서(1100)는 부가 통신 채널을 통해 SPD(1240)와 부가 신호(Side-Band Signal; SBS)을 주고 받을 수 있다. 예시적으로, SPD(1240)는 부가 통신 채널을 통해 디바이스 컨트롤러(1210)와 통신할 수 있다. 예시적으로, 부가 통신 채널은 I2C 통신에 기반된 채널일 수 있다. 예시적으로, SPD(1240), 디바이스 컨트롤러(1210), 및 프로세서(1100)는 I2C 통신을 기반으로 서로 통신하거나 또는 정보를 주고 받을 수 있다.Illustratively, the SPD 1240 may communicate with the processor 1100 via a Side-Band Communication Channel. The processor 1100 may exchange a side-band signal (SBS) with the SPD 1240 through an additional communication channel. Illustratively, the SPD 1240 may communicate with the device controller 1210 via an additional communication channel. Illustratively, the supplemental communication channel may be a channel based on I2C communication. Illustratively, SPD 1240, device controller 1210, and processor 1100 may communicate with each other or exchange information based on I2C communications.

도 13은 도 11의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도이다. 예시적으로, 도 13은 RDIMM (Registered DIMM) 형태를 갖는 불휘발성 메모리 모듈(2200)의 블록도이다. 예시적으로, 도 13에 도시된 불휘발성 메모리 모듈(2200)은 듀얼 인-라인 메모리 모듈(Dual In-line Memory Module; DIMM)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다. FIG. 13 is a block diagram illustrating one of the non-volatile memory modules of FIG. 11 by way of example. Illustratively, FIG. 13 is a block diagram of a non-volatile memory module 2200 in the form of a Registered DIMM (RDIMM). Illustratively, the non-volatile memory module 2200 shown in FIG. 13 is in the form of a dual in-line memory module (DIMM) and is mounted in a DIMM socket to communicate with the processor 1100 .

도 13을 참조하면, 불휘발성 메모리 모듈(2200)은 디바이스 컨트롤러(2210), 불휘발성 메모리 장치(2220), 버퍼(2230), 직렬 프레즌스 검출 칩(2240)(Serial Presence Detect chip; SPD), 및 데이터 버퍼 회로(2250)를 포함한다. 디바이스 컨트롤러(2210)는 램(2211)을 포함한다. 디바이스 컨트롤러(2210), 램(2211), 불휘발성 메모리 장치(2220), 및 SPD(2240)는 도 1 및 도 12에서 설명되었으므로, 이에 대한 상세한 설명은 생략하기로 한다.13, the non-volatile memory module 2200 includes a device controller 2210, a non-volatile memory device 2220, a buffer 2230, a Serial Presence Detect chip 2240, And a data buffer circuit 2250. The device controller 2210 includes a RAM 2211. Since the device controller 2210, the RAM 2211, the nonvolatile memory device 2220, and the SPD 2240 have been described with reference to FIGS. 1 and 12, a detailed description thereof will be omitted.

데이터 버퍼 회로(2250)는 프로세서(1100, 도 11 참조)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 디바이스 컨트롤러(2250)로 전달할 수 있다. 또는 데이터 버퍼 회로(2250)는 디바이스 컨트롤러(2210)로부터 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(1100)로 전달할 수 있다.The data buffer circuit 2250 receives information or data from the processor 1100 (see FIG. 11) via the data signal DQ and the data strobe signal DQS and forwards the received information or data to the device controller 2250 . Or data buffer circuit 2250 may receive information or data from device controller 2210 and may pass the received information or data to processor 1100 via data signal DQ and data strobe signal DQS.

예시적으로, 데이터 버퍼 회로(2250)는 복수의 데이터 버퍼들(Data Buffer)을 포함할 수 있다. 복수의 데이터 버퍼들(Data Buffer) 각각은 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고 받을 수 있다. 또는 복수의 데이터 버퍼들 각각은 디바이스 컨트롤러(2210)와 신호를 주고 받을 수 있다. 예시적으로, 복수의 데이터 버퍼들 각각은 디바이스 컨트롤러(2210)의 제어에 따라 동작할 수 있다.Illustratively, data buffer circuit 2250 may include a plurality of data buffers. Each of the plurality of data buffers can exchange data signals DQ and data strobe signals DQS with the processor 1100. Or each of the plurality of data buffers can exchange signals with the device controller 2210. Illustratively, each of the plurality of data buffers may operate under the control of a device controller 2210.

예시적으로, 디바이스 컨트롤러(2210)는 프로세서(1100)와의 인터페이스 프로토콜에 최적화된 구조의 램(2211)을 포함할 수 있다. 즉, 뱅크 그룹 단위로 또는 뱅크 단위로 구분되는 램(2211)을 통해서 프로세서(1100)는 불휘발성 메모리(2230)에 접근하기 위한 명령어, 어드레스, 데이터를 불휘발성 메모리 모듈(2200)에 제공할 수 있을 것이다.By way of example, the device controller 2210 may include a RAM 2211 of a structure optimized for an interface protocol with the processor 1100. That is, the processor 1100 can provide instructions, addresses, and data for accessing the non-volatile memory 2230 to the non-volatile memory module 2200 through the RAM 2211, which is divided into bank groups or bank units There will be.

도 14는 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 도 14를 참조하면, 컴퓨팅 시스템(3000)은 프로세서(3100), 불휘발성 메모리 모듈(3200), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)를 포함한다. 프로세서(3100), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)는 도 11에서 설명된 것과 실질적으로 동일하므로 이에 대한 상세한 설명은 생략하기로 한다. FIG. 14 is a block diagram illustrating another example of a computing system to which the nonvolatile memory module according to the present invention is applied. For the sake of brevity, a detailed description of the components described above is omitted. 14, a computing system 3000 includes a processor 3100, a non-volatile memory module 3200, a chipset 3400, a GPU 3500, an input / output device 3600, and a storage device 3700 . The processor 3100, the chipset 3400, the GPU 3500, the input / output device 3600, and the storage device 3700 are substantially the same as those described with reference to FIG. 11, and a detailed description thereof will be omitted.

불휘발성 메모리 모듈(3200)은 프로세서(3100)와 직접적으로 연결될 수 있다. 예를 들어, 불휘발성 메모리 모듈(3200)은 듀얼 인-라인 메모리 모듈(Dual In-line Memory Module; DIMM)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다.The non-volatile memory module 3200 may be directly coupled to the processor 3100. For example, the non-volatile memory module 3200 may take the form of a dual in-line memory module (DIMM) and may be mounted in a DIMM socket to communicate with the processor 3100.

불휘발성 메모리 모듈(3200)은 제어 회로(3210), 불휘발성 메모리 장치(3220), 및 램 장치(3230)를 포함할 수 있다. 도 11 내지 도 13의 불휘발성 메모리 모듈들(1200, 2200)과 달리, 프로세서(3100)는 불휘발성 메모리 모듈(3200)의 불휘발성 메모리 장치(3220) 및 램(3230)을 각각 액세스할 수 있다. 좀 더 상세한 예로서, 제어 회로(3210)는 프로세서(3100)의 제어에 따라 수신된 데이터를 불휘발성 메모리 장치(3220)에 저장하거나 또는 램 장치(3230)에 저장할 수 있다. 또는 제어 회로(3210)는 프로세서(3100)의 제어에 따라 불휘발성 메모리 장치(3220)에 저장된 데이터를 프로세서(3100)로 전송하거나 또는 램(3230)에 저장된 데이터를 프로세서(3100)로 전송할 수 있다. 즉, 프로세서(3100)는 불휘발성 메모리 모듈(3200)에 포함된 불휘발성 메모리 장치(3220) 및 램(3230)을 각각 인식할 수 있다. 프로세서(3100)는 불휘발성 메모리 모듈(3200)의 불휘발성 메모리 장치(3220)에 데이터를 저장하거나 또는 저장된 데이터를 읽을 수 있다. 또는 프로세서(3100)는 램(3230)에 데이터를 저장하거나 또는 저장된 데이터를 읽을 수 있다.The non-volatile memory module 3200 may include a control circuit 3210, a non-volatile memory device 3220, and a ram device 3230. Unlike the non-volatile memory modules 1200 and 2200 of Figures 11-13, the processor 3100 can access the non-volatile memory device 3220 and the RAM 3230 of the non-volatile memory module 3200, respectively . As a more detailed example, the control circuit 3210 may store the received data in the non-volatile memory device 3220 or in the RAM device 3230 under the control of the processor 3100. Or control circuitry 3210 may transfer data stored in non-volatile memory device 3220 to processor 3100 or transmit data stored in RAM 3230 to processor 3100 under the control of processor 3100 . That is, the processor 3100 can recognize the nonvolatile memory device 3220 and the RAM 3230 included in the nonvolatile memory module 3200, respectively. The processor 3100 may store data in the non-volatile memory device 3220 of the non-volatile memory module 3200 or may read the stored data. Or processor 3100 may store data in RAM 3230 or read stored data.

예시적으로, 프로세서(3100)는 불휘발성 메모리 모듈(3200)의 불휘발성 메모리 장치(3220)를 컴퓨팅 시스템(3000)의 스토리지 매체로서 사용할 수 있고, 프로세서(3100)는 불휘발성 메모리 모듈(3200)의 램(3230)을 컴퓨팅 시스템(3000)의 메인 메모리로서 사용할 수 있다. 즉, 프로세서(3100)는 하나의 DIMM 소켓에 장착된 하나의 메모리 모듈에 포함된 불휘발성 메모리 장치 또는 램 장치를 각각 선택적으로 액세스할 수 있다.Processor 3100 may use nonvolatile memory device 3220 of nonvolatile memory module 3200 as a storage medium of computing system 3000 and processor 3100 may use nonvolatile memory module 3200 as non- The RAM 3230 of the computing system 3000 can be used as the main memory of the computing system 3000. That is, the processor 3100 can selectively access the nonvolatile memory device or the RAM device included in one memory module mounted in one DIMM socket, respectively.

예시적으로, 프로세서(3100)는 DDR(Double Data Rate) 인터페이스(3300)를 통해 불휘발성 메모리 모듈(3200)과 통신할 수 있다.Illustratively, processor 3100 may communicate with non-volatile memory module 3200 via a double data rate (DDR) interface 3300.

도 15는 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 15를 참조하면, 불휘발성 메모리 모듈(3200)은 제어 회로(3210), 불휘발성 메모리 장치(3220), 및 램 장치(3220)를 포함한다. 예시적으로, 불휘발성 메모리 장치(3220)는 복수의 불휘발성 메모리들을 포함할 수 있고, 램 장치(3230)는 복수의 DRAM들을 포함할 수 있다. 예시적으로, 복수의 불휘발성 메모리들은 프로세서(3100)에 의해 컴퓨팅 시스템(3000)의 스토리지로 사용될 수 있다. 예시적으로, 복수의 불휘발성 메모리들(NVM) 각각은 EEPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 불휘발성 메모리 소자들을 포함할 수 있다. 15 is a block diagram illustrating an exemplary nonvolatile memory module of FIG. Referring to FIG. 15, a non-volatile memory module 3200 includes a control circuit 3210, a non-volatile memory device 3220, and a RAM device 3220. By way of example, non-volatile memory device 3220 may comprise a plurality of non-volatile memories, and RAM device 3230 may comprise a plurality of DRAMs. By way of example, a plurality of non-volatile memories may be used by the processor 3100 as storage for the computing system 3000. Illustratively, each of the plurality of nonvolatile memories (NVMs) may be implemented as an electrically erasable and programmable ROM (EEPROM), a NAND flash memory, a NOR flash memory, a phase change RAM (PRAM), a ReRAM ), STT-MRAM (Spin-Torque Magnetic RAM), and the like.

복수의 DRAM들은 프로세서(3100)에 의해 컴퓨팅 시스템(3000)의 메인 메모리로서 사용될 수 있다. 예시적으로, 램 장치(3230)는 DRAM, SRAM, SDRAM, PRAM, ReRAM, FRAM, MRAM 등과 같은 랜덤 액세스 메모리 소자들을 포함할 수 있다.The plurality of DRAMs may be used by the processor 3100 as the main memory of the computing system 3000. By way of example, RAM device 3230 may include random access memory devices such as DRAM, SRAM, SDRAM, PRAM, ReRAM, FRAM, MRAM, and the like.

제어 회로(3210)는 디바이스 컨트롤러(3211) 및 SPD(3212)를 포함한다. 디바이스 컨트롤러(3211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클록(CK)을 수신할 수 있다. 디바이스 컨트롤러(3211)는 프로세서(3100)로부터 수신된 신호들에 응답하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 불휘발성 메모리 장치(3220) 또는 램 장치(3230)에 선택적으로 저장할 수 있다. 또는 디바이스 컨트롤러(3211)는 프로세서(3100)로부터 수신된 신호들에 응답하여, 불휘발성 메모리 장치(3220) 또는 램 장치(3230)에 저장된 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(3100)로 선택적으로 전송할 수 있다.The control circuit 3210 includes a device controller 3211 and an SPD 3212. The device controller 3211 can receive the command CMD, the address ADDR, and the clock CK from the processor 3100. [ Device controller 3211 responds to signals received from processor 3100 to transfer data received via data signal DQ and data strobe signal DQS to nonvolatile memory device 3220 or ram device 3230. [ As shown in FIG. Or the device controller 3211 responds to signals received from the processor 3100 to transfer the data stored in the nonvolatile memory device 3220 or the RAM device 3230 to the data signal DQ and the data strobe signal DQS Lt; RTI ID = 0.0 > 3100 < / RTI >

예시적으로, 프로세서(3100)는 커맨드(CMD), 어드레스(ADDR), 또는 별도의 신호 또는 별도의 정보를 통해 불휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 액세스할 수 있다. 즉, 프로세서(3100)는 불휘발성 메모리 모듈(3200)에 포함된 불휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 액세스할 수 있다. 예시적으로, 디바이스 컨트롤러(3211)는 도 1 내지 도 12에서 설명된 동작 방법에 따라 서브 데이터를 램(미도시)에 축적하고, 프로세서(3100)의 명령어에 따라 불휘발성 메모리 장치(3220)에 프로그램할 수 있다. Illustratively, processor 3100 may optionally access non-volatile memory device 3220 or ram device 3230 via command CMD, address ADDR, or a separate signal or separate information. That is, the processor 3100 can selectively access the non-volatile memory device 3220 or the RAM device 3230 included in the non-volatile memory module 3200. [ Illustratively, the device controller 3211 stores the subdata in RAM (not shown) according to the operating method described in Figures 1-12, and stores the subdata in nonvolatile memory device 3220 Can be programmed.

도 16은 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 예시적으로, 도 16의 불휘발성 메모리 모듈(4200)은 듀얼 인-라인 메모리 모듈(Dual In-line Memory Module; DIMM) 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다.16 is a block diagram exemplarily showing the nonvolatile memory module of FIG. Illustratively, the non-volatile memory module 4200 of FIG. 16 has the form of a dual in-line memory module (DIMM) and may be mounted to a DIMM socket to communicate with the processor 3100.

도 14 및 도 16을 참조하면, 불휘발성 메모리 모듈(4200)은 제어 회로(4100), 불휘발성 메모리 장치(4220), 및 램(4230)을 포함한다. 제어 회로(4210)는 디바이스 컨트롤러(4211), SPD(4212), 및 데이터 버퍼 회로(4213)를 포함한다.14 and 16, the non-volatile memory module 4200 includes a control circuit 4100, a non-volatile memory device 4220, and a RAM 4230. The control circuit 4210 includes a device controller 4211, an SPD 4212, and a data buffer circuit 4213.

디바이스 컨트롤러(4211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클록(CK)을 수신한다. 디바이스 컨트롤러(4211)는 수신된 신호들에 응답하여 불휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다. 프로세서(3100)는 불휘발성 메모리 장치(4220) 또는 램 장치(4230) 각각을 선택적으로 액세스할 수 있다. 디바이스 컨트롤러(4231)는 프로세서(3100)의 제어에 따라 불휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다.The device controller 4211 receives the command CMD, the address ADDR, and the clock CK from the processor 3100. The device controller 4211 may control the non-volatile memory device 4220 or the RAM device 4230 in response to the received signals. The processor 3100 may selectively access each of the non-volatile memory device 4220 or the RAM device 4230. The device controller 4231 can control the nonvolatile memory device 4220 or the RAM device 4230 under the control of the processor 3100. [

데이터 버퍼 회로(4213)는 프로세서(3100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 수신하고, 수신된 신호들을 디바이스 컨트롤러(4211) 및 램 장치(4230)로 제공할 수 있다. 또는 데이터 버퍼 회로(4213)는 디바이스 컨트롤러(4211) 또는 램 장치(4230)로부터 수신된 데이터를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 제공할 수 있다.The data buffer circuit 4213 can receive the data signal DQ and the data strobe signal DQS from the processor 3100 and provide the received signals to the device controller 4211 and the RAM device 4230. [ Or the data buffer circuit 4213 may provide the data received from the device controller 4211 or the RAM device 4230 to the processor 3100 through the data signal DQ and the data strobe signal DQS.

예시적으로, 프로세서(3100)가 불휘발성 메모리 장치(4220)에 데이터를 저장하는 경우, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신되는 데이터는 디바이스 컨트롤러(4211)로 제공되고, 디바이스 컨트롤러(4211)는 수신된 데이터를 가공하여 불휘발성 메모리 장치(4220)로 제공할 수 있다. 또는 프로세서(3100)가 불휘발성 메모리 장치(4220)에 저장된 데이터를 읽는 경우, 데이터 버퍼 회로(4213)는 디바이스 컨트롤러(4211)로부터 제공되는 데이터를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 제공할 수 있다. 또는 프로세서(3100)가 램 장치(4230)에 데이터를 저장하는 경우, 데이터 버퍼 회로(4213)로 수신된 데이터는 램 장치(4230)로 제공되고, 디바이스 컨트롤러(4231)는 수신된 커맨드(CMD), 어드레스(ADDR), 및 클록(CK)을 램 장치(4230)로 전달할 수 있다. 또는 프로세서(3100)가 램 장치(4230)에 저장된 데이터를 읽는 경우, 디바이스 컨트롤러(4231)는 수신된 커맨드(CMD), 어드레스(ADDR), 및 클록(CK)을 램 장치(4230)로 전달하고, 램 장치(4230)는 전달된 신호들에 응답하여, 데이터를 데이터 버퍼 회로(4213)로 제공하고, 데이터 버퍼 회로(4213)는, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 데이터를 프로세서(3100)로 제공할 수 있다. 예시적으로, 디바이스 컨트롤러(3211)는 도 1에서 설명된 동작 방법에 따라 서브 데이터를 램(미도시)에 축적하고, 프로세서(3100)의 명령어에 따라 불휘발성 메모리 장치(4220)에 프로그램할 수 있다.Illustratively, when the processor 3100 stores data in the nonvolatile memory device 4220, the data received via the data signal DQ and the data strobe signal DQS is provided to the device controller 4211, The device controller 4211 can process the received data and provide it to the nonvolatile memory device 4220. Or the processor 3100 reads data stored in the nonvolatile memory device 4220, the data buffer circuit 4213 supplies the data provided from the device controller 4211 to the data signal DQ and the data strobe signal DQS, Lt; / RTI > to the processor 3100 via the network interface. Or the processor 3100 stores data in the RAM device 4230 the data received by the data buffer circuit 4213 is provided to the RAM device 4230 and the device controller 4231 receives the received command CMD, The address ADDR, and the clock CK to the RAM device 4230. Or when the processor 3100 reads data stored in the RAM device 4230, the device controller 4231 transfers the received command CMD, the address ADDR, and the clock CK to the RAM device 4230 , The RAM device 4230 provides the data to the data buffer circuit 4213 in response to the transmitted signals and the data buffer circuit 4213 supplies the data signal DQ and the data strobe signal DQS, And may provide data to the processor 3100. By way of example, the device controller 3211 can accumulate subdata in a RAM (not shown) according to the operating method described in FIG. 1 and program it into the non-volatile memory device 4220 in accordance with the instructions of the processor 3100 have.

도 17은 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 불휘발성 메모리 모듈(5200)은 제어 회로(5210), 불휘발성 메모리 장치(5220), 및 램 장치(5230)를 포함한다. 제어 회로(5210)는 디바이스 컨트롤러(5211) 및 SPD(5212)를 포함한다. 불휘발성 메모리 모듈(5200)은 도 16의 불휘발성 메모리 모듈(4200)과 유사하게 동작할 수 있다. 하지만, 불휘발성 메모리 모듈(5200)은 도 16의 불휘발성 메모리 모듈(4200)과 달리 데이터 버퍼 회로(4213)를 포함하지 않는다. 즉, 도 17의 불휘발성 메모리 모듈(5200)은 프로세서(3100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 디바이스 컨트롤러(5211) 또는 램 장치(5230)로 직접 제공할 수 있다. 또는, 도 17의 불휘발성 메모리 모듈(5200)의 디바이스 컨트롤러(5211)로부터의 데이터 또는 램 장치(5230)로부터의 데이터는, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 직접 제공할 수 있다.17 is a block diagram illustrating an exemplary nonvolatile memory module of FIG. 14, the non-volatile memory module 5200 includes a control circuit 5210, a non-volatile memory device 5220, and a RAM device 5230. [ The control circuit 5210 includes a device controller 5211 and an SPD 5212. The non-volatile memory module 5200 may operate similarly to the non-volatile memory module 4200 of FIG. However, the nonvolatile memory module 5200 does not include the data buffer circuit 4213 unlike the nonvolatile memory module 4200 of FIG. That is, the nonvolatile memory module 5200 of FIG. 17 directly supplies the data received from the processor 3100 via the data signal DQ and the data strobe signal DQS to the device controller 5211 or the RAM device 5230 can do. Alternatively, the data from the device controller 5211 of the nonvolatile memory module 5200 of FIG. 17 or the data from the RAM device 5230 are supplied to the processor 3100 (FIG. 17) via the data signal DQ and the data strobe signal DQS. ).

예시적으로, 도 16의 불휘발성 메모리 모듈(4200)은 LRDIMM(Load Reduced DIMM) 형태의 메모리 모듈이고, 도 17의 불휘발성 메모리 모듈(5200)은 RDIMM(Registered DIMM) 형태의 메모리 모듈일 수 있다.16 may be a memory module in the form of an LRDIMM (Load Reduced DIMM), and the nonvolatile memory module 5200 in FIG. 17 may be a memory module in the form of a Registered DIMM (RDIMM) .

예시적으로, 디바이스 컨트롤러(5211)는 도 1 내지 도 8에서 설명된 바와 같은 구성 및 배치를 갖는 램을 포함할 것이다.Illustratively, the device controller 5211 will include a RAM having the configuration and arrangement as described in FIGS. 1-8.

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

본 발명에 따른 불휘발성 메모리 그리고/또는 디바이스 컨트롤러 등은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 불휘발성 메모리 그리고/또는 디바이스 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.The nonvolatile memory and / or device controller according to the present invention can be mounted using various types of packages. For example, the non-volatile memory and / or device controller according to the present invention may be implemented as a package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs), plastic leaded chip carriers (PLCC) Linear Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flatpack Outline (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline (TSOP), System In Package (SIP), Multi Chip Package (MCP), Wafer-Level Fabricated Package (WFP) WSP), and the like.

본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It will be apparent to those skilled in the art that the structure of the present invention can be variously modified or changed without departing from the scope or spirit of the present invention. In view of the foregoing, it is intended that the present invention cover the modifications and variations of this invention provided they fall within the scope of the following claims and equivalents.

10: 스토리지 시스템
100: 호스트
110: 제 1 영역 관리자
200: 불휘발성 메모리 모듈
210: 디바이스 컨트롤러
220: 프로세서
230: 물리 계층
232: 램 컨트롤러
234: 램
240: DIMM 컨트롤러
242: 제 2 영역 관리자
250: 불휘발성 메모리 인터페이스
260: ROM
270: 버퍼 매니저
280: 불휘발성 메모리
10: Storage Systems
100: Host
110: First area manager
200: Nonvolatile memory module
210: Device controller
220: Processor
230: physical layer
232: RAM controller
234: RAM
240: DIMM controller
242: Second Zone Manager
250: Nonvolatile memory interface
260: ROM
270: Buffer manager
280: Nonvolatile memory

Claims (10)

적어도 하나의 불휘발성 메모리; 그리고
호스트와 상기 적어도 하나의 불휘발성 메모리 사이에서 교환되는 데이터가 저장되는 램, 및 상기 램과 상기 적어도 하나의 불휘발성 메모리 사이의 데이터 교환을 제어하는 DIMM 컨트롤러를 포함하는 디바이스 컨트롤러를 포함하되,
상기 램으로의 접근시에 접근 영역에 대한 할당은 상기 램에 데이터를 기록하는 쓰기 트랜잭션에서 수행되고, 상기 할당에 대한 해제는 상기 기록된 데이터의 읽기 트랜잭션에서 수행되는 불휘발성 메모리 모듈.
At least one non-volatile memory; And
And a DIMM controller for controlling data exchange between the RAM and the at least one nonvolatile memory, wherein the DIMM controller controls data exchange between the host and the at least one nonvolatile memory,
Wherein the allocation to the access area upon access to the RAM is performed in a write transaction that writes data to the RAM and the release of the allocation is performed in a read transaction of the written data.
제 1 항에 있어서,
상기 불휘발성 메모리 모듈에 대한 쓰기 동작 시,
상기 호스트는 상기 데이터를 상기 램에 저장할 때 상기 데이터가 저장될 영역을 할당하고, 상기 DIMM 컨트롤러는 상기 데이터를 상기 램으로부터 읽어낼 때 상기 데이터가 저장되었던 영역에 대한 상기 할당을 해제하는 불휘발성 메모리 모듈.
The method according to claim 1,
In a write operation to the nonvolatile memory module,
The host allocates an area in which the data is to be stored when storing the data in the RAM, and the DIMM controller is a non-volatile memory that releases the allocation to the area where the data was stored when the data is read from the RAM. module.
제 1 항에 있어서,
상기 불휘발성 메모리 모듈에 대한 읽기 동작 시,
상기 DIMM 컨트롤러는 상기 데이터를 상기 램에 저장할 때 상기 데이터가 저장될 영역을 할당하고, 상기 호스트는 상기 데이터를 상기 램으로부터 읽어낼 때 상기 데이터가 저장되었던 영역에 대한 상기 할당을 해제하는 불휘발성 메모리 모듈.
The method according to claim 1,
In a read operation for the nonvolatile memory module,
Wherein the DIMM controller allocates an area in which the data is to be stored when the data is stored in the RAM, and the host is a nonvolatile memory that releases the allocation to the area in which the data is stored when the data is read from the RAM. module.
제 1 항에 있어서,
상기 DIMM 컨트롤러는, 상기 DIMM 컨트롤러가 상기 램에 저장된 상기 데이터를 읽어냈는지 여부에 관한 상태 정보를 생성하는 영역 관리자를 포함하는 불휘발성 메모리 모듈.
The method according to claim 1,
Wherein the DIMM controller includes an area manager for generating status information regarding whether the DIMM controller has read the data stored in the RAM.
제 4 항에 있어서,
상기 램은 상태 정보를 저장하는 상태 영역을 포함하는 불휘발성 메모리 모듈.
5. The method of claim 4,
Wherein the RAM comprises a status area for storing status information.
호스트; 그리고
적어도 하나의 불휘발성 메모리, 상기 호스트와 상기 적어도 하나의 불휘발성 메모리 사이에서 교환되는 데이터가 저장되는 램, 및 상기 램과 상기 적어도 하나의 불휘발성 메모리 사이의 데이터 교환을 제어하는 DIMM 컨트롤러를 포함하는 디바이스 컨트롤러를 포함하는 불휘발성 메모리 모듈을 포함하되,
상기 램으로의 접근시에 접근 영역에 대한 할당은 상기 램에 데이터를 기록하는 쓰기 트랜잭션에서 수행되고, 상기 할당에 대한 해제는 상기 기록된 데이터의 읽기 트랜잭션에서 수행되는 스토리지 시스템.
Host; And
And a DIMM controller for controlling data exchange between the RAM and the at least one non-volatile memory, wherein the at least one non-volatile memory is a memory that stores data exchanged between the host and the at least one non-volatile memory, A non-volatile memory module comprising a device controller,
Wherein allocation to the access area upon access to the RAM is performed in a write transaction that writes data to the RAM and release of the allocation is performed in a read transaction of the written data.
제 6 항에 있어서,
상기 불휘발성 메모리 모듈에 대한 쓰기 동작 시,
상기 호스트는 상기 데이터를 상기 램에 저장할 때 상기 데이터가 저장될 영역을 할당하고, 상기 DIMM 컨트롤러는 상기 데이터를 상기 램으로부터 읽어낼 때 상기 데이터가 저장되었던 영역에 대한 상기 할당을 해제하는 스토리지 시스템.
The method according to claim 6,
In a write operation to the nonvolatile memory module,
Wherein the host allocates the area in which the data is to be stored when the data is stored in the RAM and releases the allocation to the area in which the data is stored when the DIMM controller reads the data from the RAM.
제 7 항에 있어서,
상기 DIMM 컨트롤러는, 상기 DIMM 컨트롤러가 상기 램에 저장된 상기 데이터를 읽어냈는지 여부에 관한 상태 정보를 생성하는 제 1 영역 관리자를 포함하는 스토리지 시스템.
8. The method of claim 7,
Wherein the DIMM controller includes a first area manager for generating status information regarding whether the DIMM controller has read the data stored in the RAM.
제 6 항에 있어서,
상기 불휘발성 메모리 모듈에 대한 읽기 동작 시,
상기 DIMM 컨트롤러는 상기 데이터를 상기 램에 저장할 때 상기 데이터가 저장될 영역을 할당하고, 상기 호스트는 상기 데이터를 상기 램으로부터 읽어낼 때 상기 데이터가 저장되었던 영역에 대한 상기 할당을 해제하는 스토리지 시스템.
The method according to claim 6,
In a read operation for the nonvolatile memory module,
Wherein the DIMM controller allocates an area in which the data is to be stored when the data is stored in the RAM and releases the allocation to an area in which the data is stored when the host reads the data from the RAM.
제 9 항에 있어서,
상기 호스트는, 상기 호스트가 상기 램에 저장된 상기 데이터를 읽어냈는지 여부에 관한 상태 정보를 생성하는 제 2 영역 관리자를 포함하는 스토리지 시스템.
10. The method of claim 9,
Wherein the host includes a second area manager for generating status information about whether the host has read the data stored in the RAM.
KR1020150101100A 2015-06-08 2015-07-16 Nonvolatile memory module and storage system having the same KR102482901B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150101100A KR102482901B1 (en) 2015-07-16 2015-07-16 Nonvolatile memory module and storage system having the same
US15/132,466 US10048878B2 (en) 2015-06-08 2016-04-19 Nonvolatile memory module and storage system having the same
US16/044,024 US10671299B2 (en) 2015-06-08 2018-07-24 Nonvolatile memory module having device controller that detects validity of data in RAM based on at least one of size of data and phase bit corresponding to the data, and method of operating the nonvolatile memory module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150101100A KR102482901B1 (en) 2015-07-16 2015-07-16 Nonvolatile memory module and storage system having the same

Publications (2)

Publication Number Publication Date
KR20170010214A true KR20170010214A (en) 2017-01-26
KR102482901B1 KR102482901B1 (en) 2022-12-30

Family

ID=57992931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150101100A KR102482901B1 (en) 2015-06-08 2015-07-16 Nonvolatile memory module and storage system having the same

Country Status (1)

Country Link
KR (1) KR102482901B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020163834A1 (en) * 2000-08-14 2002-11-07 Scheuerlein Roy E. Integrated systems using vertically-stacked three-dimensional memory cells
US20100011261A1 (en) * 2008-07-08 2010-01-14 International Business Machines Corporation Verifying Data Integrity of a Non-Volatile Memory System during Data Caching Process
US20110010508A1 (en) * 2009-07-13 2011-01-13 Fujitsu Limited Memory system and information processing device
US20120198136A1 (en) * 2009-02-11 2012-08-02 Stec, Inc. Flash backed dram module including logic for isolating the dram

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020163834A1 (en) * 2000-08-14 2002-11-07 Scheuerlein Roy E. Integrated systems using vertically-stacked three-dimensional memory cells
US20100011261A1 (en) * 2008-07-08 2010-01-14 International Business Machines Corporation Verifying Data Integrity of a Non-Volatile Memory System during Data Caching Process
US20120198136A1 (en) * 2009-02-11 2012-08-02 Stec, Inc. Flash backed dram module including logic for isolating the dram
US20110010508A1 (en) * 2009-07-13 2011-01-13 Fujitsu Limited Memory system and information processing device

Also Published As

Publication number Publication date
KR102482901B1 (en) 2022-12-30

Similar Documents

Publication Publication Date Title
US10671299B2 (en) Nonvolatile memory module having device controller that detects validity of data in RAM based on at least one of size of data and phase bit corresponding to the data, and method of operating the nonvolatile memory module
KR102447471B1 (en) Storage device including nonvolatile memory device
KR101699377B1 (en) Storage device including nonvolatile memory and memory controller and operating method of storage device
KR102403253B1 (en) Storage device including nonvolatile memory device
KR102249810B1 (en) Storage device and operating method of storage device
KR102285462B1 (en) Method of operating memory system including nonvolatile memory and memory controller
KR102358053B1 (en) Storage device including a plurality of nonvolatile memory chips
KR20170036964A (en) Operation method of nonvolatile memory system
US20220261171A1 (en) Storage devices, data storage systems and methods of operating storage devices
KR102313017B1 (en) Storage device comprising nonvolatile memory and controller controlling write of nonvolatile memory device and operating method of storage device
KR102229970B1 (en) Solid state drive including nonvolatile memory, random access memory and memory controller
KR20200079852A (en) Memory system and operating method thereof
KR20160144577A (en) Nonvolatile memory module and user device comprising the same
KR102513903B1 (en) Nonvolatile memory module and memory system
KR20220021761A (en) Memory device and operating method thereof
KR20160144574A (en) Nonvolatile memory module and data write method thereof
KR102482901B1 (en) Nonvolatile memory module and storage system having the same
KR20220060385A (en) Storage device and operating method thereof
KR102290988B1 (en) Nonvolatile memory module and operating method thereof
KR102548574B1 (en) Nonvolatile memory module
KR102538246B1 (en) Nonvolatile memory moduel
KR102475547B1 (en) Nonvolatile memory device and operation method thereof
KR20160144563A (en) Nonvolatile memory module and operating method thereof
US11210223B2 (en) Storage device and operating method thereof
KR20160144576A (en) Nonvolatile memory module and user device comprising the same

Legal Events

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