KR20060051898A - 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법 - Google Patents

비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20060051898A
KR20060051898A KR1020050091859A KR20050091859A KR20060051898A KR 20060051898 A KR20060051898 A KR 20060051898A KR 1020050091859 A KR1020050091859 A KR 1020050091859A KR 20050091859 A KR20050091859 A KR 20050091859A KR 20060051898 A KR20060051898 A KR 20060051898A
Authority
KR
South Korea
Prior art keywords
memory
data
redundant memory
redundant
code
Prior art date
Application number
KR1020050091859A
Other languages
English (en)
Other versions
KR100873943B1 (ko
Inventor
데이비드 큐어튼 베이커
그래이슨 데일 애보트
조세프 지비
Original Assignee
시그마텔, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 시그마텔, 인크. filed Critical 시그마텔, 인크.
Publication of KR20060051898A publication Critical patent/KR20060051898A/ko
Application granted granted Critical
Publication of KR100873943B1 publication Critical patent/KR100873943B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

비휘발성 컴퓨터 메모리의 데이터 섹터의 중복 메모리 영역의 제1 부분을 독출하는 단계;를 포함하는 비휘발성 컴퓨터 메모리의 일부분을 독출하는 방법이 개시된다. 상기 중복 메모리 영역의 제1 부분은 데이터 섹터와 관련된 데이터를 포함한다. 중복 메모리 영역의 제1 부분은 순환 중복 검사(Cyclic Redundancy Check, CRC) 코드를 포함한다.

Description

비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법{System and method of reading non-volatile computer memory}
도 1은 예시적인 메모리 시스템을 기술하는 블록도이다.
도 2는 예시적인 메모리를 기술하는 블록도이다.
도 3 내지 도 5는 도 1에서 예시된 메모리 시스템과 같은, 메모리 시스템에서 사용되기 위한 예시적인 방법을 기술하는 흐름도이다.
본 개시는 일반적으로 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템들 및 방법들에 관한 것이다.
점진적으로, 소비자들은 개인 휴대용 정보 단말기들(Personal Digital Assistants, PDA), MP3 플레이어들, 휴대용 메모리 시스템들, 개선된 셀 폰 시스템들, 및 카메라들과 같은 휴대용 장치들을 요구하고 있다. 전통적인 비휘발성 메모리 저장 시스템들, 예컨대 플로피 디스크들, 하드 드라이브들, 및 선택적 드라이버들은 기계적 결합들, 과도한 무게, 커다란 부피, 및 높은 에너지 소모로 고생하기 때문에, 일반적으로 휴대용 장치들에 사용되기에는 부적절하다. 그 결과, 휴대용 장치들의 제조자들은 플래시 메모리 및 전기적 소거 및 프로그램 가능 읽기 전용 기억 장치(Electrically Erasable and Programmable Read Only Memory, EEPROM)와 같은 고체-상태의 메모리 시스템으로 조정되고 있다.
플래시 메모리와 같은 고체 상태의 메모리 장치들에 데이터를 저장하고 액세스하는 것은 가상 어드레싱을 활용한다. 고체 상태의 메모리 장치들은 사용에 따라 마모되는 경향이 있으며, 따라서 고체 상태의 메모리 장치내의 섹터들은 에러 없는 데이터를 저장할 용량을 읽어버릴 수 있다. 고체 상태의 메모리 마모의 문제를 감소시키기 위하여, 마이크로 콘트롤러는 일반적으로 메모리의 섹터들간의 사용을 균형있게 조정한다. 예를 들면, 데이터가 플래시 메모리 장치에 제공되면, 상기 데이터는 제1 섹터에 저장되고, 데이터가 갱신되면, 마이크로 콘트롤러는 상기 데이터를 제2 섹터에 저장함으로써, 제1 섹터에 대한 마모를 감소시킨다. 그 결과, 데이터 블록의 물리적 장소가 변화한다. 이러한 균형 조정(balancing)을 용이하게 하고, 물리적 어드레스들의 변화에 주소를 지정하기 위해, 마이크로 콘트롤러는 일반적으로 연산 시스템들에 의해 사용되는 위치 기반 어드레스들(location based addresses)을 플래시 메모리 장치들에서 사용되는 가상 어드레스들(virtual addresses)로 변환하기 위해 사용되는 테이블을 생성한다. 이러한 방식으로, 시스템은 동일한 위치 기반 어드레스를 사용해서 한 세트의 데이터에 주소를 지정할 수 있고, 반면에 마이크로 콘트롤러는 밸런싱 프로토콜(balancing protocol)에 의존하여 플래시 메모리내의 다른 주소들에 또는 플래시 메모리의 변하는 섹터들에 그러한 정보를 저장할 수 있다. 섹터가 플래시 메모리 장치내에서 불량으로 판정될 때, 마이크로 콘트롤러는 그러한 불량 데이터 섹터들에서 데이터 저장을 보존하기 위해, 불량 데이터 섹터들의 맵핑을 생성할 수 있다.
불량 섹터들의 분류(cataloging) 및 섹터 맵들의 생성은 전형적으로 데이터 섹터를 독출하고, 시스템 데이터의 특정 코드값들을 검사함으로써 수행된다. 일반적으로, 데이터 섹터의 모든 데이터와 관련된 ECC는 데이터의 잡음을 보정하고 검사하기 위한 용도로 데이터 섹터에 포함된다. 예를 들면, ECC는 데이터가 저장될 때 데이터에 기초하여 계산되고, 데이터와 함께 저장된다. 상기 데이터가 액세스될 때, 새로운 ECC가 데이터로부터 계산되고, 상기 데이터와 함께 저장된 ECC와 비교된다. 만약 새로운 ECC와 저장된 ECC간의 차이가 있다면, 상기 데이터는 손상된 것이며, 상기 섹터는 불량일 수 있다. 많은 예시들에서, ECC들은 이후의 메모리 시스템들 또는 프로세서들에의 전송 이전에 데이터를 보정하기 위해 사용될 수 있다.
불량 데이터 블록들의 그러한 에러 검출, 에러 보정, 및 분류는 멀티-레벨 셀 플래시에 있어서는 상당히 중요하다. 멀티-레벨 셀(Multi-level cell, MLC) 플래시는 전통적인 싱글 레벨 셀 플래시에 비해 더 큰 저장 밀도를 가지고 있다. 그러나, 멀티-레벨 셀 플래시는 전형적으로 더 높은 에러율(error rate)을 가지며, 더 빨리 마모된다. 그러하기 때문에, 에러 보정 및 섹터 분류는 비휘발성 고체 상태의 메모리 장치들에 대해서 점차 유용해지고 있다.
그러나, 데이터를 독출하고, ECC들을 계산하고 손상된 데이터를 보정하는 프로세스는 장황한 프로세스이다. 그와 같기 때문에, 데이터 섹터들의 맵핑과 같은 작업들을 수행하는 것은 시스템 자원들을 소모한다. 일 예시에서, 맵핑 작업들 (mapping tasks)은 보정된 메모리 버스들의 성능을 감소시킬 수 있다. 그와 같기 때문에, 비휘발성 메모리 독출을 위한 개선된 방법 및 시스템에 대한 필요성이 있다
본 발명은 상기와 같은 문제점들을 해결하기 위하여 창출된 것으로, 비휘발성 컴퓨터 메모리를 독출하기 위한 개선된 방법 및 시스템을 제공하는데 그 목적이 있다.
또한, 비휘발성 컴퓨터 메모리 장치 및 이를 포함한 시스템을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 특정 실시예에서, 프로세서 및 비휘발성 메모리 장치를 포함하는 메모리 시스템이 개시된다. 상기 비휘발성 메모리 장치는 데이터 섹터들 또는 페이지들을 포함하는 데이터의 블록들을 저장하도록 구성된다. 각 섹터 또는 데이터 페이지는 사용자 데이터 영역 및 중복 메모리 영역을 포함한다. 각각의 중복 메모리 영역은 순환 중복 검사 (Cyclic Redundancy Checking, CRC) 코드를 포함하는 제1 부분 및 에러 보정 코드(Error Correction Code, ECC)를 포함하는 제2 부분을 포함한다. 플래시 메모리의 맵핑을 생성할 때, 시스템은 각각의 중복 메모리 영역의 제1 부분을 독출하고, 관련된 순환 중복 검사(CRC) 코드를 사용해서 에러들을 검사한다. 만약 중복 부분의 데이터에 에러가 있는 것으로 판명된다면, 시스템은 전 데이터 섹터 또는 중복 메모리 영역에 있는 저장된 ECC 코드를 사용해 서 데이터 보정을 수행한다.
예를 들면, 중복 메모리 영역의 제1 부분은 섹터에 있는 데이터의 종류를 식별하는 태그들, 데이터 관리 플래그들, 보안 코드들, 포맷 예약 데이터, 논리적 어드레스 데이터, 오버라이트 플래그들 중 하나 이상과 같은 데이터 블록들을 분류하기 위해 유용한 데이터 및 데이터 시스템을 포함할 수 있다. 예시적인 일 실시예에서, 오버라이트 플래그들은 블록 상태, 페이지 상태, 및 갱신 상태를 표시하는 플래그들을 포함한다. 예시적인 일 실시예에서, 상기 시스템은 양호한 혹은 블량 섹터들 또는 블록들의 리스트를 작성하여 블록/섹터 상태를 검사하기 위해 모든 블록들에 있는 특정 섹터들 또는 모든 데이터 섹터들의 제1 부분을 스캔한다. 다른 실시예에서, 상기 시스템은 논리적-물리적 어드레스 맵(logical-to-physical adress map)을 작성하기 위해 논리적 어드레스 정보에 대해 한 세트의 섹터들을 스캔한다. 다른 예시에서, 상기 시스템은 특정 태그를 검색하기 위해 섹터들을 스캔한다. 다른 예시에서, 섹터가 다른 메모리로 복사되도록 허가하기 전에 상기 시스템은 보안 코드를 검사한다(예를 들면, 복사-방지). 예를 들면, CRC 코드는 에러 또는 잡음이 플래그들 또는 데이터에 포함되었는지를 결정하여 제1 부분의 테스트를 용이하게 하기 위하여 상기 제1 부분과 함께 포함될 수 있다.
예시적인 일 실시예에서, 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법이 개시되는데, 상기 방법은 상기 비휘발성 컴퓨터 메모리의 데이터 섹터와 관련된 중복 메모리 영역의 제1 부분을 독출하는 단계;를 포함하는 것을 특징으로 한다. 상기 중복 메모리 영역의 상기 제1 부분은 상기 데이터 섹터와 관련된 데이터를 포함 함한다. 상기 중복 메모리 영역의 상기 제1 부분은 순환 중복 검사 (Cyclic Redundancy Checking, CRC) 코드를 포함한다.
예시적인 다른 실시예에서, 비휘발성 컴퓨터 메모리를 독출하는 방법이 개시된다. 상기 방법은 상기 비휘발성 컴퓨터 메모리의 제1 데이터 섹터의 제1 중복 메모리 영역의 제1 부분을 독출하고, 제2 중복 메모리 영역의 제1 부분을 독출하는 단계를 포함한다. 상기 제1 중복 메모리 영역은 상기 제1 데이터 섹터와 관련된 데이터를 포함한다. 상기 제1 중복 메모리 영역의 상기 제1 부분은 상기 제1 중복 메모리 영역의 상기 제1 부분과 관련된 제1 순환 중복 검사(CRC) 코드를 포함한다. 상기 방법은 또한 상기 비휘발성 컴퓨터 메모리의 제2 데이터 섹터의 제2 중복 메모리 영역의 제1 부분을 독출하는 단계를 포함한다. 상기 제2 중복 메모리 영역은 상기 제2 데이터 섹터와 관련된 데이터를 포함한다. 상기 제2 중복 메모리 영역의 상기 제1 부분은 제2 순환 중복 검사(CRC) 코드를 포함한다.
예시적인 또 다른 실시예에서, 비휘발성 컴퓨터 메모리 장치가 개시되는데, 상기 장치는 제1 사용자 데이터 및 제1 중복 메모리를 포함하는 제1 메모리를 포함한다. 상기 제1 중복 메모리는 제1 부분 및 제2 부분을 포함한다. 상기 제1 중복 메모리의 상기 제1 부분은 제1 순환 중복 검사(CRC) 코드를 포함하고, 상기 제1 중복 메모리의 상기 제2 부분은 제1 에러 보정 코드를 포함한다. 상기 비휘발성 컴퓨터 메모리는 또한 제2 사용자 데이터 및 제2 중복 메모리를 포함하는 제2 메모리 요소를 포함한다. 상기 제2 중복 메모리는 제1 부분 및 제2 부분을 포함한다. 상기 제2 중복 메모리의 상기 제1 부분은 제2 순환 중복 검사(CRC) 코드를 포함하고, 상 기 제2 중복 메모리의 상기 제2 부분은 제2 에러 보정 코드를 포함한다.
예시적인 또 다른 실시예에서, 프로세서; 상기 프로세서가 액세스 가능한 동적 메모리; 및 상기 프로세서가 액세스 가능한 비휘발성 메모리;를 포함하는 시스템이 개시된다. 상기 비휘발성 메모리는 제1 사용자 데이터 및 제1 중복 메모리를 포함하는 제1 메모리 요소를 포함한다. 상기 제1 중복 메모리는 제1 부분 및 제2 부분을 포함한다. 상기 제1 중복 메모리의 상기 제1 부분은 제1 순환 중복 검사(CRC) 코드를 포함하고, 상기 제1 중복 메모리의 상기 제2 부분은 제1 에러 보정 코드를 포함한다. 상기 비휘발성 메모리는 또한 제2 사용자 데이터 및 제2 중복 메모리를 포함하는 제2 메모리 요소를 포함한다. 상기 제2 중복 메모리는 제1 부분 및 제2 부분을 포함한다. 상기 제2 중복 메모리의 상기 제1 부분은 제2 순환 중복 검사(CRC) 코드를 포함하고, 상기 제2 중복 메모리의 상기 제2 부분은 제2 에러 보정 코드를 포함한다.
이하, 첨부한 도면을 참조하면서 본 발명에 따른 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법의 바람직한 실시예를 상세하게 설명한다.
도 1은 예시적인 메모리 시스템(100)을 기술한다. 예시적인 메모리 시스템(100)은 프로세서(102) 및 플래시 메모리와 같은 비휘발성 메모리 장치(106)를 포함한다. 플래시 메모리의 예시적인 실시예들은 싱글 레벨 셀 플래시 메모리 및 멀티-레벨 셀 플래시 메모리를 포함한다. 프로세서(102)는 플래시 메모리의 맵핑(140), 블량 블록들 데이터(150), CRC 평가 프로그램(160), 및 선택적으로 ECC 프로그램을 저장하는 RAM(Random Access Memory)(104)과 같은 동적 메모리에 연결될 수 있다. 상기 플래시 메모리의 맵핑(140), 블량 블록들 데이터(150), 및 CRC 평가 프로그램(160)은 RAM(104)에 저장되거나, 또는 상기 프로세서(102)에 통합될 수 있다.
메모리 장치(106)는 설명적인 섹터들(108, 110, 및 112)와 같은 페이지들 또는 섹터들을 포함하는 데이터 블록들을 저장하도록 구성된다. 각 섹터의 데이터(예를 들면, 108, 110, 및 112)는 사용자 데이터 영역(120, 124, 및 128) 및 중복 메모리 영역(122, 126, 및 130)을 포함한다. 예시적인 일 실시예에서, 사용자 데이터 영역들(120, 124, 및 128)은 사용자 데이터를 포함하며, 중복 메모리 영역들(122, 126, 및 130)은 시스템 데이터를 포함한다. 프로세서(102)가 플래시 메모리의 맵(140)을 생성하고 있을 때, 상기 프로세서는 중복 메모리의 제1 부분을 액세스할 수 있으며, CRC 평가 프로그램(160)을 사용해서, 상기 중복 메모리의 제1 부분에 에러가 존재하는지를 결정한다. 만약 에러가 존재하지 않는다면, 프로세서는 이후의 메모리 블록의 평가를 계속한다. 만약 에러가 존재한다면, 프로세서는 ECC 코드를 포함하는 중복 메모리의 제2 부분을 액세스할 수 있으며, 전체로서 데이터 섹터 또는 중복 메모리에 대한 에러 보정을 수행하거나 또는 ECC 검사를 수행한다.
예시적인 일 실시예에서, 동적 메모리는 CRC 및 ECC 동작들을 수행하고, 메모리 블록들을 분류 및 맵핑하기 위해 동작들의 분류 및 맵핑을 수행하기 위한 명령어들 및 로직을 포함한다. 예를 들면, 동적 메모리는 ECC 코드들을 사용해서 에러 보정을 수행하거나, 또는 ECC 코드들을 비교하고, CRC 동작들을 수행하기 위해 프로세서에 의해 동작 가능한 명령어들 및 로직을 포함할 수 있다. 다른 예시에서, 시스템은 어드레스 변환 테이블과 같이 사용중인 블록들을 식별하는 데이터를 저장할 수 있다. 다른 예시에서, 동적 메모리는 비휘발성 메모리의 영역 맵을 나타내는 데이터를 생성하기 위해 프로세서에 의해 실행 가능한 맵핑 프로그램 로직을 포함한다. 상기 맵은 데이터 섹터를 독출하지 않고 제1 중복 메모리 영역들의 제1 부분들을 독출하는 것에 응답하여 생성된다.
도 2는 비휘발성 메모리의 데이터 페이지들 또는 2개의 대표적인 섹터들을 포함하는 예시적인 메모리 장치를 기술하고 있다. 데이터의 제1 섹터는 제1 사용자 데이터 영역(120) 및 중복 메모리 영역(122)을 포함한다. 중복 메모리 영역(122)은 제1 부분(202) 및 제2 부분(204)으로 더 나누어진다. 제1 부분(202)은 제1 CRC 코드(220) 및 다른 중복 데이터(222)를 포함한다. 제2 부분(204)은 제1 에러 보정 코드(ECC)(224)를 포함한다. 유사하게, 제2 섹터는 제2 사용자 데이터 영역(124) 및 제2 중복 메모리 영역(126)을 포함한다. 제2 중복 메모리 영역(126)은 제1 부분(212) 및 제2 부분(214)으로 더 나누어진다. 제1 부분(212)은 제2 CRC 코드(230) 및 다른 중복 데이터(232)를 포함한다. 제2 부분(214)은 에러 보정 코드(ECC)(206) 및 다른 중복 데이터(234)를 포함할 수 있다. 일반적으로, 다른 중복 데이터 영역들(222, 232, 및 234)은 오버라이트 플래그들, 논리적 어드레스 데이터, 포맷 예약 데이터(format reserve data), 보안 코드들, 데이터 관리 플래그들, 섹터의 데이터 종류를 식별하는 태그들과 같이 데이터 블록들을 분류하기 위해 유용한 데이터 및 시스템 데이터를 포함할 수 있다. 예시적인 일 실시예에서, 오버라이트 플래그들은 블록 상태, 페이지 상태, 및 갱신 상태를 포함한다. 하나의 특정 실시예에서, CRC 코드들(220, 230)은 오버라이트 플래그들, 특히 블록 상태, 페이지 상태, 및 갱신 상태 플래그들과 관련된다. 예를 들면, CRC 코드들(220 및 230)은 블록 상태, 페이지 상태, 및 갱신 상태 플래그들과 같은 오버라이트 플래그에서 잡음 또는 에러들을 검사하는데 사용될 수 있다.
에러들을 위해 섹터들을 평가할 때, 시스템은 제1 부분(202)과 같은 중복 메모리의 제1 부분을 독출할 수 있다. 시스템은 에러가 존재하는지를 결정하기 위해 제1 부분(202)에 관한 제1 CRC 코드(220)를 평가할 수 있다. 에러를 검출할 때, 시스템은 제1 사용자 데이터 영역(120)을 포함한 전 데이터 블록에서, ECC 검사 또는 에러 보정과 같은 ECC 동작을 수행하고, 제1 에러 보정 코드(ECC)(224)를 얻기 위해 제1 중복 메모리(120)의 제2 부분(204)을 액세스할 수 있다.
메모리 장치의 맵핑을 생성하기 위해, 시스템은 비휘발성 메모리의 선택된 부분을 독출할 수 있다. 예시적인 일 실시예에서, 메모리 장치는 멀티-레벨 셀 플래시 메모리 장치와 같은 플래시 메모리 장치이다. 도 3은 비휘발성 메모리의 선택된 부분들을 독출하기 위한 예시적인 방법을 기술하는 흐름도이다. 상기 방법(300)은 단계 302에서 도시된 바와 같이, 비휘발성 컴퓨터 메모리의 섹터 또는 페이지의 중복 메모리 영역의 제1 부분을 독출하는 단계를 포함한다. 제1 부분은 비휘발성 메모리에 있는 데이터 섹터와 관련된, 시스템 데이터와 같은, 데이터를 포함할 수 있다. 중복 메모리 영역의 제1 부분은 순환 중복 검사(Cyclic Redundancy Check, CRC) 코드를 포함할 수 있다. 특정 실시예에서, 중복 영역은 16바이트이고, 중복 메모리 영역의 제1 부분은 7바이트이다. 다른 예시적인 실시예에서, 사용자 데이터 영역은 2048 바이트이며, 중복 영역은 64바이트, 그리고 중복 영역의 제1 부분은 28바이트이다. 중복 영역은 에러 보정 코드(Error Correction Code, ECC)를 포함하는 제2 부분을 또한 포함할 수 있다. 시스템은, 단계 304에서 도시된 바와 같이, 예컨대 제1 부분의 데이터에 관하여 순환 중복 검사(CRC) 코드의 평가를 통해서 메모리 에러가 검출되었는지를 결정한다.
다른 예시적인 실시예에서, 시스템은 메모리 에러를 검출하는 것에 응답하여 에러 보정 루틴을 실행할 수 있다. 예를 들면, 메모리 장치는 단계 306에서 도시된 바와 같이, 전체 데이터 섹터를 독출할 수 있으며, 단계 308에서 도시된 바와 같이, 전체 데이터 섹터에 대해 ECC 보정을 수행하거나 또는 중복 데이터의 부분과 관련되어 미리 저장된 보정 코드와의 비교를 위해 에러 보정 코드를 생성할 수 있다. 대안적으로, ECC 동작은 중복 메모리 영역에서 수행될 수 있다. 일반적으로, CRC를 검사하고 중복 영역의 제1 부분을 독출하기 위해 사용되는 시간은 전체의 데이터 섹터에 대한 독출 및 ECC 동작을 수행하기 위한 시간보다 상당히 적다.
이러한 동작의 결과, 상기 시스템은 단계 310에서 도시된 바와 같이, 메모리 섹터 레이아웃 테이블을 생성할 수 있다. 메모리 섹터 레이아웃 테이블은 마이크로 프로세서 또는 RAM(Random Access Memory) 장치에 저장될 수 있다. 대안적으로, 이러한 동작들은 보안 코드들의 값을 검사하거나, 섹터에 저장된 데이터 타입을 식별하는 태그와 같은 특정 태그를 가지는 섹터들을 식별하기 위해, 또는 블량 또는 양호한 데이터 섹터들 또는 블록의 맵을 생성하기 위해 사용될 수 있다.
예시적인 일 실시예에서, 비휘발성 메모리는 복수의 페이지들을 포함한다. 일 예시에서, 각 페이지는 사용자 데이터 영역 및 중복 메모리 영역을 포함할 수 있다. 예를 들면, 상기 복수의 페이지들 중 제1 페이지는 제1 사용자 데이터 영역 및 제1 중복 메모리 영역을, 그리고 상기 복수의 페이지들 중 제2 페이지는 제2 사용자 데이터 영역 및 제2 중복 메모리 영역을 포함한다. 특정 일 실시예에서, 제1 중복 메모리 영역 및 제2 중복 메모리 영역은 시스템 데이터를 포함하며, 제1 사용자 데이터 영역 및 제2 사용자 데이터 영역은 사용자 데이터를 포함한다.
도 4에서 기술된 바와 같이, 방법은 비휘발성 컴퓨터 메모리의 제1 데이터 섹터의 제1 중복 메모리 영역의 제1 부분을 독출하고, 비휘발성 컴퓨터 메모리의 제2 데이터 섹터의 제2 중복 메모리 영역의 제1 부분을 독출한다. 제1 중복 메모리 영역은 비휘발성 메모리내의 제1 데이터 섹터와 관련된 시스템 데이터를 포함하며, 제2 중복 메모리 영역은 비휘발성 메모리내의 제2 데이터 섹터와 관련된 시스템 데이터를 포함한다. 제1 중복 메모리 영역의 제1 부분은 제1 중복 메모리 영역의 제1 부분과 관련된 제1 CRC 코드를 포함한다. 제2 중복 메모리 영역의 제1 부분은 제2 중복 메모리 영역의 제1 부분과 관련된 제2 CRC 코드를 포함한다. 예시적인 일 실시예에서, 제1 중복 메모리 영역의 제1 부분 및 제2 중복 메모리 영역의 제1 부분은 논리적 어드레스 데이터, 포맷 예약 데이터(format reserve data), 및 데이터 관리 플래그들을 더 포함할 수 있다.
상기 시스템은 도 4의 단계 402에서 도시된 바와 같이, 제1 중복 메모리 영역의 제1 부분을 독출할 수 있고, 단계 404에서 도시된 바와 같이, 메모리가 에러를 가졌는지를 결정할 수 있다. 예를 들면, 시스템은 제1 중복 메모리 영역의 제1 부분이 에러를 가졌는지를 결정하기 위해 제1 CRC 코드를 평가할 수 있다. 부가하여, 시스템은 단계 408에서 도시된 바와 같이 제2 중복 메모리 영역에서 메모리 에러가 검출되었는지를 결정하기 위해, 단계 406에서 도시된 바와 같이, 제2 중복 메모리 영역의 제1 부분을 독출할 수 있다.
도 5는 비휘발성 메모리를 독출하기 위한 부가적인 방법을 기술하는 흐름도를 설명하고 있다. 상기 방법(500)은 단계 502에서 도시된 바와 같이, 비휘발성 컴퓨터 메모리의 페이지 또는 섹터의 중복 메모리 영역의 제1 부분을 독출하는 단계를 포함한다. 중복 메모리 영역은 비휘발성 컴퓨터 메모리에 있는 섹터와 관련되어 있다. 중복 메모리 영역의 제1 부분은 중복 메모리 영역의 제1 부분과 관련된 제1 에러 보정 코드(ECC)를 포함하며, 제2 부분은 데이터 섹터와 관련된 제2 에러 보정 코드(ECC)를 포함한다. 예시적인 일 실시예에서, 중복 메모리 영역의 제1 부분은 블록 상태, 페이지 상태, 및 갱신 상태 플래그들과 같은 오버라이트 플래그들을 포함한다. 제1 ECC는 오버라이트 플래그들에서 에러들 및 잡음을 검출하고, 에러들 및 잡음을 보정하는데 사용될 수 있다. 예시적인 다른 실시예에서, 중복 메모리 영역의 제1 부분은 오버라이트 플래그들, 관리 플래그들, 논리적 어드레스 정보, 보안 코드, 및 섹터내의 데이터 종류를 식별하는 태그들중 하나 이상을 포함한다. 제1 ECC는 제1 부분에서 에러들을 검출하고 보정하는데 사용될 수 있다.
상기 방법은 단계 504에서 도시된 바와 같이, 제1 에러 보정 코드를 사용해서 에러 검출 또는 보정을 수행하는 단계를 더 포함한다. 예를 들면, 에러 검출은 ECC를 사용해서, 중복 메모리 영역 또는 제1 부분과 같이 그 일 부분들에서 수행될 수 있다. 에러 상태가 검출될 때, 제1 ECC가 중복 메모리 영역을 보정하기 위해 사용될 수 있으며, 중복 메모리 영역의 제2 부분에 저장된 제2 ECC는 단계 506에서 도시된 바와 같이 데이터 섹터에 대한 에러 검출 및/또는 에러 보정을 수행하기 위해 사용된다.
위에서 개시된 중요한 문제는 설명적이지만 제한적이지는 않는 것으로 간주되며, 첨부된 청구항들은 모든 그러한 변형들, 개선들 및 본 발명의 진정한 범위내에 해당하는 다른 실시예들을 포함하려는 의도이다. 따라서, 법에 의해 허용되는 최대 범위까지, 본 발명의 범위는 다음의 청구항들 및 그들의 동등한 것들의 광범위하고 허용 가능한 해석에 의해 결정되며, 이전의 상세한 설명에 의해 제한되지는 않을 것이다.
상술한 바와 같이, 본 발명의 비휘발성 컴퓨터 메모리를 독출하기 위한 방법 및 시스템을 통해 사용에 따라 마모(wear)되는 경향을 가지는 플래시 메모리와 같은 고체 상태의 메모리에서 그 마모를 줄일 수 있는 효과가 있다.
또한, 상기 비휘발성 컴퓨터 메모리를 독출하기 위한 방법 및 시스템을 통해 메모리들의 성능을 증가시킬 수 있는 효과가 있다.

Claims (30)

  1. 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법에 있어서, 상기 방법은
    상기 비휘발성 컴퓨터 메모리의 데이터 섹터의 중복 메모리 영역의 제1 부분을 독출하는 단계;를 포함하며, 상기 중복 메모리 영역의 상기 제1 부분은 상기 데이터 섹터와 관련된 데이터를 포함하며, 상기 중복 메모리 영역의 상기 제1 부분은 순환 중복 검사 (Cyclic Redundancy Check, CRC) 코드를 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  2. 제1항에 있어서, 상기 중복 메모리 영역은
    상기 중복 메모리 영역의 제2 부분에 저장된 에러 보정 코드를 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  3. 제2항에 있어서, 상기 방법은
    상기 중복 메모리 영역의 상기 제1 부분에 관하여 메모리 에러가 검출되는지를 결정하기 위하여 상기 순환 중복 검사(CRC) 코드를 평가하는 단계;를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  4. 제3항에 있어서, 상기 방법은
    상기 메모리 에러를 검출하고, 상기 메모리 에러의 검출에 응답하여 에러 보 정 루틴을 실행한 이후에, 상기 데이터 섹터를 독출하는 단계;를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  5. 제4항에 있어서, 상기 방법은
    상기 에러 보정 루틴을 실행하기에 앞서 상기 중복 메모리 영역의 상기 제2 부분으로부터 상기 에러 보정 코드를 독출하는 단계;를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  6. 제3항에 있어서, 상기 방법은
    상기 중복 메모리 영역의 상기 제1 부분에 포함된 상기 데이터에 기초하여 메모리 섹터 레이아웃 테이블을 생성하는 단계;를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  7. 제3항에 있어서, 상기 방법은
    상기 중복 메모리 영역의 상기 제1 부분에 포함된 상기 데이터에 기초하여 블량 섹터들의 맵을 작성하는 단계;를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  8. 제3항에 있어서, 상기 방법은
    상기 중복 메모리 영역의 상기 제1 부분에 포함된 상기 데이터에 기초하여 섹터에 저장된 데이터 타입을 식별하는 단계;를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  9. 제3항에 있어서, 상기 방법은
    상기 중복 메모리 영역의 상기 제1 부분에 포함된 상기 데이터에 기초하여 보안 코드의 값을 검사하는 단계;를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  10. 제1항에 있어서, 상기 중복 메모리 영역의 상기 제1 부분은
    오버라이트 플래그들, 논리적 어드레스 데이터, 포맷 예약 데이터, 보안 코드들, 데이터 관리 플래그들, 및 상기 섹터의 데이터 타입을 식별하는 태그들로 이루어진 그룹으로부터 선택된 데이터를 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  11. 제6항에 있어서, 상기 메모리 섹터 레이아웃 테이블은
    RAM(Random Access Memory) 장치에 저장되는 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  12. 제1항에 있어서, 상기 비휘발성 컴퓨터 메모리는
    플래시 메모리 장치인 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  13. 제12항에 있어서, 상기 플래시 메모리 장치는
    멀티-레벨 셀 플래시 메모리 장치인 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  14. 제1항에 있어서, 상기 중복 영역은
    16바이트이며, 상기 중복 메모리 영역의 상기 제1 부분은 7바이트인 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  15. 제1항에 있어서, 상기 중복 영역은
    64바이트이며, 상기 중복 메모리 영역의 상기 제1 부분은 28바이트인 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  16. 제1항에 있어서, 상기 중복 영역의 상기 제1 부분을 독출하고 상기 순환중복검사(CRC)를 평가하는 시간은
    상기 데이터 섹터를 독출하고, 상기 에러 보정 코드를 사용해서 에러 보정 코드 동작을 수행하는 시간보다 적은 것을 특징으로 하는 비휘발성 컴퓨터 메모리의 일부를 독출하는 방법.
  17. 비휘발성 컴퓨터 메모리 독출 방법에 있어서, 상기 방법은
    상기 비휘발성 컴퓨터 메모리의 제1 데이터 섹터의 제1 중복 메모리 영역의 제1 부분을 독출하는 단계로, 상기 제1 중복 메모리 영역은
    상기 제1 데이터 섹터와 관련된 데이터를 포함하며, 상기 제1 중복 메모리 영역의 상기 제1 부분은 상기 제1 중복 메모리 영역의 상기 제1 부분과 관련된 제1 순환 중복 검사(CRC) 코드를 포함하는 단계; 및
    상기 비휘발성 컴퓨터 메모리의 제2 데이터 섹터의 제2 중복 메모리 영역의 제1 부분을 독출하는 단계로, 상기 제2 중복 메모리 영역은
    상기 제2 데이터 섹터와 관련된 데이터를 포함하며, 상기 제2 중복 메모리 영역의 상기 제1 부분은 제2 순환 중복 검사(CRC) 코드를 포함하는 단계;를 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리 독출 방법.
  18. 제17항에 있어서, 상기 제1 중복 메모리 영역은
    상기 제1 중복 메모리 영역의 제2 부분에 저장된 제1 에러 보정 코드를 포함하며, 상기 제2 중복 메모리 영역은 상기 제2 중복 메모리 영역의 제2 부분에 저장된 제2 에러 보정 코드를 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리 독출 방법.
  19. 제18항에 있어서, 상기 방법은
    상기 제1 중복 메모리 영역의 상기 제1 부분에 관하여 메모리 에러가 검출되 는지를 결정하기 위하여 상기 제1 순환 중복 검사(CRC) 코드를 평가하는 단계; 및
    상기 제2 중복 메모리 영역의 상기 제1 부분에 관하여 메모리 에러가 검출되는지를 결정하기 위하여 상기 제2 순환 중복 검사(CRC) 코드를 평가하는 단계;를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리 독출 방법.
  20. 제17항에 있어서, 상기 제1 데이터 섹터와 관련된 데이터 및 상기 제2 데이터 섹터와 관련된 데이터는
    논리적 어드레스 데이터, 포맷 예약 데이터, 및 데이터 관리 플래그들로 이루어진 그룹으로부터 선택된 데이터를 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리 독출 방법.
  21. 제17항에 있어서, 상기 비휘발성 메모리는
    복수의 블록들, 상기 제1 데이터 섹터를 포함하는 제1 복수의 블록들, 및 상기 제2 데이터 섹터를 포함하는 제2 복수의 블록들을 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리 독출 방법.
  22. 제17항에 있어서, 상기 제1 중복 메모리 영역 및 상기 제2 중복 메모리 영역은
    시스템 데이터를 포함하며, 상기 제1 데이터 섹터 및 상기 제2 데이터 섹터는 사용자 데이터를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리 독출 방법.
  23. 비휘발성 컴퓨터 메모리 장치에 있어서,
    제1 사용자 데이터 및 제1 중복 메모리를 포함하는 제1 메모리 요소로, 상기 제1 중복 메모리는 제1 부분 및 제2 부분을 포함하며, 상기 제1 중복 메모리의 상기 제1 부분은 제1 순환 중복 검사(CRC) 코드를 포함하고, 상기 제1 중복 메모리의 상기 제2 부분은 제1 에러 보정 코드를 포함하는 제1 메모리 요소; 및
    제2 사용자 데이터 및 제2 중복 메모리를 포함하는 제2 메모리 요소로, 상기 제2 중복 메모리는 제1 부분 및 제2 부분을 포함하며, 상기 제2 중복 메모리의 상기 제1 부분은 제2 순환 중복 검사(CRC) 코드를 포함하고, 상기 제2 중복 메모리의 상기 제2 부분은 제2 에러 보정 코드를 포함하는 제2 메모리 요소;를 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 메모리 장치.
  24. 제23항에 있어서, 상기 제1 순환 중복 코드는
    상기 제1 중복 메모리의 상기 제1 부분에 저장된 데이터의 에러 검출과 관련되는 것을 특징으로 하는 비휘발성 컴퓨터 메모리 장치.
  25. 제24항에 있어서, 상기 제2 순환 중복 코드는
    상기 제2 중복 메모리의 상기 제1 부분에 저장된 데이터의 에러 검출과 관련되는 것을 특징으로 하는 비휘발성 컴퓨터 메모리 장치.
  26. 제23항에 있어서, 상기 제1 에러 보정 코드는
    상기 제1 중복 메모리 및 상기 제1 사용자 데이터에 저장된 데이터의 에러 보정과 관련되는 것을 특징으로 하는 비휘발성 메모리.
  27. 프로세서;
    상기 프로세서가 액세스 가능한 동적 메모리; 및
    상기 프로세서가 액세스 가능한 비휘발성 메모리;를 포함하는 시스템으로서, 상기 비휘발성 메모리는
    제1 사용자 데이터 및 제1 중복 메모리를 포함하는 제1 메모리 요소로, 상기 제1 중복 메모리는 제1 부분 및 제2 부분을 포함하며, 상기 제1 중복 메모리의 상기 제1 부분은 제1 순환 중복 검사(CRC) 코드를 포함하고, 상기 제1 중복 메모리의 상기 제2 부분은 제1 에러 보정 코드를 포함하는 제1 메모리 요소; 및
    제2 사용자 데이터 및 제2 중복 메모리를 포함하는 제2 메모리 요소로, 상기 제2 중복 메모리는 제1 부분 및 제2 부분을 포함하며, 상기 제2 중복 메모리의 상기 제1 부분은 제2 순환 중복 검사(CRC) 코드를 포함하고, 상기 제2 중복 메모리의 상기 제2 부분은 제2 에러 보정 코드를 포함하는 제2 메모리 요소;를 포함하는 것을 특징으로 하는 시스템.
  28. 제27항에 있어서, 상기 동적 메모리는
    상기 비휘발성 메모리의 영역의 맵을 나타내는 데이터를 포함하며, 상기 비휘발성 메모리의 상기 영역은 상기 제1 메모리 요소 및 상기 제2 메모리 요소를 포함하는 것을 특징으로 하는 시스템.
  29. 제27항에 있어서, 상기 동적 메모리는
    상기 제1 메모리 요소에 있는 에러를 검출하기 위하여 상기 제1 순환 중복 검사(CRC) 코드를 평가하기 위한, 상기 프로세서에 의해 실행 가능한 프로그램 로직;을 포함하며, 상기 동적 메모리는 상기 제1 에러 보정 코드를 사용해서 상기 제1 메모리 요소내의 상기 에러를 보정하기 위한, 상기 프로세서에 의해 실행 가능한 프로그램 로직;을 더 포함하는 것을 특징으로 하는 시스템.
  30. 제28항에 있어서, 상기 동적 메모리는
    상기 비휘발성 메모리의 영역의 맵을 나타내는 데이터를 생성하기 위해 상기 프로세서에 의해 실행 가능한 맵핑 프로그램 로직을 포함하며, 상기 맵은 상기 제1 중복 메모리의 상기 제1 부분을 독출하는 것에 응답하여 그리고 상기 제2 중복 메모리의 상기 제1 부분을 독출하는 것에 응답하여 생성되지만, 상기 제1 사용자 데이터 및 상기 제2 사용자 데이터를 독출함이 없이 생성되는 것을 특징으로 하는 시스템.
KR1020050091859A 2004-11-04 2005-09-30 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법 KR100873943B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/981,086 2004-11-04
US10/981,086 US7409623B2 (en) 2004-11-04 2004-11-04 System and method of reading non-volatile computer memory

Publications (2)

Publication Number Publication Date
KR20060051898A true KR20060051898A (ko) 2006-05-19
KR100873943B1 KR100873943B1 (ko) 2008-12-12

Family

ID=35395191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050091859A KR100873943B1 (ko) 2004-11-04 2005-09-30 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US7409623B2 (ko)
KR (1) KR100873943B1 (ko)
CN (1) CN101427323B (ko)
GB (1) GB2419979B (ko)
TW (1) TWI296412B (ko)
WO (1) WO2006052321A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100758585B1 (ko) * 2005-09-30 2007-09-13 시그마텔, 인크. 비휘발성 컴퓨터 메모리에 액세스하는 시스템 및 방법
US7813187B2 (en) 2006-12-11 2010-10-12 Samsung Electronics Co., Ltd. Multi-bit flash memory device and program method thereof
KR101053948B1 (ko) * 2009-06-03 2011-08-04 가부시끼가이샤 도시바 메모리 시스템 및 컴퓨터 시스템

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006209928A (ja) * 2005-01-31 2006-08-10 Sony Corp 光ディスク製造方法及び装置、光ディスク、並びに、光ディスク再生方法及び装置
DE102005016801B4 (de) * 2005-04-12 2018-04-26 Robert Bosch Gmbh Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher
JP4734033B2 (ja) * 2005-05-30 2011-07-27 株式会社東芝 記憶装置
JP2007034858A (ja) * 2005-07-29 2007-02-08 Kyocera Mita Corp データバックアップ方法及びメモリ装置
US20070089023A1 (en) * 2005-09-30 2007-04-19 Sigmatel, Inc. System and method for system resource access
US7469368B2 (en) * 2005-11-29 2008-12-23 Broadcom Corporation Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield
US7810017B2 (en) 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US8050086B2 (en) 2006-05-12 2011-11-01 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
US7774684B2 (en) * 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
DE102006040644A1 (de) * 2006-08-30 2008-03-13 Robert Bosch Gmbh Korrekturverfahren für einen neu-programmierbaren Mikroprozessor
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
KR100766042B1 (ko) * 2006-12-06 2007-10-12 삼성전자주식회사 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
US7895502B2 (en) * 2007-01-04 2011-02-22 International Business Machines Corporation Error control coding methods for memories with subline accesses
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US7958301B2 (en) * 2007-04-10 2011-06-07 Marvell World Trade Ltd. Memory controller and method for memory pages with dynamically configurable bits per cell
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
TWI332611B (en) * 2007-05-24 2010-11-01 Realtek Semiconductor Corp Method for writing data in flash memory and error correction coding/decoding method thereof
JP2008310896A (ja) * 2007-06-15 2008-12-25 Spansion Llc 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
KR101509836B1 (ko) 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
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
US8493783B2 (en) 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
FR2933791B1 (fr) * 2008-07-08 2010-09-24 Trusted Logic Procede de verification de l'integralite d'une memoire eeprom
EP2149841A3 (de) * 2008-07-24 2013-12-04 Atmel Automotive GmbH Speichersystem, Leseverstärker, Verwendung und Verfahren zur Fehlerdetektion mittels Parity-Bits eines Blockcodes
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
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
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
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
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
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8423837B2 (en) * 2009-02-13 2013-04-16 Texas Instruments Incorporated High reliability and low power redundancy for memory
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8316173B2 (en) * 2009-04-08 2012-11-20 International Business Machines Corporation System, method, and computer program product for analyzing monitor data information from a plurality of memory devices having finite endurance and/or retention
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
CN101908376B (zh) * 2009-06-04 2014-05-21 威刚科技(苏州)有限公司 非挥发性存储装置及其控制方法
TWI500036B (zh) * 2009-06-17 2015-09-11 A Data Technology Co Ltd 非揮發性儲存裝置及其控制方法
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US9123429B2 (en) 2009-07-27 2015-09-01 Sidense Corp. Redundancy system for non-volatile memory
TWI514399B (zh) * 2009-07-27 2015-12-21 Sidense Corp 非揮發性記憶體之冗餘方法
US8495465B1 (en) * 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
KR101139187B1 (ko) * 2009-12-28 2012-04-26 (주)인디링스 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
KR101654807B1 (ko) 2010-05-07 2016-09-07 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
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
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
JP5605238B2 (ja) * 2011-01-25 2014-10-15 ソニー株式会社 メモリシステムおよびその動作方法
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
KR20120126389A (ko) * 2011-05-11 2012-11-21 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 온칩 버퍼 프로그램 방법
JP5764392B2 (ja) * 2011-06-13 2015-08-19 株式会社メガチップス メモリコントローラ
US8874935B2 (en) * 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
TWI473103B (zh) * 2011-09-14 2015-02-11 威剛科技股份有限公司 快閃記憶體儲存裝置及其不良儲存區域的判定方法
CN102541676B (zh) * 2011-12-22 2014-03-05 福建新大陆通信科技股份有限公司 一种nand flash的状态检测及映射方法
US8875003B1 (en) * 2011-12-22 2014-10-28 Landis+Gyr Technologies, Llc Interleaved data communications via power line
US8954825B2 (en) 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
CN102708927A (zh) * 2012-05-09 2012-10-03 上海宏力半导体制造有限公司 提高存储器可靠性的方法以及闪存操作方法
US8910017B2 (en) * 2012-07-02 2014-12-09 Sandisk Technologies Inc. Flash memory with random partition
US9021334B2 (en) * 2013-05-01 2015-04-28 Apple Inc. Calculation of analog memory cell readout parameters using code words stored over multiple memory dies
US20140344570A1 (en) 2013-05-20 2014-11-20 Microsoft Corporation Data Protection For Organizations On Computing Devices
US10615967B2 (en) 2014-03-20 2020-04-07 Microsoft Technology Licensing, Llc Rapid data protection for storage devices
US9825945B2 (en) 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US9853812B2 (en) 2014-09-17 2017-12-26 Microsoft Technology Licensing, Llc Secure key management for roaming protected content
US10248497B2 (en) * 2014-10-22 2019-04-02 Advanced Micro Devices, Inc. Error detection and correction utilizing locally stored parity information
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
CN104407928A (zh) * 2014-11-18 2015-03-11 杭州华为企业通信技术有限公司 一种数据传输方法及装置
US9853820B2 (en) 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
JP2017045405A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
TWI571742B (zh) * 2015-10-07 2017-02-21 慧榮科技股份有限公司 資料儲存裝置及資料維護方法
US9900325B2 (en) 2015-10-09 2018-02-20 Microsoft Technology Licensing, Llc Passive encryption of organization data
CN109410870A (zh) * 2018-12-11 2019-03-01 惠科股份有限公司 时序控制电路、数据读取方法及显示装置
CN109410869A (zh) * 2018-12-11 2019-03-01 惠科股份有限公司 一种数据的读取方法、读取装置及显示装置
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 (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324120B2 (en) * 1990-04-18 2001-11-27 Rambus Inc. Memory device having a variable data output length
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US6781895B1 (en) 1991-12-19 2004-08-24 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device and memory system using the same
US5535369A (en) * 1992-10-30 1996-07-09 Intel Corporation Method for allocating memory in a solid state memory disk
US5740395A (en) 1992-10-30 1998-04-14 Intel Corporation Method and apparatus for cleaning up a solid state memory disk storing floating sector data
US5586285A (en) * 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
JPH0713705A (ja) * 1993-06-16 1995-01-17 Hitachi Ltd ディスク装置
US5875477A (en) * 1995-12-22 1999-02-23 Intel Corporation Method and apparatus for error management in a solid state disk drive using primary and secondary logical sector numbers
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US5653833A (en) * 1996-07-25 1997-08-05 Memtec America Corporation Method for integrally joining preformed thermoplastic core elements especially adapted for the continuous manufacture of melt-blown filter cartridges
US5754566A (en) * 1996-09-06 1998-05-19 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using interleaving
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
US6237124B1 (en) 1998-03-16 2001-05-22 Actel Corporation Methods for errors checking the configuration SRAM and user assignable SRAM data in a field programmable gate array
US6397273B2 (en) * 1998-12-18 2002-05-28 Emc Corporation System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory
US6487631B2 (en) * 1999-02-02 2002-11-26 Qlogic Corporation Circuit and method for monitoring sector transfers to and from storage medium
US6601140B1 (en) * 1999-04-07 2003-07-29 Sony Corporation Memory unit, data processing unit, and data processing method using memory unit type
US6820203B1 (en) * 1999-04-07 2004-11-16 Sony Corporation Security unit for use in memory card
US7130958B2 (en) * 2003-12-02 2006-10-31 Super Talent Electronics, Inc. Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
JP2001175490A (ja) 1999-12-21 2001-06-29 Nec Corp データ転送方式
US7111190B2 (en) * 2001-02-23 2006-09-19 Intel Corporation Method and apparatus for reconfigurable memory
EP1295140A2 (en) 2000-06-22 2003-03-26 Microchip Technology Inc. A method of checking eeprom data with an embedded crc
JP4707803B2 (ja) * 2000-07-10 2011-06-22 エルピーダメモリ株式会社 エラーレート判定方法と半導体集積回路装置
US7617352B2 (en) * 2000-12-27 2009-11-10 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
US7162668B2 (en) * 2001-04-19 2007-01-09 Micron Technology, Inc. Memory with element redundancy
ITTO20010529A1 (it) * 2001-06-01 2002-12-01 St Microelectronics Srl Metodo di controllo dell'errore in celle di memoria multilivello con numero di bit memorizzati configurabile.
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US6883131B2 (en) * 2001-09-28 2005-04-19 Sun Microsystems, Inc. XOR processing incorporating error correction code data protection
US7047381B2 (en) * 2002-07-19 2006-05-16 Broadcom Corporation System and method for providing one-time programmable memory with fault tolerance
US6754117B2 (en) 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
KR100944054B1 (ko) * 2002-08-29 2010-02-24 파나소닉 주식회사 반도체메모리장치 및 플래시메모리에의 데이터기입방법
US7191382B2 (en) * 2003-06-02 2007-03-13 Fujitsu Limited Methods and apparatus for correcting data and error detection codes on the fly
US20050038954A1 (en) * 2003-06-04 2005-02-17 Quantum Corporation Storage drive having universal format across media types
US7191379B2 (en) * 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
US7356755B2 (en) * 2003-10-16 2008-04-08 Intel Corporation Error correction for multi-level cell memory with overwrite capability
WO2005053217A1 (en) * 2003-11-19 2005-06-09 Honeywell International Inc. Message error verification using checking with hidden data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100758585B1 (ko) * 2005-09-30 2007-09-13 시그마텔, 인크. 비휘발성 컴퓨터 메모리에 액세스하는 시스템 및 방법
US7813187B2 (en) 2006-12-11 2010-10-12 Samsung Electronics Co., Ltd. Multi-bit flash memory device and program method thereof
KR101053948B1 (ko) * 2009-06-03 2011-08-04 가부시끼가이샤 도시바 메모리 시스템 및 컴퓨터 시스템

Also Published As

Publication number Publication date
GB2419979A (en) 2006-05-10
TWI296412B (en) 2008-05-01
KR100873943B1 (ko) 2008-12-12
TW200629283A (en) 2006-08-16
GB2419979B (en) 2008-08-27
CN101427323B (zh) 2012-04-25
WO2006052321A2 (en) 2006-05-18
GB0520105D0 (en) 2005-11-09
US20060107130A1 (en) 2006-05-18
US7409623B2 (en) 2008-08-05
WO2006052321A3 (en) 2009-04-30
CN101427323A (zh) 2009-05-06

Similar Documents

Publication Publication Date Title
KR100873943B1 (ko) 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법
US7512864B2 (en) System and method of accessing non-volatile computer memory
KR101494051B1 (ko) 불휘발성 메모리 시스템들을 위한 위브 시퀀스 카운터
US8041883B2 (en) Restoring storage devices based on flash memories and related circuit, system, and method
US20110202709A1 (en) Optimizing storage of common patterns in flash memory
US10372619B2 (en) Data backup method, data recovery method and storage controller
CN109753443B (zh) 一种数据处理方法、装置及电子设备
TWI661427B (zh) 記憶體管理方法以及儲存控制器
TW201230054A (en) System and method of data encoding
US11307983B2 (en) Maintaining data consistency in a memory subsystem that uses hybrid wear leveling operations
US10922234B2 (en) Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
TWI651726B (zh) 解碼方法以及儲存控制器
US7945762B2 (en) Method and apparatus for memory management in a non-volatile memory system using a block table
TW201947402A (zh) 記憶體管理方法以及儲存控制器
JP2010500699A (ja) メモリデバイス内のセクタごとに許容できるビットエラー
TWI616807B (zh) 資料寫入方法以及儲存控制器
CN107977577B (zh) 访存指令访问检测方法及装置
CN112347001B (zh) 闪存垃圾回收的校验方法、装置及电子设备
CN108108118B (zh) 数据写入方法以及存储控制器
CN114822664A (zh) 基于数据优先级的风险评估方法、存储装置及控制电路
CN114327265B (zh) 读取干扰检查方法、存储器存储装置及控制电路单元
US20240069771A1 (en) Read operations for mixed data
CN117421162A (zh) 内存故障检出方法及其装置、计算机设备、存储介质
KR101467302B1 (ko) 에러 검출 테이블을 이용한 패스트 부팅 방법 및 이를 적용한 시스템
CN115719610A (zh) 存储设备的测试方法、测试设备以及可读存储介质

Legal Events

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

Payment date: 20121126

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131119

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee