KR102245652B1 - 메모리 마모 레벨링 - Google Patents

메모리 마모 레벨링 Download PDF

Info

Publication number
KR102245652B1
KR102245652B1 KR1020177015711A KR20177015711A KR102245652B1 KR 102245652 B1 KR102245652 B1 KR 102245652B1 KR 1020177015711 A KR1020177015711 A KR 1020177015711A KR 20177015711 A KR20177015711 A KR 20177015711A KR 102245652 B1 KR102245652 B1 KR 102245652B1
Authority
KR
South Korea
Prior art keywords
sector
sub
wear
sectors
location
Prior art date
Application number
KR1020177015711A
Other languages
English (en)
Other versions
KR20170084194A (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 KR20170084194A publication Critical patent/KR20170084194A/ko
Application granted granted Critical
Publication of KR102245652B1 publication Critical patent/KR102245652B1/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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/0647Migration mechanisms
    • 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/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

섹터내 재-순서화된 마모 레벨링을 위한 시스템들 및 방법들은: 메모리 디바이스에서, 높은 마모 레벨을 가진 고 마모 서브-섹터를 검출하는 단계, 상기 서브-섹터는 제 1 섹터에 있고; 낮은 마모 레벨을 가진 메모리 디바이스의 제 2 섹터를 결정하는 단계; 제 2 섹터와 제 1 섹터를 스와핑하는 단계; 및 제 1 섹터, 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하는 단계를 포함한다.

Description

메모리 마모 레벨링{MEMORY WEAR LEVELING}
본 발명의 실시예는 전반적으로 메모리 디바이스들의 분야에 관한 것이며 보다 특히, 메모리 디바이스들에 대한 마모 레벨링의 시스템들 및 방법들에 관한 것이다.
컴퓨터 시스템들 및 다른 전기 시스템들은 일반적으로 하나 이상의 메모리 디바이스들을 포함한다. 예를 들면, 컴퓨터들은 종종 NOR 플래시 메모리 및 NAND 플래시 메모리를 이용한다. NOR 및 NAND 플래시 각각은 다른 것에 비해 특정한 이점들을 갖는다. 예를 들면, NOR 플래시 메모리는 통상적으로 NAND 플래시보다 느린 기록 및 소거 속도들을 가진다. 뿐만 아니라, NAND 플래시 메모리는 통상적으로 NOR 플래시 메모리보다 높은 지구력을 가진다. 그러나, NOR 플래시 메모리는 통상적으로 메모리 디바이스들 내에 저장된 데이터로의 랜덤 액세스를 가능하게 하는 반면, NAND 플래시 메모리는 일반적으로 보다 큰 그룹들에서 데이터를 액세스하며 기록하는 것을 요구한다. 예를 들면, NAND 플래시 메모리는 통상적으로 각각이 복수의 페이지들을 포함하는 복수의 블록들을 포함하며, 여기에서 각각의 페이지는 다수의 바이트들의 데이터를 포함한다. 동작 시, 데이터는 한 번에 하나의 블록으로 소거되며, 한 번에 하나의 페이지로 기록된다.
메모리 기술들에서의 진전들은 증가된 저장 용량을 달성하면서, 증가된 실리콘 영역 감소를 야기하여 왔다. 불운하게도, 온-실리콘 구조들의 이러한 기하급수적인 축소는 많은 간섭을 생성하여 왔으며, 메모리 셀 사이클링 지구력에 영향을 준다. 시간에 걸쳐, 데이터 동작들(예로서, 판독/기록 동작들)의 축적은 메모리 셀을 열화시킬 수 있다. 예를 들면, NAND 메모리 셀들은 제한된 수의 기록/소거 사이클들(예로서, 100,000 프로그램/소거 사이클들)을 갖는다.
이들 메모리 디바이스들의 수명을 연장하기 위해, "마모 레벨링(wear leveling)"이 메모리의 다양한 물리적 섹터들에 걸쳐 데이터를 분산하기 위해 적용될 수 있다. 마모 레벨링은 일반적으로 메모리 어레이의 특정한 부분들이 너무 이르게 고장나는 것을 방지하기 위해 셀들의 고른 사용을 보장하도록 다양한 섹터들로 데이터를 기록하는 것을 포함한다. 마모 레벨링은 처음에 메모리 어레이에서의 다양한 섹터들 중 하나로 데이터를 기록하는 것을 포함할 수 있거나, 또는 메모리 어레이 내에서 하나의 물리적 섹터로부터 데이터를 이동시키는 것 및 메모리 어레이에서의 또 다른 물리적 섹터들로 상기 동일한 데이터를 기록하는 것을 포함할 수 있다.
몇몇 메모리 기술들(예로서, 페이지 플래시 메모리들)은 서브-섹터들로 불리우는 각각의 섹터 안에서 추가적인 세부 레벨(granularity level)을 특징으로 삼는다. 서브-섹터들은 메모리의 섹터 안쪽에서의 메모리의 세그먼트들이다. 서브-섹터들은 개별적으로 액세스될 수 있다(예로서, 프로그램되고 및/또는 소거될 수 있다). 따라서, 서브-섹터들은 별개의 사이클링, 및 그에 따라, 메모리 내에서의 다른 서브-섹터들로부터의 상이한 마모를 가진다. 불운하게도, 종래의 마모 레벨링 기술들은 특히, 높은 데이터 사이클링 애플리케이션(예로서, 페이지-플래시 구현들)에서, 서브-섹터 마모에 대해 효과적으로 고려되지 않았으며, 여기에서 사이클들의 수는 수십 만개까지 이를 수 있다.
도 1은 실시예에 따른, 섹터내(intra-sector) 스왑을 수행하는 서브-섹터 마모 회로를 가진 메모리 시스템을 묘사한 블록도이다;
도 2는 실시예에 따른, 섹터내 스왑 프로세스를 위한 섹터를 예시한 흐름도이다;
도 3은 실시예에 따른, 오버-사이클링이 발생할 수 있는 서브-섹터 스왑을 위한 섹터를 예시한 개략도이다;
도 4는 실시예에 따른, 이러한 섹터내 스왑 프로세스를 예시한 흐름도이다;
도 5는 실시예에 따른, 도 4의 프로세스를 사용한 섹터내 스왑을 예시한 개략도이다;
도 6은 실시예에 따른, 중간 섹터내 번들 스왑 프로세스를 예시한 흐름도이다;
도 7은 실시예에 따른, 도 6의 프로세스를 사용하여, 섹터내 스왑을 예시한 개략도이다;
도 8은 실시예에 따른, 재스크램블링 회로를 가진 시스템을 예시한 개략도이다;
도 9는 실시예에 따른, 다중화기(MUX)를 사용하는 재스크램블링 회로를 가진 시스템을 예시한 개략도이다; 및
도 10은 실시예에 따른, 조합형 로직을 사용하는 재스크램블링 회로를 가진 시스템을 예시한 개략도이다.
도 1은 일반적으로 참조 번호(10)에 의해 표기된 바와 같이, 메모리 시스템을 묘사하는 블록도이다. 메모리 시스템(10)은, 컴퓨터, 페이저, 셀룰러 전화, 전자 수첩(personal organizer), 제어 회로 등에서 사용된 것들과 같은, 다양한 유형들 중 임의의 것일 수 있다. 예를 들면, 메모리 디바이스는 NAND 또는 NOR 형 플래시 메모리일 수 있다. 시스템(10)은 마스터 디바이스(12) 및 슬레이브 디바이스(14)를 포함한다. 일 실시예에서, 마스터 디바이스(12)는 마이크로제어기를 포함할 수 있으며 슬레이브 디바이스(14)는 메모리 디바이스를 포함할 수 있다.
마스터 디바이스(12)는 다양한 송신 라인들을 통해 슬레이브 디바이스(14)와 통신한다. 예시된 실시예에서, 마스터 디바이스(12) 및 슬레이브 디바이스(14)는 주변 인터페이스(PI)를 통해 신호들을 전송하고 수신한다. 예시된 실시예에서, PI는 PI 버스(16)를 포함한다. 몇몇 실시예들에서, PI 버스(16)는 전이중 모드로 동작하는 동기식 직렬 데이터 링크 표준이다. PI 버스(16) 상에서 디바이스들은 마스터 디바이스(12)로 하여금 하나 이상의 슬레이브 디바이스들(14)로의 데이터 프레임들을 개시할 수 있게 하는 마스터/슬레이브 모드로 동작할 수 있다. 마스터 디바이스(12) 및 슬레이브 디바이스(14)는 일반적으로 그것들이 데이터 값들을 교환하며 저장할 수 있게 하는 시프트 레지스터들을 포함한다. 동작 시, 마스터 디바이스(12) 및 슬레이브 디바이스(14)는 메모리로 데이터를 저장하는 것과 같은, 레지스터들에 저장된 데이터를 갖고 다양한 것들을 할 수 있다.
예시된 실시예에서, 슬레이브 디바이스(14)(예로서, 메모리 디바이스)는 제어기(18), 캐시(20), 메모리 어레이(22), 및 ECC(24) 상태 레지스터를 포함한다. 제어기(18)는 PI 버스(16)를 통해 데이터를 수신하고 송신한다. PI 버스(16)에 걸쳐 송신되는 데이터는 제어기(18)의 입력들에 의해 수신된다. 제어기(18)는 또한 메모리 디바이스(14)의 내부에 있는 데이터 전달 입력/출력 라인들(DT I/O) 및 제어 라인들(26, 28 및 29)을 통해 신호들을 송신 및 수신한다. DT I/O 라인들은 캐스(20)와의 통신을 가능하게 한다. 제어 라인(26)은 제어기(18)가 캐시(20)로 및 그로부터 제어 신호들을 송신 및 수신할 수 있게 한다. 제어 라인(28)은 PI 제어기가 메모리 어레이(22)로 및 그로부터 제어 신호들을 송신 및 수신할 수 있게 한다. 제어 라인(29)은 PI 제어기가 에러-정정 코드(ECC) 상태 레지스터(24)로 및 그로부터 제어 신호들을 송신 및 수신할 수 있게 한다.
동작 시, 제어기(18)는 PI 버스(16)를 통해 송신된 데이터를 수신하며, 메모리(14)의 다른 구성요소들 사이에서 데이터(DT I/O) 및 제어 신호들의 흐름을 동기화한다. 예를 들면, PI 제어기(18)는 버스(16)를 통해 직렬화 포맷으로 데이터 및 명령들을 수신하며, 데이터 및 명령들에 대한 인입하는 직렬화 신호를 파싱할 수 있다. 제어기(18)는 제어기(18)에 의해 송신 및 수신된 신호들의 적절한 타이밍을 제공하는 시프트 레지스터들을 포함할 수 있다. 뿐만 아니라, 제어기(18)는 명령들, 어드레스들, 데이터 등을 포함하는 인입 신호들을 해석하기 위해 탑재되어 실행되는 알고리즘들을 포함할 수 있다. 알고리즘들은 또한 어드레스 기법들, 에러 정정들, 메모리 어레이(22) 내에서의 데이터의 움직임 등을 포함한, 제어기(18)의 적절한 출력들을 결정하기 위한 루틴들을 포함할 수 있다. 이하에서 보다 상세히 논의될 바와 같이, 몇몇 실시예들에서, 제어기(18)는 데이터 사이클링에 의해 야기된 과도한 마모를 방지하기 위해 저장된 데이터를 이동시킬 수 있다. 유사하게, 제어기(18)는 버스(16)를 통해 제어기(18)로부터 마스터 디바이스(12)로 데이터의 송신을 동기화하기 위한 회로를 포함할 수 있다.
동작 시, 데이터(DT I/O)는 캐시(20)를 통해 바이트마다 메모리 어레이(22)로 또는 그로부터 전달된다. 캐시(20)는 제어기(18)로부터 메모리 어레이(22)로 전달되는 데이터에 대한 데이터 버퍼로서 동작한다. 데이터는 캐시(20)로 기록되며 그 뒤에 메모리 어레이(22)로 기록될 수 있다. 유사하게, 데이터는 메모리 어레이(22)로부터 캐시(20)로 판독되며, 그 뒤에 제어기(18) 및 버스(16)를 통해 캐시(20)로부터 마스터 디바이스(12)로 송신될 수 있다. 캐시(20)는 다양한 크기들일 수 있다. 예를 들면, 캐시(20)는 2048 바이트들, 4096 바이트들, 8192 바이트들 또는 그것의 배수를 포함할 수 있다. 캐시(20)는 또한 256 바이트들 또는 512 바이트들과 같은 보다 작은 크기들일 수 있다. 특정한 실시예들에서, 데이터 레지스터는 캐시(20), 및 메모리 어레이(22) 사이에서의 데이터의 전달을 위한 경로를 제공하기 위해 캐시(20) 또는 메모리 어레이(22)에 존재할 수 있다는 것이 주의되어야 한다. 다시 말해서, 복수의 데이터 비트들은 메모리 어레이(22)의 어드레스로 기록되기 전에 데이터 레지스터로 시프트될 수 있다.
ECC 상태 레지스터(24)는 정상 동작 동안 발생할 수 있는 비트 에러들, 뿐만 아니라 시간에 걸쳐 성장하는 전하 손실/이득으로 인해 발생하는 비트 에러들을 검출하고 및/또는 정정하기 위해 사용된다. 예를 들면, ECC 상태 레지스터(24)는 메모리 어레이(22)로부터 데이터를 다시 판독할 때 에러들을 검출하고 정정하기 위해 사용된 회로를 포함할 수 있다. ECC 상태 레지스터(24)는 제어기(18) 상에서 이용된 알고리즘들을 보완할 수 있다. ECC 상태 레지스터(24)는 또한 서브-레지스터들의 그룹을 포함할 수 있다. 이들 서브-레지스터들은 메모리 디바이스 데이터에 대한 선택적 ECC를 가능하게 하는 ECC 가능/불능 레지스터, 발견된 에러들의 총 수를 저장하는 ECC 형 레지스터, 임의의 정정 가능하지 않은 에러들의 위치를 저장하는 ECC 위치 레지스터, 메모리 어레이(22) 상에서 임의의 에러 정정 프로세스의 결과에 관한 정보를 저장하는 ECC NAND 메모리 결과 레지스터, 또는 캐시(20) 상에서 임의의 에러 정정 프로세스의 결과에 관한 정보를 저장하는 ECC 캐시 메모리 결과 레지스터를 포함할 수 있다. ECC 상태 레지스터(24)는 이전 ECC 서브-레지스터들 모두 또는 이전 서브-레지스터들의 임의의 조합을 포함할 수 있다. ECC 상태 레지스터(24)는 제어기(18)의 외부에 있는 것으로 도시되지만, ECC 상태 레지스터(24)는 제어기(18)에 일체형일 수 있다.
메모리 어레이(22)는 섹터들(30)로 분할되는 메모리 셀 어레이를 포함한다. 각각의 섹터는 고정된 수의 서브-섹터들(32)을 포함한다. 메모리 어레이(22)는 임의의 수 및 크기의 섹터들(30) 및 서브-섹터들(32)을 포함할 수 있다. 메모리 어레이(22)는 섹터(30) 및/또는 서브-섹터(32) 레벨에서 프로그램되고 및/또는 소거될 수 있다.
상기 언급된 바와 같이, 특정한 메모리 셀들은 제한된 수의 기록/소거 사이클들(예로서, 100,000 프로그램/소거 사이클들)을 가진다. 메모리 디바이스(14)의 수명을 연장하기 위해, "마모 레벨링"은 메모리의 다양한 물리적 위치들에 걸쳐 데이터를 분산시키기 위해 적용될 수 있다. 마모 레벨링은 일반적으로 메모리 어레이(22)의 특정한 부분들이 너무 이르게 고장나는 것을 방지하기 위해 셀들의 고른 사용을 보장하도록 다양한 위치들로 데이터를 기록하는 것을 포함한다. 마모 레벨링은 처음에 메모리 어레이(22)에서의 다양한 위치들 중 하나로 데이터를 기록하는 것을 포함할 수 있거나, 또는 메모리 어레이(22) 내에서의 하나의 물리적 위치(예로서, 어드레스)로부터 데이터를 이동시키는 것 및 NAND 메모리 어레이(22)에서의 또 다른 물리적 위치로 상기 동일한 데이터를 기록하는 것을 포함할 수 있다. 제어기(18)는 데이터가 기록되는 곳을 결정하기 위해 사용된 마모 레벨링 루틴들을 관리할 수 있다. 예를 들면, 알고리즘들, 및/또는 제어기(18) 상에서의 회로는 메모리 사용을 모니터링하며 메모리 어레이(22) 내에서 데이터를 기록하기 위해 적절한 어드레스를 결정할 수 있다. 예를 들면, 제어기(18)(또는 메모리 시스템(10)의 다른 구성요소)는 이하에서 보다 상세히 논의될 바와 같이, 메모리 어레이(22) 내에서 개개의 서브-섹터들(32)의 마모의 양에 기초하여 마모 레벨링을 제공하는 서브-섹터 마모 회로(34)를 포함할 수 있다. 블록 매핑 유닛(BMU)은 섹터들 및/또는 서브-섹터들을 재-매핑할 뿐만 아니라(예로서, 재-매핑되도록 섹터들 및/또는 서브-섹터들의 어드레스들을 업데이트하는) 스왑 이력들을 추적할 책임이 있을 수 있다.
서브-섹터 마모 회로(34)가 도 1의 실시예에서 제어기(18)의 부분으로서 예시되지만, 서브-섹터 마모 회로(34)는 메모리 시스템(10)의 다른 구성요소들에서, 부분적으로 또는 전체적으로, 구현될 수 있다. 예를 들면, 몇몇 실시예들에서, 마스터 디바이스(12)는 회로(34)를 구성하는 마모 레벨 루틴들의 일 부분을 포함할 수 있다. 뿐만 아니라, 슬레이브 디바이스(14)는 회로(34)를 구성하는 마모 레벨 루틴들의 또 다른 부분을 포함할 수 있다.
서브-섹터 마모 회로(34)는 다수의 상이한 접근법들을 사용하여 구현될 수 있다. 일 실시예에서, 계층적 마모 레벨 접근법이 구현될 수 있다. 계층적 마모 레벨 접근법은 각각의 섹터(30) 안에서 서브-섹터(32) 마모 레벨링을 구현할 수 있다. 다시 말해서, 서브-섹터들(32)은 섹터(30) 내에서의 서브-섹터들(32)의 상대적 마모 레벨들에 기초하여 섹터(30) 안에서 스와핑될 수 있다. 계층적 마모 레벨 접근법에 대한 트레이드-오프는 이러한 접근법에 대한 증가된 하드웨어 오버헤드가 있다는 것이다. 예를 들면, 개개의 어드레스 재매핑 하드웨어의 할당은 이러한 접근법을 달성하기 위해 각각의 섹터 내에서 요구될 수 있다.
또 다른 실시예에서, 서브-섹터들은 그것들이 개개의 섹터들인 것처럼 개별적으로 스와핑될 수 있다. 본질적으로, 이것은 서브-섹터 계층을 평탄화하도록 동작하여, 스왑들 및 스와핑 풀의 수에서의 증가를 야기한다. 이러한 접근법에 대한 트레이드-오프는 증가된 스와핑 풀이, 특히 섹터 레벨에서, 스와핑의 매우 복잡한 관리를 야기할 수 있다는 것이다.
제 3 실시예에서, 서브-섹터 스왑을 위한 섹터라 불리우는, 섹터(30) 스왑은 서브-섹터가 임계 마모 레벨에 도달할 때 발생할 수 있다. 도 2는 실시예에 따른, 서브-섹터 스왑 프로세스(50)를 위한 섹터를 예시한 흐름도이다. 시스템(10)은 섹터들(30) 중 임의의 것이 높은 마모 레벨을 갖는지를 검출할 수 있다(결정 블록 52). 상기 언급된 바와 같이, 섹터 마모 레벨은 섹터(30) 내에서의 서브-섹터들(32) 중 하나 이상에 대한 정보에 기초할 수 있다. 예를 들면, 마모는 섹터(30) 내에서 서브-섹터(32)의 최고 사이클 카운트, 주어진 섹터(30) 내에서 모든 서브-섹터들(32)에 대한 서브-섹터(32) 사이클 카운트들의 합, 주어진 섹터(30) 내에서 모든 서브-섹터들(32)에 대한 서브-섹터(32) 사이클 카운트들의 평균 등에 기초하여 결정될 수 있다. 일 실시예에서, 높은 마모 레벨은 미리 결정된 임계 사이클 카운트가 위반될 때(예로서, 사이클 카운트가 100,000 사이클들을 초과할 때) 발견될 수 있다.
어떤 섹터들(30)도 높은 마모 레벨을 갖는 것으로 발견되지 않는다면, 시스템(10)은 높은 마모 레벨을 가진 섹터들(30)에 대해 계속해서 모니터링한다. 일단 섹터(30)가 높은 마모 레벨을 갖는 것으로 발견된다면, 스왑이 트리거될 수 있으며, 여기에서 높은 마모 레벨을 가진 섹터(30)는 목적지 섹터(30)로 스와핑하기 위한 타겟 섹터이다. 따라서, 이러한 높은 마모 레벨 섹터(30)는 "타겟 섹터"로서 불리울 수 있다.
최고의 목적지 섹터(30)는 최저 마모를 가진 섹터(30)일 수 있다. 이러한 섹터는 "최소 섹터(Min Sector)"로 불리울 수 있다. 일단 스왑이 트리거되면, 최소 섹터가 결정된다(블록 54). 상기 언급된 바와 같이, 마모 레벨은 섹터(30) 내에서 서브-섹터(32)의 최고 사이클 카운트, 주어진 섹터(30) 내에서 모든 서브-섹터들(32)에 대한 서브-섹터(32) 사이클 카운트들의 합, 주어진 섹터(30) 내에서 모든 서브-섹터들(32)에 대한 서브-섹터(32) 사이클 카운트들의 평균 등에 기초할 수 있다. 따라서, 최소 섹터는 사이클 카운트들에 기초하여 최저 마모 레벨을 가진 섹터를 정확히 찾아냄으로써 결정될 수 있다. 일단 타겟 섹터 및 최소 섹터가 결정되면, 스왑은 타겟 섹터로부터 최소 섹터로 발생한다(블록 56).
예를 들면, 스왑은 메모리 어레이(22) 내에서의 데이터를 메모리 어레이(22)에서의 대안적인 위치들로 이동시키는 것을 포함할 수 있다. 이러한 프로세스는 일반적으로 메모리 어레이(22)에서의 제 1 어드레스로부터 캐시로 데이터를 로딩하는 것을 포함할 수 있다. 캐시 데이터는 그 후 어레이(22) 내에서의 새로운 목적지 위치로 기록될 수 있다.
이러한 접근법에서, 스와핑 레벨은, 서브-섹터 마모 레벨들에 기초하여 스왑들을 트리거하는 동안, 섹터 레벨로의 스왑을 넓힘으로써 보다 관리 가능해진다. 마모된 서브-섹터가 위치되는 섹터(30)에서의 전달된 서브-섹터들(32)은 보다 적은 마모를 가진 대안적인 섹터(30)에서 그것들의 서브-섹터 위치를 유지한다. 이러한 접근법에 대한 하나의 트레이드오프는 오버-사이클링일 수 있다. 예를 들면, 섹터(30) 스왑이 섹터(30) 내에서 하나 또는 몇 개의 서브-섹터들(32)의 마모를 처리하기 위해 트리거될 때, 섹터(30) 스왑은 새로운 섹터(30) 위치에서 비교적 더 높은-마모 서브-섹터(32)로 서브-섹터(32)의 전달을 야기할 수 있다. 따라서, 이들 전달들은 타겟 서브-섹터들(32)의 증가된 마모를 야기할 수 있다. 도 3은 오버-사이클링이 발생할 수 있는 서브-섹터 스왑(60)에 대한 섹터를 예시한 개략도이다.
상기 언급된 바와 같이, 타겟 섹터(62)로부터 최소 섹터(64)로의 전달을 위한 서브-섹터들(32)은 최소 섹터(64)에서 그것들의 상대적 위치들을 유지한다. 따라서, 타겟 섹터(62)의 서브-섹터(SS4)는 전달 후 최소 섹터(64)에서 계속해서 SS4이다. 예시된 바와 같이, 최소 섹터(64)에서 SS4는 최소 섹터(64)에서 비교적 가장 높은 마모 레벨 서브-섹터일 수 있다. 따라서, 이러한 스왑은 사이클들의 축적 및 최소 섹터(64)의 오버-사이클링을 야기할 수 있다.
이러한 이슈에 대응하기 위해, 일 실시예에서, 부가적인 로직/회로가 서브-섹터(32) 마모를 감소시키기 위해 서브-섹터 스왑을 위한 섹터를 확대시키기 위해 구현될 수 있다. 특히, 부가적인 로직/회로는 섹터(30) 스왑이 도 2의 서브-섹터 스왑 프로세스(50)를 위한 섹터에서 트리거될 때마다 서브-섹터(32)의 섹터내 스왑을 내장할 수 있다. 도 4는 이러한 섹터내 스왑 프로세스(70)를 예시한 흐름도이다.
도 2에서처럼, 시스템(10)은 섹터들(30) 중 임의의 것이 높은 마모 레벨을 갖는지를 검출할 수 있다(결정 블록 52). 뿐만 아니라, 섹터 마모 레벨은 섹터(30) 내에서의 서브-섹터(32)의 최고 사이클 카운트, 주어진 섹터(30) 내에서 모든 서브-섹터들(32)에 대한 서브-섹터(32) 사이클 카운트들의 합, 주어진 섹터(30) 내에서 모든 서브-섹터들(32)에 대한 서브-섹터(32) 사이클 카운트들의 평균 등과 같은, 섹터(30) 내에서 서브-섹터들(32) 중 하나 이상에 대한 정보에 기초할 수 있다. 상기 언급된 바와 같이, 높은 마모 레벨은 미리 결정된 임계 사이클 카운트가 위반될 때(예로서, 사이클 카운트가 100,000 사이클들을 초과할 때) 발견될 수 있다.
어떤 섹터들(30)도 높은 마모 레벨을 갖는 것으로 발견되지 않는다면, 시스템(10)은 높은 마모 레벨을 가진 섹터들(30)에 대해 계속해서 모니터링한다. 일단 섹터(30)가 높은 마모 레벨을 갖는 것으로 발견된다면, 스왑은 타겟 섹터(62)에서 최소 섹터(64)로 트리거될 수 있다. 일단 스왑이 트리거되면, 최소 섹터(64)가 결정된다(블록 54). 상기 언급된 바와 같이, 최소 섹터(64)는 서브-섹터 사이클 카운트들에 기초하여 최저 마모 레벨을 가진 섹터를 정확히 찾아냄으로써 결정될 수 있다.
일단 타겟 섹터(62) 및 최소 섹터(64)가 결정되면, 내장된 서브-섹터 스왑 프로세스(72)와의 스왑이 발생한다(블록 74). 내장된 서브-섹터 스왑 프로세스(72)는 최소 섹터(64)의 최소 서브-섹터(최저 마모 레벨을 가진 서브-섹터)를 결정하는 것을 포함한다(블록 76). 타겟 서브-섹터(예로서, 타겟 섹터(62)에서 높은 마모를 가진 서브-섹터)는 그 후 최소 서브-섹터와 스와핑된다(블록 78).
프로세스(70)의 끝에서, 서브-섹터 스왑을 위한 섹터와 유사하게, 최소 섹터(64)는 타겟 섹터(62)의 모든 데이터를 포함한다. 그러나, 타겟 서브-섹터 및 최소 서브-섹터는 스와핑된 위치들을 갖는다. 도 5는 도 4의 프로세스(70)에 따른, 섹터내 스왑(90)을 예시한 개략도이다.
도 5에 예시된 바와 같이, 서브-섹터(SS4)는 타겟 섹터(62)의 최대 서브-섹터(92)이다. 다시 말해서, SS4는 소거될 서브-섹터이다. 타겟 섹터(62) 대 최소 섹터(64) 스왑에 내정된 서브-섹터 스왑을 사용하여, 최대 서브-섹터(92)는 최소 서브-섹터(94)와 스와핑된다. 따라서, 오버-사이클은, 최대 서브-섹터(92)가 최소 섹터(64)에서 비교적 가장 높은 마모를 가진 서브-섹터(96)에 위치되지 않음을 보장함으로써, 감소될 수 있다.
이해될 수 있는 바와 같이, 최대 서브-섹터(92) 및 최소 서브-섹터(94)의 섹터내 스왑은 사이클 축적의 감소를 야기할 수 있다. 예를 들면, 도 5에서 묘사된 시나리오에서, 각각의 섹터(30)는 16개 서브-섹터들(32)을 포함한다. 따라서, 최대 서브-섹터(92) 및 최소 서브-섹터(94) 스왑을 구현함으로써, 사이클 수는 이러한 스왑을 이용하지 않는 프로세스보다 16배 더 적을 수 있다. 뿐만 아니라, 스왑이 섹터내 스왑이기 때문에, 임의의 프로세싱 시간 증가는 무시해도 될 정도일 수 있다.
사이클 카운트들 및 최소 타이밍 비용들에서의 광대한 개선에도 불구하고, 프로세스(70)는 증가된 실리콘 영역을 이용할 수 있다. 예를 들면, 서브-섹터들을 스와핑하기 위해, 블록 매핑 유닛(BMU)은 단지 섹터 어드레스들만을 추적하는 대신에 각각의 서브-섹터의 어드레스를 추적하도록 요구할 수 있다.
따라서, 중간 섹터내 스와핑 솔루션은 증가된 실리콘 영역 사용을 감소시키기 위해 구현될 수 있다. 도 6은 실시예에 따른, 중간 섹터내 번들 스왑 프로세스(110)를 예시한 흐름도이다.
섹터내 스왑 프로세스(70)에서 서브-섹터들의 각각의 메모리 어드레스들을 추적하기 위해 요구된 증가된 실리콘 영역 사용 중 일부를 완화시키기 위해, 서브-섹터들이 번들링될 수 있으며(블록 112), 따라서 복수의 서브-섹터들을 위한 덜 세분화된 어드레스가 대안적으로 사용될 수 있다. 도 7의 논의에 관하여 보다 상세히 설명될 바와 같이, 어드레스들이 덜 세분화될 수 있기 때문에, 보다 작은 비트들의 데이터가 번들링된 서브-섹터들의 어드레스를 정의하기 위해 사용될 수 있다. 따라서, 보다 적은 실리콘 영역이 이용될 수 있다.
시스템(10)은 섹터들(30) 중 임의의 것이 높은 마모 레벨을 갖는지를 검출할 수 있다(결정 블록 52). 상기 언급된 바와 같이, 섹터 마모 레벨은 섹터(30) 내에서의 서브-섹터(32)의 최고 사이클 카운트, 주어진 섹터(30) 내에서의 모든 서브-섹터들(32)에 대한 서브-섹터(32) 사이클 카운트들의 합, 주어진 섹터(30) 내에서 모든 서브-섹터들(32)에 대한 서브-섹터(32) 사이클 카운트들의 평균 등과 같은, 섹터(30) 내에서의 서브-섹터들(32) 중 하나 이상에 대한 정보에 기초할 수 있다. 뿐만 아니라, 높은 마모 레벨은 미리 결정된 임계 사이클 카운트가 위반될 때(예로서, 사이클 카운트가 100,000 사이클들을 초과할 때) 발견될 수 있다.
어떤 섹터들(30)도 높은 마모 레벨을 갖는 것으로 발견되지 않는다면, 시스템(10)은 높은 마모 레벨을 가진 섹터들(30)에 대해 계속해서 모니터링한다. 일단 섹터(30)가 높은 마모 레벨을 갖는 것으로 발견된다면, 스왑은 타겟 섹터(62)에서 최소 섹터(64)로 트리거될 수 있다. 일단 스왑이 트리거되면, 최소 섹터가 결정된다(블록 54). 상기 언급된 바와 같이, 최소 섹터(64)는 서브-섹터 사이클 카운트들에 기초하여 최저 마모 레벨을 가진 섹터를 정확히 찾아냄으로써 결정될 수 있다.
일단 타겟 섹터(62) 및 최소 섹터(64)가 결정된다면, 내장된 번들링된 서브-섹터 스왑 프로세스(114)와의 스왑이 발생한다(블록 116). 내장된 번들링된 서브-섹터 스왑 프로세스(114)는 최소 섹터(64)의 최소 번들(최저 마모 레벨을 가진 서브-섹터를 포함한 번들 및/또는 최저 마모 레벨을 가진 번들)을 결정하는 것을 포함한다(블록 118). 타겟 번들(예로서, 타겟 섹터(62)에서 높은 마모를 가진 서브-섹터를 포함한 번들)은 그 후 최소 번들과 스와핑된다(블록 120).
프로세스(110)는 프로세스(70)보다 적은 사이클 카운트들의 완화를 제공할 수 있지만, 그것은 서브-섹터 스왑 접근법을 위한 표준 섹터에 비해 사이클들의 수를 감소시킨다. 뿐만 아니라, 스왑들은 개개의 서브-섹터들보다 서브-섹터들의 번들들을 수반하기 때문에, 관리 복잡도 및 실리콘 영역 사용이 감소될 수 있다. 예를 들면, 블록 매핑 유닛들은 프로세스(70)보다 덜 세분화된 레벨 상에서의 스왑들을 유지하며 관리할 수 있다. 따라서, 섹터내 스왑을 포함하지 않는 섹터 대 서브-섹터 스왑 접근법에서 발생하는 불필요한 사이클링 중 일부를 여전히 완화시키면서, 프로세싱 복잡도 및 실리콘 영역은 감소될 수 있다.
도 7은 도 6의 프로세스(110)에 따른, 섹터내 스왑(140)을 예시한 개략도이다. 도 7에 예시된 바와 같이, 서브-섹터들(32)은 어드레싱 가능한 번들들(142)로 번들링된다. 예를 들면, 섹터들(30)이 16개의 서브-섹터들(32)을 포함하는 예시된 실시예에서, 서브-섹터들은 4개의 서브섹터들(32)의 쿼텟(quartet)들로 번들링된다. 뿐만 아니라, 예시된 바와 같이, 번들들의 각각은 각각의 서브-섹터(32)를 개별적으로 어드레싱할 때 가능할 것보다 덜 세분화된 방식으로 어드레싱 가능하다. 예를 들면, 예시된 실시예에서 각각의 섹터(30)는 4개의 번들링된 서브-섹터들(32)의 쿼텟들로 분할되기 때문에, 번들들은 2-비트들(144)을 사용하여 어드레싱될 수 있다. 반대로, 개별적으로 어드레싱한 각각의 서브-섹터(32)는 증가된 실리콘 영역을 이용한다. 예를 들면, 16개의 서브-섹터들(32)의 예시된 실시예에서, 적어도 4비트들의 데이터가 서브-섹터(32) 어드레스를 고유하게 식별하기 위해 사용될 것이다.
표시된 대로, 서브-섹터(SS4)는 타겟 섹터(62)의 최대 서브-섹터(92)이다. 다시 말해서, SS4는 소거될 서브-섹터이다. 뿐만 아니라, 어드레스("10")를 가진 번들(146)은, 그것이 최대 서브-섹터(92)를 포함하기 때문에, 최대 번들(146)이다. 타겟 섹터(62) 대 최소 섹터(64) 스왑에서 내장된 번들링된 서브-섹터 스왑을 사용하여, 최대 번들(146)은 최소 번들(148)(최소 서브-섹터(94)를 포함하는 번들(142))과 스와핑된다.
따라서, 오버-사이클링은, 최대 번들(146)이 최소 섹터(64)에서의 비교적 가장 높은 마모를 가진 서브-섹터(96)를 포함한 번들에 위치되지 않음을 보장함으로써, 감소될 수 있다.
이해될 수 있는 바와 같이, 최대 번들(146) 및 최소 번들(148)의 섹터내 번들링된 서브-섹터 스왑은 사이클 축적의 감소를 야기할 수 있다. 도 7에 묘사된 시나리오에서, 예를 들면, 각각의 섹터(30)는 4 번들들(142)을 포함한다. 따라서, 최대 번들(146) 및 최소 번들(148) 스왑을 구현함으로써, 사이클 수는 이러한 스왑을 이용하지 않는 프로세스보다 4배 더 적을 수 있다. 부가적으로, 프로세싱 및 실리콘 영역 이용은 프로세스(70)보다 적을 수 있다. 뿐만 아니라, 상기처럼, 스왑은 섹터내 스왑이기 때문에, 프로세싱 시간 증가는 무시해도 될 정도일 수 있다.
몇몇 실시예들에서, 섹터내 번들 스왑 프로세스(110)에서 사용된 영역보다 훨씬 더 많은 실리콘 영역 사용을 감소시키는 것이 바람직할 수 있다. 이것이 달성될 수 있는 하나의 방식은 각각, 도 4 및 도 6의 섹터내 스왑들(72 및/또는 114)에 대한 대체로서 서브-섹터들(32)의 전역적 어드레스 재-매핑(즉, 재-순서화)을 구현하는 것에 의한다. 이것은 서브-섹터 스왑을 위한 섹터 동안 섹터내 어드레스들을 수정하는 재스크램블링 회로를 통해 행해질 수 있다. 도 8은 최대 서브-섹터(92) 및/또는 최대 번들(146)이 최소 섹터(64)의 최고 마모를 가진 최소 섹터(64)에서의 서브-섹터(32) 위치에 위치되는 것을 약화시키기 위해, 서브-섹터들, 서브-섹터들의 번들들 등의 어드레스들을 전역적으로 재-매핑할 수 있는 재스크램블링 회로(162)를 가진 시스템(160)을 예시한 개략도이다.
예시된 바와 같이, 블록 매핑 유닛(BMU)(164)은 재스크램블링이 발생할 섹터(30)의 로직 섹터 어드레스(166)를 수신한다. BMU(164)는 그 후 로직 섹터내 어드레스(172)의 특정한 재매핑이 발생하게 하는 하나 이상의 구성 비트들(170) 및 섹터(30)의 물리 섹터 어드레스(168)를 출력시킴으로써 전역적 어드레스 재-매핑을 야기할 수 있다. 구성 비트들은 재스크램블링 회로(162)에서 수신되며, 여기에서 재매핑된 물리 섹터내 어드레스(174)는 구성 비트들(170) 및 로직 섹터내 어드레스(172)에 기초하여 출력된다.
일 실시예에서, 재스크램블링 회로(162)는 도 9에 예시된 바와 같이, 다중화기(MUX) 솔루션을 포함할 수 있다. 이러한 실시예에서, 구성 비트들(170)은 비트들의 다수의 세트들(190)을 포함할 수 있으며, 상기 비트들의 세트들(190)은 스와핑할 어드레스들을 나타낸다. 예를 들면, 도 7의 실시예에서, 비트들의 세트들(190) 각각은 4개의 쿼텟 번들들 중 하나를 나타낸다. 따라서, 4(스와핑될 수 있는 아이템들의 수)×2(스와핑된 아이템들의 어드레스를 나타내기 위해 요구된 비트들의 수)는 재스크램블링 회로(162)로 전달된다. 거기서부터, 다중화기(예로서, 재스크램블링 회로(162))는 파선들(192)에 의해 표시된 바와 같이, 재매핑을 위해 비트들의 세트(190) 중 하나를 선택한다. 다중화기 솔루션은 재스크램블링 회로(162)로의 입력으로서 수신된 로직 섹터내 어드레스(172)에 의해 제어된다. 비트들의 선택된 세트(190)(예로서, 비트들의 세트(194))에 기초하여, 재매핑된 물리 섹터내 어드레스(174)가 출력된다.
이해될 수 있는 바와 같이, 이러한 재스크램블링 솔루션은 섹터내 스왑(예로서, 프로세스(70 및/또는 110)에 따른)을 수행하는 회로보다 적은 실리콘 영역을 요구할 수 있다. 그러나, 이 프로세스는 비트들의 세트(190)의 수가 다수일 수 있기 때문에, 몇몇 부가적인 오버헤드를 포함할 수 있다. 따라서, 몇몇 실시예들에서, 보다 적은 구성 비트들(170)을 사용하는 대안적인 솔루션을 사용하는 것이 유리할 수 있다. 도 10은 조합형 로직(200)(예로서, 합산 로직(202) 및/또는 배타적 Or(XOR) 로직(204))이 재매핑된 물리 섹터내 어드레스(174)를 출력하기 위해 구성 비트들(170) 및 로직 섹터내 어드레스(172)의 단일 세트(210)와 함께 사용되는 시스템(160)의 일 실시예를 예시한다.
이전에 논의된 바와 같이, 블록 매핑 유닛(BMU)(164)은 입력으로서 로직 섹터 어드레스(166)를 수신한다. BMU(164)는 출력으로서, 로직 섹터내 어드레스(172)를 재매핑하기 위해 조합형 로직(200)과 함께 사용될 수 있는 물리 섹터 어드레스(168) 및 구성 비트들(170)의 세트(210)를 제공한다. 이 실시예에서, 재스크램블링 로직에 의해 제공된 재매핑은 서브-섹터들의 고-마모 대 고-마모 배치를 회피함으로써 섹터내 사이클링을 약화시킬 수 있다. 그러나, 여기에서 논의된 다른 솔루션들과 달리, 이러한 솔루션이 반드시 최고-마모 대 최저-마모 솔루션을 제공하는 것은 아니다.
재매핑하기 위해, 재스크램블링 회로는 재매핑된 물리 섹터내 어드레스를 출력하기 위해 로직 섹터내 어드레스(172) 및 세트(210) 사이에서의 조합형 로직(200)을 사용한다. 예를 들면, 합산 로직(202)을 사용하여 어드레스("01")을 가진 번들 쿼텟을 어드레스("10")를 가진 번들 쿼텟에 재매핑하기 위해, BMU(164)로부터 제공된 구성 비트들(170)의 세트(210)는 "01"이다. 대안적으로, XOR 로직(204)을 사용하여 동일한 재매핑을 달성하기 위해, 구성 비트들(170)의 세트(210)는 "11"이다.
여기에서 설명된 섹터내 스왑 시스템들 및 기술들을 사용하여, 서브-섹터 마모 레벨링의 시간 성능이 대단히 개선될 수 있다. 뿐만 아니라, 하드웨어 및 소프트웨어 로직 오버헤드는 섹터내 스왑을 재-스크램블링 로직으로 대체함으로써 감소될 수 있다.
유형의, 비-일시적, 기계-판독 가능한 매체가 여기에서 설명된 프로세스 또는 방법을 수행하기 위해 (컴퓨터 프로그램과 같은) 지시들을 저장할 수 있다. 본 발명은 다양한 수정들 및 대안적인 형태들에 영향을 받기 쉽지만, 특정 실시예들은 도면들에서 예로서 도시되며 여기에서 상세히 설명되었다. 그러나, 본 발명은 개시된 특정한 형태들에 제한되도록 의도되지 않는다는 것이 이해되어야 한다. 오히려, 본 발명은 다음의 첨부된 청구항들에 의해 정의된 바와 같이 본 발명의 사상 및 범위 내에 있는 모든 수정들, 등가물들, 및 대안들을 커버하는 것이다.

Claims (30)

  1. 메모리 디바이스에 있어서,
    하나 이상의 서브-섹터들을 가진 섹터들의 메모리 어레이;
    주변 인터페이스 버스를 통해 데이터를 수신하거나, 송신하거나, 또는 수신 및 송신하도록 구성된 제어기로서, 상기 제어기는 마모-레벨링 로직(wear-leveling logic)을 포함하며, 상기 마모-레벨링 로직은:
    높은 마모 레벨을 가진 상기 메모리 디바이스의 고 마모 서브-섹터를 검출하고, 상기 서브-섹터는 제 1 섹터에 있고;
    낮은 마모 레벨을 가진 상기 메모리 디바이스의 제 2 섹터를 결정하고;
    상기 제 2 섹터와 상기 제 1 섹터를 스와핑(swap)하고; 및
    상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화(re-order)하도록 구성된, 상기 제어기를 포함하는, 메모리 디바이스.
  2. 청구항 1에 있어서,
    상기 마모-레벨링 로직은 상기 제 2 섹터와 상기 제 1 섹터를 스와핑하는 동안 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 구성되는, 메모리 디바이스.
  3. 청구항 1에 있어서,
    상기 마모-레벨링 로직은:
    최소 마모 레벨을 가진 상기 제 2 섹터의 최소 서브-섹터를 결정하고;
    상기 최소 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑함으로써 상기 고 마모 서브-섹터의 위치를 재-순서화하도록 구성되는, 메모리 디바이스.
  4. 청구항 1에 있어서,
    상기 마모-레벨링 로직은:
    상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트(set)의 서브-섹터 번들들로 번들링(bundle)하고;
    상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하고; 및
    최소 마모 레벨을 가진 최소 서브-섹터를 포함하는 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하도록 구성되는, 메모리 디바이스.
  5. 청구항 1에 있어서,
    상기 메모리는 NAND 형 플래시 메모리 디바이스를 포함하는, 메모리 디바이스.
  6. 청구항 1에 있어서,
    상기 메모리 디바이스는 NOR 형 플래시 메모리 디바이스를 포함하는, 메모리 디바이스.
  7. 청구항 1에 있어서,
    상기 메모리 어레이의 하나 이상의 섹터내 어드레스들을 수정하도록 구성된 재스크램블링 로직(rescrambling logic); 및
    상기 메모리 어레이의 하나 이상의 섹터들, 하나 이상의 서브-섹터들, 또는 양쪽 모두를 재-매핑하도록 구성된 블록 매핑 유닛으로서, 상기 블록 매핑 유닛은 상기 하나 이상의 섹터내 어드레스들의 수정을 가능하게 하기 위해 상기 재스크램블링 로직으로 구성 비트들을 제공하도록 구성되는, 상기 블록 매핑 유닛을 포함하며,
    상기 재스크램블링 로직은 상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하기 위해 사용되는, 메모리 디바이스.
  8. 청구항 7에 있어서,
    상기 재스크램블링 로직은 다중화기(MUX)를 포함하며;
    상기 구성 비트들은, 각각의 세트의 비트들이 어드레스 수정을 나타내는, 복수의 세트들의 비트들을 포함하며;
    상기 MUX는 상기 복수의 세트들의 비트들 중 하나를 선택하도록 구성되고, 상기 선택은 상기 복수의 세트들의 비트들 중 상기 선택된 것에 의해 표현된 어드레스 수정으로 귀결되는, 메모리 디바이스.
  9. 청구항 7에 있어서,
    상기 재스크램블링 로직은 조합형 로직(combination logic)을 포함하며;
    상기 구성 비트들은 단일 세트의 구성 비트들을 포함하며;
    상기 조합형 로직은 상기 단일 세트의 구성 비트들을 사용하여 섹터내 어드레스에 대한 수정에 영향을 주는, 메모리 디바이스.
  10. 청구항 9에 있어서,
    상기 조합형 로직은 합산 조합형 로직(summation combination logic)을 포함하는, 메모리 디바이스.
  11. 청구항 9에 있어서,
    상기 조합형 로직은 배타적 or(XOR) 조합형 로직을 포함하는, 메모리 디바이스.
  12. 방법에 있어서,
    메모리 디바이스에서, 높은 마모 레벨을 가진 고 마모 서브-섹터를 검출하는 단계로서, 상기 서브-섹터는 제 1 섹터에 있는, 상기 고 마모 서브-섹터 검출 단계;
    낮은 마모 레벨을 가진 상기 메모리 디바이스의 제 2 섹터를 결정하는 단계;
    상기 제 2 섹터와 상기 제 1 섹터를 스와핑하는 단계; 및
    상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하는 단계를 포함하는, 방법.
  13. 청구항 12에 있어서,
    최소 마모 레벨을 가진 상기 제 2 섹터의 최소 서브-섹터를 결정하는 단계; 및
    상기 최소 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑함으로써 상기 고 마모 서브-섹터의 위치를 재-순서화하는 단계를 포함하는, 방법.
  14. 청구항 12에 있어서,
    상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트의 서브-섹터 번들들로 번들링하는 단계;
    상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하는 단계; 및
    최소 마모 레벨을 가진 최소 서브-섹터를 포함하는 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하는 단계를 포함하는, 방법.
  15. 청구항 12에 있어서,
    상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하기 위해 상기 메모리 디바이스의 하나 이상의 섹터내 어드레스들을 수정하는 단계를 포함하는, 방법.
  16. 청구항 15에 있어서,
    다중화기를 사용하여 상기 메모리 디바이스의 상기 하나 이상의 섹터내 어드레스들을 수정하는 단계를 포함하는, 방법.
  17. 청구항 15에 있어서,
    합산 로직, 배타적 or(XOR) 로직, 또는 양쪽 모두를 포함하는 조합형 로직을 사용하여 상기 메모리 디바이스의 하나 이상의 섹터내 어드레스들을 수정하는 단계를 포함하는, 방법.
  18. 유형의, 비-일시적, 기계-판독 가능한 기록 매체에 있어서,
    지시들을 기록하며, 상기 지시들은 컴퓨터에 의해 실행될 때 상기 컴퓨터가:
    메모리 디바이스에서, 높은 마모 레벨을 가진 고 마모 서브-섹터를 검출하고 - 상기 서브-섹터는 제 1 섹터에 있음 -;
    낮은 마모 레벨을 가진 상기 메모리 디바이스의 제 2 섹터를 결정하고;
    상기 제 2 섹터와 상기 제 1 섹터를 스와핑하고;
    상기 제 2 섹터내 저 마모 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑하거나;
    상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 하나 이상의 섹터내 어드레스들을 수정하거나;
    양쪽 모두에 의하여, 상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하게 하는, 유형의, 비-일시적, 기계-판독 가능한 기록 매체.
  19. 청구항 18에 있어서,
    상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트의 서브-섹터 번들들로 번들링하는 것;
    상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하는 것; 및
    상기 저 마모 서브-섹터를 포함하는 상기 제 2 섹터내 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하는 것에 의해, 상기 저 마모 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑하게 하는 지시들을 더 기록한, 유형의, 비-일시적, 기계-판독 가능한 기록 매체.
  20. 청구항 18에 있어서,
    상기 하나 이상의 섹터내 어드레스들에 대한 하나 이상의 수정들을 선택하기 위해 다중화기를 사용하는 것;
    상기 하나 이상의 섹터내 어드레스들에 하나 이상의 수정들을 수행하기 위해 조합형 로직을 사용하는 것; 또는
    양쪽 모두에 의해, 상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 하나 이상의 섹터내 어드레스들을 수정하게 하는 지시들을 더 기록한, 유형의, 비-일시적, 기계-판독 가능한 기록 매체.
  21. 메모리 제어기에 있어서,
    회로로서:
    높은 마모 레벨을 가진 메모리 디바이스의 고 마모 서브-섹터를 검출하고, 상기 서브-섹터는 제 1 섹터에 있고;
    낮은 마모 레벨을 가진 상기 메모리 디바이스의 제 2 섹터를 결정하고;
    상기 제 2 섹터와 상기 제 1 섹터를 스와핑하며;및
    상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 구성된, 상기 회로를 포함하는, 메모리 제어기.
  22. 청구항 21에 있어서,
    상기 회로는 상기 제 2 섹터와 상기 제 1 섹터를 스와핑하는 동안 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 구성되는, 메모리 제어기.
  23. 청구항 21에 있어서,
    상기 회로는:
    최소 마모 레벨을 가진 상기 제 2 섹터의 최소 서브-섹터를 결정하고;
    상기 최소 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑함으로써 상기 고 마모 서브-섹터의 위치를 재-순서화하도록 구성되는, 메모리 제어기.
  24. 청구항 21에 있어서,
    상기 회로는:
    상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트의 서브-섹터 번들들로 번들링하고;
    상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하며; 및
    최소 마모 레벨을 가진 최소 서브-섹터를 포함하는 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하도록 구성되는, 메모리 제어기.
  25. 청구항 21에 있어서,
    상기 회로는:
    상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하기 위해 메모리 디바이스의 하나 이상의 섹터내 어드레스들을 수정하도록 구성되는, 메모리 제어기.
  26. 메모리 시스템에 있어서,
    데이터를 관리하거나, 저장하거나, 또는 관리 및 저장하도록 구성된 슬레이브 디바이스;
    상기 데이터의 상기 관리, 저장, 또는, 상기 관리 및 저장을 가능하게 하기 위해 상기 슬레이브 디바이스로 데이터 프레임들을 제공하도록 구성된 마스터 디바이스;
    상기 슬레이브 디바이스와 상기 마스터 디바이스를 통신가능하게 결합하도록 구성된 주변 인터페이스로서, 상기 데이터 프레임들은 상기 주변 인터페이스를 통해 상기 마스터 디바이스로부터 상기 슬레이브 디바이스로 제공되는, 상기 주변 인터페이스;
    상기 슬레이브 디바이스 및 상기 마스터 디바이스 중 적어도 하나에 결합된 마모 로직(wear logic)으로서:
    상기 슬레이브 디바이스에서, 높은 마모 레벨을 가진 고 마모 서브-섹터를 검출하고, 상기 서브-섹터는 제 1 섹터에 있고;
    상기 슬레이브 디바이스에서, 낮은 마모 레벨을 가진 제 2 섹터를 결정하고;
    상기 제 2 섹터와 상기 제 1 섹터를 스와핑하며; 및
    상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 구성된, 상기 마모 로직을 포함하는, 메모리 시스템.
  27. 청구항 26에 있어서,
    상기 마모 로직은 상기 슬레이브 디바이스의 제어기 내에 포함되는, 메모리 시스템.
  28. 청구항 26에 있어서,
    상기 마모 로직은 상기 마스터 디바이스에 적어도 부분적으로 포함되는, 메모리 시스템.
  29. 청구항 26에 있어서,
    상기 마모 로직은:
    상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트의 서브-섹터 번들들로 번들링하고;
    상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하며; 및
    최소 마모 레벨을 가진 최소 서브-섹터를 포함하는 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하도록 구성되는, 메모리 시스템.
  30. 청구항 26에 있어서,
    상기 마모 로직은:
    상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 메모리 어레이의 하나 이상의 섹터내 어드레스들을 수정하도록 구성되는, 메모리 시스템.
KR1020177015711A 2014-11-13 2015-11-02 메모리 마모 레벨링 KR102245652B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/540,968 US9830087B2 (en) 2014-11-13 2014-11-13 Memory wear leveling
US14/540,968 2014-11-13
PCT/US2015/058634 WO2016077091A1 (en) 2014-11-13 2015-11-02 Memory wear leveling

Publications (2)

Publication Number Publication Date
KR20170084194A KR20170084194A (ko) 2017-07-19
KR102245652B1 true KR102245652B1 (ko) 2021-04-29

Family

ID=55954861

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177015711A KR102245652B1 (ko) 2014-11-13 2015-11-02 메모리 마모 레벨링

Country Status (6)

Country Link
US (2) US9830087B2 (ko)
JP (1) JP6317039B2 (ko)
KR (1) KR102245652B1 (ko)
CN (1) CN107003810B (ko)
TW (1) TWI576758B (ko)
WO (1) WO2016077091A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
WO2019017017A1 (ja) * 2017-07-18 2019-01-24 ソニーセミコンダクタソリューションズ株式会社 ウェアレベリング処理を行うメモリコントローラ
US20190129627A1 (en) * 2017-10-31 2019-05-02 EMC IP Holding Company LLC Method and system for wear-leveling using a multi-gap progress field
US10606743B2 (en) 2017-12-05 2020-03-31 Micron Technology, Inc. Data movement operations in non-volatile memory
CN108920386B (zh) * 2018-07-20 2020-06-26 中兴通讯股份有限公司 面向非易失性内存的磨损均衡及访问方法、设备和存储介质
US10817430B2 (en) 2018-10-02 2020-10-27 Micron Technology, Inc. Access unit and management segment memory operations
WO2021069943A1 (en) * 2019-10-09 2021-04-15 Micron Technology, Inc. Self-adaptive wear leveling method and algorithm

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040177212A1 (en) 2002-10-28 2004-09-09 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
JP2013137861A (ja) * 2008-10-01 2013-07-11 Hitachi Ltd 半導体装置
US20140310569A1 (en) 2013-04-11 2014-10-16 Spansion Llc Restoring ECC syndrome in non-volatile memory devices

Family Cites Families (62)

* 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
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5956743A (en) * 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US7610438B2 (en) * 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
EP1265252A1 (en) * 2001-06-05 2002-12-11 STMicroelectronics S.r.l. A method for sector erasure and sector erase verification in a non-voltaile FLASH EEPROM
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7103732B1 (en) * 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
EP1556868B1 (en) * 2002-10-28 2007-09-05 SanDisk Corporation Automated wear leveling in non-volatile storage systems
US7096313B1 (en) * 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US8706990B2 (en) * 2003-10-28 2014-04-22 Sandisk Technologies Inc. Adaptive internal table backup for non-volatile memory system
US7089349B2 (en) * 2003-10-28 2006-08-08 Sandisk Corporation Internal maintenance schedule request for non-volatile memory system
US7415646B1 (en) * 2004-09-22 2008-08-19 Spansion Llc Page—EXE erase algorithm for flash memory
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US9171585B2 (en) * 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
WO2007039859A2 (en) * 2005-10-05 2007-04-12 Nxp B.V. Teletext processing circuit
US7778088B2 (en) * 2006-12-19 2010-08-17 Spansion Llc Erasing flash memory using adaptive drain and/or gate bias
US8321597B2 (en) * 2007-02-22 2012-11-27 Super Talent Electronics, Inc. Flash-memory device with RAID-type controller
US8543742B2 (en) * 2007-02-22 2013-09-24 Super Talent Electronics, Inc. Flash-memory device with RAID-type controller
EP1988548B1 (fr) * 2007-05-02 2010-08-25 Stmicroelectronics Sa Mémoire non volatile à écriture rapide
KR100857761B1 (ko) 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US8429329B2 (en) 2007-10-17 2013-04-23 Micron Technology, Inc. Serial interface NAND
US8694715B2 (en) * 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US8335977B2 (en) * 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
KR101454817B1 (ko) * 2008-01-11 2014-10-30 삼성전자주식회사 반도체 메모리 장치 및 그것의 마모도 관리 방법
US8352671B2 (en) * 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
WO2009102821A2 (en) * 2008-02-12 2009-08-20 Virident Systems, Inc. Methods and apparatus for two-dimensional main memory
EP2592553B1 (en) * 2008-03-11 2015-11-18 Agere Systems, Inc. Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
US8738840B2 (en) * 2008-03-31 2014-05-27 Spansion Llc Operating system based DRAM/FLASH management scheme
KR101437123B1 (ko) * 2008-04-01 2014-09-02 삼성전자 주식회사 메모리 시스템 및 그것의 마모도 관리 방법
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US9547589B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US8566510B2 (en) * 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US20110002169A1 (en) * 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
EP2302638B1 (fr) * 2009-09-21 2013-04-17 STMicroelectronics (Rousset) SAS Procédé d'écriture et de lecture de données dans une mémoire non volatile, au moyen de métadonnées
WO2011159805A2 (en) * 2010-06-15 2011-12-22 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
US9170933B2 (en) * 2010-06-28 2015-10-27 International Business Machines Corporation Wear-level of cells/pages/sub-pages/blocks of a memory
US20110320910A1 (en) * 2010-06-29 2011-12-29 Yi-Chun Liu Storage management method and storage system
US9263102B2 (en) * 2010-09-28 2016-02-16 SanDisk Technologies, Inc. Apparatus, system, and method for data transformations within a data storage device
US8273610B2 (en) * 2010-11-18 2012-09-25 Monolithic 3D Inc. Method of constructing a semiconductor device and structure
US8583987B2 (en) * 2010-11-16 2013-11-12 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations
WO2012100087A2 (en) * 2011-01-19 2012-07-26 Fusion-Io, Inc. Apparatus, system, and method for managing out-of-service conditions
KR20120132820A (ko) * 2011-05-30 2012-12-10 삼성전자주식회사 스토리지 디바이스, 스토리지 시스템 및 스토리지 디바이스의 가상화 방법
WO2013095641A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Sub-block based wear leveling
US8842473B2 (en) * 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US9430322B2 (en) 2012-08-02 2016-08-30 Sandisk Technologies Llc Device based wear leveling using intrinsic endurance
US20140129758A1 (en) * 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
US9405621B2 (en) * 2012-12-28 2016-08-02 Super Talent Technology, Corp. Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance
US9547586B2 (en) * 2013-01-03 2017-01-17 Macronix International Co., Ltd. Metadata containers with indirect pointers
JP5931816B2 (ja) * 2013-08-22 2016-06-08 株式会社東芝 ストレージ装置
US9195590B2 (en) * 2013-08-29 2015-11-24 Micron Technology, Inc. Sub-sector wear leveling in memories
KR102136396B1 (ko) * 2013-08-30 2020-07-22 삼성전자주식회사 디램의 배드 페이지 관리 기능을 갖는 디램 콘트롤러 및 그에 따른 배드 페이지 관리방법
US9336129B2 (en) * 2013-10-02 2016-05-10 Sandisk Technologies Inc. System and method for bank logical data remapping
EP3080815B1 (fr) * 2013-12-12 2023-11-22 Commissariat à l'Energie Atomique et aux Energies Alternatives Système et procédé de gestion de l'usure d'une mémoire électronique
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040177212A1 (en) 2002-10-28 2004-09-09 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
JP2013137861A (ja) * 2008-10-01 2013-07-11 Hitachi Ltd 半導体装置
US20140310569A1 (en) 2013-04-11 2014-10-16 Spansion Llc Restoring ECC syndrome in non-volatile memory devices

Also Published As

Publication number Publication date
US20160139826A1 (en) 2016-05-19
JP2017538206A (ja) 2017-12-21
WO2016077091A1 (en) 2016-05-19
TW201633110A (zh) 2016-09-16
US20180067661A1 (en) 2018-03-08
KR20170084194A (ko) 2017-07-19
CN107003810A (zh) 2017-08-01
TWI576758B (zh) 2017-04-01
JP6317039B2 (ja) 2018-04-25
CN107003810B (zh) 2019-01-29
US9830087B2 (en) 2017-11-28

Similar Documents

Publication Publication Date Title
KR102245652B1 (ko) 메모리 마모 레벨링
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9448868B2 (en) Data storing method, memory control circuit unit and memory storage apparatus
JP5674999B2 (ja) Slc/mlc混成メモリのブロック管理構成
US8356152B2 (en) Initiative wear leveling for non-volatile memory
US9053808B2 (en) Flash memory with targeted read scrub algorithm
US9280460B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US8417879B2 (en) Method for suppressing errors, and associated memory device and controller thereof
US9639475B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US10437520B2 (en) Method for performing writing management in a memory device, and associated memory device and controller thereof
US10283196B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9582224B2 (en) Memory control circuit unit, memory storage apparatus and data accessing method
US20150363120A1 (en) On demand block management
US20180004413A1 (en) Mapping table updating method, memory control circuit unit and memory storage device
US20170242597A1 (en) Wear leveling method, memory control circuit unit and memory storage device
US20120042118A1 (en) Method for Flash Memory and Associated Controller
US10545700B2 (en) Memory management method, memory storage device and memory control circuit unit
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
CN115019863A (zh) 于记忆装置中进行刷新管理的方法、记忆装置和其控制器
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US11221946B2 (en) Data arrangement method, memory storage device and memory control circuit unit
US11010291B2 (en) Cold area determining method, memory controlling circuit unit and memory storage device

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