KR20120017832A - Semiconductor storage device and method of controlling performance of semiconductor storage device - Google Patents
Semiconductor storage device and method of controlling performance of semiconductor storage device Download PDFInfo
- Publication number
- KR20120017832A KR20120017832A KR1020100080699A KR20100080699A KR20120017832A KR 20120017832 A KR20120017832 A KR 20120017832A KR 1020100080699 A KR1020100080699 A KR 1020100080699A KR 20100080699 A KR20100080699 A KR 20100080699A KR 20120017832 A KR20120017832 A KR 20120017832A
- Authority
- KR
- South Korea
- Prior art keywords
- performance level
- level
- performance
- calculated
- storage device
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 성능 레벨에 따라 동작시키는 단계를 구비한다.Disclosed are a semiconductor storage device and a method of controlling performance of the semiconductor storage device. A performance control method of a semiconductor storage device including a nonvolatile memory device and a controller for controlling the nonvolatile memory device, the method comprising: 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; 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 method of adjusting the performance thereof.
반도체 저장 장치는 반도체(특히, 비휘발성 메모리)를 이용하여 데이터를 저장하는 장치로서, 지금까지 대용량 저장장치로 널리 사용되던 디스크 저장매체(즉, 하드디스크드라이브)에 비하여 속도가 빠르고 물리적 충격에 강하고 발열이나 소음도 적으며, 소형화할 수 있는 장점이 있다. 반도체 저장 장치의 일 예로는, 솔리드 스테이트 드라이브(SSD: solid state drive)가 있다.A semiconductor storage device is a device that stores data using a semiconductor (particularly, a nonvolatile memory). The semiconductor storage device is faster than a disk storage medium (ie, a hard disk drive), which has been widely used as a mass storage device, and is resistant to physical shocks. Less heat and noise, there is an advantage that can be miniaturized. One example of a semiconductor storage device is a solid state drive (SSD).
한편, 반도체 저장 장치는 사용 수명에 제한이 있을 수 있다. 예를 들면 NAND 플래시 메모리가 대표적이다. NAND 플래시 메모리는 메모리 소자가 블록(block) 단위로 나누어져 있으며, 한 개의 블록 내에는 다수의 페이지가 존재한다. 사용자는 먼저 블록을 소거하고 그 블록내의 페이지들을 순차적으로 특정 데이터로 프로그램함으로써 NAND 플래시 메모리를 이용한다. 모든 페이지가 프로그램된 블록을 새로운 데이터로 프로그램하기 위해서는 해당 블록을 다시 소거해야 한다. 이 일련의 과정을 프로그램-소거 사이클 (PE-cycle)이라고 부르며, NAND 플래시 메모리의 경우 한 블록이 견딜 수 있는 PE-사이클 횟수가 제한되어 있다. 이를 NAND 플래시 메모리의 인듀어런스(endurance)라고 부른다. Meanwhile, the semiconductor storage device may have a limited service life. For example, NAND flash memory is typical. In NAND flash memory, memory devices are divided into blocks, and a plurality of pages exist in one block. The user utilizes NAND flash memory by first erasing the block and then sequentially programming the pages within the block with specific data. In order to program a block with all pages programmed with new data, the block must be erased again. This series of processes is called a program-erase cycle (PE-cycle), and in NAND flash memory, there is a limit to the number of PE-cycles a block can withstand. This is called the endurance of NAND flash memory.
한 블록이 경험한 PE-사이클의 횟수가 인듀어런스 한계(endurance limit)를 초과할 경우 그 블록은 추후 오동작할 확률이 높아진다. 메모리의 오동작 원인으로는 상술한 프로그램, 소거 동작 외에도 독출(Read) 동작, 자연적인 전하 누설(charge loss) 등이 있다. 오동작 확률이 높아지면 반도체 저장장치의 데이터 무결성(integrity)를 위해서 더 이상 쓰이면 안 된다. 이 때문에 NAND 플래시 메모리를 응용하는 반도체 저장장치는 그 수명에 있어서 제한을 갖는 것이다. If the number of PE-cycles experienced by a block exceeds the endurance limit, the block is more likely to malfunction later. In addition to the above-described program and erase operations, a memory malfunction may include a read operation and a natural charge loss. When the probability of malfunction increases, it should not be used anymore for the data integrity of the semiconductor storage device. For this reason, semiconductor storage devices employing NAND flash memories have a limited lifetime.
상기 예에서 보면, 반도체 저장장치에 과도한 워크로드(workload)-예를 들어, 쓰기 동작, 소거 동작, 독출 동작 등-을 가하면 반도체 저장장치의 수명이 짧아지거나 혹은 예상 수명이 보장되지 못할 수가 있다. 따라서, 반도체 저장 장치의 예상 수명을 보장하기 위해서는 반도체 저장장치에 인가되는 워크로드의 강도나 양에 따라 반도체 저장장치의 처리 능력이 조절될 필요가 있다.In the above example, when an excessive workload (eg, a write operation, an erase operation, a read operation, etc.) is applied to the semiconductor storage device, 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 life of the semiconductor storage device, the processing capacity of the semiconductor storage device needs to be adjusted according to the intensity 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 can be found in solid state drives (SSDs) consisting of multi-level cell (MLC) NAND flash memory targeted at recent server applications. Server-side storage not only requires high performance, ie high I / O per second, but also varies greatly in the amount of workload applied to the storage. The application of MLC NAND flash memory with limited endurance limitations in these applications makes it difficult to guarantee the lifetime of SSDs.
그러나, 수명을 보장하여야 하는 저장장치가 상술한 서버향 저장 장치에 한정되는 것은 아니며, PC(personal computer), 노트북, 모바일 기기 등에 적용될 저장장치의 수명 역시 보장될 필요가 있다.However, the storage device for guaranteeing the lifespan is not limited to the server-side storage device described above, and the lifespan of the storage device to be applied to a personal computer (PC), a notebook computer, a mobile device, and the like also needs to be guaranteed.
인듀어런스 한계를 지닌 메모리의 예로는 상술한 NAND 플래시 메모리 외에도 PRAM(상변화 메모리, Phase-change Memory), MRAM(Magnetic Random Access Memory), ReRAM(저항성 메모리, Resistive RAM), FeRAM(강유전체 램, Ferroelectric RAM) 등이 있을 수 있다. 또한, 인듀어런스 한계를 지닌 NAND 플래시 메모리에는 플로팅 게이트를 사용하는 NAND 플래시 메모리와 CTF(Charge Trap Flash) 방식의 NAND 플래시 메모리도 포함된다. Examples of memory with an endurance limit include, in addition to the above-described NAND flash memory, PRAM (Phase-change Memory), MRAM (Magnetic Random Access Memory), ReRAM (Resistive RAM), and FeRAM (Ferroelectric RAM). ) And the like. In addition, NAND flash memory with an endurance limit includes NAND flash memory using a floating gate and NAND flash memory of a charge trapping flash (CTF) method.
이와 같이 인듀어런스 한계를 지닌 비휘발성 메모리를 사용하는 반도체 저장장치의 수명을 연장하기 위한, 혹은 예상 수명을 보장하기 위한 방안이 요구된다.As such, 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 ensuring an expected life.
따라서 본 발명이 이루고자 하는 기술적인 과제는 요구되는 수명을 보장하기 위하여 워크로드에 따라 적응적으로 성능을 조절할 수 있는 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법을 제공하는 것이다.Accordingly, the technical problem to be achieved by the present invention is to provide a semiconductor storage device and a method of adjusting the performance of the semiconductor storage device that can adaptively adjust the performance according to the workload to ensure the required life.
상기 기술적 과제를 해결하기 위한 본 발명의 제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 controlling the nonvolatile memory device. Operating according to the 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; Operating the semiconductor storage device according to the second performance level.
상술한 바와 같이 본 발명에 의하면, 반도체 저장 장치의 워크로드에 따라 적응적으로 성능을 조절할 수 있다. 이에 따라, 반도체 저장 장치의 수명을 연장하거나 혹은 요구되는 수명을 보장할 수 있는 효과가 있다.As described above, according to the present invention, the performance may be adaptively adjusted according to the workload of the semiconductor storage device. Accordingly, there is an effect of extending the life of the semiconductor storage device or ensuring the required life.
도 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 according to 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 diagram schematically illustrating a structure of the nonvolatile memory device shown in FIG. 2.
4 is a schematic block diagram of a host according to an embodiment of the present invention.
5A is a flowchart illustrating a method of controlling performance of a semiconductor storage device according to an embodiment of the present invention.
5B is a flowchart illustrating a method of controlling performance of a semiconductor storage device according to an embodiment of the present invention.
5C is a flowchart illustrating a performance adjusting method of a semiconductor storage device according to another exemplary embodiment of the present invention.
FIG. 6 is a graph illustrating a change in performance level according to the method for adjusting performance of the semiconductor storage device illustrated in FIG. 5B.
7 is a flowchart illustrating a performance adjusting method of a semiconductor storage device according to another exemplary embodiment of the present invention.
FIG. 8 is a graph illustrating a change in performance level according to the performance adjusting method of the semiconductor storage device illustrated in FIG. 7.
9 is a flowchart illustrating a method of controlling performance of a semiconductor storage device according to another exemplary embodiment of the present invention.
FIG. 10 is a graph illustrating a change in performance level according to the method for adjusting performance of the semiconductor storage device illustrated in FIG. 9.
11 is a flowchart illustrating a method of controlling performance of a semiconductor storage device according to still another embodiment of the present invention.
FIG. 12A is a graph illustrating a change in performance level according to the performance adjusting method of the semiconductor storage device illustrated in FIG. 11.
12B is a graph for explaining a method of selecting a discrete level according to the calculated performance level.
13 is a table illustrating 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 each a block diagram of an electronic system according to another embodiment of the present invention.
16 is a block diagram of a computing system including a semiconductor storage device according to an embodiment of the present invention.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.Specific structural to functional descriptions of embodiments according to the inventive concept disclosed in the specification or the application are only illustrated for the purpose of describing embodiments according to the inventive concept, and according to the inventive concept. 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.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is said to be "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that another component may exist in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.
예컨대, 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송 또는 출력'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터 또는 신호를 '전송 또는 출력'할 수 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터 또는 신호를 상기 다른 구성요소로 '전송 또는 출력'할 수 있음을 의미한다.For example, when one component 'transmits or outputs' data or a signal to another component, the component may 'transmit or output' the data or signal directly to the other component, and at least one This means that the data or signal may be transmitted or output to the other component through another component of.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals 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 drawings, the
도 3은 도 2에 도시된 비휘발성 메모리 장치(200)의 구조를 개략적으로 나타내는 도면이다. 이를 참조하면, 비휘발성 메모리 장치(200)는 다수의 메모리 칩들을 포함할 수 있다. 도 3에는 4-채널(4-channel)/ 3-뱅크(3-bank) 방식의 하드웨어 구조를 갖는 비휘발성 메모리 장치(200)가 예시적으로 도시되나, 본 발명이 이에 한정되는 것은 아니다. 3 is a diagram schematically illustrating a 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) 양자에 분산되어 구현될 수 있다. 5A is a flowchart illustrating a performance adjusting method of the
본 발명의 일 실시예에 따른 성능 조절 방법이 반도체 저장 장치(10)에 구현되는 예를 중심으로 기술하나, 상술한 바와 같이, 본 발명이 이에 한정되는 것은 아니다.A method of adjusting performance according to an embodiment of the present invention will be described based on an example implemented in the
도 5a를 참조하면, 컨트롤러(100)는 반도체 저장 장치(10)에 인가되는 워크로드와 관련된 워크로드 데이터를 수집하고(S100), 수집된 워크로드 데이터를 토대로 워크로드를 예측할 수 있다(S110). 컨트롤러(100)는 예측된 워크로드에 따라 성능 레벨을 산출하고, 성능 조절 정책에 따라 성능 레벨을 결정할 수 있다(S120). 다음으로 결정된 성능 레벨을 반도체 저장 장치(10)의 동작에 적용할 수 있다(S130).Referring to FIG. 5A, the
본 발명의 실시예들은 도 5a에 도시된 단계들 중 성능 조절 정책에 따라 성능 레벨을 결정하는 단계(S120)에 대하여 구체적인 방법을 제시한다.Embodiments of the present invention present a specific method for the step (S120) of determining the performance level according to the performance adjustment policy of the steps shown in FIG.
도 5b는 본 발명의 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 6은 도 5b에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다.5B is a flowchart illustrating a performance adjusting method 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 of FIG. 5A.
도 6은 도 5b에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다. 이를 참조하면, 워크로드의 변화에 따라, 성능 레벨 역시 조절되지만, 최저 성능 레벨 밑으로 내려 가지 않음을 알 수 있다.FIG. 6 is a graph illustrating a change in performance level according to the method for adjusting performance of the
상술한 바와 같이, 본 발명의 실시예에 따르면, 새롭게 산출된 성능 레벨이 최소 성능 레벨보다 높거나 같으면 산출된 성능 레벨이 그대로 새로운 성능 레벨로 결정되어 적용되지만, 새롭게 산출된 성능 레벨이 최소 성능 레벨보다 낮으면 최소 성능 레벨을 선택함으로써, 성능 레벨이 최소 성능 레벨보다 낮아지지 않도록 한다. 이에 따라, 워크로드가 최대인 악조건에서도 반도체 저장장치(10)의 최저 성능 보장된다.As described above, according to the embodiment of the present invention, if the newly calculated performance level is higher than or equal to the minimum performance level, the calculated performance level is determined and applied as it is, but the newly calculated performance level is the minimum performance level. If lower, select the minimum performance level so that the performance level is not lower than the minimum performance level. Accordingly, the lowest performance of the
도 5c는 본 발명의 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 5C is a flowchart illustrating a method of controlling 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 selected as it is 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 determined and applied as it is, but the newly calculated performance level is maximum. If it is higher than the performance level, the maximum performance level is determined as the new performance level so that the performance level is not higher than the maximum performance level.
도 5c에 도시된 단계들은 도 5a의 S120 및 S130 단계에 상응할 수 있다.The steps illustrated in FIG. 5C may correspond to steps S120 and S130 of FIG. 5A.
도 7은 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 7을 참조하면, 새로운 성능 레벨이 산출되어 설정되면(S210 및 S220), 미리 정해진 기간(set period) 동안에는 성능 레벨이 변경되지 않고 유지된다(S230).7 is a flowchart illustrating a performance adjusting method of the
이를 위하여, 새로운 성능 레벨이 적용된 시점으로부터 미리 정해진 기간이 경과하였는지 체크하여(S240), 새로운 성능 레벨이 적용된 시점으로부터 미리 정해진 기간이 경과하면 새로운 성능 레벨을 산출하고(S210), 그렇지 않으면 그 성능 레벨이 계속 유지될 수 있다(S230). To this end, it is checked whether a predetermined period has elapsed from when the new performance level is applied (S240), and when a predetermined period has elapsed from the time when the new performance level is applied, a new performance level is calculated (S210). This may be maintained (S230).
또는 미리 정해진 성능 조절 주기마다 새로운 성능 레벨을 산출하고, 상기 산출된 새로운 성능 레벨을 반도체 저장 장치(10)에 적용할 수 있다. 이 경우, 미리 정해진 성능 조절 주기 동안 적용된 성능 레벨이 유지되며, 성능 조절 주기가 끝나면 다시 새로운 성능 레벨이 산출되어 적용될 수 있다. 여기서, 미리 정해진 기간 또는 성능 조절 주기는 시간(hour), 일(day), 주(week), 월(month) 등의 단위일 수 있으나, 이에 한정되는 것은 아니다. 또한, 성능 조절 주기가 성능 예측 주기가 일치할 수도 있으나, 그렇지 않을 수도 있다. 예컨대, 성능 예측은 시간 단위로 하지만 성능 조절은 일단위로 할 수 있으며, 그 반대일 수도 있다.Alternatively, a new performance level may be calculated for each predetermined performance adjustment cycle, 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 a period setting command received from the host. The period setting command may have a host command format shown in FIG. 13. The format of the period setting command of the host will be described later with reference to FIG. 13.
호스트는 상술한 주기 설정 명령을 이용하여 성능조절 주기의 시점 및 길이를 필요에 따라 설정할 수 있다. 상기 미리 정해진 기간 또는 성능 조절 주기가 호스트로부터의 명령에 의하여 설정될 수도 있지만, 반도체 저장 장치(10)에 미리 설정될 수도 있다.The host may set the time and length of the performance adjustment cycle as needed using the cycle setting command described above. The predetermined period or performance adjustment period may be set by a command from the host, but may be set in advance in the
저장장치의 성능을 정해진 주기(예를 들어, 24시간, 12시간, 6시간)에 한 번씩만 조절하고, 그 한 주기 동안은 저장장치의 성능을 일정하게 유지하는 것은 저장장치의 성능이 너무 자주 변하는 경우에 호스트 관점에서 저장장치의 성능에 대한 예측성이 떨어짐을 예방하기 위함이다. Adjusting storage performance only once every fixed period (e.g. 24 hours, 12 hours, 6 hours), and keeping the storage performance constant during that one cycle is too frequent. This is to prevent the predictability of storage performance from the host's perspective in case of change.
도 8은 도 7에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다. 이를 참조하면, 워크로드의 변화에 따라, 성능 레벨은 성능 조절 주기마다 조절됨을 알 수 있다.FIG. 8 is a graph illustrating a change in performance level according to the method for adjusting performance of the
도 9는 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 9를 참조하면, 새로운 성능 레벨을 산출한다(S310). 산출된 성능 레벨과 현 성능 레벨(이하, 제1 성능 레벨이라 함) 간의 차이를 미리 정해진 기준 차이(x%)과 비교하고(S320), 상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 기준 차이보다 낮으면 상기 산출된 성능 레벨을 새로운 성능 레벨(이하, 제2 성능 레벨이라 함)로 결정하여 적용한다(S350). 9 is a flowchart illustrating a performance adjusting method of the
상기 비교 결과(S320), 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 기준 차이보다 높으면 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 기준 차이(예컨대, x%)가 되도록 상기 산출된 성능 레벨을 조절하고(S330), 상기 조절된 성능 레벨을 상기 제2 성능 레벨로 결정하여 적용한다(S340). As a result of the comparison (S320), when 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 the reference difference (eg, x%). The calculated performance level is adjusted to be performed (S330), and the adjusted performance level is determined and applied as the second performance level (S340).
기준차이는 임의의 값 또는 임의의 비율(예컨대, x%)로 미리 설정될 수 있다. 기준차이가 비율(예컨대, x%)로 설정되는 경우, 그 비율(예컨대, x%)은 직전 성능 대비 비율 또는 최고 성능 대비 비율일 수 있으나, 이에 한정되는 것은 아니다.The reference difference may be preset to any value or to any ratio (eg, x%). When the reference difference is set as a ratio (eg, x%), the ratio (eg, x%) may be a ratio of the previous performance or the ratio of the highest performance, but is not limited thereto.
본 발명의 실시예에 따르면, 반도체 저장장치(10)의 성능조절 시, 조절된 성능을 조절하기 직전의 성능(또는 최고 성능) 대비 기준차이(+/- x%) (x의 값은, 예를 들어 10%, 20%, 5%) 이내로 유지하여 조절한다. 이는 반도체 저장장치(10)의 성능이 갑작스럽게 큰 폭으로 변하는 경우에 호스트 관점에서 반도체 저장장치(10)의 성능에 대한 예측성이 떨어짐을 예방하기 위함이다. According to the exemplary embodiment of the present invention, when the performance of the
본 발명의 실시예에서, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최고 성능) 대비 +/- y% (y의 값은, 예를 들어 3%, 4%, 2%) 이하의 값을 n(2이상의 정수)번 이상 지속적으로 유지할 경우, 기준차이(x)를 상향 조정할 수 있다. 이는 규칙적인 워크로드에 잘 적응한 반도체 저장장치의 성능이 워크로드의 갑작스러운 변화에 효과적으로 반응할 수 있도록 하기 위함이다. In an embodiment of the present invention, the performance adjusted for successive periods is less than or equal to +/− y% (y values, for example, 3%, 4%, 2%) relative to the previous performance (or peak performance). If n is maintained more than n times (integer of 2 or more), the reference difference (x) can be adjusted upward. This is to ensure that the performance of semiconductor storage devices that adapt well to regular workloads can respond effectively to sudden changes in workload.
본 발명의 다른 실시예에서, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최고 성능) 대비 +/- z% (z의 값은 예를 들어 8%, 16%, 4%) 이상의 값을 m(2이상의 정수)번 이상 지속적으로 유지할 경우, 기준차이(x)를 하향 조정할 수 있다. 이는 변덕스러운 워크로드에 반도체 저장장치의 성능을 효과적으로 적응시키기 위함이다.In another embodiment of the present invention, the performance adjusted for successive periods is greater than or equal to +/- (z% (the value of z is 8%, 16%, 4%, etc.) compared to the previous performance (or best performance). If it is maintained more than m times (integer of 2 or more), the reference difference (x) can be adjusted downward. This is to effectively adapt the performance of semiconductor storage devices to volatile workloads.
본 발명의 또 다른 실시예에서는, 상술한 실시예와 반대로, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최공 성능) 대비 +/- y% (y의 값은, 예를 들어 3%, 4%, 2%) 이하의 값을 n(2이상의 정수)번 이상 지속적으로 유지할 경우, 기준 차이(x)를 하향 조정하고, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최고 성능) 대비 +/- z% (z의 값은 예를 들어 8%, 16%, 4%) 이상의 값을 m(2이상의 정수)번 이상 지속적으로 유지할 경우, 기준차이(x)를 상향 조정할 수도 있다.In another embodiment of the present invention, in contrast to the embodiment described above, the performance adjusted for successive periods is +/− y% relative to the previous performance (or pore performance) (the value of y is, for example, 3%, If you keep the value of 4%, 2% or less continuously more than n (an integer of 2 or more), the reference difference (x) is adjusted downward, and the performance adjusted for successive periods is compared to the previous performance (or the highest performance). If the value of +/- z% (z is 8%, 16%, 4%, etc.) is continuously maintained at least m (an integer of 2 or more), the reference difference x may be adjusted upward.
도 10은 도 9에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다. 이를 참조하면, 워크로드의 변화에 따라, 성능 레벨이 조절된다. 이 때, 새로운 성능 레벨은 직전의 성능 레벨 대비 미리 정해진 기준 차이(+/- x%) 이내로 조절됨을 알 수 있다. 그러나, 상술한 바와 같이, 다른 실시예에서는 새로운 성능 레벨은 최고 성능 레벨 대비 미리 정해진 기준 차이(+/- x%) 이내로 조절될 수도 있다.FIG. 10 is a graph illustrating a change in performance level according to the method for adjusting performance of the
도 11은 본 발명의 또 다른 일 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 나타내는 흐름도이다. 도 12a는 도 11에 도시된 반도체 저장 장치(10)의 성능 조절 방법에 따른 성능 레벨의 변화를 나타내는 그래프이다. 도 12b는 산출된 성능 레벨에 따라 디스크리트 레벨을 선택하는 방법을 설명하기 위한 그래프리이다.11 is a flowchart illustrating a performance adjusting method of the
도 11 내지 12b를 참조하면, 새로운 성능 레벨을 산출한다(S410). 미리 정해진 복수의 디스크리트 레벨들(Lv.1 ~Lv.9) 중 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택한다(S420). 본 실시예에서, 복수의 디스크리트 레벨들(Lv.1 ~Lv.9)은 9 단계의 서로 다른 성능 레벨이나, 이에 한정되는 것은 아니며, 디스크리트 레벨들의 수 및 각 레벨간 간격 등은 달라질 수 있다.11 through 12B, a new performance level is calculated (S410). A discrete level closest to the calculated performance level is selected from among the plurality of predetermined discrete levels Lv.1 to Lv.9 (S420). In the present embodiment, the plurality of discrete levels Lv.1 to Lv.9 are nine different performance levels, but are not limited thereto, and the number of discrete levels and the interval between the levels may vary.
도 12b를 참조하면, 현 성능 레벨(제1 성능 레벨)이 Lv.5이고 산출된 성능 레벨이 CL1인 경우, CL1이 Lv.5 보다 Lv. 6에 더 가까운 값이라고 가정하면, 산출된 성능 레벨(CL1)과 가장 가까운 디스크리트 레벨인 Lv. 6이 선택된다. 따라서, 산출된 성능 레벨(CL1)이 구간(D6)에 속한다면 Lv. 6이 선택된다. 만약, 이웃하는 디스크리트 레벨들 간의 중간 값이라면, 가장 가까운 디스크리트 레벨은 두 레벨일 수 있으며, 이 경우 두 레벨 중 어느 하나가 선택될 수 있다.12B, when the current performance level (first performance level) is Lv.5 and the calculated performance level is CL1, CL1 is Lv.5 than Lv.5. Assuming a value closer to 6, Lv. Is the discrete level closest to the calculated performance level (CL1). 6 is selected. Therefore, if the calculated performance level CL1 belongs to the period D6, then Lv. 6 is selected. If it is an intermediate value between neighboring discrete levels, the nearest discrete level may be two levels, in which case either one may be selected.
상기 선택된 디스크리트 레벨과 현 성능 레벨(제1 성능 레벨) 간의 레벨 갭을 산출하여, 상기 산출된 레벨 갭을 미리 정해진 기준 갭과 비교한다(S430). 레벨 갭이란, 선택된 디스크리트 레벨이 현 성능 레벨(제1 성능 레벨)에 비하여 몇 단계 차이인지를 의미한다. 예를 들어, 현 성능 레벨(제1 성능 레벨)이 Lv.4 이고, 선택된 디스크리트 레벨이 Lv.3 또는 Lv.5라면, 레벨 갭은 1이고, 현 성능 레벨(제1 성능 레벨)이 Lv.4 이고, 선택된 디스크리트 레벨이 Lv.2 또는 Lv.6라면, 레벨 갭은 2이다.A 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 (S430). The level gap means how many steps the selected discrete level differs from the current performance level (first performance 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, the level gap is 1, and the current performance level (first performance level) is Lv.4. If 4 and the selected discrete level is Lv.2 or Lv.6, the level gap is two.
상기 비교 결과, 상기 산출된 레벨 갭이 미리 정해진 기준 갭(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 and applied as a new performance level (second performance level) (S460). For example, when the calculated level gap is 1 and the reference gap is 2, the selected discrete level is 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), and the discrete corresponding to the adjusted level gap is determined. The level is determined as the second performance level and applied (S450).
예를 들어, 산출된 레벨 갭이 3이고, 기준 갭이 2인 경우, 선택된 디스크리트 레벨을 그대로 새로운 성능 레벨(제2 성능 레벨)로 결정하는 것이 아니라, 산출된 레벨 갭이 기준갭(예컨대, 2)이 되도록 조절하고, 조절된 레벨 갭(예컨대, 2)에 해당하는 디스크리트 레벨을 제2 성능 레벨로 결정하여 적용한다.For example, if the calculated level gap is 3 and the reference gap is 2, instead of determining the selected discrete level as a new performance level (second performance level), the calculated level gap is a reference gap (eg, 2). ), And the discrete level corresponding to the adjusted level gap (eg, 2) is determined and applied 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, in step S420, the discrete level Lv. 3 that is closest to CL2 is selected.
그리고, 상기 선택된 디스크리트 레벨(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, the 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 to calculate the calculated level gap 3. ) Is compared with a predetermined reference gap (eg, 2) (S430). Since the calculated
상술한 바와 같이, 기준 갭이 2인 경우, 성능 레벨은 한번에 2단계 이내로만 변경되며 2단계를 초과하여 변경될 수는 없다. As described above, when the reference gap is 2, the performance level is changed only within two steps at a time and cannot be changed more than two steps.
본 발명의 다른 실시예에서는, 제2 성능 레벨(즉, 새롭게 적용될 성능 레벨)과 제1 성능 레벨(현재 적용되고 있는 성능 레벨) 간의 차이가 복수(2이상) 개의 레벨 차이를 갖는 경우, 복수개의 레벨을 한번에 이동하지 않고 적어도 하나의 중간 레벨을 거쳐 이동할 수 있다.In another embodiment of the present invention, when the difference between the second performance level (i.e., the newly applied performance level) and the first performance level (currently applied performance level) has a plurality (two or more) level differences, You can move through at least one intermediate level without moving the level at one 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, the intermediate level between Lv.5 and Lv.2 is not applied directly from Lv.2 to Lv.5. After changing to at least one of the levels (LV3, Lv4) and apply to the target performance Lv.5 can be applied.
그리고, 중간 성능 레벨을 거쳐 이동하는 경우, 각 레벨(단계)별로 최소 시간을 머무른 후 자동으로 또는 다시 이동 여부를 확인 한 후 다음 성능 레벨로 이동할 수도 있다.In addition, when moving through the intermediate performance level, after the minimum time for each level (step), whether to move automatically or again may be moved to the next performance level.
도 13은 본 발명의 일 실시예에 따른 호스트 명령의 포맷을 나타내는 테이블이다. 도 13을 참조하면, 호스트(20)는 반도체 저장 장치(10)의 성능 조절과 관련하여 피쳐(feature) 필드, 카운트 필드, LBA(logic Block Address) 필드, 디바이스 필드 및 커맨드 필드로 구성되는 명령 신호를 반도체 저장 장치(10)에 인가할 수 있다. 명령에 포함되는 각 필드는 미리 정해진 비트로 구성될 수 있다. 예를 들어, 커맨드 필드, 디바이스 필드, 및 카운트 필드 각각은 8비트로 구성될 수 있다.13 is a table illustrating 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 period setting command described above may also be defined to have a format similar to that of the host command shown in FIG. 13. However, the period setting command includes information about the period. The information about the period may be included in any one of a feature field, a count field, and a logic block address (LBA) field.
상술한 본 발명의 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법은 하드웨어, 소프트웨어 또는 이들의 결합으로 구현 가능하다. 본 발명의 실시예가 소프트웨어로 구현되는 경우, 본 발명의 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 실행하기 위한 다수의 서브 루틴들을 포함하는 성능 조절 프로그램 코드가 반도체 저장 장치(10)의 비휘발성 메모리에 저장될 수 있다.The performance control method of the
이 경우, 컨트롤러는 비휘발성 메모리에 저장된 성능 조절 프로그램 코드를 실행함으로써, 본 발명의 실시예에 따른 반도체 저장 장치(10)의 성능 조절 방법을 실행할 수 있다.In this case, the controller may execute the performance adjusting method code 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)를 포함할 수 있다.Referring to FIG. 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 each a block diagram of an electronic system according to another embodiment of the present invention.
도 15a에 도시된 전자 시스템(900')은 도 14에 도시된 전자 시스템(900)과 유사한 구성을 가지므로, 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.Since 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
도 15b에 도시된 전자 시스템(900")은 도 15a에 도시된 전자 시스템(900')과 유사한 구성을 가지므로, 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.Since the
도 15b에 도시된 전자 시스템(900")의 RAID 컨트롤러 카드(960)는 반도체 저장 장치들(10-1~10-k)과 함께 하나의 제품으로 구현된다는 점에서, 도 15a에 도시된 전자 시스템(900')과 차이가 있다.The electronic system shown in FIG. 15A in that the
이와 같이 RAID 컨트롤러 카드(960)가 구비되는 경우, 상술한 본 발명의 실시예에 따른 성능 조절 방법이 RAID 컨트롤러 카드(960)에 의해 구현될 수 있다. 이를 위해, 상술한 타이머, 및 성능 조절 모듈 등이 RAID 컨트롤러 카드(960) 내에 구비될 수 있다.As such, when the
도 16은 본 발명의 실시예에 따른 반도체 저장 장치(10)를 구비하는 컴퓨팅 시스템(1000, PC)의 블록도이다. 이를 참조하면, 컴퓨팅 시스템(1000)은 중앙 처리 장치(Central Processing Unit, 1110), AGP 장치(Accelerated Graphics Port, 1120), 메인 메모리(1130), 노스 브리지(north bridge, 1140), 반도체 저장 장치(예컨대, SSD, 10), 키보드 컨트롤러(1160), 프린터 컨트롤러(1170), 및 사우스 브리지(1180) 등을 포함한다. 16 is a block diagram of a computing system 1000 (PC) having a
컴퓨팅 시스템(1100)은 SSD(10)가 하드디스크 드라이브를 대신하여 주 저장 장치로 이용하는 개인용 컴퓨터 또는 노트북 컴퓨터의 블락도일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다. The computing system 1100 may be a block diagram 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 implementation of three-dimensional graphical representations. The
또한, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1100)에서는 SSD(10)가 사우스 브리지(180)에 연결되는 구조이나, 이에 한정되는 것은 아니며, SSD(10)가 노스 브리지(1140)에 연결되거나, CPU(1110)에 직접 연결되는 구조일 수도 있다.In addition, in the computing system 1100 according to an embodiment of the present invention, the structure in which the
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit 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 Devices: 10
Host: 20
Controller: 100
Nonvolatile Memory Device: 200
CPU: 150, 210
Host interface: 110
DRAM: 120
SRAM: 130
Memory interface: 140
Timer: 150, 260
Bus: 160, 230
Workload module: 170, 250
Performance Control Module: 190, 270
Clock Generator: 195
Storage interface: 240
Claims (40)
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는,
상기 비휘발성 메모리 장치의 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 미리 정해진 기준과 비교하며, 상기 비교 결과에 따라 상기 산출된 성능 레벨을 업데이트된 성능 레벨로 결정하는 반도체 저장 장치.A nonvolatile memory device for storing data nonvolatile; And
A controller for controlling the nonvolatile memory device,
The controller,
Calculating a new performance level of the nonvolatile memory device, comparing the calculated performance level with a predetermined criterion, and determining the calculated performance level as an updated performance level according to the comparison result.
상기 미리 정해진 기준은 최소 레벨이고,
상기 컨트롤러는
상기 산출된 성능 레벨을 상기 최소 레벨과 비교하며,상기 비교 결과, 상기 산출된 성능 레벨이 상기 최소 레벨보다 낮으면 상기 최소 레벨을 상기 업데이트된 성능 레벨로 결정하고, 상기 산출된 성능 레벨이 상기 최소 레벨보다 높거나 같으면 상기 산출된 성능 레벨을 상기 업데이트된 성능 레벨로 결정하는 성능 조절 모듈을 포함하는 반도체 저장 장치.The method of claim 1,
The predetermined criterion is the minimum level,
The controller
Compare the calculated performance level with the minimum level, and, if the calculated performance level is lower than the minimum level, determine the minimum level as the updated performance level, and the calculated performance level is the minimum And a performance adjustment module that determines the calculated performance level as the updated performance level if it is higher than or equal to a level.
상기 미리 정해진 기준은 최소 레벨이고,
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 상기 최소 레벨과 비교하며, 상기 비교 결과, 상기 산출된 성능 레벨이 상기 최소 레벨보다 낮으면 상기 최소 레벨을 상기 업데이트된 성능 레벨로 결정하고, 상기 산출된 성능 레벨이 상기 최소 레벨보다 높거나 같으면 상기 산출된 성능 레벨을 상기 업데이트된 성능 레벨로 결정하는 반도체 저장 장치.The method of claim 1,
The predetermined criterion is the minimum level,
The nonvolatile memory device stores performance control program code.
The controller executes the performance adjusting program code to calculate the new performance level, compare the calculated performance level with the minimum level, and, if the calculated performance level is lower than the minimum level, the And determine a minimum level as the updated performance level, and if the calculated performance level is higher than or equal to the minimum level, determining the calculated performance level as the updated performance level.
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는,
상기 비휘발성 메모리 장치의 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨과 제1 성능 레벨 간의 차이를 미리 정해진 기준과 비교하며, 상기 비교 결과에 따라, 상기 산출된 성능 레벨을 제2 성능 레벨로 결정하는 반도체 저장 장치.A nonvolatile memory device for storing data nonvolatile; And
A controller for controlling the nonvolatile memory device,
The controller,
Calculate a new performance level of the nonvolatile memory device, compare the difference between the calculated performance level and the first performance level with a predetermined criterion, and according to the comparison result, convert the calculated performance level to a second performance level. Semiconductor storage device to determine.
현재 적용되고 있는 성능 레벨이고, 상기 제2 성능 레벨은 새롭게 적용될 성능 레벨인 반도체 저장 장치The method of claim 4, wherein the first performance level is
Is a performance level currently being applied, and the second performance level is a performance level to be newly applied.
상기 미리 정해진 기준은 제1 기준차이고,
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고,
상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차보다 낮으면 상기 산출된 성능 레벨을 상기 제2 성능 레벨로 결정하고, 상기 산출된 성능 레벨과 제1 성능 레벨 간의 차이를 미리 정해진 기준과 비교하며,
상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차보다 높거나 같으면 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차가 되도록 상기 산출된 성능 레벨을 조절하고, 상기 조절된 성능 레벨을 상기 제2 성능 레벨로 결정하는 반도체 저장 장치.The method of claim 5,
The predetermined criterion is a first reference difference,
The nonvolatile memory device stores performance control program code.
The controller executes the performance control program code to calculate the new performance level,
As a result of the comparison, when the difference between the calculated performance level and the first performance level is lower than the first reference difference, the calculated performance level is determined as the second performance level, and the calculated performance level and the first performance are determined. Compare the difference between levels with a predetermined criterion,
As a result of the comparison, when the difference between the calculated performance level and the first performance level is higher than or equal to the first reference difference, the calculated difference between the calculated performance level and the first performance level becomes the first reference difference. And adjust the performance level and determine the adjusted performance level as the second performance level.
상기 미리 정해진 기준은 제1 기준차이고,
상기 컨트롤러는
상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차보다 낮으면 상기 산출된 성능 레벨을 상기 제2 성능 레벨로 결정하고,
상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차보다 높거나 같으면 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차가 되도록 상기 산출된 성능 레벨을 조절하고, 상기 조절된 성능 레벨을 상기 제2 성능 레벨로 결정하는 반도체 저장 장치.The method of claim 5,
The predetermined criterion is a first reference difference,
The controller
As a result of the comparison, if the difference between the calculated performance level and the first performance level is lower than the first reference difference, the calculated performance level is determined as the second performance level,
As a result of the comparison, when the difference between the calculated performance level and the first performance level is higher than or equal to the first reference difference, the calculated difference between the calculated performance level and the first performance level becomes the first reference difference. And adjust the performance level and determine the adjusted performance level as the second performance level.
상기 제1 성능 레벨 대비 비율, 또는 최고 성능 레벨 대비 비율인 것을 특징으로 하는 반도체 저장 장치.The method of claim 6 or 7, wherein the first reference difference is
And a ratio to the first performance level or a ratio to the highest performance level.
호스트로부터의 명령 또는 복수 회 이상의 성능 조절 결과에 따라 변경되는 반도체 저장 장치.The method of claim 6 or 7, wherein the first reference difference is
A semiconductor storage device that is changed according to a command from a host or a result of a plurality of performance adjustments.
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는,
새로운 성능 레벨을 산출하고 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하고, 상기 선택된 디스크리트 레벨을 이용하여 제2 성능 레벨을 결정하는 반도체 저장 장치.A nonvolatile memory device for storing data nonvolatile; And
A controller for controlling the nonvolatile memory device,
The controller,
Calculating a new performance level, selecting a discrete level closest to the calculated performance level among a plurality of predetermined discrete levels, and determining a second performance level using the selected discrete level.
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는, 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하고,
상기 산출된 성능 레벨과 제1 성능 레벨 간의 차이를 미리 정해진 기준과 비교하며,
상기 비교 결과, 상기 산출된 레벨 갭이 상기 기준 갭보다 낮거나 같으면 상기 선택된 디스크리트 레벨을 상기 제2 성능 레벨로 결정하고, 상기 비교 결과, 상기 산출된 레벨 갭이 상기 기준 갭보다 높으면 상기 산출된 레벨 갭이 상기 기준 갭이 되도록 상기 산출된 레벨 갭을 조절하고, 상기 조절된 레벨 갭에 해당하는 디스크리트 레벨을 상기 제2 성능 레벨로 결정하는 반도체 저장 장치.The method of claim 10,
The nonvolatile memory device stores performance control program code.
The controller executes the performance control 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,
Comparing the difference between the calculated performance level and the first performance level with a predetermined criterion,
If the calculated level gap is lower than or equal to the reference gap, the selected discrete level is determined as the second performance level. If the calculated level gap is higher than the reference gap, the calculated level is determined. And adjust the calculated level gap so that the gap becomes the reference gap, and determine a discrete level corresponding to the adjusted level gap as the second performance level.
상기 새로운 성능 레벨을 산출하고 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하고,
상기 산출된 성능 레벨과 제1 성능 레벨 간의 차이를 미리 정해진 기준과 비교하며,
상기 비교 결과, 상기 산출된 레벨 갭이 상기 기준 갭보다 낮거나 같으면 상기 선택된 디스크리트 레벨을 상기 제2 성능 레벨로 결정하고, 상기 비교 결과, 상기 산출된 레벨 갭이 상기 기준 갭보다 높으면 상기 산출된 레벨 갭이 상기 기준 갭이 되도록 상기 산출된 레벨 갭을 조절하고, 상기 조절된 레벨 갭에 해당하는 디스크리트 레벨을 상기 제2 성능 레벨로 결정하는 성능 조절 모듈을 구비하는 반도체 저장 장치.The method of claim 10, wherein the controller
Calculate the new performance level and select a discrete level closest to the calculated performance level from among a plurality of predetermined discrete levels,
Comparing the difference between the calculated performance level and the first performance level with a predetermined criterion,
If the calculated level gap is lower than or equal to the reference gap, the selected discrete level is determined as the second performance level. If the calculated level gap is higher than the reference gap, the calculated level is determined. And a performance adjusting module for adjusting the calculated level gap so that the gap becomes the reference gap, and determining a discrete level corresponding to the adjusted level gap as the second performance level.
상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는,
새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 이용하여 제2 성능 레벨로 결정하며, 상기 반도체 저장 장치는 제1 성능 레벨에 따라 동작하다가, 상기 제2 성능 레벨이 결정되면 상기 제2 성능 레벨에 따라 적어도 미리 정해진 주기 동안 동작하는 반도체 저장 장치.A nonvolatile memory device for storing data nonvolatile; And
A controller for controlling the nonvolatile memory device,
The controller,
A new performance level is calculated, the second performance level is determined using the calculated performance level, and the semiconductor storage device operates according to a first performance level, and when the second performance level is determined, the second performance level is determined. And operate for at least a predetermined period of time.
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는, 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 이용하여 상기 제2 성능 레벨로 결정하는 반도체 저장 장치.The method of claim 13,
The nonvolatile memory device stores performance control program code.
The controller executes the performance control program code, calculates the new performance level, and determines the second performance level using the calculated performance level.
SSD 또는 SD 카드인 것을 특징으로 하는 반도체 저장 장치.The method of claim 13, wherein the semiconductor storage device is
Semiconductor storage device, characterized in that the SSD or SD card.
새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 미리 정해진 기준과 비교하며, 상기 비교 결과에 따라, 상기 산출된 성능 레벨을 제2 성능 레벨로 결정하는 성능 조절 모듈; 및
상기 반도체 저장 장치로 하여금 제1 성능 레벨에 따라 동작하도록 설정한 후, 상기 제2 성능 레벨이 결정되면 상기 제2 성능 레벨에 따라 동작하도록 설정하는 저장장치 인터페이스 모듈을 포함하는 반도체 저장 장치의 호스트 장치.A host device for controlling a semiconductor storage device,
A performance adjusting module for calculating a new performance level, comparing the calculated performance level with a predetermined criterion, and determining the calculated performance level as a second performance level according to the comparison result; And
A storage device interface module configured to set the semiconductor storage device to operate according to a first performance level, and to set the semiconductor storage device to operate according to the second performance level when the second performance level is determined. .
새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨과 제1 성능 레벨 간의 차이를 미리 정해진 기준과 비교하며, 상기 비교 결과에 따라, 상기 산출된 성능 레벨을 제2 성능 레벨로 결정하는 성능 조절 모듈: 및
상기 반도체 저장 장치로 하여금 상기 제1 성능 레벨에 따라 동작하도록 설정한 후, 상기 제2 성능 레벨이 결정되면 상기 제2 성능 레벨에 따라 동작하도록 설정하는 저장장치 인터페이스 모듈을 포함하는 반도체 저장 장치의 호스트 장치.A host device for controlling a semiconductor storage device,
A performance adjustment module for calculating a new performance level, comparing the difference between the calculated performance level and the first performance level with a predetermined criterion, and determining, according to the comparison result, the calculated performance level as a second performance level: And
And a storage interface module configured to set the semiconductor storage device to operate according to the first performance level, and to set the semiconductor storage device to operate according to the second performance level when the second performance level is determined. Device.
새로운 성능 레벨을 산출하고 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하고, 상기 산출된 성능 레벨과 제1 성능 레벨 간의 차이를 미리 정해진 기준과 비교하는 비교하며, 상기 선택된 디스크리트 레벨을 이용하여 제2 성능 레벨을 결정하는 성능 조절 모듈; 및
상기 반도체 저장 장치로 하여금 제1 성능 레벨에 따라 동작하도록 설정한 후, 상기 제2 성능 레벨이 결정되면 상기 제2 성능 레벨에 따라 동작하도록 설정하는 저장장치 인터페이스 모듈을 구비하는 반도체 저장 장치의 호스트 장치.A host device for controlling a semiconductor storage device,
Calculating a new performance level and 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 criterion, A performance adjustment module for determining a second performance level using the selected discrete level; And
A storage device interface module configured to set the semiconductor storage device to operate according to a first performance level, and to set the semiconductor storage device to operate according to the second performance level when the second performance level is determined. .
새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 이용하여 제2 성능 레벨로 결정하는 성능 조절 모듈; 및
상기 반도체 저장 장치로 하여금 제1 성능 레벨에 따라 동작하도록 설정한 후, 상기 제2 성능 레벨이 결정되면 상기 제2 성능 레벨에 따라 동작하도록 설정하는 저장장치 인터페이스 모듈을 구비하는 반도체 저장 장치의 호스트.A host device for controlling a semiconductor storage device,
A performance adjustment module that calculates a new performance level and determines a second performance level using the calculated performance level; And
And a storage interface module configured to set the semiconductor storage device to operate according to the first performance level, and to set the semiconductor storage device to operate according to the second performance level when the second performance level is determined.
(a) 상기 반도체 저장 장치를 제1 성능 레벨에 따라 동작시키는 단계;
(b) 새로운 성능 레벨을 산출하는 단계;
(c) 상기 산출된 성능 레벨을 미리 정해진 기준과 비교하는 단계;
(d) 상기 비교 결과에 따라, 상기 산출된 성능 레벨을 제2 성능 레벨로 결정하는 단계; 및
(e) 상기 반도체 저장 장치를 상기 제2 성능 레벨에 따라 동작시키는 단계를 구비하는 반도체 저장 장치의 성능 조절 방법.A method of controlling performance of a semiconductor storage device including a nonvolatile memory device and a controller 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 in accordance with the second performance level.
상기 미리 정해진 기준은 최소 레벨이고,
상기 (d) 단계는
상기 비교 결과, 상기 산출된 성능 레벨이 상기 최소 레벨보다 낮으면 상기 최소 레벨을 상기 제2 성능 레벨로 결정하는 단계; 및
상기 비교 결과, 상기 산출된 성능 레벨이 상기 최소 레벨보다 높거나 같으면 상기 산출된 성능 레벨을 상기 제2 성능 레벨로 결정하는 단계를 포함하는 반도체 저장 장치의 성능 조절 방법.The method of claim 20,
The predetermined criterion is the minimum level,
The step (d)
Determining that the minimum level is the second performance level if the calculated performance level is lower than the minimum level; 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.
상기 미리 정해진 기준은 최대 레벨이고,
상기 (d) 단계는
상기 비교 결과, 상기 산출된 성능 레벨이 상기 최대 레벨보다 높으면 상기 최대 레벨을 상기 제2 성능 레벨로 결정하는 단계; 및
상기 비교 결과, 상기 산출된 성능 레벨이 상기 최대 레벨보다 낮거나 같으면 상기 산출된 성능 레벨을 상기 제2 성능 레벨로 결정하는 단계를 포함하는 반도체 저장 장치의 성능 조절 방법.The method of claim 20,
The predetermined criterion is the 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.
상기 반도체 저장 장치의 쓰기 성능 레벨로서, 단위시간당 처리되는 쓰기 명령의 수, 단위 시간당 기록되는 데이터 량, 또는 복수의 레벨값 중 어느 하나로 표시되는 반도체 저장 장치의 성능 조절 방법.The method of claim 20, wherein the performance level is
And a write performance level of the semiconductor storage device, which is represented by any one of a number of write commands processed per unit time, an amount of data written per unit time, or a plurality of level values.
상기 반도체 저장 장치의 읽기 성능 레벨로서, 단위시간당 처리되는 읽기 명령의 수, 단위 시간당 독출되는 데이터 량, 또는 복수의 레벨값 중 어느 하나로 표시되는 반도체 저장 장치의 성능 조절 방법.The method of claim 20, wherein the performance level is
And a read performance level of the semiconductor storage device, wherein the read performance level is displayed as one of a number of read commands processed per unit time, an amount of data read per unit time, or a plurality of level values.
(a) 상기 반도체 저장 장치를 제1 성능 레벨에 따라 동작시키는 단계;
(b) 새로운 성능 레벨을 산출하는 단계;
(c) 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이를 미리 정해진 기준과 비교하는 단계;
(d) 상기 비교 결과에 따라, 상기 산출된 성능 레벨을 조절하고 조절된 성능 레벨을 제2 성능 레벨로 결정하는 단계; 및
(e) 상기 반도체 저장 장치를 상기 제2 성능 레벨에 따라 동작시키는 단계를 구비하는 반도체 저장 장치의 성능 조절 방법.A method of controlling performance of a semiconductor storage device including a nonvolatile memory device and a controller 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 difference between the calculated performance level and the first performance level with a predetermined criterion;
(d) adjusting the calculated performance level and determining the adjusted performance level as a second performance level according to the comparison result; And
(e) operating the semiconductor storage device in accordance with the second performance level.
상기 미리 정해진 기준은 제1 기준차이고,
상기 (d) 단계는
상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차보다 낮으면 상기 산출된 성능 레벨을 상기 제2 성능 레벨로 결정하는 단계; 및
상기 비교 결과, 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차보다 높거나 같으면 상기 산출된 성능 레벨과 상기 제1 성능 레벨 간의 차이가 상기 제1 기준차가 되도록 상기 산출된 성능 레벨을 조절하고, 상기 조절된 성능 레벨을 상기 제2 성능 레벨로 결정하는 단계를 포함하는 반도체 저장 장치의 성능 조절 방법.The method of claim 25,
The predetermined criterion is a first reference difference,
The step (d)
Determining the calculated performance level as the second performance level if a difference between the calculated performance level and the first performance level is lower than the first reference difference as a result of the comparison; And
As a result of the comparison, when the difference between the calculated performance level and the first performance level is higher than or equal to the first reference difference, the calculated difference between the calculated performance level and the first performance level becomes the first reference difference. Adjusting a performance level, and determining the adjusted performance level as the second performance level.
상기 제1 성능 레벨 대비 비율, 또는 최고 성능 레벨 대비 비율인 것을 특징으로 하는 반도체 저장 장치의 성능 조절 방법.The method of claim 26, wherein the first reference difference is
And a ratio of the first performance level or the ratio of the highest performance level.
상기 제1 기준차를 변경시키는 단계를 더 포함하는 반도체 저장 장치의 성능 조절 방법.27. The method of claim 26, wherein the method
And changing the first reference difference.
상기 제2 성능 레벨이 상기 제1 성능 레벨 성능 대비 제2 기준차 이하의 값을 n(2이상의 정수)번 이상 연속적으로 유지할 경우, 상기 제1 기준차를 증가시키는 단계를 포함하는 반도체 저장 장치의 성능 조절 방법.29. The method of claim 28, wherein changing the first reference difference is
Increasing the first reference difference when the second performance level maintains a value equal to or less than a second reference difference compared to the first performance level performance more than n times (an integer of 2 or more). How to tune performance.
상기 제1 기준차의 1/2 이하인 것을 특징으로 하는 반도체 저장 장치의 성능 조절 방법.The method of claim 29, wherein the second reference difference is
And less than 1/2 of the first reference difference.
상기 제2 성능 레벨이 상기 제1 성능 레벨 성능 대비 제3 기준차 이상의 값을 m(2이상의 정수)번 이상 연속적으로 유지할 경우, 상기 제1 기준차를 감소시키는 단계를 포함하는 반도체 저장 장치의 성능 조절 방법.29. The method of claim 28, wherein changing the first reference difference is
Reducing the first reference difference when the second performance level maintains a value equal to or greater than a third reference difference relative to the first performance level performance more than m (an integer greater than or equal to) two times. How to adjust.
상기 제1 기준차의 1/2 이상인 것을 특징으로 하는 반도체 저장 장치의 성능 조절 방법.The method of claim 31, wherein the third reference difference is
And a half or more of the first reference difference.
(a) 상기 반도체 저장 장치를 제1 성능 레벨에 따라 동작시키는 단계;
(b) 새로운 성능 레벨을 산출하는 단계;
(c) 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하는 단계;
(d) 상기 선택된 디스크리트 레벨을 이용하여 제2 성능 레벨을 결정하는 단계; 및
(e) 상기 반도체 저장 장치를 상기 제2 성능 레벨에 따라 동작시키는 단계를 구비하는 반도체 저장 장치의 성능 조절 방법.A method of controlling performance of a semiconductor storage device including a nonvolatile memory device and a controller controlling the nonvolatile memory device,
(a) operating the semiconductor storage device according to a first performance level;
(b) calculating a new performance level;
(c) selecting a discrete level closest to the calculated performance level among a plurality of predetermined discrete levels;
(d) determining a second performance level using the selected discrete level; And
(e) operating the semiconductor storage device in accordance with the second performance level.
상기 선택된 디스크리트 레벨과 상기 제1 성능 레벨 간의 레벨 갭을 산출하는 단계;
상기 산출된 레벨 갭을 미리 정해진 기준 갭과 비교하는 단계;
상기 비교 결과, 상기 산출된 레벨 갭이 상기 기준 갭보다 낮거나 같으면 상기 선택된 디스크리트 레벨을 상기 제2 성능 레벨로 결정하는 단계; 및
상기 비교 결과, 상기 산출된 레벨 갭이 상기 기준 갭보다 높으면 상기 산출된 레벨 갭이 상기 기준 갭이 되도록 상기 산출된 레벨 갭을 조절하고, 상기 조절된 레벨 갭에 해당하는 디스크리트 레벨을 상기 제2 성능 레벨로 결정하는 단계를 포함하는 반도체 저장 장치의 성능 조절 방법.The method of claim 33, wherein step (d)
Calculating a level gap between the selected discrete level and the first performance level;
Comparing the calculated level gap with a predetermined reference gap;
Determining the selected discrete level as the second performance level if the calculated level gap is lower than or equal to the reference gap; And
As a result of the comparison, if the calculated level gap is higher than the reference gap, 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 adjusted to the second performance. Determining the level of the semiconductor storage device.
상기 제2 성능 레벨과 상기 제1 성능 레벨 간의 레벨 차이가 복수 레벨인 경우 상기 제2 성능 레벨과 상기 제1 성능 레벨 사이의 적어도 하나의 중간 레벨로 변경하여 적용하는 단계를 더 포함하고,
상기 (e) 단계는 상기 중간 레벨로 변경하여 적용하는 단계 이후에 수행되는 것을 특징으로 하는 반도체 저장 장치의 성능 조절 방법.The method of claim 34, wherein the method is
Changing and applying at least one intermediate level between the second performance level and the first performance level when a level difference between the second performance level and the first performance level is a plurality of levels;
Wherein (e) is performed after the step of applying the change to the intermediate level.
(a) 상기 반도체 저장 장치를 제1 성능 레벨에 따라 동작시키는 단계;
(b) 새로운 성능 레벨을 산출하는 단계; 및
(c) 상기 산출된 성능 레벨을 이용하여 제2 성능 레벨을 결정하는 단계; 및
(d) 적어도 미리 정해진 주기 동안 상기 반도체 저장 장치를 상기 제2 성능 레벨에 따라 동작시키는 단계를 구비하는 반도체 저장 장치의 성능 조절 방법.A method of controlling performance of a semiconductor storage device including a nonvolatile memory device and a controller controlling the nonvolatile memory device,
(a) operating the semiconductor storage device according to a first performance level;
(b) calculating a new performance level; And
(c) determining a second performance level using the calculated performance level; And
(d) operating the semiconductor storage device according to the second performance level for at least a predetermined period.
호스트로부터 수신된 주기 설정 명령에 응답하여 설정되는 것을 특징으로 하는 성능 조절 방법.38. The method of claim 37, wherein the period is
And setting the response in response to the period setting command received from the host.
상기 주기마다 상기 (a) 내지 (d) 단계를 실행하는 것을 특징으로 하는 성능 조절 방법.The method of claim 37, wherein the method is
And performing steps (a) to (d) at each cycle.
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,216 US8856424B2 (en) | 2010-08-20 | 2011-06-22 | Semiconductor storage device and method of throttling performance of the same |
| US13/166,131 US8862806B2 (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 true KR20120017832A (en) | 2012-02-29 |
| KR101702393B1 KR101702393B1 (en) | 2017-02-23 |
Family
ID=45839674
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020100080699A Active 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) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9015403B2 (en) | 2011-11-02 | 2015-04-21 | Samsung Electronics Co., Ltd. | Method for adjusting performance of a storage device and a semiconductor storage device therefor |
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 Active
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 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9015403B2 (en) | 2011-11-02 | 2015-04-21 | Samsung Electronics Co., Ltd. | Method for adjusting performance of a storage device and a semiconductor storage device therefor |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101702393B1 (en) | 2017-02-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9223506B2 (en) | Semiconductor storage device and method of throttling performance of the same | |
| US9916087B2 (en) | Method and system for throttling bandwidth based on temperature | |
| US8856424B2 (en) | Semiconductor storage device and method of throttling performance of the same | |
| US8060719B2 (en) | Hybrid memory management | |
| US9472244B2 (en) | Apparatus power control | |
| US9880605B2 (en) | Method and system for throttling power consumption | |
| US20160118132A1 (en) | Low Impact Read Disturb Handling | |
| 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 | |
| KR20140113211A (en) | Non-volatile memory system, system having the same and method for performing adaptive user storage region adjustment in the same | |
| US11609712B2 (en) | Write operations to mitigate write disturb | |
| CN114730290A (en) | Move the changelog table to align with the partition | |
| KR101824067B1 (en) | Method of interfacing between host and semiconductor storage device for throttling performance of the semiconductor storage device, and apparatus there-of | |
| US11182087B2 (en) | Modifying write performance to prolong life of a physical memory device | |
| KR101756130B1 (en) | Semiconductor storage device and method for throttling performance of the semiconductor storage device | |
| CN114730605B (en) | Weighted read commands and open block timers for storage devices | |
| KR20230023477A (en) | Memory system and operating method thereof | |
| WO2021041798A1 (en) | Garbage collection in a memory component using an adjusted parameter | |
| US12197769B2 (en) | Scheduling media management operations based on determined host system usage requirements | |
| KR101702393B1 (en) | Semiconductor storage device and method for throttling performance of the semiconductor storage device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20100820 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20150820 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20100820 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20160608 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20161205 |
|
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20170126 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20170131 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration | ||
| FPAY | Annual fee payment |
Payment date: 20191226 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20191226 Start annual number: 4 End annual number: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20201230 Start annual number: 5 End annual number: 5 |
|
| PR1001 | Payment of annual fee |
Payment date: 20211229 Start annual number: 6 End annual number: 6 |
|
| PR1001 | Payment of annual fee |
Payment date: 20221221 Start annual number: 7 End annual number: 7 |
|
| PR1001 | Payment of annual fee |
Payment date: 20231226 Start annual number: 8 End annual number: 8 |
|
| PR1001 | Payment of annual fee |
Payment date: 20241226 Start annual number: 9 End annual number: 9 |