KR20070001871A - 플래쉬 메모리 데이터 정정 및 스크럽 기법 - Google Patents

플래쉬 메모리 데이터 정정 및 스크럽 기법 Download PDF

Info

Publication number
KR20070001871A
KR20070001871A KR1020067006479A KR20067006479A KR20070001871A KR 20070001871 A KR20070001871 A KR 20070001871A KR 1020067006479 A KR1020067006479 A KR 1020067006479A KR 20067006479 A KR20067006479 A KR 20067006479A KR 20070001871 A KR20070001871 A KR 20070001871A
Authority
KR
South Korea
Prior art keywords
data
block
read
scrub
memory
Prior art date
Application number
KR1020067006479A
Other languages
English (en)
Other versions
KR101127882B1 (ko
Inventor
카를로스 제이. 곤잘레즈
케빈 엠. 콘레이
Original Assignee
쌘디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34393904&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20070001871(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20070001871A publication Critical patent/KR20070001871A/ko
Application granted granted Critical
Publication of KR101127882B1 publication Critical patent/KR101127882B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Measuring Volume Flow (AREA)
  • Non-Volatile Memory (AREA)

Abstract

본 발명에 따라, 메모리의 인접한 영역들에서 오퍼레이션들에 의해 방해받는 것에 민감한 플래쉬 메모리 내에 저장된 데이터의 통합성을 유지하기 위해, 방해 이벤트들은 오염되어 유효 데이터가 회수될 수 없게 되기 시작하기 전에 데이터가 판독되고, 정정되고, 재기입될 수 있게 한다. 때때로의 모순은 메모리 시스템이 수행할 다른 높은 우선권 오퍼레이션들을 가질 때 정정 작용의 일부의 실행을 지연시킴으로서 밸런스를 이룬다. 매우 큰 소거 유닛들을 이용하는 메모리 시스템에서, 정정 공정은 소거 유닛의 용량보다 훨씬 더 적은 양의 데이터를 효율적으로 재기입하는 것과 일치하는 방식으로 실행된다.

Description

플래쉬 메모리 데이터 정정 및 스크럽 기법 {FLASH MEMORY DATA CORRECTION AND SCRUB TECHNIQUES}
본 발명은 일반적으로 비휘발성 플래쉬 메모리 시스템들의 오퍼레이션에 관한 것이고, 보다 상세하게는, 내부에 저장된, 특히 매우 큰 메모리 셀 블록들을 갖는 메모리 시스템들에 저장된 데이터를 재생하고 정정하는 기술들에 관한 것이다.
오늘날 사용되고 있는, 특히 1개 이상의 집적 회로 칩들 상에 형성된 플래쉬 EEPROM (전기적으로 소거 가능하고 프로그램 가능한 판독 전용 메모리)의 어레이를 사용하는 소형 인타 카드들 형태의 많은 상업적으로 성공적인 비휘발성 메모리 제품들이 있다. 통상, 메모리 제어기는, 개별 집적 회로 칩 상에서 반드시 필요하지는 않지만, 카드가 장탈착 가능하게 접속되고, 카드 내의 메모리 어레이의 오퍼레이션을 제어하도록 호스트와 인터페이스된다. 그러한 제어기는 전형적으로 마이크로프로세서, 일부 비활성 판독 전용 메모리(ROM), 휘발성 랜덤-액세스-메모리( RAM) 및 1개 이상의 특수 회로들, 예를 들면 데이터를 프로그래밍하고 판독하는 동안 제어기를 통해 데이터가 통과함에 따라, 데이터로부터 에러-정정-코드(ECC)를 산출하는 것과 같은 것을 포함한다. 상업적으로 입수할 수 있는 카드들의 일부는 컴팩트플래쉬TM (CF) 카드들, 멀티미디어 카드들 (MMC), 시큐어 디지털 (SD) 카드들, 스마트 매체 카드들, 개인용 태그(P-Tag) 및 메모리 스틱 카드들이다. 호스트들은 개인용 컴퓨터들, 노우트북 컴퓨터들, 개인용 디지털 단말기(PDAs), 여러 데이터 통신 디바이스들, 디지털 카메라들, 셀룰러 전화기들, 휴대용 오디오 플레이어들, 자동차 음향 시스템들, 및 유사한 유형의 장비를 포함한다. 메모리 카드 구현 외에, 이러한 유형의 메모리는 대안으로 여러 가지 유형의 호스트 시스템들 내로 내장될 수 있다.
2가지 일반적인 메모리 셀 어레이 아키텍춰들은 상업적 용도, NOR 및 NAND를 찾는다. 전형적인 NOR 어레이에서, 메모리 셀들은 셀들의 행들을 따라 확장하는 워드 라인들에 접속된 제어 게이트들에 의해 열 방향으로 확장하는 인접한 비트 라인 소스 및 드레인 확산들 사이에 접속된다. 메모리 셀은 소스와 드레인 사이의 셀 채널 영역의 적어도 일부 상으로 위치하는 적어도 하나의 저장 소자를 포함한다. 따라서, 저장 소자들 상의 전하의 프로그램된 레벨은 셀들의 오퍼레이팅 특성을 제어하고, 이어서 어드레스된 메모리 셀들에 적절한 전압들을 인가함으로써 판독될 수 있다. 그러한 셀들의 예들, 메모리 시스템들에서 이들의 용도들 및 이들의 제조 방법들이 미합중국 특허 제5,070,032호, 제5,095,344호, 제5,313,421호, 제5,315,541호, 제5,343,063호, 제5,661,053호 및 제6,222,762호에 주어져 있다.
NAND 어레이는 셀들의 컬럼들을 형성하도록 개개의 비트 라인들과 기준 전위 사이의 1개 이상의 선택 트랜지스터들에 따라 접속된 16 또는 32 등의 2개 이상의 메모리 셀들의 직렬 스트링들을 이용한다. 워드 라인들은 많은 수의 이들 컬럼들 내의 셀들을 가로질러 연재한다. 컬럼 내의 개개의 셀이 판독되고 스트링을 통해 흐르는 전류가 어드레스된 셀에 저장된 전하의 레벨에 의존하도록 턴온되어야 할 스트링 내의 나머지 셀들을 경질이 되게 유발시킴으로써 프로그래밍하는 동안 검증된다. NAND 아키텍춰 어레이들의 예들 및 메모리 시스템의 일부로서 이들의 오퍼레이션은 미합중국 특허 제5,570,315호, 제5,774,397호, 제6,046,935호 및 제6,522,580호에서 발견된다.
상기 참조된 특허들에 고찰된 바의 현재의 플래쉬 EEPROM의 전하 저장 소자들은 전형적으로 도전성으로 도핑된 폴리실리콘 물질로부터 형성된 가장 보편적으로 전기적으로 도전성인 플로팅 게이트들이다. 플래쉬 EEPROM 시스템들에 유용한 대안의 유형의 메모리 셀은 비휘발성 방식으로 전하를 저장하기 위해 도전성 플로팅 게이트 대신에 비도전성 전기 물질을 이용한다. 산화규소, 질화규소 및 산화규소(ONO)로 형성된 3층 유전체는 메모리 셀 채널 위의 반-도전성 기판의 표면과 도전성 제어 게이트 사이에 샌드위치된다. 이 셀은 셀 채널로부터 전자들을 질화물 내로 주입함으로써 프로그램되고, 여기서 이들은 제한된 영역 내에 트랩되고, 저장되고, 고온 홀들을 질화물 내로 주입함으로써 소거된다. 유전체 저장 소자들을 사용하는 여러 가지 특정 셀 구조물들 및 어레이들은 미합중국 공개 특허 출원 제2003/0109093호에 개시되어 있다.
대부분의 모든 집적 회로 용도들에서와 같이, 일부 집적 회로 기능을 구현하는데 필요한 실리콘 기판 영역을 수축시키기 위한 압력은 또한 플래쉬 EEPROM 메모 리 셀 어레이들과 공존한다. 주어진 메모리 카드의 저장 용량 및 다른 유형의 패키지들을 증가시키기 위해, 또는 용량을 증가시키고, 크기를 감소시키기 위해 실리콘 기판의 주어진 영역 내에 저장될 수 있는 디지털 데이터의 양을 증가시키는 것이 지속적으로 바람직하다. 데이터의 저장 밀도를 증가시키는 한 가지 방식은 메모리 셀당 및/또는 저장 유닛 또는 소자당 1개 이상의 데이터 비트를 저장하는 것이다. 이는 저장 소자 전하 레벨 전압 범위의 창을 2개 이상의 상태로 분할시킴으로써 수행된다. 4가지의 그러한 상태의 사용은 각각의 셀이 2비트 데이터를 저장하게 하고, 8개의 상태는 저장 소자당 3비트 데이터를 저장하게 한다. 플로팅 게이트들 및 이들의 오퍼레이션을 사용하는 다중 상태 플래쉬 EEPROM 구조물들은 미합중국 특허 제5,043,940호 및 제5,172,238호에 기재되어 있으며 유전체 플로팅 게이트들을 사용하는 구조물들에 대해 상기 미합중국 특허 출원 제10/280,352호에 기재되어 있다. 다중-상태 메모리 셀 어레이의 선택된 부분들은 미합중국 특허 제5,930,167호 및 제6,456,528호에 기재된 방식으로, 여러 가지 이유로 2 상태(2진수)로 작동될 수 있다.
전형적인 플래쉬 EEPROM 어레이의 메모리 셀들은 함께 소거되는 셀들의 불연속 블록들로 분할된다. 즉, 그 블록은 소거 유닛이고, 동시에 소거 가능한 셀들의 최소수이다. 각각의 블록은 전형적으로 1페이지 이상의 데이터를 저장하고, 1페이지 이상이 상이한 서브-어레이들 또는 평면들 내에 병렬로 프로그램될 수 있거나 판독될 수 있더라도 페이지가 최소 프로그래밍 및 판독 단위이다. 각각의 페이지는 전형적으로 1 섹터 이상의 데이터를 저장하고, 섹터의 크기는 호스트 시스템에 의해 정의된다. 전형적인 섹터는 512 바이트의 사용자 데이터를 포함하고, 사용자 데이터 및/또는 이들이 저장된 블록에 관한 오버헤드 정보의 일부 바이트들의 수에 더하여 자기 디스크 드라이브들에 의해 확립된 표준에 따른다. 그러한 메모리들은 전형적으로 각각의 블록 내에 16, 32 이상의 페이지들로 구성되고, 각각의 페이지는 데이터의 하나의 또는 단지 몇몇 호스트 섹터들을 저장한다.
사용자 데이터를 메모리 어레이로 프로그래밍하는 동안 병렬도를 증가시키고, 사용자 데이터를 그로부터 판독하기 위해, 어레이는 전형적으로 통상적으로 평면들로 언급되는 서브-어레이들로 분할되고, 이는 데이터 섹터들이 여러 개 또는 모든 평면들 각각으로 프로그램될 수 있거나 또는 동시에 그로부터 판독될 수 있도록 병렬 오퍼레이션을 허용하는 자신의 데이터 레지스터들 및 기타 회로들을 포함한다. 단일 집적 회로 상의 어레이는 물리적으로 평면들로 분할될 수 있거나, 또는 각각의 평면은 별개의 1개 이상의 집적 회로 칩들로부터 형성될 수 있다. 그러한 메모리 구현의 예들은 미합중국 특허 제5,798,968호 및 동 제5,890,192호에 기재되어 있다.
메모리를 더욱 효율적으로 관리하기 위해, 물리적 블록들은 가상 블록들 또는 메타블록들을 형성하도록 함께 논리적으로 결합될 수 있다. 즉, 각각의 메타블록은 각각의 평면으로부터 하나의 블록을 포함하도록 정의된다. 메타블록의 사용은 국제 특허 출원 공개 제WO 02/058074호에 기재되어 있다. 메타블록은 데이터를 프로그래밍하고 판독할 목적으로서 호스트 논리 블록 어드레스에 의해 식별된다. 마찬가지로, 메타블록의 모든 블록들은 함께 소거된다. 그러한 큰 블록들 및/또는 메타블록들에 의해 작동되는 메모리 시스템의 제어기는 호스트로부터 수신된 논리 블록 어드레스들(LBAs)과 메모리 셀 어레이 내의 물리적 블록 번호들(PBNs) 사이의 해석을 포함하는 많은 함수들을 수행한다. 각각의 블록들 내의 개개의 페이지들은 전형적으로 블록 어드레스 내의 오프셋들에 의해 식별된다. 어드레스 해석은 종종 논리적 블록 번호(LBN) 및 논리적 페이지의 중간 용어들의 사용을 포함한다.
메타블록 내에 저장된 데이터는 종종 업데이트되고, 메타블록의 데이터 저장으로서 업데이트 가능성이 증가한다. 하나의 논리적 메타블록의 업데이트된 섹터들은 보편적으로 다른 물리적 메타블록에 기입된다. 변화되지 않은 섹터들은 보편적으로 데이터를 통합하기 위해 동일한 프로그래밍 오퍼레이션의 일부로서 원본으로부터 새로운 물리적 메타블록으로 복사되기도 한다. 대안으로, 변화되지 않은 데이터는 업데이트된 데이터와 함께 단일 메타블록으로 이후에 통합될 때까지 원시 메타블록에 남겨질 수 있다.
소거된 블록 푸울 내에 유지된 일부 여분의 블록들을 갖는 큰 블록 또는 메타블록 시스템들을 오퍼레이팅시키는 것이 통상적이다. 블록의 용량보다 적은 1페이지 이상의 데이터가 업데이트될 때, 푸울로부터 소거된 블록에 업데이트된 페이지들을 기입하고, 이어서 원시 블록으로부터 변화되지 않은 페이지들의 데이터를 소거 푸울 블록으로 복사하는 것이 전형적이다. 이러한 기술의 변종은 상기 공개된 국제 출원 제WO 02/058074호에 기재되어 있다. 시간이 경과됨에 따라, 재기입되고 업데이트되는 호스트 데이터 파일들의 결과로서, 많은 블록들이 유효 데이터를 포함하는 비교적 적은 수의 그의 페이지들에 의해 종료될 수 있고, 더 이상 흐 르지 않는 데이터를 포함하는 페이지들을 남긴다. 어레이의 데이터 저장 용량을 효율적으로 사용할 수 있기 위해, 유효 데이터의 논리적으로 관련된 데이터 페이지들은 다중 블록들 중의 프래그먼트들로부터 때때로 함께 수집되고, 적은 수의 블록들 내로 함께 통합된다. 이 공정은 통상적으로 "쓰레기 수집"이라 칭한다.
개개의 플래쉬 EEPROM 셀들은 1비트 이상의 데이터로 대표되는 전하 저장 소자 또는 유닛 내에 일정 량의 전하를 저장한다. 저장 소자의 전하 레벨은 그의 메모리 셀의 임계 전압(보편적으로 VT로 참조됨)을 제어하고, 이는 셀의 저장 상태를 판독하는 것에 기초하여 사용된다. 임계 전압 윈도우는 보편적으로 메모리 셀의 2개 이상의 저장 상태들 각각에 대해 하나씩인 많은 범위들로 분할된다. 이들 범위들은 개개의 셀들의 저장 상태를 결정하는 것을 허용하는 공칭 감지 레벨을 포함하는 가드 대역들에 의해 분리된다. 이들 저장 레벨들은 이웃하거나 또는 다른 관련 메모리 셀들, 페이지들 또는 블록들에서 수행된 전하 방해 프로그래밍, 판독 또는 소거 오퍼레이션의 결과로서 이동한다. 예를 들면, 메모리 셀들의 제2 세트와 라인 또는 회로를 공유하는 메모리 셀들의 제1 세트의 프로그래밍은 제2 세트의 전하 레벨들을 방해할 수 있다. 이러한 기생적 방해의 최종 결과는 저장 시스템 제어기의 일부에 대해 어떠한 정정 작용도 이루어질 수 없는 경우에, 오퍼레이팅되고 있지 않은 노출 영역의 데이터는 오염될 수 있고, 극단적인 경우, 데이터를 따라 저장된 임의의 에러 정정 코드들(ECCs)의 정정 능력에서 벗어날 수 있다는 것이다. 그러한 데이터 오염은 사용자에게 데이터 손실을 초래할 수 있고, 저장 시스템을 신뢰할 수 없게 만든다. 특정 메모리 셀 어레이 내의 그러한 방해의 정도 및 특성 은 그의 특정 아키텍춰, 구조 및 오퍼레이션에 의존한다.
따라서, 전하 레벨들을 때때로 이들의 상태 범위들의 중심으로 되돌려 이동시키는 것을 방해 오퍼레이션들이 이들을 이들의 제한된 범위에서 완전히 벗어나게 할 수 있기 전에 복원하는 것이 유리하고, 그 경우, 오류있는 데이터가 판독된다. 데이터 재생 또는 스크럽이라 칭하는 그러한 공정은 미합중국 특허 제5,532,962호 및 제5,909,449호에 기재되어 있다. 그의 추가의 국면으로서, 에러 정정 코드들(ECCs)을 사용하는 메모리 시스템들에서, 메모리로부터 판독된 일부 수의 오류있는 데이터 비트들은 ECC의 사용에 의해 정정될 수 있고, 정정된 데이터는 메모리의 이미 소거된 부분에 재기입된다. 데이터 프로그래밍은 보편적으로 저장된 전하를 선택적으로 조절하고, 그것이 셀에 저장되고 있는 데이터를 나타내는 목적 범위에 도달할 때까지 결과의 메모리 셀 임계 레벨을 판독-검증하는 것을 포함하기 때문에, 데이터의 재기입은 기입된 메모리 셀 임계 레벨들이 그의 지정된 상태 범위 내가 되게 한다.
포괄적인 스크럽 오퍼레이션은 동일한 집적 회로칩 상의 메모리 셀들의 다른 그룹 상에서 수행된 프로그래밍, 판독 또는 소거 오퍼레이션들에 의해 야기된 메모리 셀들 중의 하나의 그룹 내에 저장 레벨들의 방해를 보상하기 위해 플래쉬 메모리 시스템 내에 포함된다. 그러한 데이터 방해에 대한 잠재성은 메모리 셀 어레이들의 크기가 수축됨에 따라 증가한다. 공간 절약을 위해, 하나의 그룹이 다른 그룹의 메모리 셀들을 프로그래밍하거나, 판독하거나 또는 소거하는 동안 전압 및/또는 전류에 대한 잠재적으로 반복되는 노출을 경험하도록 메모리 셀들의 그룹들 사이에 여러 신호 라인들이 공유되게 하는 경향이 있다. 조직화된 연속적인 방식으로 메모리 셀들의 모든 그룹 내에 저장된 데이터를 스크러빙함으로써, 시간이 경과함에 따라 저장된 데이터의 오염이 현저히 감소된다. 또한, 증가된 수의 보다 적은 전압 임계 상태의 메모리 셀당 증가된 수의 비트들의 저장은 방해받은 전하 레벨들이 이들을 이들의 의도된 레벨들로 방법론적으로 복구함으로써 정정될 때 실제로 된다.
스크럽 오퍼레이션은 신호들을 잠재적으로 방해하는 것에 대한 노출을 수용한 영역 내의 데이터를 판독하고, 이러한 데이터가 방해받은 것으로 결정된 경우의 일부 정정 작용을 수행하는 것을 수반한다. 방해는 예를 들면 데이터의 통합성을 체크하고, 예를 들면 데이터를 판독하고, 데이터의 ECC 체크의 결과들을 얻음으로써 검출될 수 있다. 정정 작용은 동일한 위치 또는 상이한 위치에 데이터를 재기입하는 것을 수반할 수 있고, 이는 높은 레벨의 결함 또는 데이터 관리 오퍼레이션을 포함할 수 있다.
스크러빙 오퍼레이션은 판독된 데이터의 통합성에 적응하여 이루어질 수 있다. 예를 들면, 데이터 에러들 중의 하나 또는 임계 레벨이 메모리 셀 어레이의 하나의 영역 내에서 발견되는 경우, 그 영역 내의 스크러빙 속도는 증가될 수 있다. 반대로, 주어진 영역에서 어떠한 에러도 발견되지 않거나, 또는 임계값보다 적은 소수의 데이터 에러들만이 발견되는 경우, 이는 주어진 영역의 스크러빙 속도를 저하시키는 것을 허용한다. 스크럽 주파수 및 위치는 유용성 레벨 및 기타 시스템 파라메터들에 적용될 수도 있다. 스크럽의 이들 및 기타 특징들은 데이터 통합성을 유지할 필요성과 높은 레벨의 시스템 성능을 유지할 필요성 사이에 밸런스를 제공하도록 산출된다. 데이터 통합성을 개선시키기 쉽지 않은 스크럽 오퍼레이션들은 특히 피한다.
스크럽 오퍼레이션들은 바람직하게는 메모리 시스템이 데이터를 판독하거나 기입하지 않을 때의 배경에서 수행된다. 이 메모리 시스템은 스크럽 오퍼레이션이 수행될 수 있는 시간 동안 호스트가 데이터를 저장하거나 또는 검색하도록 메모리에 요청하지 않을 때를 호스트에 지시하도록 조망할 수 있다.
1개 이상의 데이터 에러들이 판독된 특정 스크럽에서 검출되는 경우조차, 시스템 성능을 유지하기 위해, 데이터를 판독함에 따라 에러(들)이 ECC에 의해 정정될 수 있는 경우 정정 작용을 취하지 않도록 결정될지도 모른다. 개별 섹터들의 사용자 데이터 및 오버헤드 데이터는 그들 자신의 ECC를 갖고, 오버헤드 데이터의 데이터 에러들은 사용자 데이터 내의 어레이들보다 정정되지 않기가 쉽지 않다.
ECC에 의해 정정될 통상의 조건들 하에 판독된 스크럽 데이터에 대한 너무 많은 비트 에러들이 존재할 때, 이 데이터는 저장된 전하 레벨들이 통상의 범위 밖으로 이동한 셀들을 판독하기 위해 보다 이완된 기준 조건들에 의해 재-판독될 수 있다. ECC에 의해 일단 정확히 검증될 때, 판독 데이터는 통상의 전하 범위 레벨 내에서 재기입될 수 있다. 반대로, 데이터의 스크럽 판독이 어떠한 에러들로 드러내지 않을 때, 그 데이터는 저장된 데이터의 품질을 결정하기 위해 보다 제한적인 기준 조건들 하에 재-판독될 수 있다. 즉, 이들의 최적 범위 밖으로 이동한 전하 레벨들은 이들이 스크럽 정정 작용의 일부로서 그러한 범위들 내로 재-기입될 수 있도록 검출된다.
많은 수의 호스트 데이터 섹터들을 개별적으로 저장하는 메모리 셀들의 큰 블록들 또는 메타 블록들을 이용하는 메모리 시스템들에서, 스크럽 오퍼레이션 동안 정정되는 제1 물리적 블록의 데이터의 섹터(들)은 상기 메모리 관리의 소거 푸울링 방법과 일치하게, 제1 블록의 나머지 데이터 섹터들이 복제되는 제2 블록 내로 재-기입될 수 있다. 대안으로, 정정된 섹터(들)과 동일한 블록들 또는 메타블록들로부터 다른 데이터 섹터들이 쓰레기 수집을 위한 것과 같은 일부 다른 이유 때문에 이동될 필요가 있을 때까지 하나의 블록 또는 메타블록은 스크럽 정정된 데이터 섹터들의 일시적 저장에 전념할 수 있고, 그 시점에 스크럽 정정된 데이터 섹터들은 동일한 블록 또는 메타블록의 다른 데이터 섹터들과 재조합될 수 있다. 이는 시스템 성능을 개선시킨다.
일단 정정 작용이 특정한 명시된 데이터에 의해 취해질 필요가 있는 것으로 결정되면, 그 시점에 정정 작용을 취하는 것이 시스템 성능에 부작용을 미칠 수 있는 경우, 및 필요할 경우 이후의 정정 작용이 발생하기 전에 정정 작용 없이 데이터가 판독될 수 있는 경우에 그 작용이 지연될 수 있다. 지연 시점에 결정되는 바의 모든 정정된 데이터, 어드레스 및 여러 가지 파라메터들은 지연된 정정 작용이 실행될 때 일시적으로 저장되고, 이후에 검색된다. 메모리 셀들의 큰 블록들 또는 메타블록들에서 조직된 시스템들에서, 정정 스크럽 작용들은 주어진 블록 또는 메타블록으로부터 주어진 양의 데이터가 정정 작용을 위해 계획될 때까지 지연될 수 있고, 그 경우 주어진 블록 또는 메타블록의 모든 지연된 데이터 섹터들이 동시에 정정된다. 이는 주어진 블록 또는 메타블록의 데이터 섹터들이 다시 함께 통합될 때 발생하는 데이터 복사 및 재-기입량을 감소시킬 수 있다.
마지막으로, 주어진 메모리 셀, 셀들의 컬럼, 셀들의 블록, 또는 셀들의 일부 다른 유닛이 빈번한 스크러빙을 필요로 하는 것으로 밝혀진 경우, 그 유닛은 그에 저장된 데이터가 더 이상 판독될 수 없거나 또는 정정될 수 없는 정도까지 저하되기 전에 시스템으로부터 매핑될 수 있다.
상기 도면들은 특정 용도에 따라 개별적으로 또는 여러 조합들로 함께 구현될 수 있다. 본원의 스크러빙 시스템의 추가의 국면들, 장점들 및 특징들은 그의 전형적인 실시예들의 다음 설명에 포함되고, 그의 설명은 수반되는 도면과 관련하여 이루어져야 한다. 본원에 참조된 모든 특허들, 특허 출원들, 기사들 및 기타 공고들은 이에 모든 목적들에 불구하고 전체적으로 참조 문헌으로서 본원에 인용된다.
도 1A 및 1B는 함께 작동하는 비휘발성 메모리 및 호스트 시스템 각각의 블록도.
도 2는 도 1A의 메모리 어레이의 제1 실시예 조직을 예시하는 도면.
도 3은 도 1A의 메모리 어레이에 저장된 바의 오버헤드 데이터를 갖는 실시예 호스트 데이터 섹터를 보여주는 도면.
도 4는 도 1A의 메모리 어레이의 제2 실시예 조직을 예시하는 도면.
도 5는 도 1A의 메모리 어레이의 제3 실시예 조직을 예시하는 도면.
도 6은 도 1A의 메모리 어레이의 제3 실시예 조직의 확장부를 예시하는 도면.
도 7은 하나의 특정 구조를 갖는 도 1A의 어레이의 메모리 셀들의 그룹의 회로도.
도 8은 데이터 스크럽 오퍼레이션에서 주요 단계들을 예시하는 흐름도.
도 9(도 9A 및 9B에 일부씩 2페이지로 나타냄)는 스크럽 오퍼레이션의 보다 특정 실시예의 흐름도.
도 10은 메모리 셀들의 프로그램된 그룹의 전압 임계 레벨들의 분포를 나타내는 도면.
전형적인 실시 양태의 설명
메모리 아키텍춰들 및 이들의 오퍼레이션
먼저 도 1A로 돌아가서, 플래쉬 메모리는 메모리 셀 어레이 및 제어기를 포함한다. 도시된 예에서, 2개의 집적회로 디바이스들(칩들)(11 및 13)은 메모리 셀들의 어레이(15) 및 여러 논리 회로들(17)을 포함한다. 논리 회로들(17)은 데이터, 명령 및 현상 회로들을 통해 별개의 칩 상의 제어기(19)와 인터페이스되고, 또한 어드레싱, 데이터 전이 및 감지 및 기타 지원을 어레이(13)에 제공한다. 많은 메모리 어레이 칩들이 제공된 저장 용량에 따라 일에서 많은 것에 이를 수 있다. 제어기 및 일부 또는 전체 어레이는 단일 집적 회로 칩 상으로 선택적으로 조합될 수 있지만, 이는 현재 경제적인 대안이 아니다.
전형적인 제어기(19)는 메모리 칩들(11 및 13)에 기입되거나 또는 그로부터 판독되는 사용자 데이터의 일시적 저장을 위해 펌웨어 및 버퍼 메모리(RAM)(25)를 주로 저장하는 마이크로프로세서(21), 판독 전용 메모리(ROM)(23)를 주로 포함한다. 회로들(27)은 메모리 어레이 칩(들)과 인터페이스되고, 회로들(29)은 접속(31)을 통해 호스트와 인터페이스된다. 데이터의 통합은 이 실시예에서 코드 산출 전용인 회로(33)에 의해 ECC를 산출함으로써 결정된다. 사용자 데이터가 호스트로부터 저장을 위해 플래쉬 메모리 어레이로 전이됨에 따라, 이 회로는 데이터로부터 ECC를 산출하고, 코드는 메모리에 저장된다. 사용자 데이터가 메모리로부터 이후에 판독될 때, 이들은 다시 동일한 알고리즘에 의해 ECC를 산출하는 회로(33)를 통해 통과되고, 그 코드를 그 데이터의 의해 산출되고 저장된 것과 비교한다. 이들이 비교되는 경우, 데이터의 통합성이 확인된다. 이들이 상이한 경우, 이용된 특정 ECC 알고리즘에 따라, 알고리즘에 의해 지원된 수에 이르는 에러 비트들이 식별되고 정정될 수 있다.
도 1A의 접속(31) 메모리는 도 1B에 주어진 것의 실시예로써, 호스트 시스템의 접속부(31')와 짝을 이룬다. 데이터는 인터페이스 회로(35)를 통해 도 1A의 호스트와 메모리 사이에 전이된다. 전형적인 호스트는 펌웨어 코드 및 RAM(41)을 저장하기 위해 마이크로프로세서(37), ROM(39)를 포함하기도 한다. 다른 회로들 및 서브시스템들(43)은 종종 특정 호스트 시스템에 따라 큰 용량의 자기 데이터 저장 디스크 드라이브, 키보드에 대한 인터페이스 회로, 모니터 등을 포함한다. 그러한 호스트들의 일부 실시예들은 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 손안에 드는 크기의 컴퓨터들, 초소형 컴퓨터들, 개인용 디지털 정보 단말기들(PDAs), MP3 및 기타 오디오 플레이어들, 디지털 카메라들, 비디오 카메라들, 전자 게임기들, 무선 및 유선 전화 디바이스들, 응답기들, 음성 기록기들, 네트워크 라우터들 및 기타를 포함한다.
도 1A의 메모리는 도 1B의 호스트와 이동 가능하게 접속될 수 있는 형태로 제어기 및 모든 그의 메모리 어레이 회로 디바이스들을 함유하는 작은 내장된 카드로서 구현될 수 있다. 즉, 접속부들(31 및 31')의 짝지음은 카드가 단속되고, 다른 호스트로 이동되거나, 또는 다른 카드를 호스트에 접속시킴으로써 대체되게 한다. 대안으로, 메모리 어레이 디바이스들은 제어기 및 접속부들(31)을 함유하는 카드와 전기적으로 및 기계적으로 접속될 수 있는 별개의 카드 내에 내장될 수 있다. 추가의 대안으로서, 도 1A의 메모리는 도 1B의 호스트 내에 내장될 수 있고, 여기서 접속부들(31 및 31')은 영구적으로 짝을 이룰 수 있다. 이러한 경우에, 메모리는 보편적으로 다른 성분들을 따라 호스트의 동봉물 내에 포함된다.
본원 명세서에 사용된 특정 용어들은 일부 설명의 덕을 볼 수 있다. "섹터"는 호스트 판독 및 기입 오퍼레이션들 동안 액세스된 데이터의 어드레스 가능한 유닛들을 독립적으로 의미한다. 데이터의 하나의 섹터는 전형적으로 512바이트 크기이다.
본원에 사용된 바의 "메모리 시스템"은 메모리에 데이터를 저장하고 그로부터 데이터를 검색하는데 필요한 1개 이상의 비휘발성 메모리 디바이스들 및 하드웨 어 및/또는 소프트웨어로 구성된 시스템이다. 전체적인 메모리 시스템 기능성의 일부를 변화시키는 것은 완전히 데이터 저장 전용의 서브시스템 상에 또는 호스트 시스템 자체 상에서 구현될 수 있다. 메모리 시스템은 매우 작은 카드의 형태로서 호스트 시스템에 내장될 수 있거나 또는 제거될 수 있다. 제거 가능한 메모리 시스템의 일부들은 예를 들면 저장 매체가 제어기 부분으로부터 제거 가능한 경우와 같이 자체 제거될 수 있다. 특히 메모리 시스템 내의 데이터 저장 전용 호스트 시스템의 임의의 부분은 도한 메모리 시스템의 일부로서 고려된다. 그러한 호스트 기능성은 호스트 시스템 상에 체류하는 임의의 하드웨어 외에 특수화된 소프트웨어 라이브러리들, 드라이버들 또는 용도들을 포함할 수 있다.
본원에 사용된 목적 상, "호스트 시스템"은 일반적으로 데이터 저장 이외의 기능성을 갖지만, 메모리 시스템에 접속되거나 또는 그에 내장된 메모리 시스템을 갖는 시스템이다. 그의 단독 목적이 데이터 저장인 호스트 시스템이 존재할 수 있다.
본원에 기재된 플래쉬 메모리에 저장된 데이터를 재생하고 스크러빙하기 위한 여러 가지 기술들이 도 2-6에 주어진 것의 실시예들로서 여러 가지 특수 구성을 갖는 시스템들에서 구현될 수 있다. 도 2는 메모리 셀들이 블록들 내로 그룹화되는 메모리 어레이의 일부를 예시하고, 각각의 블록 내의 셀들은 보편적으로 동시에 단일 소거 오퍼레이션의 일부로서 함께 소거될 수 있는 것이다. 물리적 블록은 최소 소거 단위이다.
도 2의 개개의 메모리 셀 블록들의 크기는 변화할 수 있지만, 하나의 상업적 으로 실시된 형태는 개개의 블록 내의 데이터의 단일 섹터를 포함한다. 그러한 데이터 섹터의 콘텐츠는 도 3에 예시된다. 유저 데이터(51)는 전형적으로 512바이트이다. 유저 데이터(51) 외에, 유저 데이터로부터 산출된 ECC(53), 섹터가 프로그램된 섹터 데이터 및/또는 블록 및 파라메터들(55)로부터 산출된 ECC(57) 및 포함될지도 모르는 임의의 다른 오버헤드 데이터를 포함하는 오버헤드 데이터가 있다. 파라메터들(55)은 블록이 경험한 프로그램/소거 주기들의 수에 관련된 정량을 포함할 수 있고("핫 카운트"), 이러한 정량은 각각의 주기 또는 미리 설정된 수의 주기들 후에 갱신된 것이다. 이러한 경험 정량의 1회 사용은 모든 블록들의 이용 (착용 레벨링)을 균일하게 하기 위해 상이한 물리적 블록 어드레스들로 논리 블록 어드레스들을 규칙적으로 다시-매핑하는 것이다. 경험 정량의 다른 사용은 상이한 섹터들에 의해 경험되는 사이클들의 수의 함수로서 프로그래밍, 판독 및/또는 소거되는 다른 파라메터들 및 전압들을 변화시키는 것이다. 스크럽되어야 할 블록들을 식별하는 공정에서 경험 정량들의 추가의 사용은 아래 기재된다.
파라메터들(55)은 또한 통상적으로 이들의 "회전"이라 칭하는 메모리 셀들의 저장 상태들 각각으로 할당된 비트 값들의 지시를 포함할 수 있다. 즉, 데이터의 논리 상태들은 상이한 물리적 저장 상태들로 매핑된다. 이는 또한 착용 레벨링에서 유리한 효과를 갖는다. 1개 이상의 플래그들은 또한 현상 또는 상태들을 지시하는 파라메터들(55)에 포함될 수 있다. 블록의 프로그래밍 및/또는 소거를 위해 사용되어야 할 전압 레벨들의 지시는 파라메터들(55) 내에 저장될 수도 있고, 이들 전압들은 블록 및 기타 인자들 변화에 의해 경험되는 주기의 수로서 갱신되는 것이 다. 오버헤드 파라메터들(55)의 다른 실시예들은 블록 내의 임의의 결함있는 셀들의 식별, 이러한 물리적 블록 내로 매핑되는 데이터 블록의 논리 어드레스 및 주요 블록이 결함있는 경우의 임의의 치환 물리 블록의 어드레스를 포함한다. 임의의 메모리 시스템에 사용되는 파라메터들(55)의 특정 조합은 디자인에 따라 변화할 것이다. 또한, 오버헤드 데이터의 일부 또는 전부는 유저 데이터를 포함하는 블록에서 보다는 오히려 그러한 함수로 또는 오버헤드 데이터가 관련된 것에 전용된 물리적 블록들에 저장될 수 있다.
도 2의 단일 데이터 섹터 블록과 상이한 것은 도 4의 다중-섹터 물리적 블록이다. 여전히 최소 소거 유닛인 예시 블록(59)은 각각 최소 프로그래밍 단위인 4개의 페이지들 0-3을 포함한다. 데이터의 1개 이상의 호스트 섹터들은 보편적으로 섹터의 데이터로부터 산출된 ECC를 적어도 포함하는 오버헤드 데이터와 함께 각각의 페이지에 저장되고, 도 3의 데이터 섹터의 형태일 수 있다. 모든 페이지 이하의 데이터가 갱신될 때, 갱신된 데이터는 전형적으로 소거된 블록 푸울로부터 소거된 블록의 페이지에 저장되고, 남아있는 변화 없는 페이지들 내의 데이터는 원시 블록으로부터 새로운 블록 내로 복사된다. 이어서, 원시 블록은 소거된다. 이러한 큰 블록 관리 기술의 변형들은 원시 블록으로부터 데이터를 이동시키거나 또는 데이터를 소거하지 않고 다른 블록의 페이지 내로 갱신된 데이터를 기입하는 것을 포함한다. 이는 동일한 논리 어드레스를 갖는 다중 페이지들을 초래한다. 데이터의 가장 최근의 페이지는 섹터 내의 필드 또는 페이지 오버헤드 데이터로서 기록되는 프로그래밍 시간 등과 같은 일부 종래 기술에 의해 식별된다.
추가의 다중-섹터 물리적 블록 배열은 도 5에 예시된다. 여기서, 전체 메모리 셀 어레이는 2개 이상의 평면들로 물리적으로 분할되고, 4개의 평면들 0-3이 예시되어 있다. 각각의 평면은 다른 평면들과 크게 독립적으로 작동될 수 있게 하기 위해 그 자신의 데이터 레지스터들, 센스 증폭기들, 어드레싱 디코더들 등을 갖는 메모리 셀들의 서브-어레이이다. 모든 평면들은 단일 집적 회로 디바이스 또는 다중 디바이스 상에 제공될 수 있고, 일 실시예는 1개 이상의 독특한 집적 회로 디바이스들로부터 각각의 평면을 형성하는 것이다. 도 5의 시스템의 각각의 블록은 각각의 페이지가 1개, 2개 또는 그 이상의 호스트 데이터 섹터들의 용량 및 일부 오버헤드 데이터를 갖는 16개의 페이지 P0 - P15를 포함한다.
또 다른 메모리 셀 배열은 도 6에 예시되어 있다. 각각의 물리적 평면은 많은 수의 셀들의 블록을 포함한다. 오퍼레이션의 평행도를 증가시키기 위해, 상이한 평면들 내의 블록들은 논리적으로 링크되어 메타블록들을 형성한다. 하나의 그러한 메타블록은 평면 0의 블록 3, 평면 1의 블록 1, 평면 2의 블록 1 및 평면 3의 블록 2로 형성되는 것으로서 도 6에 예시된다. 각각의 메타블록은 논리적으로 어드레스 가능하고, 메모리 제어기는 개개의 메타블록들을 형성하는 블록들의 트랙을 할당하고 유지한다. 호스트 시스템은 바람직하게는 개개의 메타블록들의 용량과 동일한 데이터 유닛들 내의 메모리 시스템과 인터페이스된다. 예를 들면, 도 6의 그러한 논리적 데이터 블록(61)은 메타블록을 구성하는 블록들의 물리적 블록 번호들(PBNs)로 제어기에 의해 매핑되는 논리 블록 어드레스들(LBA)에 의해 식별된다. 메타블록의 모든 블록들은 함께 소거되고, 각각의 블록으로부터 페이지들은 바람직 하게는 동시에 프로그램되고 판독된다.
도 2-6에 관하여 상기 메모리들을 구현하기 위해 사용될 수 있는 많은 상이한 메모리 어레이 아키텍춰들, 구성들 및 특정 셀 구조들이 있다. NAND 유형의 메모리 어레이의 하나의 블록은 몇몇 방해 메카니즘들을 예시하기 위해 도 7에 나타낸다. 직렬 접속된 메모리 셀들의 많은 수의 컬럼 배향된 스트링들은 다시 어드레스 디코더들, 드라이버들, 판독 센스 증폭기들 등을 포함하는 회로들(67)과 접속되는 비트 라인들 BL0 - BLN 중의 하나 및 전압 VSS의 공통 소스(65) 사이에 접속된다. 구체적으로, 하나의 그러한 스트링은 스트링들의 반대쪽 말단들에서 선택 트랜지스터들(77 및 79) 사이에 직렬로 접속된 전하 저장 트랜지스터들(70, 71,.. 72 및 74)을 포함한다. 이 실시예에서, 각각의 스트링은 16개의 저장 트랜지스터들을 포함하지만 다른 수가 가능하다. 워드 라인들 WL0 - WL15는 각각의 스트링의 하나의 저장 트랜지스터를 가로질러 확장하고, 워드 라인들의 전압 소스 드라이버 및 어드레스 디코더들을 포함하는 회로들(81)에 접속된다. 라인들(83 및 84) 상의 전압들은 이들의 선택 트랜지스터들을 통해 전압 소스(65) 및/또는 비트 라인들 BL0-BLN으로 블록 내의 모든 스트링들의 접속을 함께 제어한다. 데이터 및 어드레스들은 메모리 제어기로부터 나온다.
블록의 전하 저장 트랜지스터들(메모리 셀들)의 각각의 행은 함께 프로그램되고 판독되는 페이지를 형성한다. 적절한 전압이 그의 데이터를 프로그래밍 또는 판독하기 위한 페이지의 워드 라인(WL)에 인가되는 한편, 나머지 워드 라인들에 인가된 전압들은 이들의 각각의 저장 트랜지스터들을 도전성이 되게 하도록 선택된 다. 저장 트랜지스터들의 하나의 행(페이지)을 프로그래밍하고 판독하는 과정에서, 선택되지 않은 행들 상의 이전에 저장된 전하 레벨들은 모든 스트링들을 가로질러 이들의 워드 라인들에 인가된 전압들 때문에 방해받을 수 있다.
스크럽 공정의 여러 국면들
스크럽의 2개의 주요 상들, 판독 상 및 정정 작용 상이 있다. 판독된 스크럽은 그것이 일반적으로 특정 호스트 오퍼레이션의 완료에 직접적으로 관련되지 않거나 또는 착용 레벨링 등의 많은 다른 시스템 오퍼레이션들 중의 임의의 것에 관련되지 않는 메모리 시스템의 영역 내의 데이터를 선택하고 판독하는 것을 포함한다. 판독된 스크럽의 다른 구별되는 특징은 판독된 데이터로부터 시스템에 의해 어떠한 유용한 정보도 수집되지 않지만, 대신에 데이터 통합 체크 결과는 오퍼레이션의 목적이다. 시스템의 일부에 대한 후속 작용은 특히 데이터 자체에 의해서가 아니라 통합성 체크의 결과로서 안내된다. 데이터가 통합 체크에 실패하고, 정정 작용이 필요한 경우, 이 시스템은 오버헤드 데이터 등과 같이 데이터 판독으로부터 일부 정보의 사용을 순차로 필요로 할 수 있다. 특정 호스트 오퍼레이션을 완료하지 않고, 메모리로부터 임의의 유용한 데이터를 얻지 않는 특색들은 이 시스템에 의해 수행된 스크럽 판독치들 및 기타 데이터 판독치들 사이의 기본적 차이들이다.
스크럽 판독치에 대한 특정 영역의 선택은 일반적으로 메모리 디바이스의 물리적 특징들의 맥락에서 시스템 오퍼레이션의 통상의 과정에 수행된 판독, 기입 및 소거 오퍼레이션의 수 및 위치에 의해 안내된다. 일반적으로, 스크럽 판독들은 다른 영역의 오퍼레이션들의 결과로서 전압들, 전류들 또는 혼선에 노출된 메모리 어 레이의 영역 상에서 수행될 것이다. 대안으로, 스크럽 판독 위치들은 다른 메모리 오퍼레이션들로부터 분리될 수 있고, 결정론적 또는 랜덤한 시퀀스에 따르게 된다. 그러나, 보다 많은 판독치들이 보다 방해받은 영역의 유효 범위와 동일한 양을 갖도록 수행되어야 하므로, 이는 시스템 성능의 손실을 초래할 수 있다.
스크럽 판독들의 추가의 국면은 스크럽 판독 오퍼레이션을 수행할 때를 선택하는 것이다. 일반적으로, 스크럽 오퍼레이션은 호스트 오퍼레이션들의 수, 물리적 판독, 기입 및/또는 소거 오퍼레이션의 수, 기간, 호스트의 사용 특성들 또는 일부 랜덤 또는 슈도-랜덤 시퀀스, 상기한 바의 임의의 것에 매일 수 있는 발생 및 체킹 등의 임의의 수의 인자들에 응답하여 개시될 수 있다.
스크럽 기입은 스크럽 판독 중에 데이터 판독의 실패한 통합성 체크의 결과로서 일반적으로 수행되는 경우의 다른 시스템 기입들로부터 구별된다. 스크럽 기입은 스크럽 판독의 맥락에서 유일하게 독특하다. 스크럽 기입들과 유사한 메카니즘들을 갖지만, 특정 목적을 위해 수행되지 않는 다른 기입 오퍼레이션들이 수행될 수 있다. 일 실시예에서, 기입 오퍼레이션들은 통상의 메모리 시스템 오퍼레이션 과정에서 수행된 판독 또는 기입 오퍼레이션들 후 실패한 통합성 체크들로부터 초래될 수 있다. 다른 실시예에서, 데이터는 데이터 통합성 체크에 기초하지 않고, 대신에 일부 다른 인자에 기초한 결정에 의해 스크럽 판독들의 부재 하에 재생 목적들을 위해 판독 및 재기입될 수 있다. 하나의 그러한 인자는 많은 사용 또는 노출을 갖는 어레이의 영역의 존재일 수 있고, 그 경우 그 영역 내의 데이터는 재기입되거나 또는 이동될 수 있다. 데이터의 연속적인 이동 또는 재생은 결정론적으 로 또는 랜덤 방식으로 행해질 수 있다. 데이터는 착용 레벨링의 의도된 목적으로 판독 및 재기입될 수 있지만, 방해 쟁점들을 극복하는 방식으로 데이터를 재생하는 의도되지 않는 장점을 갖는다.
사실 상, 데이터 유닛의 상대적 신선도는 그것이 그렇게 행하기 위한 다른 기준에 부합될 때 그 데이터 유닛의 스크럽을 개시하는지 여부를 결정하기 위해 사용될 수 있다. 즉, 데이터 유닛이 착용 레벨링, 데이터 통합(쓰레기 수집), 선행 스크럽 또는 기타 오퍼레이션의 일부로서 최근에 재-프로그램된 경우, 그들 데이터는 현재 재생되었기 때문에 현재 스크럽은 스킵될 수 있다. 여러 가지 데이터 유닛들의 상대적 신선도는 예를 들면 블록들의 오버헤드 데이터의 일부에서와 같이 데이터 유닛들에 의해 저장된 경험 카운트들("핫 카운트들") 또는 시간 스탬프들로 유지될 수 있다. 대안으로, 물리적 블록들은 하나의 블록이 그 블록의 오버헤드 데이터로서 저장된 것에 속하는 그룹에 의해, 내부에 저장된 데이터의 신선도에 따라 그룹화될 수 있다. 그렇지 않으면 스크럽을 위한 후보들이 되는 블록들의 상대적 신선도는 실제로 스크럽되는 것들을 선택하는 인자로서 사용될 수 있다. 이어서, 시스템 성능은 이들의 저장된 전하 레벨들이 주의를 끌기에 충분히 방해받기에 충분히 오래 저장된 데이터 유닛들로 스크럽 오퍼레이션을 제한시킴으로써 개선된다.
저장된 데이터의 상대적 신선도를 모니터하기 이해, 논리적 블록이나 물리적 블록들은 얼마나 최근 블록들이 재-프로그램되었나에 따라 세트들로 효율적으로 그룹화될 수 있다. 전체 메모리 어레이 내의 모든 블록들 또는 대안으로 어레이의 평면, 구역 또는 다른 부분 내의 블록들은 초기의 비교적 핫 카운트 값으로 주어질 수 있고, 각각의 시간에 블록이 재프로그램되고, 상대적 핫 카운트는 가장 최근에 이동된 세트 또는 그룹의 값으로 갱신될 수 있다. 일단 특정 수의 블록들이 가장 최근에 재프로그램된 그룹에 있는 경우, 가장 최근에 재프로그램된 그룹 값은 증가될 수 있고, 순차로 재프로그램된 임의의 블록들은 새로운 그룹 값으로 갱신될 수 있다. 결과적으로, 독특한 그룹들이 가장 최근에 재프로그램된 블록과 가장 최근이 아닌 재프로그램 블록 사이의 비교적 분명한 특징에 의해 생성될 수 있다. 일반적으로, 일 블록의 상대적인 핫 카운트 값은 비교적 적은 수의 필드들의 사용을 허용하게 연장되도록 허용된다.
상대적 핫 카운트들이 이용될 때, 실질적으로 모든 블록들은 8개의 가능한 값들이 존재할 때 '0'의 기본 값으로, 특정 실시예에서, 예를 들면 '0' 내지 '7'의 값들로 시작할 수 있다. 8개의 값들 중 7개가 사용될 수 있는 한편, 하나의 값은 가장 오래된 데이터를 포함하는 블록들을 식별하는 값으로부터 가장 최근에 프로그램된 블록들을 나타내는 값 사이의 갭을 제공하도록 보존된다. 이 실시예에서, 기입된 블록들은 가장 최근에 프로그램된 것을 지시하기 위해 '1'의 새로운 값을 수신한다. 일단 특정 수의 블록들이 '1'의 새로운 값으로 갱신될 때, 순차로 프로그램된 블록들은 '2'의 새로운 값을 수신할 수 있다. '3'의 값은 결과적으로 일단 특정 수의 블록들이 '2'의 값으로 할당되었을 때 새롭게 재프로그램딘 블록들로 할당될 수 있다. 어떤 점에서, 카운트는 가장 최근이 아닌 사용 블록들이 '2'의 값을 갖도록 연장될 것이고, 가장 최근에 프로그램된 블록들은 '0'의 값을 갖고, '1' 의 값은 가장 오래된 데이터와 가장 새로운 데이터를 갖는 블록들의 값들이 분명히 식별되도록 둘 사이에 갭을 제공한다. 결과적으로, 가장 오래된 저장소 내의 모든 블록들은 호스트 기입, 스크러빙, 착용-레벨링 또는 기타 메카니즘을 통해 재기입될 것이다. 상기 실시예에서, 저장소 '2'는 비워질 것이고, 그 값은 갭으로서 작용할 수 있는 한편, 저장소 '1'은 가장 최근에 기입된 블록들을 식별하기 위해 사용될 수 있다. 블록이 다른 기준에 기초한 스크러빙 오퍼레이션에 대한 후보가 될 때, 그의 스크러빙은 그의 상대적 핫 카운트가 가장 최근에 재프로그램된 블록들의 그룹들 중의 하나에서 그것을 대신하는 경우에 스킵될 수 있다.
대안으로, 절대적 핫 카운트들은 논리적 블록 및 물리적 블록 중 하나 또는 모두에 대해 유지될 수 있고, 그 경우 시스템은 바람직하게는 스크럽 결정들을 가능케 하도록 그러한 핫 카운트들을 사용할 수 있다. 즉, 블록이 재프로그램될 때, 그의 절대적인 핫 카운트는 블록이 재프로그램된 전체 시간수의 지시를 제공하도록 증가되거나, 감소되거나, 또는 그렇지 않으면 유지된다. 큰 수의 재프로그래밍 오퍼레이션들을 지시하는 절대적인 핫 카운트들을 갖는 블록들은 전형적으로 적은 수의 재프로그래밍 오퍼레이션들을 지시하는 절대 핫 카운트들을 갖는 블록들보다 최근에 재프로그램되었다. 따라서, 비교적 큰 수의 재프로그래밍 오퍼레이션들을 갖는 블록들 내에 저장된 데이터의 스크러빙은 데이터가 현저히 방해받기가 쉽지 않기 때문에 스킵될 수 있다.
선택적으로 수행될 수 있는 특정 스크러빙 알고리즘들 및 관련 메모리 오퍼레이션들이 존재한다. 스크러빙은 메모리 시스템 제어기에 의해, 또는 대안으로, 메모리 셀 집적 회로 디바이스들(칩들) 각각 상에서 제어될 수 있거나, 또는 심지어 호스트에 의해 부분적으로 또는 전체적으로 제어될 수 있다. 메모리 시스템은 호스트와 제거 가능하게 접속될 수 있거나, 또는 대안으로 호스트 내에 내장될 수 있다.
스크럽 오퍼레이션의 판독 상은 많은 상이한 방식들로 수행될 수 있다. 스크럽 속도들은 특정 데이터 통합 레벨을 유지하면서 성능을 최적화시키게 될 수 있다. 스크럽 오퍼레이션들이 수행되는 속도들 및 한번에 판독되는 데이터 섹터들의 수는 예를 들면 조정될 수 있다. 그러한 조정은 스크럽 알고리즘의 일부로서 자동으로 발생할 수 있다. 예를 들면, 스크러빙 속도들 및 위치들은 메모리의 상이한 영역들 내의 불균일한 방해 노출 속도들과 매치될 수 있다. 스크럽 판독들은 또한 시스템 성능을 최적화시키거나 또는 특정 실시간 요건들에 부합되도록 지연될 수 있다.
또한, 스크럽 판독이 수행되는 방식으로 여러 가지 대안들이 존재한다. 예를 들면, 데이터 세트는 공칭 기준 레벨들 및 마진 처리된 기준 레벨들 모두에 의해 판독될 수 있다. 마진의 양은 직면한 특정 방해 메카니즘들을 타겟화할 수 있다. 판독 데이터가 ECC에 의해 정정될 수 없는 경우, 보다 넓은 마진들을 갖는 판독은 데이터를 회수할 수 있다. 데이터가 임의의 에러들 없이 통상적으로 판독되는 경우, 보다 좁은 마진들을 갖는 판독은 데이터의 품질의 정보를 제공할 수 있다.
스크럽 판독 후, 정정 작용에 관계하는지 여부에 대한 결정이 이루어진다. 그러한 결정이 기초할 수 있는 인자들 중에는 검출된 에러의 비트들의 수 및/또는 패턴에 기초한 활성 레벨이 포함된다.
가장 통상적인 정정 작용은 메모리 내의 동일하거나 또는 상이한 위치에 판독 데이터를 재기입하는 것을 포함한다. 그러한 스크럽 기입들은 시스템 성능을 최적화하거나, 또는 특정 실시간 요건들에 부합하도록 지연될 수 있다. 정정 작용은 추가로 스크럽 기입 오퍼레이션 동안 데이터의 호전을 포함할 수 있고; 즉, 특정 저장 데이터를 나타내는 메모리 셀 상태들은 그것이 해당되는 것으로부터 변화된다. 정정 작용은 또한 시스템 밖으로 방해에 민감한 것으로 간주되는 셀들, 열들 또는 기타 구조물들을 매핑하는 것을 포함할 수 있다.
호스트 프로토콜들의 대부분은 메모리가 일반적으로 논리 블록 어드레스 번호(LBA)에 의해 호스트에 의해 어드레스되도록 메모리 시스템에 대한 추상적인 인터페이스를 갖는다. ATA 호스트 프로토콜에서 실리더-헤드-섹터 등의 대체 등가 어드레싱 모드들이 존재하지만, 기본 개념은 메모리 시스템이 주어진 호스트 데이터 섹터를 저장한 물리적 위치에 대한 지식을 호스트가 갖지 않는다는 것이다. 호스트 시스템은 데이터 섹터들을 저장하고 검색하기 위해 독립적으로 논리적 블록 어드레스들의 선형으로 연속된 세트를 그에 이용할 수 있었다. 이들 추출된 호스트 프로토콜들은 일반적으로 메모리 오퍼레이션들을 제어하고, 매핑 기능성을 수행하고, 데이터 관리, 에러 회수 등을 위해 메모리 시스템 상에 제어기의 존재를 필요로 한다. 이들 추출된 호스트 프로토콜들에 의해 작동되는 메모리 시스템들은 바람직하게는 호스트가 일반적으로 메모리 시스템들의 물리적 국면들에 대한 어떠 한 지식도 갖지 않음에 따라, 스크럽 오퍼레이션들을 수행하는 메모리 시스템 내의 제어기에 의존한다.
다른 한편, 일부 호스트 프로토콜들은 호스트 자체가 메모리 관리 기능들을 수행하는 인터페이스를 갖는다. 이들 프로토콜들에 순응하는 메모리 시스템들은 전형적으로 만일 있다면 최소 제어기 기능성을 갖는다. ECC 발생으로 제한되지 않지만, 호스트 시스템보다 오히려 메모리 시스템에 의해 수행될 수 있는 ECC 체킹 또는 ECC 정정 등의 기능성의 변화하는 부분들이 있을 수 있다. 이 메모리 시스템은 전형적으로 스크럽 오퍼레이션들을 수행하기에 불충분한 논리를 갖기 때문에, 이들 호스트 메모리 관리 프로토콜들에서 작동하는 메모리 시스템들은 보편적으로 스크럽 오퍼레이션들을 수행하는 호스트에 의존할 것이다.
일보 메모리 시스템들은 그의 목적이 메모리 디바이스를 작동시키고, 메모리 관리 기능성을 수행하는 전용 제어기를 갖는다. 다른 메모리 시스템들은 전용 메모리 제어기들을 갖지 않고, 대신에 메모리 관리 오퍼레이션들을 수행하기 위해 호스트 인프라구조의 일부에 의존한다. 일 실시예로써, 비휘발성 메모리 디바이스는 소프트웨어에 의해 수행되고 있는 메모리 관리 기능성에 의해, 호스트 시스템 내의 범용 마이크로프로세서에 직접적으로 접속될 수 있다. 제어기들이 없는 그러한 메모리 시스템들에서, 메모리 관리 오퍼레이션들에 책임이 있는 동일한 서브시스템은 또한 바람직하게는 스크럽 기능성을 수행한다.
제어기를 갖는 메모리 시스템들 중에서, 제어기 기능성은 비휘발성 메모리 디바이스(집적 회로 칩) 자체 내로 집적되는 것이 가능하다. 극단적인 예에서, 전 체 제어기는 메모리 디바이스 상에 집적될 수 있다.
메모리 시스템은 호스트 시스템 내에 내장될 수 있고, 변화하는 정도까지 범용 목적으로 호스트 서브시스템들 내로 통합되는 기능성을 갖거나, 또는 다른 기능성을 갖는다. 그와 같이 내장된 메모리 시스템들에서, 동일한 호스트 프로토콜들은 반드시 그 경우일 수는 없더라도, 일반적으로 따르게 된다. 그러나, 일반적인 규칙으로서, 동일한 기능성 세트가 메모리 시스템을 작동시키는데 필요하다.
메모리 시스템이 전형적으로 추출된 호스트 프로토콜의 경우에 스크럽 오퍼레이션들을 수행하는 동안, 호스트 시스템은 특수 명령 또는 기타 소정의 인터페이스 트랜잭션의 사용을 통해 그러한 시스템들 내에서 스크럽 오퍼레이션들을 개시할 수 있는 것이 가능하다. 이러한 기능성을 구현하기 위한 한 가지 이유는 메모리 시스템이 데이터를 저장하거나 또는 검색하기 위해 액세스되지 않는 동안의 기간을 호스트 시스템이 가장 잘 인식하고, 이 호스트 시스템은 그러한 기간 동안 스크럽 오퍼레이션을 개시할 기회를 취할 수 있다는 것이다. 이러한 방식으로, 시스템의 전체적인 신뢰도는 성능에 따른 최소 충격에 의해 증가될 수 있다. 스크럽 오퍼레이션을 개시하기 위해 사용된 메카니즘은 특히 스크럽 목적을 위한 것일 수 있거나, 또는 가사 오퍼레이션들에 유용한 시간을 메모리 시스템에 통보하기 위한 범용 메카니즘일 수 있다. 후자의 경우에, 스크럽 오퍼레이션들은 그러한 기간 동안 메모리 시스템에 의해 수행된 여러 오퍼레이션들 중의 하나일 수 있다.
주어진 메모리 오퍼레이션으로 인한 노출 영역은 일반적으로 고가이므로, 오퍼레이션이 수행될 때마다 전체 노출 영역을 스크럽하는 것은 실질적이지 않다. 일반적으로, 노출된 영역의 일부만이 스크럽을 위해 선택될 것이고, 스크럽 속도는 에러 내의 비트들의 수 및 시프트된 셀들의 레벨이 메모리 시스템 상에서 입수할 수 있는 임의의 회수 계획들을 초과하기 전에 스크럽 오퍼레이션이 가장 방해받은 영역을 검출하도록 설정되어야 한다.
스크럽 오퍼레이션들이 수행되는 속도는 데이터 통합성 및 메모리 시스템 성능 모두에 영향을 미치는 중요한 파라메터이다. 스크럽 속도가 더 클수록, 에러 내의 비트들의 수 및 시프트된 셀들의 레벨이 메모리 시스템 상에서 입수할 수 있는 임의의 회수 계획들을 초과하기 전에 데이터 블록 내의 방해받은 셀들을 검출할 가능성이 더 높아진다. 그러나, 스크럽 속도가 더 빠를수록, 메모리의 증가량 및 제어기 시간이 이러한 오퍼레이션에 전용됨에 따라 메모리 시스템의 성능의 저하는 더 커진다. 성능을 가능한 한 적게 희생하면서 목적하는 데이터 통합성 레벨을 보장하기 위해, 스크럽 속도는 가드 대역이 적절히 간주되는 무엇이든지에 의해 요구되는 드러난 최소값으로 최적화된다. 스크럽 오퍼레이션들이 수행될 수 있는 속도는 2가지 방식으로: 1) 스크럽 오퍼레이션을 수행하기 위한 시간의 선택, 및 2) 한번에 스크럽 판독에 대한 섹터들의 수의 선택으로 변화할 수 있다.
데이터 통합성을 유지하는데 필요한 스크럽 속도는 제품의 수명에 걸쳐 변화할 수 있다. 예를 들면, 셀들이 보다 주기적으로 됨에 따라, 방해 속도는 증가하거나 또는 감소할 수 있다. 고정된 스크럽 속도가 생산 시점에 설정된 경우, 메모리 시스템의 수명에 걸쳐 메모리 시스템 통합성을 유지하기 위해, 메모리 시스템의 수명에 걸쳐 필요한 최고 속도가 사용되어야 한다. 이는 보다 느린 속도가 충분할 때 보다 빠른 스크럽 속도를 초래하고, 메모리 시스템 수명에서 특정 시간에 필요한 것보다 더 큰 메모리 시스템 성능의 희생을 초래한다. 메모리 시스템의 수명에 걸쳐 스크럽 속도들을 조정하기 위한 여러 가지 시도들이 있다.
메모리 시스템을 제조한 시점에 스크럽의 가변 속도를 설정할 수 있다. 그렇게 하는 하나의 방법은 미터법이 방해 속도에 영향을 미치는 무엇인가에 의해 상이한 스크럽 속도를 설정하는 속도 값들의 테이블을 제공해야 한다. 일 실시예는 메모리 어레이의 여러 부분들에 의해 경험되는 상이한 프로그램/소거 주기 카운트들에 대한 스크럽 속도들을 포함하는 표이다. 메모리 시스템이 주기 카운트들을 유지하는 경우, 스크럽 속도 파라메터는 최악의 경우에 기초한 표 또는 어레이의 주어진 영역의 평균 주기 카운트로부터 선택될 수 있다.
다른 시도는 이전의 스크럽 오퍼레이션들의 결과에 기초한 스크럽 속도를 메모리 시스템이 자체-조절하게 하는 것이다. 예를 들면, 메모리 시스템이 스크럽 오퍼레이션들의 로그를 유지하고, 매우 낮은 백분율의 스크럽 오퍼레이션들이 정정 작용을 필요로 하는 것을 결정한 경우, 그것은 그것이 스크럽 판독들을 수행한 속도를 하향 조절할 수 있다. 다른 한편, 스크럽 오퍼레이션들의 매우 높은 백분율이 정정 작용을 필요로 하는 것이 결정된 경우, 그것은 스크럽 판독들을 수행한 속도를 하향 조절할 수 있다. 메모리 시스템이 스크럽 속도를 조절할 수 있는 다른 미터법은 이전의 스크럽 오퍼레이션들 동안 개개의 저장 소자들에서 검출된 시프트의 야 또는 에러 비트들의 수이다. 임의의 상기 경우들에서, 이 시스템은 각각의 새로운 결과에 의해 스크럽 속도 파라메터를 순응하게 조절할 수 있거나, 또는 이 는 주기적 조절을 위한 정보를 로그할 수 있다.
스크럽 오퍼레이션을 수행할 때를 선택하기 위해 사용될 수 있는 여러 가지 기술들이 존재하고, 그의 일부 실시예들은 1) 랜덤 또는 슈도-랜덤, 2) 호스트 오퍼레이션들의 수에 기초하고, 3) 메모리 디바이스 상의 오퍼레이션들의 수에 기초하고, 4) 시간 간격에 기초한다. 상기 방법들 중의 임의의 것을 사용하여 스크럽 오퍼레이션들이 수행되는 속도를 조정하는 것이 가능하다. 아래 가정은 스크럽 결정을 위해 필요한 임의의 파라메터들이 생산 시간에 제공된다는 것이다. 이들 각각이 상이한 속도로 메모리를 방해할 수 있듯이, 판독, 기입 및 소거 오퍼레이션들을 위해 상이한 속도 파라메터들이 존재할 수 있다.
난수들(RN) 또는 슈도-난수들(PRN)이 시스템에 이용될 수 있거나, 또는 시스템에 의해 발생될 수 있는 경우의 스크럽 오퍼레이션들의 주파수를 결정하기 위해 이들 난수를 사용하는 것이 가능하다. 스크럽 오퍼레이션을 수행하기 위한 것인지 여부를 결정하기 위해 RN 또는 PRN 시퀀스를 사용하기 위한 많은 방법들이 아래 개시되어 있다. 아래 방법들 모두는 RN이 일부 규칙적인 간격으로 체크되는 것을 가정하고, 스크럽을 수행하기 위한 결정이 RN 값의 일부 시험에 기초하거나 또는 그렇지 않다.
스크럽 속도를 결정하기 위해 난수를 사용하는 하나의 방법은 1의 값으로 설정된 일부 비트들의 수를 포함하고, 나머지는 0으로 설정된 마스크 파라메터를 갖는 RN 또는 PRN의 논리적 AND를 수행하는 것이다. 스크럽을 수행하는지 여부의 결정은 AND 오퍼레이션이 0 또는 0 이외의 값을 초래하는지 여부에 기초할 수 있다. 보다 많은 1의 값을 갖는 마스크 파라메터는 보다 많은 0의 값을 갖는 마스크 값보다 0의 값을 초래하는 빈도가 적다. 아래 표는 상이한 8-비트 마스크 값들을 갖는 스크럽의 대략적인 속도들을 보여주고, 0 AND 결과는 스크럽 오퍼레이션을 유발한다고 가정한다. 진정한 램덤 시퀀스에 의해, 1의 값을 갖는 비트들의 수만이 속도에 영향을 미치고, 값 자체는 그렇지 않고, 표의 값들은 단지 전형적인 값들임에 주의하자.
마스크 값(16진수) 마스크 값(2진수) 스크럽 속도
0x00 00000000 1/1
0x01 00000001 1/2
0x03 00000011 1/4
0x07 00000111 1/8
0x0F 00001111 1/16
0x1F 00011111 1/32
0x3F 00111111 1/64
0x7F 01111111 1/128
0xFF 11111111 1/256
다른 관련 방법은 스크럽 오퍼레이션을 수행하기 위한 것인지 여부를 결정하기 위해 1의 값의 RN 내의 비트들의 수를 카운트하는 것이다. 다시, RN 내의 비트들의 수는 임계값을 지시하는 마스크 또는 값과 비교될지도 모른다. 또 다른 방법은 파라메터의 스크럽 속도의 그것과 RN의 값을 비교하는 것을 수반한다. 스크럽 을 수행하는지 여부의 결정은 RN이 임계 값을 수치적으로 초과하였는지 여부에 기초할 수 있다. 예를 들면, 5의 임계 값에 대해, RN은 시간의 5/256만큼 높을 수 있다.
대안으로, 스크럽 속도는 수행된 호스트 오퍼레이션들의 수에 매일 수 있다. 예를 들면, 스크럽 오퍼레이션은 N 호스트 판독, 기입 및/또는 소거 오퍼레이션들마다 수행될 수 있고, 여기서 N은 스크럽 속도를 설정하는 속도 파라메터이다. 더욱이, 스크럽 속도는 수행된 메모리 오퍼레이션들의 수에 매일 수 있다. 예를 들면, 스크럽 오퍼레이션은 NR 판독들, NW 기입 및/또는 NE 소거 오퍼레이션들마다 수행될 수 있고, 여기서, NR, NW 및 NE는 스크럽 속도를 설정하는 속도 파라메터들이다. 추가의 대안으로서, 메모리 시스템이 시간격 측정 방법을 포함하는 경우, 스크럽들은 일부 규칙적인 시간 T에 수행될 수 있고, 여기서, T는 스크럽 속도를 설정하도록 제공된 파라메터이다.
스크럽 판독을 수행하기 위한 결정이 이루어진 후 조차, 스크럽 판독을 지연시키는 것이 메모리 시스템의 성능을 유지하기 위해 바람직하다. 그렇게 행하는 이유들은 실시간 고려 사항들을 포함할 수 있다. 예를 들면, 호스트는 특정 데이터 전이를 필요로 할 수 있고, 특정 시점에 자원들을 스크러빙시키는 것은 보장된 데이터 속도에 부합되는 메모리 시스템의 능력에 충격을 미칠지도 모른다. 그러한 목적 때문에, 메모리 시스템은 스크럽을 수행하는 것이 호스트에 대한 성능에 영향을 미치지 않을 때의 일 시점에, 이후의 프로세싱을 위한 스크럽 오퍼레이션 파라메터들을 큐할 수 있다. 스크럽 오퍼레이션들은 때때로 호스트 명령 프로세싱에서 이후에, 때때로 명령 프로세싱 후에, 또는 후기의 호스트 명령까지 지연될 수 있다. 그러한 경우에, 결정된 스크럽 오퍼레이션 파라메터들은 그것이 호스트에 대해 가장 편리한 후기 시점에 저장되고 처리된다.
메모리의 노출된 영역의 일부만이 주어진 시간에 스크럽될 수 있기 때문에, 적절한 유효 범위를 달성하는 하나의 중요한 국면은 스크럽을 수행하기 위한 결정이 일단 이루어진 것을 스크럽하는 경우의 선택이다. 어디를 스크럽해야 하는지의 선택은 일반적으로 메모리 디바이스에 대한 판독, 기입 및/또는 소거 오퍼레이션들의 위치에 관련된다. 선택 위치에 내장된 것은 주어진 메모리 오퍼레이션이 다른 저장 소자들을 방해하는 것에 걸친 영역의 인식이다. 오퍼레이팅된 영역으로 스크럽할 영역에 관련한 것은 스크럽 오퍼레이션들이 가장 효율적으로 되게 하고, 여기서 스크럽 오퍼레이션들은 쉽게 방해받지 않은 메모리의 영역 상에서 수행되지 않는다.
스크럽할 위치를 선택하는 하나의 방법은 주어진 오퍼레이션에 노출된 영역 내로부터 하나의 위치를 선택하도록 RN 또는 PRN을 사용하는 것을 수반한다. 평균적으로, 최고 노출을 경험한 영역은 스크럽을 위해 선택되어야 할 최상의 기회들을 가질 것이다. 스크럽 속도는 예상되는 최악의 경우의 난수 유효 범위를 고려하여 조절될 수 있고, 단, 일부 영역들은 다른 것들보다 더 종종 선택될 것이고, 평균에 대해서는 균일한 유효 범위가 존재할 것이다.
스크럽할 위치를 선택하는 다른 방법은 노출된 영역을 통해 결정론적으로 이동하는 것을 수반한다. 그러나, 이 방법은 완전 유효 범위를 보장하기 위해 메모 리 오퍼레이션들 및 스크럽 오퍼레이션들 모두의 로깅을 필요로 할 수 있다.
메모리의 활성이 로그되는 경우, 노출량의 척도를 얻을 수 있고, 주어진 영역은 잠재적으로 방해하는 오퍼레이션들을 수용한다. 그러한 정보를 제공함으로써, 메모리 시스템은 최고 노출을 수신한 영역에 대한 로그를 통해 탐색할 수 있고, 그들 영역으로 스크럽 오퍼레이션을 제한한다. 이 방법은 스크럽할 속도 및 위치들을 결정하는데 있어서 상기 방법들중 임의의 것을 안내하기 위해 사용될 수 있다. 일반적으로, 프로그램/소거 주기들은 주기 카운트 정보의 유지를 통해 트래킹될 수 있다. 그러나, 일반적으로 판독 활성을 로그화하는 것은 실행 불가능하므로, 이러한 방법은 판독 노출을 트래킹하기 위해 쉽게 사용될 수 없다.
대안으로, 정정 작용들의 위치들은 다른 것들보다 방해하기 보다 민감할 수 있는 영역에 대한 가이드로서 로그되고 사용될 수 있고, 다른 것들보다 큰 노출을 수용한다. 메모리 시스템은 스크럽할 영역들의 선택을 가중시키기 위해 이 정보를 사용할 수 있고, 특히 다른 것들보다 더 빈번히 정정 작용을 필요로 하는 영역에 대해 사용할 수 있다.
잠재적인 방해 노출 영역들의 지식이 유지되지 않는 시스템들에서, 랜덤하거나 또는 결정론적인 방법들 중의 하나는 그러한 지식에 독립적으로 사용될 수 있다. 이 경우, 스크럽들은 호스트 활성이 메모리 시스템 내의 오퍼레이션들을 발생하게 하는 경우와 무관하게 메모리 시스템 전반에서 수행된다. 그러나, 스크럽 속도는 충분한 유효 범위를 보장하기에 충분히 크게 조절된다. 일반적으로 이것은 메모리 시스템의 일부 영역들이 다른 것들보다 훨씬 더 큰 노출을 경험할 것이고, 바람직하게는 스크럽 오퍼레이션들의 초점의 주요 영역들이기 대문에 자원의 큰 낭비이다.
스크럽 오퍼레이션의 목적은 에러 내의 비트들의 수 및 시프트된 셀들의 레벨이 메모리 시스템 상에서 이용될 수 있는 임의의 회수 계획들을 초과하기 전에 방해받은 저장 소자들을 검출하는 것이다. 이 때문에, 일반적으로 가능한 한 빨리, 방해를 검출하는 것이 바람직하고, 주어진 전압에 대한 많은 가드 대역 전에, 임계 레벨은 방해받도록 상실되었다.
배경에서 상기한 바와 같이, 플래쉬 메모리들은 보편적으로 이산적인 상태에서 데이터 또는 전하 저장 레벨들의 범위들을 저장하고, 그 각각은 일부 가드 대역에 의해 다른 상태들로부터 분리된다. 일반적으로 저장 소자가 하나의 상태인 것으로 간주되는 것 위와 그것이 다른 상태로 간주되는 것 아래의 각각의 상태 사이의 차별화를 위한 공칭 감지 레벨이 존재한다. 주어진 저장 소자가 방해받음에 따라, 프로그램되거나 또는 소거된 레벨은 이동하기 시작할 수 있다. 저장 소자의 레벨이 차별화 감지 레벨에 도달하거나 또는 그 위로 교차하는 경우, 그것은 그것이 프로그램되거나 또는 소거된 상이한 상태로 데이터를 생산한다. 에러는 일반적으로 데이터 내에서 1개 또는 그 이상의 에러의 비트들로서 자체 만연될 것이고, 일반적으로 데이터 필드를 커버하는 ECC의 사용을 통해 검출될 것이다.
차별화 감지 레벨이 하나의 상태 또는 다른 상태 쪽으로 더 많이 이동되도록하는 판독 조건들을 마진화 또는 편항시키는 것은 이동량이 공칭 판독 조건들 하에 에러를 유발하지 않을 경우조차 방해받은 저장 소자들이 잘못된 상태로 감지되게 유발할 것이다. 이는 공칭 메모리 시스템 오퍼레이션 동안 에러들을 유발할 수 있는 지점에 도달하기 전에 시스템이 이동을 검출할 수 있게 한다.
방해 메카니즘들이 특정 방식으로 데이터 저장 레벨들에 영향을 미치는 것으로 공지된 경우, 예상된 레벨 시프트들 쪽으로 판독 조건들을 마진화함으로써 그들 특정 방해 메카니즘들의 검출을 타겟화할 수 있다. 이상적인 상황이 마진 조건들의 단일 세트 하에 단일 판독 오퍼레이션에 의해 예상되는 방해 메카니즘들을 타겟화하지만, 이것은 보편적으로 가능하지 않다. 상이한 조건들 하에 다수의 판독 오퍼레이션들을 수행하는 것이 필수적이다. 예를 들면, 메모리 내에 존재하는 상이한 방해 메카니즘들은 저장 소자들이 보다 더 프로그램되거나 또는 더 소거되게 할 수 있다. 차별화 레벨 위 및 아래의 저장 소자들 모두는 그 쪽으로 이동될 수 있고, 그 경우, 하나의 상태로부터, 및 이어서 다른 상태로부터 차별화 레벨 쪽으로 저장 레벨들의 이동을 위해 먼저 반드시 체크될 수 있다.
정정 작용이 취해져야 하는 경우를 결정하기 위한 임계치로서 사용될 수 있는 데이터 품질의 2개의 개개의 측정치들이 존재한다: 1) ECC의 사용을 통해 데이터 에러들의 검출, 및 2) 데이터 에러들이 거의 또는 전혀 검출되지 않는 경우조차, 전하 저장 레벨들의 이동은 이들이 데이터 판독 에러들을 유발하기 전에 검출될 수 있다.
상기 고찰된 바와 같이, 스크럽 판독 조건들은 특정한 예상되는 방해 메카니즘들을 타겟화하거나 또는 저장된 레벨들 내의 충분한 마진에 대해 단순히 체크하도록 마진화될 수 있다. 정정 작용을 취하는지 여부의 결정인 데이터가 공칭 또는 마진화된 조건들 하에 판독되는지 여부는 스크럽 판독 오퍼레이션 동안 검출된 에러의 비트들의 수에 기초할 수 있다. 예를 들면, 에러의 비트들의 수가 시스템의 ECC 정정 능력 미만인 경우, 이 시스템은 정정 작용을 지연시키거나 또는 에러를 함께 무시하도록 결정할 수 있다.
정정 작용을 개시하는 것에 대한 임계값으로서 에러의 비트 수를 사용하는 것 외에, 시스템은 에러의 비트 패턴 등의 다른 인자들에 기초하여 정정하도록 결정할 수 있다. 예를 들면, ECC 정정 능력들은 비트 에러 패턴에 민감할 수 있거나, 또는 비트 에러 패턴들은 비휘발성 메모리 내의 특정한 공지된 방해 메카니즘을 지시할 수 있다. 비트 에러 패턴들에 대한 임계값을 편향시키는 다른 이유들이 존재할 수 있다. 비트 에러 패턴은 일반적으로 ECC 정정 오퍼레이션 동안 드러난다.
정정 작용이 필요한 것으로 결정된 경우조차 스크럽 정정 작용을 지연시키는 것이 성능 목적상 바람직할 수 있다. 그렇게 하는 이유들은 실시간 고려 사항들을 포함할 수 있다. 예를 들면, 호스트는 특정 데이터 전이를 필요로 할 수 있고, 특정 시점에 자원들이 정정 작용을 스크럽하게 하는 것은 보장된 데이터 속도에 부합하는 메모리 시스템의 능력에 영향을 미칠지도 모른다. 그러한 목적 상, 메모리 시스템은 스크럽을 수행하는 것이 호스트에 대한 성능에 영향을 미치지 않을 때의 일 시점에, 이후의 프로세싱을 위한 스크럽 정정 작용 오퍼레이션 파라메터들을 큐할 수 있다. 스크럽 정정 작용 오퍼레이션들은 때때로 호스트 명령 프로세싱에서 이후에, 때때로 명령 프로세싱 후에, 또는 후기의 호스트 명령까지 지연될 수 있 다. 중요한 점은 스크럽 오퍼레이션 파라메터들은 그것이 호스트에 대해 가장 편리한 후기 시점에 저장되고 처리된다는 것이다.
메모리 아키텍춰들의 2가지 현저히 독특한 극단이 존재하고, 그 각각은 메모리 디바이스에 대한 물리적 위치들로 호스트 데이터를 매핑하고, 일단 프로그램된 데이터를 관리하고 액세스하는 상이한 방법들을 유도한다. 2가지 아키텍춰들 사이의 기본적인 차이는 최소 소거 단위의 크기 및 호스트 프로토콜 데이터 섹터의 크기에 대한 그의 관련에 관한 것이다.
최소 소거 유닛의 크기가 호스트 데이터 섹터의 그것에 근사하는 경우, 직접적인 어드레싱 계획을 구현할 수 있고, 여기서 주어진 호스트 데이터 섹터는 일반적으로 그것이 호스트에 의해 기입됨에 따라 동일한 물리적 위치로 매핑된다. 그러한 계획에서, 이전의 내용들은 일반적으로 그의 위치에 기입되어 있는 대체 데이터 전의 물리적 위치로부터 소거된다. 이러한 재기입은 최소 소거 유닛의 크기가 호스트 섹터의 그것보다 큰 경우 판독-개질-기입을 수반할 수 있다. 호스트 섹터들에 대한 이러한 어드레싱 계획에서 저장 시스템 내의 대체 위치들로 재매핑하는 것이 가능하지만, 이는 일반적으로 결함 관리 오퍼레이션의 일부로서 또는 일부 다른 시스템 신뢰도 목적으로 섹터 재할당 중에 유일하게 발생한다. 그러한 매핑 후, 호스트 섹터는 일반적으로 일부 다른 재할당 이벤트까지 새로운 물리적 위치로 매핑된 채로 남겨질 것이다. 그러한 직접 어드레스 매핑 계획에서, 방해로 인한 정정 작용은 일반적으로 방해받도록 결정된 물리적 위치로부터 내용물들을 소거하고, 이들을 동일한 위치에 재기입하는 것을 수반한다. 재기입 동안 임의의 에러들 은 재-소거 및 재기입, 재할당, 소거 또는 기입 파라메터들의 변경 등을 포함하지만, 이들로만 제한되지 않는 시스템에 의해 사용된 일반적인 예외 핸들링과 일치하는 방식으로 다루어질 수 있다.
다른 한편, 최소 소거 유닛의 크기가 호스트 섹터들의 그것보다 훨씬 더 큰 경우, 소거-푸울링 어드레싱 계획을 구현하는 것이 통상적이다. 그러한 어드레싱 스킴은 또한 작은 최소 소거 단위를 갖는 메모리들에 의해 마찬가지로 구현될 수도 있다. 소거-푸울링 스킴에서, 호스트 섹터들은 보편적으로 물리적 소거 유닛들 내로 매핑되는 논리적 블록들 내로 그룹화된다. 주어진 호스트 데이터 섹터는 소거 유닛 내의 다른 호스트 데이터 섹터들로 포위된다. 호스트가 주어진 데이터 섹터를 기입할 때, 타겟 섹터 둘레의 모든 섹터들을 판독하고, 블록을 소거하고, 이어서 모든 섹터들을 다시 새로운 데이터를 포함하는 하나의 호스트 섹터에 의해 소거 유닛으로 되돌려 기입하는 것을 실행 불가능하다. 그러한 과도한 오버헤드 오퍼레이션들을 피하기 위해, 소거-푸울링 계획은 일반적으로 이들이 기입됨에 따라 새로운 버전의 데이터를 유지할 목적으로 소거된 상태로 소거 유닛들의 일부 수를 유지한다. 섹터들은 일반적으로 데이터 관리 목적을 위해 논리 그룹들로 함께 그룹화되고, 일반적으로 이 시스템은 동일한 논리 그룹 내의 섹터들의 물리적 근사치를 유지하려 시도할 것이다. 여러 가지 소거 유닛들은 보편적으로 높은 기입 병치를 허용할 목적으로 메타블록 또는 가상 블록이라 칭하는 논리적 구조물을 형성하도록 조합될 수 있다. 일반적으로, 호스트로부터 새로운 데이터는 소거된 위치에 기입될 것이다. 일부 시점에서, 새로운 데이터로 대체되지 않은 동일한 논리 그룹으로 부터 다른 섹터들은 동일한 메타블록 내로 복사되거나, 또는 다른 메타블록 내로 새롭게 기입된 데이터에 따라 복사된다. 이후에, 일단 주어진 메타블록 또는 소거 유닛 내이 모든 데이터가 대체되거나 또는 달리 복사되면, 메타블록 또는 소거 유닛은 소거될 것이고, 소거된 소거 유닛의 푸울의 일부로 고려될 것이다. 그러한 소거-푸울링 어드레싱 계획에서, 방해로 인한 정정 작용은 일반적으로 보편적인 메모리 시스템 작용을 위해 시스템에 의해 요구되는 임의의 데이터 통합에 따라, 영향받은 데이터를 메모리 시스템 상의 다른 위치로 복사하는 것을 수반한다.
그러나, 호스트 활성 또는 일반적인 데이터 관리로 인해 기입 오퍼레이션들과 상이하게 처리되는 것이 스크럽 오퍼레이션 동안 정정 작용을 위해 가능하다. 시스템에 대해 데이터를 논리적으로 연속된 데이터와 통합하는 것이 편리할 때까지 짧은 시간 동안 그러한 데이터를 유지하기 위해 보존된 특수 위치에 데이터를 기입할 수 있고, 상기 영역은 보존되거나 또는 수요에 따라 할당된다. 시스템이 데이터를 간단히 소거하고, 동일한 위치에 재-기입하는 것이 일부 상황들 하에 가능하기도 하다. 예를 들면, 물리적 블록 내에 다른 데이터가 거의 또는 전혀 남겨지지 않은 경우, 다른 데이터는 영구적으로 다른 곳으로 이동하거나, 또는 가능하게는 휘발성 메모리 내에서 소거되는 동안 다른 곳에 일시적으로 저장되고, 정정 작용을 획득하는 데이터에 따라 다시 기입된다. 데이터 기입 중의 임의의 에러들은 재기입, 재할당, 새로운 위치로의 기입, 소거 또는 기입 파라메터들의 변경, 데이터 극성의 강제 회전 등을 포함하지만, 이들로 제한되지 않는 시스템에 의해 사용된 일반적인 예외 조작과 일치하는 방식으로 다루어질 것이다.
일부 개개의 저장 소자들, 저장 소자들의 그룹들 또는 기타 구조물들은 다른 무엇보다도 방해에 보다 민감해질 수 있다. 가능한 그러한 구조물들 또는 그룹화의 일 실시예로써, 플래쉬 메모리 저장 소자들이 공정의 변수로 인해 공통 드레인, 소스 또는 게이트 라인을 공유하도록 배열될 수 있고, 접속된 저장 소자들의 하나의 그러한 세트는 평균 이외의 잠재적으로 방해하는 신호들에 대한 보다 강한 노출을 경험할 수 있다. 마찬가지로, 개별 저장 소자들은 어레이를 형성하기 위해 사용된 공정의 변화로 인해 다른 것들보다 더 민감해질 수 있다. 저장 시스템은 방해에 민감한 것으로 간주되는 이들 영역들을 영구적으로 매핑하거나 또는 재할당하도록 고안될 수 있다. 극단적인 경우에, 임의의 저장 소자들 또는 다른 구조물들이 스크럽 정정 작용의 제1 발생에 따라 재매핑될 수 있다. 예를 들면, ECC 정정을 요하는 비트들을 포함하는 저장 소자들은 여분의 저장 소자들이 이용될 수 있는 경우에 매핑될 수 있다. 다른 실시예들에서, 정정 작용의 위치들은 이후의 시점에 저장 소자들을 재-매핑하거나, 또는 그룹화할 목적으로 로그되고 이후에 분석될 수 있다. 분석은 주어진 그룹화가 정정 작용을 필요로 하는 시간 수의 임계값을 포함할 수 있다. 일부 경우들에서, 로그된 데이터는 접속된 저장 소자들 등의 예상되는 물리적 구조물들의 존재를 검출하기 위해 메모리 디바이스의 물리적 국면들이 인식에 의해 분석될 필요가 있다. 저장 소자들 또는 저장 소자들의 그룹화가 재-매핑되는 방식은 메모리 시스템의 구현에 의존한다. 예를 들면, 논리적 섹터를 포함하는 물리적 영역은 매핑된 저장 소자들을 대체할 목적으로 여분의 저장 소자들을 포함할 수 있다. 다른 실시예에서, 전체 섹터 또는 섹터들의 그룹은 그것이 정 정 작용을 필요로 하는 경우에 매핑될 수 있다.
스크럽 오퍼레이션들은 호스트 오퍼레이션들의 배경에 또는 호스트 오퍼레이션들 사이에 수행될 수 있다. 호스트가 요청한 유형의 오퍼레이션에 좌우되어 스크럽 오퍼레이션의 작용을 변화시키는 것이 바람직할 수 있다. 예를 들면, 호스트 판독 명령의 실행 동안 스크럽 정정 작용이 발생하는 것은 편리할 수 없고, 그 경우, 정정 작용은 메모리 시스템에 대해 보다 편리한 시간으로 지연될 수 있다.
방해 회피에 대한 대체 시도는 데이터가 에러인 경우를 결정하기 위한 제1 체킹 없이 잠재적으로 방해하는 노출을 수신한 데이터를 이동시키는 것이다. 이동시킬 데이터의 주파수 및 위치를 선택하는 것에 대한 많은 시도들이 존재하고, 그의 대부분은 상기 기재하였다.
스크럽의 일반적 실시예
도 8의 흐름도는 실시예의 플래쉬 메모리 스크럽 알고리즘의 주요 단계들을 개략한다. 제1 단계(91)는 스크럽 오퍼레이션에 대한 트리거 이벤트가 발생한 때를 결정하기 위해 메모리 시스템의 활성을 모니터한다. 그러한 트리거 이벤트는 다음중 1개 이상일 수 있다:
1. 데이터 판독, 데이터 기입 또는 소거 오퍼레이션이 주어진 블록에서 또는 다른 유닛들의 전하 레벨을 방해할 수 있는 어레이의 다른 유닛에서 발생할 때. 오퍼레이션의 세기 및/또는 기간은 스크럽 오퍼레이션을 시동할지 여부를 결정할 뿐만 아니라, 방해에 대한 어레이의 민감성을 결정하는데 중요할 수 있다 (예를 들면, 메모리가 개개의 상태들을 한정하는 좁은 전하 레벨 범위들을 갖는 다중- 상태로 작동할 때).
2. 주어진 단위의 통상의 시스템 판독 오퍼레이션이 적어도 하나 또는 미리 설정된 비트 에러들의 수로 데이터를 판독할 때.
3. 마진 판독들(통상의 판독 보다 더 좁게 프로그램된 분포를 판독하도록 설정된 기준 레벨들에 의함)은 어떠한 비트 에러도 존재하지 않더라도 프로그램된 셀들의 임계 레벨들이 최적이 아님을 보여준다.
4. 최종 스크럽 오퍼레이션이래 소정의 기간이 경과한 후.
5. 호스트가 스크러빙 오퍼레이션을 개시할 때.
전체적인 목표는 데이터가 메모리 시스템에 이용될 수 있는 임의의 회수 계획들(ECC 등)을 초과하도록 아주 많아지기 전에 방해받은 데이터를 검출하기에 충분히 종종 스크럽 오퍼레이션을 실행하는 것이다.
일단 스크럽 트리거 이벤트가 검출되면, 다음 단계(93)는 스크럽 오퍼레이션을 수행하기 위해 메모리 어레이 내의 위치들을 결정한다. 실시예 후보들은 다음과 같이 결정될 수 있다:
1. 비트 라인들, 워드 라인들 또는 기타 신호 라인들을 주어진 유닛과 공유하는 주어진 유닛 밖의 블록들 또는 다른 유닛(들), 그 위에 전압들 또는 전류들이 판독, 기입 또는 소거 오퍼레이션 동안 인가된다.
2. 사이에 혼선이 존재하도록 주어진 단위의 그것들과 결합된 신호 라인 필드를 갖는 주어진 유닛 밖의 다른 유닛(들).
3. 그러한 다른 유닛(들)이 프로그램되는지 또는 소거되는지 여부는 이들 이 주어진 유닛 상에서 오퍼레이션에 의해 잠재적으로 영향받는지 여부를 결정할 수 있다.
4. 잠재적으로 영향받은 유닛(들)은 오퍼레이션이 판독되건, 기입되거나 또는 소거되는지 여부에 의존할 수 있다.
5. 판독 데이터 내의 에러(들)을 발견하는 주어진 유닛의 통상의 시스템 판독에 의해 시동되는 경우, 주어진 유닛은 스크럽 오퍼레이션을 위해 식별된다.
6. 후보 블록들 내의 데이터의 상대적 신선도는 보다 최근에 재-기입된 것들을 제거하기 위해 사용될 수 있다.
스크럽을 위한 후보들로서 메모리 블록(들) 또는 기타 유닛(들)의 식별은 수행되고 있는 스크럽이 반드시 후속되지는 않는다. 다음 단계(95)로 지시된 바와 같이, 스크럽 오퍼레이션의 개시는 특정 상황들 하에 정의될 수 있고, 그의 예들은 다음과 같다:
1. 스크럽 판독들은 시스템 성능을 최적화시키기 위해서 또는 메모리 시스템의 특이적 실시간 오퍼레이팅 필요들에 부합하기 위해 지연될 수 있다.
2. 자체-조정 스크럽: 스크럽 오퍼레이션들이 수행되는 속도는 유지되는 성능 및 데이터 통합성을 최적으로 밸런스를 맞추기 위해 동적으로 조절될 수 있다.
3. 스크럽 오퍼레이션을 수행하는 긴급도는 유닛들의 경험 레벨(프로그래밍/소거 주기의 수), 및 스크럽 오퍼레이션이 시동되게 유발되는 이벤트의 유형 등의 잠재적으로 영향받은 것으로서 식별되는 유닛들의 특성들로부터 일부 결정될 수 있다.
4. 스크럽 트리거 이벤트는 추가로 결정론적으로, 랜덤 또는 슈도랜덤 방식으로 발생하도록 추가로 제한될 수 있다:
(a) 명시된 수의 호스트 오퍼레이션들 후;
(b) 명시된 수의 물리적 판독, 기입 및/또는 소거 오퍼레이션들 후;
(c) 명시된 기간 후;
(d) 호스트의 용법 특성들에 기초함; 또는
(e) 랜덤 또는 슈도-랜덤 시퀀스, 그의 발생 및 체킹이 상기한 바중 임의의 것에 매일 수 있다.
다음 단계(97)에서, 스크럽을 위한 후보들로서 단계(93)에서 식별된 메모리의 블록(들) 또는 기타 유닛(들)의 전부 또는 단지 일부가 스크럽 오퍼레이션을 위해 선택된다. 선택 기준은 다음을 포함한다:
1. 임의의 하나의 오퍼레이션에서 스크러빙을 위해 식별될 결정된 유닛들의 수는 데이터 통합성을 유지할 필요성 및 시스템 성능에 따라 스크럽을 위해 취해진 시간의 영향의 밸런스를 이루도록 선택될 수 있다.
2. 이러한 밸런스가 유지되는 방식은 메모리의 사용 년수, 식별된 유닛들에 의해 경험된 프로그램/소거 주기들의 수, 스크럽 오퍼레이션을 트리거한 이벤트의 유형 및 식별된 유닛들 내의 데이터 상에 반드시 취해진 정정 작용의 히스토리에 좌우되는 현행 스크러빙 오퍼레이션을 위한 유닛들의 수를 식별하기 위한 것일 수 있다.
3. 스크럽 오퍼레이션에 포함된 유닛들의 수는 메모리의 사용 년수, 주어진 유닛들에 의해 경험되는 프로그램/소거 사이클들의 수, 및 스크럽 오퍼레이션을 시동한 이벤트의 유형에 좌우될 수 있다.
4. 대안으로, 보다 적은 모든 식별된 유닛들이 통상의 용법과 관련되지 않은 방식으로 결정론적, 랜덤 또는 슈도-랜덤 시퀀스에 따라 스크러빙되도록 선택될 수 있다.
다음으로, 단계(99)로 지시된 바와 같이, 데이터는 다음에 따라 선택된 유닛들(스크럽 판독)로부터 판독된다.
1. 스크럽 판독은 임의의 특정 호스트 오퍼레이션의 완료 또는 착용 레벨링 등의 다른 시스템 오퍼레이션들의 완료에 직접적으로 관련되지 않고, 보편적으로 통상의 데이터 판독들과 동일한 방식으로 실행된다.
2. 마진 판독들(통상의 데이터 판독들의 레벨과 상이한 기준 레벨들에 의한 판독)은 특정 상황들에서 수행될 수 있다:
(a) ECC에 의해 검출되어야 할 너무 많은 에러들을 갖는 데이터의 제2 판독으로서, 제2 판독 내의 기준 레벨들이 통상의 판독보다 더 광범위하게 프로그램된 분포를 판독하도록 이완된 경우(또는 대안으로 아래 고찰된 데이터 정정 단계(107)에서 수행될 수 있음); 또는
(b) 트리거링에 의해 유발될 것으로 예상되는 특이적 방해 메카니즘이 현저히 프로그램된 레벨들을 쉽게 시프트할 때, 초기 판독은 보다 넓은 기준 레벨들에 의해 마진 판독될 수 있거나; 또는
(c) 최적 레벨들에서 벗어나 시프트된 전하 레벨들로서 저장된 데이터를 식별하기 위해 ECC에 의해 정정될 수 있는 비트 에러들이 거의 또는 전혀 없는 데이터의 제2 판독으로서, 이러한 제2 판독의 기준 레벨들은 통상의 판독보다 좁은 분포를 판독하게 조정된다.
3. 블록의 데이터를 판독한 일부로서, 오버헤드 데이터가 또한 판독된다. 데이터의 상대적 신선도가 헤더에 저장된 경우, 그것은 스크러빙될 필요가 없는 재-기입 블록들을 신선하게 식별하기 위해 사용될 수 있다.
다음 단계(101)는 판독 데이터의 통합성을 평가한다. 스크럽 판독의 일부로서, ECC는 메모리 유닛(들)로부터 판독된 사용자 데이터로부터 산출될 수 있고, 프로그래밍하는 동안 사용자 데이터에 따라 초기에 산출되고 저장된 ECC와 비교될 수 있다. ECC에 의해 정정될 수 있는 비트 에러들이 전혀 없거나 또는 적은 수의 에러들이 존재하는 한, 상기한 바와 같이 이완된 기준 레벨들을 갖는 제2 마진된 판독이 이루어질 필요가 없다.
임으로 이루어질 수 있는 추가의 판독은 셀들의 저장된 값들이 변화하였는지를 보기 위해 메모리 어레이에 제공된 경우 트래킹 셀들의 레벨들로 이루어진다. 메모리 셀들을 트래킹하는 것은 종종 메모리 셀들을 판독하기 위해 사용된 기준 레벨들을 확립하기 위해 포함된다.
일단 데이터가 판독되고, 판독 데이터의 에러들(존재하는 경우)의 수가 공지되면, 다음 단계(103)는 정정 작용이 반드시 필요한지와 바람직한지 여부를 결정한다. 일부 고려 사항들은 다음과 같다:
1. 하나의 시도는 임의의 수의 비트 에러들을 갖는 데이터를 정정하고, 따라서 스크럽이 메모리 시스템 성능에 가장 현저히 영향을 미치게 한다.
2. 다른 시도는 데이터 비트 에러들의 수가 단위 판독당 일부 임계값 N을 초과하는 한 데이터를 정정하는 것을 선행하고, 따라서 성능에 대한 스크럽의 영향을 감소시키는 것이다.
3. ECCs의 비교에 의해 결정된 바와 같이 에러있는 데이터 비트들의 패턴은 데이터의 정정이 바람직한지 여부를 결정하기 위해 사용될 수도 있다.
4. 현재 재-기입된 데이터 (비교적 큰 신선도)는 스크럽되지 않는 것이 바람직하다.
일반적으로, 성능에 대한 스크럽 오퍼레이션을 완료한 효과 및 현재 및 장래의 데이터 통합도에 대한 에러들의 심각도는 에러 있는 데이터를 정정할지 여부를 결정할 때 밸런스를 이루는 것이 바람직하다.
다음 단계(105)에서, 이후의 시간까지 스크럽 정정 작용을 수행할지 또는 그것을 지연시킬지 여부가 결정된다. 이러한 결정을 내는데 고려 사항들 중의 하나는 단계(95)에서와 동일하고, 즉, 이 시점에 메모리 시스템의 특이적 실시간 작동 필요들에 부합되도록 지연된다. 일반적으로, 스크럽 오퍼레이션을 완료하는 것은 그의 후기 완료가 현 시점에서 이루어진 것보다 시스템 성능에 적은 충격을 야기할 경우에 연기되는 것이 바람직하다. 보편적으로 제어기에 의한 통상의 처리가 스크럽을 수행하는 것을 방지하는 것은 특히 스크럽 오퍼레이션이 ECC에 의해 정정되어야 할 많은 에러들 때문에 통상시보다 오랜 시간 걸리고, 데이터를 통합시킬 필요 가 있을 때 바람직하지 못하다. 지연될 때, 스크럽 판독에 의한 데이터 판독, 이들의 어드레스들, ECC 분석에 의해 결정된 임의의 에러들 및 선행 단계들에서 개발된 스크럽 오퍼레이션의 다른 파라메터들이 일시적으로 저장된다. 이어서, 이들 데이터 및 파라메터들은 이후에 판독되고, 스크럽 오퍼레이션은 시스템 성능에 대한 충격이 적을 때 완료된다.
스크럽 오퍼레이션이 완료되어야 할 때, 데이터는 다음 단계(107)에서 정정된다. 데이터는 이 경우 ECC의 사용에 의해 정정된다. 상기 단계(99)의 일부로서 수행되지 않은 경우, 1개 이상의 마진 판독들(기준 레벨들이 선행 판독 동안 사용된 것보다 더 넓은 프로그램된 분포를 판독하도록 이완됨)은 통상의 또는 스크럽 판독이 사용되고 있는 ECC에 의해 정정될 수 있는 에러 내에 보다 많은 비트들을 생산하는 경우 데이터를 회수하도록 요구될 수 있다. 이어서, 단계(109)에서, 적절한 정정 작용이 취해진다. 이는 이들이 판독되는 것으로부터 동일한 위치에 정정된 데이터를 재기입하는 것을 포함할 수 있다. 물론, 이는 데이터가 재기입되는 블록을 먼저 소거할 것을 필요로 하고, 이는 각각의 정정된 데이터 섹터가 메모리 셀 블록을 채우는 도 2의 메모리 배열에서 실시될 수 있다. 그러나, 블록을 채우거나 또는 거의 채우기 위해 논리적으로 실행 가능한 어드레스들로 재기입될 필요가 있는 충분한 정정된 데이터 섹터들이 존재하지 않는 한 도 5 및 6의 큰 블록 메모리 배열들에서 수행되기에 충분하지 않다.
대안으로, 정정된 데이터는 그것이 스크럽 오퍼레이션 내에서 초기에 판독되는 경우로부터 상이한 위치 내로 재기입될 수 있다. 이 메모리 배열이 도 5 및 6 에 나타낸 큰 저장 블록들을 이용할 때 이미 기재된 소거 푸울 또는 기타 큰 블록 관리 기술들은 재기입되어야 하는 데이터가 블록의 용량 미만일 때 사용될 수 있다. 그것은 예를 들면 16, 32 또는 그 이상의 페이지들을 포함하는 블록으로부터 정정되어야 하는 1개 또는 2개의 페이지들에서의 데이터에 대해 통상적이지 않다. 그러한 경우들에 대해, 하나의 블록은 1 또는 몇 페이지의 정정된 데이터의 일시적 저장을 위한 어레이의 1개 이상의 평면들에 전용될 수 있다. 이어서, 재기입된 데이터는 그것이 메모리의 통상의 오퍼레이션 동안 다른 인자들에 의해 지시되는 데이터 통합 (쓰레기 수집) 동안과 같이 그렇게 행하기 편리할 때 원시 블록의 페이지들에 저장된 정정되지 않은 데이터와 조합된다. 대안으로, 그러한 통합은 완전해지는 이러한 전용 블록에 의해 개시될 수 있거나, 또는 데이터의 요지의 페이지들이 전용 블록 내로 기입된 후 미리 설정된 시간이 통과된 후 또는 그렇지 않으면 시스템 오퍼레이션에 편리한 것으로서 개시될 수 있다.
많은 다른 블록들이 페이지들로부터 데이터의 스크럽 재기입들을 일시적으로 저장하고, 이어서 이들의 원시 블록들의 다른 페이지들로부터 데이터에 의해 재기입된 페이지들의 데이터를 이후에 통합시키기 위해 공통 지정된 물리적 블록 또는 블록들을 이용하는 것이 편리할 수 있다. 예를 들면, 블록들 1 및 2로부터 페이지들의 스크럽 재기입들은 임시 블록(3)에 일시적으로 저장된다. 이후에, 블록 1의 스크럽 재기입들은 블록(3)으로부터 소거 블록(4)로 복사되고, 블록(1)의 나머지 변화 없는 페이지들은 또한 물리적 블록(1)로 매핑되는 데이터를 통합하기 위해 블록(3) 내로 복사된다. 이어서, 동일한 것이 다른 소거된 블록(5)에서 행해지고, 여기서 블록(3)에 저장된 블록(2)의 스크럽 재기입 및 블록(2)로부터 변화되지 않은 데이터 페이지들이 통합된다.
메타블록들을 이용하는 도 6의 시스템에서, 임의의 평면의 모든 페이지들로부터 정정된 데이터가 기입되는 전체 시스템 내의 단일의 전용 블록 또는 그 평면 내의 다른 블록들로부터 재기입된 데이터를 저장하도록 각각의 평면 내의 전용 블록들 중의 하나가 존재할 수 있다. 선택된 특정 오퍼레이션은 개개의 블록들 내의 페이지들의 수, 전제 메모리 어레이 내의 페이지들의 수 및 그의 데이터가 스크럽 공정에 의해 정정될 페이지들의 예상 번호 및 빈도의 예상치에 의존한다. 방해에 민감해지는 구조 및/또는 오퍼레이션을 갖는 메모리 어레이는 다른 것보다 많은 전용 블록들을 필요로 할 것이다. 스크럽 판독이 어떠한 데이터 에러도 드러내지 않지만, 스크럽 오퍼레이션이 이들의 상태 범위들의 중간으로 되돌려 시프트된 저장 전하 레벨들을 이동시키기 위해 수행되는 것인 경우, 어떠한 정정도 명백해 관찰되지 않기 때문에 판독 데이터는 단순히 재기입된다.
일부 메모리 시스템들이 사용되는 방식은 몇몇 방해들을 유발한다. 이어서, 스크럽 공정은 인식되어야 할 트리거링 이벤트가 거의 없기 때문에 빈번히 수행된다. 또한, 스크럽된 데이터가 원래 체류하는 물리적 블록들과 무관하게 1개 이상의 지정된 물리적 블록들 중에 비교적 소량의 재기입 데이터를 함께 영구적으로 저장하는 것이 실질적이다. 이러한 경우, 스크럽된 데이터의 페이지들은 스크럽 공정의 단계로서 다른 논리적으로 연속적인 데이터의 페이지들과 물리적 블록들 내로 재조합되지 않는다. 정정 작용의 다른 요소는 이들이 원래 기입된 것과 상이한 회 전으로 정정된 데이터를 재기입하는 것이다. 예를 들면, 4개의 상태 시스템의 4개의 아날로그 저장 상태 범위들은 원래 각각 00, 01, 10 및 11로 나타내도록 지정될 수 있고, 재기입에 따라 11, 10, 01 및 00을 나타내도록 지정된다. 변환은 데이터가 판독되는 메모리 제어기에 의해 이루어지고, 특정 회전 데이터를 사용하는 것은 오버헤드 데이터의 일부로서 또는 그와 달리 유지된다. 데이터 회전은 정정된 데이터 및 정정을 필요로 하지 않는 데이터 모두의 재기입에 유리하게 적용된다.
포함될 수 있는 정정 작용의 추가의 소자는 평균보다 훨씬 더 많은 방해에 의해 영향을 받는 히스토리를 구축하는 메모리의 페이지들 또는 블록들을 매핑하는 것이다. 이는 어레이의 여러 페이지들, 블록들, 평면들 및/또는 기타 정의된 영역들 내의 데이터 에러들의 수를 모니터링함으로써 검출된다. 물론, 하나의 블록은 평균보다 많이 또는 상이하게 사용되기 때문에 방해들에 대한 더욱 큰 민감성 이외의 이유들로 페이지들 또는 블록들이 데이터 에러들을 경험하는 것을 방지하기 위한 조치가 취해져야 한다.
스크러빙 알고리즘은 보편적으로 메모리 제어기에 의해 제어되지만, 선택적으로 호스트에 의해 제어될 수 있다. 메모리 제어기에 의해 제어될 때, 알고리즘은 전형적으로 메모리의 오퍼레이션 동안 제어기 RAM(25)으로부터 마이크로프로세서(21)(도 1A)에 의해 실행되는 메모리 시스템 펌웨어 내로 코딩된다.
이용되는 특이적 스크러빙 알고리즘은 메모리 시스템, 특히 메모리 디바이스들(11 및 13)(도 1A)의 특정 특성들에 의존한다. 예시적인 특징들은 다음과 같다:
(a) 프로그래밍의 메모리 유닛에 저장된 호스트 데이터 섹터들의 수(보편적 으로 페이지);
(b) 각각의 저장 상태에 대해 지정된 임계 범위의 정도 및 메모리 셀들의 저장 상태들의 수;
(c) 프로그래밍 유닛(보편적으로 페이지)이 단일 또는 다중 호스트 데이터 섹터들을 포함하는지 여부;
(d) 소거 유닛(보편적으로 블록) 내의 프로그래밍(보편적으로 페이지) 유닛들의 수; 및
(e) 메모리 셀들의 밀도 및 다른 유닛 내의 데이터 방해들을 유발하기 위해 하나의 유닛 내의 오퍼레이션에 대한 정도 및 특정 경향
스크럽의 특이적 실시예
스크럽 알고리즘의 보다 특이적인 실시예는 도 9의 흐름도에 예시된다. 일반적으로, 이미 기재된 바와 동일한 프로세싱 단계들이 이용되지만, 4상태 시스템 실시예 (각각의 물리적 전하 저장 유닛에 저장된 2비트)에 대해 도 10에 관하여 기재된 마진 스크럽 판독들을 포함하는 구현이 보다 상세히 도시된다. 프로세싱으로의 2개의 도입점들은, 스크럽 트리거 이벤트가 검출될 때 115에서 지연된 스크럽들을 실행하기 위한 명령이 수신될 때 117에 도 9에 나타낸다.
단계(115)에서, 메모리는 도 8의 단계(91)에 대해 상기 고찰된 바와 같이 스크럽 트리거 이벤트에 대해 모니터된다. 마찬가지로, 단계(119)에서, 후보 메모리 셀 유닛(들)은 스크럽을 위해 결정되고, 도 8의 단계 93에 대해 동일하게 기재된다. 이어서, 단계(95)와 유사하게, 도 9의 단계(121)은 후보 유닛들의 임의의 것 에 대한 스크럽이 그 시점에 수행되어야 할 필요가 있는 다른 시스템 오퍼레이션들 때문에 지연되어야 하는지 여부를 결정한다. 그럴 경우, 123에 지시된 바와 같이, 후보 셀 유닛들의 어드레스들 및 기타 필요 데이터는 일시적으로 저장되고, 그 공정은 다시 재개하기 위한 보다 큰 우선권 시스템 오퍼레이션을 완료하기를 기다린다. 대안으로, 스크럽 오퍼레이션의 완료는 후자의 특수 명령이 공정에서 이후에 지연될 때의 경우와 같이, 단계(117)에서 메모리 제어기에 의해 생성되거나 또는 호스트로부터 수신될 때까지 지연될 수 있다. 지연된 스크럽을 위한 데이터가 단계(123)에 저장된 후, 실행되는 특정 스크럽 오퍼레이션은 단계(124)에 의해 결정된 바와 같이 스크럽될 많은 유닛들이 있지 않은 한은 종료된다. 스크럽될 많은 유닛들이 존재하는 경우, 프로세싱은 단계(119)로 복귀한다.
다음 단계(125)는 도 8의 단계(97)에서와 동일한 기능, 즉 스크럽되어야 하 후보 메모리 셀 유닛들의 선택을 수행한다. 도 9의 후속 단계들은 한번에 선택된 유닛들 중의 하나 상에서 수행된다. 다음 단계(126)는 판독 파단점 레벨들 및 기타 판독 조건들이 통상의 판독 레벨들로 초기에 설정되게 한다. 이어서, 단계(127)은 도 8의 단계(99)에 대응하는 메모리 셀 유닛들의 첫번째 것에 대해 설정된 조건들 하에 스크럽 판독을 수행한다. 후속 단계들은 이들이 모두 스크럽될 때까지의 순서로 선택된 유닛들 다음을 위해 단계(127)로 복귀하는 루프(129)에 의해 이러한 동일한 하나의 유닛 상에서 수행된다. 물론, 단 하나의 유닛이 특정 오퍼레이션에서 스크러빙을 위해 선택되는 경우, 어떠한 루프 백(129)도 없다.
판독 마진들에 의한 단계(127)의 스크럽 판독이 단계(1260에 설정된 후, 단 계(131)은 도 8의 단계(101)와 유사하게 임의의 데이터 에러들이 존재하는지 여부를 결정한다. 에러들이 존재하는 경우, 다음 단계(133)는 에러들이 정정 가능한지 여부를 결정한다. ECC가 데이터의 통합성을 확인하기 위해 사용될 때, 이 단계(133)는 데이터의 판독 유닛 내의 불량한 비트들의 수가 사용되고 있는 특정 ECC 알고리즘의 정정 능력 내에 있는지 여부를 결정한다. 에러들이 정정될 수 있는 경우, 다음 단계(135)는 도 8의 단계(103)에 대응하여 정정이 반드시 이루어지고 또한 바람직한지 여부를 결정한다. 단계(135)는 에러가 있지만 정정 가능한 비트들이 1개 또는 매우 적은 임계값보다 적은지 여부를 결정하는 것과 같이 단순할 수 있고, 그 경우, 이것은 정정 작용을 취하지 않도록 결정될 수 있다.
단계(135)에서의 결정은 또한 데이터 및 이들의 ECC가 유저 데이터 또는 오버헤드 데이터인지 여부에 의해 영향받을 수도 있다. 도 3에 관하여 개시된 바와 같이, 오버헤드 데이터는 그 자신의 ECC를 가질 수 있다. 이것이 그 경우일 때, 유저 및 오버헤드 데이터의 통합성은 단계들(131 및 133)에서 별개로 체크될 수 있고, 심지어 이들이 동일한 페이지 내에 저장될 수 있더라도, 유저 데이터 및 이들의 ECC를 하나의 유닛으로서, 오버헤드 데이터 및 이들의 ECC를 다른 데이터 유닛으로서 고려함으로써 리턴(129)에 의한 완전한 루프를 통해 한번하 하나를 처리할 수 있다. 각각의 오버헤드 및 유저 데이터 ECCs의 사용이 보편적으로 동일할 수 있더라도, 그 공정은 오버헤드 데이터의 통합성을 보다 치밀하게 유지하도록 작동될 수 있다. 이는 과도한 스크럽 오퍼레이션들이 저하되는 시스템 성능을 유지하는 것이고, 스크러빙이 달성되도록 디자인된 장기간에 걸쳐 저장된 데이터의 통합 성을 유지하는 것 사이의 밸런스의 예이다.
단계(135)의 결정이 관심있는 데이터 유닛 내의 정정 가능한 에러들의 정정이 이루어져야 하는 것인 경우, 다음 단계(137)는 데이터의 정정이 지연되어야 하는지 여부를 질문한다. 스크럽은 예를 들면 데이터의 정정이 이 단계에 이용될 수 있는 보다 많은 시간을 취하게 될 판독 데이터의 보다 많은 불량 비트들이 존재하는 경우에 지연되는 것이 바람직하다. 지연되지 않는 경우, 에러들은 도 8의 단계(107)과 유사하게 단계(139)에서 정정된다. 이어서, 다음 단계(140)는 정정 작용이 지연되어야 하는지 여부를 질문한다. 스크럽은 전형적으로 데이터를 재기입하는 것이 이용될 수 있는 보다 많은 시간을 취할 필연적인 통합으로 인해 다른 데이터의 이동을 포함하기도 하는 경우에 지연된다. 어떠한 지연도 없는 경우, 정정된 데이터는 도 8의 일반적인 실시예가 개입될 때 상기 재기입 옵션들 중의 하나에 따라 단계(141)에서 정정된 데이터는 재기입된다. 데이터의 정정된 유닛의 성공적인 재기입 후, 단계(143)에서, 스크럽을 위해 단계(125)에서 선택된 임의의 다른 메모리 셀 유닛들이 존재하는지 여부가 결정된다. 그럴 경우, 단계(145)는 다음 유닛으로 순서대로 증가되고, 프로세싱은 루프(129)를 통해 그러한 새로운 유닛을 위해 단계(127)로 복귀한다.
지금까지, 도 9의 흐름도의 주요 경로가 기재되었다. 그러나, 문제점들의 일부의 해결책이 상기한 것들과 상이할 때의 방식에 따라 직면할 수 있는 많은 여러 가지 브랜치들이 존재한다. 기재될 제1의 그러한 브랜치는 너무 많은 데이터 비트 에러들이 ECC에 의해 정정될 수 없을 때까지 요지의 유닛에 존재할 대 단 계(133)으로부터 취해진다. 단계(151)에 의해 지시된 바와 같이, 판독 임계치 레벨들은 단계(127)에서 스크럽 판독을 위해 사용된 레벨들과 상이하게 설정되고, 이어서 단계(153)에서 유닛의 데이터는 이들 상이한 임계 레벨들에 따라 다시 판독된다. 그러한 마진있는 판독은 도 10에 예시된다.
4개의 상태의 플래쉬 메모리 어레이 내의 개개의 저장 소자들을 작동시키는 예는 도 10에 사용된다. 4개의 임계 전압 레벨 범위들 각각에서 메모리 셀들의 유닛 내의 저장 소자들의 수의 분포는 방해 없이 도시된다. 임계 전압 가드 대역들(155, 156 및 157)은 내부의 임의의 셀들로부터 데이터의 부재에 의해 저장 상태 임계값 레벨 범위들 사이에 유지된다. 이는 셀들의 유닛의 상태를 프로그래밍하고 검증한 직후 존재하는 바람직한 프로그램된 조건이다. 그러나, 다른 유닛들이 프로그램되고, 판독 및/또는 소거됨에 따라, 이러한 데이터는 방해받을 수 있다. 방해들은 인접한 가드 대역들 내로 하나의 측면 또는 다른 측면으로 시프팅하는 임계 레벨들로 나타낸다. 이는 각각의 상태 분포 내에서 적은 비율의 셀들에 대해 발생할 수 있거나, 또는 전체 분포는 방해 특성에 따라 인접한 가드 대역들 내로 시프트 또는 스프레드될 수 있다.
통상의 판독을 위해, 각각의 가드 대역들(155, 156 및 157)의 거의 중간에 있는 파단점 레벨들(159, 160 및 161)이 사용된다. 즉, 판독되고 있는 셀들의 임계 레벨들은 이들의 저장 상태들을 결정하도록 이들 파단점 레벨들과 비교된다. 에러들은 하나의 상태 내의 셀들의 임계 레벨들이 파단점 레벨을 가로질러 가드 대역을 통해 시프트될 때 발생한다. 예를 들면, 상태 1의 셀들의 임계 레벨들이 이 들이 파단점 레벨(159) 아래에 있을 대까지 시프트될 때, 이들 셀들은 상태 0인 것으로 판독된다. 마찬가지로, 상태 1의 셀들의 임계 레벨들이 파단점 레벨(160) 위까지 높게 시프트되는 경우, 통상의 판독은 이들 셀들이 상태 2에 있다고 말할 것이다. 이어서, 그러한 판독 데이터 에러들은 ECC 공정에 의해 식별된다. 정정해야할 ECC에 대한 너무 많은 그러한 에러들이 존재할 때, 상태들 사이의 상이한 파단점 레벨들을 갖는 제2 판독은 단계들 (151 및 153)(도 9)에 의해 이루어진다. 파단점 레벨들(159, 160 및 161)은 방해들로부터 저장 임계 레벨들의 기대되는 시프트 방향으로 이들의 각각의 가드 대역들 내에서 시프트됨으로써, 시프트된 레벨들은 이들이 방해받기 전에 가드 대역의 동일한 측면 상에 현재 있다.
데이터를 그와 같이 재-판독한 후, 단계(165)에서 ECC에 의해 임의의 데이터 에러들이 남겨지는지 여부가 결정된다. 그렇지 않은 경우, 프로세싱은 데이터 정정 및 재기입이 지연되어야 하는지 여부를 결정하는 것을 포함하여 주요 프로세싱 경로의 단계(135)로 진행된다. 데이터 에러들이 존재할 단계(165)에 의해 발견되는 경우, 다음 단계(167)는 이들이 ECC에 의해 정정 가능한지 여부를 결정한다. 그럴 경우, 프로세싱은 주요 프로세싱 경로의 단계(135)로 점프된다.
그러나, 데이터 에러들이 정정 불가능한 것으로 단계(167)에서 발견된 경우, 훨씬 상이한 파단점 레벨들에 의한 추가의 판독이 포함될 수 있다. 단계(169)에서, 임의의 남겨진 시도되지 않은 이완된 판독 조건들이 존재하는지 여부가 결정된다. 그럴 경우, 재시도 조건들은 단계(170)에 의해 증가되고, 프로세싱으 그러한 새로운 조건들에 의해 데이터를 판독하기 위해 단계들(151 및 153)로 복귀한다. 그러나, 어떠한 보다 많은 상이한 판독 조건들도 제공되지 않는 경우, 요지의 어레이 유닛 내의 데이터는 그의 정정 불가한 에러들에 의해 남겨저야 한다. 그 유닛 상의 스크럽 오퍼레이션은 이어서 실패한 것으로 결정된다. 하나의 이러한 결과는 새로운 메모리 시스템으로 모든 유효 데이터를 복사할 수 있고, 현재의 메모리를 폐기할 수 있다. 다른 결과는 오버헤드 데이터에 저장된 플래그에 의해 또는 그와 달리 불량한 것으로서 이러한 유닛을 단순히 마크하고, 이어서 다른 어레이 유닛들의 스크러빙을 계속하기 위해 단계(143)로 진행된다. 그 유닛 내의 데이터는 이어서 상실된다. 이들 데이터는 이들의 정확한 임계 레벨 범위 내에 존재하도록 원시 프로그래밍의 일부로서 검증되었기 때문에, 시간이 경과함에 따라 오퍼레이션들을 방해하는 누적 결과는 그러한 반대 결과에 충분히 빈번한 스크러빙의 바람직함을 보여준다.
단계(135)로 돌아가서, 데이터의 정정이 반드시 필요하지 않고 바람직하지 않은 것으로 결정된 경우, 프로세싱은 식별된 유닛들의 임의의 추가 유닛에 의해 스크럽을 계속하도록 단계(143)로 점프된다. 또한 단계(137 및 140)로 복귀되고, 데이터의 정정 또는 재기입이 지연되어야 하는 것으로 결정된 경우, 판독 데이터, 이들의 어드레스들, ECC 및 에러 있는 비트들의 임의의 식별 및 기타 이전의 결정 데이터는 단계(171)에 저장되고, 이어서 프로세싱은 단계(143)으로 점프된다. 이어서, 이들 데이터는 지연된 작용들이 아래 기재된 바와 같이 완료에 도달할 때 판독된다.
단계(131)로 돌아가서, 어떠한 데이터 에러들도 존재하지 않는 것을 결정한 후의 다음 작용은 단계(143)로 점프함으로써 현재 유닛의 데이터에 의해 추가로 어느 것도 행하지 않아야 한다. 그러나, 훨씬 유효한 데이터가 판독되는 것으로부터 셀들의 저장 레벨들을 추가로 체크하고 조절하는 것이 바람직할 수 있다. 파단점 레벨들이 통상의 판독 데이터를 에러로 되게 하도록 파단점 레벨을 교차하지 않더라도, 이는 저장된 전하가 여러 상태들에 대해 정의된 레벨들 사이의 가드 대역 내로 이동한 임의의 셀들을 식별하기 위해 초기 판독에 사용된 것과 상이한 파단점 레벨들로 데이터를 재-판독하는 것을 포함한다. 단계(172)에 의해, 이미 시험되지 않은 임의의 그러한 판독 조건들이 존재하는지 여부가 결정된다. 그럴 경우, 단계(173)은 새로운 파단점 레벨들 및/또는 다른 스크럽 판독 조건들이 선택되게 한다. 이어서, 프로세싱은 판독 조건들이 설정된 단계(126)로 복귀되고, 데이터는 이어서 그 조건들에 의해 단계(127)에서 판독된다. 이러한 판독 동안 사용된 파단점 레벨들은 예를 들면 도 10의 가드 대역(155, 156 및 157)의 에지들로 시프트된다. 단계(131)에서, 데이터 에러들이 존재하는 ECC의 사용에 의해 결정되는 경우, 데이터의 에러있는 비트들은 가드 대역들 내로 전하 레벨들이 시프팅되는 것을 지시한다. 이들 데이터를 정정하고 재기입하는 것이 바람직한 경우, 그러한 작용이 지연되어야 하는지 여부를 먼저 결정한 후, 저장된 전하 레벨들은 도 10의 이들의 의도된 상태 분포들 내에서 가드 대역들 밖으로 이동할 것이다.
많이 제한적인 마진들을 갖는 데이터 판독에 어떠한 에러들도 없는 단계(131)에서 결정되는 경우, 데이터의 현재 유닛에 대한 프로세싱이 종료된다. 이어서, 이러한 데이터 유닛에 의해 아직 시도되지 않은 보다 제한된 스크럽 판독 조 건들이 존재하는지 여부가 단계(172)에 의해 결정된다. 그럴 경우, 데이터는 훨씬 더 치밀한 파단점 레벨들에 의해 다시 판독될 수 있다. 즉, 데이터는 이들의 각각의 가드 대역들에 따른 방식의 일부만을 이동시킨 파단점 레벨들에 의해 단계(172)에서 이용될 수 있는 대안의 판독 조건들의 제1 세트에 의해 2회 판독될 수 있고, 필요할 경우 전하 저장 레벨들의 추가의 미세한 조절을 위해 가드 대역 에지들 쪽으로 추가로 이동된 단계(172)에 의해 선택된 대안의 판독 조건들의 제2 세트의 파단점 레벨들에 의해 이를 3회 반복하였다. 제공될 수 있는 많은 그러한 추가의 스크럽 판독 오퍼레이션들이 실시된다.
단계(135)로 돌아가서, 정정 없이 데이터 에러들의 일부 레벨을 수용하도록 결정될 수 있는 경우, 이는 이제 막 기재된 어떠한 에러들도 포함하지 않는 저장된 데이터로 단계들(172 및 173)의 브랜치에 의해 이루어진 조절들의 정확도와 일치하지 않음에 주의해야 할 것이다. 따라서, 이러한 프로세싱 브랜치가 이용되는 경우, 단계(135)는 정정 없이 에러 있는 데이터의 수용을 허용하지 않기가 쉬울 것이다.
스크럽을 위해 현재 식별된 모든 데이터 유닛들이 사실상 스크럽된 단계(143)에서, 방해받은 그의 데이터를 갖는 것에 대한 특별한 경향을 보인 임의의 이들 데이터 유닛들은 임의로 시스템 밖으로 매핑될 수 있다. 단계(185)는 시스템으로부터 제거되어야 하는 임의의 그러한 물리적 메모리 유닛들이 존재하는지 여부를 결정하고, 그럴 경우, 이들은 단계(187)에 의해 매핑된다. 이어서, 스크럽 오퍼레이션이 완료된다.
그러나, 데이터 정정 및/또는 재-기입들이 지연되는 경우, 메모리 시스템 제어기 또는 호스트 시스템은 이를 통보받을 것이다. 적절한 시점에, 어떠한 보다 높은 우선권의 메모리 오퍼레이션들로 계류중이지 않은 경우, 부분적으로 스크럽된 유닛들의 스크러빙은 단계(117)에서 시작하여 완료될 수 있다. 단계(171)에 의해 하나의 유닛에 대해 저장된 이 데이터, ECC 및 기타 정보는 단계(191)에 의해 판독된다. 그 유닛으로부터 데이터가 정정을 필요로 하는 경우, 그것은 단계(193)에서 행해진다. 단계(195)에서, 정정된 데이터가 재-기입된다. 완성될 필요가 있는 어떠한 다른 부분적으로 완성된 스크럽 오퍼레이션도 존재하지 않는 경우, 이는 단계(197)에서 결정되고, 단계(185)가 실행되거나 또는 프로세싱 종료된다. 완성되어야 하는 다른 유닛들이 존재하는 경우, 프로세싱은 단계(199)에서 다음 유닛으로 증가되고, 단계들(191, 193 및 195)은 이어서 그들 단위로부터 데이터 상에 반복된다.
후보 메모리 셀 유닛들의 어드레스들이 지연된 스크럽에 대해 단계(123)에 저장된 경우, 그 프로세싱은 제어기가 구현될 어떠한 높은 우선 작용도 갖지 않을 때 지연된 유닛들 중의 하나에 대한 스크럽 오퍼레이션을 계속하도록 자동으로 복귀될 수 있다. 지연 단계(121)는 도 9의 공정에서 너무 초기에 이루어지기 때문에, 이어서 지연되는 유닛으로의 복귀는 단계(125)로 시작되는 프로세싱의 재개를 초래하고, 상기한 바와 같이 그 경로를 따라 계속된다. 그러한 유닛의 정정 및/또는 재기입은 단계들(137 또는 140) 중의 하나에서 다시 지연되게 할 수 있다.
본 발명의 여러 국면들을 그의 전형적인 실시예들에 관하여 기재하였지만, 본 발명은 첨부된 특허 청구의 범위의 완전한 범위 내에서 보호될 자격이 있는 것을 믿게 될 것이다.

Claims (12)

  1. 스크럽 트리거 이벤트가 블록들 중의 최초의 블록 내의 데이터의 유닛들 중의 적어도 하나에 저장된 데이터에 대해 발생한 때를 식별하는 단계,
    제1 블록으로부터 데이터의 식별된 적어도 하나의 유닛을 판독하는 단계,
    정정된 제1 블록 데이터를 제공하기 위해 제1 블록으로부터 판독된 데이터에서 임의의 에러들을 정정하는 단계,
    데이터의 적어도 하나의 유닛으로서 정정된 제1의 블록 데이터를 블록들 중의 제2의 블록에 기입하는 단계, 및
    이후, 제1 블록의 정정되지 않은 데이터 유닛들을 제2 블록 내로 복사하고, 그럼으로써 제1 블록에서 기원하는 데이터의 정정된 유닛 및 정정되지 않은 유닛을 제2 블록 내에 통합시키는 단계를 포함하는,
    함께 소거될 수 있는 최소 수의 메모리 셀들의 블록들 및 많은 데이터 유닛들을 저장하는 블록들을 포함하는 서브-어레이들과 서브-어레이들로 조직화되는 플래쉬 메모리 셀 어레이를 오퍼레이팅하는 방법.
  2. 제1항에 있어서, 정정된 제1 블록 데이터를 제2 블록 내로 기입하는 단계에 앞서, 제3 블록 내에 정정된 제1 블록 데이터를 일시적으로 저장하는 단계를 추가로 포함하는 방법.
  3. 제2항에 있어서,
    방해하는 이벤트가 블록들 중의 제4의 블록에 저장된 데이터의 유닛들 중의 적어도 하나에 대해 발생한 때를 식별하는 단계,
    제4 블록으로부터 식별된 적어도 하나의 데이터 유닛을 판독하는 단계,
    정정된 제4 블록 데이터를 제공하기 위해 제4 블록으로부터 판독된 데이터 내의 임의의 에러들을 정정하는 단계,
    정정된 제4 블록 데이터를 제3 블록 내에 일시적으로 저장하고, 이후, 데이터의 적어도 하나의 유닛으로서 정정된 제4 블록 데이터를 제5 블록에 기입하는 단계, 및
    이후, 제4 블록의 정정되지 않은 데이터 유닛들을 제5 블록 내로 복사하고, 그럼으로써 제4 블록에서 기원하는 데이터의 정정된 유닛 및 정정되지 않은 유닛을 제5 블록 내에 통합시키는 단계를 추가로 포함하는 방법.
  4. 제1항에 있어서, 상기 스크럽 트리거 이벤트가 제1 블록 내에 저장된 데이터 유닛들 중의 적어도 하나를 방해하는 이벤트를 포함하는 것인 방법.
  5. 제1항에 있어서, 다른 보다 높은 우선권의 오퍼레이션들이 수행될 때까지, 데이터를 판독한 후이지만, 그의 임의의 에러들을 정정하기 전에 오퍼레이션을 잠시 멈추는 단계를 추가로 포함하는 방법.
  6. 제1항에 있어서, 다른 보다 높은 우선권의 오퍼레이션들이 수행될 때까지, 임의의 에러들을 정정한 후이지만, 정정된 데이터를 기입하기 전에, 오퍼레이션을 잠시 멈추는 단계를 추가로 포함하는 방법.
  7. 스크럽 트리거 이벤트가 어레이의 적어도 하나의 위치에 저장된 데이터에 대해 발생할 때를 식별하는 단계,
    어레이에서 적어도 하나의 위치에 저장된 데이터를 판독하는 단계,
    상기 적어도 하나의 위치에 관한 정보 및 그로부터 판독된 데이터를 일시적으로 저장하는 단계,
    이러한 정보를 저장된 상태로 유지하면서, 상기 적어도 하나의 위치 이외의 어레이 내의 위치들로 또는 그로부터 다른 데이터를 프로그래밍하거나 또는 판독하는 단계,
    이후, 어레이 내의 상기 적어도 하나의 위치로부터 판독된 판독 데이터 내에 임의의 에러들이 존재하는지 여부를 결정하는 단계,
    저장된 정보를 이용하여, 어레이 내의 상기 적어도 하나의 위치로부터 판독된 데이터 내의 임의의 에러들을 정정하는 단계, 및
    정정된 데이터를 어레이 내로 기입하는 단계를 포함하는, 플래쉬 메모리 셀 어레이의 작동 방법.
  8. 제7항에 있어서, 스크럽 트리거 이벤트가 제1 블록에 저장된 상기 데이터 단 위들 중의 적어도 하나를 방해하는 이벤트를 포함하는 것인 방법.
  9. 스크럽 트리거 이벤트가 어레이의 적어도 하나의 위치에 저장된 데이터에 대해 발생한 때를 식별하는 단계,
    어레이 내의 상기 적어도 하나의 위치에 저장된 데이터를 판독하는 단계,
    이후, 어레이 내의 상기 적어도 하나의 위치로부터 판독된 판독 데이터 내에 임의의 에러가 존재하는지 여부를 결정하는 단계,
    어레이 내의 상기 적어도 하나의 위치로부터 판독된 데이터 내의 임의의 에러들을 정정하는 단계,
    정정된 데이터를 일시적으로 저장하는 단계,
    정정된 데이터를 저장된 상태로 유지하면서, 상기 적어도 하나의 위치 이외의 어레이 내의 위치들로 및 그로부터 다른 데이터를 프로그래밍하거나 또는 판독하는 단계, 및
    이후, 정정된 데이터를 어레이 내로 기입하는 단계를 포함하는, 플래쉬 메모리 셀 어레이를 오퍼레이팅하는 방법.
  10. 제9항에 있어서, 스크럽 트리거 이벤트가 제1 블록에 저장된 상기 데이터 단위들 중의 적어도 하나를 방해하는 이벤트를 포함하는 것인 방법.
  11. 복수개의 소정의 이벤트들 중의 적어도 하나의 발생에 응답하여, 스크럽될 적어도 하나의 블록의 적어도 하나의 페이지를 식별하는 단계,
    제1 세트의 판독 조건들에 의해 상기 적어도 하나의 페이지에 저장된 데이터를 판독하는 단계,
    판독된 데이터 내에 임의의 에러들이 존재하는지 여부를 결정하고, 그럴 경우, 에러들이 정정될 수 있는지 여부를 결정하는 단계,
    판독 데이터 내의 에러들이 정정될 수 없다는 결정에 응답하여, 제2 세트의 판독 조건들에 의해 상기 적어도 하나의 페이지에 저장된 데이터를 재-판독하는 단계,
    재-판독된 데이터 내에 임의의 에러들이 존재하는지 여부를 결정하고, 그럴 경우, 에러들이 정정될 수 있는지 여부를 결정하는 단계,
    스케쥴된 다른 메모리 활성에 응답하여, 판독되거나 또는 재-판독된 데이터에 관한 추가의 작용을 연기하는 단계,
    다른 메모리 활성이 완료된 후, 판독되거나 또는 재-판독된 데이터 중의 하나의 에러들이 정정될 수 있는지의 결정에 응답하여, 정정된 데이터를 제공하기 위해 그러한 데이터들을 정정하는 단계, 및
    정정된 데이터를 상기 하나의 블록과 상이한 제2 블록의 적어도 제2의 페이지 내로 기입하는 단계를 포함하는, 1개 이상의 데이터 유닛들을 개별적으로 저장하는 복수개의 페이지들을 포함하는 함께 소거 가능한 메모리 셀들의 최소 수의 블록들 내로 조직화된 메모리 셀들의 어레이를 갖는 소거 가능하고, 재-프로그램 가능한 비휘발성 메모리 시스템의 오퍼레이팅 방법.
  12. 제11항에 있어서, 상기 적어도 하나의 블록 이외의 상기 적어도 하나의 블록 내의 페이지들로부터 변화되지 않은 데이터를 제2 블록 내로 복사하는 단계를 추가로 포함하는 것인 방법.
KR1020067006479A 2003-10-03 2004-09-28 플래쉬 메모리 데이터 정정 및 스크럽 기법 KR101127882B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/678,345 US7012835B2 (en) 2003-10-03 2003-10-03 Flash memory data correction and scrub techniques
US10/678,345 2003-10-03
PCT/US2004/031788 WO2005036401A2 (en) 2003-10-03 2004-09-28 Flash memory data correction and scrub techniques

Publications (2)

Publication Number Publication Date
KR20070001871A true KR20070001871A (ko) 2007-01-04
KR101127882B1 KR101127882B1 (ko) 2012-03-21

Family

ID=34393904

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067006479A KR101127882B1 (ko) 2003-10-03 2004-09-28 플래쉬 메모리 데이터 정정 및 스크럽 기법

Country Status (9)

Country Link
US (5) US7012835B2 (ko)
EP (2) EP1847930B1 (ko)
JP (1) JP4723504B2 (ko)
KR (1) KR101127882B1 (ko)
CN (2) CN100541439C (ko)
AT (2) ATE434788T1 (ko)
DE (2) DE602004021735D1 (ko)
TW (1) TWI261840B (ko)
WO (1) WO2005036401A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101121698B1 (ko) * 2008-12-22 2012-02-28 가부시끼가이샤 도시바 반도체 기억 장치 및 기억 제어 방법
KR20160087799A (ko) * 2013-11-22 2016-07-22 인텔 코포레이션 Nand 플래시 메모리를 위한 결함 관리 정책들
US9405639B2 (en) 2007-06-07 2016-08-02 Micron Technology, Inc. Systems and methods for retrieving data
US10747448B2 (en) 2016-09-29 2020-08-18 SK Hynix Inc. Reducing disturbance between adjacent regions of a memory device

Families Citing this family (575)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US6851070B1 (en) * 2001-08-13 2005-02-01 Network Appliance, Inc. System and method for managing time-limited long-running operations in a data storage system
WO2003032159A2 (en) 2001-10-11 2003-04-17 Altera Corporation Error detection on programmable logic resources
US7233522B2 (en) 2002-12-31 2007-06-19 Sandisk 3D Llc NAND memory array incorporating capacitance boosting of channel regions in unselected memory cells and method for operation of same
US7505321B2 (en) 2002-12-31 2009-03-17 Sandisk 3D Llc Programmable memory array structure incorporating series-connected transistor strings and methods for fabrication and operation of same
US7372731B2 (en) * 2003-06-17 2008-05-13 Sandisk Il Ltd. Flash memories with adaptive reference voltages
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7221588B2 (en) * 2003-12-05 2007-05-22 Sandisk 3D Llc Memory array incorporating memory cells arranged in NAND strings
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US7594135B2 (en) 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
US20050172064A1 (en) * 2004-01-29 2005-08-04 Marcelo Krygier Method and apparatus for addressing in mass storage non-volatile memory devices
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
CN100576360C (zh) * 2004-05-06 2009-12-30 松下电器产业株式会社 半导体存储器装置
US20050268077A1 (en) * 2004-05-11 2005-12-01 Peter Kuan Memory system for an electronic device and the method for controlling the same
US7490283B2 (en) * 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7975306B2 (en) * 2004-06-04 2011-07-05 Hewlett-Packard Development Company, L.P. Apparatus and method for monitoring secure software
TWI243376B (en) * 2004-07-16 2005-11-11 Univ Nat Chiao Tung Method of combining multi-level memory unit and providing the same with error correction mechanism
US7509526B2 (en) * 2004-09-24 2009-03-24 Seiko Epson Corporation Method of correcting NAND memory blocks and to a printing device employing the method
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7502256B2 (en) * 2004-11-30 2009-03-10 Siliconsystems, Inc. Systems and methods for reducing unauthorized data recovery from solid-state storage devices
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7158421B2 (en) * 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US20060161724A1 (en) * 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
JP4679943B2 (ja) * 2005-03-23 2011-05-11 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ データ記憶装置及びその不揮発性メモリ内データ書き換え処理方法
US7206230B2 (en) * 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7447078B2 (en) 2005-04-01 2008-11-04 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
US7463521B2 (en) * 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
US7196928B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7196946B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling in non-volatile storage
US7187585B2 (en) * 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
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
US7290185B2 (en) * 2005-04-28 2007-10-30 International Business Machines Corporation Methods and apparatus for reducing memory errors
JP4991131B2 (ja) * 2005-08-12 2012-08-01 株式会社東芝 半導体記憶装置
US7698591B2 (en) * 2005-08-26 2010-04-13 International Business Machines Corporation Method and apparatus for ensuring data integrity in redundant mass storage systems
US7523381B2 (en) * 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
JP4413840B2 (ja) * 2005-09-20 2010-02-10 株式会社東芝 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7954037B2 (en) * 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash 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
US7634585B2 (en) * 2005-11-04 2009-12-15 Sandisk Corporation In-line cache using nonvolatile memory between host and disk device
US20070106842A1 (en) * 2005-11-04 2007-05-10 Conley Kevin M Enhanced first level storage caching methods using nonvolatile memory
US7644251B2 (en) 2005-12-19 2010-01-05 Sigmatel, Inc. Non-volatile solid-state memory controller
US7443726B2 (en) * 2005-12-29 2008-10-28 Sandisk Corporation Systems for alternate row-based reading and writing for non-volatile memory
US7349260B2 (en) * 2005-12-29 2008-03-25 Sandisk Corporation Alternate row-based reading and writing for non-volatile memory
US7844879B2 (en) 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US8219886B1 (en) 2006-01-20 2012-07-10 Marvell International Ltd. High density multi-level memory
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7493523B2 (en) * 2006-03-14 2009-02-17 International Business Machines Corporation Method and apparatus for preventing soft error accumulation in register arrays
US7409490B2 (en) * 2006-04-15 2008-08-05 Yi-Chun Liu Method of flash memory management
US7433231B2 (en) 2006-04-26 2008-10-07 Micron Technology, Inc. Multiple select gates with non-volatile memory cells
US7495966B2 (en) * 2006-05-01 2009-02-24 Micron Technology, Inc. Memory voltage cycle adjustment
EP2016590B1 (en) 2006-05-05 2011-10-26 SanDisk Corporation Non-volatile memory with background data latch caching during read operations and methods therefor
US8239735B2 (en) * 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
KR101202537B1 (ko) * 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
WO2007132452A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
US7840875B2 (en) * 2006-05-15 2010-11-23 Sandisk Corporation Convolutional coding methods for nonvolatile memory
US20070266296A1 (en) * 2006-05-15 2007-11-15 Conley Kevin M Nonvolatile Memory with Convolutional Coding
JP4813264B2 (ja) * 2006-06-14 2011-11-09 株式会社日立製作所 ストレージシステム
US7352628B2 (en) * 2006-06-19 2008-04-01 Sandisk Corporation Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory
US7606084B2 (en) * 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7489549B2 (en) * 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7486561B2 (en) * 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
JP4908083B2 (ja) * 2006-06-30 2012-04-04 株式会社東芝 メモリコントローラ
JP2008009919A (ja) 2006-06-30 2008-01-17 Toshiba Corp カードコントローラ
CN1933026A (zh) * 2006-08-18 2007-03-21 福昭科技(深圳)有限公司 高可靠排序管理扇区的存储结构
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US7474560B2 (en) * 2006-08-21 2009-01-06 Micron Technology, Inc. Non-volatile memory with both single and multiple level cells
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US20080072070A1 (en) * 2006-08-29 2008-03-20 General Dynamics C4 Systems, Inc. Secure virtual RAM
US7450425B2 (en) * 2006-08-30 2008-11-11 Micron Technology, Inc. Non-volatile memory cell read failure reduction
US7716538B2 (en) * 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
KR101470621B1 (ko) * 2006-09-27 2014-12-05 샌디스크 테크놀로지스, 인코포레이티드 셀 모집단 분포 보조 판독 마지닝을 갖는 메모리
US7886204B2 (en) * 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US7818653B2 (en) * 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US20080092015A1 (en) * 2006-09-28 2008-04-17 Yigal Brandman Nonvolatile memory with adaptive operation
US7805663B2 (en) * 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US7684247B2 (en) * 2006-09-29 2010-03-23 Sandisk Corporation Reverse reading in non-volatile memory with compensation for coupling
US7447076B2 (en) * 2006-09-29 2008-11-04 Sandisk Corporation Systems for reverse reading in non-volatile memory with compensation for coupling
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
DE602006019010D1 (de) * 2006-10-20 2011-01-27 Fujitsu Ltd Speicheranordnung und auffrisch-justierverfahren
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
KR100784007B1 (ko) * 2006-10-31 2007-12-10 주식회사 하이닉스반도체 비휘발성 메모리 장치 및 그 소거 방법
US7558109B2 (en) * 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US7904780B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US8001441B2 (en) * 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
WO2008068747A2 (en) * 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7616506B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Systems for complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
TW200828320A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Method for performing static wear leveling on flash memory
US7561465B2 (en) * 2006-12-28 2009-07-14 Advanced Micro Devices, Inc. Methods and systems for recovering data in a nonvolatile memory array
US7616505B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
US8583981B2 (en) 2006-12-29 2013-11-12 Marvell World Trade Ltd. Concatenated codes for holographic storage
US7751240B2 (en) * 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) * 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR100813630B1 (ko) * 2007-02-07 2008-03-14 삼성전자주식회사 독출 성능을 향상할 수 있는 플래시 메모리 시스템 및그것의 독출 방법
CN101715595A (zh) * 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
US7987332B2 (en) * 2007-03-21 2011-07-26 Sandisk Technologies Inc. Methods for storing memory operations in a queue
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
WO2008118705A1 (en) * 2007-03-28 2008-10-02 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US7797480B2 (en) * 2007-03-29 2010-09-14 Sandisk Corporation Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
WO2008121553A1 (en) * 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8332574B2 (en) * 2007-04-30 2012-12-11 Sandisk Il Ltd. Method for efficient storage of metadata in flash memory
US7577036B2 (en) 2007-05-02 2009-08-18 Micron Technology, Inc. Non-volatile multilevel memory cells with data read of reference cells
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
KR20080100750A (ko) * 2007-05-14 2008-11-19 삼성전자주식회사 데이터 읽기 장치 및 그 방법
US20080285368A1 (en) * 2007-05-17 2008-11-20 Macronix International Co., Ltd. Method for nrom array word line retry erasing and threshold voltage recovering
JP4994112B2 (ja) * 2007-05-22 2012-08-08 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびメモリ制御方法
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
JP5216244B2 (ja) * 2007-05-31 2013-06-19 株式会社東芝 データリフレッシュ装置、及びデータリフレッシュ方法
KR100882841B1 (ko) * 2007-06-19 2009-02-10 삼성전자주식회사 읽기 디스터번스로 인한 비트 에러를 검출할 수 있는메모리 시스템 및 그것의 읽기 방법
KR100838292B1 (ko) * 2007-06-20 2008-06-17 삼성전자주식회사 메모리 셀의 읽기 레벨 제어 장치 및 그 방법
US8166239B2 (en) * 2007-06-21 2012-04-24 International Business Machines Corporation Translation lookaside buffer and related method and program product utilized for virtual addresses
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8060798B2 (en) 2007-07-19 2011-11-15 Micron Technology, Inc. Refresh of non-volatile memory cells based on fatigue conditions
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
WO2009021176A2 (en) * 2007-08-08 2009-02-12 Sandisk Corporation Urgency and time window manipulation to accommodate unpredictable memory operations
US8099632B2 (en) * 2007-08-08 2012-01-17 Sandisk Technologies Inc. Urgency and time window manipulation to accommodate unpredictable memory operations
US7770079B2 (en) * 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
KR101425958B1 (ko) * 2007-09-06 2014-08-04 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법
US7882323B2 (en) * 2007-09-07 2011-02-01 International Business Machines Corporation Scheduling of background scrub commands to reduce high workload memory request latency
US7882314B2 (en) * 2007-09-07 2011-02-01 International Business Machines Corporation Efficient scheduling of background scrub commands
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8650352B2 (en) * 2007-09-20 2014-02-11 Densbits Technologies Ltd. Systems and methods for determining logical values of coupled flash memory cells
US7751237B2 (en) * 2007-09-25 2010-07-06 Sandisk Il, Ltd. Post-facto correction for cross coupling in a flash memory
US7551477B2 (en) * 2007-09-26 2009-06-23 Sandisk Corporation Multiple bit line voltages based on distance
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8527819B2 (en) * 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US20090109755A1 (en) * 2007-10-24 2009-04-30 Mori Edan Neighbor block refresh for non-volatile memory
US8443242B2 (en) 2007-10-25 2013-05-14 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
JP4535117B2 (ja) * 2007-11-06 2010-09-01 ソニー株式会社 メモリ装置、メモリ管理方法、およびプログラム
US7876616B2 (en) * 2007-11-12 2011-01-25 Cadence Design Systems, Inc. System and method for wear leveling utilizing a relative wear counter
KR101509836B1 (ko) * 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
CN101436161B (zh) * 2007-11-16 2010-12-29 创见资讯股份有限公司 存储装置与其数据存取和存储器区块管理方法
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8335977B2 (en) 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
WO2009072105A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications
WO2009072102A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
JP2009140564A (ja) * 2007-12-06 2009-06-25 Toshiba Corp Nand型フラッシュメモリおよびメモリシステム
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8276051B2 (en) 2007-12-12 2012-09-25 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8327246B2 (en) 2007-12-18 2012-12-04 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
KR101498669B1 (ko) * 2007-12-20 2015-03-19 삼성전자주식회사 반도체 메모리 시스템 및 그것의 액세스 방법
US8245101B2 (en) 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
KR101454817B1 (ko) * 2008-01-11 2014-10-30 삼성전자주식회사 반도체 메모리 장치 및 그것의 마모도 관리 방법
CN101911207B (zh) * 2008-01-16 2014-05-07 富士通株式会社 半导体存储装置、控制装置、控制方法
PL384327A1 (pl) * 2008-01-26 2009-08-03 Atm Spółka Akcyjna Sieć danych oraz sposób regeneraji stanu zapisu plików cyfrowych w sieci danych
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) * 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
WO2009118720A2 (en) * 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US7971023B2 (en) * 2008-04-30 2011-06-28 Sandisk Corporation Guaranteed memory card performance to end-of-life
US20090282267A1 (en) * 2008-05-09 2009-11-12 Ori Stern Partial scrambling to reduce correlation
WO2009140700A1 (en) * 2008-05-16 2009-11-19 Fusion Multisystems, Inc. Apparatus, system, and method for detecting and replacing failed data storage
KR101486987B1 (ko) * 2008-05-21 2015-01-30 삼성전자주식회사 불휘발성 메모리를 포함하는 반도체 메모리 장치 및 불휘발성 메모리를 위한 커맨드 스케줄링 방법
US7848144B2 (en) * 2008-06-16 2010-12-07 Sandisk Corporation Reverse order page writing in flash memories
US7808831B2 (en) * 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
US7971007B2 (en) * 2008-07-08 2011-06-28 Silicon Motion, Inc. Downgrade memory apparatus, and method for accessing a downgrade memory
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
JP5478855B2 (ja) * 2008-08-08 2014-04-23 ルネサスエレクトロニクス株式会社 不揮発性メモリ制御方法及び半導体装置
CN101650974B (zh) * 2008-08-12 2012-12-19 创见资讯股份有限公司 可自我检测使用状态的储存装置及其检测方法
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
US8213229B2 (en) * 2008-08-22 2012-07-03 HGST Netherlands, B.V. Error control in a flash memory device
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
TWI389122B (zh) * 2008-10-30 2013-03-11 Silicon Motion Inc 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器
CN101740123B (zh) * 2008-11-10 2012-04-04 扬智科技股份有限公司 存储器的数据保护方法
US8208304B2 (en) * 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
CN102855943B (zh) * 2008-11-28 2017-04-12 群联电子股份有限公司 错误校正控制器及其闪存芯片系统与错误校正方法
US7859932B2 (en) * 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US8291297B2 (en) * 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
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
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8924819B2 (en) * 2009-01-23 2014-12-30 Macronix International Co., Ltd. Memory device and operation method thereof
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8458574B2 (en) * 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US9116830B2 (en) * 2009-04-29 2015-08-25 Texas Instruments Incorporated Method to extend data retention for flash based storage in a real time device processed on generic semiconductor technology
US8255613B2 (en) 2009-04-30 2012-08-28 International Business Machines Corporation Wear-leveling and bad block management of limited lifetime memory devices
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8281227B2 (en) 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US9170879B2 (en) * 2009-06-24 2015-10-27 Headway Technologies, Inc. Method and apparatus for scrubbing accumulated data errors from a memory system
US8775865B2 (en) 2009-06-24 2014-07-08 Headway Technologies, Inc. Method and apparatus for scrubbing accumulated disturb data errors in an array of SMT MRAM memory cells including rewriting reference bits
US8255773B2 (en) * 2009-06-29 2012-08-28 Sandisk Technologies Inc. System and method of tracking error data within a storage device
US8261136B2 (en) * 2009-06-29 2012-09-04 Sandisk Technologies Inc. Method and device for selectively refreshing a region of a memory of a data storage device
US8321727B2 (en) * 2009-06-29 2012-11-27 Sandisk Technologies Inc. System and method responsive to a rate of change of a performance parameter of a memory
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
US20110041005A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US20110041039A1 (en) 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110040924A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US8370720B2 (en) * 2009-08-19 2013-02-05 Ocz Technology Group, Inc. Mass storage device and method for offline background scrubbing of solid-state memory devices
US20110047322A1 (en) * 2009-08-19 2011-02-24 Ocz Technology Group, Inc. Methods, systems and devices for increasing data retention on solid-state mass storage devices
US8910002B2 (en) * 2009-08-24 2014-12-09 OCZ Storage Solutions Inc. NAND flash-based storage device with built-in test-ahead for failure anticipation
US8254170B2 (en) * 2009-08-25 2012-08-28 Sandisk Il Ltd. Preloading data into a flash storage device
US8305812B2 (en) * 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
WO2011024022A1 (en) 2009-08-31 2011-03-03 Sandisk Il Ltd. Preloading data into a flash storage device
US20110059628A1 (en) * 2009-09-04 2011-03-10 Solid State System Co., Ltd. Secure digital card with two micro-sd cards in striping data access
KR101678909B1 (ko) * 2009-09-17 2016-11-23 삼성전자주식회사 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8504884B2 (en) * 2009-10-29 2013-08-06 Freescale Semiconductor, Inc. Threshold voltage techniques for detecting an imminent read failure in a memory array
JP5349256B2 (ja) 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
US8769188B2 (en) * 2009-11-18 2014-07-01 Mediatek Inc. Nonvolatile memory controller and method for writing data to nonvolatile memory
US8626988B2 (en) * 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
US8473809B2 (en) * 2009-11-20 2013-06-25 Sandisk Technologies Inc. Data coding for improved ECC efficiency
US8495281B2 (en) * 2009-12-04 2013-07-23 International Business Machines Corporation Intra-block memory wear leveling
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US9037777B2 (en) * 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
TWI416331B (zh) * 2009-12-23 2013-11-21 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制器與儲存裝置
US8607124B2 (en) * 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
KR101090394B1 (ko) * 2009-12-24 2011-12-07 주식회사 하이닉스반도체 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8595411B2 (en) * 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
KR101648531B1 (ko) * 2010-02-12 2016-08-17 삼성전자주식회사 불휘발성 메모리 시스템과 이의 동작 방법
KR101655306B1 (ko) * 2010-02-24 2016-09-07 삼성전자주식회사 메모리 시스템 및 그것의 액세스 방법
US8700970B2 (en) * 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US8365041B2 (en) * 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8516274B2 (en) 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US9021177B2 (en) 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8452937B2 (en) 2010-05-14 2013-05-28 Sandisk Il Ltd. Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory to reduce read disturb
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8819503B2 (en) * 2010-07-02 2014-08-26 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8737141B2 (en) 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8514630B2 (en) 2010-07-09 2013-08-20 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays: current based approach
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US8432732B2 (en) 2010-07-09 2013-04-30 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays
US8305807B2 (en) 2010-07-09 2012-11-06 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
WO2012048118A2 (en) 2010-10-06 2012-04-12 Blackbird Technology Holdings, Inc. Method and apparatus for adaptive searching of distributed datasets
WO2012048098A1 (en) 2010-10-06 2012-04-12 Blackbird Technology Holdings, Inc. Method and apparatus for low-power, long-range networking
US8718551B2 (en) 2010-10-12 2014-05-06 Blackbird Technology Holdings, Inc. Method and apparatus for a multi-band, multi-mode smartcard
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8622312B2 (en) 2010-11-16 2014-01-07 Blackbird Technology Holdings, Inc. Method and apparatus for interfacing with a smartcard
US8479062B2 (en) * 2010-12-03 2013-07-02 International Business Machines Corporation Program disturb error logging and correction for flash memory
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
JP2012133642A (ja) * 2010-12-22 2012-07-12 Sony Corp メモリ装置、メモリ制御方法、およびプログラム
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US9104548B2 (en) 2011-01-21 2015-08-11 Blackbird Technology Holdings, Inc. Method and apparatus for memory management
US8886990B2 (en) * 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
JP5917163B2 (ja) * 2011-01-27 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法及びプログラム並びに記憶媒体
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8484542B2 (en) 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
US20120203993A1 (en) * 2011-02-08 2012-08-09 SMART Storage Systems, Inc. Memory system with tiered queuing and method of operation thereof
US8909865B2 (en) 2011-02-15 2014-12-09 Blackbird Technology Holdings, Inc. Method and apparatus for plug and play, networkable ISO 18000-7 connectivity
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US9497715B2 (en) 2011-03-02 2016-11-15 Blackbird Technology Holdings, Inc. Method and apparatus for addressing in a resource-constrained network
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
JP2012198949A (ja) * 2011-03-18 2012-10-18 Toshiba Corp 半導体記憶装置
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US8484521B2 (en) * 2011-04-07 2013-07-09 International Business Machines Corporation Firmware monitoring of memory scrub coverage
US10241908B2 (en) 2011-04-26 2019-03-26 Seagate Technology Llc Techniques for dynamically determining allocations and providing variable over-provisioning for non-volatile storage
JP2012230581A (ja) * 2011-04-27 2012-11-22 Mitsubishi Electric Corp データ記憶装置
WO2012151001A1 (en) * 2011-04-30 2012-11-08 Rambus Inc. Configurable, error-tolerant memory control
KR101678919B1 (ko) * 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
US8379454B2 (en) 2011-05-05 2013-02-19 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US8825944B2 (en) 2011-05-23 2014-09-02 International Business Machines Corporation Populating strides of tracks to demote from a first cache to a second cache
CN102163165B (zh) * 2011-05-26 2012-11-14 忆正存储技术(武汉)有限公司 一种闪存错误预估模块及其预估方法
US8667211B2 (en) 2011-06-01 2014-03-04 Densbits Technologies Ltd. System and method for managing a non-volatile memory
US8456911B2 (en) 2011-06-07 2013-06-04 Sandisk Technologies Inc. Intelligent shifting of read pass voltages for non-volatile storage
US8694719B2 (en) 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
US8929961B2 (en) 2011-07-15 2015-01-06 Blackbird Technology Holdings, Inc. Protective case for adding wireless functionality to a handheld electronic device
US8669889B2 (en) 2011-07-21 2014-03-11 International Business Machines Corporation Using variable length code tables to compress an input data stream to a compressed output data stream
US8400335B2 (en) 2011-07-21 2013-03-19 International Business Machines Corporation Using variable length code tables to compress an input data stream to a compressed output data stream
US8726104B2 (en) 2011-07-28 2014-05-13 Sandisk Technologies Inc. Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8588003B1 (en) 2011-08-01 2013-11-19 Densbits Technologies Ltd. System, method and computer program product for programming and for recovering from a power failure
WO2013030866A1 (en) 2011-08-29 2013-03-07 Hitachi, Ltd. Semiconductor storage device comprising electrically rewritable nonvolatile semiconductor memory
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
JP2013054409A (ja) * 2011-08-31 2013-03-21 Toshiba Corp 情報記憶装置および情報記憶方法
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
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
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
JP5821445B2 (ja) * 2011-09-09 2015-11-24 富士通株式会社 ディスクアレイ装置及びディスクアレイ装置制御方法
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
KR20130049332A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US9081663B2 (en) * 2011-11-18 2015-07-14 Stec, Inc. Optimized garbage collection algorithm to improve solid state drive reliability
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
KR101893145B1 (ko) 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US8692696B2 (en) 2012-01-03 2014-04-08 International Business Machines Corporation Generating a code alphabet of symbols to generate codewords for words used with a program
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US8825957B2 (en) * 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using an occupancy of valid tracks in strides in the second cache to consolidate strides in the second cache
US8825953B2 (en) 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using a stride number ordering of strides in the second cache to consolidate strides in the second cache
US9021201B2 (en) 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to a second cache
US8966178B2 (en) 2012-01-17 2015-02-24 International Business Machines Corporation Populating a first stride of tracks from a first cache to write to a second stride in a second cache
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US9195586B2 (en) 2012-02-23 2015-11-24 Hgst Technologies Santa Ana, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address
US8730722B2 (en) 2012-03-02 2014-05-20 Sandisk Technologies Inc. Saving of data in cases of word-line to word-line short in memory arrays
US9362003B2 (en) * 2012-03-09 2016-06-07 Sandisk Technologies Inc. System and method to decode data subject to a disturb condition
US20130262942A1 (en) * 2012-03-27 2013-10-03 Yung-Chiang Chu Flash memory lifetime evaluation method
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US8914696B2 (en) * 2012-08-29 2014-12-16 Seagate Technology Llc Flash memory read scrub and channel tracking
US9810723B2 (en) 2012-09-27 2017-11-07 Sandisk Technologies Llc Charge pump based over-sampling ADC for current detection
US9164526B2 (en) 2012-09-27 2015-10-20 Sandisk Technologies Inc. Sigma delta over-sampling charge pump analog-to-digital converter
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
KR102025263B1 (ko) 2012-10-05 2019-09-25 삼성전자주식회사 메모리 시스템 및 그것의 읽기 교정 방법
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9171620B2 (en) 2012-11-29 2015-10-27 Sandisk Technologies Inc. Weighted read scrub for nonvolatile memory
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
US9032271B2 (en) 2012-12-07 2015-05-12 Western Digital Technologies, Inc. System and method for lower page data recovery in a solid state drive
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
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
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9070479B2 (en) 2013-01-21 2015-06-30 Sandisk Technologies Inc. Systems and methods of updating read voltages
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US11249652B1 (en) * 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9098205B2 (en) 2013-01-30 2015-08-04 Sandisk Technologies Inc. Data randomization in 3-D memory
KR102089532B1 (ko) 2013-02-06 2020-03-16 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9367391B2 (en) 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
US10042750B2 (en) 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening 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
JP6167646B2 (ja) * 2013-04-30 2017-07-26 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9230656B2 (en) 2013-06-26 2016-01-05 Sandisk Technologies Inc. System for maintaining back gate threshold voltage in three dimensional NAND memory
US9727413B2 (en) 2013-06-28 2017-08-08 International Business Machines Corporation Flash memory scrub management
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
KR102031606B1 (ko) * 2013-07-31 2019-10-14 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 버저닝된 메모리 구현
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
US9569354B2 (en) * 2013-08-02 2017-02-14 Infineon Technologies Ag System and method to emulate an electrically erasable programmable read-only memory
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
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data 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
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
WO2015037159A1 (ja) 2013-09-13 2015-03-19 株式会社 東芝 半導体記憶装置及びメモリシステム
US9240238B2 (en) 2013-09-20 2016-01-19 Sandisk Technologies Inc. Back gate operation with elevated threshold voltage
US9165683B2 (en) 2013-09-23 2015-10-20 Sandisk Technologies Inc. Multi-word line erratic programming detection
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US20150121156A1 (en) 2013-10-28 2015-04-30 Sandisk Technologies Inc. Block Structure Profiling in Three Dimensional Memory
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9329802B2 (en) 2013-11-11 2016-05-03 Qualcomm Incorporated Fail safe refresh of data stored in NAND memory device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
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
US9229644B2 (en) 2013-11-25 2016-01-05 Sandisk Technologies Inc. Targeted copy of data relocation
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
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9389956B2 (en) * 2014-01-10 2016-07-12 International Business Machines Corporation Implementing ECC control for enhanced endurance and data retention of flash memories
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
KR102069274B1 (ko) 2014-02-05 2020-01-22 삼성전자주식회사 메모리 제어 방법
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
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
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
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
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
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
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
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
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
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
US8918577B1 (en) 2014-06-13 2014-12-23 Sandisk Technologies Inc. Three dimensional nonvolatile memory with variable block capacity
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9460809B2 (en) 2014-07-10 2016-10-04 Sandisk Technologies Llc AC stress mode to screen out word line to word line shorts
US9484086B2 (en) 2014-07-10 2016-11-01 Sandisk Technologies Llc Determination of word line to local source line shorts
US9514835B2 (en) 2014-07-10 2016-12-06 Sandisk Technologies Llc Determination of word line to word line shorts between adjacent blocks
US9443612B2 (en) 2014-07-10 2016-09-13 Sandisk Technologies Llc Determination of bit line to low voltage signal shorts
KR102318561B1 (ko) 2014-08-19 2021-11-01 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법
US9240249B1 (en) 2014-09-02 2016-01-19 Sandisk Technologies Inc. AC stress methods to screen out bit line defects
US9202593B1 (en) 2014-09-02 2015-12-01 Sandisk Technologies Inc. Techniques for detecting broken word lines in non-volatile memories
US9449694B2 (en) 2014-09-04 2016-09-20 Sandisk Technologies Llc Non-volatile memory with multi-word line select for defect detection operations
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US10552085B1 (en) * 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
KR102128406B1 (ko) 2014-09-26 2020-07-10 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
KR102287760B1 (ko) 2014-10-29 2021-08-09 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
KR102252378B1 (ko) 2014-10-29 2021-05-14 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102263046B1 (ko) 2014-10-29 2021-06-09 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US20160188495A1 (en) * 2014-12-26 2016-06-30 Intel Corporation Event triggered erasure for data security
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
US10032223B2 (en) 2015-03-20 2018-07-24 Bank Of America Corporation System for account linking and future event integration into retirement score calculation
US9830660B2 (en) 2015-03-20 2017-11-28 Bank Of America Corporation System for augmenting a retirement score with health information
US10049406B2 (en) 2015-03-20 2018-08-14 Bank Of America Corporation System for sharing retirement scores between social groups of customers
US10019760B2 (en) 2015-03-20 2018-07-10 Bank Of America Corporation System for utilizing a retirement score to receive benefits
US9773563B2 (en) 2015-03-27 2017-09-26 Toshiba Memory Corporation Memory controller, memory control method, and coefficient decision method
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
KR102291806B1 (ko) * 2015-04-20 2021-08-24 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US9823962B2 (en) 2015-04-22 2017-11-21 Nxp Usa, Inc. Soft error detection in a memory system
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
EP3262508B1 (en) 2015-06-30 2021-08-04 Hewlett-Packard Development Company, L.P. Patrol scrub periods based on power status
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US9864653B2 (en) 2015-07-30 2018-01-09 International Business Machines Corporation Memory scrubbing in a mirrored memory system to reduce system power consumption
DE102015215401B4 (de) * 2015-08-12 2020-10-01 Infineon Technologies Ag Speichervorrichtung und Verfahren zum Korrigieren einer gespeicherten Bitfolge
US9659666B2 (en) 2015-08-31 2017-05-23 Sandisk Technologies Llc Dynamic memory recovery at the sub-block level
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
US9910730B2 (en) * 2015-10-21 2018-03-06 Sandisk Technologies Llc System for handling erratic word lines for non-volatile memory
FR3044818B1 (fr) * 2015-12-02 2018-03-30 Stmicroelectronics (Rousset) Sas Procede de gestion d'une ligne defectueuse du plan memoire d'une memoire non volatile et dispositif de memoire correspondant
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US9698676B1 (en) 2016-03-11 2017-07-04 Sandisk Technologies Llc Charge pump based over-sampling with uniform step size for current detection
TWI594126B (zh) 2016-07-05 2017-08-01 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US10013192B2 (en) 2016-08-17 2018-07-03 Nxp Usa, Inc. Soft error detection in a memory system
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10216570B2 (en) * 2017-01-31 2019-02-26 Winbond Electronics Corporation Memory device and control method thereof
KR20180122087A (ko) * 2017-05-02 2018-11-12 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US10008278B1 (en) * 2017-06-11 2018-06-26 Apple Inc. Memory block usage based on block location relative to array edge
US10976936B2 (en) 2017-08-23 2021-04-13 Micron Technology, Inc. Sensing operations in memory
US10446197B2 (en) * 2017-08-31 2019-10-15 Micron Technology, Inc. Optimized scan interval
JP2019079377A (ja) * 2017-10-26 2019-05-23 東芝メモリ株式会社 半導体記憶装置
US10817392B1 (en) * 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
WO2019102656A1 (ja) * 2017-11-21 2019-05-31 ソニーセミコンダクタソリューションズ株式会社 メモリコントローラ、メモリ、メモリシステム、情報処理システム、および、それらにおける制御方法
US10304550B1 (en) 2017-11-29 2019-05-28 Sandisk Technologies Llc Sense amplifier with negative threshold sensing for non-volatile memory
CN107992431A (zh) * 2017-12-21 2018-05-04 珠海亿智电子科技有限公司 一种nand闪存无效数据回收的掉电保护方法
TWI659426B (zh) 2018-03-09 2019-05-11 旺宏電子股份有限公司 記憶體裝置之資料探測方法
CN110265083B (zh) * 2018-03-12 2021-07-27 旺宏电子股份有限公司 存储器装置的数据探测方法
JP6991084B2 (ja) * 2018-03-22 2022-01-12 キオクシア株式会社 不揮発性メモリデバイス及び制御方法
US10691532B2 (en) 2018-06-29 2020-06-23 Alibaba Group Holding Limited Storage drive error-correcting code-assisted scrubbing for dynamic random-access memory retention time handling
US10936199B2 (en) * 2018-07-17 2021-03-02 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
US11094383B2 (en) * 2018-08-24 2021-08-17 International Business Machines Corporation Selective page calibration based on hierarchical page mapping
US20200073759A1 (en) * 2018-09-05 2020-03-05 Hewlett Packard Enterprise Development Lp Maximum data recovery of scalable persistent memory
US10896088B2 (en) * 2018-11-15 2021-01-19 Seagate Technology Llc Metadata recovery mechanism for page storage
US10643695B1 (en) 2019-01-10 2020-05-05 Sandisk Technologies Llc Concurrent multi-state program verify for non-volatile memory
US11169730B2 (en) * 2019-06-06 2021-11-09 Micron Technology, Inc. Scrub rate control for a memory device
US10937510B2 (en) * 2019-06-28 2021-03-02 Western Digital Technologies, Inc. Multidimensional pseudorandom binary sequence analysis for a memory device
US10922012B1 (en) * 2019-09-03 2021-02-16 Dropbox, Inc. Fair data scrubbing in a data storage system
CN112506420A (zh) * 2019-09-16 2021-03-16 伊姆西Ip控股有限责任公司 在存储系统中管理擦洗操作的方法、设备和产品
CN110750467B (zh) * 2019-10-22 2021-11-02 深圳芯邦科技股份有限公司 一种Nand Flash中干扰页的检测方法、系统
US11557366B2 (en) 2019-11-21 2023-01-17 SK Hynix Inc. Memory, memory system, operation method of the memory, and operation of the memory system
US11024392B1 (en) 2019-12-23 2021-06-01 Sandisk Technologies Llc Sense amplifier for bidirectional sensing of memory cells of a non-volatile memory
WO2022058768A1 (en) * 2020-09-21 2022-03-24 Micron Technology, Inc Memory apparatus and method for operating the same
CN112083891B (zh) * 2020-09-22 2022-12-06 深圳芯邦科技股份有限公司 一种存储器中数据块的检测方法及相关设备
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4139911A (en) 1978-03-13 1979-02-13 Westinghouse Electric Corp. High speed sense circuit for semiconductor memories
US4218764A (en) 1978-10-03 1980-08-19 Matsushita Electric Industrial Co., Ltd. Non-volatile memory refresh control circuit
US4253059A (en) 1979-05-14 1981-02-24 Fairchild Camera & Instrument Corp. EPROM Reliability test circuit
JPS58139399A (ja) 1982-02-15 1983-08-18 Hitachi Ltd 半導体記憶装置
US4460982A (en) 1982-05-20 1984-07-17 Intel Corporation Intelligent electrically programmable and electrically erasable ROM
US4612630A (en) 1984-07-27 1986-09-16 Harris Corporation EEPROM margin testing design
JPS6134793A (ja) 1984-07-27 1986-02-19 Hitachi Ltd ダイナミツクメモリ装置における診断及びエラ−訂正装置
JPS6148197A (ja) 1984-08-13 1986-03-08 Fujitsu Ltd チヤ−ジアツプ回路
JPS61172300A (ja) 1985-01-26 1986-08-02 Toshiba Corp 半導体記憶装置
EP0198935A1 (de) 1985-04-23 1986-10-29 Deutsche ITT Industries GmbH Elektrisch umprogrammierbarer Halbleiterspeicher mit Redundanz
US4962322A (en) 1988-12-05 1990-10-09 Texas Instruments Incorporated Nonvolatible capacitor random access memory
JPS62114200A (ja) 1985-11-13 1987-05-25 Mitsubishi Electric Corp 半導体メモリ装置
US5157629A (en) 1985-11-22 1992-10-20 Hitachi, Ltd. Selective application of voltages for testing storage cells in semiconductor memory arrangements
US4763305A (en) 1985-11-27 1988-08-09 Motorola, Inc. Intelligent write in an EEPROM with data and erase check
JPH0715799B2 (ja) 1987-06-30 1995-02-22 日本電気株式会社 半導体記憶装置
FR2618579B1 (fr) 1987-07-21 1989-11-10 Thomson Semiconducteurs Circuit integre a memoire comportant un dispositif anti-fraude
JPS6476596A (en) 1987-09-18 1989-03-22 Oki Electric Ind Co Ltd Error of eeprom detecting device
US4809231A (en) 1987-11-12 1989-02-28 Motorola, Inc. Method and apparatus for post-packaging testing of one-time programmable memories
FR2630573B1 (fr) 1988-04-26 1990-07-13 Sgs Thomson Microelectronics Memoire programmable electriquement avec plusieurs bits d'information par cellule
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
JPH07105146B2 (ja) 1988-07-29 1995-11-13 三菱電機株式会社 不揮発性記憶装置
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
JPH02260298A (ja) 1989-03-31 1990-10-23 Oki Electric Ind Co Ltd 不揮発性多値メモリ装置
US4980859A (en) 1989-04-07 1990-12-25 Xicor, Inc. NOVRAM cell using two differential decouplable nonvolatile memory elements
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
JPH0664918B2 (ja) 1989-05-25 1994-08-22 ローム株式会社 自己訂正機能を有する半導体記憶装置
JPH07114077B2 (ja) 1989-06-01 1995-12-06 三菱電機株式会社 不揮発性半導体記憶装置
WO1990016069A1 (en) 1989-06-12 1990-12-27 Kabushiki Kaisha Toshiba Semiconductor memory device
FR2650109B1 (fr) 1989-07-20 1993-04-02 Gemplus Card Int Circuit integre mos a tension de seuil ajustable
JPH03162800A (ja) 1989-08-29 1991-07-12 Mitsubishi Electric Corp 半導体メモリ装置
US5065364A (en) 1989-09-15 1991-11-12 Intel Corporation Apparatus for providing block erasing in a flash EPROM
US5200959A (en) 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5270551A (en) 1990-02-14 1993-12-14 Hitachi, Ltd. Method of and apparatus for protecting electronic circuit against radiation
US4975883A (en) 1990-03-29 1990-12-04 Intel Corporation Method and apparatus for preventing the erasure and programming of a nonvolatile memory
US5122985A (en) 1990-04-16 1992-06-16 Giovani Santin Circuit and method for erasing eeprom memory arrays to prevent over-erased cells
US5132935A (en) 1990-04-16 1992-07-21 Ashmore Jr Benjamin H Erasure of eeprom memory arrays to prevent over-erased cells
US5200922A (en) 1990-10-24 1993-04-06 Rao Kameswara K Redundancy circuit for high speed EPROM and flash memory devices
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5239505A (en) 1990-12-28 1993-08-24 Intel Corporation Floating gate non-volatile memory with blocks and memory refresh
US5504760A (en) 1991-03-15 1996-04-02 Sandisk Corporation Mixed data encoding EEPROM system
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5263032A (en) 1991-06-27 1993-11-16 Digital Equipment Corporation Computer system operation with corrected read data function
US5313427A (en) 1991-09-20 1994-05-17 Texas Instruments Incorporated EEPROM array with narrow margin of voltage thresholds after erase
JPH05109292A (ja) 1991-10-14 1993-04-30 Toshiba Corp 不揮発性半導体記憶装置
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5347489A (en) 1992-04-21 1994-09-13 Intel Corporation Method and circuitry for preconditioning shorted rows in a nonvolatile semiconductor memory incorporating row redundancy
US5327383A (en) 1992-04-21 1994-07-05 Intel Corporation Method and circuitry for erasing a nonvolatile semiconductor memory incorporating row redundancy
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5550394A (en) 1993-06-18 1996-08-27 Texas Instruments Incorporated Semiconductor memory device and defective memory cell correction circuit
JPH065823A (ja) 1992-06-19 1994-01-14 Toshiba Corp 不揮発性半導体記憶装置及びその使用方法
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
JP2708333B2 (ja) 1992-09-02 1998-02-04 株式会社東芝 レベルシフタ回路
US5365486A (en) 1992-12-16 1994-11-15 Texas Instruments Incorporated Method and circuitry for refreshing a flash electrically erasable, programmable read only memory
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5335198A (en) 1993-05-06 1994-08-02 Advanced Micro Devices, Inc. Flash EEPROM array with high endurance
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
JP3999822B2 (ja) 1993-12-28 2007-10-31 株式会社東芝 記憶システム
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
GB2289779B (en) 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US5450363A (en) 1994-06-02 1995-09-12 Intel Corporation Gray coding for a multilevel cell memory system
US5523972A (en) 1994-06-02 1996-06-04 Intel Corporation Method and apparatus for verifying the programming of multi-level flash EEPROM memory
JP3563452B2 (ja) 1994-08-10 2004-09-08 株式会社東芝 セル閾値分布検知回路およびセル閾値分布検知方法
JPH08147988A (ja) 1994-11-17 1996-06-07 Sony Corp 半導体不揮発性記憶装置
FR2728380A1 (fr) 1994-12-20 1996-06-21 Sgs Thomson Microelectronics Procede d'ecriture de donnees dans une memoire et memoire electriquement programmable correspondante
US5475693A (en) 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
JP3274306B2 (ja) 1995-01-20 2002-04-15 株式会社東芝 半導体集積回路装置
KR100478172B1 (ko) 1995-01-31 2005-03-23 가부시끼가이샤 히다치 세이사꾸쇼 반도체 메모리 장치
US5530705A (en) 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US5513144A (en) 1995-02-13 1996-04-30 Micron Technology, Inc. On-chip memory redundancy circuitry for programmable non-volatile memories, and methods for programming same
JP3176019B2 (ja) 1995-04-05 2001-06-11 株式会社東芝 不揮発性半導体記憶部を含む記憶システム
US5699297A (en) 1995-05-30 1997-12-16 Kabushiki Kaisha Toshiba Method of rewriting data in a microprocessor additionally provided with a flash memory
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
US5687114A (en) 1995-10-06 1997-11-11 Agate Semiconductor, Inc. Integrated circuit for storage and retrieval of multiple digital bits per nonvolatile memory cell
US5703506A (en) 1995-12-26 1997-12-30 Motorola Signal processing method
FR2745114B1 (fr) 1996-02-20 1998-04-17 Sgs Thomson Microelectronics Memoire non volatile multiniveau modifiable electriquement avec rafraichissement autonome
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5712815A (en) 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
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
US5675537A (en) 1996-08-22 1997-10-07 Advanced Micro Devices, Inc. Erase method for page mode multiple bits-per-cell flash EEPROM
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5717632A (en) 1996-11-27 1998-02-10 Advanced Micro Devices, Inc. Apparatus and method for multiple-level storage in non-volatile memories
US5835413A (en) 1996-12-20 1998-11-10 Intel Corporation Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
JP3177207B2 (ja) 1998-01-27 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション リフレッシュ間隔制御装置及び方法、並びにコンピュータ
EP1060534B1 (en) * 1998-02-27 2003-01-22 Corning Incorporated Flexible inorganic electrolyte fuel cell design
JP2000187992A (ja) 1998-12-17 2000-07-04 Mitsubishi Electric Corp 電気的書換可能な不揮発性メモリのリフレッシュ制御回路
US6215697B1 (en) 1999-01-14 2001-04-10 Macronix International Co., Ltd. Multi-level memory cell device and method for self-converged programming
JP2000251483A (ja) 1999-02-24 2000-09-14 Sanyo Electric Co Ltd 1チップマイクロコンピュータとそのデータリフレッシュ方法
AU7313600A (en) * 1999-09-17 2001-04-24 Hitachi Limited Storage where the number of error corrections is recorded
US6222768B1 (en) 2000-01-28 2001-04-24 Advanced Micro Devices, Inc. Auto adjusting window placement scheme for an NROM virtual ground array
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
US6567307B1 (en) 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6772274B1 (en) 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6345001B1 (en) 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
JP4323707B2 (ja) 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP3812933B2 (ja) * 2001-04-19 2006-08-23 シャープ株式会社 ファイルシステムおよびその制御方法
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP4059472B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6678785B2 (en) 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6678192B2 (en) 2001-11-02 2004-01-13 Sandisk Corporation Error management for writable tracking storage units
US6560152B1 (en) 2001-11-02 2003-05-06 Sandisk Corporation Non-volatile memory with temperature-compensated data read
JP2003242789A (ja) 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP2003257192A (ja) 2002-03-06 2003-09-12 Mitsubishi Electric Corp 半導体記憶装置および不揮発性半導体記憶装置
US6963505B2 (en) 2002-10-29 2005-11-08 Aifun Semiconductors Ltd. Method circuit and system for determining a reference voltage
US6912160B2 (en) 2003-03-11 2005-06-28 Fujitsu Limited Nonvolatile semiconductor memory device
US6839281B2 (en) 2003-04-14 2005-01-04 Jian Chen Read and erase verify methods and circuits suitable for low voltage non-volatile memories
US7076598B2 (en) 2003-09-09 2006-07-11 Solid State System Co., Ltd. Pipeline accessing method to a large block memory
JPWO2005029311A1 (ja) 2003-09-18 2006-11-30 松下電器産業株式会社 半導体メモリカード、半導体メモリ制御装置及び半導体メモリ制御方法
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
JP4083147B2 (ja) 2004-07-02 2008-04-30 シャープ株式会社 半導体記憶装置
US7242618B2 (en) 2004-12-09 2007-07-10 Saifun Semiconductors Ltd. Method for reading non-volatile memory cells
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7339834B2 (en) 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7254071B2 (en) 2006-01-12 2007-08-07 Sandisk Corporation Flash memory devices with trimmed analog voltages
US7613043B2 (en) 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7489549B2 (en) 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7330376B1 (en) 2006-07-27 2008-02-12 Macronix International Co., Ltd. Method for memory data storage by partition into narrower threshold voltage distribution regions
US7450425B2 (en) 2006-08-30 2008-11-11 Micron Technology, Inc. Non-volatile memory cell read failure reduction
US7716538B2 (en) 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US7489547B2 (en) 2006-12-29 2009-02-10 Sandisk Corporation Method of NAND flash memory cell array with adaptive memory state partitioning
US7489548B2 (en) 2006-12-29 2009-02-10 Sandisk Corporation NAND flash memory cell array with adaptive memory state partitioning
US20080294813A1 (en) 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
US20080294814A1 (en) 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
KR100838292B1 (ko) 2007-06-20 2008-06-17 삼성전자주식회사 메모리 셀의 읽기 레벨 제어 장치 및 그 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405639B2 (en) 2007-06-07 2016-08-02 Micron Technology, Inc. Systems and methods for retrieving data
KR101121698B1 (ko) * 2008-12-22 2012-02-28 가부시끼가이샤 도시바 반도체 기억 장치 및 기억 제어 방법
KR20160087799A (ko) * 2013-11-22 2016-07-22 인텔 코포레이션 Nand 플래시 메모리를 위한 결함 관리 정책들
US10747448B2 (en) 2016-09-29 2020-08-18 SK Hynix Inc. Reducing disturbance between adjacent regions of a memory device

Also Published As

Publication number Publication date
EP1687720A2 (en) 2006-08-09
US20090187785A1 (en) 2009-07-23
US7012835B2 (en) 2006-03-14
US20110055468A1 (en) 2011-03-03
DE602004011097T2 (de) 2009-01-15
US7224607B2 (en) 2007-05-29
JP4723504B2 (ja) 2011-07-13
CN1882918A (zh) 2006-12-20
US20070211532A1 (en) 2007-09-13
US7518919B2 (en) 2009-04-14
EP1687720B1 (en) 2008-01-02
US20060062048A1 (en) 2006-03-23
DE602004011097D1 (de) 2008-02-14
US20050073884A1 (en) 2005-04-07
TWI261840B (en) 2006-09-11
JP2007507804A (ja) 2007-03-29
WO2005036401A2 (en) 2005-04-21
EP1847930B1 (en) 2009-06-24
ATE382892T1 (de) 2008-01-15
KR101127882B1 (ko) 2012-03-21
TW200532695A (en) 2005-10-01
EP1847930A1 (en) 2007-10-24
CN101630279B (zh) 2012-08-15
US8004895B2 (en) 2011-08-23
CN101630279A (zh) 2010-01-20
WO2005036401A3 (en) 2005-07-28
DE602004021735D1 (de) 2009-08-06
US8050095B2 (en) 2011-11-01
ATE434788T1 (de) 2009-07-15
CN100541439C (zh) 2009-09-16

Similar Documents

Publication Publication Date Title
KR101127882B1 (ko) 플래쉬 메모리 데이터 정정 및 스크럽 기법
EP1941368B1 (en) Corrected data storage and handling methods
KR101849440B1 (ko) 동적 판독에 사용하기 위한 스크럽 기술
US7573773B2 (en) Flash memory with data refresh triggered by controlled scrub data reads
US7477547B2 (en) Flash memory refresh techniques triggered by controlled scrub data reads
US7315916B2 (en) Scratch pad block
EP2135251B1 (en) Flash memory refresh techniques triggered by controlled scrub data reads

Legal Events

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

Payment date: 20150224

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160311

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 9