KR101982381B1 - 소프트 정보에 대한 데이터 전송의 수행 최적화 - Google Patents

소프트 정보에 대한 데이터 전송의 수행 최적화 Download PDF

Info

Publication number
KR101982381B1
KR101982381B1 KR1020157024578A KR20157024578A KR101982381B1 KR 101982381 B1 KR101982381 B1 KR 101982381B1 KR 1020157024578 A KR1020157024578 A KR 1020157024578A KR 20157024578 A KR20157024578 A KR 20157024578A KR 101982381 B1 KR101982381 B1 KR 101982381B1
Authority
KR
South Korea
Prior art keywords
data values
read
read operations
buffer
storage medium
Prior art date
Application number
KR1020157024578A
Other languages
English (en)
Other versions
KR20160009527A (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 KR20160009527A publication Critical patent/KR20160009527A/ko
Application granted granted Critical
Publication of KR101982381B1 publication Critical patent/KR101982381B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3769Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using symbol combining, e.g. Chase combining of symbols received twice or more
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information

Abstract

단일 코맨드는 메모리의 동일 부분으로부터 제1 판독 동작 및 한 시퀀스의 하나 이상의 추가의 판독 동작들을 개시한다. 하나 이상의 추가의 판독 동작들은 요청 장치 및/또는 모듈이 사용할 수 있게 되는 제1 복수의 데이터 값을 제1 판독 동작이 제공한 후에 종료될 수 있다. 일부 구현예에서, 제1 복수의 데이터 값은 하드 정보 값을 포함한다. 복수의 후속 데이터 값은 종료 이벤트가 일어날 때까지 메모리의 동일 부분으로부터 발생된다. 일부 구현예에서, 종료 이벤트가 일어날 때까지, 각각의 하이브리드 복수의 데이터 값들은 최근의 판독된 복수의 데이터 값을 이전에 발생된 하이브리드 복수의 데이터 값 및 제1 복수의 데이터 값 중 하나와 결합함으로써 발생된다. 각 하이브리드 복수의 데이터 값은 대응하는 복수의 소프트 정보 값을 나타낸다.

Description

소프트 정보에 대한 데이터 전송의 수행 최적화{PERFORMANCE OPTIMIZATION OF DATA TRANSFER FOR SOFT INFORMATION GENERATION}
이 발명은 메모리 시스템에서 오류 제어에 관한 것으로, 특히 소프트 정보 오류 제어 디코딩을 위해 사용되는 데이터를 관리하는 것에 관한 것이다.
플래시 메모리를 포함하여, 반도체 메모리 장치는 전형적으로, 데이터를 전기 전하 혹은 전압과 같은 전기 값으로서 저장하기 위해 메모리 셀을 이용한다. 저장 밀도 증가는 제조 발달에 의해 가능해진 것인, 칩 상에 메모리 셀의 밀도를 증가시키는 것, 및 2 비트 이상이 각 플래시 메모리 셀에 의해 저장될 수 있도록 단일-레벨 플래시 메모리 셀에서 다수-레벨 플래시 메모리 셀로 이행(transition)하는 것을 포함한 다양한 방법들로 가능해졌다.
증가하는 저장 밀도의 결점은 저장된 데이터가 점점 더 오류가 나게 저장 및/또는 판독되기가 쉽게 된다는 것이다. 전기 변동, 저장 매체 내 결함, 동작 조건들, 장치 이력, 및/또는 기입-판독 회로, 등에 의해 야기되는 정정불가한 오류 수를 제한하기 위해 오류 제어 코딩(ECC) 엔진이 이용된다. 또한, 많은 오류 제어 코드들에 대해서, 디코딩 프로세스는 하나 이상의 판독 동작의 결과의 서로 다른 해석들의 연관된 확률들을 고려하는 소프트 정보를 사용함으로써 개선될 수 있다. 하드 정보 디코딩은 일반적으로, 데이터 값이 1 값 아니면 다른 것인지 여부에 관하여 절대 판단이 행해짐을 의미한다. 대조적으로, 소프트 정보는 하나 이상의 판독 동작의 결과에 대응하는, 감지된 전기 신호의 서로 다른 해석들이 정확할 수 있을 확률들을 포함한다. 더 많은 정보를 고려함으로써, 소프트 정보 디코딩은 종종, 특정 오류 제어 코드의 오류 검출 및 정정 능력, 및 이에 따라 시스템의 데이터 저장 용량을 개선한다. 그러나, 소프트 정보 디코딩의 이용은 다수의 이전에 해결불가한 결점을 갖는다. 예를 들면, 소프트 정보 디코딩 구현은 바람직하지 못한 지연(즉, 레이턴시)을 야기하는 경향이 있고, 비교적 큰 반도체 풋프린트를 가지며, 일반적으로 파워 및 메모리 집약적이다.
첨부된 청구항 각각의 범위 내에서 시스템, 방법 및 장치의 여러 구현예들은 몇가지 측면들을 가지며, 이들 중 어떤 단일의 것도 본원에 기술된 속성들을 단독으로 책임지지 않는다. 일 측면에서, 단일 코맨드는 메모리의 동일 부분으로부터 제1 판독 동작 및 한 시퀀스의 하나 이상의 추가의 판독 동작들을 개시하게 한다. 이것은 저장 매체에 저장된 데이터를 나타내는 하드 및 이어 소프트 정보 값들의 적시에 생성을 용이하게 한다.
본 발명이 더 상세히 이해될 수 있도록, 여러 구현예들의 특징들을 참조하여 더 특별히 설명되고, 이들 중 일부는 첨부된 도면에 도시된다. 그러나, 첨부된 도면은 단지 본 발명의 더 적절한 특징을 도시하며 따라서 설명이 그외 다른 효과적인 특징을 인정할 수 있으므로, 한정으로서 간주되지 않아야 한다.
도 1은 일부 실시예에 따라 데이터 저장 시스템의 구현예를 도시한 것이다.
도 2는 일부 실시예에 따라 다수의 판독 동작들로부터 하드 및 이어 소프트 정보 값들의 적시에 생성을 용이하게 하는 코맨드 구조에 응하여 소프트 정보를 생성하게 동작하는 요소들을 포함하는 데이터 저장 시스템의 구현예를 도시한 것이다.
도 3은 일부 실시예에 따라 도 2에 포함된 소프트 정보 발생 모듈의 구현예를 도시한 것이다.
도 4는 일부 실시예에 따라 다수의 판독 동작들로부터 하드 및 이어 소프트 정보 값들의 적시에 생성을 용이하게 하는 코맨드 구조에 응하여 판독 데이터를 하드 및 이어 소프트 정보 값들로서 전달하는 방법의 구현예의 흐름도이다.
도 5는 일부 실시예에 따라 다수의 판독 동작들로부터 하드 및 이어 소프트 정보의 적시에 생성을 용이하게 하는 코맨드 구조에 응하여 판독 데이터를 하드 및 이어 소프트 정보 값들로서 전달하는 방법의 구현예의 흐름도이다.
일반적 관행에 따라 도면에 도시된 여러 특징들은 축척에 맞게 도시되지 않을 수 있다. 따라서, 여러 특징들의 치수들은 명확성을 위해 임의로 늘리거나 축소될 수도 있다. 또한, 일부 도면은 주어진 시스템, 방법 또는 장치의 모든 성분들을 도시하지 않을 수 있다. 마지막으로, 명세서 및 도면 전체에 걸쳐 동일 특징들을 표기하기 위해 동일 참조부호가 사용될 수 있다.
위에서 언급된 바와 같이, 소프트 정보 디코딩을 채용하는 것에 결점은 이전에 가용한 노력이 바람직하지 못한 지연(즉, 레이턴시)을 야기하는 경향이 있고, 비교적 큰 반도체 풋프린트를 가지며, 일반적으로 파워 및 메모리 집약적이다라는 것이다. 대조적으로, 본원에 기술되는 여러 구현예들은 코맨드 구조, 및 저장 매체에 저장된 데이터를 나타내는 하드 및 이어 소프트 정보 값들의 적시에 생성을 용이하게 하는 코맨드 구조에 응한 동작의 방법을 제공한다.
일부 구현예들은 제1 판독 동작과 동일한 메모리의 부분으로부터 제1 판독 동작 및 이어 한 시퀀스의 하나 이상의 추가의 판독 동작들을 개시하게 하는 코맨드 구조를 포함한다. 하나 이상의 추가의 판독 동작들은 제1 판독 동작이 제1 복수의 데이터 값을 제공한 후에 종료될 수 있고, 제1 복수의 데이터 값은 요청 장치 및/또는 모듈이 사용할 수 있게 된다. 일부 구현예에서, 제1 복수의 데이터 값은 하드 정보 값들을 포함한다. 복수의 후속 데이터 값은 종료 이벤트가 일어날 때까지 후속 판독 동작들에 의해 발생된다. 일부 구현예에서, 하나 이상의 추가의 판독 동작들의 수행이 종료되지 않은 한, 하나 이상의 추가의 판독 동작 각각의 완료에 응하여, 최근의 판독된 복수의 데이터 값을 이전에 발생된 하이브리드 복수의 데이터 값 및 제1 복수의 데이터 값 중 하나와 결합함으로써 각각의 하이브리드 복수의 데이터 값이 발생된다. 본원에서 사용되는 바와 같이, 하이브리드 복수의 데이터 값은 메모리의 동일 부분으로부터 2 이상의 판독 동작들로부터 생성된 대응하는 복수의 소프트 정보 값을 나타낸다.
구체적으로, 일부 구현예는 저장 매체로부터 판독하기 위한 방법을 포함한다. 일부 구현예에서, 방법은 요청 장치로부터 제1 유형의 제어 코맨드를 수신하는 단계를 포함한다. 방법은 (1) 저장 매체의 부분으로부터 제1 복수의 데이터 값들을 얻기 위해 제1 판독 신호 값을 사용하여 제1 판독 동작을 수행하고, (2) 제1 판독 동작을 수행한 후에 하나 이상의 추가의 판독 동작들의 수행을 개시하는 것으로서, 각 추가의 판독 동작은 저장 매체의 제1 판독 동작과 동일한 부분으로부터 복수의 후속 데이터 값들을 얻기 위해서 제1 판독 신호 값과는 상이한 각각의 판독 신호 값을 사용하며, (3) 기정의된 수의 추가의 판독 동작들의 완료와 후속 제어 코맨드를 수신하는 것 중 더 먼저 것에서 하나 이상의 추가의 판독 동작들의 수행을 종료함으로써, 제1 유형의 제어 코맨드를 수신하는 것에 응하는 단계를 더 포함한다.
일부 실시예에서, 후속 제어 코맨드는 하나 이상의 추가의 판독 동작들의 종료를 야기하는 유형이다.
일부 실시예에서, 방법은 제1 복수의 데이터 값들을 버퍼에 저장하는 단계, 제1 복수의 데이터 값들을 버퍼로부터 요청 장치에 전송하는 단계, 및 버퍼에서 요청 장치로 제1 복수의 데이터 값들의 전송과 겹치는 기간 동안 하나 이상의 추가의 판독 동작들의 제1 추가의 판독 동작의 수행을 개시하는 단계를 더 포함한다.
일부 실시예에서, 방법은 제1 복수의 데이터 값들을 버퍼에 저장하는 단계; 요청 장치에 의해 판독하기 위해 구성되는 상황 비트를 설정하는 단계; 및 상황 비트가 설정되는 시간에 가장 가까운 기간에 하나 이상의 추가의 판독 동작들의 제1 추가의 판독 동작의 수행을 개시하는 단계를 더 포함한다.
일부 실시예에서, 하나 이상의 추가의 판독 동작들의 수행이 종료되지 않은 한, 방법은 하나 이상의 추가의 판독 동작들 각각의 완료에 응하여, 최근의 판독된 복수의 데이터 값들을 이전에 발생된 하이브리드 복수의 데이터 값들 및 제1 복수의 데이터 값들 중 하나와 결합함으로써 각각의 하이브리드 복수의 데이터 값들을 발생하는 단계를 포함한다.
일부 실시예에서, 방법은 요청 장치로부터 제2 유형의 제어 코맨드를 수신하는 단계로서, 제2 유형은 저장 매체의 각각의 부분의 단일의 판독을 위한 요청을 나타냄으로써 제1 유형과는 상이하다. 방법은 (1) 저장 매체의 부분으로부터 데이터 값들을 얻기 위해 단일의 판독 동작을 수행하고, (2) 얻어진 데이터 값들을 버퍼에 저장하고, (3) 얻어진 데이터 값들을 버퍼에서 요청 장치로 전송함으로써, 제2 유형의 제어 코맨드를 수신한 것에 응하는 단계를 더 포함한다.
일부 실시예에서, 하나 이상의 추가의 판독 동작들은 기정의된 수의 판독 동작들로 제한된다.
일부 실시예에서, 하나 이상의 추가의 판독 동작들의 수행을 개시하는 단계는 제1 조건에 응하여 일어난다. 일부 실시예에서, 제1 조건은 제1 복수의 데이터 값들이 디코딩될 수 없었음을 나타내는 메시지를 수신하는 것을 포함한다. 일부 실시예에서, 제1 조건은 제1 복수의 데이터 값들이 성공적으로 디코딩될 수 있음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함한다. 일부 실시예에서, 제1 조건은 제1 복수의 데이터 값들이 성공적으로 디코딩되었음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함한다.
일부 실시예에서, 방법은 제1 복수의 데이터 값들을 버퍼에 저장하는 단계; 및 제1 복수의 데이터 값들이 버퍼로부터 판독되게 가용함을 나타내는 제1 메시지를 송신하는 단계를 더 포함한다.
일부 실시예에서, 방법은 버퍼에 저장된 임의의 이전에 발생된 하이브리드 복수의 데이터 값들을 덮어쓰기함으로써 각각의 하이브리드 복수의 데이터 값들 각각을 버퍼에 저장하는 단계; 및 하이브리드 복수의 데이터 값들이 버퍼에 새로이 저장될 때마다 새로운 하이브리드 복수의 데이터 값들이 버퍼로부터 판독되기에 가용함을 나타내는 후속 메시지를 송신하는 단계를 더 포함한다.
일부 실시예에서, 각각의 하이브리드 복수의 데이터 값들 각각을 발생하는 단계는 하나 이상의 복수의 후속 데이터 값들의 최근의 판독의 각각과 이전에 발생된 하이브리드 복수의 데이터 값들 및 제1 복수의 데이터 값들 중 하나 간에 배타적 논리합(XOR)을 포함한다.
또다른 측면에서, 저장 매체로부터 판독하게 동작하는 장치는 위에 기술된 방법들 중 어느 것에 따라 데이터를 판독하게 구성된다.
일부 구현예에서, 위에 기술된 방법들 중 어느 것에 관하여, 저장 매체로부터 판독하게 동작하는 장치는 위에 기술된 방법들 중 어느 것에 따라 데이터를 판독하게 구성되는 저장 매체 및 제어기를 포함한다.
동반된 도면에 도시된 예시적 구현예의 철저한 이해를 제공하기 위해서 수많은 상세가 본원에게 기술된다. 그러나, 일부 실시예는 구체적 상세 대부분 없이도 실시될 수 있고, 청구항의 범위는 청구항에 명시적으로 인용되는 특징 및 측면들에 의해서만 제한된다. 또한, 공지된 방법, 성분, 및 회로는 본원에 기술된 구현예의 더 관련된 측면들을 불필요하게 모호하게 되지 않도록 낱낱히 상세하게 기술되지 않았다.
도 1은 일부 실시예에 따라 데이터 저장 시스템(100)의 구현예를 도시한 것이다. 일부 예시적 특징들이 도시되지만, 이외 여러 다른 특징들은 간략성을 위해서 그리고 본원에 개시되는 예시적 구현예의 더 적절한 측면들을 모호하게 하지 않기 위해서 도시되지 않았다. 이를 위해, 비제한적 예로서, 데이터 저장 시스템(100)은 메모리 제어기(120), 및 저장 매체(130)를 포함하며, 컴퓨터 시스템(110)과 함께 사용된다. 일부 구현예에서, 저장 매체(130)는 단일의 플래시 메모리 장치이고 반면 이외 다른 구현예에서 저장 매체(130)는 복수의 플래시 메모리 장치를 포함한다. 일부 구현예에서, 저장 매체(130)는 NAND-형 플래시 메모리 혹은 NOR-형 플래시 메모리이다. 또한, 일부 구현예에서 메모리 제어기(120)는 고체-상태 드라이브(SSD) 제어기이다. 그러나, 이외 다른 유형의 저장 매체가 매우 다양한 구현예의 측면들에 따라 포함될 수도 있다.
컴퓨터 시스템(110)은 데이터 연결부(101)를 통해 메모리 제어기(120)에 결합된다. 그러나, 일부 구현예에서 컴퓨터 시스템(110)은 메모리 제어기(120)를 성분 및/또는 부-시스템으로서 포함한다. 컴퓨터 시스템(110)은 임의의 적합한 컴퓨터 장치, 이를테면 컴퓨터, 랩탑 컴퓨터, 태블릿 장치, 넷북, 인터넷 키오스크, 개인용 디지털 보조장치, 모바일 전화, 스마트폰, 게이밍 장치, 컴퓨터 서버, 혹은 이외 어떤 다른 계산장치일 수 있다. 컴퓨터 시스템(110)을 종종 호스트 혹은 호스트 시스템이라고도 한다. 일부 구현예에서, 컴퓨터 시스템(110)은 하나 이상의 프로세서, 하나 이상의 유형의 메모리, 디스플레이 및/또는 이외 다른 사용자 인터페이스 성분들, 이를테면 키보드, 터치 스크린 디스플레이, 마우스, 트랙-패드, 디지털 카메라 및/또는 기능을 추가할 임의의 수의 보조 장치들을 포함한다.
저장 매체(130)는 연결부(103)를 통해 메모리 제어기(120)에 결합된다. 연결부(103)는 종종 데이터 연결부라고도 하지만, 그러나 전형적으로 데이터 외에도 코맨드들을 전하며, 선택적으로, 저장 매체(130)에 저장될 데이터 값 및 저장 매체(130)로부터 판독되는 데이터 값 외에도, 메타데이터, 오류 정정 정보 및/또는 이외 다른 정보를 전한다. 그러나, 일부 구현예에서, 메모리 제어기(120) 및 저장 매체(130)는 이들의 성분들과 동일한 장치 내에 포함된다. 또한, 일부 구현예에서 메모리 제어기(120) 및 저장 매체(130)는 모바일 장치, 태블릿, 이외 다른 컴퓨터 혹은 컴퓨터로 제어되는 장치와 같은 호스트 장치 내에 내장된다. 저장 매체(130)는, 한정없이, 플래시 메모리와 같은 비휘발성 반도체 메모리 장치를 포함하여 임의의 수의(즉, 하나 이상의) 메모리 장치를 포함할 수 있다. 예를 들면, 플래시 메모리 장치는 클라우드 컴퓨팅과 같은 응용에 적합한 기업 저장장치를 위해서, 혹은 하드 디스크 드라이브와 같은 2차 저장장치에 저장된(혹은 저장될) 데이터를 캐시하기 위해, 구성될 수 있다. 이에 더하여 및/또는 대안적으로, 플래시 메모리는 또한, 개인용 플래시 드라이브와 같은 비교적 소규모의 응용을 위해서 혹은 개인용, 랩탑 및 태블릿 컴퓨터를 위한 하드-디스크 대체를 위해 구성될 수 있다.
저장 매체(130)는 선택가능 부분(131)과 같은 다수의 어드레스가능하고 개별적으로 선택가능한 블록들로 분할된다. 일부 구현예에서, 개별적으로 선택가능한 블록은 플래시 메모리 장치에서 소가능한 최소 크기 유닛이다. 즉, 각 블록은 동시에 소거될 수 있는 최소수의 메모리 셀들을 내포한다. 각 블록은 일반적으로 복수의 페이지 및/또는 워드라인으로 더욱 분할되는데, 각 페이지 혹은 워드라인은 전형적으로 블록에서 최소의 개별적으로 액세스가능한 (판독가능한) 부분의 실례이다. 그러나, 일부 구현예에서 (예를 들면, 일부 유형의 플래시 메모리를 사용하여), 최소의 개별적으로 액세스가능한 유닛의 데이터 세트는 페이지의 부-유닛인 섹터이다. 즉, 블록은 복수의 페이지를 포함하며, 각 페이지는 복수의 섹터를 내포하며, 각 섹터는 플래시 메모리 장치로부터 데이터를 판독하기 위한 최소 유닛의 데이터이다.
예를 들면, 한 블록은 임의의 수의 페이지, 예를 들면, 64 페이지, 128 페이지, 256 페이지, 혹은 또다른 적합한 수의 페이지를 포함한다. 블록은 전형적으로 복수의 구역들로 그룹화된다. 각 블록 구역은 어느 정도까지는 독립적으로 관리될 수 있고, 이는 병렬 동작을 위한 병행도를 증가시키며 저장 매체(130)의 관리를 단순화한다.
위에 언급된 바와 같이, 비휘발성 반도체 메모리 장치의 데이터 저장 밀도가 일반적으로 증가하고 있지만, 증가하는 저장 밀도의 결점은 저장된 데이터가 오류로 저장 및/또는 판독되기가 더 쉬워지게 된다는 것이다. 이하 더 상세히 기술되는 바와 같이, 오류 제어 코딩은 전기 변동, 저장 매체 내 결함, 동작 조건들, 장치 이력, 기입-판독 회로, 등, 혹은 이들 및 이의 여러 다른 요인들의 조합에 의해 야기되는 정정불가한 오류의 수를 제한하기 위해 이용될 수 있다.
일부 구현예에서, 메모리 제어기(120)는 관리 모듈(121), 입력 버퍼(123), 출력 버퍼(124), 오류 제어 모듈(125) 및 저장 매체 인터페이스 (I/O)(128)를 포함한다. 메모리 제어기(120)는 간략성을 위해서 그리고 본원에 개시되는 예시적 구현예의 더 적절한 측면들을 모호하게 하지 않기 위해서 도시되지 않았고 특징들의 상이한 배열이 가능할 수 있 여러 추가적인 특징들을 포함할 수 있다. 입력 및 출력 버퍼(123, 124)는 데이터 연결부(101)를 통해 컴퓨터 시스템(110)에 대한 인터페이스를 제공한다. 유사하게, 저장 매체 I/O(128)는 연결부(103)를 통해 저장 매체(130)에 대한 인터페이스를 제공한다. 일부 구현예에서, 저장 매체 I/O(128)는 판독 신호를 저장 매체(130)(예를 들면, NAND-형 플래시 메모리에 대한 판독 임계 전압)에 제공할 수 있는 회로를 포함하여, 판독 및 기입 회로를 포함한다.
일부 구현예에서, 관리 모듈(121)은 하나 이상의 프로그램에서(예를 들면, 관리 모듈(121)에서) 명령을 실행하게 구성된 하나 이상의 처리 유닛(CPU, 프로세서라고도 함)(122)을 포함한다. 일부 구현예에서, 하나 이상의 CPU(122)는 메모리 제어기(120)의 기능 내에서, 그리고 어떤 경우엔, 넘어서서 하나 이상의 성분에 의해 공유된다. 관리 모듈(121)은 입력 버퍼(123), 출력 버퍼(124)(연결부는 도시되지 않음), 오류 제어 모듈(125) 및 저장 매체 I/O(128)의 동작을 관장하기 위해 이들에 결합된다.
오류 제어 모듈(125)은 저장 매체 I/O(128), 입력 버퍼(123) 및 출력 버퍼(124)에 결합된다. 오류 제어 모듈(125)은 의도하지 않게 데이터에 야기된 정정불가한 오류의 수를 제한하기 위해 제공된다. 일부 실시예에서, 오류 제어 모듈(125)은 관리 모듈(121)의 하나 이상의 CPU(122)에 의해 소프트웨어로 실행되고, 다른 실시예에서, 오류 제어 모듈(125)은 엔코딩 및 디코딩 기능들을 수행하기 위해 전용 회로를 사용하여 전체적으로 혹은 부분적으로 구현된다. 이를 위해, 오류 제어 모듈(125)은 엔코더(126) 및 디코더(127)를 포함한다. 엔코더(126)는 저장 매체(130)에 후속하여 저장되는 코드워드를 생성하기 위해 오류 제어 코드를 적용함으로써 데이터를 엔코딩한다.
엔코딩된 데이터(예를 들면, 하나 이상의 코드워드)가 저장 매체(130)로부터 판독될 때, 디코더(127)는 데이터를 복구하고, 복구된 데이터 내 오류를 오류 제어 코드의 오류 정정 능력 내에서 정정하기 위해서 디코딩 프로세스를 엔코딩된 데이터에 적용한다. 당업자는 다양한 오류 제어 코드들이 서로 상이한 오류 검출 및 정정 능력들 갖는다는 것과, 이 발명의 범위를 넘어서는 이유로 여러 응용을 위해 특정 코드들이 선택된다는 것을 알 것이다. 이에 따라, 다양한 유형의 오류 제어 코드들의 철저한 검토는 본원에서는 제공되지 않는다. 또한, 당업자는 오류 제어 코드들의 각 유형 혹은 패밀리가 오류 제어 코드들의 유형 혹은 패밀리에 특정한 엔코딩 및 디코딩 알고리즘들을 갖는다는 것을 알 것이다. 한편 비터비 알고리즘과 같은 일부 알고리즘은 오류 제어 코드들의 다수의 서로 다른 유형들 혹은 패밀리들의 디코딩에서 적어도 어느 정도까지는 이용될 수도 있다. 이에 따라, 간략성을 위해서, 당업자가 일반적으로 이용할 수 있고 공지된 다양한 유형의 엔코딩 및 디코딩 알고리즘의 철저한 설명은 여기에선 제공되지 않는다.
기입 동작 동안에, 입력 버퍼(123)는 컴퓨터 시스템(110)으로부터 저장 매체(130)에 저장될 데이터를 수신한다. 입력 버퍼(123) 내 유지된 데이터는 데이터를 엔코딩하여 하나 이상의 코드워드를 생성하는 엔코더(126)가 이용할 수 있게 된다. 이용되는 저장 매체의 유형에 따르는 방식으로 하나 이상의 코드워드를 저장 매체(130)에 전송하는 저장 매체 I/O(128)는 하나 이상의 코드워드를 이용될 수 있게 된다.
판독 동작은 컴퓨터 시스템(호스트)(110)이 제어 라인(111) 상에서 하나 이상의 호스트 판독 코맨드를 저장 매체(130)로부터 데이터를 요청하는 메모리 제어기(120)에 보낼 때 개시된다. 메모리 제어기(120)는 하나 이상의 호스트 판독 코맨드에 의해 명시된 메모리 위치(어드레스)에 따라 생 판독 데이터를 얻기 위해서, 저장 매체 I/O(128)를 통해, 하나 이상의 판독 액세스 코맨드를 저장 매체(130)에 보낸다. 저장 매체 I/O(128)는 생 판독 데이터(예를 들면, 하나 이상의 코드워드들을 포함하는)를 디코더(127)에 제공한다. 디코딩이 성공적이라면, 디코딩된 데이터는 출력 버퍼(124)에 제공되고, 디코딩된 데이터는 컴퓨터 시스템(110)이 이용할 수 있게 된다. 일부 구현예에서, 디코딩이 성공적이지 않다면, 메모리 제어기(120)는 다수의 구제책에 의지하거나 해결불가한 오류 조건의 표시를 제공할 수 있다.
플래시 메모리 장치는 데이터를 전기 전하 혹은 전압과 같은 전기 값으로서 저장하기 위해 메모리 셀을 이용한다. 각 플래시 메모리 셀은 전형적으로, 트랜지스터의 임계 전압(즉, 트랜지스터를 턴 온하는데 필요한 전압)을 수정하는, 전하를 저장하기 위해 사용되는 플로팅 게이트를 가진 단일의 트랜지스터를 포함한다. 전하의 크기, 및 전하가 생성하는 대응하는 임계 전압은 하나 이상의 데이터 값들을 나타내기 위해 사용된다. 일부 구현예에서, 판독 동작 동안, 트랜지스터의 제어 게이트에 판독 임계 전압이 인가되고 결과적인 감지된 전류 혹은 전압이 데이터 값에 매핑된다.
플래시 메모리 셀의 맥락에서, "셀 전압" 및 "메모리 셀 전압"이라는 용어는 트랜지스터가 전류를 도통하기 위해 메모리 셀의 트랜지스터의 게이트에 인가될 필요가 있는 최소 전압인 메모리 셀의 임계 전압을 의미한다. 유사하게, 플래시 메모리 셀에 인가되는 판독 임계 전압(판독 신호 및 판독 전압이라고도 함)은 메모리 셀이 이 게이트 전압에서 전류를 도통하는지 여부를 판정하기 위해 플래시 메모리 셀의 게이트에 인가되는 게이트 전압이다. 일부 구현예에서, 셀 전압이 판독 임계 전압 미만임을 나타내는 것으로서, 플래시 메모리 셀의 트랜지스터가 주어진 판독 임계 전압에서 전류를 도통할 때, 이 판독 동작을 위한 생 데이터 값은 "1" 이고 이외에 생 데이터 값은 "0"이다.
일부 구현예에서, 메모리 셀의 메모리 셀 전압은 하나 이상의 판독 임계 전압을 사용하여 메모리 셀을 판독함으로써 간접적으로 판독된다. 구체적으로, 각 판독 동작은 메모리 셀의 셀 전압이 이 판독 동작 동안 사용되는 판독 임계 전압보다 큰지 아니면 미만인지를 나타내는 결과를 생성한다. 다수의 판독 임계 전압을 사용하여 메모리 셀을 판독 함으로써, 셀 전압은 메모리 셀이 단일의 판독 임계 전압만을 사용하여 판독되었을 경우보다 더 정확하게 판정될 수 있다. 환원하여, 메모리 셀 상에 수행되는 판독 동작들 -각각은 서로 다른 판독 임계 전압을 사용한다- 많을수록, 메모리 셀의 셀 전압은 더 정확하게 알게 된다.
도 2는 다수의 판독 동작들로부터 하드 및 이어 소프트 정보 값의 적시에 생성을 용이하게 하는 코맨드 구조에 응하여 소프트 정보를 생성하게 동작하는 요소들을 포함하는, 데이터 저장 시스템(200)의 구현예를 도시한 것이다. 도 2에 도시된 데이터 저장 시스템(200)은 도 1에 도시된 데이터 저장 시스템(100)과 유사하고 이로부터 개조된다. 각각에 공통인 요소들은 공통 참조부호를 포함하고, 여기에서는 도 1과 도 2 간에 차이들만이 간략성을 위해 기술된다. 또한, 어떤 구체적 특징들이 도시되지만, 여러 이외 다른 추가적인 특징들은 간략성을 위해서 그리고 본원에 개시되는 예시적 구현예의 더 적절한 측면들을 모호하게 하지 않기 위해서 도시되지 않았다.
도 2를 참조하면, 비제한적 예로서, 저장 매체(230)는 일반적으로 메모리 칩을 포함한다. 당업자은 여러 다른 구현예들에서, 저장 매체(230)는 2 이상의 메모리 칩을 포함하여, 다양한 다른 유형의 메모리 장치를 포함함을 알 것이다. 저장 매체(230)는 NAND 플래시 셀 어레이(231), 기입 버퍼(232), 칩 제어기(236), 판독-기입(R/W) 액세스 회로(237), 페이지 버퍼(235), 및 멀티플렉서(MUX)(234)를 포함한다.
저장 매체 I/O(128)는 연결부(103)를 통해 저장 매체(230)에 결합된다. 연결부(103)는 종종 데이터 연결부라고도 하지만, 그러나 전형적으로 데이터 외에도 코맨드들을 전하며, 선택적으로, 저장 매체(130)에 저장될 데이터 값 및 저장 매체(230)로부터 판독되는 데이터 값 외에도, 메타데이터, 오류 정정 정보 및/또는 이외 다른 정보를 전한다. 구체적으로, 도 2를 계속하여 참조하면, 저장 매체 I/O(128)는 데이터를 기입 버퍼(232)에 전달하기 위해 결합되고, 또한 코맨드, 메타데이터 및 하나 이상의 판독 신호 값(예를 들면, 판독 임계 전압)의 표현들 중 적어도 하나를 전하기 위해 칩 제어기(236)에 결합된다. 칩 제어기(236)는 판독 및 기입 코맨드를 포함하여, 제어 코맨드를 R/W 액세스 회로(237)에 제공하기 위해 결합된다. R/W 액세스 회로(237) 또한 기입 버퍼(232)로부터 기입 데이터를 수신(혹은 인출)하기 위해 결합된다.
R/W 액세스 회로(237) 또한 NAND 플래시 셀 어레이(231)에 결합된다. 기입 동작 동안, R/W 액세스 회로(237)는 기입 버퍼(232)로부터 데이터를 예를 들면, 플래시 어레이(231)-1의 선택가능 부분과 같은 NAND 플래시 셀 어레이(231)의 선택가능 부분에 기입하게 동작한다. 판독 동작 동안, R/W 액세스 회로(237)는 NAND 플래시 셀 어레이(231)에 저장된 데이터를 판독하게 동작한다. 판독 데이터는 페이지 버퍼(235)에 카피된다. 저장 매체 I/O(128) 또한 판독 데이터(하드 혹은 소프트 정보 값들로서)를 MUX(234)을 통해 수신하기 위해 결합된다. NAND 플래시 셀 어레이(231)로부터 판독된 데이터는 페이지 버퍼(235)에 저장되고 MUX(234)를 통해 저장 매체 I/O(128)가 액세스할 수 있게 된다. 칩 제어기(236)는 저장 매체 I/O(128)가 MUX(234)을 통해 페이지 버퍼(235) 내 판독 데이터에 액세스할 수 있게 하는 제어 신호를 MUX(234)에 제공한다. 이어, 저장 매체 I/O(128)는 버퍼(235)로부터 판독 데이터를 스테이지 버퍼(228)에 저장한다.
도 3은 일부 실시예에 따라.도 2에 포함된 소프트 정보 발생 모듈(229)의 구현예를 도시한 것이다. 다시, 위에 언급된 바와 같이, 어떤 구체적 특징들이 도시되지만, 당업자는 여러 다른 추가적인 특징들이 간략성을 위해서 그리고 본원에 개시되는 예시적 구현예의 더 적절한 측면들을 모호하게 하지 않기 위해서 도시되지 않았음을 본 발명으로부터 알 것이다. 이를 위해, 비제한적 예로서, 소프트 정보 발생 모듈(229)은 소프트 정보 관리 제어기(510), 특징화 모듈(520), 계산/조절 모듈(530), 및 출력 멀티플렉스(MUX)(540)를 포함한다. 소프트 정보 발생 모듈(229)은 디코더(127)에 결합된다.
소프트 정보 관리 제어기(510)는 소프트 정보 발생 모듈(229)의 동작을 관장하기 위해서 특징화 모듈(520), 계산/조절 모듈(530), 및 MUX(540) 각각에 결합된다. 구체적으로, 일부 구현예에서, 소프트 정보 관리 제어기(510)는 각각 제어 및 데이터 라인들(501, 502) 상에서 판독 요청 및 하나 이상의 저장 매체 특징화 파라미터들을 수신하기 위해 연결된다. 또한, 소프트 정보 관리 제어기(510)는 제어 라인(511) 상에서 선택 제어 신호를 특징화 모듈(520)에 제공하고, 선택된 특징화 벡터를 데이터 라인(512) 상에서 수신하기 위해 연결된다. 일부 구현예에서, 소프트 정보 관리 제어기(510)는 판독 임계 전압을 데이터 라인(514)을 통해 저장 매체 I/O(128)에 제공하고, 저장 매체 I/O(128)로부터 생 판독 데이터를 페이지 버퍼(235)(도 2) 및 멀티플렉서(234)(도 2)에 의해 데이터 라인(515) 상에서 수신하기 위해 더욱 연결된다. 또한, 소프트 정보 관리 제어기(510)는 시퀀스들의 소프트 정보 값들을 대응하는 데이터 라인들(516, 517)을 통해 계산/조절 모듈(530) 및 출력 MUX(540)에, 그리고 제어 신호를 제어 라인(503)을 통해 출력 MUX(540)에 제공하기 위해 연결된다. 출력 MUX(540)는 또한 데이터 라인(531) 상에서 계산/조절 모듈(530)로부터 조절된 소프트 정보 값들을 수신하기 위해 연결된다. 출력 MUX(540)은 제어 라인(503) 상에서 수신된 제어 신호에 따라 데이터 라인(541) 상에서 변환 모듈(533) 및 계산/조절 모듈(530) 중 하나로부터 소프트 정보 값을 선택적으로 제공하기 위해 연결된다.
특징화 모듈(520)은, 각각이 하나 이상의 저장 매체 특징화 파라미터 값에 대해 저장 매체(130)에 연관된, 비트-터플 및 판독 비교 신호 값들에 대한 소프트 정보 값들과 같은 특징화 데이터를 저장하는 일군의 특징화 벡터(521-1, 521-2, 521-3,... 521-n)을 포함한다. 일부 구현예에서, 특징화 벡터(521)에 저장된 특징화 데이터는 통계적으로 도출된다. 저장 매체 특징화 파라미터 값들의 각 조합은 장치 특징화 프로세스에서 특징화될 수 있는 저장 매체의 각각의 상태를 나타내며, 동일 제조 프로세스에 의해 생성된 다른 장치들에 대해 존재할 수 있다.
소프트 정보 관리 제어기(510)는 선택 모듈(531), 선택적인 것인 판독 제어기(532), 및 변환 모듈(533)을 포함한다. 선택 모듈(531)은 저장된 일군의 특징화 벡터(521-1, 521-2, 521-3,... 521-n)로부터 특징화 벡터를 저장 매체(130)의 현재 상태에 따라 선택하기 위해서 하나 이상의 저장 매체 특징화 파라미터 값을 사용하게 구성된다. 선택 제어 신호는, 하나 이상의 저장 매체 특징화 파라미터 값 및/또는 특징화 모듈(520)이 저장 매체(130)의 현재 상태에 연관된 하나 이상의 저장 매체 특징화 파라미터 값에 기초하여 특징화 벡터를 선택할 수 있게 하는 하나 이상의 저장 매체 특징화 파라미터 값들의 조합에 연관된 인덱스 키를 포함한다.
선택적인 것인 판독 제어기(532)는 저장 매체 I/O(128)를 통해 저장 매체(130)의 부분을 판독하게 구성된다. 일부 구현예에서, 판독 제어기(532)는 판독 동작을 위해 판독 비교 신호 값들을 저장 매체 I/O(128)에 제공하게 구성된다. 일부 구현예에서, 판독 제어기(532)는 저장 매체(130)의 현재 상태에 연관된 하나 이상의 저장 매체 특징화 파라미터 값에 기초하여 선택된 특징화 벡터로부터, 하나 이상의 통계적으로 판정된 판독 비교 신호 값들을 선택한다.
변환 모듈(533)은 생 하드-판단 판독 데이터에 대응하는 한 시퀀스의 소프트 정보 값들을 발생하게 구성된다. 한 시퀀스의 소프트 정보 값들은, 적어도 부분적으로, 대응하는 판독 임계 전압 값을 사용하여 판독 동작에 의해 생성된 생 하드-판단 판독 데이터의 각 비트-터플에 대해 선택된 특징화 벡터부터 각각의 소프트 정보 값을 선택함으로써 발생된다. 구체적으로, 일부 구현예에서, 변환 모듈(533)은 LLR 형태의 적어도 한 소프트 정보 값을 하드-판단 판독 데이터 내 각 비트-터플에 할당하여, n은 코드워드 길이로서, LLR y LLR=(y1, y2,..., yn -1)의 대응하는 시퀀스를 생성한다.
계산/조절 모듈(530)은 저장 매체의 현재 상태 및/또는 이전에 검출된 오류 특징화에 연관된 하나 이상의 특징화 파라미터 값에 응하여 소프트 정보 값을 선택적으로 조절하게 구성된다.
도 4는 다수의 판독 동작들로부터 하드 및 이어 소프트 정보 값들의 적시에 생성을 용이하게 하는 코맨드 구조에 응하여 판독 데이터를 하드 및 이어 소프트 정보 값들으로서 전달하는 방법(400)의 구현예의 흐름도이다. 일부 구현예에서, 방법(400)은 칩 제어기(236)(도 2에 도시된)와 같은 메모리 셀 어레이에 연관된 칩 제어기에 의해 수행된다. 간단히, 방법(400)은 메모리의 제1 판독 동작과 동일한 부분으로부터 제1 판독 동작 및 이어 한 시퀀스의 하나 이상의 추가의 판독 동작들을 개시함으로써 제1 유형의 제어 코맨드를 수신하는 것에 응답하는 것을 포함한다. 추가의 판독 동작은 제1 복수의 데이터 값이 요청 장치에 제공된 후에 종료될 수 있다.
이를 위해, 블록 4-1로 나타낸 바와 같이, 방법(400)은 요청 장치로부터 제1 유형의 제어 코맨드를 수신하는 것을 포함한다. 블록 4-1a로 나타낸 바와 같이, 제1 유형의 제어 코맨드는 제1 판독 동작과 동일한 메모리의 부분으로부터 제1 판독 동작 및 이어 한 시퀀스의 하나 이상의 추가의 판독 동작들을 개시할 것을 수신 장치에 명령한다. 즉, 제1 유형의 제어 코맨드는 연속한 판독 코맨드이다. 예를 들면, 도 2 및 도 4를 참조하면, 칩 제어기(236)는 저장 매체 I/O(128)로부터 송신된 연속된 판독 코맨드를 수신한다.
블록 4-2로 나타낸 바와 같이, 방법(400)은 저장 매체의 부분로부터 제1 복수의 데이터 값을 얻기 위해서, 제1 판독 신호 값(예를 들면, 판독 임계 전압)을 사용하여, 제1 판독 동작을 수행함으로써 제1 유형의 제어 코맨드를 수신하는 것에 응답하는 것을 포함한다. 예를 들면, 도 2 및 도 4를 계속하여 참조하면, 칩 제어기(236)는 제1 판독 코맨드 및 제1 판독 임계 전압을 R/W 액세스 회로(237)에 제공한다. R/W 액세스 회로(237)는 NAND 플래시 셀 어레이(231)로부터 제1 복수의 데이터를 판독하게 동작한다. NAND 플래시 셀 어레이(231)로부터 판독 된 제1 복수의 데이터 값은 페이지 버퍼(235)에 카피된다.
블록 4-3로 나타낸 바와 같이, 제1 판독 동작을 수행한 후에, 방법(400)은 하나 이상의 추가의 판독 동작의 수행을 개시함으로써 제1 유형의 제어 코맨드를 수신하는 것에 응답하는 것을 더 포함하며, 각 추가의 판독 동작은 제1 판독 동작과 동일한 저장 매체의 부분으로부터 복수의 후속 데이터 값을 얻기 위해서 제1 판독 신호 값과는 상이한 각각의 판독 신호 값을 사용한다. 예를 들어, 도 2 및 도 4를 계속하여 참조하면, 칩 제어기(236)은 후속 판독 코맨드 및 각각의 후속 판독 임계 전압들을 R/W 액세스 회로(237)에 반복적으로 제공한다. 각 후속 판독 코맨드 및 각각의 후속 판독 임계 전압을 수신한 것에 응하여, R/W 액세스 회로(237)는 NAND 플래시 셀 어레이(231)로부터 각각의 복수의 후속 데이터를 판독하게 동작한다. NAND 플래시 셀 어레이(231)로부터 판독된 각각의 복수의 후속 데이터 값들 각각은 페이지 버퍼(235)에 카피된다.
또한, 일부 구현예에서, 하나 이상의 추가의 판독 동작의 수행을 개시하는 것은 제1 조건에 응하여 일어난다. 일부 구현예에서, 제1 조건은 제1 복수의 데이터 값이 디코딩될 수 없었음을 나타내는 메시지를 수신하는 것을 포함한다. 일부 구현예에서, 제1 조건은 제1 복수의 데이터 값이 성공적으로 디코딩될 수 있음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함한다. 일부 구현예에서, 제1 조건은 제1 복수의 데이터 값이 성공적으로 디코딩되었음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함한다.
블록 4-4로 나타낸 바와 같이, 방법(400)은 반복 한도에 도달되었는지 여부를 판정하는 것을 포함한다. 일부 구현예에서, 반복 한도는 제1 유형의 제어 코맨드에 응하여 수행되는 하나 이상의 추가의 판독 동작의 수에 대한 한도를 정의한다. 이에 따라, 하나 이상의 추가의 판독 동작은 기정의된 수의 판독 동작으로 제한된다. 반복 한도에 도달되지 않았다면(블록 4-4로부터 "예" 경로), 방법(400)은 종료한다. 한편, 반복 한도에 도달되지 않았다면(블록 4-4로부터 "아니오" 경로), 블록 4-5로 나타낸 바와 같이, 방법(400)은 또 다른 코맨드가 수신되었는지를 판정하는 것을 포함한다. 또 다른 코맨드가 수신되었다면(블록 4-5로부터 "예" 경로), 방법(400)은 종료한다. 한편, 또 다른 코맨드가 수신되지 않았다면(블록 4-4로부터 "아니오" 경로), 방법(400)은 후속 판독 동작이 기술된 바와 같이 수행될 수 있도록 블록 4-3로 나타낸 방법의 부분으로 루프백한다. 일부 구현예에서, 후속 제어 코맨드는 하나 이상의 추가의 판독 동작의 종료를 야기하는 유형이다. 일부 구현예에서, 임의의 후속하여 수신된 제어 코맨드는 하나 이상의 추가의 판독 동작의 종료를 시그널링한다.
일부 구현예에서, 블록 4-4와 블록 4-5와의 결합으로 나타낸 바와 같이, 방법(400)은 기정의된 수의 추가의 판독 동작의 완료와 후속 제어 코맨드를 수신하는 것 중 더 먼저 것에서 하나 이상의 추가의 판독 동작의 수행을 종료하는 것을 포함한다. 또한, 일부 구현예에서, 블록 4-4 및 블록 4-5으로 나타낸 방법(400)의 부분은 반대되는 순서로, 혹은 서로에 관하여 동시에 일어난다. 일부 구현예에서 블록 4-4 및 블록 4-5로 나타낸 방법(400)의 부분은 또한 블록 4-3으로 나타낸 방법(400)의 부분과 동시에 일어나며, 그럼으로써 제1 복수의 데이터 값이 요청 장치 및/또는 모듈이 사용될 수 있게 된 후에 언제든 하나 이상의 추가의 판독 동작이 종료될 수 있는 될 수 있게 한다.
도 5는 일부 구현예에 따라 다수의 판독 동작들로부터 하드 및 이어 소프트 정보 값들의 적시에 생성을 용이하게 하는 코맨드 구조에 응하여 판독 데이터를 하드 및 이어 소프트 정보 값들으로서 전달하는 방법(500)의 구현예의 흐름도이다. 일부 구현예에서, 방법(500)은 칩 제어기(236)(도 2에 도시된)와 같은, 메모리 셀 어레이에 연관된 칩 제어기에 의해 수행된다. 간단히, 방법(500)은 제1 판독 동작과 동일한 메모리의 부분으로부터 제1 판독 동작 및 이어 한 시퀀스의 하나 이상의 추가의 판독 동작을 개시함으로써 제1 유형의 제어 코맨드를 수신하는 것에 응답하는 것을 포함한다. 추가의 판독 동작은 제1 복수의 데이터 값이 요청 장치에 제공된 후에 종료될 수 있는 한다.
이를 위해, 블록 5-1로 나타낸 바와 같이, 방법(500)은 요청 장치로부터 제1 유형의 제어 코맨드를 수신하는 것을 포함한다. 즉, 제1 유형의 제어 코맨드는 연속한 판독 코맨드이다. 예를 들면, 도 2 및 도 5를 참조하면, 칩 제어기(236)는 저장 매체 I/O(128)로부터 송신된 연속한 판독 코맨드를 수신한다.
블록 5-2로 나타낸 바와 같이, 방법(500)은 저장 매체로부터 제1 복수의 데이터 값을 얻기 위해서 제1 판독 신호 값을 사용하여 제1 판독 동작을 수행함으로써 제1 유형의 제어 코맨드를 수신하는 것에 응하는 것을 포함한다. 예를 들면, 도 2 및 도 5를 계속하여 참조하면, 칩 제어기(236)는 제1 판독 코맨드 및 제1 판독 임계 전압을 R/W 액세스 회로(237)에 제공한다. R/W 액세스 회로(237)는 NAND 플래시 셀 어레이(231)로부터 제1 복수의 데이터를 판독하게 동작한다. NAND 플래시 셀 어레이(231)로부터 판독된 제1 복수의 데이터 값은 페이지 버퍼(235)에 카피된다.
블록 5-3로 나타낸 바와 같이, 방법(500)은 제1 복수의 데이터 값을 버퍼에 저장하는 것을 포함한다. 예를 들면, 도 2 및 도 5를 계속하여 참조하면, NAND 플래시 셀 어레이(231)로부터 판독된 제1 복수의 데이터 값은 페이지 버퍼(235)에 카피된다. 블록 5-3으로 나타낸 방법의 부분으로부터, 방법(500)은 시간적으로 서로 가장 가깝게 및/또는 동시에 수행되는 2개의 동작 경로들을 취한다. 한 경로를 따라, 블록 5-4로 나타낸 바와 같이, 방법(500)은 요청 장치에 제1 복수의 데이터 값의 전송을 용이하게 하는 것을 포함한다. 일부 구현예에서, 블록 5-4a로 나타낸 바와 같이, 요청 장치에 제1 복수의 데이터 값의 전송을 용이하게 하는 것은 요청 장치에 의해 판독하기 위해 구성되는 상황 비트를 설정하는 것을 포함한다. 예를 들면, 도 2 및 도 5를 계속하여 참조하면, 칩 제어기(236)는 연결부(103)를 통해 저장 매체 I/O(128)에 의해 판독가능한 상황 비트를 설정한다. 일부 구현예에서, 블록 5-4b로 나타낸 바와 같이, 요청 장치에 제1 복수의 데이터 값의 전송을 용이하게 하는 것은 버퍼에서 요청 장치로 제1 복수의 데이터 값을 전송하는 것을 포함한다. 예를 들면, 도 2 및 도 5를 계속하여 참조하면, 칩 제어기(236)는 MUX(234)이 페이지 버퍼(235)로부터 제1 복수의 데이터를 연결부(103)를 통해 메모리 제어기(120) 내 저장 매체 I/O(128)에 넣을 수 있게 하는 드라이브 신호를 MUX(234)에 제공한다.
또다른 경로를 따라, 블록 5-5로 나타낸 바와 같이, 제1 판독 동작을 수행한 후에, 방법(500)은 제1 판독 동작과 동일한 저장 매체의 부분으로부터 복수의 후속 데이터 값을 얻기 위해서 제1 판독 신호 값과는 상이한 각각의 판독 신호 값을 사용하여 추가의 판독 동작의 수행을 개시함으로써 제1 유형의 제어 코맨드를 수신하는 것에 더욱 응하는 것을 포함한다. 예를 들면, 도 2 및 도 5를 계속하여 참조하면, 칩 제어기(236)는 후속 판독 코맨드 및 각각의 후속 판독 임계 전압을 R/W 액세스 회로(237)에 반복적으로 제공한다. 각 후속 판독 코맨드 및 각각의 후속 판독 임계 전압을 수신한 것에 응하여, R/W 액세스 회로(237)는 NAND 플래시 셀 어레이(231)로부터 각각의 복수의 후속 데이터를 판독하게 동작한다. NAND 플래시 셀 어레이(231)로부터 판독된 각각의 복수의 후속 데이터 값들 각각은 페이지 버퍼(235)에 카피된다. 일부 구현예에서, 방법(500)은 버퍼에서 요청 장치로 제1 복수의 데이터 값의 전송과 겹치는 기간 동안에 하나 이상의 추가의 판독 동작의 제1 추가의 판독 동작의 수행을 개시하는 것을 포함한다. 일부 구현예에서, 방법(500)은 상황 비트가 설정되는 시간에 가장 가까운 기간에 하나 이상의 추가의 판독 동작의 제1 추가의 판독 동작의 수행을 개시하는 것을 포함한다.
또한, 일부 구현예에서, 하나 이상의 추가의 판독 동작의 수행을 개시하는 것은 제1 조건에 응하여 일어난다. 일부 구현예에서, 제1 조건은 제1 복수의 데이터 값이 디코딩될 수 없었음을 나타내는 메시지를 수신하는 것을 포함한다. 일부 구현예에서, 제1 조건은 제1 복수의 데이터 값들이 성공적으로 디코딩될 수 있음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함한다. 일부 구현예에서, 제1 조건은 제1 복수의 데이터 값들이 성공적으로 디코딩되었음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함한다.
블록 5-6로 나타낸 바와 같이, 방법(500)은 각 추가의 복수의 데이터 값을 버퍼에 저장하는 것을 포함한다. 예를 들면, 도 2 및 도 5를 더욱 참조하면, NAND 플래시 셀 어레이(231)로부터 판독된 각각의 복수의 후속 데이터 값들 각각은 페이지 버퍼(235)에 카피된다. 블록 5-7로 나타낸 바와 같이, 방법(500)은 하이브리드 복수의 데이터 값을 버퍼에 발생하는 것을 포함한다. 즉, 일부 구현예에서, 하나 이상의 추가의 판독 동작의 수행이 종료되지 않은 한, 방법(500)은 하나 이상의 추가의 판독 동작 각각의 완료에 응하여, 최근의 판독된 복수의 데이터 값을 이전에 발생된 하이브리드 복수의 데이터 값 및 제1 복수의 데이터 값 중 하나와 결합함으로써 각각의 하이브리드 복수의 데이터 값을 발생하는 것을 포함한다. 일부 구현예에서, 방법(500)은 또한 버퍼에 저장된 임의의 이전에 발생된 하이브리드 복수의 데이터 값을 덮어쓰기함으로써 버퍼에 각각의 하이브리드 복수의 데이터 값들 각각을 저장하는 것을 포함한다. 일부 구현예에서, 각각의 하이브리드 복수의 데이터 값들 각각을 발생하는 것은 하나 이상의 복수의 후속 데이터 값의 최근의 판독의 각각과 이전에 발생된 하이브리드 복수의 데이터 값 및 제1 복수의 데이터 값 중 하나 간에 배타적 논리합(XOR)를 포함한다.
블록 5-8로 나타낸 바와 같이, 방법(500)은 요청 장치에 하이브리드 복수의 데이터 값의 전송을 용이하게 하는 것을 포함한다. 일부 구현예에서, 제1 복수의 데이터 값이 버퍼로부터 판독하기에 가용함을 나타내는 제1 메시지를 송신함으로써 요청 장치에 하이브리드 복수의 데이터 값의 전송을 용이하게 한다. 일부 구현예에서, 하이브리드 복수의 데이터 값이 버퍼에 새로이 저장될 때마다, 새로운 하이브리드 복수의 데이터 값이 버퍼로부터 판독하기에 가용함을 나타내는 후속 메시지를 송신함으로써 요청 장치에 하이브리드 복수의 데이터 값의 전송을 용이하게 한다.
블록 5-9로 나타낸 바와 같이, 방법(500)은 반복 한도에 도달되었는지 여부를 판정하는 것을 포함한다. 일부 구현예에서, 반복 한도는 제1 유형의 제어 코맨드에 응하여 수행되는 하나 이상의 추가의 판독 동작의 수에 대한 한도를 정의한다. 반복 한도에 도달되었다면(블록 5-9로부터 "예" 경로), 방법(500)은 종료한다. 한편, 반복 한도에 도달되지 않았다면(블록 5-9로부터 "아니오" 경로) 블록 5-10로 나타낸 바와 같이, 방법(500)은 또다른 코맨드가 수신되었는지를 판정하는 것을 포함한다. 또다른 코맨드가 수신되었다면(블록 5-10으로부터 "예" 경로), 방법(500)은 종료한다. 한편, 또다른 코맨드가 수신되지 않았다면(블록 5-10으로부터 "아니오" 경로), 방법(500)은 후속 판독 동작이 기술된 바와 같이 수행될 수 있도록 블록 5-5로 나타낸 방법의 부분으로 루프백한다. 일부 구현예에서, 후속 제어 코맨드는 하나 이상의 추가의 판독 동작의 종료를 야기하는 유형이다. 일부 구현예에서, 임의의 후속하여 수신된 제어 코맨드는 하나 이상의 추가의 판독 동작의 종료를 시그널링한다.
일부 구현예에서, 블록 5-9와 블록 5-10과의 조합으로 나타낸 바와 같이, 방법(500)은 기정의된 수의 추가의 판독 동작의 완료와 후속 제어 코맨드를 수신하는 것 중 더 먼저 것에서 하나 이상의 추가의 판독 동작의 수행을 종료하는 것을 포함한다. 또한, 일부 구현예에서, 블록 5-9 및 블록 5-10으로 나타낸 방법(500)의 부분은 반대되는 순서로, 혹은 서로에 관하여 동시에 일어난다. 일부 구현예에서 블록 5-9 및 블록 5-10으로 나타낸 방법(500)의 부분은 블록 5-5으로 나타낸 방법(500)의 부분과 동시에 일어나고, 그럼으로써 제1 복수의 데이터 값이 요청 장치 및/또는 모듈이 사용할 수 있게 된 후에 언제든 하나 이상의 추가의 판독 동작이 종료될 수 있는 될 수 있게 한다.
"제1", "제2", 등의 용어가 여러 요소들을 기술하기 위해 본원에서 사용될 수 있을지라도, 이들 요소들은 이들 용어들에 의해 한정되지 않아야 함이 이해될 것이다. 이들 용어는 요소를 서로간에 구별하기 위해서만 사용된다. 예를 들면, 제1 접촉은 제2 접촉의 용어로 사용될 수도 있을 것이며, 유사하게, 제2 접촉은 제1 접촉의 용어로 사용될 수도 있을 것인데, 이것은 "제1 접촉"의 모든 사용이 일관되게 개칭되고 제2 접촉의 모든 사용이 일관되게 개칭되는 한, 설명의 의미를 변경한다. 제1 접촉 및 제2 접촉은 둘 다 접촉이지만, 그러나 이들은 동일 접촉은 아니다.
본원에서 사용되는 술어는 특정 실시예를 설명하기 위한 것일 뿐이고 청구항을 제한하려는 것이 아니다. 실시예 및 첨부된 청구항의 설명에서 사용되는 바와 같이, 단수형태는 달리 문맥이 명백히 나타내지 않는 한, 복수 형태도 포함되게 한 것이다. 또한, "및/또는"이라는 용어는 본원에서는 연관된 열기된 아이템들 중 하나 이상의 임의의 및 모든 가능한 조합들을 언급하며 이들을 포괄함이 이해될 것이다. 또한, 이 명세서에서 사용될 때 "포함하다" 및/또는 "포함하는"이라는 용어는 기술된 특징, 정수, 단계, 동작, 요소, 및/또는 성분의 존재를 명시하지만, 그러나 하나 이상의 다른 특징, 정수, 단계, 동작 요소, 성분, 및/또는 이들의 그룹의 존재 혹은 추가를 배제하는 것은 아님이 이해될 것이다.
본원에서 사용되는 바와 같이, "하는 것으로 해석될 수 있다면"이라는 용어는 기술된 선행 조건이 문맥에 따라 맞을 "때", 혹은 맞는 것으로 "판정된 것에 응하여", 혹은 맞는다는 "판정에 따라", 혹은 맞는 것으로 "검출한 것에 응하여"를 의미한다. 유사하게, "[기술된 선행 조건이 맞는] 것으로 판정된다면" 혹은 "[기술된 선행 조건이 맞는]다면", 혹은 [기술된 선행 조건이 맞을] 때"라는 어구는 기술된 선행 조건이 문맥에 따라 맞는 것으로 "판정될 때", 혹은 맞는 것으로 "판정한 것에 응하여", 혹은 맞는다는 "판정에 따라", 혹은 맞는 것으로 "검출되었을 때", 혹은 맞는 것으로 "검출한 것에 응하여"를 의미하는 것으로 해석될 수 있다.
앞에 설명은 설명을 위해서 특정한 구현예을 참조하여 기술되어졌다. 그러나, 위에 예시적 논의는 철저히 되게 하거나 개시된 정밀한 형태로 청구항을 한정하려는 것이 아니다. 많은 수저예 및 변형예가 위에 교시된 바에 비추어 가능하다. 구현예는 동작의 원리 및 실제 응용을 최상으로 설명하고, 그럼으로써 당업자가 할 수 있게 하기 위해서 선택되고 설명되었다.

Claims (28)

  1. 저장 매체로부터 판독하는 방법에 있어서,
    요청 장치로부터 제1 유형의 제어 코맨드를 수신하는 단계; 및
    상기 저장 매체의 부분으로부터 제1 복수의 데이터 값들을 얻기 위해 제1 판독 신호 값을 사용하여 제1 판독 동작을 수행하고,
    상기 제1 판독 동작을 수행한 후에 하나 이상의 추가의 판독 동작들의 수행을 개시하고 - 각 추가의 판독 동작은 상기 저장 매체의 상기 제1 판독 동작과 동일한 부분으로부터 복수의 후속 데이터 값들을 얻기 위해서 상기 제1 판독 신호 값과는 상이한 각각의 판독 신호 값을 사용함 -,
    미리 정의된 수의 상기 추가의 판독 동작들의 완료 전에 상기 요청 장치로부터 후속 제어 코맨드를 수신하는 것에 응답하여, 상기 하나 이상의 추가의 판독 동작들의 수행을 종료하고 - 상기 후속 제어 코맨드의 수신은 상기 제1 판독 동작 또는 상기 추가의 판독 동작들 중 하나의 판독 동작이 성공적이었다는 것을 나타냄 -,
    상기 미리 정의된 수의 추가의 판독 동작들의 완료에 응답하여, 상기 하나 이상의 추가의 판독 동작들의 수행을 종료함으로써, 상기 제1 유형의 제어 코맨드를 수신하는 것에 응답하는 단계
    를 포함하는 저장 매체 판독 방법.
  2. 제1항에 있어서,
    상기 방법은 상기 저장 매체에 결합된 메모리 제어기로부터 수신되는 제어 코맨드에 응답하여 상기 저장 매체 내의 회로에 의해 수행되고, 상기 메모리 제어기로부터의 상기 후속 제어 코맨드는 상기 하나 이상의 추가의 판독 동작들의 종료를 야기하는 유형인, 저장 매체 판독 방법.
  3. 제1항에 있어서,
    상기 제1 복수의 데이터 값들을 버퍼에 저장하는 단계;
    상기 제1 복수의 데이터 값들을 상기 버퍼로부터 상기 요청 장치로 전송하는 단계; 및
    상기 버퍼로부터 상기 요청 장치로 상기 제1 복수의 데이터 값들의 상기 전송과 겹치는 기간 동안 상기 하나 이상의 추가의 판독 동작들 중 제1 추가의 판독 동작의 수행을 개시하는 단계를 더 포함하는 저장 매체 판독 방법.
  4. 제1항에 있어서,
    상기 제1 복수의 데이터 값들을 버퍼에 저장하는 단계;
    상기 요청 장치에 의해 판독하기 위해 구성되는 상황 비트를 설정하는 단계; 및
    상기 상황 비트가 설정되는 시간으로부터 미리 결정된 기간 내에 상기 하나 이상의 추가의 판독 동작들 중 제1 추가의 판독 동작의 수행을 개시하는 단계
    를 더 포함하는 저장 매체 판독 방법.
  5. 제1항에 있어서,
    상기 하나 이상의 추가의 판독 동작들의 수행이 종료되지 않은 한, 상기 방법은 상기 하나 이상의 추가의 판독 동작들 각각의 완료에 응답하여, 최근의 판독된 복수의 데이터 값들을 이전에 발생된 하이브리드 복수의 데이터 값들 및 상기 제1 복수의 데이터 값들 중 하나와 결합함으로써 각각의 하이브리드 복수의 데이터 값들을 발생하는 단계를 포함하는 저장 매체 판독 방법.
  6. 제1항에 있어서,
    요청 장치로부터 제2 유형의 제어 코맨드를 수신하는 단계 - 상기 제2 유형은 상기 저장 매체의 각각의 부분의 단일의 판독을 위한 요청을 나타냄으로써 상기 제1 유형과는 상이함 -; 및
    상기 저장 매체의 부분으로부터 데이터 값들을 얻기 위해 단일의 판독 동작을 수행하고,
    상기 얻어진 데이터 값들을 버퍼에 저장하고,
    상기 얻어진 데이터 값들을 상기 버퍼에서 상기 요청 장치로 전송함으로써, 상기 제2 유형의 상기 제어 코맨드를 수신한 것에 응답하는 단계
    를 더 포함하는 저장 매체 판독 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 하나 이상의 추가의 판독 동작들은 미리 정의된 수의 판독 동작들로 제한되는, 저장 매체 판독 방법.
  8. 제1항 내지 제6항 중 어느 한 항에 있어서,
    하나 이상의 추가의 판독 동작들의 수행을 개시하는 단계는 제1 조건에 응답하여 일어나는, 저장 매체 판독 방법.
  9. 제8항에 있어서,
    상기 제1 조건은 상기 제1 복수의 데이터 값들이 성공적으로 디코딩될 수 있음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함하는, 저장 매체 판독 방법.
  10. 제8항에 있어서,
    상기 제1 조건은 상기 제1 복수의 데이터 값들이 성공적으로 디코딩되었음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함하는, 저장 매체 판독 방법.
  11. 제5항에 있어서,
    상기 제1 복수의 데이터 값들을 버퍼에 저장하는 단계; 및
    상기 제1 복수의 데이터 값들이 상기 버퍼로부터 판독되게 가용함을 나타내는 제1 메시지를 송신하는 단계
    를 더 포함하는 저장 매체 판독 방법.
  12. 제11항에 있어서,
    상기 버퍼에 저장된 임의의 이전에 발생된 하이브리드 복수의 데이터 값들을 덮어쓰기함으로써 각각의 하이브리드 복수의 데이터 값들 각각을 상기 버퍼에 저장하는 단계; 및
    하이브리드 복수의 데이터 값들이 상기 버퍼에 새로이 저장될 때마다 새로운 하이브리드 복수의 데이터 값들이 상기 버퍼로부터 판독되기에 가용함을 나타내는 후속 메시지를 송신하는 단계
    를 더 포함하는 저장 매체 판독 방법.
  13. 제5항에 있어서,
    각각의 하이브리드 복수의 데이터 값들 각각을 발생하는 단계는 상기 하나 이상의 복수의 후속 데이터 값들의 최근의 판독의 각각과 이전에 발생된 하이브리드 복수의 데이터 값들 및 상기 제1 복수의 데이터 값들 중 하나 간에 배타적 논리합(XOR)을 포함하는, 저장 매체 판독 방법.
  14. 장치로서,
    저장 매체; 및
    제어 회로
    를 포함하고, 상기 제어 회로는,
    요청 장치로부터 제1 유형의 제어 코맨드를 수신하고;
    상기 저장 매체의 부분으로부터 제1 복수의 데이터 값들을 얻기 위해 제1 판독 신호 값을 사용하여 제1 판독 동작을 수행하고,
    상기 제1 판독 동작을 수행한 후에 하나 이상의 추가의 판독 동작들의 수행을 개시하고 - 각 추가의 판독 동작은 상기 저장 매체의 상기 제1 판독 동작과 동일한 부분으로부터 복수의 후속 데이터 값들을 얻기 위해서 상기 제1 판독 신호 값과는 상이한 각각의 판독 신호 값을 사용함 -,
    미리 정의된 수의 상기 추가의 판독 동작들의 완료 전에 상기 요청 장치로부터 후속 제어 코맨드를 수신되었다는 판정에 따라, 상기 하나 이상의 추가의 판독 동작들의 수행을 종료하고 - 상기 후속 제어 코맨드의 수신은 상기 제1 판독 동작 또는 상기 추가의 판독 동작들 중 하나의 판독 동작이 성공적이었다는 것을 나타냄 -,
    상기 미리 정의된 수의 추가의 판독 동작들의 완료 전에 요청 장치로부터 후속 제어 코맨드가 수신되지 않았다는 판정에 따라, 상기 미리 정의된 수의 추가 판독 동작들의 완료에 따라 상기 하나 이상의 추가의 판독 동작들의 수행을 종료함으로써, 상기 제1 유형의 제어 코맨드를 수신하는 것에 응답하게 구성되는, 장치.
  15. 제14항에 있어서,
    상기 요청 장치는 상기 저장 매체에 결합된 메모리 제어기이고, 상기 메모리 제어기로부터의 상기 후속 제어 코맨드는 상기 하나 이상의 추가의 판독 동작들의 종료를 야기하는 유형인, 장치.
  16. 제15항에 있어서,
    상기 제어 회로는 또한,
    상기 제1 복수의 데이터 값들을 버퍼에 저장하고;
    상기 제1 복수의 데이터 값들을 상기 버퍼로부터 상기 요청 장치에 전송하고;
    상기 버퍼에서 상기 요청 장치로 상기 제1 복수의 데이터 값들의 상기 전송과 겹치는 기간 동안 상기 하나 이상의 추가의 판독 동작들의 제1 추가의 판독 동작의 수행을 개시하게 구성되는, 장치.
  17. 제14항에 있어서,
    상기 제어 회로는 또한,
    상기 제1 복수의 데이터 값들을 버퍼에 저장하고;
    상기 요청 장치에 의해 판독하기 위해 구성되는 상황 비트를 설정하고;
    상기 상황 비트가 설정되는 시간으로부터 미리 결정된 기간 내에 상기 하나 이상의 추가의 판독 동작들 중 제1 추가의 판독 동작의 수행을 개시하게 구성되는, 장치.
  18. 제14항에 있어서,
    상기 하나 이상의 추가의 판독 동작들의 수행이 종료되지 않은 한, 상기 제어 회로는 상기 하나 이상의 추가의 판독 동작들 각각의 완료에 응답하여, 최근의 판독된 복수의 데이터 값들을 이전에 발생된 하이브리드 복수의 데이터 값들 및 상기 제1 복수의 데이터 값들 중 하나와 결합함으로써 각각의 하이브리드 복수의 데이터 값들을 발생하는, 장치.
  19. 제14항에 있어서,
    상기 제어 회로는,
    상기 요청 장치로부터 제2 유형의 제어 코맨드를 수신하고 - 상기 제2 유형은 상기 저장 매체의 각각의 부분의 단일의 판독을 위한 요청을 나타냄으로써 상기 제1 유형과는 상이함 -;
    상기 저장 매체의 부분으로부터 데이터 값들을 얻기 위해 단일의 판독 동작을 수행하고,
    상기 얻어진 데이터 값들을 버퍼에 저장하고,
    상기 얻어진 데이터 값들을 상기 버퍼에서 상기 요청 장치로 전송함으로써 상기 제2 유형의 상기 제어 코맨드를 수신한 것에 응답하게 구성되는, 장치.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서,
    상기 하나 이상의 추가의 판독 동작들은 미리 정의된 수의 판독 동작들로 제한되는, 장치.
  21. 제14항 내지 제19항 중 어느 한 항에 있어서,
    하나 이상의 추가의 판독 동작들의 수행을 개시하는 것은 제1 조건에 응답하여 일어나는, 장치.
  22. 제21항에 있어서,
    상기 제1 조건은 상기 제1 복수의 데이터 값들이 성공적으로 디코딩될 수 있음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함하는, 장치.
  23. 제21항에 있어서,
    상기 제1 조건은 상기 제1 복수의 데이터 값들이 성공적으로 디코딩되었음을 나타내는 메시지가 제1 기간 내에 수신되지 않았음을 판정하는 것을 포함하는, 장치.
  24. 제18항에 있어서,
    상기 제어 회로는 또한,
    상기 제1 복수의 데이터 값들을 버퍼에 저장하고;
    상기 제1 복수의 데이터 값들이 상기 버퍼로부터 판독되게 가용함을 나타내는 제1 메시지를 송신하게 구성되는, 장치.
  25. 제24항에 있어서,
    상기 제어 회로는 또한,
    상기 버퍼에 저장된 임의의 이전에 발생된 하이브리드 복수의 데이터 값들을 덮어쓰기함으로써 각각의 하이브리드 복수의 데이터 값들 각각을 상기 버퍼에 저장하고;
    하이브리드 복수의 데이터 값들이 상기 버퍼에 새로이 저장될 때마다 새로운 하이브리드 복수의 데이터 값들이 상기 버퍼로부터 판독되기에 가용함을 나타내는 후속 메시지를 송신하게 구성되는, 장치.
  26. 제18항에 있어서,
    각각의 하이브리드 복수의 데이터 값들 각각을 발생하는 것은 상기 하나 이상의 복수의 후속 데이터 값들의 최근의 판독의 각각과 이전에 발생된 하이브리드 복수의 데이터 값들 및 상기 제1 복수의 데이터 값들 중 하나 간에 배타적 논리합(XOR)을 포함하는, 장치.
  27. 저장 매체로부터 판독하는 방법에 있어서,
    요청 장치로부터 제1 유형의 제어 코맨드를 수신하는 단계; 및
    상기 저장 매체의 부분으로부터 제1 복수의 데이터 값들을 얻기 위해 제1 판독 신호 값을 사용하여 제1 판독 동작을 수행하고;
    상기 제1 판독 동작을 수행한 후에 하나 이상의 추가의 판독 동작들의 수행을 개시하고 - 각 추가의 판독 동작은 상기 저장 매체의 상기 제1 판독 동작과 동일한 부분으로부터 복수의 후속 데이터 값들을 얻기 위해서 상기 제1 판독 신호 값과는 상이한 각각의 판독 신호 값을 사용함 -;
    미리 정의된 수의 상기 추가의 판독 동작들의 완료 전에 상기 요청 장치로부터 후속 제어 코맨드를 수신되었다는 판정에 따라, 상기 하나 이상의 추가의 판독 동작들의 수행을 종료하고 - 상기 후속 제어 코맨드의 수신은 상기 제1 판독 동작 또는 추가의 판독 동작들 중 하나의 판독 동작이 성공적이었다는 것을 나타냄 -;
    상기 미리 정의된 수의 추가의 판독 동작들의 완료 전에 요청 장치로부터 후속 제어 코맨드가 수신되지 않았다는 판정에 따라, 상기 미리 정의된 수의 추가 판독 동작들의 완료에 따라 상기 하나 이상의 추가의 판독 동작들의 수행을 종료함으로써, 상기 제1 유형의 제어 코맨드를 수신하는 것에 응답하는 단계
    를 포함하는 저장 매체 판독 방법.
  28. 제27항에 있어서,
    상기 방법은 상기 저장 매체에 결합된 메모리 제어기로부터 수신되는 제어 코맨드에 응답하여 상기 저장 매체 내의 회로에 의해 수행되고, 상기 메모리 제어기로부터의 상기 후속 제어 코맨드는 상기 하나 이상의 추가의 판독 동작들의 종료를 야기하는 유형인, 저장 매체 판독 방법.
KR1020157024578A 2013-03-15 2014-03-14 소프트 정보에 대한 데이터 전송의 수행 최적화 KR101982381B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361801463P 2013-03-15 2013-03-15
US61/801,463 2013-03-15
US13/963,444 2013-08-09
US13/963,444 US9367246B2 (en) 2013-03-15 2013-08-09 Performance optimization of data transfer for soft information generation
PCT/US2014/029453 WO2014144864A1 (en) 2013-03-15 2014-03-14 Performance optimization of data transfer for soft information generation

Publications (2)

Publication Number Publication Date
KR20160009527A KR20160009527A (ko) 2016-01-26
KR101982381B1 true KR101982381B1 (ko) 2019-05-27

Family

ID=51533763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157024578A KR101982381B1 (ko) 2013-03-15 2014-03-14 소프트 정보에 대한 데이터 전송의 수행 최적화

Country Status (4)

Country Link
US (1) US9367246B2 (ko)
KR (1) KR101982381B1 (ko)
CN (1) CN105264496B (ko)
WO (1) WO2014144864A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9761312B1 (en) 2016-03-16 2017-09-12 Micron Technology, Inc. FeRAM-DRAM hybrid memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080056005A1 (en) 2006-08-30 2008-03-06 Micron Technology, Inc. Non-volatile memory cell read failure reduction
US20100199138A1 (en) 2009-02-02 2010-08-05 Jun Rye Rho Nonvolatile memory device and method of operating the same
US20110179249A1 (en) 2010-01-15 2011-07-21 Silicon Motion, Inc. Data Storage Device and Method for Handling Data Read Out from Memory

Family Cites Families (423)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4173737A (en) 1978-05-04 1979-11-06 Zenith Radio Corporation Limited position, non-volatile memory tuning system
US4888750A (en) 1986-03-07 1989-12-19 Kryder Mark H Method and system for erase before write magneto-optic recording
US4916652A (en) 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5129089A (en) * 1987-12-18 1992-07-07 Digital Equipment Corporation Distributed interlock apparatus and distributed interlock management method
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5381528A (en) * 1992-10-15 1995-01-10 Maxtor Corporation Demand allocation of read/write buffer partitions favoring sequential read cache
US5416915A (en) 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5537555A (en) 1993-03-22 1996-07-16 Compaq Computer Corporation Fully pipelined and highly concurrent memory controller
US5519847A (en) 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5329491A (en) 1993-06-30 1994-07-12 Intel Corporation Nonvolatile memory card with automatic power supply configuration
US5708849A (en) 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
GB9419246D0 (en) 1994-09-23 1994-11-09 Cambridge Consultants Data processing circuits and interfaces
US5666114A (en) 1994-11-22 1997-09-09 International Business Machines Corporation Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US5530705A (en) 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US5636342A (en) 1995-02-17 1997-06-03 Dell Usa, L.P. Systems and method for assigning unique addresses to agents on a system management bus
US5606532A (en) 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
US6016560A (en) 1995-06-14 2000-01-18 Hitachi, Ltd. Semiconductor memory, memory device, and memory card
US5890193A (en) 1995-07-28 1999-03-30 Micron Technology, Inc. Architecture for state machine for controlling internal operations of flash memory
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5815434A (en) 1995-09-29 1998-09-29 Intel Corporation Multiple writes per a single erase for a nonvolatile memory
US6044472A (en) 1996-06-21 2000-03-28 Archos Device and method for supplying power to an external data medium reader unit connected to a computer, and external reader unit including this device
TW334532B (en) 1996-07-05 1998-06-21 Matsushita Electric Ind Co Ltd The inspection system of semiconductor IC and the method of generation
US6134148A (en) 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
JPH10124381A (ja) 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
US5943692A (en) 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US6006345A (en) 1997-05-09 1999-12-21 International Business Machines Corporation Pattern generator for memory burn-in and test
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH11126497A (ja) 1997-10-22 1999-05-11 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置
US6018304A (en) 1997-12-18 2000-01-25 Texas Instruments Incorporated Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability
US6070074A (en) 1998-04-24 2000-05-30 Trw Inc. Method for enhancing the performance of a regenerative satellite communications system
US6138261A (en) 1998-04-29 2000-10-24 Trw Inc. Concatenated coding system for satellite communications
US6182264B1 (en) 1998-05-22 2001-01-30 Vlsi Technology, Inc. Smart dynamic selection of error correction methods for DECT based data services
US7111293B1 (en) 1998-06-03 2006-09-19 Ants Software, Inc. Method for increased concurrency in a computer system
US6192092B1 (en) 1998-06-15 2001-02-20 Intel Corp. Method and apparatus for clock skew compensation
US6260120B1 (en) 1998-06-29 2001-07-10 Emc Corporation Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement
US6505305B1 (en) 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6295592B1 (en) 1998-07-31 2001-09-25 Micron Technology, Inc. Method of processing memory requests in a pipelined memory controller
US6233625B1 (en) 1998-11-18 2001-05-15 Compaq Computer Corporation System and method for applying initialization power to SCSI devices
US6288860B1 (en) 1999-01-04 2001-09-11 Maxtor Corporation Servo area numbering strategy for computer disk drives
US6438661B1 (en) 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
US6449625B1 (en) 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US6564271B2 (en) 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US7620769B2 (en) 2000-01-06 2009-11-17 Super Talent Electronics, Inc. Recycling partially-stale flash blocks using a sliding window for multi-level-cell (MLC) flash memory
US7660941B2 (en) 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US7333364B2 (en) 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US6412042B1 (en) 1999-11-17 2002-06-25 Maxtor Corporation System and method for improved disk drive performance and reliability
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
DE19961138C2 (de) 1999-12-17 2001-11-22 Siemens Ag Multiport-RAM-Speichervorrichtung
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
US8037234B2 (en) 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US6339338B1 (en) 2000-01-18 2002-01-15 Formfactor, Inc. Apparatus for reducing power supply noise in an integrated circuit
US20020152305A1 (en) 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US6516437B1 (en) 2000-03-07 2003-02-04 General Electric Company Turbo decoder control for use with a programmable interleaver, variable block length, and multiple code rates
US6629047B1 (en) 2000-03-30 2003-09-30 Intel Corporation Method and apparatus for flash voltage detection and lockout
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US20030188045A1 (en) 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
US6647387B1 (en) 2000-04-27 2003-11-11 International Business Machine Corporation System, apparatus, and method for enhancing storage management in a storage area network
US6678788B1 (en) 2000-05-26 2004-01-13 Emc Corporation Data type and topological data categorization and ordering for a mass storage system
US6934755B1 (en) 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US6442076B1 (en) 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US6980985B1 (en) 2000-08-30 2005-12-27 At&T Corp. Distributed evalulation of directory queries using a topology cache
US6865650B1 (en) 2000-09-29 2005-03-08 Emc Corporation System and method for hierarchical data storage
US7028165B2 (en) 2000-12-06 2006-04-11 Intel Corporation Processor stalling
US6862651B2 (en) 2000-12-20 2005-03-01 Microsoft Corporation Automotive computing devices with emergency power shut down capabilities
US6738870B2 (en) 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
KR100381955B1 (ko) 2001-01-03 2003-04-26 삼성전자주식회사 기입 드라이버를 이용한 셀 전류 측정 스킴을 갖는 플래시메모리 장치
US6754773B2 (en) 2001-01-29 2004-06-22 Snap Appliance, Inc. Data engine with metadata processor
JPWO2002082435A1 (ja) 2001-03-30 2004-07-29 富士通株式会社 記憶装置及びそのフォーカス制御方法
US7017107B2 (en) 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US6938253B2 (en) 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
US6757768B1 (en) 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
JP4256600B2 (ja) 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US7068603B2 (en) 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US6836815B1 (en) 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
US6928602B2 (en) 2001-07-18 2005-08-09 Sony Corporation Encoding method and encoder
JP4569055B2 (ja) 2001-08-06 2010-10-27 ソニー株式会社 信号処理装置及び信号処理方法
TW539946B (en) 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP4437519B2 (ja) 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7028213B2 (en) 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
JP3663377B2 (ja) 2001-10-23 2005-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
US7380085B2 (en) 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6798696B2 (en) 2001-12-04 2004-09-28 Renesas Technology Corp. Method of controlling the operation of non-volatile semiconductor memory chips
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US6836808B2 (en) 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
KR100476888B1 (ko) 2002-04-04 2005-03-17 삼성전자주식회사 온도보상기능을 가진 멀티비트 플래쉬메모리
JP4079684B2 (ja) 2002-05-08 2008-04-23 株式会社日立製作所 ヒープメモリ管理方法およびそれを用いた計算機システム
US6966006B2 (en) 2002-05-09 2005-11-15 International Business Machines Corporation Adaptive startup policy for accelerating multi-disk array spin-up
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US6885530B2 (en) 2002-06-11 2005-04-26 Stmicroelectronics, Inc. Power limiting time delay circuit
KR100484147B1 (ko) 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US6978343B1 (en) 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
JP4177329B2 (ja) 2002-08-29 2008-11-05 株式会社ルネサステクノロジ 半導体処理装置及びicカード
US7120856B2 (en) 2002-09-25 2006-10-10 Leanics Corporation LDPC code and encoder/decoder regarding same
JP2004178782A (ja) 2002-10-04 2004-06-24 Sharp Corp 半導体記憶装置およびその制御方法および携帯電子機器
KR100457812B1 (ko) 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
US7399043B2 (en) 2002-12-02 2008-07-15 Silverbrook Research Pty Ltd Compensation for uneven printhead module lengths in a multi-module printhead
US20040114265A1 (en) 2002-12-16 2004-06-17 Xerox Corporation User-selectable automatic secure data file erasure of job after job completion
US7155579B1 (en) 2002-12-27 2006-12-26 Unisys Corporation Memory controller having programmable initialization sequence
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7296216B2 (en) 2003-01-23 2007-11-13 Broadcom Corporation Stopping and/or reducing oscillations in low density parity check (LDPC) decoding
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
JP2004240555A (ja) 2003-02-04 2004-08-26 Fujitsu Ltd バッテリ運用制御装置、バッテリ運用制御方法およびバッテリ運用制御プログラム
US7478096B2 (en) 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
US7162678B2 (en) 2003-03-14 2007-01-09 Quantum Corporation Extended error correction codes
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US7527466B2 (en) 2003-04-03 2009-05-05 Simmons Robert J Building-erection structural member transporter
KR100526186B1 (ko) 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
JP4170988B2 (ja) 2003-05-09 2008-10-22 富士通株式会社 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
US7877647B2 (en) 2003-05-23 2011-01-25 Hewlett-Packard Development Company, L.P. Correcting a target address in parallel with determining whether the target address was received in error
EP2511787B1 (en) 2003-05-23 2017-09-20 IP Reservoir, LLC Data decompression and search using FPGA devices
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7076598B2 (en) 2003-09-09 2006-07-11 Solid State System Co., Ltd. Pipeline accessing method to a large block memory
US7054968B2 (en) 2003-09-16 2006-05-30 Denali Software, Inc. Method and apparatus for multi-port memory controller
US7100002B2 (en) 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7523157B2 (en) 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
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
TW200516821A (en) 2003-11-14 2005-05-16 Hon Hai Prec Ind Co Ltd System and method for starting up devices orderly
US7401174B2 (en) 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
US7197652B2 (en) 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7631148B2 (en) 2004-01-08 2009-12-08 Netapp, Inc. Adaptive file readahead based on multiple factors
JP4357304B2 (ja) 2004-01-09 2009-11-04 株式会社バッファロー 外部記憶装置
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
JP4477365B2 (ja) 2004-01-29 2010-06-09 株式会社日立製作所 複数インタフェースを有する記憶装置、および、その記憶装置の制御方法
US7350044B2 (en) 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7389465B2 (en) 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US20080147964A1 (en) 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7035159B2 (en) 2004-04-01 2006-04-25 Micron Technology, Inc. Techniques for storing accurate operating current values
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
JP2005332471A (ja) 2004-05-19 2005-12-02 Hitachi Ltd ディスクアレイ装置
US20050273560A1 (en) 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7334179B2 (en) 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7159069B2 (en) 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
US7126873B2 (en) 2004-06-29 2006-10-24 Super Talent Electronics, Inc. Method and system for expanding flash storage device capacity
US7529898B2 (en) 2004-07-09 2009-05-05 International Business Machines Corporation Method for backing up and restoring data
US8190808B2 (en) 2004-08-17 2012-05-29 Rambus Inc. Memory device having staggered memory operations
DK3422583T3 (da) 2004-08-30 2020-09-28 Google Llc System og fremgangsmåde for at tilvejebringe ikke-flygtig hukommelsesadministration i trådløse telefoner
FR2875358B1 (fr) 2004-09-15 2006-12-15 Eads Telecom Soc Par Actions S Insertion d'un flux secondaire d'informations binaires dans un flux principal de symboles d'une modulation numerique
JP2006099665A (ja) 2004-09-30 2006-04-13 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びそのシリアル・インターフェース部のパワー・セーブ・モードの制御方法
US7760880B2 (en) 2004-10-13 2010-07-20 Viasat, Inc. Decoder architecture system and method
JP4956922B2 (ja) 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
KR100695891B1 (ko) 2004-11-17 2007-03-19 삼성전자주식회사 동작 모드에 따라 락 아웃을 선택적으로 수행하는 장치 및방법
US20060136681A1 (en) 2004-12-21 2006-06-22 Sanjeev Jain Method and apparatus to support multiple memory banks with a memory block
US8438459B2 (en) 2004-12-22 2013-05-07 Lg Electronics Inc. Apparatus and method for decoding using channel code
US20060156177A1 (en) 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
US7657696B2 (en) 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US7822912B2 (en) 2005-03-14 2010-10-26 Phision Electronics Corp. Flash storage chip and flash array storage system
US7707232B2 (en) 2005-05-13 2010-04-27 Microsoft Corporation Implementation for collecting unmanaged memory
US7765454B2 (en) 2005-05-24 2010-07-27 Sgi International, Inc. Fault tolerant memory system
US7283395B2 (en) 2005-06-24 2007-10-16 Infineon Technologies Flash Gmbh & Co. Kg Memory device and method for operating the memory device
US8171367B2 (en) 2005-06-27 2012-05-01 Thomson Licensing Stopping criteria in iterative decoders
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
KR20080054412A (ko) 2005-09-27 2008-06-17 엔엑스피 비 브이 에러 검출/보정 회로 및 방법과, 전자 메모리 소자 또는메모리 모듈
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
KR100715147B1 (ko) 2005-10-06 2007-05-10 삼성전자주식회사 전류소모를 감소시키는 내부전원전압 발생회로를 가지는멀티칩 반도체 메모리 장치
US20070083697A1 (en) 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
US8223553B2 (en) 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
US7743363B2 (en) 2005-10-13 2010-06-22 Microsoft Corporation Extensible meta-data
US7954037B2 (en) 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
US8006161B2 (en) 2005-10-26 2011-08-23 Samsung Electronics Co., Ltd Apparatus and method for receiving signal in a communication system using a low density parity check code
KR100966043B1 (ko) 2005-10-31 2010-06-25 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 송수신 장치 및 방법
US7500062B2 (en) 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
WO2007058617A1 (en) 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US8813052B2 (en) 2005-12-07 2014-08-19 Microsoft Corporation Cache metadata for implementing bounded transactional memory
US7562283B2 (en) 2005-12-27 2009-07-14 D.S.P. Group Ltd. Systems and methods for error correction using binary coded hexidecimal or hamming decoding
US7546515B2 (en) 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7349264B2 (en) 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US7742339B2 (en) 2006-01-10 2010-06-22 Saifun Semiconductors Ltd. Rd algorithm improvement for NROM technology
US8020060B2 (en) 2006-01-18 2011-09-13 Sandisk Il Ltd Method of arranging data in a multi-level cell memory device
KR100725410B1 (ko) 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
US20070234143A1 (en) 2006-01-25 2007-10-04 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices
JP4859471B2 (ja) 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US7546478B2 (en) 2006-02-10 2009-06-09 International Business Machines Corporation Apparatus and method to provide power to a plurality of data storage devices disposed in a data storage system
US7870326B2 (en) 2006-07-28 2011-01-11 Samsung Electronics Co., Ltd. Multiprocessor system and method thereof
US7590473B2 (en) 2006-02-16 2009-09-15 Intel Corporation Thermal management using an on-die thermal sensor
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
US20070245061A1 (en) 2006-04-13 2007-10-18 Intel Corporation Multiplexing a parallel bus interface and a flash memory interface
US7685494B1 (en) 2006-05-08 2010-03-23 Marvell International, Ltd. Error correction coding for varying signal-to-noise ratio channels
US8000134B2 (en) * 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7707481B2 (en) 2006-05-16 2010-04-27 Pitney Bowes Inc. System and method for efficient uncorrectable error detection in flash memory
US20070300130A1 (en) 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7701764B2 (en) 2006-05-17 2010-04-20 Micron Technology, Inc. Apparatus and method for reduced peak power consumption during common operation of multi-NAND flash memory devices
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
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
WO2008003094A2 (en) 2006-06-29 2008-01-03 Digital Fountain, Inc. Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
US7403438B2 (en) 2006-07-12 2008-07-22 Infineon Technologies Flash Gmbh & Co. Kg Memory array architecture and method for high-speed distribution measurements
JP2008047273A (ja) 2006-07-20 2008-02-28 Toshiba Corp 半導体記憶装置およびその制御方法
US7831895B2 (en) 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
TW200813724A (en) 2006-07-28 2008-03-16 Samsung Electronics Co Ltd Multipath accessible semiconductor memory device with host interface between processors
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US7566987B2 (en) 2006-09-14 2009-07-28 Lutron Electronics Co., Inc. Method of powering up a plurality of loads in sequence
KR100843133B1 (ko) 2006-09-20 2008-07-02 삼성전자주식회사 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
TW200816651A (en) 2006-09-25 2008-04-01 Sunplus Technology Co Ltd Decoding method and system of real-time wireless channel estimation
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
CN100596029C (zh) 2006-10-20 2010-03-24 北京泰美世纪科技有限公司 Ldpc码校验矩阵构造方法及利用该方法的编码解码装置
JP2008117195A (ja) 2006-11-06 2008-05-22 Hitachi Ltd 半導体記憶装置
TWI307100B (en) 2006-11-07 2009-03-01 Macronix Int Co Ltd Memory and method for reading error checking thereof
US7508703B2 (en) 2006-11-13 2009-03-24 Sandisk Corporation Non-volatile memory with boost structures
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
KR20090087119A (ko) 2006-12-06 2009-08-14 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 빈 데이터 토큰 지시어를 사용한 저장 장치 내의 데이터 관리 장치, 시스템 및 방법
KR100808664B1 (ko) 2006-12-08 2008-03-07 한국전자통신연구원 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
KR100881669B1 (ko) 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
WO2008075292A2 (en) 2006-12-18 2008-06-26 Nxp B.V. Power-on temperature sensor/spd detect
US7620781B2 (en) 2006-12-19 2009-11-17 Intel Corporation Efficient Bloom filter
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US7603490B2 (en) 2007-01-10 2009-10-13 International Business Machines Corporation Barrier and interrupt mechanism for high latency and out of order DMA device
KR100855587B1 (ko) 2007-01-17 2008-09-01 삼성전자주식회사 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7913022B1 (en) 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
KR100918707B1 (ko) 2007-03-12 2009-09-23 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
CN101715595A (zh) 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
JP4897524B2 (ja) 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
KR100907218B1 (ko) 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
WO2008121553A1 (en) 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
WO2008121577A1 (en) 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US8032724B1 (en) 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US7996642B1 (en) 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
EP1988474A1 (en) 2007-05-04 2008-11-05 Axalto SA System and method of managing indexation of flash memory
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US8073648B2 (en) 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US7930547B2 (en) 2007-06-15 2011-04-19 Alcatel-Lucent Usa Inc. High accuracy bloom filter using partitioned hashing
KR100891005B1 (ko) 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
JP2009020986A (ja) 2007-07-15 2009-01-29 Hitachi Global Storage Technologies Netherlands Bv ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
US8024525B2 (en) 2007-07-25 2011-09-20 Digi-Data Corporation Storage control unit with memory cache protection via recorded log
US8724789B2 (en) 2007-08-06 2014-05-13 Yellow Pages Systems and methods to connect people for real time communications via directory assistance
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
JP4404125B2 (ja) 2007-09-12 2010-01-27 株式会社デンソー 電子制御装置及び信号監視回路
WO2009058140A1 (en) 2007-10-31 2009-05-07 Agere Systems Inc. Systematic error correction for multi-level flash memory
US7894264B2 (en) 2007-11-07 2011-02-22 Micron Technology, Inc. Controlling a memory device responsive to degradation
US7945825B2 (en) 2007-11-25 2011-05-17 Spansion Isreal, Ltd Recovery while programming non-volatile memory (NVM)
US8429492B2 (en) 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US8341335B2 (en) 2007-12-05 2012-12-25 Densbits Technologies Ltd. Flash memory apparatus with a heating system for temporarily retired memory portions
US8245101B2 (en) 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
JP4533968B2 (ja) 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置
US20090172335A1 (en) 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8159874B2 (en) 2008-01-22 2012-04-17 Micron Technology, Inc. Cell operation monitoring
US8271515B2 (en) 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
JP4617405B2 (ja) 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
US20090204823A1 (en) 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
JP2009266349A (ja) 2008-04-28 2009-11-12 Toshiba Corp 不揮発性半導体記憶装置
US8185706B2 (en) 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
KR101518199B1 (ko) 2008-05-23 2015-05-06 삼성전자주식회사 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
KR101412690B1 (ko) 2008-05-28 2014-06-27 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
JP5072723B2 (ja) 2008-06-11 2012-11-14 株式会社東芝 不揮発性半導体記憶装置
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
KR101413137B1 (ko) 2008-07-04 2014-07-01 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US8037380B2 (en) 2008-07-08 2011-10-11 International Business Machines Corporation Verifying data integrity of a non-volatile memory system during data caching process
US8325554B2 (en) 2008-07-10 2012-12-04 Sanmina-Sci Corporation Battery-less cache memory module with integrated backup
KR101436506B1 (ko) 2008-07-23 2014-09-02 삼성전자주식회사 메모리 장치 및 메모리 데이터 프로그래밍 방법
US8130552B2 (en) 2008-09-11 2012-03-06 Sandisk Technologies Inc. Multi-pass programming for memory with reduced data storage requirement
US8429514B1 (en) 2008-09-24 2013-04-23 Network Appliance, Inc. Dynamic load balancing of distributed parity in a RAID array
KR101484556B1 (ko) 2008-10-28 2015-01-20 삼성전자주식회사 독출 보상 회로
US8023334B2 (en) 2008-10-31 2011-09-20 Micron Technology, Inc. Program window adjust for memory cell signal line delay
US8214599B2 (en) 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters
KR101516577B1 (ko) 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
US9063874B2 (en) 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
KR20100058166A (ko) 2008-11-24 2010-06-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
KR101555022B1 (ko) 2008-12-02 2015-09-23 삼성전자주식회사 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법
US8209466B2 (en) 2008-12-16 2012-06-26 Intel Corporation Methods and systems to allocate addresses in a high-endurance/low-endurance hybrid flash memory
US9128699B2 (en) 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
KR101535225B1 (ko) 2009-01-06 2015-07-09 삼성전자주식회사 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
US8645749B2 (en) 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR20100090439A (ko) 2009-02-06 2010-08-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 독출 방법 및 이를 구현하는 불휘발성 메모리 장치
US7830732B2 (en) 2009-02-11 2010-11-09 Stec, Inc. Staged-backup flash backed dram module
KR20100093885A (ko) 2009-02-17 2010-08-26 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8042011B2 (en) 2009-04-28 2011-10-18 Synopsys, Inc. Runtime programmable BIST for testing a multi-port memory device
US20100281207A1 (en) 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
KR101575248B1 (ko) 2009-04-30 2015-12-07 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
US8463820B2 (en) 2009-05-26 2013-06-11 Intel Corporation System and method for memory bandwidth friendly sorting on multi-core architectures
US8180763B2 (en) 2009-05-29 2012-05-15 Microsoft Corporation Cache-friendly B-tree accelerator
US8885434B2 (en) 2009-06-17 2014-11-11 Stmicroelectronics International N.V. Retention of data during stand-by mode
US8479032B2 (en) 2009-06-26 2013-07-02 Seagate Technology Llc Systems, methods and devices for regulation or isolation of backup power in memory devices
US8627117B2 (en) 2009-06-26 2014-01-07 Seagate Technology Llc Device with power control feature involving backup power reservoir circuit
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US8880835B2 (en) 2009-07-07 2014-11-04 International Business Machines Corporation Adjusting location of tiered storage residence based on usage patterns
US8516219B2 (en) 2009-07-24 2013-08-20 Apple Inc. Index cache tree
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US20120117317A1 (en) 2009-08-20 2012-05-10 Rambus Inc. Atomic memory device
US8464106B2 (en) 2009-08-24 2013-06-11 Ocz Technology Group, Inc. Computer system with backup function and method therefor
US8077515B2 (en) * 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
KR20120059506A (ko) 2009-08-25 2012-06-08 샌디스크 아이엘 엘티디 플래시 저장 디바이스로의 데이터 복원
KR101689420B1 (ko) 2009-09-09 2016-12-23 샌디스크 테크놀로지스 엘엘씨 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법
US8478725B2 (en) 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
WO2011036228A1 (en) 2009-09-23 2011-03-31 Conor Maurice Ryan A flash memory device and control method
US8479061B2 (en) 2009-09-24 2013-07-02 AGIGA Tech Solid state memory cartridge with wear indication
EP2482194B1 (en) 2009-09-25 2013-12-25 Fujitsu Limited Memory system and memory system control method
US8171257B2 (en) 2009-09-25 2012-05-01 International Business Machines Corporation Determining an end of valid log in a log of write records using a next pointer and a far ahead pointer
JP5197544B2 (ja) 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
US8312349B2 (en) 2009-10-27 2012-11-13 Micron Technology, Inc. Error detection/correction based memory management
US8423866B2 (en) 2009-10-28 2013-04-16 SanDisk Technologies, Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
CN101699406B (zh) 2009-11-12 2011-12-14 威盛电子股份有限公司 数据储存系统与方法
US8335123B2 (en) 2009-11-20 2012-12-18 Sandisk Technologies Inc. Power management of memory systems
US8130553B2 (en) 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
FR2953666B1 (fr) 2009-12-09 2012-07-13 Commissariat Energie Atomique Procede de codage ldpc a redondance incrementale
US8250380B2 (en) 2009-12-17 2012-08-21 Hitachi Global Storage Technologies Netherlands B.V. Implementing secure erase for solid state drives
US8380915B2 (en) 2010-01-27 2013-02-19 Fusion-Io, Inc. Apparatus, system, and method for managing solid-state storage media
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
JP5788183B2 (ja) 2010-02-17 2015-09-30 三星電子株式会社Samsung Electronics Co.,Ltd. 不揮発性メモリ装置、それの動作方法、そしてそれを含むメモリシステム
US8213255B2 (en) 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US8355280B2 (en) 2010-03-09 2013-01-15 Samsung Electronics Co., Ltd. Data storage system having multi-bit memory device and operating method thereof
US8458417B2 (en) 2010-03-10 2013-06-04 Seagate Technology Llc Garbage collection in a storage device
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8164967B2 (en) 2010-03-24 2012-04-24 Apple Inc. Systems and methods for refreshing non-volatile memory
US9183134B2 (en) 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
JP2011233114A (ja) 2010-04-30 2011-11-17 Toshiba Corp メモリシステム
US8321481B2 (en) 2010-05-13 2012-11-27 Assa Abloy Ab Method for incremental anti-tear garbage collection
US20110283119A1 (en) 2010-05-13 2011-11-17 GCCA Inc. System and Method for Providing Energy Efficient Cloud Computing
EP2577830A2 (en) 2010-06-01 2013-04-10 Koninklijke Philips Electronics N.V. System and method for sequential application of power to electrical loads
EP2577470A4 (en) 2010-06-04 2013-12-25 Sandisk Entpr Ip Llc CACHE ADMINISTRATION AND ACCELERATION IN STORAGE MEDIA
WO2012001917A1 (ja) 2010-06-29 2012-01-05 パナソニック株式会社 不揮発性記憶システム、メモリシステム用の電源回路、フラッシュメモリ、フラッシュメモリコントローラ、および不揮発性半導体記憶装置
US20120011393A1 (en) 2010-07-06 2012-01-12 Roberts Richard B Bios recovery
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
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
KR101131560B1 (ko) 2010-07-15 2012-04-04 주식회사 하이닉스반도체 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
US20120023144A1 (en) 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
US8503238B1 (en) 2010-07-21 2013-08-06 Sk Hynix Memory Solutions Inc. Error recovery for flash memory
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
CN102385902A (zh) 2010-09-01 2012-03-21 建兴电子科技股份有限公司 固态储存装置及其数据控制方法
JP2012058860A (ja) 2010-09-06 2012-03-22 Toshiba Corp メモリシステム
US8417878B2 (en) 2010-09-20 2013-04-09 Seagate Technology Llc Selection of units for garbage collection in flash memory
US8738846B2 (en) 2010-10-15 2014-05-27 Arkologic Limited File system-aware solid-state storage management system
US20120275466A1 (en) 2010-10-21 2012-11-01 Texas Instruments Incorporated System and method for classifying packets
US20140136927A1 (en) 2010-10-27 2014-05-15 Lsi Corporation Adaptive ecc techniques for flash memory based data storage
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8909957B2 (en) 2010-11-04 2014-12-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic voltage adjustment to computer system memory
KR101774496B1 (ko) 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
KR20120064462A (ko) 2010-12-09 2012-06-19 삼성전자주식회사 메모리 컨트롤러, 이의 오류정정 방법, 및 이를 포함하는 메모리 시스템
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US9038066B2 (en) 2010-12-22 2015-05-19 Vmware, Inc. In-place snapshots of a virtual disk configured with sparse extent
TWI446345B (zh) 2010-12-31 2014-07-21 Silicon Motion Inc 用來進行區塊管理之方法以及記憶裝置及控制器
JP2012151676A (ja) 2011-01-19 2012-08-09 Jvc Kenwood Corp 復号装置および復号方法
US8364888B2 (en) 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
US9251087B2 (en) 2011-02-11 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for virtual memory management
US8966319B2 (en) 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US8909888B2 (en) 2011-04-29 2014-12-09 Seagate Technology Llc Secure erasure of data from a non-volatile memory
US8713380B2 (en) 2011-05-03 2014-04-29 SanDisk Technologies, Inc. Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
US8745318B2 (en) 2011-06-28 2014-06-03 Seagate Technology Llc Parameter tracking for memory devices
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US9378138B2 (en) 2011-06-29 2016-06-28 International Business Machines Corporation Conservative garbage collection and access protection
US8645773B2 (en) 2011-06-30 2014-02-04 Seagate Technology Llc Estimating temporal degradation of non-volatile solid-state memory
US20130024735A1 (en) 2011-07-19 2013-01-24 Ocz Technology Group Inc. Solid-state memory-based storage method and device with low error rate
US8566667B2 (en) 2011-07-29 2013-10-22 Stec, Inc. Low density parity check code decoding system and method
US8692561B2 (en) 2011-08-11 2014-04-08 International Business Machines Corporation Implementing chip to chip calibration within a TSV stack
US20130047045A1 (en) 2011-08-19 2013-02-21 Stec, Inc. Error indicator from ecc decoder
US9047210B2 (en) 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
CN103946814B (zh) 2011-09-30 2017-06-06 英特尔公司 计算机系统中的非易失性随机存取存储器的自主初始化
US8516019B2 (en) 2011-10-03 2013-08-20 Oracle America, Inc. Time-based object aging for generational garbage collectors
US8825721B2 (en) 2011-10-03 2014-09-02 Oracle International Corporation Time-based object aging for generational garbage collectors
US8949517B2 (en) 2011-10-05 2015-02-03 Lsi Corporation Self-journaling and hierarchical consistency for non-volatile storage
US8711619B2 (en) 2011-10-18 2014-04-29 Seagate Technology Llc Categorizing bit errors of solid-state, non-volatile memory
US10359949B2 (en) 2011-10-31 2019-07-23 Apple Inc. Systems and methods for obtaining and using nonvolatile memory health information
US8683297B2 (en) 2011-11-02 2014-03-25 Sandisk Technologies Inc. Systems and methods of generating a replacement default read threshold
US20140359381A1 (en) 2011-11-02 2014-12-04 The University Of Tokyo Memory controller and data storage device
US9053809B2 (en) 2011-11-09 2015-06-09 Apple Inc. Data protection from write failures in nonvolatile memory
US8456919B1 (en) 2011-11-10 2013-06-04 Sandisk Technologies Inc. Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder
US8954822B2 (en) * 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US8830746B2 (en) 2011-12-28 2014-09-09 Apple Inc. Optimized threshold search in analog memory cells using separator pages of the same type as read pages
JP2013142947A (ja) 2012-01-10 2013-07-22 Sony Corp 記憶制御装置、記憶装置および記憶制御装置の制御方法
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
WO2013112332A1 (en) 2012-01-24 2013-08-01 Apple Inc. Enhanced programming and erasure schemes for analog memory cells
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9208871B2 (en) 2012-01-30 2015-12-08 HGST Netherlands B.V. Implementing enhanced data read for multi-level cell (MLC) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding
US8964482B2 (en) 2012-01-30 2015-02-24 Freescale Semiconductor, Inc. Dynamic healing of non-volatile memory cells
US8832050B2 (en) 2012-03-09 2014-09-09 Hewlett-Packard Development Company, L.P. Validation of distributed balanced trees
US8817569B2 (en) 2012-03-19 2014-08-26 Sandisk Technologies Inc. Immunity against temporary and short power drops in non-volatile memory
US20130290611A1 (en) 2012-03-23 2013-10-31 Violin Memory Inc. Power management in a flash memory
US9311501B2 (en) 2012-03-26 2016-04-12 International Business Machines Corporation Using different secure erase algorithms to erase chunks from a file associated with different security levels
US8923066B1 (en) 2012-04-09 2014-12-30 Sk Hynix Memory Solutions Inc. Storage of read thresholds for NAND flash storage using linear approximation
US8990477B2 (en) 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
US20130297613A1 (en) 2012-05-04 2013-11-07 Monmouth University Indexing based on key ranges
US20130343131A1 (en) 2012-06-26 2013-12-26 Lsi Corporation Fast tracking for flash channels
US8634267B2 (en) 2012-05-14 2014-01-21 Sandisk Technologies Inc. Flash memory chip power management for data reliability and methods thereof
US20130346672A1 (en) 2012-06-22 2013-12-26 Microsoft Corporation Multi-Tiered Cache with Storage Medium Awareness
KR101997079B1 (ko) 2012-07-26 2019-07-08 삼성전자주식회사 가변 저항 메모리를 포함하는 저장 장치 및 그것의 동작 방법
KR20140028481A (ko) 2012-08-29 2014-03-10 에스케이하이닉스 주식회사 쓰기 전류를 측정할 수 있는 반도체 메모리 장치 및 쓰기 전류 측정 방법
US9329986B2 (en) 2012-09-10 2016-05-03 Sandisk Technologies Inc. Peak current management in multi-die non-volatile memory devices
US8938656B2 (en) 2012-09-14 2015-01-20 Sandisk Technologies Inc. Data storage device with intermediate ECC stage
US9128690B2 (en) 2012-09-24 2015-09-08 Texas Instruments Incorporated Bus pin reduction and power management
US9104328B2 (en) 2012-10-31 2015-08-11 Hitachi, Ltd. Storage apparatus and method for controlling storage apparatus
US8634248B1 (en) 2012-11-09 2014-01-21 Sandisk Technologies Inc. On-device data analytics using NAND flash based intelligent memory
US8817541B2 (en) 2012-11-09 2014-08-26 Sandisk Technologies Inc. Data search using bloom filters and NAND based content addressable memory
US8930778B2 (en) 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination
US8949544B2 (en) 2012-11-19 2015-02-03 Advanced Micro Devices, Inc. Bypassing a cache when handling memory requests
US9135185B2 (en) 2012-12-23 2015-09-15 Advanced Micro Devices, Inc. Die-stacked memory device providing data translation
US8869008B2 (en) 2013-01-17 2014-10-21 Apple Inc. Adaptation of analog memory cell read thresholds using partial ECC syndromes
KR20140100330A (ko) 2013-02-06 2014-08-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US9383795B2 (en) 2013-03-10 2016-07-05 Seagate Technololgy Llc Storage device power failure infrastructure
US9042181B2 (en) 2013-03-15 2015-05-26 SanDisk Technologies, Inc. Periodic erase operation for a non-volatile medium
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9378830B2 (en) 2013-07-16 2016-06-28 Seagate Technology Llc Partial reprogramming of solid-state non-volatile memory cells
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9531038B2 (en) 2013-07-31 2016-12-27 Dell Products, Lp System and method of cell block voltage analytics to improve balancing effectiveness and identify self-discharge rate
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080056005A1 (en) 2006-08-30 2008-03-06 Micron Technology, Inc. Non-volatile memory cell read failure reduction
US20100199138A1 (en) 2009-02-02 2010-08-05 Jun Rye Rho Nonvolatile memory device and method of operating the same
US20110179249A1 (en) 2010-01-15 2011-07-21 Silicon Motion, Inc. Data Storage Device and Method for Handling Data Read Out from Memory

Also Published As

Publication number Publication date
WO2014144864A1 (en) 2014-09-18
CN105264496B (zh) 2018-06-22
KR20160009527A (ko) 2016-01-26
CN105264496A (zh) 2016-01-20
US9367246B2 (en) 2016-06-14
US20140281044A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
US11024396B2 (en) Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory
US20200042223A1 (en) System and method for facilitating a high-density storage device with improved performance and endurance
US9135112B2 (en) Policy for read operations addressing on-the-fly decoding failure in non-volatile memory
US9483347B2 (en) Soft-decision compensation for flash channel variation
TWI612525B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
KR101979734B1 (ko) 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
KR101617641B1 (ko) 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법
US9384126B1 (en) Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US20150113203A1 (en) Device and Method for Managing Die Groups
US9768808B2 (en) Method for modifying device-specific variable error correction settings
US9870830B1 (en) Optimal multilevel sensing for reading data from a storage medium
US10878920B2 (en) Memory controller and memory system having the same
US20160299812A1 (en) Device-Specific Variable Error Correction
US20130305008A1 (en) Memory operation timing control method and memory system using the same
US11184033B2 (en) Data storage device
US20160299844A1 (en) Mapping Logical Groups of Data to Physical Locations In Memory
US20170091029A1 (en) Data processing device and operating method thereof
TW201721422A (zh) 資料儲存裝置及其操作方法
US10911068B2 (en) Error correction circuit and method of operating the same
US11373709B2 (en) Memory system for performing a read operation and an operating method thereof
US10741261B1 (en) Method and system for improving performance of a storage device using asynchronous independent plane read functionality
US9009576B1 (en) Adaptive LLR based on syndrome weight
US11082068B2 (en) Error correction circuit, memory controller having error correction circuit, and memory system having memory controller
KR101982381B1 (ko) 소프트 정보에 대한 데이터 전송의 수행 최적화
CN117437957A (zh) 存储器系统、存储器装置和操作存储器装置的方法

Legal Events

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