KR20190093475A - Operation method of host, operation method of memory module, and operation method of memory system - Google Patents

Operation method of host, operation method of memory module, and operation method of memory system Download PDF

Info

Publication number
KR20190093475A
KR20190093475A KR1020180019329A KR20180019329A KR20190093475A KR 20190093475 A KR20190093475 A KR 20190093475A KR 1020180019329 A KR1020180019329 A KR 1020180019329A KR 20180019329 A KR20180019329 A KR 20180019329A KR 20190093475 A KR20190093475 A KR 20190093475A
Authority
KR
South Korea
Prior art keywords
host
data
counter
controller
release information
Prior art date
Application number
KR1020180019329A
Other languages
Korean (ko)
Other versions
KR102549591B1 (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 US16/103,058 priority Critical patent/US11048645B2/en
Priority to CN201811580428.2A priority patent/CN110109612B/en
Publication of KR20190093475A publication Critical patent/KR20190093475A/en
Application granted granted Critical
Publication of KR102549591B1 publication Critical patent/KR102549591B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

According to an embodiment of the present invention, a memory module comprises: a RAM device including first and second storage areas; a nonvolatile memory device; and a controller configured to control the RAM device or nonvolatile memory device according to the control of a host. The controller includes a data buffer configured to temporarily store first data received from the host and a buffer transforming unit configured to transmit first release information to the host if first data is transferred from the data buffer to a first area or second area of the RAM device and transmit second release information to the host if the first data is transferred from the second area to the nonvolatile memory device. The host may manage resources of the memory module.

Description

호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 시스템의 동작 방법{OPERATION METHOD OF HOST, OPERATION METHOD OF MEMORY MODULE, AND OPERATION METHOD OF MEMORY SYSTEM}Operation method of host, operation method of memory module, operation method of memory system {OPERATION METHOD OF HOST, OPERATION METHOD OF MEMORY MODULE, AND OPERATION METHOD OF MEMORY SYSTEM}

본 발명은 저장 장치에 관한 것으로, 좀 더 상세하게는 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 시스템의 동작 방법에 관한 것이다.The present invention relates to a storage device, and more particularly, to a method of operating a host, a method of operating a memory module, and a method of operating a memory system.

반도체 메모리는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같이 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리 장치 및 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 불휘발성 메모리 장치로 구분된다.The semiconductor memory is a volatile memory device such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), etc. that loses its stored data when the power supply is cut off, read only memory (ROM), and programmable ROM (PROM). Power supplies, such as EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), flash memory devices, phase-change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM), ferroelectric RAM (FRAM), etc. Even if it is blocked, it is classified as a nonvolatile memory device which retains the stored data.

불휘발성 메모리 장치의 일종인 플래시 메모리는 대용량, 저소음, 저전력 등의 장점으로 인하여 다양한 분야에서 스토리지 장치로 널리 쓰인다. 최근에는 컴퓨팅 시스템에서 처리되는 데이터가 증가함에 따라 SSD 장치들과 연결된 인터페이스의 데이터 대역폭 또는 통신 속도보다 데이터 처리량이 많아져서 데이터 병목 현상이 발생한다. 이러한 현상들은 컴퓨팅 시스템의 성능을 저해하는 요인으로 작용되며, 상술된 문제점을 해결하기 위한 다양한 성능 향상 기법들이 개발되고 있다.Flash memory, a type of nonvolatile memory device, is widely used as a storage device in various fields due to its advantages such as large capacity, low noise, and low power. Recently, as data processed in a computing system increases, data bottlenecks occur due to more data throughput than data bandwidth or communication speed of an interface connected to SSD devices. These phenomena act as a factor that hinders the performance of the computing system, and various performance enhancement techniques have been developed to solve the above problems.

본 발명의 목적은 호스트가 메모리 모듈의 리소스를 관리함으로써, 향상된 성능을 갖는 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 시스템의 동작 방법을 제공하는데 있다. SUMMARY OF THE INVENTION An object of the present invention is to provide a method of operating a host, a method of operating a memory module, and a method of operating a memory system, by the host managing resources of the memory module.

본 발명의 실시 예에 따른 메모리 모듈은 제1 저장 영역 및 제2 저장 영역을 포함하는 램 장치, 불휘발성 메모리 장치, 및 호스트의 제어에 따라 상기 램 장치 또는 상기 불휘발성 메모리 장치를 제어하도록 구성된 컨트롤러를 포함한다. 상기 컨트롤러는 상기 호스트로부터 수신된 제1 데이터를 임시 저장하도록 구성된 데이터 버퍼, 및 상기 제1 데이터가 상기 데이터 버퍼로부터 상기 램 장치의 상기 제1 영역 또는 상기 제2 영역으로 이동한 경우 제1 해제 정보를 상기 호스트로 전송하고, 상기 제1 데이터가 상기 제2 영역으로부터 상기 불휘발성 메모리 장치로 이동한 경우 제2 해제 정보를 상기 호스트로 전송하도록 구성된 버퍼 반환부를 포함한다.In an embodiment, a memory module may include a RAM device including a first storage area and a second storage area, a nonvolatile memory device, and a controller configured to control the RAM device or the nonvolatile memory device under control of a host. It includes. The controller is a data buffer configured to temporarily store the first data received from the host, and first release information when the first data is moved from the data buffer to the first region or the second region of the RAM device. And a buffer return unit configured to transmit second release information to the host when the first data is moved from the second area to the nonvolatile memory device.

본 발명의 실시 예에 따른 메모리 모듈은 램 장치, 불휘발성 메모리 장치, 호스트의 제어에 따라 상기 램 장치 및 상기 불휘발성 메모리 장치를 제어하도록 구성된 컨트롤러를 포함한다. 상기 컨트롤러는 상기 호스트로부터 수신된 제1 데이터를 임시 저장하도록 구성된 데이터 버퍼, 및 상기 제1 데이터가 상기 데이터 버퍼로부터 상기 램 장치 또는 상기 불휘발성 메모리 장치로 이동한 경우, 제1 해제 정보를 상기 호스트로 전송하도록 구성된 버퍼 반환부를 포함한다.A memory module according to an embodiment of the present invention includes a RAM device, a nonvolatile memory device, and a controller configured to control the RAM device and the nonvolatile memory device under control of a host. The controller is configured to temporarily store first data received from the host, and the first release information is transmitted to the RAM device or the nonvolatile memory device when the first data is moved from the data buffer to the host. It includes a buffer return configured to transmit to.

본 발명의 실시 예에 따른 램 장치 및 불휘발성 메모리 장치를 포함하는 메모리 장치의 동작 방법은 호스트로부터 제1 쓰기 커맨드를 수신하는 단계, 상기 제1 쓰기 커맨드에 대응하는 제1 데이터를 수신하고, 상기 수신된 제1 데이터를 데이터 버퍼에 임시 저장하는 단계, 상기 제1 데이터를 상기 데이터 버퍼로부터 상기 램 장치로 이동시키는 단계, 상기 제1 데이터가 상기 데이터 버퍼로부터 상기 램 장치로 이동한 경우, 상기 호스트로 제1 해제 정보를 전송하는 단계, 상기 제1 데이터를 상기 램 장치로부터 상기 불휘발성 메모리 장치로 이동시키는 단계, 및 상기 제1 데이터가 상기 램 장치로부터 상기 불휘발성 메모리 장치로 이동한 경우, 상기 호스트로 제2 해제 정보를 전송하는 단계를 포함한다.A method of operating a memory device including a RAM device and a nonvolatile memory device according to an embodiment of the present disclosure may include receiving a first write command from a host, receiving first data corresponding to the first write command, and Temporarily storing the received first data in a data buffer, moving the first data from the data buffer to the RAM device, and when the first data is moved from the data buffer to the RAM device, the host Transmitting first release information to the nonvolatile memory device, transferring the first data from the RAM device to the nonvolatile memory device, and when the first data is moved from the RAM device to the nonvolatile memory device. Sending the second release information to the host.

메모리 모듈과 통신하도록 구성된 호스트의 동작 방법은 지속 쓰기 커맨드(persist write command)를 상기 메모리 모듈로 전송하고, 상기 메모리 모듈에 포함된 제1 단위 버퍼들 중 가용한 제1 단위 버퍼의 개수를 가리키는 제1 카운터 값 및 상기 메모리 모듈에 포함된 제2 단위 버퍼들 중 가용한 제2 단위 버퍼의 개수를 가리키는 제2 카운터 값을 각각 감산하는 단계, 상기 제1 단위 버퍼들 중 해제된 제1 단위 버퍼의 개수를 가리키는 제1 해제 정보를 상기 메모리 모듈로부터 수신하고, 상기 수신된 제1 해제 정보를 기반으로 상기 감산된 제1 카운터 값을 가산하는 단계, 및 상기 제2 단위 버퍼들 중 해제된 제2 단위 버퍼의 개수를 가리키는 제2 해제 정보를 상기 메모리 모듈로부터 수신하고, 상기 수신된 제2 해제 정보를 기반으로 상기 감산된 제2 카운터 값을 가산하는 단계를 포함한다.A method of operating a host configured to communicate with a memory module may include: transmitting a persistent write command to the memory module and indicating a number of available first unit buffers among the first unit buffers included in the memory module; Subtracting a first counter value and a second counter value indicating the number of available second unit buffers among the second unit buffers included in the memory module, respectively, of the first unit buffers released among the first unit buffers. Receiving first release information indicating a number from the memory module, adding the subtracted first counter value based on the received first release information, and a second unit released among the second unit buffers; Receiving second release information indicating the number of buffers from the memory module and adding the subtracted second counter value based on the received second release information; Including the step of producing.

본 발명의 실시 예에 따르면, 호스트는 메모리 모듈의 리소스(예를 들어, WC, PC 등)를 관리할 수 있다. 메모리 모듈은 리소스가 해제된 경우, 호스트로 해제 정보를 전송하고, 호스트는 해제 정보를 기반으로 리소스를 갱신할 수 있다. 따라서, 향상된 성능을 갖는 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 시스템의 동작 방법이 제공된다.According to an embodiment of the present disclosure, a host may manage resources (eg, WC, PC, etc.) of a memory module. When the resource is released, the memory module transmits release information to the host, and the host may update the resource based on the release information. Accordingly, a method of operating a host, a method of operating a memory module, and a method of operating a memory system having improved performance are provided.

도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
도 2a 내지 도 2c는 도 1의 호스트 및 컨트롤러 사이의 동작을 설명하기 위한 블록도들이다.
도 3은 도 1의 호스트의 동작을 예시적으로 보여주는 순서도이다.
도 4는 도 1의 컨트롤러의 동작을 보여주는 순서도이다.
도 5a 내지 도 5c는 도 1의 호스트 및 컨트롤러의 동작을 설명하기 위한 타이밍도이다.
도 6은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
도 7a 내지 도 7d 및 도 8은 도 6의 호스트 및 컨트롤러의 동작을 설명하기 위한 도면들이다.
도 9는 도 6의 호스트의 동작 방법을 보여주는 순서도이다.
도 10은 도 6의 메모리 모듈의 동작 방법을 보여주는 순서도이다.
도 11은 도 6의 호스트 및 컨트롤러의 동작을 설명하기 위한 타이밍도이다.
도 12a 및 도 12b는 도 6의 호스트 및 컨트롤러의 동작을 설명하기 위한 블록도들이다.
도 13a 내지 도 13d는 도 12a 내지 도 12b의 실시 예에 따른 호스트 및 컨트롤러의 동작을 설명하기 위한 타이밍도들이다.
도 14는 도 6의 WC 카운터 및 PC 카운터의 예를 보여주는 도면이다.
도 15는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
도 16은 본 발명에 따른 메모리 모듈의 예시적인 블록도이다.
도 17은 본 발명에 따른 메모리 모듈의 예시적인 블록도이다.
도 18은 본 발명에 따른 메모리 모듈이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
1 is a block diagram illustrating a computing system according to an example embodiment.
2A through 2C are block diagrams for describing an operation between a host and a controller of FIG. 1.
3 is a flowchart illustrating an operation of the host of FIG. 1.
4 is a flowchart illustrating an operation of the controller of FIG. 1.
5A through 5C are timing diagrams for describing an operation of a host and a controller of FIG. 1.
6 is a block diagram illustrating a computing system according to an example embodiment.
7A to 7D and 8 are diagrams for describing an operation of a host and a controller of FIG. 6.
9 is a flowchart illustrating a method of operating a host of FIG. 6.
FIG. 10 is a flowchart illustrating a method of operating the memory module of FIG. 6.
FIG. 11 is a timing diagram for describing an operation of a host and a controller of FIG. 6.
12A and 12B are block diagrams for describing an operation of a host and a controller of FIG. 6.
13A through 13D are timing diagrams for describing an operation of a host and a controller according to the exemplary embodiment of FIGS. 12A through 12B.
14 is a diagram illustrating an example of a WC counter and a PC counter of FIG. 6.
15 is a block diagram illustrating a computing system according to an example embodiment.
16 is an exemplary block diagram of a memory module in accordance with the present invention.
17 is an exemplary block diagram of a memory module in accordance with the present invention.
18 is a block diagram illustrating a computing system to which a memory module according to the present invention is applied.

이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail so that those skilled in the art can easily carry out the present invention.

이하에서, "부(unit)","모듈(module)" 등의 용어는 소프트웨어 구성, 하드웨어 구성, 또는 그것들의 조합의 구성을 의미한다. 예를 들어, 특정 기능을 수행하는 " 부(unit)"는 특정 기능을 수행하기 위한 하드웨어 구성일 수 있다. 특정 기능 또는 특정 구성들을 포함하는 "모듈(module)"은 다양한 하드웨어 구성들을 포함하는 구성일 수 있다.Hereinafter, the terms "unit", "module" and the like refer to a configuration of a software configuration, a hardware configuration, or a combination thereof. For example, a "unit" performing a specific function may be a hardware configuration for performing a specific function. A “module” that includes a particular function or specific configurations may be a configuration that includes various hardware configurations.

도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템(10)을 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(10)은 호스트(101) 및 메모리 모듈(100)을 포함할 수 있다. 호스트(101)는 메모리 모듈(100)에 데이터를 저장하거나 또는 메모리 모듈(100)에 저장된 데이터를 읽을 수 있다. 예를 들어, 호스트(101)는 메모리 모듈(100)에 데이터(DATA)를 저장하기 위하여, 메모리 모듈(100)로 어드레스(ADDR), 커맨드(CMD), 및 데이터(DATA)를 전송할 수 있다. 예시적인 실시 예에서, 호스트(101)는 컴퓨팅 시스템(10)의 동작을 제어하기 위한 중앙 처리 유닛(CPU; central processing unit)일 수 있다. 1 is a block diagram illustrating a computing system 10 according to an example embodiment. Referring to FIG. 1, the computing system 10 may include a host 101 and a memory module 100. The host 101 may store data in the memory module 100 or read data stored in the memory module 100. For example, the host 101 may transmit an address ADDR, a command CMD, and data DATA to the memory module 100 to store data DATA in the memory module 100. In an example embodiment, the host 101 may be a central processing unit (CPU) for controlling the operation of the computing system 10.

메모리 모듈(100)은 컨트롤러(110), 램 장치(120), 및 불휘발성 메모리 장치(130)를 포함할 수 있다. 예시적으로, 메모리 모듈(100)은 DDR(Double Data Rate) 인터페이스를 통해 호스트(101)와 통신할 수 있고, NVDIMM-P 타입의 메모리 모듈일 수 있다. 예시적으로, 컨트롤러(110), 램 장치(120), 및 불휘발성 메모리 장치(130)는 동일한 PCB 기판(미도시) 상에 집적되어 하나의 메모리 모듈(100)을 구성할 수 있다. 또한, 메모리 모듈(100)은 도시된 구성 요소들 이외에 다른 다양한 구성 요소들을 더 포함할 수 있다. 그러나 본 발명이 이에 한정되는 것은 아니다.The memory module 100 may include a controller 110, a RAM device 120, and a nonvolatile memory device 130. For example, the memory module 100 may communicate with the host 101 through a double data rate (DDR) interface, and may be an NVDIMM-P type memory module. For example, the controller 110, the RAM device 120, and the nonvolatile memory device 130 may be integrated on the same PCB substrate (not shown) to configure one memory module 100. In addition, the memory module 100 may further include various other components in addition to the illustrated components. However, the present invention is not limited thereto.

컨트롤러(110)는 호스트(101)의 제어에 따라 램 장치(120) 또는 불휘발성 메모리 장치(130)에 데이터(DATA)를 저장하거나 또는 램 장치(120) 또는 불휘발성 메모리 장치(130)에 저장된 데이터(DATA)를 읽을 수 있다. The controller 110 stores data DATA in the RAM device 120 or the nonvolatile memory device 130 under the control of the host 101, or is stored in the RAM device 120 or the nonvolatile memory device 130. Data DATA can be read.

예시적인 실시 예에서, 램 장치(120)는 불휘발성 메모리 장치(130)보다 빠른 동작 속도를 가질 수 있다. 예를 들어, 램 장치(120)는 SRAM, DRAM 등과 같은 고속 동작을 지원하는 메모리 장치일 수 있고, 불휘발성 메모리 장치(130)는 플래시 메모리와 같이 전원 공급이 중단되더라도 데이터를 유지하는 불휘발성 메모리 장치일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 램 장치(120) 및 불휘발성 메모리 장치(130)는 다양한 저장 장치들로 구현될 수 있다.In an example embodiment, the RAM device 120 may have a faster operating speed than the nonvolatile memory device 130. For example, the RAM device 120 may be a memory device that supports high-speed operation such as SRAM, DRAM, etc. The nonvolatile memory device 130 may maintain a data even when power supply is interrupted, such as a flash memory. It may be a device. However, the scope of the present invention is not limited thereto, and the RAM device 120 and the nonvolatile memory device 130 may be implemented with various storage devices.

본 발명의 실시 예를 용이하게 설명하기 위하여, 램 장치(120)가 컨트롤러(110)와 구분된 것으로 것으로 도시되나, 본 발명의 범위가 이에 한정되는 것은 아니며, 램 장치(120)는 컨트롤러(110)의 내부에 포함될 수 있다. In order to easily describe an embodiment of the present invention, the ram device 120 is shown as being separated from the controller 110, but the scope of the present invention is not limited thereto, the ram device 120 is a controller 110 ) May be included inside.

본 발명의 실시 예에 따른 컨트롤러(110)는 데이터 버퍼(111) 및 WC(Write Credit) 반환부(112)를 포함할 수 있다. 데이터 버퍼(111)는 호스트(101)로부터 데이터(DATA)를 수신하거나 또는 수신된 데이터(DATA)를 임시 저장하기 위한 저장 회로일 수 있다. 예를 들어, 호스트(101)로부터 수신된 데이터(DATA)는 데이터 버퍼(111)에 먼저 기입될 수 있다. 이후에, 데이터 버퍼(111)에 저장된 데이터(DATA)는 램 장치(120) 또는 불휘발성 메모리 장치(130)로 전달될 수 있다.The controller 110 according to an embodiment of the present invention may include a data buffer 111 and a write credit (WC) return unit 112. The data buffer 111 may be a storage circuit for receiving data DATA from the host 101 or temporarily storing the received data DATA. For example, data DATA received from the host 101 may be first written to the data buffer 111. Thereafter, the data DATA stored in the data buffer 111 may be transferred to the RAM device 120 or the nonvolatile memory device 130.

즉, 데이터 버퍼(111)는 호스트(101) 및 컨트롤러(110) 사이의 인터페이스 속도를 만족하는 고속 저장 회로일 수 있다. 데이터 버퍼(111)는 호스트(101) 및 컨트롤러(110) 사이의 인터페이스 계층 또는 물리 계층에 포함된 레지스터 또는 고속 메모리일 수 있다.That is, the data buffer 111 may be a high speed storage circuit that satisfies the interface speed between the host 101 and the controller 110. The data buffer 111 may be a register or a high speed memory included in an interface layer or a physical layer between the host 101 and the controller 110.

예시적으로, 데이터 버퍼(111)는 미리 정해진 크기를 갖는 WC들(WC; Write Credit)을 포함할 수 있다. 즉, WC은 미리 정해진 단위의 저장 공간 또는 단위 버퍼를 가릴 수 있다. 예를 들어, 데이터 버퍼(111)가 512KB이고, 하나의 WC이 4KB인 경우, 데이터 버퍼(111)에 대한 전체 WC의 개수는 128개일 수 있다. In exemplary embodiments, the data buffer 111 may include write credits (WCs) having a predetermined size. That is, the WC may cover a storage unit or a unit buffer of a predetermined unit. For example, when the data buffer 111 is 512 KB and one WC is 4 KB, the total number of WCs for the data buffer 111 may be 128.

호스트(101)는 WC 카운터(102)를 포함할 수 있다. WC 카운터(102)는 데이터 버퍼(111)의 WC들 중 가용한 WC의 개수에 대한 정보를 포함할 수 있다. 호스트(101)는 WC 카운터(102)를 기반으로 메모리 모듈(100)에 대한 쓰기 동작을 수행할 수 있다. 예를 들어, 하나의 WC의 단위가 4KB이고, WC 카운터(102)의 값이 "8"인 경우, 호스트(101)는 "4*8=32KB"의 쓰기 데이터를 메모리 모듈(100)로 전송할 수 있다. Host 101 may include a WC counter 102. The WC counter 102 may include information about the number of available WCs among the WCs of the data buffer 111. The host 101 may perform a write operation on the memory module 100 based on the WC counter 102. For example, if a unit of one WC is 4 KB and the value of the WC counter 102 is "8", the host 101 transmits write data of "4 * 8 = 32 KB" to the memory module 100. Can be.

호스트(101)는 전송된 쓰기 데이터의 크기(또는 발행된 쓰기 커맨드의 개수, 또는 전송된 쓰기 데이터의 단위 개수)를 기반으로 WC 카운터(102)를 갱신할 수 있다. 예를 들어, 하나의 WC의 단위가 4KB이고, 호스트(101)가 16KB의 쓰기 데이터를 전송한 경우, 호스트(101)는 4개의 WC을 사용할 것이다. 이 경우, 호스트(101)는 WC 카운터(102)의 현재 값에서 사용된 WC에 대한 값(즉, 4개)을 감산할 수 있다. 즉, 호스트(101)가 16KB의 쓰기 데이터를 전송한 경우, WC 카운터(102)는 "8"에서 "4"로 갱신될 수 있다.The host 101 may update the WC counter 102 based on the size of the write data transmitted (or the number of write commands issued or the number of units of write data transmitted). For example, if one WC has a unit of 4 KB and the host 101 transmits 16 KB of write data, the host 101 will use four WCs. In this case, the host 101 can subtract the value (ie, four) for the WC used from the current value of the WC counter 102. That is, when the host 101 transmits 16 KB of write data, the WC counter 102 may be updated from "8" to "4".

예시적으로, WC 카운터(102)의 값이 "0"인 경우, 호스트(110)에 의해 사용 가능한 WC이 없기 때문에, 호스트(101)는 쓰기 데이터를 컨트롤러(110)로 전송할 수 없을 것이다. For example, if the value of the WC counter 102 is "0", since there is no WC available by the host 110, the host 101 may not be able to transmit write data to the controller 110.

예시적으로, 컨트롤러(110)의 WC 반환부(112)는 WC 해제 정보(RWC)를 호스트(101)로 제공할 수 있다. 예를 들어, 데이터 버퍼(111)의 제1 WC에 저장된 제1 데이터가 램 장치(120) 또는 불휘발성 메모리 장치(130)로 전달된 경우, 데이터 버퍼(111)의 제1 WC은 해제(release)될 수 있다. "제1 WC이 해제되는 것"은 제1 WC이 호스트(101)에 의해 사용될 수 있음을 의미한다. 다시 말해서, 해제된 제1 WC은 호스트(101)로부터 수신된 데이터를 저장하는데 사용될 수 있다. WC 반환부(112)는 상술된 바와 같이 해제된 WC들에 대한 WC 해제 정보(RWC)를 호스트(101)로 전송할 수 있다.For example, the WC returning unit 112 of the controller 110 may provide the WC release information RWC to the host 101. For example, when the first data stored in the first WC of the data buffer 111 is transferred to the RAM device 120 or the nonvolatile memory device 130, the first WC of the data buffer 111 is released. Can be "The first WC is released" means that the first WC can be used by the host 101. In other words, the released first WC may be used to store data received from the host 101. As described above, the WC returning unit 112 may transmit the WC release information RWC for the released WCs to the host 101.

호스트(101)는 컨트롤러(110)로부터의 WC 해제 정보(RWC)를 기반으로 WC 카운터(102)를 갱신할 수 있다. 예를 들어, 앞서 설명된 바와 같이, WC 해제 정보(RWC)는 데이터 버퍼(111)에서 사용된 WC들 중 컨트롤러(110)의 동작에 의해 해제된 WC들의 개수를 가리킨다. 다시 말해서, WC 해제 정보(RWC)는 호스트(101)에 의해 사용 가능한 WC들의 개수를 가리킨다. WC 해제 정보(RWC)가 "4"를 가리키는 경우, 호스트(101)는 WC 카운터(102)에 "4"의 값을 가산할 수 있다.The host 101 may update the WC counter 102 based on the WC release information RWC from the controller 110. For example, as described above, the WC release information RWC indicates the number of WCs released by the operation of the controller 110 among the WCs used in the data buffer 111. In other words, the WC release information RWC indicates the number of WCs available by the host 101. When the WC release information RWC indicates "4", the host 101 may add a value of "4" to the WC counter 102.

예시적으로, WC 해제 정보(RWC)는 비동기 방식으로 제공될 수 있다. 예를 들어, WC에 대한 해제가 발생한 경우, 컨트롤러(110)는 호스트(101)로 반환 신호(RTN)를 전송할 수 있다. 호스트(101)는 반환 신호(RTN)에 응답하여 컨트롤러(110)로부터 WC 해제 정보(RWC)를 수신할 수 있다. 예시적으로, WC 해제 정보(RWC)는 데이터(DATA)와 동일한 신호 라인을 통해 제공될 수 있다. 또는 WC 해제 정보(RWC)는 별도의 신호 라인 또는 별도의 통신 채널을 통해 호스트(101)로 제공될 수 있다. In exemplary embodiments, the WC release information RWC may be provided in an asynchronous manner. For example, when the release of the WC occurs, the controller 110 may transmit a return signal RTN to the host 101. The host 101 may receive the WC release information RWC from the controller 110 in response to the return signal RTN. In exemplary embodiments, the WC release information RWC may be provided through the same signal line as the data DATA. Alternatively, the WC release information RWC may be provided to the host 101 through a separate signal line or a separate communication channel.

또는 WC 해제 정보(RWC)는 호스트(101)의 명시적인 요청에 의해 전송될 수 있다. 또는 WC 해제 정보(RWC)는 호스트(101)의 읽기 요청에 따른 읽기 데이터와 함께 호스트(101)로 전송될 수 있다.Alternatively, the WC release information RWC may be transmitted by an explicit request from the host 101. Alternatively, the WC release information RWC may be transmitted to the host 101 together with the read data according to the read request of the host 101.

상술된 바와 같이, 호스트(101)는 컨트롤러(110)의 데이터 버퍼(111)의 사용 가능한 WC들을 관리할 수 있고, 컨트롤러(110)는 해제된 WC에 대한 정보를 호스트(101)로 전송할 수 있다. 따라서, 호스트(101) 및 컨트롤러(110) 사이의 데이터 전송 시 속도 저하가 방지될 수 있다.As described above, the host 101 may manage the available WCs of the data buffer 111 of the controller 110, and the controller 110 may transmit information about the released WC to the host 101. . Therefore, a speed decrease in data transmission between the host 101 and the controller 110 can be prevented.

도 2a 내지 도 2c는 도 1의 호스트(101) 및 컨트롤러(110) 사이의 동작을 설명하기 위한 블록도들이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다.2A through 2C are block diagrams for describing an operation between the host 101 and the controller 110 of FIG. 1. For the sake of brevity, a detailed description of the above-described components will be omitted.

이하에서, 본 발명의 실시 예를 명확하고 간결하게 설명하기 위하여, 특정한 의미를 갖는 다양한 표현들이 사용된다. 예를 들어, "호스트에 의한 WC의 사용"은 호스트가 쓰기 데이터를 전송하기 위하여 쓰기 데이터를 할당 또는 사용하는 것 또는 호스트가 WC으로 쓰기 데이터를 전송하는 것을 의미한다. 또한, "WC의 해제"는 WC에 저장된 쓰기 데이터가 램 장치 또는 불휘발성 메모리 장치로 전달됨으로써, 다른 쓰기 데이터를 수신할 수 있는 상태를 가리킨다. 또한, "WC에 저장된 쓰기 데이터가 램 장치 또는 불휘발성 메모리 장치로 전달되는 것"은 WC에 저장된 쓰기 데이터가 램 장치 또는 불휘발성 메모리 장치로 복사되거나 또는 이동하는 것을 의미한다. 상술된 표현들은 본 발명의 실시 예를 간결하고 명확하게 설명하기 위한 것으로서, 본 발명의 범위가 이에 한정되는 것은 아니다. Hereinafter, in order to clearly and concisely explain embodiments of the present invention, various expressions having specific meanings are used. For example, "use of the WC by the host" means that the host allocates or uses the write data to transmit the write data or the host transmits the write data to the WC. In addition, " release of WC " refers to a state in which write data stored in the WC is transferred to the RAM device or the nonvolatile memory device so that other write data can be received. Also, "the transfer of write data stored in the WC to the RAM device or the nonvolatile memory device" means that the write data stored in the WC is copied or moved to the RAM device or the nonvolatile memory device. The above-described expressions are intended to briefly and clearly describe the embodiments of the present invention, but the scope of the present invention is not limited thereto.

설명의 편의를 위하여, 데이터 버퍼(111)는 8개의 WC들(WC1~WC8)을 포함하는 것으로 가정한다. 또한 호스트(101)로부터 컨트롤러(110)로 전송되는 쓰기 데이터 각각은 하나의 WC의 크기와 대응되는 것으로 가정한다. 즉, 하나의 쓰기 데이터의 크기는 하나의 WC의 크기와 동일할 수 있으며, 하나의 쓰기 데이터는 하나의 WC에 저장될 수 있다. For convenience of explanation, it is assumed that the data buffer 111 includes eight WCs WC1 to WC8. In addition, it is assumed that each write data transmitted from the host 101 to the controller 110 corresponds to the size of one WC. That is, the size of one write data may be equal to the size of one WC, and one write data may be stored in one WC.

도 2a 내지 도 2c를 참조하면, 컴퓨팅 시스템(10)은 호스트(110) 및 메모리 모듈(100)을 포함한다. 호스트(101)는 WC 카운터(102)를 포함한다. 메모리 모듈(100)은 컨트롤러(110), 램 장치(120), 및 불휘발성 메모리 장치(130)를 포함할 수 있다. 각 구성 요소들은 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.2A-2C, the computing system 10 includes a host 110 and a memory module 100. Host 101 includes a WC counter 102. The memory module 100 may include a controller 110, a RAM device 120, and a nonvolatile memory device 130. Since each component has been described above, a detailed description thereof will be omitted.

도 2a에 도시된 바와 같이, 초기 상태에서, WC 카운터(102)의 값은 "8"일 수 있다. 이는 데이터 버퍼(111)에서 8개의 WC들(즉, WC1~WC8)이 가용한 상태임을 가리킨다. As shown in FIG. 2A, in the initial state, the value of the WC counter 102 may be "8". This indicates that eight WCs (ie, WC1 to WC8) are available in the data buffer 111.

이후에, 도 2b에 도시된 바와 같이, 호스트(101)는 제1 내지 제4 쓰기 데이터(DT1~DT4)에 대한 쓰기 동작을 수행할 수 있다. 이 경우, 호스트(101)는 4개의 WC들(WC1~WC4)을 사용할 수 있다. 즉, 호스트(101)로부터 수신된 제1 내지 제4 쓰기 데이터(DT1~DT4)는 제1 내지 제4 WC들(WC1~WC4)에 각각 저장될 것이다. 호스트(101)는 사용된 WC들의 개수(즉, 4개)만큼 WC 카운터(102)의 값을 감산할 수 있다. 이 경우, WC 카운터(102)의 값은 "8-4=4"가 될 것이다. 이는 데이터 버퍼(111)에서 가용한 WC들의 개수가 4개임을 의미한다. Thereafter, as illustrated in FIG. 2B, the host 101 may perform a write operation on the first to fourth write data DT1 to DT4. In this case, the host 101 may use four WCs WC1 to WC4. That is, the first to fourth write data DT1 to DT4 received from the host 101 may be stored in the first to fourth WCs WC1 to WC4, respectively. The host 101 can subtract the value of the WC counter 102 by the number of WCs used (ie, four). In this case, the value of the WC counter 102 will be "8-4 = 4". This means that the number of WCs available in the data buffer 111 is four.

비록 도면에 도시되지는 않았으나, 호스트(101)는 컨트롤러(110)로 전송된 쓰기 커맨드의 개수를 기반으로 WC 카운터(102)를 갱신할 수 있다. 예를 들어, 하나의 쓰기 커맨드에 대한 쓰기 데이터의 크기가 하나의 WC의 크기와 대응될 수 있다. 이 때, 4개의 쓰기 커맨드가 컨트롤러(110)로 전송된 경우, 호스트(101)는 WC 카운터(102)의 값에서 "-4"만큼 감산할 수 있다. Although not shown in the drawing, the host 101 may update the WC counter 102 based on the number of write commands transmitted to the controller 110. For example, the size of write data for one write command may correspond to the size of one WC. In this case, when four write commands are transmitted to the controller 110, the host 101 may subtract "-4" from the value of the WC counter 102.

다음으로, 도 2c에 도시된 바와 같이, 컨트롤러(110)의 동작에 의해 일부 WC들이 해제될 수 있다. 예를 들어, 제3 및 제4 WC들(WC3, WC4)에 저장된 쓰기 데이터가 램 장치(120)로 전달될 수 있다. 이 경우, 제3 및 제4 WC들(WC3, WC4)은 해제(release)될 것이다.Next, as shown in FIG. 2C, some WCs may be released by the operation of the controller 110. For example, write data stored in the third and fourth WCs WC3 and WC4 may be transferred to the RAM device 120. In this case, the third and fourth WCs WC3 and WC4 will be released.

WC 반환부(112)는 해제된 WC들에 대한 WC 해제 정보(RWC)를 호스트(110)로 전송할 수 있다. 도 2c에 도시된 바와 같이, 제3 및 제4 WC들(WC3, WC4)이 해제되었으므로, WC 해제 정보(RWC)는 2개의 WC이 해제되었음을 알리는 정보일 수 있다. 호스트(110)는 WC 해제 정보(RWC)에 응답하여 WC 카운터(102)를 갱신할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 2개의 WC들이 해제되었으므로, 호스트(101)는 WC 카운터(102)의 값을 "+2"만큼 가산할 수 있다. 이 경우, WC 카운터(102)의 값은 "6"일 것이다. 이는 현재 데이터 버퍼(111)의 WC들 중 6개의 WC들이 가용함을 의미한다.The WC returning unit 112 may transmit the WC release information RWC for the released WCs to the host 110. As shown in FIG. 2C, since the third and fourth WCs WC3 and WC4 have been released, the WC release information RWC may be information indicating that two WCs have been released. The host 110 may update the WC counter 102 in response to the WC release information RWC. For example, as described above, since the two WCs have been released, the host 101 can add the value of the WC counter 102 by " + 2 ". In this case, the value of the WC counter 102 will be "6". This means that six WCs of the WCs of the current data buffer 111 are available.

상술된 바와 같이, 호스트(101)가 컨트롤러(110)로 쓰기 데이터를 전송하는 경우, 호스트(101)의 WC 카운터(102)는 전송된 쓰기 데이터의 개수 또는 크기, 또는 전송된 쓰기 커맨드들의 개수를 기반으로 갱신(또는 감산)된다. 또한 컨트롤러(110)의 동작에 의해 데이터 버퍼(111)의 WC들이 해제된 경우, 컨트롤러(110)는 WC 해제 정보(RWC)를 호스트(101)로 전송하고, 호스트(101)는 WC 해제 정보(RWC)를 기반으로 WC 카운터(102)를 갱신(또는 가산)할 수 있다. 따라서, 호스트(101)의 주기적인 폴링 동작 없이 또는 별도의 다른 확인 동작 없이 메모리 모듈(100)의 리소스를 인식할 수 있기 때문에, 쓰기 성능이 향상될 수 있다.As described above, when the host 101 transmits write data to the controller 110, the WC counter 102 of the host 101 determines the number or size of write data transmitted or the number of write commands transmitted. It is updated (or subtracted) based on. In addition, when the WCs of the data buffer 111 are released by the operation of the controller 110, the controller 110 transmits the WC release information RWC to the host 101, and the host 101 transmits the WC release information ( The WC counter 102 may be updated (or added) based on the RWC. Therefore, since the resources of the memory module 100 can be recognized without the periodic polling operation of the host 101 or without any other checking operation, the write performance can be improved.

도 3은 도 1의 호스트(101)의 동작을 예시적으로 보여주는 순서도이다. 도 1 및 도 3을 참조하면, S111 단계에서, 호스트(101)는 가용한 WC들의 개수가 기준치(TH)보다 큰지 판별할 수 있다. 예를 들어, 호스트(101)의 WC 카운터(102)의 값은 가용한 WC들의 개수를 가리킬 수 있다. 호스트(101)는 WC 카운터(102)의 값이 기준치(TH)보다 큰지 판별할 수 있다. 예시적으로, 기준치(TH)는 동작 모드 또는 쓰기 커맨드의 타입에 따라 "0"이거나 또는 "0"보다 큰 정수일 수 있다.3 is a flowchart illustrating an operation of the host 101 of FIG. 1. 1 and 3, in step S111, the host 101 may determine whether the number of available WCs is greater than the reference value TH. For example, the value of the WC counter 102 of the host 101 may indicate the number of available WCs. The host 101 can determine whether the value of the WC counter 102 is greater than the reference value TH. In exemplary embodiments, the reference value TH may be “0” or an integer greater than “0” depending on the operation mode or the type of the write command.

예시적으로, 가용한 WC의 개수가 기준치(TH)보다 크지 않다는 것은 컨트롤러(110)가 호스트(101)로부터 전송되는 쓰기 데이터를 수신하기에 충분한 WC을 포함하지 않음을 의미할 수 있다. 이 경우, 호스트(101)가 컨트롤러(110)로 쓰기 데이터를 전송하더라도, 컨트롤러(110)는 쓰기 데이터를 정상적으로 수신하지 못하거나 또는 이전에 수신된 데이터가 소실될 수 있다. 이 경우, 호스트(101)는 가용한 WC들이 확보될 때까지 쓰기 동작을 수행하지 않을 수 있다. For example, if the number of available WCs is not greater than the reference value TH, it may mean that the controller 110 does not include enough WCs to receive the write data transmitted from the host 101. In this case, even if the host 101 transmits the write data to the controller 110, the controller 110 may not normally receive the write data or the previously received data may be lost. In this case, the host 101 may not perform a write operation until available WCs are secured.

예를 들어, 가용한 WC들의 개수가 기준치(TH)보다 크지 않은 경우, S112 단계에서, 호스트(101)는 컨트롤러(110)로부터 WC 해제 정보(RWC)를 읽을 수 있다. 예를 들어, 호스트(101)는 WC 해제 정보(RWC)를 읽기 위한 반환 커맨드를 컨트롤러(110)로 전송할 수 있다. 이 때, 반환 커맨드를 호스트(101)의 자체적인 동작에 의해 전송되거나 또는 컨트롤러(110)로부터 반환 신호(RTN) 에 응답하여 전송될 수 있다. 예시적으로, 반환 커맨드는 호스트(101) 및 메모리 모듈(100) 사이의 인터페이스에 의해 미리 정의된 커맨드 또는 제조사 커맨드(vendor command) 또는 특정 커맨드들의 조합일 수 있다. 또는 호스트(101)는 일반적인 읽기 데이터를 읽기 위한 읽기 커맨드를 컨트롤러(110)로 전송하고, 컨트롤러(110)는 읽기 커맨드에 대응하는 읽기 데이터와 함께 WC 해제 정보(RWC)를 호스트(101)로 전송할 수 있다. 상술된 바와 같이, 호스트(101)는 다양한 방식을 기반으로 컨트롤러(110)로부터 WC 해제 정보(RWC)를 읽을 수 있다.For example, if the number of available WCs is not greater than the reference value TH, in step S112, the host 101 may read the WC release information RWC from the controller 110. For example, the host 101 may transmit a return command for reading the WC release information RWC to the controller 110. At this time, the return command may be transmitted by the host 101's own operation or may be transmitted in response to the return signal RTN from the controller 110. In exemplary embodiments, the return command may be a command predefined by an interface between the host 101 and the memory module 100, a vendor command, or a combination of specific commands. Alternatively, the host 101 transmits a read command for reading general read data to the controller 110, and the controller 110 transmits WC release information RWC to the host 101 together with the read data corresponding to the read command. Can be. As described above, the host 101 may read the WC release information RWC from the controller 110 based on various schemes.

S113 단계에서, 호스트(101)는 WC 해제 정보(RWC)를 기반으로 WC 카운터(102)를 갱신할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 호스트(101)는 WC 해제 정보(RWC)가 가리키는 값을 WC 카운터(102)의 값에 가산할 수 있다. 이후에, 호스트(101)는 S111 단계를 수행할 수 있다.In operation S113, the host 101 may update the WC counter 102 based on the WC release information RWC. For example, as described above, the host 101 can add the value indicated by the WC release information RWC to the value of the WC counter 102. Thereafter, the host 101 may perform step S111.

S111 단계의 비교 결과가 가용한 WC의 개수가 기준치(TH)보다 큰 것을 가리키는 경우, 호스트(101)는 S115 단계의 동작을 수행할 수 있다. S115 단계에서, 호스트(101)는 WC 카운터(102)를 기반으로 쓰기 데이터를 컨트롤러(110)로 전송할 수 있고, 전송된 쓰기 데이터를 기반으로 WC 카운터(102)를 갱신할 수 있다.When the comparison result of step S111 indicates that the number of available WCs is larger than the reference value TH, the host 101 may perform the operation of step S115. In operation S115, the host 101 may transmit write data to the controller 110 based on the WC counter 102, and may update the WC counter 102 based on the transmitted write data.

예를 들어, 호스트(101)는 WC 카운터(102)의 값을 기반으로 컨트롤러(110)로 쓰기 데이터를 전송할 수 있다. 이 때, 전송되는 쓰기 데이터의 크기는 WC 카운터(102)의 값에 대응하는 크기보다 작거나 같을 수 있다. 호스트(101)는 전송된 쓰기 데이터의 크기를 기반으로 WC 카운터(102)의 값을 감산할 수 있다. 예시적으로, 호스트(101)는 전송된 쓰기 커맨드의 개수를 기반으로 WC 카운터(102)의 값을 감산할 수 있다.For example, the host 101 may transmit write data to the controller 110 based on the value of the WC counter 102. In this case, the size of the write data transmitted may be smaller than or equal to the size corresponding to the value of the WC counter 102. The host 101 may subtract the value of the WC counter 102 based on the size of the transmitted write data. In exemplary embodiments, the host 101 may subtract the value of the WC counter 102 based on the number of write commands transmitted.

도 4는 도 1의 컨트롤러(110)의 동작을 보여주는 순서도이다. 도 1 및 도 4를 참조하면, S121 단계에서, 컨트롤러(110)는 호스트(101)로부터 데이터를 수신하고, 수신된 데이터를 WC에 저장할 수 있다. 예시적으로, 데이터 수신 및 데이터 저장 동작은 동시에 또는 순차적으로 수행되는 동작일 수 있다. 4 is a flowchart illustrating an operation of the controller 110 of FIG. 1. 1 and 4, in step S121, the controller 110 may receive data from the host 101 and store the received data in the WC. In exemplary embodiments, the data receiving and data storing operations may be performed simultaneously or sequentially.

S122 단계에서, 컨트롤러(110)는 데이터가 WC으로부터 램 장치(120) 또는 불휘발성 메모리 장치(130)로 이동하였는지 판별할 수 있다. 예를 들어, 앞서 설명된 바와 같이, WC에 저장된 데이터는 컨트롤러(110)의 동작에 따라 램 장치(120) 또는 불휘발성 메모리 장치(130)로 이동할 수 있다. 이 경우, 데이터가 저장된 WC은 해제될 것이다.In operation S122, the controller 110 may determine whether data is moved from the WC to the RAM device 120 or the nonvolatile memory device 130. For example, as described above, the data stored in the WC may move to the RAM device 120 or the nonvolatile memory device 130 according to the operation of the controller 110. In this case, the WC in which data is stored will be released.

데이터가 WC으로부터 램 장치(120) 또는 불휘발성 메모리 장치(130)로 이동한 경우, S123 단계에서, 컨트롤러(110)는 호스트(101)의 제어에 따라 WC 해제 정보(RWC)를 호스트(101)로 전송할 수 있다. 예를 들어, 컨트롤러(110)는 호스트(101)로부터의 반환 요청에 응답하여 WC 해제 정보(RWC)를 호스트(101)로 전송할 수 있다. 예시적으로, 반환 요청은 컨트롤러(110)의 반환 신호(RTN)에 응답하여 호스트(101)에 의해 발행되거나 또는 호스트(101)의 자체 동작에 의해 발행될 수 있다. 또는 컨트롤러(110)는 호스트(101)로부터의 읽기 커맨드에 응답하여, 읽기 커맨드에 대응하는 읽기 데이터 및 WC 해제 정보(RWC)를 호스트(101)로 전송할 수 있다.When data is moved from the WC to the RAM device 120 or the nonvolatile memory device 130, in step S123, the controller 110 supplies the WC release information RWC under the control of the host 101. Can be sent to. For example, the controller 110 may transmit the WC release information RWC to the host 101 in response to a return request from the host 101. In exemplary embodiments, the return request may be issued by the host 101 in response to the return signal RTN of the controller 110 or by the host 101's own operation. Alternatively, the controller 110 may transmit read data and WC release information RWC corresponding to the read command to the host 101 in response to the read command from the host 101.

도 5a 내지 도 5c는 도 1의 호스트(101) 및 컨트롤러(110)의 동작을 설명하기 위한 타이밍도이다. 이하에서, 본 발명의 실시 예를 설명하는데 불필요한 구성 요소들은 생략된다. 또한, 초기 WC 카운터(102)의 값은 "4"인 것으로 가정한다. 또한 하나의 쓰기 커맨드(WR)에 대한 쓰기 데이터(D)의 크기는 하나의 WC의 크기와 동일한 것으로 가정한다. 즉, 하나의 쓰기 커맨드에 대한 쓰기 데이터(D)는 하나의 WC에 저장될 수 있다. 다시 말해서, 호스트(101)는 하나의 쓰기 커맨드에 대한 쓰기 데이터(D)를 전송하기 위하여, 하나의 WC을 사용할 수 있다.5A through 5C are timing diagrams for describing operations of the host 101 and the controller 110 of FIG. 1. In the following, components unnecessary to describe the embodiment of the present invention are omitted. Further, assume that the value of the initial WC counter 102 is "4". In addition, it is assumed that the size of the write data D for one write command WR is the same as the size of one WC. That is, write data D for one write command may be stored in one WC. In other words, the host 101 may use one WC to transmit write data D for one write command.

먼저, 도 1 및 도 5a를 참조하면, 초기 WC 카운터(102)의 값은 "4"일 수 있다. 이는 데이터 버퍼(111)의 WC들(WC) 중 4개의 WC들(WC)이 사용 가능한 상태임을 가리킬 수 있다.First, referring to FIGS. 1 and 5A, the value of the initial WC counter 102 may be "4". This may indicate that four WCs WC of the WCs WC of the data buffer 111 are available.

호스트(101)는 WC 카운터(102)를 기반으로 쓰기 동작을 수행할 수 있다. 예를 들어, WC 카운터(102)의 값이 "4"인 경우, 호스트(101)는 4개의 쓰기 커맨드(WR1~WR4) 및 각각에 대응하는 4개의 쓰기 데이터(D1~D4)를 컨트롤러(110)로 전송할 수 있다.The host 101 may perform a write operation based on the WC counter 102. For example, when the value of the WC counter 102 is "4", the host 101 controls four write commands WR1 to WR4 and four write data D1 to D4 corresponding to the controller 110. ) Can be sent.

호스트(101)는 쓰기 커맨드들(WR1~WR4) 각각을 전송할 때마다, WC 카운터(102)를 갱신할 수 있다. 예를 들어, 호스트(101)가 제1 쓰기 커맨드(WR1)를 전송한 경우, 호스트(101)는 WC 카운터(102)의 값을 "4"에서 "3"으로 "-1"만큼 감산할 수 있고, 호스트(101)가 제2 쓰기 커맨드(WR2)를 전송한 경우, 호스트(101)는 WC 카운터(102)의 값을 "3"에서 "2"로 "-1"만큼 감산할 수 있다. 즉, 호스트(101)는 쓰기 커맨드를 전송할 때마다, WC 카운터(102)의 값을 하나씩 감소시킬 수 있다. 이는 호스트(101)가 쓰기 데이터를 전송하기 위하여, 데이터 버퍼(111)의 WC을 사용하기 때문이다. 다시 말해서, 호스트(101)의 쓰기 커맨드에 의해 대응하는 쓰기 데이터가 컨트롤러(110)의 데이터 버퍼(111)의 어느 하나의 WC에 저장되기 때문이다.Each time the host 101 transmits each of the write commands WR1 to WR4, the host 101 may update the WC counter 102. For example, when the host 101 transmits the first write command WR1, the host 101 may subtract the value of the WC counter 102 from "4" to "3" by "-1". When the host 101 transmits the second write command WR2, the host 101 may subtract the value of the WC counter 102 from "3" to "2" by "-1". That is, each time the host 101 transmits a write command, the host 101 may decrease the value of the WC counter 102 by one. This is because the host 101 uses the WC of the data buffer 111 to transmit write data. In other words, the corresponding write data is stored in any one WC of the data buffer 111 of the controller 110 by the write command of the host 101.

제4 쓰기 커맨드(WR4)가 전송된 이후에, WC 카운터(102)의 값은 "0"일 수 있다. 이 경우, 가용한 WC이 없기 때문에, 호스트(101)는 컨트롤러(110)로 쓰기 커맨드 또는 쓰기 데이터를 전송하지 못할 것이다. 다시 말해서, 제1 시간(T1) 동안 호스트(101)는 쓰기 동작을 수행하지 않을 것이다.After the fourth write command WR4 is transmitted, the value of the WC counter 102 may be "0". In this case, since there is no WC available, the host 101 will not be able to send a write command or write data to the controller 110. In other words, the host 101 will not perform a write operation during the first time T1.

제1 시점(t1)에서, 컨트롤러(110)의 동작에 따라 WC이 해제될 수 있다. 예를 들어, 앞서 설명된 바와 같이, 컨트롤러(110)의 동작에 따라, 데이터 버퍼(111)에 저장된 쓰기 데이터 중 일부 쓰기 데이터가 램 장치(120) 또는 불휘발성 메모리 장치(130)로 전달될 수 있다. 이 경우, 일부 데이터가 저장된 데이터 버퍼(111)의 영역(다시 말해서, WC)이 해제될 것이다.At the first time point t1, the WC may be released according to the operation of the controller 110. For example, as described above, according to the operation of the controller 110, some write data of the write data stored in the data buffer 111 may be transferred to the RAM device 120 or the nonvolatile memory device 130. have. In this case, the area (ie, WC) of the data buffer 111 in which some data is stored will be released.

컨트롤러(110)의 WC 반환부(112)는 제1 시점(t1)에서 WC의 해제를 감지하고, 반환 신호(RTN)를 호스트(101)로 전송할 수 있다. 예시적으로, 반환 신호(RTN)는 특정 신호 라인을 통해 제공될 수 있으며, 반환 신호(RTN)는 로직 로우 레벨을 가질 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.The WC returning unit 112 of the controller 110 may detect the release of the WC at the first time point t1 and may transmit a return signal RTN to the host 101. In exemplary embodiments, the return signal RTN may be provided through a specific signal line, and the return signal RTN may have a logic low level. However, the scope of the present invention is not limited thereto.

호스트(101)는 반환 신호(RTN)에 응답하여 반환 커맨드(RCM)를 컨트롤러(110)로 전송할 수 있다. 반환 커맨드(RCM)는 WC 반환 정보(RWC)를 읽기 위한 커맨드일 수 있다. 컨트롤러(110)는 반환 커맨드(RCM)에 응답하여 데이터 라인(DQ)을 통해 WC 반환 정보(RWC)를 호스트(101)로 제공할 수 있다. The host 101 may transmit a return command RCM to the controller 110 in response to the return signal RTN. The return command RCM may be a command for reading the WC return information RWC. The controller 110 may provide the WC return information RWC to the host 101 through the data line DQ in response to the return command RCM.

호스트(101)는 수신된 WC 반환 정보(RWC)를 기반으로 WC 카운터(102)를 갱신할 수 있다. 예를 들어, WC 반환 정보(RWC)가 4개의 WC들이 해제되었음을 가리키는 경우, 호스트(101)는 WC 카운터(102)의 값을 "0"에서 "4"로 "+4"만큼 가산할 수 있다.The host 101 may update the WC counter 102 based on the received WC return information RWC. For example, if the WC return information RWC indicates that four WCs have been released, the host 101 may add the value of the WC counter 102 by "+4" from "0" to "4". .

이후에, 호스트(101)는 갱신된 WC 카운터(102)를 기반으로 쓰기 동작을 수행할 수 있다. 예를 들어, 호스트(101)는 WC 카운터(102)를 기반으로 4개의 쓰기 커맨드(WR5~WR8) 및 각각에 대응하는 4개의 쓰기 데이터(D5~D8)를 컨트롤러(110)로 전송할 수 있고, 앞서 설명된 바와 유사하게, 쓰기 커맨드(WR5~WR8) 각각을 전송할 때마다, WC 카운터(102)를 갱신(즉, "-1"만큼씩 감산)할 수 있다. Thereafter, the host 101 may perform a write operation based on the updated WC counter 102. For example, the host 101 may transmit four write commands WR5 to WR8 and four write data D5 to D8 corresponding to the controller 110 based on the WC counter 102. As described above, each time the write commands WR5 to WR8 are transmitted, the WC counter 102 can be updated (that is, subtracted by "-1").

예시적으로, WC 해제 정보(RWC)는 도 5에 도시된 바와 같이, 비동기 방식으로 제공될 수 있다. 또는 비록 도면에 도시되지는 않았으나, WC 해제 정보(RWC)는 특정 주기마다 호스트(101)로 제공될 수 있다. In exemplary embodiments, the WC release information RWC may be provided in an asynchronous manner, as shown in FIG. 5. Alternatively, although not shown in the drawing, the WC release information RWC may be provided to the host 101 at a specific period.

예시적으로, 표 1은 WC 카운터(102)의 갱신 방법을 보여준다. By way of example, Table 1 shows an update method of the WC counter 102.

쓰기 커맨드의 발행 횟수(m)Number of write commands issued (m) WC의 반환량(n)Return of WC (n) WC의 카운터 변화량WC counter change -m-m +n+ n

표 1을 참조하면, WC 카운터(102)는 호스트(101)의 쓰기 커맨드 발행 횟수(m)만큼 감소될 수 있다. 이는 호스트(101)의 쓰기 커맨드들의 개수에 따라 컨트롤러(110)의 데이터 버퍼(111)의 WC들이 사용되기 때문이다. WC 카운터(102)는 WC들의 반환량(n)(다시 말해서, 해제된 WC들의 개수)만큼 증가될 수 있다. 이는 해제된 WC들이 호스트(101)에 의해 사용 가능하기 때문이다. 상술된 바와 같이, 호스트(101)는 컨트롤러(110)의 데이터 버퍼(111)의 가용한 WC의 개수를 관리할 수 있다. 또한 컨트롤러(110)는 해제된 WC들의 개수를 가리키는 WC 해제 정보(RWC)를 호스트(101)로 제공할 수 있고, 호스트(101)는 수신된 WC 해제 정보(RWC)를 기반으로 WC 카운터(102)를 갱신할 수 있다. 따라서, 호스트(101)의 쓰기 동작 성능이 향상된다.Referring to Table 1, the WC counter 102 may be decremented by the number of write commands issued by the host 101 (m). This is because the WCs of the data buffer 111 of the controller 110 are used according to the number of write commands of the host 101. The WC counter 102 may be incremented by the return amount n of WCs (ie, the number of released WCs). This is because the released WCs are available by the host 101. As described above, the host 101 may manage the number of available WCs of the data buffer 111 of the controller 110. In addition, the controller 110 may provide the host 101 with WC release information RWC indicating the number of released WCs, and the host 101 may provide a WC counter 102 based on the received WC release information RWC. ) Can be updated. Therefore, the write operation performance of the host 101 is improved.

다음으로, 도 1 및 도 5b를 참조하면, WC 반환부(112)는 WC이 해제될 때마다, WC 해제 정보를 누적시킬 수 있다. 예를 들어, 도 5b의 제1 시점(t1)에서, 제1 데이터(D1)가 램 장치(120)로 이동할 수 있다. 이 경우, 제1 데이터(D1)가 저장된 WC이 해제될 것이다. 마찬가지로, 제2 내지 제4 시점들(t2, t3, t4) 각각에서, 제2 내지 제4 데이터(D2, D3, D4) 각각이 컨트롤러(110)의 동작에 따라 WC으로부터 램 장치(120)로 이동할 수 있다. 이 경우, WC 반환부(112)는 제1 내지 제4 시점들(t1, t2, t3, t4) 각각에서, WC 반환 정보(RWC)를 누적할 수 있다. 결과적으로, 제4 시점(t4)에서 WC 반환 정보(RWC)는 "4"의 값을 가질 것이다. 이는 해제된 WC들의 개수가 4개임을 가리킨다.Next, referring to FIGS. 1 and 5B, the WC returning unit 112 may accumulate WC release information each time the WC is released. For example, at the first time point t1 of FIG. 5B, the first data D1 may move to the RAM device 120. In this case, the WC in which the first data D1 is stored will be released. Similarly, at each of the second to fourth time points t2, t3, and t4, each of the second to fourth data D2, D3, and D4 is transferred from the WC to the RAM device 120 according to the operation of the controller 110. I can move it. In this case, the WC returning unit 112 may accumulate WC return information RWC at each of the first to fourth time points t1, t2, t3, and t4. As a result, the WC return information RWC will have a value of "4" at the fourth time point t4. This indicates that the number of released WCs is four.

이 후에, 호스트(101)는 반환 커맨드(RCM)를 컨트롤러(110)로 전송할 수 있다. 예시적으로, 반환 커맨드(RCM)는 컨트롤러(110)로부터의 별도의 신호(예를 들어, 반환 신호) 없이 호스트(101)에서 자체적으로 발행될 수 있다.Thereafter, the host 101 may transmit a return command RCM to the controller 110. In exemplary embodiments, the return command RCM may be issued by the host 101 by itself without a separate signal (eg, a return signal) from the controller 110.

컨트롤러(110)는 반환 커맨드(RCM)에 응답하여 WC 해제 정보(RWC)를 호스트(101)로 전송할 수 있다. WC 해제 정보(RWC)가 "4"인 경우, WC 반환부(112)에 누적된 값은 "-4"만큼 감산될 것이다. 즉, WC 해제 정보(RWC)가 호스트(101)로 전송된 경우, WC 반환부(112)에 누적된 값이 리셋될 수 있다. The controller 110 may transmit the WC release information RWC to the host 101 in response to the return command RCM. When the WC release information RWC is "4", the value accumulated in the WC returning unit 112 will be subtracted by "-4". That is, when the WC release information RWC is transmitted to the host 101, the value accumulated in the WC returning unit 112 may be reset.

호스트(101)는 수신된 WC 반환 정보(RWC)를 기반으로 WC 카운터(102)를 갱신할 수 있다. 이 후에 호스트(101)는 제5 내지 제8 쓰기 커맨드들(WR5~WR8) 및 각각에 대응하는 제5 내지 제8 데이터(D5~D8)를 컨트롤러(110)로 전송하고, WC 카운터(102)를 갱신할 수 있다. The host 101 may update the WC counter 102 based on the received WC return information RWC. Thereafter, the host 101 transmits the fifth to eighth write commands WR5 to WR8 and the fifth to eighth data D5 to D8 corresponding to the controller 110, and the WC counter 102. Can be updated.

다음으로, 도 1 및 도 5c를 참조하면, 호스트(101)는 읽기 데이터를 읽기 위한 읽기 커맨드(RDC)를 컨트롤러(110)로 전송할 수 있다. 컨트롤러(110)는 읽기 커맨드(RDC)에 응답하여, 호스트(101)로 읽기 데이터(RD)를 전송할 수 있다. 이 때, 컨트롤러(110)는 누적된 WC 해제 정보(RWC)를 읽기 데이터(RD)와 함께 전송할 수 있다. 예를 들어, 컨트롤러(110)는 WC 해제 정보(RWC) 및 읽기 데이터(RD)가 포함된 데이터 패킷을 호스트(101)로 전송할 수 있다.Next, referring to FIGS. 1 and 5C, the host 101 may transmit a read command RDC for reading read data to the controller 110. The controller 110 may transmit read data RD to the host 101 in response to the read command RDC. At this time, the controller 110 may transmit the accumulated WC release information RWC together with the read data RD. For example, the controller 110 may transmit a data packet including WC release information RWC and read data RD to the host 101.

호스트(101)는 수신된 WC 해제 정보(RWC)를 기반으로 WC 카운터(102)를 갱신할 수 있다. 나머지 동작은 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.The host 101 may update the WC counter 102 based on the received WC release information RWC. Since the rest of the operation has been described above, a detailed description thereof will be omitted.

도 6은 본 발명의 실시 예에 따른 컴퓨팅 시스템(20)을 보여주는 블록도이다. 도 6을 참조하면, 컴퓨팅 시스템(20)은 호스트(201) 및 메모리 모듈(200)을 포함할 수 있다. 메모리 모듈(200)은 컨트롤러(210), 램 장치(220), 불휘발성 메모리 장치(230), 및 백업 전원(240)을 포함할 수 있다. 호스트(201), 메모리 모듈(200), 컨트롤러(210), 램 장치(220), 및 불휘발성 메모리 장치(230)는 앞서 설명되었으므로 이에 대한 상세한 설명은 생략된다.6 is a block diagram illustrating a computing system 20 according to an embodiment of the present invention. Referring to FIG. 6, the computing system 20 may include a host 201 and a memory module 200. The memory module 200 may include a controller 210, a RAM device 220, a nonvolatile memory device 230, and a backup power source 240. Since the host 201, the memory module 200, the controller 210, the RAM device 220, and the nonvolatile memory device 230 have been described above, a detailed description thereof will be omitted.

램 장치(220)는 제1 및 제2 영역들(221, 222)을 포함할 수 있다. 제1 및 제2 영역들(221, 222)은 데이터를 저장하기 위한 저장 공간일 수 있다. 메모리 모듈(200)로 전원 공급이 중단된 경우, 제1 영역(221)에 저장된 데이터가 소실될 수 있다. 반면에, 메모리 모듈(200)로 전원 공급이 중단되더라도, 제2 영역(222)에 저장된 데이터는 유지될 수 있다.The ram device 220 may include first and second regions 221 and 222. The first and second regions 221 and 222 may be storage spaces for storing data. When the power supply to the memory module 200 is stopped, data stored in the first area 221 may be lost. On the other hand, even when the power supply to the memory module 200 is stopped, the data stored in the second area 222 may be maintained.

예를 들어, 백업 전원(240)은 메모리 모듈(200)로의 전원 공급이 중단된 경우(즉, 서든 파워 오프(SPO) 등) 메모리 모듈(200)로 보조 전원을 공급할 수 있다. 전원 공급이 중단된 경우, 제2 영역(222)에 저장된 데이터는 백업 전원(240)으로부터의 보조 전원을 사용하여 데이터를 유지할 수 있다. 또는 전원 공급이 중단된 경우, 백업 전원(240)으로부터의 보조 전원을 사용하여 제2 영역(222)에 저장된 데이터가 불휘발성 메모리 장치(230)로 플러쉬(flush)될 수 있다. 즉, 전원 공급이 중단되더라도, 제2 영역(222)에 저장된 데이터는 백업 전원(240)을 사용하여 유지될 수 있다. 즉, 램 장치(220) 중 일부 영역(즉, 제2 영역(222))은 전원 백업형 저장 영역(power backed storage region)일 수 있다. For example, the backup power supply 240 may supply auxiliary power to the memory module 200 when the power supply to the memory module 200 is stopped (ie, sudden power off (SPO)). When the power supply is stopped, the data stored in the second area 222 may maintain the data by using the auxiliary power from the backup power source 240. Alternatively, when the power supply is interrupted, data stored in the second area 222 may be flushed to the nonvolatile memory device 230 using the auxiliary power from the backup power supply 240. That is, even if the power supply is stopped, the data stored in the second area 222 may be maintained using the backup power source 240. In other words, a portion of the RAM device 220 (ie, the second region 222) may be a power backed storage region.

호스트(201)는 WC 카운터(202) 및 PC 카운터(203)를 포함할 수 있다. 컨트롤러(210)는 데이터 버퍼(211), WC 반환부(212), 및 PC(PC; Persist Credit) 반환부(213)를 포함할 수 있다. WC 카운터(202), 데이터 버퍼(211) 및 WC 반환부(212)는 앞서 설명되었으므로 이에 대한 상세한 설명은 생략된다.The host 201 may include a WC counter 202 and a PC counter 203. The controller 210 may include a data buffer 211, a WC returner 212, and a PC (Persist Credit) returner 213. Since the WC counter 202, the data buffer 211, and the WC return unit 212 have been described above, a detailed description thereof will be omitted.

PC 카운터(203)는 가용한 PC의 개수를 관리할 수 있다. 예를 들어, 램 버퍼(220)의 제2 영역(221)은 복수의 PC들(PC)로 구분될 수 있다. PC(PC; Persist Credit)은 전원 공급과 무관하게 데이터를 저장할 수 있는 단위 저장 공간을 가리킬 수 있다. 즉, 램 버퍼(220)의 제2 영역(221)이 512KB이고, 하나의 PC의 단위가 4KB인 경우, 램 버퍼(220)의 제2 영역(221)은 128개의 PC들을 포함할 수 있다. 예시적으로, 램 장치(211)의 하나의 PC는 데이터 버퍼(211)의 하나의 WC과 동일한 크기를 가질 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The PC counter 203 may manage the number of available PCs. For example, the second area 221 of the RAM buffer 220 may be divided into a plurality of PCs PC. A Persist Credit (PC) may refer to a unit storage space capable of storing data regardless of a power supply. That is, when the second region 221 of the RAM buffer 220 is 512 KB and one PC has a unit of 4 KB, the second region 221 of the RAM buffer 220 may include 128 PCs. For example, one PC of the RAM device 211 may have the same size as one WC of the data buffer 211, but the scope of the present invention is not limited thereto.

예시적인 실시 예에서, 특정한 타입의 쓰기 동작에서, 호스트(201)는 PC을 사용하여 쓰기 데이터를 컨트롤러(210)로 전송할 수 있다. 예를 들어, 호스트(201)는 퍼시스트 쓰기 동작(persist write operation)을 수행할 수 있다. 퍼시스트 쓰기 동작은 전원 공급이 중단되더라도 호스트(201)로부터 제공된 쓰기 데이터의 유지를 보장하는 동작을 가리킨다. 다시 말해서, 전원 공급이 중단되더라도, 퍼시스트 쓰기 동작에 의해 메모리 모듈(200)에 기입된 데이터는 유지되어야 한다.In an example embodiment, in a particular type of write operation, the host 201 may transmit write data to the controller 210 using a PC. For example, the host 201 may perform a persistent write operation. The passive write operation refers to an operation of ensuring the maintenance of write data provided from the host 201 even when power supply is interrupted. In other words, even if the power supply is interrupted, the data written to the memory module 200 by the write write operation should be maintained.

앞서 설명된 바와 같이, 램 장치(220)의 제2 영역(222)은 전원 공급이 중단되더라도 데이터가 유지되는 저장 영역을 가리킨다. 따라서, 퍼시스트 쓰기 동작에서, 호스트(201)는 램 장치(220)의 제2 영역(222)을 사용하여 쓰기 데이터를 기입할 수 있다. 이 경우, 호스트(220)는 앞서 설명된 WC의 사용과 유사하게, 램 장치(220)의 PC을 사용하여 쓰기 데이터를 전송할 수 있다.As described above, the second area 222 of the RAM device 220 indicates a storage area where data is maintained even when power supply is interrupted. Accordingly, in the write operation, the host 201 may write the write data using the second area 222 of the RAM device 220. In this case, the host 220 may transmit the write data using the PC of the RAM device 220 similarly to the use of the WC described above.

호스트(201)는 퍼시스트 쓰기 동작을 수행한 경우, 쓰기 데이터의 크기 또는 퍼시스트 쓰기 커맨드의 개수를 기반으로 PC 카운터(203)를 갱신(또는 감소)할 수 있다. When the host 201 performs a write operation, the host 201 may update (or decrease) the PC counter 203 based on the size of write data or the number of write write commands.

예시적인 실시 예에서, 퍼시스트 쓰기 동작에서, 호스트(201)로부터 수신된 쓰기 데이터는 데이터 버퍼(211)의 WC에 먼저 저장되고, 이후에, 제2 영역(222)의 PC으로 전달될 수 있다. 즉, 호스트(201)는 WC 및 PC 모두를 사용하여 퍼시스트 쓰기 동작을 수행할 수 있다. 이 경우, 호스트(201)는 쓰기 데이터의 크기 또는 퍼시스트 쓰기 커맨드의 개수를 기반으로 WC 카운터(202) 및 PC 카운터(203)를 갱신(또는 감소)할 수 있다. In an exemplary embodiment, in a write write operation, write data received from the host 201 may be first stored in the WC of the data buffer 211, and then transferred to the PC of the second region 222. . That is, the host 201 may perform a write process using both the WC and the PC. In this case, the host 201 may update (or decrement) the WC counter 202 and the PC counter 203 based on the size of the write data or the number of the write write commands.

컨트롤러(210)의 PC 반환부(213)는 램 장치(220)의 제2 영역(222)의 PC(PC; Persist Credit) 해제 정보(RPC)를 호스트(201)로 제공할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 퍼시스트 쓰기 동작에서, 램 장치(220)의 제2 영역(222)의 PC들은 호스트(201)에 의해 사용될 수 있다. 이후에, 컨트롤러(210)의 동작에 따라 제2 영역(222)에 저장된 특정 데이터가 불휘발성 메모리 장치(230)로 전달됨으로써, 특정 데이터가 저장된 PC이 해제될 수 있다. PC 반환부(213)는 해제된 PC들의 개수에 대한 정보를 가리키는 PC 해제 정보(RPC)를 호스트(201)로 제공할 수 있다. 예시적으로, PC 해제 정보(RPC)는 WC 해제 정보(RWC)와 유사하게, 비동기 방식(asynchronous scheme)으로 제공될 수 있다. 또는 PC 해제 정보(RPC)는 WC 해제 정보(RWC)와 유사하게, 호스트(101)의 반환 커맨드 또는 읽기 커맨드에 의해 호스트(101)로 제공될 수 있다. The PC return unit 213 of the controller 210 may provide the PC (Persist Credit) release information (RPC) of the second area 222 of the RAM device 220 to the host 201. For example, as described above, in a write write operation, the PCs of the second region 222 of the RAM device 220 may be used by the host 201. Thereafter, according to the operation of the controller 210, specific data stored in the second area 222 is transferred to the nonvolatile memory device 230, whereby the PC in which the specific data is stored may be released. The PC return unit 213 may provide the PC release information (RPC) indicating the information about the number of released PCs to the host 201. In exemplary embodiments, the PC release information RPC may be provided in an asynchronous scheme, similar to the WC release information RWC. Alternatively, the PC release information RPC may be provided to the host 101 by a return command or a read command of the host 101 similarly to the WC release information RWC.

호스트(201)는 PC 해제 정보(RPC)를 기반으로 PC 카운터(203)를 갱신할 수 있다. 예를 들어, PC 해제 정보(RPC)는 해제된 PC들의 개수에 대한 정보를 포함할 수 있다. 호스트(201)는 해제된 PC들의 개수만큼 PC 카운터(203)의 값을 가산할 수 있다. The host 201 may update the PC counter 203 based on the PC release information (RPC). For example, the PC release information (RPC) may include information on the number of released PCs. The host 201 may add the value of the PC counter 203 by the number of released PCs.

상술된 바와 같이, 호스트(201)는 WC 카운터(202) 및 PC 카운터(203)를 기반으로 메모리 모듈(200)의 사용 가능한 WC들 및 사용 가능한 PC들의 개수를 관리할 수 있다.As described above, the host 201 may manage the number of available WCs and available PCs of the memory module 200 based on the WC counter 202 and the PC counter 203.

비록 WC 반환부(212) 및 PC 반환부(213)가 서로 독립적인 구성으로서 도시되어 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. WC 반환부(212), PC 반환부(213), 또는 그것들의 조합은 버퍼 반환부로서 하나의 하드웨어 구성 또는 하나의 소프트웨어 구성으로서 구현될 수 있다. 소프트웨어 형태로 구현된 WC 반환부(212) 및 PC 반환부(213)는 별도의 프로세서에 의해 구동될 수 있다. Although the WC returning unit 212 and the PC returning unit 213 are shown as independent configurations, the scope of the present invention is not limited thereto. The WC return unit 212, the PC return unit 213, or a combination thereof may be implemented as one hardware configuration or one software configuration as a buffer return unit. The WC returner 212 and the PC returner 213 implemented in software may be driven by separate processors.

도 7a 내지 도 7d 및 도 8은 도 6의 호스트(201) 및 컨트롤러(210)의 동작을 설명하기 위한 도면들이다. 간결한 설명을 위하여, 각 동작에서 불필요한 구성 요소들에 대한 상세한 설명은 생략된다.7A to 7D and 8 are diagrams for describing operations of the host 201 and the controller 210 of FIG. 6. For the sake of brevity, a detailed description of unnecessary components in each operation is omitted.

도 7a 내지 도 7d 및 도 8을 참조하면, 컴퓨팅 시스템(20)은 호스트(201) 및 메모리 모듈(200)을 포함할 수 있다. 호스트(201)는 WC 카운터(202) 및 PC 카운터(203)를 포함할 수 있다. 메모리 모듈(200)은 컨트롤러(210), 램 장치(220), 및 불휘발성 메모리 장치(230)를 포함할 수 있다. 컨트롤러(210)는 데이터 버퍼(211), WC 반환부(212), 및 PC 반환부(213)를 포함할 수 있다. 각 구성 요소들은 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다.7A-7D and 8, the computing system 20 may include a host 201 and a memory module 200. The host 201 may include a WC counter 202 and a PC counter 203. The memory module 200 may include a controller 210, a RAM device 220, and a nonvolatile memory device 230. The controller 210 may include a data buffer 211, a WC return unit 212, and a PC return unit 213. Since each component has been described above, a detailed description thereof will be omitted.

설명의 편의를 위하여, 데이터 버퍼(211)는 8개의 WC들(즉, WC1~WC8)을 포함하고, 램 장치(220)의 제2 영역(222)은 4개의 PC들(PC1~PC4)을 포함하는 것으로 가정한다. 즉, 도 7a에 도시된 바와 같이, 초기 상태에서, 데이터 버퍼(211)에 포함된 WC들(WC1~WC8) 및 램 장치(220)의 제2 영역(222)에 포함된 PC들(PC1~PC4)은 모두 사용 가능한 상태(즉, 해제된 상태이거나 또는 데이터를 저장하지 않은 상태)이므로, WC 카운터(202)의 값은 "8"이고, PC 카운터(203)의 값은 "4"일 것이다. For convenience of description, the data buffer 211 includes eight WCs (ie, WC1 to WC8), and the second area 222 of the RAM device 220 may include four PCs PC1 to PC4. It is assumed to be included. That is, as shown in FIG. 7A, in the initial state, the PCs PC1 ˜ included in the second regions 222 of the RAM device 220 and the WCs WC1 ˜WC8 included in the data buffer 211. PC4) is all available (ie, released or not storing data), so the value of WC counter 202 will be "8" and the value of PC counter 203 will be "4". .

이후에, 도 7b에 도시된 바와 같이, 호스트(201)는 제1 및 제2 데이터(D1, D2), 및 제1 및 제2 퍼시스트 데이터(PD1, PD2)에 대한 쓰기 동작들을 수행할 수 있다. 제1 및 제2 데이터(D1, D2)에 대한 쓰기 동작들은 일반 쓰기 동작들(normal write operations)이고, 제1 및 제2 퍼시스트 데이터(PD1, PD2)에 대한 쓰기 동작들은 퍼시스트 쓰기 동작들(persist write operations)인 것으로 가정한다. 즉, 제1 및 제2 퍼시스트 데이터(PD1, PD2)는 램 장치(220)의 제2 영역(222) 또는 불휘발성 메모리 장치(230)에 저장되어야 할 것이다. Subsequently, as shown in FIG. 7B, the host 201 may perform write operations on the first and second data D1 and D2 and the first and second persisted data PD1 and PD2. have. Write operations on the first and second data D1 and D2 are normal write operations, and write operations on the first and second persistent data PD1 and PD2 are persistent write operations. Assume that it is (persist write operations). That is, the first and second pass data PD1 and PD2 may be stored in the second region 222 or the nonvolatile memory device 230 of the RAM device 220.

다시 말해서, 호스트(201)는 2개의 일반 쓰기 커맨드들 및 2개의 퍼시스트 쓰기 커맨드들을 컨트롤러(210)로 전송할 수 있다. 이 경우, 호스트(201)는 2개의 일반 쓰기 커맨드들을 기반으로 WC 카운터(202)의 값을 감산하고, 2개의 퍼시스트 쓰기 커맨드들을 기반으로 WC 카운터(202)의 값 및 PC 카운터(203)의 값을 감산할 수 있다. 예를 들어, 2개의 일반 쓰기 커맨드들이 컨트롤러(210)로 제공되었으므로, 컨트롤러(210)는 WC 카운터(202)의 값을 "-2"만큼 감산할 수 있다.In other words, the host 201 may send two general write commands and two persistent write commands to the controller 210. In this case, the host 201 subtracts the value of the WC counter 202 based on two general write commands, and the value of the WC counter 202 and the value of the PC counter 203 based on two persistent write commands. You can subtract the value. For example, since two general write commands have been provided to the controller 210, the controller 210 can subtract the value of the WC counter 202 by "-2".

반면에, 2개의 퍼시스트 쓰기 커맨드들이 컨트롤러(210)로 제공되었으므로, 컨트롤러(210)는 WC 카운터(202)의 값 및 PC 카운터(203)의 값을 각각 "-2"만큼 감산할 수 있다. 이는 일반 쓰기 커맨드의 경우, 데이터 버퍼(211)의 WC들을 사용하여 데이터 전송이 가능하나, 퍼시스트 쓰기 커맨드의 경우, 데이터의 유지를 위하여, 램 장치(220)의 제2 영역(222)의 PC들을 사용하여야 하기 때문이다. On the other hand, since the two write write commands are provided to the controller 210, the controller 210 may subtract the value of the WC counter 202 and the value of the PC counter 203 by "-2", respectively. In the case of a general write command, data can be transferred using the WCs of the data buffer 211. However, in the case of a write write command, a PC in the second area 222 of the RAM device 220 is used to maintain data. Because they must be used.

결과적으로, 2개의 일반 쓰기 커맨드들 및 2개의 퍼시스트 쓰기 커맨드들이 컨트롤러(210)로 전송된 경우, 호스트(201)는 WC 카운터(202)의 값을 "-4"만큼 감산할 수 있고, PC 카운터(203)의 값을 "-2"만큼 감산할 수 있다. 이에 따라, 도 7b에 도시된 바와 같이, WC 카운터(202)의 값은 "4"로 설정되고, PC 카운터(203)의 값은 "2"로 설정될 것이다. As a result, when two general write commands and two persistent write commands are sent to the controller 210, the host 201 may subtract the value of the WC counter 202 by "-4", and the PC The value of the counter 203 can be subtracted by "-2". Accordingly, as shown in FIG. 7B, the value of the WC counter 202 will be set to "4" and the value of the PC counter 203 will be set to "2".

예시적으로, 호스트(201)로부터 수신된 제1 및 제2 퍼시스트 데이터(PD1, PD2) 및 제1 및 제2 데이터(D1, D2)는 제1 내지 제4 WC들(WC1~WC4)에 먼저 저장될 수 있다. 이후에, 컨트롤러(210)의 동작에 의해, 제1 내지 제4 WC들(WC1~WC4) 중 일부 WC들이 해제될 수 있다. In exemplary embodiments, the first and second pass data PD1 and PD2 and the first and second data D1 and D2 received from the host 201 may be transferred to the first to fourth WCs WC1 to WC4. May be stored first. Subsequently, some of the first to fourth WCs WC1 to WC4 may be released by the operation of the controller 210.

예를 들어, 도 7c에 도시된 바와 같이, 컨트롤러(210)의 동작에 따라, 제3 및 제4 WC들(WC3, WC4)에 저장된 제1 및 제2 데이터(D1, D2)가 램 장치(220)로 전달될 수 있다. 이 경우, 앞서 설명된 바와 같이, 제3 및 제4 WC들(WC3, WC4)이 해제될 수 있다. For example, as illustrated in FIG. 7C, according to the operation of the controller 210, the first and second data D1 and D2 stored in the third and fourth WCs WC3 and WC4 may be stored in the RAM device ( 220). In this case, as described above, the third and fourth WCs WC3 and WC4 may be released.

WC 반환부(212)는 해제된 WC들(WC3, WC4)의 개수에 대한 WC 해제 정보(RWC)를 호스트(201)로 제공할 수 있고, 호스트(201)는 수신된 WC 해제 정보(RWC)를 기반으로 WC 카운터(202)를 갱신할 수 있다. 예를 들어, 상술된 예에서, WC 해제 정보(RWC)는 "+2"의 값과 대응될 수 있다. 호스트(201)는 수신된 WC 해제 정보(RWC)를 기반으로 WC 카운터(202)의 값을 "+2"만큼 증가시킬 수 있다. 이 경우, WC 카운터(202)의 값은 "6"일 것이다. The WC returning unit 212 may provide the host 201 with WC release information RWC for the number of released WCs WC3 and WC4, and the host 201 may receive the received WC release information RWC. Based on the WC counter 202 may be updated. For example, in the example described above, the WC release information RWC may correspond to a value of "+2". The host 201 may increase the value of the WC counter 202 by "+2" based on the received WC release information RWC. In this case, the value of the WC counter 202 will be "6".

이후에, 컨트롤러(210)의 동작에 의해, 제1 및 제2 WC들(WC1, WC2)에 저장된 제1 및 제2 퍼시스트 데이터(PD1, PD2)가 제2 영역(222)의 제1 및 제2 PC들(PC1, PC2)에 저장되고, 제1 및 제2 PC들(PC1, PC2)에 저장된 제1 및 제2 쓰기 데이터(DT1, DT2)가 불휘발성 메모리 장치(230)에 저장될 수 있다. 이 경우, 제1 및 제2 PC들(PC1, PC2)이 해제될 수 있다.Thereafter, by the operation of the controller 210, the first and second pass data PD1 and PD2 stored in the first and second WCs WC1 and WC2 are stored in the first and second regions of the second area 222. The first and second write data DT1 and DT2 stored in the second PCs PC1 and PC2 and stored in the first and second PCs PC1 and PC2 may be stored in the nonvolatile memory device 230. Can be. In this case, the first and second PCs PC1 and PC2 may be released.

예를 들어, 제1 및 제2 퍼시스트 데이터(PD1, PD2)의 지속성(persistence)이 보장되기 위하여, 제1 및 제2 퍼시스트 데이터(PD1, PD2)는 제1 및 제2 PC들(PC1, PC2)을 사용하여 호스트(201)로부터 수신될 수 있다. 즉, 제1 및 제2 퍼시스트 데이터(PD1, PD2)는 제1 및 제2 WC들(WC1, WC2)에 우선 저장되고, 이후에 제1 및 제2 PC들(PC1, PC2)로 전달될 수 있다. For example, in order to ensure the persistence of the first and second persistent data PD1 and PD2, the first and second persistent data PD1 and PD2 may be connected to the first and second PCs PC1. , PC2 may be received from the host 201. That is, the first and second pass data PD1 and PD2 are first stored in the first and second WCs WC1 and WC2 and then transferred to the first and second PCs PC1 and PC2. Can be.

이후에, 제1 및 제2 PC들(PC1, PC2)에 저장된 제1 및 제2 퍼시스트 데이터(PD1, PD2)가 불휘발성 메모리 장치(230)로 전달될 수 있다. 이 경우, 제1 및 제2 퍼시스트 데이터(PD1, PD2)가 불휘발성 메모리 장치(230)로 전달되었으므로, 제1 및 제2 퍼시스트 데이터(PD1, PD2)가 저장된 제1 및 제2 PC들(PC1, PC2)은 호스트(201)에 의해 사용 가능한 상태가 될 것이다. 즉, 제1 및 제2 퍼시스트 데이터(PD1, PD2)가 불휘발성 메모리 장치(230)로 전달됨으로써, 제1 및 제2 PC들(PC1, PC2)이 해제될 수 있다. Thereafter, the first and second pass data PD1 and PD2 stored in the first and second PCs PC1 and PC2 may be transferred to the nonvolatile memory device 230. In this case, since the first and second pass data PD1 and PD2 are transferred to the nonvolatile memory device 230, the first and second PCs in which the first and second pass data PD1 and PD2 are stored. (PC1, PC2) will be available to use by the host 201. That is, the first and second PCs PD1 and PD2 may be transferred to the nonvolatile memory device 230 so that the first and second PCs PC1 and PC2 may be released.

PC 반환부(213)는 해제된 PC들의 개수에 대한 PC 해제 정보(RPC)를 호스트(201)로 제공할 수 있고, 호스트(201)는 수신된 PC 해제 정보(PWC)를 기반으로 WC 카운터(202) 및 PC 카운터(203)를 갱신할 수 있다. 예를 들어, 도 7c에 도시된 바와 같이, 2개의 PC들(PC1, PC2)이 해제된 경우, PC 해제 정보(RPC)는 "+2"의 값과 대응될 수 있다. 이 경우, 호스트(201)는 PC 해제 정보(RPC)에 응답하여, WC 카운터(202)의 값 및 PC 카운터(203)의 값을 각각 "+2"만큼 증가시킬 수 있다.The PC return unit 213 may provide the PC release information (RPC) for the number of released PCs to the host 201, and the host 201 may determine a WC counter based on the received PC release information (PWC). 202 and the PC counter 203 can be updated. For example, as shown in FIG. 7C, when two PCs PC1 and PC2 are released, the PC release information RPC may correspond to a value of "+2". In this case, the host 201 may increase the value of the WC counter 202 and the value of the PC counter 203 by "+2" in response to the PC release information RPC.

예시적으로, 퍼시스트 쓰기 커맨드에 대한 퍼시스트 데이터가 WC 및 PC 모두에 저장되는 것은 아닐 수 있다. 예를 들어, 도 10에 도시되 바와 같이, 퍼시스트 쓰기 커맨드에 대한 제1 및 제2 퍼시스트 데이터(PD1, PD2)가 제1 및 제2 WC들(WC1, WC2)에 저장될 수 있다. 제1 및 제2 WC들(WC1, WC2)에 저장된 제1 및 제2 퍼시스트 데이터(PD1, PD2)는 PC들(PC1, PC2)을 경유하지 않고, 불휘발성 메모리 장치(230)로 전달될 수 있다. 이 경우, 제1 및 제2 쓰기 데이터(DT1, DT2)를 위하여 사용된 제1 및 제2 PC들(PC1, PC2)이 해제된 것으로 판별될 수 있다.In exemplary embodiments, the assist data for the write pass command may not be stored in both the WC and the PC. For example, as shown in FIG. 10, the first and second pass data PD1 and PD2 for the write write command may be stored in the first and second WCs WC1 and WC2. The first and second pass data PD1 and PD2 stored in the first and second WCs WC1 and WC2 may be transferred to the nonvolatile memory device 230 without passing through the PCs PC1 and PC2. Can be. In this case, it may be determined that the first and second PCs PC1 and PC2 used for the first and second write data DT1 and DT2 are released.

즉, PC 반환부(213)는 퍼시스트 쓰기 커맨드에 대한 쓰기 데이터가 불휘발성 메모리 장치(230)에 저장된 경우, 퍼시스트 쓰기 커맨드에 대한 쓰기 데이터와 대응하는 PC들이 해제된 것으로 판별할 수 있고, PC 반환부(213)는 해제된 PC들의 개수에 대한 PC 해제 정보(RPC)를 호스트(201)로 전송할 수 있다. 호스트(201)는 수신된 PC 해제 정보(RPC)를 기반으로 WC 카운터(202) 및 PC 카운터(203)를 갱신할 수 있다.That is, when the write data for the persistent write command is stored in the nonvolatile memory device 230, the PC return unit 213 may determine that the PCs corresponding to the write data for the persistent write command are released. The PC return unit 213 may transmit PC release information (RPC) for the number of released PCs to the host 201. The host 201 may update the WC counter 202 and the PC counter 203 based on the received PC release information (RPC).

표 2는 각 동작에 따른 WC 카운터(202) 및 PC 카운터(203)의 갱신 방법을 보여준다.Table 2 shows how to update the WC counter 202 and the PC counter 203 according to each operation.

일반 쓰기 커맨드
발행 횟수(m)
Normal write command
Number of publications (m)
퍼시스트 쓰기 커맨드
발행 횟수(i)
Persistent Write Command
Issue count (i)
WC의
반환 개수 (n)
WC
Return count (n)
PC의
반환 개수 (k)
PC
Return count (k)
WC 카운터의 변화량WC counter change -m-m -i-i +n+ n +k+ k PC 카운터의 변화량PC counter change 00 -i-i 00 +k+ k

호스트(201)는 표 2에 기재된 방식을 기반으로 WC 카운터(202) 및 PC 카운터(203)를 갱신할 수 있다. 예를 들어, 일반 쓰기 커맨드는 데이터 영구성에 대한 보장이 필요 없으므로, PC이 사용되지 않는다. 따라서, 일반 쓰기 커맨드가 m회 발행된 경우, 호스트(201)는 WC 카운터(202)의 값을 -m만큼 감산하고, PC 카운터(203)는 갱신되지 않는다. 퍼시스트 쓰기 커맨드는 데이터 영구성이 보장되어야 하므로, PC들이 사용되며, 데이터 전송을 위하여 WC들이 사용된다. 따라서, 퍼시스트 쓰기 커맨드가 i회 발행된 경우, 호스트(201)는 WC 카운터(202)의 값 및 PC 카운터(203)의 값을 각각 -i만큼 감산한다.컨트롤러(210)로부터 n개의 WC이 반환된 경우, 반환된 WC들은 호스트(201)의 쓰기 데이터 전송에 사용될 수 있으므로, 호스트(201)는 WC 카운터(202)의 값을 +n만큼 가산한다. 컨트롤러(210)로부터 k개의 PC가 반환된 경우, 반환된 PC들은 호스트(201)의 퍼시스트 쓰기 커맨드에 대한 쓰기 데이터의 저장에 사용될 수 있으므로, 호스트(201)는 PC 카운터(203)의 값을 각각 +k만큼 가산한다. The host 201 may update the WC counter 202 and the PC counter 203 based on the scheme described in Table 2. For example, a normal write command does not need a guarantee of data permanence, so no PC is used. Therefore, when the general write command is issued m times, the host 201 subtracts the value of the WC counter 202 by -m, and the PC counter 203 is not updated. Persistent write commands require data persistence, so PCs are used, and WCs are used for data transfer. Therefore, when the write write command is issued i times, the host 201 subtracts the value of the WC counter 202 and the value of the PC counter 203 by -i, respectively. If returned, the returned WCs can be used to transfer write data to the host 201, so the host 201 adds the value of the WC counter 202 by + n. When k PCs are returned from the controller 210, the returned PCs can be used to store write data for the host 201's write write command, so that the host 201 determines the value of the PC counter 203. Add each by + k.

도 9는 도 6의 호스트(201)의 동작 방법을 보여주는 순서도이다. 도 6 및 도 9를 참조하면, S211 단계에서, 호스트(201)는 수행될 쓰기 커맨드가 퍼시스트 쓰기 커맨드인지 판별할 수 있다. 9 is a flowchart illustrating a method of operating the host 201 of FIG. 6. 6 and 9, in step S211, the host 201 may determine whether a write command to be performed is a persistent write command.

수행될 쓰기 커맨드가 지속 커맨드인 경우, S212 단계에서, 호스트(201)는 WC 카운터(202)의 값이 제1 기준치(TH1)보다 큰지, 그리고 PC 카운터(203)의 크기가 제2 기준치(TH2)보다 큰지 판별할 수 있다. 예시적으로, 제1 기준치(TH1) 및 제2 기준치(TH2) 각각은 "0"이거나 또는 동작 모드 퍼시스트 쓰기 커맨드들의 개수에 기반된 양의 정수일 수 있다.If the write command to be performed is a sustain command, in step S212, the host 201 determines whether the value of the WC counter 202 is larger than the first reference value TH1 and the size of the PC counter 203 is the second reference value TH2. Can be determined to be greater than). In exemplary embodiments, each of the first reference value TH1 and the second reference value TH2 may be “0” or a positive integer based on the number of operation mode persistent write commands.

WC 카운터(202)의 값이 제1 기준치(TH1)보다 크지 않거나 또는 PC 카운터(203)의 크기가 제2 기준치(TH2)보다 크지 않은 경우, 호스트(201)는 퍼시스트 쓰기 커맨드에 대한 동작을 수행할 수 없을 것이다. 이는 퍼시스트 쓰기 커맨드를 수행하는데 요구되는 WC 또는 PC이 충분하지 않기 때문이다. 이 경우, S213 단계에서, 호스트(201)는 컨트롤러(214)로부터 PC 해제 정보(RPC)를 읽을 수 있다. PC 해제 정보(RPC)를 수신하는 방법은 앞서 설명된 WC 해제 정보(RWC)를 수신하는 방법과 유사하므로 이에 대한 상세한 설명은 생략된다.When the value of the WC counter 202 is not larger than the first reference value TH1 or the size of the PC counter 203 is not larger than the second reference value TH2, the host 201 may not perform an operation on the assist write command. You will not be able to perform it. This is because there is not enough WC or PC required to perform the write write command. In this case, in step S213, the host 201 may read the PC release information RPC from the controller 214. Since the method of receiving the PC release information (RPC) is similar to the method of receiving the WC release information (RWC) described above, a detailed description thereof will be omitted.

S214 단계에서, 호스트(201)는 PC 해제 정보(RPC)를 기반으로, WC 카운터(202) 및 PC 카운터(203)를 갱신할 수 있다. PC 해제 정보(RPC)에 기반된 WC 카운터(202) 및 PC 카운터(203)의 갱신 방법은 도 7a 내지 도 7d, 도 8, 및 표 2를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다. S214 단계 이후에, 컨트롤러(210)는 S212 단계를 수행할 수 있다. In operation S214, the host 201 may update the WC counter 202 and the PC counter 203 based on the PC release information (RPC). Since the updating method of the WC counter 202 and the PC counter 203 based on the PC release information (RPC) has been described with reference to FIGS. 7A to 7D, 8, and Table 2, a detailed description thereof will be omitted. After operation S214, the controller 210 may perform operation S212.

WC 카운터(202)의 값이 제1 기준치(TH1)보다 크고 PC 카운터(203)의 크기가 제2 기준치(TH2)보다 큰 경우, S215 단계에서, 호스트(201)는 컨트롤러(210)로 쓰기 데이터를 전송하고, WC 카운터(202) 또는 PC 카운터(203)를 갱신할 수 있다. When the value of the WC counter 202 is larger than the first reference value TH1 and the size of the PC counter 203 is larger than the second reference value TH2, in operation S215, the host 201 writes data to the controller 210. Can be sent and the WC counter 202 or the PC counter 203 can be updated.

S211 단계의 판별 결과가 퍼시스트 쓰기 커맨드가 아님을 가리키는 경우, 호스트(201)는 S216 단계 내지 S218 단계의 동작들을 수행할 수 있다. S216 단계 내지 S218 단계의 동작들은 도 3의 S111 단계 내지 S113 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.When the determination result of step S211 indicates that the write command is not a write command, the host 201 may perform operations of steps S216 to S218. Operations of steps S216 to S218 are similar to those of steps S111 to S113 of FIG. 3, and thus a detailed description thereof will be omitted.

도 10은 도 6의 메모리 모듈(200)의 동작 방법을 보여주는 순서도이다. 도 6 및 도 10을 참조하면, S221 단계에서, 메모리 모듈(200)은 호스트(101)로부터 수신된 커맨드가 퍼시스트 쓰기 커맨드인지 판별할 수 있다. 수신된 커맨드가 퍼시스트 쓰기 커맨드가 아닌 경우(즉, 일발 쓰기 커맨드인 경우), 메모리 모듈(200)은 S221 단계 내지 S223 단계의 동작들을 수행할 수 있다. S221 단계 내지 S223 단계의 동작들은 도 4의 S121 단계 내지 S123 단계의 동작들과 유사하므로 이에 대한 상세한 설명은 생략된다. 10 is a flowchart illustrating a method of operating the memory module 200 of FIG. 6. 6 and 10, in step S221, the memory module 200 may determine whether a command received from the host 101 is a write write command. If the received command is not a write command, that is, a write command, the memory module 200 may perform operations of steps S221 to S223. Operations of steps S221 to S223 are similar to those of steps S121 to S123 of FIG. 4, and thus a detailed description thereof will be omitted.

수신된 커맨드가 퍼시스트 쓰기 커맨드인 경우, 메모리 모듈(200)은 S224 단계 내지 S229 단계의 동작들을 수행할 수 있다. S224 단계에서, 메모리 모듈(200)은 호스트(201)로부터 데이터를 수신하고, 수신된 데이터를 WC에 저장할 수 있다.When the received command is a write write command, the memory module 200 may perform operations of steps S224 to S229. In operation S224, the memory module 200 may receive data from the host 201 and store the received data in the WC.

S225 단계에서, 메모리 모듈(200)은 데이터가 WC으로부터 PC으로 이동하였는지 판별할 수 있다. 즉, 메모리 모듈(200)은 WC이 해제되었는지 판별할 수 있다.In operation S225, the memory module 200 may determine whether data is moved from the WC to the PC. That is, the memory module 200 may determine whether the WC is released.

데이터가 WC으로부터 PC으로 이동한 경우, S226 단계에서, 메모리 모듈(200)은 WC 해제 정보(RWC)를 누적시킬 수 있다.When the data moves from the WC to the PC, in step S226, the memory module 200 may accumulate the WC release information RWC.

S227 단계에서, 메모리 모듈(200)은 데이터가 PC으로부터 불휘발성 메모리 장치(230)로 이동하였는지 판별할 수 있다. 즉, 메모리 모듈(200)은 PC이 해제되었는지 판별할 수 있다.In operation S227, the memory module 200 may determine whether data is moved from the PC to the nonvolatile memory device 230. That is, the memory module 200 may determine whether the PC is released.

데이터가 PC으로부터 불휘발성 메모리 장치(230)로 이동한 경우, 메모리 모듈(200)은 PC 해제 정보(RPC)를 누적할 수 있다.When data moves from the PC to the nonvolatile memory device 230, the memory module 200 may accumulate the PC release information RPC.

S229 단계에서, 메모리 모듈(200)은 호스트(201)의 제어에 따라, WC 해제 정보(RWC) 또는 PC 해제 정보(RPC)를 호스트(201)로 전송할 수 있다.In operation S229, the memory module 200 may transmit the WC release information RWC or the PC release information RPC to the host 201 under the control of the host 201.

예시적으로, S226 단계 또는 S228 단계의 동작은 WC 해제 정보(RWC) 또는 PC 해제 정보(RPC)의 전송 방식에 따라 생략될 수 있다. 예를 들어, WC의 해제 또는 PC의 해제가 발생할 때마다, 메모리 모듈(200)이 호스트(201)로 반환 신호(RTN)를 제공하는 방식을 사용하는 경우, S226 단계 또는 S228 단계의 동작들이 생략될 수 있다. For example, the operation of step S226 or step S228 may be omitted according to a transmission method of the WC release information RWC or the PC release information RPC. For example, whenever the release of the WC or the release of the PC occurs, when the memory module 200 uses the method of providing the return signal (RTN) to the host 201, the operations of the step S226 or the step S228 are omitted. Can be.

상술된 순서도에 따른 동작 방법은 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 본 발명에 따른 메모리 모듈(200)의 동작 방법은 본 발명의 기술적 사상으로부터의 벗어남 없이 다양하게 변형될 수 있다. The operation method according to the above-described flowchart is exemplary, and the scope of the present invention is not limited thereto. The operation method of the memory module 200 according to the present invention may be variously modified without departing from the technical spirit of the present invention.

도 11은 도 6의 호스트(201) 및 컨트롤러(210)의 동작을 설명하기 위한 타이밍도이다. 도 6 및 도 11을 참조하면, 초기에, WC 카운터(202)의 값은 "4"이고, PC 카운터(203)의 값은 "2"일 수 있다. 이는 호스트(201)에 의해 사용 가능한 WC들의 개수가 4개이고, PC들의 개수가 2개임을 의미한다.FIG. 11 is a timing diagram for describing an operation of the host 201 and the controller 210 of FIG. 6. 6 and 11, initially, the value of the WC counter 202 may be “4” and the value of the PC counter 203 may be “2”. This means that the number of WCs available by the host 201 is four, and the number of PCs is two.

호스트(201)는 WC 카운터(202) 및 PC 카운터(203)를 기반으로 퍼시스트 쓰기 동작 또는 일반 쓰기 동작을 수행할 수 있다. 예를 들어, 호스트(201)는 제1 및 제2 퍼시스트 쓰기 커맨드들(persist write command)(PWR1, PWR2) 및 이에 대응하는 제1 및 제2 퍼시스트 데이터(PD1, PD2)를 컨트롤러(210)로 전송할 수 있다.The host 201 may perform a pass write operation or a general write operation based on the WC counter 202 and the PC counter 203. For example, the host 201 controls the controller 210 to control the first and second persistent write commands PWR1 and PWR2 and the corresponding first and second persistent data PD1 and PD2. ) Can be sent.

앞서 설명된 바와 같이, 호스트(201)는 제1 및 제2 퍼시스트 쓰기 커맨드들(PWR1, PWR2)에 응답하여 WC 카운터(202)의 값 및 PC 카운터(203)의 값을 각각 감산할 수 있다. 즉, 호스트(201)는 제1 퍼시스트 쓰기 커맨드(PWR1)를 전송하고, WC 카운터(202) 및 PC 카운터(203)를 각각 "-1"만큼 감산할 수 있다. 호스트(201)는 제2 퍼시스트 쓰기 커맨드(PWR2)를 전송하고, WC 카운터(202) 및 PC 카운터(203)를 각각 "-1"만큼 감산할 수 있다.As described above, the host 201 may subtract the value of the WC counter 202 and the value of the PC counter 203, respectively, in response to the first and second persistent write commands PWR1 and PWR2. . That is, the host 201 may transmit the first write write command PWR1 and subtract the WC counter 202 and the PC counter 203 by "-1", respectively. The host 201 may transmit the second write write command PWR2 and subtract the WC counter 202 and the PC counter 203 by "-1", respectively.

제2 퍼시스트 쓰기 커맨드(PWR2)가 전송된 시점에서, PC 카운터(203)의 값은 "0"일 것이다. 이 경우, 호스트(201)에 의해 사용 가능한 PC이 없으므로, 호스트(201)는 퍼시스트 쓰기 동작을 수행하지 않을 수 있다. 반면에, WC 카운터(202)의 값은 "2"이므로, 호스트(201)는 일반 쓰기 동작을 수행할 수 있다. 즉, 호스트(201)는 제1 및 제2 쓰기 커맨드들(WR1, WR2) 및 이에 대응하는 제1 및 제2 데이터(D1, D2)를 컨트롤러(210)로 전송할 수 있다. At the time when the second write write command PWR2 is transmitted, the value of the PC counter 203 will be "0". In this case, since there is no PC usable by the host 201, the host 201 may not perform a pass write operation. On the other hand, since the value of the WC counter 202 is "2", the host 201 may perform a normal write operation. That is, the host 201 may transmit the first and second write commands WR1 and WR2 and the corresponding first and second data D1 and D2 to the controller 210.

제2 쓰기 커맨드(WR2)가 전송된 시점에서, WC 카운터(202) 및 PC 카운터(203)의 값들은 "0"이기 때문에, 호스트(201)는 쓰기 동작 또는 데이터 전송을 수행하지 않을 수 있다. At the time when the second write command WR2 is transmitted, since the values of the WC counter 202 and the PC counter 203 are "0", the host 201 may not perform a write operation or a data transfer.

제1 시점(t1)에서, 앞서 설명된 바와 같이, 컨트롤러(210)의 동작에 의해 일부 WC들이 해제될 수 있다. 이 경우, 컨트롤러(210)는 호스트(201)로 반환 신호(RTN)를 전송할 수 있다.At the first time point t1, as described above, some WCs may be released by the operation of the controller 210. In this case, the controller 210 may transmit a return signal RTN to the host 201.

호스트(201)는 반환 신호(RTN)에 응답하여 반환 커맨드(RCM)를 컨트롤러(210)로 전송하고, 컨트롤러(210)는 읽기 커맨드(RD)에 응답하여 WC 해제 정보(RWC)를 전송할 수 있다. WC 해제 정보(RWC)는 "+2"의 값과 대응되는 것으로 가정한다. 호스트(201)는 WC 해제 정보(RWC)에 응답하여, WC 카운터(202)의 값을 "+2"만큼 가산할 수 있다.The host 201 may transmit a return command RCM to the controller 210 in response to the return signal RTN, and the controller 210 may transmit the WC release information RWC in response to the read command RD. . It is assumed that the WC release information RWC corresponds to a value of "+2". The host 201 may add the value of the WC counter 202 by "+2" in response to the WC release information RWC.

WC 해제 정보(RWC)를 수신한 시점에서, WC 카운터(202)의 값이 "2"로 갱신되었으므로, 호스트(201)는 일반 쓰기 동작을 수행할 수 있다. 이에 따라, 호스트(201)는 제3 쓰기 커맨드(WR3) 및 이에 대응하는 제3 데이터(D3)를 컨트롤러(210)로 전송할 수 있다. 제3 쓰기 커맨드(WR3)가 컨트롤러(210)로 전송됨에 따라, 호스트(201)는 WC 카운터(202)를 "-1"만큼 감산할 수 있다.At the time point when the WC release information RWC is received, since the value of the WC counter 202 is updated to "2", the host 201 may perform a normal write operation. Accordingly, the host 201 may transmit the third write command WR3 and the third data D3 corresponding thereto to the controller 210. As the third write command WR3 is transmitted to the controller 210, the host 201 may subtract the WC counter 202 by "-1".

제2 시점(t2)에서, 컨트롤러(210)의 동작에 의해 일부 PC이 해제될 수 있다. 예를 들어, 앞서 설명된 바와 같이, 제1 및 제2 퍼시스트 쓰기 커맨드들(PWR1, PWR2)에 대한 제1 및 제2 퍼시스트 데이터(PD1, PD2)가 불휘발성 메모리 장치(230)에 저장됨에 따라, 2개의 PC들이 해제될 수 있다. 이 경우, 컨트롤러(210)는 반환 신호(RTN)를 호스트(201)로 제공할 수 있고, 호스트(201)는 반환 신호(RTN)에 응답하여 반환 커맨드(RCM)를 컨트롤러(210)로 전송할 수 있다. 컨트롤러(210)는 반환 커맨드(RCM)에 응답하여 PC 해제 정보(RPC)를 호스트(201)로 전송할 수 있다.At the second time point t2, some PCs may be released by the operation of the controller 210. For example, as described above, the first and second persistent data PD1 and PD2 for the first and second persistent write commands PWR1 and PWR2 are stored in the nonvolatile memory device 230. As such, two PCs can be released. In this case, the controller 210 may provide a return signal RTN to the host 201, and the host 201 may transmit a return command RCM to the controller 210 in response to the return signal RTN. have. The controller 210 may transmit the PC release information RPC to the host 201 in response to the return command RCM.

호스트(201)는 PC 해제 정보(RPC)를 기반으로 WC 카운터(202) 및 PC 카운터(203)를 갱신할 수 있다. 예를 들어, PC 해제 정보(RPC)가 2개의 PC들이 해제되었음을 가리키는 경우, 호스트(201)는 PC 해제 정보(RPC)를 기반으로 WC 카운터(202) 및 PC 카운터(203)를 각각 "+2"만큼씩 가산할 수 있다.The host 201 may update the WC counter 202 and the PC counter 203 based on the PC release information (RPC). For example, if the PC release information (RPC) indicates that two PCs have been released, the host 201 may set the WC counter 202 and the PC counter 203 to "+2" based on the PC release information (RPC), respectively. You can add by ".

PC 해제 정보(RPC)를 수신한 시점에서, WC 카운터(202)의 값은 "3"이고, PC 카운터(203)의 값은 "2"이므로, 호스트(201)는 퍼시스트 쓰기 동작 또는 일반 쓰기 동작을 수행할 수 있다. 예를 들어, 호스트(201)는 제3 퍼시스트 쓰기 커맨드(PWR3) 및 이에 대응하는 제6 데이터(DT6)를 컨트롤러(210)로 전송할 수 있다. 제3 퍼시스트 쓰기 커맨드(PWR3)가 컨트롤러(210)로 전송됨에 따라 호스트(201)는 WC 카운터(202)의 값 및 PC 카운터(203)의 값을 각각 "-1"씩 감산할 수 있다. When the PC release information (RPC) is received, the value of the WC counter 202 is "3", and the value of the PC counter 203 is "2", so that the host 201 can perform a pass write operation or a normal write. You can perform the operation. For example, the host 201 may transmit the third write write command PWR3 and the sixth data DT6 corresponding thereto to the controller 210. As the third write write command PWR3 is transmitted to the controller 210, the host 201 may subtract the value of the WC counter 202 and the value of the PC counter 203 by "-1", respectively.

상술된 바와 같이, 본 발명에 따른 호스트(201)는 퍼시스트 쓰기 동작 또는 일반 쓰기 동작에 따라, WC 카운터(202) 및 PC 카운터(201)를 갱신함으로써, 메모리 모듈(200)의 버퍼 자원을 관리할 수 있다. 또한, 호스트(201)는 컨트롤러(210)로부터 반환된 WC 해제 정보(RWC) 및 PC 해제 정보(WPC)를 기반으로 WC 카운터(202) 및 PC 카운터(201)를 갱신할 수 있다.As described above, the host 201 according to the present invention manages the buffer resources of the memory module 200 by updating the WC counter 202 and the PC counter 201 in accordance with a pass write operation or a general write operation. can do. In addition, the host 201 may update the WC counter 202 and the PC counter 201 based on the WC release information RWC and the PC release information WPC returned from the controller 210.

예시적으로, WC 해제 정보(RWC) 및 PC 해제 정보(RPC)를 전송하는 방식은 다양하게 구현될 수 있다. 예를 들어, 도 6 및 도 7을 참조하여 설명된 바와 유사하게, WC 반환부(212) 및 PC 반환부(213)는 각각 해제된 WC 및 해제된 PC을 기반으로 WC 해제 정보 및 PC 해제 정보를 누적할 수 있고, 호스트(201)로부터의 반환 커맨드 또는 읽기 커맨드에 응답하여 누적된 정보를 전송할 수 있다. For example, a scheme of transmitting the WC release information RWC and the PC release information RPC may be variously implemented. For example, similarly as described with reference to FIGS. 6 and 7, the WC returning unit 212 and the PC returning unit 213 are each WC release information and PC release information based on the released WC and released PC, respectively. May be accumulated, and the accumulated information may be transmitted in response to a return command or a read command from the host 201.

도 12a 및 도 12b는 도 6의 호스트(201) 및 컨트롤러(210)의 동작을 설명하기 위한 블록도들이다. 간결한 설명을 위하여, 각 동작에서 불필요한 구성 요소들에 대한 상세한 설명은 생략된다.12A and 12B are block diagrams illustrating operations of the host 201 and the controller 210 of FIG. 6. For the sake of brevity, a detailed description of unnecessary components in each operation is omitted.

도 12a 및 도 12b를 참조하면, 컴퓨팅 시스템(20)은 호스트(201) 및 메모리 모듈(200)을 포함할 수 있다. 호스트(201)는 WC 카운터(202) 및 PC 카운터(203)를 포함할 수 있다. 메모리 모듈(200)은 컨트롤러(210), 램 버퍼 장치(220), 및 불휘발성 메모리 장치(230)를 포함할 수 있다. 12A and 12B, the computing system 20 may include a host 201 and a memory module 200. The host 201 may include a WC counter 202 and a PC counter 203. The memory module 200 may include a controller 210, a RAM buffer device 220, and a nonvolatile memory device 230.

설명의 편의를 위하여, 호스트(201)의 퍼시스트 쓰기 동작에 따라 제1 및 제2 WC들(WC1, WC2) 및 제1 및 제2 PC들(PC1, PC2)이 사용된 것으로 가정한다. 즉, 도 12a에 도시된 구성 이전에, WC 카운터(202)의 값은 "6"이고, PC 카운터(203)의 값은 "2"일 것이다. 이후에, 도 12a에 도시된 바와 같이, 컨트롤러(210)의 동작에 따라 제1 및 제2 WC들(WC1, WC2)에 저장된 쓰기 데이터가 제1 및 제2 PC들(PC1, PC2)에 저장될 수 있다. 이 경우, 제1 및 제2 WC들(WC1, WC2)은 해제될 것이다.For convenience of description, it is assumed that the first and second WCs WC1 and WC2 and the first and second PCs PC1 and PC2 are used according to the write operation of the host 201. That is, before the configuration shown in Fig. 12A, the value of the WC counter 202 will be "6" and the value of the PC counter 203 will be "2". Thereafter, as shown in FIG. 12A, write data stored in the first and second WCs WC1 and WC2 is stored in the first and second PCs PC1 and PC2 according to the operation of the controller 210. Can be. In this case, the first and second WCs WC1 and WC2 will be released.

WC 반환부(212)는 해제된 제1 및 제2 WC들(WC1, WC2)에 대한 WC 해제 정보(RWC)를 호스트(201)로 제공할 수 있고, 호스트(201)는 수신된 WC 해제 정보(RWC)를 기반으로 WC 카운터(202)를 갱신할 수 있다. 도 12a의 실시 예에서, 해제된 WC들의 개수는 2개이므로, 결과적으로, 호스트(201)는 WC 카운터(202)의 값을 "+2"만큼 가산할 수 있다.The WC returning unit 212 may provide the host 201 with WC release information RWC for the released first and second WCs WC1 and WC2, and the host 201 may receive the received WC release information. The WC counter 202 may be updated based on (RWC). In the embodiment of FIG. 12A, since the number of released WCs is two, as a result, the host 201 may add the value of the WC counter 202 by "+2".

이후에, 도 12b에 도시된 바와 같이, 컨트롤러(210)의 동작에 따라 제1 및 제2 PC들(PC1, PC2)에 저장된 쓰기 데이터가 불휘발성 메모리 장치(230)에 저장될 수 있다. 이 경우, 제1 및 제2 PC들(PC1, PC2)이 해제될 것이다.Thereafter, as illustrated in FIG. 12B, write data stored in the first and second PCs PC1 and PC2 may be stored in the nonvolatile memory device 230 according to the operation of the controller 210. In this case, the first and second PCs PC1 and PC2 will be released.

PC 반환부(213)는 해제된 제1 및 제2 PC들(PC1, PC2)에 대한 PC 해제 정보(RPC)를 호스트(201)로 전송할 수 있고, 호스트(201)는 수신된 PC 해제 정보(RPC)를 기반으로 PC 카운터(203)를 갱신할 수 있다. 도 12b의 실시 예에서, 해제된 PC들의 개수는 2개이므로, 결과적으로, 호스트(201)는 PC 카운터(203)의 값을 "+2"만큼 가산할 수 있다.The PC return unit 213 may transmit the PC release information RPC of the released first and second PCs PC1 and PC2 to the host 201, and the host 201 may receive the received PC release information ( The PC counter 203 may be updated based on the RPC. In the embodiment of FIG. 12B, since the number of released PCs is two, as a result, the host 201 may add the value of the PC counter 203 by "+2".

상술된 바와 같이, 호스트(201)는 메모리 모듈(200)의 WC들 및 PC들을 별도로 관리할 수 있으며, 컨트롤러(210)로부터 수신된 WC 해제 정보(RWC) 및 PC 해제 정보(RPC)를 기반으로 WC 카운터(202) 및 PC 카운터(203)를 각각 개별적으로 갱신할 수 있다. 표 3은 도 14a 및 도 14b의 실시 예들에 따른 WC 카운터(202) 및 PC 카운터(203)의 갱신 방법을 보여준다. As described above, the host 201 may separately manage the WCs and the PCs of the memory module 200 and based on the WC release information RWC and the PC release information RPC received from the controller 210. The WC counter 202 and the PC counter 203 can be updated individually. Table 3 shows an update method of the WC counter 202 and the PC counter 203 according to the embodiments of FIGS. 14A and 14B.

일반 쓰기 커맨드
발행 횟수(m)
Normal write command
Number of publications (m)
퍼시스트 쓰기 커맨드
발행 횟수(i)
Persistent Write Command
Issue count (i)
WC의
반환량(n)
WC
Return amount (n)
PC의
반환량(k)
PC
Return amount (k)
WC 카운터의 변화량WC counter change -m-m -i-i +n+ n 00 PC 카운터의 변화량PC counter change 00 -i-i 00 +k+ k

표 3을 참조하면, 일반 쓰기 커맨드 발행 및 퍼시스트 쓰기 커맨드 발생에 대한 구성은 표 2의 구성과 동일하므로, 이에 대한 설명은 생략된다. 컨트롤러(210)로부터 반환된 WC들의 개수가 n개인 경우, 호스트(210)는 WC 카운터(202)의 값을 "+n"만큼 가산할 수 있고, 이 때, PC 카운터(203)의 변화량은 "0"일 수 있다. 컨트롤러(210)로부터 반환된 PC들의 개수가 k개인 경우, 호스트(210)는 PC 카운터(203)의 값을 "+k"만큼 가산할 수 있고, 이 때, WC 카운터(202)의 변화량은 "0"일 수 있다. 즉, 도 7a 내지 도 7d, 도 8, 및 표 2를 참조하여 설명된 실시 예들에서, 호스트(201)는 PC들의 반환량을 기반으로 WC 카운터 및 PC 카운터 모두를 갱신하였으나, 도 14a, 도 14b, 및 표 3을 참조하여 설명된 실시 예들에서, 호스트(201)는 WC 해제 정보(RWC)를 기반으로 WC 카운터(202)만 갱신하고, PC 해제 정보(RPC)를 기반으로 PC 카운터(203)만 갱신하도록 구성된다. 즉, 호스트(201)는 WC 해제 정보(RWC) 및 PC 해제 정보(RPC)를 기반으로 WC 카운터(202) 및 PC 카운터(203)를 각각 관리할 수 있다.Referring to Table 3, since the configuration for issuing a general write command and generating a write write command is the same as that in Table 2, the description thereof is omitted. When the number of WCs returned from the controller 210 is n, the host 210 may add the value of the WC counter 202 by "+ n", where the change amount of the PC counter 203 is " 0 ". When the number of PCs returned from the controller 210 is k, the host 210 may add the value of the PC counter 203 by "+ k", where the change amount of the WC counter 202 is " 0 ". That is, in the embodiments described with reference to FIGS. 7A to 7D, 8, and Table 2, the host 201 updates both the WC counter and the PC counter based on the amount of PCs returned, but FIGS. 14A and 14B. In the embodiments described with reference to Table 3, the host 201 updates only the WC counter 202 based on the WC release information RWC, and the PC counter 203 based on the PC release information RPC. It is configured to update only. That is, the host 201 may manage the WC counter 202 and the PC counter 203 based on the WC release information RWC and the PC release information RPC, respectively.

도 13a 내지 도 13d는 도 12a 내지 도 12b의 실시 예에 따른 호스트(201) 및 컨트롤러(210)의 동작을 설명하기 위한 타이밍도들이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들과 중복되는 설명은 생략된다.13A through 13D are timing diagrams for describing operations of the host 201 and the controller 210 according to the exemplary embodiment of FIGS. 12A through 12B. For the sake of brevity, a description overlapping with the components described above will be omitted.

도 6 및 도 13a를 참조하면, 초기에, WC 카운터(202)의 값은 "4"이고, PC 카운터(203)의 값은 "2"일 수 있다. 호스트(201)가 제1 퍼시스트 쓰기 커맨드(PWR1)를 전송한 시점부터 제2 시점(t2)까지의 동작은 도 11의 동작과 유사하므로 이에 대한 상세한 설명은 생략된다. 제2 시점(t2)에서, 컨트롤러(210)의 동작에 따라 일부 PC들이 해제될 수 있다. 컨트롤러(210)는 반환 신호(RTN)를 호스트(201)로 전송할 수 있다. 호스트(201)는 반환 신호(RTN)에 응답하여 읽기 커맨드(RD)를 컨트롤러(210)로 전송하고, 컨트롤러(210)는 읽기 커맨드(RD)에 응답하여 PC 해제 정보(RPC)를 호스트(201)로 전송할 수 있다.6 and 13A, initially, the value of the WC counter 202 may be “4” and the value of the PC counter 203 may be “2”. Since the operation from the time when the host 201 transmits the first write write command PWR1 to the second time t2 is similar to the operation of FIG. 11, a detailed description thereof will be omitted. At the second time point t2, some PCs may be released according to the operation of the controller 210. The controller 210 may transmit a return signal RTN to the host 201. The host 201 transmits a read command RD to the controller 210 in response to the return signal RTN, and the controller 210 sends PC release information RPC in response to the read command RD. ) Can be sent.

도 11을 참조하여 설명된 바와 달리, 호스트(201)는 수신된 PC 해제 정보(RPC)를 기반으로 WC 카운터(202)는 갱신하지 않고, PC 카운터(203)만 갱신할 수 있다. 예를 들어, 제1 시점(t1)에서 해제된 WC들은 컨트롤러(210)가 제1 및 제2 퍼시스트 데이터(PD1, PD2)를 WC들로부터 PC들로 전달함으로써 해제된 WC들일 수 있다. 제2 시점(t2)에서 해제된 PC들은 컨트롤러(210)가 제1 및 제2 퍼시스트 데이터(PD1, PD2)를 PC들로부터 불휘발성 메모리 장치(230)로 전달함으로써 해제된 WC들일 수 있다. 따라서, 호스트(201)는 표 3을 참조하여 설명된 바와 같이, PC 해제 정보(RPC)를 기반으로 PC 카운터(203)만 갱신할 수 있다.As described with reference to FIG. 11, the host 201 may update only the PC counter 203 without updating the WC counter 202 based on the received PC release information (RPC). For example, the WCs released at the first time point t1 may be WCs released by the controller 210 transferring the first and second assist data PD1 and PD2 from the WCs to the PCs. The PCs released at the second time point t2 may be WCs released by the controller 210 transferring the first and second pass data PD1 and PD2 from the PCs to the nonvolatile memory device 230. Therefore, as described with reference to Table 3, the host 201 may update only the PC counter 203 based on the PC release information (RPC).

다음으로, 도 13b 내지 도 13d에서, 호스트(201)는 제1 및 제2 퍼시스트 커맨드들(PWR1, PWR2), 이에 대응하는 제1 및 제2 퍼시스트 데이터(PD1, PD2), 제1 및 제2 일반 쓰기 커맨드들(WR1, WR2) 및 이에 대응하는 제1 및 제2 데이터(D1, D2)를 컨트롤러(210)로 전송할 수 있다.Next, in FIGS. 13B to 13D, the host 201 may include first and second persist commands PWR1 and PWR2, corresponding first and second persist data PD1 and PD2, and first and second values. The second general write commands WR1 and WR2 and the first and second data D1 and D2 corresponding thereto may be transmitted to the controller 210.

도 6 및 도 7을 참조하여 설명된 실시 예와 유사하게, WC 반환부(212)는 제1 및 제2 퍼시스트 데이터(PD1, PD2) 및 제1 및 제2 데이터(D1, D2)가 저장된 WC이 해제될 때마다, WC 해제 정보(RWC)를 누적할 수 있다. 이와 함께, PC 반환부(213)는 PC이 해제될 때마다, PC 해제 정보(RPC)를 누적할 수 있다.Similar to the embodiment described with reference to FIGS. 6 and 7, the WC return unit 212 stores the first and second pass data PD1 and PD2 and the first and second data D1 and D2. Each time the WC is released, the WC release information RWC can be accumulated. In addition, the PC return unit 213 may accumulate the PC release information RPC each time the PC is released.

예를 들어, 제1 내지 제4 시점들(t1, t2, t3, t4) 각각에서, 제1 및 제2 퍼시스트 데이터(PD1, PD2)가 WC으로부터 PC으로 이동할 수 있고, 제1 및 제2 데이터(D1, D2)가 WC으로부터 램 장치(220)의 제1 영역(221) 또는 불휘발성 메모리 장치(230)로 이동할 수 있다. 이 경우, 각 시점에서, WC이 해제되고, 이에 따라, WC 반환부(212)는 WC 반환 정보(RWC)를 "+1"만큼 누적시킨다.For example, at each of the first to fourth time points t1, t2, t3, t4, the first and second persistent data PD1, PD2 may move from the WC to the PC, and the first and second The data D1 and D2 may move from the WC to the first region 221 of the RAM device 220 or the nonvolatile memory device 230. In this case, at each time point, the WC is released, and accordingly, the WC return unit 212 accumulates the WC return information RWC by "+1".

또한, 제2 및 제3 시점들(t2, t3) 각각에서, PC에 저장된 제1 및 제2 퍼시스트 데이터(PD1, PD2)가 불휘발성 메모리 장치(230)로 이동할 수 있다. 이 경우, 제2 및 제3 시점들(t2, t3) 각각에서, PC이 해제되고, PC 반환부(213)는 PC 반환 정보(RPC)를 "+1"만큼 누적시킨다. 결과적으로, 제4 시점(t4)에서, 누적된 WC 반환 정보(RWC) 및 누적된 PC 반환 정보(RPC)는 각각 "4" 및 "2"일 것이다.In addition, at each of the second and third time points t2 and t3, the first and second pass data PD1 and PD2 stored in the PC may move to the nonvolatile memory device 230. In this case, at each of the second and third time points t2 and t3, the PC is released, and the PC return unit 213 accumulates the PC return information RPC by "+1". As a result, at the fourth time point t4, the accumulated WC return information RWC and the accumulated PC return information RPC will be "4" and "2", respectively.

도 13b에서, 컨트롤러(210)는 호스트(201)로부터 제1 반환 커맨드(RCM1)를 수신할 수 있다. 제1 반환 커맨드(RCM1)는 호스트(201)가 가용한 WC을 확보하기 위하여 컨트롤러(210)로 전송하는 커맨드일 수 있다.In FIG. 13B, the controller 210 may receive a first return command RCM1 from the host 201. The first return command RCM1 may be a command transmitted to the controller 210 to secure the available WC by the host 201.

컨트롤러(210)는 제1 반환 커맨드(RCM1)에 응답하여, WC 반환 정보(RWC)를 호스트(201)로 전송할 수 있고, 호스트(201)는 수신된 WC 반환 정보(RWC)를 기반으로 WC 카운터(202)를 갱신할 수 있다.The controller 210 may transmit the WC return information RWC to the host 201 in response to the first return command RCM1, and the host 201 may transmit a WC counter based on the received WC return information RWC. 202 can be updated.

호스트(201)는 제3 일반 쓰기 커맨드(WR3) 및 제3 데이터(D3)를 전송할 수 있다. 이후에, 호스트(201)는 제2 반환 커맨드(RCM2)를 컨트롤러(210)로 전송할 수 있다. 제2 반환 커맨드(RCM2)는 호스트(201)가 가용한 PC을 확보하기 위하여 컨트롤러(210)로 전송하는 커맨드일 수 있다.The host 201 may transmit the third general write command WR3 and the third data D3. Thereafter, the host 201 may transmit a second return command RCM2 to the controller 210. The second return command RCM2 may be a command transmitted by the host 201 to the controller 210 to secure an available PC.

컨트롤러(210)는 제2 반환 커맨드(RCM2)에 응답하여, PC 해제 정보(RWC)를 호스트(201)로 전송할 수 있고, 호스트(201)는 수신된 PC 해제 정보(RWC)를 기반으로 PC 카운터(203)를 갱신할 수 있다.The controller 210 may transmit the PC release information RWC to the host 201 in response to the second return command RCM2, and the host 201 may transmit a PC counter based on the received PC release information RWC. 203 can be updated.

다음으로, 도 13c를 참조하면, 호스트(201)는 제3 반환 커맨드(RCM3)를 컨트롤러(210)로 전송할 수 있다. 제3 반환 커맨드(RCM3)는 앞서 설명된 제1 및 제2 반환 커맨드들(RCM1, RCM2)과 달리, 호스트(201)가 가용한 WC 및 가용한 PC 모두를 확보하기 위하여 컨트롤러(210)로 전송하는 커맨드일 수 있다.Next, referring to FIG. 13C, the host 201 may transmit a third return command RCM3 to the controller 210. Unlike the first and second return commands RCM1 and RCM2 described above, the third return command RCM3 is transmitted to the controller 210 to secure both the available WC and the available PC by the host 201. It may be a command.

컨트롤러(210)는 제3 반환 커맨드(RCM3)에 응답하여, WC 해제 정보(RWC) 및 PC 해제 정보(RPC)를 호스트(201)로 전송할 수 있고, 호스트(201)는 수신된 WC 해제 정보(RWC) 및 PC 해제 정보(RPC)를 기반으로 WC 카운터(202) 및 PC 카운터(203)를 각각 갱신할 수 있다.The controller 210 may transmit the WC release information RWC and the PC release information RPC to the host 201 in response to the third return command RCM3, and the host 201 may receive the received WC release information ( The WC counter 202 and the PC counter 203 may be updated based on the RWC) and the PC release information (RPC), respectively.

다음으로, 도 13d를 참조하면, 호스트(201)는 읽기 커맨드(RDC)를 컨트롤러(210)로 전송할 수 있다. 컨트롤러(210)는 읽기 커맨드(RDC)에 응답하여, 읽기 데이터(RD)를 호스트(201)로 전송할 수 있다. 이 때, 누적된 WC 해제 정보 또는 누적된 PC 해제 정보가 존재하는 경우, 컨트롤러(210)는 읽기 데이터(RD)와 함께, WC 해제 정보(RWC) 및 PC 해제 정보(RPC)를 호스트(201)로 전송할 수 있고, 호스트(201)는 수신된 WC 해제 정보(RWC) 및 PC 해제 정보(RPC)를 기반으로 WC 카운터(202) 및 PC 카운터(203)를 각각 갱신할 수 있다.Next, referring to FIG. 13D, the host 201 may transmit a read command RDC to the controller 210. The controller 210 may transmit the read data RD to the host 201 in response to the read command RDC. At this time, when the accumulated WC release information or accumulated PC release information exists, the controller 210 may host the WC release information RWC and the PC release information RPC together with the read data RD. The host 201 may update the WC counter 202 and the PC counter 203 based on the received WC release information RWC and PC release information RPC, respectively.

상술된 바와 같이, 컨트롤러(210)의 WC 반환부(212) 및 PC 반환부(213)는 WC 및 PC의 해제에 따라 WC 해제 정보(RWC) 및 PC 해제 정보(RPC)를 누적시킬 수 있고, 호스트(201)로부터의 반환 커맨드 또는 읽기 커맨드에 응답하여 누적된 정보를 호스트(201)로 전송할 수 있다.As described above, the WC returning unit 212 and the PC returning unit 213 of the controller 210 may accumulate the WC release information RWC and the PC release information RPC according to the release of the WC and the PC. The accumulated information may be transmitted to the host 201 in response to a return command or a read command from the host 201.

도 14는 도 6의 WC 카운터(202) 및 PC 카운터(203)의 예를 보여주는 도면이다. 예시적으로, 앞서 설명된 실시 예들에서, WC 카운터(102, 202) 또는 PC 카운터(203)는 컨트롤러(110, 210)의 WC들 또는 PC들 중 사용 가능한 WC들의 개수 또는 사용 가능한 PC들의 개수를 관리하도록 구성된다.14 is a diagram illustrating examples of the WC counter 202 and the PC counter 203 of FIG. 6. For example, in the above-described embodiments, the WC counter 102, 202 or the PC counter 203 may determine the number of available WCs or the number of available PCs among the WCs or PCs of the controller 110, 210. It is configured to manage.

그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 도 17에 도시된 바와 같이, WC 카운터(202) 및 PC 카운터(203)는 각각 비트맵 형태로 구현될 수 있다. 예를 들어, WC 카운터(202)는 비트맵 형태로 구현될 수 있으며, 각 비트들은 데이터 버퍼(211)의 복수의 WC들(WC1~WCn)과 각각 대응될 수 있다. 쓰기 동작 시, 호스트(201)는 사용된 WC에 대응하는 비트의 값을 바꿈으로써, 사용된 WC 및 사용 가능한 WC을 각각 관리할 수 있다.However, the scope of the present invention is not limited thereto, and as illustrated in FIG. 17, the WC counter 202 and the PC counter 203 may be implemented in a bitmap form, respectively. For example, the WC counter 202 may be implemented in the form of a bitmap, and each bit may correspond to the plurality of WCs WC1 to WCn of the data buffer 211, respectively. In the write operation, the host 201 may manage the used WC and the available WC, respectively, by changing the value of the bit corresponding to the used WC.

마찬가지로, PC 카운터(203)는 비트맵 형태로 구현될 수 있으며, 각 비트들은 램 장치(220)의 제2 영역(222)의 복수의 PC들(PC1~PCm)과 각각 대응될 수 있다. 쓰기 동작 시, 호스트(201)는 사용된 PC에 대응하는 비트의 값을 바꿈으로써, 사용된 PC 및 사용 가능한 PC을 각각 관리할 수 있다.Similarly, the PC counter 203 may be implemented in the form of a bitmap, and each bit may correspond to the plurality of PCs PC1 to PCm of the second area 222 of the RAM device 220. In the write operation, the host 201 may manage the used PC and the available PC by changing the value of the bit corresponding to the used PC.

상술된 비트맵 형태의 WC 카운터 및 PC 카운터의 구성들은 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다. WC 카운터 및 PC 카운터의 구성들은 본 발명의 기술적 사상으로부터의 벗어남 없이 다양하게 변형될 수 있다.Configurations of the above-described bitmap type WC counter and PC counter are exemplary, but the scope of the present invention is not limited thereto. Configurations of the WC counter and the PC counter can be variously modified without departing from the spirit of the invention.

도 15는 본 발명의 실시 예에 따른 컴퓨팅 시스템(30)을 보여주는 블록도이다. 도 15를 참조하면, 컴퓨팅 시스템(30)은 호스트(310) 및 메모리 모듈(300)을 포함할 수 있다. 호스트(301)는 WC 카운터(302) 및 PC 카운터(303)를 포함할 수 있다. 메모리 모듈(300)은 컨트롤러(310), 불휘발성 메모리 장치(330), 및 백업 전원(340)을 포함할 수 있다. 컨트롤러(310)는 제1 버퍼(311), WC 반환부(312), PC 반환부(313), 및 제2 버퍼(320)를 포함할 수 있다. 제2 버퍼(320)는 제1 및 제2 영역들(321, 322)을 포함할 수 있다. 도 15의 각 구성 요소들은 앞서 설명되었으므로, 이에 대한 상세한 설명은 생략된다. 15 is a block diagram illustrating a computing system 30 according to an example embodiment. Referring to FIG. 15, the computing system 30 may include a host 310 and a memory module 300. The host 301 may include a WC counter 302 and a PC counter 303. The memory module 300 may include a controller 310, a nonvolatile memory device 330, and a backup power source 340. The controller 310 may include a first buffer 311, a WC return unit 312, a PC return unit 313, and a second buffer 320. The second buffer 320 may include first and second regions 321 and 322. Since each component of FIG. 15 has been described above, a detailed description thereof will be omitted.

예시적으로, 제1 버퍼(311)는 앞서 설명된 데이터 버퍼와 대응될 수 있고, 제2 버퍼(320)는 앞서 설명된 램 장치와 대응될 수 있다. 예를 들어, 제1 버퍼(311)는 앞서 설명된 WC들(WC)을 포함할 수 있고, 제2 버퍼(320)(특히, 제2 영역(322))은 PC들(PC)을 포함할 수 있다. 즉, 도 18은 제2 버퍼(320)가 컨트롤러(310)에 포함된 구성을 보여준다. 상술된 바와 같이, 컨트롤러(310)는 PC을 포함할 수 있으며, 앞서 설명된 바와 유사하게 동작할 수 있다. In exemplary embodiments, the first buffer 311 may correspond to the data buffer described above, and the second buffer 320 may correspond to the RAM device described above. For example, the first buffer 311 may include the WCs WC described above, and the second buffer 320 (particularly, the second region 322) may include the PCs PC. Can be. That is, FIG. 18 illustrates a configuration in which the second buffer 320 is included in the controller 310. As described above, the controller 310 may comprise a PC and may operate similar to that described above.

도 16은 본 발명에 따른 메모리 모듈의 예시적인 블록도이다. 도 16을 참조하면, 메모리 모듈(1000)은 컨트롤러(1100), 불휘발성 메모리 장치들(1200), 및 DRAM 장치들(1300)를 포함할 수 있다. 컨트롤러(1100)는 WC들(WC) 및 PC들(PC)을 포함할 수 있다. 컨트롤러(1100)는 데이터 라인(DQ)을 통해 수신된 데이터를 불휘발성 메모리 장치(1200)에 기입하거나 또는 DRAM 장치(1300)에 기입할 수 있다. 예시적으로, 메모리 모듈(1000) 또는 컨트롤러(1100)는 외부 장치와 DDR 인터페이스를 통해 통신할 수 있다. 16 is an exemplary block diagram of a memory module in accordance with the present invention. Referring to FIG. 16, the memory module 1000 may include a controller 1100, nonvolatile memory devices 1200, and DRAM devices 1300. The controller 1100 may include WCs WC and PCs PC. The controller 1100 may write data received through the data line DQ to the nonvolatile memory device 1200 or to the DRAM device 1300. In exemplary embodiments, the memory module 1000 or the controller 1100 may communicate with an external device through a DDR interface.

예시적으로, 컨트롤러(1200)는 도 1 내지 도 15를 참조하여 설명된 방법을 기반으로 동작할 수 있다. 예를 들어, 컨트롤러(1200)는 데이터 라인(DQ)을 통해 수신된 쓰기 데이터를 WC에 저장할 수 있고, WC이 해제된 경우, WC 해제 정보(RWC)를 데이터 라인(DQ)을 통해 외부 장치로 제공할 수 있다. 또는 컨트롤러(1200)는 WC 및 PC을 사용하여 데이터 라인(DQ)을 통해 수신된 쓰기 데이터를 저장할 수 있고, WC 또는 PC이 해제된 경우, WC 해제 정보(RWC) 또는 PC 해제 정보(RPC)를 데이터 라인(DQ)을 통해 외부 장치로 제공할 수 있다.In exemplary embodiments, the controller 1200 may operate based on the method described with reference to FIGS. 1 to 15. For example, the controller 1200 may store write data received through the data line DQ in the WC, and when the WC is released, the WC release information RWC may be transferred to the external device through the data line DQ. Can provide. Alternatively, the controller 1200 may store the write data received through the data line DQ using the WC and the PC. When the WC or the PC is released, the controller 1200 may transmit the WC release information (RWC) or the PC release information (RPC). It may be provided to an external device through the data line DQ.

비록 도면에 도시되지는 않았으나, PC은 DRAM 장치들(1300) 중 일부 영역에 포함될 수 있고, 일부 영역은 별도의 백업 전원을 사용하여 전원 공급과 무관하게 데이터를 유지할 수 있다. Although not shown in the drawing, the PC may be included in some areas of the DRAM devices 1300, and some areas may maintain data regardless of the power supply by using a separate backup power source.

도 17은 본 발명에 따른 메모리 모듈의 예시적인 블록도이다. 도 17을 참조하면, 메모리 모듈(2000)은 컨트롤러(2100), 복수의 메모리 장치들(2210~2280), 및 복수의 데이터 버퍼들(DB)을 포함할 수 있다. 예시적으로, 메모리 모듈(2000)은 외부 장치(예를 들어, 호스트)와 DDR 인터페이스를 기반으로 통신할 수 있다. 예시적으로, 메모리 모듈(2000)의 컨트롤러(2100)는 외부로부터의 커맨드(CMD)에 응답하여 복수의 메모리 장치들(2210~2280) 및 데이터 버퍼들(DB)을 제어하도록 구성될 수 있다.17 is an exemplary block diagram of a memory module in accordance with the present invention. Referring to FIG. 17, the memory module 2000 may include a controller 2100, a plurality of memory devices 2210 ˜ 2280, and a plurality of data buffers DB. In example embodiments, the memory module 2000 may communicate with an external device (eg, a host) based on a DDR interface. For example, the controller 2100 of the memory module 2000 may be configured to control the plurality of memory devices 2210-2280 and the data buffers DB in response to a command CMD from the outside.

복수의 데이터 버퍼들(DB)은 외부 장치와 데이터 라인들(DQ) 및 데이터 스트로브 라인들(DQS)을 통해 데이터를 송수신할 수 있고, 외부로부터 수신된 쓰기 데이터를 복수의 메모리 장치들(2210~2280)로 각각 전송할 수 있다.The plurality of data buffers DB may transmit and receive data to and from the external device through the data lines DQ and the data strobe lines DQS, and write data received from the outside to the plurality of memory devices 2210 ˜. 2280).

도 17에 도시된 메모리 모듈(2000)의 구성은 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 메모리 모듈(2000)은 복수의 데이터 버퍼들(DB)이 생략된 RDIMM 구조를 가질 수 있다. 또는 컨트롤러(2100)가 메모리 모듈(2000)로 제공되는 복수의 데이터 신호들(DQ) 및 데이터 스트로브 신호(DQS)을 수신하고, 컨트롤러(2100)가 수신된 신호를 기반으로 복수의 메모리 장치들(2210~2280)을 제어할 수 있다.The configuration of the memory module 2000 shown in FIG. 17 is exemplary, and the scope of the present invention is not limited thereto. For example, the memory module 2000 may have an RDIMM structure in which a plurality of data buffers DB are omitted. Alternatively, the controller 2100 receives the plurality of data signals DQ and the data strobe signal DQS provided to the memory module 2000, and the controller 2100 receives the plurality of memory devices based on the received signal. 2210-2280).

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

프로세서(3001)는 컨트롤러(3002)를 포함할 수 있다. 컨트롤러(3002)는 버스(3003)를 통해 복수의 메모리들(3110~3140)과 통신할 수 있다. 예시적으로, 버스(3003)는 복수의 메모리들(3110~3140) 각각과 연결된 전용 버스들 또는 복수의 메모리들(3110~3140)과 공유되는 공용 버스를 포함할 수 있다. 예시적으로, 복수의 메모리들(3110~3140) 중 적어도 일부는 도 1 내지 도 17을 참조하여 설명된 메모리 모듈이거나 또는 도 1 내지 도 17을 참조하여 설명된 동작 방법을 기반으로 동작할 수 있다.The processor 3001 may include a controller 3002. The controller 3002 may communicate with the plurality of memories 3110 to 3140 through the bus 3003. For example, the bus 3003 may include dedicated buses connected to each of the plurality of memories 3110 to 3140 or a shared bus shared with the plurality of memories 3110 to 3140. In exemplary embodiments, at least some of the plurality of memories 3110 to 3140 may be memory modules described with reference to FIGS. 1 to 17 or may be operated based on the operation methods described with reference to FIGS. 1 to 17. .

또는, 복수의 메모리들(3110~3140) 중 적어도 일부는 불휘발성 메모리를 포함하고, 나머지 일부는 휘발성 메모리를 포함할 수 있다. 휘발성 메모리를 포함하는 메모리 모듈은 불휘발성 메모리를 포함하는 메모리 모듈의 캐시 메모리 또는 버퍼 메모리로서 사용될 수 있다. 즉, 복수의 메모리들(3110~3140) 중 일부는 PC을 포함하는 램 장치 또는 버퍼로서 사용될 수 있다. 예시적으로, 컨트롤러(3002)는 도 1 내지 도 17을 참조하여 설명된 동작 방법을 기반으로 동작할 수 있다. 또는 프로세서(3001)는 도 1 내지 도 17을 참조하여 설명된 방법을 기반으로 WC들 또는 PC들을 관리할 수 있다. Alternatively, at least some of the plurality of memories 3110 to 3140 may include nonvolatile memories, and others may include volatile memories. The memory module including the volatile memory may be used as the cache memory or the buffer memory of the memory module including the nonvolatile memory. That is, some of the memories 3110 to 3140 may be used as a RAM device or a buffer including a PC. In exemplary embodiments, the controller 3002 may operate based on the operation method described with reference to FIGS. 1 to 17. Alternatively, the processor 3001 may manage WCs or PCs based on the method described with reference to FIGS. 1 through 17.

상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The foregoing is specific embodiments for practicing the present invention. The present invention will include not only the above-described embodiments but also embodiments that can be simply changed in design or easily changed. In addition, the present invention will also include techniques that can be easily modified and practiced using the embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the equivalents of the claims of the present invention as well as the following claims.

Claims (10)

제1 저장 영역 및 제2 저장 영역을 포함하는 램 장치;
불휘발성 메모리 장치; 및
호스트의 제어에 따라 상기 램 장치 또는 상기 불휘발성 메모리 장치를 제어하도록 구성된 컨트롤러를 포함하고,
상기 컨트롤러는:
상기 호스트로부터 수신된 제1 데이터를 임시 저장하도록 구성된 데이터 버퍼; 및
상기 제1 데이터가 상기 데이터 버퍼로부터 상기 램 장치의 상기 제1 영역 또는 상기 제2 영역으로 이동한 경우 제1 해제 정보를 상기 호스트로 전송하고, 상기 제1 데이터가 상기 제2 영역으로부터 상기 불휘발성 메모리 장치로 이동한 경우 제2 해제 정보를 상기 호스트로 전송하도록 구성된 버퍼 반환부를 포함하는 메모리 모듈.
A RAM device including a first storage area and a second storage area;
Nonvolatile memory devices; And
A controller configured to control the RAM device or the nonvolatile memory device under a control of a host,
The controller is:
A data buffer configured to temporarily store first data received from the host; And
When the first data is moved from the data buffer to the first region or the second region of the RAM device, first release information is transmitted to the host, and the first data is nonvolatile from the second region. And a buffer return unit configured to transmit second release information to the host when moved to the memory device.
제 1 항에 있어서,
상기 제2 저장 영역은 상기 제1 저장 영역과 물리적으로 구분되고,
상기 제2 저장 영역으로 보조 전원을 공급하도록 구성된 보조 전원 장치를 더 포함하는 메모리 모듈.
The method of claim 1,
The second storage area is physically separated from the first storage area,
And an auxiliary power supply configured to supply auxiliary power to the second storage area.
제 1 항에 있어서,
상기 데이터 버퍼는 복수의 제1 단위 버퍼들을 포함하고,
상기 램 장치의 상기 제2 영역은 복수의 제2 단위 버퍼들을 포함하고,
상기 제1 데이터는 상기 복수의 제1 단위 버퍼들 중 어느 하나에 임시 저장되고, 상기 어느 하나의 제1 단위 버퍼로부터 상기 복수의 제2 단위 버퍼들 중 어느 하나로 이동하는 메모리 모듈.
The method of claim 1,
The data buffer includes a plurality of first unit buffers,
The second region of the RAM device includes a plurality of second unit buffers,
And the first data is temporarily stored in any one of the plurality of first unit buffers, and moves from one of the first unit buffers to any one of the plurality of second unit buffers.
제 3 항에 있어서,
상기 제1 해제 정보는 상기 복수의 제1 단위 버퍼들 중 상기 제1 데이터가 저장된 제1 단위 버퍼가 해제되었음을 알리는 정보인 메모리 모듈.
The method of claim 3, wherein
The first release information is information indicating that the first unit buffer in which the first data is stored among the plurality of first unit buffers is released.
제 3 항에 있어서,
상기 제2 해제 정보는 상기 복수의 제2 단위 버퍼들 중 상기 제1 데이터가 저장된 제2 단위 버퍼가 해제되었음을 알리는 정보인 메모리 모듈.
The method of claim 3, wherein
The second release information is information indicating that the second unit buffer, in which the first data is stored, of the plurality of second unit buffers is released.
제 3 항에 있어서,
상기 제1 해제 정보를 기반으로 상기 호스트의 제1 카운트 값이 갱신되고, 상기 제2 해제 정보를 기반으로 상기 호스트의 제2 카운트 값이 갱신되는 메모리 모듈.
The method of claim 3, wherein
And a first count value of the host is updated based on the first release information, and a second count value of the host is updated based on the second release information.
제 6 항에 있어서,
상기 제1 카운트 값은 상기 복수의 제1 단위 버퍼들 중 가용한 제1 단위 버퍼의 개수를 가리키고, 상기 제2 카운트 값은 상기 복수의 제2 단위 버퍼들 중 가용한 제2 단위 버퍼의 개수를 가리키는 메모리 모듈.
The method of claim 6,
The first count value indicates the number of available first unit buffers among the plurality of first unit buffers, and the second count value indicates the number of available second unit buffers among the plurality of second unit buffers. Memory module pointing.
제 1 항에 있어서,
상기 제1 데이터가 상기 데이터 버퍼로부터 상기 제1 영역 또는 상기 제2 영역으로 이동하거나 또는 상기 제1 데이터가 상기 제2 영역으로부터 상기 불휘발성 메모리 장치로 이동한 경우, 상기 컨트롤러는 상기 호스트로 반환 신호를 전송하는 메모리 모듈.
The method of claim 1,
When the first data moves from the data buffer to the first area or the second area, or when the first data moves from the second area to the nonvolatile memory device, the controller returns a signal to the host. Memory module to transmit.
제 1 항에 있어서,
상기 호스트로부터의 반환 커맨드에 응답하여, 상기 버퍼 반환부는 상기 제1 해제 정보 또는 상기 제2 해제 정보를 상기 호스트로 전송하는 메모리 모듈.
The method of claim 1,
In response to a return command from the host, the buffer return unit to transmit the first release information or the second release information to the host.
제 1 항에 있어서,
상기 호스트로부터의 읽기 커맨드에 응답하여, 상기 버퍼 반환부는 상기 제1 해제 정보 또는 상기 제2 해제 정보, 및 상기 읽기 커맨드에 대응하는 읽기 데이터를 포함하는 데이터 패킷을 상기 호스트로 전송하는 메모리 모듈.


The method of claim 1,
In response to a read command from the host, the buffer return unit transmits a data packet including the first release information or the second release information and read data corresponding to the read command to the host.


KR1020180019329A 2018-02-01 2018-02-19 Operation method of host, operation method of memory module, and operation method of memory system KR102549591B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/103,058 US11048645B2 (en) 2018-02-01 2018-08-14 Memory module, operation method therof, and operation method of host
CN201811580428.2A CN110109612B (en) 2018-02-01 2018-12-24 Memory module and operation method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862625044P 2018-02-01 2018-02-01
US62/625,044 2018-02-01

Publications (2)

Publication Number Publication Date
KR20190093475A true KR20190093475A (en) 2019-08-09
KR102549591B1 KR102549591B1 (en) 2023-06-30

Family

ID=67613668

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180019329A KR102549591B1 (en) 2018-02-01 2018-02-19 Operation method of host, operation method of memory module, and operation method of memory system

Country Status (1)

Country Link
KR (1) KR102549591B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593023B2 (en) 2020-10-23 2023-02-28 SK Hynix Inc. Memory controller and method of operating the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130130484A (en) * 2012-05-22 2013-12-02 삼성전자주식회사 Flash memory system including read counter logic
KR20150082010A (en) * 2014-01-07 2015-07-15 삼성전자주식회사 Micro-journaling for non-volatile memory file system
KR20170010729A (en) * 2015-07-20 2017-02-01 삼성전자주식회사 Storage system and method for metadata management in Non-volatile memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130130484A (en) * 2012-05-22 2013-12-02 삼성전자주식회사 Flash memory system including read counter logic
KR20150082010A (en) * 2014-01-07 2015-07-15 삼성전자주식회사 Micro-journaling for non-volatile memory file system
KR20170010729A (en) * 2015-07-20 2017-02-01 삼성전자주식회사 Storage system and method for metadata management in Non-volatile memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593023B2 (en) 2020-10-23 2023-02-28 SK Hynix Inc. Memory controller and method of operating the same

Also Published As

Publication number Publication date
KR102549591B1 (en) 2023-06-30

Similar Documents

Publication Publication Date Title
CN110109612B (en) Memory module and operation method thereof
US10268382B2 (en) Processor memory architecture
CN110175140B (en) Fusion memory device and method of operating the same
US10002668B2 (en) Memory device, memory module, and memory system
CN108780423B (en) Multi-level memory management circuit, management method and management device
US11709777B2 (en) Memory system
EP3441885B1 (en) Technologies for caching persistent two-level memory data
US10949120B2 (en) Host defined bandwidth allocation for SSD tasks
EP3379420A1 (en) Apparatus, system, and method to flush modified data from a volatile memory to a persistent second memory
US20190114264A1 (en) Memory system
US20180113628A1 (en) Hybrid memory module bridge network and buffers
US10032494B2 (en) Data processing systems and a plurality of memory modules
CN111679783A (en) Memory controller
US20170147230A1 (en) Memory device and memory system having heterogeneous memories
US10452313B2 (en) Apparatuses and methods for multiple address registers for a solid state device
KR102549591B1 (en) Operation method of host, operation method of memory module, and operation method of memory system
US11443784B2 (en) Command buffer chip with dual configurations
US10936534B2 (en) Converged memory device and method thereof
US20230094144A1 (en) Memory system
CN111694772A (en) Memory controller
US20230060874A1 (en) Dynamic queue depth adjustment
US20220171551A1 (en) Available memory optimization to manage multiple memory channels
US11054993B2 (en) Mass storage system having peer-to-peer data movements between a cache and a backend store
US20240160568A1 (en) Techniques for data movement to a cache in a disaggregated die system
WO2022193270A1 (en) Write booster buffer flush operation

Legal Events

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