KR20180031289A - 스토리지 장치 및 상기 스토리지 장치의 동작 방법 - Google Patents
스토리지 장치 및 상기 스토리지 장치의 동작 방법 Download PDFInfo
- Publication number
- KR20180031289A KR20180031289A KR1020160119560A KR20160119560A KR20180031289A KR 20180031289 A KR20180031289 A KR 20180031289A KR 1020160119560 A KR1020160119560 A KR 1020160119560A KR 20160119560 A KR20160119560 A KR 20160119560A KR 20180031289 A KR20180031289 A KR 20180031289A
- Authority
- KR
- South Korea
- Prior art keywords
- write
- memory
- area
- slc
- data
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/109—Control signal input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- G06F2003/0691—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
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)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
본 개시에 따른 제1 및 제2 메모리 영역들을 포함하는 스토리지 장치의 동작 방법은, 호스트부터 기입 요청 및 기입 데이터를 수신하고, 수신된 기입 데이터에 대해 제1 메모리 영역과 제2 메모리 영역 사이의 기입 비율(write ratio)을 동적으로 조절하며, 조절된 기입 비율에 따라 혼합된 제1 및 제2 메모리 영역들에 기입 데이터를 기입하고, 제1 메모리 영역은 제1 기입 속도를 갖는 메모리 셀들을 포함하고, 제2 메모리 영역은 제1 기입 속도와 다른 제2 기입 속도를 갖는 메모리 셀들을 포함한다.
Description
본 개시의 기술적 사상은 스토리지 장치에 관한 것이며, 더욱 상세하게는, 상이한 성능을 가진 메모리 영역들에 데이터를 혼합 기입(mixed write)하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법에 관한 것이다.
컴퓨터 시스템은 다양한 형태의 메모리 시스템을 포함할 수 있고, 메모리 시스템은 메모리와 컨트롤러를 포함한다. 메모리 장치는 데이터를 저장하는데 사용되며, 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분된다. 메모리 장치는 상이한 성능을 가진 제1 및 제2 메모리 영역들을 포함할 수 있는데, 이때, 제1 메모리 영역에 대한 기입 속도와 제2 메모리 영역에 대한 기입 속도는 서로 다를 수 있다.
본 개시의 기술적 사상은 상이한 성능을 가진 메모리 영역들을 포함하는 스토리지 장치의 성능, 수명 및 버퍼 사이즈를 동적으로 제어할 수 있는 스토리지 장치 및 상기 스토리지 장치의 동작 방법을 제공한다.
본 개시의 기술적 사상에 따른 스토리지 장치의 동작 방법은 제1 및 제2 메모리 영역들을 포함하는 스토리지 장치의 동작 방법으로서, 호스트부터 기입 요청 및 기입 데이터를 수신하는 단계, 수신된 상기 기입 데이터에 대해, 상기 제1 메모리 영역과 상기 제2 메모리 영역 사이의 기입 비율(write ratio)을 동적으로 조절하는 단계, 및 조절된 상기 기입 비율에 따라 혼합된 상기 제1 및 제2 메모리 영역들에, 상기 기입 데이터를 기입하는 단계를 포함하고, 상기 제1 메모리 영역은 제1 기입 속도를 갖는 메모리 셀들을 포함하고, 상기 제2 메모리 영역은 상기 제1 기입 속도와 다른 제2 기입 속도를 갖는 메모리 셀들을 포함한다.
또한, 본 개시의 기술적 사상에 따른 스토리지 장치의 동작 방법은 제1 및 제2 메모리 영역들을 포함하는 스토리지 장치의 동작 방법으로서, 제1 주기 동안 호스트로부터 수신되는 기입 요청 및 기입 데이터에 기초하여, 상기 스토리지 장치에 대한 워크로드를 모니터링하는 단계, 모니터링된 상기 워크로드에 기초하여, 상기 기입 데이터에 대해 상기 제1 메모리 영역과 상기 제2 메모리 영역 사이의 기입 비율을 동적으로 조절하는 단계, 및 조절된 상기 기입 비율에 따라 혼합된 상기 제1 및 제2 메모리 영역들에 상기 기입 데이터를 기입하는 단계를 포함하고, 상기 제1 메모리 영역은 제1 기입 속도를 갖는 메모리 셀들을 포함하고, 상기 제2 메모리 영역은 상기 제1 기입 속도와 다른 제2 기입 속도를 갖는 메모리 셀들을 포함한다.
또한, 본 개시의 기술적 사상에 따른 스토리지 장치는 제1 기입 속도를 갖는 메모리 셀들을 포함하는 제1 메모리 영역, 및 상기 제1 기입 속도와 다른 제2 기입 속도를 갖는 메모리 셀들을 포함하는 제2 메모리 영역을 포함하는 메모리, 및 호스트로부터 기입 요청 및 기입 데이터를 수신하고, 수신된 상기 기입 데이터에 대해 상기 제1 메모리 영역과 상기 제2 메모리 영역 사이의 기입 비율을 동적으로 조절하며, 조절된 상기 기입 비율에 따라 혼합된 상기 제1 및 제2 메모리 영역들에 상기 기입 데이터를 기입하도록 상기 메모리를 제어하는 컨트롤러를 포함한다.
본 개시의 기술적 사상에 따르면, 상이한 성능을 가진 메모리 영역들 사이의 기입 비율을 동적으로 조절함으로써, 스토리지 장치의 성능, 수명 및 버퍼 사이즈를 동적으로 제어할 수 있다. 구체적으로, 호스트의 요구 조건 및/또는 스토리지 장치의 자체 판단에 따라 결정된 기입 비율에 따라 혼합된 메모리 영역들에 데이터를 기입함으로써 스토리지 장치의 성능, 수명 및 버퍼 사이즈를 최적화할 수 있다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 일 예를 나타내는 블록도이다.
도 3a 및 도 3b는 도 2의 메모리의 예들을 나타낸다.
도 4는 도 2의 컨트롤러의 일 예를 더욱 상세하게 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 도 2의 메모리에 대한 SLC 기입 동작 및 혼합 기입 동작들을 나타낸다.
도 6은 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 혼합 기입 동작들을 나타낸다.
도 7a 및 도 7b는 본 개시의 일 실시예에 따라, 도 5에 예시된 SLC 기입 동작 및 혼합 기입 동작을 각각 나타낸다.
도 8a 내지 도 8c는 본 개시의 일부 실시예들에 따른 혼합 기입 동작 및 마이그레이션 동작을 나타낸다.
도 9는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 기입 동작을 수행하는 경우, 버퍼 사이즈와 성능의 관계를 나타내는 그래프이다.
도 9는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 혼합 기입 동작을 나타낸다.
도 10은 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 스토리지 장치의 수명을 나타내는 그래프이다.
도 11은 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 스토리지 장치의 성능, 버퍼 사이즈 및 수명을 나타내는 그래프이다.
도 12는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 13은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 호스트와 스토리지 장치 사이의 동작을 나타내는 흐름도이다.
도 13은 도 12의 단계 S120에서 제공되는 정보의 일 예를 나타내는 테이블이다.
도 14는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 15는 도 14의 단계 S210에서 제공되는 정보의 일 예를 나타내는 테이블이다.
도 16은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 17은 본 개시의 일 실시예에 따라, 시간에 따라 기입 비율이 변하는 경우 스토리지 장치의 수명을 나타내는 그래프이다.
도 18은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예를 나타내는 블록도이다.
도 19는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 도 18의메모리 들에 대한 혼합 기입 동작들을 나타낸다.
도 20은 본 개시의 일 실시예에 따라, 도 19에 예시된 혼합 기입 동작을 나타낸다.
도 21은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예를 나타내는 블록도이다.
도 22는 도 21의 워크로드 모니터에 적용되는 제1 및 제2 주기들을 나타내는 그래프이다.
도 23a 내지 도 23c는 본 개시의 일 실시예에 따라, 워크로드에 따른 스토리지 장치의 동작을 나타내는 그래프들이다.
도 24는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 25는 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예를 나타내는 블록도이다.
도 26은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예를 나타내는 블록도이다.
도 27은 본 개시의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 일 예를 나타내는 블록도이다.
도 3a 및 도 3b는 도 2의 메모리의 예들을 나타낸다.
도 4는 도 2의 컨트롤러의 일 예를 더욱 상세하게 나타내는 블록도이다.
도 5는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 도 2의 메모리에 대한 SLC 기입 동작 및 혼합 기입 동작들을 나타낸다.
도 6은 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 혼합 기입 동작들을 나타낸다.
도 7a 및 도 7b는 본 개시의 일 실시예에 따라, 도 5에 예시된 SLC 기입 동작 및 혼합 기입 동작을 각각 나타낸다.
도 8a 내지 도 8c는 본 개시의 일부 실시예들에 따른 혼합 기입 동작 및 마이그레이션 동작을 나타낸다.
도 9는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 기입 동작을 수행하는 경우, 버퍼 사이즈와 성능의 관계를 나타내는 그래프이다.
도 9는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 혼합 기입 동작을 나타낸다.
도 10은 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 스토리지 장치의 수명을 나타내는 그래프이다.
도 11은 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 스토리지 장치의 성능, 버퍼 사이즈 및 수명을 나타내는 그래프이다.
도 12는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 13은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 호스트와 스토리지 장치 사이의 동작을 나타내는 흐름도이다.
도 13은 도 12의 단계 S120에서 제공되는 정보의 일 예를 나타내는 테이블이다.
도 14는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 15는 도 14의 단계 S210에서 제공되는 정보의 일 예를 나타내는 테이블이다.
도 16은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 17은 본 개시의 일 실시예에 따라, 시간에 따라 기입 비율이 변하는 경우 스토리지 장치의 수명을 나타내는 그래프이다.
도 18은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예를 나타내는 블록도이다.
도 19는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 도 18의메모리 들에 대한 혼합 기입 동작들을 나타낸다.
도 20은 본 개시의 일 실시예에 따라, 도 19에 예시된 혼합 기입 동작을 나타낸다.
도 21은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예를 나타내는 블록도이다.
도 22는 도 21의 워크로드 모니터에 적용되는 제1 및 제2 주기들을 나타내는 그래프이다.
도 23a 내지 도 23c는 본 개시의 일 실시예에 따라, 워크로드에 따른 스토리지 장치의 동작을 나타내는 그래프들이다.
도 24는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 25는 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예를 나타내는 블록도이다.
도 26은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예를 나타내는 블록도이다.
도 27은 본 개시의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예들에 대해 상세히 설명한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고, 이에 대한 중복된 설명은 생략한다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템(10)을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(10)은 스토리지 장치(100) 및 호스트(200)를 포함한다. 스토리지 시스템(10)은 예를 들어, PC(personal computer), 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book) 등과 같은 전자 장치로 구현될 수 있다. 또한, 스토리지 시스템(10)은 예를 들어, 손목 시계 또는 HMD(Head-Mounted Display)와 같은 웨어러블 기기와 같은 전자 장치로 구현될 수도 있다.
스토리지 장치(100)는 컨트롤러(110) 및 메모리(120)를 포함할 수 있다. 메모리(120)는 성능이 서로 다른 제1 및 제2 메모리 영역들(121, 122)을 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 스토리지 장치(100)는 제1 및 제2 메모리 영역들(121, 122) 외의 다른 메모리 영역들을 더 포함할 수도 있다. 본 실시예에서, 제1 메모리 영역(121)은 제1 기입 속도를 갖는 메모리 셀들을 포함할 수 있고, 제2 메모리 영역(122)은 제1 기입 속도와 다른 제2 기입 속도를 갖는 메모리 셀들을 포함할 수 있다.
일부 실시예들에서, 제1 및 제2 메모리 영역들(121, 122)은 단일 메모리 칩에 구현될 수 있다. 예를 들어, 제1 메모리 영역(121)은 단일 메모리 칩의 일부 블록 또는 페이지에 대응할 수 있고, 제2 메모리 영역(122)은 단일 메모리 칩의 다른 일부 블록 또는 페이지에 대응할 수 있다. 일부 실시예들에서, 제1 및 제2 메모리 영역들(121, 122)은 서로 다른 칩들로 각각 구현될 수 있다. 일 실시예에서, 제1 메모리 영역(121)는 휘발성 메모리이고, 제2 메모리 영역(122)는 비휘발성 메모리일 수 있다. 일 실시예에서, 제1 및 제2 메모리들(121, 122)은 휘발성 메모리들일 수 있다. 일 실시예에서, 제1 및 제2 메모리들(121, 122)은 비휘발성 메모리들일 수 있다.
일 실시예에서, 제1 및 제2 메모리 영역들(121, 122)은 동종 메모리(예를 들어, planar NAND 또는 VNAND)일 수 있다. 이때, 제1 메모리 영역(121)에 포함되는 각 메모리 셀에 기입 가능한 비트의 개수와, 제2 메모리 영역(122)에 포함되는 각 메모리 셀에 기입 가능한 비트의 개수는 서로 다를 수 있다. 예를 들어, 제1 메모리 영역(121)은 SLC(Single Level Cell) 영역이고, 제2 메모리 영역(122)은 MLC(Multi Level Cell) 영역 또는 TLC(Triple Level Cell) 영역일 수 있다. 다른 예를 들어, 제1 메모리 영역(121)은 고속(fast) SLC 영역이고, 제2 메모리 영역(122)은 저속(slow) SLC 영역일 수 있다.
일 실시예에서, 제1 및 제2 메모리 영역들(121, 122)은 성능이 다른 이종 메모리일 수 있고, 예를 들어, 제1 메모리 영역(121)은 LLNAND(Low Latency NAND) 플래시 메모리이고, 제2 메모리 영역(122)은 VNAND(Vertical NAND) 플래시 메모리일 수 있다. 일 실시예에서, 제1 및 제2 메모리 영역들(121, 122)은 특성이 다른 이종 메모리일 수 있다. 예를 들어, 제1 메모리 영역(121)은 PRAM에 대응하고, 제2 메모리 영역(122)은 NAND 플래시 메모리에 대응할 수 있다. 다른 예를 들어, 제1 메모리 영역(121)은 SRAM에 대응하고, 제2 메모리 영역(122)은 DRAM에 대응하며, 메모리(120)는 캐시 장치일 수 있다.
컨트롤러(110)는 호스트(200)로부터 수신한 기입 요청에 응답하여 메모리(120)에 데이터를 기입하도록 메모리(120)를 제어할 수 있다. 본 실시예에서, 컨트롤러(110)는 기입 비율 관리자(write ratio manager)(111)를 포함할 수 있다. 기입 비율 관리자(111)는 기입 데이터에 대하여, 제1 메모리 영역(121)과 제2 메모리 영역(122) 사이의 기입 비율을 동적으로 조절할 수 있다. 여기서, '기입 비율'은 제1 메모리 영역(121)에 기입될 데이터 양과 제2 메모리 영역(122)에 기입될 데이터 양의 비율로 정의할 수 있다. 이때, 기입 비율은 X:Y로 표시할 수 있고, X, Y는 0 이상일 수 있다. 또한, 기입 비율 관리자(111)는 조절된 기입 비율에 따라 혼합된 제1 및 제2 메모리 영역들(121, 122)에 기입 데이터를 기입하도록 메모리(120)를 제어할 수 있다.
일부 실시예들에서, 스토리지 장치(100)는 전자 장치에 내장되는(embedded) 내부(internal) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 임베디드 UFS(Universal Flash Storage) 메모리 장치, eMMC(embedded Multi-Media Card), 또는 SSD(Solid State Drive)일 수 있다. 일부 실시예들에서, 스토리지 장치(100)는 전자 장치에 착탈 가능한 외장(external) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 및 메모리 스틱(Memory Stick) 중 적어도 하나를 포함할 수 있다.
그러나, 본 개시의 기술적 사상은 스토리지 장치에 한정되지 않으며, 다른 메모리 장치에도 적용될 수 있다. 일부 실시예에서, 본 개시의 기술적 사상은 고속 메모리(예를 들어, SRAM)과 저속 메모리(예를 들어, DRAM)를 포함하는 캐시 메모리에 적용될 수 있다. 이 경우, CPU 등과 같은 프로세서는 현재 실행 중인 어플리케이션의 종류 또는 동작 환경 등을 기초로 고속 메모리와 저속 메모리 사이의 기입 비율을 동적으로 조절할 수 있다.
도 2는 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 일 예(100A)를 나타내는 블록도이다.
도 2를 참조하면, 스토리지 장치(100A)는 컨트롤러(110) 및 메모리(120)를 포함할 수 있고, 메모리(120)는 SLC 영역(121) 및 TLC 영역(122)을 포함할 수 있다. SLC 영역(121)은 도 1의 제1 메모리 영역(121)의 일 예에 대응하며, TLC 영역(122)은 도 1의 제2 메모리 영역(122)의 일 예에 대응한다. 그러나, 본 발명은 이에 한정되지 않으며, 메모리(120)에 포함되는 제2 메모리 영역(122)은 MLC 영역일 수도 있다. SLC 영역(121)에 각각 1 비트 데이터를 저장하는 복수의 SLC들을 포함하고, TLC 영역(122)은 각각 3 비트 데이터를 저장하는 복수의 TLC들을 포함한다. SLC 영역(121)에 대한 제1 기입 속도는 TLC 영역(122)에 대한 제2 기입 속도보다 빠르다.
본 실시예에 따르면, SLC 영역(121)과 TLC 영역(122) 사이의 기입 속도 차이에 기초하여, SLC 영역(121)과 TLC 영역(122)에 대한 혼합 기입(mixed write) 동작을 수행할 수 있다. 기입 비율 관리자(111)는 호스트(200)의 요구 조건 또는 스토리지 장치(100A)의 내부 판단에 따라 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율을 동적으로 조절할 수 있고, 데이터는 기입 비율에 따라 혼합된 SLC 영역(121)과 TLC 영역(122)에 저장될 수 있다. 이와 같이, 기입 비율을 동적으로 조절함으로써, SLC 영역(121)의 소모 속도를 조절할 수 있고, 이로써, 스토리지 장치(100A)의 성능, 수명 및 버퍼 사이즈를 제어할 수 있다.
구체적으로, 혼합 기입 동작에서 TLC 영역(121)에 대한 SLC 영역(121)의 기입 비율을 증가시키면 기입 속도가 빠른 SLC 영역(121)에 더 많은 양의 데이터가 기입될 수 있다. 이에 따라, 스토리지 장치(100A)의 전체적인 기입 성능(즉, 기입 속도)이 향상될 수 있는 반면, SLC 영역(121)이 빠르게 소모되므로 SLC 영역(121)에서 TLC 영역(122)으로의 마이그레이션 동작이 수행되는 시점이 빨라지게 된다. 이에 따라, SLC 영역(121)의 수명이 줄어들게 되고, 결과적으로, 스토리지 장치(100A)의 수명이 줄어들게 된다. 그러므로, 본 실시예에서는, 원하는 성능, 버퍼 사이즈, 수명 등을 제공하도록 기입 비율을 동적으로 조절하고, 조절된 기입 비율에 따라 혼합된 SLC 영역(121)과 TLC 영역(122)에 기입 데이터를 기입할 수 있다.
도 3a은 도 2의 메모리의 일 예(120a)를 나타내고, 도 3b는 도 2의 메모리의 다른 예(120b)를 나타낸다.
도 3a를 참조하면, 메모리(120a)는 SLC 영역(121a) 및 TLC 영역(122a)를 포함하고, SLC 영역(121a)은 복수의 SLC 블록들(SLC_BLK1 내지 SLC_BLKi)을 포함하고, TLC 영역(122a)은 복수의 TLC 블록들(TLC_BLK1 내지 TLC_BLKj)을 포함할 수 있다. 도 3b를 참조하면, 메모리(120b)는 복수의 블록들(123)을 포함할 수 있고, 필요에 따라 각 블록을 SLC 블록 또는 TLC 블록으로 사용할 수 있다.
도 4는 도 2의 컨트롤러의 일 예(110a)를 더욱 상세하게 나타내는 블록도이다.
도 4를 참조하면, 컨트롤러(110a)는 기입 비율 관리자(111), 프로세서(112), 램(RAM)(113), 호스트 인터페이스(114) 및 메모리 인터페이스(115)를 포함할 수 있고, 이들은 버스(116)를 통해 서로 통신할 수 있다. 프로세서(112)은 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있으며, 컨트롤러(110a)의 전반적인 동작을 제어할 수 있다. 램(113)은 프로세서(112)의 제어에 따라 동작하며, 워크(work) 메모리, 버퍼 메모리, 캐시 메모리 등으로 사용될 수 있고, 본 실시예에서, 램(113)에는 기입 비율 관리자(111)가 기입 비율 조절 동작을 수행하기 위해 필요한 데이터가 로딩될 수 있다. 호스트 인터페이스(114)는 호스트(예를 들어, 도 1의 200)와 컨트롤러(110a) 사이의 인터페이스를 제공할 수 있고, 메모리 인터페이스(115)는 컨트롤러(110a)와 메모리(120) 사이의 인터페이스를 제공할 수 있다.
도 2 및 도 4를 참조하면, 기입 비율 관리자(111)는 메모리(120)에 포함된 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율을 관리할 수 있다. 구체적으로, 기입 비율 관리자(111)는 호스트의 요구 조건 및/또는 스토리지 장치(100A)의 내부 판단에 따라 기입 비율을 동적으로 조절할 수 있다. 기입 비율 관리자(111)는 하드웨어, 소프트웨어 또는 펌웨어로 구현될 수 있고, 램(113)에서 구동될 수도 있다. 이하에서는, 도 5 내지 도 7c를 참조하여, 기입 비율 관리자(111)의 구체적인 동작에 대해 설명하기로 한다.
도 5는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 도 2의 메모리(110)에 대한 SLC 기입 동작 및 혼합 기입 동작들을 나타낸다.
도 2 및 도 5를 참조하면, SLC 기입 동작(51)은 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율이 1:0인 경우에 대응할 수 있다. 이 경우, 기입 데이터는 모두 SLC 영역(121)에만 저장될 수 있다. SLC 기입 동작(51)은 교번적이고 반복적인 데이터 입력 구간(D)과 데이터 프로그램 구간(PGM)을 포함할 수 있다. 데이터 입력 구간(D)은 컨트롤러(110)로부터 메모리(120)에 데이터가 입력되는 구간이고, 데이터 프로그램 구간(PGM)은 메모리(120)에 입력된 데이터가 SLC 영역(121)에 프로그램되는 구간이다. 기입 데이터는 컨트롤러(110)에서 복수의 데이터로 분할될 수 있고, 분할된 각 데이터는 데이터 입력 구간(D)마다 컨트롤러(110)에서 메모리(120)로 전달될 수 있다.
제1 혼합 기입 동작(52)은 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율이 X1:Y인 경우에 대응할 수 있고, X1와 Y는 1 이상의 정수일 수 있다. 이 경우, 기입 데이터는 X1:Y의 비율로 혼합된 SLC 영역(121) 및 TLC 영역(122)에 저장될 수 있다. 제1 혼합 기입 동작(52)은 교번적이고 반복적인 TLC 기입 구간(52a) 및 SLC 기입 구간(52b)을 포함할 수 있다. 즉, TLC 기입 구간(52a)이 종료하면 SLC 기입 구간(52b)이 시작되고, SLC 기입 구간(52b)이 종료하면 TLC 기입 구간(52a)이 시작될 수 있다. 이때, TLC 기입 구간(52a)과 SLC 기입 구간(52b) 사이의 전환은 워드 라인 단위로 이루어질 수 있다. 따라서, TLC 영역(122)에 포함된 일 워드 라인에 연결된 메모리 셀들에 대한 프로그램이 종료된 이후에 SLC 영역(121)에 포함된 일 워드 라인에 연결된 메모리 셀들에 대한 프로그램이 시작될 수 있다.
구체적으로, TLC 기입 구간(52a)은 TLC 영역(122)에 데이터를 저장하는 구간이고, SLC 기입 구간(52b)은 SLC 영역(121)에 데이터를 저장하는 구간이다. TLC 기입 구간(52a) 동안, 3 비트 데이터 입력, 제1 비트 데이터를 저장하는 제1 프로그램(first program), 3 비트 데이터 입력, 제2 비트 데이터를 저장하는 제2 프로그램(second program), 3 비트 데이터 입력, 및 제3 비트 데이터를 저장하는 제3 프로그램(third program)이 순차적으로 수행될 수 있다. 한편, SLC 기입 구간(52b) 동안, 싱글 비트 데이터 입력 및 싱글 비트 데이터를 저장하는 프로그램이 순차적으로 수행될 수 있다.
제2 혼합 기입 동작(53)은 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율이 X2:Y인 경우에 대응할 수 있고, X2와 Y는 1 이상의 정수이고, X2는 X1보다 클 수 있다. 이 경우, 기입 데이터는 X2:Y의 비율로 혼합된 SLC 영역(121) 및 TLC 영역(122)에 저장될 수 있다. 제2 혼합 기입 동작(53)은 교번적이고 반복적인 TLC 기입 구간(53a) 및 SLC 기입 구간(53b)을 포함할 수 있다. TLC 기입 구간(53a)은 TLC 기입 구간(52a)과 실질적으로 동일할 수 있고, SLC 기입 구간(53b) 동안에는 SLC 기입 구간(52b)보다 많은 양의 데이터가 프로그램될 수 있다.
제3 혼합 기입 동작(54)은 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율이 X3:Y인 경우에 대응할 수 있고, X3과 Y는 1 이상의 정수이고, X3은 X2보다 클 수 있다. 이 경우, 기입 데이터는 X3:Y의 비율로 혼합된 SLC 영역(121) 및 TLC 영역(122)에 저장될 수 있다. 제3 혼합 기입 동작(54)은 교번적이고 반복적인 TLC 기입 구간(54a) 및 SLC 기입 구간(54b)을 포함할 수 있다. TLC 기입 구간(54a)은 TLC 기입 구간(53a)과 실질적으로 동일할 수 있고, SLC 기입 구간(54b) 동안에는 SLC 기입 구간(53b)보다 많은 양의 데이터가 프로그램될 수 있다.
본 실시예에 따르면, 기입 비율 관리자(111)는 호스트의 요구 조건 및/또는 스토리지 장치(100A)의 내부 판단에 따라 기입 비율을 실시간으로 조절할 수 있고, 이에 따라, SLC 기입 동작(51) 및 제1 내지 제3 혼합 기입 동작들(52 내지 54) 중 하나가 선택될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 기입 비율 관리자(111)는 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율을 0:1로 조절할 수도 있고, 이에 따라, 기입 데이터를 TLC 영역(122)에만 저장할 수도 있다.
도 6은 본 개시의 일 실시예에 따른 복수의 기입 비율들에 따른 혼합 기입 동작들을 나타낸다. 구체적으로, 도 6은 도 2의 스토리지 장치(100A)가 TLC 영역(122) 대신 MLC 영역을 포함하는 경우의 혼합 기입 동작들을 나타낸다.
도 6을 참조하면, 제1 혼합 기입 동작(61)은 SLC 영역과 MLC 영역 사이의 기입 비율이 X1:Y인 경우에 대응할 수 있고, X1과 Y는 1 이상의 정수일 수 있다. 이 경우, 기입 데이터는, X1:Y의 비율로 혼합된 SLC 영역 및 MLC 영역에 저장될 수 있다. 제1 혼합 기입 동작(61)은 교번적이고 반복적인 MLC 기입 구간(61a) 및 SLC 기입 구간(61b)을 포함할 수 있다. 즉, MLC 기입 구간(61a)이 종료하면 SLC 기입 구간(61b)이 시작되고, SLC 기입 구간(61b)이 종료하면 MLC 기입 구간(61a)이 시작될 수 있다. 이때, MLC 기입 구간(61a)과 SLC 기입 구간(61b) 사이의 전환은 워드 라인 단위로 이루어질 수 있다. 따라서, MLC 영역에 포함된 일 워드 라인에 연결된 메모리 셀들에 대한 프로그램이 종료된 이후에 SLC 영역에 포함된 일 워드 라인에 연결된 메모리 셀들에 대한 프로그램이 시작될 수 있다.
구체적으로, MLC 기입 구간(61a)은 MLC 영역에 데이터를 저장하는 구간이고, SLC 기입 구간(61b)은 SLC 영역에 데이터를 저장하는 구간이다. MLC 기입 구간(61a) 동안, 2 비트 데이터 입력, 제1 비트 데이터를 저장하는 제1 프로그램, 2 비트 데이터 입력, 및 제2 비트 데이터를 저장하는 제2 프로그램이 순차적으로 수행될 수 있다. 한편, SLC 기입 구간(61b)에는, 교번적이고 반복적인 싱글 비트 데이터 입력 및 싱글 비트 데이터를 저장하는 프로그램이 수행될 수 있다.
제2 혼합 기입 동작(62)은 SLC 영역과 MLC 영역 사이의 기입 비율이 X2:Y인 경우에 대응할 수 있고, X2와 Y는 1 이상의 정수이고, X2는 X1보다 클 수 있다. 이 경우, 기입 데이터는, X2:Y의 비율로 혼합된 SLC 영역 및 MLC 영역에 저장될 수 있다. 제2 혼합 기입 동작(62)은 교번적이고 반복적인 MLC 기입 구간(62a) 및 SLC 기입 구간(62b)을 포함할 수 있다. MLC 기입 구간(62a)은 MLC 기입 구간(61a)과 실질적으로 동일할 수 있고, SLC 기입 구간(62b)에는 SLC 기입 구간(62b)보다 많은 양의 데이터가 프로그램될 수 있다.
제3 혼합 기입 동작(63)은 SLC 영역과 MLC 영역 사이의 기입 비율이 X3:Y인 경우에 대응할 수 있고, X3과 Y는 1 이상의 정수이고, X3은 X2보다 클 수 있다. 이 경우, 기입 데이터는, X3:Y의 비율로 혼합된 SLC 영역 및 MLC 영역에 저장될 수 있다. 제3 혼합 기입 동작(63)은 교번적이고 반복적인 MLC 기입 구간(63a) 및 SLC 기입 구간(63b)을 포함할 수 있다. MLC 기입 구간(63a)은 MLC 기입 구간(62a)과 실질적으로 동일할 수 있고, SLC 기입 구간(63b)에는 SLC 기입 구간(62b)보다 많은 양의 데이터가 프로그램될 수 있다.
본 실시예에 따르면, 기입 비율 관리자는 호스트의 요구 조건 및/또는 스토리지 장치의 내부 판단에 따라 기입 비율을 실시간으로 조절할 수 있고, 이에 따라, SLC 기입 동작 및 제1 내지 제3 혼합 기입 동작들(61 내지 63) 중 하나가 선택될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 기입 비율 관리자는 SLC 영역과 MLC 영역 사이의 기입 비율을 0:1로 조절할 수도 있고, 이에 따라, 기입 데이터를 MLC 영역에만 저장할 수도 있다.
도 7a 및 도 7b는 본 개시의 일 실시예에 따라, 도 5에 예시된 SLC 기입 동작 및 혼합 기입 동작을 각각 나타낸다.
도 7a를 참조하면, 도 5의 SLC 기입 동작(51)의 경우, 기입 데이터는 모두 SLC 영역(121)에 빠른 속도로 저장될 수 있다. 이어서, SLC 영역(121)에 저장된 데이터는 TLC 영역(122)으로 마이그레이션될 수 있다. 일 실시예에서, 마이그레이션 동작은 SLC 영역(121)의 여유 공간이 미리 설정된 공간(예를 들어, 30%) 이하인 경우 수행될 수 있다. SLC 영역(121)에 저장된 데이터가 TLC 영역(122)으로 마이그레이션되면 SLC 영역(121)에 여유 공간이 확보되므로, 이후에 수신된 기입 데이터는 모두 SLC 영역(121)에 빠른 속도로 저장될 수 있다. 따라서, SLC 영역(121)을 캐시 영역으로, TLC 영역(122)을 메인 영역으로 지칭하기도 한다.
마이그레이션 동작에 의해, SLC 영역(121)에 저장된 기입 데이터는 TLC 영역(122)에 다시 저장된다. 그러므로, 호스트에서 수신된 데이터의 용량에 비해 메모리(100A)에 실제 기입된 데이터의 용량이 증가하므로, WAF(Write Amplification Factor)가 커질 수 있다. 또한, 동일한 데이터가 SLC 영역(121)과 TLC 영역(122)에 중복적으로 기입되므로, 전력 소모가 증가할 수 있다. 나아가, 마이그레이션 동작에 의해, SLC 영역(121)에 여유 공간이 확보되면 SLC 영역(121)에 데이터가 또 저장되므로, SLC 영역(121)에 대한 프로그램/소거 사이클 카운트가 증가할 수 있다.
따라서, SLC 기입 동작을 수행하는 경우, SLC 영역(121)에 대한 빠른 기입 속도로 인해 스토리지 장치(100A)의 기입 성능은 아주 높은 반면, 일정한 고 성능을 유지할 수 있는 구간이 짧고, 일정한 고 성능을 제공할 수 있는 버퍼 사이즈가 작다. 또한, SLC 영역(121)에 대한 프로그램/소거 사이클 카운트의 증가로 인해 스토리지 장치(100A)의 수명은 짧아질 수 있다.
도 7b를 참조하면, 도 5의 제1 내지 제3 혼합 기입 동작들(52 내지 54)의 경우, 기입 데이터는 SLC 영역(121)과 TLC 영역(122)에 혼합 기입될 수 있다. 구체적으로, 기입 데이터의 복수의 부분 데이터로 분할되고, 분할된 복수의 부분 데이터는 컨트롤러(110)로부터 순차적으로 출력되며, 순차적으로 출력되는 부분 데이터들은 SLC 영역(121)과 TLC 영역(122)에 교번적으로 저장될 수 있다. 이어서, SLC 영역(121)에 저장된 데이터는 TLC 영역(122)으로 마이그레이션될 수 있다.
본 실시예에 따르면, 기입 데이터는 SLC 영역(121)과 TLC 영역(122)에 혼합 기입되므로, SLC 영역(121)에 기입되는 데이터의 양이 도 7a의 SLC 기입 동작에 비해 감소될 수 있고, 이에 따라, SLC 영역(121)의 소모 속도가 도 7a의 SLC 기입 동작에 비해 둔화될 수 있다. 따라서, 마이그레이션의 수행 시점이 도 7a의 SLC 기입 동작에 비해 늦춰질 수 있고, 이에 따라, WAF 및 전력 소모를 감소시킬 수 있고, SLC 영역(121)에 대한 프로그램/소거 사이클 카운트의 증가 속도도 둔화시킬 수 있다.
따라서, 혼합 기입 동작을 수행하는 경우, SLC 영역(121)에 대한 상대적으로 빠른 기입 속도와 TLC 영역(121)에 대한 상대적으로 느린 기입 속도의 혼합으로 인해, 스토리지 장치(100A)의 기입 성능을 도 7a에 비해서는 낮지만, 데이터를 TLC 영역(121)에만 기입하는 TLC 기입 동작에 비해 높게 유지할 수 있다. 또한, 스토리지 장치(100A)가 일정한 성능을 유지할 수 있는 구간이 도 7a에 비해 길고, 일정한 성능을 제공할 수 있는 버퍼 사이즈가 도 7a에 비해 크다. 나아가, SLC 영역(121)에 대한 프로그램/소거 사이클 카운트의 증가 속도를 둔화시킴으로써, SLC 영역(121)의 수명이 길어질 수 있고, 결과적으로, 스토리지 장치(100A)의 수명이 길어질 수 있다.
도 8a 내지 도 8c는 본 개시의 일부 실시예들에 따른 혼합 기입 동작 및 마이그레이션 동작을 나타낸다.
도 8a를 참조하면, 혼합 기입 동작은 SLC 영역(121) 및 TLC 영역(122)의 블록 단위로 수행될 수 있다. TLC 기입 구간(예를 들어, 도 5의 52a)에서, TLC 영역(122)의 제1 블록(BLK1)에 데이터가 저장될 수 있다. 이어서, SLC 기입 구간(예를 들어, 도 5의 52b)에서, SLC 영역(121)의 제1 블록(BLK1)에 다음 데이터가 저장될 수 있다. 이어서, TLC 기입 구간에서 TLC 영역(122)의 제2 블록(BLK2)에 데이터가 저장되고, SLC 기입 구간에서 SLC 영역(121)의 제2 블록(BLK2)에 데이터가 저장될 수 있다. 이와 같이, TLC 기입 동작과 SLC 기입 동작은 블록 단위로 번갈아 수행될 수 있고, 마이그레이션 시점에 SLC 영역(121)에 저장된 데이터가 TLC 영역(122)의 일부 블록(예를 들어, BLK4)으로 마이그레이션될 수 있다.
도 8b를 참조하면, 혼합 기입 동작은 SLC 영역(121) 및 TLC 영역(122)의 페이지 단위로 수행될 수 있다. TLC 기입 구간(예를 들어, 도 5의 52a)에서, TLC 영역(122)의 제1 페이지(PAGE1)에 데이터가 저장될 수 있다. 이어서, SLC 기입 구간(예를 들어, 도 5의 52b)에서, SLC 영역(121)의 제1 페이지(PAGE1)에 다음 데이터가 저장될 수 있다. 이어서, TLC 기입 구간에서 TLC 영역(122)의 제2 페이지(PAGE2)에 데이터가 저장되고, SLC 기입 구간에서 SLC 영역(121)의 제2 페이지(PAGE2)에 데이터가 저장될 수 있다. 이와 같이, TLC 기입 동작과 SLC 기입 동작은 페이지 단위로 번갈아 수행될 수 있고, 마이그레이션 시점에 SLC 영역(121)에 저장된 데이터가 TLC 영역(122)의 일부 페이지(예를 들어, PAGE4)으로 마이그레이션될 수 있다.
도 8c를 참조하면, 혼합 기입 동작은 SLC 영역(121) 및 TLC 영역(122)의 워드 라인 단위로 수행될 수 있다. TLC 기입 구간(예를 들어, 도 5의 52a)에서, TLC 영역(122)의 제1 워드 라인(WL1)에 연결된 셀들에 데이터가 저장될 수 있다. 이어서, SLC 기입 구간(예를 들어, 도 5의 52b)에서, SLC 영역(121)의 제1 워드 라인(WL1)에 연결된 셀들에 다음 데이터가 저장될 수 있다. 이어서, TLC 기입 구간에서 TLC 영역(122)의 제2 워드 라인(WL2)에 연결된 셀들에 데이터가 저장되고, SLC 기입 구간에서 SLC 영역(121)의 제2 워드 라인(WL2)에 연결된 셀들에 데이터가 저장될 수 있다. 이와 같이, TLC 기입 동작과 SLC 기입 동작은 워드 라인 단위로 번갈아 수행될 수 있고, 마이그레이션 시점에 SLC 영역(121)에 저장된 데이터가 TLC 영역(122)의 일부 워드 라인(예를 들어, WL4)에 연결된 셀들로 마이그레이션될 수 있다.
도 9는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 기입 동작을 수행하는 경우, 버퍼 사이즈와 성능의 관계를 나타내는 그래프이다.
도 9를 참조하면, 가로축은 버퍼 사이즈를 나타내고, 세로축은 성능을 나타낸다. 여기서, 버퍼 사이즈는 스토리지 장치(100A)의 사용량, 다시 말해, 스토리지 장치(100A)에 저장되는 데이터의 양으로서, 예를 들어, MB 단위로 나타낼 수 있다. 성능은 스토리지 장치(100A)의 기입 성능(즉, 기입 속도)일 수 있고, 예를 들어, MB/s 단위로 나타낼 수 있다. 이하에서는, 도 2 및 도 9를 참조하여 서로 다른 기입 비율들에서 버퍼 사이즈와 성능의 관계에 대해 설명하기로 한다.
호스트의 요구 조건 또는 스토리지 장치의 내부 판단에 따라 최대 성능이 요구되는 경우, 스토리지 장치(100A)는 기입 비율을 1:0으로 조절하여, 데이터를 SLC 영역(121)에만 기입하는 SLC 기입 동작(91)을 수행할 수 있다. 이 경우, SLC 영역(121)의 사용량이 제1 버퍼 사이즈(S1) 이하일 때까지 스토리지 장치(100A)는 제1 성능(P1)을 제공할 수 있다. 그러나, 실제로 사용자는 항상 최대 성능을 요구하지 않을 수 있는데, 그럼에도 불구하고, 기입 비율을 1:0으로 고정하여 SLC 기입 동작(91)을 수행할 경우 스토리지 장치(100A)의 수명이 짧아질 수 있고, 전력 소모가 증가할 수 있다. 본 실시예에 따르면, 최대 성능 미만의 성능이 요구되는 경우, 스토리지 장치(100A)는 요구되는 성능에 기초하여 기입 비율을 동적으로 조절하여 혼합 기입 동작들(92 내지 96)을 수행할 수 있다.
기입 비율이 5:1인 혼합 기입 동작(92)의 경우, SLC 영역(121) 및 TLC 영역(122)의 사용량이 제2 버퍼 사이즈(S2) 이하일 때까지 스토리지 장치(100A)는 제1 성능(P1)보다 낮은 제2 성능(P2)을 제공할 수 있다. 기입 비율이 4:1인 혼합 기입 동작(93)의 경우, SLC 영역(121) 및 TLC 영역(122)의 사용량이 제3 버퍼 사이즈(S3) 이하일 때까지 스토리지 장치(100A)는 제2 성능(P2)보다 낮은 제3 성능(P3)을 제공할 수 있다. 기입 비율이 3:1인 혼합 기입 동작(94)의 경우, SLC 영역(121) 및 TLC 영역(122)의 사용량이 제4 버퍼 사이즈(S4) 이하일 때까지 스토리지 장치(100A)는 제3 성능(P3)보다 낮은 제4 성능(P4)을 제공할 수 있다. 기입 비율이 2:1인 혼합 기입 동작(95)의 경우, SLC 영역(121) 및 TLC 영역(122)의 사용량이 제5 버퍼 사이즈(S5) 이하일 때까지 스토리지 장치(100A)는 제4 성능(P4)보다 낮은 제5 성능(P5)을 제공할 수 있다. 기입 비율이 1:1인 혼합 기입 동작(96)의 경우, SLC 영역(121) 및 TLC 영역(122)의 사용량이 제6 버퍼 사이즈(S6) 이하일 때까지 스토리지 장치(100A)는 제5 성능(P5)보다 낮은 제6 성능(P6)을 제공할 수 있다.
도 10은 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 스토리지 장치의 수명을 나타내는 그래프이다. 이하에서는, 도 2 및 도 10을 참조하여 서로 다른 기입 비율들에서 스토리지 장치(100A)의 수명에 대해 설명하기로 한다.
도 2 및 도 10을 참조하면, SLC 기입 동작(101)은 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율이 1:0인 경우로서, 데이터를 SLC 영역(121)에만 기입할 수 있다. 그러므로, SLC 영역(121)의 소모가 빠르고, SLC 영역(121)에서 TLC 영역(122)으로의 마이그레이션이 수행되는 시점이 상대적으로 빠르다. 이에 따라, SLC 영역(121)에 대한 프로그램/소거 싸이클 카운트가 빠르게 증가하므로, SLC 영역(121)의 수명이 L1으로 가장 짧을 수 있고, 결과적으로, 스토리지 장치(100A)의 수명이 가장 짧을 수 있다.
한편, 혼합 기입 동작들(102 내지 106)은 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율이 각각 5:1, 4:1, 3:1, 2:1, 1:1인 경우로서, 데이터를 SLC 영역(121)과 TLC 영역(122)에 기입할 수 있다. 그러므로, SLC 기입 동작(101)에 비해 SLC 영역(121)의 소모가 느리고, SLC 영역(121)에서 TLC 영역(122)으로의 마이그레이션이 수행되는 시점이 느리다. 이에 따라, SLC 영역(121)에 대한 프로그램/소거 싸이클 카운트가 느리게 증가하므로, SLC 영역(121)의 수명이 L1보다 길다. 전체 기입 데이터에서 SLC 영역(121)에 기입되는 데이터 양이 감소할수록, 즉, 기입 비율이 5:1에서 1:1로 갈수록, SLC 영역(121)의 수명이 증가할 수 있고, 결과적으로, 스토리지 장치(100A)의 수명이 증가할 수 있다. 따라서, 본 실시예에 따르면, 기입 비율 관리자(111)는 호스트의 요구 조건 또는 스토리지 장치(100A)의 내부 판단에 따라 기입 비율을 동적으로 조절함으로써, 스토리지 장치(100A)의 수명을 늘릴 수 있다.
도 11은 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 스토리지 장치의 성능, 버퍼 사이즈 및 수명을 나타내는 그래프이다. 이하에서는, 도 2 및 도 11을 참조하여 서로 다른 기입 비율들에서 스토리지 장치(100A)의 성능, 버퍼 사이즈 및 수명에 대해 설명하기로 한다.
도 2 및 도 11을 참조하면, SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율이 1:0인 SLC 기입 모드의 경우, 스토리지 장치(100A)의 성능이 가장 높은 반면, 버퍼 사이즈가 가장 작고, 수명이 가장 짧다. SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율이 N:1인 혼합 기입 모드의 경우, N이 감소할수록(즉, Z:1에서 X:1으로 갈수록), 스토리지 장치(100A)의 성능이 감소하는 반면, 버퍼 사이즈 및 수명이 증가할 수 있다. 한편, SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율이 0:1인 TLC 기입 모드의 경우, 스토리지 장치(100A)의 성능이 가장 낮은 반면, 버퍼 사이즈가 가장 크고, 수명이 가장 길다.
도 12는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 12를 참조하면, 본 실시예에 따른 스토리지 장치의 동작 방법은 스토리지 장치에 데이터를 기입하는 동작으로서, 예를 들어, 도 1의 스토리지 장치(100)에서 시계열적으로 수행되는 단계들을 포함할 수 있다. 도 1 내지 도 11을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있으며, 중복된 설명은 생략하기로 한다. 이하에서는, 도 1, 도 4 및 도 12를 참조하여 스토리지 장치의 동작 방법을 구체적으로 설명하기로 한다.
단계 S100에서, 호스트(200)로부터 기입 요청 및 기입 데이터를 수신한다. 구체적으로, 호스트 인터페이스(114)는 호스트(200)로부터 기입 요청 및 기입 데이터를 수신할 수 있다. 이때, 호스트(200)에서 현재 실행 중인 어플리케이션의 종류 또는 호스트(200)의 동작 환경에 따라 기입 데이터의 사이즈 및 기입 요청의 빈도가 다를 수 있다. 예를 들어, 호스트(200)에서 카메라 어플리케이션이 실행되는 경우, 호스트(200)는 사진 촬영 동작에 의해 생성된 데이터를 저장하기 위해 스토리지 장치(100)에 기입 요청 및 기입 데이터를 제공할 수 있고, 이 경우, 기입 데이터의 사이즈는 매우 클 수 있고, 기입 요청의 빈도가 상대적으로 높을 수 있다.
단계 S130에서, 기입 데이터에 대하여, 제1 메모리 영역(121)과 제2 메모리 영역(122) 사이의 기입 비율을 동적으로 조절한다. 이때, 제1 메모리 영역(121)은 제1 기입 속도를 갖는 메모리 셀들을 포함하고, 제2 메모리 영역(122)은 제1 기입 속도와 다른 제2 기입 속도를 갖는 메모리 셀들을 포함할 수 있다. 구체적으로, 기입 비율 관리자(111)는 호스트(200)의 요구 조건, 기입 데이터의 사이즈, 기입 요청의 빈도 및/또는 제1 및 제2 메모리 영역들(121, 122)의 상태 정보를 기초로 기입 비율을 동적으로 조절할 수 있다.
일 실시예에서, 기입 비율 관리자(111)는 호스트(200)로부터 수신되는 모드 정보에 따라 기입 비율을 조절할 수 있다. 일 실시예에서, 기입 비율 관리자(111)는 일정한 시간 주기로 기입 비율을 조절할 수 있다. 일 실시예에서, 기입 비율 관리자(111)는 기입 동작 중에 실시간으로 기입 비율을 조절할 수도 있다. 일 실시예에서, 기입 비율 관리자(111)는 램(113)에 버퍼링된 기입 데이터가 기준 용량을 초과하면 기입 비율을 조절할 수 있다. 일 실시예에서, 기입 비율 관리자(111)는 스토리지 장치(100)의 온도가 기준 범위를 벗어나면 기입 비율을 조절할 수 있다.
단계 S150에서, 기입 비율에 따라 혼합된 제1 및 제2 메모리 영역들(121, 122)에 기입 데이터를 기입한다. 구체적으로, 메모리 인터페이스(115)는 기입 데이터로부터 분할된 부분 데이터를 순차적으로 출력할 수 있고, 순차적으로 출력되는 부분 데이터들을 제1 및 제2 메모리 영역들(121, 122)에 번갈아 기입하도록 스토리지 장치(100)를 제어할 수 있다.
도 13은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 13을 참조하면, 본 실시예에 따른 동작 방법은 도 12의 방법의 일 구현 예에 대응할 수 있다. 구체적으로, 본 실시예에 따른 동작 방법은 도 12의 방법에 비해, 단계 S110을 더 포함할 수 있으며, 이하에서는, 본 실시예에 따른 동작 방법과 도 12의 방법의 차이점을 중심으로, 도 1 및 도 13을 참조하여 설명하기로 한다.
단계 S100에서, 호스트(200)로부터 기입 요청 및 기입 데이터를 수신한다. 단계 S110에서, 호스트(200)로부터 기입 모드 정보를 수신한다. 여기서, 기입 모드 정보는 제1 메모리 영역(121)과 제2 메모리 영역(122) 사이의 기입 비율을 조절하기 위한 정보일 수 있다. 일 실시예에서, 기입 모드 정보는 기입 비율을 지시하는 기입 모드를 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 기입 모드 정보는 호스트(200)가 원하는 최대 성능, 수명, 버퍼 사이즈 등일 수 있다. 일 실시예에서, 단계 S100과 S110은 실질적으로 동시에 수행될 수 있고, 스토리지 장치(100)는 호스트(200)로부터 기입 요청, 기입 데이터 및 기입 모드 정보를 수신할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 단계 S110은 단계 S100 이전에 수행될 수도 있다.
단계 S130에서, 기입 데이터에 대하여, 제1 메모리 영역(121)과 제2 메모리 영역(122) 사이의 기입 비율을 동적으로 조절한다. 구체적으로, 기입 비율 관리자(111)는 기입 모드 정보를 기초로 기입 비율을 동적으로 조절하여 호스트(200)가 원하는 스토리지 환경을 제공할 수 있다. 단계 S150에서, 기입 비율에 따라 혼합된 제1 및 제2 메모리 영역들(121, 122)에 기입 데이터를 기입한다. 이하에서는, 도 14 및 도 15를 참조하여, 본 실시예에 따른 호스트의 요구 조건에 따른 기입 비율의 조절 동작에 대해 더욱 자세하게 설명하기로 한다.
도 14는 본 개시의 일 실시예에 따른 호스트(200)와 스토리지 장치(100) 사이의 동작을 나타내는 흐름도이다. 도 15는 도 14의 단계 S210에서 제공되는 정보의 일 예를 나타내는 테이블이다.
도 14 및 도 15를 참조하면, 단계 S210에서, 스토리지 장치(100)는 호스트(200)에 스토리지 장치(100)의 성능, 버퍼 사이즈 및 수명 정보 중 적어도 하나를 제공한다. 일 실시예에서, 스토리지 장치(100)는 도 15에 예시된 테이블을 호스트(200)에 제공할 수 있다. 예를 들어, 제1 메모리 영역(121)은 SLC 영역이고, 제2 메모리 영역(122)은 TLC 영역일 수 있다. 여기서, '모드'는 호스트(200)가 선택할 수 있는 다양한 모드들을 나타내고, '타입'은 다양한 기입 비율들에 따른 SLC 기입 또는 혼합 기입을 나타내며, 'SLC 수명'은 각 모드에서 예상되는 SLC 영역의 수명이고, '성능'은 각 모드에서 예상되는 스토리지 장치(100)의 기입 성능(즉, 기입 속도)이며, '버퍼 사이즈'는 각 모드에서 예상되는 스토리지 장치(100)의 저장 공간을 나타낸다.
모드 1은 SLC 영역과 TLC 영역 사이의 기입 비율이 1:0인 SLC 기입 모드를 나타내고, 모드 2 내지 모드 7은 SLC 영역과 TLC 영역 사이의 기입 비율이 N:1인 혼합 기입 모드들을 나타낸다. 전체 기입 데이터 중 SLC 영역에 기입되는 데이터 양의 비율이 감소할수록, 즉, 모드 1에서 모드 7로 갈수록 SLC 수명은 증가하고(즉, LT1 < LT2 < LT3 < LT4 < LT5 < LT6 < LT7), 성능은 감소하며(즉, Perf1 > Perf2 > Perf3 > Perf4 > Perf5 > Perf6 > Perf7), 버퍼 사이즈는 증가한다(즉, BS1 < BS2 < BS3 < BS4 < BS5 < BS6 < BS7).
단계 S220에서, 호스트(200)는 필요 성능, 버퍼 사이즈 및 수명 중 적어도 하나를 판단한다. 호스트(200)에서 현재 실행 중인 어플리케이션의 종류 또는 호스트(200)의 동작 환경에 따라 요구되는 성능, 버퍼 사이즈 및 수명이 다를 수 있으므로, 호스트(200)는 현재 기입 요청에 대한 필요 성능, 버퍼 사이즈 및 수명 중 적어도 하나를 판단할 수 있다. 단계 S230에서, 호스트(200)는 기입 모드를 결정한다. 호스트(200)는 판단된 필요 성능, 버퍼 사이즈 및 수명에 기초하여 기입 모드를 결정할 수 있다.
단계 S240에서, 호스트(200)는 스토리지 장치(100)에 기입 모드를 전달한다. 예를 들어, 호스트(200)는 도 15에 예시된 모드 1 내지 모드 7 중 하나를 기입 모드로써 스토리지 장치(100)에 전달할 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 호스트(200)는 TLC 영역에만 데이터를 저장하는 TLC 기입 모드를 스토리지 장치(100)에 전달할 수도 있다. 일 실시예에서, 호스트(200)는 기입 요청, 기입 데이터와 함께 기입 모드를 전달할 수 있다. 일 실시예에서, 호스트(200)는 기입 요청 및 기입 데이터를 전달한 후에 기입 모드를 전달할 수 있다. 일 실시예에서, 호스트(200)는 기입 모드를 전달한 후에, 기입 요청 및 기입 데이터를 전달할 수 있다.
단계 S250에서, 스토리지 장치(100)는 기입 비율을 조정한다. 스토리지 장치(100)는 수신한 기입 모드에 기초하여, 제1 메모리 영역(121)과 제2 메모리 영역(122) 사이의 기입 비율을 동적으로 조절한다. 단계 S260에서, 스토리지 장치(100)는 호스트(200)에 원하는 성능, 버퍼 사이즈 및 수명 중 적어도 하나를 제공한다.
도 16은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 16을 참조하면, 본 실시예에 따른 동작 방법은 도 12의 방법의 일 구현 예에 대응할 수 있다. 구체적으로, 본 실시예에 따른 동작 방법은 도 12의 방법에 비해, 단계 S120을 더 포함할 수 있으며, 이하에서는, 본 실시예에 따른 동작 방법과 도 12의 방법의 차이점을 중심으로, 도 1 및 도 16을 참조하여 설명하기로 한다.
단계 S100에서, 호스트(200)로부터 기입 요청 및 기입 데이터를 수신한다. 단계 S120에서, 기입 데이터 및 제1 및 제2 메모리 영역들(121, 122)의 상태 정보를 모니터링한다. 일 실시예에서, 기입 비율 관리자(111)는 기입 데이터의 사이즈 및 기입 요청의 빈도를 모니터링할 수 있다. 일 실시예에서, 제1 및 제2 메모리 영역들(121, 122)의 상태 정보는 제1 및 제2 메모리 영역들(121, 122) 각각에 대한 프로그램/소거 싸이클 카운트, 제1 및 제2 메모리 영역들(121, 122) 각각의 프리(free) 블록의 개수, 제1 및 제2 메모리 영역들(121, 122)의 데이터 보유 시간(retention) 등을 포함할 수 있다.
단계 S140에서, 모니터링 결과를 기초로, 제1 메모리 영역(121)과 제2 메모리 영역(122) 사이의 기입 비율을 동적으로 조절한다. 구체적으로, 기입 비율 관리자(111)는 모니터링 결과를 기초로 기입 비율을 동적으로 조절하여 스토리지 장치(100)의 성능, 버퍼 사이즈, 수명을 제어할 수 있다. 단계 S150에서, 기입 비율에 따라 혼합된 제1 및 제2 메모리 영역들(121, 122)에 기입 데이터를 기입한다. 이하에서는, 도 17을 참조하여, 단계 S140에서 모니터링 결과를 기초로 기입 비율을 동적으로 조절하는 동작에 대해 더욱 자세하게 설명하기로 한다.
도 17은 본 개시의 일 실시예에 따라, 시간에 따라 기입 비율이 변하는 경우 스토리지 장치의 수명을 나타내는 그래프이다. 이하에서는, 도 2 및 도 17을 함께 참조하여 스토리지 장치의 수명 변화에 대해 설명하기로 한다.
도 17을 참조하면, 가로축은 시간이고, 세로축은 수명을 나타낸다. SLC 영역(121)에만 데이터를 기입하는 SLC 기입 모드(172)의 경우, 시간이 경과함에 따라 일정한 비율로 수명이 감소하게 된다. 본 개시의 일 실시예에 따르면, 기입 비율 관리자(111)는 기입 데이터, SLC 영역(121) 및 TLC 영역(122)의 상태 정보를 기초로 기입 비율을 동적으로 조절할 수 있다. 이에 따라, 기입 비율에 따라 혼합된 SLC 영역(121)과 TLC 영역(122)에 데이터를 기입하는 혼합 기입 모드(171)의 경우, SLC 기입 모드(172)에 비해 수명 감소 속도가 둔화될 수 있다.
구체적으로, 기입 비율 관리자(111)는 초반에는 SLC 영역(121)에만 데이터를 기입하도록 SLC 영역(121)과 TLC 영역(122) 사이의 기입 비율을 1:0으로 결정할 수 있고, 이에 따라, 스토리지 장치(100A)는 최대 성능을 제공할 수 있다. 시간이 경과하면 SLC 영역(121)에 대한 기입 동작 및 마이그레이션 동작의 반복 횟수가 증가할 수 있고, 이에 따라, SLC 영역(121)에 대한 프로그램/소거 싸이클 카운트가 최대 값에 근접할 수 있다. 이때, 기입 비율 관리자(111)는 전체 기입 데이터 중 SLC 영역(121)에 기입되는 데이터의 비율이 감소하도록 기입 비율을 Z:1, Y:1, X:1의 순서로 조절할 수 있다(Z>Y>X). 또한, 기입 비율 관리자(111)는 시간이 더 경과하면 TLC 영역(122)에만 데이터를 기입하도록 기입 비율을 0:1로 결정할 수 있다.
도 18은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예(100B)를 나타내는 블록도이다.
도 18을 참조하면, 스토리지 장치(100B)는 컨트롤러(110) 및 제1 내지 제4 메모리들(120 내지 150)을 포함할 수 있고, 컨트롤러(110')는 기입 비율 관리자(111')를 포함할 수 있다. 본 실시예에 따른 스토리지 장치(100B)는 도 2의 스토리지 장치(100A)의 변형 실시예이며, 도 2의 스토리지 장치(100A)와 달리 복수의 메모리들(120 내지 150)을 포함할 수 있고, 복수의 메모리들(120 내지 150)은 개별적인 메모리 칩들로 각각 구현될 수 있다. 일 실시예에서, 제1 내지 제4 메모리들(120 내지 150)은 제1 내지 제4 채널들을 통해 컨트롤러(110)에 연결될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 제1 내지 제4 메모리들(120 내지 150) 중 적어도 두 개는 하나의 채널을 공유할 수도 있다.
본 실시예에서, 제1 메모리(120)는 SLC 영역(121) 및 TLC 영역(122)을 포함하고, 제2 메모리(130)는 SLC 영역(131) 및 TLC 영역(132)을 포함하며, 제3 메모리(140)는 SLC 영역(141) 및 TLC 영역(142)을 포함하고, 제4 메모리(150)는 SLC 영역(151) 및 TLC 영역(152)을 포함할 수 있다. 이때, SLC 영역들(121, 131, 141, 151)은 도 1의 제1 메모리 영역(121)의 일 예에 대응하며, TLC 영역들(122, 132, 142, 152)은 도 1의 제2 메모리 영역(122)의 일 예에 대응할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 제1 내지 제4 메모리들(120 내지 150) 중 적어도 하나는 TLC 영역이 아닌 MLC 영역을 포함할 수 있다. 또한, 제1 내지 제4 메모리들(120 내지 150) 중 적어도 하나는 MLC 영역을 더 포함할 수도 있다.
도 19는 본 개시의 일 실시예에 따라, 복수의 기입 비율들에 따른 도 18의 메모리들(120 내지 150)에 대한 혼합 기입 동작들을 나타낸다.
도 18 및 도 19를 참조하면, 제1 혼합 기입 동작(191)은 SLC 영역들(121, 131, 141, 151)과 TLC 영역들(122, 132, 142, 152) 사이의 기입 비율이 X1:Y인 경우에 대응할 수 있고, X1과 Y는 1 이상의 정수일 수 있다. 이 경우, 기입 데이터는, X1:Y의 비율로 혼합된 SLC 영역들(121, 131, 141, 151) 및 TLC 영역(122, 132, 142, 152)에 저장될 수 있다. 제1 혼합 기입 동작(191)은 교번적이고 반복적인 TLC 기입 구간(191a) 및 SLC 기입 구간(191b)을 포함할 수 있다. 이때, TLC 기입 구간(181a) 및 SLC 기입 구간(181b) 사이의 전환은 워드 라인 단위로 수행될 수 있다.
TLC 기입 구간(191a)은 TLC 영역들(122, 132, 142, 152)에 데이터를 저장하는 구간이고, SLC 기입 구간(191b)은 SLC 영역들(121, 131, 141, 151)에 데이터를 저장하는 구간이다. TLC 기입 구간(191a)에는, 3 비트 데이터 입력, 제1 비트 데이터를 저장하는 제1 프로그램, 3 비트 데이터 입력, 제2 비트 데이터를 저장하는 제2 프로그램, 3 비트 데이터 입력, 및 제3 비트 데이터를 저장하는 제3 프로그램이 순차적으로 수행될 수 있다. 한편, SLC 기입 구간(191b)에는, 싱글 비트 데이터 입력 및 싱글 비트 데이터를 저장하는 프로그램이 순차적으로 수행될 수 있다.
제2 혼합 기입 동작(192)은 SLC 영역들(121, 131, 141, 151)과 TLC 영역들(122, 132, 142, 152) 사이의 기입 비율이 X2:Y인 경우에 대응할 수 있고, X2와 Y는 1 이상의 정수이고, X2는 X1보다 작을 수 있다. 이 경우, 기입 데이터는, X2:Y의 비율로 혼합된 SLC 영역들(121, 131, 141, 151) 및 TLC 영역들(122, 132, 142, 152)에 저장될 수 있다. 제2 혼합 기입 동작(192)은 교번적이고 반복적인 TLC 기입 구간(192a) 및 SLC 기입 구간(192b)을 포함할 수 있다. TLC 기입 구간(192a)은 TLC 기입 구간(191a)과 실질적으로 동일할 수 있고, SLC 기입 구간(192b)에는 SLC 기입 구간(191b)보다 적은 양의 데이터가 프로그램될 수 있다.
제3 혼합 기입 동작(193)은 SLC 영역들(121, 131, 141, 151)과 TLC 영역들(122, 132, 142, 152) 사이의 기입 비율이 X3:Y인 경우에 대응할 수 있고, X3과 Y는 1 이상의 정수이고, X3은 X2보다 작을 수 있다. 이 경우, 기입 데이터는, X3:Y의 비율로 혼합된 SLC 영역들(121, 131, 141, 151) 및 TLC 영역들(122, 132, 142, 152)에 저장될 수 있다. 제3 혼합 기입 동작(193)은 교번적이고 반복적인 TLC 기입 구간(193a) 및 SLC 기입 구간(193b)을 포함할 수 있다. TLC 기입 구간(193a)은 TLC 기입 구간(192a)과 실질적으로 동일할 수 있고, SLC 기입 구간(193b)에는 SLC 기입 구간(192b)보다 적은 양의 데이터가 프로그램될 수 있다.
본 실시예에 따르면, 기입 비율 관리자(111')는 호스트의 요구 조건 및/또는 스토리지 장치(100B)의 내부 판단에 따라 기입 비율을 실시간으로 조절할 수 있고, 이에 따라, SLC 기입 동작 및 제1 내지 제3 혼합 기입 동작들(191 내지 193)을 포함하는 복수의 혼합 기입 동작들 중 하나가 선택될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 기입 비율 관리자(111')는 SLC 영역들(121, 131, 141, 151)과 TLC 영역들(122, 132, 142, 152) 사이의 기입 비율을 0:1로 조절할 수도 있고, 이에 따라, 기입 데이터를 TLC 영역들(122, 132, 142, 152)에만 저장할 수도 있다.
도 20은 본 개시의 일 실시예에 따라, 도 19에 예시된 혼합 기입 동작을 나타낸다.
도 20을 참조하면, 도 19의 제1 내지 제3 혼합 기입 동작들(181 내지 183)의 경우, 기입 데이터는 SLC 영역들(121, 131, 141, 151)과 TLC 영역들(122, 132, 142, 152)에 혼합 기입될 수 있다. 구체적으로, 기입 데이터는 복수의 부분 데이터로 분할되고, 분할된 복수의 부분 데이터는 컨트롤러(110')로부터 순차적으로 출력되며, 순차적으로 출력되는 부분 데이터들은 SLC 영역들(121, 131, 141, 151)과 TLC 영역들(122, 132, 142, 152)에 교번적으로 저장될 수 있다. 이어서, SLC 영역들(121, 131, 141, 151)에 저장된 데이터는 대응하는 TLC 영역들(122, 132, 142, 152)로 각각 마이그레이션될 수 있다.
본 실시예에 따르면, 기입 데이터는 SLC 영역들(121, 131, 141, 151)과 TLC 영역들(122, 132, 142, 152)에 혼합 기입되므로, SLC 영역들(121, 131, 141, 151)에 기입되는 데이터의 양이 SLC 기입 동작에 비해 감소될 수 있고, 이에 따라, SLC 영역들(121, 131, 141, 151)의 소모 속도가 SLC 기입 동작에 비해 둔화될 수 있다. 따라서, 마이그레이션의 수행 시점이 SLC 기입 동작에 비해 늦춰질 수 있고, 이에 따라, WAF 및 전력 소모를 감소시킬 수 있고, SLC 영역들(121, 131, 141, 151)에 대한 프로그램/소거 사이클 카운트의 증가 속도도 둔화시킬 수 있다.
따라서, 혼합 기입 동작을 수행하는 경우, SLC 영역들(121, 131, 141, 151)에 대한 상대적으로 빠른 기입 속도와 TLC 영역들(122, 132, 142, 152)에 대한 상대적으로 느린 기입 속도의 혼합으로 인해, 스토리지 장치(100B)의 기입 성능을 TLC 기입 동작에 비해 높게 유지할 수 있다. 또한, 스토리지 장치(100B)가 일정한 성능을 유지할 수 있는 구간이 SLC 기입 동작에 비해 길고, 일정한 성능을 제공할 수 있는 버퍼 사이즈가 SLC 기입 동작에 비해 크다. 나아가, SLC 영역들(121, 131, 141, 151)에 대한 프로그램/소거 사이클 카운트의 증가 속도를 둔화시킴으로써, SLC 영역들(121, 131, 141, 151)의 수명이 길어질 수 있고, 결과적으로, 스토리지 장치(100B)의 수명이 길어질 수 있다.
도 21은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예(100C)를 나타내는 블록도이다.
도 21을 참조하면, 스토리지 장치(100C)는 컨트롤러(110A) 및 메모리(120)를 포함할 수 있다. 메모리(120)는 단일 메모리 칩일 수도 있고, 복수의 메모리 칩들을 포함할 수도 있다. 컨트롤러(110A)는 기입 비율 관리자(111a)를 포함할 수 있고, 기입 비율 관리자(111a)는 워크로드 모니터(1111), 기입 비율 조절부(1112a) 및 데이터 분배기(data distributor)(1113)를 포함할 수 있다.
워크로드 모니터(1111)는 호스트(200)로부터 기입 요청(WR) 및 기입 데이터(WD)를 수신하고, 수신된 기입 요청(WR)의 빈도 및 기입 데이터(WD)의 사이즈를 기초로 스토리지 장치(100C)에 대한 워크로드를 모니터링할 수 있다. 기입 비율 조절부(1112a)는 워크로드 모니터(1111)로부터 모니터링 결과를 수신하고, 수신된 모니터링 결과를 기초로 기입 비율을 동적으로 조절할 수 있다. 데이터 분배기(1113)는 조절된 기입 비율에 따라 기입 데이터(WD)를 분배하여 SLC 영역(121) 및 TLC 영역(122)에 제공할 수 있다. 워크로드 모니터(1111)의 구체적인 동작에 대해서는 이하에서 도 22를 참조하여 자세히 설명하기로 한다.
도 22는 도 21의 워크로드 모니터(1111)에 적용되는 제1 및 제2 주기들(Ta, Tm)을 나타내는 그래프이다.
도 1, 도 21 및 도 22를 참조하면, 워크로드 모니터(1111)는 제1 주기(Ta) 동안 호스트(200)로부터 수신되는 기입 요청(WR) 및 기입 데이터(WD)를 누적함으로써, 제1 주기(Ta) 마다 호스트(200)가 요구하는 성능을 모니터링할 수 있다. 여기서, 제1 주기(Ta)는 워크로드 판단 주기, 성능 판단 주기, 또는 기입 비율 결정 주기라고 지칭할 수 있다. 워크로드 모니터(1111)는 모니터링된 성능을 기입 비율 조절부(1112a)에 제공할 수 있고, 기입 비율 조절부(1112a)는 모니터링된 성능에 따라 실시간으로 기입 비율을 조절할 수 있다.
예를 들어, 제1 주기(Ta) 동안 모니터링된 성능이 1400MB/s인 경우, 호스트(200)로부터 요구되는 성능이 상대적으로 높은 것으로 판단할 수 있다. 이때, 기입 비율 조절부(1112a)는 전체 기입 데이터 중 SLC 영역(121)에 기입되는 데이터 양이 증가하도록 기입 비율을 조절할 수 있다. SLC 영역(121)에 대한 빠른 기입 속도로 인해, 전체 기입 데이터가 빠른 속도로 기입될 수 있고, 이에 따라, 스토리지 장치(100C)는 모니터링된 성능에 적응적인 기입 성능을 제공할 수 있다.
한편, 예를 들어, 제1 주기(Ta) 동안 모니터링된 성능이 300MB/s인 경우, 호스트(200)로부터 요구되는 성능이 상대적으로 낮은 것으로 판단할 수 있다. 이때, 기입 비율 조절부(1112a)는 전체 데이터 중 SLC 영역(121)에 기입되는 데이터 양이 감소하도록 기입 비율을 조절할 수 있다. SLC 영역(121)에 기입되는 데이터 양의 감소로 인해, SLC 영역(121)의 소모 속도 및 마이그레이션 시점을 늦출 수 있고, 이에 따라, 스토리지 장치(100C)는 향상된 버퍼 사이즈 및 수명을 제공할 수 있다.
또한, 워크로드 모니터(1111)는 제2 주기(Tm) 동안 호스트(200)로부터 수신되는 기입 요청(WR) 및 기입 데이터(WD)를 누적함으로써, 제2 주기(Tm) 마다 호스트(200)가 요구하는 성능을 모니터링하여 헤비 워크로드를 검출할 수 있다. 여기서, 제2 주기(Tm)는 헤비(heavy) 워크로드 검출 주기라고 지칭할 수 있다. 제2 주기(Tm)는 제1 주기(Ta)보다 짧거나 제1 주기(Ta)와 같을 수 있다.
일 실시예에서, 워크로드 모니터(1111)는 제2 주기(Tm) 동안 호스트(200)로부터 수신되는 기입 요청(WR) 및 기입 데이터(WD)에 기초하여 워크로드를 임계 값과 비교할 수 있다. 예를 들어, 임계 값은 현재 설정된 기입 비율로 기입 동작을 수행하는 경우 기대되는 최대 성능에 대응할 수 있다. 기입 비율 조절부(1112a)는 워크로드가 임계 값 이상이면 기입 데이터를 SLC 영역(121)에만 기입하도록 기입 비율을 조절 할 수 있다.
이와 같이, 워크로드 모니터(1111)는 제2 주기(Tm) 동안 모니터링된 성능이 현재 설정된 기입 비율로 기입 동작을 수행하는 경우 기대되는 최대 성능에 도달한 경우, 모니터링된 성능을 헤비 워크로드로 판단할 수 있다. 기입 비율 조절부(1112a)는 헤비 워크로드가 검출된 경우 기입 비율을 1:0으로 조절하고 SLC 영역(121)에만 기입 동작을 수행하는 SLC 기입 모드로 전환할 수 있다.
도 23a 내지 도 23c는 본 개시의 일 실시예에 따라, 워크로드에 따른 스토리지 장치의 동작을 나타내는 그래프들이다. 이하에서는, 도 21 및 도 23a 내지 도 23c를 함께 참조하여 설명하기로 한다. 도 23a 내지 도 23c에서 가로축은 버퍼 사이즈를 나타내고, 세로축은 성능을 나타낸다.
도 23a를 참조하면, 워크로드 모니터(1111)에서 모니터링된 성능이 P1인 경우, 기입 비율 조절부(1112a)는 P1이 헤비 워크로드라고 판단하고 기입 비율을 1:0으로 조절할 수 있다. 데이터 분배기(1113)는 기입 비율에 따라, 기입 데이터를 SLC 영역에만 제공할 수 있고, 기입 데이터는 SLC 영역(121)에만 저장될 수 있다. 이에 따라, 스토리지 장치(100C)는 모니터링된 성능에 적응적인 최대 성능을 제공할 수 있다.
도 23b를 참조하면, 워크로드 모니터(1111)에서 모니터링된 성능이 P2인 경우, 기입 비율 조절부(1112a)는 P2가 노멀(normal) 워크로드라고 판단하고, 기입 비율을 X:1로 조절할 수 있다(X는 0보다 큼). 데이터 분배기(1113)는 기입 데이터를 X:1의 비율로 혼합된 SLC 영역(121) 및 TLC 영역(122)에 제공할 수 있고, 기입 데이터는 SLC 영역(121) 및 TLC 영역(122)에 저장될 수 있다. SLC 기입 동작(232)에 비해, 기입 비율의 조절에 따른 혼합 기입 동작(231)은, 스토리지 장치(100C)는 모니터링된 성능에 적응적인 성능(P2)을 더 오래 제공할 수 있다. 다시 말해, 스토리지 장치(100C)는 기입 비율의 동적 조절에 의해 일정한 성능(P2)를 제공하는 버퍼 사이즈를 증가시킬 수 있다.
도 23c를 참조하면, 워크로드 모니터(1111)에서 모니터링된 성능이 P3인 경우, 기입 비율 조절부(1112a)는 P3가 라이트(light) 워크로드라고 판단하고, 기입 비율을 Y:1로 조절할 수 있다(Y는 0보다 크고 X보다 작음). 데이터 분배기(1113)는 기입 데이터를 Y:1의 비율로 혼합된 SLC 영역(121) 및 TLC 영역(122)에 제공할 수 있고, 기입 데이터는 SLC 영역(121) 및 TLC 영역(122)에 저장될 수 있다. SLC 기입 동작(234)에 비해, 기입 비율의 조절에 따른 혼합 기입 동작(233)은, 스토리지 장치(100C)는 모니터링된 성능에 적응적인 성능(P3)을 더 오래 제공할 수 있다. 다시 말해, 스토리지 장치(100C)는 기입 비율의 동적 조절에 의해 일정한 성능(P3)를 제공하는 버퍼 사이즈를 증가시킬 수 있다.
도 24는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 24를 참조하면, 본 실시예에 따른 스토리지 장치의 동작 방법은 스토리지 장치에 데이터를 기입하는 동작으로서, 예를 들어, 도 21의 스토리지 장치(100C)에서 시계열적으로 수행되는 단계들을 포함할 수 있다. 도 21 내지 도 23c를 참조하여 상술된 내용은 본 실시예에도 적용될 수 있으며, 중복된 설명은 생략하기로 한다.
단계 S100에서, 호스트로부터 기입 요청 및 기입 데이터를 수신한다. 단계 S125에서, 스토리지 장치에 대한 워크로드를 모니터링한다. 구체적으로, 워크로드 모니터(1111)는 호스트로부터 기입 요청(WR) 및 기입 데이터(WD)를 수신하고, 수신된 기입 요청(WR)의 빈도 및 기입 데이터(WD)의 사이즈를 기초로 스토리지 장치(100C)에 대한 워크로드를 모니터링할 수 있다.
단계 S145에서, 모니터링된 워크로드에 기초하여, 제1 메모리 영역과 제2 메모리 영역 사이의 기입 비율을 동적으로 조절한다. 구체적으로, 기입 비율 조절부(1112a)는 워크로드 모니터(1111)로부터 모니터링 결과를 수신하고, 수신된 모니터링 결과를 기초로 기입 비율을 동적으로 조절할 수 있다. 단계 S150에서, 기입 비율에 따라 혼합된 제1 및 제2 메모리 영역들에 기입 데이터를 기입한다.
도 25는 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예(100D)를 나타내는 블록도이다.
도 25를 참조하면, 스토리지 장치(100D)는 컨트롤러(110B) 및 메모리(120)를 포함할 수 있다. 메모리(120)는 단일 메모리 칩일 수도 있고, 복수의 메모리 칩들을 포함할 수도 있다. 컨트롤러(110B)는 기입 비율 관리자(111b) 및 램(113)을 포함할 수 있고, 기입 비율 관리자(111b)는 기입 비율 조절부(1112b) 및 데이터 분배기(1113)를 포함할 수 있다.
호스트로부터 수신되는 기입 데이터(WD)는 램(113)에 버퍼링될 수 있고, 이때, 램(113)은 버퍼로 이용될 수 있다. 기입 비율 조절부(1112b)는 램(113)에 버퍼링된 기입 데이터(WD1 내지 WD4)의 양에 기초하여 기입 비율을 동적으로 조절할 수 있다. 구체적으로, 램(113)에 버퍼링된 기입 데이터의 양이 많은 경우, 기입 비율 조절부(1112b)는 호스트가 요구하는 성능이 상대적으로 높은 것으로 판단할 수 있고, 기입 속도가 향상되도록 전체 기입 데이터 중 SLC 영역(121)에 대한 기입 비율을 증가시킬 수 있다. 한편, 램(113)에 버퍼링된 기입 데이터가 많지 않은 경우, 기입 비율 조절부(1112b)는 호스트가 요구하는 성능이 상대적으로 낮은 것으로 판단할 수 있고, 전체 기입 데이터 중 SLC 영역(121)에 대한 기입 비율을 감소시킬 수 있다.
도 26은 본 개시의 일 실시예에 따라, 도 1의 스토리지 장치의 다른 예(100E)를 나타내는 블록도이다.
도 26을 참조하면, 스토리지 장치(100E)는 컨트롤러(110C), 메모리(120) 및 온도 센서(160)를 포함할 수 있다. 메모리(120)는 단일 메모리 칩일 수도 있고, 복수의 메모리 칩들을 포함할 수도 있다. 컨트롤러(110C)는 기입 비율 관리자(111c)를 포함할 수 있고, 기입 비율 관리자(111c)는 기입 비율 조절부(1112c) 및 데이터 분배기(1113)를 포함할 수 있다. 온도 센서(160)는 스토리지 장치(100E)의 온도를 센싱할 수 있고, 센싱된 온도 정보를 기입 비율 조절부(1112c)에 제공할 수 있다. 기입 비율 조절부(1112c)는 온도 정보를 기초로 기입 비율을 동적으로 조절할 수 있다.
구체적으로, 센싱된 온도가 기준 온도보다 높은 경우, 기입 비율 조절부(1112c)는 전체 기입 데이터 중 SLC 영역(121)에 기입되는 데이터의 양을 증가시킬 수 있다. SLC 영역(121)에 대한 기입 속도는 TLC 영역(122)에 대한 기입 속도보다 빠르므로, 전체적인 기입 속도가 빨라지므로 기입 동작의 완료 시점이 빨라질 수 있고, 이로써, 스토리지 장치(100E)의 유휴 시간이 증가하여 스토리지 장치(100E)의 온도가 하강할 수 있다. 또한, 센싱된 온도가 기준 온도보다 높은 경우, TLC 영역(122)이 SLC 영역(121)보다 안정성이 취약하므로, SLC 영역(121)에 대한 기입 비율을 증가함으로써 기입 동작의 안정성을 보장할 수 있다.
한편, 센싱된 온도가 기준 온도보다 낮은 경우, 기입 비율 조절부(1112c)는 전체 기입 데이터 중 SLC 영역(121)에 기입되는 데이터의 양을 감소시킬 수 있다. TLC 영역(122)에 대한 기입 속도는 SLC 영역(121)에 대한 기입 속도보다 느리므로, 전체적인 기입 속도가 느려지므로 기입 동작의 완료 시점이 늦춰질 수 있고, 이로써, 스토리지 장치(100E)의 유휴 시간이 감소하여 스토리지 장치(100E)의 온도가 상승할 수 있다.
도 27은 본 개시의 일 실시예에 따른 전자 장치(1000)를 나타내는 블록도다.
도 27을 참조하면, 전자 장치(1000)는 프로세서(1100), 메모리 장치(1200), 스토리지 장치(1300), 모뎀(1400), 입출력 장치(1500) 및 파워 서플라이(1600)를 포함할 수 있다. 본 실시예에서, 메모리 장치(1200) 및/또는 스토리지 장치(1300)은 상이한 성능을 갖는 제1 및 제2 메모리 영역들을 포함하고, 제1 및 제2 메모리 영역들 사이의 기입 비율을 동적으로 조절하고, 기입 비율에 따라 혼합된 제1 및 제2 메모리 영역들에 기입 데이터를 기입할 수 있다. 도 1 내지 도 26을 참조하여 상술된 내용은 메모리 장치(1200) 및/또는 스토리지 장치(1300)에 적용될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 스토리지 시스템, 100, 100A, 100B, 100C, 100D, 100E: 스토리지 장치
111, 111', 111a, 111b, 111c: 기입 비율 관리자
111, 111', 111a, 111b, 111c: 기입 비율 관리자
Claims (20)
- 제1 및 제2 메모리 영역들을 포함하는 스토리지 장치의 동작 방법으로서,
호스트부터 기입 요청 및 기입 데이터를 수신하는 단계;
수신된 상기 기입 데이터에 대해, 상기 제1 메모리 영역과 상기 제2 메모리 영역 사이의 기입 비율(write ratio)을 동적으로 조절하는 단계; 및
조절된 상기 기입 비율에 따라 혼합된 상기 제1 및 제2 메모리 영역들에, 상기 기입 데이터를 기입하는 단계를 포함하고,
상기 제1 메모리 영역은 제1 기입 속도를 갖는 메모리 셀들을 포함하고, 상기 제2 메모리 영역은 상기 제1 기입 속도와 다른 제2 기입 속도를 갖는 메모리 셀들을 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 제1 메모리 영역은 SLC(Single Level Cell) 영역이고, 상기 제2 메모리 영역은 MLC(Multi Level Cell) 영역 또는 TLC(Triple Level Cell) 영역인 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 기입 비율은, 상기 제1 메모리 영역에서 선택된 블록들의 개수와 상기 제2 메모리 영역에서 선택된 블록들의 개수 사이의 비율, 상기 제1 메모리 영역에서 선택된 페이지들의 개수와 상기 제2 메모리 영역에서 선택된 페이지들의 개수 사이의 비율 또는 상기 제1 메모리 영역에서 선택된 워드 라인들의 개수와 상기 제2 메모리 영역에서 선택된 워드 라인들의 개수 사이의 비율에 대응하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 기입하는 단계는, 상기 기입 데이터를 복수의 부분 데이터로 분할하고, 분할된 상기 복수의 부분 데이터를 상기 제1 및 제2 메모리 영역들에 교번적으로 기입하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 기입하는 단계는, 상기 제1 메모리 영역에 대한 제1 기입 동작, 및 상기 제2 메모리 영역에 대한 제2 기입 동작을 교번적으로 그리고 반복적으로 수행하고,
상기 제1 기입 동작과 상기 제2 기입 동작 사이의 전환은 워드 라인 단위로 수행되는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 동적으로 조절하는 단계는, 상기 호스트의 요구 조건에 따라 상기 기입 비율을 동적으로 조절하는 것을 특징으로 하는 방법. - 제6항에 있어서,
상기 기입 비율을 지시하는 기입 모드를 상기 호스트로부터 수신하는 단계를 더 포함하고,
상기 동적으로 조절하는 단계는, 수신된 상기 기입 모드를 기초로 상기 기입 비율을 동적으로 조절하는 것을 특징으로 하는 방법. - 제7항에 있어서,
상기 기입 모드를 수신하는 단계 전에, 상기 기입 비율에 따른 상기 스토리지 장치의 성능, 버퍼 사이즈 및 수명 중 적어도 하나에 대한 정보를 상기 호스트에 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 동적으로 조절하는 단계는, 수신된 상기 기입 데이터의 사이즈 및 상기 기입 요청의 빈도 중 적어도 하나에 기초하여 상기 기입 비율을 동적으로 조절하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 동적으로 조절하는 단계는, 상기 제1 및 제2 메모리 영역들의 상태 정보를 기초로 상기 기입 비율을 동적으로 조절하고,
상기 상태 정보는, 상기 제1 및 제2 메모리 영역들에 대한 프로그램/소거 싸이클 정보, 상기 제1 및 제2 메모리 영역들 내의 프리(free) 블록들의 개수 및 상기 제1 및 제2 메모리 영역들의 데이터 보유 시간 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 방법 - 제1항에 있어서,
상기 제1 메모리 영역은 휘발성 메모리이고, 상기 제2 메모리 영역은 비휘발성 메모리인 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 제1 및 제2 메모리 영역들은 휘발성 메모리들인 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 제1 및 제2 메모리 영역들은 비휘발성 메모리들인 것을 특징으로 하는 방법. - 제1 및 제2 메모리 영역들을 포함하는 스토리지 장치의 동작 방법으로서,
제1 주기 동안 호스트로부터 수신되는 기입 요청 및 기입 데이터에 기초하여, 상기 스토리지 장치에 대한 워크로드를 모니터링하는 단계;
모니터링된 상기 워크로드에 기초하여, 상기 기입 데이터에 대해 상기 제1 메모리 영역과 상기 제2 메모리 영역 사이의 기입 비율을 동적으로 조절하는 단계; 및
조절된 상기 기입 비율에 따라 혼합된 상기 제1 및 제2 메모리 영역들에 상기 기입 데이터를 기입하는 단계를 포함하고,
상기 제1 메모리 영역은 제1 기입 속도를 갖는 메모리 셀들을 포함하고, 상기 제2 메모리 영역은 상기 제1 기입 속도와 다른 제2 기입 속도를 갖는 메모리 셀들을 포함하는 것을 특징으로 하는 방법. - 제14항에 있어서,
상기 제1 메모리 영역은 SLC 영역이고, 상기 제2 메모리 영역은 MLC 영역 또는 TLC 영역인 것을 특징으로 하는 방법. - 제15항에 있어서,
상기 제1 주기 이하의 제2 주기 동안 상기 호스트로부터 수신되는 상기 기입 요청 및 상기 기입 데이터에 기초하여, 상기 워크로드를 임계 값과 비교하는 단계; 및
상기 워크로드가 상기 임계 값 이상이면, 상기 기입 데이터를 상기 SLC 영역에만 기입하도록 상기 기입 비율을 변경하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제14항에 있어서,
상기 동적으로 조절하는 단계는, 상기 스토리지 장치 내의 램(RAM)에 버퍼링된 데이터의 양 또는 상기 스토리지 장치의 온도에 기초하여 상기 기입 비율을 동적으로 조절하는 것을 특징으로 하는 방법. - 제14항에 있어서,
상기 기입 비율은, 상기 제1 메모리 영역에서 선택된 블록들의 개수와 상기 제2 메모리 영역에서 선택된 블록들의 개수 사이의 비율, 상기 제1 메모리 영역에서 선택된 페이지들의 개수와 상기 제2 메모리 영역에서 선택된 페이지들의 개수 사이의 비율 또는 상기 제1 메모리 영역에서 선택된 워드 라인들의 개수와 상기 제2 메모리 영역에서 선택된 워드 라인들의 개수 사이의 비율에 대응하는 것을 특징으로 하는 방법. - 제1 기입 속도를 갖는 메모리 셀들을 포함하는 제1 메모리 영역, 및 상기 제1 기입 속도와 다른 제2 기입 속도를 갖는 메모리 셀들을 포함하는 제2 메모리 영역을 포함하는 메모리; 및
호스트로부터 기입 요청 및 기입 데이터를 수신하고, 수신된 상기 기입 데이터에 대해 상기 제1 메모리 영역과 상기 제2 메모리 영역 사이의 기입 비율을 동적으로 조절하며, 조절된 상기 기입 비율에 따라 혼합된 상기 제1 및 제2 메모리 영역들에 상기 기입 데이터를 기입하도록 상기 메모리를 제어하는 컨트롤러를 포함하는 스토리지 장치. - 제19항에 있어서,
상기 제1 메모리 영역은 SLC 영역이고, 상기 제2 메모리 영역은 MLC 영역 또는 TLC 영역인 것을 특징으로 하는 스토리지 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160119560A KR20180031289A (ko) | 2016-09-19 | 2016-09-19 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US15/605,148 US20180081594A1 (en) | 2016-09-19 | 2017-05-25 | Storage device and method of operating the same |
CN201710482651.2A CN107845394A (zh) | 2016-09-19 | 2017-06-22 | 存储装置及其操作方法 |
TW106121263A TW201814528A (zh) | 2016-09-19 | 2017-06-26 | 儲存裝置及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160119560A KR20180031289A (ko) | 2016-09-19 | 2016-09-19 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180031289A true KR20180031289A (ko) | 2018-03-28 |
Family
ID=61620309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160119560A Withdrawn KR20180031289A (ko) | 2016-09-19 | 2016-09-19 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180081594A1 (ko) |
KR (1) | KR20180031289A (ko) |
CN (1) | CN107845394A (ko) |
TW (1) | TW201814528A (ko) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200138911A (ko) * | 2019-06-03 | 2020-12-11 | 주식회사 원세미콘 | 고속 낸드 메모리 시스템과 고속 낸드 메모리 패키지 디바이스 |
KR20210055408A (ko) * | 2019-11-07 | 2021-05-17 | 주식회사 파두 | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
KR20210093610A (ko) * | 2020-01-20 | 2021-07-28 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 |
US11416168B2 (en) | 2019-11-07 | 2022-08-16 | FADU Inc. | Memory controller and storage device including the same |
US11625297B2 (en) | 2020-08-28 | 2023-04-11 | Samsung Electronics Co., Ltd. | Storage device and operating method thereof |
KR20230067485A (ko) * | 2021-11-09 | 2023-05-16 | 삼성전자주식회사 | 버퍼 메모리의 할당 비율을 제어하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
US11709610B2 (en) | 2019-10-16 | 2023-07-25 | SK Hynix Inc. | Memory system, memory controller and operating method |
US11726871B2 (en) | 2020-12-24 | 2023-08-15 | Samsung Electronics Co., Ltd. | Storage controller for selecting a gear level of a storage device and storage system including the same |
US12061796B2 (en) | 2021-10-22 | 2024-08-13 | Samsung Electronics Co., Ltd. | Storage device and operation method thereof |
US12265727B2 (en) | 2021-11-09 | 2025-04-01 | Samsung Electronics Co., Ltd. | Memory controller for controlling allocation ratio of buffer memory, memory system including the same, and method of operating memory controller |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10795607B2 (en) * | 2017-08-17 | 2020-10-06 | SK Hynix Inc. | Memory device, a memory controller, a storage device including the memory device and the memory controller and operating method thereof |
US10572388B2 (en) * | 2017-08-30 | 2020-02-25 | Micron Technology, Inc. | Managed NVM adaptive cache management |
US10838644B2 (en) * | 2017-12-06 | 2020-11-17 | Western Digital Technologies, Inc. | Data storage arrangement partitionable memory and method to accomplish partition |
TWI700635B (zh) * | 2018-04-26 | 2020-08-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN110442299B (zh) * | 2018-05-03 | 2022-12-13 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元以及存储器储存装置 |
US10852968B2 (en) * | 2018-05-07 | 2020-12-01 | Apple Inc. | Techniques for managing memory allocation within a storage device to improve operation of a camera application |
US11209998B2 (en) | 2018-06-11 | 2021-12-28 | Western Digital Technologies, Inc. | Adjustment of storage device parameters based on workload characteristics |
CN108920107B (zh) * | 2018-07-13 | 2022-02-01 | 深圳忆联信息系统有限公司 | 筛选冷数据的方法、装置、计算机设备及存储介质 |
JP2020035128A (ja) * | 2018-08-29 | 2020-03-05 | キオクシア株式会社 | メモリシステム |
CN109491616B (zh) | 2018-11-14 | 2022-05-24 | 三星(中国)半导体有限公司 | 数据的存储方法和设备 |
CN109582248B (zh) * | 2018-12-14 | 2022-02-22 | 深圳市硅格半导体有限公司 | 闪存数据的写入方法、装置及计算机可读存储介质 |
US10725705B1 (en) * | 2019-01-16 | 2020-07-28 | Western Digital Technologies, Inc. | System and method for storage system property deviation |
CN111562880A (zh) * | 2019-02-14 | 2020-08-21 | 英韧科技(上海)有限公司 | 一种数据存储装置、系统及数据写入方法 |
CN109992525A (zh) * | 2019-04-01 | 2019-07-09 | 合肥沛睿微电子股份有限公司 | 快闪存储器控制器 |
TWI786288B (zh) * | 2019-04-09 | 2022-12-11 | 韓商愛思開海力士有限公司 | 儲存裝置、儲存裝置的控制方法及記錄媒體 |
US11531492B2 (en) * | 2019-05-23 | 2022-12-20 | SK Hynix Inc. | Device and method of operating the same |
KR102743222B1 (ko) | 2019-06-12 | 2024-12-17 | 삼성전자 주식회사 | 전자 장치 및 그의 저장 공간 이용 방법 |
US10908844B2 (en) * | 2019-06-18 | 2021-02-02 | Western Digital Technologies, Inc. | Storage system and method for memory backlog hinting for variable capacity |
CN110569002B (zh) * | 2019-09-18 | 2022-12-27 | 得一微电子股份有限公司 | 一种基于混合模式的闪存设备可变容量装置和方法 |
JP2021081883A (ja) * | 2019-11-15 | 2021-05-27 | 富士通株式会社 | メモリバックアップ制御装置、ストレージ制御装置及び制御情報作成プログラム |
KR102776346B1 (ko) * | 2020-03-30 | 2025-03-07 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20210128780A (ko) * | 2020-04-17 | 2021-10-27 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 저장 장치 |
TWI791981B (zh) * | 2020-04-30 | 2023-02-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
US11640262B2 (en) | 2020-05-07 | 2023-05-02 | Micron Technology, Inc. | Implementing variable number of bits per cell on storage devices |
KR20220003837A (ko) * | 2020-07-02 | 2022-01-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
TWI738442B (zh) | 2020-07-29 | 2021-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
TWI760262B (zh) * | 2020-07-29 | 2022-04-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
KR20230010765A (ko) * | 2020-08-26 | 2023-01-19 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | Nand 플래시 메모리 장치에서의 비파괴 모드 캐시 프로그래밍 |
DE102020123220A1 (de) * | 2020-09-04 | 2022-03-10 | Harman Becker Automotive Systems Gmbh | Speichersystem, Verfahren zum Betrieb desselben |
CN112162695A (zh) * | 2020-09-09 | 2021-01-01 | Oppo(重庆)智能科技有限公司 | 一种数据缓存方法、装置、电子设备及存储介质 |
US11403032B2 (en) * | 2020-09-10 | 2022-08-02 | Micron Technology, Inc. | Data transfer management within a memory device having multiple memory regions with different memory densities |
US11782624B2 (en) * | 2020-10-06 | 2023-10-10 | Samsung Electronics Co., Ltd. | Worflow-based partition allocation |
KR20220069543A (ko) * | 2020-11-20 | 2022-05-27 | 삼성전자주식회사 | 스토리지 장치, 스토리지 컨트롤러 및 이를 포함하는 스토리지 시스템 |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12229437B2 (en) | 2020-12-31 | 2025-02-18 | Pure Storage, Inc. | Dynamic buffer for storage system |
US11614880B2 (en) * | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
CN112732189B (zh) * | 2021-01-07 | 2024-05-10 | Oppo广东移动通信有限公司 | 数据存储方法、装置、存储介质及电子设备 |
US11816345B2 (en) * | 2021-03-29 | 2023-11-14 | Micron Technology, Inc. | Zone block staging component for a memory subsystem with zoned namespace |
US12093547B2 (en) | 2021-04-15 | 2024-09-17 | Sk Hynix Nand Product Solutions Corp. | User configurable SLC memory size |
KR20230068197A (ko) * | 2021-11-10 | 2023-05-17 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
CN114115737B (zh) * | 2021-11-23 | 2024-02-02 | 合肥兆芯电子有限公司 | 数据存储分配方法、存储器存储装置及控制电路单元 |
US12008251B2 (en) | 2022-06-22 | 2024-06-11 | Western Digital Technologies, Inc. | Rate levelling among peer data storage devices |
US11977739B2 (en) * | 2022-09-01 | 2024-05-07 | Western Digital Technologies, Inc. | Handling write data burst for improved performance and resource usage |
US12019879B2 (en) * | 2022-09-25 | 2024-06-25 | Advanced Micro Devices, Inc. | Multi-level cell memory management |
US20240403122A1 (en) * | 2023-06-02 | 2024-12-05 | Dell Products L.P. | Autonomous core affinity |
CN117785071B (zh) * | 2024-02-27 | 2024-05-24 | 合肥康芯威存储技术有限公司 | 一种存储器及其性能优化方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7518914B2 (en) * | 2006-08-07 | 2009-04-14 | Micron Technology, Inc. | Non-volatile memory device with both single and multiple level cells |
US20080250220A1 (en) * | 2007-04-06 | 2008-10-09 | Takafumi Ito | Memory system |
US8060719B2 (en) * | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
US9904621B2 (en) * | 2014-07-15 | 2018-02-27 | Sandisk Technologies Llc | Methods and systems for flash buffer sizing |
-
2016
- 2016-09-19 KR KR1020160119560A patent/KR20180031289A/ko not_active Withdrawn
-
2017
- 2017-05-25 US US15/605,148 patent/US20180081594A1/en not_active Abandoned
- 2017-06-22 CN CN201710482651.2A patent/CN107845394A/zh not_active Withdrawn
- 2017-06-26 TW TW106121263A patent/TW201814528A/zh unknown
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200138911A (ko) * | 2019-06-03 | 2020-12-11 | 주식회사 원세미콘 | 고속 낸드 메모리 시스템과 고속 낸드 메모리 패키지 디바이스 |
US11709610B2 (en) | 2019-10-16 | 2023-07-25 | SK Hynix Inc. | Memory system, memory controller and operating method |
KR20210055408A (ko) * | 2019-11-07 | 2021-05-17 | 주식회사 파두 | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
US11416168B2 (en) | 2019-11-07 | 2022-08-16 | FADU Inc. | Memory controller and storage device including the same |
KR20210093610A (ko) * | 2020-01-20 | 2021-07-28 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 |
US11625297B2 (en) | 2020-08-28 | 2023-04-11 | Samsung Electronics Co., Ltd. | Storage device and operating method thereof |
US11726871B2 (en) | 2020-12-24 | 2023-08-15 | Samsung Electronics Co., Ltd. | Storage controller for selecting a gear level of a storage device and storage system including the same |
US12061796B2 (en) | 2021-10-22 | 2024-08-13 | Samsung Electronics Co., Ltd. | Storage device and operation method thereof |
KR20230067485A (ko) * | 2021-11-09 | 2023-05-16 | 삼성전자주식회사 | 버퍼 메모리의 할당 비율을 제어하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
US12265727B2 (en) | 2021-11-09 | 2025-04-01 | Samsung Electronics Co., Ltd. | Memory controller for controlling allocation ratio of buffer memory, memory system including the same, and method of operating memory controller |
Also Published As
Publication number | Publication date |
---|---|
US20180081594A1 (en) | 2018-03-22 |
TW201814528A (zh) | 2018-04-16 |
CN107845394A (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20180031289A (ko) | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 | |
KR102098697B1 (ko) | 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 | |
US9063844B2 (en) | Non-volatile memory management system with time measure mechanism and method of operation thereof | |
EP3709175B1 (en) | Storage device and computing device including storage device | |
US10241701B2 (en) | Solid state memory system with power management mechanism and method of operation thereof | |
US20130007488A1 (en) | Power management of a storage device including multiple processing cores | |
US20080140918A1 (en) | Hybrid non-volatile solid state memory system | |
US12072246B2 (en) | Adaptive throttling | |
KR102164617B1 (ko) | 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법 | |
KR102244921B1 (ko) | 저장 장치 및 그 리프레쉬 방법 | |
US20140078344A1 (en) | Device and method processing continuous shooting image data | |
KR102725221B1 (ko) | 통신되는 데이터의 양을 동작의 중단 빈도에 따라 스로틀링하는 스토리지 장치 | |
US20160179415A1 (en) | Data storage device compensating for initial threshold voltage distribution shift, method of operating the same, and data processing system including the same | |
KR102775181B1 (ko) | 스토리지 시스템 및 스토리지 시스템의 동작 방법 | |
US10990320B2 (en) | Systems and methods to optimally select metablocks | |
KR102678655B1 (ko) | 메모리 인터페이스, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 | |
KR20190079672A (ko) | 정보 처리 장치, 메모리 액세스 방법 및 컴퓨터 프로그램 | |
KR20210051921A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US12112045B2 (en) | Storage device and method of operating the same | |
US20120017052A1 (en) | Information Handling System Universal Memory Wear Leveling System and Method | |
KR20220049397A (ko) | 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 | |
CN112306906A (zh) | 存储设备、包括该存储设备的存储系统及其操作方法 | |
US20240160382A1 (en) | Storage device and host device for optimizing model for calculating delay time of the storage device | |
KR20200015260A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20130318302A1 (en) | Cache controller based on quality of service and method of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20160919 |
|
PG1501 | Laying open of application | ||
PC1203 | Withdrawal of no request for examination |