KR20140064980A - 솔리드 스테이트 드라이브 내의 메모리 장치로의 논리 주소의 적응적 매핑 - Google Patents

솔리드 스테이트 드라이브 내의 메모리 장치로의 논리 주소의 적응적 매핑 Download PDF

Info

Publication number
KR20140064980A
KR20140064980A KR1020147010339A KR20147010339A KR20140064980A KR 20140064980 A KR20140064980 A KR 20140064980A KR 1020147010339 A KR1020147010339 A KR 1020147010339A KR 20147010339 A KR20147010339 A KR 20147010339A KR 20140064980 A KR20140064980 A KR 20140064980A
Authority
KR
South Korea
Prior art keywords
memory
memory unit
mapping
memory units
units
Prior art date
Application number
KR1020147010339A
Other languages
English (en)
Other versions
KR101556870B1 (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 KR20140064980A publication Critical patent/KR20140064980A/ko
Application granted granted Critical
Publication of KR101556870B1 publication Critical patent/KR101556870B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

데이터 저장 방법은 복수의 메모리 유닛을 포함하는 메모리에 저장하기 위한 각각의 논리 주소들과 연관된 데이터 항목들을 수신하는 것을 포함한다. 상기 복수의 메모리 유닛에 대해 성능 특성의 각각의 추정치들이 획득된다. 상기 메모리 유닛들에 걸쳐서 성능 특성을 균형화하기 위해 상기 추정치들에 기초하여 논리 주소들을 복수의 메모리 유닛 내의 각각의 물리 저장 위치들로 매핑하는 매핑이 적응된다. 상기 데이터 항목들은 상기 적응된 매핑에 따라서 상기 물리 저장 위치들에 저장된다.

Description

솔리드 스테이트 드라이브 내의 메모리 장치로의 논리 주소의 적응적 매핑{ADAPTIVE MAPPING OF LOGICAL ADDRESSES TO MEMORY DEVICES IN SOLID STATE DRIVES}
<관련 출원의 상호 참조>
이 출원은 2011년 9월 20일에 출원된 미국 가특허 출원 제61/536,597호의 이득을 주장하며, 그 개시 내용은 본 명세서에 참고문헌으로 포함된다.
<발명의 분야>
본 발명은 일반적으로 메모리 장치에 관한 것으로, 특히 논리-물리 주소 매핑을 위한 방법 및 시스템에 관한 것이다.
플래시 장치와 같은 비휘발성 메모리 장치에의 데이터 저장은 흔히 논리 주소를 메모리 내의 물리 저장 위치로 변환하는 것을 수반한다. 논리 주소를 물리 주소로 매핑하기 위한 다양한 기법들이 기술 분야에 공지되어 있다. 예를 들어, 본 명세서에 참고문헌으로 포함되는 미국 특허 제7,631,138호는 호스트 사용 특성에 기초한 플래시 메모리 주소 매핑의 적응적 모드 전환을 위한 기법들을 기술하고 있다. 일부 실시예들에서, 성능을 향상시키고 마모(wear)를 줄이기 위해, 컨트롤러가 호스트 프로그래밍 및 컨트롤러 데이터 통합 패턴들에 따라서 데이터 섹터들이 메모리의 블록들 및 메타-블록들로 매핑되는 방식을 전환한다.
본 명세서에 기술되는 본 발명의 일 실시예는 데이터 저장 방법을 제공한다. 이 방법은 복수의 메모리 유닛을 포함하는 메모리에 저장하기 위한 각각의 논리 주소들과 연관된 데이터 항목들을 수신하는 것을 포함한다. 상기 복수의 메모리 유닛에 대해 성능 특성의 각각의 추정치들이 획득된다. 상기 메모리 유닛들에 걸쳐서 성능 특성을 균형화하기 위해 상기 추정치들에 기초하여 논리 주소들을 복수의 메모리 유닛 내의 각각의 물리 저장 위치들로 매핑하는 매핑이 적응된다. 상기 데이터 항목들은 상기 적응된 매핑에 따라서 상기 물리 저장 위치들에 저장된다.
일부 실시예들에서, 상기 매핑을 적응시키는 것은 소정의 메모리 유닛에 매핑되는 상기 논리 주소들의 총수를 수정하는 것을 포함한다. 일 실시예에서, 상기 데이터 항목들을 저장하는 것은 상기 메모리 유닛들에 각각의 가중치들을 할당하는 가중 라운드-로빈 스케줄링 방식에 따라 상기 메모리 유닛들 사이에 상기 데이터 항목들을 분배하는 것을 포함하고, 상기 매핑을 적응시키는 것은 하나 이상의 상기 가중치들을 수정하는 것을 포함한다. 상기 가중치들을 수정하는 것은 각각의 상이한 제1 및 제2 유형의 메모리 액세스 명령들에 대해 상이한 제1 및 제2 가중치들을 소정의 메모리 유닛에 할당하는 것을 포함할 수 있다.
다른 실시예에서, 상기 추정치들을 획득하는 것은 상기 메모리 또는 상기 메모리 유닛들의 제조 중에 상기 복수의 메모리 유닛에 대한 성능 특성을 평가하는 것을 포함한다. 추가로 또는 대안으로, 상기 추정치들을 획득하는 것은 상기 메모리가 호스트 시스템에서 동작하고 있는 동안 상기 복수의 메모리 유닛에 대한 성능 특성을 평가하는 것을 포함할 수 있다.
개시된 실시예에서, 상기 매핑을 적응시키는 것은 처음에 상기 매핑의 초기 설정에 따라 상기 메모리에 상기 데이터 항목들을 저장하고, 그 후에 상기 매핑을 적응시키고 상기 적응된 매핑에 따라 상기 메모리에 상기 데이터 항목들을 저장하기 위해 하나 이상의 상기 데이터 항목들을 복사하는 것을 포함한다.
다양한 예시의 실시예들에서, 각 메모리 유닛에 대한 성능 특성은 프로그래밍에 이용 가능한 상기 메모리 유닛 내의 메모리 블록들의 각각의 카운트, 상기 메모리 유닛 내의 결함 메모리 블록들의 각각의 카운트, 상기 메모리 유닛에 가해지는 메모리 액세스 명령의 각각의 지속 시간, 상기 메모리 유닛의 각각의 판독 오류 성능, 상기 메모리 유닛의 각각의 내구성, 상기 메모리 유닛에 저장된 데이터에 대한 각각의 액세스 빈도, 및/또는 상기 메모리 유닛에서 실행을 위해 계류중인 메모리 액세스 명령들의 각각의 카운트를 나타낸다.
추가로, 본 발명의 일 실시예에 따르면, 인터페이스 및 프로세서를 포함하는 데이터 저장 장치가 제공된다. 상기 인터페이스는 복수의 메모리 유닛을 포함하는 메모리와 통신하도록 구성되어 있다. 상기 프로세서는 상기 메모리에 저장하기 위한 각각의 논리 주소들과 연관된 데이터 항목들을 수신하고, 상기 복수의 메모리 유닛에 대한 성능 특성의 각각의 추정치들을 획득하고, 상기 메모리 유닛들에 걸쳐 상기 성능 특성을 균형화하기 위해, 상기 추정치들에 기초하여, 상기 논리 주소들을 상기 복수의 메모리 유닛 내의 각각의 물리 저장 위치들로 매핑하는 매핑을 적응시키고, 상기 적응된 매핑에 따라 상기 물리 저장 위치들에 상기 데이터 항목들을 저장하도록 구성되어 있다.
또한, 본 발명의 일 실시예에 따르면, 메모리 및 프로세서를 포함하는 데이터 저장 장치가 제공된다. 상기 메모리는 복수의 메모리 유닛을 포함한다. 상기 프로세서는 상기 메모리에 저장하기 위한 각각의 논리 주소들과 연관된 데이터 항목들을 수신하고, 상기 복수의 메모리 유닛에 대한 성능 특성의 각각의 추정치들을 획득하고, 상기 메모리 유닛들에 걸쳐 상기 성능 특성을 균형화하기 위해, 상기 추정치들에 기초하여, 상기 논리 주소들을 상기 복수의 메모리 유닛 내의 각각의 물리 저장 위치들로 매핑하는 매핑을 적응시키고, 상기 적응된 매핑에 따라 상기 물리 저장 위치들에 상기 데이터 항목들을 저장하도록 구성되어 있다.
본 발명은 도면들과 함께 기술되는 본 발명의 실시예들에 대한 하기의 상세한 설명으로부터 더 충분히 이해될 것이다.
도 1은 본 발명의 일 실시예에 따른, 데이터 저장 시스템을 개략적으로 보여주는 블록도이다.
도 2는 본 발명의 일 실시예에 따른, 논리-물리 주소 매핑을 위한 방법을 개략적으로 보여주는 흐름도이다.
개관
일부 유형의 메모리 장치들은 복수의 메모리 유닛으로 구성된다. 예를 들어, 솔리드 스테이트 드라이브(SSD)는 보통 플래시 다이들과 같은 복수의 비휘발성 메모리 다이들을 포함한다. 많은 실제 시나리오에서, 소정의 메모리 장치 내의 메모리 유닛들은 자유 메모리 블록의 수, 불량 블록의 수, 메모리 액세스 레이턴시, 오류 성능, 예상 내구성, 자주 사용되는 대 드물게 사용되는 데이터의 존재, 및/또는 실행을 위해 현재 계류중인 명령의 수와 같은 특성들이 서로 다를 수 있다. 이러한 차이들 중 일부는 메모리 유닛들이 제조될 때 이미 존재할 수 있고, 일부는 호스트 시스템에서의 메모리 장치의 수명 중에 발전할 수 있다.
본 명세서에 기술되는 본 발명의 실시예들은 개선된 데이터 저장 방법들 및 시스템들을 제공한다. 개시된 기법들은 개개의 메모리 유닛들의 추정된 특성들에 기초하여 복수의 메모리 유닛들에 저장을 위한 데이터를 분배한다.
전형적인 플로우에서, 메모리 컨트롤러 또는 다른 프로세서가 위에 열거한 예시의 특성들과 같은 각 메모리 유닛의 하나 이상의 특성을 추정한다. 프로세서는 메모리 장치에 걸쳐 특성들을 균형화하는 방식으로 다양한 메모리 유닛들에 저장을 위한 들어오는 데이터를 분배한다.
예를 들어, 프로세서는 추정된 메모리 유닛 특성들에 기초하여, 데이터와 연관된 가상 주소들을 메모리 유닛들 내의 물리 저장 위치들로 변환하는, 가상-물리(V-P) 주소 매핑을 적응시킬 수 있다. 바꾸어 말하면, 프로세서는 추정된 특성들에 기초하여 논리 블록 주소들(LBA들)을 메모리 유닛들에 할당하는 것을 적응시킬 수 있다. 이런 식으로 V-P 매핑을 적응시킴에 따라 프로세서는 메모리 장치에 걸쳐 수명, 저장 레이턴시 또는 오류 성능과 같은 특성들을 균형화할 수 있다.
메모리 유닛 특성들을 고려하지 않고, 정적으로 또는 적응적으로 V-P 매핑을 정의하는 것은 원칙적으로 가능하다. 그러나, 그러한 해법은 최악의 성능을 나타내는 메모리 유닛들이 메모리 장치의 전체 성능을 지배하게 할 가능성이 있다. 그에 반해서, 개시된 기법들은 각 메모리 유닛의 실제 개별 특성들에 맞추어 V-P 매핑을 적응시켜, 전체 메모리 장치 성능이 더 나아지는 결과를 가져온다.
시스템 설명
도 1은 본 발명의 일 실시예에 따른, 데이터 저장 시스템(20)을 개략적으로 보여주는 블록도이다. 시스템(20)은 메모리 장치(22)와 호스트(24)를 포함한다. 메모리 장치(22)는 호스트(24)로부터 저장을 위한 데이터를 수신하여 그것을 메모리에 저장하고, 메모리로부터 데이터를 검색하여 그것을 호스트에 제공한다.
다양한 실시예들에서, 메모리 장치(22)는, 예를 들어, 개인용 또는 모바일 컴퓨팅 장치 또는 기업 시스템을 위한 데이터를 저장하는 솔리드 스테이트 드라이브(SSD), 또는 셀룰러 폰, 미디어 플레이어, 디지털 카메라 또는 다른 호스트를 위한 데이터를 저장하는 마이크로-SD(Micro-Secure Digital, μSD) 카드를 포함할 수 있다. 대안 실시예들에서, 메모리 장치(22)는 데이터가 저장되고 검색되는 임의의 다른 적합한 애플리케이션에서 그리고 임의의 다른 적합한 호스트와 함께 사용될 수 있다.
메모리 장치(22)는 복수의 메모리 유닛(28)을 포함한다. 본 예에서, 각 메모리 유닛(28)은 복수의 비휘발성 아날로그 메모리 셀을 포함하는 각각의 플래시 다이를 포함한다. 따라서 "메모리 유닛" 및 "다이"라는 용어들은 본 명세서에서 호환 가능하게 사용된다. 메모리 셀들은, 예를 들어, NAND 플래시 셀들, NOR 또는 CTF(Charge Trap Flash) 플래시 셀들, 상변화 RAM(PRAM, 상변화 메모리 - PCM이라고도 함) 셀들, NROM(Nitride Read Only Memory) 셀들, FRAM(Ferroelectric RAM) 및/또는 자기 RAM(MRAM) 셀들, 또는 임의의 다른 적합한 메모리 기술을 포함할 수 있다.
본 특허 출원의 맥락에서 그리고 청구항들에서, "아날로그 메모리 셀"이라는 용어는 전기 전압 또는 전하와 같은 연속적인 아날로그 값의 물리 파라미터를 유지하는 임의의 메모리 셀을 기술하기 위해 사용된다. 위에 열거한 유형들과 같은 임의의 적합한 유형의 아날로그 메모리 셀들이 사용될 수 있다. 본 예에서, 각 메모리 유닛(28)은 NAND 플래시 셀들의 비휘발성 메모리를 포함한다. 셀들에 저장된 전하 레벨들 및/또는 셀들에 기입되고/되거나 셀들에서 판독된 아날로그 전압들 또는 전류들은 본 명세서에서 총칭하여 아날로그 값들 또는 저장 값들이라고 한다.
메모리 장치(22)는 아날로그 메모리 셀들을 각각의 메모리 상태들(프로그래밍 레벨들이라고도 함)을 갖도록 프로그래밍함으로써 그 셀들에 데이터를 저장한다. 프로그래밍 레벨들은 유한 집합의 가능한 레벨들로부터 선택되고, 각 레벨은 특정 공칭 저장 값에 대응한다. 예를 들어, 4개의 가능한 공칭 저장 값들 중 하나를 셀에 기입함으로써 2 비트/셀 MLC가 4개의 가능한 프로그래밍 레벨들 중 하나를 갖도록 프로그래밍될 수 있다. 메모리 셀들은 보통 행들과 열들로 배열된다. 전형적으로, 소정의 메모리 유닛은 복수의 소거 블록(메모리 블록이라고도 함), 즉, 함께 소거되는 메모리 셀 그룹들을 포함한다.
다양한 실시예들에서, 각 메모리 유닛(28)은 패키징된 장치 또는 패키징되지 않은 반도체 칩 또는 다이를 포함할 수 있다. 일반적으로, 메모리 장치(22)는 임의의 적합한 유형 및 크기의 임의의 적합한 수의 메모리 장치를 포함할 수 있다.
메모리 장치(22)는, 호스트(24)로부터 데이터를 수신하여 이를 메모리 유닛들(28)에 저장하고, 메모리 유닛들로부터 데이터를 검색하여 이를 호스트에 제공하는, 메모리 컨트롤러(32)를 포함한다. 메모리 컨트롤러(32)는 호스트(24)와 통신하기 위한 호스트 인터페이스(36), 메모리 유닛들(28)과 통신하기 위한 메모리 인터페이스(40), 및 저장되고 검색된 데이터를 처리하는 프로세서(44)를 포함한다. 예를 들어, 프로세서(44)는 저장을 위한 데이터를 오류 정정 코드(ECC)와 함께 인코딩하고 메모리로부터 판독된 데이터의 ECC를 디코딩한다. 프로세서(44)의 기능들은, 예를 들어, 적합한 중앙 처리 장치(CPU) 상에서 실행되는 소프트웨어를 이용하여, 하드웨어(예를 들어, 상태 기계 또는 다른 로직)를 이용하여, 또는 소프트웨어와 하드웨어 요소들의 조합을 이용하여 구현될 수 있다.
메모리 컨트롤러(32), 특히 프로세서(44)는 하드웨어로 구현될 수 있다. 대안으로, 메모리 컨트롤러는 적합한 소프트웨어, 또는 하드웨어와 소프트웨어 요소들의 조합을 실행하는 마이크로프로세서를 포함할 수 있다. 일부 실시예들에서, 프로세서(44)는 본 명세서에 기술된 기능들을 수행하도록 소프트웨어로 프로그래밍되는 범용 프로세서를 포함한다. 소프트웨어는, 예를 들어, 네트워크를 통해, 전자 형태로 프로세서에 다운로드될 수 있거나, 그것은, 대안으로 또는 추가로, 자기, 광, 또는 전자 메모리와 같은 유형의 매체(tangible media) 상에 제공되고/되거나 저장될 수 있다.
도 1의 시스템 구성은 순전히 개념의 명확성을 위해서 도시되어 있는 예시적인 구성이다. 임의의 다른 적합한 메모리 시스템 구성이 사용될 수도 있다. 예를 들어, 일부 실시예들에서 2개 이상의 메모리 컨트롤러(32)가 동일 호스트에 접속될 수 있다. 다양한 인터페이스들, 어드레싱 회로들, 타이밍 및 시퀀싱 회로들 및 디버깅 회로들과 같이, 본 발명의 원리들을 이해하는 데 필요하지 않은 요소들은 명확성을 위해 도면에서 생략되었다.
도 1에 도시된 모범적인 시스템 구성에서, 메모리 유닛들(28)과 메모리 컨트롤러(32)는 개별 집적 회로들(IC들)로서 구현되어 있다. 그러나, 대안 실시예들에서, 메모리 유닛들과 메모리 컨트롤러는 단일 멀티-칩 패키지(MCP) 또는 시스템 온 칩(SoC) 내의 개별 반도체 다이들 상에 집적될 수 있고, 내부 버스로 상호 접속될 수 있다. 추가 대안으로, 메모리 컨트롤러 회로의 일부 또는 전부가 하나 이상의 메모리 유닛들이 배치되어 있는 동일한 다이 상에 존재할 수 있다. 추가 대안으로, 메모리 컨트롤러(32)의 기능의 일부 또는 전부가 소프트웨어로 구현되고 호스트(24)에 의해, 또는 임의의 다른 유형의 메모리 컨트롤러에 의해 수행될 수 있다. 일부 실시예들에서, 호스트(24)와 메모리 컨트롤러(32)는 동일한 다이 상에, 또는 동일한 장치 패키지 내의 개별 다이들 상에 제조될 수 있다.
추정된 다이 특성들에 기초하여 논리 주소들을 NAND 다이들에 할당하기
메모리 장치(22)에서, 메모리 컨트롤러(32)는 데이터를 페이지 단위로 메모리 유닛들(28)에 기입하지만, 소거는 메모리 블록들 전체에 적용된다. 데이터는 소거된 페이지들에만 기입되고, 따라서 제자리에서 데이터를 업데이트하는 것은 가능하지 않다. 플래시 메모리의 이러한 속성 때문에, 메모리 컨트롤러(32)의 프로세서(44)는 보통 가상-물리(V-P) 주소 매핑 방식을 적용한다. V-P 매핑을 이용할 때, 저장을 위한 데이터 항목들이 논리 블록 주소들(LBA들)이라고도 하는 각각의 가상 주소들과 함께 호스트(24)로부터 수신된다. 프로세서(44)는 가상 주소들을 데이터가 저장되어야 할 메모리 유닛들(28) 내의 각각의 물리 저장 위치들로 변환한다.
따라서 데이터 항목을 업데이트하는 것은 업데이트된 데이터 항목을 또 다른 물리 저장 위치에 기입하고, 그 데이터의 이전 버전을 무효라고 표시하고, 그 데이터 항목의 새로운 물리 저장 위치를 나타내기 위해 V-P 주소 매핑을 동적으로 업데이트하는 것을 수반한다.
일부 실시예들에서, 프로세서(44)는 개개의 플래시 다이들(28)의 특정 특성들을 추정하고, 이 추정된 특성들에 기초하여 V-P 주소 매핑을 적응시킨다. 전형적으로, 프로세서(44)는 복수의 다이에 걸쳐 특성을 균형화하도록 V-P 매핑을 적응시킨다.
다음의 리스트는 프로세서(44)가 각 다이(28)마다 추정할 수 있는 특성들의 몇 가지 예를 제공한다. 이 리스트는 또한 V-P 매핑을 적응시킴으로써 각 특성을 균형화하기 위한 근거를 제공한다:
ㆍ 새로운 프로그래밍을 위해 소거되고 이용 가능한 다이 내의 메모리 블록의 수. 보통 각 다이에 유사한 수의 자유 블록을 가지는 것이 바람직하다. 이러한 종류의 균형화는 메모리 컨트롤러가 다이들(28)에 데이터를 저장하고 데이터를 검색하는 데 병행성(parallelism)을 최대화할 수 있게 해준다.
ㆍ 결함 메모리 블록("불량 블록")의 수. 결함 블록들은 제조 중에 또는 호스트 시스템에서 사용 중에 식별되어 불량이라고 표시될 수 있다. 불량 블록들은 메모리 장치의 오버-프로비저닝(over-provisioning)을 감소시키고 결국 데이터 유실을 초래할 수 있다. 병행성을 최대화하기 위해 다이 당 불량 블록의 수를 균형화하는 것이 바람직하다. 더욱이, 많은 수의 불량 블록을 가진 다이들은 덜 자주 사용되거나 심지어 완전히 무시될 수 있다.
ㆍ 다이에서 소정의 유형의 메모리 액세스 명령(예를 들어, 프로그램, 판독 또는 소거 명령)을 수행하는 데 필요한 지속 시간. 다양한 다이들에서의 실행 시간의 차이들에 기초하여 메모리 액세스 동작들을 분배하는 것은 전체 저장 레이턴시를 줄이는 데 도움이 될 수 있다. 예를 들어, 자주 액세스되는 데이터는 더 빠른 다이들에 기입되고 드물게 액세스되는 데이터는 더 느린 다이들에 기입될 수 있다.
ㆍ 다이의 오류 성능, 예를 들어, 다이로부터 데이터를 판독할 때 정정되는 오류의 수. 다양한 다이들의 오류 성능의 차이들에 기초하여 메모리 액세스 동작들을 분배하는 것은 전체 오류 확률을 줄이는 데 도움이 될 수 있다. 이러한 종류의 균형화는 관리 비용(management overhead)도 줄여줄 수 있는데, 그 이유는 오류가 발생하기 쉬운 다이들은 보통 메모리 컨트롤러에 높은 관리 비용을 발생시키기 때문이다.
ㆍ 다이의 내구성 추정, 예를 들어, 다이가 그의 수명 말기에 이를 때까지 남아 있는 프로그래밍 및 소거(P/E)의 예상 횟수. 내구성은 최대 또는 평균 내구성으로 정량화될 수 있고, 제조 중에 및/또는 호스트 시스템에서의 메모리 장치의 사용의 수명을 따라 추정될 수 있다. 다양한 다이들의 예상 내구성의 균형화는 메모리 장치의 전체 내구성을 향상시킨다.
ㆍ 다이에서 자주 사용되는("hot") 및/또는 드물게 사용되는("cold") 데이터의 존재. 이 특성의 균형화는 레이턴시를 줄여주고 사용자 경험을 향상시킬 수 있다.
ㆍ 다이에서 실행을 위해 현재 계류중인 메모리 액세스 명령의 수. 예를 들어 덜 바쁜 다이들에 우선권을 줌으로써 이 특성을 균형화하는 것은 병행성을 증가시키고 메모리 장치의 전체 레이턴시를 줄여줄 수 있다.
위에 열거한 특성들 및 균형화 기준들은 순전히 예로서 선택된 것이다. 대안 실시예들에서, 프로세서(44)는 임의의 다른 적합한 다이 특성에 기초하여 V-P 매핑을 적응시킬 수 있다. 일부 실시예들에서, 프로세서(44)는 각 다이마다 복수의 상이한 특성들을 추정하고, 추정치들의 조합에 기초하여 V-P 매핑을 적응시킨다.
특성들 각각은 다이들(28)의 또는 메모리 장치(22)의 제조 중에 추정될 수 있고, 이 경우 프로세서(44)는 외부 소스로부터 추정치들에 관한 정보를 수신할 수 있다. 추가로 또는 대안으로, 프로세서(44)는 호스트 시스템에서의 메모리 장치(22)의 동작 중에 소정의 특성을 추정하거나 재추정할 수 있다. 예를 들어, 프로세서(44)는 제조 테스트로부터 각 다이의 예상 내구성의 초기 추정치들을 수신하고, 호스트 시스템에서의 메모리 장치의 동작 중에 내구성을 재추정할 수 있다. 불량 블록의 수에 대해 유사한 프로세스가 수행될 수 있다.
다양한 실시예들에서, 프로세서(44)는 각각 다른 방법으로 V-P 매핑을 적응시킬 수 있다. 예시의 실시예에서, 프로세서(44)는 가중 라운드-로빈 스케줄링 방식을 이용하여 LBA들을 물리 저장 위치들로 매핑한다. 그러한 프로세스에서, 프로세서(44)는 순환 방식으로 메모리 유닛들(28) 사이에 교대한다. 임의의 주어진 시점에, 메모리 유닛들 중 하나가, 순환 교대 순서에 따라, 다음 들어오는 데이터 항목을 저장하기 위한 다음 메모리 유닛으로서 선택된다. 저장을 위한 데이터 항목을 수신하는 즉시, 프로세서(44)는 데이터 항목의 논리 주소를 현재 선택된 메모리 유닛 내의 물리 저장 위치에 매핑한다.
가중 라운드-로빈 방식을 이용할 때, 프로세서(44)는 각 메모리 유닛(28)에 각각의 가중치를 할당한다. 가중치는 순환 교대 순서로 해당 메모리 유닛에 데이터가 저장될 상대적 빈도를 정의한다. 예를 들어, 하나의 메모리 유닛의 가중치가 또 하나의 메모리 유닛의 가중치의 2배라면, 프로세서(44)는 보통 후자의 메모리 유닛보다 2배의 양의 데이터를 전자의 메모리 유닛에 저장할 것이다.
일부 실시예들에서, 프로세서(44)는 가중 라운드-로빈 방식에서 사용되는 가중치들을 적응시킴으로써 (추정된 다이 특성들에 기초하여) V-P 매핑을 적응시킨다. 전형적으로, (예를 들어, 높은 예상 내구성이나 소수의 불량 블록을 갖기 때문에) 보다 높은 빈도로 데이터 항목들을 저장하는 메모리 유닛에는 높은 가중치가 할당될 것이고, 보다 낮은 빈도로 데이터 항목들을 저장하는 메모리 유닛에는 낮은 가중치가 할당될 것이다. 프로세서(44)는 메모리 유닛 특성들의 변동을 추적하기 위해, 시간이 지나면서 가중치들을 수정할 수 있다. 일부 실시예들에서, 프로세서(44)는 상이한 메모리 액세스 동작들에 대해 상이한 가중치들을 사용한다. 예시의 실시예에서, 프로세서(44)는 상이한 사용 패턴들에 대해 상이한 가중치들을 할당한다(예를 들어, 무작위 저장을 위해 하나의 가중치 세트를 할당하고 순차 저장을 위해 또 하나의 가중치 세트를 할당한다).
도 2는 본 발명의 일 실시예에 따른, 논리-물리 주소 매핑을 위한 방법을 개략적으로 보여주는 흐름도이다. 이 방법은 메모리 컨트롤러(32)의 프로세서(44)가, 특성 추정 단계(50)에서, 메모리 다이들(28)의 각각의 특성들을 추정하는 것으로 시작된다.
추정된 다이 특성들에 기초하여, 프로세서(44)는, 가중치 할당 단계(54)에서, 라운드-로빈 스케줄링 방식에서 사용될, 다이들(28)에 대한 각각의 가중치들을 정의한다. 프로세서(44)는, 매핑 단계(58)에서, 가중치들에 기초하여 들어오는 데이터 항목들의 논리 주소들을 각각의 물리 위치들에 매핑한다. 바꾸어 말하면, 프로세서(44)는, 가중치들이 추정된 다이 특성들에 기초하여 결정되는, 가중 라운드-로빈 방식으로 LBA들을 다이들(28)에 매핑한다. 프로세서(44)는, 저장 단계(62)에서, 매핑에 따라 데이터 항목들을 다이들(28)에 저장한다.
대안 실시예들에서, 프로세서(44)는 반드시 라운드-로빈 스케줄링을 수반하는 것은 아닌, 임의의 다른 적합한 방식으로 V-P 매핑을 적응시키고 적용할 수 있다.
일부 실시예들에서, 프로세서(44)는 저장을 위해 수신되는 데이터 항목들에 실시간으로 V-P 매핑을 적응시킨다. 이러한 실시예들에서, 프로세서(44)는 적응된 매핑에 따라 호스트(24)로부터 수신되는 각 데이터 항목을 저장한다.
대안 실시예들에서, 프로세서(44)는 오프-라인 백그라운드 프로세스에서 V-P 매핑을 적응시킨다. 이러한 실시예들에서, 프로세서(44)는 처음에는 V-P 매핑의 초기 설정에 따라 들어오는 데이터 항목들을 저장하고, 나중에는 V-P 매핑을 적응시키고 적응된 V-P 매핑에 따라 데이터 항목들 중 적어도 일부를 대안의 물리 저장 위치들에 복사한다.
예시의 실시예에서, 프로세서(44)는 처음에는 기입 레이턴시를 최적화하는 V-P 매핑, 예를 들어, 각 메모리 다이(28)의 평균 프로그래밍 시간에 기초하는 매핑에 따라 들어오는 데이터 항목들을 저장한다. 나중에는, 프로세서(44)는 V-P 매핑을 판독 레이턴시를 최적화하도록, 예를 들어, 각 메모리 다이(28)의 평균 판독 시간에 기초하는 매핑으로 수정한다. 이 백그라운드 기법은 프로그래밍 및 판독 레이턴시 둘 다를 최적화한다.
본 명세서에 기술된 실시예들은 주로 플래시 다이들을 다루지만, 본 명세서에 기술된 방법들 및 시스템들은 패키징된 장치들, 또는 다이들 내의 블록들(예를 들어, 메모리 플레인들)의 그룹들과 같은, 임의의 원하는 크기의 다른 적합한 메모리 유닛들의 특성들에 기초하여 V-P 매핑을 적응시키는 데에도 이용될 수 있다.
따라서 위에 기술된 실시예들은 예로 든 것이고, 본 발명은 위에 특별히 제시되고 기술된 것으로 제한되지 않는다는 것을 알 것이다. 오히려, 본 발명의 범위는 위에 기술된 다양한 특징들의 조합들 및 부조합들 둘 다는 물론, 숙련된 당업자들이 앞의 설명을 읽고나서 떠올릴 수 있고 종래 기술에 개시되어 있지 않은 그의 변형예들 및 수정예들을 포함한다. 본 특허 출원에 참고문헌으로 포함된 문서들은 본 출원의 필수적인 부분으로 간주되어야 하지만, 예외로 이들 포함된 문서들에서 임의의 용어들이 본 명세서에서 명시적으로 또는 암시적으로 이루어진 정의들과 모순되는 방식으로 정의되는 한, 본 명세서의 정의들만이 고려되어야 한다.

Claims (29)

  1. 데이터 저장 방법으로서,
    복수의 메모리 유닛을 포함하는 메모리에 저장하기 위한 각각의 논리 주소들과 연관된 데이터 항목들을 수신하는 단계;
    상기 복수의 메모리 유닛에 대한 성능 특성의 각각의 추정치들을 획득하는 단계;
    상기 메모리 유닛들에 걸쳐서 상기 성능 특성을 균형화하기 위해, 상기 추정치들에 기초하여, 상기 논리 주소들을 상기 복수의 메모리 유닛 내의 각각의 물리 저장 위치들로 매핑하는 매핑을 적응시키는 단계; 및
    상기 적응된 매핑에 따라서 상기 물리 저장 위치들에 상기 데이터 항목들을 저장하는 단계
    를 포함하는 데이터 저장 방법.
  2. 제1항에 있어서, 상기 매핑을 적응시키는 단계는 소정의 메모리 유닛에 매핑되는 상기 논리 주소들의 총수를 수정하는 단계를 포함하는 데이터 저장 방법.
  3. 제1항에 있어서, 상기 데이터 항목들을 저장하는 단계는 상기 메모리 유닛들에 각각의 가중치들을 할당하는 가중 라운드-로빈 스케줄링 방식에 따라 상기 메모리 유닛들 사이에 상기 데이터 항목들을 분배하는 단계를 포함하고, 상기 매핑을 적응시키는 단계는 하나 이상의 상기 가중치들을 수정하는 단계를 포함하는 데이터 저장 방법.
  4. 제3항에 있어서, 상기 가중치들을 수정하는 단계는 각각의 상이한 제1 및 제2 유형의 메모리 액세스 명령들에 대해 상이한 제1 및 제2 가중치들을 소정의 메모리 유닛에 할당하는 단계를 포함하는 데이터 저장 방법.
  5. 제1항에 있어서, 상기 추정치들을 획득하는 단계는 상기 메모리 또는 상기 메모리 유닛들의 제조 중에 상기 복수의 메모리 유닛에 대한 성능 특성을 평가하는 단계를 포함하는 데이터 저장 방법.
  6. 제1항에 있어서, 상기 추정치들을 획득하는 단계는 상기 메모리가 호스트 시스템에서 동작하고 있는 동안 상기 복수의 메모리 유닛에 대한 성능 특성을 평가하는 단계를 포함하는 데이터 저장 방법.
  7. 제1항에 있어서, 상기 매핑을 적응시키는 단계는 처음에 상기 매핑의 초기 설정에 따라 상기 메모리에 상기 데이터 항목들을 저장하고, 그 후에 상기 매핑을 적응시키고 상기 적응된 매핑에 따라 상기 메모리에 상기 데이터 항목들을 저장하기 위해 하나 이상의 상기 데이터 항목들을 복사하는 단계를 포함하는 데이터 저장 방법.
  8. 제1항에 있어서, 각 메모리 유닛에 대한 성능 특성은 프로그래밍에 이용 가능한 상기 메모리 유닛 내의 메모리 블록들의 각각의 카운트를 나타내는 데이터 저장 방법.
  9. 제1항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛 내의 결함 메모리 블록들의 각각의 카운트를 나타내는 데이터 저장 방법.
  10. 제1항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛에 가해지는 메모리 액세스 명령의 각각의 지속 시간을 나타내는 데이터 저장 방법.
  11. 제1항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛의 각각의 판독 오류 성능을 나타내는 데이터 저장 방법.
  12. 제1항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛의 각각의 내구성을 나타내는 데이터 저장 방법.
  13. 제1항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛에 저장된 데이터에 대한 각각의 액세스 빈도를 나타내는 데이터 저장 방법.
  14. 제1항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛에서 실행을 위해 계류중인 메모리 액세스 명령들의 각각의 카운트를 나타내는 데이터 저장 방법.
  15. 복수의 메모리 유닛을 포함하는 메모리와 통신하도록 구성되어 있는, 인터페이스; 및
    상기 메모리에 저장하기 위한 각각의 논리 주소들과 연관된 데이터 항목들을 수신하고, 상기 복수의 메모리 유닛에 대한 성능 특성의 각각의 추정치들을 획득하고, 상기 메모리 유닛들에 걸쳐 상기 성능 특성을 균형화하기 위해, 상기 추정치들에 기초하여, 상기 논리 주소들을 상기 복수의 메모리 유닛 내의 각각의 물리 저장 위치들로 매핑하는 매핑을 적응시키고, 상기 적응된 매핑에 따라 상기 물리 저장 위치들에 상기 데이터 항목들을 저장하도록 구성되어 있는, 프로세서
    를 포함하는 데이터 저장 장치.
  16. 제15항에 있어서, 상기 프로세서는 소정의 메모리 유닛에 매핑되는 상기 논리 주소들의 총수를 수정함으로써 상기 매핑을 적응시키도록 구성되어 있는 데이터 저장 장치.
  17. 제15항에 있어서, 상기 프로세서는 상기 메모리 유닛들에 각각의 가중치들을 할당하는 가중 라운드-로빈 스케줄링 방식에 따라 상기 메모리 유닛들 사이에 상기 데이터 항목들을 분배하고, 하나 이상의 상기 가중치들을 수정함으로써 상기 매핑을 적응시키도록 구성되어 있는 데이터 저장 장치.
  18. 제17항에 있어서, 상기 프로세서는 각각의 상이한 제1 및 제2 유형의 메모리 액세스 명령들에 대해 상이한 제1 및 제2 가중치들을 소정의 메모리 유닛에 할당하도록 구성되어 있는 데이터 저장 장치.
  19. 제15항에 있어서, 상기 프로세서는 상기 메모리 또는 상기 메모리 유닛들의 제조 중에 수행된, 상기 복수의 메모리 유닛에 대한 성능 특성의 평가를 받아들이도록 구성되어 있는 데이터 저장 장치.
  20. 제15항에 있어서, 상기 프로세서는 상기 메모리가 호스트 시스템에서 동작하고 있는 동안 상기 복수의 메모리 유닛에 대한 성능 특성을 평가하도록 구성되어 있는 데이터 저장 장치.
  21. 제15항에 있어서, 상기 프로세서는 처음에 상기 매핑의 초기 설정에 따라 상기 메모리에 상기 데이터 항목들을 저장하고, 그 후에 상기 매핑을 적응시키고 상기 적응된 매핑에 따라 상기 메모리에 상기 데이터 항목들을 저장하기 위해 하나 이상의 상기 데이터 항목들을 복사하도록 구성되어 있는 데이터 저장 장치.
  22. 제15항에 있어서, 각 메모리 유닛에 대한 성능 특성은 프로그래밍에 이용 가능한 상기 메모리 유닛 내의 메모리 블록들의 각각의 카운트를 나타내는 데이터 저장 장치.
  23. 제15항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛 내의 결함 메모리 블록들의 각각의 카운트를 나타내는 데이터 저장 장치.
  24. 제15항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛에 가해지는 메모리 액세스 명령의 각각의 지속 시간을 나타내는 데이터 저장 장치.
  25. 제15항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛의 각각의 판독 오류 성능을 나타내는 데이터 저장 장치.
  26. 제15항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛의 각각의 내구성을 나타내는 데이터 저장 장치.
  27. 제15항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛에 저장된 데이터에 대한 각각의 액세스 빈도를 나타내는 데이터 저장 장치.
  28. 제15항에 있어서, 각 메모리 유닛에 대한 성능 특성은 상기 메모리 유닛에서 실행을 위해 계류중인 메모리 액세스 명령들의 각각의 카운트를 나타내는 데이터 저장 장치.
  29. 복수의 메모리 유닛을 포함하는 메모리; 및
    상기 메모리에 저장하기 위한 각각의 논리 주소들과 연관된 데이터 항목들을 수신하고, 상기 복수의 메모리 유닛에 대한 성능 특성의 각각의 추정치들을 획득하고, 상기 메모리 유닛들에 걸쳐 상기 성능 특성을 균형화하기 위해, 상기 추정치들에 기초하여, 상기 논리 주소들을 상기 복수의 메모리 유닛 내의 각각의 물리 저장 위치들로 매핑하는 매핑을 적응시키고, 상기 적응된 매핑에 따라 상기 물리 저장 위치들에 상기 데이터 항목들을 저장하도록 구성되어 있는, 프로세서
    를 포함하는 데이터 저장 장치.
KR1020147010339A 2011-09-20 2012-09-20 솔리드 스테이트 드라이브 내의 메모리 장치로의 논리 주소의 적응적 매핑 KR101556870B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161536597P 2011-09-20 2011-09-20
US61/536,597 2011-09-20
US13/535,889 US9417803B2 (en) 2011-09-20 2012-06-28 Adaptive mapping of logical addresses to memory devices in solid state drives
US13/535,889 2012-06-28
PCT/US2012/056309 WO2013043856A1 (en) 2011-09-20 2012-09-20 Adaptive mapping of logical addresses to memory devices in solid state drives

Publications (2)

Publication Number Publication Date
KR20140064980A true KR20140064980A (ko) 2014-05-28
KR101556870B1 KR101556870B1 (ko) 2015-10-01

Family

ID=47881766

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147010339A KR101556870B1 (ko) 2011-09-20 2012-09-20 솔리드 스테이트 드라이브 내의 메모리 장치로의 논리 주소의 적응적 매핑

Country Status (5)

Country Link
US (1) US9417803B2 (ko)
EP (1) EP2758882B1 (ko)
JP (1) JP5923844B2 (ko)
KR (1) KR101556870B1 (ko)
WO (1) WO2013043856A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170076106A (ko) * 2015-12-24 2017-07-04 에스케이하이닉스 주식회사 제어회로 및 제어회로를 포함하는 메모리 장치
USRE49496E1 (en) 2015-07-30 2023-04-18 SK Hynix Inc. Semiconductor device
US11755255B2 (en) 2014-10-28 2023-09-12 SK Hynix Inc. Memory device comprising a plurality of memories sharing a resistance for impedance matching

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489300B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489294B2 (en) * 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489299B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9218283B2 (en) 2013-12-02 2015-12-22 Sandisk Technologies Inc. Multi-die write management
US9390008B2 (en) 2013-12-11 2016-07-12 Sandisk Technologies Llc Data encoding for non-volatile memory
US9632712B2 (en) * 2014-07-02 2017-04-25 Sandisk Technologies Llc System and method of updating metablocks associated with multiple memory dies
KR102239356B1 (ko) 2015-02-17 2021-04-13 삼성전자주식회사 클록 제어 유닛 또는 전원 제어 유닛을 포함하는 저장 장치와 메모리 시스템, 그리고 그것의 동작 방법
KR102506135B1 (ko) 2015-03-16 2023-03-07 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US9857986B2 (en) 2015-06-30 2018-01-02 International Business Machines Corporation Wear leveling of a memory array
KR102445662B1 (ko) 2015-07-01 2022-09-22 삼성전자주식회사 스토리지 장치
CN105224478B (zh) * 2015-09-25 2019-01-22 北京联想核芯科技有限公司 一种映射表的形成、更新和恢复方法及电子设备
US9928154B2 (en) * 2016-01-12 2018-03-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Leveling stress factors among like components in a server
US11042330B2 (en) 2017-03-01 2021-06-22 Samsung Electronics Co., Ltd. Methods and systems for distributed data storage
US10545664B2 (en) 2017-04-11 2020-01-28 Samsung Electronics Co., Ltd. System and method for identifying SSDs with lowest tail latencies
US11049009B2 (en) 2017-06-12 2021-06-29 Western Digital Technologies, Inc. Identifying memory block write endurance using machine learning
WO2023099603A1 (en) * 2021-11-30 2023-06-08 Grai Matter Labs S.A.S. Neural network device, method and system comprising the device

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5696925A (en) * 1992-02-25 1997-12-09 Hyundai Electronics Industries, Co., Ltd. Memory management unit with address translation function
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US6332178B1 (en) 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
DE60115154T2 (de) * 2000-06-19 2006-08-10 Broadcom Corp., Irvine Verfahren und Vorrichtung zum Datenrahmenweiterleiten in einer Vermittlungsstelle
US7260758B1 (en) 2001-09-07 2007-08-21 Lsi Corporation Method and system for performing built-in self-test routines using an accumulator to store fault information
US6901498B2 (en) 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
TWI240863B (en) * 2003-09-05 2005-10-01 Megawin Technology Co Ltd Method for efficiently controlling flash memory read/write
US7111118B2 (en) 2003-10-08 2006-09-19 Lsi Logic Corporation High performance raid mapping
EP1704479B1 (en) 2003-12-30 2014-03-26 SanDisk Technologies Inc. Non-volatile memory and method with phased program failure handling
KR100526188B1 (ko) 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
US7441096B2 (en) * 2004-07-07 2008-10-21 Hitachi, Ltd. Hierarchical storage management system
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US8301938B2 (en) 2005-03-21 2012-10-30 Hewlett-Packard Development Company, L.P. Managing memory health
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
KR100703807B1 (ko) * 2006-02-17 2007-04-09 삼성전자주식회사 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
DE102006008017A1 (de) * 2006-02-21 2007-08-30 Infineon Technologies Ag Verfahren zum Herstellen und Verfahren zum Betreiben eines integrierten Halbleiterspeichers
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US8135936B2 (en) 2009-12-23 2012-03-13 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
US8060806B2 (en) * 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
KR100855467B1 (ko) 2006-09-27 2008-09-01 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
US8516218B2 (en) 2006-10-30 2013-08-20 Hewlett-Packard Development Company, L.P. Pattern-based mapping for storage space management
US7818489B2 (en) * 2006-11-04 2010-10-19 Virident Systems Inc. Integrating data from symmetric and asymmetric memory
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
CN101715595A (zh) * 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
TWI368224B (en) 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US8271757B1 (en) * 2007-04-17 2012-09-18 American Megatrends, Inc. Container space management in a data storage system
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
TW200917277A (en) * 2007-10-15 2009-04-16 A Data Technology Co Ltd Adaptive hybrid density memory storage device and control method thereof
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
JP2009199199A (ja) 2008-02-20 2009-09-03 Hitachi Ltd ストレージシステム及びそのデータライト方法
JP2009230414A (ja) 2008-03-21 2009-10-08 Toshiba Corp 複数の不揮発性メモリデバイスを有する記憶装置
JP4632180B2 (ja) 2008-10-15 2011-02-16 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8006038B2 (en) * 2008-10-02 2011-08-23 Microsoft Corporation Optimizing information lifecycle management for fixed storage
US8275933B2 (en) * 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
US9104618B2 (en) * 2008-12-18 2015-08-11 Sandisk Technologies Inc. Managing access to an address range in a storage device
US7948798B1 (en) 2009-07-22 2011-05-24 Marvell International Ltd. Mixed multi-level cell and single level cell storage device
US9021158B2 (en) * 2009-09-09 2015-04-28 SanDisk Technologies, Inc. Program suspend/resume for memory
US8326799B2 (en) * 2009-10-09 2012-12-04 Seagate Technology Llc Data distribution in systems with multiple storage entities
JP5579431B2 (ja) 2009-12-28 2014-08-27 株式会社日立製作所 ソリッド・ステート・ドライブ装置および平準化管理情報の退避・回復方法
US8555018B1 (en) * 2010-03-11 2013-10-08 Amazon Technologies, Inc. Techniques for storing data
US8812816B2 (en) * 2010-03-23 2014-08-19 Apple Inc. Garbage collection schemes for index block
JP5521716B2 (ja) * 2010-04-06 2014-06-18 富士通株式会社 ストレージ制御プログラム、ストレージ制御方法およびストレージ制御装置
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8826051B2 (en) * 2010-07-26 2014-09-02 Apple Inc. Dynamic allocation of power budget to a system having non-volatile memory and a processor
US9146683B2 (en) * 2011-04-20 2015-09-29 Seagate Technology Llc Logical block address mapping
US8954689B2 (en) * 2011-06-30 2015-02-10 Seagate Technology Llc Limiting activity rates that impact life of a data storage media
WO2013076763A1 (en) * 2011-11-22 2013-05-30 Hitachi, Ltd. Storage system and control method of storage system
US9146846B2 (en) 2012-09-14 2015-09-29 Advanced Micro Devices, Inc. Programmable physical address mapping for memory
US10282286B2 (en) 2012-09-14 2019-05-07 Micron Technology, Inc. Address mapping using a data unit type that is variable
US9141537B2 (en) * 2012-10-30 2015-09-22 Mangstor, Inc. Magnetic random access memory journal
US9569120B2 (en) * 2014-08-04 2017-02-14 Nvmdurance Limited Adaptive flash tuning

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755255B2 (en) 2014-10-28 2023-09-12 SK Hynix Inc. Memory device comprising a plurality of memories sharing a resistance for impedance matching
USRE49496E1 (en) 2015-07-30 2023-04-18 SK Hynix Inc. Semiconductor device
KR20170076106A (ko) * 2015-12-24 2017-07-04 에스케이하이닉스 주식회사 제어회로 및 제어회로를 포함하는 메모리 장치
US11347444B2 (en) 2015-12-24 2022-05-31 SK Hynix Inc. Memory device for controlling operations according to different access units of memory

Also Published As

Publication number Publication date
JP5923844B2 (ja) 2016-05-25
EP2758882B1 (en) 2017-08-30
EP2758882A1 (en) 2014-07-30
US9417803B2 (en) 2016-08-16
KR101556870B1 (ko) 2015-10-01
US20130073822A1 (en) 2013-03-21
JP2014530420A (ja) 2014-11-17
WO2013043856A1 (en) 2013-03-28
EP2758882A4 (en) 2015-04-22

Similar Documents

Publication Publication Date Title
KR101556870B1 (ko) 솔리드 스테이트 드라이브 내의 메모리 장치로의 논리 주소의 적응적 매핑
US10387243B2 (en) Managing data arrangement in a super block
KR102365716B1 (ko) Nand 디바이스에서의 부분 수퍼블록 관리
US9898212B1 (en) Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data
JP5728672B2 (ja) ハイブリッドメモリ管理
KR101551584B1 (ko) 하이브리드 slc/mlc 메모리 내의 블록 관리 방식들
JP5458419B2 (ja) メモリブロックの選択
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US9298534B2 (en) Memory system and constructing method of logical block
CN107967121A (zh) 数据写入方法和存储设备
KR101086876B1 (ko) 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
US10126970B2 (en) Paired metablocks in non-volatile storage device
US9195584B2 (en) Dynamic block linking with individually configured plane parameters
US20140281141A1 (en) Binning of Blocks for Dynamic Linking
JP2013016147A (ja) メモリコントローラ及び不揮発性記憶装置
CN111433748A (zh) 多级寻址
CN113924546A (zh) 非易失性存储器中的磨损感知块模式转换
CN110888593B (zh) 数据储存装置以及非挥发式存储器控制方法
TWI752784B (zh) 非對稱型平面管理方法以及資料儲存裝置及其控制器
US9262315B2 (en) Uneven wear leveling in analog memory devices
CN109669620A (zh) 存储器管理方法、存储器控制电路单元及存储器储存装置

Legal Events

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

Payment date: 20180903

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190829

Year of fee payment: 5