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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
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
본 발명은 데이터 저장장치에 관한 것으로, 특히, 비휘발성 메모리에 데이터를 저장하는 반도체 저장장치 및 그 성능 조절 방법에 관한 것이다.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
호스트(20)는 PCI-E(peripheral component interconnect - express), ATA(Advanced Technology Attachment), SATA(serial ATA), PATA(parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 반도체 저장 장치(10)와 통신할 수 있다. 그러나, 호스트(20)와 반도체 저장 장치(10)간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(multi-media card), ESDI(enhanced small disk interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 인터페이스 프로토콜들 중 하나일 수 있다. The
본 발명의 실시예에 따른 반도체 저장 장치(10)는 솔리드 스테이트 드라이브(Solid State Drive, 이하 'SSD'라 함)일 수 있다. 또한, 비휘발성 메모리 장치(200)는 플래시 메모리 장치일 수 있으나, 이에 한정되지 않는다.The
컨트롤러(100)는 반도체 저장 장치(10)의 동작을 전반적으로 제어하며, 또한 호스트(20)와 비휘발성 메모리 장치(200) 간의 제반 데이터 교환을 제어한다. 예컨대, 컨트롤러(100)는 호스트(20)의 요청에 따라 비휘발성 메모리 장치(200)를 제어하여 데이터를 쓰거나 데이터를 독출한다. 또한, 컨트롤러(100)는 비휘발성 메모리의 특성이나 비휘발성 메모리의 효율적인 관리를 위하여 필요한 일련의 내부 동작(예컨대, 성능 조절, 머지, 웨어 레벨링 등)을 제어한다.The
비휘발성 메모리 장치(200)는 데이터를 비휘발적으로 저장하기 위한 저장 장소로서, 사용자 데이터 및 메타 데이터를 저장한다. 비휘발성 메모리 장치(220)는 OS(Operating System, 이하 'OS'라 함), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. The
도 2는 본 발명의 일 실시예에 따른 컨트롤러(100)의 개략적인 블록도이다. 도 2를 참조하면, 컨트롤러(100)는 호스트 인터페이스(110), DRAM(120), SRAM(130), 비휘발성 메모리 인터페이스(140), CPU(150), 시스템 버스(160), 워크로드 모듈(170), 타이머(180), 성능 조절 모듈(190) 및 클럭 발생기(195)를 포함할 수 있다.2 is a schematic block diagram of a
호스트 인터페이스(110)는 호스트(20)와 통신하기 위한 인터페이스 프로토콜을 구비한다. DRAM(120), 및 SRAM(130)은 각각 데이터 및/또는 프로그램을 휘발적으로 저장한다. 비휘발성 메모리 인터페이스(140)는 비휘발성 메모리 장치(200)와 인터페이싱한다. The
CPU(150)는 비휘발성 메모리 장치(200)로/로부터 데이터 기록/독출을 위한 제반 제어 동작을 수행한다. The
워크로드 모듈(170)은 반도체 저장 장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고, 수집된 워크로드 데이터를 토대로 워크로드를 예측할 수 있다. The
성능 조절 모듈(190)은 워크로드 모듈(170)에서 예측한 워크로드에 따라 타겟 성능 레벨을 결정하고, 결정된 성능 레벨을 적용하여 반도체 저장 장치(10)의 성능을 조절한다. The
타이머(180)는 CPU(150), 워크로드 모듈(170) 및 성능 조절 모듈(190)로 시간 정보를 제공한다. 워크로드 모듈(170) 및 성능 조절 모듈(190)은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. The
워크로드 모듈(170) 및 성능 조절 모듈(190)이 소프트웨어로 구현되는 경우, 해당 프로그램은 비휘발성 메모리 장치(200)에 저장되고, 반도체 저장 장치(10)가 파워-온되면, 비휘발성 메모리 장치(200)로부터 SRAM(130)으로 로드되어 CPU(150)에 의해 실행될 수 있다.When the
타이머(180) 역시 하드웨어 또는 소프트웨어로 구현될 수 있다.The
클럭 발생기(195)는 CPU(150), DRAM(120), 및 비휘발성 메모리 장치(200)의 동작을 위해 필요한 클럭 신호를 생성하여, 해당 구성요소로 제공한다. CPU(150), DRAM(120), 및 비휘발성 메모리 장치(200)에 제공되는 클럭 신호의 속도는 각각 다를 수 있다. 클럭 발생기(195)는 성능 조절 모듈(190)에서 결정된 성능 레벨에 따라, CPU(150), DRAM(120), 및 비휘발성 메모리 장치(200)로 각각 인가되는 클럭 신호의 속도를 조절함으로써, 반도체 저장 장치(10)의 성능이 조절되도록 할 수 있다.The
비록 도면에는 도시되지 않았지만, 반도체 저장 장치(10)는 반도체 저장 장치(10)의 파워-온(power-on)시 실행되는 코드 데이터를 저장하는 ROM(미도시), 비휘발성 메모리 장치(200)에 저장될 데이터를 인코딩하고 비휘발성 메모리 장치(200)로부터 독출된 데이터를 디코딩하기 위한 ECC 엔진(미도시) 등의 구성요소를 더 구비할 수 있다.Although not shown in the figure, the
도 3은 도 2에 도시된 비휘발성 메모리 장치(200)의 구조를 개략적으로 나타내는 도면이다. 이를 참조하면, 비휘발성 메모리 장치(200)는 다수의 메모리 칩들을 포함할 수 있다. 도 3에는 4-채널(4-channel)/ 3-뱅크(3-bank) 방식의 하드웨어 구조를 갖는 비휘발성 메모리 장치(200)가 예시적으로 도시되나, 본 발명이 이에 한정되는 것은 아니다. FIG. 3 schematically shows the structure of the
도 3에 도시된 반도체 저장 장치(10)에서, 컨트롤러(100)와 비휘발성 메모리 장치(200)는 4개의 채널(Channel A, B, C, D)로 연결되며, 각 채널에는 3개의 플래시 메모리 칩(CA0~CA2, CB0~CB2, CC0~CC2, CD0~CD2)이 연결되는 구조이다. 그러나, 채널의 수 및 뱅크의 수는 이에 한정되지 않고 변경될 수 있음은 당연하다.In the
이러한 구조를 가지는 반도체 저장 장치(10)에서 반도체 저장 장치(10)의 성능 조절 단위는, 비휘발성 메모리 장치(200) 전체, 비휘발성 메모리 장치(200)의 개별적인 메모리 소자(메모리 칩)가 공유하는 버스(채널) 단위, 뱅크 단위, 혹은 개별적인 소자 단위일 수 있다. 여기서, 뱅크는 다른 채널상에서 같은 오프셋(offset)에 위치하는 메모리 소자(device)들의 그룹이다. In the
도 4는 본 발명의 일 실시예에 따른 호스트(20)의 개략적인 블록도이다. 도 4를 참조하면, 호스트(20)는 CPU(210), 메모리(220), 버스(230), SSD 인터페이스(240), 워크로드 모듈(250), 타이머(260), 및 성능 조절 모듈(270)를 포함할 수 있다.4 is a schematic block diagram of a
SSD 인터페이스(240)는 반도체 저장 장치(10)와 통신하기 위한 인터페이스 프로토콜을 구비한다. The
CPU(210)는 반도체 저장 장치(10)로/로부터 데이터 기록/독출을 위한 제반 제어 동작을 수행한다. The
워크로드 모듈(250)은 반도체 저장 장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고, 수집된 워크로드 데이터를 토대로 워크로드를 예측할 수 있다. The
성능 조절 모듈(270)은 워크로드 모듈(250)에서 예측한 워크로드에 따라 타겟 성능 레벨을 결정하고, 결정된 성능 레벨을 적용하여 반도체 저장 장치(10)의 성능을 조절한다. The
타이머(260)는 CPU(210), 워크로드 모듈(250) 및 성능 조절 모듈(270)로 시간 정보를 제공한다. 워크로드 모듈(250), 타이머(260) 및 성능 조절 모듈(270)은 각각 소프트웨어, 하드웨어 또는 소프트웨어 및 하드웨어의 결합으로 구현될 수 있다. The
도 5a는 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법은 도 2에 도시된 반도체 저장 장치(10), 호스트(20) 또는 반도체 저장 장치(10)와 호스트(20) 양자에 분산되어 구현될 수 있다. FIG. 5A is a flowchart illustrating a method of adjusting the performance of the
본 발명의 일 실시예에 따른 성능 조절 방법이 반도체 저장 장치(10)에 구현되는 예를 중심으로 기술하나, 상술한 바와 같이, 본 발명이 이에 한정되는 것은 아니다.The performance control method according to an embodiment of the present invention is described with reference to an example implemented in the
도 5a를 참조하면, 컨트롤러(100)는 반도체 저장 장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고(S100), 수집된 워크로드 데이터를 토대로 워크로드를 예측할 수 있다(S110). 컨트롤러(100)는 예측된 워크로드에 따라 성능 레벨을 산출하고, 성능 조절 정책에 따라 성능 레벨을 결정할 수 있다(S120). 다음으로 결정된 성능 레벨을 반도체 저장 장치(10)의 동작에 적용할 수 있다(S130).5A, the
본 발명의 실시예들은 도 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
컨트롤러(100)는 새로운 성능 레벨을 산출한다(S121). 새로운 성능 레벨은 워크로드 예측치를 이용하여 산출될 수 있으나, 이에 한정되는 것은 아니다(S121). 다음으로, 새로운 성능 레벨, 즉 산출된 성능 레벨을 미리 정해진 기준과 비교한다(S122). 본 실시예에서, 미리 정해진 기준은 최소 성능 레벨이다. 따라서, 산출된 새로운 성능 레벨이 최소 성능 레벨 보다 낮은지 확인하기 위하여, 새로운 성능 레벨을 미리 정해진 최소 레벨과 비교한다(S122). 상기 비교 결과, 새로운 성능 레벨이 최소 성능 레벨보다 낮으면 최소 성능 레벨을 선택하고, 선택된 최소 성능 레벨을 적용한다(S123). The
상기 비교 결과, 새로운 성능 레벨이 최소 레벨보다 높거나 같으면 새로운 성능 레벨을 그대로 선택하고, 선택된 새로운 성능 레벨을 적용한다(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
상술한 바와 같이, 본 발명의 실시예에 따르면, 새롭게 산출된 성능 레벨이 최소 성능 레벨보다 높거나 같으면 산출된 성능 레벨이 그대로 새로운 성능 레벨로 결정되어 적용되지만, 새롭게 산출된 성능 레벨이 최소 성능 레벨보다 낮으면 최소 성능 레벨을 선택함으로써, 성능 레벨이 최소 성능 레벨보다 낮아지지 않도록 한다. 이에 따라, 워크로드가 최대인 악조건에서도 반도체 저장장치(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
도 5c는 본 발명의 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. FIG. 5C is a flowchart illustrating a method of adjusting the performance of the
도 5c를 참조하면, 컨트롤러(100)는 새로운 성능 레벨을 산출한다(S121). 새로운 성능 레벨은 워크로드 예측치를 이용하여 산출될 수 있으나, 이에 한정되는 것은 아니다(S131). 다음으로, 새로운 성능 레벨, 즉 산출된 성능 레벨을 미리 정해진 기준과 비교한다(S132). 본 실시예에서, 미리 정해진 기준은 최대 성능 레벨이다. 따라서, 산출된 새로운 성능 레벨이 최대 성능 레벨 보다 높은지 확인하기 위하여, 새로운 성능 레벨을 미리 정해진 최대 레벨과 비교한다(S132). 상기 비교 결과, 새로운 성능 레벨이 최대 성능 레벨보다 높으면 최대 성능 레벨을 선택하고, 선택된 최대 성능 레벨을 적용한다 (S133). Referring to FIG. 5C, the
상기 비교 결과, 새로운 성능 레벨이 최대 성능 레벨보다 낮거나 같으면 산출된 성능 레벨을 그대로 선택하고, 선택된 성능 레벨을 적용한다(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
이를 위하여, 새로운 성능 레벨이 적용된 시점으로부터 미리 정해진 기간이 경과하였는지 체크하여(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
상기 미리 정해진 기간 또는 성능 조절 주기는 호스트로부터 수신된 주기 설정 명령에 응답하여 설정될 수 있다. 주기 설정 명령은 도 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
저장장치의 성능을 정해진 주기(예를 들어, 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
도 9는 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 9를 참조하면, 새로운 성능 레벨을 산출한다(S310). 산출된 성능 레벨과 현 성능 레벨(이하, 제1 성능 레벨이라 함) 간의 차이를 미리 정해진 기준 차이(x%)과 비교하고(S320), 상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 기준 차이보다 낮으면 상기 산출된 성능 레벨을 새로운 성능 레벨(이하, 제2 성능 레벨이라 함)로 결정하여 적용한다(S350). FIG. 9 is a flowchart showing a method of adjusting the performance of the
상기 비교 결과(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
본 발명의 실시예에서, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최고 성능) 대비 +/- 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
도 11은 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 12a는 도 11에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다. 도 12b는 산출된 성능 레벨에 따라 디스크리트 레벨을 선택하는 방법을 설명하기 위한 그래프리이다.11 is a flowchart showing a method of adjusting the performance of the
도 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
상술한 바와 같이, 기준 갭이 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
상술한 주기 설정 명령 역시 도 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
이 경우, 컨트롤러는 비휘발성 메모리에 저장된 성능 조절 프로그램 코드를 실행함으로써, 본 발명의 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 실행할 수 있다.In this case, the controller can execute the performance adjustment method of the
도 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
CPU(920)는 시스템(900)의 전체적인 동작을 제어하고, RAM(930)은 시스템(900)의 동작을 위해 필요한 정보들을 저장하고, User Interface(940)는 시스템(900)과 사용자와의 인터페이스를 제공한다. 전원부(910)는 내부의 구성 요소들(즉, CPU(920), 램(RAM)(930), 유저 인터페이스(940), 메모리 시스템(500) 등)으로 전원을 공급한다.The
CPU(920)가 상술한 호스트(20)에 해당할 수 있으며, 반도체 저장장치(10)는 호스트(20)의 명령에 응답하여 데이터를 저장하거나 독출할 수 있다.The
도 15a 및 도 15b는 각각 본 발명의 다른 실시예에 따른 전자 시스템의 블록도이다. 15A and 15B are block diagrams of an electronic system according to another embodiment of the present invention, respectively.
도 15a에 도시된 전자 시스템(900')은 도 14에 도시된 전자 시스템(900)과 유사한 구성을 가지므로, 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.The electronic system 900 'shown in FIG. 15A has a configuration similar to that of the
도 15a에 도시된 전자 시스템(900')은 도 14에 도시된 전자 시스템(900)에 비하여, RAID 컨트롤러 카드(960)를 더 구비한다. 반도체 저장 장치(10)는 호스트와 직접 인터페이스하는 것이 아니라, RAID 컨트롤러 카드(960)에 장착되어, RAID 컨트롤러 카드(960)를 통하여 호스트와 인터페이스할 수 있다. 이 때, RAID 컨트롤러 카드(960)에는 복수(2이상)의 반도체 저장 장치들(10-1~10-k, k는 2이상의 정수)이 장착될 수 있다. 도 15a에 도시된 전자 시스템(900')의 RAID 컨트롤러 카드(960)는 반도체 저장 장치들(10-1~10-k)의 외부에 별도의 제품으로 구현된다.The electronic system 900 'shown in FIG. 15A further includes a
도 15b에 도시된 전자 시스템(900")은 도 15a에 도시된 전자 시스템(900')과 유사한 구성을 가지므로, 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.The
도 15b에 도시된 전자 시스템(900")의 RAID 컨트롤러 카드(960)는 반도체 저장 장치들(10-1~10-k)과 함께 하나의 제품으로 구현된다는 점에서, 도 15a에 도시된 전자 시스템(900')과 차이가 있다.The
이와 같이 RAID 컨트롤러 카드(960)가 구비되는 경우, 상술한 본 발명의 실시예에 따른 성능 조절 방법이 RAID 컨트롤러 카드(960)에 의해 구현될 수 있다. 이를 위해, 상술한 타이머, 및 성능 조절 모듈 등이 RAID 컨트롤러 카드(960) 내에 구비될 수 있다.In the case where the
도 16은 본 발명의 실시예에 따른 반도체 저장 장치(10)를 구비하는 컴퓨팅 시스템(1000, PC)의 블록도이다. 이를 참조하면, 컴퓨팅 시스템(1000)은 중앙 처리 장치(Central Processing Unit, 1110), AGP 장치(Accelerated Graphics Port, 1120), 메인 메모리(1130), 노스 브리지(north bridge, 1140), 반도체 저장 장치(예컨대, SSD, 10), 키보드 컨트롤러(1160), 프린터 컨트롤러(1170), 및 사우스 브리지(1180) 등을 포함한다. 16 is a block diagram of a computing system 1000 (PC) having a
컴퓨팅 시스템(1100)은 SSD(10)가 하드디스크 드라이브를 대신하여 주 저장 장치로 이용하는 개인용 컴퓨터 또는 노트북 컴퓨터의 블락도일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다. The computing system 1100 may also be a block of a personal computer or notebook computer that the
컴퓨팅 시스템(1000)에서 중앙 처리 장치(1110), AGP 장치(1120), 및 메인 메모리(1130) 등은 노스 브리지(1140)에 접속되며, SSD(10), 키보드 컨트롤러(1160), 프린터 컨트롤러(1170), 및 각종 주변 장치들(미도시) 등은 사우스 브리지(180)에 연결된다. In the
노스 브리지(1140)는 메인보드 가운데를 기준으로 중앙 처리 장치(1110) 소켓 쪽에 있는 집적회로로서, 일반적으로는 중앙 처리 장치(1110)와 연결하는 호스트 인터페이스(host interface)를 포함하는 시스템 컨트롤러를 의미한다. 사우스 브리지(1180)는 메인보드 가운데를 기준으로 PCI(peripheral component interconnect) 슬롯 쪽에 있는 집적회로로서, 일반적으로는 호스트 버스에서 PCI 버스를 경유하여 접속되는 버스(bus)로 가는 브리지를 의미한다. The
AGP는 3차원 그래픽 표현을 빠르게 구현할 수 있게 해주는 버스 규격이다. AGP 장치(1120)에는 모니터 이미지를 재생하는 비디오 카드 등이 포함될 수 있다. 메인 메모리(1130)는 일반적으로 휘발성 메모리 소자인 RAM(Random Access Memory)으로 구현될 수 있으나 본 발명의 범위가 이에 한정되는 것은 아니다. AGP is a bus specification that enables rapid realization of 3D graphical representations. The
또한, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1100)에서는 SSD(10)가 사우스 브리지(180)에 연결되는 구조이나, 이에 한정되는 것은 아니며, SSD(10)가 노스 브리지(1140)에 연결되거나, CPU(1110)에 직접 연결되는 구조일 수도 있다.In the computing system 1100 according to an embodiment of the present invention, the
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
반도체 저장 장치 : 10
호스트 : 20
컨트롤러: 100
비휘발성 메모리 장치 : 200
CPU : 150, 210
호스트 인터페이스 : 110
DRAM : 120
SRAM : 130
메모리 인터페이스: 140
타이머 : 150, 260
버스 : 160, 230
워크로드 모듈: 170, 250
성능 조절 모듈 : 190, 270
클럭 발생기 : 195
저장장치 인터페이스 : 240Semiconductor storage: 10
Host: 20
Controller: 100
Nonvolatile memory device: 200
CPU: 150, 210
Host interface: 110
DRAM: 120
SRAM: 130
Memory interface: 140
Timers: 150, 260
Buses: 160, 230
Workload modules: 170, 250
Performance Control Modules: 190, 270
Clock Generator: 195
Storage interface: 240
Claims (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.
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하는 반도체 저장 장치.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.
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하는 반도체 저장 장치. 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.
상기 제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.
호스트로부터의 명령 또는 복수 회 이상의 성능 조절 결과에 따라 변경되는 반도체 저장 장치.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.
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는, 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하는 반도체 저장 장치.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.
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는,
새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 이용하여 제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.
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는, 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 이용하여 상기 제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.
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.
상기 미리 정해진 기준은 최소 레벨이고,
상기 (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.
상기 미리 정해진 기준은 최대 레벨이고,
상기 (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.
상기 반도체 저장 장치의 쓰기 성능 레벨로서, 단위시간당 처리되는 쓰기 명령의 수, 단위 시간당 기록되는 데이터 량, 또는 복수의 레벨값 중 어느 하나로 표시되는 반도체 저장 장치의 성능 조절 방법.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.
상기 반도체 저장 장치의 읽기 성능 레벨로서, 단위시간당 처리되는 읽기 명령의 수, 단위 시간당 독출되는 데이터 량, 또는 복수의 레벨값 중 어느 하나로 표시되는 반도체 저장 장치의 성능 조절 방법.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.
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)
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)
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 |
-
2010
- 2010-08-20 KR KR1020100080699A patent/KR101702393B1/en active IP Right Grant
Patent Citations (1)
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 | |
CN107179996B (en) | Data storage device and method of operating the same | |
CN111445942B (en) | Nonvolatile memory read threshold optimization based on retention drift history | |
US9037778B2 (en) | Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device | |
US8151020B2 (en) | Storage subsystem with configurable buffer | |
US8930645B2 (en) | Method and apparatus using linked lists for streaming of data for soild-state bulk storage device | |
US20160118132A1 (en) | Low Impact Read Disturb Handling | |
US20130138870A1 (en) | Memory system, data storage device, memory card, and ssd including wear level control logic | |
US9639463B1 (en) | Heuristic aware garbage collection scheme in storage systems | |
US20100250826A1 (en) | Memory systems with a plurality of structures and methods for operating the same | |
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 | |
US20210303172A1 (en) | Monitoring flash memory erase progress using erase credits | |
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 | |
US12008249B2 (en) | Memory system and method of performing background operation | |
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 |
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 |