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 PDF

Info

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
Application number
KR1020100080862A
Other languages
Korean (ko)
Other versions
KR20120017911A (en
Inventor
윤한빈
이동기
권혁선
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020100080862A priority Critical patent/KR101824067B1/en
Priority to US13/212,404 priority patent/US9037778B2/en
Publication of KR20120017911A publication Critical patent/KR20120017911A/en
Application granted granted Critical
Publication of KR101824067B1 publication Critical patent/KR101824067B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0069Writing 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

반도체 저장 장치의 성능 조절을 위한 반도체 저장장치와 호스트간 인터페이스 방법 및 그 장치{Method of interfacing between host and semiconductor storage device for throttling performance of the semiconductor storage device, and apparatus there-of}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a semiconductor storage device and a host interface method for controlling performance of a semiconductor storage device,

본 발명은 데이터 저장 장치와 호스트간 인터페이스에 관한 것으로, 특히, 비휘발성 메모리에 데이터를 저장하는 반도체 저장장치와 호스트 간에 상기 반도체 저장장치의 성능 조절을 위한 인터페이스 방법 및 그 장치에 관한 것이다.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 data storage system 1 according to an embodiment of the present invention. A data storage system 1 according to an embodiment of the present invention includes a semiconductor storage device 10 and a host 20. [ The semiconductor storage device 10 may include a controller 100 and a non-volatile memory device 200.

호스트(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 host 20 is connected to a semiconductor device 20 using interface protocols such as peripheral component interconnect-express (PCI-E), advanced technology attachment (ATA), serial ATA (SATA), parallel ATA (PATA) And can communicate with the storage device 10. However, the interface protocols between the host 20 and the semiconductor storage device 10 are not limited to the above-described examples, and may be a USB (Universal Serial Bus), a multi-media card (MMC), an enhanced small disk interface (ESDI) (Integrated Drive Electronics), and the like.

본 발명의 실시예에 따른 반도체 저장장치(10)는 솔리드 스테이트 드라이브(Solid State Drive, 이하 'SSD'라 함) 또는 SD(secure digital) 카드일 수 있으나, 이에 한정되지 않는다. 또한, 비휘발성 메모리 장치(200)는 플래시 메모리 장치일 수 있으나, 이에 한정되지 않으며, PRAM, MRAM, ReRAM, 또는 FeRAM 장치일 수 있다. 비휘발성 메모리 장치(200)가 플래시 메모리 장치인 경우, 플로팅 게이트 방식의 NAND 플래시 메모리 장치 또는 CTF(Charge Trap Flash) 방식의 NAND 플래시 메모리 장치일 수 있다. 비휘발성 메모리 장치(200)의 메모리 셀 트랜지스터들은 2차원적으로 배열된 구조를 가질 수도 있고, 또는 3차원적으로 배열된 구조를 가질 수도 있다.The semiconductor storage device 10 according to the embodiment of the present invention may be a solid state drive (SSD) or a secure digital (SD) card, but is not limited thereto. In addition, non-volatile memory device 200 may be a flash memory device, but is not limited thereto, and may be a PRAM, MRAM, ReRAM, or FeRAM device. When the nonvolatile memory device 200 is a flash memory device, it may be a floating gate type NAND flash memory device or a CTF (Charge Trap Flash) type NAND flash memory device. The memory cell transistors of the nonvolatile memory device 200 may have a two-dimensionally arranged structure or a three-dimensionally arranged structure.

컨트롤러(100)는 반도체 저장장치(10)의 동작을 전반적으로 제어하며, 또한 호스트(20)와 비휘발성 메모리 장치(200) 간의 제반 데이터 교환을 제어한다. 예컨대, 컨트롤러(100)는 호스트(20)의 요청에 따라 비휘발성 메모리 장치(200)를 제어하여 데이터를 쓰거나 데이터를 독출한다. 또한, 컨트롤러(100)는 비휘발성 메모리의 특성이나 비휘발성 메모리의 효율적인 관리를 위하여 필요한 일련의 내부 동작(예컨대, 성능 조절, 머지, 웨어 레벨링 등)을 제어한다.The controller 100 controls the overall operation of the semiconductor storage device 10 and also controls all data exchange between the host 20 and the nonvolatile memory device 200. For example, the controller 100 controls the nonvolatile memory device 200 at the request of the host 20 to write data or read data. In addition, the controller 100 controls a series of internal operations (e.g., performance adjustment, merge, wear leveling, etc.) necessary for the characteristics of the non-volatile memory and for efficient management of the non-volatile memory.

비휘발성 메모리 장치(200)는 데이터를 비휘발적으로 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. The nonvolatile memory device 200 is a storage area for storing data in a nonvolatile manner, and can store an operating system (OS), various programs, and various data.

도 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 controller 100 according to one embodiment of the present invention. 2, the controller 100 includes a host interface 110, a DRAM 120, an SRAM 130, a memory interface 140, a CPU 150, a bus 160, a workload module 170, A timer 180, a performance adjustment module 190, and a clock generator 195.

호스트 인터페이스(110)는 호스트(20)와 통신하기 위하여 상술한 바와 같은 인터페이스 프로토콜을 구비한다. DRAM(120), 및 SRAM(130)은 각각 데이터 및/또는 프로그램을 휘발적으로 저장한다. 비휘발성 메모리 인터페이스(140)는 비휘발성 메모리 장치(200)와 인터페이싱한다. The host interface 110 has an interface protocol as described above for communicating with the host 20. DRAM 120, and SRAM 130 volatile store data and / or programs, respectively. Non-volatile memory interface 140 interfaces with non-volatile memory device 200.

CPU(150)는 비휘발성 메모리 장치(200)로/로부터 데이터 기록/독출을 위한 제반 제어 동작을 수행한다. The CPU 150 performs all control operations for writing / reading data to and from the nonvolatile memory device 200. [

워크로드 모듈(170)은 반도체 저장장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고, 수집된 워크로드 데이터를 토대로 워크로드를 예측할 수 있다. The workload module 170 may collect workload data associated with the workload being applied to the semiconductor storage device 10 and may predict the workload based on the collected workload data.

성능 조절 모듈(190)은 워크로드 모듈(170)에서 예측한 워크로드에 따라 타겟 성능 레벨을 결정하고, 결정된 성능 레벨을 적용하여 반도체 저장장치(10)의 성능을 조절한다. The performance adjustment module 190 determines the target performance level according to the workload predicted by the workload module 170 and adjusts the performance of the semiconductor storage device 10 by applying the determined performance level.

타이머(180)는 CPU(150), 워크로드 모듈(170) 및 성능 조절 모듈(190)로 시간 정보를 제공한다. 워크로드 모듈(170), 타이머(180) 및 성능 조절 모듈(190)은 각각 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.  The timer 180 provides time information to the CPU 150, the workload module 170, and the performance adjustment module 190. The workload module 170, the timer 180, and the performance adjustment module 190 may each be implemented as hardware, software, or a combination of hardware and software.

워크로드 모듈(170), 타이머(180) 및 성능 조절 모듈(190)이 소프트웨어로 구현되는 경우, 해당 프로그램은 비휘발성 메모리 장치(200)에 저장되고, 반도체 저장장치(10)가 파워-온되면, 비휘발성 메모리 장치(200)로부터 SRAM(130)으로 로드되어 CPU(150)에 의해 실행될 수 있다.When the workload module 170, the timer 180 and the performance adjustment module 190 are implemented in software, the program is stored in the nonvolatile memory device 200, and when the semiconductor storage device 10 is powered on Volatile memory device 200 to the SRAM 130 and executed by the CPU 150. [

클럭 발생기(195)는 CPU(150), DRAM(120), 및 비휘발성 메모리 장치(200)의 동작을 위해 필요한 클럭 신호를 생성하여, 해당 소자로 제공한다. CPU(150), DRAM(120), 및 비휘발성 메모리 장치(200)에 제공되는 클럭 신호의 속도는 각각 다를 수 있다. 클럭 발생기(195)는 성능 조절 모듈(190)에서 결정된 성능 레벨에 따라, CPU(150), DRAM(120), 및 비휘발성 메모리 장치(200)로 각각 인가되는 클럭 신호의 속도를 조절함으로써, 반도체 저장장치(10)의 성능이 조절되도록 할 수 있다.The clock generator 195 generates a clock signal necessary for the operation of the CPU 150, the DRAM 120, and the nonvolatile memory device 200, and provides the clock signal to the corresponding device. The speeds of the clock signals provided to the CPU 150, the DRAM 120, and the nonvolatile memory device 200 may be different from each other. The clock generator 195 adjusts the speed of the clock signal applied to the CPU 150, the DRAM 120, and the nonvolatile memory device 200, respectively, according to the performance level determined in the performance adjustment module 190, The performance of the storage device 10 can be adjusted.

비록 도면에는 도시되지 않았지만, 반도체 저장장치(10)는 반도체 저장장치(10)의 파워-온(power-on)시 실행되는 코드 데이터를 저장하는 ROM(미도시), 비휘발성 메모리 장치(200)에 저장될 데이터를 인코딩하고 비휘발성 메모리 장치(200)로부터 독출된 데이터를 디코딩하기 위한 ECC 엔진(미도시) 등의 구성요소를 더 구비할 수 있다.Although not shown in the figure, the semiconductor storage device 10 includes a ROM (not shown) for storing code data to be executed upon power-on of the semiconductor storage device 10, a nonvolatile memory device 200, And an ECC engine (not shown) for encoding the data to be stored in the nonvolatile memory device 200 and decoding the data read from the nonvolatile memory device 200.

도 3은 도 2에 도시된 비휘발성 메모리 장치(200)의 구조를 개략적으로 나타내는 도면이다. 이를 참조하면, 비휘발성 메모리 장치(200)는 다수의 메모리 소자들을 포함할 수 있다. 도 3에는 4-채널(4-channel)/ 3-뱅크(3-bank) 방식의 하드웨어 구조를 갖는 비휘발성 메모리 장치(200)가 예시적으로 도시되나, 본 발명이 이에 한정되는 것은 아니다. FIG. 3 schematically shows the structure of the nonvolatile memory device 200 shown in FIG. With reference thereto, the non-volatile memory device 200 may include a plurality of memory elements. In FIG. 3, a non-volatile memory device 200 having a 4-channel / 3-bank hardware structure is illustrated by way of example, but the present invention is not limited thereto.

도 3에 도시된 반도체 저장장치(10)에서, 컨트롤러(100)와 비휘발성 메모리 장치(200)는 4개의 채널(Channel A, B, C, D)로 연결되며, 각 채널에는 3개의 플래시 메모리 소자(CA0~CA2, CB0~CB2, CC0~CC2, CD0~CD2)가 연결되는 구조이다. 그러나, 채널의 수 및 뱅크의 수는 이에 한정되지 않고 변경될 수 있음은 당연하다.In the semiconductor storage device 10 shown in FIG. 3, the controller 100 and the non-volatile memory device 200 are connected by four channels (Channels A, B, C, and D) The elements CA0 to CA2, CB0 to CB2, CC0 to CC2, and CD0 to CD2 are connected. However, it goes without saying that the number of channels and the number of banks are not limited thereto and can be changed.

이러한 구조를 가지는 반도체 저장장치(10)에서 반도체 저장장치(10)의 성능 조절 단위는, 비휘발성 메모리 장치(200) 전체, 비휘발성 메모리 장치(200)의 개별적인 메모리 소자(메모리 칩)가 공유하는 버스(채널) 단위, 뱅크 단위, 혹은 개별적인 소자 단위일 수 있다. 여기서, 뱅크는 다른 채널상에서 같은 오프셋(offset)에 위치하는 메모리 소자들의 그룹이다. In the semiconductor storage device 10 having such a structure, the performance control unit of the semiconductor storage device 10 is a unit in which the entire nonvolatile memory device 200, the individual memory devices (memory chips) of the nonvolatile memory device 200 May be a bus (channel) unit, a bank unit, or an individual device unit. Here, a bank is a group of memory elements located at the same offset on different channels.

도 4는 본 발명의 일 실시예에 따른 호스트(20)의 개략적인 블록도이다. 도 4를 참조하면, CPU(210), 메모리(220), 버스(230), 저장장치 인터페이스(240), 워크로드 모듈(250), 타이머(260), 및 성능 조절 모듈(270)을 포함할 수 있다. 4 is a schematic block diagram of a host 20 in accordance with one embodiment of the present invention. 4, the system includes a CPU 210, a memory 220, a bus 230, a storage device interface 240, a workload module 250, a timer 260, and a performance adjustment module 270 .

저장장치 인터페이스(240)는 반도체 저장장치(10)와 통신하기 위한 인터페이스 프로토콜을 구비한다. The storage interface 240 has an interface protocol for communicating with the semiconductor storage device 10.

CPU(210)는 반도체 저장장치(10)로/로부터 데이터 기록/독출을 위한 제반 제어 동작을 수행한다. The CPU 210 performs all control operations for writing / reading data to / from the semiconductor storage device 10.

워크로드 모듈(250)은 반도체 저장장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고, 수집된 워크로드 데이터를 토대로 워크로드를 예측할 수 있다. The workload module 250 may collect workload data associated with the workload being applied to the semiconductor storage device 10 and may predict the workload based on the collected workload data.

성능 조절 모듈(270)은 워크로드 모듈(250)에서 예측한 워크로드에 따라 타겟 성능 레벨을 결정하고, 결정된 성능 레벨을 적용하여 반도체 저장장치(10)의 성능을 조절한다. The performance adjustment module 270 determines the target performance level according to the workload predicted by the workload module 250 and adjusts the performance of the semiconductor storage device 10 by applying the determined performance level.

타이머(260)는 CPU(210), 워크로드 모듈(250) 및 성능 조절 모듈(270)로 시간 정보를 제공한다. 워크로드 모듈(250), 타이머(260) 및 성능 조절 모듈(270)은 각각 소프트웨어, 하드웨어 또는 소프트웨어 및 하드웨어의 결합으로 구현될 수 있다. The timer 260 provides time information to the CPU 210, the workload module 250, and the performance adjustment module 270. The workload module 250, the timer 260, and the performance adjustment module 270 may be implemented as software, hardware, or a combination of software and hardware, respectively.

워크로드 모듈(250)은 및 성능 조절 모듈(270)은 반도체 저장장치(10)의 성능을 호스트(20)에서 조절하거나 제어하기 위한 것으로, 호스트(20)의 개입없이 반도체 저장 장치(10)가 자체적으로 성능을 조절하는 경우에는 호스트(20)는 워크로드 모듈(250) 및 성능 조절 모듈(270)을 구비하지 않을 수 있다.The workload module 250 and the performance adjustment module 270 are for controlling or controlling the performance of the semiconductor storage device 10 at the host 20 and the semiconductor storage device 10 The host 20 may not have the workload module 250 and the performance adjustment module 270 when the performance is adjusted by itself.

도 5는 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법은 도 2에 도시된 반도체 저장 장치(10), 호스트(20) 또는 반도체 저장 장치(10)와 호스트(20) 양자에 분산되어 구현될 수 있다. 5 is a flowchart illustrating a method for adjusting the performance of the semiconductor storage device 10 according to an embodiment of the present invention. The method for controlling the performance of the semiconductor storage device 10 according to an embodiment of the present invention is a method for controlling the performance of the semiconductor storage device 10, the host 20 or the semiconductor storage device 10 and the host 20 .

본 발명의 일 실시예에 따른 성능 조절 방법이 반도체 저장 장치(10)에 구현되는 예를 중심으로 기술하나, 상술한 바와 같이, 본 발명이 이에 한정되는 것은 아니다.The performance control method according to an embodiment of the present invention is described with reference to an example implemented in the semiconductor storage device 10, but the present invention is not limited thereto as described above.

도 5를 참조하면, 컨트롤러(100)는 반도체 저장 장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고(S100), 수집된 워크로드 데이터를 토대로 워크로드를 예측한다(S110). 컨트롤러(100)는 예측된 워크로드에 따라 타겟 성능 레벨을 결정하고(S120), 결정된 성능 레벨을 반도체 저장 장치(10)의 동작에 적용한다(S130). Referring to FIG. 5, the controller 100 collects workload data related to a workload applied to the semiconductor storage device 10 (S100), and predicts a workload based on the collected workload data (S110). The controller 100 determines the target performance level according to the predicted workload (S120), and applies the determined performance level to the operation of the semiconductor storage device 10 (S130).

반도체 저장 장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고, 수집된 워크로드 데이터를 토대로 워크로드를 예측하는 방법(S100, S110)에 대해서는, 한국 특허 출원 제10-2010-0080697호에 개시된 내용이 참조된다.For methods (S100, S110) of collecting workload data related to the workload applied to the semiconductor storage device 10 and predicting the workload based on the collected workload data, Korean Patent Application No. 10-2010-0080697 The contents of which are incorporated herein by reference.

예측된 워크로드에 따라 타겟 성능 레벨을 결정하는 방법(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 host 20 and the semiconductor storage device 10 is required. That is, a protocol for performance control is required for transmission of commands and information related to performance adjustment between the host 20 and the semiconductor storage device 10.

도 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 host 20 may transmit a configuration request command for controlling performance to the semiconductor storage device 10 (S610). Upon receipt of the setting request command of the host 20, the semiconductor storage device 10 sets (i.e., stores) the corresponding performance control parameter value of the semiconductor storage device to a specific value included in the command and performs an operation . After completing the operation, the host 20 can transmit a setting response signal (S620).

설정 요청 명령은 다음과 같은 종류의 명령들-성능 조절 인에이블/디스에이블 명령, 조절된 성능 (혹은 성능 레벨) 설정 명령, 성능 조절되는 명령의 종류(예컨대, 쓰기 명령, 읽기 명령 등)를 설정하기 위한 명령, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션(혹은 단계)을 설정하기 위한 명령, 최저성능 (혹은 최저 성능 레벨) 설정 명령, 최대 성능(혹은 최대 성능 레벨) 설정 명령, 초기 성능(혹은 초기 성능 레벨) 설정 명령, 성능 조절 주기 설정 명령, 성능조절 변동폭 (또는 변동 레벨의 수) 설정 명령, 성능 조절 리셋 명령,  성능 조절 체크 포인트 설정 명령, 및 가상의 워크로드 히스토리 설정 명령 등-을 포함할 수 있다.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 host 20, the semiconductor storage device 10 stores the setting value included in the setting request command in the corresponding memory or the corresponding register.

도 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 semiconductor storage device 10 by a configuration request command of the host. Of course, the performance tuning parameters may be set in other ways than the configuration request command of the host.

성능 조절 인에이블/디스에이블 명령은 반도체 저장 장치(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 semiconductor storage device 10, in which the host 20 is connected to the semiconductor storage device 10 according to an embodiment of the present invention When the performance control enable command is sent to the semiconductor storage device 10 to enable the performance control method, the semiconductor storage device 10 sets the performance control flag shown in FIG. 8 in response to the performance control enable command (For example, set to "1"), and can transmit the setting response signal to the host 20.

호스트(20)가 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 디스에이블하기 위하여 성능 조절 디스에이블 명령을 반도체 저장 장치(10)로 전송하면, 반도체 저장 장치(10)는 성능 조절 디스에이블 명령에 응답하여 도 8에 도시된 성능 조절 플래그를 리셋(예컨대, '0'으로 설정)하고, 호스트(20)로 설정 응답 신호를 전송할 수 있다. When the host 20 transmits a performance control disable command to the semiconductor storage device 10 to disable the performance adjustment method of the semiconductor storage device 10 according to an embodiment of the present invention, (E. G., Set to '0') and send a configuration response signal to the host 20 in response to the performance control disable command.

조절된 성능 (혹은 성능 레벨) 설정 명령은 호스트(20)가 반도체 저장 장치(10)의 성능을 조절하는 경우, 호스트(20)가 조절한 성능을 반도체 저장 장치(10)로 알려주기 위한 명령이다. 반도체 저장 장치(10)는 조절된 성능 (혹은 성능 레벨) 설정 명령에 응답하여, 해당 성능 조절 파라미터(즉, 반도체 저장 장치의 성능)를 그 명령에 포함된 값으로 설정할 수 있다.The command to set the adjusted performance (or performance level) is a command to inform the semiconductor storage device 10 of the performance adjusted by the host 20 when the host 20 adjusts the performance of the semiconductor storage device 10 . The semiconductor storage device 10 may set the corresponding performance control parameter (i.e., the performance of the semiconductor storage device) to the value included in the command in response to the adjusted performance (or performance level) setting command.

성능 조절되는 명령의 종류(예컨대, 쓰기 명령, 읽기 명령 등)를 설정하기 위한 명령은 반도체 저장 장치(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 semiconductor storage device 10 is to be adjusted. For example, the read performance of the semiconductor storage device 10 may be adjusted, the write performance may be adjusted, and both the read performance and the write performance may be adjusted.

호스트(20)는 성능 조절되는 명령의 종류를 결정하여 반도체 저장 장치(10)로 알려줄 수 있다.The host 20 may determine the type of command to be performance-controlled and inform the semiconductor storage device 10 of the command.

아이들 타임의 듀레이션(혹은 단계)은 반도체 저장 장치(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 semiconductor storage device 10 in order to control the performance of the semiconductor storage device 10. The idle time may be inserted using the timer 180 or may be inserted into the execution of a meaningless operation (for example, a NOP operation). The timer 180 may be implemented in hardware or software.

반도체 저장장치(10)의 성능을 효과적이고 결정적으로 조절하기 위해서는 아이들 타임을 반도체 저장장치(10)의 단위 동작(operation)에 추가하여 발생하게끔 할 수 있다. 예를 들어, 비휘발성 메모리(200)로의 프로그램 동작(program operation), 비휘발성 메모리(200)로부터의 독출 동작(read operation), 비휘발성 메모리(200)의 내부 버퍼(예컨대, 페이지 버퍼)에 읽기/쓰기 동작, 컨트롤러의 버퍼(예컨대, DRAM, 또는 SRAM)에 읽기/쓰기 동작, 호스트 인터페이스 읽기/쓰기 동작 발생시, 일정 시간의 아이들 타임, 혹은 처리되는 데이터량에 비례하는 아이들 타임의 발생을 인가할 수 있다. In order to effectively and decisively adjust the performance of the semiconductor storage device 10, an idle time may be generated in addition to the unit operation of the semiconductor storage device 10. [ For example, a program operation to the nonvolatile memory 200, a read operation from the nonvolatile memory 200, a read operation to the internal buffer (e.g., page buffer) of the nonvolatile memory 200, Write operation, a read / write operation to a controller buffer (for example, DRAM or SRAM), and a host interface read / write operation, idle time for a certain period of time or generation of idle time proportional to the amount of data to be processed .

이러한 아이들 타임의 듀레이션(혹은 단계)은 반도체 저장 장치(10)에서 결정되어 호스트(20)로 보고될 수도 있고, 호스트(20)가 결정하여 반도체 저장 장치(10)로 알려줄 수도 있다.The duration (or step) of the idle time may be determined in the semiconductor storage device 10 and reported to the host 20 or may be determined by the host 20 and informed to the semiconductor storage device 10.

최저성능 (혹은 최저 성능 레벨) 설정 명령, 최대 성능(혹은 최대 성능 레벨) 설정 명령, 초기 성능(혹은 초기 성능 레벨) 설정 명령은 각각 호스트(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 host 20 to the lowest performance, As shown in Fig.

반도체 저장 장치(10)의 초기 성능은 반도체 저장 장치(10)의 초기 동작 기간(예컨대, 파워온 시점으로부터 소정 기간)에 적용되는 성능이고, 최저성능, 및 최대 성능은 반도체 저장 장치(10)의 조절 가능한 성능의 하한치와 상한치이다. 반도체 저장 장치(10)의 최저성능, 최대 성능 및 초기 성능은 반도체 저장 장치(10)에 미리 설정될 수도 있지만, 호스트(20)의 명령에 의해 설정될 수도 있다.The initial performance of the semiconductor storage device 10 is a performance applied during an initial operation period of the semiconductor storage device 10 (e.g., a predetermined period from the power-on time) Lower and upper limits of adjustable performance. The minimum performance, the maximum performance, and the initial performance of the semiconductor storage device 10 may be preset in the semiconductor storage device 10, but may be set by an instruction of the host 20.

성능 조절 주기 설정 명령은 성능 조절 주기를 설정하기 위한 명령이다. 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 semiconductor storage device 10 receives the performance adjustment period setting command from the host 20, it sets the performance adjustment period to the value included in the instruction. The semiconductor storage device 10 may calculate a new performance level for each performance adjustment period, and apply the calculated new performance level to the semiconductor storage device 10. In this case, the applied performance level is maintained during the performance adjustment period, and a new performance level can be calculated and applied again at the end of the performance adjustment period. Here, the performance adjustment period may be a unit such as hour, day, week, month, and the like, but is not limited thereto. Also, the performance adjustment cycle may or may not match the performance prediction cycle. For example, the performance prediction is on a time-by-time basis, but performance tuning can be up once and vice versa.

성능 조절 변동폭 (또는 변동 레벨의 수) 설정 명령은 성능 조절 변동폭을 설정하기 위한 명령이다. 성능 조절 변동폭은 조절된 성능(새롭게 적용할 성능)과 조절되기 직전의 성능 간의 차이를 제한하기 위한 것이다. 성능 조절 변동폭은 절대값, 직전 성능 대비 비율, 최고 성능 대비 비율, 또는 디스크리트 레벨 수로 표현될 수 있다.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 semiconductor storage device 10, the host 20 or the semiconductor storage device 10 may perform the performance immediately prior to the adjustment of the adjusted performance, (+/- 10%, 20%, and 5%, for example) of the variation (+/- x%) (or the maximum performance).

디스크리트 레벨 수란, 성능 레벨이 복수의 디스크리트 레벨들(즉, 단계들)로 표시되는 경우, 한번에 변경 가능한 레벨(단계) 수를 말한다. 예를 들어, 성능 조절 변동폭이 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 host 20 to set the virtual workload history instead of setting the initial performance level in the semiconductor storage device 10. [ Setting the virtual workload history is to set the parameters corresponding to the virtual workload to a specific value, assuming that the semiconductor storage device 10 has undergone a virtual workload for a predetermined period before power on.

도 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 host 20 can transmit an information request command to the semiconductor storage device 10 (S710). When the semiconductor storage device 10 receives the information request command of the host 20, the semiconductor storage device 10 may transmit the performance adjustment information of the semiconductor storage device 10 to the host 20 (S720). To this end, the semiconductor storage device 10 may transmit an information response signal including performance adjustment information to the host 20 (S270).

성능 조절 정보는 반도체 저장장치(10)의 메모리나 레지스터에 저장되어 있는 성능 조절 파라미터들일 수 있다. 성능 조절 파라미터들에 대해서는 도 8을 참조하여 상술하였으므로, 여기서는 설명을 생략한다.The performance adjustment information may be performance control parameters stored in the memory or registers of the semiconductor storage device 10. The performance adjustment parameters have been described above with reference to FIG. 8, and a description thereof will be omitted here.

성능 조절 정보는 또한 도 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 host 20 applies to the storage device 10 as shown in Figure 9, the number of write commands that the host 20 applies to the storage device 10, The number of read commands applied to the storage device 10 by the host device 20, the amount of data transferred to / from the host in response to the command, the amount of data received from the host in response to the write command, A data amount, a number of program operations performed within the semiconductor storage device, and a number of read operations performed within the semiconductor storage device.

상술한 성능 조절을 위해 호스트(20)에서 반도체 저장 장치(10)로 전송되어 설정되는 성능 조절 파라미터 값들은 각각의 개별 명령을 통해서 반도체 저장 장치(10)로 전송될 수도 있지만, 하나의 명령의 통해서 둘 이상의 성능 조절 파라미터 값들이 반도체 저장 장치(10)로 전송될 수도 있다. 마찬가지로, 성능 조절 정보 역시 개별적으로 또는 한꺼번에 반도체 저장 장치(10)에서 호스트로(20)로 보고될 수도 있다.The performance adjustment parameter values that are set and transmitted from the host 20 to the semiconductor storage device 10 may be transmitted to the semiconductor storage device 10 through respective individual instructions for the performance adjustment described above, More than one performance control parameter value may be sent to the semiconductor storage device 10. Likewise, performance adjustment information may also be reported to the host 20 from the semiconductor storage device 10, either individually or collectively.

도 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 host 20 is configured with a feature field, a count field, a logic block address (LBA) field, a device field, and a command field as shown in FIG. 10 for setting performance control parameters of the semiconductor storage device 10 To the semiconductor storage device 10. [0033] FIG. Each field included in the instruction may be configured with a predetermined number of bits. For example, each of the command field, the device field, and the count field may be composed of 8 bits.

커맨드 필드는 상기 설정 요청 명령의 종류를 구분하는 기능을 할 수 있고,상기 피쳐(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 semiconductor storage device 10 may set the performance adjustment flag shown in Figure 8 in response to the performance adjustment enable command and reset the performance adjustment flag shown in Figure 8 in response to the performance adjustment disable instruction can be set. The semiconductor storage device 10 may then send a performance enable / disable response signal to the host 20.

도 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 semiconductor storage device 10. Thus, in response to the information request command with the count field set to '1', the semiconductor storage device 10 may report the performance adjustment information of one sector to the host 20.

도 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 host 20 can apply an information request command in a format similar to the format shown in Fig. 10 to the semiconductor storage device 10. [ Then, the semiconductor storage device 10 can transmit the performance adjustment parameter value or the collected workload data to the host 20 through the information response command in the format as shown in FIG. The information response command includes a response signal composed of a feature field, a count field, a logic block address (LBA) field, a device field, and a command field, and information data For example, one sector of information data).

도 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 semiconductor storage device 10 is powered on (S810), the host 20 may enable performance control of the semiconductor storage device 10 via the command (S820) . That is, the host 20 may apply the performance control enable command to the semiconductor storage device 10 in order to enable the performance adjustment of the semiconductor storage device 10.

다음으로, S830 내지 S850 단계에서 호스트(20)는 반도체 저장장치(10)의 성능 조절에 필요한 여러 가지 성능 조절 파라미터들(예컨대, 초기 성능 레벨, 성능 조절되는 명령의 종류, 성능 조절 주기 등)을 설정할 수 있다. 성능 조절 파라미터들이 설정되면, 반도체 저장장치(10)는 워크로드 데이터를 수집한다(S860). 반도체 저장장치(10)는 성능 조절을 위한 충분한 워크로드 데이터가 수집되면, 성능 조절을 시작한다(S870). Next, in steps S830 to S850, the host 20 sets various performance control parameters (e.g., initial performance level, type of performance control command, performance control cycle, etc.) necessary for performance adjustment of the semiconductor storage device 10 Can be set. When the performance adjustment parameters are set, the semiconductor storage device 10 collects workload data (S860). The semiconductor storage device 10 starts performance adjustment when sufficient workload data for performance adjustment is collected (S870).

본 발명의 다른 실시예에서는, 반도체 저장장치(10)의 워크로드 데이터 수집은 도 13에 도시된 바와 달리, 호스트(20)에 의해 이루어질 수도 있다. 즉, 호스트(20)가 워크로드 데이터를 수집하고 수집된 워크로드 데이터에 따라 성능 조절을 시작할 수 있다. 수집된 워크로드 데이터를 바탕으로 새로운 성능 레벨이 결정되면, 호스트(20)는 반도체 저장 장치(10)로 명령을 통하여 조절된 성능을 설정할 수 있다. 또는 호스트(20)는 새로운 성능 레벨에 따른 아이들 타임을 결정하여 이를 반도체 저장 장치(10)로 명령을 통하여 설정할 수 있다. 그러면, 반도체 저장 장치(10)는 설정된 성능 또는 아이들 타임에 따라 성능을 조절한다. In another embodiment of the present invention, the workload data collection of the semiconductor storage device 10 may be made by the host 20, unlike that shown in FIG. That is, the host 20 can collect workload data and start performance tuning according to the collected workload data. When a new performance level is determined based on the collected workload data, the host 20 can set the adjusted performance through the command to the semiconductor storage device 10. Alternatively, the host 20 may determine the idle time according to the new performance level and set it to the semiconductor storage device 10 through an instruction. Then, the semiconductor storage device 10 adjusts the performance according to the set performance or idle time.

한편, 호스트(20)는 성능 조절 정보를 얻기 위하여 반도체 저장 장치(10)로 정보 요청 명령을 전송할 수 있다(S880). 그러면, 반도체 저장 장치(10)는 성능 조절 정보들을 포함하는 정보 응답 신호를 호스트(20)로 전송할 수 있다(S890).Meanwhile, the host 20 may transmit the information request command to the semiconductor storage device 10 to obtain the performance adjustment information (S880). Then, the semiconductor storage device 10 may transmit an information response signal including performance adjustment information to the host 20 (S890).

도 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 electronic system 900 according to an embodiment of the present invention includes a semiconductor storage device 10, a power supply 910, a central processing unit (CPU) 920 (RAM) 930, a user interface 940, and a system bus 950 for electrically connecting these components.

CPU(920)는 시스템(900)의 전체적인 동작을 제어하고, RAM(930)은 시스템(900)의 동작을 위해 필요한 정보들을 저장하고, User Interface(940)는 시스템(900)과 사용자와의 인터페이스를 제공한다. 전원부(910)는 내부의 구성 요소들(즉, CPU(920), 램(RAM)(930), 유저 인터페이스(940), 메모리 시스템(500) 등)으로 전원을 공급한다.The CPU 920 controls the overall operation of the system 900 and the RAM 930 stores the information necessary for the operation of the system 900. The User Interface 940 controls the interface between the system 900 and the user Lt; / RTI > The power supply 910 supplies power to the internal components (i.e., CPU 920, RAM 930, user interface 940, memory system 500, etc.).

CPU(920)가 상술한 호스트(20)에 해당할 수 있으며, 반도체 저장장치(10)는 호스트(20)의 명령에 응답하여 데이터를 저장하거나 독출할 수 있다.The CPU 920 may correspond to the host 20 described above and the semiconductor storage device 10 may store or read data in response to the command of the host 20. [

도 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 electronic system 900 shown in FIG. 14, so the differences are mainly described in order to avoid duplication of explanation.

도 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 RAID controller card 960 as compared to the electronic system 900 shown in FIG. The semiconductor storage device 10 can be mounted on the RAID controller card 960 and can interface with the host via the RAID controller card 960 instead of directly interfacing with the host. At this time, a plurality of (two or more) semiconductor storage devices 10-1 to 10-k (k is an integer of 2 or more) may be mounted on the RAID controller card 960. [ The RAID controller card 960 of the electronic system 900 'shown in FIG. 15A is implemented as a separate product outside the semiconductor storage devices 10-1 to 10-k.

도 15b에 도시된 전자 시스템(900")은 도 15a에 도시된 전자 시스템(900')과 유사한 구성을 가지므로, 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.The electronic system 900 "shown in FIG. 15B has a similar configuration to the electronic system 900 'shown in FIG. 15A, and therefore focuses on differences to avoid duplication of description.

도 15b에 도시된 전자 시스템(900')의 RAID 컨트롤러 카드(960)는 반도체 저장 장치들(10-1~10-k)과 함께 하나의 제품으로 구현된다는 점에서, 도 15a에 도시된 전자 시스템(900')과 차이가 있다.The RAID controller card 960 of the electronic system 900 'shown in FIG. 15B is implemented as a single product with the semiconductor storage devices 10-1 through 10-k, Gt; 900 '. ≪ / RTI >

이와 같이 RAID 컨트롤러 카드(960)가 구비되는 경우, 상술한 본 발명의 실시예에 따른 인터페이스 방법은 RAID 컨트롤러 카드(960)에 구현될 수 있다. When the RAID controller card 960 is provided as described above, the above-described interface method according to the embodiment of the present invention can be implemented in the RAID controller card 960.

도 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 semiconductor storage device 10 according to an embodiment of the present invention. The computing system 1000 includes a central processing unit 1110, an accelerated graphics port 1120, a main memory 1130, a north bridge 1140, a semiconductor storage device An SSD 10, a keyboard controller 1160, a printer controller 1170, and a south bridge 1180, for example.

컴퓨팅 시스템(1100)은 SSD(10)가 하드디스크 드라이브를 대신하여 주 저장 장치로 이용하는 개인용 컴퓨터 또는 노트북 컴퓨터의 블락도일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다. The computing system 1100 may also be a block of a personal computer or notebook computer that the SSD 10 uses as the primary storage device on behalf of the hard disk drive. However, the scope of the present invention is not limited thereto.

컴퓨팅 시스템(1000)에서 중앙 처리 장치(1110), AGP 장치(1120), 및 메인 메모리(1130) 등은 노스 브리지(1140)에 접속되며, SSD(10), 키보드 컨트롤러(1160), 프린터 컨트롤러(1170), 및 각종 주변 장치들(미도시) 등은 사우스 브리지(180)에 연결된다. In the computing system 1000, the central processing unit 1110, the AGP unit 1120, and the main memory 1130 are connected to the north bridge 1140 and are connected to the SSD 10, the keyboard controller 1160, And various peripheral devices (not shown) are connected to the south bridge 180.

노스 브리지(1140)는 메인보드 가운데를 기준으로 중앙 처리 장치(1110) 소켓 쪽에 있는 집적회로로서, 일반적으로는 중앙 처리 장치(1110)와 연결하는 호스트 인터페이스(host interface)를 포함하는 시스템 컨트롤러를 의미한다. 사우스 브리지(1180)는 메인보드 가운데를 기준으로 PCI(peripheral component interconnect) 슬롯 쪽에 있는 집적회로로서, 일반적으로는 호스트 버스에서 PCI 버스를 경유하여 접속되는 버스(bus)로 가는 브리지를 의미한다. The north bridge 1140 is an integrated circuit on the socket of the central processing unit 1110 with respect to the center of the main board 1110 and generally refers to a system controller including a host interface for connecting to the central processing unit 1110 do. The south bridge 1180 is an integrated circuit on the peripheral component interconnect (PCI) slot in the center of the main board, and generally refers to a bridge from a host bus to a bus connected via a PCI bus.

AGP는 3차원 그래픽 표현을 빠르게 구현할 수 있게 해주는 버스 규격이다. AGP 장치(1120)에는 모니터 이미지를 재생하는 비디오 카드 등이 포함될 수 있다. 메인 메모리(1130)는 일반적으로 휘발성 메모리 소자인 RAM(Random Access Memory)으로 구현될 수 있으나 본 발명의 범위가 이에 한정되는 것은 아니다. AGP is a bus specification that enables rapid realization of 3D graphical representations. The AGP device 1120 may include a video card or the like for playing back a monitor image. The main memory 1130 may be implemented as a RAM (Random Access Memory), which is a volatile memory device, but the scope of the present invention is not limited thereto.

또한, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1100)에서는 SSD(10)가 사우스 브리지(180)에 연결되는 구조이나, 이에 한정되는 것은 아니며, SSD(10)가 노스 브리지(1140)에 연결되거나, CPU(1110)에 직접 연결되는 구조일 수도 있다.In the computing system 1100 according to an embodiment of the present invention, the SSD 10 may be connected to the south bridge 180, but the present invention is not limited thereto. The SSD 10 may be connected to the north bridge 1140 Or may be a structure directly connected to the CPU 1110.

발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.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
저장장치 인터페이스 : 240
Semiconductor 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.
제1항 또는 제2항에 있어서, 상기 설정 요청 명령은
성능 조절 인에이블/디스에이블 명령, 조절된 성능 설정 명령, 성능 조절되는 명령의 종류를 설정하기 위한 명령, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션을 설정하기 위한 명령, 최저성능 설정 명령, 최대 성능 설정 명령, 초기 성능 설정 명령, 성능 조절 주기 설정 명령, 성능조절 변동폭 설정 명령, 성능 조절 리셋 명령, 성능 조절 체크 포인트 설정 명령, 및 가상의 워크로드 히스토리 설정 명령 중 적어도 하나를 포함하는 반도체 저장장치와 호스트 간의 인터페이스 방법.
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.
제3항에 있어서, 상기 반도체 저장 장치는
상기 성능 조절 파라미터를 저장하기 위한 메모리 또는 레지스터를 포함하는 반도체 저장장치와 호스트 간의 인터페이스 방법.
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.
삭제delete 삭제delete 반도체 저장장치의 성능 조절을 위한 상기 반도체 저장 장치와 호스트간의 인터페이스 방법에 있어서,
상기 호스트로부터 정보 요청 명령을 수신하는 단계; 및
상기 반도체 저장장치가 상기 정보 요청 명령에 응답하여, 요청된 성능 조절 파라미터를 포함하는 정보 응답 신호를 상기 호스트로 전송하는 단계를 구비하며,
상기 정보 요청 명령은
피쳐(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.
제7항 또는 제8항에 있어서, 상기 성능 조절 파라미터는
조절된 성능, 성능조절을 당하는 명령의 종류, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션, 및 워크로드 파라미터 카운트값 중 적어도 하나를 포함하는 반도체 저장장치와 호스트 간의 인터페이스 방법.
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.
제9항에 있어서, 상기 반도체 저장 장치는
상기 성능 조절 파라미터를 저장하기 위한 메모리 또는 레지스터를 포함하는 반도체 저장장치와 호스트 간의 인터페이스 방법.
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.
삭제delete 제1항, 제2항, 제7항 및 제8항 중 어느 한 항에 기재된 반도체 저장 장치와호스트간 인터페이스 방법을 실행하기 위한 프로그램을 기록한 기록 매체.A recording medium on which a program for executing a semiconductor storage device and a host-to-host interface method according to any one of claims 1, 2, 7, and 8 is recorded. 비휘발성 메모리; 및
호스트의 요청에 따라 상기 비휘발성 메모리를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는
상기 호스트로부터 설정 요청 명령을 수신하고, 상기 설정 요청 명령에 응답하여 요청된 성능 조절 파라미터를 특정 값으로 설정하며, 상기 호스트로 상기 성능 조절 파라미터의 설정을 완료하였음을 나타내는 설정 응답 신호를 전송하며,
상기 설정 요청 명령은
피쳐(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; 및
상기 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.
제13항 또는 제14항에 있어서, 상기 설정 요청 명령은
성능 조절 인에이블/디스에이블 명령, 조절된 성능 설정 명령, 성능 조절되는 명령의 종류를 설정하기 위한 명령, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션을 설정하기 위한 명령, 최저성능 설정 명령, 최대 성능 설정 명령, 초기 성능 설정 명령, 성능 조절 주기 설정 명령, 성능조절 변동폭 설정 명령, 성능 조절 리셋 명령, 성능 조절 체크 포인트 설정 명령, 및 가상의 워크로드 히스토리 설정 명령 중 적어도 하나를 포함하는 장치.
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.
삭제delete 삭제delete 비휘발성 메모리; 및
호스트의 요청에 따라 상기 비휘발성 메모리를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는
상기 호스트로부터 정보 요청 명령을 수신하고, 상기 정보 요청 명령에 응답하여 요청된 성능 조절 파라미터를 포함하는 정보 응답 신호를 상기 호스트로 전송하며,
상기 정보 요청 명령은
피쳐(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; 및
상기 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.
제18항 또는 제19항에 있어서, 상기 성능 조절 파라미터는
조절된 성능, 성능조절을 당하는 명령의 종류, 성능 조절을 위해 삽입된 아이들 타임의 듀레이션, 및 워크로드 파라미터 카운트값 중 적어도 하나를 포함하는 장치.
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.
KR1020100080862A 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 KR101824067B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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