KR20230068263A - Memory system using host memory buffer and operation method thereof - Google Patents

Memory system using host memory buffer and operation method thereof Download PDF

Info

Publication number
KR20230068263A
KR20230068263A KR1020220055613A KR20220055613A KR20230068263A KR 20230068263 A KR20230068263 A KR 20230068263A KR 1020220055613 A KR1020220055613 A KR 1020220055613A KR 20220055613 A KR20220055613 A KR 20220055613A KR 20230068263 A KR20230068263 A KR 20230068263A
Authority
KR
South Korea
Prior art keywords
memory buffer
host memory
host
retention
command
Prior art date
Application number
KR1020220055613A
Other languages
Korean (ko)
Other versions
KR102547825B1 (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 US17/979,554 priority Critical patent/US20230142174A1/en
Priority to CN202211399628.4A priority patent/CN116107497A/en
Priority to EP22206748.0A priority patent/EP4180938A1/en
Publication of KR20230068263A publication Critical patent/KR20230068263A/en
Application granted granted Critical
Publication of KR102547825B1 publication Critical patent/KR102547825B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명은 메모리 시스템에 관한 것으로, 좀 더 자세하게는 호스트 메모리 버퍼를 사용하는 메모리 시스템 및 그것의 동작 방법에 관한 것이다. 본 발명의 실시 예에 따른 호스트 및 스토리지 장치를 포함하는 메모리 시스템의 동작 방법은, 상기 호스트에 포함된 호스트 메모리의 일부를 상기 스토리지 장치의 컨트롤러가 사용하기 위한 호스트 메모리 버퍼로 할당하는 단계, 상기 호스트 메모리 버퍼를 활성화하도록 셋 특성 커맨드를 설정하는 단계, 상기 호스트 메모리 버퍼의 응답 속도에 대한 정보를 포함하는 리텐션 커맨드를 설정하는 단계 및 상기 리텐션 커맨드에 기초해서, 상기 호스트 메모리 버퍼의 운영 모드를 선택하는 단계를 포함한다. 본 발명의 실시 예에 따른 메모리 시스템은 호스트 메모리 버퍼의 응답 속도에 기초하여 호스트 메모리 버퍼의 운영 모드 중 최적의 모드를 함으로써, 전체적인 메모리 시스템의 성능을 향상시킬 수 있다.The present invention relates to a memory system, and more particularly, to a memory system using a host memory buffer and an operating method thereof. A method of operating a memory system including a host and a storage device according to an embodiment of the present invention includes allocating a portion of a host memory included in the host as a host memory buffer for use by a controller of the storage device; Setting a set characteristic command to activate a memory buffer, setting a retention command including information about a response speed of the host memory buffer, and selecting an operating mode of the host memory buffer based on the retention command. It includes a selection step. The memory system according to the exemplary embodiment of the present invention selects an optimal mode among operation modes of the host memory buffer based on the response speed of the host memory buffer, thereby improving overall performance of the memory system.

Description

호스트 메모리 버퍼를 사용하는 메모리 시스템 및 그것의 동작 방법{MEMORY SYSTEM USING HOST MEMORY BUFFER AND OPERATION METHOD THEREOF}Memory system using host memory buffer and its operating method {MEMORY SYSTEM USING HOST MEMORY BUFFER AND OPERATION METHOD THEREOF}

본 발명은 메모리 시스템에 관한 것으로, 좀 더 자세하게는 호스트 메모리 버퍼를 사용하는 메모리 시스템 및 그것의 동작 방법에 관한 것이다.The present invention relates to a memory system, and more particularly, to a memory system using a host memory buffer and an operating method thereof.

플래시 메모리 기반의 대용량 스토리지 장치의 예로 솔리드 스테이트 드라이브(Solid State Drive: 이하, SSD)가 대표적이다. SSD의 폭발적인 수요 증가와 함께 그 용도는 다양하게 분화되고 있다. 예를 들면, 서버용 SSD, 클라이언트용 SSD, 데이터 센터용 SSD 등으로 용도가 세분화될 수 있다. SSD의 인터페이스는 이러한 각각의 용도에 따라 최적의 속도와 신뢰성을 제공할 수 있어야 한다. 이러한 요구를 충족하기 위해서 최적의 SSD 인터페이스로 SATA, PCIe, SAS 등이 적용되고 있다. 특히, 최근에는 PCIe 기반의 NVMe나, UFS 기반의 UME(Unified Memory Extension)가 활발히 연구되고 스토리지 장치들에 적용되고 있는 실정이다. 이들 인터페이스에서는 장치 간 메모리 공유 기능을 제공하고 있다. 예를 들어, 호스트가 호스트 내의 메모리 영역의 일부를 스토리지 장치에 할당할 수 있으며, 할당된 메모리 영역은 호스트 메모리 버퍼(Host Memory Buffer: HMB)라 칭해질 수 있다. As an example of a flash memory-based mass storage device, a solid state drive (hereinafter referred to as SSD) is a representative example. Along with the explosive increase in demand for SSD, its uses are diversifying. For example, uses may be subdivided into SSDs for servers, SSDs for clients, and SSDs for data centers. The SSD's interface must be able to provide optimal speed and reliability for each of these uses. To meet these demands, SATA, PCIe, and SAS are being applied as optimal SSD interfaces. In particular, in recent years, PCIe-based NVMe or UFS-based Unified Memory Extension (UME) has been actively researched and applied to storage devices. These interfaces provide a memory sharing function between devices. For example, a host may allocate a portion of a memory area within the host to a storage device, and the allocated memory area may be referred to as a host memory buffer (HMB).

이러한 메모리 공유 기법에 있어서, 스토리지 장치가 호스트 메모리 버퍼(HMB)를 효율적으로 사용하기 위한 기법에 대한 요구가 높아지고 있다. 호스트 메모리 버퍼(HMB)는 호스트 내에 위치하지만, 호스트 메모리 버퍼(HMB)의 활용은 스토리지 장치에 의해서 이루어지기 때문이다. 특히, 종래 기술에 의하면, 호스트는 스토리지 장치에 호스트 메모리 버퍼(HMB)의 사용 가능 여부에 대한 활성화(enable) 신호 또는 비활성화(disable) 신호만을 전송할 뿐, 호스트 메모리 버퍼(HMB)의 응답 속도 등에 대한 정보를 전송하지 않는다. 이 경우, 스토리지 장치는 호스트 메모리 버퍼(HMB)의 응답 속도와 무관하게 호스트 메모리 버퍼(HMB)에 접근(access)하여 동작하게 되며, 이는 전체적인 메모리 시스템의 성능 하락을 야기한다.In this memory sharing technique, a demand for a technique for a storage device to efficiently use a host memory buffer (HMB) is increasing. This is because the host memory buffer (HMB) is located in the host, but utilization of the host memory buffer (HMB) is performed by the storage device. In particular, according to the prior art, the host transmits only an enable signal or a disable signal for whether or not the host memory buffer (HMB) is available to the storage device, and the response speed of the host memory buffer (HMB). do not transmit information In this case, the storage device operates by accessing the host memory buffer (HMB) regardless of the response speed of the host memory buffer (HMB), which causes performance degradation of the overall memory system.

본 발명의 목적은 호스트 메모리 버퍼의 응답 속도에 따라 호스트 메모리 버퍼의 운용을 달리할 수 있는 메모리 시스템을 제공하는데 있다.An object of the present invention is to provide a memory system capable of varying the operation of a host memory buffer according to the response speed of the host memory buffer.

본 발명의 실시 예에 따른 호스트 및 스토리지 장치를 포함하는 메모리 시스템의 동작 방법은, 상기 호스트에 포함된 호스트 메모리의 일부를 상기 스토리지 장치의 컨트롤러가 사용하기 위한 호스트 메모리 버퍼로 할당하는 단계; 상기 호스트 메모리 버퍼를 활성화하도록 셋 특성 커맨드를 설정하는 단계; 상기 호스트 메모리 버퍼의 응답 속도에 대한 정보를 포함하는 리텐션 커맨드를 설정하는 단계; 상기 리텐션 커맨드에 기초해서, 상기 호스트 메모리 버퍼의 운영 모드를 선택하는 단계; 및 상기 호스트 메모리 버퍼의 운용 모드의 성능 목표(performance objective)에 기초해서, 상기 컨트롤러가 지원하는 복수의 파워 상태 중 하나의 파워 상태를 선택하는 단계를 포함한다.A method of operating a memory system including a host and a storage device according to an embodiment of the present invention includes allocating a portion of a host memory included in the host as a host memory buffer for use by a controller of the storage device; setting a set characteristic command to activate the host memory buffer; setting a retention command including information about response speed of the host memory buffer; selecting an operation mode of the host memory buffer based on the retention command; and selecting one of a plurality of power states supported by the controller based on a performance objective of an operation mode of the host memory buffer.

본 발명의 실시 예에 따른 호스트 및 스토리지 장치를 포함하는 메모리 시스템의 동작 방법은, 상기 호스트에 포함된 호스트 메모리의 일부를 상기 스토리지 장치의 컨트롤러가 사용하기 위한 호스트 메모리 버퍼로 할당하는 단계; 상기 호스트 메모리 버퍼를 활성화하도록 셋 특성 커맨드를 설정하는 단계; 상기 호스트 메모리 버퍼의 응답 속도에 대한 정보를 포함하는 리텐션 커맨드를 설정하는 단계; 및 상기 리텐션 커맨드에 기초해서, 상기 호스트 메모리 버퍼의 운영 모드를 선택하는 단계를 포함한다.A method of operating a memory system including a host and a storage device according to an embodiment of the present invention includes allocating a portion of a host memory included in the host as a host memory buffer for use by a controller of the storage device; setting a set characteristic command to activate the host memory buffer; setting a retention command including information about response speed of the host memory buffer; and selecting an operation mode of the host memory buffer based on the retention command.

본 발명의 실시 예에 따른 호스트의 호스트 메모리를 공유하는 스토리지 장치는, 상기 호스트 메모리의 일부 영역을 상기 스토리지 장치의 호스트 메모리 버퍼로 사용하기 위한 인터페이스; 및 상기 호스트 메모리 버퍼의 응답 속도가 느려지는 리텐션이 발생한 경우에, 상기 호스트 메모리 버퍼의 응답 속도에 기초하여 상기 호스트 메모리 버퍼에 대한 운용 모드로 제1 내지 제3 모드 중 하나의 모드를 선택하는 스토리지 장치를 포함하며, 상기 제1 모드가 선택된 경우, 상기 스토리지 장치의 상기 호스트 메모리 버퍼에 대한 접근이 허용되고, 상기 제2 모드가 선택된 경우, 상기 스토리지 장치의 상기 호스트 메모리 버퍼에 대한 접근이 허용되며, 상기 스토리지는 상기 호스트 메모리 버퍼에 저장된 데이터 중 자주 사용되는 데이터를 회수하여 저장하고, 상기 제3 모드가 선택된 경우, 상기 스토리지의 장치의 상기 호스트 메모리 버퍼에 대한 접근은 허용되지 않는다.A storage device sharing a host memory of a host according to an embodiment of the present invention includes an interface for using a portion of the host memory as a host memory buffer of the storage device; and selecting one of first to third modes as an operation mode for the host memory buffer based on the response speed of the host memory buffer when a retention occurs in which a response speed of the host memory buffer becomes slow. and a storage device, wherein when the first mode is selected, access to the host memory buffer of the storage device is allowed, and when the second mode is selected, access to the host memory buffer of the storage device is allowed. The storage retrieves and stores frequently used data among data stored in the host memory buffer, and when the third mode is selected, access of the storage device to the host memory buffer is not permitted.

본 발명의 실시 예에 따른 메모리 시스템은 호스트 메모리 버퍼의 응답 속도에 기초하여 호스트 메모리 버퍼의 운영 모드 중 최적의 모드를 선택하고, 선택된 모드에 따라 호스트 메모리 버퍼를 운용한다. 이에 따라, 전체적인 메모리 시스템의 성능이 향상될 수 있다.A memory system according to an exemplary embodiment of the present invention selects an optimal mode among operation modes of the host memory buffer based on the response speed of the host memory buffer and operates the host memory buffer according to the selected mode. Accordingly, performance of the entire memory system may be improved.

도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 도 1의 호스트 메모리의 일 예를 보여주는 블록도이다.
도 3은 도 1의 스토리지 컨트롤러의 구성을 예시적으로 보여주는 블록도이다.
도 4는 리텐션 커맨드의 일 예를 예시적으로 보여주는 도면이다.
도 5는 도 1의 메모리 시스템의 동작의 일 예를 보여주는 순서도이다.
도 6은 호스트가 리텐션 커맨드를 설정하는 도 5의 S120 단계의 일 예를 보여주는 순서도이다.
도 7은 스토리지 장치가 운용 모드를 선택하는 도 5의 S140 단계의 일 예를 보여주는 순서도이다.
도 8 및 도 9는 리텐션이 발생 시에 호스트와 스토리지 컨트롤러 사이의 커맨드 전송 동작을 좀 더 자세히 설명하기 위한 도면들이다.
도 10은 본 발명의 실시 예에 따른 메모리 시스템의 일 예를 보여주는 블록도이고, 도 11은 도 10의 스토리지 컨트롤러의 일 예를 보여주는 블록도이다.
도 12a 내지 도 12e는 도 10의 호스트와 스토리지 컨트롤러 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다.
1 is a block diagram illustrating a memory system according to an exemplary embodiment of the inventive concept.
FIG. 2 is a block diagram showing an example of the host memory of FIG. 1 .
FIG. 3 is a block diagram showing the configuration of the storage controller of FIG. 1 as an example.
4 is a diagram showing an example of a retention command by way of example.
5 is a flowchart illustrating an example of an operation of the memory system of FIG. 1 .
6 is a flowchart illustrating an example of step S120 of FIG. 5 in which the host sets a retention command.
7 is a flowchart illustrating an example of step S140 of FIG. 5 in which the storage device selects an operation mode.
8 and 9 are diagrams for explaining in detail an operation of transmitting a command between a host and a storage controller when retention occurs.
10 is a block diagram showing an example of a memory system according to an exemplary embodiment, and FIG. 11 is a block diagram showing an example of a storage controller of FIG. 10 .
12A to 12E are diagrams illustrating an example of a command transmission operation between the host of FIG. 10 and the storage controller.

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

도 1은 본 발명의 실시 예에 따른 메모리 시스템(1000A)을 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 실시 예에 따른 메모리 시스템(1000A)은 호스트(1100)와 스토리지 장치(1200)를 포함한다.1 is a block diagram illustrating a memory system 1000A according to an exemplary embodiment of the inventive concept. Referring to FIG. 1 , a memory system 1000A according to an embodiment of the present invention includes a host 1100 and a storage device 1200 .

본 발명의 실시 예에 따른 메모리 시스템(1000A)은 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)와 공유하는 호스트 메모리 버퍼 기능을 지원한다. 아울러, 스토리지 장치(1200)에 할당된 호스트 메모리 버퍼(1120)의 응답 속도가 정상 속도에 비하여 지연된 리텐션(retention)이 발생하는 경우, 호스트(1100)는 리텐션 커맨드(Retention command)를 스토리지 장치(1200)에 전송한다. 스토리지 장치(1200)는 리텐션 커맨드에 기초하여 복수의 모드들 중 최적의 성능을 발휘하는 모드를 선택하고, 선택된 모드에 따라 호스트 메모리 버퍼(1120)를 운용한다. 이에 따라, 메모리 시스템(1000A)의 전체적인 성능이 향상될 수 있다.The memory system 1000A according to an embodiment of the present invention supports a host memory buffer function that shares a partial area of the host memory 1130 with the storage device 1200 . In addition, when retention occurs, the response speed of the host memory buffer 1120 allocated to the storage device 1200 is delayed compared to the normal speed, the host 1100 sends a retention command to the storage device. Send to (1200). The storage device 1200 selects a mode exhibiting optimal performance among a plurality of modes based on the retention command and operates the host memory buffer 1120 according to the selected mode. Accordingly, overall performance of the memory system 1000A may be improved.

좀 더 자세히 설명하면, 호스트(1100)는 스토리지 장치(1200)에 데이터를 기입하거나, 스토리지 장치(1200)에 저장된 데이터를 읽어낸다. 이를 위해, 호스트(1100)는 스토리지 장치(1200)에 데이터를 기입하기 위한 커맨드(CMD)와 어드레스(ADDR)를 전달할 수 있다. 또한, 호스트(1100)는 스토리지 장치(1200)에 저장된 데이터를 읽어내기 위한 커맨드(CMD)와 어드레스(ADDR)를 스토리지 장치(1200)에 전달할 수 있다. 호스트(1100)는 프로세서(1110), 호스트 메모리(1130), 인터페이스 회로(1150)를 포함한다. More specifically, the host 1100 writes data into the storage device 1200 or reads data stored in the storage device 1200 . To this end, the host 1100 may transmit a command CMD and an address ADDR for writing data to the storage device 1200 . Also, the host 1100 may transfer a command CMD and an address ADDR for reading data stored in the storage device 1200 to the storage device 1200 . The host 1100 includes a processor 1110 , a host memory 1130 , and an interface circuit 1150 .

호스트 메모리(1130)에는 응용 프로그램, 파일 시스템, 장치 드라이버 등이 로드될 수 있다. 이 밖에도, 호스트 메모리(1130)에는 호스트(1100)에서 구동되는 다양한 소프트웨어나 데이터가 로드될 수 있다. 특히, 호스트(1100)는 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)의 버퍼(Buffer) 역할을 담당하는 호스트 메모리 버퍼(1120)로 할당할 수 있다.Application programs, file systems, device drivers, and the like may be loaded into the host memory 1130 . In addition, various software or data driven by the host 1100 may be loaded into the host memory 1130 . In particular, the host 1100 may allocate a portion of the host memory 1130 as the host memory buffer 1120 serving as a buffer of the storage device 1200 .

호스트 메모리 버퍼(1120)는 스토리지 장치(1200)가 사용할 수 있도록 호스트 메모리(1130)의 영역 중 스토리지 장치(1200)에 할당된 영역이다. 예를 들어, 스토리지 장치(1200)에 호스트 메모리 버퍼(1120)가 할당되면, 상기 호스트 메모리 버퍼(1120)는 스토리지 장치(1200)가 배타적으로 사용할 수 있도록 제공된다. 이때, 호스트(1100)는 호스트 메모리 설명자 목록(host memory descriptor list)에서 상기 호스트 메모리 버퍼(1120)를 삭제할 수 있다.The host memory buffer 1120 is an area of the host memory 1130 allocated to the storage device 1200 so that the storage device 1200 can use it. For example, when the host memory buffer 1120 is allocated to the storage device 1200, the host memory buffer 1120 is provided for exclusive use by the storage device 1200. At this time, the host 1100 may delete the host memory buffer 1120 from the host memory descriptor list.

호스트 메모리 버퍼(1120)에는 리텐션(Retention)이 발생할 수 있다. 여기서, 리텐션은 호스트 메모리 버퍼(1120)의 응답 속도가 정상적인 경우에 비하여 느려진 상태를 의미한다. 예를 들어, 파워 절약 모드(power saving mode) 시에 호스트 메모리(1130)가 200ms 간격으로 활성화(activate)되도록 설정되었다고 가정하자. 만약 호스트(1100)가 파워 절약 모드에 진입한다면, 호스트 메모리 버퍼(1120)의 응답 속도가 정상적인 경우에 비하여 느려지는 리텐션이 발생하게 된다. 이외에도, 호스트 메모리 버퍼(1120)의 메모리 셀들의 열화, 불량 메모리 셀들에 대한 대체 동작의 수행 등과 같은 다양한 원인으로, 리텐션이 발생할 수 있다.Retention may occur in the host memory buffer 1120 . Here, retention means a state in which the response speed of the host memory buffer 1120 is slowed compared to a normal case. For example, it is assumed that the host memory 1130 is set to be activated at intervals of 200 ms in a power saving mode. If the host 1100 enters the power saving mode, a retention occurs in which the response speed of the host memory buffer 1120 becomes slower than normal. In addition, retention may occur due to various causes, such as deterioration of memory cells of the host memory buffer 1120 and performance of a replacement operation for defective memory cells.

호스트 메모리 버퍼(1120)에 리텐션이 발생하면, 호스트(1100)는 스토리지 장치(1200)에 리텐션 커맨드(Retention command)를 전송한다. 여기서, 리텐션 커맨드는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 어드레스 및 지연된 응답 속도에 대응하는 리텐션 레벨(Retention Level)을 포함한다. 일 실시 예에 있어서, 호스트 메모리 버퍼(1120)는 복수의 HMB 영역들로 구분되고, 복수의 HMB 영역들 중 적어도 하나의 HMB 영역에 리텐션이 발생할 수 있다. 이 경우, 호스트(1100)는 리텐션이 발생한 HMB 영역에 대응하는 어드레스 및 리텐션 레벨을 스토리지 장치(1200)에 전송할 수도 있다.When retention occurs in the host memory buffer 1120 , the host 1100 transmits a retention command to the storage device 1200 . Here, the retention command includes the address of the host memory buffer 1120 where retention occurs and a retention level corresponding to the delayed response speed. In an embodiment, the host memory buffer 1120 is divided into a plurality of HMB areas, and retention may occur in at least one HMB area among the plurality of HMB areas. In this case, the host 1100 may transmit an address and a retention level corresponding to the HMB area where retention occurs to the storage device 1200 .

인터페이스 회로(1150)는 호스트(1100)와 스토리지 장치(1200) 사이에서 물리적 연결을 제공한다. 즉, 인터페이스 회로(1150)는 호스트(1100)에서 발행하는 다양한 요청에 대응하는 커맨드, 어드레스, 데이터 등을 스토리지 장치(1200)와의 인터페이싱 방식으로 변환한다. 인터페이스 회로(1150)의 프로토콜로는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI), UFS(Universal Flash Storage) 중 적어도 어느 하나일 수 있다.The interface circuit 1150 provides a physical connection between the host 1100 and the storage device 1200 . That is, the interface circuit 1150 converts commands, addresses, data, etc. corresponding to various requests issued by the host 1100 into an interfacing method with the storage device 1200 . Protocols of the interface circuit 1150 include Universal Serial Bus (USB), Small Computer System Interface (SCSI), PCI express, ATA, Parallel ATA (PATA), Serial ATA (SATA), Serial Attached SCSI (SAS), UFS ( Universal Flash Storage) may be at least one of them.

스토리지 장치(1200)는 NVM 서브 시스템(NVM subsystem)이라고도 칭해질 수 있으며, 호스트(1100)의 데이터 스토리지로 제공된다. 또한, 스토리지 장치(1200)는 호스트(1100)의 호스트 메모리(1130)의 일부 영역을 호스트 메모리 버퍼(1120)로 할당 받고, 상기 호스트 메모리 버퍼(1120)를 내부 버퍼와 동일하게 사용할 수 있다. 스토리지 장치(1200)는 호스트 인터페이스(1220), 스토리지 컨트롤러(1240), 그리고 불휘발성 메모리 장치(1260)를 포함한다.The storage device 1200 may also be referred to as an NVM subsystem and is provided as data storage for the host 1100 . In addition, the storage device 1200 may allocate a portion of the host memory 1130 of the host 1100 as the host memory buffer 1120 and use the host memory buffer 1120 identically to the internal buffer. The storage device 1200 includes a host interface 1220 , a storage controller 1240 , and a nonvolatile memory device 1260 .

호스트 인터페이스(1220)는 호스트(1100)와의 데이터 교환을 위한 스토리지 장치(1200)의 물리적 통신 채널로서 제공된다. 호스트 인터페이스(1220)는 스토리지 장치(1200)의 버퍼 기능을 호스트 메모리 버퍼(1120)가 지원할 수 있는 인터페이싱 프로토콜을 가질 수 있다. 즉, 호스트 인터페이스(1220)는 호스트(1100)의 메모리 자원과 스토리지 장치(2100)의 메모리 자원을 상호 공유하기 위한 인터페이싱 방식일 수 있다. 예를 들어, 호스트 인터페이스(1220)에 의해서 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(1120)와 스토리지 장치(1200)의 내부 버퍼를 하나의 메모리 맵으로 관리할 수 있다.The host interface 1220 is provided as a physical communication channel of the storage device 1200 for data exchange with the host 1100 . The host interface 1220 may have an interfacing protocol through which the host memory buffer 1120 may support the buffer function of the storage device 1200 . That is, the host interface 1220 may be an interfacing method for mutually sharing memory resources of the host 1100 and memory resources of the storage device 2100 . For example, the storage controller 1240 may manage the host memory buffer 1120 and an internal buffer of the storage device 1200 as one memory map through the host interface 1220 .

스토리지 컨트롤러(1240)는 스토리지 장치(1200)의 전반적인 동작을 제어한다. 스토리지 컨트롤러(1240)는 호스트(1100)로부터 수신된 리텐션 커맨드에 기초하여 호스트 메모리 버퍼(1120)의 운영 모드를 선택하는 동작 모드 컨트롤러(1243)를 포함한다.The storage controller 1240 controls overall operations of the storage device 1200 . The storage controller 1240 includes an operation mode controller 1243 that selects an operation mode of the host memory buffer 1120 based on a retention command received from the host 1100 .

동작 모드 컨트롤러(1243)는 호스트(1100)로부터 리텐션 커맨드를 수신하고, 리텐션 커맨드에 기초하여 리텐션이 발생한 호스트 메모리 버퍼(1120)의 리텐션 레벨을 확인한다. 또한, 동작 모드 컨트롤러(1243)는 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)에 대한 운용 모드들 중 최적의 성능을 발휘하는 모드를 선택하고, 선택된 모드에 따라 리텐션이 발생한 호스트 메모리 버퍼(1120)를 운용할 수 있다. The operation mode controller 1243 receives a retention command from the host 1100 and checks the retention level of the host memory buffer 1120 where retention occurs based on the retention command. In addition, the operation mode controller 1243 selects a mode that exhibits optimal performance among operation modes for the host memory buffer 1120 based on the retention level, and the host memory buffer in which retention occurs according to the selected mode ( 1120) can be operated.

예를 들어, 동작 모드 컨트롤러(1243)는 리텐션 레벨에 따라 스토리지 장치(1200)의 호스트 메모리 버퍼(1120)에 대한 접근을 허용하거나 차단하는 모드를 선택할 수 있다. 또한, 동작 모드 컨트롤러(1243)는 리텐션 레벨에 따라 호스트 메모리 버퍼(1120)에 저장된 데이터 중 일부를 회수하고, 회수된 데이터를 스토리지 장치(1200)의 내부에 저장하는 모드를 선택할 수 있다. 이와 같이, 리텐션 레벨에 따라 리텐션이 발생한 호스트 메모리 버퍼(1120)의 운용 모드를 달리함으로써, 메모리 시스템(1000A)의 전체적인 성능이 향상될 수 있다.For example, the operation mode controller 1243 may select a mode allowing or blocking access to the host memory buffer 1120 of the storage device 1200 according to the retention level. Also, the operation mode controller 1243 may select a mode for retrieving some of the data stored in the host memory buffer 1120 according to the retention level and storing the retrieved data in the storage device 1200 . In this way, by changing the operation mode of the host memory buffer 1120 in which retention occurs according to the retention level, overall performance of the memory system 1000A may be improved.

불휘발성 메모리 장치(1260)는 스토리지 장치(1200)의 저장 매체로 제공된다. 불휘발성 메모리 장치(1260)는 플래시 메모리, PRAM, MRAM, ReRAM, FRAM, 자기 디스크 등과 같은 불휘발성 메모리를 포함할 수 있다.The nonvolatile memory device 1260 is provided as a storage medium of the storage device 1200 . The nonvolatile memory device 1260 may include nonvolatile memory such as flash memory, PRAM, MRAM, ReRAM, FRAM, and a magnetic disk.

이상에서 살펴본 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(1000A)은 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)에 대한 운용 모드들 중 최적의 모드를 선택하고, 선택된 모드에 따라 호스트 메모리 버퍼(1120)를 운용한다. 이와 같이, 리텐션 레벨에 따라 호스트 메모리 버퍼(1120)의 운용을 달리함으로써, 메모리 시스템(1000A)의 전체적인 성능이 향상될 수 있다.As described above, the memory system 1000A according to an embodiment of the present invention selects an optimal mode among operation modes for the host memory buffer 1120 based on the retention level, and selects the host memory buffer 1120 according to the selected mode. Operate the buffer 1120. In this way, by varying the operation of the host memory buffer 1120 according to the retention level, overall performance of the memory system 1000A may be improved.

도 2는 도 1의 호스트 메모리(1130)의 일 예를 보여주는 블록도이다. 도 2에서는, 설명의 편의상, 호스트 메모리 버퍼(1120)가 제1 내지 제3 HMB 영역들(1122, 1124, 1126)로 구분된다고 가정된다.FIG. 2 is a block diagram showing an example of the host memory 1130 of FIG. 1 . In FIG. 2 , for convenience of description, it is assumed that the host memory buffer 1120 is divided into first to third HMB areas 1122 , 1124 , and 1126 .

호스트 메모리(1130)는 호스트(1100)에 구비된 메모리이다. 호스트 메모리(1130)는 호스트(1100)에 의해 요청되는 데이터를 저장하거나 출력할 수 있다. 예를 들어, 호스트 메모리(1130)는 DRAM이나 SRAM과 같은 휘발성 메모리로 구현될 수 있다. 그러나, 호스트 메모리(1130)의 구현은 목적에 따라 다양하게 구현될 수 있으며, 불휘발성 메모리로도 구현될 수 있다. The host memory 1130 is a memory included in the host 1100 . The host memory 1130 may store or output data requested by the host 1100 . For example, the host memory 1130 may be implemented with volatile memory such as DRAM or SRAM. However, the host memory 1130 may be implemented in various ways according to purposes, and may also be implemented as a non-volatile memory.

호스트 메모리 버퍼(1120)는 스토리지 장치(1200)의 버퍼로 사용될 수 있도록 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)에 할당한 영역이다. 즉, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)를 내부 버퍼(internal buffer)로서 사용할 수 있다. 스토리지 장치(1200)에 구비되는 내부 버퍼의 경우, 비용, 장치 사이즈, 설계상 한계 등과 같은 다양한 이슈들 때문에, 충분한 용량을 제공하기 어려울 수 있다. 그러나, 본 발명의 실시 예에 따른 호스트(1100)는 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)가 사용하도록 스토리지 장치(1200)에 할당하였기 때문에, 스토리지 장치(1200)는 충분한 버퍼 용량을 확보할 수 있다. The host memory buffer 1120 is an area in which a portion of the host memory 1130 is allocated to the storage device 1200 so that it can be used as a buffer of the storage device 1200 . That is, the storage device 1200 may use the host memory buffer 1120 as an internal buffer. In the case of an internal buffer provided in the storage device 1200, it may be difficult to provide sufficient capacity due to various issues such as cost, device size, and design limitations. However, since the host 1100 according to an embodiment of the present invention allocates a portion of the host memory 1130 to the storage device 1200 for use by the storage device 1200, the storage device 1200 has sufficient buffer capacity. can be obtained.

호스트 메모리 버퍼(1120)는 다양한 기준에 따라 복수의 HMB 영역들(1122, 1124, 1126)로 구분될 수 있다. The host memory buffer 1120 may be divided into a plurality of HMB areas 1122, 1124, and 1126 according to various criteria.

일 실시 예에 있어서, 호스트 메모리 버퍼(1120)는 저장되는 데이터의 접근 빈도에 따라 복수의 HMB 영역들(1122, 1124, 1126)로 구분될 수 있다. 예를 들어, 제1 HMB 영역(1122)에는 스토리지 장치(1200)의 접근 빈도가 높은 데이터가 저장되고, 제2 HMB 영역(1124)에는 스토리지 장치(1200)의 접근 빈도가 중간인 데이터가 저장되며, 제3 HMB 영역(1126)에는 스토리지 장치(1200)의 접근 빈도가 낮은 데이터가 저장될 수 있다. In one embodiment, the host memory buffer 1120 may be divided into a plurality of HMB areas 1122, 1124, and 1126 according to the access frequency of stored data. For example, data with high access frequency of the storage device 1200 is stored in the first HMB area 1122, and data with medium access frequency of the storage device 1200 is stored in the second HMB area 1124. In the third HMB area 1126 , data with a low access frequency of the storage device 1200 may be stored.

또한, 일 실시 예에 있어서, 호스트 메모리 버퍼(1120)는 저장되는 데이터의 종류에 따라 복수의 HMB 영역들(1122, 1124, 1126)로 구분될 수 있다. 예를 들어, 제1 HMB 영역(1122)에는 스토리지 장치(1200)의 맵핑 데이터가 저장되고, 제2 HMB 영역(1124)에는 사용자 데이터가 저장되며, 제3 HMB 영역(1126)에는 스토리지 장치(1200)를 관리하기 위한 관리 데이터가 저장될 수 있다. 한편, 호스트 메모리 버퍼(1120)는 저장되는 데이터의 속성 이외에도 메모리 셀들의 열화 정도 등 다양한 기준에 따라 복수의 HMB 영역들(1122, 1124, 1126)로 구분될 수 있다.Also, according to an embodiment, the host memory buffer 1120 may be divided into a plurality of HMB areas 1122, 1124, and 1126 according to the type of data to be stored. For example, mapping data of the storage device 1200 is stored in the first HMB area 1122 , user data is stored in the second HMB area 1124 , and storage device 1200 is stored in the third HMB area 1126 . ) Management data for managing the may be stored. Meanwhile, the host memory buffer 1120 may be divided into a plurality of HMB areas 1122, 1124, and 1126 according to various criteria, such as the degree of deterioration of memory cells, in addition to attributes of stored data.

리텐션은 호스트 메모리 버퍼(1120)의 복수의 HMB 영역들(1122, 1124, 1126) 중 일부 영역에 발생할 수 있다. 이 경우, 호스트(1100)는 복수의 HMB 영역들(1122, 1124, 1126) 중 리텐션이 발생한 HMB 영역에 대한 리텐션 커맨드를 스토리지 장치(1200, 도 1 참조)에 전송할 수 있다. 스토리지 장치(1200)는 HMB 영역에 대한 리텐션 커맨드를 수신하고, 동작 모드 컨트롤러(1243, 도 1 참조)는 리텐션 커맨드에 기초하여 리텐션이 발생한 HMB 영역에 대한 운영 모드를 선택할 수 있다. Retention may occur in some of the plurality of HMB areas 1122 , 1124 , and 1126 of the host memory buffer 1120 . In this case, the host 1100 may transmit a retention command for an HMB area in which retention occurs among the plurality of HMB areas 1122 , 1124 , and 1126 to the storage device 1200 (see FIG. 1 ). The storage device 1200 may receive a retention command for the HMB area, and the operation mode controller 1243 (see FIG. 1 ) may select an operation mode for the HMB area where retention occurs based on the retention command.

도 3은 도 1의 스토리지 컨트롤러(1240)의 구성을 예시적으로 보여주는 블록도이다. 도 3을 참조하면, 스토리지 컨트롤러(1240)는 CPU(1241), 동작 모드 컨트롤러(1243), 및 플래시 인터페이스(1245)을 포함한다.FIG. 3 is a block diagram showing the configuration of the storage controller 1240 of FIG. 1 as an example. Referring to FIG. 3 , the storage controller 1240 includes a CPU 1241 , an operation mode controller 1243 , and a flash interface 1245 .

CPU(1241)는 스토리지 장치(1100)의 전반적인 동작을 제어할 수 있다. 예를 들어, CPU(1241)는 호스트(1100)로부터의 커맨드에 응답하여 불휘발성 메모리 장치(1260)에 데이터를 기입하거나 불휘발성 메모리 장치(1260)에 저장된 데이터를 읽어 내기 위해 플래시 인터페이스(1245)를 제어할 수 있다. The CPU 1241 may control overall operations of the storage device 1100 . For example, the CPU 1241 uses a flash interface 1245 to write data to the nonvolatile memory device 1260 or to read data stored in the nonvolatile memory device 1260 in response to a command from the host 1100. can control.

동작 모드 컨트롤러(1243)는 호스트 인터페이스(1220, 도 1 참조)를 통하여 호스트 메모리 버퍼(1120)에 대한 리텐션 커맨드를 수신한다. 동작 모드 컨트롤러(1243)는 호스트 메모리 버퍼(1120)의 리텐션 레벨을 확인하고, 이에 기초하여 호스트 메모리 버퍼(1120)에 대한 복수의 운용 모드들 중 최적의 모드를 선택한다. 이를 위해, 동작 모드 컨트롤러(1243)는 리텐션 레벨 확인 모듈(1242) 및 동작 모드 결정 모듈(1244)을 포함할 수 있다.The operation mode controller 1243 receives a retention command for the host memory buffer 1120 through the host interface 1220 (refer to FIG. 1). The operation mode controller 1243 checks the retention level of the host memory buffer 1120 and selects an optimal mode among a plurality of operation modes for the host memory buffer 1120 based on this. To this end, the operation mode controller 1243 may include a retention level check module 1242 and an operation mode determination module 1244 .

리텐션 레벨 확인 모듈(1242)은 리텐션 커맨드에 포함된 호스트 메모리 버퍼(1120)에 대한 리텐션 레벨을 확인한다. 예를 들어, 호스트 메모리 버퍼(1120)가 복수의 HMB 영역들로 구분되는 경우, 리텐션 레벨 확인 모듈(1242)은 복수의 HMB 영역들 중 리텐션이 발생한 HMB 영역의 리텐션 레벨을 확인할 수 있다. The retention level checking module 1242 checks the retention level of the host memory buffer 1120 included in the retention command. For example, when the host memory buffer 1120 is divided into a plurality of HMB areas, the retention level checking module 1242 may check the retention level of the HMB area where retention occurs among the plurality of HMB areas. .

동작 모드 결정 모듈(1244)은 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)에 대한 운용 모드들 중 최적의 모드를 선택하고, 선택된 모드에 따라 리텐션이 발생한 호스트 메모리 버퍼(1120)를 운용할 수 있다. The operation mode determination module 1244 selects an optimal mode among operation modes for the host memory buffer 1120 based on the retention level, and operates the host memory buffer 1120 in which retention occurs according to the selected mode. can

예를 들어, 이하에서 설명될 바와 같이, 동작 모드 결정 모듈(1244)은 리텐션 레벨에 따라 제1 내지 제3 모드(Mode1~Mode3) 중 하나의 모드를 선택할 수 있다. 제1 모드(Mode1)가 선택된 경우, 동작 모드 결정 모듈(1244)은 스토리지 장치(1200)가 리텐션이 발생한 호스트 메모리 버퍼(1120)에 접근하는 것을 허용할 수 있다. 제2 모드(Mode2)가 선택된 경우, 동작 모드 결정 모듈(1244)은 스토리지 장치(1200)가 리텐션이 발생한 호스트 메모리 버퍼(1120)에 접근하는 것을 허용하되, 자주 사용하는 데이터를 리텐션이 발생한 호스트 메모리 버퍼(1120)로부터 회수하여 스토리지 장치(1200)에 저장할 수 있다. 제3 모드(Mode 3)가 선택된 경우, 동작 모드 결정 모듈(1244)은 스토리지 장치(1200)가 리텐션이 발생한 호스트 메모리 버퍼(1120)에 접근하는 것을 허용하지 않을 수 있다.For example, as described below, the operation mode determination module 1244 may select one of the first to third modes (Mode1 to Mode3) according to the retention level. When the first mode (Mode1) is selected, the operation mode determination module 1244 may allow the storage device 1200 to access the host memory buffer 1120 where retention occurs. When the second mode (Mode2) is selected, the operation mode determination module 1244 allows the storage device 1200 to access the host memory buffer 1120 where retention occurs, but frequently uses data where retention occurs. Data may be retrieved from the host memory buffer 1120 and stored in the storage device 1200 . When the third mode (Mode 3) is selected, the operation mode determination module 1244 may not allow the storage device 1200 to access the host memory buffer 1120 where retention occurs.

도 4는 리텐션 커맨드의 일 예를 예시적으로 보여주는 도면이다. 설명의 편의상, 도 4에서는 호스트 메모리 버퍼(1120, 도 1 참조)가 제1 내지 제3 HMB 영역들(HMB1~HMB3)로 구분되고, 제1 내지 제3 HMB 영역들(HMB1~HMB3) 각각에 리텐션이 발생한다고 가정된다. 4 is a diagram showing an example of a retention command by way of example. For convenience of explanation, in FIG. 4 , the host memory buffer 1120 (see FIG. 1 ) is divided into first to third HMB areas HMB1 to HMB3 , respectively, to the first to third HMB areas HMB1 to HMB3 . It is assumed that retention occurs.

도 4를 참조하면, 리텐션 커맨드는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 어드레스(ADDR) 및 리텐션 레벨(Retention Level)을 포함한다. Referring to FIG. 4 , the retention command includes an address ADDR of the host memory buffer 1120 where retention occurs and a retention level.

리텐션 레벨은 응답 속도의 지연 정도에 따라 복수의 레벨들로 구분될 수 있다. 호스트(1100, 도 1 참조)는 호스트 메모리 버퍼(1120)의 응답 속도의 지연 정도에 기초하여, 리텐션이 발생한 호스트 메모리 버퍼(1120)의 리텐션 레벨을 결정할 수 있다. The retention level may be divided into a plurality of levels according to the degree of delay in response speed. The host 1100 (refer to FIG. 1 ) may determine a retention level of the host memory buffer 1120 where retention occurs, based on the degree of delay of the response speed of the host memory buffer 1120 .

예를 들어, 도 4에 도시된 바와 같이, 제1 HMB 내지 제3 HMB 영역(HMB1~HMB3)의 예상 응답 시간이 각각 500ms, 200ms, 90ms라고 가정하자. 그리고, 제1 및 제2 기준 응답 시간(TH1, TH2)이 각각 90ms, 300ms라고 가정하자. For example, as shown in FIG. 4 , it is assumed that the expected response times of the first to third HMB areas HMB1 to HMB3 are 500 ms, 200 ms, and 90 ms, respectively. Also, assume that the first and second reference response times TH1 and TH2 are 90 ms and 300 ms, respectively.

제1 HMB 영역(HMB1)의 예상 응답 시간은 500ms로, 이는 제2 기준 응답 시간(TH2)인 300ms보다 크다. 이 경우, 호스트(1100)는 제1 HMB 영역(HMB1)의 응답 속도가 매우 느린 것으로 판단할 수 있으며, 제1 HMB 영역(HMB1)의 리텐션 레벨을 'X'로 결정할 수 있다. 여기서, 'X'의 리텐션 레벨은 호스트 메모리 버퍼로 사용 불가능한 상태임을 가리킬 수 있다. 리텐션 레벨이 'X' 인 경우, 동작 모드 결정 모듈(1244, 도 3 참조)은 제1 HMB 영역(HMB1)의 운용 모드로 제3 모드(Mode3)를 선택할 수 있다. 이에 따라, 스토리지 장치(1200)가 제1 HMB 영역(HMB1)에 접근하는 것이 차단될 수 있다.The expected response time of the first HMB area HMB1 is 500 ms, which is greater than the second standard response time TH2 of 300 ms. In this case, the host 1100 may determine that the response speed of the first HMB area HMB1 is very slow, and may determine the retention level of the first HMB area HMB1 as 'X'. Here, the retention level of 'X' may indicate that the host memory buffer is in an unusable state. When the retention level is 'X', the operation mode determination module 1244 (see FIG. 3 ) may select a third mode (Mode3) as an operation mode of the first HMB area HMB1. Accordingly, access of the storage device 1200 to the first HMB area HMB1 may be blocked.

제2 HMB 영역(HMB2)의 예상 응답 시간은 200ms로, 이는 제1 기준 응답 시간(TH1)인 100ms보다는 크고 제2 기준 응답 시간(TH2)인 300ms보다는 작다. 이 경우, 호스트(1100)는 제2 HMB 영역(HMB2)의 응답 속도가 중간 정도 느린 것으로 판단할 수 있으며, 제2 HMB 영역(HMB2)의 리텐션 레벨을 '1'로 결정할 수 있다. 리텐션 레벨이 '1' 인 경우, 동작 모드 결정 모듈(1244)은 제2 HMB 영역(HMB2)의 운용 모드로 제2 모드(Mode2)를 선택할 수 있다. 이에 따라, 스토리지 장치(1200)가 제2 HMB 영역(HMB2)에 접근하는 것이 허용되되, 자주 사용하는 데이터는 제2 HMB 영역(HMB2)으로부터 회수하여 스토리지 장치(1200)에 저장될 수 있다.The expected response time of the second HMB area HMB2 is 200 ms, which is greater than the first standard response time TH1 of 100 ms and less than the second standard response time TH2 of 300 ms. In this case, the host 1100 may determine that the response speed of the second HMB area HMB2 is medium slow, and may determine the retention level of the second HMB area HMB2 as '1'. When the retention level is '1', the operation mode determination module 1244 may select the second mode (Mode2) as an operation mode of the second HMB area HMB2. Accordingly, the storage device 1200 is allowed to access the second HMB area HMB2, but frequently used data can be retrieved from the second HMB area HMB2 and stored in the storage device 1200.

제3 HMB 영역(HMB3)의 예상 응답 시간은 90ms로, 이는 제1 기준 응답 시간(TH1)인 100ms보다는 작다. 이 경우, 호스트(1100)는 제3 HMB 영역(HMB3)의 응답 속도가 조금 느린 것으로 판단할 수 있으며, 제3 HMB 영역(HMB3)의 리텐션 레벨을 '2'로 결정할 수 있다. 리텐션 레벨이 '2' 인 경우, 동작 모드 결정 모듈(1244)은 제3 HMB 영역(HMB3)의 운용 모드로 제1 모드(Mode1)를 선택할 수 있다. 이에 따라, 스토리지 장치(1200)가 제3 HMB 영역(HMB3)에 접근하는 것이 허용되고, 제3 HMB 영역(HMB3)은 리텐션 발생 여부와 무관하게 계속해서 내부 버퍼로서 사용될 수 있다. The expected response time of the third HMB area HMB3 is 90 ms, which is smaller than the first reference response time TH1 of 100 ms. In this case, the host 1100 may determine that the response speed of the third HMB area HMB3 is slightly slow, and may determine the retention level of the third HMB area HMB3 as '2'. When the retention level is '2', the operation mode determination module 1244 may select the first mode (Mode1) as an operation mode of the third HMB area HMB3. Accordingly, the storage device 1200 is allowed to access the third HMB area HMB3, and the third HMB area HMB3 can be continuously used as an internal buffer regardless of whether or not retention occurs.

이상에서 설명된 바와 같이, 본 발명의 실시 예에 따른 호스트(1100)는 응답 속도의 지연 정도에 따라 호스트 메모리 버퍼(1120)의 리텐션 레벨을 설정할 수 있다. 아울러, 동작 모드 컨트롤러(1243)는 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)에 대한 최적의 운용 모드를 선택할 수 있다. As described above, the host 1100 according to an embodiment of the present invention may set the retention level of the host memory buffer 1120 according to the degree of delay in response speed. In addition, the operation mode controller 1243 may select an optimal operation mode for the host memory buffer 1120 based on the retention level.

도 5는 도 1의 메모리 시스템(1000A)의 동작의 일 예를 보여주는 순서도이다.FIG. 5 is a flowchart illustrating an example of an operation of the memory system 1000A of FIG. 1 .

S110 단계에서, 호스트(1100)는 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)가 사용하기 위한 호스트 메모리 버퍼(1120)로 할당한다.In step S110, the host 1100 allocates a portion of the host memory 1130 as the host memory buffer 1120 for use by the storage device 1200.

S120 단계에서, 호스트(1100)는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 응답 속도에 기초하여 리텐션 커맨드를 설정한다. In step S120, the host 1100 sets a retention command based on the response speed of the host memory buffer 1120 where retention occurs.

S130 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 장치(1200)에 전송한다.In step S130 , the host 1100 transmits a retention command to the storage device 1200 .

S140 단계에서, 스토리지 장치(1200)는 리텐션 커맨드를 수신하고, 수신된 리텐션 커맨드에 기초하여 호스트 메모리 버퍼(1120)에 대한 운용 모드를 선택한다. In operation S140 , the storage device 1200 receives a retention command and selects an operation mode for the host memory buffer 1120 based on the received retention command.

S150 단계에서, 스토리지 장치(1200)는 호스트(1100)로부터 리텐션 회복 커맨드(Retention Recovery command)를 수신한다. 이에 따라, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)를 내부 버퍼로 사용하는 동작이 재개(resume)된다. In step S150 , the storage device 1200 receives a retention recovery command from the host 1100 . Accordingly, the operation of using the host memory buffer 1120 as an internal buffer of the storage device 1200 resumes.

도 6은 호스트(1100)가 리텐션 커맨드를 설정하는 도 5의 S120 단계의 일 예를 보여주는 순서도이다. 설명의 편의상, 도 6에서는 도 4와 동일하게 제1 및 제2 기준 응답 시간(TH1, TH2)에 기초하여 리텐션 레벨이 설정된다고 가정된다. 6 is a flowchart illustrating an example of step S120 of FIG. 5 in which the host 1100 sets a retention command. For convenience of description, it is assumed in FIG. 6 that the retention level is set based on the first and second reference response times TH1 and TH2 as in FIG. 4 .

S121 단계에서, 호스트(1100)는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 예상 응답 시간을 확인한다.In step S121, the host 1100 checks the expected response time of the host memory buffer 1120 where retention occurs.

S122 단계에서, 호스트(1100)는 예상 응답 시간이 제1 기준 응답 시간(TH1)보다 큰 지를 확인한다. In step S122, the host 1100 checks whether the expected response time is greater than the first reference response time TH1.

만약 예상 응답 시간이 제1 기준 응답 시간(TH1)보다 작다면, 호스트(1100)는 호스트 메모리 버퍼(1120)의 리텐션 레벨을 '2'로 설정한다(S123 단계). 반대로, 만약 예상 응답 시간이 제1 기준 응답 시간(TH1)보다 크다면, 호스트(1100)는 예상 응답 시간이 제2 기준 응답 시간(TH2)보다 큰 지를 확인한다(S124 단계). If the expected response time is less than the first reference response time TH1, the host 1100 sets the retention level of the host memory buffer 1120 to '2' (step S123). Conversely, if the expected response time is greater than the first reference response time TH1, the host 1100 checks whether the expected response time is greater than the second reference response time TH2 (step S124).

만약 예상 응답 시간이 제2 기준 응답 시간(TH2)보다 작다면, 호스트(1100)는 호스트 메모리 버퍼(1120)의 리텐션 레벨을 '1'로 설정한다(S125 단계). 반대로, 만약 예상 응답 시간이 제2 기준 응답 시간(TH2)보다 크다면, 호스트(1100)는 호스트 메모리 버퍼(1120)의 리텐션 레벨을 'X'로 설정한다(S126 단계).If the expected response time is less than the second reference response time TH2, the host 1100 sets the retention level of the host memory buffer 1120 to '1' (step S125). Conversely, if the expected response time is greater than the second reference response time TH2, the host 1100 sets the retention level of the host memory buffer 1120 to 'X' (step S126).

이상에서 설명된 바와 같이, 호스트(1100)는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 응답 속도에 따라 리텐션 레벨을 설정할 수 있다. As described above, the host 1100 may set the retention level according to the response speed of the host memory buffer 1120 where retention occurs.

도 7은 스토리지 장치(1200)가 운용 모드를 선택하는 도 5의 S140 단계의 일 예를 보여주는 순서도이다. 설명의 편의상, 도 7에서는 리텐션 레벨이 '2', '1', 'X'인 리텐션 커맨드가 수신된다고 가정된다.FIG. 7 is a flowchart illustrating an example of step S140 of FIG. 5 in which the storage device 1200 selects an operation mode. For convenience of explanation, it is assumed in FIG. 7 that retention commands having retention levels of '2', '1', and 'X' are received.

S141 단계에서, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)의 리텐션 레벨을 확인한다. 만약 리텐션 레벨이 '2'라면, 제1 모드(Mode1)를 선택하는 S142 단계가 수행된다. 만약 리텐션 레벨이 '1'라면, 제2 모드(Mode2)를 선택하는 S143 단계가 수행된다. 만약 리텐션 레벨이 'X'라면, 제3 모드(Mode1)를 선택하는 S144 단계가 수행된다.In step S141 , the storage device 1200 checks the retention level of the host memory buffer 1120 . If the retention level is '2', step S142 of selecting the first mode (Mode1) is performed. If the retention level is '1', step S143 of selecting the second mode (Mode2) is performed. If the retention level is 'X', step S144 of selecting the third mode (Mode1) is performed.

S142 단계에서, 스토리지 장치(1200)는 제1 모드(Mode1)를 선택한다. 이 경우, 스토리지 장치(1200)는 리텐션이 발생한 호스트 메모리 버퍼(1120)에 접근할 수 있다. 즉, 리텐션으로 인한 응답 속도의 저하가 전체적인 성능에 미치는 영향이 미미하기 때문에, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)를 리텐션 발생 여부와 무관하게 계속해서 내부 버퍼로 사용할 수 있다. In step S142, the storage device 1200 selects the first mode (Mode1). In this case, the storage device 1200 may access the host memory buffer 1120 where retention occurs. That is, since the decrease in response speed due to retention has little effect on overall performance, the storage device 1200 may continue to use the host memory buffer 1120 as an internal buffer regardless of whether or not retention occurs.

S143 단계에서, 스토리지 장치(1200)는 제2 모드(Mode2)를 선택한다. 이 경우, 스토리지 장치(1200)는 리텐션이 발생한 호스트 메모리 버퍼(1120)에 접근할 수는 있으나, 원활한 동작을 위하여 호스트 메모리 버퍼(1120)로의 접근은 최소화될 수 있다. 이를 위해, 스토리지 장치(1200)는 자주 사용하는 데이터를 호스트 메모리 버퍼(1120)로부터 회수하고, 이를 저장할 수 있다.In step S143, the storage device 1200 selects the second mode (Mode2). In this case, the storage device 1200 may access the host memory buffer 1120 where retention occurs, but access to the host memory buffer 1120 may be minimized for smooth operation. To this end, the storage device 1200 may retrieve frequently used data from the host memory buffer 1120 and store it.

좀 더 자세히 설명하면, S143_1 단계에서, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)에 접근할 수 있다. S143_2 단계에서, 스토리지 장치(1200)는 자주 사용하는 데이터를 호스트 메모리 버퍼(1120)로부터 회수하고, 이를 내부에 저장할 수 있다. S143_3 단계에서, 스토리지 장치(1200)는 회수된 데이터를 이용하여 각종 백그라운드 동작을 수행할 수 있다. 또한, 필요에 따라, 스토리지 장치(1200)는 다시 호스트 메모리 버퍼(1120)에 접근하고, 필요한 데이터를 더 회수할 수도 있다.More specifically, in step S143_1, the storage device 1200 may access the host memory buffer 1120. In step S143_2 , the storage device 1200 may retrieve frequently used data from the host memory buffer 1120 and store it therein. In step S143_3, the storage device 1200 may perform various background operations using the retrieved data. Also, if necessary, the storage device 1200 may access the host memory buffer 1120 again and further retrieve necessary data.

한편, S144 단계에서, 스토리지 장치(1200)는 제3 모드(Mode3)를 선택한다. 이 경우, 스토리지 장치(1200)가 리텐션이 발생한 호스트 메모리 버퍼(1120)에 접근하는 것은 허용되지 않는다. 다만, 백그라운드 동작에 필요한 데이터의 회수가 필요한지 여부에 따라, 스토리지 장치(1200)의 호스트 메모리 버퍼(1120)에 대한 접근 차단은 필요한 데이터를 회수한 이후에 실행될 수 있다.Meanwhile, in step S144, the storage device 1200 selects the third mode (Mode3). In this case, the storage device 1200 is not permitted to access the host memory buffer 1120 where retention occurs. However, depending on whether data necessary for the background operation needs to be recovered, blocking access to the host memory buffer 1120 of the storage device 1200 may be executed after necessary data is recovered.

좀 더 자세히 설명하면, S144_1 단계에서, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)에 백그라운드 동작 등을 위해서 필요한 데이터가 있는지 판단한다. More specifically, in step S144_1, the storage device 1200 determines whether there is data necessary for a background operation or the like in the host memory buffer 1120.

만약 필요한 데이터가 없다면, 스토리지 장치(1200)가 호스트 메모리 버퍼(1120)에 접근하는 것이 허용되지 않는다(S144_6 단계). 이 경우, 스토리지 장치(1200)는 딥 슬립(deep sleep) 상태에 진입하거나, 이전에 저장된 데이터를 이용하여 백그라운드 동작을 수행할 수 있다.If there is no required data, the storage device 1200 is not allowed to access the host memory buffer 1120 (step S144_6). In this case, the storage device 1200 may enter a deep sleep state or perform a background operation using previously stored data.

반대로, 만약 필요한 데이터가 있다면, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)에 접근한다(S144_2 단계). 이후, 스토리지 장치(1200)는 백그라운드 동작 등에 필요한 데이터를 호스트 메모리 버퍼(1120)로부터 회수하고, 이를 내부에 저장한다(S144_3 단계). 이후, 스토리지 장치(1200)의 호스트 메모리 버퍼(1120)에 대한 접근이 차단되고(S144_4 단계), 스토리지 장치(1200)는 회수된 데이터를 이용하여 백그라운드 동작을 수행할 수 있다.Conversely, if necessary data exists, the storage device 1200 accesses the host memory buffer 1120 (step S144_2). Thereafter, the storage device 1200 retrieves data necessary for a background operation from the host memory buffer 1120 and stores the data therein (step S144_3). Thereafter, access of the storage device 1200 to the host memory buffer 1120 is blocked (step S144_4), and the storage device 1200 may perform a background operation using the retrieved data.

이상에서 설명된 바와 같이, 스토리지 장치(1200)는 호스트 메모리 버퍼(1200)의 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)의 운용 모드들 중 최적의 모드를 선택하고, 선택된 모드에 따라 호스트 메모리 버퍼(1120)를 운용할 수 있다.As described above, the storage device 1200 selects an optimal mode among operating modes of the host memory buffer 1120 based on the retention level of the host memory buffer 1200, and the host memory buffer 1200 selects an optimal mode according to the selected mode. The buffer 1120 may be operated.

도 8 및 도 9는 리텐션이 발생 시에 호스트와 스토리지 컨트롤러 사이의 커맨드 전송 동작을 좀 더 자세히 설명하기 위한 도면들이다. 명확한 설명을 위해, 도 8에서는 일반적인 호스트와 스토리지 컨트롤러 사이의 커맨드 전송 동작이 설명되고, 도 9에서는 본 발명의 실시 예에 따른 호스트(1100, 도 1 참조)와 스토리지 컨트롤러(1240, 도 1 참조) 사이의 커맨드 전송 동작이 설명될 것이다.8 and 9 are diagrams for explaining in detail an operation of transmitting a command between a host and a storage controller when retention occurs. For a clear explanation, in FIG. 8, a command transmission operation between a general host and a storage controller is described, and in FIG. 9, a host 1100 (see FIG. 1) and a storage controller 1240 (see FIG. 1) according to an embodiment of the present invention A command transmission operation between will be described.

먼저, 도 8을 참조하면, S10 단계에서, 호스트는 EHM(Enable Host Memory) 커맨드와 MR(Memory Return) 커맨드의 비트를 각각 '1'로 설정한다. 이에 따라, 호스트 메모리 버퍼가 활성화된 상태에서, 호스트 메모리 버퍼를 호스트로 반납하기 위한 동작이 수행된다. First, referring to FIG. 8 , in step S10, the host sets bits of an enable host memory (EHM) command and a memory return (MR) command to '1', respectively. Accordingly, an operation for returning the host memory buffer to the host is performed while the host memory buffer is activated.

S20 단계에서, 호스트 메모리 버퍼가 비활성화 되기 전에, 스토리지 컨트롤러는 호스트 메모리 버퍼에 저장된 데이터를 회수한다.In step S20, before the host memory buffer is deactivated, the storage controller retrieves data stored in the host memory buffer.

S30 단계에서, 호스트는 EHM 커맨드와 MR 커맨드의 비트를 각각 '0'과 '1'로 설정한다. 이에 따라, 호스트 메모리 버퍼는 비활성화되고, 호스트 메모리 버퍼는 반납(return)된다. In step S30, the host sets bits of the EHM command and the MR command to '0' and '1', respectively. Accordingly, the host memory buffer is deactivated and the host memory buffer is returned.

S40 단계에서, 스토리지 컨트롤러는 딥 슬립 상태에 진입하거나 백그라운드 동작을 수행한다. 이때, 호스트 메모리 버퍼는 이미 반납되었기 때문에, 스토리지 컨트롤러는 호스트 메모리 버퍼에 저장된 데이터를 사용할 수 없다. In step S40, the storage controller enters a deep sleep state or performs a background operation. At this time, since the host memory buffer has already been returned, the storage controller cannot use data stored in the host memory buffer.

S50 단계에서, 호스트 메모리 버퍼가 리텐션에서 회복된다. 이 경우, 호스트는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. 이에 따라, 호스트는 호스트 메모리 버퍼를 스토리지 컨트롤러에 다시 할당하고, 해당 호스트 메모리 버퍼는 활성화된다. In step S50, the host memory buffer is recovered from retention. In this case, the host sets bits of the EHM command and the MR command to '1' and '0', respectively. Accordingly, the host reallocates the host memory buffer to the storage controller, and the host memory buffer is activated.

S60 단계에서, 스토리지 컨트롤러는 호스트 메모리 버퍼에 필요한 데이터를 다시 저장하는 재건(rebuilding) 동작을 수행한다. In step S60, the storage controller performs a rebuilding operation to store necessary data in the host memory buffer again.

이상에서 살펴본 바와 같이, 일반적인 메모리 시스템은 EHM 커맨드 및 MR 커맨드와 같은 셋 특성 커맨드(Set Feature command)만을 제공할 뿐, 본 발명과 같은 리텐션 커맨드를 제공하지 않는다. 따라서, 호스트 메모리 버퍼의 응답 속도가 정상 속도보다 느려지는 리텐션이 발생하는 경우, 일반적인 메모리 시스템은 호스트 메모리 버퍼를 비활성화하고, 리텐션이 발생한 호스트 메모리 버퍼를 반납하는 것이 일반적이다. As described above, general memory systems only provide set feature commands such as the EHM command and the MR command, but do not provide a retention command like the present invention. Accordingly, when retention occurs, in which the response speed of the host memory buffer becomes slower than the normal speed, a general memory system deactivates the host memory buffer and returns the host memory buffer in which retention occurs.

이 경우, 일반적인 메모리 시스템은 호스트 메모리 버퍼가 비활성화되기 전에 호스트 메모리 버퍼에 저장된 데이터를 모두 회수하여야 한다. 따라서, 이에 따른 시간 지연(latency)이 발생하게 된다. 아울러, 리텐션으로부터 회복되면, 일반적인 메모리 시스템은 호스트 메모리 버퍼를 다시 할당하고, 호스트 메모리 버퍼에 데이터를 다시 저장하는 재건(rebuilding) 동작을 수행하여야 한다. 따라서, 이에 따른 시간 지연이 또 발생하게 된다.In this case, a typical memory system must retrieve all data stored in the host memory buffer before the host memory buffer is deactivated. Accordingly, a time delay (latency) occurs accordingly. In addition, upon recovery from retention, a general memory system must perform a rebuilding operation of allocating a host memory buffer again and storing data in the host memory buffer again. Accordingly, a time delay accordingly occurs again.

도 9a는 본 발명의 일 실시 예에 따른 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 도 9a에서는 도 7에서 설명된 제1 모드(Mode1)에서의 커맨드 전송 동작이 예시적으로 설명될 것이다.9A is a diagram illustrating an example of a command transmission operation between the host 1100 and the storage controller 1240 according to an embodiment of the present invention. In FIG. 9A , a command transmission operation in the first mode (Mode1) described in FIG. 7 will be described as an example.

S1110 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. 이에 따라, 호스트 메모리 버퍼(HMB)가 활성화(enable)된 상태에서 이하의 동작이 수행될 수 있다. 아울러, 호스트 메모리 버퍼(HMB)는 반납되지 않는다. In step S1110, the host 1100 sets bits of the EHM command and the MR command to '1' and '0', respectively. Accordingly, the following operation may be performed in a state in which the host memory buffer HMB is enabled. In addition, the host memory buffer (HMB) is not returned.

S1120 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 리텐션 커맨드는 리텐션이 발생한 호스트 메모리 버퍼(HMB)의 어드레스 및 리텐션 레벨을 포함한다. 예를 들어, 도 7과 같이, 리텐션 레벨이 '2'라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 리텐션 레벨이 '2'임을 확인하고, 제1 모드(Mode1)를 호스트 메모리 버퍼(HMB)의 운용 모드로 선택한다. 따라서, 스토리지 컨트롤러(1240)는 리텐션 발생과 무관하게 호스트 메모리 버퍼(HMB)를 계속해서 내부 버퍼로 사용한다.In step S1120, the host 1100 transmits a retention command to the storage controller 1240. The retention command includes the address of the host memory buffer (HMB) where retention occurs and the retention level. For example, as shown in FIG. 7 , assume that the retention level is '2'. In this case, the storage controller 1240 confirms that the retention level is '2' and selects the first mode (Mode1) as an operation mode of the host memory buffer (HMB). Accordingly, the storage controller 1240 continues to use the host memory buffer (HMB) as an internal buffer regardless of whether retention occurs.

S1130 단계에서, 호스트(1100)는 I/O 커맨드를 스토리지 컨트롤러(1240)에 전송한다.In step S1130, the host 1100 transmits an I/O command to the storage controller 1240.

S1140 단계에서, 스토리지 컨트롤러(1240)는 호스트(1100)로부터 수신된 I/O 커맨드를 처리한다. 이때, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)에 자유롭게 접근할 수 있다. In step S1140 , the storage controller 1240 processes the I/O command received from the host 1100 . At this time, the storage controller 1240 can freely access the host memory buffer (HMB).

S1150 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S1150, the host 1100 transmits a retention recovery command to the storage controller 1240.

이상에서 설명된 바와 같이, 제1 모드(Mode1)에서, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)를 반납하지 않고 계속해서 내부 버퍼로 사용한다. 따라서, 도 8의 일반적인 메모리 시스템과 달리, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼에 저장된 데이터를 회수하는 동작(즉, 도 8의 S20단계)을 수행할 필요가 없다. 결과적으로, 호스트 메모리 버퍼(HMB)로부터 데이터를 회수함으로써 발생하는 시간 지연이 방지될 수 있다. As described above, in the first mode (Mode1), the storage controller 1240 according to an embodiment of the present invention does not return the host memory buffer (HMB) and continues to use it as an internal buffer. Therefore, unlike the general memory system of FIG. 8 , the storage controller 1240 according to an embodiment of the present invention does not need to perform an operation to retrieve data stored in the host memory buffer (ie, step S20 of FIG. 8 ). As a result, time delay caused by retrieving data from the host memory buffer (HMB) can be prevented.

아울러, 호스트 메모리 버퍼(HMB)를 계속해서 내부 버퍼로 사용하기 때문에, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)를 재건하는 동작(즉, 도 8의 S60 단계)을 수행할 필요가 없다. 따라서, 호스트 메모리 버퍼(HMB) 재건으로 인하여 발생하는 시간 지연 역시 방지될 수 있다.In addition, since the host memory buffer (HMB) is continuously used as an internal buffer, the storage controller 1240 according to an embodiment of the present invention rebuilds the host memory buffer (HMB) (ie, step S60 of FIG. 8) do not need to be performed. Accordingly, a time delay caused by rebuilding the host memory buffer (HMB) can also be prevented.

도 9b는 본 발명의 일 실시 예에 따른 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 도 9b에서는 도 7에서 설명된 제2 모드(Mode2)에서의 커맨드 전송 동작의 일 예가 설명될 것이다. 9B is a diagram illustrating an example of a command transmission operation between the host 1100 and the storage controller 1240 according to an embodiment of the present invention. In FIG. 9B , an example of a command transmission operation in the second mode (Mode2) described in FIG. 7 will be described.

S1210 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. 이에 따라, 호스트 메모리 버퍼(HMB)가 활성화된 상태에서 이하의 동작이 수행될 수 있다.In step S1210, the host 1100 sets bits of the EHM command and the MR command to '1' and '0', respectively. Accordingly, the following operation may be performed in a state in which the host memory buffer (HMB) is activated.

S1220 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 예를 들어, 도 7과 같이, 리텐션 레벨이 '1'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 리텐션 레벨이 '1'임을 확인하고, 이에 대응하는 제2 모드(Mode2)를 호스트 메모리 버퍼(HMB)의 운용 모드로 선택할 수 있다.In step S1220, the host 1100 transmits a retention command to the storage controller 1240. For example, as shown in FIG. 7 , assume that the retention level is '1'. In this case, the storage controller 1240 may confirm that the retention level is '1' and select a second mode (Mode2) corresponding to the retention level as an operation mode of the host memory buffer (HMB).

S1230 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)로부터 자주 사용하는 데이터를 회수하고, 이를 스토리지 장치(1200)에 저장한다. In step S1230 , the storage controller 1240 retrieves frequently used data from the host memory buffer (HMB) and stores it in the storage device 1200 .

S1240 단계에서, 스토리지 컨트롤러(1240)는 회수된 데이터를 이용하여 백그라운드 동작을 수행한다. 이때, 만약 백그라운드 동작에 필요하다면, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)에 다시 접근하여 필요한 데이터를 더 회수할 수도 있다. 다만, S1230 단계에서 자주 사용하는 데이터가 이미 회수되었기 때문에, 스토리지 컨트롤러(1240)의 호스트 메모리 버퍼(HMB)에 대한 접근은 최소화될 수 있다.In step S1240, the storage controller 1240 performs a background operation using the retrieved data. At this time, if necessary for the background operation, the storage controller 1240 may access the host memory buffer (HMB) again to retrieve more necessary data. However, since frequently used data has already been retrieved in step S1230, access to the host memory buffer (HMB) of the storage controller 1240 can be minimized.

S1250 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S1250, the host 1100 transmits a retention recovery command to the storage controller 1240.

S1260 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)의 컨텐츠를 업데이트 한다.In step S1260, the storage controller 1240 updates the contents of the host memory buffer (HMB).

이상에서 설명된 바와 같이, 제2 모드(Mode2)에서, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 리텐션이 발생한 호스트 메모리 버퍼(HMB)로의 접근이 최소화될 수 있도록 동작할 수 있다. 특히, 도 8의 일반적인 스토리지 컨트롤러가 호스트 메모리 버퍼에 저장된 데이터를 모두 회수함에 반하여, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)로부터 자주 사용하는 데이터만을 회수할 수 있다. 따라서, 데이터 회수로 인한 시간 지연이 감소될 수 있다. As described above, in the second mode (Mode2), the storage controller 1240 according to an embodiment of the present invention may operate to minimize access to the host memory buffer (HMB) where retention occurs. In particular, while the general storage controller of FIG. 8 retrieves all data stored in the host memory buffer, the storage controller 1240 according to an embodiment of the present invention can retrieve only frequently used data from the host memory buffer (HMB). . Thus, time delay due to data retrieval can be reduced.

아울러, 본 발명의 실시 예에 따른 호스트(1100)는 MR 커맨드의 비트를 계속해서 '0'으로 설정한다. 따라서, 호스트 메모리 버퍼(HMB)는 반납되지 않으며, 호스트 메모리 버퍼(HMB)에 저장된 데이터는 계속해서 유지된다. 따라서, 도 8의 일반적인 스토리지 컨트롤러가 새로 할당된 호스트 메모리 버퍼에 데이터를 모두 다시 저장해야 하는 것에 비하여, 본 발명의 실시 예에 따른 스토리지 커트롤러(1240)는 변경된 데이터만을 업데이트할 수 있다. 결과적으로, 호스트 메모리 버퍼(HMB)의 재개(resume) 동작에 소요되는 시간이 감소될 수 있다.In addition, the host 1100 according to an embodiment of the present invention continuously sets the bit of the MR command to '0'. Therefore, the host memory buffer HMB is not returned, and the data stored in the host memory buffer HMB is continuously maintained. Accordingly, the storage controller 1240 according to an embodiment of the present invention may update only changed data, compared to the general storage controller of FIG. 8 having to store all data again in the newly allocated host memory buffer. As a result, the time required for the resume operation of the host memory buffer HMB may be reduced.

도 9c는 본 발명의 일 실시 예에 따른 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 도 9c에서는 도 7에서 설명된 제2 모드(Mode2)에서의 커맨드 전송 동작의 다른 예가 설명될 것이다. 도 9c에서 설명되는 동작은 도 9b의 동작과 유사하다. 따라서, 중복되는 설명은 이하 생략될 것이다.9C is a diagram showing an example of a command transmission operation between the host 1100 and the storage controller 1240 according to an embodiment of the present invention. In FIG. 9C , another example of a command transmission operation in the second mode (Mode2) described in FIG. 7 will be described. The operation described in FIG. 9C is similar to that of FIG. 9B. Therefore, redundant descriptions will be omitted below.

S1310 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S1310, the host 1100 sets bits of the EHM command and the MR command to '1' and '0', respectively.

S1320 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 예를 들어, 리텐션 레벨은 '1'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 제2 모드(Mode2)를 선택한다.In step S1320, the host 1100 transmits a retention command to the storage controller 1240. For example, let's assume that the retention level is '1'. In this case, the storage controller 1240 selects the second mode (Mode2).

S1330 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)로부터 자주 사용하는 데이터를 회수하고, 이를 스토리지 장치(1200)에 저장한다. In step S1330 , the storage controller 1240 retrieves frequently used data from the host memory buffer (HMB) and stores it in the storage device 1200 .

S1340 단계에서, 호스트(1100)는 I/O 커맨드를 스토리지 컨트롤러(1240)로 전송한다.In step S1340, the host 1100 transmits an I/O command to the storage controller 1240.

S1350 단계에서, 스토리지 컨트롤러(1240)는 회수된 데이터를 이용하여 I/O 커맨드를 처리한다. 이때, 만약 I/O 커맨드 처리에 필요하다면, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)에 다시 접근하여 필요한 데이터를 더 회수할 수도 있다. 다만, S1330 단계에서 자주 사용하는 데이터를 이미 회수하였기 때문에, 스토리지 컨트롤러(1240)의 호스트 메모리 버퍼(HMB)에 대한 접근은 최소화될 수 있다.In step S1350, the storage controller 1240 processes an I/O command using the retrieved data. At this time, if necessary to process the I/O command, the storage controller 1240 may re-access the host memory buffer (HMB) to further retrieve necessary data. However, since frequently used data has already been retrieved in step S1330, access to the host memory buffer (HMB) of the storage controller 1240 can be minimized.

S1360 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복 커맨드를 전송한다. In step S1360 , the host 1100 transmits a retention recovery command to the storage controller 1240 .

S1370 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)를 업데이트 한다.In step S1370, the storage controller 1240 updates the host memory buffer (HMB).

이상에서 설명된 바와 같이, 제2 모드(Mode2)에서, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 리텐션이 발생한 호스트 메모리 버퍼(HMB)에 대한 접근을 최소화한 상태에서 I/O 커맨드를 처리할 수 있다. As described above, in the second mode (Mode2), the storage controller 1240 according to an embodiment of the present invention minimizes access to the host memory buffer (HMB) where retention occurs and commands I/O commands. can handle

도 9d는 본 발명의 일 실시 예에 따른 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 도 9d에서는 도 7에서 설명된 제3 모드(Mode3)에서의 커맨드 전송 동작의 일 예가 설명될 것이다.9D is a diagram illustrating an example of a command transmission operation between the host 1100 and the storage controller 1240 according to an embodiment of the present invention. In FIG. 9D , an example of a command transmission operation in the third mode (Mode3) described in FIG. 7 will be described.

S1410 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S1410, the host 1100 sets bits of the EHM command and the MR command to '1' and '0', respectively.

S1420 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 예를 들어, 도 7과 같이, 리텐션 레벨은 'X'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 제3 모드(Mode3)를 선택한다.In step S1420, the host 1100 transmits a retention command to the storage controller 1240. For example, as shown in FIG. 7 , assume that the retention level is 'X'. In this case, the storage controller 1240 selects the third mode (Mode3).

S1430 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)로부터 백그라운드 동작에 필요한 데이터를 회수하고, 이를 스토리지 장치(1200)에 저장한다. In step S1430 , the storage controller 1240 retrieves data necessary for a background operation from the host memory buffer (HMB) and stores it in the storage device 1200 .

S1440 단계에서, 스토리지 컨트롤러(1240)는 호스트(1100)에 필요한 데이터의 회수가 완료되었음을 알려주는 확인 신호(ACK)를 전송한다. 이후, 스토리지 장치(1200)가 호스트 메모리 버퍼(1120)로 접근하는 것이 차단된다. In step S1440, the storage controller 1240 transmits an acknowledgment signal (ACK) notifying the host 1100 that recovery of necessary data has been completed. After that, access of the storage device 1200 to the host memory buffer 1120 is blocked.

S1450 단계에서, 스토리지 컨트롤러(1240)는 백그라운드 동작을 수행한다. 이때, 스토리지 컨트롤러(1240)가 호스트 메모리 버퍼(1120)로 접근하는 것은 허용되지 않으며, 스토리지 컨트롤러(1240)는 회수된 데이터나 기존에 저장된 데이터만을 이용하여 백그라운드 동작을 수행한다.In step S1450, the storage controller 1240 performs a background operation. At this time, the storage controller 1240 is not allowed to access the host memory buffer 1120, and the storage controller 1240 performs a background operation using only retrieved data or previously stored data.

S1460 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S1460, the host 1100 transmits a retention recovery command to the storage controller 1240.

S1470 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)의 컨텐츠를 업데이트 한다.In step S1470, the storage controller 1240 updates the contents of the host memory buffer (HMB).

이상에서 설명된 바와 같이, 제3 모드(Mode3)에서, 본 발명의 실시 예에 따른 호스트(1100)가 설정하는 리텐션 커맨드는 스토리지 컨트롤러(1240)가 호스트 메모리 버퍼(HMB)에 접근하는 것을 차단하는 옵션(option)으로 기능한다. As described above, in the third mode (Mode3), the retention command set by the host 1100 according to an embodiment of the present invention blocks the storage controller 1240 from accessing the host memory buffer HMB. function as an option.

일반적으로, 호스트가 파워 절약 모드에 진입하는 경우, 스토리지 컨트롤러의 호스트 메모리 버퍼에 대한 접근은 호스트의 웨이크-업(wake-up)을 야기할 수 있다. 이는 파워 절약 모드의 효과를 반감시키는 요인이 된다. 그러나, 본 발명이 실시 예에 따른 리텐션 커맨드는 스토리지 컨트롤러(1240)의 호스트 메모리 버퍼(HMB)에 대한 접근을 차단하는 옵션으로 기능한다. 따라서, 호스트(1100)가 파워 절약 모드에 진입하는 경우, 호스트(1100)는 리텐션 커맨드의 리텐션 레벨을 'X'로 설정함으로써, 원치 않는 웨이크-업의 발생을 미연에 방지할 수 있다.In general, when the host enters a power saving mode, the storage controller's access to the host memory buffer may cause the host to wake-up. This becomes a factor that halves the effect of the power saving mode. However, the retention command according to an embodiment of the present invention functions as an option to block access to the host memory buffer (HMB) of the storage controller 1240. Accordingly, when the host 1100 enters the power saving mode, the host 1100 may prevent unwanted wake-up from occurring in advance by setting the retention level of the retention command to 'X'.

아울러, 본 발명의 실시 예에 따른 호스트(1100)는 호스트 메모리 버퍼(HMB)를 반납하지 않기 때문에, 호스트 메모리 버퍼(HMB)의 재개에 소요되는 시간이 감소될 수 있다.In addition, since the host 1100 according to an embodiment of the present invention does not return the host memory buffer (HMB), the time required to restart the host memory buffer (HMB) can be reduced.

도 9e는 본 발명의 일 실시 예에 따른 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 도 9e에서는 도 7에서 설명된 제3 모드(Mode3)에서의 커맨드 전송 동작의 다른 예가 설명될 것이다. 도 9e에서 설명되는 동작은 도 9d의 동작과 유사하다. 따라서, 중복되는 설명은 이하 생략될 것이다.9E is a diagram illustrating an example of a command transmission operation between the host 1100 and the storage controller 1240 according to an embodiment of the present invention. In FIG. 9E , another example of a command transmission operation in the third mode (Mode3) described in FIG. 7 will be described. The operation described in FIG. 9E is similar to that of FIG. 9D. Therefore, redundant descriptions will be omitted below.

S1510 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S1510, the host 1100 sets bits of the EHM command and the MR command to '1' and '0', respectively.

S1520 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 예를 들어, 리텐션 레벨이 'X'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 제3 모드(Mode3)를 선택한다.In step S1520, the host 1100 transmits a retention command to the storage controller 1240. For example, suppose the retention level is 'X'. In this case, the storage controller 1240 selects the third mode (Mode3).

S1530 단계에서, 스토리지 컨트롤러(1240)의 호스트 메모리 버퍼(HMB)로에 대한 접근이 차단된다. 이에 따라, 스토리지 컨트롤러(1240)는 아이들 상태(idle state)에 진입하거나, 기존에 스토리지 장치(1200)에 저장된 데이터를 이용하여 백그라운드 동작 등을 수행할 수 있다.In step S1530, access to the host memory buffer (HMB) of the storage controller 1240 is blocked. Accordingly, the storage controller 1240 may enter an idle state or perform a background operation using data previously stored in the storage device 1200 .

S1540 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S1540, the host 1100 transmits a retention recovery command to the storage controller 1240.

S1550 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)의 컨텐츠를 업데이트 한다.In step S1550, the storage controller 1240 updates the contents of the host memory buffer (HMB).

이상에서 설명된 바와 같이, 제3 모드(Mode3)에서, 리텐션 커맨드는 스토리지 컨트롤러(1240)가 호스트 메모리 버퍼(HMB)에 접근하는 것을 즉시 차단할 수도 있다.As described above, in the third mode (Mode3), the retention command may immediately block access of the storage controller 1240 to the host memory buffer HMB.

한편, 상술한 설명은 예시적인 것이며, 본 발명의 기술적 사상은 다양하게 변형 및 응용될 수 있다. 이하에서는, 본 발명의 응용 예들이 계속해서 설명될 것이다. On the other hand, the above description is exemplary, and the technical spirit of the present invention can be modified and applied in various ways. In the following, application examples of the present invention will continue to be described.

도 10은 본 발명의 실시 예에 따른 메모리 시스템(1000B)의 일 예를 보여주는 블록도이고, 도 11은 도 10의 스토리지 컨트롤러(1240_1)의 일 예를 보여주는 블록도이다. 도 10의 메모리 시스템(1000B)은 도 1의 메모리 시스템(1000A)과 유사하고, 도 11의 스토리지 컨트롤러(1240_1)는 도 3의 스토리지 컨트롤러(1240)와 유사하다. 따라서, 동일하거나 유사한 구성요소는 동일하거나 유사한 참조 번호를 사용하여 표기되며, 중복되는 설명은 이하 생략될 것이다.FIG. 10 is a block diagram showing an example of a memory system 1000B according to an embodiment of the present invention, and FIG. 11 is a block diagram showing an example of a storage controller 1240_1 of FIG. 10 . The memory system 1000B of FIG. 10 is similar to the memory system 1000A of FIG. 1 , and the storage controller 1240_1 of FIG. 11 is similar to the storage controller 1240 of FIG. 3 . Therefore, the same or similar elements are denoted using the same or similar reference numerals, and redundant descriptions will be omitted below.

도 10의 메모리 시스템(1000B)은 파워 관리(power management) 기능을 추가로 지원할 수 있다. 예를 들어, 메모리 시스템(1000B)은 동적 파워 관리(dynamic power management) 기능을 지원할 수 있으며, 호스트(1100_1)는 스토리지 장치(1200_1)가 가장 좋은 성능을 발휘할 수 있도록 파워 상태(power states)를 조정(modifying)할 수 있다. 이를 위해, 호스트(1100_1)는 파워 매니저(1140)를 포함하고, 동작 모드 컨트롤러(1243_1)는 파워 상태 설명자 테이블(1246)을 포함할 수 있다. The memory system 1000B of FIG. 10 may additionally support a power management function. For example, the memory system 1000B may support a dynamic power management function, and the host 1100_1 adjusts power states so that the storage device 1200_1 can exhibit the best performance. can be modified. To this end, the host 1100_1 may include a power manager 1140 , and the operation mode controller 1243_1 may include a power state descriptor table 1246 .

파워 매니저(1140)는 스토리지 장치(1200_1)로부터 성능 통계(performance statics)에 대한 정보를 수신한다. 예를 들어, 파워 매니저(1140)는 스토리지 컨트롤러(1240)가 지원하는 복수의 파워 상태들 각각에 대한 성능 통계에 대한 정보를 수신할 수 있다. 성능 통계에 대한 정보는 MP(Maximum power), ENLAT(Entry Latency), EXLAT(Exit Latency), RRT(Relative Read Throughput), RRL(Relative Read Latency), RWT(Relative Write Throughput), RWL(Relative Write Latency)에 대한 정보를 포함할 수 있다. The power manager 1140 receives information about performance statistics from the storage device 1200_1. For example, the power manager 1140 may receive information about performance statistics for each of a plurality of power states supported by the storage controller 1240 . Information on performance statistics is provided for Maximum Power (MP), Entry Latency (ENLAT), Exit Latency (EXLAT), Relative Read Throughput (RRT), Relative Read Latency (RRL), Relative Write Throughput (RWT), Relative Write Latency (RWL) ) may contain information about

파워 매니저(1140)는 복수의 파워 상태들 각각에 대한 성능 통계에 기초하여 스토리지 장치(1200_1)의 성능을 극대화할 수 있는 파워 상태를 선택할 수 있다. 특히, 본 발명의 실시 예에 따른 파워 매니저(1140)는 호스트 메모리 버퍼(1120)의 운용 모드에 기초하여 파워 상태를 선택할 수 있다. 이 경우, 호스트 메모리 버퍼(1120)의 운용 모드는 성능 목표(Performance Objective)로서 파워 매니저(1140)에 제공될 수 있다. 또한, 다른 예로, 파워 매니저(1140)는 호스트 메모리 버퍼(1120)의 리텐션 레벨에 기초하여 파워 상태를 선택할 수도 있다. 이 경우에, 호스트(1100_1)에 의하여 설정된 리텐션 커맨드가 성능 목표로서 파워 매니저(1140)에 제공될 수 있다. The power manager 1140 may select a power state capable of maximizing performance of the storage device 1200_1 based on performance statistics for each of a plurality of power states. In particular, the power manager 1140 according to an embodiment of the present invention may select a power state based on the operation mode of the host memory buffer 1120 . In this case, the operation mode of the host memory buffer 1120 may be provided to the power manager 1140 as a performance objective. Also, as another example, the power manager 1140 may select a power state based on the retention level of the host memory buffer 1120 . In this case, the retention command set by the host 1100_1 may be provided to the power manager 1140 as a performance target.

파워 상태 설명자 테이블(1246)은 스토리지 컨트롤러(1200_1)가 지원하는 복수의 파워 상태들 각각에 대한 성능 통계에 대한 정보를 관리한다. 예를 들어, 스토리지 컨트롤러(1200_1)는 최대 32개의 파워 상태를 지원할 수 있으며, 파워 상태 설명자 테이블(1246)은 32개 파워 상태 각각에 대한 MP 등의 성능 통계를 관리할 수 있다. The power state descriptor table 1246 manages information about performance statistics for each of a plurality of power states supported by the storage controller 1200_1 . For example, the storage controller 1200_1 can support up to 32 power states, and the power state descriptor table 1246 can manage performance statistics such as MP for each of the 32 power states.

이상에서 살펴본 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(1000B)은 파워 관리 기능을 추가로 지원한다. 특히, 파워 매니저(1140)는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 리텐션 레벨 및/또는 호스트 메모리 버퍼(1120)의 운용 모드에 기초하여 복수의 파워 상태들 중 최적의 파워 상태를 선택할 수 있다. 결과적으로, 본 발명의 실시 예에 따른 호스트(1100_1)는 스토리지 장치(1200_1)를 더욱 정확하게 제어할 수 있으며, 이에 따라 전체적인 메모리 시스템(1000B)의 성능이 향상될 수 있다. As described above, the memory system 1000B according to an embodiment of the present invention additionally supports a power management function. In particular, the power manager 1140 may select an optimal power state from among a plurality of power states based on the retention level of the host memory buffer 1120 in which retention occurs and/or the operating mode of the host memory buffer 1120. there is. As a result, the host 1100_1 according to an embodiment of the present invention can more accurately control the storage device 1200_1, and thus the overall performance of the memory system 1000B can be improved.

도 12a 내지 도 12e는 도 10의 호스트(1100_1)와 스토리지 컨트롤러(1240_1) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 호스트(1100_1)로부터 스토리지 컨트롤러(1240_1)로 파워 상태 커맨드가 추가로 전송된다는 점을 제외하고는, 도 12a 내지 도 12e의 동작은 도 9a 내지 도 9e의 동작과 유사하다. 따라서, 중복되는 설명은 이하 생략될 것이다.12A to 12E are diagrams illustrating an example of a command transmission operation between the host 1100_1 and the storage controller 1240_1 of FIG. 10 . Operations of FIGS. 12A to 12E are similar to those of FIGS. 9A to 9E except that a power state command is additionally transmitted from the host 1100_1 to the storage controller 1240_1 . Therefore, redundant descriptions will be omitted below.

도 12a는 제1 모드(Mode1)에서의 호스트(1100_1)와 스토리지 컨트롤러(1240_1) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다.12A is a diagram illustrating an example of a command transmission operation between the host 1100_1 and the storage controller 1240_1 in the first mode (Mode1).

S2110 단계에서, 호스트(1100_1)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S2110, the host 1100_1 sets bits of the EHM command and the MR command to '1' and '0', respectively.

S2120 단계에서, 호스트(1100_1)는 리텐션 커맨드를 스토리지 컨트롤러(1240_1)에 전송한다. 예를 들어, 리텐션이 발생한 호스트 메모리 버퍼(HMB)의 리텐션 레벨이 '2'라고 가정하자. 이 경우, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)의 운용 모드로 제1 모드(Mode1)를 선택한다. 따라서, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)에 자유롭게 접근할 수 있다.In step S2120, the host 1100_1 transmits a retention command to the storage controller 1240_1. For example, suppose that the retention level of the host memory buffer (HMB) where retention occurs is '2'. In this case, the storage controller 1240_1 selects the first mode (Mode1) as an operation mode of the host memory buffer (HMB). Accordingly, the storage controller 1240_1 can freely access the host memory buffer HMB.

S2130 단계에서, 호스트(1100_1)는 호스트 메모리 버퍼(HMB)의 리텐션 레벨(즉, '2') 및/또는 운용 모드(즉, 제1 모드)에 기초하여 액티브 파워 상태(Active Power State)를 선택하고, 이를 스토리지 컨트롤러(1240_1)에 전송한다. 여기서, 액티브 파워 상태는 스토리지 컨트롤러(1240_1)가 I/O 커맨드의 처리를 포함하여 다양한 동작을 수행하는 것을 지원하는 파워 상태를 가리킨다.In step S2130, the host 1100_1 sets an active power state based on the retention level (ie, '2') of the host memory buffer (HMB) and/or the operation mode (ie, the first mode). is selected and transmitted to the storage controller 1240_1. Here, the active power state refers to a power state in which the storage controller 1240_1 supports performing various operations including processing I/O commands.

S2140 단계에서, 호스트(1100_1)는 I/O 커맨드를 스토리지 컨트롤러(1240_1)에 전송한다.In step S2140, the host 1100_1 transmits an I/O command to the storage controller 1240_1.

S2150 단계에서, 스토리지 컨트롤러(1240_1)는 호스트(1100_1)로부터 수신된 I/O 커맨드를 처리한다. 이때, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)에 자유롭게 접근하여 I/O 커맨드에 필요한 데이터를 획득할 수 있다.In step S2150, the storage controller 1240_1 processes the I/O command received from the host 1100_1. At this time, the storage controller 1240_1 may freely access the host memory buffer (HMB) to obtain data required for an I/O command.

S2160 단계에서, 호스트(1100_1)는 스토리지 컨트롤러(1240_1)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S2160, the host 1100_1 transmits a retention recovery command to the storage controller 1240_1.

이상에서 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(1000B)은 리텐션 레벨을 고려하여 호스트 메모리 버퍼(HMB)의 운용 모드를 선택함을 물론, 리텐션 레벨을 고려하여 스토리지 컨트롤러(1240_1)의 파워 상태를 결정할 수 있다. 따라서, 스토리지 장치(1240_1)에 대한 정확한 제어가 가능하며, 결과적으로 메모리 시스템(1000B)의 전체적인 성능이 향상될 수 있다. As described above, the memory system 1000B according to an embodiment of the present invention selects the operation mode of the host memory buffer (HMB) in consideration of the retention level, as well as the storage controller ( The power state of 1240_1) can be determined. Accordingly, accurate control of the storage device 1240_1 is possible, and as a result, overall performance of the memory system 1000B may be improved.

도 12b는 제2 모드(Mode2)에서의 호스트(1100_1)와 스토리지 컨트롤러(1240_1) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 12B is a diagram illustrating an example of a command transmission operation between the host 1100_1 and the storage controller 1240_1 in the second mode (Mode2).

S2210 단계에서, 호스트(1100_1)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S2210, the host 1100_1 sets bits of the EHM command and the MR command to '1' and '0', respectively.

S2220 단계에서, 호스트(1100_1)는 리텐션 커맨드를 스토리지 컨트롤러(1240_1)에 전송한다. 예를 들어, 리텐션 레벨이 '1'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)의 운용 모드로 제2 모드(Mode2)를 선택한다.In step S2220, the host 1100_1 transmits a retention command to the storage controller 1240_1. For example, suppose the retention level is '1'. In this case, the storage controller 1240_1 selects the second mode (Mode2) as an operation mode of the host memory buffer (HMB).

S2230 단계에서, 호스트(1100_1)는 호스트 메모리 버퍼(HMB)의 리텐션 레벨(즉, '1') 및/또는 운용 모드(즉, 제2 모드)에 기초하여, 호스트(1100_1)는 파워 상태로 비-동작 파워 상태(Non-Operational Power State: NOPS)를 선택한다.In step S2230, the host 1100_1 enters the power state based on the retention level (ie, '1') and/or operation mode (ie, the second mode) of the host memory buffer (HMB). Select Non-Operational Power State (NOPS).

S2240 단계에서, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)로부터 자주 사용하는 데이터를 회수하고, 이를 스토리지 장치(1200_1)에 저장한다. In step S2240, the storage controller 1240_1 retrieves frequently used data from the host memory buffer (HMB) and stores it in the storage device 1200_1.

S2250 단계에서, 스토리지 컨트롤러(1240_1)는 회수된 데이터를 이용하여 비-동작 파워 상태에서 허용되는 동작들을 수행한다. 예를 들어, 비-동작 파워 상태에서, 스토리지 컨트롤러(1200_1)는 PMR(Persistent Memory Region) 접근 동작, CMB(Controller Memory Buffer) 접근 동작, 백그라운드 동작 등을 수행할 수 있으나, I/O 커맨드 처리 동작을 수행할 수는 없다.In step S2250, the storage controller 1240_1 uses the retrieved data to perform operations allowed in a non-operating power state. For example, in a non-operating power state, the storage controller 1200_1 may perform a Persistent Memory Region (PMR) access operation, a Controller Memory Buffer (CMB) access operation, a background operation, and the like, but an I/O command processing operation can't do

이때, 만약 필요하다면, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)에 다시 접근하여 필요한 데이터를 더 회수할 수도 있다. 다만, S2240 단계에서 자주 사용하는 데이터가 이미 회수되었기 때문에, 스토리지 컨트롤러(1240_1)의 호스트 메모리 버퍼(HMB)에 대한 접근은 최소화될 수 있다.At this time, if necessary, the storage controller 1240_1 may access the host memory buffer (HMB) again to retrieve more necessary data. However, since frequently used data has already been retrieved in step S2240, access to the host memory buffer HMB of the storage controller 1240_1 may be minimized.

S2260 단계에서, 호스트(1100_1)는 스토리지 컨트롤러(1240_1)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S2260, the host 1100_1 transmits a retention recovery command to the storage controller 1240_1.

S2270 단계에서, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)의 컨텐츠를 업데이트 한다.In step S2270, the storage controller 1240_1 updates the contents of the host memory buffer (HMB).

이상에서 설명된 바와 같이, 제2 모드(Mode2)에서, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 리텐션이 발생한 호스트 메모리 버퍼(HMB)로의 접근이 최소화될 수 있도록 동작할 수 있다. 아울러, 본 발명의 실시 예에 따른 호스트(1100_1)는 스토리지 컨트롤러(1200_1)를 비-동작 파워 상태로 동작하게 할 수 있다.As described above, in the second mode (Mode2), the storage controller 1240 according to an embodiment of the present invention may operate to minimize access to the host memory buffer (HMB) where retention occurs. In addition, the host 1100_1 according to an embodiment of the present invention may cause the storage controller 1200_1 to operate in a non-operating power state.

도 12c는 제2 모드(Mode2)에서의 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 다른 예를 보여주는 도면이다. 12C is a diagram showing another example of a command transmission operation between the host 1100 and the storage controller 1240 in the second mode (Mode2).

S2310 단계에서, 호스트(1100_1)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S2310, the host 1100_1 sets bits of the EHM command and the MR command to '1' and '0', respectively.

S2320 단계에서, 호스트(1100_1)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 예를 들어, 리텐션 레벨이 '1'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240_1)는 제2 모드(Mode2)를 호스트 메모리 버퍼(HMB)의 운용 모드로 선택한다.In step S2320, the host 1100_1 transmits a retention command to the storage controller 1240. For example, suppose the retention level is '1'. In this case, the storage controller 1240_1 selects the second mode (Mode2) as an operation mode of the host memory buffer (HMB).

S2330 단계에서, 호스트(1100_1)는 스토리지 컨트롤러(1200_1)에 적합한 파워 상태로 액티브 파워 상태를 선택한다.In step S2330, the host 1100_1 selects an active power state as a power state suitable for the storage controller 1200_1.

S2340 단계에서, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)로부터 자주 사용하는 데이터를 회수하고, 이를 스토리지 장치(1200_1)에 저장한다. In step S2340, the storage controller 1240_1 retrieves frequently used data from the host memory buffer (HMB) and stores it in the storage device 1200_1.

S2350 단계에서, 호스트(1100_1)는 I/O 커맨드를 스토리지 컨트롤러(1240_1)로 전송한다.In step S2350, the host 1100_1 transmits an I/O command to the storage controller 1240_1.

S2360 단계에서, 스토리지 컨트롤러(1240_1)는 회수된 데이터를 이용하여 I/O 커맨드를 처리한다. 이때, 만약 I/O 커맨드 처리에 필요하다면, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)에 다시 접근하여 필요한 데이터를 더 회수할 수도 있다. 다만, S2340 단계에서 자주 사용하는 데이터를 이미 회수하였기 때문에, 스토리지 컨트롤러(1240_1)의 호스트 메모리 버퍼(HMB)에 대한 접근은 최소화될 수 있다.In step S2360, the storage controller 1240_1 processes an I/O command using the retrieved data. At this time, if necessary to process the I/O command, the storage controller 1240_1 may re-access the host memory buffer (HMB) to retrieve more necessary data. However, since frequently used data has already been retrieved in step S2340, access to the host memory buffer HMB of the storage controller 1240_1 can be minimized.

S2370 단계에서, 호스트(1100_1)는 스토리지 컨트롤러(1240_1)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S2370, the host 1100_1 transmits a retention recovery command to the storage controller 1240_1.

S2380 단계에서, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)의 컨텐츠를 업데이트 한다.In step S2380, the storage controller 1240_1 updates the contents of the host memory buffer (HMB).

이상에서 설명된 바와 같이, 제2 모드(Mode2)에서, 스토리지 컨트롤러(1240)는 리텐션이 발생한 호스트 메모리 버퍼(HMB)에 대한 접근을 최소화한 상태에서 I/O 커맨드를 처리할 수 있으며, 이때 호스트(1100_1)는 스토리지 컨트롤러(1200_1)에 적합한 파워 상태로 액티브 파워 상태를 선택할 수 있다.As described above, in the second mode (Mode2), the storage controller 1240 may process an I/O command while minimizing access to the host memory buffer (HMB) where retention occurs. The host 1100_1 may select an active power state as a power state suitable for the storage controller 1200_1.

도 12d는 제3 모드(Mode3)에서의 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 12D is a diagram showing an example of a command transmission operation between the host 1100 and the storage controller 1240 in the third mode (Mode3).

S2410 단계에서, 호스트(1100_1)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S2410, the host 1100_1 sets bits of the EHM command and the MR command to '1' and '0', respectively.

S2420 단계에서, 호스트(1100_1)는 리텐션 커맨드를 스토리지 컨트롤러(1240_1)에 전송한다. 예를 들어, 리텐션 레벨이 'X'라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 제3 모드(Mode3)를 선택한다.In step S2420, the host 1100_1 transmits a retention command to the storage controller 1240_1. For example, suppose the retention level is 'X'. In this case, the storage controller 1240 selects the third mode (Mode3).

S2430 단계에서, 호스트(1100_1)는 호스트 메모리 버퍼(HMB)의 리텐션 레벨(즉, 'X') 및/ 또는 운용 모드(즉, 제3 모드)에 기초하여, 스토리지 컨트롤러(1240_1)의 파워 상태로 비-동작 파워 상태(NOPS)를 선택한다.In step S2430, the host 1100_1 determines the power state of the storage controller 1240_1 based on the retention level (ie, 'X') and/or operation mode (ie, the third mode) of the host memory buffer (HMB). to select a non-operating power state (NOPS).

S2440 단계에서, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)로부터 비-동작 파워 상태에서 필요한 데이터를 회수하고, 이를 스토리지 장치(1200_1)에 저장한다. In step S2440, the storage controller 1240_1 retrieves necessary data from the host memory buffer (HMB) in a non-operating power state and stores it in the storage device 1200_1.

S2450 단계에서, 스토리지 컨트롤러(1240_1)는 호스트(1100_1)에 필요한 데이터의 회수가 완료되었음을 알려주는 확인 신호(ACK)를 전송한다. 이후, 스토리지 장치(1200_1)가 호스트 메모리 버퍼(HMB)로 접근하는 것이 차단된다. In step S2450, the storage controller 1240_1 transmits an acknowledgment signal (ACK) notifying the host 1100_1 that collection of necessary data has been completed. After that, the storage device 1200_1 is blocked from accessing the host memory buffer HMB.

S2460 단계에서, 스토리지 컨트롤러(1240_1)는 회수된 데이터를 이용하여 비-동작 파워 상태에서 허용되는 동작을 수행한다. In step S2460, the storage controller 1240_1 performs an operation allowed in a non-operating power state by using the retrieved data.

S2470 단계에서, 호스트(1100_1)는 스토리지 컨트롤러(1240_1)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S2470, the host 1100_1 transmits a retention recovery command to the storage controller 1240_1.

S2480 단계에서, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)의 컨텐츠를 업데이트 한다.In step S2480, the storage controller 1240_1 updates the contents of the host memory buffer (HMB).

이상에서 설명된 바와 같이, 제3 모드(Mode3)에서, 리텐션 커맨드는 스토리지 컨트롤러(1240_1)가 호스트 메모리 버퍼(HMB)에 접근하는 것을 차단하는 옵션(option)으로 기능할 수 있다. 아울러, 호스트(1100_1)는 스토리지 컨트롤러(1200_1)에 적합한 파워 상태로 비-동작 파워 상태를 선택할 수 있다.As described above, in the third mode (Mode3), the retention command may function as an option blocking access of the storage controller 1240_1 to the host memory buffer HMB. In addition, the host 1100_1 may select a non-operating power state as a power state suitable for the storage controller 1200_1.

도 12e는 제3 모드(Mode3)에서의 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 12E is a diagram showing an example of a command transmission operation between the host 1100 and the storage controller 1240 in the third mode (Mode3).

S2510 단계에서, 호스트(1100_1)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S2510, the host 1100_1 sets bits of the EHM command and the MR command to '1' and '0', respectively.

S2520 단계에서, 호스트(1100_1)는 리텐션 커맨드를 스토리지 컨트롤러(1240_1)에 전송한다. 예를 들어, 리텐션 레벨이 'X'라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 제3 모드(Mode3)를 호스트 메모리 버퍼(HMB)의 운용 모드로 선택한다.In step S2520, the host 1100_1 transmits a retention command to the storage controller 1240_1. For example, suppose the retention level is 'X'. In this case, the storage controller 1240 selects the third mode (Mode3) as an operation mode of the host memory buffer (HMB).

S2430 단계에서, 호스트(1100_1)는 호스트 메모리 버퍼(HMB)의 리텐션 레벨(즉, 'X') 및/또는 운용 모드(즉, 제3 모드)에 기초하여, 스토리지 컨트롤러(1240_1)의 파워 상태로 비-동작 파워 상태(NOPS)를 선택한다.In step S2430, the host 1100_1 determines the power state of the storage controller 1240_1 based on the retention level (ie, 'X') and/or operation mode (ie, the third mode) of the host memory buffer (HMB). to select a non-operating power state (NOPS).

S2540 단계에서, 스토리지 컨트롤러(1240_1)가 호스트 메모리 버퍼(1120_1)로 접근하는 것은 허용되지 않는다. 이 경우, 스토리지 컨트롤러(1240_1)는 기존에 스토리지 장치(1200)에 저장된 데이터를 이용하여 비-동작 상태에서 허용되는 동작들을 수행할 수 있다.In step S2540, the storage controller 1240_1 is not permitted to access the host memory buffer 1120_1. In this case, the storage controller 1240_1 may perform permitted operations in a non-operating state by using data previously stored in the storage device 1200 .

S2550 단계에서, 호스트(1100_1)는 스토리지 컨트롤러(1240_1)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S2550, the host 1100_1 transmits a retention recovery command to the storage controller 1240_1.

S2560 단계에서, 스토리지 컨트롤러(1240_1)는 호스트 메모리 버퍼(HMB)에 저장된 컨텐츠를 업데이트 한다.In step S2560, the storage controller 1240_1 updates the contents stored in the host memory buffer (HMB).

이상에서 설명된 바와 같이, 제3 모드(Mode3)에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)에 접근하는 것이 즉시 차단되며, 비-동작 파워 상태로 동작할 수 있다.As described above, in the third mode (Mode3), the storage controller 1240 is immediately blocked from accessing the host memory buffer (HMB) and operates in a non-operating power state.

한편, 앞선 설명에서, EHM 커맨드와 리텐션 커맨드는 서로 독립적인 셋 특성 커맨드로 설명되었다. 다만, 이는 예시적인 것이며, 리텐션 커맨드는 EHM 커맨드를 대체할 수도 있다. 예를 들어, EHM 커맨드의 비트 '1'은 리텐션 커맨드의 리텐션 레벨 'X'로 대체될 수 있다. 또한, EHM 커맨드의 비트 '1'은 리텐션 레벨 'X'를 제외한 다른 리텐션 레벨들(즉, 리텐션 레벨 '1', '2' 등)로 대체될 수 있다. 결과적으로, 앞선 실시 예들에 있어서, EHM 커맨드는 리텐션 커맨드에 의하여 대체될 수 있다.Meanwhile, in the above description, the EHM command and the retention command have been described as independent three-characteristic commands. However, this is an example, and the retention command may replace the EHM command. For example, bit '1' of the EHM command may be replaced with a retention level 'X' of the retention command. In addition, bit '1' of the EHM command may be replaced with other retention levels (ie, retention levels '1', '2', etc.) except for the retention level 'X'. As a result, in the above embodiments, the EHM command may be replaced by a retention command.

한편, 상술한 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술한 실시 예들 이외에도, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술한 실시 예들에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.Meanwhile, the above descriptions are specific examples for carrying out the present invention. In addition to the above-described embodiments, the present invention will also include embodiments that can be simply or easily changed in design. 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 and should not be defined, and should be defined by those equivalent to the claims of this invention as well as the claims to be described later.

EHM: Enable Host Memory
MR: Memory Return
HMB: Host Memory Buffer
NOPS: Non-Operational Power State
CMD: command
ADDR: address
EHM: Enable Host Memory
MR: Memory Return
HMB: Host Memory Buffer
NOPS: Non-Operational Power States
CMD: command
ADDR: address

Claims (20)

호스트 및 스토리지 장치를 포함하는 메모리 시스템의 동작 방법에 있어서:
상기 호스트에 포함된 호스트 메모리의 일부를 상기 스토리지 장치의 컨트롤러가 사용하기 위한 호스트 메모리 버퍼로 할당하는 단계;
상기 호스트 메모리 버퍼를 활성화하도록 셋 특성 커맨드를 설정하는 단계;
상기 호스트 메모리 버퍼의 응답 속도에 대한 정보를 포함하는 리텐션 커맨드를 설정하는 단계;
상기 리텐션 커맨드에 기초해서, 상기 호스트 메모리 버퍼의 운영 모드를 선택하는 단계; 및
상기 호스트 메모리 버퍼의 운용 모드의 성능 목표(performance objective)에 기초해서, 상기 컨트롤러가 지원하는 복수의 파워 상태 중 하나의 파워 상태를 선택하는 단계를 포함하는 메모리 시스템의 동작 방법.
In the operating method of a memory system including a host and a storage device:
allocating a portion of a host memory included in the host as a host memory buffer for use by a controller of the storage device;
setting a set characteristic command to activate the host memory buffer;
setting a retention command including information about response speed of the host memory buffer;
selecting an operation mode of the host memory buffer based on the retention command; and
and selecting one of a plurality of power states supported by the controller based on a performance objective of an operation mode of the host memory buffer.
제1 항에 있어서,
상기 호스트는 비-동작 파워 상태를 상기 컨트롤러의 파워 상태로 선택하는 메모리 시스템의 동작 방법.
According to claim 1,
The host selects a non-operating power state as the power state of the controller.
제2 항에 있어서,
상기 컨트롤러는 상기 비-동작 파워 상태에서 허용된 동작을 수행하기 위해 상기 호스트 메모리 버퍼에 저장된 데이터의 적어도 일부를 회수하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
According to claim 2,
and retrieving, by the controller, at least a portion of data stored in the host memory buffer to perform an operation permitted in the non-operating power state.
제3 항에 있어서,
상기 컨트롤러는 상기 호스트 메모리 버퍼에 저장된 데이터의 적어도 일부를 회수하는 단계가 완료되었음을 통지하는 확인 신호를 상기 호스트에 전송하는 단계를 더 포함하며,
상기 확인 신호가 전송된 이후, 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근은 허용되지 않는 메모리 시스템의 동작 방법.
According to claim 3,
The controller further comprises transmitting a confirmation signal notifying that the step of retrieving at least a portion of the data stored in the host memory buffer is completed to the host,
After the confirmation signal is transmitted, the access of the controller to the host memory buffer is not allowed.
제2 항에 있어서,
상기 비-동작 파워 상태가 선택된 이후, 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근은 허용되지 않는 메모리 시스템의 동작 방법.
According to claim 2,
After the non-operating power state is selected, access of the controller to the host memory buffer is not allowed.
제5 항에 있어서,
상기 리텐션 커맨드는 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근을 차단하기 위한 옵션으로 기능하는 메모리 시스템의 동작 방법.
According to claim 5,
The retention command functions as an option for blocking access of the controller to the host memory buffer.
제1 항에 있어서,
상기 호스트 메모리 버퍼의 예상 응답 시간이 기준 응답 시간 보다 작은 경우에, 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근이 허용되는 메모리 시스템의 동작 방법.
According to claim 1,
When the expected response time of the host memory buffer is less than a reference response time, the controller is allowed to access the host memory buffer.
제7 항에 있어서,
상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근이 허용되는 경우에, 상기 호스트는 액티브 파워 상태를 상기 컨트롤러의 파워 상태로 선택하는 메모리 시스템의 동작 방법.
According to claim 7,
Where the controller is allowed to access the host memory buffer, the host selects an active power state as the power state of the controller.
제1 항에 있어서,
상기 호스트 메모리 버퍼는 적어도 두 개의 영역을 포함하며, 상기 리텐션 커맨드는 상기 적어도 두 개의 영역 각각에 대한 응답 속도의 정보를 포함하는 메모리 시스템의 동작 방법.
According to claim 1,
The host memory buffer includes at least two areas, and the retention command includes response speed information for each of the at least two areas.
제1 항에 있어서,
상기 컨트롤러가 상기 호스트로부터 리텐션 회복 커맨드를 수신하는 단계; 및
상기 스토리지 장치에 저장된 데이터를 상기 호스트 메모리 버퍼에 업데이트하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
According to claim 1,
receiving, by the controller, a retention recovery command from the host; and
and updating data stored in the storage device to the host memory buffer.
호스트 및 스토리지 장치를 포함하는 메모리 시스템의 동작 방법에 있어서:
상기 호스트에 포함된 호스트 메모리의 일부를 상기 스토리지 장치의 컨트롤러가 사용하기 위한 호스트 메모리 버퍼로 할당하는 단계;
상기 호스트 메모리 버퍼를 활성화하도록 셋 특성 커맨드를 설정하는 단계;
상기 호스트 메모리 버퍼의 응답 속도에 대한 정보를 포함하는 리텐션 커맨드를 설정하는 단계; 및
상기 리텐션 커맨드에 기초해서, 상기 호스트 메모리 버퍼의 운영 모드를 선택하는 단계를 포함하는 메모리 시스템의 동작 방법.
In the operating method of a memory system including a host and a storage device:
allocating a portion of a host memory included in the host as a host memory buffer for use by a controller of the storage device;
setting a set characteristic command to activate the host memory buffer;
setting a retention command including information about response speed of the host memory buffer; and
and selecting an operation mode of the host memory buffer based on the retention command.
제11 항에 있어서,
상기 호스트 메모리 버퍼에 저장된 데이터의 적어도 일부를 회수하여 상기 스토리지 장치에 저장하는 단계를 더 포함하는 메모리 시스템의 동작방법.
According to claim 11,
The method of operating the memory system further comprising the step of recovering at least a portion of the data stored in the host memory buffer and storing it in the storage device.
제12 항에 있어서,
상기 컨트롤러는 상기 호스트 메모리 버퍼에 저장된 데이터의 적어도 일부를 회수하는 단계가 완료되었음을 통지하는 확인 신호를 상기 호스트에 전송하는 단계를 더 포함하며,
상기 확인 신호가 전송된 이후, 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근은 허용되지 않는 메모리 시스템의 동작 방법.
According to claim 12,
The controller further comprises transmitting a confirmation signal notifying that the step of retrieving at least a portion of the data stored in the host memory buffer is completed to the host,
After the confirmation signal is transmitted, the access of the controller to the host memory buffer is not allowed.
제11 항에 있어서,
상기 리텐션 커맨드는 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근을 허용하지 않는 옵션으로 기능하는 메모리 시스템의 동작 방법.
According to claim 11,
The retention command functions as an option that does not allow the controller to access the host memory buffer.
제11 항에 있어서,
상기 리텐션 커맨드는 상기 호스트 메모리 버퍼의 어드레스 및 리텐션 레벨을 포함하며, 상기 리텐션 레벨은 상기 호스트 메모리 버퍼의 예상 응답 시간과 적어도 하나의 기준 응답 시간을 비교하여 생성되는 메모리 시스템의 동작 방법.
According to claim 11,
The retention command includes an address and a retention level of the host memory buffer, and the retention level is generated by comparing an expected response time of the host memory buffer with at least one reference response time.
제15 항에 있어서,
상기 컨트롤러는 상기 리텐션 커맨드에 포함된 상기 리텐션 레벨에 따라 상기 호스트 메모리 버퍼의 운영 모드를 선택하는 메모리 시스템의 동작 방법.
According to claim 15,
The controller selects an operating mode of the host memory buffer according to the retention level included in the retention command.
제15 항에 있어서,
상기 호스트 메모리 버퍼는 적어도 두 개의 영역을 포함하며, 상기 리텐션 커맨드는 상기 적어도 두 개의 영역 각각에 대한 리텐션 레벨을 포함하는 메모리 시스템의 동작 방법.
According to claim 15,
The host memory buffer includes at least two areas, and the retention command includes a retention level for each of the at least two areas.
제11 항에 있어서,
상기 컨트롤러가 상기 호스트로부터 리텐션 회복 커맨드를 수신하는 단계; 및
상기 스토리지 장치에 저장된 데이터를 상기 호스트 메모리 버퍼에 업데이트하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
According to claim 11,
receiving, by the controller, a retention recovery command from the host; and
and updating data stored in the storage device to the host memory buffer.
호스트의 호스트 메모리를 공유하는 스토리지 장치에 있어서:
상기 호스트 메모리의 일부 영역을 상기 스토리지 장치의 호스트 메모리 버퍼로 사용하기 위한 인터페이스; 및
상기 호스트 메모리 버퍼의 응답 속도가 느려지는 리텐션이 발생한 경우에, 상기 호스트 메모리 버퍼의 응답 속도에 기초하여 상기 호스트 메모리 버퍼에 대한 운용 모드로 제1 내지 제3 모드 중 하나의 모드를 선택하는 스토리지 장치를 포함하며,
상기 제1 모드가 선택된 경우, 상기 스토리지 장치의 상기 호스트 메모리 버퍼에 대한 접근이 허용되고,
상기 제2 모드가 선택된 경우, 상기 스토리지 장치의 상기 호스트 메모리 버퍼에 대한 접근이 허용되며, 상기 스토리지는 상기 호스트 메모리 버퍼에 저장된 데이터 중 자주 사용되는 데이터를 회수하여 저장하고,
상기 제3 모드가 선택된 경우, 상기 스토리지의 장치의 상기 호스트 메모리 버퍼에 대한 접근은 허용되지 않는, 스토리지 장치.
For storage devices that share the host memory of the host:
an interface for using a partial area of the host memory as a host memory buffer of the storage device; and
Storage for selecting one of the first to third modes as an operating mode for the host memory buffer based on the response speed of the host memory buffer when retention occurs, which slows down the response speed of the host memory buffer. includes a device;
When the first mode is selected, access to the host memory buffer of the storage device is allowed;
When the second mode is selected, access to the host memory buffer of the storage device is allowed, and the storage retrieves and stores frequently used data among data stored in the host memory buffer,
When the third mode is selected, access to the host memory buffer of the storage device is not allowed.
제19 항에 있어서,
상기 제3 모드에서 상기 스토리지의 장치의 상기 호스트 메모리 버퍼에 대한 접근은 허용되지 않는 동안에, 상기 호스트 메모리 버퍼의 활성화에 대한 EHM 커맨드는 활성화 상태이고, 상기 호스트 메모리 버퍼의 반납에 대한 MR 커맨드는 비활성화 상태인 스토리지 장치.
According to claim 19,
While access to the host memory buffer of the storage device is not allowed in the third mode, the EHM command for activating the host memory buffer is active, and the MR command for returning the host memory buffer is inactive. A storage device that is in state.
KR1020220055613A 2021-11-10 2022-05-04 Memory system using host memory buffer and operation method thereof KR102547825B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/979,554 US20230142174A1 (en) 2021-11-10 2022-11-02 Memory system using host memory buffer and operation method thereof
CN202211399628.4A CN116107497A (en) 2021-11-10 2022-11-09 Memory system using host memory buffers and method of operating the same
EP22206748.0A EP4180938A1 (en) 2021-11-10 2022-11-10 Memory system using host memory buffer and operation method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210154276 2021-11-10
KR1020210154276 2021-11-10

Publications (2)

Publication Number Publication Date
KR20230068263A true KR20230068263A (en) 2023-05-17
KR102547825B1 KR102547825B1 (en) 2023-06-27

Family

ID=86547599

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220055613A KR102547825B1 (en) 2021-11-10 2022-05-04 Memory system using host memory buffer and operation method thereof

Country Status (1)

Country Link
KR (1) KR102547825B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140145063A (en) * 2013-06-12 2014-12-22 삼성전자주식회사 Memory system including nonvolatile memory device and dynamic access method thereof
KR20170043996A (en) * 2015-10-14 2017-04-24 삼성전자주식회사 Computing system with memory management mechanism and method of operation thereof
KR20190054448A (en) * 2017-11-13 2019-05-22 삼성전자주식회사 Storage device sharing attribute information with host device to use host memory buffer and electronic device including the same
KR20200122115A (en) * 2019-04-17 2020-10-27 에스케이하이닉스 주식회사 Data Processing System and Operating Method Thereof
KR20210077923A (en) * 2019-12-18 2021-06-28 에스케이하이닉스 주식회사 Data processing system using artificial intelligence for managing power consumption
KR20210110071A (en) * 2020-02-28 2021-09-07 삼성전자주식회사 Storage device and Method of operating the storage device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140145063A (en) * 2013-06-12 2014-12-22 삼성전자주식회사 Memory system including nonvolatile memory device and dynamic access method thereof
KR20170043996A (en) * 2015-10-14 2017-04-24 삼성전자주식회사 Computing system with memory management mechanism and method of operation thereof
KR20190054448A (en) * 2017-11-13 2019-05-22 삼성전자주식회사 Storage device sharing attribute information with host device to use host memory buffer and electronic device including the same
KR20200122115A (en) * 2019-04-17 2020-10-27 에스케이하이닉스 주식회사 Data Processing System and Operating Method Thereof
KR20210077923A (en) * 2019-12-18 2021-06-28 에스케이하이닉스 주식회사 Data processing system using artificial intelligence for managing power consumption
KR20210110071A (en) * 2020-02-28 2021-09-07 삼성전자주식회사 Storage device and Method of operating the storage device

Also Published As

Publication number Publication date
KR102547825B1 (en) 2023-06-27

Similar Documents

Publication Publication Date Title
US8918580B2 (en) Storage device with buffer memory including non-volatile RAM and volatile RAM
US9927999B1 (en) Trim management in solid state drives
US8151020B2 (en) Storage subsystem with configurable buffer
JP6517685B2 (en) Memory system and control method
KR102533072B1 (en) Memory system and operation method for determining availability based on block status
US8924659B2 (en) Performance improvement in flash memory accesses
US20180173419A1 (en) Hybrid ssd with delta encoding
US20150262632A1 (en) Grouping storage ports based on distance
CN111007991B (en) Method for separating read-write requests based on NVDIMM and computer thereof
JP2013242908A (en) Solid state memory, computer system including the same, and operation method of the same
US8819350B2 (en) Memory system
KR20210096133A (en) Maintenance of write commands in zoned namespaces
US10459803B2 (en) Method for management tables recovery
US11422930B2 (en) Controller, memory system and data processing system
KR20200074464A (en) Data Storage Device and Operation Method Thereof, Storage System Having the Same
JP2019169101A (en) Electronic apparatus, computer system, and control method
US10877853B2 (en) Data storage device and operation method optimized for recovery performance, and storage system having the same
US11474750B2 (en) Storage control apparatus and storage medium
CN114764396A (en) Data storage device and operation method thereof
KR20210008826A (en) Logical block addressing range collision crawler
KR102547825B1 (en) Memory system using host memory buffer and operation method thereof
TWI782847B (en) Method and apparatus for performing pipeline-based accessing management in a storage server
EP4180938A1 (en) Memory system using host memory buffer and operation method thereof
US11656786B2 (en) Operation method of storage device
EP3933602B1 (en) Operation method of storage device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right