[go: up one dir, main page]

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 PDF

Info

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
Application number
KR1020100080699A
Other languages
Korean (ko)
Other versions
KR101702393B1 (en
Inventor
윤한빈
우영재
이동기
문영국
권혁선
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020100080699A priority Critical patent/KR101702393B1/en
Priority to US13/166,257 priority patent/US8862807B2/en
Priority to US13/166,216 priority patent/US8856424B2/en
Priority to US13/166,131 priority patent/US8862806B2/en
Priority to US13/212,404 priority patent/US9037778B2/en
Publication of KR20120017832A publication Critical patent/KR20120017832A/en
Priority to US14/504,568 priority patent/US9348521B2/en
Priority to US14/511,271 priority patent/US9223506B2/en
Application granted granted Critical
Publication of KR101702393B1 publication Critical patent/KR101702393B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

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

반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법 {Semiconductor storage device and method for throttling performance of the semiconductor storage device}Semiconductor storage device and method for throttling performance of the semiconductor storage device

본 발명은 데이터 저장장치에 관한 것으로, 특히, 비휘발성 메모리에 데이터를 저장하는 반도체 저장장치 및 그 성능 조절 방법에 관한 것이다.The present invention relates to a data storage device, and more particularly, to a semiconductor storage device for storing data in a nonvolatile memory and a 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 data storage system 1 according to an embodiment of the present invention. The data storage system 1 according to an embodiment of the present invention includes a semiconductor storage device 10 and a host 20. The semiconductor storage device 10 may include a controller 100 and a nonvolatile memory device 200.

호스트(20)는 PCI-E(peripheral component interconnect - express), ATA(Advanced Technology Attachment), SATA(serial ATA), PATA(parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 반도체 저장 장치(10)와 통신할 수 있다. 그러나, 호스트(20)와 반도체 저장 장치(10)간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(multi-media card), ESDI(enhanced small disk interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 인터페이스 프로토콜들 중 하나일 수 있다. The host 20 uses a semiconductor protocol such as a peripheral component interconnect-express (PCI-E), Advanced Technology Attachment (ATA), serial ATA (SATA), parallel ATA (PATA), or serial attached SCSI (SAS). Communicate with the storage device 10. However, the interface protocols between the host 20 and the semiconductor storage device 10 are not limited to the examples described above, but may include Universal Serial Bus (USB), multi-media card (MMC), enhanced small disk interface (ESDI), or IDE. It may be one of other interface protocols such as (Integrated Drive Electronics).

본 발명의 실시예에 따른 반도체 저장 장치(10)는 솔리드 스테이트 드라이브(Solid State Drive, 이하 'SSD'라 함)일 수 있다. 또한, 비휘발성 메모리 장치(200)는 플래시 메모리 장치일 수 있으나, 이에 한정되지 않는다.The semiconductor storage device 10 according to an embodiment of the present invention may be a solid state drive (hereinafter, referred to as an 'SSD'). In addition, the nonvolatile memory device 200 may be a flash memory device, but is not limited thereto.

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

비휘발성 메모리 장치(200)는 데이터를 비휘발적으로 저장하기 위한 저장 장소로서, 사용자 데이터 및 메타 데이터를 저장한다. 비휘발성 메모리 장치(220)는 OS(Operating System, 이하 'OS'라 함), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. The nonvolatile memory device 200 is a storage location for nonvolatile storage of data, and stores user data and metadata. The nonvolatile memory device 220 may store an operating system (OS), various programs, and various data.

도 2는 본 발명의 일 실시예에 따른 컨트롤러(100)의 개략적인 블록도이다. 도 2를 참조하면, 컨트롤러(100)는 호스트 인터페이스(110), DRAM(120), SRAM(130), 비휘발성 메모리 인터페이스(140), CPU(150), 시스템 버스(160), 워크로드 모듈(170), 타이머(180), 성능 조절 모듈(190) 및 클럭 발생기(195)를 포함할 수 있다.2 is a schematic block diagram of a controller 100 according to an embodiment of the present invention. 2, the controller 100 includes a host interface 110, a DRAM 120, an SRAM 130, a nonvolatile memory interface 140, a CPU 150, a system bus 160, and a workload module ( 170, a timer 180, a performance adjustment module 190, and a clock generator 195.

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

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

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

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

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

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

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

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

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

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

도 3에 도시된 반도체 저장 장치(10)에서, 컨트롤러(100)와 비휘발성 메모리 장치(200)는 4개의 채널(Channel A, B, C, D)로 연결되며, 각 채널에는 3개의 플래시 메모리 칩(CA0~CA2, CB0~CB2, CC0~CC2, CD0~CD2)이 연결되는 구조이다. 그러나, 채널의 수 및 뱅크의 수는 이에 한정되지 않고 변경될 수 있음은 당연하다.In the semiconductor storage device 10 illustrated in FIG. 3, the controller 100 and the nonvolatile memory device 200 are connected to four channels A, B, C, and D, and three flash memories are provided in each channel. Chips CA0 to CA2, CB0 to CB2, CC0 to CC2, and CD0 to CD2 are connected to each other. However, it is obvious that the number of channels and the number of banks can be changed without being limited thereto.

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

도 4는 본 발명의 일 실시예에 따른 호스트(20)의 개략적인 블록도이다. 도 4를 참조하면, 호스트(20)는 CPU(210), 메모리(220), 버스(230), SSD 인터페이스(240), 워크로드 모듈(250), 타이머(260), 및 성능 조절 모듈(270)를 포함할 수 있다.4 is a schematic block diagram of a host 20 according to an embodiment of the present invention. Referring to FIG. 4, the host 20 may include a CPU 210, a memory 220, a bus 230, an SSD interface 240, a workload module 250, a timer 260, and a performance adjustment module 270. ) May be included.

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

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

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

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

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

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

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

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

본 발명의 실시예들은 도 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 semiconductor storage device 10 according to an 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 10 shown in FIG. 5B.

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

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

도 5b에 도시된 단계들은 도 5a의 S120 및 S130 단계에 상응할 수 있다.The steps shown in FIG. 5B may correspond to steps S120 and S130 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 semiconductor storage device 10 shown in FIG. 5B. Referring to this, as the workload changes, the performance level is also adjusted, but it does not go below the lowest performance level.

상술한 바와 같이, 본 발명의 실시예에 따르면, 새롭게 산출된 성능 레벨이 최소 성능 레벨보다 높거나 같으면 산출된 성능 레벨이 그대로 새로운 성능 레벨로 결정되어 적용되지만, 새롭게 산출된 성능 레벨이 최소 성능 레벨보다 낮으면 최소 성능 레벨을 선택함으로써, 성능 레벨이 최소 성능 레벨보다 낮아지지 않도록 한다. 이에 따라, 워크로드가 최대인 악조건에서도 반도체 저장장치(10)의 최저 성능 보장된다.As described above, according to the embodiment of the present invention, if the newly calculated performance level is 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 semiconductor storage device 10 is guaranteed even under adverse conditions with a maximum workload.

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

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

상기 비교 결과, 새로운 성능 레벨이 최대 성능 레벨보다 낮거나 같으면 산출된 성능 레벨을 그대로 선택하고, 선택된 성능 레벨을 적용한다(S134). As a result of the comparison, if the new performance level is lower than or equal to the maximum performance level, the calculated performance level is 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 semiconductor storage device 10 according to another exemplary embodiment of the present invention. Referring to FIG. 7, when a new performance level is calculated and set (S210 and S220), the performance level is not changed for a predetermined period (S230).

이를 위하여, 새로운 성능 레벨이 적용된 시점으로부터 미리 정해진 기간이 경과하였는지 체크하여(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 semiconductor storage device 10. In this case, the performance level applied during the predetermined performance adjustment cycle is maintained, and when the performance adjustment cycle ends, a new performance level can be calculated and applied again. Here, the predetermined period or performance adjustment cycle may be a unit of time, day, week, month, etc., but is not limited thereto. In addition, the performance adjustment cycle may or may not coincide with the performance prediction cycle. For example, performance prediction may be in hours, but performance adjustment may be in days, and vice versa.

상기 미리 정해진 기간 또는 성능 조절 주기는 호스트로부터 수신된 주기 설정 명령에 응답하여 설정될 수 있다. 주기 설정 명령은 도 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 semiconductor storage device 10.

저장장치의 성능을 정해진 주기(예를 들어, 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 semiconductor storage device 10 shown in FIG. 7. Referring to this, as the workload changes, it can be seen that the performance level is adjusted every performance tuning cycle.

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

상기 비교 결과(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 semiconductor storage device 10 is adjusted, the reference difference (+/− x%) compared to the performance (or the highest performance) immediately before the adjusted performance is adjusted, the value of x is For example, 10%, 20%, 5%) to maintain within. This is to prevent the predictability of the performance of the semiconductor storage device 10 from deteriorating from the host point of view when the performance of the semiconductor storage device 10 suddenly changes significantly.

본 발명의 실시예에서, 연속된 주기 동안 조절되는 성능이 직전의 성능(또는 최고 성능) 대비 +/- 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 semiconductor storage device 10 illustrated in FIG. 9. Referring to this, as the workload changes, the performance level is adjusted. At this time, it can be seen that the new performance level is adjusted within a predetermined reference difference (+/− ×%) compared to the previous performance level. However, as described above, in other embodiments, the new performance level may be adjusted within a predetermined reference difference (+/− ×%) relative to the highest performance level.

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

도 11 내지 12b를 참조하면, 새로운 성능 레벨을 산출한다(S410). 미리 정해진 복수의 디스크리트 레벨들(Lv.1 ~Lv.9) 중 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택한다(S420). 본 실시예에서, 복수의 디스크리트 레벨들(Lv.1 ~Lv.9)은 9 단계의 서로 다른 성능 레벨이나, 이에 한정되는 것은 아니며, 디스크리트 레벨들의 수 및 각 레벨간 간격 등은 달라질 수 있다.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 level gap 3 is larger than the reference gap (eg, 2), the calculated level gap is adjusted to be the reference gap (S440), and the discrete level Lv. Corresponding to the adjusted level gap 2 is adjusted. Determine 4) as the second performance level. The discrete level finally selected is Lv.4, not Lv.3.

상술한 바와 같이, 기준 갭이 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 host 20 may include a command signal including a feature field, a count field, a logic block address (LBA) field, a device field, and a command field in relation to performance control of the semiconductor storage device 10. May be applied to the semiconductor storage device 10. Each field included in the command may consist of predetermined bits. For example, each of the command field, device field, and count field may consist of 8 bits.

상술한 주기 설정 명령 역시 도 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 semiconductor storage device 10 according to the embodiment of the present invention described above may be implemented by hardware, software, or a combination thereof. When the embodiment of the present invention is implemented in software, the performance storage program code including a plurality of subroutines for executing the method for adjusting the performance of the semiconductor storage device 10 according to the embodiment of the present invention is stored in the semiconductor storage device 10. Can be stored in a nonvolatile memory.

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

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

도 14를 참조하면 본 발명의 실시예에 따른 전자 시스템(900)은 본 발명의 일 실시예에 따른 반도체 저장 장치(10), 전원부(power supply)(910), 중앙 처리 장치(CPU)(920), 램(RAM)(930), 유저 인터페이스(User Interface)(940) 및 이들 구성요소들을 전기적으로 연결하는 시스템 버스(950)를 포함할 수 있다.Referring to FIG. 14, an electronic system 900 according to an embodiment of the present invention may include a semiconductor storage device 10, a power supply 910, and a central processing unit (CPU) 920 according to an embodiment of the present invention. ), A RAM 930, a user interface 940, and a system bus 950 that electrically connects these components.

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

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

도 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 electronic system 900 ′ shown in FIG. 15A has a configuration similar to that of the electronic system 900 shown in FIG. 14, differences will be mainly described in order to avoid duplication of explanation.

도 15a에 도시된 전자 시스템(900')은 도 14에 도시된 전자 시스템(900)에 비하여, RAID 컨트롤러 카드(960)를 더 구비한다. 반도체 저장 장치(10)는 호스트와 직접 인터페이스하는 것이 아니라, RAID 컨트롤러 카드(960)에 장착되어, RAID 컨트롤러 카드(960)를 통하여 호스트와 인터페이스할 수 있다. 이 때, RAID 컨트롤러 카드(960)에는 복수(2이상)의 반도체 저장 장치들(10-1~10-k, k는 2이상의 정수)이 장착될 수 있다. 도 15a에 도시된 전자 시스템(900')의 RAID 컨트롤러 카드(960)는 반도체 저장 장치들(10-1~10-k)의 외부에 별도의 제품으로 구현된다.The electronic system 900 ′ shown in FIG. 15A further includes a RAID controller card 960 as compared to the electronic system 900 shown in FIG. 14. The semiconductor storage device 10 may not be directly interfaced with the host but may be mounted in the RAID controller card 960 to interface with the host through the RAID controller card 960. In this case, a plurality of (two or more) semiconductor storage devices 10-1 to 10-k, and k is an integer of two or more, may be mounted in the RAID controller card 960. The RAID controller card 960 of the electronic system 900 ′ shown in FIG. 15A is implemented as a separate product outside the semiconductor storage devices 10-1 through 10-k.

도 15b에 도시된 전자 시스템(900")은 도 15a에 도시된 전자 시스템(900')과 유사한 구성을 가지므로, 설명의 중복을 피하기 위하여 차이점을 위주로 기술한다.Since the electronic system 900 ″ shown in FIG. 15B has a similar configuration to that of the electronic system 900 ′ shown in FIG. 15A, the differences will be mainly described in order to avoid duplication of explanation.

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

이와 같이 RAID 컨트롤러 카드(960)가 구비되는 경우, 상술한 본 발명의 실시예에 따른 성능 조절 방법이 RAID 컨트롤러 카드(960)에 의해 구현될 수 있다. 이를 위해, 상술한 타이머, 및 성능 조절 모듈 등이 RAID 컨트롤러 카드(960) 내에 구비될 수 있다.As such, when the RAID controller card 960 is provided, the above-described performance adjusting method according to the embodiment of the present invention may be implemented by the RAID controller card 960. To this end, the above-described timer, performance control module, etc. may be provided in the RAID controller card 960.

도 16은 본 발명의 실시예에 따른 반도체 저장 장치(10)를 구비하는 컴퓨팅 시스템(1000, PC)의 블록도이다. 이를 참조하면, 컴퓨팅 시스템(1000)은 중앙 처리 장치(Central Processing Unit, 1110), AGP 장치(Accelerated Graphics Port, 1120), 메인 메모리(1130), 노스 브리지(north bridge, 1140), 반도체 저장 장치(예컨대, SSD, 10), 키보드 컨트롤러(1160), 프린터 컨트롤러(1170), 및 사우스 브리지(1180) 등을 포함한다. 16 is a block diagram of a computing system 1000 (PC) having a semiconductor storage device 10 according to an embodiment of the present invention. Referring to this, the computing system 1000 may include a central processing unit 1110, an accelerated graphics port 1120, a main memory 1130, a north bridge 1140, and a semiconductor storage device 1. For example, the SSD 10, a keyboard controller 1160, a printer controller 1170, and a south bridge 1180 may be included.

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

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

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

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

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

발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.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
저장장치 인터페이스 : 240
Semiconductor 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.
제1항에 있어서,
상기 미리 정해진 기준은 최소 레벨이고,
상기 컨트롤러는
상기 산출된 성능 레벨을 상기 최소 레벨과 비교하며,상기 비교 결과, 상기 산출된 성능 레벨이 상기 최소 레벨보다 낮으면 상기 최소 레벨을 상기 업데이트된 성능 레벨로 결정하고, 상기 산출된 성능 레벨이 상기 최소 레벨보다 높거나 같으면 상기 산출된 성능 레벨을 상기 업데이트된 성능 레벨로 결정하는 성능 조절 모듈을 포함하는 반도체 저장 장치.
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.
제1항에 있어서,
상기 미리 정해진 기준은 최소 레벨이고,
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 상기 최소 레벨과 비교하며, 상기 비교 결과, 상기 산출된 성능 레벨이 상기 최소 레벨보다 낮으면 상기 최소 레벨을 상기 업데이트된 성능 레벨로 결정하고, 상기 산출된 성능 레벨이 상기 최소 레벨보다 높거나 같으면 상기 산출된 성능 레벨을 상기 업데이트된 성능 레벨로 결정하는 반도체 저장 장치.
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.
제4항에 있어서, 상기 제1 성능 레벨은
현재 적용되고 있는 성능 레벨이고, 상기 제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.
제5항에 있어서,
상기 미리 정해진 기준은 제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.
제5항에 있어서,
상기 미리 정해진 기준은 제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.
제6항 또는 제7항에 있어서, 상기 제1 기준차는
상기 제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.
제6항 또는 제7항에 있어서, 상기 제1 기준차는
호스트로부터의 명령 또는 복수 회 이상의 성능 조절 결과에 따라 변경되는 반도체 저장 장치.
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.
제10항에 있어서,
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는, 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하고,
상기 산출된 성능 레벨과 제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.
제10항에 있어서, 상기 컨트롤러는
상기 새로운 성능 레벨을 산출하고 미리 정해진 복수의 디스크리트 레벨들 중 상기 산출된 성능 레벨과 가장 가까운 디스크리트 레벨을 선택하고,
상기 산출된 성능 레벨과 제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.
제13항에 있어서,
상기 비휘발성 메모리 장치는 성능 조절 프로그램 코드를 저장하며,
상기 컨트롤러는, 상기 성능 조절 프로그램 코드를 실행하여, 상기 새로운 성능 레벨을 산출하고, 상기 산출된 성능 레벨을 이용하여 상기 제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.
제13항에 있어서, 상기 반도체 저장 장치는
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.
제20항에 있어서,
상기 미리 정해진 기준은 최소 레벨이고,
상기 (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.
제20항에 있어서,
상기 미리 정해진 기준은 최대 레벨이고,
상기 (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.
제20항에 있어서, 상기 성능 레벨은
상기 반도체 저장 장치의 쓰기 성능 레벨로서, 단위시간당 처리되는 쓰기 명령의 수, 단위 시간당 기록되는 데이터 량, 또는 복수의 레벨값 중 어느 하나로 표시되는 반도체 저장 장치의 성능 조절 방법.
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.
제20항에 있어서, 상기 성능 레벨은
상기 반도체 저장 장치의 읽기 성능 레벨로서, 단위시간당 처리되는 읽기 명령의 수, 단위 시간당 독출되는 데이터 량, 또는 복수의 레벨값 중 어느 하나로 표시되는 반도체 저장 장치의 성능 조절 방법.
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.
제25항에 있어서,
상기 미리 정해진 기준은 제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.
제26항에 있어서, 상기 제1 기준차는
상기 제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.
제26항에 있어서, 상기 방법은
상기 제1 기준차를 변경시키는 단계를 더 포함하는 반도체 저장 장치의 성능 조절 방법.
27. The method of claim 26, wherein the method
And changing the first reference difference.
제28항에 있어서, 상기 제1 기준차를 변경시키는 단계는
상기 제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.
제29항에 있어서, 상기 제2 기준차는
상기 제1 기준차의 1/2 이하인 것을 특징으로 하는 반도체 저장 장치의 성능 조절 방법.
The method of claim 29, wherein the second reference difference is
And less than 1/2 of the first reference difference.
제28항에 있어서, 상기 제1 기준차를 변경시키는 단계는
상기 제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.
제31항에 있어서, 상기 제3 기준차는
상기 제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.
제33항에 있어서, 상기 (d) 단계는
상기 선택된 디스크리트 레벨과 상기 제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.
제34항에 있어서, 상기 방법은
상기 제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.
제35항에 있어서, 상기 적어도 하나의 중간 레벨 각각은 미리 정해진 최소 시간 동안 적용되는 반도체 저장 장치의 성능 조절 방법.36. The method of claim 35, wherein each of the at least one intermediate level is applied for a predetermined minimum time. 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하는 반도체 저장 장치의 성능 조절 방법에 있어서,
(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.
제37항에 있어서, 상기 주기는
호스트로부터 수신된 주기 설정 명령에 응답하여 설정되는 것을 특징으로 하는 성능 조절 방법.
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.
제37항에 있어서, 상기 방법은
상기 주기마다 상기 (a) 내지 (d) 단계를 실행하는 것을 특징으로 하는 성능 조절 방법.
The method of claim 37, wherein the method is
And performing steps (a) to (d) at each cycle.
제20항 내지 제39항 중 어느 하나의 항에 기재된 반도체 저장 장치의 성능 조절 방법을 실행하기 위한 프로그램을 기록한 기록 매체.A recording medium on which a program for executing the performance adjusting method of the semiconductor storage device according to any one of claims 20 to 39 is recorded.
KR1020100080699A 2010-08-20 2010-08-20 Semiconductor storage device and method for throttling performance of the semiconductor storage device Active KR101702393B1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020100080699A KR101702393B1 (en) 2010-08-20 2010-08-20 Semiconductor storage device and method for throttling performance of the semiconductor storage device
US13/166,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)

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

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

Patent Citations (1)

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

Cited By (1)

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