KR102333746B1 - 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법 - Google Patents

재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법 Download PDF

Info

Publication number
KR102333746B1
KR102333746B1 KR1020150124297A KR20150124297A KR102333746B1 KR 102333746 B1 KR102333746 B1 KR 102333746B1 KR 1020150124297 A KR1020150124297 A KR 1020150124297A KR 20150124297 A KR20150124297 A KR 20150124297A KR 102333746 B1 KR102333746 B1 KR 102333746B1
Authority
KR
South Korea
Prior art keywords
memory block
fast cycle
sum
selected memory
wof
Prior art date
Application number
KR1020150124297A
Other languages
English (en)
Other versions
KR20170027927A (ko
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 KR1020150124297A priority Critical patent/KR102333746B1/ko
Priority to US15/201,734 priority patent/US9799407B2/en
Priority to CN201610796626.7A priority patent/CN106484320B/zh
Publication of KR20170027927A publication Critical patent/KR20170027927A/ko
Application granted granted Critical
Publication of KR102333746B1 publication Critical patent/KR102333746B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits 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

Abstract

본 발명의 실시 예에 따른 저장 장치는 플래시 메모리와 메모리 컨트롤러를 포함한다. 상기 메모리 컨트롤러는 상기 플래시 메모리의 복수의 메모리 블록 중에서 선택된 메모리 블록의 재사용 주기(R/P)에 대응하는 빠른 순환 가중치(WOF)를 결정하고, 상기 빠른 순환 가중치(WOF)를 이용하여 상기 선택된 메모리 블록의 마모도(wear level)를 관리한다. 상기 메모리 컨트롤러는 상기 빠른 순환 횟수(NOF)를 증가하는 경우에, 상기 계산한 재사용 주기(R/P)에 따라 상기 빠른 순환 횟수에 가중치를 부여하고, 상기 빠른 순환 가중치의 합(SUM of WOF)을 이용하여 마모도를 관리한다. 상기 메모리 컨트롤러는 상기 빠른 순환 가중치의 합(SUM of WOF)이 마모도 관리 기준에 도달하면, 상기 선택된 메모리 블록에 대한 마모도 관리 동작을 수행한다.

Description

재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법{METHOD FOR OPERATING STORAGE DEVICE MANAGING WEAR LEVEL DEPENDING ON REUSE PERIOD}
본 발명은 반도체 메모리에 관한 것으로, 더 상세하게는 저장 장치 및 그것의 마모도 관리 방법에 관한 것이다.
저장 장치는 컴퓨터, 스마트폰, 스마트패드 등과 같은 호스트의 제어에 따라 데이터를 저장하는 장치이다. 저장 장치는 하드 디스크 드라이브(HDD, Hard Disk Drive)와 같이 자기 디스크에 데이터를 저장하는 장치, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 불휘발성 메모리에 데이터를 저장하는 장치를 포함한다.
불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등을 포함한다.
반도체 제조 기술이 발전하면서, 저장 장치의 고집적화 및 그에 따른 대용량화가 지속적으로 진행되고 있다. 저장 장치의 고집적화는 저장 장치의 생산 비용을 감소시킨다는 장점을 갖는다. 그러나 저장 장치의 고집적화로 인해 저장 장치의 스케일이 감소하면서, 기존에 발견되지 않은 다양한 문제들이 발견되고 있다. 새롭게 발견되고 있는 다양한 문제들은 저장 장치에 저장된 데이터를 손상시킬 수 있으며, 따라서, 저장 장치의 신뢰성이 저해될 수 있다. 저장 장치의 신뢰성을 향상시킬 수 있는 방법 및 장치에 대한 요구가 지속적으로 제기되고 있다.
본 발명의 목적은 향상된 신뢰성을 갖는 저장 장치 및 그것의 동작 방법을 제공하는 데에 있다.
본 발명의 실시 예에 따른, 플래시 메모리를 포함하는 저장 장치의 동작 방법은, 상기 플래시 메모리의 선택된 메모리 블록의 재사용 주기(R/P; reuse period)를 계산하는 단계, 상기 선택된 메모리 블록의 재사용 주기에 대응하는 빠른 순환 가중치(WOF; weight of fast cycle)를 결정하는 단계, 및 상기 빠른 순환 가중치를 이용하여 상기 선택된 메모리 블록의 마모도(wear level)를 관리하는 단계를 포함한다.
여기에서, 상기 선택된 메모리 블록의 재사용 주기(R/P)는 현재 소거 시점(CET; current erase time)과 이전 소거 시점(PET; previous erase time)의 시간 차이, 또는 현재 프로그램 시점(CPT; current program time)과 이전 프로그램 시점(PPT; previous program time)의 차이로 계산될 수 있다.
상기 빠른 순환 가중치(WOF)를 결정하는 단계에서는, 제 1 임계값(CR1)과 상기 계산한 재사용 주기(R/P)를 비교하고, 비교 결과 에 따라 상기 선택된 메모리 블록의 빠른 순환 횟수(NOF; number of fast cycle)를 관리한다. 상기 계산한 재사용 주기(R/P)가 상기 제 1 임계값(CR1)보다 작은 경우에, 상기 선택된 메모리 블록의 빠른 순환 횟수(NOF)를 증가한다. 상기 계산한 재사용 주기(R/P)가 제 2 임계값(CR2>CR1)보다 큰 경우에, 상기 선택된 메모리 블록의 빠른 순환 횟수(NOF)를 리셋한다. 상기 계산한 재사용 주기(R/P)가 상기 제 2 임계값보다 작고 제 3 임계값(CR1<CR3<CR2)보다 큰 경우에, 상기 선택된 메모리 블록의 빠른 순환 횟수(NOF)를 감소한다.
상기 빠른 순환 횟수(NOF; number of fast cycle)를 증가하는 경우에, 상기 계산한 재사용 주기(R/P)에 따라 상기 빠른 순환 횟수에 가중치를 부여한다. 그리고 상기 선택된 메모리 블록의 마모도를 관리하는 단계에서, 상기 빠른 순환 가중치의 합(SUM of WOF)을 이용하여 마모도를 관리한다. 즉, 상기 빠른 순환 가중치의 합(SUM of WOF)이 마모도 관리 기준에 도달하면, 상기 선택된 메모리 블록에 대한 마모도 관리 동작을 수행한다.
본 발명의 실시 예에 따른 저장 장치는 플래시 메모리와 메모리 컨트롤러를 포함한다. 상기 플래시 메모리는 복수의 메모리 블록을 갖는다. 그리고 상기 메모리 컨트롤러는 상기 복수의 메모리 블록 중에서 선택된 메모리 블록의 재사용 주기(R/P)에 대응하는 빠른 순환 가중치(WOF)를 결정하고, 상기 빠른 순환 가중치(WOF)를 이용하여 상기 선택된 메모리 블록의 마모도(wear level)를 관리한다.
상기 메모리 컨트롤러는 상기 빠른 순환 횟수(NOF)를 증가하는 경우에, 상기 계산한 재사용 주기(R/P)에 따라 상기 빠른 순환 횟수에 가중치를 부여하고, 상기 빠른 순환 가중치의 합(SUM of WOF)을 이용하여 마모도를 관리한다. 상기 메모리 컨트롤러는 상기 빠른 순환 가중치의 합(SUM of WOF)이 마모도 관리 기준에 도달하면, 상기 선택된 메모리 블록에 대한 마모도 관리 동작을 수행한다.
상기 메모리 컨트롤러는 상기 계산한 재사용 주기(R/P)가 제 1 감소 기준(Trd1)보다 크고 제 2 감소 기준(Trd2)보다 작은 경우에, 상기 빠른 순환 가중치의 합(SUM of WOF)을 감소할 수 있다. 또한, 상기 메모리 컨트롤러는 상기 계산한 재사용 주기(R/P)가 상기 제 2 감소 기준(Trd2)보다 큰 경우에, 상기 빠른 순환 가중치의 합(SUM of WOF)을 리셋할 수 있다.
본 발명의 실시 예에 따른 사용자 장치는 호스트와 저장 장치를 포함한다. 상기 저장 장치는 플래시 메모리의 선택된 메모리 블록의 재사용 주기(R/P)에 대응하는 빠른 순환 가중치(WOF)를 결정하고, 상기 빠른 순환 가중치(WOF)를 이용하여 상기 선택된 메모리 블록의 마모도(wear level)를 관리한다. 그리고 상기 호스트는 호스트 인터페이스를 통해 상기 저장 장치와 연결된다.
상기 저장 장치는 현재 소거 시점(CET)과 이전 소거 시점(PET), 또는 현재 프로그램 시점(CPT)와 이전 프로그램 시점(PPT)의 시간 차이를 통해 상기 선택된 메모리 블록의 재사용 주기(R/P)를 계산할 수 있다. 상기 저장 장치는 상기 계산한 재사용 주기(R/P)에 따라 빠른 순환 횟수(NOF)에 가중치를 부여하고 상기 빠른 순환 가중치의 합(SUM of WOF)을 이용하여 마모도를 관리할 수 있다.
본 발명의 실시 예에 따른 저장 장치는 재사용 주기에 따라 마모도(wear level)를 동적으로 관리할 수 있다. 즉, 각 메모리 블록의 재사용 주기에 따라 빠른 순환의 가중치를 부여함으로, 마모도를 동적으로 관리할 수 있다. 따라서 본 발명에 의하면, 데이터 신뢰성을 유지하면서도 저장 장치의 성능을 높일 수 있다.
도 1은 본 발명의 실시 예에 따른 사용자 장치(user device)를 보여주는 블록도이다.
도 2는 도 1에 도시된 플래시 메모리를 개략적으로 보여주는 블록도이다.
도 3은 도 2에 도시된 메모리 블록(BLK1)을 예시적으로 보여주는 회로도이다.
도 4는 도 1에 도시된 메모리 컨트롤러를 예시적으로 보여주는 블록도이다.
도 5는 도 4에 도시된 시간 계산기의 동작을 설명하기 위한 순서도이다.
도 6는 도 1에 도시된 사용자 장치가 소거될 메모리 블록을 선택하는 동작을 보여주는 순서도이다.
도 7은 도 6에서 설명한 메모리 블록의 소거 횟수(NOE) 및 빠른 순환 횟수(NOF)를 좀 더 자세하게 보여주기 위한 개념도이다.
도 8은 도 7에 도시된 빠른 순환(FC; fast cycle)의 발생 예를 보여주는 블록도이다.
도 9는 도 7에 도시된 빠른 순환 횟수(NOF)를 카운트하는 방법을 보여주는 순서도이다.
도 10은 도 9에 도시된 S350 단계를 예시적으로 설명하기 위한 순서도이다.
도 11 에서 도 14는 도 1에 도시된 저장 장치가 재사용 주기(reuse period)에 따라 동적으로(dynamically) 마모도(wear level)를 관리하는 방법을 보여주는 순서도 및 도표이다.
도 15는 도 1에 도시된 저장 장치의 재사용 주기에 따라 빠른 순환 가중치의 합(SUM of WOF)을 조절하는 방법을 보여주는 순서도이다.
도 16은 본 발명의 실시 예에 따른 저장 장치를 메모리 카드에 적용한 예를 보여준다.
도 17은 본 발명의 실시 예에 따른 저장 장치를 솔리드 스테이트 드라이브(SSD)에 적용한 예를 보여주는 블록도이다.
도 18은 도 17에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다.
도 19는 본 발명의 실시 예에 따른 저장 장치를 전자 장치로 구현한 예를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
1. 플래시 메모리를 포함하는 저장 장치
도 1은 본 발명의 실시 예에 따른 사용자 장치(user device)를 보여주는 블록도이다. 도 1을 참조하면, 사용자 장치(1000)는 저장 장치(1100)와 호스트(1200)를 포함한다. 저장 장치(1100)는 호스트(1200)에 전기적으로 연결되어 사용될 수 있다.
저장 장치(1100)는 솔리드 스테이트 드라이브(SSD, Solid State Drive), PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), USB (Universal Serial Bus) 메모리 카드, 유니버설 플래시 스토리지(UFS) 등과 같은 메모리 카드들을 포함할 수 있다. 저장 장치(1100)는 eMMC (embedded MultiMedia Card), UFS, PPN(Perfect Page New) 등과 같은 내장형 메모리를 포함할 수 있다.
도 1을 참조하면, 저장 장치(1100)는 플래시 메모리(1110)와 메모리 컨트롤러(1120)를 포함한다. 메모리 컨트롤러(1120)는 RAM(1123)과 시간 계산기(1128)를 포함한다. 도 1에서, RAM(1123)은 메모리 컨트롤러(1120) 내에 포함되어 있다. 그러나 RAM(1123)은 메모리 컨트롤러(1120) 밖에 위치할 수도 있다.
메모리 컨트롤러(1120)는 호스트(1200)의 요청(request)에 응답하여, 플래시 메모리(1110)의 읽기나 쓰기 등의 제반 동작을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(1120)는 호스트(1200)로부터 데이터를 수신하고, 수신된 데이터를 RAM(1123)에 저장할 수 있다. 그리고 메모리 컨트롤러(1120)는 RAM(1123)에 저장된 데이터를 플래시 메모리(1110)에 기입할 수 있다.
RAM(1123)은 버퍼 메모리, 캐시 메모리, 또는 동작 메모리로 사용될 수 있다. RAM(1123)은 DRAM(Dynamic RAM), SRAM(Static RAM), SDRAM(Synchronous DRAM), PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FeRAM(Ferroelectric RAM) 등과 같은 다양한 종류의 메모리로 구현될 수 있다.
시간 계산기(1128)는 저장 장치(1100)의 로컬 시간 또는 글로벌 시간을 계산할 수 있다. 로컬 시간은 저장 장치(1100) 내에서 흐르는 시간일 수 있다. 예를 들어, 저장 장치(1100)에 전원이 공급되는 동안, 시간 계산기(1128)는 내부 클락 또는 호스트(1200)로부터 공급되는 클락에 기반하여 시간을 계산할 수 있다.
글로벌 시간은 저장 장치(1100)를 포함하는 사용자 장치(1000)에 흐르는 시간일 수 있다. 시간 계산기(1128)는 저장 장치(1100)의 로컬 시간을 계산하되, 로컬 시간을 호스트(1200)의 시간과 동기화할 수 있다. 동기화된 시간은 글로벌 시간일 수 있다. 예를 들어, 글로벌 시간은 실제 시간(real time)일 수 있다.
시간 계산기(1128)는 글로벌 시간 또는 로컬 시간을 이용하여 플래시 메모리(1110)의 재사용 주기(reuse period)을 계산할 수 있다. 즉, 시간 계산기(1128)는 플래시 메모리(1110)의 이전 소거 시점(previous erase time)과 현재 소거 시점(current erase time) 사이의 시간 차이(time interval), 또는 이전 프로그램 시점(previous program time)과 현재 프로그램 시점(current program time) 사이의 시간 차이를 계산할 수 있다.
도 2는 도 1에 도시된 플래시 메모리를 개략적으로 보여주는 블록도이다. 도 2를 참조하면, 플래시 메모리(1110)는 메모리 셀 어레이(1111), 데이터 입출력 회로(1112), 어드레스 디코더(1113), 그리고 제어 로직(1114)을 포함할 수 있다.
메모리 셀 어레이(1111)는 복수의 메모리 블록(BLK1~BLKz)을 포함할 수 있다. 복수의 메모리 블록(BLK1~BLKz)은 2차원 구조를 갖거나 3차원 구조를 가질 수 있다. 2차원 구조를 갖는 메모리 블록은 기판과 수평 방향으로 메모리 셀들이 형성된다. 3차원 구조를 갖는 메모리 블록은 기판과 수직 방향으로 메모리 셀들이 형성된다. 각각의 메모리 블록에 속한 메모리 셀들은 동시에 소거될 수 있다.
데이터 입출력 회로(1112)는 복수의 비트 라인(BLs)을 통해 메모리 셀 어레이(1111)와 연결된다. 데이터 입출력 회로(1112)는 외부로부터 데이터(DATA1)를 입력 받거나, 메모리 셀 어레이(1111)로부터 읽은 데이터(DATA1)를 외부로 출력한다. 어드레스 디코더(1113)는 복수의 워드 라인(WLs) 및 선택 라인(GSL, SSL)을 통해 메모리 셀 어레이(1111)와 연결된다. 어드레스 디코더(1113)는 어드레스(ADDR1)를 입력 받고 워드 라인을 선택한다.
제어 로직(1114)은 플래시 메모리(1110)의 프로그램, 읽기, 소거 등의 동작을 제어한다. 예를 들면, 제어 로직(1114)은 프로그램 동작 시에, 어드레스 디코더(1113)를 제어함으로 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(1112)를 제어함으로 선택 워드 라인에 연결된 메모리 셀들에 데이터가 프로그램 되도록 할 수 있다.
도 3은 도 2에 도시된 메모리 블록(BLK1)을 예시적으로 보여주는 회로도이다. 도 3은 메모리 셀들이 기판과 수직 방향으로 형성되는 3차원 구조를 갖는 메모리 블록을 예시적으로 보여주고 있다.
도 3을 참조하면, 비트 라인(BL1~BL3)과 공통 소스 라인(CSL) 사이에는 셀 스트링(CS11~CS33)이 연결되어 있다. 각각의 셀 스트링(예를 들면, CS11)은 접지 선택 트랜지스터(GST), 복수의 메모리 셀(MC1~MC8), 그리고 스트링 선택 트랜지스터(SST)를 포함한다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL; String Selection Line)에 연결된다. 스트링 선택 라인(SSL)은 제 1 내지 제 3 스트링 선택 라인(SSL1~SSL3)으로 분리되어 있다. 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL)에 연결된다. 각 셀 스트링의 접지 선택 라인(GSL)은 연결되어 있다. 스트링 선택 트랜지스터(SST)는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL; Common Source Line)에 연결된다.
복수의 메모리 셀(MC1~MC8)은 각각 대응하는 워드 라인(WL1~WL8)에 연결된다. 하나의 워드 라인에 연결되고, 동시에 프로그램 되는 메모리 셀들의 집합을 페이지(page)라 부른다. 메모리 블록(BLK1)은 복수의 페이지로 구성될 수 있다. 또한, 하나의 워드 라인에는 복수의 페이지가 연결될 수 있다. 도 3을 참조하면, 공통 소스 라인(CSL)으로부터 동일 높이의 워드 라인(예를 들면, WL4)은 3개의 페이지에 공통으로 연결되어 있다.
도 4는 도 1에 도시된 메모리 컨트롤러를 예시적으로 보여주는 블록도이다. 도 4를 참조하면, 메모리 컨트롤러(1120)는 버스(1121), 프로세서(1122), RAM(1123), ECC 회로(1124), 호스트 인터페이스(1125), 버퍼 제어 회로(1126), 그리고 메모리 인터페이스(1127)를 포함한다.
버스(1121)는 메모리 컨트롤러(1120)의 구성 요소들 사이에 채널을 제공한다. 버스(1121)는 제어 버스와 데이터 버스로 구분될 수 있다. 데이터 버스는 메모리 컨트롤러(1120) 내에서 데이터를 전송하고, 제어 버스는 커맨드나 어드레스와 같은 제어 정보를 전송한다. 데이터 버스와 제어 버스는 서로 분리되며, 상호간에 간섭하거나 영향을 주지 않을 수 있다.
프로세서(1122)는 메모리 컨트롤러(1120)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 프로세서(1122)는 호스트 인터페이스(1125)를 통해 호스트(1200)와 통신할 수 있다. 프로세서(1122)는 시간 계산기(1128)를 포함할 수 있다. 시간 계산기(1128)는 프로세서(1122)에 의해 구동되는 소프트웨어 또는 프로세서(1122)의 회로의 일부로 구성되는 하드웨어일 수 있다.
프로세서(1122)는 코드들(codes)을 이용하여 메모리 컨트롤러(1120)를 제어할 수 있다. 프로세서(1122)는 메모리 컨트롤러(1120) 내에 있는 불휘발성 메모리(예를 들어, Read Only Memory)나 플래시 메모리(도 1 참조, 1110)로부터 코드들을 로딩(loading)할 수 있다.
RAM(1123)은 프로세서(1122)의 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용될 수 있다. RAM(1123)은 프로세서(1122)가 실행하는 코드들 및 명령들을 저장하거나, 프로세서(1122)에 의해 처리되는 데이터를 저장할 수 있다. RAM(1123)은 SRAM(Static RAM)을 포함할 수 있다.
ECC 회로(1124)는 에러를 정정할 수 있다. ECC 회로(1124)는 메모리 인터페이스(1127)로 출력될 제 1 데이터(DATA1) 또는 호스트 인터페이스(1125)로부터 수신되는 제 2 데이터(DATA2)에 기반하여, 에러를 정정하기 위한 에러 정정 코드(예를 들어, 패리티)를 생성할 수 있다. 제 1 데이터(DATA1) 및 패리티는 메모리 인터페이스(1127)를 통해 플래시 메모리(1110)로 제공될 수 있다. ECC 회로(1124)는 메모리 인터페이스(1127)를 통해 수신되는 제 1 데이터(DATA1) 및 패리티를 이용하여, 수신된 데이터(DATA1)의 에러를 정정할 수 있다. ECC 회로(1124)는 메모리 인터페이스(1127) 내에 포함될 수도 있다.
호스트 인터페이스(1125)는 프로세서(1122)의 제어에 따라, 호스트(1200)와 통신하도록 구성된다. 호스트 인터페이스(1125)는 호스트(1200)로부터 제 2 커맨드(CMD2) 및 제 2 어드레스(ADDR2)를 수신하고, 호스트(1200)와 제 2 데이터(DATA2)를 교환할 수 있다.
호스트 인터페이스(1125)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), 파이어와이어(Firewire), PCI (Peripheral Component Interconnection), PCIe(PCI express), NVMe (NonVolatile Memory express), UFS(Universal Flash Storage), SD(Secure Digital), MMC(MultiMedia Card), eMMC(embedded MMC) 등과 같은 다양한 통신 방법들 중 적어도 하나를 이용하여 통신하도록 구성될 수 있다.
버퍼 제어 회로(1126)는 프로세서(1122)의 제어에 따라, RAM(1123)을 제어하도록 구성된다. 버퍼 제어 회로(1126)는 RAM(1123)에 데이터를 쓰고, RAM(1123)으로부터 데이터를 읽을 수 있다. 메모리 컨트롤러(1120) 외부에 RAM(1123)이 있는 경우에, 버퍼 제어 회로(1126)는 외부의 RAM(1123)을 제어할 수 있다.
메모리 인터페이스(1127)는 프로세서(1122)의 제어에 따라, 플래시 메모리(1110)와 통신하도록 구성된다. 메모리 인터페이스(1127)는 플래시 메모리(1110)에 제 1 커맨드(CMD1) 및 제 1 어드레스(ADDR1)를 전송하고, 플래시 메모리(1110)와 제 1 데이터(DATA1) 및 제어 신호(CTRL)를 교환할 수 있다.
도 5는 도 4에 도시된 시간 계산기의 동작을 설명하기 위한 순서도이다. 시간 계산기(1128)는 프로세서(1122)의 제어에 의해 플래시 메모리(1110)의 선택된 메모리 블록의 재사용 주기(reuse period)를 계산할 수 있다.
S110 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 소거 시간 스탬프(ETS)를 읽을 수 있다. 소거 시간 스탬프(ETS)는 시간 계산기(1128)에 의해 계산되고, 선택된 메모리 블록의 이전 소거 시간(previous erase time)을 포함할 수 있다. 소거 시간 스탬프(ETS)는 선택된 메모리 블록의 스페어 메모리 셀들 또는 메타 메모리 블록의 메타 메모리 셀들에 저장되고, RAM(1123)에 로드(load) 될 수 있다.
S120 단계에서, 시간 계산기(1128)는 소거 시간 스탬프(ETS) 및 현재 시간을 이용하여 재사용 주기(reuse period)를 계산할 수 있다. 여기에서, 재사용 주기는 소거 시간 스탬프(ETS)를 통해 읽은 이전 소거 시간(previous erase time)과 현재 소거 시간(current erase time)의 시간 차이를 통해 계산될 수 있다.
S130 단계에서, 시간 계산기(1128)는 현재 시간을 선택된 메모리 블록의 새로운 소거 시간 스탬프(ETS)로 인식하고, 현재 시간을 메모리 컨트롤러(1120)로 제공할 수 있다. 메모리 컨트롤러(1120)는 현재 시간을 선택된 메모리 블록의 새로운 소거 시간 스탬프(ETS)로서, 선택된 메모리 블록의 스페어 메모리 셀들, 메타 메모리 블록의 메타 메모리 셀들, 또는 RAM(1123)에 저장할 수 있다.
2. 재사용 주기를 이용한 빠른 순환 횟수 계산 방법
도 3에 도시된 메모리 블록(BLK1)의 메모리 셀들이 프로그램 될 때, 메모리 셀들의 절연막들 또는 메모리 셀들 주변의 절연막들에 전하들이 포획될 수 있다. 메모리 셀들이 소거 및 프로그램 되고 소정의 시간이 지나면, 절연막들에 포획된 전하들이 원래대로 돌아갈 수 있다.
그러나 메모리 셀들이 프로그램 되고 소정의 시간 전에, 다시 소거 및 프로그램 되면, 포획된 전하들이 원래대로 돌아가지 못하고 절연막들에 누적될 수 있다. 포획된 전하들이 누적되면, 메모리 셀들이 열화될 수 있다. 메모리 셀들이 열화되면, 저장 장치(1100)의 데이터 신뢰도가 나빠지고, 수명도 줄어들 수 있다.
도 1에 도시된 저장 장치(1100)는 재사용 주기(reuse period)를 이용하여 선택된 메모리 블록의 빠른 순환 횟수(number of fast cycles)를 관리함으로, 메모리 셀들의 열화를 줄일 수 있다. 또한, 저장 장치(1100)는 메모리 셀들의 열화를 줄임으로, 저장 장치(1100)의 데이터 신뢰도를 개선하고 수명을 늘릴 수 있다.
이하에서는, 선택된 메모리 블록이 소거(E) 및 프로그램(P) 되고, 다시 소거(E) 및 프로그램(P) 되는 데 걸리는 시간을 재사용 주기(reuse period)라고 한다. 재사용 주기(reuse period)는 메모리 블록이 소거되고 다시 소거되는 데 걸리는 시간으로 정의되거나, 프로그램 되고 다시 프로그램 되는 시간으로 정의될 수도 있다.
도 6는 도 1에 도시된 사용자 장치가 소거될 메모리 블록을 선택하는 동작을 보여주는 순서도이다. 도 6을 참조하면, 메모리 컨트롤러(1120)는 플래시 메모리(1110)의 각 메모리 블록의 소거 횟수(NOE; Number of Erases)를 카운트한다(S210). 또한, 메모리 컨트롤러(1120)는 플래시 메모리(1110)의 각 메모리 블록의 빠른 순환 횟수(NOF; Number of Fast cycles)를 카운트한다(S220). 메모리 컨트롤러(1120)는 각 메모리 블록의 소거 횟수(NOE) 및 빠른 순환 횟수(NOF)에 기반하여, 소거될 메모리 블록을 선택한다(S230).
여기에서, 빠른 순환(fast cycle)은 각 메모리 블록이 소거 및 프로그램 된 후에 임계 시간 전에 다시 소거 및 프로그램 되는 경우에 발생한다. 즉, 빠른 순환은 선택된 메모리 블록의 재사용 주기가 임계 시간보다 짧은 경우에 발생할 수 있다. 그리고 빠른 순환 횟수(NOF)는 선택된 메모리 블록에 대한 소거 및 프로그램이 반복되는 경우에, 빠른 순환을 수행한 전체 횟수를 의미한다.
도 7은 도 6에서 설명한 메모리 블록의 소거 횟수(NOE) 및 빠른 순환 횟수(NOF)를 좀 더 자세하게 보여주기 위한 개념도이다. 도 7에서는, 시간의 흐름에 따라 소거(E) 및 프로그램(P)이 반복 수행되고 있다.
도 7을 참조하면, 제 1 메모리 블록(BLK1)에서는 소거(E) 및 프로그램(P) 되고 제 1 시간(T1)이 경과한 후에, 소거(E) 및 프로그램(P)이 다시 수행된다. 여기에서, 제 1 시간(T1)은 제 1 메모리 블록(BLK1)의 재사용 주기이다. 제 1 메모리 블록(BLK1)의 재사용 주기는 빠른 순환의 기준인 임계 시간(TCR)보다 크다. 즉, 제 1 메모리 블록(BLK1)은 소거(E) 및 프로그램(P)이 수행되고, 임계 시간(TCR)보다 긴 제 1 시간(T1)이 경과한 후에 다시 소거(E) 된다. 따라서 제 1 메모리 블록(BLK1)에서는 빠른 순환(fast cycle)이 발생하지 않는다.
반면에, 제 2 메모리 블록(BLK2)에서는 임계 시간(TCR)보다 작거나 같은 제 2 시간(T2)을 재사용 주기로 하여, 소거(E) 및 프로그램(P)이 반복 수행되고 있다. 제 2 시간(T2)의 재사용 주기로 소거(E) 및 프로그램(P)이 수행될 때마다, 제 2 메모리 블록(BLK2)에는 빠른 순환(FC; fast cycle)이 발생한다. 빠른 순환이 발생할 때마다 빠른 순환 횟수(NOF)는 증가한다. 도 7의 예에서, 제 1 메모리 블록(BLK1)의 소거 횟수(NOE)는 1이고, 빠른 순환 횟수(NOF)는 0이다. 그리고 제 2 메모리 블록(BLK2)의 소거 횟수(NOE)는 3이고, 빠른 순환 횟수(NOF)도 3이다.
도 8은 도 7에 도시된 빠른 순환(FC; fast cycle)의 발생 예를 보여주는 블록도이다. 도 8의 상단에 제 1 내지 제 8 메모리 블록(BLK1~BLK8)이 도시되어 있다. 도 8의 하단에 제 1 내지 제 8 메모리 블록(BLK1~BLK8)의 소거 횟수(NOE) 및 빠른 순환 횟수(NOF)가 테이블로 도시되어 있다.
제 1 내지 제 6 메모리 블록(BLK1~BLK6)에 콜드 데이터(CD, Cold Data)가 프로그램 될 수 있다. 여기에서, 콜드 데이터(CD)는 핫 데이터(HD, Hot Data)와 대비되는 데이터로, 상대적으로 갱신되는 빈도가 낮은 데이터를 의미한다. 제 1 내지 제 6 메모리 블록(BLK1~BLK6)에 저장되어 있는 콜드 데이터(CD)는 자주 갱신(update)되지 않는 보관용 데이터일 수 있다. 즉, 제 1 내지 제 6 메모리 블록(BLK1~BLK6)의 소거 횟수(NOE)는 증가하지 않은 채로 유지되고, 빠른 순환 횟수(NOF)는 0 상태로 유지될 수 있다.
제 1 내지 제 6 메모리 블록(BLK1~BLK6)에 콜드 데이터(CD)가 저장된 상태에서, 핫 데이터(HD)가 제 7 및 제 8 메모리 블록(BLK7, BLK8)에 프로그램 될 수 있다. 핫 데이터(HD)는 제 7 및 제 8 메모리 블록(BLK7, BLK8)에서 짧은 재사용 주기로 소거 및 프로그램을 반복할 수 있다. 따라서, 제 7 및 제 8 메모리 블록(BLK7, BLK8)에서는 소거 횟수(NOE) 및 빠른 순환 횟수(NOF)가 증가할 수 있다.
도 9는 도 7에 도시된 빠른 순환 횟수(NOF)를 카운트하는 방법을 보여주는 순서도이다. 도 9를 참조하면, 메모리 컨트롤러(1120)는 선택된 메모리 블록을 소거한다(S310). 메모리 컨트롤러(1120)는 선택된 메모리 블록의 현재 소거와 이전 소거 사이의 재사용 주기(reuse period)를 검출한다(S320). 선택된 메모리 블록의 재사용 주기는 시간 계산기(1128)에 의해 검출될 수 있다.
다음으로, 메모리 컨트롤러(1120)는 검출된 재사용 주기(R/P)가 제 1 임계값(CR1)보다 작거나 같은지를 판별한다. 여기에서, 제 1 임계값(CR1)은 빠른 순환(fast cycle)을 결정하는 임계 시간(TCR)일 수 있다. 재사용 주기(R/P)가 제 1 임계값(CR1)보다 작거나 같으면(Yes), S340 단계가 수행된다. S340 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 빠른 순환 횟수(NOF)를 증가시킨다.
반면에, 재사용 주기가 제 1 임계값(CR1)보다 크면(No), S350가 수행된다. S350 단계에서, 메모리 컨트롤러(1120)는 도 10에 도시된 방법에 따라 선택된 메모리 블록의 빠른 순환 횟수(NOF)를 관리할 수 있다. 이후에, S360 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 소거 횟수(NOE)를 증가시킨다.
도 10은 도 9에 도시된 S350 단계를 예시적으로 설명하기 위한 순서도이다. 도 10은 선택된 메모리 블록의 현재 소거 및 이전 소거 사이의 재사용 주기(R/P; reuse period)가 도 9의 제 1 임계값(CR1)보다 큰 경우에, 빠른 순환 횟수(NOF)를 관리하는 방법을 예시적으로 보여준다.
S410 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 빠른 순환 횟수(NOF)가 0보다 큰지 판별한다. 선택된 메모리 블록의 빠른 순환 횟수(NOF)가 0보다 크지 않으면(No), 선택된 메모리 블록의 빠른 순환 횟수(NOF)는 별도로 관리되지 않는다. 빠른 순환 횟수(NOF)가 0보다 크면, S420 단계가 수행된다.
S420 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 재사용 주기(R/P)가 제 2 임계값(CR2)보다 큰지 판별한다. 여기에서, 제 2 임계값(CR2)은 도 9의 제 1 임계값(CR1)보다 훨씬 클 수 있다(CR2>>CR1). 제 2 임계값(CR2)은 메모리 셀들(MC)의 절연막들 또는 메모리 셀들(MC) 주변의 절연막들에 포획된 전하들이 원래대로 되돌아 가는 데 걸리는 충분한 시간일 수 있다. 제 2 임계값(CR2)은 미리 정해진 값 또는 선택된 메모리 블록의 빠른 소거 횟수(NOF)에 따라 변하는 값일 수 있다. S420 단계에서, 재사용 주기(R/P)가 제 2 임계값(CR2)보다 크면(Yes), S430 단계가 수행된다.
S430 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 빠른 소거 횟수(NOF)를 리셋한다. 즉, 선택된 메모리 블록의 빠른 소거 횟수(NOF)는 0으로 초기화 된다. 이후에, 선택된 메모리 블록의 빠른 소거 횟수(NOF)의 관리는 종료된다. S420 단계에서, 재사용 주기(R/P)가 제 2 임계값(CR2)보다 크지 않으면(No), S440 단계가 수행된다.
S440 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 재사용 주기(R/P)가 제 3 임계값(CR3)보다 큰지 판별한다. 제 3 임계값(CR3)은 제 1 임계값(CR1)보다 크고 제 2 임계값(CR2)보다 작을 수 있다(CR1<CR3<CR2). 제 3 임계값(CR3)은 메모리 셀들(MC)의 절연막들 또는 메모리 셀들(MC) 주변의 절연막들에 포획된 전하들이 부분적으로 복원되는 데에 필요한 시간일 수 있다. S440 단계에서, 재사용 주기(R/P)가 제 3 임계값(CR3)보다 크면(Yes), S450 단계가 수행된다.
S450 단계에서, 메모리 컨트롤러(1120)는 빠른 순환 횟수(NOF)를 감소시킨다. 이후에, 선택된 메모리 블록의 빠른 순환 횟수(NOF)의 관리는 종료될 수 있다. 또한, S440 단계에서, 재사용 주기(R/P)가 제 3 임계값(CR3)보다 크지 않는 경우에도(No), 선택된 메모리 블록의 빠른 순환 횟수(NOF)의 관리는 종료될 수 있다.
3. 재사용 주기에 따라 동적으로 마모도(wear level)를 관리하는 방법
도 1에 도시된 플래시 메모리(1110)는 재사용 주기(reuse period)가 짧으면, 데이터 신뢰성이 나빠질 수 있다. 그래서 플래시 메모리(1110)를 포함하는 저장 장치(1100)는 특정 메모리 블록이 빠르게 재사용 되지 않도록 마모도(wear level)를 관리한다.
플래시 메모리(1110)는 물리적 특성 상 동일한 메모리 블록에 대해 소정의 횟수 정도로 소거 동작을 수행하면 더 이상 사용할 수 없다. 그래서 플래시 메모리(1110)는 특정 메모리 블록에 대한 소거 동작이 반복되는 것을 피하기 위해 마모도(wear level) 관리 동작을 수행한다.
마모도 관리는 플래시 변환 레이어(FTL; Flash Translation Layer)를 통해 수행될 수 있다. 플래시 변환 레이어(FTL)는 파일 시스템으로부터 논리 어드레스(LA: Logical Address)를 입력받고, 이를 물리 어드레스(PA: Physical Address)로 변환한다. 플래시 변환 레이어(FTL)는 위와 같은 어드레스 맵핑 동작을 관리하기 위한 어드레스 맵핑 테이블(address mapping table)을 가지고 있다.
마모도 관리는 논리 블록과 물리 블록의 어드레스 맵핑을 변경함으로 수행될 수 있다. 실시 예로서, 마모도 관리는 다음과 같은 방식으로 수행될 수 있다. 외부로부터 데이터 파일에 대한 쓰기 명령이 입력될 때, 모든 메모리 블록의 소거 카운트(Erase Count) 정보가 순차적으로 혹은 규정된 방식에 따라 스캔된다. 그리고 스캔 결과, 데이터 파일이 저장될 메모리 블록이 사전에 규정된 가장 큰 소거 카운트에 도달할 경우, 상대적으로 소거 카운트가 작은 메모리 블록으로 데이터 파일을 저장할 수 있도록 데이터 블록의 물리 어드레스를 변경한다. 저장 장치(1100)는 위와 같은 방식으로 각 메모리 블록의 마모도(wear level)를 관리함으로, 전체 메모리 블록을 고르게 재사용할 수 있다.
한편, 플래시 메모리(1110)는 각 메모리 블록의 재사용 주기(reuse period)에 따라, 그 메모리 블록에 가해지는 충격(damage)이 다를 수 있다. 예를 들면, 어느 메모리 블록이 10초 주기로 재사용 될 때와 30초 주기로 재사용 될 때, 그 메모리 블록에 가해지는 충격(damage)이 다를 수 있다. 10초 주기로 재사용 하는 경우에는 재사용 횟수를 줄이고, 30초 주기로 재사용 되는 경우에는 재사용 횟수를 늘리면, 데이터 신뢰성을 유지하면서도 저장 장치(1100)의 성능을 높일 수 있다.
도 11 에서 도 14는 도 1에 도시된 저장 장치가 재사용 주기(reuse period)에 따라 동적으로(dynamically) 마모도(wear level)를 관리하는 방법을 보여주는 순서도 및 도표이다. 이하에서는 도 12 에서 도 14의 도표를 사용하여, 도 11에 도시된 본 발명의 실시 예에 따른 저장 장치(1100)의 동작 방법이 설명될 것이다.
도 11을 참조하면, S510 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록을 소거한다. S520 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 현재 소거 시점(CET; current erase time)과 이전 소거 시점(PET; previous erase time)을 이용하여, 선택된 메모리 블록의 재사용 주기(R/P; reuse period)를 계산한다. 선택된 메모리 블록의 재사용 주기(R/P)는 시간 계산기(1128)에 의해 계산될 수 있다.
S530 단계에서, 메모리 컨트롤러(1120)는 재사용 주기에 근거하여, 빠른 순환 가중치(WOF; weight of fast cycle)를 결정한다. 메모리 컨트롤러(1120)는 메모리 블록 별로 재사용 주기(R/P)에 따라, 빠른 순환 값을 얼마나 올릴 것인지 결정할 수 있다.
예를 들면, 도 12에 도시된 도표와 같이, 메모리 컨트롤러(1120)는 빠른 순환 가중치(WOF)의 구간을 재사용 주기에 따라, 5초보다 작거나 같은 경우, 5초보다 크고 10초보다 작거나 같은 경우, 10초보다 크고 50초보다 작거나 같은 경우, 50초보다 크고 임계 시간(TCR, 도 7 참조)보다 작거나 같은 경우로 나눌 수 있다. 그리고 메모리 컨트롤러(1120)는 재사용 주기가 5초보다 작거나 같은 경우에 빠른 순환 가중치(WOF)를 5로 한다. 마찬가지로, 도 12에 도시된 바와 같이, 재사용 주기에 따라 빠른 순환 가중치(WOF)를 각각 3, 2, 1로 한다.
다시 도 11을 참조하면, S540 단계에서, 메모리 컨트롤러(1120)는 빠른 순환 가중치(WOF)의 합이 마모도 관리 기준(TWL)보다 큰지를 판단한다. 빠른 순환 가중치(WOF)의 합(SUM)은 도 13에 예시적으로 도시된 바와 같이 계산한다. 도 13을 참조하면, 선택된 메모리 블록의 재사용 주기(R/P)는 각각 5초, 8초, 5초, 15초, 50초이다. 소거 횟수(NOE)는 각각 한 번이기 때문에, 소거 횟수의 합(SUM of NOE)은 5이다. 빠른 순환 가중치(WOF)는 도 12를 참조하면, 각각 5, 3, 5, 2, 1이기 때문에, 빠른 순환 가중치의 합(SUM of WOF)은 16이다. 다시 도 11을 참조하면, 빠른 순환 가중치의 합이 마모도 관리 기준(TWL)보다 큰 경우(Yes), S550 단계가 수행된다.
S550 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 빠른 순환 가중치의 합(SUM of WOF)이 마모도 관리 기준에 도달하면, 선택된 메모리 블록에 대한 마모도 관리 동작을 수행한다. 한편, S540 단계에서, 빠른 순환 가중치의 합이 마모도 관리 기준(TWL)보다 크지 않으면(No), 선택된 메모리 블록에 대한 마모도 관리 동작은 수행되지 않는다.
한편, S530 단계에서 빠른 순환 가중치를 결정하고 그 합(SUM of WOF)을 구할 때, 재사용 주기의 최소값을 모든 주기에 적용할 수도 있다. 예를 들어, 도 14를 참조하면, 선택된 메모리 블록의 재사용 주기(R/P)의 최소값은 5초이므로, 모든 주기의 빠른 순환 가중치(WOFm)를 5로 할 수 있다. 따라서, 빠른 순환 가중치의 합(SUM of WOFm)은 25로 계산될 수도 있다.
이상에서 설명한 바와 같이, 본 발명의 실시 예에 따른 저장 장치(1100)는 재사용 주기에 따라 마모도(wear level)를 동적으로 관리할 수 있다. 즉, 각 메모리 블록의 재사용 주기에 따라 빠른 순환의 가중치를 부여함으로, 마모도를 동적으로 관리할 수 있다. 따라서 본 발명에 의하면, 데이터 신뢰성을 유지하면서도 저장 장치(1100)의 성능을 높일 수 있다. 특히, 저장 장치(1100)의 일정한 영역을 반복적으로 쓰는 핫 스팟 테스트(hot spot test)의 경우에, 핫 스팟 테스트의 영역 크기에 따라 재사용 주기는 달라질 수 있다. 본 발명에 의하면, 핫 스팟 테스트 영역의 크기에 따른 성능 저하를 줄일 수 있다.
도 15는 도 1에 도시된 저장 장치의 재사용 주기에 따라 빠른 순환 가중치의 합(SUM of WOF)을 조절하는 방법을 보여주는 순서도이다. 본 발명의 실시 예에 따른 저장 장치(1100)는 선택된 메모리 블록의 재사용 주기가 길어서 데이터 신뢰성에 영향을 주는 정도가 약하면, 빠른 순환 가중치의 합(SUM of WOF)을 줄임으로, 좀 더 효과적으로 마모도(wear level)를 관리할 수 있다.
S610 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록을 소거한다. S620 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 현재 소거 시점과 이전 소거 시점을 이용하여, 선택된 메모리 블록의 재사용 주기(reuse period)를 계산한다.
S630 단계에서, 메모리 컨트롤러(1120)는 재사용 주기(R/P; reuse period)가 제 1 감소 기준(Trd1)보다 큰지를 판단한다. 여기에서, 제 1 감소 기준(Trd1)은 선택된 메모리 블록의 데이터 신뢰성에 영향을 거의 주지 않는 재사용 주기를 의미한다. 재사용 주기(R/P)가 제 1 감소 기준(Trd1)보다 크지 않은 경우(No)에는, 빠른 순환 가중치의 합(SUM of WOF)을 줄이는 동작을 수행하지 않는다. S630 단계에서, 재사용 주기가 제 1 감소 기준(Trd1)보다 큰 경우(Yes)에는, S640 단계가 수행된다.
S640 단계에서, 메모리 컨트롤러(1120)는 재사용 주기(R/P; reuse period)가 제 2 감소 기준(Trd2)보다 큰지를 판단한다. 여기에서, 제 2 감소 기준(Trd2)은 선택된 메모리 블록의 데이터 신뢰성에 영향을 주지 않는 충분히 긴 경우를 의미한다. 재사용 주기(R/P)가 제 1 감소 기준(Trd1)보다 크지만 제 2 감소 기준(Trd2)보다 크지 않은 경우(No)에는, S650 단계가 수행된다.
S650 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 빠른 순환 가중치의 합(SUM of WOF)을 A만큼 줄이는 동작을 수행한다. 여기에서, A는 미리 정해진 고정된 값일 수 있고, 또는 재사용 주기에 따라 달라지는 값일 수도 있다. 선택된 메모리 블록의 재사용 주기가 제 1 감소 기준(Trd1)보다 긴 경우에, 빠른 순환 가중치의 합(SUM of WOF)을 줄이더라도, 데이터 신뢰성에 크게 영향을 주지 않는다. 한편, S640 단계에서, 재사용 주기(R/P)가 제 2 감소 기준(Trd2)보다 큰 경우(Yes)에는, S660 단계가 수행된다.
S660 단계에서, 메모리 컨트롤러(1120)는 선택된 메모리 블록의 빠른 순환 가중치의 합(SUM of WOF)을 0으로 리셋한다. 선택된 메모리 블록의 재사용 주기가 제 2 감소 기준(Trd2)보다 긴 경우에, 빠른 순환 가중치의 합(SUM of WOF)을 0으로 리셋 하더라도, 데이터 신뢰성에 영향을 주지 않는다.
본 발명의 실시 예에 따른 저장 장치(1100)는 사용자 패턴(user pattern)에 따른 성능 저하를 줄일 수 있다. 예를 들어, 동일한 논리 어드레스에 쓰기 동작을 반복하는 핫 스팟 쓰기(hot spot write)를 가정해보자. 1GB 사이즈를 갖는 영역은 3GB 또는 5GB 사이즈를 갖는 영역보다 재사용 주기가 각각 약 3배 또는 약 5배 정도 짧을 수 있다. 본 발명에 의하면, 재사용 주기에 따라 동적으로 마모도를 관리하기 때문에, 메모리의 사이즈에 맞게 성능 저하를 효과적으로 줄일 수 있다.
4. 저장 장치의 적용예
한편, 본 발명의 실시 예에 따른 사용자 장치는 여러 가지 제품에 적용 또는 응용될 수 있다. 본 발명의 실시 예에 따른 사용자 장치는 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, MP3, PMP, PSP, PDA 등과 같은 전자 장치에 구현될 수 있다. 그리고 사용자 장치의 저장 매체는 메모리 카드, USB 메모리, 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD라 함) 등과 같은 저장 장치로 구현될 수 있다.
도 16은 본 발명의 실시 예에 따른 저장 장치를 메모리 카드에 적용한 예를 보여준다. 메모리 카드 시스템(3000)은 호스트(3100)와 메모리 카드(3200)를 구비한다. 호스트(3100)는 호스트 컨트롤러(3110) 및 호스트 접속 유닛(3120)을 포함한다. 메모리 카드(3200)는 카드 접속 유닛(3210), 카드 컨트롤러(3220), 그리고 플래시 메모리(3230)를 포함한다.
호스트(3100)는 메모리 카드(3200)에 데이터를 쓰거나, 메모리 카드(3200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(3110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(3100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(3120)을 통해 메모리 카드(3200)로 전송한다.
카드 컨트롤러(3220)는 카드 접속 유닛(3210)을 통해 수신된 쓰기 커맨드에 응답하여, 카드 컨트롤러(3220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(3230)에 저장한다. 플래시 메모리(3230)는 호스트(3100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(3100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 17은 본 발명의 실시 예에 따른 저장 장치를 솔리드 스테이트 드라이브(SSD)에 적용한 예를 보여주는 블록도이다. 도 17을 참조하면, SSD 시스템(4000)은 호스트(4100)와 SSD(4200)를 포함한다.
SSD(4200)는 신호 커넥터(signal connector, 4211)를 통해 호스트(4100)와 신호를 주고 받으며, 전원 커넥터(power connector, 4221)를 통해 전원을 입력받는다. SSD(4200)는 복수의 플래시 메모리(4201~420n), SSD 컨트롤러(4210), 그리고 보조 전원 장치(4220)를 포함할 수 있다.
복수의 플래시 메모리(4201~420n)는 SSD(4200)의 저장 매체로서 사용된다. SSD(4200)는 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등의 불휘발성 메모리 장치가 사용될 수도 있다. 복수의 플래시 메모리(4201~420n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(4210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 플래시 메모리가 연결될 수 있다. 하나의 채널에 연결되는 플래시 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(4210)는 신호 커넥터(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(4210)는 호스트(4100)의 커맨드에 따라 해당 플래시 메모리 에 데이터를 쓰거나 해당 플래시 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(4210)의 내부 구성은 도 18을 참조하여 상세하게 설명된다.
보조 전원 장치(4220)는 전원 커넥터(4221)를 통해 호스트(4100)와 연결된다. 보조 전원 장치(4220)는 호스트(4100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 한편, 보조 전원 장치(4220)는 SSD(4200) 내에 위치할 수도 있고, SSD(4200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4220)는 메인 보드에 위치하며, SSD(4200)에 보조 전원을 제공할 수도 있다.
도 18은 도 17에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다. 도 18을 참조하면, SSD 컨트롤러(4210)는 NVM 인터페이스(4211), 호스트 인터페이스(4212), ECC 회로(4213), 중앙 처리 장치(CPU, 4214), 그리고 버퍼 메모리(4215)를 포함한다.
NVM 인터페이스(4211)는 버퍼 메모리(4215)로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(4211)는 플래시 메모리(4201~420n)로부터 읽은 데이터를 버퍼 메모리(4215)로 전달한다. 여기에서, NVM 인터페이스(4211)는 플래시 메모리의 인터페이스 방식을 사용할 수 있다. 즉, SSD 컨트롤러(4210)는 플래시 메모리 인터페이스 방식에 따라 프로그램, 읽기, 또는 소거 동작 등을 수행할 수 있다.
호스트 인터페이스(4212)는 호스트(4100)의 프로토콜에 대응하여 SSD(4200)와의 인터페이싱을 제공한다. 호스트 인터페이스(4212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(4100)와 통신할 수 있다. 또한, 호스트 인터페이스(4212)는 호스트(4100)가 SSD(4200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
ECC 회로(4213)는 플래시 메모리(4201~420n)로 전송되는 데이터를 이용하여, 에러 정정 코드(ECC)를 생성한다. 그렇게 생성된 에러 정정 코드(ECC)는 플래시 메모리(4201~420n)의 스페어 영역(spare area)에 저장된다. ECC 회로(4213)는 플래시 메모리(4201~420n)로부터 읽은 데이터의 에러를 검출한다. 만약 검출된 에러가 정정 용량 내이면, ECC 회로(4213)는 검출된 에러를 정정한다.
중앙 처리 장치(4214)는 호스트(4100, 도 18 참조)로부터 입력된 신호(SGL)를 분석하고 처리한다. 중앙 처리 장치(4214)는 호스트 인터페이스(4212)나 NVM 인터페이스(4211)를 통해 호스트(4100)나 플래시 메모리(4201~420n)를 제어한다. 중앙 처리 장치(4214)는 SSD(4200)을 구동하기 위한 펌웨어에 따라서 플래시 메모리(4201~420n)의 동작을 제어한다.
버퍼 메모리(4215)는 호스트(4100)로부터 제공되는 쓰기 데이터 또는 플래시 메모리로부터 읽은 데이터를 임시로 저장한다. 또한, 버퍼 메모리(4215)는 플래시 메모리(4201~420n)에 저장될 메타 데이터나 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 버퍼 메모리(4215)에 저장된 메타 데이터나 캐시 데이터는 플래시 메모리(4201~420n)에 저장된다. 버퍼 메모리(4215)에는 DRAM, SRAM 등이 포함될 수 있다.
도 19는 본 발명의 실시 예에 따른 저장 장치를 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(5000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 19를 참조하면, 전자 장치(5000)는 메모리 시스템(5100), 전원 장치(5200), 보조 전원 장치(5250), 중앙처리장치(5300), 램(5400), 그리고 사용자 인터페이스(5500)를 포함한다. 메모리 시스템(5100)은 플래시 메모리(5110) 및 메모리 컨트롤러(5120)를 포함한다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000; 사용자 장치 1100; 저장 장치
1110; 플래시 메모리 1111; 메모리 셀 어레이
1112; 데이터 입출력 회로 1113; 어드레스 디코더
1114; 제어 로직 1120; 메모리 컨트롤러
1121; 버스 1122; 프로세서
1123; 랜덤 액세스 메모리 1124; ECC 회로
1125; 호스트 인터페이스 1126; 버퍼 제어 회로
1127; 메모리 인터페이스 1128; 시간 계산기

Claims (20)

  1. 플래시 메모리를 포함하는 저장 장치의 동작 방법에 있어서:
    상기 플래시 메모리의 선택된 메모리 블록의 재사용 주기(R/P; reuse period)를 결정하는 단계;
    상기 선택된 메모리 블록의 상기 재사용 주기(R/P)에 대응하는 빠른 순환 가중치(WOF; weight of fast cycle)를 결정하는 단계;
    상기 빠른 순환 가중치(WOF)를 이용하여 상기 선택된 메모리 블록의 마모도(wear level)를 관리하는 단계; 및
    상기 선택된 메모리 블록의 연속적인 소거 또는 프로그램 동작들 각각에 대해 상기 빠른 순환 가중치(WOF)만큼, 상기 선택된 메모리 블록의 빠른 순환 횟수(NOF; number of fast cycle)를 증가하는 단계를 포함하고,
    상기 빠른 순환 가중치(WOF)를 결정하는 단계는,
    상기 재사용 주기(R/P)가 제 1 임계값(CR1)보다 작은 경우에, 빠른 순환이 발생한다고 결정하는 단계; 및
    상기 재사용 주기(R/P) 및 상기 제 1 임계값(CR1)의 사이의 차이의 크기에 대응하는 빠른 순환 가중치를 결정하는 단계를 포함하고,
    상기 선택된 메모리 블록의 상기 마모도는 상기 선택된 메모리 블록의 상기 빠른 순환 횟수(NOF)에 따라 관리되는 동작 방법.
  2. 제 1 항에 있어서,
    상기 선택된 메모리 블록의 상기 재사용 주기(R/P)는 상기 선택된 메모리 블록의 현재 소거 시점(CET; current erase time)과 이전 소거 시점(PET; previous erase time) 사이의 시간 차이에 대응하는 동작 방법.
  3. 제 1 항에 있어서,
    상기 선택된 메모리 블록의 상기 재사용 주기(R/P)는 상기 선택된 메모리 블록의 현재 프로그램 시점(CPT; current program time)과 이전 프로그램 시점(PPT; previous program time) 사이의 시간 차이에 대응하는 동작 방법.
  4. 삭제
  5. 삭제
  6. 제 1 항에 있어서,
    상기 재사용 주기(R/P)가 제 2 임계값(CR2>CR1)보다 큰 경우에, 상기 선택된 메모리 블록의 상기 빠른 순환 횟수(NOF)를 리셋하는 동작 방법.
  7. 제 6 항에 있어서,
    상기 재사용 주기(R/P)가 상기 제 2 임계값보다 작고 제 3 임계값(CR1<CR3<CR2)보다 큰 경우에, 상기 선택된 메모리 블록의 상기 빠른 순환 횟수(NOF)를 감소하는 동작 방법.
  8. 제 1 항에 있어서,
    상기 빠른 순환 횟수(NOF)를 증가하는 경우에, 상기 재사용 주기(R/P)에 따라 상기 빠른 순환 횟수에 가중치를 부여하는 동작 방법.
  9. 플래시 메모리를 포함하는 저장 장치의 동작 방법에 있어서:
    상기 플래시 메모리의 선택된 메모리 블록의 재사용 주기(R/P; reuse period)를 결정하는 단계;
    상기 선택된 메모리 블록의 상기 재사용 주기에 대응하는 빠른 순환 가중치(WOF; weight of fast cycle)를 결정하는 단계; 및
    상기 빠른 순환 가중치를 이용하여 상기 선택된 메모리 블록의 마모도(wear level)를 관리하는 단계를 포함하고,
    상기 선택된 메모리 블록의 상기 마모도는 상기 선택된 메모리 블록의 소거 또는 프로그램 동작들 각각의 빠른 순환 가중치들의 합(SUM of WOF)을 이용하여 관리되는 동작 방법.
  10. 제 9 항에 있어서,
    상기 빠른 순환 가중치들의 상기 합(SUM of WOF)이 마모도 관리 기준에 도달하면, 상기 선택된 메모리 블록에 대한 마모도 관리 동작을 수행하는 동작 방법.
  11. 제 9 항에 있어서,
    상기 재사용 주기(R/P)가 제 1 감소 기준(Trd1)보다 크고 제 2 감소 기준(Trd2)보다 작은 경우에, 상기 빠른 순환 가중치들의 상기 합(SUM of WOF)을 감소하는 동작 방법.
  12. 제 11 항에 있어서,
    상기 재사용 주기(R/P)가 상기 제 2 감소 기준(Trd2)보다 큰 경우에, 상기 빠른 순환 가중치들의 상기 합(SUM of WOF)을 리셋하는 동작 방법.
  13. 제 9 항에 있어서,
    상기 소거 또는 프로그램 동작들의 재사용 주기들 중 재사용 주기의 최소값을 적용하여 상기 선택된 메모리 블록의 상기 빠른 순환 가중치들의 상기 합(SUM of WOF)을 결정하는 동작 방법.
  14. 복수의 메모리 블록을 갖는 플래시 메모리; 및
    상기 복수의 메모리 블록 중에서 선택된 메모리 블록의 재사용 주기(R/P)에 대응하는 빠른 순환 가중치(WOF; weight of fast cycle)를 결정하고, 상기 빠른 순환 가중치를 이용하여 상기 선택된 메모리 블록의 마모도(wear level)를 관리하는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는 상기 빠른 순환 가중치들의 합(SUM of WOF)을 이용하여 상기 마모도를 관리하는 저장 장치.
  15. 제 14 항에 있어서,
    상기 메모리 컨트롤러는 현재 소거 동작 및 이전 소거 동작 사이의 시간 차이, 또는 현재 프로그램 동작 및 이전 프로그램 동작 사이의 시간 차이에 따라 상기 선택된 메모리 블록의 상기 재사용 주기(R/P)를 결정하는 저장 장치.
  16. 제 15 항에 있어서,
    상기 메모리 컨트롤러는 제 1 임계값(CR1)과 상기 재사용 주기(R/P)를 비교하고, 상기 재사용 주기(R/P)가 상기 제 1 임계값(CR1)보다 작은 경우에 상기 선택된 메모리 블록의 상기 빠른 순환 가중치에 따라 빠른 순환 횟수(NOF)를 증가하는 저장 장치
  17. 삭제
  18. 제 14 항에 있어서,
    상기 메모리 컨트롤러는 상기 빠른 순환 가중치들의 상기 합(SUM of WOF)이 마모도 관리 기준에 도달하면, 상기 선택된 메모리 블록에 대한 마모도 관리 동작을 수행하는 저장 장치.
  19. 제 18 항에 있어서,
    상기 메모리 컨트롤러는 상기 재사용 주기(R/P)가 제 1 감소 기준(Trd1)보다 크고 제 2 감소 기준(Trd2)보다 작은 경우에, 상기 빠른 순환 가중치들의 상기 합(SUM of WOF)을 감소하는 저장 장치.
  20. 제 19 항에 있어서,
    상기 메모리 컨트롤러는 상기 재사용 주기(R/P)가 상기 제 2 감소 기준(Trd2)보다 큰 경우에, 상기 빠른 순환 가중치들의 상기 합(SUM of WOF)을 리셋하는 저장 장치.
KR1020150124297A 2015-09-02 2015-09-02 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법 KR102333746B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150124297A KR102333746B1 (ko) 2015-09-02 2015-09-02 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법
US15/201,734 US9799407B2 (en) 2015-09-02 2016-07-05 Method for operating storage device managing wear level depending on reuse period
CN201610796626.7A CN106484320B (zh) 2015-09-02 2016-08-31 依赖于重用时段来操作管理耗损水平的存储设备的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150124297A KR102333746B1 (ko) 2015-09-02 2015-09-02 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20170027927A KR20170027927A (ko) 2017-03-13
KR102333746B1 true KR102333746B1 (ko) 2021-12-01

Family

ID=58103974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150124297A KR102333746B1 (ko) 2015-09-02 2015-09-02 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법

Country Status (3)

Country Link
US (1) US9799407B2 (ko)
KR (1) KR102333746B1 (ko)
CN (1) CN106484320B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200033461A (ko) * 2018-09-20 2020-03-30 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20210043778A (ko) 2019-10-11 2021-04-22 삼성전자주식회사 불휘발성 메모리 장치를 제어하도록 구성된 스토리지 컨트롤러의 동작 방법

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITMI20011232A1 (it) 2001-06-12 2002-12-12 St Microelectronics Srl Metodo di riprogrammazione successiva ad una operazione di cancellazione di una matrice di celle di memoria non volatile, in particolare di
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7408810B2 (en) 2006-02-22 2008-08-05 Micron Technology, Inc. Minimizing effects of program disturb in a memory device
US7467253B2 (en) 2006-04-13 2008-12-16 Sandisk Corporation Cycle count storage systems
US7495966B2 (en) 2006-05-01 2009-02-24 Micron Technology, Inc. Memory voltage cycle adjustment
US8060718B2 (en) 2006-06-20 2011-11-15 International Business Machines Updating a memory to maintain even wear
US7593259B2 (en) 2006-09-13 2009-09-22 Mosaid Technologies Incorporated Flash multi-level threshold distribution scheme
US9153337B2 (en) * 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
US8356152B2 (en) 2006-12-27 2013-01-15 Intel Corporation Initiative wear leveling for non-volatile memory
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
WO2009072102A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
KR20100013485A (ko) * 2008-07-31 2010-02-10 삼성전자주식회사 메모리 장치 및 웨어 레벨링 방법
KR101548175B1 (ko) 2008-11-05 2015-08-28 삼성전자주식회사 싱글 레벨 메모리 셀 블락과 멀티 레벨 메모리 셀 블락을 포함하는 불휘발성 메모리 장치의 마모 레벨링 방법
US20100174845A1 (en) 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8433843B2 (en) 2009-03-31 2013-04-30 Qualcomm Incorporated Method for protecting sensitive data on a storage device having wear leveling
US8576862B2 (en) 2010-05-18 2013-11-05 Lsi Corporation Root scheduling algorithm in a network processor
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8254172B1 (en) 2009-09-30 2012-08-28 Western Digital Technologies, Inc. Wear leveling non-volatile semiconductor memory based on erase times and program times
US8130553B2 (en) 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
US20110252289A1 (en) 2010-04-08 2011-10-13 Seagate Technology Llc Adjusting storage device parameters based on reliability sensing
KR20120001405A (ko) 2010-06-29 2012-01-04 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
KR101089967B1 (ko) 2010-07-09 2011-12-05 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 동작 방법
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
JP4910064B2 (ja) * 2010-08-31 2012-04-04 株式会社東芝 記憶制御装置、記憶装置、及びデータ移動制御方法
US9424930B2 (en) 2010-09-15 2016-08-23 Sandisk Technologies Llc Apparatus, system, and method for non-volatile storage element programming
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
WO2013030866A1 (en) 2011-08-29 2013-03-07 Hitachi, Ltd. Semiconductor storage device comprising electrically rewritable nonvolatile semiconductor memory
KR20130061967A (ko) * 2011-12-02 2013-06-12 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
JP5649560B2 (ja) 2011-12-27 2015-01-07 株式会社東芝 不揮発性半導体記憶装置
US9176862B2 (en) 2011-12-29 2015-11-03 Sandisk Technologies Inc. SLC-MLC wear balancing
KR20130084901A (ko) 2012-01-18 2013-07-26 삼성전자주식회사 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법
US8832506B2 (en) 2012-01-20 2014-09-09 International Business Machines Corporation Bit error rate based wear leveling for solid state drive memory
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
US20130346812A1 (en) 2012-06-22 2013-12-26 Micron Technology, Inc. Wear leveling memory using error rate
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
KR102025263B1 (ko) * 2012-10-05 2019-09-25 삼성전자주식회사 메모리 시스템 및 그것의 읽기 교정 방법
US9129689B2 (en) 2013-03-13 2015-09-08 Sandisk Technologies Inc. Tracking erase pulses for non-volatile memory
US9070449B2 (en) 2013-04-26 2015-06-30 Sandisk Technologies Inc. Defective block management
KR102108839B1 (ko) 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
KR102210961B1 (ko) 2013-06-12 2021-02-03 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동적 접근 방법
US9009568B2 (en) 2013-08-09 2015-04-14 Sandisk Technologies Inc. Sensing parameter management in non-volatile memory storage system to compensate for broken word lines
US8891308B1 (en) 2013-09-11 2014-11-18 Sandisk Technologies Inc. Dynamic erase voltage step size selection for 3D non-volatile memory
KR102140512B1 (ko) * 2013-10-16 2020-08-03 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 불휘발성 메모리 시스템 및 불휘발성 메모리 시스템의 동작 방법
KR102285462B1 (ko) * 2014-03-26 2021-08-05 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법
KR102282962B1 (ko) * 2014-12-22 2021-07-30 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Also Published As

Publication number Publication date
US20170060446A1 (en) 2017-03-02
CN106484320B (zh) 2021-04-20
KR20170027927A (ko) 2017-03-13
US9799407B2 (en) 2017-10-24
CN106484320A (zh) 2017-03-08

Similar Documents

Publication Publication Date Title
KR102215741B1 (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
KR102282962B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR102549605B1 (ko) Raid 스토리지 장치의 리커버리 방법
KR102456104B1 (ko) 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법
JP2013114679A (ja) ウェアレベル制御ロジックを含むメモリシステム
KR20160037349A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US9940193B2 (en) Chunk definition for partial-page read
US11194736B2 (en) Memory controller having improved map data access performance and method of operating the same
KR20210068894A (ko) 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR20170036964A (ko) 불휘발성 메모리 시스템의 동작 방법
KR102393323B1 (ko) 재사용 주기를 이용하여 사용자 데이터를 쓰기 위한 워드라인을 결정하는 저장 장치의 동작 방법
US10642525B2 (en) Multiple-stage data lifetime management for storage devices
KR102620731B1 (ko) 메모리 시스템 및 그것의 동작방법
KR102435863B1 (ko) 스토리지 장치 및 그것을 포함하는 서버 시스템의 매칭 키 검색 방법
KR20210027980A (ko) 메모리 컨트롤러 및 그 동작 방법
KR102333746B1 (ko) 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법
KR20220075684A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US20230195324A1 (en) Storage device
US11449277B2 (en) Memory controller and method of operating the same
KR20210071314A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
KR20210054396A (ko) 저장 장치 및 그 동작 방법
US11923014B2 (en) Memory system compensating for performance deterioration of a memory device
US20230051018A1 (en) Memory system and method of operating the same
CN111580743B (zh) 存储器控制器及其操作方法
KR102601152B1 (ko) 메모리 컨트롤러 및 그 동작 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right