KR20060120231A - 다중 블록 유닛들로의 블록의 적응형 결정론적 그룹화 - Google Patents
다중 블록 유닛들로의 블록의 적응형 결정론적 그룹화 Download PDFInfo
- Publication number
- KR20060120231A KR20060120231A KR1020067013306A KR20067013306A KR20060120231A KR 20060120231 A KR20060120231 A KR 20060120231A KR 1020067013306 A KR1020067013306 A KR 1020067013306A KR 20067013306 A KR20067013306 A KR 20067013306A KR 20060120231 A KR20060120231 A KR 20060120231A
- Authority
- KR
- South Korea
- Prior art keywords
- metablock
- block
- blocks
- memory
- linking
- Prior art date
Links
Images
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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- 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
- 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
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/808—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
본 발명은 비휘발성 메모리의 물리적 블록들을 복합 논리적 구조들 또는 "메타블록들"에 링킹(linking)하는 기술들을 제공한다. 양호한 물리적 블록들을 메타블록들과의 초기 링킹을 결정한 후, 링킹 레코드는 필요할 때 쉽게 액세스될 수 있는 비휘발성 메모리에 유지된다. 한 세트의 실시예들에서, 초기 링킹은 알고리즘에 따라서 결정론적으로 형성되고 메모리 내의 임의의 불량 블록들의 패턴에 따라서 최적화될 수 있다. 부가적인 불량 블록들이 발생될 때, 이 링킹은 바람직하게는 불량 블록을 대체하는 블록과 동일한 메모리의 서브-어레이에서 링킹 내의 불량 블록들을 양호한 블록들로 대체함으로써 갱신된다.
비휘발성 메모리, 메타블록, 서브-어레이, 링킹, 불량 블록, 스페어 블록
Description
본 발명은 일반적으로, 반도체 비휘발성 데이터 저장 시스템들에 관한 것이며, 특히 비휘발성 데이터 저장 시스템들에서 결함들을 수용하는 더 큰 논리적 구조들로 물리적 블록들을 형성하는 시스템 및 방법에 관한 것이다.
플래시 메모리들과 같은 비휘발성 메모리 장치들은 통상 대량 데이터 저장 서브시스템들로서 사용된다. 이와 같은 비휘발성 메모리 장치들은 전형적으로, 호스트 시스템과 제거가능하게 접속되는 인클로우즈된 카드에 패키징되고, 호스트 시스템 내에서 비제거가능한 임베드된 저장장치로서 패키징될 수 있다. 전형적인 구현방식에서, 서브시스템은 하나 이상의 플래시 장치들과 종종 서브시스템 컨트롤러를 포함한다.
현재 상업용 메모리 카드 포맷들은 개인용 컴퓨터 메모리 카드 국제 협회(PCMCIA)의, 컴팩트플래시(CF), 멀티미디어카드(MMC), 보안 디지털(SD), 메모리스틱, 및 메모리스틱-프로를 포함한다. 이들 카드들의 하나의 공급자는 본 출원의 양수인인 SanDisk Corporation이다. 이와 같은 카드들이 사용되는 호스트 시스템들은 디지털 카메라들, 셀룰러 전화들, 개인용 컴퓨터들, 노트북 컴퓨터들, 휴대용 컴퓨팅 장치들, 오디오 재생 장치들 등을 포함한다.
비휘발성 메모리 장치들은 비휘발성 저장 소자들의 하나 이상의 어레이들로 이루어진다. 각 저장 소자는 하나 이상의 데이터 비트들을 저장할 수 있다. 비휘발성 메모리 어레이의 한 가지 중요한 특성은, 전력이 메모리 어레이에 더 이상 인가되지 않을 때조차도 프로그램된 데이터를 유지하는 것이다. 대조적으로, 휘발성 메모리 장치는 휘발성 메모리 어레이에 포함된 데이터를 유지하기 위해 어레이로 전력을 주기적으로 공급하여야 한다. 비휘발성 메모리의 또 다른 특성은 비휘발성 메모리 어레이 내에 포함되는 셀이 프로그램되면 이 셀은 새로운 데이터 값으로 재프로그램되기 전 소거되어야 한다는 것이다.
메모리 셀에 전하를 저장하는 물리적 수단은 전기적으로 소거가능한 프로그램가능 판독 전용 메모리(EEPROM)와 같은 플로우팅 게이트 트랜지스터를 이용함으로써 구현될 수 있다는 것이다. EEPROMs과 같은 플로우팅 게이트 장치들이 지닌 한 가지 공지된 문제는, 매우 많은 횟수 기록, 프로그램 및 소거 사이크들 후 플로우팅 게이트가 결국 마모되어 파괴된다는 것이다. 이것이 발생될 때, 셀은 더 이상 사용될 수 없고 어레이 내의 이용가능한 메모리 셀들의 리스트를 끄집어내어야 한다. 이런 부류의 결함을 "성장된(grown)" 결함이라 칭한다. 한 가지 상업적으로 이용가능한 구현방식에서, 결함있는 셀들 밖에서 맵핑되고 새롭게 검출된 결함있는 메모리 셀들을 양호한 메모리 셀들의 물리적 어드레스들로 대체함으로써, 이들 결함들을 처리하는 것이다. 결함있는 셀들 또는 섹터들 밖에서 맵핑되고 대체 구현방식들의 예들이 1997년 8월 19일에 Mehrotra 등에게 허여된 미국 특허 5,659,550; 1997년 9월 23일에 Harari 등에게 허여된 미국 특허 5,671,229; 1999년 1월 19일에 Harari 등에게 허여된 미국 특허 5,862,080에 서술되어 있으며, 이 출원들은 본원에 전반적으로 참조되어 있다.
비휘발성 메모리 셀들의 어레이들은 전형적으로, 효율적인 수행을 위하여 판독, 프로그램, 및 소거 기능들의 그룹들로 세분화된다. 예를 들어, 많은 비휘발성 메모리 아키텍쳐들에서, 메모리 셀들은 소거 단위라 칭하는 더 큰 그룹으로 배열된다. 이 소거 단위는 한번에 소거가능한 최소수의 메모리 셀들이다.
소거 단위의 크기는 구현되는 메모리 아키텍쳐에 좌우된다. 초창기 비휘발성 메모리들에서, 소거 단위는 표준 512-바이트 디스크 드라이브 섹터와 동일한 크기인 블록이었다. 한 가지 상업적인 형태에서, 각 블록은 사용자 데이터의 한 섹터와 더불어 사용자 데이터 및/또는 이를 저장하는 블록과 관련된 일부 오버헤드 데이터 를 저장할 정도로 충분한 셀들을 포함한다. 셀들의 블록들이 개별적으로 소거될 수 있도록 하기 위하여, 블록들은 충분히 서로로부터 격리되어야 한다.
이 격리(isolation)가 집적 회로 칩상에서 귀중한 공간을 차지하기 때문에, 이와 같은 격리를 위하여 필요로 되는 공간을 덜 차지하도록 소거 단위를 더욱 크게한 또 다른 메모리 아키텍쳐가 개발되었다. 이 대형 블록 시스템 아키텍쳐의 예는 2002년 7월 30일에 허여된 미국 특허 6,426,893의 연속 출원인 2003년 6월 17일에 Conley 등에게 허여된 미국 특허 6,580,638에 서술되어 있다. 이들 특허 둘 다는 본원에 전반적으로 참조되어 있다. 대형 블록 시스템에서, 소거 유닛은 종종 사용자 데이터를 판독하고 프로그램하는 기본 단위(프로그래밍 및/또는 판독 단위)인 개별적으로 어드레스가능한 페이지들로 더욱 세분화된다. 한 가지 상업적인 구현방식에서, 소거 단위는 메타블록이다. 메타블록은 다수의 물리적 소거 단위들로 이루어진 가상 소거 단위이다. 이들 다수의 물리적 소거 단위들은 병렬 프로그램 및 소거 동작들에 사용될 수 있지만 단일 논리적 블록으로서 어드레스된다.
메타블록들 또는 "슈퍼" 블록들을 형성하는 한 가지 방법은 본원에 전반적으로 참조된 미국 특허 6,034,897에 서술된다. 본원에 서술된 바와 같은, 다수의 장치들을 갖는 메모리에 대해서, 각 장치들에서 동일한 물리적 블록이 메타블록 내로 그룹화된다. 이는 메타블록들 및 동일한 어드레스, 즉 장치들 중 제1 장치 내의 블록의 어드레스에 의해 어드레스될 소정 메타블록 내의 모든 블록들의 형성을 고려하지만, 이는 여러가지 제한들을 갖는다. 예를 들어, 메타블록들로 블록들의 링킹은 이 고정된 형태에서 사전 결정되기 때문에, 블록이 불량이 될 때, 메타블록 내의 다른 블록들이 여전히 기능함에도 불구하고 이 불량 블록을 포함하는 메타블록은 불량이 된다. 따라서, 바람직한 목적은 필요로 될 때마다 새로운 링킹을 설정하는 동작적인 오버헤드 없이 적응가능한 메타블록 배열을 위한 시스템 및 방법을 제공하는 것이다.
본 발명의 각종 양상들은 복합 논리적인 구조들로 물리적 메모리 구조들의 링킹을 위하여 종래 기술에서 발견되는 이들 및 그외 다른 제한들을 극복하는 것이다. 본 발명의 주 실시예에서, 플래시 메모리들에 메타블록 구조의 형성을 위한 기술이 제공된다. 본 발명의 제1 양상을 따르면, 메타블록으로 블록의 링킹은 메모리의 결함있는 부분들을 수용하도록 갱신된다. 결함 맵을 유지하는 시스템은 결함 맵 구조를 포함하여, 메타블록들로 조직된 비휘발성 메모리 시스템에서 공장 및 성장된 결함들(factory and grown defects)의 존재를 추적한다. 결함 맵을 유지하는 방법은 결함 맵 구조 및 메타블록의 특성들을 이용한다. 일 실시예에서, 결함 맵 구조의 크기는 비휘발성 메모리 시스템의 병렬화와 동일하다. 또 다른 실시예에서, 메타블록에 할당될 수 없는 나머지 소거 유닛들은 나중 사용을 위하여 스페어 소거 유닛들의 리스트에 유지될 것이다.
본 발명의 또 다른 양상을 따르면, 메타블록들로 블록들의 링킹의 레코드는 비휘발성 메모리에 유지된다. 그 후, 컨트롤러는 필요에 따라서 자신의 휘발성 메모리로의 링킹을 판독 출력할 수 있다. 이 레코드는 결함들로부터 발생되는 재링킹들에 응답하여 갱신된다. 완전한 링킹 레코드는 예를 들어 특정 위치에서 비휘발성 메모리에 유지될 수 있거나, 단지 부분적인 링킹 레코드가 유지될 수 있다. 본 발명의 또 다른 양상에서, 메타블록들로 블록들의 초기 링킹은 예를 들어 펌웨어 기반으로 한 구현방식을 이용하는 알고리즘에 의해 결정론적으로 형성된다. 이 경우에, 비휘발성 메모리에 저장되는 링킹 레코드는 표준 알고리즘으로부터의 편차들 만을 포함할 필요가 있다.
본 발명의 부가적인 양상들, 특징들 및 장점들이 첨부 도면과 관련한 전형적인 실시예들과 관련하여 이하에서 상세히 설명된다.
도 1은 비휘발성 메모리 어레이 및 메모리 컨트롤러가 호스트 시스템과 제거 가능하게 접속되는 인클로우즈된 카드에 패키징되는 기존의 비휘발성 메모리 시스템의 블록도.
도2는 비휘발성 메모리 어레이가 호스트 시스템과 제거가능하게 접속된 인클로우즈된 카드에 패키징되는 기존의 비휘발성 메모리 시스템의 블록도.
도3은 비휘발성 메모리 어레이가 호스트 시스템 내에 비-제거가능하게 임베드된 저장장치로서 임베드된 기존의 비휘발성 메모리 시스템의 블록도.
도4a는 플레인들, 존들 및 스페어들을 도시한 일 예의 칩 포맷을 도시한 도면.
도4b-d는 메타블록들로 물리적 블록들의 각종 링킹들을 도시한 도면.
도5-10은 시스템이 메모리 어레이의 일부상에서 발생되는 일련의 성장된 결함들에 응답할 수 있는 방법을 도시한 도면.
도11은 소거 유닛으로 성장된 결함의 검출에 응답하여 메타블록의 가상 구조 요소들의 맵핑의 예를 도시한 도면.
도12는 스페어 소거 유닛이 소거 유닛과 동일한 플레인에서 이용될 수 없는 결함 맵을 유지하기 위한 시스템의 예를 도시한 도면.
도13은 결함 맵을 유지하는 방법의 일 예를 도시한 도면.
도14는 도11 내지 도13의 데이터 구조를 사용하여 결함 맵을 유지하는 방법의 예를 도시한 도면.
도15 내지 도18은 물리적 블록들의 알고리즘적으로 기반으로 한 링킹을 도시한 도면.
도19, 20 및 22는 물리적 블록들의 재링킹을 도시한 도면.
도21은 2차원적 경우에서 재링킹의 예를 도시한 도면.
일반적으로, 본 발명의 메모리 시스템은 다중 블록 메타블록 구조들로 블록들의 링킹의 레코드를 자신의 주 비휘발성 메모리에 유지하는 것이다. 이 레코드는 주문형 비휘발성 메모리로 판독될 수 있는 맵 테이블에서 공장 및 성장된 결함들의 결함 맵을 포함한다. 성장된 결함들에 부닥치고(encounter) 블록들이 새로운 위치들에 할당될 때 이 맵은 갱신된다. 메타블록들은 여러 서브어레이들 또는 플레인들 각각에 한 블록씩 형성되는 것이 바람직하고, 이 경우에, 그룹화는, 불량으로 표시되어 맵에 배치되는 블록들을 제외하면, 각 플레인에서 동일한 번호가매겨진 블록들로 행해지는 것이 바람직하다. 일 실시예에서, 블록들은 대체 블록들로 직접 맵핑된다. 그 후, 결함있는 블록들을 포함하는 메타블록들은 대응하는 플레인에서 대체 블록으로 재형성된다. 비휘발성 메모리 내에서 메타블록들로 블록들의 링킹의 완전한 레코드를 유지하는 것이 아니라, "표준" 링킹은 예를 들어, 시스템의 펌웨어의 알고리즘을 기반으로 할 수 있는데, 이 알고리즘으로부터의 결함들로 인한 편차들만이 저장될 필요가 있다. 현재 결함들을 갖지 않는 이들 표준 메타블록들을 사용가능한 표준 메타블록들이라 칭할 것이다. 나머지 메타블록들을 사용될 수 없는 표준 메타블록들이라 칭하고, 컴포넌트 물리적 블록들을 스페어 블록들이라 칭할 것이다.
도1-3은 호스트(102, 202, 302), 컨트롤러(104, 204, 304) 및 비휘발성 메모 리 어레이 또는 다수의 어레이들(103, 203, 303)을 포함하는 전형적인 기존의 비휘발성 메모리 시스템들의 블록도이다. 도1에서, 비휘발성 메모리 어레이(103) 및 메모리 컨트롤러(104)는 호스트 시스템(102)과 제거가능하게 접속되는 인클로우즈된 카드에 패키징된 것으로서 도시된다. 도2에서, 컨트롤러(204)는 호스트 시스템(202)의 부분으로서 도시되고 비휘발성 메모리 어레이(203)는 호스트 시스템과 제거가능하게 접속되는 인클로우즈된 카드에 패키징된 것으로서 도시된다. 도3에서, 비휘발성 메모리 어레이(303)는 호스트 시스템(302) 내에 비제거가능한 임베드된 저장장치로서 패키징되는 것으로서 도시된다.
전형적으로, 비휘발성 메모리 어레이는 저장 소자들로서 하나 이상의 도전성 플로우팅 게이트들을 포함하는 메모리 셀들을 포함한다. 메모리 어레이들은 예를 들어 전하 트랩핑 유전체 대신에 다른 장기간 전자 전하 저장 소자들을 포함할 수 있다. 비휘발성 다중-상태 저장 소자들, Flash/EEPROM/플로우팅 게이트인 저장 소자들, NROM, MNOS, MRAM/FRAM, NAND, NOR와 같은 비휘발성 저장 소자들 및 소거 유닛들로 조직되는 비휘발성 저장 소자들을 포함한 각종 비휘발성 저장 소자들이 사용될 수 있다. 디지털 정보, 아날로그 정보 또는 이들 둘 다의 조합을 저장하는 비휘발성 저장 소자들이 사용될 수 있다.
메모리 셀 어레이는 각 저장 소자를 위하여 규정된 2개의 전하 레벨들로 동작되어 각 소자에 하나의 데이터 비트를 저장한다. 대안적으로, 2가지 이상의 저장 상태들은 각 저장 소자를 위하여 규정될 수 있는데, 이 경우에 하나 이상의 데이터 비트는 각 저장 소자에 저장된다.
도4a는 메모리 칩이 소거 유닛들(또는 블록들)의 그룹들로 포맷화될 수 있는데, 이 블록들은 물리적 플레인들 및 논리적 존들에 따라서 배열된다. 이 방식에서 칩을 분할하는 몇 가지 이유들은, 각 그룹내에서 양호한 소거 유닛들의 수를 동일하게 하고 메모리 칩의 특수용 섹션들을 제외하는 것을 포함한다. 예를 들어, 특수한 "예약된" 섹션은 시스템 및 장치 파라미터들과 같은 정보 및 존 얼라인먼트(zone alignment)에 관한 정보를 저장하기 위하여 제외될 수 있다. 섹션은 또한 스페어들 또는 스페어 블록들로서 공지된 스페어 소거 유닛들을 저장하기 위하여 제외될 수 있다. 스페어들, 예를 들어, 스페어들의 물리적 어드레스들과 관련되는 정보는 필요한 경우 검색을 위하여 스페어 리스트에 유지될 수 있다. 예를 들어, 결함이 N개의 존들 중 한 존에 포함된 소거 유닛들 중 한 유닛에서 검출될 때, 스페어는 결함있는 소거 유닛을 이용가능한 스페어 소거 유닛들 중 한 유닛에 재맵핑함으로써 발견될 수 있다.
호스트로부터의 데이터는 전형적으로, 논리적 섹터들로서 식별되는 메모리 시스템에만 제공된다. 예를 들어, 호스트는 시작 논리적 섹터 및 총 섹터수와 관련하여 나타낸 데이터를 전송할 것이다. 호스트 내에서, 이들 논리적 섹터들은 더 큰 유닛들로 구조화될 수 있지만, 이 정보는 전형적으로 메모리의 컨트롤러로 통과되지 않는다. (이들 호스트 구조들에 대한 지식은 메모리 또는 컨트롤러 구성들에서 물리적 구조들을 알도록 하는데 사용되지만, 이들 구성들은 호스트가 데이터를 전송하는 방법을 반영하기 때문에 이들 호스트 구조들을 반영한다: 예를 들어, 메모리들은 전형적으로 논리적 섹터와 동일한 크기인 물리적 섹터를 토대로 사용자 데 이터를 저장하도록 구조화된다). 컨트롤러는 논리적 구성들로 호스트 구조들을 조직하는데, 이 논리적 구성들은 물리적 메모리에 이들을 더욱 효율적으로 저장하기 위한 물리적 구조를 모방한다. 예를 들어, 통상적인 배열에서, 메모리 시스템 컨트롤러는 논리적 섹터들(호스트에 의해 규정됨)을 블록의 물리적 구조에 크기면에서 대응하는 논리적 블록들로 그룹화하는데, 이는 플래시 형 메모리용 물리적 소거 유닛이다. 그 후, 컨트롤러는 예를 들어 섹터 어드레스 테이블(SAT)의 형태로 논리적 구성들에 대한 물리적 구조의 관계를 유지시키고 논리적 대 물리적 관계 변화들에 따라서 이 대응성을 갱신한다.
더 큰 효율을 위하여, 메모리 시스템들은 종종 더 큰 구조들을 도입함으로써 병렬화를 개선시킨다. 예를 들어, 기록, 판독 또는 이들 둘 다를 동시에 할 수 있는 다수의 반자동 어레이들을 갖는 메모리 시스템에서, 여러 어레이들로부터 블록들은 "메타블록" 구조들로 그룹화되고 컨트롤러는 데이터의 논리적 블록들을 대응하는 논리적 메타블록들로 형성하여, 다수의 블록들이 동시에 동작되도록 한다. 메타블록은 단일 메모리 칩을 갖는 플레인들 또는 여러 메모리 칩들에 걸쳐서 분포되는 하나 이상의 플레인들로부터 형성될 수 있다. 이 방식으로, (논리적으로) 순차적인 섹터들이 병렬로 판독/프로그램/소거될 수 있는 다수의 물리적 블록들에 걸쳐있도록 함으로써, 이 그룹은 최소수의 비동시 판독, 프로그램, 또는 소거 동작들과 동시에 판독/프로그램/소거될 수 있다. 이 배열은 상대적으로 많은 량의 데이터의 논리적으로 연속한 섹터들을 순차적으로 판독 및 기록하는데 유용하다.
도5 내지 도10의 구조가 우선 논의되고 나서 각 도면에 도시된 동작들이 개 별적으로 설명될 것이다. 도5-10은 도1-3의 메모리 어레이의 예로서 총 24개의 소거 유닛들에 대해서 4개의 플레인들에서 6개의 블록들의 배열을 도시한다. 간편성을 위하여, 소거 유닛들은 블록이 일종의 소거 유닛이기 때문에 블록이라 칭할 것이다. 이 6×4 블록 구조의 크기는 후술되는 바와 같이 설명을 간편하게 하기 위하여 선택된다. 전형적인 메모리 어레이는 본원에 도시된 것보다 훨씬 많은 블록들을 포함하고(훨씬 많은 로우들을 갖는다) 비휘발성 메모리 시스템의 병렬화가 4개보다 큰 경우 도시된 것보다 더 많은 플레인들을 가질 수 있다.
각 플레인은 전형적으로, 자체 데이터 레지스터들 및 프로그래밍 회로들을 갖는다. 이는 플레인들 각각의 메모리 셀들의 블록들로 동시 프로그램을 허용한다. 각 플레인은 다른 플레인들과 반독립적으로 동작될 수 있다. 도시를 간단히 하기 위하여, 도5-10에 도시된 플레인들은 6개의 물리적 블록들(0-5)을 갖도록 도시된다. 임의의 소정 형태에서 실제 블록들의 수는 더 작을 수 있지만, 통상적으로 훨씬 더 많다.
많은 수의 블록들이 존재하는 시스템에서, 플레인들은 도4a에 도시된 바와 같이 존들로 논리적으로 분할될 수 있다. 이 존들은 다수의 플레인들에 걸쳐서 확장된다. 플레인을 더욱 소형의 더 많은 관리가능한 세그먼트들로 분할하기 위해선 플레인들을 존들로의 분할이 행해진다. 존 내의 각 플레인에서 블록들은 동일한 연속적인 세트의 물리적 블록 어드레스들을 차지할 수 있다. 존들의 수는 특히 제한되지 않지만, 실제 설계 판정들은 특정 메모리 시스템에서 구현되는 존들의 수에 영향을 미칠 수 있다. 본 발명의 각종 양상들은 존 구조를 갖거나 갖지 않는 메모 리에서 구현될 수 있고, 존 구조를 갖는 메모리들에 대해선 전체적으로 또는 개별적인 존들을 갖는 플레인들 내에서 구현될 수 있다.
도5-10에서 시나리오들에 적용되는 바와 같은 메모리 시스템에 의해 사용되는 동작 유닛은 바람직하게는 메타블록이다. 메타블록은 플레인들에 걸쳐서 다수의 물리적 블록들의 가상 링킹을 나타낸다. 메타블록의 선택적인 이용들은 메타블록 내의 모든 블록들의 파이프라인 소거, 및 메타블록의 각 블록으로부터 하나 이상의 페이지들의 파이프라인 프로그래밍 및 판독을 포함한다.
메타블록은 다수의 플레인들에 걸쳐서 확장되고 전형적으로 도5-10에 도시된 연결된 화살표들의 세트들 각각에서 화살표들로 도시된 바와 같은 이들 플레인들 각각으로부터 하나의 블록을 포함한다. 도5는 가장 간단한 형태의 메타블록을 도시하는데, 모든 메타블록의 각 물리적 블록은 동일한 블록 오프셋을 갖고 모두 4개의 플레인들(0-3)에 걸쳐서 확장된다. 도10은 2개 이상의 복잡한 메타블록들을 도시한다. 이들 메타블록들의 생성은 도5-10의 설명에서 논의되는데, 메타블록에 포함되는 컴포넌트 블록들은 결함들에 부닥칠 때 갱신된다.
블록들을 메타블록들로 링킹하기 위한 더욱 일반적인 상황이 도4b에 도시된다. 시스템의 메모리 부분(도1-3 각각의 103, 203, 303)은 칩(0-Z)으로 이루어지며, 각 칩은 칩(0)DP 대해서 플레인들(00 내지 0W)과 같은 다수의 플레인들을 갖는다. x로 표시된 플레인에서 각 링크된 물리적 유닛은 도4c에 도시된 바와 같이 단일 물리적 블록 또는 도4d에 도시된 바와 같이 다수의 물리적 블록들로 이루어질 수 있다. 플레인들 및 칩들에 걸쳐서뿐만 아니라 깊이에서 블록들을 링크하는 도4d 에 도시된 2차원 메타블록들의 정렬은 특히 물리적 블록들이 작을 때 간편하게 될 수 있다. 그러나, 간편성이 도4d의 배열에 대한 주 이유일 수는 없다. 통상적으로 1차원 링킹의 주요 동기는 상이한 칩들/플레인에서 다수의 블록들에 기록될 수 있는 데이터를 동시에 취급하기 위한 메커니즘을 제공하는 것이다. 유사하게, 메모리 디자인이 병렬의 플레인 내의 하나 이상의 위치에 병렬 액세스(판독 및 프로그램)을 허용하면, 이는 동일한 플레인 내에서 다수의 블록들을 링크하는 것을 의미할 수 있다.
여러 메타블록 링킹들이 도시되어 있으며, 각 메타블록(MB)은 링킹에서 제1 블록의 제1 로우에 따라서 번호가 매겨지는데, 예를 들어, 블록 0으로 시작하는 메타블록은 MB0로 라벨링, 등등으로 된다. 도4b가 소정 링킹에서 그리고 여러 플레인들에 걸쳐서 실행되는 링킹에서 블록(및 단지 하나의 블록)을 갖는 각 플레인을 도시하지만, 이 상황들중 어느 것도 항상 이 경우가 될 필요가 있다. 예를 들어, 도5-10에서와 같이 4개의 블록들의 링킹은 단일 칩상에서 4개의 플레인들 또는 4개의 플레인들로부터 하나의 플레인으로 이루어질 수 있다.
도4b에 도시된 바와 같이, 링킹(MBO)은 동일한 로우로부터의 모든 블록들을 가지며, MB1은 동일한 로우로부터의 대부분의 블록들을 갖고, MB2는 선행 블록보다 적은 로우로부터의 각 블록을 갖는다. 도5-10에 설명은, 이 설명을 간편하게 하기 위하여 동일한 로우로부터의 모든 블록들을 갖는 MB0 경우를 취하는데, 더욱 일반적 인 경우가 후술된다. 이들 각종 링킹 방법들은 고정되거나, 이하에 더욱 상세하게 설명되는 본 발명의 양상을 따르면, 알고리즘을 토대로 결정된다. (대안적으로, 초기 결정은 랜덤 할당을 토대로 할 수 있다). 더욱 일반적인 내용에서, 본 발명의 각종 양상들은 일반적으로 물리적 구조들이 더 큰 논리적 컨글로메이트들(logical conglomerates)로 형성되고 이들 컨글로메이트들이 관리되는 방법에 적용될 수 있다.
도10에 도시된 바와 같은 제1 메타블록은 4개의 플레인들(0-3) 각각에서 블록(0)을 포함하고, 제2 메타블록은 플레인(0)에서 블록(1),플레인(1)에서 블록(4), 플레인(3)에서 블록(5) 및 플레인(3)에서 블록(4)를 포함한다. 제3 메타블록은 4개의 플레인들(0-3) 각각에서 블록(2)을 포함한다. 제4 메타블록은 플레인(0)에서 블록(3), 플레인(1)에서 블록(3), 플레인(2)에서 블록(3), 및 플레인(3)에서 블록(1)을 포함한다.
대안적으로, 메타블록은 단일 존 내에 포함되는 플레인들의 수의 서브셋 만을 포함한다. 이 예는 도시되지 않았지만 가변 병렬화 정도가 바람직한 경우 유용하게 될 수 있다. 가변 병렬화 정도를 갖는 시스템은 블록들을 상이한 병렬화를 갖는 에어리어들 간에서 이동시킬 수 있다. 예를 들어, 4개 대신에 2개의 블록들을 포함하는 메타블록은 병렬화가 2(2개의 플레인들)인 에어리어에서부터 (예를 들어 4-플레인에서처럼) 병렬화가 4인 에어리어로 이동할 수 있다. 2개의 멤버들을 각각 포함하는 2개의 메타블록들이 이와 같은 시스템에 존재하면, 이들은 하나의 4-멤버 메타블록에 결합될 수 있다. 이와 같은 혼합된 병렬화 시스템을 이용하기 위한 한 가지 방법은, 결함 맵이 가변하는 병렬화를 고려하도록 조정되어야 한다는 것이다.
일반적으로, 메타블록들을 이용하면, 더 많은 블록들이 병렬로 한번에 처리되도록 함으로써 메모리 시스템의 병렬화를 증가시킨다. 이 증가된 병렬화는 메모리 시스템의 수행성능을 크게 증가시킨다. 메모리 시스템은 각종 메타블록들 내에서 개별적인 블록들의 아이덴터티를 유지한다. 예를 들어, 각종 메타블록들 내의 개별적인 블록들의 아이덴터티는 시스템 내의 어떤 간편한 위치에서 링크된 리스트로서 유지될 수 있다.
통상적으로, 각 페이지의 사용자 데이터와 함께 저장된 오버헤드 데이터는 플레인, 존 및 페이지들이 상주하는 블록을 식별하는데 충분한 논리적 및/또는 물리적 어드레스뿐만 아니라 이 블록 내 페이지의 오프셋을 포함할 것이다. 그 후, 어드레스 맵은 페이지 오버헤드 데이터의 이들 어드레스 필드들을 판독하는 컨트롤러에 의해 컨트롤러의 메모리 내에서 생성된다. 이는 통상적으로, 이 메모리의 파트에 관한 프로그래밍, 판독 또는 소거 동작에 앞서 한번에 메모리의 파트에 대해서 행해진다.
도5-10은 시스템이 메모리 어레이의 물리적 블록들에서 결함들의 검출에 응답하는 방법을 도시한 것이다. 이들 결함들은 공장 또는 성장된 결함들일 수 있다. 이 일련의 도면들은, 새로운 결함에 부닥칠 때마다 발생되는 것을 나타내고자 하는 것이다. 도시를 위하여, (1-5)로 번호가 매겨진 물리적 블록들은 결함들을 포함한다.
제1 도면, 즉 도5는 결함들이 없는 메모리 어레이의 일부분을 도시한 것이 다. 다수의 메타블록들은 모두 4개의 플레인들을 가로질러 진행하는 6개의 수평 화살표들로 도시된다. 각 메타블록은 규정된 수의 물리적 블록들을 포함한다. 도5-10에서, 규정된 수의 물리적 블록들은 모든 메타블록들에 대해서 4개인데, 이는 플레인들의 수에 대응한다.
도5는 공장 또는 성장된 결함들이 발견되지 않는 메모리 어레이의 일부분을 도시한 것이다. 이 도면을 가로질러 수평으로 진행하는 블랙 화살표들은 6개의 선형 표준 메타블록들을 도시한다. 선형 표준 메타블록은 도5에 도시된 바와 같은 정합하는 오프셋들을 갖는 물리적 블록들을 포함하는 메타블록이다. 초기 링킹들은 후술되는 바와 같이 알고리즘에 따라서 설정되거나 이용가능한 양호한 블록들의 소거 풀(pool)로부터 형성될 수 있다.
본 발명의 일 실시예에서, 메타블록의 특징은, (제1 물리적 블록 어드레스와 관련되는) 제1 가상 블록 어드레스가 특정 메타블록과 관련된 나머지 물리적 블록들의 위치들을 결정하는데 필요로 되는 유일한 정보라는 것인데, 링킹된 메타블록들의 나머지는 링킹 알고리즘에 의해 결정된다. 이는 메타블록들을 저장하는데 필요로 되는 데이터의 크기를 감소시킨다. 결함이 제1 물리적 블록에서 부닥치면, 전체 메타블록은 무효하게 되고 이용가능한 플레인들 또는 플레인들 각각에 걸쳐서 위치되는 메타블록의 나머지 멤버들을 가리키는 어떠한 메커니즘이 더이상 존재하지 않기 때문에 어드레스 공간 밖에서 맵핑된다. 이의 예는 이하의 도9의 논의에서 도시될 것이다.
도6은 제1 새로운 결함이 부닥친 후 어레이의 상태를 도시한 것이다. 새로운 결함이 플레인(2) 상의 블록(1)에 위치되는 "A"로 라벨된 물리적 블록의 MB1에 위치된다. 메타블록 내의 물리적 블록이 불량일 때, 메타블록은 그 대로 더이상 사용될 수 없다. 한 가지 간단한 해결책은, 어드레스 공간 밖에서 메타블록을 맵핑하고 이를 다시 결코 사용하지 않는 것이다. 이는 시스템이 단지 하나의 단일 불량 물리적 블록만을 갖고 스페어 블록들이 이용될 수 없는 경우에 이용할 수 있는 유일한 해결책이다. 그러나, 다수의 불량 물리적 블록들이 나타나는 경우, 이 해결책은 불량 메타블록과 관련된 나머지 물리적 블록들이 다른 양호한 메타블록들을 생성하는데 사용될 수 있기 때문에 빠르게 무용하게 된다. 도6에서 발견된 결함("A"로 라벨됨)에 따라서, 나머지 3개의 양호한 물리적 블록들(해치 마크로 도시)은 스페어들이 된다.
도7은 제2의 새로운 결함에 부닥친 후 어레이의 상태를 도시한 것이다. 새로운 결함은 플레인(3) 상의 블록(3)에서 MB2에 위치되는 "B"로 라벨된 물리적 블록에 있다. 도11에 도시된 맵과 같은 결함 맵을 유지하기 위한 방법에서, 결함이 발생된 플레인(플레인 3)이 임의의 이용가능한 스페어 블록들에 대해서 탐색될 것이다. 여기서, 물리적 블록(1)(도6에서 해치로 도시되어 있다)은 플레인(3)에서 이용될 수 있다. 블록(1)이 플레인(3)에서 이용될 수 있기 때문에, 메타블록은 블록(1)을 가리키도록 갱신되어 메타블록의 결함있는 부분을 대체한다. 즉, 플레인(3)에서 MB3 의 결함있는 블록은 MB1의 플레인(2)에서 블록 "A"의 불량으로 인해 여분인 MB1의 플레인(3)에서 양호한 블록으로 링킹에서 대체된다. 불량한 물리적 블록에 부닥칠 때, 스페어 물리적 블록은 메타블록에 링킹되어, 불량 물리적 블록의 위치를 취한다.
(사용된 명칭 협약하에서, 도6 및 도7의 지점에서 메타블록(MB1)이 존재하지 않는데, 그 이유는 전체 메타블록이 플레인(0)에서 블록 번호를 토대로 명명되기 때문이다. 명명된 MB1은 플레인(0)에서 블록(1)이 도8에서 발생되는 바와 같이 새로운 링킹에서 리턴되지 않는 한 철회(retire)된다).
도8은 제3의 새로운 결함에 부닥친 후 어레이의 상태를 도시한 것이다. 새로운 결함은 플레인(0) 상의 블록(4)에 위치되는 "C"로 라벨된 물리적 블록에 위치된다. 이 메타블록은 결함있는 블록이 플레인(0) 상에 위치되기 때문에 재링킹된다. 플레인(0) 상에 위치되는 블록은 메타블록의 멤버들의 나머지에 대한 참조 정보를 포함하고 플레인(0) 상에 블록이 없다면, 채택된 협약하에서 메타블록을 참조할 방법은 없다. 그러므로, 스페어 블록이 플레인(0) 상의 블록(1)에서 이용될 수 있을 지라도, 이는 이 메타블록을 완성하기 위하여 사용될 수 없다. 대신에, 플레인(0) 상의 블록(1)은 가상 어드레스 공간으로 재맵핑되고 새로운 메타블록에서 제1 블록으로서 사용되어 이전 메타블록(MB4)의 플레인들(1, 2 및 3)에서 새로운 용장 블록들을 이용한다. 따라서, 결함있는 블록 "A"은 플레인(2)의 블록(4)로 대체될 수 있다. 플레인(3)의 블록(1)이 도7에서 재맵핑될 때, 이는 또한 대체될 필요가 있다. 결국, 재링크된(MB1)은 플레인들(2 및 3)로부터 블록(4)에서 스페어들을 이용하여 형성될 수 있다. 플레인(1)에 대해서, 블록은 블록(1) 및 블록(4)에서 이용될 수 있다. 이 블록중 어느 한 블록이 재링크된 MB1을 완성하기 위하여 선택될 수 있을 지라도, MB4에서 이전 블록이 이 예에서 사용된다. 결국, 재링크된 MB1은 플레인(0) 상의 블록(1), 플레인(1) 상의 블록(4), 플레인(2) 상의 블록(4), 및 플레인(3) 블록(4)를 포함한다. 이 때에, 단지 하나의 스페어 블록이 플레인(1) 상의 블록(1)에 남아있다.
도9는 제4의 새로운 결함에 부닥친 후 어레이의 상태를 도시한 것이다. 새로운 결함은 플레인(0) 상의 블록(5)에서 위치되는 "D"로 라벨되는 물리적 블록에 위치된다. 이 때에 플레인(0)에 위치되는 스페어 블록들이 존재하지 않기 때문에, 이 메타블록은 재링크될 수 없다. 따라서, 남아있는 물리적 블록들은 스페어 물리적 블록 풀에 부가된다. 이는 플레인(1) 상의 블록(5), 플레인(2) 상의 블록(5) 및 플레인(3) 상의 블록(5)를 포함한다. 이 때에, 4개의 스페어 블록들은 도시된 메모리 어레이에서 이용될 수 있다.
도10은 제5의 새로운 결함에 부닥친 후 어레이의 상태를 도시한 것이다. 이 새로운 결함은 플레인(2) 상의 블록(4)에 위치되는 "E"로 라벨된 물리적 블록에 위치된다. 스페어 블록이 동일한 플레인(플레인(2) 상의 블록(5)) 상에서 이용될 수 있기 때문에, 메타블록(MB1)은 이 스페어 블록을 이용하여 재링크된다.
도10에서, 로우들(1, 3, 4 및 5)에 대응하는 6개의 원래 메타블록들 중 4개가 불량 블록들을 갖지만, 재링킹은 4개의 양호한 메타블록들을 발생시킨다. 배경 부에 서술된 미국 특허 6,034,897호에 서술된 바와 같은 고정된 링킹하에서, 이들 결함들은 6개의 도시된 메타 블록들중 4개의 손실을 발생시킨다. 이 방식으로, 더 큰 데이터 용량이 메모리에 의해 유지되는데, 그 이유는 노후화되고 결함들이 발생되기 때문이다.
도11은 메타블록의 컴포넌트 멤버들이 논리적 대 물리적 맵핑 테이블(1101)을 이용하여 맵핑될 수 있는 방법을 도시한 것이다. LBN[0]과 관련되는 메모리(1103)내의 메타블록(또는 이 구조를 이용하는 실시예에서 메모리 존) 은 해시 로 표시되는 블록들로 도시된다. (이 예에서) 메모리의 4개의 플레인들은 또 다시 하나 이상의 칩에 걸쳐서 분포될 수 있다. LBN[0] 내에 포함되는 PNB 엔트리들은 해시로 표시되고 메타블록의 부분들인 블록들 각각의 물리적 어드레스들에 관한 것이다. 플레인(0)에 포함되는 메타블록의 제1 멤버는 다른 메타블록 멤버들에 액세스하도록 사용된다. 도5 내지 도10과 관련하여 서술된 바와 같이, 플레인(0)에서 메타블록 멤버는 결함이 있는 것으로 밝혀지면, 전체 메타블록은 결함이 있는 것으로서 표시되는데, 그 이유는 이들이 플레인(0) 상의 멤버를 통해서 메타블록의 나머지에 링크되기 때문이다.
맵핑 테이블(1101)은 메타블록들을 형성하기 위한 블록들의 링킹의 레코드의 일 예이다. 메타블록 컴포지션의 적응성을 고려하는 한 가지 기술은, 메타블록이 기록 프로세스에 필요로 될 때마다 이용가능한 양호한 블록들의 풀로부터 메타블록을 동적으로 형성하는 것이다. 이 기술이 메타블록 구조에 대한 적응성을 고려하지만, 블록이 필요로 될 때마다 링킹이 재설정될 필요가 있다. 게다가, 각 플레인은 이 풀을 결정하기 위하여 액세스될 필요가 있다. 본 발명의 주 양상들 중 한 가지 양상을 따르면, 이 레코드는 비휘발성 메모리 내의 위치에 저장된다. 그 후, 이 레코드는 어드레스 변환시 사용하기 위하여 주문형 컨트롤러 상의 플래시 메모리로부터 휘발성 메모리(또는 대안적인 비휘발성 메모리)까지 판독될 수 있다.
한 세트의 실시예들에서, 링킹 정보의 레코드는 사용자 데이터가 저장되는 정상 물리적 블록들 밖의 어느 곳에서와 같이 특수한 비휘발성 메모리 장소에서 유지될 수 있다. 예를 들어, 이 레코드는 도4a의 플레인(0)에서 예약된 에어리어들 중 한 에어리어에 유지되거나 본원에 참조된 미국 특허 공개 2003/0065899에 서술된 바와 같은 배열 내의 시스템 존들 중 임의의 존에서 유지될 수 있다. 또 다른 세트의 실시예들에서, 링킹 정보는 기록된 또는 부분적으로 기록된 블록들을 위한 사용자 데이터 섹터들/제어 데이터 섹터들의 헤더 에어리어에 유지될 수 있다. 소거된 상태에서 블록들에 대해서, 링킹 정보는 비휘발성 메모리 내의 특수한 제어 데이터 에어리어에 저장될 수 있다.
이와 같은 테이블을 이용함으로써, 메타블록들로 블록들의 링킹은 결함들을 수용하도록 갱신될 수 있고, 비휘발성 메모리에 레코드를 유지함으로써, 필요로 되는 경우 손쉽게 액세스됨으로써, 배경부에 논의된 종래 기술의 제한을 극복한다.
본 발명의 양상의 결함 맵은 플레인(1) 상의 불량 블록을 도시하는 도12에 도시된다. 불량 블록은 "X"로 표시된다. 블록이 결함이 있다라고 밝혀지기 전에, 이 블록을 가리키는 메타블록 LBN[0]의 제2 멤버는 점선의 화살표(1201)로 도시된다. 스페어 블록들(1203)의 콜렉션은 해치로 도시된 동일한 플레인 상에서 이용될 수 있는 스페어를 갖는다. (대안적으로, 스페어가 도5 내지 도10의 프로세스에서 처럼 에러를 발생시키는 또 다른 링킹으로부터 플레인(1)에서 이용될 수 있다면, 이는 스페어들(1203)의 콜렉션으로부터 블록 대신에 사용될 수 있다). 스페어(PBN')의 물리적 블록 번호(PBN)는 불량 블록의 PBN을 대체할 것이다. 따라서, 이 스페어는 화살표(1202)로 도시된 바와 같이 메타블록의 부분이 된다.
도13은 도11의 맵 구조와 유사한 맵 구조의 예를 도시한 것이다. 도13의 맵 구조는 플레인(2) 상에서 "X"로 표시된 블록상에 도시된 바와 같이 불량 블록, 가능한 성장된 결함을 도시한다. 스페어는 플레인(2) 상의 소거 풀(1302)에서 스페어 블록들의 콜렉션이 스페어들을 갖지 않는 것으로 도시된 바와 같이 불량 블록과 동일한 플레인 상에서 이용될 수 없다. 그러므로, 스페어를 가리키도록 플레인(2) 상의 불량 블록을 재지향시키는 대신에, 메타블록의 나머지와 관련된 물리적 블록들(플레인 0, 1 및 3 상의 블록들)은 3개의 하향 포인팅 화살표들로 도시된 바와 같이 스페어 풀에 부가된다.
도14는 도11-도13의 데이터 구조를 이용하여 결함 맵을 유지하는 방법의 예를 도시한 것이다. 결함이 검출되거나 부닥치게 되면, 결함의 위치는 물리적 위치 또는 물리적 블록 번호(PBN)를 조사함으로써 결정된다. 스페어 블록이 결함 블록의 물리적 위치와 동일한 플레인에서 이용될 수 있다면, 결함과 관련된 메타블록은 결함있는 블록을 대체하기 위하여 스페어로 지정되는데, 이 후 결함 맵은 갱신된다. 이 시나리오는 도12에 도시되어 있다. 그렇치 않다면, 결함있는 블록과 동일한 플레인에서 남아있는 스페어 블록들이 존재하지 않는다면, 메타블록으로부터 남아있 는 양호한 블록들은 스페어 풀로 지향된다. 이 시나리오는 도13에 도시되어 있다.
상술된 바와 같이, 본 발명의 원리적인 양상들 중 한 양상은 컨트롤러가 비휘발성 메모리에서 링킹 테이블의 레코드를 유지하는 것이다. 이 레코드는 도11 내지 도13의 논리적 대 물리적 맵핑 테이블(1101)과 같은 소정의 물리적 어드레스에 대응하는 각 메타블록을 형성하는 블록들의 완전한 리스팅일 수 있다. 대안적으로, 메타블록들로 물리적 블록들의 표준 링킹은 결정론적 알고리즘을 토대로 하며, 비휘발성 메모리에 유지되는 레코드는 링킹 룰로부터의의 임의의 편차들 만을 포함할 필요가 있다. 링킹이 결함들로 인해 갱신되어 결국 표준 링킹으로부터 벗어날 때, 레코드는 이에 대응하여 갱신된다.
메타블록들로 물리적 블록들을 링킹하기 위하여 사용되는 서술된 메커니즘들은 불량 물리적 블록들의 임의의 분포를 위한 메타블록들의 수를 최대화하여 물리적 블록들이 시스템의 수명 동안 불량일 때 새로운 메타블록들이 생성되도록 한다. 상기와 같이, 메타블록 수는 메타블록에 포함되는 제1 플레인에서 물리적 블록의 어드레스로부터 규정된다.
"표준" 메타블록은 물리적 블록 어드레스들이 메타블록 수의 결정론적 함수인 물리적 블록들을 포함한다. 예를 들어, 이는 도5-10의 예를 위하여 사용되는 도4b에서 메타블록(MB0)의 배열일 수 있는데, 여기서 표준 메타블록의 모든 블록들은 동일한 로우에 있다. 이 배열은 MBi=(i, i, i, i)로 표시되는데, 괄호안의 n번째 엔트리는 n번째 플레인 내의 블록이 속하는 로우를 표시한다.
또 다른 예에서, 도4b의 메타블록(MB2)의 배열에서 처럼, 물리적 블록 어드레스는 메타블록 수 더하기 물리적 블록이 속하는 플레인의 순차적인 번호와 동일한 오프셋에 의해 제공된다. 즉, 메타블록(i)은 블록들 i+(플레인 수)로 이루어진다. 4개의 블록들의 메타블록에 대해서, 이는 MBi=(i, i+1, i+2, i+3)으로 표시될 수 있다. 이 구조는 도15에 도시되고, 알고리즘 기반으로 한 링킹 테이블을 논의하기 위하여 사용될 것이다. 더욱 일반적으로, 이 알고리즘 기반으로 한 결정론적 링킹은 명백한 방식으로 다음의 다른 수들에 대해 확장을 지닌, 4개의 블록 메타블록의 경우에 대해서 다음과 같이 서술될 것이다.
MBi=(i, f1(i, 플레인 수), f2i, 플레인 수), f3i, 플레인 수))
이 표현식에서, i는 로우 수이며, f1, f2 및 f3는 로우 및 플레인 수의 일부 함수들이다. 메타블록 수가 플레인(0)의 로우 수와 동일하다는 협약에 따라서, MB1에서 제1 엔트리는 i가 된다. 도5-10의 예들에 대해서, f1=f2=f3=i인 반면에, 도15에 대해선, f1=f2=f3=i+(플레인 수)이다. 알고리즘 기반으로 한 링킹을 위한 재링킹 프로세스의 논의는 주로 도5-10의 프로세스에서 생략된 버전을 통해서 행해지지만 도15의 표준 링킹을 토대로 행해질 것이다. 컨트롤러는 표준 링킹을 결정하기 위한 펌웨어-기반으로 한 구현방식을 이용할 수 있다.
물리적 블록들은 가능한 수의 표준 메타블록들을 최대화하는 룰에 따라서 메타블록들로 링크된다. 메타블록이 링크될 때, 표준 블록은 필요로 되는 물리적 블 록이 이용될 수 있는 경우에 생성된다. 표준 메타블록의 형성을 위하여 필요로 되는 임의의 물리적 블록이 불량이면, 메타블록 수는 비사용되는 것으로서 분류된다. 표준 메타블록을 형성하는데 필요로 되는 임의의 물리적 블록이 불량이면, 메타블록 수는 비사용되는 것으로서 분류된다. 이 경우에, 결국 링크되지 않은 채 있는 다른 사용가능한 물리적 블록들은 도15에서 메타블록 n+1에 대해서 도시된 바와 같은 스페어로서 분류된다.
본 발명의 또 다른 양상은 카드상에 결함들의 패턴을 토대로 표준 링킹 패턴을 최적화하거나 그렇치 않다면 사용가능한 표준 메타블록들의 수를 최대화하기 위한 것이다. 카드가 포맷(또는 재포맷화)될 때, 불량 블록들의 패턴은 스캐닝되고 "표준" 링킹 패턴에 관한 판정이 행해져, 이들이 가능한 서로 정합하도록 한다. 많은 경우들에서, 불량 블록 패턴으로의 표준 링킹을 위한 알고리즘의 정합은 필요로 되는 재링크된 메타블록 및 메타 대 물리적 어드레스 변환 오버헤드를 감소시켜, (적어도 초기에) 링킹을 최적화한다. 이의 일 예가 도16 및 도17에 도시된다.
도16 및 도17은 4개의 불량 물리적 블록들, 즉 각 플레인들(0-3)로부터 하나가 대각선으로 진행하는 예를 고려하자. 불량 블록들의 대각선 패턴의 경우에, 표준 블록들을 위한 최적의 패턴은 또한 도16에 도시된 바와 같이 대각선이 될 것이다. 따라서, 이 예에서, 링크된 블록들이 전혀 존재하지 않음으로, 결국 메타블록들 중 어떤것도 링킹 테이블을 통해서 변환을 필요로 하지 않고 사용가능한 메타블록들의 수는 증가된다. 도17은 표준 링킹이 불량 블록 패턴에 정합하는 것이 아니라 직접 가로지를 때 등가의 상황을 도시한 것이다. 표준 방법이 직접 가로지르는 예에서, 3개의 메타블록들(n+2, n+3 및 n+4)이 재링크될 필요가 있다.
표준 블록 패턴은 매 카드에 대해서, 매 재포맷팅에 대해서 또는 이들 둘 다에 대해서 특정될 수 있다. 이는 여분의 데이터 보안 레벨을 제공할 수 있는데, 여기서 매 카드는 상이한 블록들을 가로질러 데이터를 스크램블하는 특정 방법을 갖는다. 결국, 표준 메타블록들은 반드시 동일한 구성을 가질 필요는 없지만, 이들은 동일한 룰을 이용하여 형성될 것이다. 또 다른 실시예에서, 호스트는 룰 및 메타블록 링킹 룰을 위한 코드를 제공하길 원함으로, 알고리즘은 시스템 특정되지 않는다.
메타블록들이 초기 포맷팅 프로세스 동안 링크될 때, 블록 어드레스 공간의 시작 근처 또는 칩 또는 다이 경계들 근처의 일부 물리적 블록들은 도20에 도시된 바와 같이 표준 메타블록들로 링크될 수 없다. 이들 물리적 블록들은 스페어로서 분류된다. 스페어 물리적 블록들은 스페어 물리적 블록 리스트에 기록된 후, 도9에 서술된 바와 같이 재링크된 메타블록들을 형성하는데 사용될 수 있다.
표준 블록들로서 존재할 수 없는 메타블록들은 재링크된 메타블록들로서 구조화될 수 있다. 재링크된 메타블록들은 메모리 시스템의 초기 포맷화 프로세스 동안 또는 기존의 메타블록 내에서 물리적 블록의 불량에 응답하여 형성될 수 있다. 도19의 메타블록(n+4)은 표준 메타블록으로서 링크될 수 없는데, 그 이유는 플레인(2)에서 필요로 되는 물리적 블록이 불량이기 때문이다. 이 경우에, 재링크된 메타블록은 플레인(2)에서 스페어 물리적 블록을 대체함으로써 생성된다. 불량 물리적 블록 대신에 재링크되는 스페어 물리적 블록은 불량 블록과 동일한 플레인 에 바람직하게 위치되어 메타블록 내에서 프로그래밍 병렬화를 유지한다.
바람직한 실시예에서, 또 다른 다이 또는 칩으로 가로질러 진행하는 재링킹이 부가적인 다이/칩 판독들 또는 프로그램들을 트리거 할 수 있을 때 동일한 다이 또는 칩 내에서만 블록들을 재링크하는 것이 바람직하다. 예를 들어, 메타-블록이 2개의 플레인들 각각을 갖는 2개의 칩들에 걸쳐있는 4-플레인 메타-블록의 전형적인 경우에, 데이터는 모두 4개의 플레인들(또는 이 플레인들로부터 판독)로 프로그램될 수 있는데, 이는 병렬로 2칩 판독/프로그램을 필요로 한다. (이는 100% 병렬이 아니라 파이프라인이 아님으로, 페이지 판독, 블록 프로그램 및 소거는 병렬로 행해질 수 있지만, 데이터 전달이 병렬이 되지 않도록 데이터 버스는 공유된다). 이 경우에, 메타블록이 재링크되어 물리적 블록이 다른 2개와 동시에 액세스할 수 없는 또 다른 제3 칩으로부터 취해지도록 하고 동작 시간이 2배가 될 수 있도록 한다.
플레인(0)에서 불량 물리적 블록이 플레인(0)으로부터 스페어 블록으로 대체되면, 메타블록 수는 도20의 메타블록에 대해서 도시된 바와 같이 스페어 블록의 수로 규정된다. 재링크된 메타블록들은 다음의 물리적 블록 불량의 이벤트에서 부가적으로 재링크될 수 있다. 표준 메타블록들로서 링크될 수 없는 어드레스 공간의 최상부에 근접한 메타블록들은 재링크된 메타블록들의 형태를 취할 수 있다.
도4d와 관련하여 상술된 바와 같이, 블록 플레인들 및 칩들에 걸쳐서 뿐만 아니라 소정 플레인 내의 깊이에서 블록을 링크하는 2차원 메타-블록들을 이용하는 구성들이 또한 존재한다. 도21은 2차원 경우에서 재링킹의 예를 도시한 것이다. 도21에서, "2-D 메타블록"은 2*4 메타블록의 예이다. 수행면에서 최대 이점은 모두 8개의 블록들이 병렬로 액세스될 수 있을 때 성취될 수 있다. 1-D 링킹 방법들의 주 링킹 및 재-링킹 원리들은 또한 적용되지만 어떤 확장들을 갖는다. 도면에서 알 수 있는 바와 같이, 플레인 내의 물리적 블록들 중 임의의 블록에서 불량 물리적 블록은 메타블록(n)에 대해서 도시된 바와 같이 비사용되는 메타블록을 발생시킨다. 2-D 메타블록이 재링크될 때, 플레인(2)에서 메타블록 (n+2)의 상부 블록에 대해서, 소정 플레인에서 불량 물리적 블록만이 대체될 필요가 있다. 예를 들어, 플레인(2)에서 메타블록 (n+2)의 상부 블록에 대해서, 재링크되는 반면, 플레인(2)에서 메타블록(n+2)의 하부 블록은 존재하지 않는다.
표준 링킹으로부터의 편차들만이 비휘발성 메모리 내의 레코드에 유지되는 실시예에서, 메타블록 링킹을 위한 관리 데이터 구조들은 플래시 메모리 내의 하나 이상의 전용 블록 링키지 관리 블록들 내의 2가지 유형들의 섹터들 내에 포함될 수 있다. 이 배열은 완전한 링킹을 세이브하는 것과 관련하여 더 적은 정보의 저장을 필요로 한다는 이점을 갖는다. 메모리 시스템에서 매 재링크되는 메타블록의 메타블록 수들은 링크 테이블 섹터들의 세트 내의 링크 테이블에 포함된다. 표준 메타블록들에 대한 엔트리들이 링크 테이블에 저장될 필요가 없는데, 그 이유는 이들의 물리적 블록 어드레스들이 메타블록 수로부터 결정론적으로 발생되기 때문이다. RF(재링크된) 플래그는 메타-블록의 속성으로서 사용되어, 블록이 표준이고, 모든 블록들이 표준 방식으로 링크되는지를 나타내거나, 이것이 재링크되고 링크 테이블(LT)를 통해서 부가적인 블록 어드레스 변환을 필요로 하는지를 나타낸다. RF 플래그는 LT를 분석함으로써 결정될 수 있고, 그 후, SRAM에 저장되거나, 그 밖에 메타-블록에 대한 속성으로서 주 비휘발성 메모리 내의 제어 데이터 구조에 저장될 수 있다. 대안적으로, 재링크된 섹터들의 리스트는 어느 메타-블록들이 재링크되는지를 결정하기 위하여 탐색될 수 있는 리스트에 유지될 수 있다. 링크 테이블 내의 엔트리들은 메타블록 수로 순서화될 수 있고, 각 엔트리는 메타블록 수에 대한 필드들 및 각 링크된 물리적 블록의 블록 어드레스를 갖는다.
이 링크 테이블 구조의 확장에서, 표준 링킹을 설정하는 기본 알고리즘으로부터의 편차들 자체는 한 세트의 룰들을 토대로 할 수 있는데, 예를 들어, 비표준 링킹은 단일 플레인으로 제한될 수 있거나 블록이 원래의 로우로부터 얼마나 멀리 재링크될 수 있는지를 제한할 수 있다. 재링킹이 모든 알고리즘들에 대해서 예외적일 때에만, 명백히 이는 비휘발성 메모리에 유지될 필요가 있다.
링크 테이블의 특정 예 및 포함되는 정보가 압출될 수 있는 방법이 도22 및 표1과 관련하여 서술된다. 링크 테이블 섹터는 카드 내에서 재링크되는 블록들에 관한 정보를 유지한다. 카드의 크기 및 각 다이 내의 불량 블록들의 수에 따라서, 하나 이상의 테이블 섹터가 존재할 수 있는데, 이는 부트 블록(Boot Block)에 저장될 수 있다. 상술된 바와 같이, 메타-블록들은 링킹을 위한 표준 방법을 갖고 블록들 중 한 블록이 불량이면, 메타-블록은 동일한 플레인에서 스페어 물리적 블록과 재링크될 수 있다. 링크 테이블들 섹터들은 정보를 저장하는데, 이 정보에 관한 블록들이 재링킹에 사용된다. 도22는 메타-블록들의 재링킹의 또 다른 예이다.
도22에 도시된 메타블록들 중, 단지 메타블록 (0) 만이 8개의 플레인들을 가 로질러 직선으로 취해지는 표준 링킹을 갖는다. 이 도면은 여러 블록 링킹 상황들을 도시한다.
A. 메타블록 0은 재링키이 없는 표준 메타블록임으로 링크 테이블 섹터에서 나타나지 않는다.
B. 메타블록 1은 플레인들 0* 및 1에서 2개의 불량 블록들을 갖는다.
C. 메타블록 4는 플레인들 0* 및 5에서 2개의 불량 블록들을 갖는다.
D. 메타블록 5는 플레인들 1, 3 및 4에서 3개의 불량 블록들을 갖는다.
E. 메타블록 7은 플레인 0*에서 하나의 불량 블록을 갖는다.
F. 메타블록 9는 기존의 스페어 물리적 블록들로부터 완전히 재링크되지만, 플레인들 0 및 7내의 블록들이 원래 메타-블록으로부터 나온다.
이 경우들에서, 재링킹이 플레인 0에서 불량 블록으로 인한 것인 경우에 *로 표시된다. 이 경우에, 물리적 어드레스는 원래 메타블록이 존재하는 위치에 관한 것이다. 도22의 예에서 많은 수의 불량 블록들로 인해, 메타블록들 (2, 3, 6 또는 7)은 존재하지 않는다.
도22에 도시된 블록 재링킹을 위하여 사용되는 압축 알고리즘이 표1에서 처럼 규정된다.
표 1
임의의 링크 테이블 엔트리의 크기는 다음과 같이 규정될 수 있다.
바이트의 수 = 3+(3 * 재링크된 블록의 수)
예를 들어, 메타블록(1)에 대해서, 제1의 3개의 바이트들은 메타블록(1)을 식별하고 이는 2개의 재링킹들을 갖는데, 3바이트는 이들 재링킹들 각각을 규정하기 위하여 할당된다. 이 재링킹들은 재링크된 블록이 (1바이트)에 대응하는 8개의 플레인들 중 어느 플레인 및 재링크되는 로우 수에 의해 특정된다.
링크 테이블 내의 엔트리들의 전체 세트는 다수의 링크 테이블 섹터들에 걸쳐서 확산될 수 있다. 링크 테이블 섹터는 블록 링키지 관리 블록에서 다음 이용가능한 섹터 위치에 이를 기록함으로써 생성되거나 수정될 수 있다. 그러므로, 링크 테이블 섹터의 다수의 복제들이 존재하는데, 단지 최근의 버전만이 유효하다. 블록 링키지 관리 블록에서 유효 링크 테이블 섹터들의 위치들로의 인덱스는 후술되는 블록 링키지 관리 블록에서 스페어 물리적 블록 리스트 섹터 내의 필드에 포함될 수 있다. 각 유효 링크 테이블 섹터 내의 제1 엔트리에 관계하는 메타블록 수는 컨트롤러 RAM 내의 리스트에 유지되어, 임의의 메타블록 수에 대한 관련 링크 테이블 섹터의 식별을 용이하게 한다. 부가적인 엔트리가 최대 엔트리들의 수를 이미 포함하는 링크 테이블 섹터에 부가되어야만 하면, 이 섹터는 엔트리들의 절반을 각각 갖는 2개의 새로운 섹터들로 분리되고 새로운 엔트리는 적절한 새로운 색터에 삽입된다.
모든 스페어 물리적 블록들의 블록 어드레스들은 스페어 물리적 블록 리스트 섹터 내의 순서화되지 않은 리스트에서 엔트리들로서 유지된다. 일부 실시예들에서, 칩 당 플레인 당 최대 스페어 블록들의 수를 제한하는 것이 간편할 수 있다. 전형적인 실시예에서, 이는 16으로 제한되는데, 대부분의 경우들에 이는 충분히 크게되어야 한다. 플레인에서 16개 이상의 스페어 블록들이 존재하면, 이들은 "상실"될 것이다.
표준 메타블록이 메타블록들 내로의 플래시 메모리의 초기 구성동안 생성될 수 없기 때문에 또는 표준 또는 재링크된 메타블록으로 링크되는 물리적 블록이 불량이기 때문에, 스페어가 되는 블록들은 스페어 물리적 블록 리스트의 끝에 새로운 엔트리들로서 부가된다. 스페어 블록이 재링크된 메타블록의 생성을 위하여 필요로 될 때, 스페어 물리적 블록 리스트의 시초에 가장근접한 관련 플레인 내의 제1 블록이 사용될 수 있다. 스페어 물리적 블록 리스트 섹터는 또한 유효한 링크 테이블 섹터 위치들에 대한 인덱스를 갖는 필드를 포함한다.
메타블록 재링크 동작이 발생되고 링크 테이블 섹터들이 생성되거나 수정될 때, 스페어 물리적 블록 리스트 및 링크 테이블 섹터 인덱스 필드들 둘 다는 스페어 물리적 블록 리스트 섹터에서 수정될 수 있다. 그러므로, 유효 스페어 물리적 블록 리스트 섹터는 블록 링키지 관리 블록에서 최종 기록된 섹터이다. 블록 링키지 관리 블록이 채워질 때, 이는 모든 유효 섹터들을 새로운 블록 위치로 재기록함으로써 제어 기록 동작 동안 콤팩트하게 될 수 있고 전체 블록은 다음에 소거될 수 있다.
스페어 물리적 블록 섹터들의 세이브를 간단히 하고 대체 블록을 찾을 때 필요로 되는 탐색 량을 제한하기 위하여, 스페어 물리적 블록 리스트는 칩, 다이, 및 플레인에 의해 저장될 수 있다. 필요로 되는 실제 섹터들의 수는 메모리 장치의 크기, 장치들의 수 및 사용되는 인터리빙 방법에 좌우된다. 상술된 바와 같이, 플레인 당 단지 특정 수의 물리적 블록들을 저장하는 것이 간편하게 될 수 있다. 유지되는 이 수는 플레인 당 블록들의 수 및 블록들의 예측된 불량 레이트에 좌우될 것이다. 이는 각 스페어 물리적 블록 리스트 섹터가 여러 플레인들에 대해서 스페어 물리적 블록들을 유지한다는 것을 의미한다. 펌웨어는 로딩하기 위하여 정확한 섹터를 계산하고 나서 이 정확한 값들을 로딩하기 위하여 섹터 내로 인덱스할 것이다.
스페어 물리적 블록 리스트들의 수가 재링킹으로 인해 변화되거나 또 다른 불량 블록이 발견될 때, 새로운 스페어 물리적 블록 리스트 섹터가 기록될 것이다.이는 동일한 물리적 에어리어를 커버하는 2개의 스페어 물리적 블록 리스트 섹터들을 의미할 수 있다. 부트 섹터는 유효 섹터의 인덱스를 포함하는 스페어 물리적 블 록 리스트 인덱스들을 유지한다. 스페어 물리적 블록들이 스페어 물리적 블록 리스트에 의해 커버되는 에어리어에 존재하면, 이 섹터는 부트 블록에 존재하지 않을 것이다.
도22를 다시 참조하면, 이는 8 웨이 인터리빙된 카드와 관계한다. 그러므로, 모든 스페어 물리적 블록 리스트 정보를 유지하기 위해선 적어도 8개의 어레이들이 존재하여야 만 할 것이다. 카드상의 모든 다음 다이에 대해서, 부가적인 8개의 어레이들이 필요로 될 것이다. 도22에 대응하는 스페어 물리적 블록 리스트는 표2에 나타나 있다.
표 2
링킹 테이블에 따라서, 스페어 물리적 블록 리스트는 주문형 휘발성 RAM내로 캐쉬될 수 있는 비휘발성 메모리에 테이블로서 저장될 수 있다.
본 발명의 각종 양상들이 펌웨어 기반으로 한 구현방식과 관련하여 서술되었지만, 이들은 또한 하드웨어 기반으로 한 구현방식으로 구현될 수 있다. 컨트롤러 상의 또는 바람직하게는 메모리 칩 자체상의 하드웨어 엔진은 재링킹을 행할 수 있다. 이 재링킹 정보는 칩 차제상에 특수용 메모리 위치에 저장될 수 있다. 그 후, 이 컨트롤러는 표준으로서 모든 블록들을 처리할 수 있고, 엔진은 블록 어드레스들 을 실제 내부 어드레스들로 변환될 것이다. 더 작은 블록 구조들 또는 임의의 재링킹 상세사항들 중 어느 하나에 관해서 인지함이 없이도 메모리는 단지 표준 블록들을 지닌 메모리서 또는 큰 물리적 호스트들을 갖는 메모리로서 호스트(또는 컨트롤러)에 나타날 것이다.
본 발명의 각종 양상들의 특정 예들이 서술되었지만, 본 발명은 첨부된 청구범위 내에서 보호된다는 것을 이해할 것이다.
Claims (43)
- 컨트롤러 및 다수의 소거 유닛들로 이루어진 비휘발성 메모리를 포함하는 메모리 시스템을 동작시키는 방법에 있어서,상기 컨트롤러가 상기 비휘발성 메모리에 액세스하도록, 다수의 소거 유닛들로 각각 이루어진 메타블록 링킹들의 세트를 설정하는 단계; 및,상기 비휘발성 메모리에 상기 메타블록 링킹들의 레코드를 저장하는 단계를 포함하는 메모리 시스템 동작 방법.
- 제1항에 있어서, 상기 레코드는 소거 유닛들과 관련하여 상기 링킹들의 세트의 완전한 명세(specification)인 메모리 시스템 동작 방법.
- 제1항에 있어서, 상기 링킹들의 세트는 룰에 따라서 형성되고 상기 레코드는 상기 룰의 예외들인 이들 링킹들로 이루어지는 메모리 시스템 동작 방법.
- 제1항에 있어서,상기 메타블록 링킹들 중 제1 링킹의 소거 유닛이 결함이 있다라고 결정하는 단계;상기 결함있는 소거 유닛을 더이상 포함하지 않도록 상기 제1 메타블록 링킹을 갱신하는 단계를 더 포함하는 메모리 시스템 동작 방법.
- 제4항에 있어서, 상기 갱신 단계는 상기 소거 유닛들 중 또 다른 유닛으로 상기 결함있는 소거 유닛을 대체하는 단계를 포함하는 메모리 시스템 동작 방법.
- 제5항에 있어서, 상기 소거 유닛들 중 또 다른 유닛은 링크되지 않은 소거 유닛들의 리스트로부터 선택되는 메모리 시스템 동작 방법.
- 제6항에 있어서, 상기 링크되지 않은 소거 유닛들의 리스트는 비휘발성 메모리에 유지되는 메모리 시스템 동작 방법.
- 제7항에 있어서, 상기 소거 유닛들 중 또 다른 한 유닛으로 상기 결함있는 소거 유닛을 대체하는 단계 다음에, 링크되지 않은 소거 유닛들을 갱신하는 단계를 더 포함하는 메모리 시스템 동작 방법.
- 제5항에 있어서, 상기 소거 유닛들 중 상기 또 다른 유닛은 또 다른 링킹에 사전에 속하는 소거 유닛으로부터 선택되는 메모리 시스템 동작 방법.
- 제1항에 있어서,링크되지 않은 소거 유닛들의 리스트를 유지하는 단계;상기 메타블록 링킹들 중 제1 링킹의 하나 이상의 유닛들이 결함이 있다라고 결정하는 단계; 및,상기 링크되지 않은 소거 유닛들의 리스트에 상기 제1 메타블록의 상기 비결함 소거 유닛을 부가하는 단계를 더 포함하는 메모리 시스템 동작 방법.
- 제1항에 있어서,상기 메타블록 링킹들 중 제1 링킹의 소거 유닛이 결함이 있다라고 결정하는 단계;대체 소거 유닛이 상기 결함있는 소거 유닛에 이용될 수 있는지를 결정하는 단계; 및,대체 소거 유닛이 이용될 수 없다라는 결정에 응답하여, 상기 메타블록 링킹들의 세트로부터 상기 제1 메타블록을 제거하는 단계를 더 포함하는 메모리 시스템 동작 방법.
- 제1항에 있어서, 상기 비휘발성 메모리는 다수의 준-독립적인 어레이들을 포함하고 상기 메타블록 링킹들 중 소정의 한 링킹에서 상기 다수의 소거 유닛들 각각은 상기 준-독립적인 어레이들 중 다른 한 어레이로부터 나오는 메모리 시스템 동작 방법.
- 제1항에 있어서, 상기 비휘발성 메모리는 다수의 준-독립적인 어레이들을 포함하고 상기 메타블록 링킹들 중 소정의 한 링킹에서 상기 다수의 소거 유닛들은 상기 동일한 준-독립적인 어레이로부터 소거 유닛들의 쌍들로 이루어지며, 상기 쌍들 각각은 상기 준-독립적인 어레이들 중 다른 한 어레이로부터 나오는 메모리 시스템 동작 방법.
- 제10항에 있어서, 상기 준-독립적인 어레이들은 별도의 칩들 상에 있는 메모리 시스템 동작 방법.
- 제1항에 있어서, 상기 메타블록 링킹들의 상기 레코드는 사용자 데이터를 위하여 할당된 것을 제외하면 비휘발성 메모리의 일부에 저장되는 메모리 시스템 동작 방법.
- 제1항에 있어서, 상기 소거 유닛들 각각은 다수의 섹터들로 이루어지고 상기 섹터들 각각은 데이터 에어리어 및 오버헤드 에어리어를 포함하고 데이터를 포함하는 상기 소거 유닛들을 위한 레코드 정보는 상기 소거 유닛들의 오버헤드 에어리어에 유지되는 메모리 시스템 동작 방법.
- 제16항에 있어서, 데이터가 없는 이들 소거 유닛들을 위한 레코드 정보는 사용자 데이터를 위하여 할당된 것들을 제외하면 상기 비휘발성 메모리의 일부분에 유지되는 메모리 시스템 동작 방법.
- 컨트롤러 및 비휘발성 메모리를 포함하는 메모리 시스템을 동작시키는 방법으로서, 상기 메모리는 적어도 2개의 독립적으로 액세스가능한 서브어레이들을 포함하며, 상기 개별적인 서브어레이들은 다수의 비중첩하는 물리적 구조들로 분할되며, 상기 서브어레이들 중 개별적인 어레이들로부터 적어도 하나의 물리적 구조는 링크되어 복합 논리적 구조를 형성함으로써, 상기 컨트롤러는 유닛으로서 상기 복합 논리적 구조 컴포넌트들에 모두 액세스하는, 메모리 시스템 동작 방법에 있어서,상기 복합 논리적 구조에서 물리적 구조가 결함이 있다라고 결정하는 단계; 및,상기 복합 논리적 구조에서 물리적 구조가 결함이 있다라고 결정하는 단계에 응답하여, 상기 복합 논리적 구조를 형성하기 위하여 링크되는 상기 물리적 구조들 중 비결함 구조들을 유지하면서 상기 복합 논리적 구조에서 상기 결함있는 물리적 구조를 대체 물리적 구조로 대체하는 단계를 포함하는 메모리 시스템 동작 방법.
- 제18항에 있어서, 상기 물리적 구조들은 물리적 블록들인 메모리 시스템 동작 방법.
- 제18항에 있어서, 상기 서브어레이들은 동일한 칩 상에 형성되는 메모리 시스템 동작 방법.
- 제18항에 있어서, 모든 서브어레이들 보다 적은 서브어레이들이 동일한 칩상에 형성되는 메모리 시스템 동작 방법.
- 제18항에 있어서, 복합 논리적 구조를 형성하기 위하여 물리적 구조들의 링킹의 레코드는 상기 메모리에 유지되고 상기 레코드는 상기 대체를 반영하기 위하여 갱신되는 메모리 시스템 동작 방법.
- 제22항에 있어서, 상기 링킹은 알고리즘에 따라서 형성되고 상기 레코드는 상기 알고리즘으로부터의 편차들을 나타내는 메모리 시스템 동작 방법.
- 제22항에 있어서, 상기 레코드는 상기 링킹에서 상기 모든 물리적 구조들의 물리적 어드레스를 나타내는 메모리 시스템 동작 방법.
- 제24항에 있어서,상기 복합 논리적 구조에서 물리적 구조가 결함이 있다라고 결정하는 단계에 앞서, 상기 복합 논리적 구조를 형성하기 위하여 물리적 구조들의 초기 링킹을 형성하는 단계를 더 포함하는데, 상기 대체 단계는 상기 링킹을 갱신하는 단계를 포함하는 메모리 시스템 동작 방법.
- 제25항에 있어서, 상기 초기 링킹을 형성하는 단계는:이용가능한 물리적 구조들의 풀로부터 상기 복합 논리적 구조를 형성하는 상기 물리적 구조들을 선택하는 단계를 포함하는 메모리 시스템 동작 방법.
- 제25항에 있어서, 상기 초기 링킹을 형성하는 단계는:알고리즘에 따라서 상기 복합 논리적 구조를 형성하는 단계를 포함하는 메모리 시스템 동작 방법.
- 컨트롤러 및 비휘발성 메모리를 포함하는 메모리 시스템에 있어서,상기 비휘발성 메모리는 다수의 소거 유닛들로 이루어지며, 상기 컨트롤러는 메타블록 링킹들의 세트에 따라서 다수의 소거 유닛들로 각각 이루어진 상기 비휘발성 메모리에 액세스하며, 상기 컨트롤러는 결정론적 방식으로 상기 메타블록 링킹들의 세트를 설정하는 메모리 시스템.
- 제28항에 있어서, 상기 메타블록 링킹들의 세트는 알고리즘에 따라서 설정되는 메모리 시스템.
- 제29항에 있어서, 상기 룰에 따라서 형성되지 않는 메타블록 링킹들은 플래그로 표시되는 메모리 시스템.
- 제30항에 있어서, 상기 플래그는 상기 컨트롤러에서 유지되는 메모리 시스 템.
- 제30항에 있어서, 상기 플래그는 상기 비휘발성 메모리에서 유지되는 메모리 시스템.
- 제29항에 있어서, 상기 알고리즘은 상기 비휘발성 메모리에서 결함있는 블록들의 패턴에 따라서 링킹들의 세트를 최적화하는 메모리 시스템.
- 제29항에 있어서, 상기 컨트롤러는 상기 비휘발성 메모리의 스캔을 토대로 상기 비휘발성 메모리에서 결함있는 블록들의 패턴을 결정하는 메모리 시스템.
- 제28항에 있어서, 상기 메타블록 링킹들의 세트는 랜덤 할당을 토대로 설정되는 메모리 시스템.
- 제28항에 있어서, 상기 메타블록 링킹들의 세트는 링킹에서 결함있는 블록을 하나 이상의 비결함 블록들의 리스트로부터 비결함 블록으로 대체함으로써 결함들에 응답하여 갱신되는 메모리 시스템.
- 제36항에 있어서, 하나 이상의 비결함 블록들의 리스트의 레코드는 상기 비휘발성 메모리에서 유지되는 메모리 시스템.
- 제37항에 있어서, 하나 이상의 비결함 블록들의 레코드는 상기 컨트롤러에 의해 상기 컨트롤러의 비휘발성 메모리에 캐쉬되는 메모리 시스템.
- 제28항에 있어서, 메타블록 링킹들의 세트의 레코드는 상기 비휘발성 메모리에 유지되는 메모리 시스템.
- 제39항에 있어서, 상기 메타블록 링킹들의 세트의 레코드는 상기 컨트롤러에 의해 상기 컨트롤러의 휘발성 메모리에 캐쉬되는 메모리 시스템.
- 제39항에 있어서, 메타블록 링킹들의 초기 세트는 알고리즘에 따라서 설정되고, 상기 메타블록 링킹들의 세트의 레코드는 알고리즘에 일치하지 않는 이들 링킹들 만을 리스트화하는 메모리 시스템.
- 제41항에 있어서, 상기 메타블록 링킹들의 세트의 레코드는 알고리즘에 일치하지 않는 이들 소거 유닛들만을 리스트화하는 메모리 시스템.
- 적어도 2개의 플레인들에서 조직되는 메모리 저장 소자들의 어레이를 갖는 비휘발성 메모리 시스템을 동작시키는 방법으로서, 상기 개별적인 플레인들은 블록이 모두 소거될 수 있는 메모리 저장 소자들의 최소 그룹을 포함하는 저장 소자들 의 다수의 비중첩하는 블록들로 분할되며, 상기 개별적인 블록들은 페이지가 모두 프로그램될 수 있는 메모리 저장 소자들의 최소 그룹인 저장 소자들의 다수의 페이지들로 분할되는, 메모리 시스템 동작 방법에 있어서,메타블록을 형성하기 위하여 적어도 2개의 플레인들 중 개별적인 하나의 플레인으로부터 적어도 하나의 블록을 링크하는 단계로서, 상기 메타블록 컴포넌트들은 유닛으로서 모두 소거되는, 링크 단계;스페어 물리적 블록이 동일한 플레인에서 이용가능한 경우, 결함있는 물리적 블록과 관련된 메타블록 컴포넌트 블록을 동일한 플레인의 스페어 물리적 블록으로 재지향시키는 단계;스페어 물리적 블록이 동일한 플레인에서 이용될 수 없는 경우, 상기 결함있는 물리적 블록과 관련되지 않은 상기 메타블록 컴포넌트들을 스페어 블록 에어리어에 할당하는 단계; 및,상기 메타블록에 대응하는 엔트리를 포함하는 결함 맵 구조를 갱신하는 단계를 포함하는 메모리 시스템 동작 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/750,157 | 2003-12-30 | ||
US10/750,157 US20050144516A1 (en) | 2003-12-30 | 2003-12-30 | Adaptive deterministic grouping of blocks into multi-block units |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060120231A true KR20060120231A (ko) | 2006-11-24 |
Family
ID=34701162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067013306A KR20060120231A (ko) | 2003-12-30 | 2004-12-15 | 다중 블록 유닛들로의 블록의 적응형 결정론적 그룹화 |
Country Status (9)
Country | Link |
---|---|
US (3) | US20050144516A1 (ko) |
EP (1) | EP1700313B1 (ko) |
JP (1) | JP4960705B2 (ko) |
KR (1) | KR20060120231A (ko) |
CN (1) | CN1930635B (ko) |
AT (1) | ATE451694T1 (ko) |
DE (1) | DE602004024582D1 (ko) |
TW (1) | TWI294081B (ko) |
WO (1) | WO2005066974A1 (ko) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101269557B1 (ko) * | 2011-05-20 | 2013-06-04 | 연세대학교 산학협력단 | 반도체 메모리 수리 장치 및 수리 방법 |
KR101372245B1 (ko) * | 2007-08-30 | 2014-03-10 | 삼성전자주식회사 | 메모리 셀 어레이, 이를 포함하는 비휘발성 메모리 장치 및메모리 셀 어레이 구성 방법 |
KR101399549B1 (ko) * | 2007-09-04 | 2014-05-28 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 블록 관리 방법 |
US8904088B2 (en) | 2008-09-30 | 2014-12-02 | Samsung Electronics Co., Ltd. | Method of managing a solid state drive, associated systems and implementations |
US10628067B2 (en) | 2017-12-15 | 2020-04-21 | SK Hynix Inc. | Memory system and operating method thereof |
KR20200048978A (ko) * | 2018-10-31 | 2020-05-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20200060053A (ko) * | 2018-11-22 | 2020-05-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US11537483B2 (en) | 2019-08-08 | 2022-12-27 | SK Hynix Inc. | Controller for managing superblocks and operation method thereof |
Families Citing this family (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027194B2 (en) | 1988-06-13 | 2011-09-27 | Samsung Electronics Co., Ltd. | Memory system and method of accessing a semiconductor memory device |
JP4284200B2 (ja) * | 2004-01-28 | 2009-06-24 | 株式会社東芝 | 不揮発性半導体記憶システム |
US7464306B1 (en) * | 2004-08-27 | 2008-12-09 | Lexar Media, Inc. | Status of overall health of nonvolatile memory |
EP1630657A1 (en) * | 2004-08-30 | 2006-03-01 | STMicroelectronics S.r.l. | Embedded storage device with integrated data-management functions and storage system incorporating it |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
EP1712985A1 (en) * | 2005-04-15 | 2006-10-18 | Deutsche Thomson-Brandt Gmbh | Method and system for storing logical data blocks into flash-blocks in multiple non-volatile memories which are connected to at least one common data I/O bus |
US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7552271B2 (en) * | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
DE602006019263D1 (de) * | 2005-08-03 | 2011-02-10 | Sandisk Corp | Nichtflüchtiger speicher mit blockverwaltung |
US7546515B2 (en) | 2005-12-27 | 2009-06-09 | Sandisk Corporation | Method of storing downloadable firmware on bulk media |
US7536627B2 (en) | 2005-12-27 | 2009-05-19 | Sandisk Corporation | Storing downloadable firmware on bulk media |
CN101292229B (zh) * | 2005-12-28 | 2012-05-30 | 富士通株式会社 | 用于控制存储器的方法和设备 |
US7441068B2 (en) | 2006-01-06 | 2008-10-21 | Phison Electronics Corp. | Flash memory and method for utilizing the same |
US7774643B2 (en) * | 2006-01-06 | 2010-08-10 | Dot Hill Systems Corporation | Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array |
GB2434460B (en) * | 2006-01-24 | 2007-12-05 | Phison Electronics Corp | Flash memory and method for utilizing the same |
KR100703807B1 (ko) * | 2006-02-17 | 2007-04-09 | 삼성전자주식회사 | 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치 |
KR100675015B1 (ko) * | 2006-02-24 | 2007-01-29 | 삼성전자주식회사 | 스캔 기능 및 컬럼 리던던시를 포함하는 내장형 메모리장치, 리던던시 리페어 및 스캔 방법 |
JP4171749B2 (ja) * | 2006-04-17 | 2008-10-29 | Tdk株式会社 | メモリコントローラおよびフラッシュメモリシステム |
US20080010510A1 (en) * | 2006-06-19 | 2008-01-10 | Tony Turner | Method and system for using multiple memory regions for redundant remapping |
US20080052446A1 (en) * | 2006-08-28 | 2008-02-28 | Sandisk Il Ltd. | Logical super block mapping for NAND flash memory |
KR100784007B1 (ko) * | 2006-10-31 | 2007-12-10 | 주식회사 하이닉스반도체 | 비휘발성 메모리 장치 및 그 소거 방법 |
KR100809069B1 (ko) * | 2006-11-03 | 2008-03-03 | 삼성전자주식회사 | 비휘발성 메모리를 구비하는 광학 매체 드라이브 및 그구동 방법 |
WO2008082950A1 (en) * | 2006-12-28 | 2008-07-10 | Sandisk Corporation | System for block relinking |
US20080162787A1 (en) * | 2006-12-28 | 2008-07-03 | Andrew Tomlin | System for block relinking |
US20080162612A1 (en) * | 2006-12-28 | 2008-07-03 | Andrew Tomlin | Method for block relinking |
US7468920B2 (en) * | 2006-12-30 | 2008-12-23 | Sandisk Corporation | Applying adaptive body bias to non-volatile storage |
US7669092B2 (en) * | 2007-02-26 | 2010-02-23 | Micron Technology, Inc. | Apparatus, method, and system of NAND defect management |
US7535764B2 (en) * | 2007-03-21 | 2009-05-19 | Sandisk Corporation | Adjusting resistance of non-volatile memory using dummy memory cells |
DE112007003388T5 (de) * | 2007-03-21 | 2009-12-24 | Intel Corporation, Santa Clara | Verfahren zum Verwalten von Sektoren eines nicht-flüchtigen Speichers |
US20090006436A1 (en) * | 2007-06-29 | 2009-01-01 | Alqudah Yazan A | Automated yield analysis system |
US20090013148A1 (en) * | 2007-07-03 | 2009-01-08 | Micron Technology, Inc. | Block addressing for parallel memory arrays |
US9373362B2 (en) * | 2007-08-14 | 2016-06-21 | Dell Products L.P. | System and method for implementing a memory defect map |
KR20090021476A (ko) * | 2007-08-27 | 2009-03-04 | 삼성전자주식회사 | 메모리 셀 어레이, 이를 포함하는 비휘발성 메모리 장치 및메모리 셀 어레이 구성 방법 |
US7818493B2 (en) * | 2007-09-07 | 2010-10-19 | Sandisk Corporation | Adaptive block list management |
KR20090026941A (ko) * | 2007-09-11 | 2009-03-16 | 삼성전자주식회사 | 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치 |
US8566504B2 (en) * | 2007-09-28 | 2013-10-22 | Sandisk Technologies Inc. | Dynamic metablocks |
US7934052B2 (en) | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
TW200931425A (en) * | 2008-01-11 | 2009-07-16 | Phison Electronics Corp | Method for managing flash memory blocks and controller using the same |
JP5032371B2 (ja) | 2008-03-01 | 2012-09-26 | 株式会社東芝 | メモリシステム |
JP5010505B2 (ja) * | 2008-03-01 | 2012-08-29 | 株式会社東芝 | メモリシステム |
WO2009140157A2 (en) * | 2008-05-15 | 2009-11-19 | Board Of Governors Of Higher Education, State Of Rhode Island And Providence Plantations | Systems and methods for recovering information from nand gate array memory systems |
US8074023B2 (en) * | 2008-05-22 | 2011-12-06 | Nuvoton Technology Corporation | In-system programming to switch memory access from one area to another in memory cards |
US7971007B2 (en) * | 2008-07-08 | 2011-06-28 | Silicon Motion, Inc. | Downgrade memory apparatus, and method for accessing a downgrade memory |
KR101103061B1 (ko) * | 2008-07-28 | 2012-01-06 | 주식회사 팍스디스크 | 반도체 스토리지 시스템 및 그 제어 방법 |
JP4582232B2 (ja) * | 2008-09-30 | 2010-11-17 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP4632180B2 (ja) | 2008-10-15 | 2011-02-16 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP4720891B2 (ja) * | 2008-09-30 | 2011-07-13 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2010092200A (ja) * | 2008-10-07 | 2010-04-22 | Tdk Corp | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US8214579B2 (en) | 2008-09-30 | 2012-07-03 | Tdk Corporation | Memory controller, flash memory system with memory controller, and method of controlling flash memory |
US7962801B2 (en) * | 2008-10-15 | 2011-06-14 | Silicon Motion, Inc. | Link table recovery method |
US8700840B2 (en) * | 2009-01-05 | 2014-04-15 | SanDisk Technologies, Inc. | Nonvolatile memory with write cache having flush/eviction methods |
US8244960B2 (en) * | 2009-01-05 | 2012-08-14 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partition management methods |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8094500B2 (en) * | 2009-01-05 | 2012-01-10 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partitioning |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US8261174B2 (en) | 2009-01-13 | 2012-09-04 | International Business Machines Corporation | Protecting and migrating memory lines |
JP4762323B2 (ja) | 2009-03-03 | 2011-08-31 | 富士通株式会社 | アクセス制御装置、情報処理装置、アクセス制御プログラム及びアクセス制御方法 |
US8239614B2 (en) | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
US8095765B2 (en) | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
US20100306451A1 (en) * | 2009-06-01 | 2010-12-02 | Joshua Johnson | Architecture for nand flash constraint enforcement |
US8166258B2 (en) * | 2009-07-24 | 2012-04-24 | Lsi Corporation | Skip operations for solid state disks |
US8321639B2 (en) * | 2009-12-30 | 2012-11-27 | Lsi Corporation | Command tracking for direct access block storage devices |
US8555141B2 (en) * | 2009-06-04 | 2013-10-08 | Lsi Corporation | Flash memory organization |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8286004B2 (en) * | 2009-10-09 | 2012-10-09 | Lsi Corporation | Saving encryption keys in one-time programmable memory |
US8868809B2 (en) * | 2009-11-30 | 2014-10-21 | Lsi Corporation | Interrupt queuing in a media controller architecture |
US8245112B2 (en) * | 2009-06-04 | 2012-08-14 | Lsi Corporation | Flash memory organization |
KR101600951B1 (ko) * | 2009-05-18 | 2016-03-08 | 삼성전자주식회사 | 고체 상태 드라이브 장치 |
US8176360B2 (en) * | 2009-08-11 | 2012-05-08 | Texas Memory Systems, Inc. | Method and apparatus for addressing actual or predicted failures in a FLASH-based storage system |
US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
US8285946B2 (en) * | 2009-12-15 | 2012-10-09 | International Business Machines Corporation | Reducing access contention in flash-based memory systems |
CN101819821B (zh) * | 2010-03-25 | 2012-08-29 | 清华大学深圳研究生院 | 一种固态硬盘动态损耗均衡方法 |
TWI547872B (zh) * | 2010-04-01 | 2016-09-01 | 鴻海精密工業股份有限公司 | 媒體資料播放裝置及其重新啟動方法 |
JP5559616B2 (ja) * | 2010-06-17 | 2014-07-23 | ラピスセミコンダクタ株式会社 | 半導体メモリ装置 |
KR20120003283A (ko) * | 2010-07-02 | 2012-01-10 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 배드 블록 관리 방법 |
TWI425357B (zh) * | 2010-09-27 | 2014-02-01 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
TWI435216B (zh) * | 2010-09-27 | 2014-04-21 | Silicon Motion Inc | 用來進行超區塊管理之方法以及記憶裝置及控制器 |
CN102456401B (zh) * | 2010-10-26 | 2015-04-22 | 群联电子股份有限公司 | 区块管理方法、存储器控制器与存储器储存装置 |
CN102479156B (zh) * | 2010-11-22 | 2015-03-11 | 慧荣科技股份有限公司 | 用来进行区块管理的方法、记忆装置及其控制器 |
CN102479154B (zh) * | 2010-11-30 | 2015-03-11 | 慧荣科技股份有限公司 | 用来进行超区块管理的方法、记忆装置及其控制器 |
TWI446345B (zh) | 2010-12-31 | 2014-07-21 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US8578208B2 (en) * | 2011-01-13 | 2013-11-05 | Micron Technology, Inc. | Determining location of error detection data |
JP5319723B2 (ja) * | 2011-03-24 | 2013-10-16 | 株式会社東芝 | メモリシステムおよびプログラム |
US20120262815A1 (en) * | 2011-04-15 | 2012-10-18 | Lsi Corporation | Method and system for dynamically expandable software based bad block management |
KR20120124285A (ko) * | 2011-05-03 | 2012-11-13 | 삼성전자주식회사 | 배드 블록 관리를 위한 방법 및 메모리 시스템 |
US9176864B2 (en) | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
JP2014513850A (ja) | 2011-05-17 | 2014-06-05 | サンディスク テクノロジィース インコーポレイテッド | 小さな論理グループがアクティブなslcおよびmlcメモリパーティションに分散させられる不揮発性メモリおよび方法 |
US9141528B2 (en) | 2011-05-17 | 2015-09-22 | Sandisk Technologies Inc. | Tracking and handling of super-hot data in non-volatile memory systems |
US8543758B2 (en) | 2011-05-31 | 2013-09-24 | Micron Technology, Inc. | Apparatus including memory channel control circuit and related methods for relaying commands to logical units |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US8700961B2 (en) | 2011-12-20 | 2014-04-15 | Sandisk Technologies Inc. | Controller and method for virtual LUN assignment for improved memory bank mapping |
US9239781B2 (en) * | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US8924636B2 (en) * | 2012-02-23 | 2014-12-30 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
JP5956791B2 (ja) * | 2012-03-13 | 2016-07-27 | 株式会社メガチップス | 半導体メモリのリユース処理装置、及び半導体メモリ |
JP5952036B2 (ja) * | 2012-03-13 | 2016-07-13 | 株式会社メガチップス | 半導体メモリのリユース処理装置、及び半導体メモリ |
US9355929B2 (en) | 2012-04-25 | 2016-05-31 | Sandisk Technologies Inc. | Data storage based upon temperature considerations |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US8891305B2 (en) * | 2012-08-21 | 2014-11-18 | Micron Technology, Inc. | Apparatuses and methods involving accessing distributed sub-blocks of memory cells |
US8902670B2 (en) * | 2012-08-31 | 2014-12-02 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
US9507523B1 (en) * | 2012-10-12 | 2016-11-29 | Western Digital Technologies, Inc. | Methods, devices and systems for variable size logical page management in a solid state drive |
US9032244B2 (en) * | 2012-11-16 | 2015-05-12 | Microsoft Technology Licensing, Llc | Memory segment remapping to address fragmentation |
US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US20140181621A1 (en) * | 2012-12-26 | 2014-06-26 | Skymedi Corporation | Method of arranging data in a non-volatile memory and a memory control system thereof |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
CN104919433B (zh) * | 2013-01-11 | 2017-10-31 | 英派尔科技开发有限公司 | 用于闪存的页面分配 |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US9406362B2 (en) * | 2013-06-17 | 2016-08-02 | Micron Technology, Inc. | Memory tile access and selection patterns |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
KR102225989B1 (ko) * | 2014-03-04 | 2021-03-10 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US9595352B2 (en) * | 2014-03-17 | 2017-03-14 | Seagate Technology Llc | Manufacturer self-test for solid-state drives |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US20150339223A1 (en) * | 2014-05-22 | 2015-11-26 | Kabushiki Kaisha Toshiba | Memory system and method |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9632712B2 (en) | 2014-07-02 | 2017-04-25 | Sandisk Technologies Llc | System and method of updating metablocks associated with multiple memory dies |
US9626289B2 (en) | 2014-08-28 | 2017-04-18 | Sandisk Technologies Llc | Metalblock relinking to physical blocks of semiconductor memory in adaptive wear leveling based on health |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
KR102257031B1 (ko) | 2015-03-13 | 2021-05-27 | 삼성전자주식회사 | 반도체 집적 회로 설계 방법 |
US10289327B2 (en) | 2015-06-05 | 2019-05-14 | Western Digital Technologies, Inc. | Scheduling scheme(s) for a multi-die storage device |
US9875053B2 (en) | 2015-06-05 | 2018-01-23 | Western Digital Technologies, Inc. | Scheduling scheme(s) for a multi-die storage device |
CN105488722B (zh) * | 2015-11-30 | 2019-11-26 | 布比(北京)网络技术有限公司 | 基于衍生链的资产数据处理方法及装置 |
US10126970B2 (en) * | 2015-12-11 | 2018-11-13 | Sandisk Technologies Llc | Paired metablocks in non-volatile storage device |
CN109219940B (zh) * | 2016-03-31 | 2022-01-11 | 比特飞翔区块链株式会社 | 私有节点以及私有节点中的处理方法 |
CN106372533B (zh) * | 2016-09-14 | 2020-04-21 | 中国银联股份有限公司 | 基于区块链技术的内容存储方法 |
CN106529924A (zh) * | 2016-09-29 | 2017-03-22 | 马龙 | 彩色区块链的管理方法及管理系统 |
KR102715464B1 (ko) * | 2016-10-31 | 2024-10-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102717098B1 (ko) | 2016-11-01 | 2024-10-15 | 삼성전자주식회사 | 단계별 저전력 상태들을 갖는 메모리 장치 |
CN106844523B (zh) * | 2016-12-29 | 2020-05-08 | 北京瑞卓喜投科技发展有限公司 | 顺序型多维拓展的区块链的生成方法及系统 |
US10725933B2 (en) * | 2016-12-30 | 2020-07-28 | Intel Corporation | Method and apparatus for redirecting memory access commands sent to unusable memory partitions |
US10223022B2 (en) * | 2017-01-27 | 2019-03-05 | Western Digital Technologies, Inc. | System and method for implementing super word line zones in a memory device |
CN106874440B (zh) * | 2017-02-07 | 2019-11-12 | 杭州秘猿科技有限公司 | 一种基于sql数据库的区块链状态存储方法 |
KR102409760B1 (ko) * | 2017-03-17 | 2022-06-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
KR102395434B1 (ko) * | 2017-03-20 | 2022-05-09 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템 |
CN107451011B (zh) * | 2017-03-24 | 2020-12-25 | 北京瑞卓喜投科技发展有限公司 | 并行增加区块的区块链的勘误方法及系统 |
TWI646554B (zh) * | 2017-03-28 | 2019-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
US10229751B2 (en) | 2017-05-01 | 2019-03-12 | Western Digital Technologies, Inc. | Storage system and method for bad block recycling |
DE102017209381A1 (de) * | 2017-06-02 | 2018-12-06 | Bundesdruckerei Gmbh | Bidirektional verkettete Blockchain-Struktur |
US10649661B2 (en) * | 2017-06-26 | 2020-05-12 | Western Digital Technologies, Inc. | Dynamically resizing logical storage blocks |
TWI641988B (zh) | 2017-07-21 | 2018-11-21 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器 |
TWI617917B (zh) * | 2017-08-28 | 2018-03-11 | 慧榮科技股份有限公司 | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 |
US11436154B2 (en) | 2017-12-01 | 2022-09-06 | Micron Technology, Inc. | Logical block mapping based on an offset |
US10977182B2 (en) * | 2017-12-01 | 2021-04-13 | Micron Technology, Inc. | Logical block mapping based on an offset |
US10635515B2 (en) | 2017-12-06 | 2020-04-28 | Sandisk Technologies Llc | Recovery of partial memory die |
US10445230B2 (en) * | 2017-12-08 | 2019-10-15 | Macronix International Co., Ltd. | Managing block arrangement of super blocks |
KR20190073125A (ko) * | 2017-12-18 | 2019-06-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US10372355B2 (en) * | 2017-12-29 | 2019-08-06 | Micron Technology, Inc. | Managing partial superblocks in a NAND device |
CN108196795B (zh) * | 2017-12-30 | 2020-09-04 | 惠龙易通国际物流股份有限公司 | 一种数据存储方法、设备及计算机存储介质 |
JP7051484B2 (ja) * | 2018-02-22 | 2022-04-11 | キオクシア株式会社 | 半導体メモリ |
CN108846749B (zh) * | 2018-05-31 | 2021-09-07 | 杭州溪塔科技有限公司 | 一种基于区块链技术的分片化的交易执行系统及方法 |
TWI664528B (zh) * | 2018-06-06 | 2019-07-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
CN110609795B (zh) * | 2018-06-14 | 2022-11-22 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN108984645B (zh) * | 2018-06-25 | 2021-02-02 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备及存储介质 |
CN109032802A (zh) * | 2018-07-26 | 2018-12-18 | 国信优易数据有限公司 | 一种区块链系统和管理方法 |
KR20200042791A (ko) * | 2018-10-16 | 2020-04-24 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11416161B2 (en) | 2019-06-28 | 2022-08-16 | Western Digital Technologies, Inc. | Zone formation for zoned namespaces |
US11281578B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory sub-system during a low battery state |
US20210055878A1 (en) * | 2019-08-20 | 2021-02-25 | Micron Technology, Inc. | Data compaction within the same plane of a memory component |
US11726869B2 (en) | 2019-08-20 | 2023-08-15 | Micron Technology, Inc. | Performing error control operation on memory component for garbage collection |
US11282567B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Sequential SLC read optimization |
US11281392B2 (en) | 2019-08-28 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory component using an adjusted parameter |
CN112530494B (zh) * | 2019-09-17 | 2024-06-25 | 硅存储技术股份有限公司 | 具有存储的索引信息的非易失性存储器设备 |
US11640259B2 (en) * | 2020-05-21 | 2023-05-02 | Western Digital Technologies, Inc. | Use of surplus erase block pairs in super block formation |
CN113268519A (zh) * | 2020-12-28 | 2021-08-17 | 上海能链众合科技有限公司 | 一种基于区块链的数据共享方法 |
KR20220165074A (ko) * | 2021-06-07 | 2022-12-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US20230044991A1 (en) * | 2021-08-04 | 2023-02-09 | Intel Corporation | Page map renumbering to reduce error correction failures and improve program time uniformity |
WO2023050147A1 (zh) * | 2021-09-29 | 2023-04-06 | 长江存储科技有限责任公司 | 用于存储器的数据保护方法及其存储装置 |
CN115687171B (zh) * | 2022-10-26 | 2023-06-06 | 深圳三地一芯电子股份有限公司 | 闪存块绑定方法、装置、设备及存储介质 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0675502B1 (en) * | 1989-04-13 | 2005-05-25 | SanDisk Corporation | Multiple sector erase flash EEPROM system |
US5428621A (en) * | 1992-09-21 | 1995-06-27 | Sundisk Corporation | Latent defect handling in EEPROM devices |
JP3105092B2 (ja) * | 1992-10-06 | 2000-10-30 | 株式会社東芝 | 半導体メモリ装置 |
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 |
US5978808A (en) * | 1995-12-27 | 1999-11-02 | Intel Corporation | Virtual small block file manager for flash memory array |
US6034897A (en) * | 1999-04-01 | 2000-03-07 | Lexar Media, Inc. | Space management for managing high capacity nonvolatile memory |
WO1999031592A1 (fr) * | 1997-12-16 | 1999-06-24 | Tdk Corporation | Systeme de memoire flash |
WO1999032977A1 (fr) * | 1997-12-22 | 1999-07-01 | Tdk Corporation | Systeme de memoire flash |
JP3734620B2 (ja) * | 1998-06-24 | 2006-01-11 | 沖電気工業株式会社 | 半導体ディスク装置 |
US6260156B1 (en) * | 1998-12-04 | 2001-07-10 | Datalight, Inc. | Method and system for managing bad areas in flash memory |
GB9903490D0 (en) | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
KR100330164B1 (ko) * | 1999-04-27 | 2002-03-28 | 윤종용 | 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법 |
US6742078B1 (en) * | 1999-10-05 | 2004-05-25 | Feiya Technology Corp. | Management, data link structure and calculating method for flash 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 |
DE10134229A1 (de) * | 2000-08-17 | 2002-02-28 | Ibm | Verfahren und System zum Ermitteln von Abweichungen in Datentabellen |
JP3699890B2 (ja) * | 2000-08-30 | 2005-09-28 | シャープ株式会社 | 不揮発性半導体記憶装置 |
US6574705B1 (en) * | 2000-11-16 | 2003-06-03 | International Business Machines Corporation | Data processing system and method including a logical volume manager for storing logical volume data |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
JP4248772B2 (ja) * | 2001-07-05 | 2009-04-02 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法 |
JP4220690B2 (ja) * | 2001-07-05 | 2009-02-04 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法 |
JP2003058417A (ja) * | 2001-08-21 | 2003-02-28 | Matsushita Electric Ind Co Ltd | 記憶装置 |
GB0123412D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system sectors |
DE10236796B4 (de) * | 2002-08-08 | 2004-12-02 | Christian Dr. Scheideler | Verfahren und Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium |
US6901498B2 (en) * | 2002-12-09 | 2005-05-31 | Sandisk Corporation | Zone boundary adjustment for defects in non-volatile memories |
US7478096B2 (en) * | 2003-02-26 | 2009-01-13 | Burnside Acquisition, Llc | History preservation in a computer storage system |
JP2004265162A (ja) * | 2003-03-03 | 2004-09-24 | Renesas Technology Corp | 記憶装置およびアドレス管理方法 |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
-
2003
- 2003-12-30 US US10/750,157 patent/US20050144516A1/en not_active Abandoned
-
2004
- 2004-12-15 JP JP2006547154A patent/JP4960705B2/ja active Active
- 2004-12-15 WO PCT/US2004/042400 patent/WO2005066974A1/en active Application Filing
- 2004-12-15 DE DE602004024582T patent/DE602004024582D1/de active Active
- 2004-12-15 CN CN2004800416810A patent/CN1930635B/zh not_active Expired - Fee Related
- 2004-12-15 KR KR1020067013306A patent/KR20060120231A/ko not_active Application Discontinuation
- 2004-12-15 AT AT04814563T patent/ATE451694T1/de not_active IP Right Cessation
- 2004-12-15 EP EP04814563A patent/EP1700313B1/en not_active Not-in-force
- 2004-12-27 TW TW093140796A patent/TWI294081B/zh not_active IP Right Cessation
-
2009
- 2009-07-30 US US12/512,282 patent/US7970985B2/en not_active Expired - Fee Related
-
2011
- 2011-04-11 US US13/084,396 patent/US8117381B2/en not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101372245B1 (ko) * | 2007-08-30 | 2014-03-10 | 삼성전자주식회사 | 메모리 셀 어레이, 이를 포함하는 비휘발성 메모리 장치 및메모리 셀 어레이 구성 방법 |
KR101399549B1 (ko) * | 2007-09-04 | 2014-05-28 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 블록 관리 방법 |
US8904088B2 (en) | 2008-09-30 | 2014-12-02 | Samsung Electronics Co., Ltd. | Method of managing a solid state drive, associated systems and implementations |
US9542199B2 (en) | 2008-09-30 | 2017-01-10 | Samsung Electronics Co., Ltd. | Method of managing a solid state drive, associated systems and implementations |
KR101269557B1 (ko) * | 2011-05-20 | 2013-06-04 | 연세대학교 산학협력단 | 반도체 메모리 수리 장치 및 수리 방법 |
US10628067B2 (en) | 2017-12-15 | 2020-04-21 | SK Hynix Inc. | Memory system and operating method thereof |
KR20200048978A (ko) * | 2018-10-31 | 2020-05-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20200060053A (ko) * | 2018-11-22 | 2020-05-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US11537483B2 (en) | 2019-08-08 | 2022-12-27 | SK Hynix Inc. | Controller for managing superblocks and operation method thereof |
Also Published As
Publication number | Publication date |
---|---|
EP1700313A1 (en) | 2006-09-13 |
CN1930635B (zh) | 2012-10-10 |
JP2007520842A (ja) | 2007-07-26 |
JP4960705B2 (ja) | 2012-06-27 |
TW200540621A (en) | 2005-12-16 |
CN1930635A (zh) | 2007-03-14 |
WO2005066974A1 (en) | 2005-07-21 |
US20090292944A1 (en) | 2009-11-26 |
DE602004024582D1 (de) | 2010-01-21 |
EP1700313B1 (en) | 2009-12-09 |
US7970985B2 (en) | 2011-06-28 |
US20050144516A1 (en) | 2005-06-30 |
US8117381B2 (en) | 2012-02-14 |
ATE451694T1 (de) | 2009-12-15 |
US20110191530A1 (en) | 2011-08-04 |
TWI294081B (en) | 2008-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20060120231A (ko) | 다중 블록 유닛들로의 블록의 적응형 결정론적 그룹화 | |
US8285916B2 (en) | Storage device | |
US8566504B2 (en) | Dynamic metablocks | |
US7509471B2 (en) | Methods for adaptively handling data writes in non-volatile memories | |
US7386655B2 (en) | Non-volatile memory and method with improved indexing for scratch pad and update blocks | |
US7366826B2 (en) | Non-volatile memory and method with multi-stream update tracking | |
US7032065B2 (en) | Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory | |
US8151035B2 (en) | Non-volatile memory and method with multi-stream updating | |
US6725321B1 (en) | Memory system | |
US7631162B2 (en) | Non-volatile memory with adaptive handling of data writes | |
US8041884B2 (en) | Controller for non-volatile memories and methods of operating the memory controller | |
US20090271562A1 (en) | Method and system for storage address re-mapping for a multi-bank memory device | |
JP2008524705A (ja) | スクラッチパッドブロック | |
KR20060130084A (ko) | 호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의적응형 모드 스위칭 | |
JP5617873B2 (ja) | 記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |