KR20160055937A - 비휘발성 메모리 내의 중복 정보의 관리 - Google Patents
비휘발성 메모리 내의 중복 정보의 관리 Download PDFInfo
- Publication number
- KR20160055937A KR20160055937A KR1020167010606A KR20167010606A KR20160055937A KR 20160055937 A KR20160055937 A KR 20160055937A KR 1020167010606 A KR1020167010606 A KR 1020167010606A KR 20167010606 A KR20167010606 A KR 20167010606A KR 20160055937 A KR20160055937 A KR 20160055937A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual
- parity
- memory
- dies
- memory device
- Prior art date
Links
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
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Human Computer Interaction (AREA)
Abstract
실시예들은 메모리 디바이스의 개별 메모리 다이들을 복수의 가상 다이로 조직하고, 중복 정보의 저장을 위해 메모리 디바이스의 가상 다이들 중 하나를 지정하기 위한 장치, 방법 및 시스템을 포함한다. 일 실시예에서, 메모리 제어기는 메모리 디바이스의 개별 메모리 다이들의 메모리 자원들을, 중복 정보를 저장하기 위한 중복 가상 다이 및 데이터를 저장하기 위한 복수의 데이터 가상 다이를 포함하는, 복수의 가상 다이로 조직하는 메모리 할당 로직을 포함한다. 메모리 제어기는 비휘발성 메모리 디바이스의 데이터 가상 다이들에 데이터를 기입하는 입력/출력 로직, 및 데이터에 기초하여 중복 정보를 생성하고, 중복 정보를 비휘발성 메모리 디바이스의 중복 가상 다이에 기입하는 중복 정보 로직을 더 포함할 수 있다.
Description
<관련 출원의 상호 참조>
본원은 2013년 12월 13일자로 "MANAGING REDUNDANCY INFORMATION IN A NON-VOLATILE MEMORY"라는 명칭으로 출원된 미국 출원 제14/106,571호에 대해 우선권을 주장하며, 이에 따라 그 전체가 본 명세서에 참고로 포함된다.
<분야>
본 발명의 실시예들은 일반적으로 메모리의 기술 분야에 관한 것이다. 특정 실시예들은 중복 정보를 저장하도록 전용화된 비휘발성 메모리의 일부에 관한 것이다.
본 명세서에 제공되는 배경 설명은 본 개시 내용의 상황을 일반적으로 설명하는 목적을 위한 것이다. 배경 부분에서 설명되는 정도까지의 현재 지명된 발명자들의 작업은 물론, 출원시에 달리 종래 기술로서의 자격을 얻지 못할 수 있는 설명의 양태들은 본 개시 내용에 대한 종래 기술로서 명시적으로도 암시적으로도 인정되지 않는다. 본 명세서에서 달리 지시되지 않는 한, 이 부분에서 설명되는 접근법들은 본 개시 내용의 청구항들에 대한 종래 기술이 아니며, 이 부분 내의 포함에 의해 종래 기술로 인정되지는 않는다.
반도체 드라이브들(SSD들)은 복수의 플래시 메모리 다이(예로서, NAND 플래시 메모리 다이)를 이용하여 형성된다. 일부 드라이브들에서, 메모리 다이들 중 하나는 중복 정보, 예로서 나머지 메모리 다이들의 데이터의 대응하는 블록들에 대한 실행 배타적 OR(XOR) 합계로 구성되는 패리티 데이터를 저장하는 데 사용된다. 이러한 패리티 데이터는 메모리 다이들 중 하나 상의 결함의 경우에 데이터를 복구하는 데 사용될 수 있다. 그러나, 메모리 다이 전체가 패리티 데이터의 저장을 위해 전용화되어야 한다.
실시예들이 첨부 도면들과 관련된 아래의 상세한 설명에 의해 쉽게 이해될 것이다. 이러한 설명을 용이하게 하기 위해, 동일한 참조 번호들은 동일한 구조적 요소들을 지시한다. 실시예들이 첨부 도면들의 그림들 내에 한정이 아니라 예시적으로 도시된다.
도 1은 다양한 실시예들에 따른, 메모리 제어기 및 메모리 디바이스를 포함하는 예시적인 메모리 시스템을 나타낸다.
도 2는 다양한 실시예들에 따른 예시적인 가상 다이를 나타낸다.
도 3은 다양한 실시예들에 따른, 메모리 제어기를 동작시키기 위한 예시적인 방법을 나타낸다.
도 4는 다양한 실시예들에 따른, 본 명세서에 설명되는 장치들 및 방법들을 이용하도록 구성되는 예시적인 시스템을 나타낸다.
도 1은 다양한 실시예들에 따른, 메모리 제어기 및 메모리 디바이스를 포함하는 예시적인 메모리 시스템을 나타낸다.
도 2는 다양한 실시예들에 따른 예시적인 가상 다이를 나타낸다.
도 3은 다양한 실시예들에 따른, 메모리 제어기를 동작시키기 위한 예시적인 방법을 나타낸다.
도 4는 다양한 실시예들에 따른, 본 명세서에 설명되는 장치들 및 방법들을 이용하도록 구성되는 예시적인 시스템을 나타낸다.
아래의 상세한 설명에서는, 그의 일부를 형성하고, 동일한 번호들이 전반적으로 동일한 요소들을 지시하고, 실시 가능한 실시예들을 예시적으로 도시하는 첨부 도면들이 참조된다. 본 개시 내용의 범위로부터 벗어나지 않고서, 다른 실시예들이 이용될 수 있고, 구조적 또는 논리적 변경들이 이루어질 수 있다는 것을 이해해야 한다. 따라서, 아래의 상세한 설명은 한정의 의미로 간주되지 않아야 하며, 실시예들의 범위는 첨부된 청구항들 및 그들의 균등물들에 의해 정의된다.
다양한 동작들이 청구 발명의 이해에 가장 도움이 되는 방식으로 다수의 개별 액션 또는 동작으로서 차례로 설명될 수 있다. 그러나, 설명의 순서는 이러한 동작들이 반드시 순서에 의존한다는 것을 암시하는 것으로 해석되지 않아야 한다. 구체적으로, 이러한 동작들은 설명의 순서대로 수행되지 않을 수 있다. 설명되는 동작들은 설명되는 실시예와 상이한 순서로 수행될 수 있다. 다양한 추가 동작들이 수행될 수 있고/있거나, 설명되는 동작들이 추가 실시예들에서 생략될 수 있다.
본 개시 내용의 목적을 위해, "A 및/또는 B" 및 "A 또는 B"라는 표현들은 (A), (B) 또는 (A 및 B)를 의미한다. 본 개시 내용의 목적을 위해, "A, B 및/또는 C"라는 표현은 (A), (B), (C), (A 및 B), (A 및 C), (B 및 C) 또는 (A, B 및 C)를 의미한다.
본 설명은 "일 실시예에서" 또는 "실시예들에서"라는 표현들을 사용할 수 있으며, 이들은 동일하거나 상이한 실시예들 중 하나 이상을 각각 지칭할 수 있다. 더구나, 본 개시 내용의 실시예들과 관련하여 사용되는 바와 같은 "포함하는(comprising, including)", "갖는" 등의 용어들은 동의어이다.
본 명세서에 사용될 때, "모듈"이라는 용어는 주문형 집적 회로(ASIC), 전자 회로, 하나 이상의 소프트웨어 또는 펌웨어 프로그램을 실행하는 프로세서(공유, 전용 또는 그룹) 및/또는 메모리(공유, 전용 또는 그룹), 조합 논리 회로(combinational logic circuit), 및/또는 설명되는 기능을 제공하는 다른 적절한 하드웨어 컴포넌트들을 지칭하거나 그들의 일부이거나 그들을 포함할 수 있다. 본 명세서에 사용될 때, "컴퓨터 구현 방법"은 하나 이상의 프로세서, 하나 이상의 프로세서를 갖는 컴퓨터 시스템, (하나 이상의 프로세서를 포함할 수 있는) 스마트폰과 같은 모바일 디바이스, 태블릿, 랩탑 컴퓨터, 셋톱 박스, 게이밍 콘솔 등에 의해 실행되는 임의의 방법을 지칭할 수 있다.
도 1은 다양한 실시예들에 따른 메모리 시스템(100)을 나타낸다. 일부 실시예들에서, 메모리 시스템(100)은 반도체 드라이브(SSD)를 구현할 수 있다. 메모리 시스템(100)은 메모리 제어기(102), 비휘발성 메모리 디바이스(104) 및 호스트 인터페이스(105)를 포함할 수 있다.
메모리 디바이스(104)는 임의의 적절한 형태의 비휘발성 메모리를 구현할 수 있다. 예를 들어, 일부 실시예들에서, 메모리 디바이스(104)는 NAND 플래시 메모리를 포함할 수 있다. 다른 실시예들에서, 메모리 디바이스(104)는 상변화 메모리(PCM), 삼차원 크로스 포인트 메모리 어레이, 저항성 메모리, 나노와이어 메모리, 강유전성 트랜지스터 랜덤 액세스 메모리(FeTRAM), 멤리스터 기술을 포함하는 자기 저항성 랜덤 액세스 메모리(MRAM), 스핀 전달 토크(STT)-MRAM 등과 같은 다른 타입의 메모리를 포함할 수 있다.
메모리 제어기(102)는 메모리 디바이스(104) 내에 데이터를 기입하고/하거나 메모리 디바이스(104)로부터 데이터를 판독하는 것을 제어할 수 있다. 호스트 인터페이스(105)는 호스트 디바이스(예로서, 프로세서, 도시되지 않음)와 인터페이스하여, 호스트 디바이스가 메모리 제어기(102)를 통해 메모리 디바이스(104) 내에 데이터를 기입하고/하거나 메모리 디바이스(104)로부터 데이터를 판독하는 것을 가능하게 할 수 있다. 호스트 인터페이스(105)는 SATA(Serial Advanced Technology Attachment), PCIe(Peripheral Component Interconnect express), SAS(Serial Attached SCSI) 및/또는 USB(Universal Serial Bus) 인터페이스와 같은 하나 이상의 통신 인터페이스 프로토콜을 이용하여 호스트 디바이스와 통신할 수 있다.
일부 실시예들에서, 메모리 제어기(102), 메모리 디바이스(104) 및 호스트 인터페이스(105)는 동일 패키지 내에 포함될 수 있다. 예를 들어, 메모리 제어기(102), 메모리 디바이스(104) 및 호스트 인터페이스(105)는 동일 인쇄 회로 보드 상에 배치될 수 있다. 다양한 실시예들에서, 메모리 디바이스(104)는 복수의 메모리 다이(106a-c)를 포함할 수 있다. 메모리 다이들(106a-c)은 서로 떨어진 기판들(예로서, 실리콘) 상에 형성된 메모리 자원들을 포함할 수 있다. 메모리 디바이스(104)는 임의의 적절한 수의 둘 이상의 메모리 다이(106a-c)를 포함할 수 있다.
다양한 실시예들에서, 개별 메모리 다이들(106a-c)의 메모리 자원들은 메모리 다이의 복수의 블록으로 조직될 수 있다. 일부 실시예들에서, 메모리 다이들(106a-c)은 2개 또는 4개의 평면과 같은 다수의 평면 내에 배열된 메모리 자원들(예로서, 블록들)을 갖는 다중 평면 메모리 다이들일 수 있다. 예를 들어, 직교하는 x축, y축 및 z축을 갖는 삼차원 공간에 대해, 주어진 평면의 메모리 자원들은 z축에 관해 동일한 위치를 그리고 x축 및/또는 y축에 관해 상이한 위치들을 가질 수 있다. 상이한 평면들의 메모리 자원들은 z축에 관해 상이한 위치들을 가질 수 있다. 데이터의 판독, 기입 및/또는 소거와 같은 동작들이 동일한 메모리 다이(106a-c)의 다수의 평면 상에서 독립적으로 그리고 동시에 수행될 수 있다. 다른 실시예들에서, 메모리 다이들(106a-c) 중 하나 이상은 단일 평면 메모리 다이들일 수 있다. 각각의 메모리 다이(106a-c)의 개별 블록들은 복수의 페이지를 포함할 수 있다. 일부 실시예들에서, 페이지는 메모리 제어기(102)에 의해 (예로서, 판독 및/또는 기입을 위해) 어드레싱될 수 있는 데이터의 입도에 대응할 수 있다. 페이지는 단일 비트의 데이터를 각각 저장하는 복수의 메모리 요소(예로서, 메모리 셀)를 포함할 수 있다.
다양한 실시예들에서, 메모리 제어기(102)는 도시된 바와 같이 적어도 서로 결합되는 메모리 할당 로직(108), 입력/출력 로직(110) 및 중복 정보 로직(112)을 포함할 수 있다. 메모리 할당 로직(108)은 메모리 디바이스(104)의 개별 메모리 다이들(106a-c)의 메모리 자원들을 복수의 가상 다이(114a-i)로 조직할 수 있다. 예를 들어, 메모리 할당 로직(108)은 개별 메모리 다이들(106a-c)의 메모리 자원들을 각각의 메모리 다이(106a-c)와 관련된 복수의 가상 다이(114a-i) 사이에 할당할 수 있다. "가상" 다이는, 아래에서 더 설명되는 바와 같이, 다수의 가상 다이가 동일한 물리 다이(예로서, 메모리 다이들(106a-c)) 상에 배치될 수 있더라도, 메모리 제어기(102)가 중복 정보를 관리하는 목적을 위해 상이한 가상 다이들(114a-i)을 메모리 자원들의 개별 그룹들로서 취급할 수 있다는 것을 의미한다. 다양한 실시예들에서, 메모리 할당 로직(108)은 가상 다이(114i)를 중복 정보를 저장하기 위한 중복 가상 다이로서 지정할 수 있다. 따라서, 가상 다이(114i)는 중복 가상 다이(114i)로서 지칭될 수 있다. 메모리 할당 로직(108)은 중복 가상 다이(114i) 외의 나머지 가상 다이들(예로서, 114a-h)을 데이터를 저장하기 위한 데이터 가상 다이들로서 지정할 수 있다. 따라서, 가상 다이들(114a-h)은 데이터 가상 다이들(114a-h)로서 지칭될 수 있다. 다양한 실시예들에서, 입력/출력 로직(110)은 메모리 디바이스(104) 내의 저장을 위해 (예로서, 프로세서로부터) 데이터를 수신할 수 있다. 입력/출력 로직(110)은 데이터를 데이터 가상 다이들(114a-h)에 기입할 수 있다.
다양한 실시예들에서, 중복 정보 로직(112)은 데이터 가상 다이들(114a-h)에 저장된 데이터에 기초하여 중복 정보를 생성할 수 있다. 중복 정보 로직(112)은 중복 정보를 메모리 디바이스(104)의 중복 가상 다이(114i)에 기입할 수 있다. 예를 들어, 중복 정보 로직(112)은 메모리 디바이스(104)의 복수의 스트라이프(stripe)를 정의할 수 있으며, 각각의 스트라이프는 복수의 데이터 가상 다이(114a-h) 각각의 메모리 자원들을 포함한다. 예를 들어, 각각의 스트라이프는 복수의 데이터 가상 다이(114a-h) 각각으로부터의 페이지를 포함할 수 있다. 중복 정보 로직(112)은 개별 스트라이프들에 대한 중복 정보를 생성할 수 있으며, 스트라이프에 대한 중복 정보를 중복 가상 다이(114i)의 대응하는 메모리 자원들(예로서, 대응하는 페이지)에 기입할 수 있다. 중복 정보는 메모리 자원들이 실패하는 경우에 스트라이프의 하나 이상의 메모리 자원에 저장된 데이터를 복구하는 데 사용될 수 있는 정보를 포함할 수 있다. 일부 실시예들에서, 중복 정보는 패리티 정보를 포함할 수 있다. 예를 들어, 중복 가상 다이(114i)의 주어진 메모리 자원(예로서, 페이지)에 저장된 중복 정보는 관련 스트라이프의 대응하는 메모리 자원들에 저장된 데이터의 XOR 합계를 포함할 수 있다. XOR 합계는 스트라이프의 각각의 페이지에 저장된 데이터에 대해 XOR 연산을 수행한 결과일 수 있다.
다양한 실시예들에서, 중복 정보를 저장하기 위해 메모리 다이 전체가 아니라 하나의 가상 다이(114i)를 사용하는 것은 중복 정보를 저장하기 위해 메모리 디바이스(104)의 더 적은 메모리 자원들을 사용할 수 있다. 예를 들어, 다수(N)의 가상 다이(114a-c)로 분할된 메모리 다이들(106a-c)에 대해, 메모리 디바이스(104)는 중복 정보를 저장하기 위해 하나의 메모리 다이의 1/N을 사용할 수 있다. 메모리 다이당 더 많은 수(N)의 가상 다이는 중복 데이터를 저장하기 위해 메모리 디바이스(104)의 더 적은 메모리 자원들을 사용할 수 있지만, 중복 정보를 이용하여 정정 가능한 메모리 디바이스(104)의 결함들의 크기 및/또는 타입에서 더 제한될 수도 있다. 따라서, 수(N)는 메모리 시스템(100)의 요구들 및/또는 메모리 디바이스(104)의 크기(예로서, 메모리 디바이스(104) 내의 메모리 다이들(106a-c)의 수 및/또는 각각의 메모리 다이(106a-c)의 저장 용량)에 기초하여 선택될 수 있다.
일부 실시예들에서, 개별 스트라이프들은 동일한 페이지 인덱스를 갖는 복수의 데이터 가상 다이(114a-h)의 페이지들을 포함할 수 있다. 게다가, 스트라이프에 대한 중복 정보는 동일한 페이지 인덱스를 갖는 중복 가상 다이(114i)의 페이지 내에 저장될 수 있다. 따라서, 개별 스트라이프들은 동일한 페이지 인덱스를 갖는 동일 메모리 다이(106a-c)의 상이한 블록들의 페이지들을 포함할 수 있다.
예를 들어, 도 2는 임의의 가상 다이(114a-i)를 구현할 수 있는 가상 다이(200)를 나타낸다. 가상 다이(200)는 복수의 블록(220a-c)을 포함할 수 있다. 가상 다이(200) 내에 포함된 블록들(220a-c)은 가상 다이(200)와 관련된 메모리 다이(예로서, 메모리 다이(106a-c))의 모두보다 적은 블록들의 서브세트일 수 있다.
개별 블록들(220a-c)은 복수의 페이지(222a-i)를 포함할 수 있다. 각각의 블록(220a-c)은 관련 블록 인덱스를 가질 수 있으며, 각각의 페이지(222a-i)는 관련 페이지 인덱스를 가질 수 있다. 전술한 바와 같이, 일부 실시예들에서, 중복 정보 로직(112)은 복수의 가상 메모리 다이(200) 각각으로부터의 하나의 페이지(222a-i)를 포함하는 스트라이프를 정의할 수 있다. 일부 실시예들에서, 스트라이프 내의 페이지들(222a-i)은 동일한 페이지 인덱스를 가질 수 있다. 중복 정보 로직(112)은 스트라이프의 페이지들 내에 저장된 데이터에 대한 중복 정보(예로서, XOR 합계)를 생성하고, 중복 정보를 중복 가상 다이(예로서, 중복 가상 다이(114i))의 대응하는 페이지 내에 저장할 수 있다. 중복 정보 로직(112)은 새로운 데이터가 데이터 가상 다이에 기입됨에 따라 중복 정보를 갱신할 수 있다.
다양한 실시예들에서, 가상 다이(200)는 관련 메모리 다이 내에 임의의 적절한 배열을 갖는 블록들(220a-c)을 포함할 수 있다. 예를 들어, 가상 다이(200)는 메모리 다이의 다수의 평면 상의 블록들(220a-c)(예로서, 서로 중복되는 상이한 평면들 상의 블록들)을 포함할 수 있다. 이것은 메모리 제어기(102)가 메모리 다이의 다수의 평면에 걸치는 결함들을 복구하는 것을 가능하게 할 수 있다. 이 예에서, 각각의 평면 내의 블록들(220a-c)은 상이한 가상 다이들(200) 사이에 분할될 수 있다.
대안으로서, 가상 다이(200)의 블록들(220a-c)은 모두 관련 메모리 다이의 동일 평면 내에 포함될 수 있다. 따라서, 다중 평면 메모리 다이에서, 상이한 평면들의 블록들은 상이한 가상 다이들 내에 포함될 수 있다. 일부 실시예들에서, 가상 다이(200)는 블록들의 평면에 따라서만이 아니라 각각의 평면 내에서도 분할될 수 있다. 이러한 실시예들에서, 가상 다이(200)의 블록들(220a-c)은 모두 메모리 다이의 동일 평면 내에 있을 수 있으며, 평면의 모두보다 적은 블록들의 서브세트일 수 있다.
도 1을 다시 참조하면, 다양한 실시예들에서, 입력/출력 로직(110)은 메모리 디바이스(104)로부터(예로서, 데이터 가상 다이들(114a-h)로부터) 데이터를 판독할 수 있다. 일부 예들에서, 입력/출력 로직(110)은 (예로서, 중복 정보에 기초하여) 판독 데이터에서 에러를 검출할 수 있다. 입력/출력 로직(110)은 중복 가상 다이(114i)에 저장된 관련 중복 정보에 기초하여 판독 데이터 내의 에러를 정정할 수 있다. 예를 들어, 스트라이프의 하나의 페이지에 영향을 주는 결함이 존재하는 경우, 스트라이프와 관련된 중복 정보는 영향받는 페이지에 대한 올바른 데이터를 결정하는 데 사용될 수 있다.
따라서, 메모리 제어기(102)는 메모리 다이(106a-c) 전체가 아니라 메모리 다이(106a-c)의 하나 이상의 블록에 영향을 주는 결함들로부터 복구할 수 있다. 게다가, 전술한 바와 같이, 각각의 가상 다이가 메모리 디바이스(104)의 다수의 평면(예로서, 서로 중복되는 상이한 평면들의 블록들)에 걸치는 배열하에서, 메모리 제어기(102)는 다수의 평면에 걸치는 메모리 다이들(106a-c) 중 하나 내의 결함들로부터 복구할 수 있다.
도 3은 다양한 실시예들에 따른, 메모리 제어기(예로서, 메모리 제어기(102))에 의해 수행될 수 있는 방법(300)을 나타낸다.
302에서, 방법(300)은 복수의 메모리 다이를 갖는 비휘발성 메모리 디바이스(예로서, 메모리 디바이스(104))의 개별 메모리 다이들(예로서, 메모리 다이들(106a-c))의 메모리 자원들을 복수의 가상 다이(예로서, 가상 다이들(114a-i)) 사이에 할당하는 단계를 포함할 수 있다. 예를 들어, 개별 메모리 다이의 메모리 자원들은 메모리 다이와 관련된 복수의 가상 다이 사이에 분산될 수 있다. 비휘발성 메모리 디바이스의 단일 가상 다이(예로서, 가상 다이(114i))가 중복 정보를 저장하기 위한 중복 가상 다이로서 지정될 수 있고, 중복 가상 다이 외의 비휘발성 메모리 디바이스의 복수의 가상 다이가 데이터를 저장하기 위한 데이터 가상 다이들(예로서, 데이터 가상 다이들(114a-h))로서 지정될 수 있다.
304에서, 방법(300)은 데이터 가상 다이들에 데이터를 기입하는 단계를 포함할 수 있다. 306에서, 방법(300)은 데이터에 기초하여 중복 정보를 생성하는 단계를 포함할 수 있다. 예를 들어, 중복 정보는 복수의 데이터 가상 다이 각각의 메모리 자원들(예로서, 하나 이상의 페이지)을 포함하는 스트라이프에 대해 생성될 수 있다.
308에서, 방법(300)은 비휘발성 메모리 디바이스의 중복 가상 다이에 중복 정보를 기입하는 단계를 포함할 수 있다.
도 4는 다양한 실시예들에 따른, 본 명세서에 설명되는 장치들 및/또는 방법들(메모리 시스템(100), 가상 다이(200), 방법(300))을 이용할 수 있는 예시적인 컴퓨팅 디바이스(400)를 나타낸다. 도시된 바와 같이, 컴퓨팅 디바이스(400)는 하나 이상의 프로세서(들)(404)(하나가 도시됨) 및 적어도 하나의 통신 칩(406)과 같은 다수의 컴포넌트를 포함할 수 있다. 다양한 실시예들에서, 하나 이상의 프로세서(들)(404) 각각은 하나 이상의 프로세서 코어를 포함할 수 있다. 다양한 실시예들에서, 적어도 하나의 통신 칩(406)은 하나 이상의 프로세서(들)(404)에 물리적으로 그리고 전기적으로 결합될 수 있다. 추가 구현들에서, 통신 칩(406)은 하나 이상의 프로세서(들)(404)의 일부일 수 있다. 다양한 실시예들에서, 컴퓨팅 디바이스(400)는 인쇄 회로 보드(PCB)(402)를 포함할 수 있다. 이러한 실시예들에서, 하나 이상의 프로세서(들)(404) 및 통신 칩(406)은 그 위에 배치될 수 있다. 대안 실시예들에서, 다양한 컴포넌트들은 PCB(402)의 이용 없이 결합될 수 있다.
컴퓨팅 디바이스(400)는 그의 응용들에 따라 PCB(402)에 물리적으로 그리고 전기적으로 결합되거나 결합되지 않을 수 있는 다른 컴포넌트들을 포함할 수 있다. 이러한 다른 컴포넌트들은 메모리 제어기 허브(405), 휘발성 메모리(예로서, DRAM(408)), 판독 전용 메모리(410)(ROM), 플래시 메모리(412) 및 저장 디바이스(411)(예로서, SSD 또는 하드 디스크 드라이브(HDD))와 같은 비휘발성 메모리, I/O 제어기(414), 디지털 신호 프로세서(도시되지 않음), 암호 프로세서(도시되지 않음), 그래픽 프로세서(416), 하나 이상의 안테나(418), 디스플레이(도시되지 않음), 터치스크린 디스플레이(420), 터치스크린 제어기(422), 배터리(424), 오디오 코덱(도시되지 않음), 비디오 코덱(도시되지 않음), 글로벌 포지셔닝 시스템(GPS) 디바이스(428), 나침반(430), 가속도계(도시되지 않음), 자이로스코프(도시되지 않음), 스피커(432), 카메라(434) 및 (하드 디스크 드라이브, 반도체 드라이브, 컴팩트 디스크(CD), 디지털 다기능 디스크(DVD)와 같은) 대용량 저장 디바이스(도시되지 않음) 등을 포함하지만 이에 한정되지 않는다. 다양한 실시예들에서, 프로세서(404)는 시스템 온 칩(SoC)을 형성하기 위해 다른 컴포넌트들과 함께 동일 다이 상에 집적될 수 있다.
다양한 실시예들에서, 플래시 메모리(412) 및/또는 저장 디바이스(411)는 본 명세서에 설명되는 메모리 시스템(100)을 구현할 수 있다. 컴퓨팅 디바이스(400)는 플래시 메모리(412)에 더하여 또는 그 대신에 저장 디바이스(411)를 포함할 수 있다. 저장 디바이스(411)가 SSD를 구현하는 실시예들과 같은 일부 실시예들에서, 저장 디바이스(411)는 플래시 메모리(412)에 더하여 또는 그 대신에 본 명세서에 설명되는 메모리 시스템(100)을 구현할 수 있다.
일부 실시예들에서, 하나 이상의 프로세서(들), 플래시 메모리(412) 및/또는 저장 디바이스(411)는 컴퓨팅 디바이스(400)가 하나 이상의 프로세서(들)(404)에 의한 프로그래밍 명령어들의 실행에 응답하여 본 명세서에 설명되는 방법들(예로서, 방법(300))의 모든 또는 선택된 양태들을 실시하는 것을 가능하게 하도록 구성되는 프로그래밍 명령어들을 저장하는 관련 펌웨어(도시되지 않음)를 포함할 수 있다. 다양한 실시예들에서, 이러한 양태들은 추가로 또는 대안으로서 하나 이상의 프로세서(들)(404), 플래시 메모리(412) 또는 저장 디바이스(411)와 별개인 하드웨어를 이용하여 구현될 수 있다.
통신 칩들(406)은 컴퓨팅 디바이스(400)로의 그리고 그로부터의 데이터의 전송을 위한 유선 및/또는 무선 통신들을 가능하게 할 수 있다. 용어 "무선" 및 그의 파생어들은 무형의 매체를 통한 변조된 전자기 복사선의 사용을 통해 데이터를 통신할 수 있는 회로, 디바이스, 시스템, 방법, 기술, 통신 채널 등을 설명하는 데 사용될 수 있다. 이러한 용어는 관련 디바이스들이 어떠한 와이어도 포함하지 않는다는 것을 암시하지 않지만, 일부 실시예들에서는 포함하지 않을 수도 있다. 통신 칩(406)은 IEEE 702.20, GPRS(General Packet Radio Service), Ev-DO(Evolution Data Optimized), HSPA+(Evolved High Speed Packet Access), HSDPA+(Evolved High Speed Downlink Packet Access), HSUPA+(Evolved High Speed Uplink Packet Access), GSM(Global System for Mobile Communications), EDGE(Enhanced Data rates for GSM Evolution), CDMA(Code Division Multiple Access), TDMA(Time Division Multiple Access), DECT(Digital Enhanced Cordless Telecommunications), 블루투스, 이들의 파생물들은 물론, 3G, 4G, 5G 이상으로 지정되는 임의의 다른 무선 프로토콜들을 포함하지만 이에 한정되지 않는 다수의 무선 표준들 또는 프로토콜들 중 임의의 것을 구현할 수 있다. 컴퓨팅 디바이스(400)는 복수의 통신 칩(406)을 포함할 수 있다. 예를 들어, 제1 통신 칩(406)은 와이파이 및 블루투스와 같은 단거리 무선 통신에 전용화될 수 있고, 제2 통신 칩(406)은 GPS, EDGE, GPRS, CDMA, WiMAX, LTE, Ev-DO 등과 같은 장거리 무선 통신에 전용화될 수 있다.
다양한 구현들에서, 컴퓨팅 디바이스(400)는 랩탑, 넷북, 노트북, 울트라북, 스마트폰, 컴퓨팅 태블릿, 개인 휴대 단말기(PDA), 울트라-모바일 PC, 이동 전화, 데스크탑 컴퓨터, 서버, 프린터, 스캐너, 모니터, 셋톱 박스, 엔터테인먼트 제어 유닛(예로서, 게이밍 콘솔 또는 자동차 엔터테인먼트 유닛), 디지털 카메라, 가전 제품, 휴대용 뮤직 플레이어, 또는 디지털 비디오 레코더일 수 있다. 추가 구현들에서, 컴퓨팅 디바이스(400)는 데이터를 처리하는 임의의 다른 전자 디바이스일 수 있다.
예들
일부 비한정적인 예들이 아래에 제공된다.
예 1은 복수의 메모리 다이를 갖는 비휘발성 메모리 디바이스의 개별 메모리 다이들의 메모리 자원들을 상기 개별 메모리 다이와 관련된 복수의 가상 다이 사이에 할당하는 메모리 할당 로직 - 상기 비휘발성 메모리 디바이스의 제1 가상 다이는 중복 정보를 저장하도록 지정되는 중복 가상 다이로서 구성되고, 상기 비휘발성 메모리 디바이스의 복수의 가상 다이는 데이터를 저장하도록 지정되는 데이터 가상 다이들로서 구성됨 -; 상기 비휘발성 메모리 디바이스의 상기 데이터 가상 다이들에 데이터를 기입하는 입력/출력 로직; 및 상기 데이터에 기초하여 중복 정보를 생성하고, 상기 중복 정보를 상기 비휘발성 메모리 디바이스의 상기 중복 가상 다이에 기입하는 중복 정보 로직을 포함하는 메모리 제어기를 포함한다.
예 2는 예 1의 메모리 제어기를 포함하고, 상기 중복 정보 로직은 상기 복수의 데이터 가상 다이 각각의 메모리 자원들을 포함하는 스트라이프에 대한 상기 중복 정보를 생성한다.
예 3은 예 2의 메모리 제어기이며, 상기 스트라이프는 상기 복수의 가상 다이 각각으로부터의 페이지를 포함한다.
예 4는 예 1의 메모리 제어기이며, 개별 가상 다이들은 각각의 가상 다이와 관련된 상기 메모리 다이의 복수의 평면으로부터의 메모리 자원들을 포함한다.
예 5는 예 1의 메모리 제어기이며, 상기 입력/출력 로직은 또한 상기 비휘발성 메모리 디바이스로부터 상기 데이터를 판독하고, 상기 중복 정보에 기초하여 상기 판독된 데이터 내의 에러를 정정한다.
예 6의 예 1의 메모리 제어기이며, 상기 메모리 할당 로직은 상기 제1 가상 다이 외의 상기 비휘발성 메모리 디바이스의 모든 가상 메모리 다이들을 데이터 가상 다이들로서 구성한다.
예 7은 예 1의 메모리 제어기이며, 상기 복수의 메모리 다이는 플래시 메모리 다이들이다.
예 8은 예 1 내지 예 7 중 어느 하나의 예의 메모리 제어기를 포함하고, 상기 비휘발성 메모리 디바이스를 더 포함하는 컴퓨팅 시스템이다.
예 9는 예 8의 컴퓨팅 시스템이며, 상기 비휘발성 메모리 디바이스 내의 저장을 위해 상기 메모리 제어기에 데이터를 제공하는 프로세서를 더 포함한다.
예 10은 메모리를 관리하기 위한 방법으로서, 복수의 메모리 다이를 갖는 비휘발성 메모리 디바이스의 개별 메모리 다이들의 메모리 자원들을 각각의 개별 메모리 다이와 관련된 복수의 가상 다이 사이에 할당하는 단계 - 상기 비휘발성 메모리 디바이스의 단일 가상 다이가 중복 정보를 저장하도록 지정되는 중복 가상 다이로서 구성되고, 상기 중복 가상 다이 외의 상기 비휘발성 메모리 디바이스의 모든 가상 다이들은 데이터를 저장하도록 지정되는 데이터 가상 다이들로서 구성됨 -; 상기 비휘발성 메모리 디바이스의 상기 데이터 가상 다이들에 데이터를 기입하는 단계; 상기 데이터에 기초하여 중복 정보를 생성하는 단계; 및 상기 중복 정보를 상기 비휘발성 메모리 디바이스의 상기 중복 가상 다이에 기입하는 단계를 포함하는 방법이다.
예 11은 예 10의 방법이며, 상기 중복 정보는 상기 복수의 데이터 가상 다이 각각의 메모리 자원들을 포함하는 스트라이프에 대해 생성된다.
예 12는 예 11의 방법이며, 상기 스트라이프는 상기 복수의 가상 다이 각각으로부터의 페이지를 포함한다.
예 13은 예 10의 방법이며, 개별 가상 다이들은 각각의 가상 다이와 관련된 상기 메모리 다이의 복수의 평면으로부터의 메모리 자원들을 포함한다.
예 14는 예 10의 방법이며, 상기 비휘발성 메모리 디바이스로부터 상기 데이터를 판독하는 단계; 및 상기 중복 정보에 기초하여 상기 판독된 데이터 내의 에러를 정정하는 단계를 더 포함한다.
예 15는 메모리를 관리하기 위한 시스템으로서, 데이터를 생성하는 프로세서; 복수의 메모리 다이를 포함하는 비휘발성 메모리 디바이스; 및 상기 프로세서 및 상기 비휘발성 메모리 디바이스에 결합되는 메모리 제어기를 포함하는 시스템이다. 상기 메모리 제어기는 상기 비휘발성 메모리 디바이스의 개별 메모리 다이들의 메모리 자원들을 각각의 개별 메모리 다이와 관련된 복수의 가상 다이 사이에 할당하는 메모리 할당 로직 - 상기 비휘발성 메모리 디바이스의 단일 가상 다이가 중복 정보를 저장하기 위한 중복 가상 다이로서 지정되고, 상기 중복 가상 다이 외의 상기 비휘발성 메모리 디바이스의 가상 다이들이 데이터를 저장하기 위한 데이터 가상 다이들로서 지정됨 -; 상기 비휘발성 메모리 디바이스의 상기 데이터 가상 다이들에 데이터를 기입하는 입력/출력 로직; 및 상기 데이터에 기초하여 중복 정보를 생성하고, 상기 중복 정보를 상기 비휘발성 메모리 디바이스의 상기 중복 가상 다이에 기입하는 중복 정보 로직을 포함한다.
예 16은 예 15의 시스템이며, 상기 중복 정보 로직은 상기 복수의 데이터 가상 다이 각각의 메모리 자원들을 포함하는 스트라이프에 대한 상기 중복 정보를 생성한다.
예 17은 예 16의 시스템이며, 상기 스트라이프는 상기 복수의 가상 다이 각각으로부터의 페이지를 포함한다.
예 18은 예 15의 시스템이며, 개별 가상 다이들은 각각의 가상 다이와 관련된 상기 메모리 다이의 복수의 평면으로부터의 메모리 자원들을 포함한다.
예 19는 예 15의 시스템이며, 상기 입력/출력 로직은 또한 상기 비휘발성 메모리 디바이스로부터 상기 데이터를 판독하고, 상기 중복 정보에 기초하여 상기 판독된 데이터 내의 에러를 정정한다.
예 20은 예 15의 시스템이며, 상기 비휘발성 메모리 디바이스는 플래시 메모리 디바이스이다.
예 21은 예 15의 시스템이며, 상기 시스템은 터치스크린 디스플레이를 더 포함하는 모바일 통신 디바이스이다.
본 명세서에 설명을 목적을 위해 소정 실시예들이 예시되고 설명되었지만, 본원은 본 명세서에 설명된 실시예들의 임의의 개량들 및 변형들을 포괄하는 것을 의도한다. 따라서, 본 명세서에 설명된 실시예들은 청구항들에 의해서만 한정되는 것을 명백히 의도한다.
본 개시 내용은 "하나의" 또는 "제1의" 요소 또는 그의 등가물을 설명하지만, 그러한 개시 내용은 하나 이상의 그러한 요소를 포함하며, 둘 이상의 그러한 요소를 요구하지도 배제하지도 않는다. 또한, 식별되는 요소들에 대한 서수 지시자들(예로서, 제1, 제2 또는 제3)은 요소들 간을 구별하는 데 사용되며, 그러한 요소들의 필요한 또는 제한된 수를 지시 또는 암시하지 않고, 구체적으로 달리 지시되지 않는 한은 그러한 요소들의 특정 위치 또는 순서를 지시하지도 않는다.
Claims (21)
- 메모리 제어기로서,
복수의 메모리 다이를 갖는 비휘발성 메모리 디바이스의 개별 메모리 다이들의 메모리 자원들을 복수의 가상 다이로 조직(organize)하는 메모리 할당 로직 - 상기 비휘발성 메모리 디바이스의 제1 가상 다이는 패리티 정보를 저장하도록 지정되는 패리티 가상 다이로서 구성되고, 상기 비휘발성 메모리 디바이스의 복수의 가상 다이는 논-패리티 데이터(non-parity data)를 저장하도록 지정되는 논-패리티 가상 다이들로서 구성됨 -;
상기 비휘발성 메모리 디바이스의 상기 논-패리티 가상 다이들에 논-패리티 데이터를 기입하는 입력/출력 로직; 및
상기 논-패리티 데이터에 기초하여 패리티 정보를 생성하고, 상기 패리티 정보를 상기 비휘발성 메모리 디바이스의 상기 패리티 가상 다이에 기입하는 패리티 정보 로직
을 포함하는 메모리 제어기. - 제1항에 있어서, 패리티 정보 로직은 상기 복수의 논-패리티 가상 다이 각각의 메모리 자원들을 포함하는 스트라이프(stripe)에 대한 상기 패리티 정보를 생성하는 메모리 제어기.
- 제2항에 있어서, 상기 스트라이프는 상기 복수의 가상 다이 각각으로부터의 페이지를 포함하는 메모리 제어기.
- 제1항에 있어서, 개별 가상 다이들은 각각의 가상 다이와 관련된 상기 메모리 다이의 복수의 평면으로부터의 메모리 자원들을 포함하는 메모리 제어기.
- 제1항에 있어서, 상기 입력/출력 로직은 또한 상기 비휘발성 메모리 디바이스로부터 상기 논-패리티 데이터를 판독하고, 상기 패리티 정보에 기초하여 상기 판독된 논-패리티 데이터 내의 에러를 정정하는 메모리 제어기.
- 제1항에 있어서, 상기 메모리 할당 로직은 상기 제1 가상 다이 외의 상기 비휘발성 메모리 디바이스의 모든 가상 메모리 다이들을 논-패리티 가상 다이들로서 구성하는 메모리 제어기.
- 제1항에 있어서, 상기 복수의 메모리 다이는 플래시 메모리 다이들인 메모리 제어기.
- 제1항 내지 제7항 중 어느 한 항의 메모리 제어기를 포함하고, 상기 비휘발성 메모리 디바이스를 더 포함하는 컴퓨팅 시스템.
- 제8항에 있어서, 상기 비휘발성 메모리 디바이스 내의 저장을 위해 상기 메모리 제어기에 데이터를 제공하는 프로세서를 더 포함하는 컴퓨팅 시스템.
- 메모리를 관리하기 위한 방법으로서,
복수의 메모리 다이를 갖는 비휘발성 메모리 디바이스의 개별 메모리 다이들의 메모리 자원들을 복수의 가상 다이로 조직하는 단계 - 상기 비휘발성 메모리 디바이스의 단일 가상 다이는 패리티 정보를 저장하도록 지정되는 패리티 가상 다이로서 구성되고, 상기 패리티 가상 다이 외의 상기 비휘발성 메모리 디바이스의 모든 가상 다이들은 논-패리티 데이터를 저장하도록 지정되는 논-패리티 가상 다이들로서 구성됨 -;
상기 비휘발성 메모리 디바이스의 상기 논-패리티 가상 다이들에 논-패리티 데이터를 기입하는 단계;
상기 논-패리티 데이터에 기초하여 패리티 정보를 생성하는 단계; 및
상기 패리티 정보를 상기 비휘발성 메모리 디바이스의 상기 패리티 가상 다이에 기입하는 단계
를 포함하는 방법. - 제10항에 있어서, 상기 패리티 정보는 상기 복수의 논-패리티 가상 다이 각각의 메모리 자원들을 포함하는 스트라이프에 대해 생성되는 방법.
- 제11항에 있어서, 상기 스트라이프는 상기 복수의 가상 다이 각각으로부터의 페이지를 포함하는 방법.
- 제10항에 있어서, 개별 가상 다이들은 각각의 가상 다이와 관련된 상기 메모리 다이의 복수의 평면으로부터의 메모리 자원들을 포함하는 방법.
- 제10항 내지 제13항 중 어느 한 항에 있어서,
상기 비휘발성 메모리 디바이스로부터 상기 논-패리티 데이터를 판독하는 단계; 및
상기 패리티 정보에 기초하여 상기 판독된 논-패리티 데이터 내의 에러를 정정하는 단계
를 더 포함하는 방법. - 메모리를 관리하기 위한 시스템으로서,
논-패리티 데이터를 생성하는 프로세서;
복수의 메모리 다이를 포함하는 비휘발성 메모리 디바이스; 및
상기 프로세서 및 상기 비휘발성 메모리 디바이스에 결합되는 메모리 제어기
를 포함하고, 상기 메모리 제어기는
상기 비휘발성 메모리 디바이스의 개별 메모리 다이들의 메모리 자원들을 복수의 가상 다이로 조직하는 메모리 할당 로직 - 상기 비휘발성 메모리 디바이스의 단일 가상 다이는 패리티 정보를 저장하기 위한 패리티 가상 다이로서 지정되고, 상기 패리티 가상 다이 외의 상기 비휘발성 메모리 디바이스의 상기 가상 다이들은 논-패리티 데이터를 저장하기 위한 논-패리티 가상 다이들로서 지정됨 -;
상기 비휘발성 메모리 디바이스의 상기 논-패리티 가상 다이들에 논-패리티 데이터를 기입하는 입력/출력 로직; 및
상기 논-패리티 데이터에 기초하여 패리티 정보를 생성하고, 상기 패리티 정보를 상기 비휘발성 메모리 디바이스의 상기 패리티 가상 다이에 기입하는 패리티 정보 로직
을 포함하는 시스템. - 제15항에 있어서, 패리티 정보 로직은 상기 복수의 논-패리티 가상 다이 각각의 메모리 자원들을 포함하는 스트라이프에 대한 상기 패리티 정보를 생성하는, 시스템.
- 제16항에 있어서, 상기 스트라이프는 상기 복수의 가상 다이 각각으로부터의 페이지를 포함하는, 시스템.
- 제15항에 있어서, 개별 가상 다이들은 각각의 가상 다이와 관련된 상기 메모리 다이의 복수의 평면으로부터의 메모리 자원들을 포함하는, 시스템.
- 제15항에 있어서, 상기 입력/출력 로직은 또한 상기 비휘발성 메모리 디바이스로부터 상기 논-패리티 데이터를 판독하고, 상기 패리티 정보에 기초하여 상기 판독된 논-패리티 데이터 내의 에러를 정정하는, 시스템.
- 제15항 내지 제19항 중 어느 한 항에 있어서, 상기 비휘발성 메모리 디바이스는 플래시 메모리 디바이스인, 시스템.
- 제15항 내지 제19항 중 어느 한 항에 있어서, 상기 시스템은 터치스크린 디스플레이를 더 포함하는 모바일 통신 디바이스인, 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/106,571 | 2013-12-13 | ||
US14/106,571 US10067829B2 (en) | 2013-12-13 | 2013-12-13 | Managing redundancy information in a non-volatile memory |
PCT/US2014/065826 WO2015088704A1 (en) | 2013-12-13 | 2014-11-14 | Managing redundancy information in a non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160055937A true KR20160055937A (ko) | 2016-05-18 |
KR101728291B1 KR101728291B1 (ko) | 2017-04-18 |
Family
ID=53368570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167010606A KR101728291B1 (ko) | 2013-12-13 | 2014-11-14 | 비휘발성 메모리 내의 중복 정보의 관리 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10067829B2 (ko) |
KR (1) | KR101728291B1 (ko) |
CN (1) | CN105917414B (ko) |
WO (1) | WO2015088704A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10120751B2 (en) * | 2015-09-25 | 2018-11-06 | Intel Corporation | Techniques to recover data using exclusive OR (XOR) parity information |
US10236069B2 (en) | 2017-06-20 | 2019-03-19 | Intel Corporation | Word line read disturb error reduction through fine grained access counter mechanism |
US10628258B2 (en) * | 2018-07-20 | 2020-04-21 | Micron Technology, Inc. | Die-level error recovery scheme |
US10949123B2 (en) * | 2018-10-18 | 2021-03-16 | Western Digital Technologies, Inc. | Using interleaved writes to separate die planes |
KR20200085515A (ko) | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 위한 컨트롤러 |
WO2020257977A1 (en) * | 2019-06-24 | 2020-12-30 | Micron Technology, Inc. | Memory device with parity data system and method |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200715B2 (en) | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
US8200887B2 (en) | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US8468244B2 (en) | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
US8321597B2 (en) * | 2007-02-22 | 2012-11-27 | Super Talent Electronics, Inc. | Flash-memory device with RAID-type controller |
US9632870B2 (en) | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
US8234545B2 (en) * | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US7822907B2 (en) | 2007-12-21 | 2010-10-26 | Intel Corporation | Methods and apparatuses for serial bus sideband communications |
KR101373183B1 (ko) * | 2008-01-15 | 2014-03-14 | 삼성전자주식회사 | 3차원 어레이 구조를 갖는 메모리 장치 및 그것의 리페어방법 |
US7873619B1 (en) | 2008-03-31 | 2011-01-18 | Emc Corporation | Managing metadata |
CN102124527A (zh) | 2008-05-16 | 2011-07-13 | 弗森-艾奥公司 | 用于检测和替代失效的数据存储器的装置、系统和方法 |
US20100017650A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
US8949684B1 (en) * | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8130554B1 (en) | 2008-09-29 | 2012-03-06 | Emc Corporation | Securely erasing flash-based memory |
US20100162065A1 (en) * | 2008-12-19 | 2010-06-24 | Unity Semiconductor Corporation | Protecting integrity of data in multi-layered memory with data redundancy |
US8276042B2 (en) * | 2009-02-03 | 2012-09-25 | Micron Technology, Inc. | Determining sector status in a memory device |
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 |
US8639877B2 (en) | 2009-06-30 | 2014-01-28 | International Business Machines Corporation | Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
DE112010003345B4 (de) | 2009-08-21 | 2017-07-27 | International Business Machines Corporation | Datenspeichersystem und Verfahren für das Betreiben eines Datenspeichersystems |
US8234520B2 (en) * | 2009-09-16 | 2012-07-31 | International Business Machines Corporation | Wear leveling of solid state disks based on usage information of data and parity received from a raid controller |
US20110252289A1 (en) * | 2010-04-08 | 2011-10-13 | Seagate Technology Llc | Adjusting storage device parameters based on reliability sensing |
US20110258380A1 (en) * | 2010-04-19 | 2011-10-20 | Seagate Technology Llc | Fault tolerant storage conserving memory writes to host writes |
KR101491484B1 (ko) | 2010-06-18 | 2015-02-10 | 엘에스아이 코포레이션 | 스케일러블 스토리지 디바이스들 |
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 |
US9727414B2 (en) | 2010-12-01 | 2017-08-08 | Seagate Technology Llc | Fractional redundant array of silicon independent elements |
US9569320B2 (en) * | 2010-12-01 | 2017-02-14 | Seagate Technology Llc | Non-volatile memory program failure recovery via redundant arrays |
KR20120096212A (ko) | 2011-02-22 | 2012-08-30 | 삼성전자주식회사 | 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이들의 동작 방법 |
US8543758B2 (en) | 2011-05-31 | 2013-09-24 | Micron Technology, Inc. | Apparatus including memory channel control circuit and related methods for relaying commands to logical units |
US20120324148A1 (en) * | 2011-06-19 | 2012-12-20 | Paul Roger Stonelake | System and method of protecting metadata from nand flash failures |
US20130019057A1 (en) | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US8874994B2 (en) * | 2011-07-22 | 2014-10-28 | Sandisk Technologies Inc. | Systems and methods of storing data |
US8775901B2 (en) * | 2011-07-28 | 2014-07-08 | SanDisk Technologies, Inc. | Data recovery for defective word lines during programming of non-volatile memory arrays |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US8914670B2 (en) * | 2012-11-07 | 2014-12-16 | Apple Inc. | Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks |
US9671962B2 (en) * | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
CN103198870B (zh) | 2013-03-19 | 2016-01-27 | 西安华芯半导体有限公司 | Dram中非均匀分布冗余的修复方法 |
-
2013
- 2013-12-13 US US14/106,571 patent/US10067829B2/en active Active
-
2014
- 2014-11-14 KR KR1020167010606A patent/KR101728291B1/ko active IP Right Grant
- 2014-11-14 CN CN201480062520.3A patent/CN105917414B/zh active Active
- 2014-11-14 WO PCT/US2014/065826 patent/WO2015088704A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US10067829B2 (en) | 2018-09-04 |
WO2015088704A1 (en) | 2015-06-18 |
CN105917414B (zh) | 2019-04-09 |
US20150169405A1 (en) | 2015-06-18 |
KR101728291B1 (ko) | 2017-04-18 |
CN105917414A (zh) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101728291B1 (ko) | 비휘발성 메모리 내의 중복 정보의 관리 | |
US11216362B2 (en) | Data storage device and operating method thereof | |
CN108121669B (zh) | 存储器系统及其操作方法 | |
US10534560B2 (en) | Data storage device and data processing system having the same | |
US10073622B2 (en) | Memory system and operation method thereof | |
US11068206B2 (en) | Data storage device for processing a sequential unmap entry by using trim instruction data and operating method thereof | |
US10877887B2 (en) | Data storage device and operating method thereof | |
US20150089310A1 (en) | Use of error correction pointers to handle errors in memory | |
US11119954B2 (en) | Host emulator | |
CN103513937B (zh) | 能够增加其生命周期的存储设备及其操作方法 | |
US10990287B2 (en) | Data storage device capable of reducing latency for an unmap command, and operating method thereof | |
TWI569277B (zh) | 用以於分散式碼字儲存系統中定位故障晶粒之計數器 | |
US10831405B2 (en) | Storage device temporarily suspending internal operation to provide short read response time for read request from host | |
KR20160075703A (ko) | 비휘발성 메모리를 위한 전송 버퍼의 관리 | |
TWI648739B (zh) | 記憶體管理方法與儲存控制器 | |
KR102645786B1 (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
KR102643067B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN112905107A (zh) | 数据存储装置及其操作方法 | |
US20230101626A1 (en) | Data Storage Device and Method for File-Based Interrupt Coalescing | |
US11409473B2 (en) | Data storage device and operating method thereof | |
US11194512B2 (en) | Data storage device which selectively performs a cache read or a normal read operation depending on work load and operating method thereof | |
US20230393738A1 (en) | Data Storage Device and Method for Host Buffer Management | |
US10572155B2 (en) | Data storage device and operating method thereof |
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 |