KR20230068263A - Memory system using host memory buffer and operation method thereof - Google Patents
Memory system using host memory buffer and operation method thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
본 발명은 메모리 시스템에 관한 것으로, 좀 더 자세하게는 호스트 메모리 버퍼를 사용하는 메모리 시스템 및 그것의 동작 방법에 관한 것이다.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
본 발명의 실시 예에 따른 메모리 시스템(1000A)은 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)와 공유하는 호스트 메모리 버퍼 기능을 지원한다. 아울러, 스토리지 장치(1200)에 할당된 호스트 메모리 버퍼(1120)의 응답 속도가 정상 속도에 비하여 지연된 리텐션(retention)이 발생하는 경우, 호스트(1100)는 리텐션 커맨드(Retention command)를 스토리지 장치(1200)에 전송한다. 스토리지 장치(1200)는 리텐션 커맨드에 기초하여 복수의 모드들 중 최적의 성능을 발휘하는 모드를 선택하고, 선택된 모드에 따라 호스트 메모리 버퍼(1120)를 운용한다. 이에 따라, 메모리 시스템(1000A)의 전체적인 성능이 향상될 수 있다.The
좀 더 자세히 설명하면, 호스트(1100)는 스토리지 장치(1200)에 데이터를 기입하거나, 스토리지 장치(1200)에 저장된 데이터를 읽어낸다. 이를 위해, 호스트(1100)는 스토리지 장치(1200)에 데이터를 기입하기 위한 커맨드(CMD)와 어드레스(ADDR)를 전달할 수 있다. 또한, 호스트(1100)는 스토리지 장치(1200)에 저장된 데이터를 읽어내기 위한 커맨드(CMD)와 어드레스(ADDR)를 스토리지 장치(1200)에 전달할 수 있다. 호스트(1100)는 프로세서(1110), 호스트 메모리(1130), 인터페이스 회로(1150)를 포함한다. More specifically, the
호스트 메모리(1130)에는 응용 프로그램, 파일 시스템, 장치 드라이버 등이 로드될 수 있다. 이 밖에도, 호스트 메모리(1130)에는 호스트(1100)에서 구동되는 다양한 소프트웨어나 데이터가 로드될 수 있다. 특히, 호스트(1100)는 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)의 버퍼(Buffer) 역할을 담당하는 호스트 메모리 버퍼(1120)로 할당할 수 있다.Application programs, file systems, device drivers, and the like may be loaded into the
호스트 메모리 버퍼(1120)는 스토리지 장치(1200)가 사용할 수 있도록 호스트 메모리(1130)의 영역 중 스토리지 장치(1200)에 할당된 영역이다. 예를 들어, 스토리지 장치(1200)에 호스트 메모리 버퍼(1120)가 할당되면, 상기 호스트 메모리 버퍼(1120)는 스토리지 장치(1200)가 배타적으로 사용할 수 있도록 제공된다. 이때, 호스트(1100)는 호스트 메모리 설명자 목록(host memory descriptor list)에서 상기 호스트 메모리 버퍼(1120)를 삭제할 수 있다.The
호스트 메모리 버퍼(1120)에는 리텐션(Retention)이 발생할 수 있다. 여기서, 리텐션은 호스트 메모리 버퍼(1120)의 응답 속도가 정상적인 경우에 비하여 느려진 상태를 의미한다. 예를 들어, 파워 절약 모드(power saving mode) 시에 호스트 메모리(1130)가 200ms 간격으로 활성화(activate)되도록 설정되었다고 가정하자. 만약 호스트(1100)가 파워 절약 모드에 진입한다면, 호스트 메모리 버퍼(1120)의 응답 속도가 정상적인 경우에 비하여 느려지는 리텐션이 발생하게 된다. 이외에도, 호스트 메모리 버퍼(1120)의 메모리 셀들의 열화, 불량 메모리 셀들에 대한 대체 동작의 수행 등과 같은 다양한 원인으로, 리텐션이 발생할 수 있다.Retention may occur in the
호스트 메모리 버퍼(1120)에 리텐션이 발생하면, 호스트(1100)는 스토리지 장치(1200)에 리텐션 커맨드(Retention command)를 전송한다. 여기서, 리텐션 커맨드는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 어드레스 및 지연된 응답 속도에 대응하는 리텐션 레벨(Retention Level)을 포함한다. 일 실시 예에 있어서, 호스트 메모리 버퍼(1120)는 복수의 HMB 영역들로 구분되고, 복수의 HMB 영역들 중 적어도 하나의 HMB 영역에 리텐션이 발생할 수 있다. 이 경우, 호스트(1100)는 리텐션이 발생한 HMB 영역에 대응하는 어드레스 및 리텐션 레벨을 스토리지 장치(1200)에 전송할 수도 있다.When retention occurs in the
인터페이스 회로(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
스토리지 장치(1200)는 NVM 서브 시스템(NVM subsystem)이라고도 칭해질 수 있으며, 호스트(1100)의 데이터 스토리지로 제공된다. 또한, 스토리지 장치(1200)는 호스트(1100)의 호스트 메모리(1130)의 일부 영역을 호스트 메모리 버퍼(1120)로 할당 받고, 상기 호스트 메모리 버퍼(1120)를 내부 버퍼와 동일하게 사용할 수 있다. 스토리지 장치(1200)는 호스트 인터페이스(1220), 스토리지 컨트롤러(1240), 그리고 불휘발성 메모리 장치(1260)를 포함한다.The
호스트 인터페이스(1220)는 호스트(1100)와의 데이터 교환을 위한 스토리지 장치(1200)의 물리적 통신 채널로서 제공된다. 호스트 인터페이스(1220)는 스토리지 장치(1200)의 버퍼 기능을 호스트 메모리 버퍼(1120)가 지원할 수 있는 인터페이싱 프로토콜을 가질 수 있다. 즉, 호스트 인터페이스(1220)는 호스트(1100)의 메모리 자원과 스토리지 장치(2100)의 메모리 자원을 상호 공유하기 위한 인터페이싱 방식일 수 있다. 예를 들어, 호스트 인터페이스(1220)에 의해서 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(1120)와 스토리지 장치(1200)의 내부 버퍼를 하나의 메모리 맵으로 관리할 수 있다.The
스토리지 컨트롤러(1240)는 스토리지 장치(1200)의 전반적인 동작을 제어한다. 스토리지 컨트롤러(1240)는 호스트(1100)로부터 수신된 리텐션 커맨드에 기초하여 호스트 메모리 버퍼(1120)의 운영 모드를 선택하는 동작 모드 컨트롤러(1243)를 포함한다.The
동작 모드 컨트롤러(1243)는 호스트(1100)로부터 리텐션 커맨드를 수신하고, 리텐션 커맨드에 기초하여 리텐션이 발생한 호스트 메모리 버퍼(1120)의 리텐션 레벨을 확인한다. 또한, 동작 모드 컨트롤러(1243)는 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)에 대한 운용 모드들 중 최적의 성능을 발휘하는 모드를 선택하고, 선택된 모드에 따라 리텐션이 발생한 호스트 메모리 버퍼(1120)를 운용할 수 있다. The
예를 들어, 동작 모드 컨트롤러(1243)는 리텐션 레벨에 따라 스토리지 장치(1200)의 호스트 메모리 버퍼(1120)에 대한 접근을 허용하거나 차단하는 모드를 선택할 수 있다. 또한, 동작 모드 컨트롤러(1243)는 리텐션 레벨에 따라 호스트 메모리 버퍼(1120)에 저장된 데이터 중 일부를 회수하고, 회수된 데이터를 스토리지 장치(1200)의 내부에 저장하는 모드를 선택할 수 있다. 이와 같이, 리텐션 레벨에 따라 리텐션이 발생한 호스트 메모리 버퍼(1120)의 운용 모드를 달리함으로써, 메모리 시스템(1000A)의 전체적인 성능이 향상될 수 있다.For example, the
불휘발성 메모리 장치(1260)는 스토리지 장치(1200)의 저장 매체로 제공된다. 불휘발성 메모리 장치(1260)는 플래시 메모리, PRAM, MRAM, ReRAM, FRAM, 자기 디스크 등과 같은 불휘발성 메모리를 포함할 수 있다.The
이상에서 살펴본 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(1000A)은 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)에 대한 운용 모드들 중 최적의 모드를 선택하고, 선택된 모드에 따라 호스트 메모리 버퍼(1120)를 운용한다. 이와 같이, 리텐션 레벨에 따라 호스트 메모리 버퍼(1120)의 운용을 달리함으로써, 메모리 시스템(1000A)의 전체적인 성능이 향상될 수 있다.As described above, the
도 2는 도 1의 호스트 메모리(1130)의 일 예를 보여주는 블록도이다. 도 2에서는, 설명의 편의상, 호스트 메모리 버퍼(1120)가 제1 내지 제3 HMB 영역들(1122, 1124, 1126)로 구분된다고 가정된다.FIG. 2 is a block diagram showing an example of the
호스트 메모리(1130)는 호스트(1100)에 구비된 메모리이다. 호스트 메모리(1130)는 호스트(1100)에 의해 요청되는 데이터를 저장하거나 출력할 수 있다. 예를 들어, 호스트 메모리(1130)는 DRAM이나 SRAM과 같은 휘발성 메모리로 구현될 수 있다. 그러나, 호스트 메모리(1130)의 구현은 목적에 따라 다양하게 구현될 수 있으며, 불휘발성 메모리로도 구현될 수 있다. The
호스트 메모리 버퍼(1120)는 스토리지 장치(1200)의 버퍼로 사용될 수 있도록 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)에 할당한 영역이다. 즉, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)를 내부 버퍼(internal buffer)로서 사용할 수 있다. 스토리지 장치(1200)에 구비되는 내부 버퍼의 경우, 비용, 장치 사이즈, 설계상 한계 등과 같은 다양한 이슈들 때문에, 충분한 용량을 제공하기 어려울 수 있다. 그러나, 본 발명의 실시 예에 따른 호스트(1100)는 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)가 사용하도록 스토리지 장치(1200)에 할당하였기 때문에, 스토리지 장치(1200)는 충분한 버퍼 용량을 확보할 수 있다. The
호스트 메모리 버퍼(1120)는 다양한 기준에 따라 복수의 HMB 영역들(1122, 1124, 1126)로 구분될 수 있다. The
일 실시 예에 있어서, 호스트 메모리 버퍼(1120)는 저장되는 데이터의 접근 빈도에 따라 복수의 HMB 영역들(1122, 1124, 1126)로 구분될 수 있다. 예를 들어, 제1 HMB 영역(1122)에는 스토리지 장치(1200)의 접근 빈도가 높은 데이터가 저장되고, 제2 HMB 영역(1124)에는 스토리지 장치(1200)의 접근 빈도가 중간인 데이터가 저장되며, 제3 HMB 영역(1126)에는 스토리지 장치(1200)의 접근 빈도가 낮은 데이터가 저장될 수 있다. In one embodiment, the
또한, 일 실시 예에 있어서, 호스트 메모리 버퍼(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
리텐션은 호스트 메모리 버퍼(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
도 3은 도 1의 스토리지 컨트롤러(1240)의 구성을 예시적으로 보여주는 블록도이다. 도 3을 참조하면, 스토리지 컨트롤러(1240)는 CPU(1241), 동작 모드 컨트롤러(1243), 및 플래시 인터페이스(1245)을 포함한다.FIG. 3 is a block diagram showing the configuration of the
CPU(1241)는 스토리지 장치(1100)의 전반적인 동작을 제어할 수 있다. 예를 들어, CPU(1241)는 호스트(1100)로부터의 커맨드에 응답하여 불휘발성 메모리 장치(1260)에 데이터를 기입하거나 불휘발성 메모리 장치(1260)에 저장된 데이터를 읽어 내기 위해 플래시 인터페이스(1245)를 제어할 수 있다. The
동작 모드 컨트롤러(1243)는 호스트 인터페이스(1220, 도 1 참조)를 통하여 호스트 메모리 버퍼(1120)에 대한 리텐션 커맨드를 수신한다. 동작 모드 컨트롤러(1243)는 호스트 메모리 버퍼(1120)의 리텐션 레벨을 확인하고, 이에 기초하여 호스트 메모리 버퍼(1120)에 대한 복수의 운용 모드들 중 최적의 모드를 선택한다. 이를 위해, 동작 모드 컨트롤러(1243)는 리텐션 레벨 확인 모듈(1242) 및 동작 모드 결정 모듈(1244)을 포함할 수 있다.The
리텐션 레벨 확인 모듈(1242)은 리텐션 커맨드에 포함된 호스트 메모리 버퍼(1120)에 대한 리텐션 레벨을 확인한다. 예를 들어, 호스트 메모리 버퍼(1120)가 복수의 HMB 영역들로 구분되는 경우, 리텐션 레벨 확인 모듈(1242)은 복수의 HMB 영역들 중 리텐션이 발생한 HMB 영역의 리텐션 레벨을 확인할 수 있다. The retention
동작 모드 결정 모듈(1244)은 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)에 대한 운용 모드들 중 최적의 모드를 선택하고, 선택된 모드에 따라 리텐션이 발생한 호스트 메모리 버퍼(1120)를 운용할 수 있다. The operation
예를 들어, 이하에서 설명될 바와 같이, 동작 모드 결정 모듈(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
도 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
리텐션 레벨은 응답 속도의 지연 정도에 따라 복수의 레벨들로 구분될 수 있다. 호스트(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
예를 들어, 도 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
제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
제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
이상에서 설명된 바와 같이, 본 발명의 실시 예에 따른 호스트(1100)는 응답 속도의 지연 정도에 따라 호스트 메모리 버퍼(1120)의 리텐션 레벨을 설정할 수 있다. 아울러, 동작 모드 컨트롤러(1243)는 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)에 대한 최적의 운용 모드를 선택할 수 있다. As described above, the
도 5는 도 1의 메모리 시스템(1000A)의 동작의 일 예를 보여주는 순서도이다.FIG. 5 is a flowchart illustrating an example of an operation of the
S110 단계에서, 호스트(1100)는 호스트 메모리(1130)의 일부 영역을 스토리지 장치(1200)가 사용하기 위한 호스트 메모리 버퍼(1120)로 할당한다.In step S110, the
S120 단계에서, 호스트(1100)는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 응답 속도에 기초하여 리텐션 커맨드를 설정한다. In step S120, the
S130 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 장치(1200)에 전송한다.In step S130 , the
S140 단계에서, 스토리지 장치(1200)는 리텐션 커맨드를 수신하고, 수신된 리텐션 커맨드에 기초하여 호스트 메모리 버퍼(1120)에 대한 운용 모드를 선택한다. In operation S140 , the
S150 단계에서, 스토리지 장치(1200)는 호스트(1100)로부터 리텐션 회복 커맨드(Retention Recovery command)를 수신한다. 이에 따라, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)를 내부 버퍼로 사용하는 동작이 재개(resume)된다. In step S150 , the
도 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
S121 단계에서, 호스트(1100)는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 예상 응답 시간을 확인한다.In step S121, the
S122 단계에서, 호스트(1100)는 예상 응답 시간이 제1 기준 응답 시간(TH1)보다 큰 지를 확인한다. In step S122, the
만약 예상 응답 시간이 제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
만약 예상 응답 시간이 제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
이상에서 설명된 바와 같이, 호스트(1100)는 리텐션이 발생한 호스트 메모리 버퍼(1120)의 응답 속도에 따라 리텐션 레벨을 설정할 수 있다. As described above, the
도 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
S141 단계에서, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)의 리텐션 레벨을 확인한다. 만약 리텐션 레벨이 '2'라면, 제1 모드(Mode1)를 선택하는 S142 단계가 수행된다. 만약 리텐션 레벨이 '1'라면, 제2 모드(Mode2)를 선택하는 S143 단계가 수행된다. 만약 리텐션 레벨이 'X'라면, 제3 모드(Mode1)를 선택하는 S144 단계가 수행된다.In step S141 , the
S142 단계에서, 스토리지 장치(1200)는 제1 모드(Mode1)를 선택한다. 이 경우, 스토리지 장치(1200)는 리텐션이 발생한 호스트 메모리 버퍼(1120)에 접근할 수 있다. 즉, 리텐션으로 인한 응답 속도의 저하가 전체적인 성능에 미치는 영향이 미미하기 때문에, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)를 리텐션 발생 여부와 무관하게 계속해서 내부 버퍼로 사용할 수 있다. In step S142, the
S143 단계에서, 스토리지 장치(1200)는 제2 모드(Mode2)를 선택한다. 이 경우, 스토리지 장치(1200)는 리텐션이 발생한 호스트 메모리 버퍼(1120)에 접근할 수는 있으나, 원활한 동작을 위하여 호스트 메모리 버퍼(1120)로의 접근은 최소화될 수 있다. 이를 위해, 스토리지 장치(1200)는 자주 사용하는 데이터를 호스트 메모리 버퍼(1120)로부터 회수하고, 이를 저장할 수 있다.In step S143, the
좀 더 자세히 설명하면, S143_1 단계에서, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)에 접근할 수 있다. S143_2 단계에서, 스토리지 장치(1200)는 자주 사용하는 데이터를 호스트 메모리 버퍼(1120)로부터 회수하고, 이를 내부에 저장할 수 있다. S143_3 단계에서, 스토리지 장치(1200)는 회수된 데이터를 이용하여 각종 백그라운드 동작을 수행할 수 있다. 또한, 필요에 따라, 스토리지 장치(1200)는 다시 호스트 메모리 버퍼(1120)에 접근하고, 필요한 데이터를 더 회수할 수도 있다.More specifically, in step S143_1, the
한편, S144 단계에서, 스토리지 장치(1200)는 제3 모드(Mode3)를 선택한다. 이 경우, 스토리지 장치(1200)가 리텐션이 발생한 호스트 메모리 버퍼(1120)에 접근하는 것은 허용되지 않는다. 다만, 백그라운드 동작에 필요한 데이터의 회수가 필요한지 여부에 따라, 스토리지 장치(1200)의 호스트 메모리 버퍼(1120)에 대한 접근 차단은 필요한 데이터를 회수한 이후에 실행될 수 있다.Meanwhile, in step S144, the
좀 더 자세히 설명하면, S144_1 단계에서, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)에 백그라운드 동작 등을 위해서 필요한 데이터가 있는지 판단한다. More specifically, in step S144_1, the
만약 필요한 데이터가 없다면, 스토리지 장치(1200)가 호스트 메모리 버퍼(1120)에 접근하는 것이 허용되지 않는다(S144_6 단계). 이 경우, 스토리지 장치(1200)는 딥 슬립(deep sleep) 상태에 진입하거나, 이전에 저장된 데이터를 이용하여 백그라운드 동작을 수행할 수 있다.If there is no required data, the
반대로, 만약 필요한 데이터가 있다면, 스토리지 장치(1200)는 호스트 메모리 버퍼(1120)에 접근한다(S144_2 단계). 이후, 스토리지 장치(1200)는 백그라운드 동작 등에 필요한 데이터를 호스트 메모리 버퍼(1120)로부터 회수하고, 이를 내부에 저장한다(S144_3 단계). 이후, 스토리지 장치(1200)의 호스트 메모리 버퍼(1120)에 대한 접근이 차단되고(S144_4 단계), 스토리지 장치(1200)는 회수된 데이터를 이용하여 백그라운드 동작을 수행할 수 있다.Conversely, if necessary data exists, the
이상에서 설명된 바와 같이, 스토리지 장치(1200)는 호스트 메모리 버퍼(1200)의 리텐션 레벨에 기초하여 호스트 메모리 버퍼(1120)의 운용 모드들 중 최적의 모드를 선택하고, 선택된 모드에 따라 호스트 메모리 버퍼(1120)를 운용할 수 있다.As described above, the
도 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
S1110 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. 이에 따라, 호스트 메모리 버퍼(HMB)가 활성화(enable)된 상태에서 이하의 동작이 수행될 수 있다. 아울러, 호스트 메모리 버퍼(HMB)는 반납되지 않는다. In step S1110, the
S1120 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 리텐션 커맨드는 리텐션이 발생한 호스트 메모리 버퍼(HMB)의 어드레스 및 리텐션 레벨을 포함한다. 예를 들어, 도 7과 같이, 리텐션 레벨이 '2'라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 리텐션 레벨이 '2'임을 확인하고, 제1 모드(Mode1)를 호스트 메모리 버퍼(HMB)의 운용 모드로 선택한다. 따라서, 스토리지 컨트롤러(1240)는 리텐션 발생과 무관하게 호스트 메모리 버퍼(HMB)를 계속해서 내부 버퍼로 사용한다.In step S1120, the
S1130 단계에서, 호스트(1100)는 I/O 커맨드를 스토리지 컨트롤러(1240)에 전송한다.In step S1130, the
S1140 단계에서, 스토리지 컨트롤러(1240)는 호스트(1100)로부터 수신된 I/O 커맨드를 처리한다. 이때, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)에 자유롭게 접근할 수 있다. In step S1140 , the
S1150 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S1150, the
이상에서 설명된 바와 같이, 제1 모드(Mode1)에서, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)를 반납하지 않고 계속해서 내부 버퍼로 사용한다. 따라서, 도 8의 일반적인 메모리 시스템과 달리, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼에 저장된 데이터를 회수하는 동작(즉, 도 8의 S20단계)을 수행할 필요가 없다. 결과적으로, 호스트 메모리 버퍼(HMB)로부터 데이터를 회수함으로써 발생하는 시간 지연이 방지될 수 있다. As described above, in the first mode (Mode1), the
아울러, 호스트 메모리 버퍼(HMB)를 계속해서 내부 버퍼로 사용하기 때문에, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)를 재건하는 동작(즉, 도 8의 S60 단계)을 수행할 필요가 없다. 따라서, 호스트 메모리 버퍼(HMB) 재건으로 인하여 발생하는 시간 지연 역시 방지될 수 있다.In addition, since the host memory buffer (HMB) is continuously used as an internal buffer, the
도 9b는 본 발명의 일 실시 예에 따른 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 도 9b에서는 도 7에서 설명된 제2 모드(Mode2)에서의 커맨드 전송 동작의 일 예가 설명될 것이다. 9B is a diagram illustrating an example of a command transmission operation between the
S1210 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. 이에 따라, 호스트 메모리 버퍼(HMB)가 활성화된 상태에서 이하의 동작이 수행될 수 있다.In step S1210, the
S1220 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 예를 들어, 도 7과 같이, 리텐션 레벨이 '1'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 리텐션 레벨이 '1'임을 확인하고, 이에 대응하는 제2 모드(Mode2)를 호스트 메모리 버퍼(HMB)의 운용 모드로 선택할 수 있다.In step S1220, the
S1230 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)로부터 자주 사용하는 데이터를 회수하고, 이를 스토리지 장치(1200)에 저장한다. In step S1230 , the
S1240 단계에서, 스토리지 컨트롤러(1240)는 회수된 데이터를 이용하여 백그라운드 동작을 수행한다. 이때, 만약 백그라운드 동작에 필요하다면, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)에 다시 접근하여 필요한 데이터를 더 회수할 수도 있다. 다만, S1230 단계에서 자주 사용하는 데이터가 이미 회수되었기 때문에, 스토리지 컨트롤러(1240)의 호스트 메모리 버퍼(HMB)에 대한 접근은 최소화될 수 있다.In step S1240, the
S1250 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S1250, the
S1260 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)의 컨텐츠를 업데이트 한다.In step S1260, the
이상에서 설명된 바와 같이, 제2 모드(Mode2)에서, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 리텐션이 발생한 호스트 메모리 버퍼(HMB)로의 접근이 최소화될 수 있도록 동작할 수 있다. 특히, 도 8의 일반적인 스토리지 컨트롤러가 호스트 메모리 버퍼에 저장된 데이터를 모두 회수함에 반하여, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)로부터 자주 사용하는 데이터만을 회수할 수 있다. 따라서, 데이터 회수로 인한 시간 지연이 감소될 수 있다. As described above, in the second mode (Mode2), the
아울러, 본 발명의 실시 예에 따른 호스트(1100)는 MR 커맨드의 비트를 계속해서 '0'으로 설정한다. 따라서, 호스트 메모리 버퍼(HMB)는 반납되지 않으며, 호스트 메모리 버퍼(HMB)에 저장된 데이터는 계속해서 유지된다. 따라서, 도 8의 일반적인 스토리지 컨트롤러가 새로 할당된 호스트 메모리 버퍼에 데이터를 모두 다시 저장해야 하는 것에 비하여, 본 발명의 실시 예에 따른 스토리지 커트롤러(1240)는 변경된 데이터만을 업데이트할 수 있다. 결과적으로, 호스트 메모리 버퍼(HMB)의 재개(resume) 동작에 소요되는 시간이 감소될 수 있다.In addition, the
도 9c는 본 발명의 일 실시 예에 따른 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 도 9c에서는 도 7에서 설명된 제2 모드(Mode2)에서의 커맨드 전송 동작의 다른 예가 설명될 것이다. 도 9c에서 설명되는 동작은 도 9b의 동작과 유사하다. 따라서, 중복되는 설명은 이하 생략될 것이다.9C is a diagram showing an example of a command transmission operation between the
S1310 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S1310, the
S1320 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 예를 들어, 리텐션 레벨은 '1'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 제2 모드(Mode2)를 선택한다.In step S1320, the
S1330 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)로부터 자주 사용하는 데이터를 회수하고, 이를 스토리지 장치(1200)에 저장한다. In step S1330 , the
S1340 단계에서, 호스트(1100)는 I/O 커맨드를 스토리지 컨트롤러(1240)로 전송한다.In step S1340, the
S1350 단계에서, 스토리지 컨트롤러(1240)는 회수된 데이터를 이용하여 I/O 커맨드를 처리한다. 이때, 만약 I/O 커맨드 처리에 필요하다면, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)에 다시 접근하여 필요한 데이터를 더 회수할 수도 있다. 다만, S1330 단계에서 자주 사용하는 데이터를 이미 회수하였기 때문에, 스토리지 컨트롤러(1240)의 호스트 메모리 버퍼(HMB)에 대한 접근은 최소화될 수 있다.In step S1350, the
S1360 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복 커맨드를 전송한다. In step S1360 , the
S1370 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)를 업데이트 한다.In step S1370, the
이상에서 설명된 바와 같이, 제2 모드(Mode2)에서, 본 발명의 실시 예에 따른 스토리지 컨트롤러(1240)는 리텐션이 발생한 호스트 메모리 버퍼(HMB)에 대한 접근을 최소화한 상태에서 I/O 커맨드를 처리할 수 있다. As described above, in the second mode (Mode2), the
도 9d는 본 발명의 일 실시 예에 따른 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 도 9d에서는 도 7에서 설명된 제3 모드(Mode3)에서의 커맨드 전송 동작의 일 예가 설명될 것이다.9D is a diagram illustrating an example of a command transmission operation between the
S1410 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S1410, the
S1420 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 예를 들어, 도 7과 같이, 리텐션 레벨은 'X'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 제3 모드(Mode3)를 선택한다.In step S1420, the
S1430 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)로부터 백그라운드 동작에 필요한 데이터를 회수하고, 이를 스토리지 장치(1200)에 저장한다. In step S1430 , the
S1440 단계에서, 스토리지 컨트롤러(1240)는 호스트(1100)에 필요한 데이터의 회수가 완료되었음을 알려주는 확인 신호(ACK)를 전송한다. 이후, 스토리지 장치(1200)가 호스트 메모리 버퍼(1120)로 접근하는 것이 차단된다. In step S1440, the
S1450 단계에서, 스토리지 컨트롤러(1240)는 백그라운드 동작을 수행한다. 이때, 스토리지 컨트롤러(1240)가 호스트 메모리 버퍼(1120)로 접근하는 것은 허용되지 않으며, 스토리지 컨트롤러(1240)는 회수된 데이터나 기존에 저장된 데이터만을 이용하여 백그라운드 동작을 수행한다.In step S1450, the
S1460 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S1460, the
S1470 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)의 컨텐츠를 업데이트 한다.In step S1470, the
이상에서 설명된 바와 같이, 제3 모드(Mode3)에서, 본 발명의 실시 예에 따른 호스트(1100)가 설정하는 리텐션 커맨드는 스토리지 컨트롤러(1240)가 호스트 메모리 버퍼(HMB)에 접근하는 것을 차단하는 옵션(option)으로 기능한다. As described above, in the third mode (Mode3), the retention command set by the
일반적으로, 호스트가 파워 절약 모드에 진입하는 경우, 스토리지 컨트롤러의 호스트 메모리 버퍼에 대한 접근은 호스트의 웨이크-업(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
아울러, 본 발명의 실시 예에 따른 호스트(1100)는 호스트 메모리 버퍼(HMB)를 반납하지 않기 때문에, 호스트 메모리 버퍼(HMB)의 재개에 소요되는 시간이 감소될 수 있다.In addition, since the
도 9e는 본 발명의 일 실시 예에 따른 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 도 9e에서는 도 7에서 설명된 제3 모드(Mode3)에서의 커맨드 전송 동작의 다른 예가 설명될 것이다. 도 9e에서 설명되는 동작은 도 9d의 동작과 유사하다. 따라서, 중복되는 설명은 이하 생략될 것이다.9E is a diagram illustrating an example of a command transmission operation between the
S1510 단계에서, 호스트(1100)는 EHM 커맨드와 MR 커맨드의 비트를 각각 '1'과 '0'으로 설정한다. In step S1510, the
S1520 단계에서, 호스트(1100)는 리텐션 커맨드를 스토리지 컨트롤러(1240)에 전송한다. 예를 들어, 리텐션 레벨이 'X'이라고 가정하자. 이 경우, 스토리지 컨트롤러(1240)는 제3 모드(Mode3)를 선택한다.In step S1520, the
S1530 단계에서, 스토리지 컨트롤러(1240)의 호스트 메모리 버퍼(HMB)로에 대한 접근이 차단된다. 이에 따라, 스토리지 컨트롤러(1240)는 아이들 상태(idle state)에 진입하거나, 기존에 스토리지 장치(1200)에 저장된 데이터를 이용하여 백그라운드 동작 등을 수행할 수 있다.In step S1530, access to the host memory buffer (HMB) of the
S1540 단계에서, 호스트(1100)는 스토리지 컨트롤러(1240)에 리텐션 회복(Retention Recovery) 커맨드를 전송한다. In step S1540, the
S1550 단계에서, 스토리지 컨트롤러(1240)는 호스트 메모리 버퍼(HMB)의 컨텐츠를 업데이트 한다.In step S1550, the
이상에서 설명된 바와 같이, 제3 모드(Mode3)에서, 리텐션 커맨드는 스토리지 컨트롤러(1240)가 호스트 메모리 버퍼(HMB)에 접근하는 것을 즉시 차단할 수도 있다.As described above, in the third mode (Mode3), the retention command may immediately block access of the
한편, 상술한 설명은 예시적인 것이며, 본 발명의 기술적 사상은 다양하게 변형 및 응용될 수 있다. 이하에서는, 본 발명의 응용 예들이 계속해서 설명될 것이다. 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
도 10의 메모리 시스템(1000B)은 파워 관리(power management) 기능을 추가로 지원할 수 있다. 예를 들어, 메모리 시스템(1000B)은 동적 파워 관리(dynamic power management) 기능을 지원할 수 있으며, 호스트(1100_1)는 스토리지 장치(1200_1)가 가장 좋은 성능을 발휘할 수 있도록 파워 상태(power states)를 조정(modifying)할 수 있다. 이를 위해, 호스트(1100_1)는 파워 매니저(1140)를 포함하고, 동작 모드 컨트롤러(1243_1)는 파워 상태 설명자 테이블(1246)을 포함할 수 있다. The
파워 매니저(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
파워 매니저(1140)는 복수의 파워 상태들 각각에 대한 성능 통계에 기초하여 스토리지 장치(1200_1)의 성능을 극대화할 수 있는 파워 상태를 선택할 수 있다. 특히, 본 발명의 실시 예에 따른 파워 매니저(1140)는 호스트 메모리 버퍼(1120)의 운용 모드에 기초하여 파워 상태를 선택할 수 있다. 이 경우, 호스트 메모리 버퍼(1120)의 운용 모드는 성능 목표(Performance Objective)로서 파워 매니저(1140)에 제공될 수 있다. 또한, 다른 예로, 파워 매니저(1140)는 호스트 메모리 버퍼(1120)의 리텐션 레벨에 기초하여 파워 상태를 선택할 수도 있다. 이 경우에, 호스트(1100_1)에 의하여 설정된 리텐션 커맨드가 성능 목표로서 파워 매니저(1140)에 제공될 수 있다. The
파워 상태 설명자 테이블(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
도 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
도 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
도 12c는 제2 모드(Mode2)에서의 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 다른 예를 보여주는 도면이다. 12C is a diagram showing another example of a command transmission operation between the
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
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
도 12d는 제3 모드(Mode3)에서의 호스트(1100)와 스토리지 컨트롤러(1240) 사이의 커맨드 전송 동작의 일 예를 보여주는 도면이다. 12D is a diagram showing an example of a command transmission operation between the
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
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
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
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
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
한편, 앞선 설명에서, 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: addressEHM: 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.
상기 호스트는 비-동작 파워 상태를 상기 컨트롤러의 파워 상태로 선택하는 메모리 시스템의 동작 방법.According to claim 1,
The host selects a non-operating power state as the power state of the controller.
상기 컨트롤러는 상기 비-동작 파워 상태에서 허용된 동작을 수행하기 위해 상기 호스트 메모리 버퍼에 저장된 데이터의 적어도 일부를 회수하는 단계를 더 포함하는 메모리 시스템의 동작 방법. 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.
상기 컨트롤러는 상기 호스트 메모리 버퍼에 저장된 데이터의 적어도 일부를 회수하는 단계가 완료되었음을 통지하는 확인 신호를 상기 호스트에 전송하는 단계를 더 포함하며,
상기 확인 신호가 전송된 이후, 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근은 허용되지 않는 메모리 시스템의 동작 방법.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.
상기 비-동작 파워 상태가 선택된 이후, 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근은 허용되지 않는 메모리 시스템의 동작 방법.According to claim 2,
After the non-operating power state is selected, access of the controller to the host memory buffer is not allowed.
상기 리텐션 커맨드는 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근을 차단하기 위한 옵션으로 기능하는 메모리 시스템의 동작 방법.According to claim 5,
The retention command functions as an option for blocking access of the controller to the host memory buffer.
상기 호스트 메모리 버퍼의 예상 응답 시간이 기준 응답 시간 보다 작은 경우에, 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근이 허용되는 메모리 시스템의 동작 방법.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.
상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근이 허용되는 경우에, 상기 호스트는 액티브 파워 상태를 상기 컨트롤러의 파워 상태로 선택하는 메모리 시스템의 동작 방법.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.
상기 호스트 메모리 버퍼는 적어도 두 개의 영역을 포함하며, 상기 리텐션 커맨드는 상기 적어도 두 개의 영역 각각에 대한 응답 속도의 정보를 포함하는 메모리 시스템의 동작 방법.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.
상기 컨트롤러가 상기 호스트로부터 리텐션 회복 커맨드를 수신하는 단계; 및
상기 스토리지 장치에 저장된 데이터를 상기 호스트 메모리 버퍼에 업데이트하는 단계를 더 포함하는 메모리 시스템의 동작 방법.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.
상기 호스트 메모리 버퍼에 저장된 데이터의 적어도 일부를 회수하여 상기 스토리지 장치에 저장하는 단계를 더 포함하는 메모리 시스템의 동작방법.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.
상기 컨트롤러는 상기 호스트 메모리 버퍼에 저장된 데이터의 적어도 일부를 회수하는 단계가 완료되었음을 통지하는 확인 신호를 상기 호스트에 전송하는 단계를 더 포함하며,
상기 확인 신호가 전송된 이후, 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근은 허용되지 않는 메모리 시스템의 동작 방법.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.
상기 리텐션 커맨드는 상기 컨트롤러의 상기 호스트 메모리 버퍼로의 접근을 허용하지 않는 옵션으로 기능하는 메모리 시스템의 동작 방법.According to claim 11,
The retention command functions as an option that does not allow the controller to access the host memory buffer.
상기 리텐션 커맨드는 상기 호스트 메모리 버퍼의 어드레스 및 리텐션 레벨을 포함하며, 상기 리텐션 레벨은 상기 호스트 메모리 버퍼의 예상 응답 시간과 적어도 하나의 기준 응답 시간을 비교하여 생성되는 메모리 시스템의 동작 방법.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.
상기 컨트롤러는 상기 리텐션 커맨드에 포함된 상기 리텐션 레벨에 따라 상기 호스트 메모리 버퍼의 운영 모드를 선택하는 메모리 시스템의 동작 방법.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.
상기 호스트 메모리 버퍼는 적어도 두 개의 영역을 포함하며, 상기 리텐션 커맨드는 상기 적어도 두 개의 영역 각각에 대한 리텐션 레벨을 포함하는 메모리 시스템의 동작 방법.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.
상기 컨트롤러가 상기 호스트로부터 리텐션 회복 커맨드를 수신하는 단계; 및
상기 스토리지 장치에 저장된 데이터를 상기 호스트 메모리 버퍼에 업데이트하는 단계를 더 포함하는 메모리 시스템의 동작 방법.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.
상기 제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.
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)
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 |
-
2022
- 2022-05-04 KR KR1020220055613A patent/KR102547825B1/en active IP Right Grant
Patent Citations (6)
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 |