KR101298827B1 - 반도체 디스크 및 시스템 - Google Patents
반도체 디스크 및 시스템 Download PDFInfo
- Publication number
- KR101298827B1 KR101298827B1 KR1020117015123A KR20117015123A KR101298827B1 KR 101298827 B1 KR101298827 B1 KR 101298827B1 KR 1020117015123 A KR1020117015123 A KR 1020117015123A KR 20117015123 A KR20117015123 A KR 20117015123A KR 101298827 B1 KR101298827 B1 KR 101298827B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- memory
- parity
- memory dies
- dies
- Prior art date
Links
- 238000012937 correction Methods 0.000 title claims abstract description 15
- 239000007787 solid Substances 0.000 title claims abstract description 5
- 238000000034 method Methods 0.000 claims description 23
- 239000004065 semiconductor Substances 0.000 claims description 12
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001459 lithography Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/60—Solid state media
- G11B2220/61—Solid state media wherein solid state memory is used for storing A/V content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
몇몇 실시예에서, 반도체 디스크(SSD:solid state disk)는 비휘발성 메모리 및 제어기를 포함한다. 상기 제어기는 ECC(Error Correction Code)를 상기 비휘발성 메모리 상에 저장된 데이터에 대해서 수행하며 상기 ECC가 상기 데이터를 보정할 수 없다면 상기 데이터에 대해서 패리티 연산(parity operation)을 수행한다. 다른 실시예들도 역시 기술되고 청구된다.
Description
본 발명은 전반적으로 반도체 대용량 저장 매체(solid state mass storage product)에 관한 것이다.
SSD(Solid State Disk)는 움직이는 부분을 전혀 포함하지 않는 고성능 저장 디바이스이다. SSD는 통상적인 회전형 자기 매체를 갖는 통상적인 하드 디스크 드라이브보다 매우 빠르며 통상적으로 데이터 저장을 관리하기 위해서 제어기(controller)를 포함한다. 제어기는 데이터 저장 및 액세스와 더불어 SSD와 호스트 디바이스 간의 통신과 같은 SSD의 동작들을 관리한다. 또한, 제어기는 SSD 상에 기록된 데이터의 무결성을 보장하기 위해서 ECC(Error Correction Code)을 수행한다. ECC는 SSD와 호스트 디바이스 간에 통신된 데이터에서의 에러들을 식별하고 보정한다. 그러나, 저장 매체의 몇몇 고장 메카니즘들은 ECC 엔진의 보정 능력 범위 밖에 있으며, 이로써 데이터가 복구될 수 없게 되거나 데이터가 손실될 수 있다. 가령, 치명적인 다이 손상이 있을 때가 그 경우이다.
2006년 3월 31일자에 출원된 미국 특허 출원 제11/396,262호 "Improving Reliability of Write Operations to a Non-Volatile Memory"는 마지막 프로그램 동작이 성공할 때까지 소거 블록에 기록된 모든 데이터의 복사본을 보관함으로써 프로그램 고장을 처리하고 있다. 이 미국 특허 출원은 ECC 실패 문제 또는 다이 손상 문제를 다루기보다는 프로그램 고장 문제를 다루고 있다. 따라서, ECC 실패 문제 및/또는 다이 손상 문제를 다룰 필요가 있다.
본 발명은 본 발명의 몇몇 실시예들에 대한 다음의 상세한 설명 부분을 첨부된 도면을 참조하여서 독해하면 더 완벽하게 이해될 것이며, 이러한 본 발명의 실시예들은 본 발명을 기술될 특정 실시예들로만 한정하는 것이 아니며, 오직 발명을 설명하고 이해시키기 위해서 제공된 것이다.
도 1은 본 발명의 몇몇 실시예들에 따른 시스템을 도시하고 있다.
도 2는 본 발명의 몇몇 실시예들에 따른 흐름을 도시하고 있다.
도 1은 본 발명의 몇몇 실시예들에 따른 시스템을 도시하고 있다.
도 2는 본 발명의 몇몇 실시예들에 따른 흐름을 도시하고 있다.
본 발명의 몇몇 실시예들은 SSD에서의 개선된 에러 보정에 관한 것이다.
몇몇 실시예들에서, SSD는 비휘발성 메모리 및 제어기를 포함한다. 이 제어기는 ECC(에러 보정 코드)를 비휘발성 메모리 상에 저장된 데이터에 대해서 수행하며 ECC가 데이터를 보정할 수 없다면 이 데이터에 대해서 패리티 연산(parity operation)을 수행한다.
몇몇 실시예들에서, 시스템은 호스트 및 SSD를 포함한다. 이 SSD는 비휘발성 메모리 및 제어기를 포함한다. 이 제어기는 ECC(에러 보정 코드)를 비휘발성 메모리 상에 저장된 데이터에 대해서 수행하며 ECC가 데이터를 보정할 수 없다면 이 데이터에 대해서 패리티 연산(parity operation)을 수행한다.
몇몇 실시예들에서, ECC가 SSD의 비휘발성 메모리 상에 저장된 데이터에 대해서 수행된다. ECC가 이 데이터를 보정할 수 없다면 이 데이터에 대해서 패리티 연산(parity operation)이 수행된다.
몇몇 실시예들에서, XOR(exclusive OR) ECC 기술이 사용되어서 주 ECC 시스템에 의해서 보정되지 않는 에러, 구성 요소 레벨 고장(failure) 및/또는 프로그래밍 고장(가령, NAND 프로그래밍 고장)으로부터 SSD를 보호한다. 가령, 몇몇 실시예에서, 대용량 저장 환경에서 사용되는 바와 유사한 패리티 기술들(가령, RAID(Redundant Arrays of Independent Disks) 기술)이 SSD의 비휘발성 메모리 환경에서 구현될 수 있다. 몇몇 실시예들에서, 호스트로부터의 기록 데이터는 XOR 패리티 생성기를 통과하며 호스트 데이터와 더불어 패리티가 비휘발성 메모리 내에 기록된다. SSD의 주 ECC 엔진이 호스트 섹터를 보정할 수 없는 경우이거나 다이(가령, NAND 다이)가 고장난 경우에는, 몇몇 실시예에 따라서 제 2 레벨의 에러 보정이 구현되어서 보정된 데이터를 획득한다.
몇몇 실시예들에서, 보정 불가능한 섹터를 배제한 패리티 및 호스트 데이터가 매체로부터 판독되고 유실 데이터가 XOR 연산을 사용하여서 복구된다. 프로그램 고장이 동일한 소거 블록 내에서 후속하는 기록/프로그램에서 발생할 때에 이 소거 블록으로 이전에 기록된 데이터가 손상된 NAND 프로그램 고장과 같은 프로그램 고장의 경우에, 소거 블록에 이전에 기록되었지만 현재에는 손상된 페이지 각각이 XOR 연산을 사용하여서 한번에 하나씩 복구된다. 동일한 타입의 XOR 연산이 주 ECC 고장 또는 프로그램 고장의 경우에도 사용될 수 있다.
단일 SSD는 약 80 개의 NADN 다이를 포함하기 때문에, SSD 제품의 MTTF(mean time to failure)은 NAND 다이 손상을 견딜 수 있는 능력으로 인해서 몇몇 실시예들에서는 대략 6 배 정도 길어질 수 있으며 이로써 데이터 손실 없이 동작이 계속될 수 있다. 이러한 MTTF 개선 수준은 매우 중요하다. 또한, 몇몇 실시예들에서, 주 ECC(primary ECC) 엔진을 사용하는 경우에 비해서 데이터 신뢰성이 몇 배 정도로 증가하게 된다. 이는 판독 시에 ECC가 보정할 수 있는 에러 비트보다 많은 에러 비트가 존재하여서 ECC 보정이 실패하는 경우에도 리던던트(redundant) XOR 데이터가 사용되어서 최초의 데이터를 재구성할 수 있기 때문이다. 이와 마찬가지로, 기록 시에도, 프로그램 고장이 발생하여서 동일한 소거 블록 상의 다른 데이터가 손상되는 경우에도, 몇몇 실시예들에 따라서 이 손상된 데이터의 재구성이 수행될 수 있다. 이들은 SSD 및 NAND 메모리에 있어서 매우 큰 개선 사항이며 특히 NAND 메모리가 더 정밀한 리소그래피(lithography)에 기초하여 형성된 경우에는 더욱 그러하다.
도 1은 몇몇 실시예들에 따른 시스템(100)을 나타내고 있다. 몇몇 실시예들에서, 시스템(100)은 호스트(102) 및 SSD(104)를 포함한다. 몇몇 실시예들에서, SSD(104)는 SSD로 지칭되는 것으로 한정되지 않으며, 임의의 타입의 비휘발성 메모리를 포함할 수 있다. SSD(104)는 제어기(106) 및 메모리(108)를 포함한다. 몇몇 실시예들에서, 메모리(108)는 NAND 메모리와 같은 비휘발성 메모리이다. 몇몇 실시예들에서, 제어기(106)는 SSD(104)의 메모리(108) 상에 기록된 데이터의 무결성을 보장하기 위해서 ECC를 수행하는 ECC 엔진(도 1에서는 미도시)을 포함한다. ECC는 SSD(104)와 호스트(102) 간에 통신된 데이터에서의 에러를 식별하여서 보정한다. 그러나, 때때로, 제어기(106) 내의 ECC 엔진도 데이터의 호스트 섹터를 보정할 수 없으며, (가령, SSD(104)의 메모리(108) 내에 포함된 NAND 다이에서의) 다이 손상은 데이터 무결성 상에 문제를 일으킬 수 있다. 따라서, 몇몇 실시예들에서, 제어기(106)는 가령 주 ECC 엔진이 호스트 섹터를 보정할 수 없거나 메모리(108) 내의 다이가 손상된 경우에 XOR 연산을 수행하기 위해서 XOR 패리티 생성기를 더 포함한다.
도 2는 몇몇 실시예에 따른 비휘발성 메모리를 도식적으로 나타내고 있다. 도 2의 비휘발성 메모리(200)는 종축에서 00 페이지 내지 127 페이지를 포함하고 횡축에서는 슬롯 00 내지 슬롯 79을 포함한다. 도 2에서 각 페이지는 예시적으로 8 개의 섹터를 포함하고 있다. 몇몇 실시예에서, 이 슬롯들은 가령 SSD 상의 80 개의 다이를 도식적으로 나타내고/내거나 칩 인에이블(chip enable) 및/또는 메모리 채널의 추출부이다. 몇몇 실시예에서, 슬롯 00 내지 슬롯 79 각각은 다른 슬롯들과 동시적으로 동작할 수 있는 엔진을 나타낸다.
도 2에 도시된 바와 같이, 호스트로부터의 콘텐츠가 메모리(가령, NAND 메모리) 내에 시간 순서대로 기록된다. 콘텐츠는 페이지 00 및 슬롯 00에서 8 개의 섹터 페이지를 채우며 이어서 다음 콘텐츠가 페이지 00의 다음 슬롯 01에 기록되며 다음 콘텐츠가 페이지 00의 다음 슬롯 02에 기록되며 그래프(200)의 상부의 페이지 00에 걸쳐서 화살표로 표시되어 있듯이, 이러한 바가 계속된다. XOR 패리티는 호스트 콘텐츠가 수신되는 때에 바로 생성된다. 호스트 콘텐츠가 마지막 슬롯을 제외하고 일 페이지에 있어서 모든 슬롯들을 채우면, 즉 슬롯 00 내지 슬롯 78을 모두 채우면, 패리티 페이지가 그 데이터 흐름 내에 삽입되어서 가령 슬롯 79에 이르게 되어서 해당 페이지에 있어서 이 마지막 슬롯을 점유한다. 슬롯 79에 기록된 패리티 페이지의 섹터 0은 본 실례에서 이 페이지에 대한 슬롯 00 내지 슬롯 78의 모든 섹터 0 콘텐츠의 XOR이며, 이와 마찬가지로, 슬롯 79에 기록된 패리티 페이지의 섹터 1은 이 페이지에 대한 슬롯 00 내지 슬롯 78의 모든 섹터 1 콘텐츠의 XOR이다. 몇몇 실시예에서, 패리티 섹터들은 호스트 콘텐츠 및 메타데이터의 XOR이지만 ECC 필드의 XOR은 아니다. 이로써, 패리티 페이지의 각 섹터는 그의 콘텐츠에 특정된 ECC를 포함한다.
도 2는 콘텐츠 및 패리티가 일 페이지의 일부에 기록되는 실례를 나타내고 있다. 4 개의 섹터들이 슬롯 01의 섹터 2 내지 섹터 5에 기록되며, 이어서, 4 개의 섹터들이 슬롯 01의 섹터 6 및 섹터 7과 슬롯 02의 섹터 1 및 섹터 2에 기록된다. 이어서, 4 개의 섹터들이 슬롯 02의 섹터 3 내지 섹터 6에 기록되고, 일 섹터가 슬롯 02의 섹터 7에 기록된다. 이어서, 8 개의 섹터가 슬롯 02의 섹터 8 및 슬롯 03의 섹터 1 내지 섹터 7에 기록된다. 8 개의 패리티 섹터들은 가령 XOR을 사용하여서 섹터마다 계산되며 이어서 슬롯 79의 8 개의 섹터들에 패리티 데이터로서 기록된다.
상술된 바와 같이 하나의 패리티 슬롯 79의 실시예에서, 슬롯 00 내지 슬롯 78로 된 임의의 페이지의 임의의 섹터에 보정 불가능한 에러가 발생하면, SSD는 에러가 발생한 부분만 제외하고 모든 페이지의 해당 섹터 번호를 판독하고 해당 패리티 섹터와 더불어 이 섹터들의 콘텐츠를 XOR하여서 유실된 콘텐츠를 복구한다. 몇몇 실시예에서, BCH(Bose-Chaudhuri-Hocquengen) 보정과 같은 ECC는 패리티를 포함하여서 각 섹터에 대해서 수행되며 보정 불가능한 상태는 그 콘텐츠를 XOR함으로써 제 2 레벨의 ECC 복구를 트리거하도록 사용된다.
상술한 바와 같은 하나의 패리티 슬롯 79의 실시예에서, 슬롯 00 내지 슬롯 78의 어레이마다의 단일 패리티 페이지는 보정 불가능한 에러 및 치명적인 다이 손상으로부터 데이터를 보호할 것이다. 몇몇 실시예에서, 하나 이상의 슬롯을 사용하는 구성 요소 손상에 대한 보호 시에는, 다른 구현예 또는 기술들이 사용될 수 있다. 가령, 2 개의 슬롯을 사용할 구성 요소 손상에 대한 보호를 위해서는, 2 개의 패리티 페이지가 슬롯 어레이마다 (가령, 슬롯 39 및 슬롯 79에) 삽입될 수 있다. 슬롯 39에서의 패리티는 슬롯 00 내지 슬롯 38을 복구하는데 사용될 수 있으며, 슬롯 79에서의 패리티는 슬롯 40 내지 슬롯 78을 복구하는데 사용될 수 있다. 따라서, 패키지 손상은 슬롯 00 내지 슬롯 39의 패리티 스트라이프에서 일 슬롯을 사용하고 슬롯 40 내지 슬롯 79의 패리티 스트라이프에서 제 2 슬롯을 사용하도록 슬롯 어레이가 조절될 수 있다. 가령, 패키지 5가 슬롯 5 및 슬롯 25 내로의 2 개의 CE에 맵핑되면, 상기 패리티 스트라이프는 2.5%의 용량을 희생하는 대가로 구성 요소 손상으로부터 데이터를 보호할 수 있다. 다이 손상(패키지 손상은 아님)이 보호될 것이라면 이 희생되는 용량은 절반으로 줄어들 수 있다.
XOR이 다수의 대용량 저장 소자 환경에서 이전에 사용되었지만, 몇몇 실시예에 따라서, 단일 저장 소자(가령, SSD)의 차원에서 치명적인 구성 요소 손상으로부터 콘텐츠를 보호하기 위한 기술이 사용될 수 있다. SSD 환경에서, 인다이렉션(indirection)이 모든 기록들이 본질적으로 순차적으로 되게 하는 경우에, 랜덤한 기록 동작에 관련하여서 어떠한 패널티(penalty)도 존재하지 않는다. 또한, 이전에 기록된 데이터의 손실을 유발하는 NAND 프로그래밍 실패와 같은 SSD에 특정된 문제들은 몇몇 실시예들에 따라서 해결될 수 있다. 몇몇 실시예들에서, 프로그램 손상은 많은 대가를 희생하지 않고서 해결될 수 있으며, 또한 다이 손상 및 ECC 실패도 다룰 수 있다.
몇몇 실시예들이 본 명세서에서 특정 방식으로 구현되게 기술되었지만, 몇몇 실시예들에서는, 이러한 특정 구현예들은 필요하지 않을 수 있다. 가령, 도 1은 ECC 연산 및 XOR 연산을 수행하기 위해서 하나의 제어기를 나타내고 있지만, 몇몇 실시예에서는 개별 제어기들이 사용되거나 전용 제어기들이 사용될 수도 있다.
몇몇 실시예들이 특정 구현예를 참조하여서 기술되었지만, 몇몇 실시예들에서는 다른 구현예도 역시 가능하다. 또한, 도면에서 도시되고/되거나 본 명세서에서 기술된 회로 요소들 또는 다른 특징부들의 순서 및/또는 배열은 도시되거나 기술된 바대로 이루어질 필요는 없다. 다른 수많은 구성이 몇몇 실시예들에 따라서 가능하다.
도면에서 도시된 각 시스템에서, 구성 요소들 각각이 서로 다르다는 것을 나타내거나 서로 유사하다는 것을 나타내기 위해서, 이들 구성 요소들은 동일한 참조 부호를 사용하거나 다른 참조 부호를 사용할 수 있다. 그러나, 일 구성 요소는 서로 다른 구현예에서 사용될 수 있도록 충분하게 융통성이 있으며 본 명세서에서 도시되고 기술된 모든 시스템들 또는 몇몇 시스템들에서 동작할 수 있다. 도면에서 도시된 다양한 요소들은 동일하거나 상이할 수 있다. 어느 것이 제 1 요소로 지칭되고 어느 것이 제 2 요소로 지칭되는지는 임의적이다.
발명의 상세한 설명 부분 및 청구 범위에서, 용어 "접속된다(connected)" 및 "결합된다(coupled)" 및 이들의 활용이 사용될 수 있다. 이러한 용어들은 서로 동의어로 사용되지 말아야 한다. 특정 실시예들에서, "접속된다"는 2 개 이상의 요소들이 서로 물리적으로 또는 전기적으로 간접적으로 접촉되는 것을 말하는데 사용될 수 있다. "결합된다"는 2 개의 이상의 요소들이 서로 물리적으로 또는 전기적으로 직접적으로 접촉되는 것을 말하는데 사용될 수 있다. 그러나, "결합된다"는 또한 2 개 이상의 요소들이 서로 직접 접촉되지는 않지만 서로 상호 동작하거나 상호 작용하는 바를 말할 수도 있다.
본 명세서에서 그리고 일반적으로 알고리즘은 소망하는 결과를 낳는 일련의 일관성이 있는 동작 또는 연산들을 말한다. 이러한 동작 또는 연산들은 물리량을 물리적으로 처리하는 것을 포함한다. 통상적으로, 반드시 그러하지는 않지만, 이러한 물리량은 저장되고, 전달되고, 결합되고, 비교되고, 이와 달리 처리될 수 있는 전기 신호 또는 자기 신호들의 형태를 취할 수 있다. 원칙적으로는 통상적인 용도의 측면에서 이러한 신호들을 비트, 값, 요소, 심볼, 문자, 항, 숫자 등으로서 지칭하는 것이 때때로 편리하다고 증명되었다. 그러나, 이러한 용어 및 이와 유사한 용어 모두는 적합한 물리량과 연관되어야 하며 단지 이러한 물리량에 적용되는 편리한 라벨일 뿐임을 주목할 필요가 있다.
몇몇 실시예들은 하나로 구현되거나 하드웨어, 펌웨어 및 소프트웨어의 조합으로서 구현될 수 있다. 또한, 몇몇 실시예들은 컴퓨팅 플랫폼에 의해서 판독 및 실행되어서 본 명세서에서 기술된 동작들을 수행할 수 있는 머신 판독 가능한 매체 상에 저장된 인스트럭션으로서 구현될 수도 있다. 이러한 머신 판독 가능한 매체는 머신(가령, 컴퓨터)에 의해서 판독될 수 있는 형태로 정보를 저장 또는 전송하는 임의의 메카니즘을 포함할 수 있다. 가령, 이 머신 판독 가능한 매체는 ROM, RAM, 자기 디스크 저장 매체, 광학적 저장 매체, 플래시 메모리 디바이스, 전기적 형태로 전달된 신호, 광학적 형태로 전달된 신호, 음향적 형태로 전달된 신호 또는 다른 형태로 전달된 신호(가령, 반송파, 적외선 신호, 디지털 신호, 신호를 송수신하는 인터페이스 등) 등을 포함할 수 있다.
일 실시예는 본 발명의 일 구현예 또는 실례이다. 본 명세서에서 "일 실시예"라는 표현은 이 실시예와 연관되어서 기술된 특징, 구조 또는 특성이 적어도 몇몇 다른 실시예에서도 포함될 수 있음을 의미한다. 그러나, 반드시 본 발명의 모든 실시예에서 포함되어야 하는 것은 아니다. 본 명세서에서 "일 실시예에서"라는 표현이 등장하면 이는 반드시 동일한 실시예들을 언제나 지칭하는 것은 아니다.
본 명세서에서 기술된 모든 구성 요소, 특징, 특성, 구조 등이 특정 실시예 또는 실시예들 내에 포함될 필요는 없다. 본 명세서에서 구성 요소, 특징, 구조 또는 특성이 "포함될 수 있다"라고 말하면, 이러한 요소, 특징, 구조 또는 특성이 반드시 해당 실시예에서 포함되어야만 하는 것은 아니다. 또한, 명사의 단수형은 해당 명사가 오직 단수 개만 존재한다는 것을 의미하지는 않는다. 명세서에서 "추가적 요소"라는 말이 등장하면, 추가적 요소가 오직 하나만 존재하는 것을 전제하지는 않는다.
흐름도 및/또는 상태도가 실시예들을 기술하기 위해서 본 명세서에서 사용되었지만, 본 발명은 이러한 상태도 또는 흐름도 또는 대응하는 기술 사항으로만 한정되는 것은 아니다. 가령, 흐름은 반드시 각 도시된 블록 또는 상태를 통과해야만 하는 것도 아니고 반드시 기술된 바와 동일한 순서로 수행될 필요도 없다.
본 발명은 본 명세서에서 열거된 특정 세부 사항들에 한정되는 것은 아니다. 본 기술 분야의 당업자에게는 본 명세서 및 도면을 참조하여서 수많은 수정 및 변경을 본 발명의 범위 내에서 고려할 수 있을 것이다. 따라서, 본 발명의 범위를 규정하는 바는 그에 대한 보정까지 포함한 다음의 청구 범위이다.
Claims (21)
- 반도체 디스크(SSD:solid state disk)로서,
복수의 메모리 다이들로 이루어진 비휘발성 메모리 - 각각의 메모리 다이는 복수의 섹터들을 포함하고, 상기 복수의 메모리 다이들의 각각에 대한 상기 복수의 섹터들의 부분 집합(subset)으로부터 복수의 페이지들이 형성됨 - 와,
제어기를 포함하며,
상기 제어기는
데이터를 상기 비휘발성 메모리(200)에 기록 - 상기 데이터는, 상기 복수의 메모리 다이들을 통해 그리고 상기 메모리 다이에 대한 섹터 단위로 시간 순서대로 페이지에 기록됨 - 하고,
상기 비휘발성 메모리에 기록된 상기 데이터에 대해 에러 보정 코드(ECC:Error Correction Code)를 생성하고,
상기 복수의 메모리 다이들 중 대응하는 섹터들에 포함된 상기 데이터에 대해 패리티 연산(parity operation)을 수행하고,
대응하는 섹터 내의 상기 복수의 메모리 다이들의 적어도 하나에 패리티 데이터를 기록하는
반도체 디스크.
- 제 1 항에 있어서,
상기 패리티 연산은 XOR(Exclusive OR) 연산을 포함하는
반도체 디스크.
- 제 1 항에 있어서,
상기 제어기는, 에러를 포함하고 상기 ECC를 이용하여 보정될 수 없는 데이터에 대해 상기 패리티 데이터로부터 대체 데이터를 생성하는
반도체 디스크.
- 제 1 항에 있어서,
상기 복수의 메모리 다이들은 동시적 작업이 가능한
반도체 디스크.
- 제 1 항에 있어서,
상기 휘발성 메모리는 복수의 NAND 다이들로 이루어진
반도체 디스크.
- 제 1 항에 있어서,
상기 복수의 메모리 다이들 중 하나 이상은 NAND 다이인
반도체 디스크.
- 제 1 항에 있어서,
상기 복수의 메모리 다이들 중 하나 이상은 패리티 정보를 위해서 예비되는(reserved)
반도체 디스크.
- 반도체 디스크 내의 에러 보정을 위한 시스템으로서,
호스트와,
반도체 디스크를 포함하며,
상기 반도체 디스크는 복수의 메모리 다이들로 이루어진 비휘발성 메모리 - 각각의 메모리 다이는 복수의 섹터들을 포함하고, 상기 복수의 메모리 다이들의 각각에 대한 상기 복수의 섹터들의 부분 집합(subset)으로부터 복수의 페이지들이 형성됨 - 와, 제어기를 포함하며, 상기 제어기는
데이터를 상기 비휘발성 메모리에 기록 - 상기 데이터는, 상기 복수의 메모리 다이들을 통해 그리고 상기 메모리 다이에 대한 섹터 단위로 시간 순서대로 페이지에 기록됨 - 하고,
상기 비휘발성 메모리에 기록된 데이터에 대해 에러 보정 코드(ECC:Error Correction Code)를 생성하고,
상기 복수의 메모리 다이들 중 대응하는 섹터들에 포함된 상기 데이터에 대해 패리티 연산(parity operation)을 수행하고,
대응하는 섹터 내의 상기 복수의 메모리 다이들의 적어도 하나에 패리티 데이터를 기록하는
시스템.
- 제 8 항에 있어서,
상기 패리티 연산은 XOR(Exclusive OR) 연산을 포함하는
시스템.
- 제 8 항에 있어서,
상기 제어기는, 에러를 포함하고 상기 ECC를 이용하여 보정될 수 없는 데이터에 대해 상기 패리티 데이터로부터 대체 데이터를 생성하는
시스템.
- 제 8 항에 있어서,
상기 복수의 메모리 다이들은 동시적 작업이 가능한
시스템.
- 제 8 항에 있어서,
상기 휘발성 메모리는 복수의 NAND 다이들로 이루어진
시스템.
- 제 8 항에 있어서,
상기 복수의 메모리 다이들 중 하나 이상은 NAND 다이인
시스템.
- 제 8 항에 있어서,
상기 복수의 메모리 다이들 중 하나 이상은 패리티 정보를 위해서 예비되는
시스템.
- 반도체 디스크 내의 에러 보정을 위한 방법으로서,
비휘발성 메모리에 데이터를 기록하는 단계 - 상기 비휘발성 메모리는 복수의 메모리 다이들을 포함하고, 각각의 메모리 다이는 복수의 섹터들을 포함하고, 상기 복수의 메모리 다이들의 각각에 대한 상기 복수의 섹터들의 부분 집합(subset)으로부터 복수의 페이지들이 형성되고, 상기 데이터는, 상기 복수의 메모리 다이들을 통해 그리고 상기 메모리 다이에 대한 섹터 단위로 시간 순서대로 페이지에 기록됨 - 와,
상기 비휘발성 메모리에 기록된 상기 데이터에 대해 에러 보정 코드(ECC: Error Correction Code)를 생성하는 단계와, 상기 복수의 메모리 다이들 중 대응하는 섹터들에 포함된 상기 데이터에 대해 패리티 연산을 수행하는 단계와,
대응하는 섹터 내의 상기 복수의 메모리 다이들의 적어도 하나에 패리티 데이터를 기록하는 단계를 포함하는
방법.
- 제 15 항에 있어서,
상기 패리티 연산은 XOR 연산을 포함하는
방법.
- 제 15 항에 있어서,
에러를 포함하고 상기 ECC를 이용하여 보정될 수 없는 데이터에 대해 상기 패리티 데이터로부터 대체 데이터를 생성하는 단계를 더 포함하는
방법.
- 제 15 항에 있어서,
상기 복수의 메모리 다이들은 동시적 작업이 가능한
방법.
- 제 15 항에 있어서,
상기 휘발성 메모리는 복수의 NAND 다이들로 이루어진
방법.
- 제 15 항에 있어서,
상기 복수의 메모리 다이들 중 하나 이상은 NAND 다이인
방법. - 제 15 항에 있어서,
상기 복수의 메모리 다이들 중 하나 이상을 패리티 정보를 위해서 예비하는 단계를 더 포함하는
방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/319,208 | 2008-12-31 | ||
US12/319,208 US8438455B2 (en) | 2008-12-31 | 2008-12-31 | Error correction in a solid state disk |
PCT/US2009/069286 WO2010078167A2 (en) | 2008-12-31 | 2009-12-22 | Improved error correction in a solid state disk |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110089452A KR20110089452A (ko) | 2011-08-08 |
KR101298827B1 true KR101298827B1 (ko) | 2013-08-23 |
Family
ID=42286406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117015123A KR101298827B1 (ko) | 2008-12-31 | 2009-12-22 | 반도체 디스크 및 시스템 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8438455B2 (ko) |
EP (1) | EP2382542B1 (ko) |
JP (1) | JP2012514274A (ko) |
KR (1) | KR101298827B1 (ko) |
CN (1) | CN102301340B (ko) |
BR (1) | BRPI0923759A2 (ko) |
TW (1) | TWI449051B (ko) |
WO (1) | WO2010078167A2 (ko) |
Families Citing this family (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103258572B (zh) | 2006-05-12 | 2016-12-07 | 苹果公司 | 存储设备中的失真估计和消除 |
WO2007132456A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
WO2008026203A2 (en) | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
US7975192B2 (en) * | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
WO2008068747A2 (en) | 2006-12-03 | 2008-06-12 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US8429493B2 (en) * | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
KR20110050404A (ko) | 2008-05-16 | 2011-05-13 | 퓨전-아이오, 인크. | 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품 |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8713330B1 (en) | 2008-10-30 | 2014-04-29 | Apple Inc. | Data scrambling in memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8438455B2 (en) | 2008-12-31 | 2013-05-07 | Intel Corporation | Error correction in a solid state disk |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
KR20100091379A (ko) * | 2009-02-10 | 2010-08-19 | 삼성전자주식회사 | 반도체 디스크 장치 및 그것의 프로그램 페일 처리 방법 |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8924601B2 (en) | 2009-04-06 | 2014-12-30 | Intel Corporation | Apparatus and method for defect revectoring in a multi-channel mass storage device |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8327224B2 (en) | 2009-04-16 | 2012-12-04 | Micron Technology, Inc. | Data recovery in a solid state storage system |
US8307258B2 (en) | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
US8281227B2 (en) | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8677203B1 (en) | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
US9069687B2 (en) * | 2010-01-29 | 2015-06-30 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Memory read-channel with selective transmission of error correction data |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8638602B1 (en) | 2010-09-10 | 2014-01-28 | Western Digital Technologies, Inc. | Background selection of voltage reference values for performing memory read operations |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
CN103348330B (zh) * | 2010-12-01 | 2017-05-24 | 希捷科技有限公司 | 采用独立硅元件的动态较高级冗余模式管理 |
JP2014507717A (ja) * | 2011-01-18 | 2014-03-27 | エルエスアイ コーポレーション | より高いレベルの冗長な情報の計算 |
US8949686B1 (en) * | 2011-02-13 | 2015-02-03 | Apple Inc. | Protection against word line failure in memory devices |
US9058288B2 (en) * | 2011-04-03 | 2015-06-16 | Apple Inc. | Redundant storage in non-volatile memory by storing redundancy information in volatile memory |
US8503237B1 (en) | 2011-05-18 | 2013-08-06 | Western Digital Technologies, Inc. | System and method for data recovery in a solid state storage device |
US9158675B2 (en) | 2012-03-16 | 2015-10-13 | Marvell World Trade Ltd. | Architecture for storage of data on NAND flash memory |
US9632866B2 (en) | 2012-09-28 | 2017-04-25 | Duke University | Systems for and methods of extending lifetime of non-volatile memory |
US9021339B2 (en) | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9424946B2 (en) | 2013-02-08 | 2016-08-23 | Seagate Technology Llc | Non-volatile buffering to enable sloppy writes and fast write verification |
KR102050896B1 (ko) * | 2013-02-19 | 2019-12-02 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것의 동작 방법 |
US9069695B2 (en) | 2013-03-14 | 2015-06-30 | Apple Inc. | Correction of block errors for a system having non-volatile memory |
JP2015018451A (ja) * | 2013-07-11 | 2015-01-29 | 株式会社東芝 | メモリコントローラ、記憶装置およびメモリ制御方法 |
US9262267B2 (en) | 2013-12-02 | 2016-02-16 | Intel Corporation | Error correction in solid state drives (SSD) |
US9015561B1 (en) * | 2014-06-11 | 2015-04-21 | Sandisk Technologies Inc. | Adaptive redundancy in three dimensional memory |
US9619326B2 (en) | 2014-12-09 | 2017-04-11 | Western Digital Technologies, Inc. | Methods and systems for implementing redundancy in memory controllers |
CN104461397A (zh) * | 2014-12-19 | 2015-03-25 | 上海新储集成电路有限公司 | 一种固态硬盘及其读写方法 |
US10275310B2 (en) | 2015-03-09 | 2019-04-30 | Western Digital Technologies, Inc. | Updating exclusive-or parity data |
US9530442B1 (en) * | 2015-09-23 | 2016-12-27 | Western Digital Technologies, Inc. | Enhanced low overhead data protection in data storage drives |
US10198313B2 (en) | 2016-03-11 | 2019-02-05 | Western Digital Technologies, Inc. | Redundancy of error correction encoded data in a storage system |
US10606775B1 (en) | 2018-12-28 | 2020-03-31 | Micron Technology, Inc. | Computing tile |
US10949101B2 (en) | 2019-02-25 | 2021-03-16 | Micron Technology, Inc. | Storage device operation orchestration |
US10983795B2 (en) | 2019-03-27 | 2021-04-20 | Micron Technology, Inc. | Extended memory operations |
US11016765B2 (en) | 2019-04-29 | 2021-05-25 | Micron Technology, Inc. | Bit string operations using a computing tile |
US10990389B2 (en) | 2019-04-29 | 2021-04-27 | Micron Technology, Inc. | Bit string operations using a computing tile |
US11176065B2 (en) | 2019-08-12 | 2021-11-16 | Micron Technology, Inc. | Extended memory interface |
US11531590B2 (en) * | 2019-09-17 | 2022-12-20 | Western Digital Technologies, Inc. | Method and system for host-assisted data recovery assurance for data center storage device architectures |
JP2021047527A (ja) | 2019-09-17 | 2021-03-25 | キオクシア株式会社 | メモリシステム |
CN110956997B (zh) * | 2019-11-08 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种固态硬盘ber的测试方法、测试装置及测试设备 |
US11144203B2 (en) | 2019-12-03 | 2021-10-12 | Micron Technology, Inc. | Selectively operable memory device |
JP7443774B2 (ja) * | 2020-01-14 | 2024-03-06 | ソニーグループ株式会社 | 符号化装置、および符号化方法、復号装置、および復号方法、並びにプログラム |
US10910048B1 (en) | 2020-01-16 | 2021-02-02 | Micron Technology, Inc. | Extended memory communication |
US11275581B2 (en) | 2020-06-19 | 2022-03-15 | Micron Technology, Inc. | Expended memory component |
US11481317B2 (en) | 2020-06-26 | 2022-10-25 | Micron Technology, Inc. | Extended memory architecture |
US11625591B2 (en) | 2020-06-26 | 2023-04-11 | Micron Technology, Inc. | Extended memory neuromorphic component |
US11455254B2 (en) * | 2020-12-10 | 2022-09-27 | Macronix International Co., Ltd. | Flash memory system and flash memory device thereof |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100604934B1 (ko) * | 2004-01-31 | 2006-07-28 | 삼성전자주식회사 | 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법 |
US20070277060A1 (en) * | 2006-05-15 | 2007-11-29 | Apple Inc. | Use of Alternative Value in Cell Detection |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623506A (en) * | 1994-01-28 | 1997-04-22 | International Business Machines Corporation | Method and structure for providing error correction code within a system having SIMMs |
US6223301B1 (en) | 1997-09-30 | 2001-04-24 | Compaq Computer Corporation | Fault tolerant memory |
US6981196B2 (en) * | 2001-07-25 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Data storage method for use in a magnetoresistive solid-state storage device |
JP4034949B2 (ja) | 2001-09-06 | 2008-01-16 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
JP2003303139A (ja) | 2002-04-09 | 2003-10-24 | Nec Corp | 冗長メモリモジュールおよびメモリコントローラ |
JP2003346432A (ja) * | 2002-05-22 | 2003-12-05 | Internatl Business Mach Corp <Ibm> | データ記憶装置およびデータ処理方法 |
US7096407B2 (en) | 2003-02-18 | 2006-08-22 | Hewlett-Packard Development Company, L.P. | Technique for implementing chipkill in a memory system |
US7234099B2 (en) * | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
KR100546348B1 (ko) | 2003-07-23 | 2006-01-26 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 데이터 저장 방법 |
US7543218B2 (en) | 2004-01-31 | 2009-06-02 | Samsung Electronics Co., Ltd. | DVD decoding method and apparatus using selective po-correction |
US7536625B2 (en) * | 2004-06-30 | 2009-05-19 | Seagate Technology Llc | Maintaining data integrity in a data storage system |
JP2006048783A (ja) | 2004-08-02 | 2006-02-16 | Renesas Technology Corp | 不揮発性メモリおよびメモリカード |
KR100621631B1 (ko) * | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
US8200887B2 (en) * | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US20070233937A1 (en) | 2006-03-31 | 2007-10-04 | Coulson Richard L | Reliability of write operations to a non-volatile memory |
KR101254185B1 (ko) | 2006-08-03 | 2013-04-18 | 삼성전자주식회사 | 엑스트라 ecc가 적용된 정보 저장 매체에 데이터를기록하거나 상기 매체로부터 데이터를 재생하는 장치 및방법 |
CN101715575A (zh) * | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | 采用数据管道管理数据的装置、系统和方法 |
KR100845529B1 (ko) * | 2007-01-03 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 |
KR100842680B1 (ko) * | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 |
JP2008287404A (ja) | 2007-05-16 | 2008-11-27 | Hitachi Ltd | 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法 |
KR100921748B1 (ko) * | 2007-06-04 | 2009-10-15 | 삼성전자주식회사 | Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법 |
US8037398B2 (en) * | 2007-07-02 | 2011-10-11 | Seagate Technology | System for precoding parity bits to meet predetermined modulation constraints |
US8209588B2 (en) * | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8261124B2 (en) * | 2007-12-21 | 2012-09-04 | Spansion Llc | System and method for optimized error correction in flash memory arrays |
KR20110050404A (ko) * | 2008-05-16 | 2011-05-13 | 퓨전-아이오, 인크. | 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품 |
US8276028B2 (en) * | 2008-05-23 | 2012-09-25 | Intel Corporation | Using error information from nearby locations to recover uncorrectable data in non-volatile memory |
WO2010000020A1 (en) | 2008-06-30 | 2010-01-07 | Cathrx Ltd | A catheter |
KR101529880B1 (ko) * | 2008-10-31 | 2015-06-19 | 삼성전자주식회사 | 에러 추정 방법 및 정정 방법 |
WO2010054410A2 (en) * | 2008-11-10 | 2010-05-14 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for predicting failures in solid-state storage |
US8438455B2 (en) | 2008-12-31 | 2013-05-07 | Intel Corporation | Error correction in a solid state disk |
US8726126B2 (en) * | 2010-03-23 | 2014-05-13 | Apple Inc. | Non-regular parity distribution detection via metadata tag |
US8533550B2 (en) * | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
-
2008
- 2008-12-31 US US12/319,208 patent/US8438455B2/en active Active
-
2009
- 2009-12-22 CN CN200980155605.5A patent/CN102301340B/zh not_active Expired - Fee Related
- 2009-12-22 EP EP09837021.6A patent/EP2382542B1/en not_active Not-in-force
- 2009-12-22 WO PCT/US2009/069286 patent/WO2010078167A2/en active Application Filing
- 2009-12-22 JP JP2011544507A patent/JP2012514274A/ja active Pending
- 2009-12-22 KR KR1020117015123A patent/KR101298827B1/ko active IP Right Grant
- 2009-12-22 BR BRPI0923759A patent/BRPI0923759A2/pt active Search and Examination
- 2009-12-24 TW TW098144758A patent/TWI449051B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100604934B1 (ko) * | 2004-01-31 | 2006-07-28 | 삼성전자주식회사 | 디지털 비디오 디스크 디코딩 장치 및 에러 보정 방법 |
US20070277060A1 (en) * | 2006-05-15 | 2007-11-29 | Apple Inc. | Use of Alternative Value in Cell Detection |
Also Published As
Publication number | Publication date |
---|---|
US8438455B2 (en) | 2013-05-07 |
CN102301340B (zh) | 2015-07-08 |
KR20110089452A (ko) | 2011-08-08 |
WO2010078167A3 (en) | 2010-09-30 |
WO2010078167A2 (en) | 2010-07-08 |
JP2012514274A (ja) | 2012-06-21 |
EP2382542A2 (en) | 2011-11-02 |
BRPI0923759A2 (pt) | 2016-01-26 |
TWI449051B (zh) | 2014-08-11 |
EP2382542A4 (en) | 2012-08-22 |
TW201030760A (en) | 2010-08-16 |
US20100169743A1 (en) | 2010-07-01 |
EP2382542B1 (en) | 2018-11-14 |
CN102301340A (zh) | 2011-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101298827B1 (ko) | 반도체 디스크 및 시스템 | |
US11941257B2 (en) | Method and apparatus for flexible RAID in SSD | |
US8977813B2 (en) | Implementing RAID in solid state memory | |
CN105009087B (zh) | 用于数据存储系统的数据可靠性方案 | |
US9158675B2 (en) | Architecture for storage of data on NAND flash memory | |
US9262261B2 (en) | Memory devices facilitating differing depths of error detection and/or error correction coverage | |
US11531590B2 (en) | Method and system for host-assisted data recovery assurance for data center storage device architectures | |
US8327224B2 (en) | Data recovery in a solid state storage system | |
US10339343B2 (en) | Storage system and method for improved generation and storage of data protection information | |
CN110597654B (zh) | 用于超快的具有奇偶校验的纠错码的系统和方法 | |
JP7249719B2 (ja) | 共通の高ランダム・ビット・エラーおよび低ランダム・ビット・エラー修正ロジック | |
KR20130044694A (ko) | 메모리 시스템 및 그 데이터 기록 재생 방법 | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
JP2013205853A (ja) | フラッシュメモリディスク装置、フラッシュメモリディスク装置におけるデータ記憶制御方法およびプログラム | |
CN113420341A (zh) | 一种数据保护方法、数据保护设备及计算机系统 | |
WO2013023564A9 (en) | Method and apparatus for flexible raid in ssd |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160727 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170804 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180730 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190729 Year of fee payment: 7 |