KR102245652B1 - 메모리 마모 레벨링 - Google Patents
메모리 마모 레벨링 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Abstract
섹터내 재-순서화된 마모 레벨링을 위한 시스템들 및 방법들은: 메모리 디바이스에서, 높은 마모 레벨을 가진 고 마모 서브-섹터를 검출하는 단계, 상기 서브-섹터는 제 1 섹터에 있고; 낮은 마모 레벨을 가진 메모리 디바이스의 제 2 섹터를 결정하는 단계; 제 2 섹터와 제 1 섹터를 스와핑하는 단계; 및 제 1 섹터, 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하는 단계를 포함한다.
Description
본 발명의 실시예는 전반적으로 메모리 디바이스들의 분야에 관한 것이며 보다 특히, 메모리 디바이스들에 대한 마모 레벨링의 시스템들 및 방법들에 관한 것이다.
컴퓨터 시스템들 및 다른 전기 시스템들은 일반적으로 하나 이상의 메모리 디바이스들을 포함한다. 예를 들면, 컴퓨터들은 종종 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은 실시예에 따른, 조합형 로직을 사용하는 재스크램블링 회로를 가진 시스템을 예시한 개략도이다.
도 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)
- 메모리 디바이스에 있어서,
하나 이상의 서브-섹터들을 가진 섹터들의 메모리 어레이;
주변 인터페이스 버스를 통해 데이터를 수신하거나, 송신하거나, 또는 수신 및 송신하도록 구성된 제어기로서, 상기 제어기는 마모-레벨링 로직(wear-leveling logic)을 포함하며, 상기 마모-레벨링 로직은:
높은 마모 레벨을 가진 상기 메모리 디바이스의 고 마모 서브-섹터를 검출하고, 상기 서브-섹터는 제 1 섹터에 있고;
낮은 마모 레벨을 가진 상기 메모리 디바이스의 제 2 섹터를 결정하고;
상기 제 2 섹터와 상기 제 1 섹터를 스와핑(swap)하고; 및
상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화(re-order)하도록 구성된, 상기 제어기를 포함하는, 메모리 디바이스. - 청구항 1에 있어서,
상기 마모-레벨링 로직은 상기 제 2 섹터와 상기 제 1 섹터를 스와핑하는 동안 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 구성되는, 메모리 디바이스. - 청구항 1에 있어서,
상기 마모-레벨링 로직은:
최소 마모 레벨을 가진 상기 제 2 섹터의 최소 서브-섹터를 결정하고;
상기 최소 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑함으로써 상기 고 마모 서브-섹터의 위치를 재-순서화하도록 구성되는, 메모리 디바이스. - 청구항 1에 있어서,
상기 마모-레벨링 로직은:
상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트(set)의 서브-섹터 번들들로 번들링(bundle)하고;
상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하고; 및
최소 마모 레벨을 가진 최소 서브-섹터를 포함하는 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하도록 구성되는, 메모리 디바이스. - 청구항 1에 있어서,
상기 메모리는 NAND 형 플래시 메모리 디바이스를 포함하는, 메모리 디바이스. - 청구항 1에 있어서,
상기 메모리 디바이스는 NOR 형 플래시 메모리 디바이스를 포함하는, 메모리 디바이스. - 청구항 1에 있어서,
상기 메모리 어레이의 하나 이상의 섹터내 어드레스들을 수정하도록 구성된 재스크램블링 로직(rescrambling logic); 및
상기 메모리 어레이의 하나 이상의 섹터들, 하나 이상의 서브-섹터들, 또는 양쪽 모두를 재-매핑하도록 구성된 블록 매핑 유닛으로서, 상기 블록 매핑 유닛은 상기 하나 이상의 섹터내 어드레스들의 수정을 가능하게 하기 위해 상기 재스크램블링 로직으로 구성 비트들을 제공하도록 구성되는, 상기 블록 매핑 유닛을 포함하며,
상기 재스크램블링 로직은 상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하기 위해 사용되는, 메모리 디바이스. - 청구항 7에 있어서,
상기 재스크램블링 로직은 다중화기(MUX)를 포함하며;
상기 구성 비트들은, 각각의 세트의 비트들이 어드레스 수정을 나타내는, 복수의 세트들의 비트들을 포함하며;
상기 MUX는 상기 복수의 세트들의 비트들 중 하나를 선택하도록 구성되고, 상기 선택은 상기 복수의 세트들의 비트들 중 상기 선택된 것에 의해 표현된 어드레스 수정으로 귀결되는, 메모리 디바이스. - 청구항 7에 있어서,
상기 재스크램블링 로직은 조합형 로직(combination logic)을 포함하며;
상기 구성 비트들은 단일 세트의 구성 비트들을 포함하며;
상기 조합형 로직은 상기 단일 세트의 구성 비트들을 사용하여 섹터내 어드레스에 대한 수정에 영향을 주는, 메모리 디바이스. - 청구항 9에 있어서,
상기 조합형 로직은 합산 조합형 로직(summation combination logic)을 포함하는, 메모리 디바이스. - 청구항 9에 있어서,
상기 조합형 로직은 배타적 or(XOR) 조합형 로직을 포함하는, 메모리 디바이스. - 방법에 있어서,
메모리 디바이스에서, 높은 마모 레벨을 가진 고 마모 서브-섹터를 검출하는 단계로서, 상기 서브-섹터는 제 1 섹터에 있는, 상기 고 마모 서브-섹터 검출 단계;
낮은 마모 레벨을 가진 상기 메모리 디바이스의 제 2 섹터를 결정하는 단계;
상기 제 2 섹터와 상기 제 1 섹터를 스와핑하는 단계; 및
상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하는 단계를 포함하는, 방법. - 청구항 12에 있어서,
최소 마모 레벨을 가진 상기 제 2 섹터의 최소 서브-섹터를 결정하는 단계; 및
상기 최소 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑함으로써 상기 고 마모 서브-섹터의 위치를 재-순서화하는 단계를 포함하는, 방법. - 청구항 12에 있어서,
상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트의 서브-섹터 번들들로 번들링하는 단계;
상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하는 단계; 및
최소 마모 레벨을 가진 최소 서브-섹터를 포함하는 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하는 단계를 포함하는, 방법. - 청구항 12에 있어서,
상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하기 위해 상기 메모리 디바이스의 하나 이상의 섹터내 어드레스들을 수정하는 단계를 포함하는, 방법. - 청구항 15에 있어서,
다중화기를 사용하여 상기 메모리 디바이스의 상기 하나 이상의 섹터내 어드레스들을 수정하는 단계를 포함하는, 방법. - 청구항 15에 있어서,
합산 로직, 배타적 or(XOR) 로직, 또는 양쪽 모두를 포함하는 조합형 로직을 사용하여 상기 메모리 디바이스의 하나 이상의 섹터내 어드레스들을 수정하는 단계를 포함하는, 방법. - 유형의, 비-일시적, 기계-판독 가능한 기록 매체에 있어서,
지시들을 기록하며, 상기 지시들은 컴퓨터에 의해 실행될 때 상기 컴퓨터가:
메모리 디바이스에서, 높은 마모 레벨을 가진 고 마모 서브-섹터를 검출하고 - 상기 서브-섹터는 제 1 섹터에 있음 -;
낮은 마모 레벨을 가진 상기 메모리 디바이스의 제 2 섹터를 결정하고;
상기 제 2 섹터와 상기 제 1 섹터를 스와핑하고;
상기 제 2 섹터내 저 마모 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑하거나;
상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 하나 이상의 섹터내 어드레스들을 수정하거나;
양쪽 모두에 의하여, 상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하게 하는, 유형의, 비-일시적, 기계-판독 가능한 기록 매체. - 청구항 18에 있어서,
상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트의 서브-섹터 번들들로 번들링하는 것;
상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하는 것; 및
상기 저 마모 서브-섹터를 포함하는 상기 제 2 섹터내 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하는 것에 의해, 상기 저 마모 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑하게 하는 지시들을 더 기록한, 유형의, 비-일시적, 기계-판독 가능한 기록 매체. - 청구항 18에 있어서,
상기 하나 이상의 섹터내 어드레스들에 대한 하나 이상의 수정들을 선택하기 위해 다중화기를 사용하는 것;
상기 하나 이상의 섹터내 어드레스들에 하나 이상의 수정들을 수행하기 위해 조합형 로직을 사용하는 것; 또는
양쪽 모두에 의해, 상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 하나 이상의 섹터내 어드레스들을 수정하게 하는 지시들을 더 기록한, 유형의, 비-일시적, 기계-판독 가능한 기록 매체. - 메모리 제어기에 있어서,
회로로서:
높은 마모 레벨을 가진 메모리 디바이스의 고 마모 서브-섹터를 검출하고, 상기 서브-섹터는 제 1 섹터에 있고;
낮은 마모 레벨을 가진 상기 메모리 디바이스의 제 2 섹터를 결정하고;
상기 제 2 섹터와 상기 제 1 섹터를 스와핑하며;및
상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 구성된, 상기 회로를 포함하는, 메모리 제어기. - 청구항 21에 있어서,
상기 회로는 상기 제 2 섹터와 상기 제 1 섹터를 스와핑하는 동안 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 구성되는, 메모리 제어기. - 청구항 21에 있어서,
상기 회로는:
최소 마모 레벨을 가진 상기 제 2 섹터의 최소 서브-섹터를 결정하고;
상기 최소 서브-섹터의 위치와 상기 고 마모 서브-섹터의 위치를 스와핑함으로써 상기 고 마모 서브-섹터의 위치를 재-순서화하도록 구성되는, 메모리 제어기. - 청구항 21에 있어서,
상기 회로는:
상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트의 서브-섹터 번들들로 번들링하고;
상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하며; 및
최소 마모 레벨을 가진 최소 서브-섹터를 포함하는 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하도록 구성되는, 메모리 제어기. - 청구항 21에 있어서,
상기 회로는:
상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하기 위해 메모리 디바이스의 하나 이상의 섹터내 어드레스들을 수정하도록 구성되는, 메모리 제어기. - 메모리 시스템에 있어서,
데이터를 관리하거나, 저장하거나, 또는 관리 및 저장하도록 구성된 슬레이브 디바이스;
상기 데이터의 상기 관리, 저장, 또는, 상기 관리 및 저장을 가능하게 하기 위해 상기 슬레이브 디바이스로 데이터 프레임들을 제공하도록 구성된 마스터 디바이스;
상기 슬레이브 디바이스와 상기 마스터 디바이스를 통신가능하게 결합하도록 구성된 주변 인터페이스로서, 상기 데이터 프레임들은 상기 주변 인터페이스를 통해 상기 마스터 디바이스로부터 상기 슬레이브 디바이스로 제공되는, 상기 주변 인터페이스;
상기 슬레이브 디바이스 및 상기 마스터 디바이스 중 적어도 하나에 결합된 마모 로직(wear logic)으로서:
상기 슬레이브 디바이스에서, 높은 마모 레벨을 가진 고 마모 서브-섹터를 검출하고, 상기 서브-섹터는 제 1 섹터에 있고;
상기 슬레이브 디바이스에서, 낮은 마모 레벨을 가진 제 2 섹터를 결정하고;
상기 제 2 섹터와 상기 제 1 섹터를 스와핑하며; 및
상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 구성된, 상기 마모 로직을 포함하는, 메모리 시스템. - 청구항 26에 있어서,
상기 마모 로직은 상기 슬레이브 디바이스의 제어기 내에 포함되는, 메모리 시스템. - 청구항 26에 있어서,
상기 마모 로직은 상기 마스터 디바이스에 적어도 부분적으로 포함되는, 메모리 시스템. - 청구항 26에 있어서,
상기 마모 로직은:
상기 제 1 섹터의 모든 서브-섹터들을 제 1 세트의 서브-섹터 번들들로 번들링하고;
상기 제 2 섹터의 모든 서브-섹터들을 제 2 세트의 서브-섹터 번들들로 번들링하며; 및
최소 마모 레벨을 가진 최소 서브-섹터를 포함하는 제 2 번들의 위치와 상기 고 마모 서브-섹터를 포함하는 제 1 번들의 위치를 스와핑하도록 구성되는, 메모리 시스템. - 청구항 26에 있어서,
상기 마모 로직은:
상기 제 1 섹터, 상기 제 2 섹터, 또는 양쪽의 상기 적어도 하나의 서브-섹터의 위치를 재-순서화하도록 메모리 어레이의 하나 이상의 섹터내 어드레스들을 수정하도록 구성되는, 메모리 시스템.
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)
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)
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)
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 |
-
2014
- 2014-11-13 US US14/540,968 patent/US9830087B2/en active Active
-
2015
- 2015-11-02 JP JP2017525331A patent/JP6317039B2/ja active Active
- 2015-11-02 KR KR1020177015711A patent/KR102245652B1/ko active IP Right Grant
- 2015-11-02 WO PCT/US2015/058634 patent/WO2016077091A1/en active Application Filing
- 2015-11-02 CN CN201580062243.0A patent/CN107003810B/zh active Active
- 2015-11-13 TW TW104137602A patent/TWI576758B/zh active
-
2017
- 2017-11-14 US US15/812,932 patent/US20180067661A1/en not_active Abandoned
Patent Citations (3)
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 |