KR101923284B1 - 온도 기반 플래시 메모리 시스템 유지보수 - Google Patents

온도 기반 플래시 메모리 시스템 유지보수 Download PDF

Info

Publication number
KR101923284B1
KR101923284B1 KR1020167013455A KR20167013455A KR101923284B1 KR 101923284 B1 KR101923284 B1 KR 101923284B1 KR 1020167013455 A KR1020167013455 A KR 1020167013455A KR 20167013455 A KR20167013455 A KR 20167013455A KR 101923284 B1 KR101923284 B1 KR 101923284B1
Authority
KR
South Korea
Prior art keywords
priority
memory
temperature
operations
maintenance
Prior art date
Application number
KR1020167013455A
Other languages
English (en)
Other versions
KR20160113580A (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 샌디스크 테크놀로지스 엘엘씨
Publication of KR20160113580A publication Critical patent/KR20160113580A/ko
Application granted granted Critical
Publication of KR101923284B1 publication Critical patent/KR101923284B1/ko

Links

Images

Classifications

    • 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/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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects

Abstract

메모리 시스템 또는 플래시 카드는 메모리의 내구성을 개선하는 메모리 유지보수 스케줄링을 포함할 수 있다. 온도와 같은 특정 파라미터들은 유지보수를 스케줄링하기 위하여 측정되고 이용된다. 예를 들어, 메모리 유지보수는 카드의 주변 온도에 따라 수행되거나 연기될 수 있다. 메모리 유지보수 동작들은 메모리 유지보수의 더 효율적인 스케줄링을 위하여 파라미터들의 임계값들과 대응하도록 (예컨대, 우선순위에 기초하여 메모리 유지보수 큐에서) 순위화되거나 분류될 수 있다. 예를 들어, 낮은 온도 임계값에서는 높은 우선순위의 유지보수 동작들만이 수행되는 한편, 더 높은 온도 임계값에서는 임의의 우선순위의 유지보수 동작이 수행된다.

Description

온도 기반 플래시 메모리 시스템 유지보수{TEMPERATURE BASED FLASH MEMORY SYSTEM MAINTENANCE}
본 출원은 일반적으로 메모리 디바이스들에 관한 것이다. 더 구체적으로는, 본 출원은 비휘발성 반도체 플래시 메모리의 내구성 및 수명을 개선하기 위한 백그라운드 동작들의 관리 및 스케줄링에 관한 것이다.
플래시 메모리와 같은 비휘발성 메모리 시스템들은 소비자 제품들에서의 이용을 위해 널리 채택되었다. 플래시 메모리는 상이한 형태들로, 예를 들어 호스트 디바이스들 사이에 운반될 수 있는 휴대용 메모리 카드의 형태로, 또는 호스트 디바이스에 내장된 솔리드 스테이트 디스크(SSD)로서 발견될 수 있다.
비휘발성 메모리 셀이 단위 면적 당 더 높은 용량을 갖는 더 작은 치수들로 스케일링됨에 따라, 프로그램 및 소거 사이클링으로 인한 셀 내구성과, (예컨대, 판독 또는 프로그램 중 어느 하나로 인한) 교란들이 더 현저해질 수 있다. 실리콘 프로세스 동안의 결함 레벨은, 셀 치수가 축소되고 프로세스 복잡성이 증가함에 따라 상승될 수 있다. 따라서, 높은 내구성 요건들을 충족시키는 메모리는 더 어려울 수 있고, 이것은 기술 스케일링을 위한 연구 및 개발 비용을 추가로 증가시킬 수 있다.
메모리는 호스트 기입들 및 비호스트 기입들로 인한 기입/소거 사이클들을 겪는다. 비호스트 기입들은 메모리 카드에 의해/메모리 카드 상에 수행되는 메모리 유지보수 및/또는 백그라운드 동작들을 포함할 수 있다. 이 메모리 유지보수로 인한 메모리 리사이클링은 카드 수명을 상당히 감소시킬 수 있다. 메모리 유지보수는 유휴 시간이 있을 때마다 수행될 수 있고, 특정 솔루션들은 메모리 유지보수로 인한 기입/소거 사이클들의 수를 감소시키려고 시도한다.
특정 파라미터들을 모니터링하고 그 파라미터들의 값들에 기초하여 유지보수를 스케줄링하는 최적화된 메모리 유지보수 시스템을 통해 메모리의 내구성을 개선하는 것이 바람직할 수 있다. 예를 들어, 온도는 모니터링되는 예시적인 파라미터일 수 있다. 메모리 유지보수는 카드의 주변 온도에 따라 수행되거나 연기될 수 있다. 메모리 유지보수 동작들 및 백그라운드 동작들은 메모리 유지보수의 더 효율적인 스케줄링을 위하여 파라미터들의 임계값들과 대응하도록 (예컨대, 우선순위에 기초하여 메모리 유지보수 큐에서) 순위화되거나 분류될 수 있다. 예를 들어, 낮은 온도 임계값에서는 높은 우선순위의 유지보수 동작들만이 수행되는 한편, 더 높은 온도 임계값에서는 임의의 우선순위의 유지보수 동작이 수행된다.
도 1은 비휘발성 메모리를 갖는 메모리 시스템과 접속된 호스트의 블록도이다.
도 2는 도 1의 시스템에서 이용하기 위한 예시적인 플래시 메모리 디바이스 제어기의 블록도이다.
도 3은 대안적인 메모리 통신 시스템의 블록도이다.
도 4는 도 1의 시스템의 예시적인 물리적 메모리 구성이다.
도 5는 도 4의 물리적 메모리의 일부의 확대도이다.
도 6은 메모리 셀에 2 비트의 데이터를 저장하도록 동작되는 멀티-레벨 셀 메모리에서의 전하 레벨들(charge levels)을 예시하는 도면이다.
도 7은 메모리 셀 터널 산화물(memory cell tunnel oxide)에 있어서 높은 온도("HT")에서 트랩핑된 전하의 디트랩핑(de-trapping)을 예시한다.
도 8은 호스트와 온도 센서의 하나의 실시예이다.
도 9는 메모리 시스템과 온도 센서의 하나의 실시예이다.
도 10은 단순화된 메모리 유지보수 스케줄링을 예시하는 플로우차트이다.
도 11은 예시적인 분류들 및 각각의 분류에 대한 각각의 우선순위들을 예시한다.
도 12는 예시적인 우선순위 결정(1202) 인자들을 예시한다.
도 13은 유지보수 동작들의 스케줄링의 하나의 실시예를 예시한다.
본 발명의 양태들을 구현하는데 있어서 이용하기에 적합한 플래시 메모리 시스템이 도 1 내지 도 6에 도시되어 있다. 도 1의 호스트 시스템(100)은 데이터를 플래시 메모리(102)로 저장하고, 플래시 메모리로부터 데이터를 검색한다. 플래시 메모리는 예컨대 개인용 컴퓨터에 설치된 솔리드 스테이트 디스크(SSD) 드라이브의 형태로 호스트 내에 내장될 수 있다. 대안적으로, 메모리(102)는 도 1에 예시된 바와 같이 기계적 및 전기적 커넥터의 정합 부분들(104 및 106)을 통해 호스트에 제거가능하게 접속되는 플래시 메모리 카드의 형태일 수 있다. 내부 또는 내장된 SSD 드라이브로서 이용하도록 구성된 플래시 메모리는 도 1의 개략도와 유사하게 보일 수 있으며, 하나의 차이는 호스트 내부의 메모리 시스템(102)의 위치이다. SSD 드라이브들은 회전하는 자기 디스크 드라이브들에 대한 드롭-인 대체물들(drop-in replacements)인 이산 모듈들의 형태일 수 있다. 설명된 바와 같이, 플래시 메모리는 전하를 저장하는 부정 AND(NAND) 셀의 이용을 지칭할 수 있다.
상업적으로 입수가능한 제거가능 플래시 메모리 카드들의 예들은 CF(CompactFlash), MMC(MultiMediaCard), SD(Secure Digital), miniSD, 메모리 스틱, SmartMedia, TransFlash 및 microSD 카드들을 포함한다. 이 카드들 각각은 표준화된 규격들에 따른 고유한 기계적 및/또는 전기적 인터페이스를 가질 수 있지만, 각각에 포함된 플래시 메모리 시스템은 유사할 수 있다. 이 카드들은 모두 본 출원의 양수인인 SanDisk Corporation으로부터 입수가능하다. SanDisk는 그 Cruzer 상표로 플래시 드라이브들의 라인을 또한 제공하고, 이들은 호스트의 USB 리셉터클 내로 플러깅함으로써 호스트와 접속하기 위한 유니버셜 직렬 버스(USB) 플러그를 갖는 소형 패키지들의 핸드헬드 메모리 시스템들이다. 이 메모리 카드들 및 플래시 드라이브들 각각은 그들 내부의 플래시 메모리의 호스트 및 제어 동작과 인터페이싱하는 제어기들을 포함한다.
SSD들, 메모리 카드들, 및 플래시 드라이브들을 이용할 수 있는 호스트 시스템들은 많으며 다양하다. 이들은 개인용 컴퓨터들(PC들), 예컨대 데스크톱 또는 랩톱 및 다른 휴대용 컴퓨터들, 태블릿 컴퓨터들, 셀룰러 전화들, 스마트폰들, PDA들(personal digital assistants), 디지털 스틸 카메라들, 디지털 무비 카메라들, 및 휴대용 미디어 플레이어들을 포함한다. 휴대용 메모리 카드 애플리케이션들을 위하여, 호스트는 하나 이상의 유형의 메모리 카드들 또는 플래시 드라이브들을 위한 빌트인 리셉터클을 포함할 수 있거나, 또는 호스트는 메모리 카드가 플러깅되는 어댑터들을 필요로 할 수 있다. 메모리 시스템은 그 자신의 메모리 제어기 및 구동기들을 포함할 수 있지만, 또한 메모리가 접속되는 호스트에 의해 실행된 소프트웨어에 의해 대신에 제어되는 일부 메모리-단독 시스템들(memory-only systems)일 수 있다. 제어기를 포함하는 일부 메모리 시스템들, 특히 호스트 내에 내장된 것들에서, 메모리, 제어기 및 구동기들은 단일의 집적 회로 칩 상에 종종 형성된다. 호스트는, SD(Secure Digital) 프로토콜, 메모리 스틱(MS) 프로토콜, 및 유니버셜 직렬 버스(USB) 프로토콜과 같지만 이에 제한되지는 않는 임의의 통신 프로토콜을 이용하여 메모리 카드와 통신할 수 있다.
도 1의 호스트 시스템(100)은, 메모리 디바이스(102)에 관한 한, 회로와 소프트웨어의 조합으로 구성되는 2개의 주요 부분들을 갖는 것으로 간주될 수 있다. 애플리케이션들 부분(108)은 파일 시스템 모듈(114) 및 구동기(110)를 통해 메모리 디바이스(102)와 인터페이싱할 수 있다. PC에서, 예를 들어, 애플리케이션들 부분(108)은 워드 프로세싱, 그래픽스, 제어, 또는 다른 대중적인 애플리케이션 소프트웨어를 실행하기 위한 프로세서(112)를 포함할 수 있다. 단일의 기능 세트를 수행하는데 주로 전용인 카메라, 셀룰러 전화에서, 애플리케이션들 부분(108)은, 사진들을 촬영하고 저장하도록 카메라를 동작시키고, 전화를 걸고 받도록 셀룰러 전화를 동작시키거나 하는 소프트웨어를 실행하기 위해 하드웨어로 구현될 수 있다.
도 1의 메모리 시스템(102)은 플래시 메모리(116)와 같은 비휘발성 메모리, 및 메모리 시스템(102)이 데이터를 전후로 전달하기 위해 접속되는 호스트(100)와 인터페이싱하며 메모리(116)를 제어하는 디바이스 제어기(118)를 포함할 수 있다. 디바이스 제어기(118)는 데이터 프로그래밍 및 판독 동안 호스트(100)에 의해 이용되는 데이터의 논리적 어드레스들과 플래시 메모리(116)의 물리적 어드레스들 사이에 변환할 수 있다. 기능적으로, 디바이스 제어기(118)는 호스트 시스템 제어기 로직(110)과 인터페이싱하는 호스트 인터페이스 모듈(HIM)(122), 호스트 인터페이스 모듈(122)과 조정하기 위한 제어기 펌웨어 모듈(124), 및 플래시 인터페이스 모듈(128)을 포함할 수 있다. 플래시 관리 로직(126)은 가비지 컬렉션(garbage collection)과 같은 내부 메모리 관리 동작들을 위한 제어기 펌웨어(214)의 일부일 수 있다. 하나 이상의 플래시 인터페이스 모듈들(FIM들)(128)은 플래시 메모리(116)와 제어기 사이에 통신 인터페이스를 제공할 수 있다.
플래시 변환 계층("FTL") 또는 매체 관리 계층("MML")은 플래시 관리(126)에 집적될 수 있고, 플래시 에러들 및 호스트와의 인터페이싱을 핸들링할 수 있다. 특히, 플래시 관리(126)는 제어기 펌웨어(124)의 일부이고, MML은 플래시 관리 내의 모듈일 수 있다. MML은 NAND 관리의 내부들을 담당할 수 있다. 특히, MML은 호스트(100)로부터의 기입들을 플래시 메모리(116)로의 기입들로 변환하는 메모리 디바이스 펌웨어에서의 알고리즘을 포함할 수 있다. MML은, 1) 플래시 메모리가 제한된 내구성을 가질 수 있고; 2) 플래시 메모리(116)가 다수의 페이지들로 기입되기만 할 수 있고; 그리고/또는 3) 플래시 메모리(116)가 블록으로서 소거되지 않는 한 기입되지 않을 수 있기 때문에, 필요할 수 있다. MML은 호스트(100)에 대해 가시적이지 않을 수 있는 플래시 메모리(116)의 이 잠재적인 제한들을 이해한다. 따라서, MML은 호스트(100)로부터의 기입들을 플래시 메모리(116)로의 기입들로 변환하려고 시도한다. 아래에 설명되는 바와 같이, 메모리 유지보수 스케줄링 알고리즘은 MML로부터 동작될 수 있다. 플래시 메모리(116) 또는 다른 메모리는 멀티-레벨 셀(MLC) 또는 단일-레벨 셀(SLC) 메모리일 수 있다. MLC 및 SLC 메모리는 아래에 추가로 설명된다. SLC 또는 MLC 중 어느 하나는 플래시 메모리(116)의 일부로서가 아니라 디바이스 제어기(118)의 일부로서 포함될 수 있다. 도 8 및 도 9에 예시된 바와 같이, 호스트 시스템(100)의 일부이거나 메모리 시스템(102)의 일부인 온도 센서가 있을 수 있다.
디바이스 제어기(118)는 도 2에 도시된 것과 같이 주문형 집적 회로(ASIC)와 같은 단일 집적 회로 칩 상에 구현될 수 있다. 디바이스 제어기(118)의 프로세서(206)는 플래시 메모리(116)에서의 각각의 메모리 뱅크에 대한 I/O 포트들을 갖는 메모리 인터페이스(204)를 통해 통신할 수 있는 멀티-스레드 프로세서로서 구성될 수 있다. 디바이스 제어기(118)는 내부 클록(218)을 포함할 수 있다. 프로세서(206)는 내부 데이터 버스(202)를 통해 에러 정정 코드(ECC) 모듈(214), RAM 버퍼(212), 호스트 인터페이스(216), 및 부트 코드 ROM(210)과 통신한다.
호스트 인터페이스(216)는 호스트와의 데이터 접속을 제공할 수 있다. 메모리 인터페이스(204)는 도 1로부터의 하나 이상의 FIM들(128)일 수 있다. 메모리 인터페이스(204)는 디바이스 제어기(118)가 플래시 메모리(116)와 통신하는 것을 허용한다. RAM(212)은 정적 랜덤 액세스 메모리(SRAM)일 수 있다. ROM(210)은 플래시 메모리 디바이스와 같은 메모리 시스템(102)을 초기화하기 위하여 이용될 수 있다. 초기화되는 메모리 시스템(102)은 카드로서 지칭될 수 있다. 도 2에서의 ROM(210)은, 메모리 시스템(102)의 초기화 및 부팅과 같이 프로그램을 프로세싱하기 위해 부트 코드를 RAM에 제공하는 목적을 갖는 판독 전용 메모리의 영역일 수 있다. ROM은 플래시 메모리 칩이 아니라 ASIC에 존재할 수 있다.
도 3은 대안적인 메모리 통신 시스템의 블록도이다. 호스트 시스템(100)은 도 1과 관련하여 논의된 바와 같이 메모리 시스템(102)과 통신한다. 메모리 시스템(102)은 프론트 엔드(302), 및 플래시 메모리(116)와 결합된 백 엔드(306)를 포함한다. 하나의 실시예에서, 프론트 엔드(302) 및 백 엔드(306)는 메모리 제어기로서 지칭될 수 있고, 디바이스 제어기(118)의 일부일 수 있다. 프론트 엔드(302)는 호스트 인터페이스 모듈(HIM)(122) 및 HIM 제어기(304)를 논리적으로 포함할 수 있다. 백 엔드(306)는 플래시 인터페이스 모듈(FIM)(128) 및 FIM 제어기(308)를 논리적으로 포함할 수 있다. 따라서, 제어기(301)는 2개의 모듈들, 즉 HIM 제어기(304) 및 FIM 제어기(308)로 논리적으로 나누어질 수 있다. HIM(122)은 호스트 디바이스(100)에 대한 인터페이스 기능성을 제공하고, FIM(128)은 플래시 메모리(116)에 대한 인터페이스 기능성을 제공한다. 제어기(301)는 온도 센서(310)와 결합될 수 있다. 온도 센서(310)는 도 8 및 도 9에 예시된 바와 같이 호스트 시스템(100)의 일부 또는 메모리 시스템(102)의 일부일 수 있다. 온도 센서는 제어기(301) 내에 또는 독립형으로 위치될 수 있다. 어느 하나의 실시예에서, 온도 감지의 정확도는 플래시 메모리(116)에 더 근접할수록 개선될 수 있다. 온도 센서(310)는 측정된/모니터링된 온도를 제어기(301)와 통신한다. FIM 제어기(308)는 도 7 내지 도 10과 관련하여 아래에 설명되는 바와 같이 학습 페이즈 및 구현 페이즈를 구현하는 알고리즘들을 포함할 수 있다.
동작 시에, 데이터는 메모리 시스템(102) 상에서의 호스트 디바이스(100)의 기입 동작 동안에 HIM 제어기(304)에 의해 HIM(122)으로부터 수신된다. HIM 제어기(304)는 수신된 데이터의 제어를 위에서 논의된 FTL을 포함할 수 있는 FIM 제어기(308)로 전달할 수 있다. FIM 제어기(308)는 수신된 데이터가 어떻게 플래시 메모리(116) 상으로 최적으로 기입되어야 하는지를 결정할 수 있다. 수신된 데이터는 FIM 제어기(308)에 의해 행해진 결정에 기초하여 플래시 메모리(116) 상으로 데이터를 기입하기 위하여 FIM 제어기(308)에 의해 FIM(128)에 제공될 수 있다. 특히, 데이터의 카테고리화에 따라, 그것은 상이하게(예컨대, MLC로 또는 업데이트 블록에 보유됨) 기입될 수 있다.
도 4는 셀 어레이로서 플래시 메모리(116)(도 1)의 구성을 개념적으로 예시한다. 플래시 메모리(116)는 단일의 또는 다수의 메모리 제어기들(118)에 의해 각각 별도로 제어되는 다수의 메모리 셀 어레이들을 포함할 수 있다. 메모리 셀들의 4개의 평면들 또는 서브-어레이들(402, 404, 406 및 408)은 단일의 집적 메모리 셀 칩 상에, 2개의 칩들(각각의 칩 상의 평면들 중 2개) 상에, 또는 4개의 별도의 칩들 상에 있을 수 있다. 특정 배열은 아래의 논의에 중요하지 않다. 물론, 1개, 2개, 8개, 16개 이상과 같은 다른 수의 평면들이 시스템에 존재할 수 있다. 평면들은 이하에서 블록들로서 지칭되는 소거의 최소 단위를 형성하는 메모리 셀들의 그룹들로 개별적으로 분할된다. 메모리 셀들의 블록들은 각각의 평면들(402, 404, 406 및 408)에 위치된 블록들(410, 412, 414 및 416)과 같이 직사각형들로 도 4에 도시되어 있다. 각각의 평면에 임의의 수의 블록들이 있을 수 있다.
메모리 셀들의 블록은 소거의 단위이며, 물리적으로 함께 소거가능한 가장 작은 수의 메모리 셀들이다. 그러나, 증가된 병렬화를 위하여, 블록들은 더 큰 메타블록 단위들로 동작될 수 있다. 각각의 평면으로부터의 하나의 블록은 메타블록을 형성하기 위하여 논리적으로 함께 링크된다. 4개의 블록들(410, 412, 414 및 416)이 하나의 메타블록(418)을 형성하는 것으로 도시되어 있다. 메타블록 내의 셀들 전부는 전형적으로 함께 소거된다. 메타블록을 형성하기 위하여 이용되는 블록들은, 블록들(422, 424, 426 및 428)로 구성된 제2 메타블록(420)에 도시된 바와 같이, 그 각각의 평면들 내의 동일한 상대적 위치들에 한정될 필요는 없다. 평면들 전부에 걸쳐 메타블록들을 확장하는 것이 통상적으로 바람직하지만, 높은 시스템 성능을 위해, 메모리 시스템은 상이한 평면들 내의 1개, 2개 또는 3개의 블록들 중 임의의 것 또는 전부의 메타블록들을 동적으로 형성하는 능력으로 동작될 수 있다. 이것은 메타블록의 크기가 하나의 프로그래밍 동작에서의 저장을 위하여 이용가능한 데이터의 양과 더 근접하게 매칭되는 것을 허용한다.
개별적인 블록들은 결국 동작 목적들을 위하여 도 5에 예시된 바와 같이 메모리 셀들의 페이지들로 분할된다. 블록들(410, 412, 414 및 416) 각각에 대한 메모리 셀들은 예를 들어 8개의 페이지들 P0 내지 P7로 각각 분할된다. 대안적으로, 각각의 블록 내에는 메모리 셀들의 16개, 32개 또는 그 이상의 페이지들이 있을 수 있다. 페이지는 블록 내의 데이터 프로그래밍 및 판독의 단위이며, 이는 한 번에 프로그래밍되거나 판독되는 데이터의 최소의 양을 포함한다. 그러나, 메모리 시스템 동작 병렬화를 증가시키기 위하여, 2개 이상의 블록들 내의 이러한 페이지들은 메타페이지들로 논리적으로 링크될 수 있다. 메타페이지(502)는 도 4에 예시되어 있으며, 4개의 블록들(410, 412, 414 및 416) 각각으로부터의 하나의 물리적 페이지로 형성된다. 메타페이지(502)는 예를 들어 4개의 블록들 각각에 페이지 P2를 포함하지만, 메타페이지의 페이지들은 반드시 블록들 각각 내의 동일한 상대적 위치를 가질 필요는 없다. 메타페이지는 프로그래밍의 최대 단위일 수 있다.
메모리 셀들은 전하의 2개의 레벨들을 저장하도록 동작될 수 있고, 그에 의해 단일 비트의 데이터가 각각의 셀에 저장된다. 이것은 2진 또는 단일 레벨 셀(SLC) 메모리로서 전형적으로 지칭된다. SLC 메모리는 2개의 상태들, 즉 0 또는 1을 저장할 수 있다. 대안적으로, 메모리 셀들은, 각각의 전하 저장 요소 또는 영역에 전하의 2개 초과의 검출가능한 레벨들을 저장하고, 그에 의해 각각에 1 초과 비트의 데이터를 저장하도록 동작될 수 있다. 이 후자의 구성은 멀티-레벨 셀(MLC) 메모리로서 지칭된다. 예를 들어, MLC 메모리는 4개의 상태들을 저장할 수 있고, 2 비트의 데이터, 즉 00 또는 01 및 10 또는 11을 보유할 수 있다. 양자의 유형의 메모리 셀들은 메모리에서 이용될 수 있는데, 예를 들어, 2진 SLC 플래시 메모리는 데이터를 캐시하기 위하여 이용될 수 있고, MLC 메모리는 더 장기 저장을 위하여 이용될 수 있다. 메모리 셀들의 전하 저장 요소들은 가장 일반적인 전도성 플로팅 게이트들(conductive floating gates)이지만, 대안적으로 비전도성 유전체 전하 트랩핑 재료일 수 있다. 아래에 설명되는 바와 같이, SLC 및 MLC는 상이한 내구성 요건들을 가질 수 있으므로, 마모를 감소시키고 기입 증폭(write amplification)("WA")을 감소시키기 위한 유지보수 동작들의 스케줄링은 그 내구성 요건들에 따라 더 중요할 수 있다.
각각의 메모리 셀에 2 비트의 데이터를 저장하도록 동작되는 MLC 메모리의 구현예들에서, 각각의 메모리 셀은 "11", "01", "00" 및 "10"의 값들에 대응하는 전하의 4개의 레벨들을 저장하도록 구성된다. 2 비트의 데이터의 각각의 비트는 하부 페이지의 페이지 비트 또는 상부 페이지의 페이지 비트를 나타낼 수 있으며, 여기서 하부 페이지 및 상부 페이지는 공통 워드 라인을 공유하는 일련의 메모리 셀들에 걸친다. 전형적으로, 2 비트의 데이터의 하위 비트는 하부 페이지의 페이지 비트를 나타내고, 2 비트의 데이터의 상위 비트는 상부 페이지의 페이지 비트를 나타낸다.
도 6은 메모리 셀에서 2 비트의 데이터를 나타내기 위하여 이용되는 4개의 전하 레벨들의 하나의 구현예를 예시한다. 도 6은 중앙 하부 모드(lower at middle mode)로서 지칭될 수 있는 LM 모드로서 표기되고, 중앙 하부 또는 하부-중앙 중간 상태(lower-middle intermediate state)에 관하여 아래에 추가로 설명될 것이다. LM 중간 상태는 하부 페이지 프로그래밍된 상태로서 또한 지칭될 수 있다. "11"의 값은 메모리 셀의 프로그래밍되지 않은 상태(un-programmed state)에 대응한다. 프로그래밍 펄스들이 하부 페이지의 페이지 비트를 프로그래밍하기 위하여 메모리 셀에 인가될 때, 전하의 레벨은 하부 페이지의 페이지 비트의 프로그래밍된 상태에 대응하는 "10"의 값을 나타내기 위하여 증가된다. 하부 페이지는 멀티-레벨 셀(MLC) 상의 위치를 나타내는 논리적 개념으로 고려될 수 있다. MLC가 셀 당 2 비트인 경우, 논리적 페이지는 함께 그룹화되는 워드라인 상의 셀들의 모든 최하위 비트들을 포함할 수 있다. 다시 말해서, 하부 페이지는 최하위 비트들이다. 상부 페이지의 페이지 비트에 대하여, 하부 페이지의 페이지 비트가 프로그래밍될 때("10"의 값), 프로그래밍 펄스들은 상부 페이지의 페이지 비트의 희망하는 값에 따라 "00" 또는 "10"의 값에 대응하도록 전하의 레벨을 증가시키기 위하여 상부 페이지의 페이지 비트에 대한 메모리 셀에 인가된다. 그러나, 하부 페이지의 페이지 비트가 프로그래밍되지 않아, 메모리 셀이 프로그래밍되지 않은 상태에 있는 경우("11"의 값), 상부 페이지의 페이지 비트를 프로그래밍하기 위하여 프로그래밍 펄스들을 메모리 셀에 인가하는 것은 상부 페이지의 페이지 비트의 프로그래밍된 상태에 대응하는 "01"의 값을 나타내기 위하여 전하의 레벨을 증가시킨다.
메모리 시스템들은 그 애플리케이션의 정상 수명 범위에서의 호스트 기입들 및 메모리 유지보수 동작들의 양자로 인해 기입/소거 동작들을 겪는다. 내부 메모리 유지보수(즉, 비호스트 기입 동작들 또는 백그라운드 동작들)는 MLC 및 SLC의 양자에 대한 높은 기입 증폭 인자("WAF")를 도입할 수 있다. WAF는 (하나의 블록으로부터 또 다른 블록으로의 임의의 내부 복사로 인한) 호스트 제어기가 기입하기를 원하는 데이터의 양에 대한 플래시 제어기가 기입해야 하는 데이터의 양일 수 있다. 다시 말해서, WAF는 호스트로부터의 기입들과 비교한 비호스트 기입 동작들의 비율이다. 하나의 예에서, MLC 기입/소거 동작들의 최대 절반은 이 내부 메모리 동작들로 인한 것일 수 있다. 이것은 카드의 수명에 대해 상당한 영향을 미칠 수 있다. 따라서, 시스템의 내부 기입/소거 동작들로 인한 내구성 영향을 감소시키는 것이 중요할 수 있다. 더 높은 온도들에서, 프로그램 및 소거와 같은 고전압 동작들로 인한 메모리 셀들에서의 결함 발생이 더 낮은 온도와 비교하여 느려진다. 기입 증폭은 반드시 더 낮지는 않을 수 있지만, 발생되는 결함들은 감소된다. 높은 온도에서, 전자들은, 도 7과 관련하여 추가로 논의되는 바와 같이 더 많은 트랩들을 발생시키는 연쇄 반응을 생성하는 결함들에 트랩핑될 확률이 더 낮다. 이에 따라, 터널 산화물은 더 높은 온도들에서 그 무결성을 양호하게 유지할 수 있다. 감소된 에러들은 표 1과 함께 아래에 언급되는 디바이스의 평균 내구성을 궁극적으로 증가시킬 수 있다.
(비호스트 기입들 및/또는 백그라운드 동작들로서 교환가능하게 지칭되는) 메모리 유지보수는 최적의 시간들에서만 수행될 수 있다. 예를 들어, 메모리 유지보수는 온도에 따라 제한될 수 있다. 메모리 유지보수의 하나의 예는 소거될 블록들 내의 쓸모 없는 데이터(obsolete data)를 함께 집합시키기 위하여 필요할 수 있는 가비지 컬렉션을 포함한다. 가비지 컬렉션은 유효한 데이터를 함께 그룹화할 수 있고, 쓸모 없는 데이터를 그룹화할 수 있다. 블록이 쓸모 없는 데이터만을 포함할 때, 그것은 새로운 데이터가 그 블록에 기입될 수 있도록 소거될 수 있다. 가비지 컬렉션은 부분적으로 이용된 블록들의 수를 최소화함으로써 블록들에서의 저장을 최대화하기 위하여 이용된다. 다시 말해서, 가비지 컬렉션은, 유효한 데이터와 쓸모 없는 데이터 양자의 혼합물을 갖는 블록들이 더 적기 때문에 더 많은 자유 블록들을 초래하는, 유효한 데이터와 쓸모 없는 데이터의 혼합물을 갖는 블록들로부터의 유효한 데이터의 통합 또는 집합일 수 있다.
WAF 및 특정한 카드에 대한 추정된 사용에 적어도 부분적으로 기초하여, SLC 및 MLC의 양자에 대한 특정 내구성 요건들이 있을 수 있다. 예를 들어, 특정 시간 기간(예컨대, 3년)에 걸친 32 기가바이트(GB) SD 카드에 대한 다수의 스마트폰들의 사용의 평가들을 비교함으로써, 카드 고장을 방지하기 위한 최대의 시뮬레이팅된 사용 패턴들을 초과하는 내구성 요건이 결정될 수 있다. 다음의 예시적인 표 1은 3년의 기간 동안 고장 없이 작동하기 위한 제품에 대한 표 1에서의 예시적인 시뮬레이션들에 기초한 메모리에 대한 내구성 요건들을 예시한다. 표 1에 기초하여, 4GB 및 8GB 용량에 대한 SLC 내구성 요건들은 16GB 용량들보다 상당히 더 높다.
Figure 112016048729012-pct00001
표 1에 예시된 내구성 요건들은 예시적인 것에 불과하고, 시간 경과에 따라 변화할 수 있다. 특히, 도시된 내구성 요건들은 내구성 요건들을 설명하기 위한 예들에 불과하고, 그러한 값들은 상이한 디바이스들에 대해 상이할 수 있다. 기술 크기가 계속적으로 감소함에 따라, 내구성도 또한 감소할 수 있다. 증가하는 사용 및 잠재적으로 감소하는 내구성에 기초하여, 아래에 설명되는 바와 같은 백그라운드 동작들의 동적 모니터링 및 업데이트는 전체 마모를 감소시키고, 고장을 감소시키고, 메모리의 수명을 개선하기 위한 방식이어야 한다. 최종적으로, 아래에 설명되는 파라미터(예컨대, 온도)에 기초한 동적 스케줄링은 전력 소비, 생산 비용, 및 출시까지의 시간을 또한 감소시킬 수 있다.
도 7은 메모리 셀 터널 산화물에 있어서 높은 온도("HT")에서 트랩핑된 전하의 디트랩핑을 예시한다. 도 7은 높은 온도("HT")에서 산화물과 같은 메모리 셀의 유전체들 내부의 전하의 디트랩핑 프로세스의 에너지 대역 도면을 도시한다. 도시된 바와 같이, IPD는, 실리콘 이산화물, 실리콘 질화물 및 실리콘 이산화물의 3-층을 포함할 수 있는 인터-폴리 유전체(inter-poly dielectrics)이다. 플로팅 게이트("FG")는 전자들을 저장하기 위한 전도성 층이다. 폴리실리콘은 NAND 셀의 제어 게이트 또는 워드라인일 수 있고, 실리콘은 NAND 셀들의 전체 어레이가 구축되는 기판이다. 폴리실리콘은 셀의 제조 동안에 형성되는 층일 수 있고, 실리콘은 NAND 칩들이 만들어지는 기존의 웨이퍼이다. 열이온 방출(thermionic emission)로 인해, 터널 산화물("TOX")에 트랩핑된 전자는 탈출할 수 있고, 이에 따라, 더 낮은 온도("LT")에서의 경우에 대하여 다른 경우보다 산화물에서 더 적은 트랩들(결함들)을 생성할 수 있다.
따라서, 도 7은 더 높은 온도들이 더 적은 결함들을 초래할 수 있는 이유를 예시한다. 더 높은 온도들에서, 전자들은 전이하는데 더 많은 에너지를 가진다. 더 높은 온도들에서의 프로그래밍은 NAND 사용 동안의 에러들의 확률을 감소시킨다. 아래에 설명되는 바와 같이, 모니터링된 온도는 다음에 메모리 유지보수를 언제 수행할지를 결정하기 위한 트리거로서 이용될 수 있다. 예를 들어, 낮은 온도는 메모리 유지보수가 제한되어야 한다는 것을 의미할 수 있다. 더 높은 온도에서의 기입/소거 동작들은, 더 적은 결함들을 야기시키는, 메모리 셀들에서의 전하 트랩핑의 더 적은 양을 도입할 수 있다. 따라서, 알고리즘은, 메모리 내구성 및 카드 수명을 개선하기 위하여, 온도에 기초한 특정 파라미터들에 대한 임계값들에 기초하여 메모리 유지보수를 제어할 수 있다. 목표는 더 높은 온도들에서 내부 메모리 유지보수를 최대화하는 것일 수 있다.
도 8은 호스트(802)와 온도 센서(806)의 하나의 실시예이다. 호스트(802) 및 메모리 시스템(804)은 도 1 내지 도 3 중 임의의 것에 예시된 호스트 또는 메모리 시스템일 수 있지만, 간략함을 위하여 추가적인 요소들 없이 도 8에 도시되어 있다. 도 8은 온도 센서(806)를 호스트(802)의 일부로서 예시한다. 예를 들어, 호스트가 메모리 카드(예컨대, SD 카드)를 수용하는 스마트폰인 경우, 스마트폰은 온도를 모니터링하기 위한 온도 센서를 포함할 수 있다. 다음으로, 호스트(802)는 측정된 온도를 메모리 시스템(804)과 통신할 수 있어, 메모리 시스템(804)은 이에 따라 유지보수를 스케줄링할 수 있다.
도 9는 메모리 시스템(904)과 온도 센서(906)의 하나의 실시예이다. 호스트(902) 및 메모리 시스템(904)은 도 1 내지 도 3 중 임의의 것에 예시된 호스트 또는 메모리 시스템일 수 있지만, 간략함을 위하여 추가적인 요소들 없이 도 9에 도시되어 있다. 도 9는 온도 센서(906)를 메모리 시스템(904)의 일부로서 예시한다. 특히, 온도 센서는 메모리 시스템의 내부 컴포넌트일 수 있다. 하나의 실시예에서, 온도 센서(906)는 메모리 온도를 정확하게 측정하기 위하여 메모리(910)에 인접해 있다. 온도 센서(906)가 메모리(910)에 더 근접할수록, 측정은 더 정확해질 것이다. 그 측정된 온도는 제어기(908)로 전달된다. 다음으로, 제어기(908)는 이 온도에 따라 유지보수 동작들을 스케줄링할 수 있다.
하나의 실시예에서, 온도 센서가 온도 정보를 측정하고 통신하기 위하여 아날로그 대 디지털 변환기("ADC")가 필요할 수 있다. 온도 센서는, 메모리 제어기로부터 분리될 수 있거나 메모리 제어기의 일부일 수 있는 커맨드 제어기에 접속될 수 있다.
다음으로, 측정된 온도 정보는 메모리 유지보수 활동을 추적하고 스케줄링하기 위하여 이용된다. 알고리즘은 더 높은 온도 동안에는 메모리 유지보수 활동을 최대화하려고 시도할 수 있지만, 더 낮은 온도 동안에는 메모리 유지보수 활동을 감소시키려고 시도할 수 있다.
도 10은 메모리 유지보수를 제어하기 위한 알고리즘을 예시하는 도면이다. 블록(1002)에서, 각각의 유지보수 동작에 대한 우선순위에 기초하여 유지보수 큐가 유지된다. 위에서 논의된 바와 같이, 유지보수 동작들은 MML로부터 개시되거나 실행될 수 있다. 유지보수 동작의 하나의 예는 가비지 컬렉션이다. 유지보수 동작들로 고려될 추가적인 MML 요청들은, 1) 2진 캐시 압축, 2) 2진 캐시 축출, 3) MLC 압축, 4) 제어 블록 압축, 5) 웨어 레벨링(wear leveling), 및/또는 6) 클러스터 폴딩(cluster folding)을 포함한다.
유지보수 큐는 동적으로 재순서화되거나 업데이트될 수 있다. 블록(1004)에서, 우선순위화된 큐는 영역들로 분류될 수 있고, 동작들은 각각의 영역들에 대한 트리거들에 기초하여 스케줄링될 수 있다. 각각의 유지보수 동작은 그 우선순위에 기초하여 분류(즉, 영역에 할당)될 수 있다. 일반적인 개념은, 낮은 우선순위의 유지보수 동작들이 유휴 시간 동안에 그리고 더 높은 온도들에서 실행되기만 하는 것이다. 더 높은 우선순위의 유지보수 동작들은 온도에 관계없이 실행될 필요가 있을 수 있다.
도 11은 예시적인 분류들 및 각각의 분류에 대한 각각의 우선순위들을 예시한다. 분류 카테고리들은 영역들로서 또한 지칭될 수 있다. 특히, 도 11에 예시된 분류는 각각의 유지보수 동작에 대한 분류이다. 가장 높은 우선순위의 유지보수 동작은 포어그라운드에서(즉, 유휴 시간 대기 없이) 실행되는 유지보수 동작인 포어그라운드(1102)이다. 이 가장 높은 우선순위의 유지보수 동작들은 호스트를 스로틀링(throttling)함으로써 수행될 수 있다. 다음으로 가장 높은 우선순위를 갖는 제2 영역은 유휴 시간(1104)이다. 이 유지보수 동작들은 유휴 시간 동안에 실행된다. 더 낮은 우선순위를 갖는 제3 영역은 유휴 시간과 높은 온도(1106) 양자이다. 더 낮은 우선순위인 유지보수 동작들은 유휴 시간 동안에 그리고 더 높은 온도에서 실행되기만 할 것이다. 다시 말해서, 더 낮은 우선순위의 유지보수 동작들은 유휴 시간 동안에 실행되지 않고, 유휴 시간에 더 높은 온도에 대해 대기할 수 있다. 이것은 더 높은 온도들에서 더 많은 유지보수 동작들을 실행함으로써 에러들을 감소시킬 수 있다. 제4 영역은 선택적일 수 있고, 대안적인 파라미터가 고려될 수 있다는 것을 표시한다. 온도는 유지보수 동작들을 우선순위화하기 위하여 고려되는 파라미터의 하나의 예에 불과하고, 추가적인 예들이 있을 수 있다. 예를 들어, 전력 공급 장치의 존재는 고려할 또 다른 파라미터일 수 있다. 다시 말해서, 가장 낮은 우선순위의 유지보수 동작들은 더 높은 온도에서 유휴 시간 동안에 그리고 접속된 전력 공급 장치가 있을 때에만 실행될 수 있다. 다른 예시적인 파라미터들은, 1) 카드의 충만도(fullness); 2) 핫 카운트(hot count)로 불리는 블록의 웨어 레벨링 인자; 3) 클록의 주파수; 및/또는 4) VCC 공급의 레벨을 포함할 수 있다.
분류 시스템은 (이벤트들로서 지칭될 수 있는) 유지보수 동작들이 적절한 분류 동안에 수행되어야 하도록 설계된다. 영역 1 이벤트는 영역 2로 가지 않아야 하고, 영역 2 이벤트는 영역 3으로 가지 않아야 한다. 특히, 영역에 대해 타겟팅되는 이벤트들은 그 영역에서 이용가능한 시간 동안에 완료되어야 한다. 그러나, 영역들 사이의 전이들은 하드 리미트(hard limit)가 아니며, 일부 이벤트들은 그 할당된 영역에서 완료되지 않을 수 있다. 예를 들어, 그것이 수일 동안 영역(1108)으로 가지 않는 경우, 낮은 우선순위의 이벤트들은 시간 경과에 따라 더 높은 우선순위로 될 수 있고, 영역(1106 또는 1104 또는 1102)으로 푸시될 수 있다. 각각의 영역에 대해 발생되는 유지보수 활동의 양의 이력과, 각각의 영역에 대해 발견되는 자유 시간의 양이 추적된다. 이 2개의 요소들은 영역들의 경계들을 결정하기 위하여 이용될 수 있다. 이러한 방식으로, 시간 경과에 따라, 특정한 이벤트가 그 할당된 영역에서 핸들링될 수 있는지를 예측할 수 있고, 이에 따라, 영역 경계들을 정의함에 있어서 더 정확해질 수 있다.
도 10을 다시 참조하면, 블록(1006)에서, 동작 활동의 이력 및 이용가능한 자유 시간이 미래 스케줄링 판정들을 위해 유지되고 이용될 수 있다. 동작 활동의 이력은 도 12에 예시된 우선순위 결정을 위한 인자들을 포함할 수 있다. 도 12는 예시적인 우선순위 결정(1202) 인자들을 예시한다. 제1 요청 이후의 시간(1204)은 특정 요청이 큐에 추가될 때 시작하는 시간 카운터이다. 이것은 특정 유지보수 동작이 얼마나 오래 큐에 계류되었는지를 나타낸다. 요청 카운트(1206)는 하나의 특정한 유지보수 동작 또는 이벤트에 대한 요청들의 수의 카운트이다. MML의 요청이 우선순위에 기초하여 프로세싱되므로, MML은 첫번째 것이 핸들링되기 전에도 사용자 활동에 기초하여 특정 동작들에 대한 더 많은 요청들을 송신할 수 있다. 우선순위 계수(1208)는 이력에 기초하여 우선순위를 제어할 수 있는 값이다. 상이한 가비지 컬렉션 이벤트들은 우선순위들의 상이한 변경 레이트를 가질 수 있다. 예를 들어, 일부 이벤트들은 1개월 동안 낮은 우선순위일 수 있는 한편, 일부 이벤트들은 수분 동안에만 낮은 우선순위일 수 있다. 더 빠른 변경 레이트를 갖는 이벤트들은 시스템을 더 긴급하게 할 가능성이 높고, 이에 따라, 포어그라운드에서 가비지 컬렉션을 행하도록 호스트를 스로틀링한다. 이 유형의 이벤트들을 추적하기 위하여, 각각의 유형의 이벤트에 대해 가변적인 우선순위 계수가 있을 수 있다. 이벤트가 포어그라운드에서 실행되도록 강제될 때마다, 그 우선순위는 1만큼 증가할 수 있다. 이것은 시스템이 모든 이벤트들을 이에 따라 밸런싱하는 것을 돕는다. 완료하는데 요구된 시간(1210)은 우선순위에 대해 고려되는 추가의 인자일 수 있다.
우선순위 결정(1202)은 도 12에 예시된 인자들 중 임의의 하나 이상에 기초하여 행해질 수 있다. 하나의 실시예에서, 우선순위는 다음의 수학식에 의해 계산될 수 있다:
우선순위 = (제1 요청 이후의 시간) * (요청 카운트) * (우선순위 계수).
이 수학식은 유지보수 큐에 추가하기 전에 각각의 유지보수 동작을 위하여 이용될 수 있다. 이 큐는 큐에서의 동작들에 대한 우선순위 값들에 기초하여 동적으로 업데이트한다. 할당된 우선순위들에 기초하여, 큐에서의 동작들은 그 동작들이 언제 스케줄링되는지를 결정한, 도 11에 예시된 영역들/분류들에 추가로 할당될 수 있다. 스케줄링은 도 13에 추가로 예시되어 있다.
도 13은 유지보수 동작들의 스케줄링의 하나의 실시예를 예시한다. 블록(1302)에서, 메모리 디바이스(즉, 카드)는 정상 상태에 있고, 온도 센서는 활성이다. 블록(1304)에서, 카드가 유휴 상태인지 또는 호스트 커맨드들을 활성으로 프로세싱하고 있는지에 대한 결정이 이루어진다. 카드가 유휴 상태가 아닌 경우, 영역 1 유지보수 동작들만이 블록(1306)에서와 같이 실행될 수 있다. 다시 말해서, 메모리가 유휴 상태가 아닐 때, 가장 높은 우선순위의 유지보수 동작들만이 실행된다. 블록(1304)에서와 같이 카드가 유휴 상태일 때, 블록(1310)에서 온도에 대한 결정이 이루어진다. 하나의 실시예에서, 결정되는 임계 온도 값이 있을 수 있다. 아래에 추가로 논의되는 바와 같이, 그러한 임계값들에 기초한 다수의 우선순위 값들을 갖는 다수의 임계값들이 있을 수 있지만; 도 13은 단일 온도 임계값에 대한 실시예를 예시한다. 온도가 임계 온도 값보다 더 낮을 때, 영역들 1 및 2에서의 유지보수 동작들이 블록(1312)에서와 같이 실행된다. 온도가 낮으므로, 더 낮은 우선순위의 유지보수 동작들(영역들 3+에서의 동작들)은 실행되지 않는다. 블록(1310)에서 온도가 임계값 초과일 때, 블록(1314)에서 전원이 존재하는지에 대한 결정이 이루어진다. 전원 존재는 유지보수 동작들을 스케줄링하기 위하여 이용될 수 있는 또 다른 예시적인 파라미터이다. 전원이 존재하지 않을 때, 영역들 1 내지 3으로부터의 이벤트들이 블록(1316)에서와 같이 실행된다. 블록(1316)은 유휴 시간 및 높은 온도를 예시한다. 대안적인 실시예에서, 3개의 영역들만이 있고, 분석되는 유일한 파라미터는 온도이다. 블록(1314)에서 전원이 존재할 때, 블록(1318)에서 모든 이벤트들이 실행될 수 있다. 블록(1318)은 높은 온도 및 전원이 있는 유휴 시간이다.
대안적인 실시예들에서, 온도 측정은 우선순위 측정을 위하여 이용될 수 있다. 위에서 논의된 바와 같이, 온도는 높음 또는 낮음(예컨대, 임계값 초과 또는 임계값 미만 중 어느 하나의 2진 상태) 중 어느 하나로서 분류되었다. 그러나, 다수의 임계값들이 있을 수 있다. 예를 들어, 낮은 온도, 중간 온도 및 높은 온도 상태(2개의 임계 온도들)의 결정이 있을 수 있다. 다음으로, 수행될 유지보수 동작들은 상이한 온도 값들을 고려하는 추가적인 영역들로 카테고리화될 수 있다. 예를 들어, 유휴 상태 및 중간 온도인 도 11에서의 또 다른 분류 또는 영역이 있을 수 있다. 분류는 더 높은 온도들에서 대부분의 유지보수 동작들을 수행하고, 더 낮은 온도에서 유지보수 동작들을 제한하려고 시도한다. 더 높은 우선순위의 유지보수 동작들만이 더 낮은 온도들 동안에 실행될 수 있다. 대안적인 실시예들에서, 유지보수 동작들을 분류하고 그 동작들이 언제 스케줄링될 수 있는지를 결정하기 위하여 이용되는 임의의 수의 온도 임계값들이 있을 수 있다. 도 11 내지 도 13의 예는 단일 온도 임계값에 대한 것이지만, 그것은 예시적인 것에 불과하다.
"컴퓨터 판독가능 매체", "머신 판독가능 매체", "전파 신호" 매체 및/또는 "신호 유지 매체(signal-bearing medium)"는, 명령어 실행가능 시스템, 장치 또는 디바이스에 의해 또는 이러한 시스템, 장치 또는 디바이스와 관련하여 이용하기 위한 소프트웨어를 포함하거나, 저장하거나, 통신하거나, 전파하거나, 또는 이송하는 임의의 디바이스를 포함할 수 있다. 머신 판독가능 매체는 선택적으로 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치, 디바이스 또는 전파 매체일 수 있지만, 이에 제한되지는 않는다. 머신 판독가능 매체의 예들의 비배타적인 리스트는 하나 이상의 와이어들, 휴대용 자기 또는 광학 디스크, 휘발성 메모리, 예컨대 랜덤 액세스 메모리("RAM"), 판독 전용 메모리("ROM"), 소거가능한 프로그래밍가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 또는 광 섬유를 갖는 전기적 접속 "전자기기(electronic)"를 포함할 것이다. 소프트웨어가 이미지로서 또는 또 다른 포맷으로(예컨대, 광학 스캔을 통해) 전자적으로 저장되고, 그 다음으로 컴파일링되고, 그리고/또는 해석되거나 다른 방식으로 프로세싱될 수 있으므로, 머신 판독가능 매체는 소프트웨어가 인쇄되는 유형의 매체를 또한 포함할 수 있다. 다음으로, 프로세싱된 매체는 컴퓨터 및/또는 머신 메모리에 저장될 수 있다.
대안적인 실시예에서, 주문형 집적 회로들, 프로그래밍가능 로직 어레이들, 및 다른 하드웨어 디바이스들과 같은 전용 하드웨어 구현예들은 본원에 설명된 방법들 중 하나 이상을 구현하도록 구성될 수 있다. 다양한 실시예들의 장치 및 시스템을 포함할 수 있는 애플리케이션들은 다양한 전자 및 컴퓨터 시스템들을 광범위하게 포함할 수 있다. 본원에 설명된 하나 이상의 실시예들은, 모듈들 사이에 그리고 모듈들을 통해 또는 주문형 집적 회로의 부분들로서 통신될 수 있는 관련된 제어 및 데이터 신호들과 함께 2개 이상의 특정 상호접속된 하드웨어 모듈들 또는 디바이스들을 이용하여 기능들을 구현할 수 있다. 따라서, 본 시스템은 소프트웨어, 펌웨어 및 하드웨어 구현예들을 포함한다.
본원에 설명된 실시예들의 예시들은 다양한 실시예들의 구조의 일반적인 이해를 제공하도록 의도된다. 예시들은 본원에 설명된 구조들 또는 방법들을 사용하는 장치 및 시스템의 요소들 및 특징들 전부에 대한 완전한 설명의 역할을 하도록 의도되지는 않는다. 다수의 다른 실시예들은 본 개시내용을 검토할 시에 본 기술분야의 통상의 기술자에게 명백할 수 있다. 다른 실시예들이 본 개시내용으로부터 도출되고 사용될 수 있어서, 구조적 및 논리적 치환들 및 변경들은 본 개시내용의 범위로부터 벗어나지 않으면서 이루어질 수 있다. 추가적으로, 예시들은 표현적인 것에 불과하고, 일정한 비율로 그려지지 않을 수 있다. 예시들 내의 특정 비율들은 과장될 수 있는 한편, 다른 비율들은 최소화될 수 있다. 따라서, 본 개시내용 및 도면들은 한정적인 것이 아니라 예시적인 것으로서 간주되어야 한다.

Claims (19)

  1. 플래시 메모리 디바이스로서,
    데이터를 저장하는 메모리 블록들의 어레이를 갖는 비휘발성 스토리지;
    상기 비휘발성 스토리지에 인접한 온도 센서; 및
    상기 비휘발성 스토리지 및 상기 온도 센서와 통신하는 제어기
    를 포함하고,
    상기 제어기는,
    상기 온도 센서로부터 온도 값을 수신하고;
    상기 비휘발성 스토리지에 대해 수행될 메모리 유지보수 동작들에 대한 메모리 유지보수 큐를 발생시키고 - 상기 동작들은 우선순위에 기초하여 상기 큐에서 조직화되고, 상기 동작들에 대한 상기 우선순위는 적어도 높은 우선순위 동작과 낮은 우선순위 동작을 포함하고, 상기 동작들 각각에 대한 상기 우선순위의 분류는, 상기 동작이 수신된 이후의 시간, 상기 동작을 완료하는데 요구된 시간, 상기 동작이 제출된 횟수, 또는 우선순위 계수 중 적어도 하나에 기초하고, 상기 우선순위 계수는 유지보수 동작들의 이력 데이터에 기초하고, 상기 높은 우선순위의 동작들은 상기 온도 값에 관계없이 수행됨 - ;
    상기 온도 값이 온도 임계값 초과일 때 그리고 유휴 시간 동안, 상기 낮은 우선순위의 동작들을 수행하도록
    구성되는 플래시 메모리 디바이스.
  2. 제1항에 있어서,
    상기 우선순위는, 상기 동작이 수신된 이후의 시간과, 상기 동작이 제출된 횟수와, 상기 우선순위 계수의 곱을 포함하는 플래시 메모리 디바이스.
  3. 제1항에 있어서,
    상기 이력 데이터는 유지보수 활동의 상대적인 양을 포함하는 플래시 메모리 디바이스.
  4. 플래시 메모리 디바이스에서의 메모리 유지보수 동작들을 스케줄링하기 위한 방법으로서,
    제어기 및 메모리의 블록들을 갖는 비휘발성 저장 디바이스에서, 상기 제어기가,
    온도 센서로부터 온도 값을 수신하는 단계;
    상기 메모리의 블록들에 대해 수행될 상기 동작들에 대한 메모리 유지보수 큐를 발생시키는 단계 - 상기 동작들은 적어도 높은 우선순위와 낮은 우선순위를 포함하는 우선순위에 기초하여 상기 큐에서 조직화되고, 상기 동작들 각각에 대한 상기 우선순위의 조직화는, 상기 동작이 수신된 이후의 시간, 상기 동작을 완료하는데 요구된 시간, 상기 동작이 제출된 횟수, 또는 우선순위 계수 중 적어도 하나에 기초하고, 또한 각 동작에 대한 우선순위는 우선순위 계수 및 상기 동작이 수신된 이후의 시간과, 상기 동작이 제출된 횟수의 곱에 기초함 - ;
    상기 온도 값이 온도 임계값 초과일 때 그리고 유휴 시간 동안, 낮은 우선순위의 동작들을 수행하는 단계; 및
    높은 우선순위의 동작들을 상기 온도 값에 관계없이 수행하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서,
    상기 온도 값은 상기 플래시 메모리 디바이스의 주변 온도인 방법.
  6. 제4항에 있어서,
    상기 온도 센서는 호스트에 위치되는 방법.
  7. 제4항에 있어서,
    상기 온도 센서는 상기 비휘발성 저장 디바이스에 위치되며, 상기 제어기와 통신하는 방법.
  8. 제4항에 있어서,
    상기 우선순위 계수는 유지보수 동작들의 이력 데이터에 기초하는 방법.
  9. 플래시 메모리 디바이스로서,
    데이터를 저장하는 메모리 블록들의 어레이를 갖는 비휘발성 스토리지;
    상기 비휘발성 스토리지에 인접한 온도 센서; 및
    상기 비휘발성 스토리지 및 상기 온도 센서와 통신하는 제어기
    를 포함하고,
    상기 제어기는,
    상기 플래시 메모리 디바이스의 유휴 시간을 모니터링하고;
    상기 온도 센서로부터 상기 플래시 메모리 디바이스의 온도를 모니터링하고;
    상기 유휴 시간 동안 그리고 상기 모니터링된 온도가 온도 임계값 초과일 때, 더 낮은 우선순위의 메모리 유지보수 동작들을 실행하도록
    구성되고,
    더 낮은 우선순위 또는 더 높은 우선순위의 분류는 유지보수 동작들의 이력 데이터를 반영하는 우선순위 계수에 기초하여 결정되는 플래시 메모리 디바이스.
  10. 제9항에 있어서,
    상기 온도의 모니터링은 온도 센서로부터 온도를 수신하는 것을 포함하는 플래시 메모리 디바이스.
  11. 제10항에 있어서,
    상기 플래시 메모리 디바이스는 상기 온도 센서를 더 포함하고, 상기 온도 센서는 상기 제어기와 결합되며, 상기 온도를 모니터링하고 상기 온도를 상기 제어기로 전달하도록 구성되는 플래시 메모리 디바이스.
  12. 제9항에 있어서,
    상기 제어기는 또한, 상기 온도에 관계없이 더 높은 우선순위의 유지보수 동작들을 실행하도록 구성되는 플래시 메모리 디바이스.
  13. 제9항에 있어서,
    상기 제어기는 또한,
    전원이 존재하는지의 표시를 수신하고;
    상기 유휴 시간 동안 그리고 상기 모니터링된 온도가 온도 임계값 초과일 때 그리고 상기 전원이 존재할 때, 가장 낮은 우선순위의 유지보수 동작들을 실행하도록
    구성되는 플래시 메모리 디바이스.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
KR1020167013455A 2013-11-21 2014-10-14 온도 기반 플래시 메모리 시스템 유지보수 KR101923284B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/086,355 2013-11-21
US14/086,355 US9535614B2 (en) 2013-11-21 2013-11-21 Temperature based flash memory system maintenance
PCT/US2014/060469 WO2015076950A1 (en) 2013-11-21 2014-10-14 Temperature based flash memory system maintenance

Publications (2)

Publication Number Publication Date
KR20160113580A KR20160113580A (ko) 2016-09-30
KR101923284B1 true KR101923284B1 (ko) 2018-11-28

Family

ID=51842884

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167013455A KR101923284B1 (ko) 2013-11-21 2014-10-14 온도 기반 플래시 메모리 시스템 유지보수

Country Status (5)

Country Link
US (1) US9535614B2 (ko)
KR (1) KR101923284B1 (ko)
CN (1) CN105745714B (ko)
DE (1) DE112014005346T5 (ko)
WO (1) WO2015076950A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102052622B1 (ko) * 2019-07-09 2019-12-05 (주)지란지교소프트 컴퓨터 스토리지를 위한 잠금 장치 및 시스템

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459892B2 (en) 2014-04-23 2019-10-29 Qumulo, Inc. Filesystem hierarchical aggregate metrics
KR102445662B1 (ko) * 2015-07-01 2022-09-22 삼성전자주식회사 스토리지 장치
US10452596B2 (en) * 2015-10-29 2019-10-22 Micron Technology, Inc. Memory cells configured in multiple configuration modes
KR102507769B1 (ko) 2015-11-04 2023-03-09 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10198216B2 (en) * 2016-05-28 2019-02-05 Advanced Micro Devices, Inc. Low power memory throttling
KR102621467B1 (ko) * 2016-09-05 2024-01-05 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 온도 조절 방법
US9811267B1 (en) * 2016-10-14 2017-11-07 Sandisk Technologies Llc Non-volatile memory with intelligent temperature sensing and local throttling
CN106569748B (zh) * 2016-10-27 2019-04-09 南方电网科学研究院有限责任公司 Flash文件系统的数据处理方法和装置
CN109983538B (zh) 2016-11-29 2023-06-16 Arm有限公司 存储地址转换
TWI640867B (zh) * 2017-05-02 2018-11-11 慧榮科技股份有限公司 資料儲存裝置及其操作方法
KR20190026231A (ko) 2017-09-04 2019-03-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10866904B2 (en) 2017-11-22 2020-12-15 Arm Limited Data storage for multiple data types
US10831673B2 (en) 2017-11-22 2020-11-10 Arm Limited Memory address translation
US10929308B2 (en) * 2017-11-22 2021-02-23 Arm Limited Performing maintenance operations
JP2019149219A (ja) * 2018-02-28 2019-09-05 東芝メモリ株式会社 メモリシステム
US11360936B2 (en) 2018-06-08 2022-06-14 Qumulo, Inc. Managing per object snapshot coverage in filesystems
KR102546255B1 (ko) * 2018-08-03 2023-06-21 삼성전자주식회사 호스트의 지시 없이 능동적으로 유지보수 동작을 개시하는 스토리지 장치 및 그것을 포함하는 전자 시스템
DE102019118631A1 (de) 2018-08-03 2020-02-06 Samsung Electronics Co., Ltd. Speichervorrichtung, welche eine Wartungsarbeit unabhängig ohne Befehl des Host initiiert, und elektronisches System mit derselben
US11048625B2 (en) 2018-09-20 2021-06-29 SK Hynix Inc. Memory system and operating method thereof
US11650642B2 (en) * 2018-12-03 2023-05-16 Micron Technology, Inc. Estimating the temperature of a memory sub-system
US10534758B1 (en) * 2018-12-20 2020-01-14 Qumulo, Inc. File system cache tiers
US11150844B2 (en) 2019-02-21 2021-10-19 Micron Technology, Inc. Reflow endurance improvements in triple-level cell NAND flash
KR20200126533A (ko) 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 메모리 시스템 및 그의 온도 조절 방법
US11507641B2 (en) * 2019-05-31 2022-11-22 Advanced Micro Devices, Inc. Temperature-based adjustments for in-memory matrix multiplication
KR20200143107A (ko) 2019-06-14 2020-12-23 삼성전자주식회사 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치
US11397460B2 (en) * 2019-06-20 2022-07-26 Western Digital Technologies, Inc. Intelligent power saving mode for solid state drive (ssd) systems
KR20210055376A (ko) * 2019-11-07 2021-05-17 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US10860372B1 (en) 2020-01-24 2020-12-08 Qumulo, Inc. Managing throughput fairness and quality of service in file systems
US10795796B1 (en) 2020-01-24 2020-10-06 Qumulo, Inc. Predictive performance analysis for file systems
US11151001B2 (en) 2020-01-28 2021-10-19 Qumulo, Inc. Recovery checkpoints for distributed file systems
US11144452B2 (en) 2020-02-05 2021-10-12 Micron Technology, Inc. Temperature-based data storage processing
US11243711B2 (en) * 2020-02-05 2022-02-08 Micron Technology, Inc. Controlling firmware storage density based on temperature detection
US11360533B2 (en) * 2020-04-15 2022-06-14 Micron Technology, Inc. Device maintenance of a data storage device including wear levelling, garbage collection, or combination thereof
US20220100427A1 (en) * 2020-09-28 2022-03-31 Micron Technology, Inc. Temperature monitoring for memory devices
US11775481B2 (en) 2020-09-30 2023-10-03 Qumulo, Inc. User interfaces for managing distributed file systems
US11157458B1 (en) 2021-01-28 2021-10-26 Qumulo, Inc. Replicating files in distributed file systems using object-based data storage
US11461241B2 (en) 2021-03-03 2022-10-04 Qumulo, Inc. Storage tier management for file systems
US11567660B2 (en) 2021-03-16 2023-01-31 Qumulo, Inc. Managing cloud storage for distributed file systems
US11132126B1 (en) 2021-03-16 2021-09-28 Qumulo, Inc. Backup services for distributed file systems in cloud computing environments
US11797228B2 (en) * 2021-06-24 2023-10-24 Western Digital Technologies, Inc. Efficient handling of background operations for improving sustained performance of host reads and writes
US11669255B2 (en) 2021-06-30 2023-06-06 Qumulo, Inc. Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations
US11294604B1 (en) 2021-10-22 2022-04-05 Qumulo, Inc. Serverless disk drives based on cloud storage
US11354273B1 (en) 2021-11-18 2022-06-07 Qumulo, Inc. Managing usable storage space in distributed file systems
US11797190B2 (en) 2021-12-03 2023-10-24 Western Digital Technologies, Inc. Data storage device and method for providing a temperature-driven variable storage capacity point
US11599508B1 (en) 2022-01-31 2023-03-07 Qumulo, Inc. Integrating distributed file systems with object stores
US11722150B1 (en) 2022-09-28 2023-08-08 Qumulo, Inc. Error resistant write-ahead log
US11729269B1 (en) 2022-10-26 2023-08-15 Qumulo, Inc. Bandwidth management in distributed file systems
US11934660B1 (en) 2023-11-07 2024-03-19 Qumulo, Inc. Tiered data storage with ephemeral and persistent tiers
US11921677B1 (en) 2023-11-07 2024-03-05 Qumulo, Inc. Sharing namespaces across file system clusters

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003091424A (ja) * 2001-09-18 2003-03-28 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US20100058018A1 (en) * 2008-09-02 2010-03-04 Qimonda Ag Memory Scheduler for Managing Internal Memory Operations
US20130227582A1 (en) * 2007-03-07 2013-08-29 International Business Machines Corporation Prediction Based Priority Scheduling

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801454B2 (en) 2002-10-01 2004-10-05 Sandisk Corporation Voltage generation circuitry having temperature compensation
US7987332B2 (en) * 2007-03-21 2011-07-26 Sandisk Technologies Inc. Methods for storing memory operations in a queue
WO2010054670A1 (en) * 2008-11-11 2010-05-20 Nokia Corporation Method and device for temperature-based data refresh in non-volatile memories
US8472274B2 (en) * 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
US20120297121A1 (en) * 2011-05-17 2012-11-22 Sergey Anatolievich Gorobets Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions
US9037779B2 (en) 2011-12-19 2015-05-19 Sandisk Technologies Inc. Systems and methods for performing variable flash wear leveling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003091424A (ja) * 2001-09-18 2003-03-28 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US20130227582A1 (en) * 2007-03-07 2013-08-29 International Business Machines Corporation Prediction Based Priority Scheduling
US20100058018A1 (en) * 2008-09-02 2010-03-04 Qimonda Ag Memory Scheduler for Managing Internal Memory Operations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102052622B1 (ko) * 2019-07-09 2019-12-05 (주)지란지교소프트 컴퓨터 스토리지를 위한 잠금 장치 및 시스템

Also Published As

Publication number Publication date
US9535614B2 (en) 2017-01-03
CN105745714B (zh) 2019-02-01
DE112014005346T5 (de) 2016-07-28
US20150143026A1 (en) 2015-05-21
WO2015076950A1 (en) 2015-05-28
KR20160113580A (ko) 2016-09-30
CN105745714A (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
KR101923284B1 (ko) 온도 기반 플래시 메모리 시스템 유지보수
US9053808B2 (en) Flash memory with targeted read scrub algorithm
US10210943B2 (en) End of life prediction based on memory wear
US9430322B2 (en) Device based wear leveling using intrinsic endurance
US9298608B2 (en) Biasing for wear leveling in storage systems
KR100858756B1 (ko) 저장 디바이스 및 호스트 장치
US10592126B2 (en) Memory management method, memory storage device and memory control circuit unit
US9355929B2 (en) Data storage based upon temperature considerations
US9965199B2 (en) Smart dynamic wear balancing between memory pools
US10635335B2 (en) Storage system and method for efficient pipeline gap utilization for background operations
US9715445B2 (en) File differentiation based on data block identification
US20120203993A1 (en) Memory system with tiered queuing and method of operation thereof
US8667210B2 (en) Memory management method, memory controller and memory storage apparatus
CN110895449B (zh) 用于在存储器系统中管理有效数据的装置和方法
CN111290564A (zh) 存储系统及其操作方法
WO2016105649A1 (en) Measuring memory wear and data retention individually based on cell voltage distributions
CN105989887B (zh) 抹除操作配置方法、存储器控制电路单元与存储器
CN111831586A (zh) 数据存储设备及其操作方法、使用数据存储设备的控制器
CN113490919B (zh) 用于存储器系统的功率管理

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant