KR101225924B1 - 메모리 시스템의 카피백 최적화 - Google Patents
메모리 시스템의 카피백 최적화 Download PDFInfo
- Publication number
- KR101225924B1 KR101225924B1 KR1020107026742A KR20107026742A KR101225924B1 KR 101225924 B1 KR101225924 B1 KR 101225924B1 KR 1020107026742 A KR1020107026742 A KR 1020107026742A KR 20107026742 A KR20107026742 A KR 20107026742A KR 101225924 B1 KR101225924 B1 KR 101225924B1
- Authority
- KR
- South Korea
- Prior art keywords
- data page
- register
- data
- error
- changed
- 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/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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
비휘발성 메모리 서브시스템에 대한 카피백 또는 판독 동작에서, 데이터 페이지 변경 인디케이터들은, 비휘발성 메모리의 레지스터와 상기 비휘발성 메모리의 외부에 있는 제어기 사이에 데이터 페이지들을 전송하는 것을 관리하기 위해 사용된다.
Description
본 발명은 일반적으로 메모리 시스템들에 관한 것이다.
플래쉬 메모리는, 전기적으로 소거가능한 프로그램가능 판독전용 메모리(EEPROM)의 한 종류이다. 플래쉬 메모리들은 비휘발성이고 비교적 고밀도이므로, 핸드헬드 컴퓨터, 모바일 폰, 디지털 카메라, 휴대용 음악 플레이어, 및 다른 저장 솔루션들(예컨대, 자기 디스크)이 부적절한 많은 다른 장치들의 파일들 및 다른 지속적 객체들을 저장하는데 사용된다. 플래쉬 메모리에 저장된 데이터가 처리될 때, 데이터 페이지가 플래쉬 메모리로부터 판독되어 레지스터에 저장된다. 레지스터의 콘텐트들은, 처리를 위하여 비휘발성 메모리의 외부에 있는 제어기로 전송된다. 처리된 데이터 페이지는, 처리된 데이터 페이지가 플래쉬 메모리에 다시 기록될 수 있도록 레지스터에 되돌려진다.
비휘발성 메모리 서브시스템의 카피백 또는 판독 동작에서, 데이터 페이지 변경 인디케이터들은, 비휘발성 메모리의 레지스터와 비휘발성 메모리 외부에 있는 제어기 간에 데이터 페이지들을 전송하는 것을 관리하는데 사용된다.
도 1a는, 최적화된 카피백 프로세스를 구현하는 예시적인 메모리 시스템의 블록도이다.
도 1b는. 최적화된 카피백 프로세스를 구현하는 또 다른 예시적인 메모리 시스템의 블록도이다.
도 2는, 도 1a와 도 1b의 메모리 시스템들에 의해 사용되는 데이터 변경 인디케이터들을 계산하고 저장하기 위한 예시적인 최적화된 카피백 프로세스(200)의 흐름도이다.
도 3a 내지 도 3c는, 도 1a와 도 1b의 메모리 시스템들에 의해 구현되는 예시적인 최적화된 카피백 프로세스의 흐름도들이다.
도 4는, 도 1a와 도 1b의 메모리 시스템들에 의해 구현되는 예시적인 최적화된 판독 동작의 흐름도이다.
도 5는, 도 3a 내지 도 3c의 카피백 프로세스에 의해 사용되는 예시적인 데이터 구조들을 도시한다.
도 1b는. 최적화된 카피백 프로세스를 구현하는 또 다른 예시적인 메모리 시스템의 블록도이다.
도 2는, 도 1a와 도 1b의 메모리 시스템들에 의해 사용되는 데이터 변경 인디케이터들을 계산하고 저장하기 위한 예시적인 최적화된 카피백 프로세스(200)의 흐름도이다.
도 3a 내지 도 3c는, 도 1a와 도 1b의 메모리 시스템들에 의해 구현되는 예시적인 최적화된 카피백 프로세스의 흐름도들이다.
도 4는, 도 1a와 도 1b의 메모리 시스템들에 의해 구현되는 예시적인 최적화된 판독 동작의 흐름도이다.
도 5는, 도 3a 내지 도 3c의 카피백 프로세스에 의해 사용되는 예시적인 데이터 구조들을 도시한다.
메모리 서브시스템들의 예들
도 1a는, 최적화된 카피백 프로세스를 구현하기 위한 예시적인 메모리 시스템(100)의 블록도이다. 일부 구현예들에서, 시스템(100)은, 외부 버스(122)(예컨대, ONFI(Open NAND Flash Interface), ATA)를 통해 호스트 디바이스(124)에 결합되는 메모리 서브시스템(102)을 포함할 수 있다. 호스트 디바이스(124)는, 스마트 폰, 미디어 플레이어, 텍스트 메시징 디바이스, 휴대용 컴퓨터, 솔리드 스테이트 드라이브(solid state drive), 디지털 카메라 등이 포함되는 임의의 전자 장치일수 있으나, 이들로만 제한되는 것은 아니다. 메모리 서브시스템(102)은, 임의의 비휘발성 메모리 서브시스템(예컨대, 매니지드 낸드(managed NAND))일 수 있다.
호스트 디바이스(124)는, 시스템-온-칩(SoC)(126) 및 휘발성 메모리(128)를 포함할 수 있다. SoC(126)는, 호스트 디바이스(124)에서 실행되는 애플리케이션들에 의해 행해지는 판독 및 기록 요청들을 전송하는 것과 같이, 메모리 서브시스템(102)와 상호작용하기 위한 하드웨어와 소프트웨어를 포함할 수 있다.
메모리 서브시스템(102)은, 비휘발성 메모리(104)("로우 메모리(raw memory)"라고도 칭해짐) 및 외부 제어기(116)를 포함할 수 있다. 메모리(104)는, 메모리 셀 어레이(106), 내부 상태 머신(108), 메모리 레지스터(110) 및 데이터 변경 인디케이터(DCI)(130)를 포함할 수 있다. 제어기(116)는, 프로세서(118), 휘발성 메모리(114) 및 에러 정정 코드(ECC) 엔진(120)을 포함할 수 있다. 메모리 서브시스템(102)에 대한 다른 구성들도 가능하다. 예를 들면, 캐쉬 레지스터는, 현재의 페이지가 내부 버스(112)를 통해 제어기(116)로 전송되는 동안, 내부 상태 머신이 메모리 셀 어레이(106)로부터 다음번 데이터 페이지를 판독하게 하기 위해, 메모리 셀 어레이(106) 및 메모리 레지스터(110) 사이의 데이터 경로 내에 포함될 수 있다.
도 1b는, 최적화된 카피백 프로세스를 구현하기 위한 또 다른 예시적인 메모리 시스템(130)의 블록도이다. 시스템(130)은, 메모리 서브시스템(102)만을 나타내며, 그 동작은 도 1a와 관련하여 기술되었다.
카피백 동작들
카피백은, 한 페이지에서 다른 페이지로 데이터를 옮기라는 메모리 서브시스템 커맨드일수 있다. 카피백은, 웨어 레벨링(wear leveling) 및 다른 비휘발성 메모리 관리 동작들에서 사용될 수 있다. 통상의 카피백 동작에서, 데이터 페이지는, 메모리 셀 어레이(106)로부터 판독되어, 내부 상태 머신에 의해 메모리 레지스터(110)에 저장된다. 외부 제어기(116)는, 프로세서(118)가 데이터 페이지에 대해 원하는 연산(예컨대, ECC 연산)을 수행할 수 있도록, 메모리 레지스터(110)로부터 데이터 페이지를 판독하거나, 클로킹한다. 처리된 데이터 페이지는, 제어기(116)에 의해 메모리 레지스터(110)에 다시 기록될 수 있다. 내부 상태 머신(108)은, 메모리 레지스터(110)의 콘텐트들을 메모리 셀 어레이(106) 내의 새로운 데이터 페이지에 기록할 수 있다. 레지스터(110)의 모든 콘텐트들이 외부 제어기(116)에 전송되는 것을 피함으로써, 처리 시간 및 전력 소비가 감소될 수 있다.
새로운 데이터 페이지들의 기록에 대한 예시적인 프로세스
도 2는, 도 1a와 도 1b의 메모리 시스템들에 의해 사용되는 데이터 변경 인디케이터들을 계산하고 저장하기 위한 예시적인 최적화된 카피백 프로세스(200)의 흐름도이다. 일부 구현예들에서, 프로세스(200)는, 새로운 데이터 페이지가 메모리 서브시스템의 메모리 레지스터 내로 전송될 때 시작될 수 있다(단계 202). 데이터 페이지에 대한 DCI가 계산되어, 메모리 서브시스템에 저장될 수 있다(단계 204). 데이터 변경 인디케이터들의 일부 예들에는, 체크섬, 해밍 코드, 패리티 비트, CRC(cyclic redundancy check), 폴래러티 심볼 리버설(polarity symbol reversal), 터보 코드 등을 비롯하여 (이들로만 제한되지는 않음) 에러 검출 코드들(EDCs)이포함될 수 있다. EDC는, 리드-솔로몬(Reed-Solomon) 코드, 리드-뮬러(Reed-Muller) 코드, 바이너리 골레이(Binary Golay) 코드, 및 저-밀도 패리티-체크 코드(low-density parity-check codes)들과 같이, ECC의 일부일 수도 있다. DCI들이 계산되고 저장된 후에, 레지스터의 콘텐트들은 비휘발성 메모리에 기록될 수 있다(단계 206). DCI들은, 도 3a 내지 도 3c와 관련하여 기술된, 최적화된 카피백 프로세스에 사용될 수 있다.
최적화된 카피백 프로세스의 예
도 3a 내지 도 3c는, 도 1a와 도 1b의 메모리 시스템들에 의해 구현되는 예시적인 최적화된 카피백 프로세스(300)의 흐름도들이다. 일부 구현예들에서, 프로세스(300)는, 비휘발성 메모리(예컨대, 메모리 셀 어레이(106))로부터 데이터 페이지를 판독하고 메모리 레지스터(예컨대, 레지스터(110))에 데이터 페이지를 저장함으로써 시작될 수 있다(단계 302). DCI(예컨대, DCI(130))는, 메모리 레지스터의 데이터 페이지를 위해 검증될 수 있다(단계 304). 일부 구현예들에서, DCI는, 데이터 페이지가 (예컨대, 프로세스(200)를 이용하여) 비휘발성 메모리에 최초로 기록되는 경우, 미리 계산되어 메모리 서브시스템에 저장될 수 있다. 다른 구현예들에서, DCI는, 판독 동작의 일부로서 또는 별개의 동작으로서 "온 더 플라이(on the fly)"로 계산될 수 있다. 메모리 서브시스템은, 판독 동작이 완료되었다는 것을 외부 제어기(예컨대, 외부 제어기(116)에 보고할 수 있다(단계 306).
레지스터의 데이터 페이지에 대한 DCI가, 데이터 페이지가 변경되었다는 것을 가리킨다면(단계 308), 데이터 페이지가 외부 제어기로 전송될 수 있고(단계 310), ECC가 데이터 페이지에 대해 계산될 수 있으며(단계 312), 그리고 데이터 페이지에 대한 ECC 정보가 외부 제어기에서 정정될 수 있다(단계 314). 데이터 페이지 및 연관된 ECC는, 메모리 레지스터로 다시 전송될 수 있다(단계 316). 새로운 DCI가, 메모리 레지스터의 데이터 페이지에 대해 계산될 수 있다(단계 318).
레지스터의 데이터 페이지에 대한 DCI가, 데이터 페이지가 변경되지 않았다는 것을 가리킨다면(단계 308), 데이터 페이지와 연관된 새로운 메타데이터에 대한 ECC가 계산될 수 있다(단계 320). 새로운 메타데이터 및 연관된 ECC는, 메모리 레지스터로 전송될 수 있다(단계 322). 메모리 레지스터의 메타데이터에 대한 새로운 DCI가 계산될 수 있다(단계 324). 메모리 레지스터의 콘텐트들은, 비휘발성 메모리의 새로운 데이터 페이지에 기록될 수 있다(단계 326).
최적화된 판독 동작
도 4는, 도 1a와 도 1b의 메모리 시스템들에 의해 구현되는 예시적인 최적화된 판독 동작의 흐름도이다. 일부 구현예들에서, 프로세스(400)는, 비휘발성 메모리로부터 데이터 페이지를 판독하고 메모리 레지스터에 데이터 페이지를 저장함으로써 시작될 수 있다(단계 402). 데이터 페이지와 연관되는 미리 계산된 DCI는, 메모리 서브시스템의 저장 위치로부터 메모리 레지스터 내로 클록킹되어 검증될 수 있다(단계 404). DCI는 또한 "온 더 플라이"로 계산될 수 있다. DCI의 상태가, 데이터 페이지가 변경되었는지를 판정하기 위하여 판독될 수 있다(단계 406).
데이터 페이지가 변경되었다면(단계 408), 데이터 페이지와 연관된 새 메타데이터에 대한 ECC가 계산되어, 새 메타데이터와 함께 메모리 레지스터로 전송될 수 있다(단계 412). 메모리 레지스터의 메타데이터에 대한 새로운 DCI가 계산될 수 있고, 레지스터의 콘텐트들이 비휘발성 메모리의 새로운 데이터 페이지에 기록될 수 있다(단계 414).
데이터 페이지가 변경되지 않았다면(단계 408), 메모리 레지스터의 콘텐트들은 외부 제어기로 전송될 수 있고, ECC는 외부 제어기에 의해 계산될 수 있다(단계 410). 데이터 페이지와 연관된 새 메타데이터에 대한 ECC가 계산되어, 외부 제어기에 의해 새 메타데이터와 함께 메모리 레지스터로 전송될 수 있다(단계 412). 메모리 레지스터의 메타데이터에 대한 새 DCI가 계산될 수 있고, 레지스터의 콘텐트들은 비휘발성 메모리의 새 데이터 페이지에 기록될 수 있다(단계 414).
데이터 구조들의 예
도 5는, 도 3a 내지 도 3c의 카피백 프로세스에 의해 사용되는 예시적인 데이터 구조들을 도시한다. 도시된 예에서, 비휘발성 메모리의 데이터 페이지(500)에는, 메타데이터(502), 메타데이터 ECC(504), 데이터(506) 및 데이터 ECC(508)가포함된다. 데이터가 변경되지 않았다면, 메타데이터(502)와 메타데이터 ECC(504) 만이 처리를 위해 레지스터에서 외부 제어기(510)로 전송된다. 처리된 메타데이터(502) 및 메타데이터 ECC(504)는, 메모리 서브시스템으로 다시 전송되어, 메모리 레지스터에 저장된다. 그 후에, 데이터 페이지는, 비휘발성 메모리(예컨대, 메모리 셀 어레이)의 새 데이터 페이지에 기록될 수 있다.
많은 구현예들이 기술되었다. 그럼에도, 다양한 변경들이 행해질 수 있다는 것이 이해될 것이다. 예를 들면, 하나 이상의 구현예들의 엘리먼트들은, 결합되거나, 생략되거나, 변경되거나, 또는 추가적인 구현예들을 형성하도록 보충될 수 있다. 또 다른 예들에서와 같이, 도면들에 도시된 논리 흐름들은, 원하는 결과들을 달성하기 위해, 도시된 특정 순서 또는 순차적인 순서를 요구하지 않는다. 또한, 다른 단계들이 제공될 수 있고, 또는 기술된 흐름들에서 단계들이 제거될 수 있으며, 다른 컴포넌트들이 기술된 시스템들에 첨가되거나 제거될 수 있다. 따라서, 다른 구현예들은, 다음의 청구항들의 범위 내에 있게 된다.
Claims (17)
- 메모리 서브시스템의 비휘발성 메모리로부터 데이터 페이지를 획득하는 단계;
레지스터에 상기 데이터 페이지를 저장하는 단계;
상기 레지스터에 저장된 상기 데이터 페이지가 변경되었는지 여부를 판정하는 단계 - 상기 데이터 페이지가 변경되었는지 여부를 판정하는 단계는 상기 데이터 페이지와 연관된 데이터 변경 인디케이터를 판독하는 단계를 포함함 -;
상기 데이터 변경 인디케이터가 상기 데이터 페이지가 변경된 것을 가리키는 것에 기초하여, 제어기로 상기 데이터 페이지를 전송하는 단계 - 상기 데이터 페이지를 전송하는 단계는, 상기 데이터 페이지와 연관된 에러-관련(error-related) 파라미터를 판정하는 단계, 상기 제어기가 상기 에러-관련 파라미터를 정정하는 단계 및 상기 레지스터에 상기 데이터 페이지 및 상기 정정된 에러-관련 파라미터를 저장하는 단계를 포함함 -;
상기 데이터 변경 인디케이터가 상기 레지스터에 저장된 상기 데이터 페이지가 변경되지 않은 것을 가리키는 것에 기초하여, 상기 제어기로 상기 데이터 페이지와 연관된 메타데이터를 전송하는 단계 - 상기 데이터 페이지와 연관된 메타데이터를 전송하는 단계는, 상기 메타데이터와 연관된 에러-관련 파라미터를 생성하는 단계 및 상기 레지스터에 상기 생성된 메타데이터와 연관된 에러-관련 파라미터를 저장하는 단계를 포함함 -; 및
상기 레지스터에 저장된 상기 생성된 메타데이터와 연관된 에러-관련 파라미터를 포함하는 상기 레지스터 내의 콘텐트들을 상기 비휘발성 메모리 내의 새로운 데이터 페이지에 기록하는 단계
를 포함하는, 메모리에 대한 카피백(copyback) 방법. - 삭제
- 제1항에 있어서,
상기 데이터 변경 인디케이터를 판독하는 단계는 에러 검출 코드와 연관된 데이터를 판독하는 단계를 포함하는, 메모리에 대한 카피백 방법. - 제1항에 있어서,
상기 데이터 페이지가 변경되었는지 여부를 판정하는 단계는,
상기 데이터 페이지와 연관된 상기 데이터 변경 인디케이터를 계산하는 단계; 및
상기 데이터 페이지가 변경되었는지 여부를 판정하는 단계 - 상기 데이터 페이지가 변경되었는지 여부를 판정하는 단계는 상기 계산된 데이터 변경 인디케이터를 판독하는 단계를 포함함 - 를 더 포함하는, 메모리에 대한 카피백 방법. - 제어기에 결합되도록 구성된 인터페이스;
비휘발성 메모리; 및
상기 비휘발성 메모리 및 상기 인터페이스에 결합된 프로세서
를 포함하며,
상기 프로세서는,
상기 비휘발성 메모리로부터 데이터 페이지를 획득하는 기능;
레지스터에 상기 데이터 페이지를 저장하는 기능;
상기 레지스터에 저장된 상기 데이터 페이지가 변경되었는지 여부를 판정하는 기능 - 상기 데이터 페이지가 변경되었는지 여부를 판정하는 기능은 상기 데이터 페이지와 연관된 데이터 변경 인디케이터를 판독하는 기능을 포함함 -;
상기 데이터 변경 인디케이터가 상기 데이터 페이지가 변경된 것을 가리키는 것에 기초하여, 상기 데이터 페이지를 상기 인터페이스를 통해 상기 제어기로 전송하는 기능 - 상기 데이터 페이지를 전송하는 기능은, 상기 데이터 페이지와 연관된 에러-관련(error-related) 파라미터를 판정하는 기능, 상기 제어기가 상기 에러-관련 파라미터를 정정하는 기능 및 상기 레지스터에 상기 데이터 페이지 및 상기 정정된 에러-관련 파라미터를 저장하는 기능을 포함함 -;
상기 데이터 변경 인디케이터가 상기 레지스터에 저장된 상기 데이터 페이지가 변경되지 않은 것을 가리키는 것에 기초하여, 상기 제어기로 상기 데이터 페이지와 연관된 메타데이터를 전송하는 기능 - 상기 데이터 페이지와 연관된 메타데이터를 전송하는 기능은, 상기 메타데이터와 연관된 에러-관련 파라미터를 생성하는 기능 및 상기 레지스터에 상기 생성된 메타데이터와 연관된 에러-관련 파라미터를 저장하는 기능을 포함함 -; 및
상기 레지스터에 저장된 상기 생성된 메타데이터와 연관된 에러-관련 파라미터를 포함하는 상기 레지스터 내의 콘텐트들을 상기 비휘발성 메모리 내의 새로운 데이터 페이지에 기록하는 기능
을 포함하는 기능들을 수행하도록 동작 가능한,
메모리에 대한 카피백(copyback) 시스템. - 삭제
- 제5항에 있어서,
상기 데이터 변경 인디케이터를 판독하는 기능은 에러 검출 코드와 연관된 데이터를 판독하는 기능을 포함하는, 메모리에 대한 카피백 시스템. - 제5항에 있어서,
상기 데이터 페이지가 변경되었는지 여부를 판정하는 기능은,
상기 데이터 페이지와 연관된 상기 데이터 변경 인디케이터를 계산하는 기능; 및
상기 데이터 페이지가 변경되었는지 여부를 판정하는 기능 - 상기 데이터 페이지가 변경되었는지 여부를 판정하는 기능은 상기 계산된 데이터 변경 인디케이터를 판독하는 기능을 포함함 -
을 더 포함하는, 메모리에 대한 카피백 시스템. - 제1항에 있어서,
상기 레지스터에 상기 생성된 메타데이터와 연관된 에러-관련 파라미터를 저장하는 단계 전에, 상기 데이터 페이지와 연관된 상기 메타데이터와 연관된 상기 에러-관련 파라미터를 정정하는 단계를 더 포함하는, 메모리에 대한 카피백 방법. - 제1항에 있어서,
상기 레지스터에 저장된 상기 데이터 페이지 및 상기 정정된 에러-관련 파라미터에 기초하여 새로운 데이터 변경 인디케이터를 판정하는 단계를 더 포함하는, 메모리에 대한 카피백 방법. - 제5항에 있어서,
상기 프로세서는,
상기 데이터 변경 인디케이터가 상기 레지스터에 저장된 상기 데이터 페이지가 변경되지 않은 것을 가리키는 것에 기초하여, 상기 제어기로 상기 데이터 페이지와 연관된 메타데이터를 전송하는 기능 - 상기 데이터 페이지와 연관된 메타데이터를 전송하는 기능은, 상기 메타데이터와 연관된 에러-관련 파라미터를 판정하는 기능 및 상기 레지스터에 상기 데이터 페이지 및 상기 메타데이터와 연관된 상기 에러-관련 파라미터를 저장하는 기능을 포함함 -; 및
상기 레지스터에 저장된 상기 데이터 페이지 및 상기 메타데이터와 연관된 상기 에러-관련 파라미터를 포함하는 상기 레지스터 내의 콘텐트들을 상기 비휘발성 메모리 내의 새로운 데이터 페이지에 기록하는 기능
중 하나 이상의 기능을 수행하도록 동작 가능한,
메모리에 대한 카피백 시스템. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US4933008P | 2008-04-30 | 2008-04-30 | |
US61/049,330 | 2008-04-30 | ||
US12/193,638 | 2008-08-18 | ||
US12/193,638 US8185706B2 (en) | 2008-04-30 | 2008-08-18 | Copyback optimization for memory system |
PCT/US2009/039160 WO2009134576A1 (en) | 2008-04-30 | 2009-04-01 | Copyback optimization for memory system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127013247A Division KR101471262B1 (ko) | 2008-04-30 | 2009-04-01 | 메모리 시스템의 카피백 최적화 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110008301A KR20110008301A (ko) | 2011-01-26 |
KR101225924B1 true KR101225924B1 (ko) | 2013-01-24 |
Family
ID=40801795
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107026742A KR101225924B1 (ko) | 2008-04-30 | 2009-04-01 | 메모리 시스템의 카피백 최적화 |
KR1020127013247A KR101471262B1 (ko) | 2008-04-30 | 2009-04-01 | 메모리 시스템의 카피백 최적화 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127013247A KR101471262B1 (ko) | 2008-04-30 | 2009-04-01 | 메모리 시스템의 카피백 최적화 |
Country Status (9)
Country | Link |
---|---|
US (2) | US8185706B2 (ko) |
EP (2) | EP2297642B1 (ko) |
JP (1) | JP5192587B2 (ko) |
KR (2) | KR101225924B1 (ko) |
CN (1) | CN102077176B (ko) |
AT (1) | ATE535866T1 (ko) |
ES (1) | ES2378371T3 (ko) |
HK (3) | HK1166390A1 (ko) |
WO (1) | WO2009134576A1 (ko) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621138B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
US8365041B2 (en) | 2010-03-17 | 2013-01-29 | Sandisk Enterprise Ip Llc | MLC self-raid flash data protection scheme |
KR101844346B1 (ko) * | 2010-11-05 | 2018-04-02 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US8909982B2 (en) * | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | System and method for detecting copyback programming problems |
US8910020B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | Intelligent bit recovery for flash memory |
US9058289B2 (en) | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
US8954822B2 (en) | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US8924815B2 (en) | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
US9048876B2 (en) | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9009576B1 (en) | 2013-03-15 | 2015-04-14 | Sandisk Enterprise Ip Llc | Adaptive LLR based on syndrome weight |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9361221B1 (en) | 2013-08-26 | 2016-06-07 | Sandisk Technologies Inc. | Write amplification reduction through reliable writes during garbage collection |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9158349B2 (en) | 2013-10-04 | 2015-10-13 | Sandisk Enterprise Ip Llc | System and method for heat dissipation |
US9323637B2 (en) | 2013-10-07 | 2016-04-26 | Sandisk Enterprise Ip Llc | Power sequencing and data hardening architecture |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9122636B2 (en) | 2013-11-27 | 2015-09-01 | Sandisk Enterprise Ip Llc | Hard power fail architecture |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9280429B2 (en) | 2013-11-27 | 2016-03-08 | Sandisk Enterprise Ip Llc | Power fail latching based on monitoring multiple power supply voltages in a storage device |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9250676B2 (en) | 2013-11-29 | 2016-02-02 | Sandisk Enterprise Ip Llc | Power failure architecture and verification |
US9092370B2 (en) | 2013-12-03 | 2015-07-28 | Sandisk Enterprise Ip Llc | Power failure tolerant cryptographic erase |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9549457B2 (en) | 2014-02-12 | 2017-01-17 | Sandisk Technologies Llc | System and method for redirecting airflow across an electronic assembly |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9519319B2 (en) | 2014-03-14 | 2016-12-13 | Sandisk Technologies Llc | Self-supporting thermal tube structure for electronic assemblies |
US9485851B2 (en) | 2014-03-14 | 2016-11-01 | Sandisk Technologies Llc | Thermal tube assembly structures |
US9348377B2 (en) | 2014-03-14 | 2016-05-24 | Sandisk Enterprise Ip Llc | Thermal isolation techniques |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
US8891303B1 (en) | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
CN108600043A (zh) * | 2018-04-02 | 2018-09-28 | 郑州云海信息技术有限公司 | 连接服务器和控制端的方法、服务器Memory功能模块测试方法 |
US11556267B2 (en) | 2020-08-31 | 2023-01-17 | Micron Technology, Inc. | Data management during a copyback operation |
US11436142B1 (en) * | 2021-04-23 | 2022-09-06 | EMC IP Holding Company, LLC | System and method for moving metadata without updating references used by the metadata |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050172065A1 (en) * | 2004-01-30 | 2005-08-04 | Micron Technology, Inc. | Data move method and apparatus |
US20070268905A1 (en) * | 2006-05-18 | 2007-11-22 | Sigmatel, Inc. | Non-volatile memory error correction system and method |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4020466A (en) | 1974-07-05 | 1977-04-26 | Ibm Corporation | Memory hierarchy system with journaling and copy back |
FR2292803A1 (fr) * | 1974-11-29 | 1976-06-25 | Nord Ressorts | Dispositif elastique pour la fixation de rail et systeme de fixation de rail en comportant application |
US5555379A (en) | 1994-07-06 | 1996-09-10 | Advanced Micro Devices, Inc. | Cache controller index address generator |
US5732275A (en) * | 1996-01-11 | 1998-03-24 | Apple Computer, Inc. | Method and apparatus for managing and automatically updating software programs |
JPH11259357A (ja) * | 1998-03-09 | 1999-09-24 | Seiko Epson Corp | 半導体集積装置及び不揮発性メモリ書き込み方式 |
JP3376331B2 (ja) * | 1999-11-25 | 2003-02-10 | エヌイーシーアクセステクニカ株式会社 | フラッシュメモリを用いる記憶方法及び記憶制御プログラムを記録した記録媒体 |
US6601216B1 (en) | 2000-03-31 | 2003-07-29 | Microsoft Corporation | Differential cyclic redundancy check |
US6918007B2 (en) * | 2002-09-09 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Memory controller interface with XOR operations on memory read to accelerate RAID operations |
US7287209B2 (en) * | 2004-06-03 | 2007-10-23 | Cheertek, Inc. | System and method for detecting codeword errors in error correction code or cyclic redundancy check code |
US7466597B2 (en) | 2004-09-09 | 2008-12-16 | Samsung Electronics Co., Ltd. | NAND flash memory device and copyback program method for same |
JP4218758B2 (ja) | 2004-12-21 | 2009-02-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 字幕生成装置、字幕生成方法、及びプログラム |
TWI258074B (en) | 2004-12-24 | 2006-07-11 | Phison Electronics Corp | Method for reducing data error when flash memory storage device executing copy back command |
JP4688584B2 (ja) * | 2005-06-21 | 2011-05-25 | 株式会社日立製作所 | ストレージ装置 |
US7362611B2 (en) | 2005-08-30 | 2008-04-22 | Micron Technology, Inc. | Non-volatile memory copy back |
US7512864B2 (en) * | 2005-09-30 | 2009-03-31 | Josef Zeevi | System and method of accessing non-volatile computer memory |
JP4956230B2 (ja) * | 2006-04-10 | 2012-06-20 | 株式会社東芝 | メモリコントローラ |
US20070276863A1 (en) | 2006-05-02 | 2007-11-29 | Research In Motion Limited | Plug in registration method and apparatus for push content delivery |
JP2007310680A (ja) * | 2006-05-18 | 2007-11-29 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置およびそのデータ転送方法 |
KR100881669B1 (ko) * | 2006-12-18 | 2009-02-06 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치 |
US20080288712A1 (en) * | 2007-04-25 | 2008-11-20 | Cornwell Michael J | Accessing metadata with an external host |
-
2008
- 2008-08-18 US US12/193,638 patent/US8185706B2/en not_active Expired - Fee Related
-
2009
- 2009-04-01 AT AT09739378T patent/ATE535866T1/de active
- 2009-04-01 ES ES09739378T patent/ES2378371T3/es active Active
- 2009-04-01 KR KR1020107026742A patent/KR101225924B1/ko active IP Right Grant
- 2009-04-01 KR KR1020127013247A patent/KR101471262B1/ko active IP Right Grant
- 2009-04-01 WO PCT/US2009/039160 patent/WO2009134576A1/en active Application Filing
- 2009-04-01 CN CN2009801252990A patent/CN102077176B/zh not_active Expired - Fee Related
- 2009-04-01 EP EP09739378A patent/EP2297642B1/en active Active
- 2009-04-01 JP JP2011507514A patent/JP5192587B2/ja not_active Expired - Fee Related
- 2009-04-01 EP EP11183929.6A patent/EP2407883B1/en not_active Not-in-force
-
2011
- 2011-09-09 HK HK12106948.6A patent/HK1166390A1/xx not_active IP Right Cessation
- 2011-09-09 HK HK11109601.9A patent/HK1155530A1/xx not_active IP Right Cessation
- 2011-11-25 HK HK11112791.3A patent/HK1158344A1/xx not_active IP Right Cessation
-
2012
- 2012-05-21 US US13/476,605 patent/US8572335B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050172065A1 (en) * | 2004-01-30 | 2005-08-04 | Micron Technology, Inc. | Data move method and apparatus |
US20070268905A1 (en) * | 2006-05-18 | 2007-11-22 | Sigmatel, Inc. | Non-volatile memory error correction system and method |
Also Published As
Publication number | Publication date |
---|---|
JP5192587B2 (ja) | 2013-05-08 |
HK1158344A1 (en) | 2012-07-13 |
US20090276560A1 (en) | 2009-11-05 |
EP2297642B1 (en) | 2011-11-30 |
WO2009134576A1 (en) | 2009-11-05 |
JP2011520188A (ja) | 2011-07-14 |
CN102077176A (zh) | 2011-05-25 |
ES2378371T3 (es) | 2012-04-11 |
CN102077176B (zh) | 2013-06-19 |
KR20120059658A (ko) | 2012-06-08 |
KR101471262B1 (ko) | 2014-12-10 |
ATE535866T1 (de) | 2011-12-15 |
EP2407883A1 (en) | 2012-01-18 |
EP2407883B1 (en) | 2013-08-21 |
US20120233387A1 (en) | 2012-09-13 |
US8185706B2 (en) | 2012-05-22 |
EP2297642A1 (en) | 2011-03-23 |
US8572335B2 (en) | 2013-10-29 |
KR20110008301A (ko) | 2011-01-26 |
HK1155530A1 (en) | 2012-05-18 |
HK1166390A1 (en) | 2012-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101225924B1 (ko) | 메모리 시스템의 카피백 최적화 | |
US8650463B2 (en) | Solid state drive and method of controlling an error thereof | |
US9875035B2 (en) | Memory system having a read and copy-back operation and method for the same | |
CN110347530B (zh) | 数据存储装置及其操作方法 | |
CN110096385B (zh) | 存储器系统及其操作方法 | |
WO2014164134A2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
US11907059B2 (en) | Abnormal power loss recovery method, memory control circuit unit, and memory storage device | |
KR20150006616A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
TWI640997B (zh) | 資料保護方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20170286219A1 (en) | Data storage device and operating method thereof | |
US10289328B2 (en) | Memory controller and method for handling host request based on data character | |
JP2010079856A (ja) | 記憶装置およびメモリ制御方法 | |
TW201539465A (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
US20200159455A1 (en) | Apparatus and method for performing recovery operation of memory system | |
KR20140081954A (ko) | 데이터 저장 장치 및 그것의 에러 정정 코드 처리 방법 | |
US20190026222A1 (en) | Controller and operation method thereof | |
US9996415B2 (en) | Data correcting method, memory control circuit unit, and memory storage device | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
TWI436209B (zh) | 記憶體管理表處理方法、記憶體控制器與記憶體儲存裝置 | |
KR20200019513A (ko) | 컨트롤러, 메모리 시스템 및 그 동작 방법 | |
CN110008145B (zh) | 数据保护方法、存储器控制电路单元与存储器存储装置 | |
US9990974B2 (en) | Memory system having address synchronizer and operation method thereof | |
CN117389461A (zh) | 存储器装置 | |
CN118796532A (zh) | 数据检查方法、存储器存储装置及存储器控制电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
A107 | Divisional application of patent | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151217 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161220 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171219 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20181226 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20191217 Year of fee payment: 8 |