KR101652936B1 - 전력 손실 복원에 있어서의 솔리드 스테이트 드라이브 관리 - Google Patents

전력 손실 복원에 있어서의 솔리드 스테이트 드라이브 관리 Download PDF

Info

Publication number
KR101652936B1
KR101652936B1 KR1020147027025A KR20147027025A KR101652936B1 KR 101652936 B1 KR101652936 B1 KR 101652936B1 KR 1020147027025 A KR1020147027025 A KR 1020147027025A KR 20147027025 A KR20147027025 A KR 20147027025A KR 101652936 B1 KR101652936 B1 KR 101652936B1
Authority
KR
South Korea
Prior art keywords
page
data
writes
memory controller
memory
Prior art date
Application number
KR1020147027025A
Other languages
English (en)
Other versions
KR20140129305A (ko
Inventor
리차드 피. 맨골드
리차드 엘. 쿨슨
제이알. 로버트 제이. 로이어
산지브 엔. 트리카
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20140129305A publication Critical patent/KR20140129305A/ko
Application granted granted Critical
Publication of KR101652936B1 publication Critical patent/KR101652936B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • G11C16/225Preventing erasure, programming or reading when power supply voltages are outside the required ranges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 개시의 실시예들은 전력 손실 복원에 있어서의 솔리드 스테이트 드라이브 관리를 위한 디바이스들, 방법들, 컴퓨터 판독가능 매체들 및 시스템 구성들을 기술한다. 다른 실시예들이 설명되고/되거나 청구될 수도 있다.

Description

전력 손실 복원에 있어서의 솔리드 스테이트 드라이브 관리{SOLID STATE DRIVE MANAGEMENT IN POWER LOSS RECOVERY}
본 발명의 실시예들은 일반적으로 솔리드 스테이트 드라이브들의 분야에 관한 것으로서, 더 상세하게는, 전력 손실 복원에 있어서의 솔리드 스테이트 드라이브 관리에 관한 것이다.
솔리드 스테이트 드라이브(SSD)들은 컴퓨터 시스템들의 입력/출력 성능을 현저하게 개선시킬 수도 있다. SSD들은 멀티레벨 셀(MLC) NAND를 이용하여 형성될 수도 있으며, 이 MLC NAND에서, 어레이의 각각의 메모리 셀은 적어도 2개의 데이터 비트들을 저장할 수 있는 적어도 4개의 상태들을 가질 수도 있다. MLC NAND에 있어서의 기입 동작에서, 하위 페이지에 대한 데이터가 기입될 수도 있고, 후속하여, 하위 페이지에 대응하는 상위 페이지에 대한 데이터가 기입될 수도 있다. 하위-페이지 손상은, 대응하는 상위 페이지로부터의 데이터가 셀들에 기입되고 있는 동안 전력 장애가 발생할 경우에 일어날 수도 있다.
일부 SSD들은, 전력 제어 로직뿐 아니라 전력을 저장하기 위한 커패시터들로 이루어진 부가적인 전력 장애 보호 회로를 포함한다. 하지만, 이러한 솔루션은 전력 장애 보호 회로에 요구되는 비용 및 공간 양자와 연관될 수도 있다.
실시예들은 첨부 도면과 함께 다음의 상세한 설명에 의해 용이하게 이해될 것이다. 이러한 설명을 용이하게 하기 위해, 동일한 참조부호들은 동일한 구조적 엘리먼트들을 지정한다. 실시예들은 첨부 도면들의 도에 있어서 한정으로서가 아닌 예로서 도시된다.
도 1은 다양한 실시예들에 따른 컴퓨팅 디바이스를 도식적으로 도시한다.
도 2는 다양한 실시예들에 따른 메모리 공간을 도식적으로 도시한다.
도 3은 다양한 실시예들에 따른 전력 손실 복원 동작을 도시한 플로우차트이다.
도 4는 다양한 실시예들에 따른 디프래그멘테이션(defragmentation) 동작을 도시한 플로우차트이다.
도 5는 다양한 실시예들에 따른 예시적인 시스템을 도식적으로 도시한다.
본 개시의 실시예들은 전력 손실 복원에 있어서의 솔리드 스테이트 드라이브 관리를 설명한다. 설명된 실시예들은, 하위-페이지 손상을 방지하는 것에 전용된 커패시터들의 사용없이 하위-페이지 손상으로부터의 데이터 손실을 부분적으로 또는 완전히 감소시키는 전력 손실 복원을 제공할 수도 있다.
예시적인 실시예들의 다양한 양태들은, 당업자에 의해 그 작업의 실체를 다른 당업자에게 전달하기 위해 일반적으로 채용되는 용어들을 사용하여 설명될 것이다. 하지만, 대안적인 실시예들이 설명된 양태들의 오직 일부만으로 실시될 수도 있음이 당업자에게 명백할 것이다. 설명의 목적으로, 특정 수치들, 재료들, 및 구성들이 예시적인 실시예들의 철저한 이해를 제공하기 위해 기재된다. 하지만, 대안적인 실시예들은 특정 상세들없이도 실시될 수도 있음이 당업자에게 명백할 것이다. 다른 경우들에 있어서, 널리 공지된 특징들은 예시적인 실시예들을 모호하게 하지 않도록 생략되거나 단순화된다.
추가로, 다양한 동작들이 다중의 별개의 동작들로서, 차례로, 예시적인 실시예들을 이해하는데 가장 도움이 되는 방식으로 설명될 것이지만, 설명의 순서는, 이들 동작들이 반드시 순서 의존적임을 암시하는 것으로서 해석되지 않아야 한다. 특히, 이들 동작들이 제시의 순서로 수행될 필요는 없다.
어구 "일부 실시예들에 있어서"는 반복적으로 사용된다. 그 어구는, 일반적으로, 동일한 실시예들을 지칭하지는 않지만, 그럴 수도 있다. 용어 "구비하는 것", "갖는 것" 및 "포함하는 것"은, 컨텍스트가 달리 지시하지 않으면 동의어이다. 어구 "A 및/또는 B"는 (A), (B), 또는 (A 및 B)를 의미한다. 어구 "A/B"는, 어구 "A 및/또는 B"와 유사하게 (A), (B), 또는 (A 및 B)를 의미한다. 어구 "A, B 및 C 중 적어도 하나"는 (A), (B), (C), (A 및 B), (A 및 C), (B 및 C) 또는 (A, B 및 C)를 의미한다. 어구 "(A) B"는 (B) 또는 (A 및 B)를 의미하며, 즉, A는 옵션적이다.
본 명세서에서 사용되는 바와 같이, 용어 "모듈"은, 하나 이상의 소프트웨어 또는 펌웨어 프로그램들을 실행하는 주문형 집적회로(ASIC), 전자 회로, 프로세서(공유식, 전용식, 또는 그룹식) 및/또는 메모리(공유식, 전용식, 또는 그룹식), 조합 논리 회로, 및/또는 설명된 기능을 제공하는 다른 적합한 컴포넌트들을 지칭하거나 그 일부이거나 또는 그들을 포함할 수도 있다.
도 1은 다양한 실시예들에 따른 컴퓨팅 디바이스(100)를 도식적으로 도시한다. 디바이스(100)는 솔리드 스테이트 드라이브(SSD)(106)와 커플링된 호스트(104)를 포함할 수도 있다. SSD(106)는, 비휘발성 메모리(NVM)(112)와 커플링되는 메모리 제어기(108)를 포함할 수도 있다. SSD(106)는, NVM(112)을 사용하여 영구 데이터를 저장하는 저장 디바이스일 수도 있다. NVM(112)은 NAND 플래시 메모리, 상변화 메모리(PCM), 상변화 메모리 및 스위치(PCMS) 등과 같지만 이에 한정되지 않는 솔리드 스테이트 메모리일 수도 있다. 다른 실시예들에 있어서, NVM(112)은 다른 타입들의 솔리드 스테이트 메모리일 수도 있다. NVM(112)은 싱글-레벨 셀(SLC) 또는 MLC 메모리일 수도 있다.
호스트(104)는, 메모리 액세스 요청들을 생성하고 메모리 액세스 요청들을 SSD(106)로 전송하는 엔터티, 예를 들어, 어플리케이션, 운영 시스템 등일 수도 있다. 본 명세서에서 사용되는 바와 같이, 메모리 액세스 요청은 SSD(106)에 지시된 메모리 액세스를 위한 요청, 예를 들어, 판독, 기입, 소거 등일 수도 있다.
메모리 제어기(108)는, 메모리 액세스 요청에 기초하여 NVM(112)에 액세스하는 모듈일 수도 있다. 메모리 제어기(108)는 부가적으로, 설명될 바와 같이, NVM(112)에 저장된 데이터의 무결성을 보장하기 위해 다양한 관리 동작들을 수행할 수도 있다.
디바이스(100)는 도시된 바와 같이 메모리 제어기(108)와 커플링된 운영 메모리(116)를 더 포함할 수도 있다. 운영 메모리(116)는 데이터/명령들의 런-타임 액세스를 용이하게 하기 위해 액세스가능한 방식으로 데이터 및/또는 명령들을 저장할 수도 있다. 일부 실시예들에 있어서, 운영 메모리(116) 또는 그 일부들은 NVM(112), 휘발성 메모리(예를 들어, 랜덤 액세스 메모리(RAM)), 캐시 메모리 등의 부분일 수도 있다.
운영 메모리(116)는, 메모리 제어기(108)에 의해 유지되는 논리 대 물리(L2P) 인디렉션 테이블(120)(이하, "테이블(120)"이라 함)을 특히 포함할 수도 있다. 테이블(120)은 NVM(112)의 물리 어드레스들에 논리 어드레스들을 매핑할 수도 있다. 테이블(120)은, 호스트(104)로부터의 메모리 액세스 요청들에 의해 참조되는 논리 메모리로서 작동할 수도 있다. 예를 들어, 메모리 제어기(108)는, 논리 어드레스를 포함하는 메모리 액세스 요청을 호스트(104)로부터 수신하고, 그 후, 대응하는 물리 어드레스를 테이블(120)에 기초하여 결정할 수도 있다.
운영 메모리(116)는 또한 컨텍스트 정보(124)를 포함할 수도 있다. 컨텍스트 정보(124)는, 운영 상태로 하여금 인터럽션 이후 재확립되거나 스케줄링되거나 또는 비-스케줄링되게 하기 위해 저장되었던 상태 정보, 예를 들어, 컨텍스트를 포함할 수도 있다. 컨텍스트 정보는, NVM(112)에 주기적으로 저장되는 다른 상태 정보와 테이블(120)의 조합일 수도 있다. 컨텍스트 정보(124)의 최신 사본이, 파워-업 시 NVM(112)의 시작 상태를 설정하기 위해 전력 손실 복원(PLR) 동작의 시작부에서 메모리 제어기(108)에 의해 사용될 수도 있다. PLR 동작 동안, 컨텍스트 정보(124)가 오직 저장되었던 시간까지만 최신식일 것이라면, 메모리 제어기(108)는, 컨텍스트 정보(124)가 마지막으로 저장된 이래로 기입되었던 NVM(112)을 스캔함으로써 컨텍스트 정보(124)를 업데이트하려고 시도하기 위해 리플레이 동작을 수행할 수도 있다.
테이블(120) 및/또는 컨텍스트 정보(124)는 운영 메모리(116)의 비휘발성 부분, 예를 들어, NVM(112)의 일부에 저장될 수도 있다.
도 2는 일부 실시예들에 따른 NAND 디바이스, 예를 들어, NVM(112)의 메모리 공간(200)을 도식적으로 도시한다. 특히, 메모리 공간(200)은 다수의 다이, 예를 들어, 다이1(204), …, 다이4(208)를 포함한다.
각각의 다이는 다수의 소거 블록(EB)들을 포함할 수도 있으며, 각각의 EB는 다수의 페이지들을 포함한다. 예를 들어, 다이1(204)은, 각각의 EB가 64개의 페이지들을 갖는 EB1(212), …, EB128(216)로 도시된다. 다이의 페이지들 각각은 상위 또는 하위 페이지일 수도 있으며, 상보적인 하위 또는 상위 페이지에 대응할 수도 있다. 본 명세서에서 설명된 실시예들에 대해, P1은 하위 페이지인 것으로 고려될 것이고, P3은 P1에 대응하는 상위 페이지인 것으로 고려될 것이다.
메모리 공간(200)은 다수의 논리 밴드들을 포함할 수도 있으며, 각각의 논리 밴드는 다이 공간들 각각으로부터 대응하는 EB를 포함한다. 예를 들어, 밴드1(220)은 각각의 다이로부터 EB1을 포함할 수도 있으며, 밴드128(224)은 각각의 다이로부터 EB128을 포함할 수도 있다.
EB들, 페이지들, 다이 및 밴드들의 개수는 오직 예로서 도시됨이 이해될 것이다. 다른 실시예들은 그 구체적으로 도시된 것 이외의 개수들을 포함할 수도 있다.
일부 실시예들에 따르면, 판독 및 기입 동작들은 페이지 입상도에서 발생할 수도 있지만, 소거 동작들은 EB 입상도에서 발생할 수도 있다. 재기입 이전, 충진된 페이지는 EB의 부분으로서 소거되어야 한다. EB에 기입된 데이터가 재기입되기 이전에 소거될 것이기 때문에, 디프래그멘테이션(디프래그) 동작은, 소거가 발생하기 전에, 유효한 데이터를 일 EB로부터 다른 EB로 이동시킬 수도 있다.
전력 손실 이후, 메모리 제어기(108)는 PLR 동작을 수행할 수도 있다. PLR 동작에 있어서, 메모리 제어기(108)는, 테이블(120)의 더 이른 버전을 포함할 것인 가장 최근에 저장된 컨텍스트를 사용하여 테이블(120)을 재형성할 수도 있다. 그 후, 메모리 제어기(108)는, 테이블(120)을 추가로 업데이트하려는 시도에 있어서, 컨텍스트가 마지막 저장되었던 시간 이후, 예를 들어, 액티브 밴드에 발생하였던 기입들을 결정하기 위해 NVM(112)을 스캔함으로써 리플레이 동작을 수행할 수도 있다.
종래의 시스템들에 있어서, 예를 들어, NVM(112)으로의 기입들에 대한 에러 정정 코드(ECC)들을 체크함으로써 일단 에러가 검출되면 리플레이 동작이 중지할 수도 있다. EB1(212)의 P1이 하위-페이지 손상 이벤트로 인해 손상되었음, 예를 들어, EB1(212)의 P3에 기입할 경우에 전력 장애가 발생하였음을 가정한다. 그 후, 리플레이 동작은 P1에서 중지할 것이다. 디프래그 동작 동안, 논리 블록 어드레스(LBA) A가 P2 내의 위치에 디프래그되었고 디프래그된 위치로부터 삭제되었으면, LBA A의 데이터는 하위-페이지 손상으로 인해 회복불가능하게 손실될 수도 있다. 본 개시의 실시예들은, 이들 경우 및 다른 경우들에 있어서 데이터의 손실을 방지하기 위해 사용될 수도 있는 메커니즘들을 제공한다.
도 3은 일부 실시예들에 따른 전력 손실 복원(PLR) 동작(300)을 도시한 플로우차트이다. PLR 동작(300)은 일부 실시예들에 있어서 메모리 제어기(108)에 의해 수행될 수도 있다.
PLR 동작(300)은, 블록 304에서, 전력 손실 이벤트를 검출하는 것을 포함할 수도 있다.
블록 304 이후, PLR 동작(300)은, 블록 308에서, 컨텍스트 정보(124)를 검색하는 것을 포함할 수도 있다. 컨텍스트 정보(124)는 NVM(112)로부터 검색되고 운영 메모리(116)로 이동될 수도 있다. 이는, 컨텍스트 정보(124)가 일부 실시예들에 있어서 마지막 저장되었던 상태로 테이블(120)을 설정할 수도 있다.
블록 308 이후, PLR 동작(300)은, 컨텍스트 정보(124)의 마지막 저장에 후속하여 발생되었던 블록 312 내지 블록 336에서의 기입들을 리플레이하도록 진행할 수도 있다. 기입들의 리플레이에 있어서, 컨텍스트 정보(124)가 마지막 저장되었던 시간 이래로 기입된 밴드들은 기입된 순서로 스캐닝될 수도 있다. 이는 각각의 밴드에 기입된 시퀀스 번호로부터 결정될 수도 있다.
PLR 동작(300)은, 블록 312에서, 인덱스 값을 초기화하는 것을 포함할 수도 있다. 예를 들어, i는 1과 동일하게 설정될 수도 있다. 인덱스 값 i는 페이지에 대응할 수도 있다.
블록 312 이후, PLR 동작(300)은, 블록 316에서, 에러가 기입(i)과 연관되는지 여부를 결정하는 것을 포함할 수도 있다. 이는, 기입(i)의 데이터와 연관된 ECC를 체크함으로써 수행될 수도 있다.
블록 316에서 어떠한 에러도 기입(i)과 연관되지 않는다고 결정되는 경우, PLR 동작(300)은 블록 320에서 테이블(120)을 기입(i)으로 업데이트하는 것으로 진행할 수도 있다.
블록 320 이후, PLR 동작(300)은, 블록 324에서, 고려할 임의의 부가적인 기입들이 존재하는지 여부를 결정하는 것을 포함할 수도 있다.
부가적인 기입들이 존재하면, 블록 328에서 인덱스 값이 증분될 수도 있으며, PLR 동작(300)은 블록 316으로 루프백할 수도 있다.
블록 324에서 어떠한 부가적인 기입들도 존재하지 않는다고 결정되면, PLR 동작(300)은 블록 332에서 종료할 수도 있다.
블록 316에서 에러가 기입(i)과 연관된다고 결정되는 경우, PLR 동작(300)은 블록 336으로 진행할 수도 있다.
블록 336에서, PLR 동작(300)은 에러들의 개수가 에러들의 미리결정된 임계 개수 이상인지 여부를 결정하는 것을 포함할 수도 있다. 미리결정된 임계 개수 이상이라면, PLR 동작(300)은 블록 332에서 종료할 수도 있다. 다양한 실시예들에 있어서, 에러들의 미리결정된 임계 개수는 연속적인 에러들, 주어진 개수의 메모리 위치들, 예를 들어, 페이지들에 대한 에러들의 개수, 또는 기타 다른 값일 수도 있다. 미리결정된 임계 개수는 1보다 큰 임의의 수일 수도 있다.
블록 336에서 에러들의 개수가 에러들의 미리결정된 임계 개수 미만이라고 결정되면, PLR 동작(300)은 블록 324로 진행할 수도 있다.
다양한 실시예들에 있어서, 에러와 연관된 기입이 업데이트되었던 테이블(120)의 위치는 널 데이터 또는 불량 데이터를 나타내도록 업데이트될 수도 있다. 하지만, 종래의 PLR들과 대조적으로, PLR 동작(300)은 에러의 제1 검출 시에 중지할 수도 있다. 이러한 방식으로, 테이블(120)은 유효한 기입들로부터 후속 메모리 위치들, 예를 들어, 후속 페이지까지의 정보로 업데이트될 수도 있다.
예를 들어, 전력 손실 이벤트가 EB1(212)의 P3의 기입 동안에 발생하는 실시예를 고려한다. 이 실시예에 있어서, 에러는 P1 데이터의 기입으로 검출될 수도 있다. 에러들의 임계 개수가 도달되지 않았다고 가정하면, PLR 동작(300)은 테이블(120)을 이러한 기입으로 업데이트하는 것을 중지하지 않을 수도 있다. 대신, P2로의 기입이 또한 스캐닝될 수도 있고, P2로 기입된 유효한 데이터가 테이블(120)에서 성공적으로 복원되고 업데이트될 수도 있다.
설명된 방식에 있어서, 메모리 제어기(108)는, NVM(112)으로의 모든 기입들이 재기입될 때까지 컨텍스트 정보(124)가 마지막으로 저장되었던 시간에 후속하여 발생된 복수의 기입들로, 또는 리플레이와 연관된 에러들의 개수가 미리결정된 임계치 이상이라는 결정으로, 테이블(120)을 순차적으로 업데이트할 수도 있다. 리플레이와 연관된 에러들의 개수가 미리결정된 임계치 이상이라는 결정의 포인트에서, 메모리 제어기(108)는 PLR 동작(300)을 중단할 수도 있다.
도 3이 유효한 데이터의 복원을 용이하게 할 수도 있는 PLR 동작을 기술하지만, 다른 실시예들은, 데이터의 보안 상태 및 미보안 상태를 활용하여 유효한 데이터의 손실 또는 손상을 방지할 수도 있는 동작들을 기술한다.
도 4는 본 발명의 실시예에 따른 디프래그 동작(400)의 플로우차트이다. 디프래그 동작(400)은 메모리 제어기(108)에 의해 수행될 수도 있다.
디프래그 동작(400)은, 블록 404에서, 디프래그된 데이터를 소스 EB로부터 타깃 EB로 기입하는 것을 포함할 수도 있다. 디프래그된 데이터는 소스, 또는 디프래그된 소거 블록에서의 마지막 남겨진 유효한 데이터일 수도 있다.
블록 404 이후, 디프래그 동작(400)은, 블록 408에서, 디프래그된 데이터가 타깃 EB의 상위 페이지에 기입되는지 여부를 결정하는 것을 포함할 수도 있다.
블록 408에서 디프래그된 데이터가 상위 페이지에 기입된다고 결정되면, 디프래그 동작(400)은, 블록 412에서, 디프래그된 데이터를 보안 상태와 연관시키는 것을 포함할 수도 있다.
블록 408에서 디프래그된 데이터가 상위 페이지에 기입되지 않는다고 결정되면, 디프래그 동작(400)은, 블록 420에서, 디프래그된 데이터를 미보안 상태와 연관시키는 것을 포함할 수도 있다. 일부 실시예들에 있어서, 데이터는, 소스 EB의 소거를 회피하기 위해 소스 EB에 저장됨에 따라 데이터에 대응하는 플래그를 설정하는 메모리 제어기(108)에 의해 미보안 상태와 연관될 수도 있다. 메모리 제어기(108)는 추가로, 디프래그된 데이터가 기입되었던 타깃 EB의 위치의 위치 스탬프를 결정하고 그 위치 스탬프를 더 나중의 참조를 위해 저장할 수도 있다.
블록 412 이후, 디프래그 동작(400)은, 블록 416에서, 다른 데이터가 상위 페이지에 성공적으로 기입되는지 여부를 결정하는 것을 포함할 수도 있다. 상위 페이지는, 디프래그된 데이터가 기입되었던 하위 페이지에 대응하는 타깃 EB의 상위 페이지일 수도 있다. 다른 데이터는 다른 호스트 기입들일 수도 있다.
블록 416에서 데이터가 상위 페이지에 기입되지 않았다고 결정되면, 디프래그 동작(400)은 블록 416으로 루프백함으로써 상위 페이지로의 기입들을 계속 모니터할 수도 있다. 일부 실시예들에 있어서, 메모리 제어기(108)는 블록 412에서 미리 저장된 위치 스탬프에 기초하여 상위 페이지에서의 위치를 식별할 수도 있다. 상위 페이지에서의 이러한 위치는 일부 실시예들에 있어서 성공적인 기입들을 위해 모니터될 수도 있다.
블록 416에서 데이터가 상위 페이지에 기입된다고 결정되면, 디프래그 동작(400)은, 블록 420에서, 디프래그된 데이터를 보안 상태와 연관시키는 것을 포함할 수도 있다.
블록 420 이후, 디프래그 동작(400)은, 블록 424에서, 타깃 EB에서의 보안 상태와 연관된 이후 소스 EB에서 디프래그된 데이터를 소거하는 것을 포함할 수도 있다. 따라서, 디프래그된 데이터의 소거는, 디프래그된 데이터가 그 새로운 위치에서 보안 상태에 있을 때까지 연기될 수도 있다.
도 2에 관하여, 디프래그 동작(400)의 특정 예는 다음을 포함할 수도 있다. EB128(216)의 디프래깅에 있어서, 논리 블록 어드레스(LBA) 7로부터의 데이터는 EB1(212)의 P1에 기입될 수도 있다(블록 404). 이는 EB128(216)의 마지막 유효한 데이터일 수도 있으며, 이에 의해, EB128(216)을 소거하기 위한 선행하는 조건을 충족시킬 수도 있다.
메모리 제어기(108)는 EB1(212)의 P1이 하위 페이지임을 결정하고(블록 408), 따라서, EB128(216)에서의 LBA 7을 미보안 상태와 연관시킬 수도 있다(블록 412). 이는 EB128(216)의 소거를 방지할 수도 있다.
디프래그 동작(400)의 컨텍스트에 있어서, 메모리 제어기(108)는 EB1(212)로의 기입들을 모니터할 수도 있다. 일단 P1에 대응하는 상위 페이지인 P3에 데이터가 기입되면, 메모리 제어기(108)는 EB128(216)에서의 LBA 7을 보안 상태와 연관시킬 수도 있다(블록 420). 이는 LBA 7을 포함한 EB128(216)의 소거를 가능케 할 수도 있다.
LBA 7이 보안 상태로 설정되기 이전에 EB1(212)로부터 손실된 경우, 예를 들어, 하위-페이지 손상이 발생한 경우, 메모리 제어기(108)는 EB128(216)로부터 LBA 7에 액세스할 수도 있다. 이러한 방식으로, NVM(112)은 리플레이의 끝에서 일관된(기입-순서 거동) 상태로 남겨질 수도 있다. 즉, EB128(216)의 디프래깅이, EB1(212)에 재기입되는 LBA 7로 다시 수행될 수도 있다.
일부 실시예들에 있어서, 디프래그 동작(400)의 부분들은 소스 EB의 소거 동작을 연기된 소거 큐에 위치시키는 메모리 제어기(108)에 의해 구현될 수도 있다. 소거 동작은, 소스 EB로부터의 모든 유효한 데이터가 타깃 EB에 기입되었고 타깃 EB 내에서 보안 상태와 연관된다는 결정까지 연기된 소거 큐에 유지될 수도 있다.
일부 실시예들에 있어서, 하위 페이지에 기입된 데이터는, 호스트가 유효한 데이터를 대응하는 상위 페이지에 기입할 때까지 미보안 상태와 연관될 수도 있다. 하지만, 다른 실시예들에 있어서, 패드 또는 널 데이터가 대응하는 상위 페이지에 기입될 수도 있다.
예를 들어, 메모리 제어기(108)가 EB1(212)의 P1로의 데이터의 기입 이후에 호스트(104)로부터 플러시 커맨드를 수신하는 실시예를 고려한다. 이 예에 있어서, 메모리 제어기(108)는 플러시 커맨드의 수신 이전에 기입된 모든 데이터의 유효성을 보장하기 위해 (NAND 디바이스의 특정 기입 시퀀스에 있어서 EB1(212)의 P1과 P3 간의 임의의 다른 메모리 위치들에 부가하여) 패드 데이터를 대응하는 상위 페이지(3)에 기입할 수도 있다. 그 후, 메모리 제어기(108)는 P1에서의 데이터를 보안 상태로 설정하고 플러시 완료 메시지를 호스트(104)에 리턴할 수도 있다. 패드 데이터는 NVM(112)의 기입 사이클들을 감소 또는 제거하는 방식으로 페이지들에 기입되도록 설계될 수도 있다. 따라서, 전력 손실로 인한 데이터 손상의 가능성이 감소 또는 제거될 수도 있다.
본 개시의 실시예들은, 요구되는 대로 구성하기 위한 임의의 적합한 하드웨어 및/또는 소프트웨어를 사용하는 시스템에 구현될 수도 있다. 도 5는, 일 실시예에 대해, 프로세싱 모듈(504), 프로세싱 모듈(504)에 커플링된 메모리(508), 프로세싱 모듈(504)에 커플링된 네트워크 인터페이스(들)(512), 및 프로세싱 모듈(504)에 커플링된 입력/출력 디바이스(들)(516)를 포함하는 예시적인 시스템(500)을 도시한다.
프로세싱 모듈(504)은 하나 이상의 싱글-코어 또는 멀티-코어 프로세서들을 포함할 수도 있다. 프로세서들은 범용 프로세서들과 전용 프로세서들(예를 들어, 그래픽스 프로세서들, 어플리케이션 프로세서들 등)의 임의의 조합을 포함할 수도 있다. 프로세싱 모듈(504)의 하나 이상의 프로세서들 상에서 실행하는 어플리케이션들, 운영 시스템들은 도 1에 관하여 상기 설명된 바와 유사한 메모리 제어기로 지향된 메모리 액세스 요청들을 발행하는 호스트(104)를 포함할 수도 있다.
일 실시예에 대한 프로세싱 모듈(504)은 메모리(508), 네트워크 인터페이스(들)(512), 및/또는 I/O 디바이스(들)(516)로의 임의의 적합한 인터페이스를 제공하기 위한 임의의 적합한 인터페이스 제어기들을 포함할 수도 있다.
프로세싱 모듈(504)은 시스템 인 패키지(SiP) 또는 시스템 온 칩(SoC) 패키지를 형성하기 위해 제어 로직과 함께 패키징된 하나 이상의 프로세서들을 포함할 수도 있다. 예를 들어, 프로세서(들) 중 하나 이상은 메모리 제어기(520)를 SoC 패키지로서 제공하기 위해 제어 로직과 통합될 수도 있다.
메모리(508)는 시스템(500)에 대한 데이터 및/또는 명령들을 로딩 및 저장하는데 사용될 수도 있다. 메모리는, 예를 들어, 데이터 및/또는 명령들을 저장하는데 사용되는 하나 이상의 유형의 비-일시적인 컴퓨터 판독가능 매체를 포함할 수도 있다. 메모리/저장부(508)는 동적 랜덤 액세스 메모리(DRAM)와 같지만 이에 한정되지 않는 임의의 적합한 휘발성 메모리를 포함할 수도 있다.
네트워크 인터페이스(들)(512)는 하나 이상의 네트워크(들) 상으로 및/또는 임의의 다른 적합한 디바이스와 통신하기 위해 시스템(500)에 하나 이상의 인터페이스(들)를 제공할 수도 있다. 네트워크 인터페이스(들)(512)는 임의의 적합한 하드웨어 및/또는 펌웨어를 포함할 수도 있다. 일 실시예에 대한 네트워크 인터페이스(들)(512)는, 예를 들어, 네트워크 어댑터, 무선 네트워크 어댑터, 전화기 모뎀, 및/또는 무선 모뎀을 포함할 수도 있다. 무선 통신을 위해, 네트워크 인터페이스(들)(512)는 시스템(500)을 무선 액세스 네트워크에 무선으로 커플링하기 위해 하나 이상의 안테나들을 사용할 수도 있다.
용어 "무선" 및 그 파생물들은, 비-솔리드 매체를 통한 변조된 전자기 방사의 사용을 통해 데이터를 통신할 수도 있는 회로들, 디바이스들, 시스템들, 방법들, 기술들, 통신 채널들 등을 기술하는데 사용될 수도 있다. 그 용어는, 일부 실시예들에 있어서는 그렇지 않을 수도 있지만 관련 디바이스들이 어떠한 와이어들도 포함하지 않음을 암시하지는 않는다. 네트워크 인터페이스(들)(512)는 Wi-Fi (IEEE 802.11 패밀리), WiMAX (IEEE 802.16 패밀리), IEEE 802.20, 롱 텀 에볼루션(LTE), Ev-DO, HSPA+, HSDPA+, HSUPA+, EDGE, GSM, GPRS, CDMA, TDMA, DECT, 블루투스, 그 파생물들 뿐 아니라 2G, 3G, 4G, 5G 및 그 이상으로서 명시된 임의의 다른 무선 프로토콜들을 포함하지만 이에 한정되지 않는 임의의 다수의 무선 표준들 또는 프로토콜들을 구현할 수도 있다. 일부 실시예들에 있어서, 네트워크 인터페이스(들)(512)는 Wi-Fi 및 블루투스와 같은 더 단거리 무선 통신에 전용된 제 1 통신 모듈, 및 GPS, EDGE, GPRS, CDMA, WiMAX, LTE, Ev-DO, 기타 등등과 같은 더 장거리 무선 통신에 전용된 제 2 통신 모듈을 포함할 수도 있다.
I/O 디바이스(들)(516)는, 데이터 및/또는 명령들을 비휘발성 방식으로 저장하도록 설계된 저장부(520)를 포함할 수도 있다. 저장부(520)는 SSD(106)를 포함할 수도 있다. 저장부(520)는 부가적으로, 하드 디스크 드라이브(HDD), 컴팩트 디스크 (CD) 드라이브, 디지털 다기능 디스크 (DVD) 드라이브 등을 포함하지만 이에 한정되지 않는 다른 타입들의 저장부를 포함할 수도 있다.
저장부(520)는, 물리적으로 시스템(500)이 인스톨되는 디바이스의 부분이거나 또는 그 디바이스에 의해 액세스가능할 수도 있지만 필수적으로 그 디바이스의 부분일 필요는 없는 저장 리소스를 포함할 수도 있다. 예를 들어, 저장부(520)의 일부는 네트워크 인터페이스(들)(512)를 통해 네트워크를 거쳐 액세스될 수도 있다.
I/O 디바이스(들)(516)는 또한, 시스템(500)과의 사용자 상호작용을 가능케 하도록 설계된 사용자 인터페이스들, 시스템(500)과의 주변기기 컴포넌트 상호작용을 가능케 하도록 설계된 주변기기 컴포넌트 인터페이스들, 및/또는 시스템(500)과 관련된 환경 조건들 및/또는 위치 정보를 결정하도록 설계된 센서들을 포함할 수도 있다. 다양한 실시예들에 있어서, 사용자 인터페이스들은, 예를 들어, 액정 디스플레이, 터치 스크린 디스플레이 등과 같은 디스플레이, 스피커, 마이크로폰, 스틸 카메라, 비디오 카메라, 플래시라이트(예를 들어, 발광 다이오드 플래시), 및 키보드를 포함할 수 있지만 이에 한정되지 않는다. 다양한 실시예들에 있어서, 주변기기 컴포넌트 인터페이스들은 비휘발성 메모리 포트, 오디오 잭, 및 전력 공급 인터페이스를 포함할 수도 있지만 이에 한정되지 않는다. 다양한 실시예들에 있어서, 센서들은 자이로 센서, 가속도계, 근접 센서, 주변광 센서, 및 포지셔닝 유닛을 포함할 수도 있지만 이에 한정되지 않는다. 포지셔닝 유닛은 또한, 포지셔닝 네트워크의 컴포넌트들, 예를 들어, 글로벌 포지셔닝 시스템(GPS) 위성과 통신하기 위해 네트워크 인터페이스(들)(512)의 일부이거나 그와 상호작용할 수도 있다.
다양한 실시예들에 있어서, 시스템(500)은 랩탑 컴퓨팅 디바이스, 태블릿 컴퓨팅 디바이스, 넷북, 스마트폰 등과 같지만 이에 한정되지 않는 모바일 컴퓨팅 디바이스일 수도 있다. 다양한 실시예들에 있어서, 시스템(500)은 더 많거나 더 적은 컴포넌트들, 및/또는 상이한 아키텍처들을 가질 수도 있다.
본 개시는 하기에 설명된 실시예들과 같은 다양한 예시적인 실시예들을 포함할 수도 있다.

Claims (24)

  1. 솔리드-스테이트 드라이브 관리를 위한 장치로서,
    비휘발성 메모리; 및
    상기 비휘발성 메모리와 커플링된 메모리 제어기
    를 포함하고,
    상기 메모리 제어기는,
    유효한 데이터를 제1 소거 블록으로부터 제2 소거 블록의 페이지에 기입하고;
    상기 유효한 데이터가 상기 페이지에서 보안 상태와 연관된다고 결정하며; 그리고
    상기 유효한 데이터가 상기 보안 상태와 연관된다는 결정에 기초하여 상기 제1 소거 블록을 소거하도록
    구성됨으로써 상기 비휘발성 메모리를 디프래그먼트(defragment)하도록 구성되는 장치.
  2. 제1항에 있어서,
    상기 페이지는 하위 페이지이고,
    상기 메모리 제어기는,
    상기 하위 페이지에 대응하는 상위 페이지에 데이터가 성공적으로 기입된다고 결정하도록
    구성됨으로써 상기 유효한 데이터가 상기 보안 상태와 연관된다고 결정하도록 더 구성되는 장치.
  3. 제2항에 있어서,
    상기 유효한 데이터는 논리 블록 어드레스(LBA)에 대응하는 장치.
  4. 제2항에 있어서,
    상기 메모리 제어기는,
    상기 유효한 데이터의 상기 하위 페이지에의 기입에 기초하여 상기 하위 페이지와 연관된 위치 스탬프를 저장하고; 그리고
    상기 위치 스탬프에 기초하여 상기 상위 페이지를 식별하도록 더 구성되는 장치.
  5. 제2항에 있어서,
    상기 메모리 제어기는, 상기 상위 페이지가 성공적으로 기입된다는 결정때까지 연기된 소거 큐에서 소거 동작을 스케줄링하도록 더 구성되는 장치.
  6. 제2항에 있어서,
    상기 메모리 제어기는,
    상기 유효한 데이터를 상기 하위 페이지에 기입한 이후에 플러시 커맨드를 수신하고;
    패드 데이터를 상위 페이지에 기입하며; 그리고
    상기 패드 데이터의 상기 상위 페이지에의 기입 이후에 플러시 완료 메시지를 리턴하도록 더 구성되는 장치.
  7. 제1항에 있어서,
    상기 메모리 제어기는,
    상기 제2 소거 블록의 상기 페이지가 하위 페이지라고 결정하고; 그리고
    상기 페이지가 상기 하위 페이지라는 상기 결정에 기초하여 상기 유효한 데이터가 미보안 상태와 연관된다고 결정하도록 더 구성되는 장치.
  8. 제7항에 있어서,
    상기 메모리 제어기는,
    상기 제2 소거 블록의 상위 페이지에의 기입들을 모니터하고; 그리고
    모니터된 기입들에 기초하여 상기 유효한 데이터가 상기 보안 상태와 연관된다고 결정하도록 더 구성되는 장치.
  9. 제1항에 있어서,
    복수의 메모리 액세스 요청들을 상기 메모리 제어기에 발행하도록 구성된 호스트를 더 포함하는 장치.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 장치는 솔리드-스테이트 드라이브를 포함하는 장치.
  11. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 장치를 무선 액세스 네트워크에 무선으로 커플링하도록 구성된 무선 인터페이스를 더 포함하는 장치.
  12. 제11항에 있어서,
    상기 장치는 모바일 컴퓨팅 디바이스인 장치.
  13. 솔리드-스테이트 드라이브 관리를 위한 장치로서,
    데이터를 제1 소거 블록으로부터 제2 소거 블록 내의 하위 페이지에 기입하기 위한 수단;
    상기 제2 소거 블록 내의 상위 페이지에의 기입들을 모니터하기 위한 수단; 및
    모니터된 기입들에 기초하여 상기 제1 소거 블록의 소거를 스케줄링하기 위한 수단
    을 포함하는 장치.
  14. 제13항에 있어서,
    상기 상위 페이지에의 기입의 완료에 기초하여 상기 제1 소거 블록의 소거를 스케줄링하기 위한 수단을 더 포함하는 장치.
  15. 제14항에 있어서,
    상기 상위 페이지에의 기입이 성공적으로 완료된다는 결정때까지 연기된 소거 큐에서 소거 동작을 스케줄링하기 위한 수단을 더 포함하는 장치.
  16. 제14항에 있어서,
    상기 데이터의 상기 하위 페이지에의 기입에 기초하여 상기 데이터를 미보안 상태와 연관시키기 위한 수단; 및
    상기 데이터의 상기 미보안 상태와의 연관 이후, 상기 상위 페이지에의 기입들의 상기 모니터에 기초하여 상기 데이터를 보안 상태와 연관시키기 위한 수단을 더 포함하는 장치.
  17. 솔리드-스테이트 드라이브 관리를 위한 방법으로,
    솔리드-스테이트 드라이브(SSD)와 관련된 전력 손실 이벤트를 검출하는 단계;
    검출된 전력 손실 이벤트에 기초하여 저장된 컨텍스트 정보에 액세스하는 단계;
    상기 저장된 컨텍스트 정보에 기초하여 논리 대 물리(L2P) 인디렉션 테이블을 복구하는 단계;
    상기 컨텍스트 정보의 저장에 후속하여 발생되었던 상기 SSD의 비휘발성 메모리(NVM)에의 복수의 기입들에 기초하여 상기 L2P 인디렉션 테이블을 업데이트하는 단계;
    상기 업데이트하는 단계와 연관된 에러들의 개수가 1보다 큰 미리결정된 임계치보다 큰지를 결정하는 단계; 및
    상기 업데이트하는 단계와 연관된 에러들의 개수가 미리결정된 임계치보다 크다는 결정에 기초하여 상기 업데이트하는 단계를 중단하는 단계
    를 포함하는 방법.
  18. 제17항에 있어서,
    상기 복수의 기입들 중 개별 기입들이 에러와 연관되는지 여부를 결정하기 위해 상기 개별 기입들과 연관된 에러 정정 코드(ECC)를 체크하는 단계를 더 포함하는 방법.
  19. 제17항에 있어서,
    상기 복수의 기입들은 복수의 페이지 기입들을 포함하는 방법.
  20. 제17항에 있어서,
    상기 미리결정된 임계치는 연속적인 에러들의 개수인 방법.
  21. 제17항에 있어서,
    상기 미리결정된 임계치는 페이지 에러들의 개수인 방법.
  22. 삭제
  23. 삭제
  24. 삭제
KR1020147027025A 2012-03-30 2012-06-07 전력 손실 복원에 있어서의 솔리드 스테이트 드라이브 관리 KR101652936B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/US2012/031709 WO2013147894A1 (en) 2012-03-30 2012-03-30 Solid state drive management in power loss recovery
USPCT/US2012/031709 2012-03-30
PCT/US2012/041413 WO2013147923A1 (en) 2012-03-30 2012-06-07 Solid state drive management in power loss recovery

Publications (2)

Publication Number Publication Date
KR20140129305A KR20140129305A (ko) 2014-11-06
KR101652936B1 true KR101652936B1 (ko) 2016-09-01

Family

ID=49260948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147027025A KR101652936B1 (ko) 2012-03-30 2012-06-07 전력 손실 복원에 있어서의 솔리드 스테이트 드라이브 관리

Country Status (3)

Country Link
KR (1) KR101652936B1 (ko)
CN (1) CN104205229B (ko)
WO (2) WO2013147894A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11495320B2 (en) 2020-02-13 2022-11-08 Samsung Electronics Co., Ltd. Storage device including power supply circuit and method of operating storage device

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9658966B2 (en) 2014-11-24 2017-05-23 Sandisk Technologies Llc Systems and methods of write cache flushing
EP3133604B1 (en) * 2015-08-17 2020-11-11 Harman Becker Automotive Systems GmbH Method and device for fail-safe erase of flash memory
US10229000B2 (en) 2016-08-09 2019-03-12 Seagate Llc Erasure codes to prevent lower page corruption in flash memory
CN108874309B (zh) * 2018-05-25 2021-07-23 新华三技术有限公司 一种管理固态硬盘中物理块的方法和装置
TWI669610B (zh) 2018-06-13 2019-08-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US11042323B2 (en) 2019-06-29 2021-06-22 Intel Corporation Offload defrag operation for host-managed storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100238715A1 (en) 2009-03-19 2010-09-23 Pedersen Bruce B Volatile memory elements with soft error upset immunity
US20110258487A1 (en) * 2007-12-31 2011-10-20 Robert Royer Nand power fail recovery
US20120054414A1 (en) 2010-09-01 2012-03-01 Lite-On It Corp. Solid state drive and data control method thereof

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2382215A (en) * 2000-09-28 2003-05-21 Seagate Technology Llc Critical event log for a disc drive
CN1447243A (zh) * 2002-03-25 2003-10-08 太和科技股份有限公司 快闪存储器中快速且能防止不正常断电的演算法及其控制系统
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
JP4938893B2 (ja) * 2007-08-06 2012-05-23 サンディスク コーポレイション 不揮発性メモリのための改良された書き込み中断機構
TWI372396B (en) * 2007-09-28 2012-09-11 Phison Electronics Corp Method of protecting data for power failure and controller using the same
US8762620B2 (en) * 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US8239611B2 (en) * 2007-12-28 2012-08-07 Spansion Llc Relocating data in a memory device
WO2009107507A1 (en) * 2008-02-29 2009-09-03 Kabushiki Kaisha Toshiba Memory system
CN101566969B (zh) * 2008-04-21 2011-05-18 群联电子股份有限公司 提升非易失性存储器存储装置的管理效能的方法及控制器
US8321652B2 (en) * 2008-08-01 2012-11-27 Infineon Technologies Ag Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
CN104077174B (zh) * 2009-03-27 2018-05-01 希捷科技有限公司 用于提供存储系统逻辑块地址的数据固化的方法及系统
WO2010121902A1 (en) * 2009-04-21 2010-10-28 International Business Machines Corporation Apparatus and method for controlling a solid state disk ( ssd ) device
CN101872644A (zh) * 2009-04-24 2010-10-27 威刚科技(苏州)有限公司 电子存储装置及其存储方法
US8065562B2 (en) * 2009-06-26 2011-11-22 Seagate Technology Llc Systems, methods and devices for backup power control in data storage devices
US8463826B2 (en) * 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories
US8990476B2 (en) * 2009-10-01 2015-03-24 Micron Technology, Inc. Power interrupt management
KR101602939B1 (ko) * 2009-10-16 2016-03-15 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US8539311B2 (en) * 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258487A1 (en) * 2007-12-31 2011-10-20 Robert Royer Nand power fail recovery
US20100238715A1 (en) 2009-03-19 2010-09-23 Pedersen Bruce B Volatile memory elements with soft error upset immunity
US20120054414A1 (en) 2010-09-01 2012-03-01 Lite-On It Corp. Solid state drive and data control method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11495320B2 (en) 2020-02-13 2022-11-08 Samsung Electronics Co., Ltd. Storage device including power supply circuit and method of operating storage device

Also Published As

Publication number Publication date
WO2013147894A1 (en) 2013-10-03
KR20140129305A (ko) 2014-11-06
CN104205229B (zh) 2019-04-05
CN104205229A (zh) 2014-12-10
WO2013147923A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
US9202577B2 (en) Solid state drive management in power loss recovery
US11048589B2 (en) Preserving data upon a power shutdown
KR101652936B1 (ko) 전력 손실 복원에 있어서의 솔리드 스테이트 드라이브 관리
US9996278B2 (en) Memory device, control method for the memory device, and controller
US10599345B2 (en) Memory device that writes data into a block based on time passage since erasure of data from the block
US10838858B2 (en) Controller and operating method of the same
US11036421B2 (en) Apparatus and method for retaining firmware in memory system
US10817418B2 (en) Apparatus and method for checking valid data in memory system
US20200034081A1 (en) Apparatus and method for processing data in memory system
US11461226B2 (en) Storage device including memory controller
KR20200113992A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
KR20190088184A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
JP2013117840A (ja) メモリアクセス制御装置および方法
KR20180114649A (ko) 복수의 프로세서를 포함하는 컨트롤러 및 컨트롤러의 동작방법 그리고 멀티 프로세서 시스템
US10635583B2 (en) Memory management method and storage controller
US20190026222A1 (en) Controller and operation method thereof
US20210157524A1 (en) Memory system and operating method thereof
KR101609980B1 (ko) 메모리 기반 저장장치의 주기적 갱신 장치 및 방법
US20100037004A1 (en) Storage system for backup data of flash memory and method for the same
US9003261B2 (en) Memory system
KR20170114991A (ko) 비휘발성 메모리를 이용한 로깅 방법
US20220413757A1 (en) Write Performance by Relocation During Sequential Reads
JP2012008739A (ja) データ記憶装置及びデータ書き込み方法

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: 20190729

Year of fee payment: 4