KR101824067B1 - Method of interfacing between host and semiconductor storage device for throttling performance of the semiconductor storage device, and apparatus there-of - Google Patents
Method of interfacing between host and semiconductor storage device for throttling performance of the semiconductor storage device, and apparatus there-of Download PDFInfo
- Publication number
- KR101824067B1 KR101824067B1 KR1020100080862A KR20100080862A KR101824067B1 KR 101824067 B1 KR101824067 B1 KR 101824067B1 KR 1020100080862 A KR1020100080862 A KR 1020100080862A KR 20100080862 A KR20100080862 A KR 20100080862A KR 101824067 B1 KR101824067 B1 KR 101824067B1
- Authority
- KR
- South Korea
- Prior art keywords
- field
- command
- performance
- storage device
- semiconductor storage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
반도체 저장장치의 성능 조절을 위한 상기 반도체 저장 장치와 호스트간의 인터페이스 방법 및 그 장치가 개시된다. 상기 인터페이스 방법은 상기 호스트로부터 설정 요청 명령을 수신하는 단계; 상기 반도체 저장장치가 상기 설정 요청 명령에 응답하여, 요청된 성능 조절 파라미터를 특정 값으로 설정하는 단계; 및 상기 반도체 저장 장치가 상기 호스트로 상기 성능 조절 파라미터의 설정을 완료하였음을 나타내는 설정 응답 신호를 전송하는 단계를 구비한다.A method and apparatus for interfacing between a semiconductor storage device and a host for controlling performance of a semiconductor storage device are disclosed. The interface method includes receiving a setup request command from the host; The semiconductor storage device in response to the configuration request command setting a requested performance control parameter to a specific value; And transmitting a setting response signal indicating that the semiconductor storage device has completed setting the performance adjustment parameter to the host.
Description
본 발명은 데이터 저장 장치와 호스트간 인터페이스에 관한 것으로, 특히, 비휘발성 메모리에 데이터를 저장하는 반도체 저장장치와 호스트 간에 상기 반도체 저장장치의 성능 조절을 위한 인터페이스 방법 및 그 장치에 관한 것이다.The present invention relates to an interface between a data storage device and a host, and more particularly, to an interface method and apparatus for controlling the performance of the semiconductor storage device between a semiconductor storage device and a host that store data in a nonvolatile memory.
반도체 저장 장치는 반도체(특히, 비휘발성 메모리)를 이용하여 데이터를 저장하는 장치로서, 지금까지 대용량 저장장치로 널리 사용되던 디스크 저장매체(즉, 하드디스크드라이브)에 비하여 속도가 빠르고 물리적 충격에 강하고 발열이나 소음도 적으며, 소형화할 수 있는 장점이 있다. 반도체 저장 장치의 일 예로는, 솔리드 스테이트 드라이브(SSD: solid state drive)가 있다.Semiconductor storage devices are devices that store data using semiconductors (particularly, nonvolatile memory), and are faster in speed and stronger in physical shock than disk storage media (hard disk drives), which have hitherto been widely used as mass storage devices It has less heat and noise, and can be miniaturized. An example of a semiconductor storage device is a solid state drive (SSD).
한편, 반도체 저장 장치는 사용 수명에 제한이 있을 수 있다. 예를 들면 NAND 플래시 메모리가 대표적이다. NAND 플래시 메모리는 메모리 소자가 블록(block) 단위로 나누어져 있으며, 한 개의 블록 내에는 다수의 페이지가 존재한다. 사용자는 먼저 블록을 소거하고 그 블록내의 페이지들을 순차적으로 특정 데이터로 프로그램함으로써 NAND 플래시 메모리를 이용한다. 모든 페이지가 프로그램된 블록을 새로운 데이터로 프로그램하기 위해서는 해당 블록을 다시 소거해야 한다. 이 일련의 과정을 프로그램-소거 사이클 (PE-cycle)이라고 부르며, NAND 플래시 메모리의 경우 한 블록이 견딜 수 있는 PE-사이클 횟수가 제한되어 있다. 이를 NAND 플래시 메모리의 인듀어런스(endurance)라고 부른다. On the other hand, semiconductor storage devices may have a limited service life. For example, NAND flash memory is a typical example. In a NAND flash memory, a memory element is divided into block units, and a plurality of pages exist in one block. The user first uses the NAND flash memory by erasing the block and sequentially programming the pages in the block with specific data. To program all pages as new data with programmed blocks, the corresponding block must be erased again. This sequence of processes is called the program-erase cycle (PE-cycle), and in the case of NAND flash memory, the number of PE cycles that a block can withstand is limited. This is called the endurance of the NAND flash memory.
한 블록이 경험한 PE-사이클의 횟수가 인듀어런스 한계(endurance limit)를 초과할 경우 그 블록은 추후 오동작할 확률이 높아진다. 메모리의 오동작 원인으로는 상술한 프로그램, 소거 동작 외에도 독출(Read) 동작, 자연적인 전하 누설(charge loss) 등이 있다. 오동작 확률이 높아지면 반도체 저장장치의 데이터 무결성(integrity)를 위해서 더 이상 쓰이면 안 된다. 이 때문에 NAND 플래시 메모리를 응용하는 반도체 저장장치는 그 수명에 있어서 제한을 갖는 것이다. If the number of PE-cycles experienced by one block exceeds the endurance limit, then the block has a higher probability of malfunctioning in the future. Causes of malfunction of the memory include read operation, natural charge loss, and the like in addition to the program and erase operations described above. As the probability of malfunction increases, it should no longer be used for data integrity of semiconductor storage devices. For this reason, semiconductor storage devices employing NAND flash memory have a limitation in their lifetime.
상기 예에서 보면, 반도체 저장장치에 과도한 워크로드(workload)-예를 들어, 쓰기 동작, 소거 동작, 독출 동작 등-을 가하면 반도체 저장장치의 수명이 짧아지거나 혹은 예상 수명이 보장되지 못할 수가 있다. 따라서, 반도체 저장 장치의 예상 수명을 보장하기 위해서는 반도체 저장장치에 인가되는 워크로드의 강도나 양에 따라 반도체 저장장치의 처리 능력이 조절될 필요가 있다.In the above example, when an excessive workload is applied to the semiconductor storage device, for example, a write operation, an erase operation, a read operation, or the like, the life of the semiconductor storage device may be shortened or the expected life may not be guaranteed. Therefore, in order to ensure the expected lifetime of the semiconductor storage device, the processing capacity of the semiconductor storage device needs to be adjusted depending on the strength or amount of the workload applied to the semiconductor storage device.
이러한 경우는 최근 서버 응용(Server Application)을 겨냥하여 멀티-레벨 셀 (MLC: multi-level cell) NAND 플래시 메모리로 구성된 솔리드 스테이트 드라이브(SSD: solid state drive)에서 찾아볼 수 있다. 서버향 저장장치는 높은 성능, 즉 높은 초당 입출력(I/O per second)을 요구할 뿐만 아니라, 저장장치에 인가되는 워크로드의 양의 변화가 크다. 이런 응용처에 제한된 인듀어런스 한계를 지닌 MLC NAND 플래시 메모리를 적용하면 SSD의 수명을 보장하는데 어려움이 있다. This case can be found in a solid state drive (SSD) composed of a multi-level cell (MLC) NAND flash memory for a server application. Server-oriented storage devices require high performance, that is, high I / O per second (I / O), as well as a large change in the amount of workload applied to the storage device. Application of MLC NAND flash memory with limited endurance limitations to such applications has difficulties in guaranteeing the lifetime of the SSD.
그러나, 수명을 보장하여야 하는 저장장치가 상술한 서버향 저장 장치에 한정되는 것은 아니며, PC(personal computer), 노트북, 모바일 기기 등에 적용될 저장장치의 수명 역시 보장될 필요가 있다.However, the storage device to which the life is to be guaranteed is not limited to the above-described server-oriented storage device, and the lifetime of a storage device to be applied to a PC (personal computer), a notebook computer,
인듀어런스 한계를 지닌 메모리의 예로는 상술한 NAND 플래시 메모리 외에도 PRAM(상변화 메모리, Phase-change Memory), MRAM(Magnetic Random Access Memory), ReRAM(저항성 메모리, Resistive RAM), FeRAM(강유전체 램, Ferroelectric RAM) 등이 있을 수 있다. 또한, 인듀어런스 한계를 지닌 NAND 플래시 메모리에는 플로팅 게이트를 사용하는 NAND 플래시 메모리와 CTF(Charge Trap Flash) 방식의 NAND 플래시 메모리도 포함된다. In addition to the NAND flash memory described above, examples of the memory having the limit of the degree of freedom include PRAM (Phase Change Memory), MRAM (Magnetic Random Access Memory), ReRAM (Resistive RAM), FeRAM (Ferroelectric RAM, Ferroelectric RAM ) And the like. In addition, NAND flash memory with the limit of the limit includes a NAND flash memory using a floating gate and a NAND flash memory based on a charge trap flash (CTF) method.
이와 같이 인듀어런스 한계를 지닌 비휘발성 메모리를 사용하는 반도체 저장장치의 수명을 연장하기 위하여 혹은 예상 수명을 보장하기 위하여 반도체 저장 장치의 성능을 조절할 필요가 있다. Thus, it is necessary to adjust the performance of the semiconductor storage device in order to extend the lifetime of the semiconductor storage device using the nonvolatile memory having the endurance limit, or to ensure the expected lifetime.
따라서 본 발명이 이루고자 하는 기술적인 과제는 반도체 저장 장치의 성능을 조절하기 위하여 필요한 호스트와 반도체 저장 장치간의 인터페이스 방법 및 그 장치를 제공하는 것이다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made in view of the above problems, and it is an object of the present invention to provide a method and apparatus for interfacing between a host and a semiconductor storage device for controlling the performance of a semiconductor storage device.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따르면, 반도체 저장장치의 성능 조절을 위한 상기 반도체 저장 장치와 호스트간의 인터페이스 방법이 제공된다. 상기 방법은, 상기 호스트로부터 설정 요청 명령을 수신하는 단계; 상기 반도체 저장장치가 상기 설정 요청 명령에 응답하여, 요청된 성능 조절 파라미터를 특정 값으로 설정하는 단계; 및 상기 반도체 저장 장치가 상기 호스트로 상기 성능 조절 파라미터의 설정을 완료하였음을 나타내는 설정 응답 신호를 전송하는 단계를 구비한다.According to an aspect of the present invention, there is provided a method of interfacing a semiconductor storage device with a host for controlling performance of the semiconductor storage device. The method includes receiving a configuration request command from the host; The semiconductor storage device in response to the configuration request command setting a requested performance control parameter to a specific value; And transmitting a setting response signal indicating that the semiconductor storage device has completed setting the performance adjustment parameter to the host.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따르면, 반도체 저장장치의 성능 조절을 위한 상기 반도체 저장 장치와 호스트간의 인터페이스 방법이 제공된다. 상기 방법은 상기 호스트가 상기 반도체 저장장치의 성능 조절을 위하여 필요한 성능 조절 파라미터를 특정 값으로 설정하기 위하여 상기 반도체 저장 장치로 설정 요청 명령을 전송하는 단계; 및 상기 반도체 저장 장치로부터 상기 설정 요청 명령에 응답하여 해당 성능 조절 파라미터를 상기 특정 값으로 설정하였음을 나타내는 설정 응답 신호를 수신하는 단계를 구비한다. According to another aspect of the present invention, there is provided a method of interfacing a semiconductor storage device with a host for controlling performance of the semiconductor storage device. The method comprising: sending a configuration request command to the semiconductor storage device to set a performance control parameter required for performance control of the semiconductor storage device by the host to a specific value; And receiving a setting response signal from the semiconductor storage device in response to the setting request command indicating that the performance adjustment parameter is set to the specific value.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따르면, 반도체 저장장치의 성능 조절을 위한 상기 반도체 저장 장치와 호스트간의 인터페이스 방법이 제공된다. 상기 방법은, 상기 호스트로부터 정보 요청 명령을 수신하는 단계; 및 상기 반도체 저장장치가 상기 정보 요청 명령에 응답하여, 요청된 성능 조절 파라미터를 포함하는 정보 응답 신호를 상기 호스트로 전송하는 단계를 구비한다.According to another aspect of the present invention, there is provided a method of interfacing a semiconductor storage device with a host for controlling performance of the semiconductor storage device. The method includes receiving an information request command from the host; And transmitting, by the semiconductor storage device, an information response signal including the requested performance control parameter to the host in response to the information request command.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따르면, 반도체 저장장치의 성능 조절을 위한 상기 반도체 저장 장치와 호스트간의 인터페이스 방법이 제공된다. 상기 호스트가 상기 반도체 저장장치의 성능 조절 파라미터의 전송을 요청하는 정보 요청 명령을 상기 반도체 저장 장치로 전송하는 단계; 및 상기 반도체 저장 장치로부터 상기 정보 요청 명령에 응답하여 전송되는 상기 성능 조절 파라미터의 값을 포함하는 정보 응답 신호를 수신하는 단계를 구비한다.According to another aspect of the present invention, there is provided a method of interfacing a semiconductor storage device with a host for controlling performance of the semiconductor storage device. Transmitting, by the host, an information request command to the semiconductor storage device requesting transmission of a performance adjustment parameter of the semiconductor storage device; And receiving an information response signal including the value of the performance adjustment parameter transmitted in response to the information request command from the semiconductor storage device.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따르면, 비휘발성 메모리; 및 호스트의 요청에 따라 상기 비휘발성 메모리를 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 상기 호스트로부터 설정 요청 명령을 수신하고, 상기 설정 요청 명령에 응답하여 요청된 성능 조절 파라미터를 특정 값으로 설정하며, 상기 반도체 저장 장치가 상기 호스트로 상기 성능 조절 파라미터의 설정을 완료하였음을 나타내는 설정 응답 신호를 전송하는 장치가 제공된다.According to another aspect of the present invention, there is provided a nonvolatile memory including: a nonvolatile memory; And a controller for controlling the nonvolatile memory in response to a request from a host, the controller receiving a configuration request command from the host, setting a requested performance control parameter in response to the configuration request command to a specific value, There is provided an apparatus for transmitting a setting response signal indicating that the semiconductor storage device has completed setting of the performance adjustment parameter to the host.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따르면, CPU; 및 상기 CPU의 제어에 따라 반도체 저장장치의 성능 조절 파라미터를 특정 값으로 설정하기 위하여 상기 반도체 저장 장치로 설정 요청 명령을 전송하고, 상기 반도체 저장 장치로부터 상기 설정 요청 명령에 응답하여 해당 성능 조절 파라미터를 상기 특정 값으로 설정하였음을 나타내는 설정 응답 신호를 수신하는 인터페이스부를 구비하는 장치가 제공된다.According to another aspect of the present invention, And sending a configuration request command to the semiconductor storage device to set a performance control parameter of the semiconductor storage device to a specific value under the control of the CPU, And an interface unit for receiving a setting response signal indicating that the specific value is set.
상기 장치는 호스트 또는 RAID 컨트롤러 카드일 수 있다.The device may be a host or a RAID controller card.
상술한 바와 같이 본 발명에 의하면, 반도체 저장 장치의 성능 조절에 필요한 여러 가지 파라미터들이 호스트의 요청 또는 명령에 의하여 용이하게 설정될 수 있고, 또한 성능 조절 관련 정보가 반도체 저장장치로부터 호스트로 보고될 수 있다. As described above, according to the present invention, various parameters required for performance control of the semiconductor storage device can be easily set by a host request or command, and performance control related information can be reported from the semiconductor storage device to the host have.
도 1은 본 발명의 일 실시예에 따른 데이터 저장 시스템의 개략적인 블록도이다.
도 2는 본 발명의 일 실시예에 따른 컨트롤러의 개략적인 블록도이다.
도 3은 도 2에 도시된 비휘발성 메모리 장치의 구조를 개략적으로 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 호스트의 개략적인 블록도이다.
도 5는 본 발명의 일 실시예에 따른 반도체 저장장치의 성능 조절 방법을 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 반도체 저장 장치의 성능 조절을 위한 호스트와 반도체 저장 장치간 인터페이스 방법을 개략적으로 나타내는 플로우차트이다.
도 7은 본 발명의 다른 일 실시예에 따른 반도체 저장 장치의 성능 조절을 위한 호스트와 반도체 저장 장치간 인터페이스 방법을 개략적으로 나타내는 플로우차트이다.
도 8은 본 발명의 실시예에 따른 반도체 저장장치의 성능 조절 방법을 위하여 반도체 저장장치에 저장되는 성능 조절 파라미터들이다.
도 9는 본 발명의 실시예에 따른 반도체 저장장치의 워크로드 예측 방법에 사용되는 워크로드 파라미터들이다.
도 10은 본 발명의 일 실시예에 따른 설정 요청 명령의 포맷을 나타내는 테이블이다.
도 11a 및 도 11b는 각각 본 발명의 일 실시예에 따른 성능 조절 인에이블 명령 및 정보 요청 명령의 포맷을 나타내는 테이블이다.
도 12는 본 발명의 일 실시예에 따른 정보 응답 명령의 포맷을 나타내는 테이블이다.
도 13은 본 발명의 실시예에 따른 호스트와 반도체 저장 장치간 인터페이스 방법을 좀 더 구체적으로 나타내는 플로우차트이다.
도 14는 본 발명의 실시예에 따른 반도체 저장장치를 구비하는 전자 시스템의 블록도이다.
도 15a 및 도 15b는 각각 본 발명의 다른 실시예에 따른 전자 시스템의 블록도이다.
도 16은 본 발명의 실시예에 따른 반도체 저장장치를 구비하는 컴퓨팅 시스템의 블록도이다.1 is a schematic block diagram of a data storage system in accordance with an embodiment of the present invention.
2 is a schematic block diagram of a controller according to an embodiment of the present invention.
FIG. 3 is a view schematically showing the structure of the nonvolatile memory device shown in FIG. 2. FIG.
4 is a schematic block diagram of a host according to an embodiment of the present invention.
5 is a flowchart illustrating a method of adjusting the performance of a semiconductor storage device according to an embodiment of the present invention.
FIG. 6 is a flowchart schematically illustrating a host-semiconductor storage device interface method for controlling performance of a semiconductor storage device according to an embodiment of the present invention.
FIG. 7 is a flowchart schematically illustrating a host-semiconductor storage device interface method for controlling performance of a semiconductor storage device according to another embodiment of the present invention.
FIG. 8 shows performance control parameters stored in a semiconductor storage device for a method of adjusting the performance of a semiconductor storage device according to an embodiment of the present invention.
FIG. 9 is a workload parameter used in a method of predicting a workload of a semiconductor storage device according to an embodiment of the present invention.
10 is a table showing a format of a setup request command according to an embodiment of the present invention.
11A and 11B are tables showing the format of a performance adjustment enable command and an information request command according to an embodiment of the present invention, respectively.
12 is a table showing the format of an information response command according to an embodiment of the present invention.
13 is a flowchart illustrating a method of interfacing a host and a semiconductor storage device according to an embodiment of the present invention.
14 is a block diagram of an electronic system including a semiconductor storage device according to an embodiment of the present invention.
15A and 15B are block diagrams of an electronic system according to another embodiment of the present invention, respectively.
16 is a block diagram of a computing system having a semiconductor storage device according to an embodiment of the present invention.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.Specific structural and functional descriptions of embodiments according to the concepts of the present invention disclosed in this specification or application are merely illustrative for the purpose of illustrating embodiments in accordance with the concepts of the present invention, The examples may be embodied in various forms and should not be construed as limited to the embodiments set forth herein or in the application.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
예컨대, 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송 또는 출력'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터 또는 신호를 '전송 또는 출력'할 수 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터 또는 신호를 상기 다른 구성요소로 '전송 또는 출력'할 수 있음을 의미한다. For example, when one component 'transmits or outputs' data or signals to another component, the component may 'transmit or output' the data or signal directly to the other component, and at least one Quot; means that the data or signal can be " transmitted or outputted " to another element through another element of the system.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail with reference to the preferred embodiments of the present invention with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.
본 발명의 실시예는 반도체 저장장치의 성능을 조절하기에 앞서, 먼저 저장장치가 겪을 워크로드(즉, 워크로드의 강도 및 패턴)을 파악하고 예측하는 방법에 관한 것이다. 워크로드의 강도 및 패턴을 알아야만, 저장장치가 보장해야 하는 수명과 저장장치의 인듀어런스 한계(endurance limit)과 관련하여, 저장장치의 최적의 성능을 도출할 수 있기 때문이다. An embodiment of the present invention relates to a method for identifying and predicting a workload (i. E., The intensity and pattern of a workload) that a storage device will first experience before adjusting the performance of a semiconductor storage device. Knowing the strength and pattern of the workload can lead to optimal performance of the storage device in relation to the lifetime that the storage device must ensure and the endurance limit of the storage device.
도 1은 본 발명의 일 실시예에 따른 데이터 저장 시스템(1)의 개략적인 블록도이다. 본 발명의 일 실시예에 따른 데이터 저장 시스템(1)은 반도체 저장장치(10) 및 호스트(20)를 포함한다. 반도체 저장장치(10)는 컨트롤러(100) 및 비휘발성 메모리 장치(200)를 포함할 수 있다. 1 is a schematic block diagram of a
호스트(20)는 PCI-E(peripheral component interconnect - express), ATA(Advanced Technology Attachment), SATA(serial ATA), PATA(parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 반도체 저장장치(10)와 통신할 수 있다. 그러나, 호스트(20)와 반도체 저장장치(10)간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(multi-media card), ESDI(enhanced small disk interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 인터페이스 프로토콜들 중 하나일 수 있다. The
본 발명의 실시예에 따른 반도체 저장장치(10)는 솔리드 스테이트 드라이브(Solid State Drive, 이하 'SSD'라 함) 또는 SD(secure digital) 카드일 수 있으나, 이에 한정되지 않는다. 또한, 비휘발성 메모리 장치(200)는 플래시 메모리 장치일 수 있으나, 이에 한정되지 않으며, PRAM, MRAM, ReRAM, 또는 FeRAM 장치일 수 있다. 비휘발성 메모리 장치(200)가 플래시 메모리 장치인 경우, 플로팅 게이트 방식의 NAND 플래시 메모리 장치 또는 CTF(Charge Trap Flash) 방식의 NAND 플래시 메모리 장치일 수 있다. 비휘발성 메모리 장치(200)의 메모리 셀 트랜지스터들은 2차원적으로 배열된 구조를 가질 수도 있고, 또는 3차원적으로 배열된 구조를 가질 수도 있다.The
컨트롤러(100)는 반도체 저장장치(10)의 동작을 전반적으로 제어하며, 또한 호스트(20)와 비휘발성 메모리 장치(200) 간의 제반 데이터 교환을 제어한다. 예컨대, 컨트롤러(100)는 호스트(20)의 요청에 따라 비휘발성 메모리 장치(200)를 제어하여 데이터를 쓰거나 데이터를 독출한다. 또한, 컨트롤러(100)는 비휘발성 메모리의 특성이나 비휘발성 메모리의 효율적인 관리를 위하여 필요한 일련의 내부 동작(예컨대, 성능 조절, 머지, 웨어 레벨링 등)을 제어한다.The
비휘발성 메모리 장치(200)는 데이터를 비휘발적으로 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. The
도 2는 본 발명의 일 실시예에 따른 컨트롤러(100)의 개략적인 블록도이다. 도 2를 참조하면, 컨트롤러(100)는 호스트 인터페이스(110), DRAM(120), SRAM(130), 메모리 인터페이스(140), CPU(150), 버스(160), 워크로드 모듈(170), 타이머(180), 성능 조절 모듈(190) 및 클럭 발생기(195)를 포함할 수 있다.2 is a schematic block diagram of a
호스트 인터페이스(110)는 호스트(20)와 통신하기 위하여 상술한 바와 같은 인터페이스 프로토콜을 구비한다. DRAM(120), 및 SRAM(130)은 각각 데이터 및/또는 프로그램을 휘발적으로 저장한다. 비휘발성 메모리 인터페이스(140)는 비휘발성 메모리 장치(200)와 인터페이싱한다. The
CPU(150)는 비휘발성 메모리 장치(200)로/로부터 데이터 기록/독출을 위한 제반 제어 동작을 수행한다. The
워크로드 모듈(170)은 반도체 저장장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고, 수집된 워크로드 데이터를 토대로 워크로드를 예측할 수 있다. The
성능 조절 모듈(190)은 워크로드 모듈(170)에서 예측한 워크로드에 따라 타겟 성능 레벨을 결정하고, 결정된 성능 레벨을 적용하여 반도체 저장장치(10)의 성능을 조절한다. The
타이머(180)는 CPU(150), 워크로드 모듈(170) 및 성능 조절 모듈(190)로 시간 정보를 제공한다. 워크로드 모듈(170), 타이머(180) 및 성능 조절 모듈(190)은 각각 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. The
워크로드 모듈(170), 타이머(180) 및 성능 조절 모듈(190)이 소프트웨어로 구현되는 경우, 해당 프로그램은 비휘발성 메모리 장치(200)에 저장되고, 반도체 저장장치(10)가 파워-온되면, 비휘발성 메모리 장치(200)로부터 SRAM(130)으로 로드되어 CPU(150)에 의해 실행될 수 있다.When the
클럭 발생기(195)는 CPU(150), DRAM(120), 및 비휘발성 메모리 장치(200)의 동작을 위해 필요한 클럭 신호를 생성하여, 해당 소자로 제공한다. CPU(150), DRAM(120), 및 비휘발성 메모리 장치(200)에 제공되는 클럭 신호의 속도는 각각 다를 수 있다. 클럭 발생기(195)는 성능 조절 모듈(190)에서 결정된 성능 레벨에 따라, CPU(150), DRAM(120), 및 비휘발성 메모리 장치(200)로 각각 인가되는 클럭 신호의 속도를 조절함으로써, 반도체 저장장치(10)의 성능이 조절되도록 할 수 있다.The
비록 도면에는 도시되지 않았지만, 반도체 저장장치(10)는 반도체 저장장치(10)의 파워-온(power-on)시 실행되는 코드 데이터를 저장하는 ROM(미도시), 비휘발성 메모리 장치(200)에 저장될 데이터를 인코딩하고 비휘발성 메모리 장치(200)로부터 독출된 데이터를 디코딩하기 위한 ECC 엔진(미도시) 등의 구성요소를 더 구비할 수 있다.Although not shown in the figure, the
도 3은 도 2에 도시된 비휘발성 메모리 장치(200)의 구조를 개략적으로 나타내는 도면이다. 이를 참조하면, 비휘발성 메모리 장치(200)는 다수의 메모리 소자들을 포함할 수 있다. 도 3에는 4-채널(4-channel)/ 3-뱅크(3-bank) 방식의 하드웨어 구조를 갖는 비휘발성 메모리 장치(200)가 예시적으로 도시되나, 본 발명이 이에 한정되는 것은 아니다. FIG. 3 schematically shows the structure of the
도 3에 도시된 반도체 저장장치(10)에서, 컨트롤러(100)와 비휘발성 메모리 장치(200)는 4개의 채널(Channel A, B, C, D)로 연결되며, 각 채널에는 3개의 플래시 메모리 소자(CA0~CA2, CB0~CB2, CC0~CC2, CD0~CD2)가 연결되는 구조이다. 그러나, 채널의 수 및 뱅크의 수는 이에 한정되지 않고 변경될 수 있음은 당연하다.In the
이러한 구조를 가지는 반도체 저장장치(10)에서 반도체 저장장치(10)의 성능 조절 단위는, 비휘발성 메모리 장치(200) 전체, 비휘발성 메모리 장치(200)의 개별적인 메모리 소자(메모리 칩)가 공유하는 버스(채널) 단위, 뱅크 단위, 혹은 개별적인 소자 단위일 수 있다. 여기서, 뱅크는 다른 채널상에서 같은 오프셋(offset)에 위치하는 메모리 소자들의 그룹이다. In the
도 4는 본 발명의 일 실시예에 따른 호스트(20)의 개략적인 블록도이다. 도 4를 참조하면, CPU(210), 메모리(220), 버스(230), 저장장치 인터페이스(240), 워크로드 모듈(250), 타이머(260), 및 성능 조절 모듈(270)을 포함할 수 있다. 4 is a schematic block diagram of a
저장장치 인터페이스(240)는 반도체 저장장치(10)와 통신하기 위한 인터페이스 프로토콜을 구비한다. The
CPU(210)는 반도체 저장장치(10)로/로부터 데이터 기록/독출을 위한 제반 제어 동작을 수행한다. The
워크로드 모듈(250)은 반도체 저장장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고, 수집된 워크로드 데이터를 토대로 워크로드를 예측할 수 있다. The
성능 조절 모듈(270)은 워크로드 모듈(250)에서 예측한 워크로드에 따라 타겟 성능 레벨을 결정하고, 결정된 성능 레벨을 적용하여 반도체 저장장치(10)의 성능을 조절한다. The
타이머(260)는 CPU(210), 워크로드 모듈(250) 및 성능 조절 모듈(270)로 시간 정보를 제공한다. 워크로드 모듈(250), 타이머(260) 및 성능 조절 모듈(270)은 각각 소프트웨어, 하드웨어 또는 소프트웨어 및 하드웨어의 결합으로 구현될 수 있다. The
워크로드 모듈(250)은 및 성능 조절 모듈(270)은 반도체 저장장치(10)의 성능을 호스트(20)에서 조절하거나 제어하기 위한 것으로, 호스트(20)의 개입없이 반도체 저장 장치(10)가 자체적으로 성능을 조절하는 경우에는 호스트(20)는 워크로드 모듈(250) 및 성능 조절 모듈(270)을 구비하지 않을 수 있다.The
도 5는 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법은 도 2에 도시된 반도체 저장 장치(10), 호스트(20) 또는 반도체 저장 장치(10)와 호스트(20) 양자에 분산되어 구현될 수 있다. 5 is a flowchart illustrating a method for adjusting the performance of the
본 발명의 일 실시예에 따른 성능 조절 방법이 반도체 저장 장치(10)에 구현되는 예를 중심으로 기술하나, 상술한 바와 같이, 본 발명이 이에 한정되는 것은 아니다.The performance control method according to an embodiment of the present invention is described with reference to an example implemented in the
도 5를 참조하면, 컨트롤러(100)는 반도체 저장 장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고(S100), 수집된 워크로드 데이터를 토대로 워크로드를 예측한다(S110). 컨트롤러(100)는 예측된 워크로드에 따라 타겟 성능 레벨을 결정하고(S120), 결정된 성능 레벨을 반도체 저장 장치(10)의 동작에 적용한다(S130). Referring to FIG. 5, the
반도체 저장 장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고, 수집된 워크로드 데이터를 토대로 워크로드를 예측하는 방법(S100, S110)에 대해서는, 한국 특허 출원 제10-2010-0080697호에 개시된 내용이 참조된다.For methods (S100, S110) of collecting workload data related to the workload applied to the
예측된 워크로드에 따라 타겟 성능 레벨을 결정하는 방법(S120)에 대해서는 한국 특허 출원 제10-2010-0080699호에 개시된 내용이 참조된다.The method disclosed in Korean Patent Application No. 10-2010-0080699 refers to a method (S120) for determining a target performance level according to a predicted workload.
결정된 성능 레벨을 반도체 저장 장치(10)의 동작에 적용하는 방법(S130)에 대해서는 한국 출원 제10-2010-0080698호에 개시된 내용이 참조된다.Reference is made to Korean Patent Application No. 10-2010-0080698 for a method of applying the determined performance level to the operation of the semiconductor storage device 10 (S130).
상술한 본 발명의 일 실시예에 따른 성능 조절 방법을 구현하기 위해서는 호스트(20)와 반도체 저장장치(10)간 성능 조절에 관한 프로토콜이 요구된다. 즉, 호스트(20)와 반도체 저장장치(10)간에 성능조절과 관련된 명령 및 정보의 전송을 위하여 성능 조절에 관한 프로토콜이 필요하다.In order to implement the performance adjustment method according to the embodiment of the present invention, a protocol for controlling performance between the
도 6은 본 발명의 일 실시예에 따른 반도체 저장 장치의 성능 조절을 위한 호스트와 반도체 저장 장치간 인터페이스 방법을 개략적으로 나타내는 플로우차트이다. 이를 참조하면, 호스트(20)는 반도체 저장 장치(10)로 성능 조절을 위한 설정 요청 명령을 전송할 수 있다(S610). 반도체 저장 장치(10)는 호스트(20)의 설정 요청 명령을 수신하면, 반도체 저장장치의 해당 성능 조절 파라미터 값을 그 명령에 포함된 특정값으로 설정(즉, 저장)하고 그에 따른 동작을 수행할 수 있다. 동작 완료 후 호스트(20)로 설정 응답 신호를 전송할 수 있다(S620). FIG. 6 is a flowchart schematically illustrating a host-semiconductor storage device interface method for controlling performance of a semiconductor storage device according to an embodiment of the present invention. Referring to FIG. 6, the
설정 요청 명령은 다음과 같은 종류의 명령들-성능 조절 인에이블/디스에이블 명령, 조절된 성능 (혹은 성능 레벨) 설정 명령, 성능 조절되는 명령의 종류(예컨대, 쓰기 명령, 읽기 명령 등)를 설정하기 위한 명령, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션(혹은 단계)을 설정하기 위한 명령, 최저성능 (혹은 최저 성능 레벨) 설정 명령, 최대 성능(혹은 최대 성능 레벨) 설정 명령, 초기 성능(혹은 초기 성능 레벨) 설정 명령, 성능 조절 주기 설정 명령, 성능조절 변동폭 (또는 변동 레벨의 수) 설정 명령, 성능 조절 리셋 명령, 성능 조절 체크 포인트 설정 명령, 및 가상의 워크로드 히스토리 설정 명령 등-을 포함할 수 있다.The setting request command sets the following types of commands: performance control enable / disable command, adjusted performance (or performance level) setting command, type of performance controlled command (e.g., write command, read command, (Or a minimum performance level) setting command, a maximum performance (or maximum performance level) setting command, an initial performance (or a minimum performance level setting command), an instruction to set a duration The initial performance level setting command, the performance adjustment cycle setting command, the performance adjustment variation (or the number of variation levels) setting instruction, the performance adjustment reset instruction, the performance adjustment checkpoint setting instruction, and the virtual workload history setting instruction can do.
반도체 저장 장치(10)는 호스트(20)로부터 상술한 설정 요청 명령을 수신하면, 상응하는 메모리에 혹은 상응하는 레지스터에 설정 요청 명령에 포함된 설정값을 저장한다. Upon receipt of the above-described setting request command from the
도 8은 본 발명의 실시예에 따른 반도체 저장장치의 성능 조절 방법을 위하여 반도체 저장장치에 저장되는 성능 조절 파라미터들이다. 도 8에 도시된 성능 조절 파라미터들이 호스트의 설정 요청 명령에 의하여 반도체 저장 장치(10)에 설정될 수 있다. 물론, 성능 조절 파라미터들은 호스트의 설정 요청 명령이 아닌 다른 방법으로 설정될 수도 있다. FIG. 8 shows performance control parameters stored in a semiconductor storage device for a method of adjusting the performance of a semiconductor storage device according to an embodiment of the present invention. The performance adjustment parameters shown in FIG. 8 may be set in the
성능 조절 인에이블/디스에이블 명령은 반도체 저장 장치(10)의 성능 조절 기능을 인에이블 또는 디스에이블 하기 위한 명령으로서, 호스트(20)가 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 인에이블하기 위하여 성능 조절 인에이블 명령을 반도체 저장 장치(10)로 전송하면, 반도체 저장 장치(10)는 성능 조절 인에이블 명령에 응답하여 도 8에 도시된 성능 조절 플래그를 셋(예컨대, '1'로 설정)하고, 호스트(20)로 설정 응답 신호를 전송할 수 있다. The performance control enable / disable command is a command for enabling or disabling the performance control function of the
호스트(20)가 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 디스에이블하기 위하여 성능 조절 디스에이블 명령을 반도체 저장 장치(10)로 전송하면, 반도체 저장 장치(10)는 성능 조절 디스에이블 명령에 응답하여 도 8에 도시된 성능 조절 플래그를 리셋(예컨대, '0'으로 설정)하고, 호스트(20)로 설정 응답 신호를 전송할 수 있다. When the
조절된 성능 (혹은 성능 레벨) 설정 명령은 호스트(20)가 반도체 저장 장치(10)의 성능을 조절하는 경우, 호스트(20)가 조절한 성능을 반도체 저장 장치(10)로 알려주기 위한 명령이다. 반도체 저장 장치(10)는 조절된 성능 (혹은 성능 레벨) 설정 명령에 응답하여, 해당 성능 조절 파라미터(즉, 반도체 저장 장치의 성능)를 그 명령에 포함된 값으로 설정할 수 있다.The command to set the adjusted performance (or performance level) is a command to inform the
성능 조절되는 명령의 종류(예컨대, 쓰기 명령, 읽기 명령 등)를 설정하기 위한 명령은 반도체 저장 장치(10)의 어떤 성능을 조절할지를 설정하기 위한 명령이다. 예컨대, 반도체 저장 장치(10)의 읽기 성능이 조절될 수도 있고, 쓰기 성능이 조절될 수도 있으며, 읽기 성능 및 쓰기 성능이 모두 조절될 수도 있다.The instruction for setting the kind of performance-controlled instruction (for example, a write instruction, a read instruction, and the like) is an instruction for setting which performance of the
호스트(20)는 성능 조절되는 명령의 종류를 결정하여 반도체 저장 장치(10)로 알려줄 수 있다.The
아이들 타임의 듀레이션(혹은 단계)은 반도체 저장 장치(10)의 성능을 조절하기 위하여, 반도체 저장장치(10)의 동작 중간에 삽입되는 아이들 타임의 길이 혹은 단계를 의미한다. 이 아이들 타임은 타이머(180)를 이용하여 삽입될 수도 있고, 아무런 의미가 없는 동작의 수행(예를 들면, NOP operation)으로도 삽입될 수 있다. 타이머(180)는 하드웨어(hardware) 또는 소프트웨어로 구현될 수 있다. The duration (or step) of the idle time refers to the length or step of the idle time inserted in the middle of operation of the
반도체 저장장치(10)의 성능을 효과적이고 결정적으로 조절하기 위해서는 아이들 타임을 반도체 저장장치(10)의 단위 동작(operation)에 추가하여 발생하게끔 할 수 있다. 예를 들어, 비휘발성 메모리(200)로의 프로그램 동작(program operation), 비휘발성 메모리(200)로부터의 독출 동작(read operation), 비휘발성 메모리(200)의 내부 버퍼(예컨대, 페이지 버퍼)에 읽기/쓰기 동작, 컨트롤러의 버퍼(예컨대, DRAM, 또는 SRAM)에 읽기/쓰기 동작, 호스트 인터페이스 읽기/쓰기 동작 발생시, 일정 시간의 아이들 타임, 혹은 처리되는 데이터량에 비례하는 아이들 타임의 발생을 인가할 수 있다. In order to effectively and decisively adjust the performance of the
이러한 아이들 타임의 듀레이션(혹은 단계)은 반도체 저장 장치(10)에서 결정되어 호스트(20)로 보고될 수도 있고, 호스트(20)가 결정하여 반도체 저장 장치(10)로 알려줄 수도 있다.The duration (or step) of the idle time may be determined in the
최저성능 (혹은 최저 성능 레벨) 설정 명령, 최대 성능(혹은 최대 성능 레벨) 설정 명령, 초기 성능(혹은 초기 성능 레벨) 설정 명령은 각각 호스트(20)가 반도체 장치의 최저성능, 최대 성능 및 초기 성능을 설정하기 위한 명령이다.The instruction to set the lowest performance (or lowest performance level), the instruction to set the maximum performance (or maximum performance level), and the initial performance (or initial performance level) are each set by the
반도체 저장 장치(10)의 초기 성능은 반도체 저장 장치(10)의 초기 동작 기간(예컨대, 파워온 시점으로부터 소정 기간)에 적용되는 성능이고, 최저성능, 및 최대 성능은 반도체 저장 장치(10)의 조절 가능한 성능의 하한치와 상한치이다. 반도체 저장 장치(10)의 최저성능, 최대 성능 및 초기 성능은 반도체 저장 장치(10)에 미리 설정될 수도 있지만, 호스트(20)의 명령에 의해 설정될 수도 있다.The initial performance of the
성능 조절 주기 설정 명령은 성능 조절 주기를 설정하기 위한 명령이다. The performance adjustment period setting command is a command for setting the performance adjustment period.
반도체 저장 장치(10)가, 호스트(20)로부터 성능 조절 주기 설정 명령을 수신하면 그 명령에 포함된 값으로 성능 조절 주기를 설정한다. 그리고, 반도체 저장 장치(10)는 성능 조절 주기마다 새로운 성능 레벨을 산출하고, 산출된 새로운 성능 레벨을 반도체 저장 장치(10)에 적용할 수 있다. 이 경우, 성능 조절 주기 동안 적용된 성능 레벨이 유지되며, 성능 조절 주기가 끝나면 다시 새로운 성능 레벨이 산출되어 적용될 수 있다. 여기서, 성능 조절 주기는 시간(hour), 일(day), 주(week), 월(month) 등의 단위일 수 있으나, 이에 한정되는 것은 아니다. 또한, 성능 조절 주기가 성능 예측 주기가 일치할 수도 있으나, 그렇지 않을 수도 있다. 예컨대, 성능 예측은 시간 단위로 하지만 성능 조절은 일단위로 할 수 있으며, 그 반대일 수도 있다.When the
성능 조절 변동폭 (또는 변동 레벨의 수) 설정 명령은 성능 조절 변동폭을 설정하기 위한 명령이다. 성능 조절 변동폭은 조절된 성능(새롭게 적용할 성능)과 조절되기 직전의 성능 간의 차이를 제한하기 위한 것이다. 성능 조절 변동폭은 절대값, 직전 성능 대비 비율, 최고 성능 대비 비율, 또는 디스크리트 레벨 수로 표현될 수 있다.The command for setting the performance adjustment range (or number of variation levels) is an instruction for setting the performance adjustment range. The performance tuning fluctuation is intended to limit the difference between the adjusted performance (the performance to be newly applied) and the performance just before adjustment. The performance tuning fluctuation can be expressed as an absolute value, a ratio before performance, a ratio with highest performance, or a number of discrete levels.
성능 조절 변동폭이 직전 성능 대비 비율, 최고 성능 대비 비율로 설정되는 경우, 반도체 저장장치(10)의 성능조절 시, 호스트(20) 또는 반도체 저장 장치(10)는 조절된 성능을 조절하기 직전의 성능(또는 최고 성능) 대비 변동폭(+/- x%) (x의 값은, 예를 들어 10%, 20%, 5%) 이내로 유지하여 조절한다. When adjusting the performance of the
디스크리트 레벨 수란, 성능 레벨이 복수의 디스크리트 레벨들(즉, 단계들)로 표시되는 경우, 한번에 변경 가능한 레벨(단계) 수를 말한다. 예를 들어, 성능 조절 변동폭이 2개의 디스크리트 레벨들로 설정되는 경우, 조절된 성능(새롭게 적용할 성능)의 디스크리트 레벨은 조절되기 직전의 디스크리트 레벨 대비 2 레벨 이내에서만 결정될 수 있다. The discrete level number refers to the number of levels (steps) that can be changed at a time when the performance level is represented by a plurality of discrete levels (i.e., steps). For example, if the performance adjustment fluctuation is set to two discrete levels, the discrete level of the adjusted performance (newly applied performance) can be determined only within two levels of the discrete level immediately before the adjustment.
가상의 워크로드 히스토리 설정 명령은 호스트(20)가 반도체 저장장치(10)에 초기 성능 레벨을 설정하는 대신 가상의 워크로드 히스토리를 설정하기 위한 명령이다. 가상의 워크로드 히스토리를 설정한다는 것은 반도체 저장 장치(10)가 파워 온되기 전의 소정 기간 동안 가상의 워크로드를 겪었다고 가정하여 가상의 워크로드에 상응하는 파라미터들을 특정 값으로 설정하는 것이다.The virtual workload history setting command is a command for the
도 7은 본 발명의 다른 일 실시예에 따른 반도체 저장 장치의 성능 조절을 위한 호스트와 반도체 저장 장치간 인터페이스 방법을 개략적으로 나타내는 플로우차트이다. 이를 참조하면, 호스트(20)는 반도체 저장 장치(10)로 정보 요청 명령을 전송할 수 있다(S710). 반도체 저장 장치(10)가 호스트(20)의 정보 요청 명령을 수신하면, 반도체 저장장치(10)는 반도체 저장장치(10)의 성능 조절 정보들을 호스트(20)로 전송할 수 있다(S720). 이를 위해, 반도체 저장 장치(10)는 성능 조절 정보들을 포함하는 정보 응답 신호를 호스트(20)로 전송할 수 있다(S270).FIG. 7 is a flowchart schematically illustrating a host-semiconductor storage device interface method for controlling performance of a semiconductor storage device according to another embodiment of the present invention. Referring to this, the
성능 조절 정보는 반도체 저장장치(10)의 메모리나 레지스터에 저장되어 있는 성능 조절 파라미터들일 수 있다. 성능 조절 파라미터들에 대해서는 도 8을 참조하여 상술하였으므로, 여기서는 설명을 생략한다.The performance adjustment information may be performance control parameters stored in the memory or registers of the
성능 조절 정보는 또한 도 9에 도시된 워크로드 데이터를 포함할 수 있다. The performance adjustment information may also include the workload data shown in FIG.
워크로드 데이터는 워크로드를 예측하기 위해 수집되는 데이터로서, 소정 기간 카운트된 워크로드 파라미터 값일 수 있다. 워크로드 파라미터는 도 9에 도시된 바와 같이 호스트(20)가 저장장치(10)에 인가하는 명령(command)의 수, 호스트(20)가 저장장치(10)에 인가하는 쓰기 명령의 수, 호스트(20)가 저장장치(10)에 인가하는 읽기 명령의 수, 명령에 응답하여 호스트로/로부터 전송된 데이터 량, 쓰기 명령에 응답하여 호스트로부터 수신한 데이터 량, 읽기 명령에 응답하여 호스트로 전송한 데이터 량, 상기 반도체 저장장치 내부에서 수행된 프로그램 동작의 수, 상기 반도체 저장장치 내부에서 수행된 읽기 동작의 수 중 적어도 하나를 포함할 수 있다. The workload data may be data that is collected to predict the workload and may be a workload parameter value that has been counted for a predetermined period of time. The workload parameters include the number of commands that the
상술한 성능 조절을 위해 호스트(20)에서 반도체 저장 장치(10)로 전송되어 설정되는 성능 조절 파라미터 값들은 각각의 개별 명령을 통해서 반도체 저장 장치(10)로 전송될 수도 있지만, 하나의 명령의 통해서 둘 이상의 성능 조절 파라미터 값들이 반도체 저장 장치(10)로 전송될 수도 있다. 마찬가지로, 성능 조절 정보 역시 개별적으로 또는 한꺼번에 반도체 저장 장치(10)에서 호스트로(20)로 보고될 수도 있다.The performance adjustment parameter values that are set and transmitted from the
도 10은 본 발명의 일 실시예에 따른 설정 요청 명령의 포맷을 나타내는 테이블이다. 호스트(20)는 반도체 저장장치(10)의 성능 조절 파라미터의 설정을 위하여 도 10에 도시된 바와 같이 피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드로 구성되는 설정 요청 명령를 반도체 저장장치(10)에 인가할 수 있다. 명령에 포함되는 각 필드는 미리 정해진 비트 수로 구성될 수 있다. 예를 들어, 커맨드 필드, 디바이스 필드, 및 카운트 필드 각각은 8비트로 구성될 수 있다. 10 is a table showing a format of a setup request command according to an embodiment of the present invention. The
커맨드 필드는 상기 설정 요청 명령의 종류를 구분하는 기능을 할 수 있고,상기 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 적어도 하나는 성능 조절 파라미터의 값으로 설정될 수 있다.The command field may function to discriminate the type of the setting request command, and at least one of the feature field, the count field, and the LBA (Logic Block Address) field may be set to a value of the performance adjustment parameter .
도 11a 및 도 11b는 각각 본 발명의 일 실시예에 따른 성능 조절 인에이블/디스에이블 명령 및 정보 요청 명령의 포맷을 나타내는 테이블이다. 도 11a에 도시된 성능 조절 인에이블 명령은 그 커맨드 필드가 미리 정해진 값(예컨대, FAh)으로 설정되고, 그 피쳐 필드는 '1'로 설정되며, 그 카운트 필드의 최하위 비트가 '1' 또는 '0'으로 설정될 수 있다. 11A and 11B are tables showing the format of the performance adjustment enable / disable command and information request command according to an embodiment of the present invention, respectively. The performance adjustment enable command shown in FIG. 11A is set such that the command field is set to a predetermined value (e.g., FAh), the feature field is set to '1', the least significant bit of the count field is set to '1' 0 ".
카운트 필드의 최하위 비트가 '1'로 설정되면, 해당 명령은 성능 조절 인에이블 명령이 되고, 카운트 필드의 최하위 비트가 '0'으로 설정되면 해당 명령은 성능 조절 디스에이블 명령이 될 수 있다. 반도체 저장장치(10)는 성능 조절 인에이블 명령에 응답하여 도 8에 도시된 성능 조절 플래그를 셋(set)할 수 있고, 성능 조절 디스에이블 명령에 응답하여 도 8에 도시된 성능 조절 플래그를 리셋(set)할 수 있다. 그 다음, 반도체 저장장치(10)는 호스트(20)로 성능 조절 인에이블/디스에이블 응답 신호를 전송할 수 있다.If the least significant bit of the count field is set to ' 1 ', the instruction becomes a performance control enable command and the least significant bit of the count field is set to ' 0 ' The
도 11b에 도시된 정보 요청 명령은 그 커맨드 필드가 미리 정해진 값(예컨대, FAh)으로 설정되고, 그 피쳐 필드는 '2'로 설정되며, 그 카운트 필드는 '1'로 설정될 수 있다. 여기서, 카운트 필드는 반도체 저장 장치(10)로부터 받을 성능 조절 정보의 양을 지정하기 위한 값이다. 따라서, 카운트 필드가 '1'로 설정된 정보 요청 명령에 응답하여, 반도체 저장 장치(10)는 1섹터의 성능 조절 정보를 호스트로(20)로 보고할 수 있다.The information request command shown in Fig. 11B is set such that its command field is set to a predetermined value (e.g., FAh), its feature field is set to '2', and its count field is set to '1'. Here, the count field is a value for designating the amount of performance adjustment information to be received from the
도 12는 본 발명의 일 실시예에 따른 정보 응답 명령의 포맷을 나타내는 테이블이다. 12 is a table showing the format of an information response command according to an embodiment of the present invention.
호스트(20)는 도 10에 도시된 포맷과 유사한 포맷의 정보 요청 명령을 반도체 저장장치(10)에 인가할 수 있다. 그러면, 반도체 저장장치(10)는 도 12에 도시된 바와 같은 포맷의 정보 응답 명령을 통해 성능 조절 파라미터 값이나 수집된 워크로드 데이터를 호스트(20)로 전송할 수 있다. 정보 응답 명령은 정보/설정 요청 명령과 유사하게 피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드로 구성되는 응답 신호와 그 응답 신호에 연이어 전송되는 정보 데이터(예컨대, 1섹터의 정보 데이터)를 포함할 수 있다.The
도 13은 본 발명의 실시예에 따른 호스트와 반도체 저장 장치간 인터페이스 방법을 좀 더 구체적으로 나타내는 플로우차트이다. 13 is a flowchart illustrating a method of interfacing a host and a semiconductor storage device according to an embodiment of the present invention.
이를 참조하면, 반도체 저장장치(10)의 파워가 온(power-on)되면(S810), 호스트(20)가 명령을 통해 반도체 저장장치(10)의 성능 조절을 인에이블할 수 있다(S820). 즉, 반도체 저장장치(10)의 성능 조절을 인에이블하기 위하여 호스트(20)는 반도체 저장장치(10)로 성능 조절 인에이블 명령을 인가할 수 있다.When the power of the
다음으로, S830 내지 S850 단계에서 호스트(20)는 반도체 저장장치(10)의 성능 조절에 필요한 여러 가지 성능 조절 파라미터들(예컨대, 초기 성능 레벨, 성능 조절되는 명령의 종류, 성능 조절 주기 등)을 설정할 수 있다. 성능 조절 파라미터들이 설정되면, 반도체 저장장치(10)는 워크로드 데이터를 수집한다(S860). 반도체 저장장치(10)는 성능 조절을 위한 충분한 워크로드 데이터가 수집되면, 성능 조절을 시작한다(S870). Next, in steps S830 to S850, the
본 발명의 다른 실시예에서는, 반도체 저장장치(10)의 워크로드 데이터 수집은 도 13에 도시된 바와 달리, 호스트(20)에 의해 이루어질 수도 있다. 즉, 호스트(20)가 워크로드 데이터를 수집하고 수집된 워크로드 데이터에 따라 성능 조절을 시작할 수 있다. 수집된 워크로드 데이터를 바탕으로 새로운 성능 레벨이 결정되면, 호스트(20)는 반도체 저장 장치(10)로 명령을 통하여 조절된 성능을 설정할 수 있다. 또는 호스트(20)는 새로운 성능 레벨에 따른 아이들 타임을 결정하여 이를 반도체 저장 장치(10)로 명령을 통하여 설정할 수 있다. 그러면, 반도체 저장 장치(10)는 설정된 성능 또는 아이들 타임에 따라 성능을 조절한다. In another embodiment of the present invention, the workload data collection of the
한편, 호스트(20)는 성능 조절 정보를 얻기 위하여 반도체 저장 장치(10)로 정보 요청 명령을 전송할 수 있다(S880). 그러면, 반도체 저장 장치(10)는 성능 조절 정보들을 포함하는 정보 응답 신호를 호스트(20)로 전송할 수 있다(S890).Meanwhile, the
도 14 및 도 15는 각각 본 발명의 실시예에 따른 반도체 저장장치를 구비하는 전자 시스템의 블록도이다.14 and 15 are block diagrams of an electronic system having a semiconductor storage device according to an embodiment of the present invention, respectively.
도 14를 참조하면 본 발명의 실시예에 따른 전자 시스템(900)은 본 발명의 일 실시예에 따른 반도체 저장 장치(10), 전원부(power supply)(910), 중앙 처리 장치(CPU)(920), 램(RAM)(930), 유저 인터페이스(User Interface)(940) 및 이들 구성요소들을 전기적으로 연결하는 시스템 버스(950)를 포함할 수 있다.14, an
CPU(920)는 시스템(900)의 전체적인 동작을 제어하고, RAM(930)은 시스템(900)의 동작을 위해 필요한 정보들을 저장하고, User Interface(940)는 시스템(900)과 사용자와의 인터페이스를 제공한다. 전원부(910)는 내부의 구성 요소들(즉, CPU(920), 램(RAM)(930), 유저 인터페이스(940), 메모리 시스템(500) 등)으로 전원을 공급한다.The
CPU(920)가 상술한 호스트(20)에 해당할 수 있으며, 반도체 저장장치(10)는 호스트(20)의 명령에 응답하여 데이터를 저장하거나 독출할 수 있다.The
도 15a 및 도 15b는 각각 본 발명의 다른 실시예에 따른 전자 시스템의 블록도이다. 15A and 15B are block diagrams of an electronic system according to another embodiment of the present invention, respectively.
도 15a에 도시된 전자 시스템(900')은 도 14에 도시된 전자 시스템(900)과 유사한 구성을 가지므로, 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.The electronic system 900 'shown in FIG. 15A has a configuration similar to that of the
도 15a에 도시된 전자 시스템(900')은 도 14에 도시된 전자 시스템(900)에 비하여, RAID 컨트롤러 카드(960)를 더 구비한다. 반도체 저장 장치(10)는 호스트와 직접 인터페이스하는 것이 아니라, RAID 컨트롤러 카드(960)에 장착되어, RAID 컨트롤러 카드(960)를 통하여 호스트와 인터페이스할 수 있다. 이 때, RAID 컨트롤러 카드(960)에는 복수(2이상)의 반도체 저장 장치들(10-1~10-k, k는 2이상의 정수)이 장착될 수 있다. 도 15a에 도시된 전자 시스템(900')의 RAID 컨트롤러 카드(960)는 반도체 저장 장치들(10-1~10-k)의 외부에 별도의 제품으로 구현된다.The electronic system 900 'shown in FIG. 15A further includes a
도 15b에 도시된 전자 시스템(900")은 도 15a에 도시된 전자 시스템(900')과 유사한 구성을 가지므로, 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.The
도 15b에 도시된 전자 시스템(900')의 RAID 컨트롤러 카드(960)는 반도체 저장 장치들(10-1~10-k)과 함께 하나의 제품으로 구현된다는 점에서, 도 15a에 도시된 전자 시스템(900')과 차이가 있다.The
이와 같이 RAID 컨트롤러 카드(960)가 구비되는 경우, 상술한 본 발명의 실시예에 따른 인터페이스 방법은 RAID 컨트롤러 카드(960)에 구현될 수 있다. When the
도 16은 본 발명의 실시예에 따른 반도체 저장 장치(10)를 구비하는 컴퓨팅 시스템(1000, PC)의 블록도이다. 이를 참조하면, 컴퓨팅 시스템(1000)은 중앙 처리 장치(Central Processing Unit, 1110), AGP 장치(Accelerated Graphics Port, 1120), 메인 메모리(1130), 노스 브리지(north bridge, 1140), 반도체 저장 장치(예컨대, SSD, 10), 키보드 컨트롤러(1160), 프린터 컨트롤러(1170), 및 사우스 브리지(1180) 등을 포함한다. 16 is a block diagram of a computing system 1000 (PC) having a
컴퓨팅 시스템(1100)은 SSD(10)가 하드디스크 드라이브를 대신하여 주 저장 장치로 이용하는 개인용 컴퓨터 또는 노트북 컴퓨터의 블락도일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다. The computing system 1100 may also be a block of a personal computer or notebook computer that the
컴퓨팅 시스템(1000)에서 중앙 처리 장치(1110), AGP 장치(1120), 및 메인 메모리(1130) 등은 노스 브리지(1140)에 접속되며, SSD(10), 키보드 컨트롤러(1160), 프린터 컨트롤러(1170), 및 각종 주변 장치들(미도시) 등은 사우스 브리지(180)에 연결된다. In the
노스 브리지(1140)는 메인보드 가운데를 기준으로 중앙 처리 장치(1110) 소켓 쪽에 있는 집적회로로서, 일반적으로는 중앙 처리 장치(1110)와 연결하는 호스트 인터페이스(host interface)를 포함하는 시스템 컨트롤러를 의미한다. 사우스 브리지(1180)는 메인보드 가운데를 기준으로 PCI(peripheral component interconnect) 슬롯 쪽에 있는 집적회로로서, 일반적으로는 호스트 버스에서 PCI 버스를 경유하여 접속되는 버스(bus)로 가는 브리지를 의미한다. The
AGP는 3차원 그래픽 표현을 빠르게 구현할 수 있게 해주는 버스 규격이다. AGP 장치(1120)에는 모니터 이미지를 재생하는 비디오 카드 등이 포함될 수 있다. 메인 메모리(1130)는 일반적으로 휘발성 메모리 소자인 RAM(Random Access Memory)으로 구현될 수 있으나 본 발명의 범위가 이에 한정되는 것은 아니다. AGP is a bus specification that enables rapid realization of 3D graphical representations. The
또한, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1100)에서는 SSD(10)가 사우스 브리지(180)에 연결되는 구조이나, 이에 한정되는 것은 아니며, SSD(10)가 노스 브리지(1140)에 연결되거나, CPU(1110)에 직접 연결되는 구조일 수도 있다.In the computing system 1100 according to an embodiment of the present invention, the
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
반도체 저장 장치 : 10
호스트 : 20
컨트롤러: 100
비휘발성 메모리 장치 : 200
CPU : 150, 210
호스트 인터페이스 : 110
DRAM : 120
SRAM : 130
메모리 인터페이스: 140
타이머 : 150, 260
버스 : 160, 230
워크로드 모듈: 170, 250
성능 조절 모듈 : 190, 270
클럭 발생기 : 195
저장장치 인터페이스 : 240Semiconductor storage: 10
Host: 20
Controller: 100
Nonvolatile memory device: 200
CPU: 150, 210
Host interface: 110
DRAM: 120
SRAM: 130
Memory interface: 140
Timers: 150, 260
Buses: 160, 230
Workload modules: 170, 250
Performance Control Modules: 190, 270
Clock Generator: 195
Storage interface: 240
Claims (20)
상기 호스트로부터 설정 요청 명령을 수신하는 단계;
상기 반도체 저장장치가 상기 설정 요청 명령에 응답하여, 요청된 성능 조절 파라미터를 특정 값으로 설정하는 단계; 및
상기 반도체 저장 장치가 상기 호스트로 상기 성능 조절 파라미터의 설정을 완료하였음을 나타내는 설정 응답 신호를 전송하는 단계를 구비하며,
상기 설정 요청 명령은
피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드를 포함하고,
상기 커맨드 필드는 상기 설정 요청 명령의 종류를 구분하기 위하여 미리 정해진 값으로 설정되고,
상기 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 적어도 하나는 상기 성능 조절 파라미터의 값으로 설정되는 반도체 저장장치와 호스트간의 인터페이스 방법.A method for interfacing between a semiconductor storage device and a host for controlling performance of a semiconductor storage device,
Receiving a configuration request command from the host;
The semiconductor storage device in response to the configuration request command setting a requested performance control parameter to a specific value; And
Sending a configuration response signal indicating that the semiconductor storage device has completed setting the performance tuning parameter to the host,
The setting request command
A feature field, a count field, a logic block address (LBA) field, a device field, and a command field,
The command field is set to a predetermined value for classifying the type of the setting request command,
Wherein at least one of the feature field, the count field, and the logic block address (LBA) field is set to a value of the performance adjustment parameter.
상기 호스트가 상기 반도체 저장장치의 성능 조절을 위하여 필요한 성능 조절 파라미터를 특정 값으로 설정하기 위하여 상기 반도체 저장 장치로 설정 요청 명령을 전송하는 단계; 및
상기 반도체 저장 장치로부터 상기 설정 요청 명령에 응답하여 해당 성능 조절 파라미터를 상기 특정 값으로 설정하였음을 나타내는 설정 응답 신호를 수신하는 단계를 구비하며,
상기 설정 요청 명령은
피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드를 포함하고,
상기 커맨드 필드는 상기 설정 요청 명령의 종류를 구분하기 위하여 미리 정해진 값으로 설정되고,
상기 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 적어도 하나는 상기 성능 조절 파라미터의 값으로 설정되는 반도체 저장장치와 호스트 간의 인터페이스 방법.A method for interfacing between a semiconductor storage device and a host for controlling performance of a semiconductor storage device,
Sending a configuration request command to the semiconductor storage device to set a performance control parameter required for performance control of the semiconductor storage device to a specific value by the host; And
Receiving a setup response signal from the semiconductor storage device in response to the setup request command, the setup response signal indicating that the performance adjustment parameter is set to the specific value;
The setting request command
A feature field, a count field, a logic block address (LBA) field, a device field, and a command field,
The command field is set to a predetermined value for classifying the type of the setting request command,
Wherein at least one of the feature field, the count field, and the logic block address (LBA) field is set to a value of the performance adjustment parameter.
성능 조절 인에이블/디스에이블 명령, 조절된 성능 설정 명령, 성능 조절되는 명령의 종류를 설정하기 위한 명령, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션을 설정하기 위한 명령, 최저성능 설정 명령, 최대 성능 설정 명령, 초기 성능 설정 명령, 성능 조절 주기 설정 명령, 성능조절 변동폭 설정 명령, 성능 조절 리셋 명령, 성능 조절 체크 포인트 설정 명령, 및 가상의 워크로드 히스토리 설정 명령 중 적어도 하나를 포함하는 반도체 저장장치와 호스트 간의 인터페이스 방법.The method according to claim 1 or 2, wherein the setting request command
A performance adjustment enable / disable command, a controlled performance setting command, a command for setting the kind of performance-controlled command, a command for setting the duration of the idle time inserted for performance adjustment, a minimum performance setting command, A semiconductor storage device including at least one of a setting command, an initial performance setting command, a performance adjustment cycle setting command, a performance adjustment variable setting command, a performance adjustment reset command, a performance adjustment check point setting command, and a virtual workload history setting command, How to interface between hosts.
상기 성능 조절 파라미터를 저장하기 위한 메모리 또는 레지스터를 포함하는 반도체 저장장치와 호스트 간의 인터페이스 방법.4. The semiconductor storage device according to claim 3, wherein the semiconductor storage device
And a memory or register for storing the performance control parameter.
상기 호스트로부터 정보 요청 명령을 수신하는 단계; 및
상기 반도체 저장장치가 상기 정보 요청 명령에 응답하여, 요청된 성능 조절 파라미터를 포함하는 정보 응답 신호를 상기 호스트로 전송하는 단계를 구비하며,
상기 정보 요청 명령은
피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드를 포함하고,
상기 커맨드 필드는 상기 정보 요청 명령의 종류를 구분하기 위하여 미리 정해진 값으로 설정되고,
상기 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 적어도 하나는 상기 성능 조절 파라미터의 값으로 설정되는 반도체 저장장치와 호스트간의 인터페이스 방법.A method for interfacing between a semiconductor storage device and a host for controlling performance of a semiconductor storage device,
Receiving an information request command from the host; And
The semiconductor storage device sending an information response signal to the host in response to the information request command, the information response signal including a requested performance adjustment parameter,
The information request command
A feature field, a count field, a logic block address (LBA) field, a device field, and a command field,
The command field is set to a predetermined value to identify the type of the information request command,
Wherein at least one of the feature field, the count field, and the logic block address (LBA) field is set to a value of the performance adjustment parameter.
상기 호스트가 상기 반도체 저장장치의 성능 조절 파라미터의 전송을 요청하는 정보 요청 명령을 상기 반도체 저장 장치로 전송하는 단계; 및
상기 반도체 저장 장치로부터 상기 정보 요청 명령에 응답하여 전송되는 상기 성능 조절 파라미터의 값을 포함하는 정보 응답 신호를 수신하는 단계를 구비하며,
상기 정보 요청 명령은
피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드를 포함하고,
상기 커맨드 필드는 상기 정보 요청 명령의 종류를 구분하기 위하여 미리 정해진 값으로 설정되고,
상기 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 적어도 하나는 상기 성능 조절 파라미터의 값으로 설정되는 반도체 저장장치와 호스트 간의 성능 조절을 위한 인터페이스 방법.A method for interfacing between a semiconductor storage device and a host for controlling performance of a semiconductor storage device,
Transmitting, by the host, an information request command to the semiconductor storage device requesting transmission of a performance adjustment parameter of the semiconductor storage device; And
Receiving an information response signal including a value of the performance adjustment parameter transmitted in response to the information request command from the semiconductor storage device,
The information request command
A feature field, a count field, a logic block address (LBA) field, a device field, and a command field,
The command field is set to a predetermined value to identify the type of the information request command,
Wherein at least one of a feature field, a count field, and a logic block address (LBA) field is set to a value of the performance adjustment parameter.
조절된 성능, 성능조절을 당하는 명령의 종류, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션, 및 워크로드 파라미터 카운트값 중 적어도 하나를 포함하는 반도체 저장장치와 호스트 간의 인터페이스 방법.9. The method of claim 7 or 8, wherein the performance adjustment parameter
Wherein at least one of the adjusted performance, the type of command subject to performance adjustment, the duration of the idle time inserted for performance adjustment, and the workload parameter count value.
상기 성능 조절 파라미터를 저장하기 위한 메모리 또는 레지스터를 포함하는 반도체 저장장치와 호스트 간의 인터페이스 방법.10. The semiconductor storage device according to claim 9, wherein the semiconductor storage device
And a memory or register for storing the performance control parameter.
호스트의 요청에 따라 상기 비휘발성 메모리를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는
상기 호스트로부터 설정 요청 명령을 수신하고, 상기 설정 요청 명령에 응답하여 요청된 성능 조절 파라미터를 특정 값으로 설정하며, 상기 호스트로 상기 성능 조절 파라미터의 설정을 완료하였음을 나타내는 설정 응답 신호를 전송하며,
상기 설정 요청 명령은
피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드를 포함하고,
상기 커맨드 필드는 상기 설정 요청 명령의 종류를 구분하기 위하여 미리 정해진 값으로 설정되고,
상기 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 적어도 하나는 상기 성능 조절 파라미터의 값으로 설정되는 장치.Nonvolatile memory; And
And a controller for controlling the nonvolatile memory in response to a request from the host,
The controller
Receiving a configuration request command from the host, setting a requested performance control parameter to a specific value in response to the configuration request command, and transmitting a configuration response signal to the host indicating that the performance adjustment parameter has been set,
The setting request command
A feature field, a count field, a logic block address (LBA) field, a device field, and a command field,
The command field is set to a predetermined value for classifying the type of the setting request command,
Wherein at least one of the feature field, the count field, and the logic block address (LBA) field is set to a value of the performance adjustment parameter.
상기 CPU의 제어에 따라 반도체 저장장치의 성능 조절 파라미터를 특정 값으로 설정하기 위하여 상기 반도체 저장 장치로 설정 요청 명령을 전송하고, 상기 반도체 저장 장치로부터 상기 설정 요청 명령에 응답하여 해당 성능 조절 파라미터를 상기 특정 값으로 설정하였음을 나타내는 설정 응답 신호를 수신하는 인터페이스부를 구비하며,
상기 설정 요청 명령은
피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드를 포함하고,
상기 커맨드 필드는 상기 설정 요청 명령의 종류를 구분하기 위하여 미리 정해진 값으로 설정되고,
상기 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 적어도 하나는 상기 성능 조절 파라미터의 값으로 설정되는 장치.A CPU; And
Wherein the controller transmits a setting request command to the semiconductor storage device to set a performance control parameter of the semiconductor storage device to a specific value under the control of the CPU, And an interface unit for receiving a setting response signal indicating that the setting value is set to a specific value,
The setting request command
A feature field, a count field, a logic block address (LBA) field, a device field, and a command field,
The command field is set to a predetermined value for classifying the type of the setting request command,
Wherein at least one of the feature field, the count field, and the logic block address (LBA) field is set to a value of the performance adjustment parameter.
성능 조절 인에이블/디스에이블 명령, 조절된 성능 설정 명령, 성능 조절되는 명령의 종류를 설정하기 위한 명령, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션을 설정하기 위한 명령, 최저성능 설정 명령, 최대 성능 설정 명령, 초기 성능 설정 명령, 성능 조절 주기 설정 명령, 성능조절 변동폭 설정 명령, 성능 조절 리셋 명령, 성능 조절 체크 포인트 설정 명령, 및 가상의 워크로드 히스토리 설정 명령 중 적어도 하나를 포함하는 장치.The method according to claim 13 or 14, wherein the setting request command
A performance adjustment enable / disable command, a controlled performance setting command, a command for setting the kind of performance-controlled command, a command for setting the duration of the idle time inserted for performance adjustment, a minimum performance setting command, A performance adjustment cycle setting command, a performance adjustment reset command, a performance adjustment checkpoint setting command, and a virtual workload history setting instruction.
호스트의 요청에 따라 상기 비휘발성 메모리를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는
상기 호스트로부터 정보 요청 명령을 수신하고, 상기 정보 요청 명령에 응답하여 요청된 성능 조절 파라미터를 포함하는 정보 응답 신호를 상기 호스트로 전송하며,
상기 정보 요청 명령은
피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드를 포함하고,
상기 커맨드 필드는 상기 정보 요청 명령의 종류를 구분하기 위하여 미리 정해진 값으로 설정되고,
상기 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 적어도 하나는 상기 성능 조절 파라미터의 값으로 설정되는 장치.Nonvolatile memory; And
And a controller for controlling the nonvolatile memory in response to a request from the host,
The controller
Receiving an information request command from the host, and responsive to the information request command, transmitting an information response signal including a requested performance control parameter to the host,
The information request command
A feature field, a count field, a logic block address (LBA) field, a device field, and a command field,
The command field is set to a predetermined value to identify the type of the information request command,
Wherein at least one of the feature field, the count field, and the logic block address (LBA) field is set to a value of the performance adjustment parameter.
상기 CPU의 제어에 따라 반도체 저장장치의 성능 조절 파라미터의 전송을 요청하는 정보 요청 명령을 상기 반도체 저장 장치로 전송하고, 상기 반도체 저장 장치로부터 상기 정보 요청 명령에 응답하여 전송되는 상기 성능 조절 파라미터의 값을 포함하는 정보 응답 신호를 수신하는 인터페이스부를 구비하며,
상기 정보 요청 명령은
피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드를 포함하고,
상기 커맨드 필드는 상기 정보 요청 명령의 종류를 구분하기 위하여 미리 정해진 값으로 설정되고,
상기 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 적어도 하나는 상기 성능 조절 파라미터의 값으로 설정되는 장치.A CPU; And
Wherein the controller is configured to transmit an information request command to the semiconductor storage device to request transmission of a performance adjustment parameter of the semiconductor storage device under the control of the CPU and to transmit the value of the performance adjustment parameter transmitted in response to the information request command from the semiconductor storage device And an interface unit for receiving the information response signal,
The information request command
A feature field, a count field, a logic block address (LBA) field, a device field, and a command field,
The command field is set to a predetermined value to identify the type of the information request command,
Wherein at least one of the feature field, the count field, and the logic block address (LBA) field is set to a value of the performance adjustment parameter.
조절된 성능, 성능조절을 당하는 명령의 종류, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션, 및 워크로드 파라미터 카운트값 중 적어도 하나를 포함하는 장치.20. The method of claim 18 or 19, wherein the performance adjustment parameter
The at least one of the adjusted performance, the type of command subjected to the performance adjustment, the duration of the idle time inserted for performance adjustment, and the workload parameter count value.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100080862A KR101824067B1 (en) | 2010-08-20 | 2010-08-20 | Method of interfacing between host and semiconductor storage device for throttling performance of the semiconductor storage device, and apparatus there-of |
US13/212,404 US9037778B2 (en) | 2010-08-20 | 2011-08-18 | Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100080862A KR101824067B1 (en) | 2010-08-20 | 2010-08-20 | Method of interfacing between host and semiconductor storage device for throttling performance of the semiconductor storage device, and apparatus there-of |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120017911A KR20120017911A (en) | 2012-02-29 |
KR101824067B1 true KR101824067B1 (en) | 2018-01-31 |
Family
ID=45839743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100080862A KR101824067B1 (en) | 2010-08-20 | 2010-08-20 | Method of interfacing between host and semiconductor storage device for throttling performance of the semiconductor storage device, and apparatus there-of |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101824067B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11347634B2 (en) | 2020-03-31 | 2022-05-31 | SK Hynix Inc. | Memory system performing write-same operation and operating method thereof |
US11372563B2 (en) | 2019-01-11 | 2022-06-28 | SK Hynix Inc. | Storage device and operating method thereof |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8737138B2 (en) | 2010-11-18 | 2014-05-27 | Micron Technology, Inc. | Memory instruction including parameter to affect operating condition of memory |
KR101861184B1 (en) | 2011-11-02 | 2018-05-28 | 삼성전자주식회사 | Method for adjusting storage performance and semiconductor storage device therefore |
KR102327878B1 (en) | 2017-11-07 | 2021-11-17 | 삼성전자주식회사 | Semiconductor device and semiconductor system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260811A1 (en) * | 2006-05-08 | 2007-11-08 | Merry David E Jr | Systems and methods for measuring the useful life of solid-state storage devices |
US20090049222A1 (en) * | 2004-03-17 | 2009-02-19 | Super Talent Electronics, Inc. | PCI Express-Compatible Controller And Interface For Flash Memory |
US20090300277A1 (en) * | 2008-05-27 | 2009-12-03 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
-
2010
- 2010-08-20 KR KR1020100080862A patent/KR101824067B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090049222A1 (en) * | 2004-03-17 | 2009-02-19 | Super Talent Electronics, Inc. | PCI Express-Compatible Controller And Interface For Flash Memory |
US20070260811A1 (en) * | 2006-05-08 | 2007-11-08 | Merry David E Jr | Systems and methods for measuring the useful life of solid-state storage devices |
US20090300277A1 (en) * | 2008-05-27 | 2009-12-03 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11372563B2 (en) | 2019-01-11 | 2022-06-28 | SK Hynix Inc. | Storage device and operating method thereof |
US11347634B2 (en) | 2020-03-31 | 2022-05-31 | SK Hynix Inc. | Memory system performing write-same operation and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20120017911A (en) | 2012-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101702392B1 (en) | Semiconductor storage device and method for throttling performance of the semiconductor storage device | |
US8862807B2 (en) | Semiconductor storage device and method of throttling performance of the same | |
US8843697B2 (en) | Operating method of data storage device | |
CN107179996B (en) | Data storage device and method of operating the same | |
US9037778B2 (en) | Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device | |
US20100250826A1 (en) | Memory systems with a plurality of structures and methods for operating the same | |
KR20140113211A (en) | Non-volatile memory system, system having the same and method for performing adaptive user storage region adjustment in the same | |
KR101824067B1 (en) | Method of interfacing between host and semiconductor storage device for throttling performance of the semiconductor storage device, and apparatus there-of | |
US11803436B2 (en) | Storage device and storage system including the same | |
KR20170110810A (en) | Data processing system and operating method thereof | |
CN112002367B (en) | Memory device and method of operating the same | |
KR101756130B1 (en) | Semiconductor storage device and method for throttling performance of the semiconductor storage device | |
KR102695482B1 (en) | Data storage device and operating method thereof | |
US9773561B1 (en) | Nonvolatile memory device and data storage device including the same | |
KR20160119607A (en) | Data storage device and operating method thereof | |
KR20170031311A (en) | Data storage device and operating method thereof | |
CN115291796A (en) | Method and device for storing data | |
US11543999B2 (en) | Memory controller and operating method thereof | |
KR20230023477A (en) | Memory system and operating method thereof | |
KR101702393B1 (en) | Semiconductor storage device and method for throttling performance of the semiconductor storage device | |
KR20200136743A (en) | Storage device and operating method thereof | |
EP4220374A1 (en) | Storage device and operating method of storage device | |
US20230153237A1 (en) | Method and device for storing data | |
US20230244402A1 (en) | Storage device and operating method of storage device | |
US20230393749A1 (en) | Method and device of storage data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |