KR101702393B1 - Semiconductor storage device and method for throttling performance of the semiconductor storage device - Google Patents

Semiconductor storage device and method for throttling performance of the semiconductor storage device Download PDF

Info

Publication number
KR101702393B1
KR101702393B1 KR1020100080699A KR20100080699A KR101702393B1 KR 101702393 B1 KR101702393 B1 KR 101702393B1 KR 1020100080699 A KR1020100080699 A KR 1020100080699A KR 20100080699 A KR20100080699 A KR 20100080699A KR 101702393 B1 KR101702393 B1 KR 101702393B1
Authority
KR
South Korea
Prior art keywords
level
performance level
performance
calculated
storage device
Prior art date
Application number
KR1020100080699A
Other languages
Korean (ko)
Other versions
KR20120017832A (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 KR1020100080699A priority Critical patent/KR101702393B1/en
Priority to US13/166,131 priority patent/US8862806B2/en
Priority to US13/166,216 priority patent/US8856424B2/en
Priority to US13/166,257 priority patent/US8862807B2/en
Priority to US13/212,404 priority patent/US9037778B2/en
Publication of KR20120017832A publication Critical patent/KR20120017832A/en
Priority to US14/504,568 priority patent/US9348521B2/en
Priority to US14/511,271 priority patent/US9223506B2/en
Application granted granted Critical
Publication of KR101702393B1 publication Critical patent/KR101702393B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]

Abstract

반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법이 개시된다. 본 발명의 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하는 반도체 저장 장치의 성능 조절 방법은, 상기 반도체 저장 장치를 제1 성능 레벨에 따라 동작시키는 단계; 새로운 성능 레벨을 산출하는 단계; 상기 산출된 성능 레벨을 미리 정해진 기준과 비교하는 단계; 상기 비교 결과에 따라, 상기 산출된 성능 레벨을 제2 성능 레벨로 결정하는 단계; 상기 반도체 저장 장치를 상기 제2 성능 레벨에 따라 동작시키는 단계를 구비한다.A semiconductor storage device and a method for controlling performance of the semiconductor storage device are disclosed. A method for controlling performance of a semiconductor storage device including a nonvolatile memory device of the present invention and a controller for controlling the nonvolatile memory device includes: operating the semiconductor storage device according to a first performance level; Calculating a new performance level; Comparing the calculated performance level with a predetermined criterion; Determining the calculated performance level as a second performance level according to the comparison result; And operating the semiconductor storage device according to the second performance level.

Description

반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법 {Semiconductor storage device and method for throttling performance of the semiconductor storage device}TECHNICAL FIELD [0001] The present invention relates to a semiconductor storage device and a method for controlling the performance of the semiconductor storage device.

본 발명은 데이터 저장장치에 관한 것으로, 특히, 비휘발성 메모리에 데이터를 저장하는 반도체 저장장치 및 그 성능 조절 방법에 관한 것이다.The present invention relates to a data storage device, and more particularly, to a semiconductor storage device for storing data in a nonvolatile memory and a performance adjustment method thereof.

반도체 저장 장치는 반도체(특히, 비휘발성 메모리)를 이용하여 데이터를 저장하는 장치로서, 지금까지 대용량 저장장치로 널리 사용되던 디스크 저장매체(즉, 하드디스크드라이브)에 비하여 속도가 빠르고 물리적 충격에 강하고 발열이나 소음도 적으며, 소형화할 수 있는 장점이 있다. 반도체 저장 장치의 일 예로는, 솔리드 스테이트 드라이브(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, there is a need for a method for extending the life of a semiconductor storage device using a nonvolatile memory having an endurance limit, or for assuring a life expectancy.

따라서 본 발명이 이루고자 하는 기술적인 과제는 요구되는 수명을 보장하기 위하여 워크로드에 따라 적응적으로 성능을 조절할 수 있는 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법을 제공하는 것이다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and an object of the present invention is to provide a semiconductor storage device capable of adjusting the performance of the semiconductor storage device adaptively according to a workload.

상기 기술적 과제를 해결하기 위한 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하는 반도체 저장 장치의 성능 조절 방법은, 상기 반도체 저장 장치를 제1 성능 레벨에 따라 동작시키는 단계; 새로운 성능 레벨을 산출하는 단계; 상기 산출된 성능 레벨을 미리 정해진 기준과 비교하는 단계; 상기 비교 결과에 따라, 상기 산출된 성능 레벨을 제2 성능 레벨로 결정하는 단계; 상기 반도체 저장 장치를 상기 제2 성능 레벨에 따라 동작시키는 단계를 구비한다.According to another aspect of the present invention, there is provided a method of controlling performance of a semiconductor storage device including a nonvolatile memory device and a controller for controlling the nonvolatile memory device, Operating according to a level; Calculating a new performance level; Comparing the calculated performance level with a predetermined criterion; Determining the calculated performance level as a second performance level according to the comparison result; And operating the semiconductor storage device according to the second performance level.

상술한 바와 같이 본 발명에 의하면, 반도체 저장 장치의 워크로드에 따라 적응적으로 성능을 조절할 수 있다. 이에 따라, 반도체 저장 장치의 수명을 연장하거나 혹은 요구되는 수명을 보장할 수 있는 효과가 있다.As described above, according to the present invention, the performance can be adaptively adjusted according to the workload of the semiconductor storage device. Thereby, there is an effect that the lifetime of the semiconductor storage device can be extended or the required lifetime can be guaranteed.

도 1은 본 발명의 일 실시예에 따른 데이터 저장 시스템의 개략적인 블록도이다.
도 2는 본 발명의 일 실시예에 따른 컨트롤러의 개략적인 블록도이다.
도 3은 도 2에 도시된 비휘발성 메모리 장치의 구조를 개략적으로 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 호스트의 개략적인 블록도이다.
도 5a는 본 발명의 일 실시예에 따른 반도체 저장 장치의 성능 조절 방법을 나타내는 흐름도이다.
도 5b는 본 발명의 일 실시예에 따른 반도체 저장 장치의 성능 조절 방법을 나타내는 흐름도이다.
도 5c는 본 발명의 다른 일 실시예에 따른 반도체 저장 장치의 성능 조절 방법을 나타내는 흐름도이다.
도 6은 도 5b에 도시된 반도체 저장 장치의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다.
도 7은 본 발명의 다른 일 실시예에 따른 반도체 저장 장치의 성능 조절 방법을 나타내는 흐름도이다.
도 8은 도 7에 도시된 반도체 저장 장치의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다.
도 9는 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치의 성능 조절 방법을 나타내는 흐름도이다.
도 10은 도 9에 도시된 반도체 저장 장치의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다.
도 11은 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치의 성능 조절 방법을 나타내는 흐름도이다.
도 12a는 도 11에 도시된 반도체 저장 장치의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다.
도 12b는 산출된 성능 레벨에 따라 디스크리트 레벨을 선택하는 방법을 설명하기 위한 그래프이다.
도 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.
FIG. 5A is a flowchart illustrating a method of adjusting performance of a semiconductor storage device according to an embodiment of the present invention. Referring to FIG.
FIG. 5B is a flowchart illustrating a method of adjusting the performance of a semiconductor storage device according to an exemplary embodiment of the present invention. Referring to FIG.
5C is a flowchart illustrating a method of adjusting performance of a semiconductor storage device according to another embodiment of the present invention.
FIG. 6 is a graph illustrating a change in performance level according to a performance adjustment method of the semiconductor storage device shown in FIG. 5B.
7 is a flowchart illustrating a method of adjusting performance of a semiconductor storage device according to another embodiment of the present invention.
FIG. 8 is a graph showing a change in the performance level according to the performance adjustment method of the semiconductor storage device shown in FIG.
9 is a flowchart illustrating a method of adjusting the performance of a semiconductor storage device according to another embodiment of the present invention.
FIG. 10 is a graph showing a change in performance level according to a performance adjustment method of the semiconductor storage device shown in FIG.
11 is a flowchart illustrating a method of adjusting the performance of a semiconductor storage device according to another embodiment of the present invention.
12A is a graph showing a change in performance level according to a performance adjustment method of the semiconductor storage device shown in FIG.
12B is a graph for explaining a method of selecting a discrete level according to the calculated performance level.
13 is a table showing a format of a host command 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.

도 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'라 함)일 수 있다. 또한, 비휘발성 메모리 장치(200)는 플래시 메모리 장치일 수 있으나, 이에 한정되지 않는다.The semiconductor storage device 10 according to an embodiment of the present invention may be a solid state drive (SSD). In addition, non-volatile memory device 200 may be a flash memory device, but is not limited thereto.

컨트롤러(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)는 데이터를 비휘발적으로 저장하기 위한 저장 장소로서, 사용자 데이터 및 메타 데이터를 저장한다. 비휘발성 메모리 장치(220)는 OS(Operating System, 이하 'OS'라 함), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. The non-volatile memory device 200 is a storage location for storing data non-volatile, and stores user data and metadata. The non-volatile memory device 220 may 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 non-volatile memory interface 140, a CPU 150, a system 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 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) 및 성능 조절 모듈(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 and the performance adjustment module 190 may be implemented in hardware, software, or a combination of hardware and software.

워크로드 모듈(170) 및 성능 조절 모듈(190)이 소프트웨어로 구현되는 경우, 해당 프로그램은 비휘발성 메모리 장치(200)에 저장되고, 반도체 저장 장치(10)가 파워-온되면, 비휘발성 메모리 장치(200)로부터 SRAM(130)으로 로드되어 CPU(150)에 의해 실행될 수 있다.When the workload module 170 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, May be loaded into SRAM 130 from CPU 200 and executed by CPU 150.

타이머(180) 역시 하드웨어 또는 소프트웨어로 구현될 수 있다.The timer 180 may also be implemented in hardware or software.

클럭 발생기(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 generated clock signal to the corresponding component. 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 chips. 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) Chip (CA0 to CA2, CB0 to CB2, CC0 to CC2, 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)에 위치하는 메모리 소자(device)들의 그룹이다. 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 devices located at the same offset on different channels.

도 4는 본 발명의 일 실시예에 따른 호스트(20)의 개략적인 블록도이다. 도 4를 참조하면, 호스트(20)는 CPU(210), 메모리(220), 버스(230), SSD 인터페이스(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 host 20 includes a CPU 210, a memory 220, a bus 230, an SSD interface 240, a workload module 250, a timer 260, and a performance adjustment module 270 ).

SSD 인터페이스(240)는 반도체 저장 장치(10)와 통신하기 위한 인터페이스 프로토콜을 구비한다. The SSD 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.

도 5a는 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법은 도 2에 도시된 반도체 저장 장치(10), 호스트(20) 또는 반도체 저장 장치(10)와 호스트(20) 양자에 분산되어 구현될 수 있다. FIG. 5A is a flowchart illustrating a method of 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.

도 5a를 참조하면, 컨트롤러(100)는 반도체 저장 장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고(S100), 수집된 워크로드 데이터를 토대로 워크로드를 예측할 수 있다(S110). 컨트롤러(100)는 예측된 워크로드에 따라 성능 레벨을 산출하고, 성능 조절 정책에 따라 성능 레벨을 결정할 수 있다(S120). 다음으로 결정된 성능 레벨을 반도체 저장 장치(10)의 동작에 적용할 수 있다(S130).5A, the controller 100 may collect workload data related to the workload applied to the semiconductor storage device 10 (S100), and may predict the workload based on the collected workload data (S110) . The controller 100 may calculate the performance level according to the predicted workload and determine the performance level according to the performance control policy (S120). The next determined performance level may be applied to the operation of the semiconductor storage device 10 (S130).

본 발명의 실시예들은 도 5a에 도시된 단계들 중 성능 조절 정책에 따라 성능 레벨을 결정하는 단계(S120)에 대하여 구체적인 방법을 제시한다.Embodiments of the present invention provide a concrete method for determining the performance level (S120) according to the performance control policy among the steps shown in FIG. 5A.

도 5b는 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 6은 도 5b에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다.FIG. 5B is a flowchart illustrating a method of adjusting the performance of the semiconductor storage device 10 according to an embodiment of the present invention. FIG. 6 is a graph showing a change in performance level according to a performance adjustment method of the semiconductor storage device 10 shown in FIG. 5B.

컨트롤러(100)는 새로운 성능 레벨을 산출한다(S121). 새로운 성능 레벨은 워크로드 예측치를 이용하여 산출될 수 있으나, 이에 한정되는 것은 아니다(S121). 다음으로, 새로운 성능 레벨, 즉 산출된 성능 레벨을 미리 정해진 기준과 비교한다(S122). 본 실시예에서, 미리 정해진 기준은 최소 성능 레벨이다. 따라서, 산출된 새로운 성능 레벨이 최소 성능 레벨 보다 낮은지 확인하기 위하여, 새로운 성능 레벨을 미리 정해진 최소 레벨과 비교한다(S122). 상기 비교 결과, 새로운 성능 레벨이 최소 성능 레벨보다 낮으면 최소 성능 레벨을 선택하고, 선택된 최소 성능 레벨을 적용한다(S123). The controller 100 calculates a new performance level (S121). The new performance level can be calculated using the workload prediction value, but is not limited thereto (S121). Next, the new performance level, i.e., the calculated performance level is compared with a predetermined criterion (S122). In this embodiment, the predetermined criterion is the minimum performance level. Therefore, in order to confirm that the calculated new performance level is lower than the minimum performance level, the new performance level is compared with a predetermined minimum level (S122). As a result of the comparison, if the new performance level is lower than the minimum performance level, the minimum performance level is selected and the selected minimum performance level is applied (S123).

상기 비교 결과, 새로운 성능 레벨이 최소 레벨보다 높거나 같으면 새로운 성능 레벨을 그대로 선택하고, 선택된 새로운 성능 레벨을 적용한다(S124). As a result of the comparison, if the new performance level is higher than or equal to the minimum level, the new performance level is selected as it is, and the selected new performance level is applied (S124).

도 5b에 도시된 단계들은 도 5a의 S120 및 S130 단계에 상응할 수 있다.The steps shown in Fig. 5B may correspond to steps S120 and S130 in Fig. 5A.

도 6은 도 5b에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다. 이를 참조하면, 워크로드의 변화에 따라, 성능 레벨 역시 조절되지만, 최저 성능 레벨 밑으로 내려 가지 않음을 알 수 있다.FIG. 6 is a graph showing a change in performance level according to a performance adjustment method of the semiconductor storage device 10 shown in FIG. 5B. Referring to this, it can be seen that as the workload changes, the performance level is also adjusted but does not go below the lowest performance level.

상술한 바와 같이, 본 발명의 실시예에 따르면, 새롭게 산출된 성능 레벨이 최소 성능 레벨보다 높거나 같으면 산출된 성능 레벨이 그대로 새로운 성능 레벨로 결정되어 적용되지만, 새롭게 산출된 성능 레벨이 최소 성능 레벨보다 낮으면 최소 성능 레벨을 선택함으로써, 성능 레벨이 최소 성능 레벨보다 낮아지지 않도록 한다. 이에 따라, 워크로드가 최대인 악조건에서도 반도체 저장장치(10)의 최저 성능 보장된다.As described above, according to the embodiment of the present invention, if the newly calculated performance level is equal to or higher than the minimum performance level, the calculated performance level is directly applied and determined as a new performance level, but if the newly calculated performance level is the minimum performance level , The minimum performance level is selected so that the performance level is not lower than the minimum performance level. Thus, the semiconductor storage device 10 is guaranteed to have the minimum performance even under the worst conditions in which the workload is at its maximum.

도 5c는 본 발명의 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. FIG. 5C is a flowchart illustrating a method of adjusting the performance of the semiconductor storage device 10 according to another embodiment of the present invention.

도 5c를 참조하면, 컨트롤러(100)는 새로운 성능 레벨을 산출한다(S121). 새로운 성능 레벨은 워크로드 예측치를 이용하여 산출될 수 있으나, 이에 한정되는 것은 아니다(S131). 다음으로, 새로운 성능 레벨, 즉 산출된 성능 레벨을 미리 정해진 기준과 비교한다(S132). 본 실시예에서, 미리 정해진 기준은 최대 성능 레벨이다. 따라서, 산출된 새로운 성능 레벨이 최대 성능 레벨 보다 높은지 확인하기 위하여, 새로운 성능 레벨을 미리 정해진 최대 레벨과 비교한다(S132). 상기 비교 결과, 새로운 성능 레벨이 최대 성능 레벨보다 높으면 최대 성능 레벨을 선택하고, 선택된 최대 성능 레벨을 적용한다 (S133). Referring to FIG. 5C, the controller 100 calculates a new performance level (S121). The new performance level may be calculated using the workload prediction value, but is not limited thereto (S131). Next, the new performance level, i.e., the calculated performance level is compared with a predetermined criterion (S132). In this embodiment, the predetermined criterion is the maximum performance level. Therefore, in order to check whether the calculated new performance level is higher than the maximum performance level, a new performance level is compared with a predetermined maximum level (S132). As a result of the comparison, if the new performance level is higher than the maximum performance level, the maximum performance level is selected and the selected maximum performance level is applied (S133).

상기 비교 결과, 새로운 성능 레벨이 최대 성능 레벨보다 낮거나 같으면 산출된 성능 레벨을 그대로 선택하고, 선택된 성능 레벨을 적용한다(S134). As a result of the comparison, if the new performance level is lower than or equal to the maximum performance level, the calculated performance level is directly selected and the selected performance level is applied (S134).

상술한 바와 같이, 본 발명의 다른 일 실시예에 따르면, 새롭게 산출된 성능 레벨이 최대 성능 레벨보다 낮거나 같으면 산출된 성능 레벨이 그대로 새로운 성능 레벨로 결정되어 적용되지만, 새롭게 산출된 성능 레벨이 최대 성능 레벨보다 높으면 최대 성능 레벨을 새로운 성능 레벨로 결정함으로써, 성능 레벨이 최대 성능 레벨보다 높아지지 않도록 한다. As described above, according to another embodiment of the present invention, if the newly calculated performance level is lower than or equal to the maximum performance level, the calculated performance level is directly applied and determined as a new performance level, but if the newly calculated performance level is the maximum If it is higher than the performance level, the maximum performance level is determined as a new performance level so that the performance level is not higher than the maximum performance level.

도 5c에 도시된 단계들은 도 5a의 S120 및 S130 단계에 상응할 수 있다.The steps shown in Fig. 5C may correspond to steps S120 and S130 in Fig. 5A.

도 7은 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 7을 참조하면, 새로운 성능 레벨이 산출되어 설정되면(S210 및 S220), 미리 정해진 기간(set period) 동안에는 성능 레벨이 변경되지 않고 유지된다(S230).7 is a flowchart illustrating a method for adjusting the performance of the semiconductor storage device 10 according to another embodiment of the present invention. Referring to FIG. 7, when a new performance level is calculated and set (S210 and S220), the performance level is maintained unchanged for a predetermined period (S230).

이를 위하여, 새로운 성능 레벨이 적용된 시점으로부터 미리 정해진 기간이 경과하였는지 체크하여(S240), 새로운 성능 레벨이 적용된 시점으로부터 미리 정해진 기간이 경과하면 새로운 성능 레벨을 산출하고(S210), 그렇지 않으면 그 성능 레벨이 계속 유지될 수 있다(S230). For this purpose, it is checked whether a predetermined period has elapsed from the time when the new performance level is applied (S240). When a predetermined period elapses from the application of the new performance level, a new performance level is calculated (S210) (S230).

또는 미리 정해진 성능 조절 주기마다 새로운 성능 레벨을 산출하고, 상기 산출된 새로운 성능 레벨을 반도체 저장 장치(10)에 적용할 수 있다. 이 경우, 미리 정해진 성능 조절 주기 동안 적용된 성능 레벨이 유지되며, 성능 조절 주기가 끝나면 다시 새로운 성능 레벨이 산출되어 적용될 수 있다. 여기서, 미리 정해진 기간 또는 성능 조절 주기는 시간(hour), 일(day), 주(week), 월(month) 등의 단위일 수 있으나, 이에 한정되는 것은 아니다. 또한, 성능 조절 주기가 성능 예측 주기가 일치할 수도 있으나, 그렇지 않을 수도 있다. 예컨대, 성능 예측은 시간 단위로 하지만 성능 조절은 일단위로 할 수 있으며, 그 반대일 수도 있다.Alternatively, a new performance level may be calculated for each predetermined performance adjustment period, and the calculated new performance level may be applied to the semiconductor storage device 10. In this case, the applied performance level is maintained during a predetermined performance adjustment period, and a new performance level can be calculated and applied again at the end of the performance adjustment period. Here, the predetermined period or 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.

상기 미리 정해진 기간 또는 성능 조절 주기는 호스트로부터 수신된 주기 설정 명령에 응답하여 설정될 수 있다. 주기 설정 명령은 도 13에 도시된 호스트 명령 포맷을 가질 수 있다. 호스트의 주기 설정 명령의 포맷에 대해서는 도 13을 참조하여 후술한다.The predetermined period or performance adjustment period may be set in response to the period setting command received from the host. The period setting command may have the host command format shown in Fig. The format of the period setting command of the host will be described later with reference to FIG.

호스트는 상술한 주기 설정 명령을 이용하여 성능조절 주기의 시점 및 길이를 필요에 따라 설정할 수 있다. 상기 미리 정해진 기간 또는 성능 조절 주기가 호스트로부터의 명령에 의하여 설정될 수도 있지만, 반도체 저장 장치(10)에 미리 설정될 수도 있다.The host can set the viewpoint and the length of the performance control cycle as needed using the above-described period setting command. The predetermined period or the performance adjustment period may be set by an instruction from the host, but it may be preset in the semiconductor storage device 10. [

저장장치의 성능을 정해진 주기(예를 들어, 24시간, 12시간, 6시간)에 한 번씩만 조절하고, 그 한 주기 동안은 저장장치의 성능을 일정하게 유지하는 것은 저장장치의 성능이 너무 자주 변하는 경우에 호스트 관점에서 저장장치의 성능에 대한 예측성이 떨어짐을 예방하기 위함이다. Adjusting the performance of a storage device only once for a predetermined period (for example, 24 hours, 12 hours, 6 hours), and keeping the performance of the storage device constant during the one period causes the performance of the storage device to be too frequent In order to prevent the degradation of the performance of the storage device from the viewpoint of the host.

도 8은 도 7에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다. 이를 참조하면, 워크로드의 변화에 따라, 성능 레벨은 성능 조절 주기마다 조절됨을 알 수 있다.FIG. 8 is a graph showing a change in performance level according to a performance adjustment method of the semiconductor storage device 10 shown in FIG. Referring to this, it can be seen that as the workload changes, the performance level is adjusted for each performance adjustment period.

도 9는 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 9를 참조하면, 새로운 성능 레벨을 산출한다(S310). 산출된 성능 레벨과 현 성능 레벨(이하, 제1 성능 레벨이라 함) 간의 차이를 미리 정해진 기준 차이(x%)과 비교하고(S320), 상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 기준 차이보다 낮으면 상기 산출된 성능 레벨을 새로운 성능 레벨(이하, 제2 성능 레벨이라 함)로 결정하여 적용한다(S350). FIG. 9 is a flowchart showing a method of adjusting the performance of the semiconductor storage device 10 according to another embodiment of the present invention. Referring to FIG. 9, a new performance level is calculated (S310). The difference between the calculated performance level and the current performance level (hereinafter, referred to as a first performance level) is compared with a predetermined reference difference (x%) (S320). As a result of the comparison, If the difference between the levels is lower than the reference difference, the calculated performance level is determined as a new performance level (S350).

상기 비교 결과(S320), 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 기준 차이보다 높으면 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 기준 차이(예컨대, x%)가 되도록 상기 산출된 성능 레벨을 조절하고(S330), 상기 조절된 성능 레벨을 상기 제2 성능 레벨로 결정하여 적용한다(S340). If the difference between the calculated performance level and the first performance level is higher than the reference difference, the difference between the calculated performance level and the first performance level is smaller than the reference difference (e.g., x%) The calculated performance level is adjusted to be the second performance level (S340), and the adjusted performance level is determined to be the second performance level (S340).

기준차이는 임의의 값 또는 임의의 비율(예컨대, x%)로 미리 설정될 수 있다. 기준차이가 비율(예컨대, x%)로 설정되는 경우, 그 비율(예컨대, x%)은 직전 성능 대비 비율 또는 최고 성능 대비 비율일 수 있으나, 이에 한정되는 것은 아니다.The reference difference may be preset to any value or any ratio (e.g., x%). When the reference difference is set to a ratio (e.g., x%), the ratio (e.g., x%) may be, but is not limited to, the ratio between the immediately preceding performance and the highest performance.

본 발명의 실시예에 따르면, 반도체 저장장치(10)의 성능조절 시, 조절된 성능을 조절하기 직전의 성능(또는 최고 성능) 대비 기준차이(+/- x%) (x의 값은, 예를 들어 10%, 20%, 5%) 이내로 유지하여 조절한다. 이는 반도체 저장장치(10)의 성능이 갑작스럽게 큰 폭으로 변하는 경우에 호스트 관점에서 반도체 저장장치(10)의 성능에 대한 예측성이 떨어짐을 예방하기 위함이다.  According to an embodiment of the present invention, when adjusting the performance of the semiconductor storage device 10, the performance difference (+/- x%) relative to the performance immediately before the adjustment of the adjusted performance (or maximum performance) , 10%, 20%, 5%). This is to prevent deterioration of the performance of the semiconductor storage device 10 from the viewpoint of the host when the performance of the semiconductor storage device 10 suddenly changes greatly.

본 발명의 실시예에서, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최고 성능) 대비 +/- y% (y의 값은, 예를 들어 3%, 4%, 2%) 이하의 값을 n(2이상의 정수)번 이상 지속적으로 유지할 경우, 기준차이(x)를 상향 조정할 수 있다. 이는 규칙적인 워크로드에 잘 적응한 반도체 저장장치의 성능이 워크로드의 갑작스러운 변화에 효과적으로 반응할 수 있도록 하기 위함이다. In an embodiment of the present invention, the performance adjusted for a successive period is less than or equal to +/- y% (y value is, for example, 3%, 4%, 2% (N) (more than two integers) more than once, the reference difference (x) can be adjusted upward. This is to ensure that the performance of semiconductor storage devices that are well adapted to regular workloads can effectively respond to sudden changes in workload.

본 발명의 다른 실시예에서, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최고 성능) 대비 +/- z% (z의 값은 예를 들어 8%, 16%, 4%) 이상의 값을 m(2이상의 정수)번 이상 지속적으로 유지할 경우, 기준차이(x)를 하향 조정할 수 있다. 이는 변덕스러운 워크로드에 반도체 저장장치의 성능을 효과적으로 적응시키기 위함이다.In another embodiment of the present invention, the performance adjusted for a continuous period has a value greater than or equal to +/- z% (where z is, for example, 8%, 16%, 4% If it is maintained continuously for more than m (more than 2 integers) times, the reference difference (x) can be adjusted downward. This is to effectively adapt the performance of the semiconductor storage device to the volatile workload.

본 발명의 또 다른 실시예에서는, 상술한 실시예와 반대로, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최공 성능) 대비 +/- y% (y의 값은, 예를 들어 3%, 4%, 2%) 이하의 값을 n(2이상의 정수)번 이상 지속적으로 유지할 경우, 기준 차이(x)를 하향 조정하고, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최고 성능) 대비 +/- z% (z의 값은 예를 들어 8%, 16%, 4%) 이상의 값을 m(2이상의 정수)번 이상 지속적으로 유지할 경우, 기준차이(x)를 상향 조정할 수도 있다.In another embodiment of the present invention, as opposed to the above-described embodiment, the performance adjusted for successive periods is +/- y% relative to the previous performance (or minimum performance) (for example, the value of y is 3% 4%, 2%) is continuously maintained for n or more times (integer number of 2 or more), the reference difference (x) is adjusted downward, and the performance adjusted for a continuous period is compared with the previous performance The reference difference (x) may be adjusted upward if the value of +/- z% (z value is 8%, 16%, 4%, for example)

도 10은 도 9에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다. 이를 참조하면, 워크로드의 변화에 따라, 성능 레벨이 조절된다. 이 때, 새로운 성능 레벨은 직전의 성능 레벨 대비 미리 정해진 기준 차이(+/- x%) 이내로 조절됨을 알 수 있다. 그러나, 상술한 바와 같이, 다른 실시예에서는 새로운 성능 레벨은 최고 성능 레벨 대비 미리 정해진 기준 차이(+/- x%) 이내로 조절될 수도 있다.FIG. 10 is a graph showing a change in performance level according to a performance adjustment method of the semiconductor storage device 10 shown in FIG. Referring to this, as the workload changes, the performance level is adjusted. At this time, it is understood that the new performance level is adjusted within a predetermined reference difference (+/- x%) with respect to the previous performance level. However, as described above, in other embodiments, the new performance level may be adjusted to within a predetermined reference difference (+/- x%) versus the highest performance level.

도 11은 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 12a는 도 11에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다. 도 12b는 산출된 성능 레벨에 따라 디스크리트 레벨을 선택하는 방법을 설명하기 위한 그래프리이다.11 is a flowchart showing a method of adjusting the performance of the semiconductor storage device 10 according to another embodiment of the present invention. 12A is a graph showing a change in performance level according to a performance adjustment method of the semiconductor storage device 10 shown in FIG. 12B is a graph for explaining a method of selecting a discrete level according to the calculated performance level.

도 11 내지 12b를 참조하면, 새로운 성능 레벨을 산출한다(S410). 미리 정해진 복수의 디스크리트 레벨들(Lv.1 ~Lv.9) 중 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택한다(S420). 본 실시예에서, 복수의 디스크리트 레벨들(Lv.1 ~Lv.9)은 9 단계의 서로 다른 성능 레벨이나, 이에 한정되는 것은 아니며, 디스크리트 레벨들의 수 및 각 레벨간 간격 등은 달라질 수 있다.Referring to FIGS. 11 to 12B, a new performance level is calculated (S410). The discrete level closest to the calculated performance level among the plurality of predetermined discrete levels (Lv.1 to Lv.9) is selected (S420). In this embodiment, the plurality of discrete levels Lv. 1 to Lv. 9 have different levels of performance in nine stages, but the number of discrete levels and intervals between the levels may vary.

도 12b를 참조하면, 현 성능 레벨(제1 성능 레벨)이 Lv.5이고 산출된 성능 레벨이 CL1인 경우, CL1이 Lv.5 보다 Lv. 6에 더 가까운 값이라고 가정하면, 산출된 성능 레벨(CL1)과 가장 가까운 디스크리트 레벨인 Lv. 6이 선택된다. 따라서, 산출된 성능 레벨(CL1)이 구간(D6)에 속한다면 Lv. 6이 선택된다. 만약, 이웃하는 디스크리트 레벨들 간의 중간 값이라면, 가장 가까운 디스크리트 레벨은 두 레벨일 수 있으며, 이 경우 두 레벨 중 어느 하나가 선택될 수 있다.Referring to FIG. 12B, when the current performance level (first performance level) is Lv.5 and the calculated performance level is CL1, CL1 is greater than Lv.5. Assuming that the value is closer to 6, Lv, which is the closest discrete level to the calculated performance level CL1. 6 is selected. Therefore, if the calculated performance level CL1 belongs to the interval D6, Lv. 6 is selected. If it is an intermediate value between neighboring discrete levels, the closest discrete level may be two levels, in which case either one of the two levels may be selected.

상기 선택된 디스크리트 레벨과 현 성능 레벨(제1 성능 레벨) 간의 레벨 갭을 산출하여, 상기 산출된 레벨 갭을 미리 정해진 기준 갭과 비교한다(S430). 레벨 갭이란, 선택된 디스크리트 레벨이 현 성능 레벨(제1 성능 레벨)에 비하여 몇 단계 차이인지를 의미한다. 예를 들어, 현 성능 레벨(제1 성능 레벨)이 Lv.4 이고, 선택된 디스크리트 레벨이 Lv.3 또는 Lv.5라면, 레벨 갭은 1이고, 현 성능 레벨(제1 성능 레벨)이 Lv.4 이고, 선택된 디스크리트 레벨이 Lv.2 또는 Lv.6라면, 레벨 갭은 2이다.The level gap between the selected discrete level and the current performance level (first performance level) is calculated, and the calculated level gap is compared with a predetermined reference gap at step S430. The level gap means a number of steps different from the current performance level (first performance level) of the selected discrete level. For example, if the current performance level (first performance level) is Lv.4 and the selected discrete level is Lv.3 or Lv.5, then the level gap is 1 and the current performance level (first performance level) is Lv. 4 and the selected discrete level is Lv.2 or Lv.6, the level gap is 2.

상기 비교 결과, 상기 산출된 레벨 갭이 미리 정해진 기준 갭(i, i는 1이상의 정수)보다 낮거나 같으면 상기 선택된 디스크리트 레벨을 새로운 성능 레벨(제2 성능 레벨)로 결정하여 적용한다(S460). 예를 들어, 산출된 레벨 갭이 1이고, 기준 갭이 2인 경우, 선택된 디스크리트 레벨을 그대로 새로운 성능 레벨(제2 성능 레벨)로 결정하여 적용한다.As a result of the comparison, if the calculated level gap is lower than or equal to a predetermined reference gap (i, i is an integer of 1 or more), the selected discrete level is determined as a new performance level (S460). For example, when the calculated level gap is 1 and the reference gap is 2, the selected discrete level is directly determined as a new performance level (second performance level) and applied.

상기 비교 결과, 상기 산출된 레벨 갭이 상기 기준 갭(i)보다 높으면 상기 산출된 레벨 갭이 상기 기준 갭이 되도록 상기 산출된 레벨 갭을 조절하고(S440), 상기 조절된 레벨 갭에 해당하는 디스크리트 레벨을 상기 제2 성능 레벨로 결정하여 적용한다(S450).As a result of the comparison, if the calculated level gap is higher than the reference gap (i), the calculated level gap is adjusted so that the calculated level gap becomes the reference gap (S440) Level is determined to be the second performance level (S450).

예를 들어, 산출된 레벨 갭이 3이고, 기준 갭이 2인 경우, 선택된 디스크리트 레벨을 그대로 새로운 성능 레벨(제2 성능 레벨)로 결정하는 것이 아니라, 산출된 레벨 갭이 기준갭(예컨대, 2)이 되도록 조절하고, 조절된 레벨 갭(예컨대, 2)에 해당하는 디스크리트 레벨을 제2 성능 레벨로 결정하여 적용한다.For example, instead of determining the selected discrete level as a new performance level (second performance level) when the calculated level gap is 3 and the reference gap is 2, the calculated level gap is not the reference gap (for example, 2 ), And a discrete level corresponding to the adjusted level gap (for example, 2) is determined as the second performance level.

도 12b를 다시 참조하면, 현 성능 레벨(제1 성능 레벨)이 Lv.6이고 산출된 성능 레벨이 CL2인 경우, S420 단계에서는 CL2에 가장 가까운 디스크리트 레벨인 Lv.3이 선택된다. Referring back to FIG. 12B, when the current performance level (first performance level) is Lv.6 and the calculated performance level is CL2, Lv.3, which is the closest discrete level to CL2, is selected in step S420.

그리고, 상기 선택된 디스크리트 레벨(Lv.3)과 현 성능 레벨(제1 성능 레벨, Lv.6) 간의 레벨 갭(Lv.6-Lv.3=3)을 산출하여, 상기 산출된 레벨 갭(3)을 미리 정해진 기준 갭(예컨대, 2)과 비교한다(S430). 산출된 레벨 갭(3)이 기준 갭(예컨대, 2) 보다 크므로, 산출된 레벨 갭을 기준 갭이 되도록 조절하고(S440), 상기 조절된 레벨 갭(2)에 해당하는 디스크리트 레벨(Lv.4)을 제2 성능 레벨로 결정한다. 최종적으로 선택된 디스크리트 레벨은 Lv.3이 아닌 Lv.4이다.Then, a level gap (Lv.6-Lv.3 = 3) between the selected discrete level Lv.3 and the current performance level (first performance level, Lv.6) is calculated and the calculated level gap 3 ) With a predetermined reference gap (e.g., 2) (S430). Since the calculated level gap 3 is larger than the reference gap (for example, 2), the calculated level gap is adjusted to be the reference gap (S440), and the discrete level Lv corresponding to the adjusted level gap 2 is obtained. 4) is determined as the second performance level. The finally selected discrete level is Lv.4 instead of Lv.3.

상술한 바와 같이, 기준 갭이 2인 경우, 성능 레벨은 한번에 2단계 이내로만 변경되며 2단계를 초과하여 변경될 수는 없다. As described above, when the reference gap is 2, the performance level changes only within two steps at a time, and can not be changed beyond two steps.

본 발명의 다른 실시예에서는, 제2 성능 레벨(즉, 새롭게 적용될 성능 레벨)과 제1 성능 레벨(현재 적용되고 있는 성능 레벨) 간의 차이가 복수(2이상) 개의 레벨 차이를 갖는 경우, 복수개의 레벨을 한번에 이동하지 않고 적어도 하나의 중간 레벨을 거쳐 이동할 수 있다.In another embodiment of the present invention, when the difference between the second performance level (i.e., the performance level to be newly applied) and the first performance level (the currently applied performance level) has a plurality (two or more) The level can be moved through at least one intermediate level without moving at a time.

예컨대, 제2 성능 레벨이 Lv.5이고, 제1 성능 레벨이 Lv.2인 경우, Lv.2에서 Lv.5로 바로 변경하여 적용하는 것이 아니라, Lv.5과 Lv.2 사이의 중간 레벨들(LV3, Lv4) 중 적어도 하나의 레벨로 변경하여 적용한 후 타겟 성능인 Lv.5로 변경하여 적용할 수 있다. For example, if the second performance level is Lv.5 and the first performance level is Lv.2, then instead of directly changing from Lv.2 to Lv.5 and applying it, an intermediate level between Lv.5 and Lv.2 (LV3, Lv4), and then the target performance is changed to Lv.5.

그리고, 중간 성능 레벨을 거쳐 이동하는 경우, 각 레벨(단계)별로 최소 시간을 머무른 후 자동으로 또는 다시 이동 여부를 확인 한 후 다음 성능 레벨로 이동할 수도 있다.When moving through the intermediate performance level, the minimum time may be maintained for each level (step), and then it may be automatically or again confirmed whether to move again, and then moved to the next performance level.

도 13은 본 발명의 일 실시예에 따른 호스트 명령의 포맷을 나타내는 테이블이다. 도 13을 참조하면, 호스트(20)는 반도체 저장 장치(10)의 성능 조절과 관련하여 피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드로 구성되는 명령 신호를 반도체 저장 장치(10)에 인가할 수 있다. 명령에 포함되는 각 필드는 미리 정해진 비트로 구성될 수 있다. 예를 들어, 커맨드 필드, 디바이스 필드, 및 카운트 필드 각각은 8비트로 구성될 수 있다.13 is a table showing a format of a host command according to an embodiment of the present invention. Referring to FIG. 13, the host 20 receives a command signal, which is composed of a feature field, a count field, a logic block address (LBA) field, a device field, and a command field in association with the performance adjustment of the semiconductor storage device 10, May be applied to the semiconductor storage device 10. Each field included in the instruction may be composed of predetermined bits. For example, each of the command field, the device field, and the count field may be composed of 8 bits.

상술한 주기 설정 명령 역시 도 13에 도시된 호스트 명령과 유사한 포맷을 갖도록 정의될 수 있다. 다만, 주기 설정 명령은 주기에 대한 정보를 포함한다. 주기에 대한 정보는, 피쳐(feature) 필드, 카운트 필드, 및 LBA(logic Block Address) 필드 중 어느 하나에 포함될 수 있다.The above-described period setting command may also be defined to have a format similar to the host command shown in Fig. However, the period setting command includes information on the period. The information on the period may be included in one of a feature field, a count field, and a logic block address (LBA) field.

상술한 본 발명의 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법은 하드웨어, 소프트웨어 또는 이들의 결합으로 구현 가능하다. 본 발명의 실시예가 소프트웨어로 구현되는 경우, 본 발명의 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 실행하기 위한 다수의 서브 루틴들을 포함하는 성능 조절 프로그램 코드가 반도체 저장 장치(10)의 비휘발성 메모리에 저장될 수 있다.The method for adjusting the performance of the semiconductor storage device 10 according to the embodiment of the present invention may be implemented by hardware, software, or a combination thereof. When the embodiment of the present invention is implemented in software, the performance adjustment program code including a plurality of subroutines for executing the performance adjustment method of the semiconductor storage device 10 according to the embodiment of the present invention is stored in the semiconductor storage device 10, Lt; RTI ID = 0.0 > non-volatile memory.

이 경우, 컨트롤러는 비휘발성 메모리에 저장된 성능 조절 프로그램 코드를 실행함으로써, 본 발명의 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 실행할 수 있다.In this case, the controller can execute the performance adjustment method of the semiconductor storage device 10 according to the embodiment of the present invention by executing the performance adjustment program code stored in the nonvolatile memory.

도 14는 본 발명의 실시예에 따른 반도체 저장장치를 구비하는 전자 시스템의 블록도이다.14 is a block diagram of an electronic system including a semiconductor storage device according to an embodiment of the present invention.

도 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)에 의해 구현될 수 있다. 이를 위해, 상술한 타이머, 및 성능 조절 모듈 등이 RAID 컨트롤러 카드(960) 내에 구비될 수 있다.In the case where the RAID controller card 960 is provided as described above, the performance control method according to the embodiment of the present invention described above can be implemented by the RAID controller card 960. To this end, the above-described timer, performance adjustment module, and the like may be provided 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 (40)

데이터를 비휘발적으로 저장하기 위한 비휘발성 메모리 장치; 및
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는
상기 비휘발성 메모리 장치의 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 미리 정해진 기준과 비교하고, 상기 미리 정해진 기준은 최소 레벨이고,
상기 컨트롤러는
상기 비교 결과, 상기 산출된 성능 레벨이 상기 최소 레벨보다 낮으면 상기 최소 레벨을 상기 업데이트된 성능 레벨로 결정하고, 상기 산출된 성능 레벨이 상기 최소 레벨보다 높거나 같으면 상기 산출된 성능 레벨을 상기 업데이트된 성능 레벨로 결정하는 성능 조절 모듈을 포함하는 반도체 저장 장치.
A nonvolatile memory device for nonvolatilely storing data; And
And a controller for controlling the nonvolatile memory device,
The controller
Calculating a new performance level of the non-volatile memory device, comparing the calculated performance level with a predetermined criterion, the predetermined criterion being a minimum level,
The controller
If the calculated performance level is lower than or equal to the minimum level, determining the minimum level as the updated performance level, and if the calculated performance level is equal to or higher than the minimum level, ≪ / RTI > wherein the performance adjustment module determines the performance level of the semiconductor memory device based on the performance level.
삭제delete 제1항에 있어서,
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하는 반도체 저장 장치.
The method according to claim 1,
The non-volatile memory device stores a performance adjustment program code,
And the controller executes the performance adjustment program code to calculate the new performance level.
데이터를 비휘발적으로 저장하기 위한 비휘발성 메모리 장치; 및
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는,
상기 비휘발성 메모리 장치의 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨과 제1 성능 레벨 간의 차이를 미리 정해진 기준과 비교하고,
상기 제1 성능 레벨은 현재 적용되고 있는 성능 레벨이고, 제2 성능 레벨은 새롭게 적용될 성능 레벨이고,
상기 미리 정해진 기준은 제1 기준차이고,
상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차보다 낮으면 상기 산출된 성능 레벨을 제2 성능 레벨로 결정하고,
상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차보다 높거나 같으면 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차가 되도록 상기 산출된 성능 레벨을 조절하고, 상기 조절된 성능 레벨을 제2 성능 레벨로 결정하는 반도체 저장 장치.
A nonvolatile memory device for nonvolatilely storing data; And
And a controller for controlling the nonvolatile memory device,
The controller comprising:
Calculating a new performance level of the non-volatile memory device, comparing the difference between the calculated performance level and the first performance level with a predetermined criterion,
Wherein the first performance level is a currently applied performance level, the second performance level is a performance level to be newly applied,
Wherein the predetermined criterion is a first criterion difference,
Determining the calculated performance level as a second performance level if the difference between the calculated performance level and the first performance level is lower than the first reference level,
If the difference between the calculated performance level and the first performance level is higher than or equal to the first reference level and the difference between the calculated performance level and the first performance level is greater than or equal to the first reference level, Adjust the performance level, and determine the adjusted performance level as a second performance level.
삭제delete 제4항에 있어서,
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하는 반도체 저장 장치.
5. The method of claim 4,
The non-volatile memory device stores a performance adjustment program code,
And the controller executes the performance adjustment program code to calculate the new performance level.
삭제delete 제4항 또는 제6항에 있어서, 상기 제1 기준차는
상기 제1 성능 레벨 대비 비율, 또는 최고 성능 레벨 대비 비율인 것을 특징으로 하는 반도체 저장 장치.
The method of claim 4 or 6, wherein the first reference difference
A ratio with respect to the first performance level, or a ratio with respect to the highest performance level.
제4항 또는 제6항에 있어서, 상기 제1 기준차는
호스트로부터의 명령 또는 복수 회 이상의 성능 조절 결과에 따라 변경되는 반도체 저장 장치.
The method of claim 4 or 6, wherein the first reference difference
And changes depending on a command from the host or a plurality of performance adjustment results.
데이터를 비휘발적으로 저장하기 위한 비휘발성 메모리 장치; 및
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는,
새로운 성능 레벨을 산출하고 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하고,
상기 산출된 성능 레벨과 제1 성능 레벨 간의 차이를 미리 정해진 기준 갭과 비교하고,
상기 비교 결과, 상기 산출된 레벨 갭이 상기 기준 갭보다 낮거나 같으면, 상기 선택된 디스크리트 레벨을 제2 성능 레벨로 결정하고,
상기 비교 결과, 상기 산출된 레벨 갭이 상기 기준 갭보다 높으면, 상기 산출된 레벨 갭이 상기 기준 갭이 되도록 상기 산출된 레벨 갭을 조절하고, 상기 조절된 레벨 갭에 해당하는 디스크리트 레벨을 제2 성능 레벨로 결정하는 성능 조절 모듈을 구비하는 반도체 저장 장치.
A nonvolatile memory device for nonvolatilely storing data; And
And a controller for controlling the nonvolatile memory device,
The controller comprising:
Calculating a new performance level, selecting a discrete level closest to the calculated performance level among a plurality of predetermined discrete levels,
Comparing the difference between the calculated performance level and the first performance level with a predetermined reference gap,
Determining the selected discrete level as a second performance level if the calculated level gap is lower than or equal to the reference gap,
If the calculated level gap is higher than the reference gap as a result of the comparison, the calculated level gap is adjusted so that the calculated level gap becomes the reference gap, and the discrete level corresponding to the adjusted level gap is referred to as a second performance Level of the performance adjustment module.
제10항에 있어서,
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는, 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하는 반도체 저장 장치.
11. The method of claim 10,
The non-volatile memory device stores a performance adjustment program code,
Wherein the controller executes the performance adjustment program code to calculate the new performance level and to select a discrete level closest to the calculated performance level among a plurality of predetermined discrete levels.
삭제delete 데이터를 비휘발적으로 저장하기 위한 비휘발성 메모리 장치; 및
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는,
새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 이용하여 제2 성능 레벨로 결정하며, 제1 성능 레벨에 따라 동작하다가, 상기 제2 성능 레벨이 결정되면 상기 제2 성능 레벨에 따라 적어도 성능 조절 주기 동안 동작하고, 상기 성능 조절 주기가 끝나면 다시 새로운 성능 레벨을 산출하고,
상기 성능 조절 주기는 호스트로부터 수신한 주기 설정 명령에 응답하여 설정되는 반도체 저장 장치.
A nonvolatile memory device for nonvolatilely storing data; And
And a controller for controlling the nonvolatile memory device,
The controller comprising:
Determining a second performance level using the calculated performance level and operating according to a first performance level, and if the second performance level is determined, Period, and when the performance adjustment period ends, a new performance level is calculated again,
Wherein the performance adjustment period is set in response to a period setting command received from a host.
제13항에 있어서,
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는, 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 이용하여 상기 제2 성능 레벨로 결정하는 반도체 저장 장치.
14. The method of claim 13,
The non-volatile memory device stores a performance adjustment program code,
Wherein the controller executes the performance adjustment program code to calculate the new performance level and to determine the second performance level using the calculated performance level.
제13항에 있어서, 상기 반도체 저장 장치는
SSD 또는 SD 카드인 것을 특징으로 하는 반도체 저장 장치.
The semiconductor storage device according to claim 13, wherein the semiconductor storage device
SSD or SD card.
비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하는 반도체 저장 장치의 성능 조절 방법에 있어서,
(a) 상기 반도체 저장 장치를 제1 성능 레벨에 따라 동작시키는 단계;
(b) 새로운 성능 레벨을 산출하는 단계;
(c) 상기 산출된 성능 레벨을 미리 정해진 기준과 비교하는 단계;
(d) 상기 비교 결과에 따라, 상기 산출된 성능 레벨을 제2 성능 레벨로 결정하는 단계; 및
(e) 상기 반도체 저장 장치를 상기 제2 성능 레벨에 따라 동작시키는 단계를 구비하고,
상기 컨트롤러는 상기 제2 성능 레벨에 따라 적어도 성능 조절 주기 동안 동작하고, 상기 성능 조절 주기가 끝나면 다시 새로운 성능 레벨을 산출하고,
상기 성능 조절 주기는 호스트로부터 수신한 주기 설정 명령에 응답하여 설정되는 반도체 저장 장치의 성능 조절 방법.
1. A method for adjusting the performance of a semiconductor storage device including a nonvolatile memory device and a controller for controlling the nonvolatile memory device,
(a) operating the semiconductor storage device according to a first performance level;
(b) calculating a new performance level;
(c) comparing the calculated performance level with a predetermined criterion;
(d) determining the calculated performance level as a second performance level according to the comparison result; And
(e) operating the semiconductor storage device according to the second performance level,
Wherein the controller is operative for at least a performance adjustment period in accordance with the second performance level, and further calculates a new performance level at the end of the performance adjustment period,
Wherein the performance adjustment period is set in response to a period setup command received from a host.
제16항에 있어서,
상기 미리 정해진 기준은 최소 레벨이고,
상기 (d) 단계는
상기 비교 결과, 상기 산출된 성능 레벨이 상기 최소 레벨보다 낮으면 상기 최소 레벨을 상기 제2 성능 레벨로 결정하는 단계; 및
상기 비교 결과, 상기 산출된 성능 레벨이 상기 최소 레벨보다 높거나 같으면 상기 산출된 성능 레벨을 상기 제2 성능 레벨로 결정하는 단계를 포함하는 반도체 저장 장치의 성능 조절 방법.
17. The method of claim 16,
The predetermined criterion is a minimum level,
The step (d)
Determining the minimum level as the second performance level if the calculated performance level is lower than the minimum level as a result of the comparison; And
And determining the calculated performance level as the second performance level if the calculated performance level is higher than or equal to the minimum level as a result of the comparison.
제17항에 있어서,
상기 미리 정해진 기준은 최대 레벨이고,
상기 (d) 단계는
상기 비교 결과, 상기 산출된 성능 레벨이 상기 최대 레벨보다 높으면 상기 최대 레벨을 상기 제2 성능 레벨로 결정하는 단계; 및
상기 비교 결과, 상기 산출된 성능 레벨이 상기 최대 레벨보다 낮거나 같으면 상기 산출된 성능 레벨을 상기 제2 성능 레벨로 결정하는 단계를 포함하는 반도체 저장 장치의 성능 조절 방법.
18. The method of claim 17,
The predetermined criterion is a maximum level,
The step (d)
Determining the maximum level as the second performance level if the calculated performance level is higher than the maximum level as a result of the comparison; And
And determining the calculated performance level as the second performance level if the calculated performance level is lower than or equal to the maximum level as a result of the comparison.
제16항에 있어서, 상기 성능 레벨은
상기 반도체 저장 장치의 쓰기 성능 레벨로서, 단위시간당 처리되는 쓰기 명령의 수, 단위 시간당 기록되는 데이터 량, 또는 복수의 레벨값 중 어느 하나로 표시되는 반도체 저장 장치의 성능 조절 방법.
17. The method of claim 16,
Wherein the write performance level of the semiconductor storage device is expressed by any one of a number of write commands processed per unit time, a data amount recorded per unit time, or a plurality of level values.
제16항에 있어서, 상기 성능 레벨은
상기 반도체 저장 장치의 읽기 성능 레벨로서, 단위시간당 처리되는 읽기 명령의 수, 단위 시간당 독출되는 데이터 량, 또는 복수의 레벨값 중 어느 하나로 표시되는 반도체 저장 장치의 성능 조절 방법.
17. The method of claim 16,
Wherein the read performance level of the semiconductor storage device is expressed by any one of a number of read commands processed per unit time, a data amount read per unit time, or a plurality of level values.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020100080699A 2010-08-20 2010-08-20 Semiconductor storage device and method for throttling performance of the semiconductor storage device KR101702393B1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020100080699A KR101702393B1 (en) 2010-08-20 2010-08-20 Semiconductor storage device and method for throttling performance of the semiconductor storage device
US13/166,131 US8862806B2 (en) 2010-08-20 2011-06-22 Semiconductor storage device and method of throttling performance of the same
US13/166,216 US8856424B2 (en) 2010-08-20 2011-06-22 Semiconductor storage device and method of throttling performance of the same
US13/166,257 US8862807B2 (en) 2010-08-20 2011-06-22 Semiconductor storage device and method of throttling performance of the same
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
US14/504,568 US9348521B2 (en) 2010-08-20 2014-10-02 Semiconductor storage device and method of throttling performance of the same
US14/511,271 US9223506B2 (en) 2010-08-20 2014-10-10 Semiconductor storage device and method of throttling performance of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100080699A KR101702393B1 (en) 2010-08-20 2010-08-20 Semiconductor storage device and method for throttling performance of the semiconductor storage device

Publications (2)

Publication Number Publication Date
KR20120017832A KR20120017832A (en) 2012-02-29
KR101702393B1 true KR101702393B1 (en) 2017-02-23

Family

ID=45839674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100080699A KR101702393B1 (en) 2010-08-20 2010-08-20 Semiconductor storage device and method for throttling performance of the semiconductor storage device

Country Status (1)

Country Link
KR (1) KR101702393B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101861184B1 (en) 2011-11-02 2018-05-28 삼성전자주식회사 Method for adjusting storage performance and semiconductor storage device therefore

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212872A1 (en) * 2002-05-08 2003-11-13 Brian Patterson Distributing workload evenly across storage media in a storage array

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212872A1 (en) * 2002-05-08 2003-11-13 Brian Patterson Distributing workload evenly across storage media in a storage array

Also Published As

Publication number Publication date
KR20120017832A (en) 2012-02-29

Similar Documents

Publication Publication Date Title
US9223506B2 (en) Semiconductor storage device and method of throttling performance of the same
KR101702392B1 (en) Semiconductor storage device and method for throttling performance of the semiconductor storage device
US9916087B2 (en) Method and system for throttling bandwidth based on temperature
US10007431B2 (en) Storage devices configured to generate linked lists
US20190179685A1 (en) Solid state memory system with low power error correction mechanism and method of operation thereof
US9037778B2 (en) Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device
CN107179996B (en) Data storage device and method of operating the same
US8151020B2 (en) Storage subsystem with configurable buffer
US20160118132A1 (en) Low Impact Read Disturb Handling
US20100250826A1 (en) Memory systems with a plurality of structures and methods for operating the same
US9639463B1 (en) Heuristic aware garbage collection scheme in storage systems
US10732856B2 (en) Erase health metric to rank memory portions
US8593884B2 (en) Data storage system and a data retention method thereof
WO2016069196A1 (en) Method and system for throttling power consumption
US11609712B2 (en) Write operations to mitigate write disturb
KR101824067B1 (en) Method of interfacing between host and semiconductor storage device for throttling performance of the semiconductor storage device, and apparatus there-of
KR101756130B1 (en) Semiconductor storage device and method for throttling performance of the semiconductor storage device
KR101702393B1 (en) Semiconductor storage device and method for throttling performance of the semiconductor storage device
US20210303172A1 (en) Monitoring flash memory erase progress using erase credits
US11182087B2 (en) Modifying write performance to prolong life of a physical memory device
US11226761B2 (en) Weighted read commands and open block timer for storage devices
KR20230023477A (en) Memory system and operating method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 4