KR20050070091A - 소거 카운트 블록을 유지하는 방법 및 장치 - Google Patents
소거 카운트 블록을 유지하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20050070091A KR20050070091A KR1020057007264A KR20057007264A KR20050070091A KR 20050070091 A KR20050070091 A KR 20050070091A KR 1020057007264 A KR1020057007264 A KR 1020057007264A KR 20057007264 A KR20057007264 A KR 20057007264A KR 20050070091 A KR20050070091 A KR 20050070091A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- entry
- erased
- erase count
- blocks
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 230000015654 memory Effects 0.000 claims abstract description 269
- 230000008569 process Effects 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 15
- 230000009643 growth defect Effects 0.000 claims description 8
- 230000007547 defect Effects 0.000 claims description 6
- 238000012935 Averaging Methods 0.000 claims 2
- 238000013507 mapping Methods 0.000 description 33
- 230000003068 static effect Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 16
- 210000004027 cell Anatomy 0.000 description 12
- 238000007726 management method Methods 0.000 description 12
- 230000005055 memory storage Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 210000000352 storage cell Anatomy 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Physical Vapour Deposition (AREA)
Abstract
Description
Claims (45)
- 비휘발성 메모리를 포함하는 비휘발성 메모리 시스템의 시스템 메모리에서 소거 카운트 블록을 초기화하는 방법으로서,상기 시스템 메모리 내에 복수의 페이지들을 할당하는 단계를 포함하는데, 상기 복수의 페이지들은 실질적으로 복수의 엔트리로 분할되고, 상기 복수의 엔트리들 각각은 상기 비휘발성 메모리의 복수의 블록들 중 대응하는 블록과 관련되며;상기 복수의 블록들에 포함되고, 상기 사용가능한 블록들은 사용자 데이터를 받아들이는데 사용하기에 적합한 사용가능한 블록들을 식별하는 단계; 및상기 복수의 블록들 중 대응하는 사용가능한 블록과 관련한 상기 복수의 엔트리들 각각에 값들을 저장하는 단계를 포함하며, 상기 대응하는 사용가능한 블록과 관련한 상기 각각의 엔트리에 상기 값들을 저장하는 단계는 실질적으로 상기 대응하는 사용가능한 블록이 사용가능한 것임을 식별하는,소거 카운트 블록을 초기화하는 방법.
- 제1항에 있어서, 상기 복수의 블록들에 포함된 상기 사용가능한 블록들을 식별하는 단계는 상기 복수의 블록들에 포함된 사용 불가능한 블록들을 식별하는 단계를 포함하며, 상기 방법은,대응하는 사용 불가능한 블록과 관련한 상기 복수의 엔트리들 각각에 표시기를 저장하는 단계를 더 포함하며, 상기 대응하는 사용 불가능한 블록과 관련한 상기 각각의 엔트리에 상기 표시기를 저장하는 단계는 실질적으로 상기 대응하는 사용 불가능한 블록이 사용 불가능한 것임을 식별하는 것을 특징으로 하는, 소거 카운트 블록을 초기화하는 방법.
- 제1항에 있어서, 상기 시스템 메모리 내에 헤더 -상기 헤더는 상기 복수의 페이지들과 관련됨- 를 할당하는 단계; 및상기 헤더에 제2 값을 저장하는 단계를 더 포함하며, 상기 제2 값은 상기 복수의 블록들 중 각각의 사용가능한 블록이 소거되었던 평균 회수를 표시하도록 설정된 것을 특징으로 하는, 소거 카운트를 초기화하는 방법.
- 제1항에 있어서, 상기 대응하는 사용 가능한 블록과 관련한 상기 복수 엔트리들 각각에 상기 값들을 저장하는 단계는 상기 복수의 엔트리 중 제1 엔트리에 제1 값을 저장하는 단계를 포함하며, 상기 제1 엔트리는 대응하는 사용가능한 제1 블록과 관련한 것을 특징으로 하는, 소거 카운트를 초기화하는 방법.
- 제4항에 있어서, 상기 제1 값은 상기 대응하는 사용가능한 제1 블록이 소거되었던 회수를 표시하도록 설정된 것을 특징으로 하는, 소거 카운트를 초기화하는 방법.
- 제5항에 있어서, 상기 제1 값은 대응하는 사용가능한 상기 제1 블록과 관련한 소거 카운트인 것을 특징으로 하는, 소거 카운트를 초기화하는 방법.
- 제1항에 있어서, 상기 값들은 소거 카운트들이며, 상기 방법은,실질적으로 상기 값들을 평균 내어 평균값을 결정하는 단계; 및상기 복수의 페이지들과 관련한 제1 페이지에 상기 평균값을 저장하는 단계를 더 포함하는 것을 특징으로 하는, 소거 카운트를 초기화하는 방법.
- 제1항에 있어서, 상기 비휘발성 메모리는 NAND 플래시 메모리인 것을 특징으로 하는, 소거 카운트를 초기화하는 방법.
- 메모리 시스템으로서,시스템 메모리;비휘발성 메모리;상기 시스템 메모리 내에 복수의 페이지들을 할당하는 코드 장치들을 포함하는데, 상기 복수의 페이지들은 실질적으로 복수의 엔트리들로 분할되고, 상기 복수의 엔트리들 각각은 상기 비휘발성 메모리의 복수의 블록들 중 대응하는 블록과 관련하며;상기 복수의 블록들에 포함되고, 사용자 데이터를 받아들이는데 사용하기에 적합한 사용가능한 블록들을 식별하는 코드 장치들;상기 복수의 블록들 중 대응하는 사용가능한 블록과 관련한 상기 복수의 엔트리들 각각에 값들을 저장하는 코드 장치들을 포함하는데, 상기 대응하는 사용가능한 블록과 관련한 상기 각각의 엔트리에 상기 값들을 저장하는 코드 장치들은 실질적으로 상기 대응하는 사용가능한 블록들이 사용가능한 것임을 식별하며; 및상기 코드 장치들을 저장하는 메모리 영역을 포함하는 메모리 시스템.
- 제9항에 있어서, 상기 복수의 블록들에 포함된 사용가능한 블록들을 식별하는 상기 코드 장치들은 상기 복수의 블록들에 포함된 사용 불가능한 블록들을 식별하는 코드 장치들을 포함하며, 상기 메모리 시스템은,대응하는 사용 불가능한 블록과 관련한 상기 복수의 엔트리들 각각에 표시기를 저장하는 코드 장치들을 더 포함하며, 상기 대응하는 사용 불가능한 블록과 관련한 상기 각각의 엔트리에 상기 표시기를 저장하는 코드 장치들은 실질적으로 상기 대응하는 사용 불가능한 블록이 사용 불가능한 것임을 식별하는 것을 특징으로 하는 메모리 시스템.
- 제9항에 있어서, 상기 시스템 메모리 내에 상기 복수의 페이지들과 관련된 헤더를 할당하는 코드 장치들; 및상기 헤더에 제2 값을 저장하는 코드 장치들을 더 포함하며, 상기 제2 값은 상기 복수의 블록들 중 상기 각각의 사용가능한 블록들이 소거되었던 평균 회수를 표시하도록 설정된 것을 특징으로 하는 메모리 시스템.
- 제9항에 있어서, 상기 대응하는 사용가능한 블록과 관련한 상기 복수의 엔트리들 각각에 상기 값들을 저장하는 코드 장치들은 상기 복수의 엔트리들 중 제1 엔트리에 제1 값을 저장하는 코드 장치들을 포함하며, 상기 제1 엔트리는 대응하는 사용가능한 제1 블록과 관련한 것을 특징으로 하는 메모리 시스템.
- 제12항에 있어서, 상기 제1 값은 상기 대응하는 사용가능한 제1 블록과 관련한 소거 카운트인 것을 특징으로 하는 메모리 시스템.
- 제9항에 있어서, 상기 값들은 소거 카운트들이며, 상기 메모리 시스템은,실질적으로 상기 값들을 평균 내어 평균값을 결정하는 코드 장치들; 및상기 복수의 페이지들과 관련한 제1 페이지에 상기 평균값을 저장하는 코드 장치들을 더 포함하는 것을 특징으로 하는 메모리 시스템.
- 제9항에 있어서, 상기 코드 장치들은 펌웨어 코드 장치들 및 소프트웨어 코드 장치들 중 하나인 것을 특징으로 하는 메모리 시스템.
- 제9항에 있어서, 상기 비휘발성 메모리는 NAND 플래시 메모리인 것을 특징으로 하는 메모리 시스템.
- 메모리 시스템의 비휘발성 메모리 -상기 비휘발성 메모리는 복수의 블록들을 포함함- 와 관련한 소거된 블록을 처리하는 방법으로서,상기 소거된 블록을 획득하는 단계;상기 비휘발성 메모리의 시스템 메모리에 저장되고, 상기 소거된 블록에 대응하는 소거 카운트 블록에서 제1 엔트리를 식별하는 단계;상기 제1 엔트리가 상기 소거된 블록이 소거되었던 회수를 표시하는 때를 결정하는 단계; 및상기 제1 엔트리가 상기 소거된 블록이 소거되었던 회수를 표시하는 것이 결정된 경우 실질적으로 상기 제1 엔트리를 상기 소거된 블록으로 복사하는 단계를 포함하는,소거된 블록을 처리하는 방법.
- 제17항에 있어서, 상기 제1 엔트리가 상기 소거된 블록이 소거되었던 회수의 표시가 아닌 것이 결정된 경우 실질적으로 제2 엔트리를 상기 소거된 블록으로 복사하는 단계를 더 포함하며, 상기 제2 엔트리는 상기 시스템 메모리에 저장되며, 상기 제2 엔트리는 상기 복수의 블록들이 소거되었던 평균 회수를 표시하도록 설정된 것을 특징으로 하는 소거된 블록을 처리하는 방법.
- 제18항에 있어서, 상기 제2 엔트리는 상기 소거 카운트 블록에 저장된 것을 특징으로 하는 소거된 블록을 처리하는 방법.
- 제17항에 있어서, 실질적으로 상기 제1 엔트리를 상기 소거된 블록으로 복사하는 단계는 상기 제1 엔트리를 상기 소거된 블록의 오버헤드 영역으로 복사하는 단계를 포함하는 것을 특징으로 하는 소거된 블록을 처리하는 방법.
- 메모리 시스템으로서,소거된 블록을 포함하는 복수의 블록들을 포함하는 비휘발성 메모리;시스템 메모리;상기 소거된 블록을 획득하는 코드 장치들;상기 시스템 메모리에 저장되고, 상기 소거된 블록에 대응하는 소거 카운트 블록에서 상기 제1 엔트리를 식별하는 코드 장치들;상기 제1 엔트리가 상기 소거된 블록이 소거되었던 회수를 표시하는 때를 결정하는 코드 장치들;상기 제1 엔트리가 상기 소거된 블록이 소거되었던 회수를 표시하는 것이 결정된 경우 실질적으로 상기 제1 엔트리를 상기 소거된 블록으로 복사하는 코드 장치들; 및코드 장치들을 저장하는 메모리 영역을 포함하는 메모리 시스템.
- 제21항에 있어서, 상기 제1 엔트리가 상기 소거된 블록이 소거되었던 회수를 표시하지 않는 것이 결정된 경우 실질적으로 제2 엔트리를 상기 소거된 블록으로 복사하는 코드 장치들을 더 포함하며, 상기 제2 엔트리는 상기 소거 카운트 블록에 저장되며, 상기 제2 엔트리는 상기 복수의 블록들이 소거되었던 평균 회수를 표시하도록 설정된 것을 특징으로 하는 메모리 시스템.
- 제21항에 있어서, 실질적으로 상기 제1 엔트리를 상기 소거된 블록으로 복사하는 상기 코드 장치들은 상기 제1 엔트리를 상기 소거된 블록의 오버헤드 영역으로 복사하는 코드 장치들을 포함하는 것을 특징으로 하는 메모리 시스템.
- 제21항에 있어서, 상기 코드 장치들은 펌웨어 코드 장치들 및 소프트웨어 코드 장치들 중 하나인 것을 특징으로 하는 메모리 시스템.
- 비휘발성 메모리의 시스템 메모리의 소거 카운트 블록 -상기 소거 카운트 블록은 제1 엔트리가 포함된 복수의 엔트리를 각각 포함한 복수의 페이지를 포함함- 내에 상기 제1 엔트리를 업데이팅하는 방법으로서,상기 비휘발성 메모리에 저장된 상기 블록을 식별하는 단계;상기 블록이 사용가능한 때를 결정하는 단계;상기 블록이 사용 불가능하다는 것이 결정된 경우, 상기 블록이 사용가능하지 않음을 표시하도록 비트들을 상기 엔트리에 세팅하는 단계;상기 블록이 사용 가능하다는 것이 결정된 경우 상기 블록이 소거되지 않는 때를 결정하는 단계;상기 블록이 소거되지 않는 것이 결정된 경우 상기 블록에 저장된 비트들 -상기 비트들은 상기 블록들이 소거되었던 회수를 표시하도록 설정됨- 을 독출하는 단계; 및상기 블록이 소거되지 않은 것이 결정된 경우 상기 블록에 저장된 상기 비트들에 대응하는 상기 제1 엔트리에 상기 비트들을 세팅하는 단계를 포함하는,제1 엔트리를 업데이팅하는 방법.
- 제25항에 있어서,상기 제1 엔트리의 상기 비트들을 독출하는 단계; 및상기 제1 엔트리의 상기 비트들이 상기 블록에 저장된 상기 비트들과 실질적으로 대응하지 않는 때를 결정하는 단계를 더 포함하며, 상기 제1 엔트리의 상기 비트들이 실질적으로 상기 블록에 저장된 상기 비트들에 대응하지 않는 것이 결정된 경우, 상기 제1 엔트리의 상기 비트들은 상기 블록에 저장된 상기 비트들에 대응하도록 세팅된 것을 특징으로 하는, 제1 엔트리를 업데이팅하는 방법.
- 제25항에 있어서, 상기 블록이 사용가능한 때를 결정하는 단계는 상기 블록이 성장 결함(growing defect)을 갖는 때를 결정하는 단계를 포함하며, 상기 블록이 사용가능하지 않음을 표시하기 위해 상기 비트들을 상기 제1 엔트리에 세팅하는 단계는 상기 블록이 성장 결함을 가지고 있음을 나타내기 위해 상기 비트들을 상기 제1 엔트리에 세팅하는 단계를 포함하는 것을 특징으로 하는, 제1 엔트리를 업데이팅하는 방법.
- 메모리 시스템으로서,복수의 페이지들 -상기 복수의 페이지들은 제1 엔트리가 포함된 복수의 엔트리들을 각각 포함한 상기 복수 페이지들을 포함함- 을 포함하는 소거 카운트 블록을 포함하는 시스템 메모리로서,비휘발성 메모리;상기 비휘발성 메모리에 저장된 블록을 식별하는 코드 장치들;상기 블록이 사용가능한 때를 결정하는 코드 장치들;상기 블록이 사용 불가능한 것이 결정된 경우 상기 블록이 사용가능하지 않다는 것을 표시하도록 상기 제1 엔트리에 비트들을 세팅하는 코드 장치들;상기 블록이 사용가능하다는 것이 결정된 경우 상기 블록이 소거되지 않는 때를 결정하는 코드 장치들;상기 블록이 소거되지 않는 것이 결정된 경우 상기 블록에 저장된 비트들 -상기 비트들은 상기 블록이 소거되었던 회수를 표시하도록 설정됨- 을 독출하는 코드 장치들;상기 블록이 소거되지 않는 것이 결정된 경우 상기 블록에 저장된 상기 비트들에 대응하도록 상기 제1 엔트리에 상기 비트들을 세팅시키는 코드 장치들; 및상기 코드 장치들을 저장하는 메모리 영역을 포함하는 메모리 시스템.
- 제28항에 있어서,상기 제1 엔트리의 상기 비트들을 독출하는 코드 장치들; 및상기 제1 엔트리의 상기 비트들이 실질적으로 상기 블록에 저장된 상기 비트들에 대응하지 않는 때를 결정하는 코드 장치들을 더 포함하며, 상기 제1 엔트리의 상기 비트들이 실질적으로 상기 블록에 저장된 상기 비트들과 대응하지 않는 경우, 상기 제1 엔트리의 상기 비트들은 상기 블록에 저장된 상기 비트들에 대응하도록 세팅된 것을 특징으로 하는 메모리 시스템.
- 제28항에 있어서, 상기 블록이 사용가능한 때를 결정하는 코드 장치들은 상기 블록이 성장 결함을 갖는 때를 결정하는 코드 장치들을 포함하며, 상기 블록이 사용가능하지 않다는 것을 표시하도록 상기 비트들을 상기 제1 엔트리에 세팅하는 코드 장치들은 상기 블록이 성장 결함을 가지고 있다는 것을 표시하도록 상기 비트들을 상기 제1 엔트리에 세팅하는 코드 장치들을 포함하는 것을 특징으로 하는 메모리 시스템.
- 메모리 시스템의 비휘발성 메모리 -상기 비휘발성 메모리는 복수의 블록들을 포함함- 와 관련한 제1 블록을 처리하는 방법으로서,상기 제1 블록이 사용가능한 때를 결정하는 단계;상기 블록이 사용가능하다는 것이 결정된 경우 상기 제1 블록의 비트들 -상기 비트들은 상기 제1 블록이 소거되었던 회수를 표시하도록 설정됨- 을 독출하는 단계;상기 제1 블록에 대응하는 소거 카운트 블록 -상기 소거 카운트 블록은 상기 메모리 시스템의 시스템 메모리에 저장됨- 에서 제1 엔트리를 식별하는 단계;상기 제1 블록의 비트들이 상기 제1 엔트리의 값보다 작은 값을 갖는 때를 결정하는 단계; 및상기 제1 블록의 상기 비트들이 상기 제1 엔트리의 상기 값보다 작은 값을 갖는 것이 결정된 경우 실질적으로 상기 제1 엔트리를 상기 제1 블록의 상기 비트들로 복사하는 단계를 포함하는,제1 블록을 처리하는 방법.
- 제31항에 있어서,상기 제1 블록이 사용가능하지 않다는 것이 결정된 경우 상기 제1 블록이 사용가능하지 않다는 것을 표시하도록 상기 제1 엔트리를 업데이팅하는 단계를 더 포함하는 것을 특징으로 하는, 제1 블록을 처리하는 방법.
- 제32항에 있어서, 상기 제1 블록이 사용가능하지 않다는 것을 표시하기 위해 상기 제1 엔트리를 업데이팅하는 단계는 상기 제1 블록이 성장 결함을 가지고 있다는 것을 표시하기 위해 상기 제1 엔트리를 업데이팅하는 단계를 포함하는 것을 특징으로 하는, 제1 블록을 처리하는 방법.
- 제31항에 있어서, 상기 제1 블록의 상기 비트들은 상기 제1 블록의 리던던트 영역에 위치한 것을 특징으로 하는, 제1 블록을 처리하는 방법.
- 제34항에 있어서, 상기 제1 블록의 상기 비트들은 상기 제1 블록의 소거 카운트인 것을 특징으로 하는, 제1 블록을 처리하는 방법.
- 메모리 시스템으로서,제1 블록을 포함하는 복수의 블록들을 포함하는 비휘발성 메모리;소거 카운트 블록 -상기 소거 카운트는 복수의 엔트리들로 실질적으로 분할되는 복수의 페이지들을 포함함- 을 포함하는 시스템 메모리;상기 제1 블록이 사용가능한 때를 결정하는 코드 장치들;상기 제1 블록이 사용가능하다는 것이 결정된 경우 상기 제1 블록의 비트들 - 상기 비트들은 상기 제1 블록이 소거되었던 회수를 나타내도록 설정됨- 을 독출하는 코드 장치들;상기 제1 블록에 대응하는 상기 소거 카운트 블록에서 제1 엔트리를 식별하는 코드 장치들;상기 제1 블록의 상기 비트들이 상기 제1 엔트리의 값보다 작은 값을 갖는 때를 결정하는 코드 장치들;상기 제1 블록의 상기 비트들이 상기 제1 엔트리의 상기 값보다 작은 값을 갖는 것이 결정된 경우 실질적으로 상기 제1 엔트리를 상기 제1 블록의 상기 비트들로 복사하는 코드 장치들; 및상기 코드 장치들을 저장하는 메모리 영역을 포함한 메모리 시스템.
- 제36항에 있어서, 상기 제1 블록이 사용가능하지 않다는 것이 결정된 경우 상기 제1 블록이 사용가능하지 않다는 것을 나타내도록 상기 제1 엔트리를 업데이팅하는 코드 장치들을 더 포함하며, 상기 제1 블록이 사용가능하지 않다는 것을 표시하도록 상기 제1 엔트리를 업데이팅하는 코드 장치들은 상기 제1 블록이 성장 결함을 갖는 것을 표시하도록 상기 제1 엔트리를 업데이팅하는 코드 장치들을 포함하는 것을 특징으로 하는 메모리 시스템.
- 제36항에 있어서, 상기 제1 블록의 상기 비트들은 상기 제1 블록의 리던던트 영역에 위치한 것을 특징으로 하는 메모리 시스템.
- 메모리 시스템으로서,시스템 메모리;비휘발성 메모리;상기 시스템 메모리 내에 복수의 페이지들을 할당하는 수단을 포함하는데, 상기 복수의 페이지들은 실질적으로 복수의 엔트리들에 분할되고, 복수의 엔트리들 각각은 상기 비휘발성 메모리의 복수의 블록들 중 대응하는 블록과 관련하며;상기 복수의 블록들에 포함되고, 사용자 데이터를 받아들이는데 사용하기에 적합한 사용자 블록들을 식별하는 수단; 및상기 복수의 블록들의 대응하는 사용가능한 블록과 관련한 상기 복수의 엔트리들 각각에 값들을 저장하는 수단을 포함하며, 상기 대응하는 사용가능한 블록과 관련한 상기 각각의 엔트리에 상기 값들을 저장하는 수단은 실질적으로 상기 대응하는 사용가능한 블록을 사용가능하다고 식별하는 메모리 시스템.
- 제39항에 있어서, 상기 복수의 블록들에 포함된 사용가능한 블록들을 식별하는 수단은 상기 복수의 블록들에 포함된 사용 불가능한 블록들을 식별하는 수단을 포함하며, 상기 메모리 시스템은,대응하는 사용 불가능한 블록과 관련한 상기 복수의 엔트리들 각각에 표시기를 저장하는 수단을 더 포함하며, 상기 대응하는 사용 불가능한 블록과 관련한 각각의 엔트리에 상기 표시기를 저장하는 수단은 실질적으로 상기 대응하는 사용 불가능한 블록이 사용 불가능하다고 식별하는 것을 특징으로 하는 메모리 시스템.
- 제39항에 있어서,상기 시스템 메모리 내에 복수의 페이지들과 관련한 헤더를 할당하는 수단; 및상기 헤더에 제2 값을 저장하는 수단을 더 포함하며, 상기 제2 값은 상기 복수의 블록들 중 각각의 사용가능한 블록이 소거되었던 평균 회수를 표시하도록 설정된 것을 특징으로 하는 메모리 시스템.
- 제39항에 있어서, 상기 대응하는 사용가능한 블록과 관련한 상기 복수의 엔트리들 각각에 상기 값들을 저장하는 수단은 상기 복수의 엔트리들 중 제1 엔트리에 제1 값을 저장하는 수단을 포함하며, 상기 제1 엔트리는 대응하는 사용가능한 제1 블록과 관련한 것을 특징으로 하는 메모리 시스템.
- 제42항에 있어서, 상기 제1 값은 상기 대응하는 사용가능한 제1 블록과 관련한 소거 카운트인 것을 특징으로 하는 메모리 시스템.
- 제39항에 있어서, 상기 값들은 소거 카운트들이고 상기 메모리 시스템은,실질적으로 상기 값들을 평균 내어 평균값을 결정하는 수단; 및상기 복수의 페이지들과 관련한 제1 페이지에 상기 평균값을 저장하는 수단을 더 포함하는 것을 특징으로 하는 메모리 시스템.
- 제39항에 있어서, 상기 비휘발성 메모리는 NAND 플래시 메모리인 것을 특징으로 하는 메모리 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/281,626 US7103732B1 (en) | 2002-10-28 | 2002-10-28 | Method and apparatus for managing an erase count block |
US10/281,626 | 2002-10-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050070091A true KR20050070091A (ko) | 2005-07-05 |
KR100910680B1 KR100910680B1 (ko) | 2009-08-04 |
Family
ID=32228768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057007264A KR100910680B1 (ko) | 2002-10-28 | 2003-09-10 | 소거 카운트 블록을 유지하는 방법 및 장치 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7103732B1 (ko) |
EP (1) | EP1559015B1 (ko) |
JP (1) | JP4445394B2 (ko) |
KR (1) | KR100910680B1 (ko) |
CN (1) | CN100538660C (ko) |
AT (1) | ATE555441T1 (ko) |
AU (1) | AU2003270462A1 (ko) |
TW (1) | TWI297893B (ko) |
WO (1) | WO2004040457A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140000751A (ko) * | 2012-06-25 | 2014-01-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004040586A1 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Automated wear leveling in non-volatile storage systems |
US7433993B2 (en) | 2003-12-30 | 2008-10-07 | San Disk Corportion | Adaptive metablocks |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7383375B2 (en) | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
EP1758027B1 (en) * | 2003-12-30 | 2010-07-14 | SanDisk Corporation | Non-volatile memory and method with control data management |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US7631162B2 (en) | 2005-10-27 | 2009-12-08 | Sandisck Corporation | Non-volatile memory with adaptive handling of data writes |
US7509471B2 (en) | 2005-10-27 | 2009-03-24 | Sandisk Corporation | Methods for adaptively handling data writes in non-volatile memories |
US7809900B2 (en) * | 2006-11-24 | 2010-10-05 | Sandforce, Inc. | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
US20080126685A1 (en) * | 2006-11-24 | 2008-05-29 | Radoslav Danilak | System, method, and computer program product for reducing memory write operations using an instruction set |
US7747813B2 (en) * | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
US7904764B2 (en) * | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | Memory lifetime gauging system, method and computer program product |
US7904672B2 (en) * | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
US8090980B2 (en) * | 2006-12-08 | 2012-01-03 | Sandforce, Inc. | System, method, and computer program product for providing data redundancy in a plurality of storage devices |
US7731365B2 (en) * | 2007-03-19 | 2010-06-08 | Johnson&Johnson Vision Care, Inc. | Method of fitting contact lenses |
CN101419834B (zh) * | 2007-10-22 | 2011-03-30 | 群联电子股份有限公司 | 平均磨损方法及使用此方法的控制器 |
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 |
US7903486B2 (en) * | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
US9183133B2 (en) | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
TWI382422B (zh) * | 2008-07-11 | 2013-01-11 | Genesys Logic Inc | 根據錯誤更正碼更新快閃記憶體之資料頁面之儲存裝置與方法 |
US20100017566A1 (en) * | 2008-07-15 | 2010-01-21 | Radoslav Danilak | System, method, and computer program product for interfacing computing device hardware of a computing device and an operating system utilizing a virtualization layer |
US20100017588A1 (en) * | 2008-07-15 | 2010-01-21 | Radoslav Danilak | System, method, and computer program product for providing an extended capability to a system |
US20100064093A1 (en) * | 2008-09-09 | 2010-03-11 | Radoslav Danilak | System, method, and computer program product for converting data in a binary representation to a non-power of two representation |
TWI470428B (zh) * | 2008-10-03 | 2015-01-21 | Phison Electronics Corp | 用於非揮發性記憶體的資料程式規劃系統、記憶體管理方法及其控制器 |
KR20100055565A (ko) * | 2008-11-18 | 2010-05-27 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
US20100146236A1 (en) * | 2008-12-08 | 2010-06-10 | Radoslav Danilak | System, method, and computer program product for rendering at least a portion of data useless in immediate response to a delete command |
US20100250830A1 (en) * | 2009-03-27 | 2010-09-30 | Ross John Stenfort | System, method, and computer program product for hardening data stored on a solid state disk |
US8671258B2 (en) | 2009-03-27 | 2014-03-11 | Lsi Corporation | Storage system logical block address de-allocation management |
US8230159B2 (en) | 2009-03-27 | 2012-07-24 | Lsi Corporation | System, method, and computer program product for sending logical block address de-allocation status information |
US8090905B2 (en) * | 2009-03-27 | 2012-01-03 | Sandforce, Inc. | System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format |
US8069384B2 (en) * | 2009-06-08 | 2011-11-29 | Seagate Technology Llc | Scanning reassigned data storage locations |
US20110004718A1 (en) * | 2009-07-02 | 2011-01-06 | Ross John Stenfort | System, method, and computer program product for ordering a plurality of write commands associated with a storage device |
US9792074B2 (en) * | 2009-07-06 | 2017-10-17 | Seagate Technology Llc | System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips |
US8140712B2 (en) * | 2009-07-17 | 2012-03-20 | Sandforce, Inc. | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
US8516166B2 (en) * | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US8108737B2 (en) * | 2009-10-05 | 2012-01-31 | Sandforce, Inc. | System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device |
JP5593254B2 (ja) * | 2010-05-12 | 2014-09-17 | パナソニック株式会社 | 半導体メモリ装置及び半導体メモリシステム |
US8447920B1 (en) * | 2010-06-29 | 2013-05-21 | Western Digital Technologies, Inc. | System and method for managing data access in non-volatile memory |
CN102543177B (zh) * | 2010-12-17 | 2016-01-06 | 西安奇维测控科技有限公司 | 一种固态盘静态磨损平衡算法 |
US10114562B2 (en) | 2014-09-16 | 2018-10-30 | Sandisk Technologies Llc | Adaptive block allocation in nonvolatile memory |
CN105706067B (zh) * | 2014-09-25 | 2019-04-26 | 株式会社京都软件研究 | 内置闪存的微型计算机和向内置于微型计算机的闪存的数据写入方法 |
US9830087B2 (en) * | 2014-11-13 | 2017-11-28 | Micron Technology, Inc. | Memory wear leveling |
US10338817B2 (en) | 2014-12-30 | 2019-07-02 | Sandisk Technologies Llc | Systems and methods for storage recovery |
US10007432B2 (en) * | 2015-10-13 | 2018-06-26 | Dell Products, L.P. | System and method for replacing storage devices |
US10101939B2 (en) * | 2016-03-09 | 2018-10-16 | Toshiba Memory Corporation | Storage system having a host that manages physical data locations of a storage device |
US11809727B1 (en) * | 2016-04-27 | 2023-11-07 | Pure Storage, Inc. | Predicting failures in a storage system that includes a plurality of storage devices |
US9817593B1 (en) | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
US9830098B1 (en) * | 2016-07-11 | 2017-11-28 | Silicon Motion, Inc. | Method of wear leveling for data storage device |
US11150971B1 (en) | 2020-04-07 | 2021-10-19 | International Business Machines Corporation | Pattern recognition for proactive treatment of non-contiguous growing defects |
CN112181316A (zh) * | 2020-11-04 | 2021-01-05 | 深圳佰维存储科技股份有限公司 | 数据块信息继承方法、装置、存储介质及电子设备 |
JP2023045035A (ja) * | 2021-09-21 | 2023-04-03 | キオクシア株式会社 | メモリシステム |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07109717B2 (ja) | 1986-05-31 | 1995-11-22 | キヤノン株式会社 | メモリ書き込み制御方法 |
JP2685173B2 (ja) | 1986-05-31 | 1997-12-03 | キヤノン株式会社 | メモリ書き込み制御方法 |
US5268870A (en) | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Flash EEPROM system and intelligent programming and erasing methods therefor |
EP0618535B1 (en) | 1989-04-13 | 1999-08-25 | SanDisk Corporation | EEPROM card with defective cell substitution and cache memory |
US5222109A (en) | 1990-12-28 | 1993-06-22 | Ibm Corporation | Endurance management for solid state files |
US6230233B1 (en) | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US5438573A (en) | 1991-09-13 | 1995-08-01 | Sundisk Corporation | Flash EEPROM array data and header file structure |
JPH0750558B2 (ja) | 1992-09-22 | 1995-05-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリ |
JP2856621B2 (ja) | 1993-02-24 | 1999-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 |
US5388083A (en) * | 1993-03-26 | 1995-02-07 | Cirrus Logic, Inc. | Flash memory mass storage architecture |
JP3507132B2 (ja) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
US5954828A (en) | 1995-01-05 | 1999-09-21 | Macronix International Co., Ltd. | Non-volatile memory device for fault tolerant data |
US5568423A (en) | 1995-04-14 | 1996-10-22 | Unisys Corporation | Flash memory wear leveling system providing immediate direct access to microprocessor |
US5907856A (en) | 1995-07-31 | 1999-05-25 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
US5845313A (en) | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
US6125435A (en) | 1995-09-13 | 2000-09-26 | Lexar Media, Inc. | Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory |
US5835935A (en) | 1995-09-13 | 1998-11-10 | Lexar Media, Inc. | Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory |
US5933847A (en) * | 1995-09-28 | 1999-08-03 | Canon Kabushiki Kaisha | Selecting erase method based on type of power supply for flash EEPROM |
US5860082A (en) | 1996-03-28 | 1999-01-12 | Datalight, Inc. | Method and apparatus for allocating storage in a flash memory |
US5715193A (en) | 1996-05-23 | 1998-02-03 | Micron Quantum Devices, Inc. | Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks |
US5956473A (en) * | 1996-11-25 | 1999-09-21 | Macronix International Co., Ltd. | Method and system for managing a flash memory mass storage system |
US6009496A (en) | 1997-10-30 | 1999-12-28 | Winbond Electronics Corp. | Microcontroller with programmable embedded flash memory |
KR100297986B1 (ko) | 1998-03-13 | 2001-10-25 | 김영환 | 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법 |
CN1126037C (zh) | 1998-09-04 | 2003-10-29 | 奥托·穆勒 | 用于具有限制删除频率的存储器的存取控制的方法 |
US6226759B1 (en) | 1998-09-28 | 2001-05-01 | International Business Machines Corporation | Method and apparatus for immediate data backup by duplicating pointers and freezing pointer/data counterparts |
US6260156B1 (en) | 1998-12-04 | 2001-07-10 | Datalight, Inc. | Method and system for managing bad areas in flash memory |
US6282605B1 (en) | 1999-04-26 | 2001-08-28 | Moore Computer Consultants, Inc. | File system for non-volatile computer memory |
US6426893B1 (en) | 2000-02-17 | 2002-07-30 | Sandisk Corporation | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks |
KR100644602B1 (ko) | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
JP2002251884A (ja) | 2001-02-21 | 2002-09-06 | Toshiba Corp | 半導体記憶装置及びそのシステム装置 |
US6732221B2 (en) | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
US6683817B2 (en) | 2002-02-21 | 2004-01-27 | Qualcomm, Incorporated | Direct memory swapping between NAND flash and SRAM with error correction coding |
-
2002
- 2002-10-28 US US10/281,626 patent/US7103732B1/en not_active Expired - Lifetime
-
2003
- 2003-09-10 WO PCT/US2003/028255 patent/WO2004040457A1/en active Application Filing
- 2003-09-10 CN CNB03824764XA patent/CN100538660C/zh not_active Expired - Fee Related
- 2003-09-10 EP EP03752155A patent/EP1559015B1/en not_active Expired - Lifetime
- 2003-09-10 KR KR1020057007264A patent/KR100910680B1/ko active IP Right Grant
- 2003-09-10 JP JP2004548312A patent/JP4445394B2/ja not_active Expired - Fee Related
- 2003-09-10 AU AU2003270462A patent/AU2003270462A1/en not_active Abandoned
- 2003-09-10 AT AT03752155T patent/ATE555441T1/de active
- 2003-09-18 TW TW092125792A patent/TWI297893B/zh not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140000751A (ko) * | 2012-06-25 | 2014-01-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP1559015B1 (en) | 2012-04-25 |
WO2004040457A1 (en) | 2004-05-13 |
US7103732B1 (en) | 2006-09-05 |
ATE555441T1 (de) | 2012-05-15 |
EP1559015A1 (en) | 2005-08-03 |
AU2003270462A1 (en) | 2004-05-25 |
CN100538660C (zh) | 2009-09-09 |
TW200414201A (en) | 2004-08-01 |
JP2006504196A (ja) | 2006-02-02 |
KR100910680B1 (ko) | 2009-08-04 |
CN1701307A (zh) | 2005-11-23 |
JP4445394B2 (ja) | 2010-04-07 |
TWI297893B (en) | 2008-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100910680B1 (ko) | 소거 카운트 블록을 유지하는 방법 및 장치 | |
KR100914089B1 (ko) | 비휘발성 저장 시스템의 소거 카운트 유지 방법 및 장치 | |
KR101110901B1 (ko) | 비-휘발성 저장 시스템의 소모 레벨링 | |
JP4758648B2 (ja) | 不揮発性記憶システムにおける平均消去カウントの維持 | |
US7096313B1 (en) | Tracking the least frequently erased blocks in non-volatile memory systems | |
US6973531B1 (en) | Tracking the most frequently erased blocks in non-volatile memory systems | |
JP4611024B2 (ja) | ブロック内のページをグループ化する方法及び装置 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20130701 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140716 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20150626 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20160630 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20170704 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20180628 Year of fee payment: 10 |