KR20150017672A - 톤 라이트 완화 - Google Patents

톤 라이트 완화 Download PDF

Info

Publication number
KR20150017672A
KR20150017672A KR1020140099744A KR20140099744A KR20150017672A KR 20150017672 A KR20150017672 A KR 20150017672A KR 1020140099744 A KR1020140099744 A KR 1020140099744A KR 20140099744 A KR20140099744 A KR 20140099744A KR 20150017672 A KR20150017672 A KR 20150017672A
Authority
KR
South Korea
Prior art keywords
memory
data
tone
write data
volatile cache
Prior art date
Application number
KR1020140099744A
Other languages
English (en)
Other versions
KR101608679B1 (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 KR20150017672A publication Critical patent/KR20150017672A/ko
Application granted granted Critical
Publication of KR101608679B1 publication Critical patent/KR101608679B1/ko

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/16Protection against loss of memory contents
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Digital Magnetic Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

톤 라이트 완화 회로는 메모리에 대한 라이트 동작이 전력 손실 시간에 또는 시간 부근에 진행 중인지를 판단한다. 라이트 동작이 전력 손실 시간에 또는 시간 부근에 진행 중인 것에 대응하여, 톤 라이트 완화 회로는 톤 라이트 데이터 및 메타데이터가 비휘발성 캐시에 저장되게 한다. 톤 라이트 데이터는 전력 손실의 결과로서 저하되거나 수정될 수 없는 상태로 남겨진 데이터를 포함한다. 메타데이터는 톤 라이트 데이터를 포함한다.

Description

톤 라이트 완화{TORN WRITE MITIGATION}
본 개시의 일부 실시예들은 데이터 저장 장치에서 "톤 라이트(torn-write)" 또는 "라이트 스플라이스(write-splice)" 완화를 위한 방법들, 장치들 및 시스템들에 관한 것이다. 일부 방법들은 메모리에 대한 전력 손실을 검출하는 단계를 포함한다. 메모리에 대한 라이트 동작이 전력 손실 시간에 또는 시간 부근에 진행 중인 것에 대응하여, 톤 라이트 데이터를 비휘발성 캐시에 저장한다. 톤 라이트 데이터는 전력 손실의 결과로서 저하되거나 수정될 수 없는 상태로 남겨진 데이터를 포함한다. 부가적으로, 톤 라이트 데이터를 설명하는 메타데이터는 비활성 캐시에 저장된다.
일부 실시예들은 톤 라이트 완화 회로를 포함하는 장치들을 수반한다. 톤 라이트 완화 회로는 메모리에 대한 라이트 동작이 메모리에 대한 전력 손실 시간에 또는 시간 부근에 진행 중인지를 판단하도록 구성된다. 라이트 동작이 전력 손실 시간에 또는 시간 부근에 진행 중 것에 대응하여, 톤 라이트 완화 회로는 톤 라이트 데이터 및 메타데이터가 비휘발성 캐시에 저장되게 한다. 톤 라이트 데이터는 전력 손실의 결과로서 저하되거나 수정될 수 없는 상태로 남겨진 데이터를 포함한다. 메타데이터는 톤 라이트 데이터를 설명한다.
일부 실시예들은 메모리 및 비휘발성 캐시를 포함하는 데이터 저장 시스템에 관한 것이다. 시스템은 메모리에 대한 전력 손실을 검출하도록 구성된 전력 손실 검출 회로를 포함한다. 시스템은 메모리에 대한 라이트 동작이 전력 손실 시간에 또는 시간 부근에 진행 중인지를 판단하도록 구성된 톤 라이트 완화 회로를 더 포함한다. 라이트 동작이 전력 손실 시간에 또는 시간 부근에 진행 중인 것에 대응하여, 톤 라이트 완화 회로는 톤 라이트 데이터 및 메타데이터가 비휘발성 캐시에 저장되게 한다. 톤 라이트 데이터는 전력 손실의 결과로서 저하되거나 수정될 수 없는 상태로 남겨진 데이터를 포함한다. 메타데이터는 톤 라이트 데이터를 설명한다.
다양한 실시예들의 이러한 및 다른 특징들 및 양태들은 이하의 상세한 논의 및 첨부 도면들을 고려하면 이해될 수 있다.
이하의 도면들에서, 동일한 참조 번호들은 다수의 도면들에서 유사한/동일한 구성요소들을 식별하는데 사용될 수 있다.
도 1은 일부 실시예들에 따른 톤 라이트 완화 프로세스를 구현할 수 있는 시스템의 블록도이다.
도 2는 전력 손실이 발생한 시간에 메모리의 섹터에 기록되는 섹터들을 예시한다.
도 3은 일부 실시예들에 따른 라이트 완화 프로세스 동안 데이터를 저장하는 프로세스를 예시하는 흐름도이다.
도 4는 일부 실시예들에 따른 톤 라이트 완화 프로세스 동안 데이터를 재저장하는 프로세스를 예시하는 흐름도이다.
도 5는 일부 실시예들에 따른 톤 라이트 완화 프로세스 동안 데이터를 저장하는 프로세스를 예시하는 흐름도이다.
도 6은 일부 실시예들에 따른 톤 라이트 완화 프로세스 동안 데이터를 재저장하는 프로세스를 예시하는 흐름도이다.
도 7은 일부 실시예들에 따른 톤 라이트 완화 프로세스를 구현할 수 있는 시스템의 블록도이다.
다양한 예시적 실시예들의 이하의 설명에서, 본 명세서의 일부를 형성하고, 다양한 예시적 실시예들이 예시로서 도시되는 첨부 도면들이 참조된다. 구조 및 동작 변경들이 이것에 첨부된 청구항들의 범위를 벗어나지 않으면서 이루어질 수 있으므로, 다른 실시예들이 이용될 수 있다는 점이 이해되어야 한다.
데이터 저장 장치의 비휘발성 메모리, 예를 들어 HDD(하드디스크 드라이브) 또는 HHD(하이브리드 하드 드라이브)의 자기 매체, 또는 SSD(고체상 드라이브) 또는 HHD의 전자 비휘발성 메모리(예를 들어 NAND 플래시)에 기록하는 동안, 공급 전력의 예상치 못한 손실, 예를 들어 호스트로부터 데이터 저장 장치의 비휘발성 메모리로 공급되는 전력은 매체 상에 복구될 수 없거나 저하된 데이터가 매체 상에 남겨지는 것을 야기할 수 있다. 예를 들어, 전력 손실이 발생하는 시간에 또는 시간 부근에 데이터를 메모리에 기록(프로그램)하기 위해 라이트 동작이 실행되고 있으면, 현재 실행 중인 메모리 매체에 대한 라이트 동작은 전력의 부족으로 인해 완료되게 할 수 없을 수 있다. 데이터가 메모리에 기록되지만, 데이터는 아직 검증되지 않을 수 있다. 예를 들어, HDD(하드디스크 드라이브)에서 데이터는 오프-트랙에 기록될 수 있었고, 드라이브는 온-트랙 정렬을 확인하기 위해 다음 서보 웨지로 회전할 수 없을 수 있다. 다른 예에 대해, SSD(고체상 드라이브)에서 NAND 플래시 상의 저장 셀들은 그것의 의도된 변화 레벨에 도달하지 못할 수도 있었고, 따라서 데이터가 메모리로부터 판독될 때 데이터의 복구를 방해한다. 이러한 고장 조건들은 "톤 라이트들"로 지칭되지만, 다른 유사한 용어들 및 설명들은 종종 "라이트 스플라이스들", "인터럽된 라이트들", "불완전한 라이트들" 또는 "부분 라이트들"과 같은 동일한 현상들을 설명하기 위해 산업계에 사용된다. 본 명세서에 둘 다 사용되는 바와 같은 용어들 "전력 손실 시간에" 그리고 "전력 손실 시간에 또는 시간 부근에"는 톤 라이트 데이터를 야기할 수 있는 메모리에 대한 전력 손실 전, 동안, 및 후의 시간 기간을 지칭한다.
메모리에 대한 라이트 동작이 능동적으로 기록되는 것을 완료하는 것에 충분한 양의 전력이 이용가능해지도록 조기에 전력 손실을 검출하는 것은 항상 가능한 것은 아니다. 이는 심지어 짧은 섹터 크기들, 예를 들어 512 바이트를 갖는 메모리에서 더 큰 섹터 크기를, 예를 들어 4096 바이트를 갖는 메모리로의 전환으로 더 악화될 수 있다. 전력 손실은 종종 발생하는 임의의 에러 복구를 위한 시간이 불충분하고 잘못된 섹터 또는 섹터들이 에러로 남겨질 수 있다는 것을 의미한다. 더욱이, 오프-트랙 에러들과 같은 에러 조건들은 전력의 손실에 의해 악화될 수 있다.
스토리지 디바이스가 하드 디스크 드라이브인 경우들에서, 데이터 에러들 은 전력 손실이 발생시에 헤드의 수평 및/또는 수직 변위로 인해 발생할 수 있다. 전력 손실 시간에, 공급 전력의 저하는 저장된 데이터의 저하를 초래하는 무수한 방법들로 시스템에 영향을 미칠 수 있다. 예를 들어, 전압 저하는 액추에이터가 오프-트랙을 이동하게 하는 것을 초래할 수 있고, 오프-트랙에 기록된 데이터는 심지어 복구될 수 없는 지점까지 위태롭게 될 수 있다.
일부 구성들에서, 특정 메모리, 예를 들어 MLC(멀티-레벨 셀) 플래시로 진행 중인 라이트 동작들을 중단하고, 톤 라이트 데이터를 동일한 타입의 메모리의 상이한 구성 및/또는 상이한 타입의 메모리에 저장하는 것이 유리할 수 있다. 일 예로서, 메모리가 MLC 플래시인 것으로 가정하면, 톤 라이트 데이터를 상이한 구성에 저장하는 것은 톤 라이트 데이터를 단일 레벨 모드(SMLC(싱글 모드 레벨 셀) 플래시)에 사용되는 MLC 플래시 셀들로 저장하는 것을 포함할 수 있다. 다른 예로서, 메리가 MLC 플래시인 것으로 가정하면, 톤 라이트 데이터를 하나 이상의 상이한 타입의 메모리에 저장하는 것은 톤 라이트 데이터를 STRAM(스핀 토크 랜덤 액세스 메모리)에 저장하는 것을 포함할 수 있다.
전력 손실의 검출은 시스템의 전력 공급들의 전압 드룹(손실 레이트) 동작에 의존할 수 있다. 이러한 전압 드롭 동작은 전력 공급 또는 호스트 시스템 제조자에 따라 변화될 수 있어, 액티브 라이트 동작이 전력 손실 동안 진행되면 에러들이 발생하기 전에 남은 시간의 양에 불확실성을 초래할 수 있다. 본 명세서에 기술된 시스템은 일반적으로 전압 드룹 레이트에 민감하지 않다.
많은 구현들에서, 데이터 저장 장치들은 각각의 호스트 논리 블록을 메모리의 더 큰 메모리 섹터의 일부분으로서 저장한다. 예를 들어, 각각의 논리 블록, 예를 들어 호스트 또는 다른 곳으로부터의 논리 블록들은 512 바이트일 수 있지만, 전형적으로 7개의 다른 호스트 논리 블록들과 함께 그룹화되는 4KB 디스크 섹터 또는 플래시 페이지에 저장된다. 메모리에 저장되는 메모리 섹터들 및 논리 블록들이 동일한 크기이면, 전력 손실은 활성 기록되는 논리 블록에 대해 복구될 수 없는 섹터들만을 초래할 수 있다. 그러나, 데이터 저장 장치가 저장되는 논리 블록 크기보다 더 큰 메모리 섹터 또는 페이지 크기를 갖는다면, 라이트 동작은 기록되고 있는 논리 블록뿐만 아니라, 동일한 메모리 섹터(또는 페이지) 내에서 저장되고 있는 다른 논리 블록들에 영향을 미치는 톤 라이트를 초래할 수 있다. "정지" 데이터에 대한 이러한 부가적인 위험은 특히 바람직하지 않다.
언급된 바와 같이, 톤 라이트 상태는 라이트 동작과 연관된 일부의 논리 블록들이 메모리에 기록되었지만 아직 검증되지 않은 후에 전력 손실이 발생할 때 일어날 수 있다. 이러한 논리 블록들은 특히 그것들이 이미 메모리에 기록된 후부터 중요한 라이트 명령과 직접 연관되지 않을 수 있다. 라이트 동작과 연관된 호스트(또는 다른 곳)로부터의 일부 논리 블록들은 아직 메모리에 기록되지 않을 수 있다. 이러한 논리 블록들은 중요한 라이트 명령과 연관될 수 있다. 톤 라이트는 바람직하지 않은, 중요한 라이트 명령과 연관되지 않는 논리 블록들의 손상을 초래할 수 있다. 용어 "톤 라이트 데이터"는 일반적으로 이하를 포함하는 전력 손실의 결과로 저하되거나 수정될 수 없는 상태로 남겨질 수 있는 데이터를 지칭한다: 1) 메모리에 기록되었고 아직 검증되지 않은 라이트 동작과 연관된 데이터의 블록들(또는 다른 유닛들), 2) 메모리에 아직 기록되지 않았던 라이트 동작과 연관된 데이터의 블록들(또는 다른 유닛들), 3) 메모리에 부분적으로 기록된 데이터의 블록들(또는 다른 유닛들), 4) 전력이 손실된 시간에 또는 시간 부근에 기록된 데이터의 블록과 그룹화되는 데이터의 연관된 블록들(또는 다른 유닛들), 여기서 연관된 논리 블록들은 기록되고 있는 데이터의 블록의 중단된 기록의 결과로서 재기록될 필요가 있음, 및 5) 호스트 전력 손실 시간에 또는 시간 부근에 진행 중인 내부 데이터 저장 장치 배경 활동, 예를 들어 SSD/HHD 내의 가비지 수집, 내부 데이터 저장 장치 또는 시스템 파일들 / 메타데이터 업데이트들 등에서 기인하는 메모리 라이트들과 연관된 블록들(또는 다른 유닛들).
본 명세서에 개시된 실시예들은 톤 라이트들에 의해 야기된 복구될 수 없는 에러들을 제거하거나 크게 감소시키기 위한 접근법들을 수반한다. 이러한 실시예들에 따르면, 전력 손실의 검출에 대응하여, 전력 손실의 결과로서 저하되거나 수정될 수 없는 상태로 남겨질 수 있는 데이터를 포함하는 톤 라이트 데이터는 저장된 섹터들을 설명하는 메타데이터와 함께 비휘발성 캐시에 저장된다.
비휘발성 캐시는 전력 손실 시간에 저장에 더 적합한 저장 매체를 지칭한다. 하드 디스크 드라이브에서, 비휘발성 캐시는 전자 NOR 또는 NAND 플래시 메모리로서 종종 구현된다. 고체 상태 드라이브에서, 비휘발성 캐시는 SLC(싱글-레벨-전하) 모드로 종종 동작하고, 바람직하게는 사전 소거되는 NAND 플래시로서 종종 구현된다. 메모리는 개별 다이일 수 있거나 메인 메모리의 전용 영역 또는 분할일 수 있다. 그것은 MRAM(자기 랜덤 액세스 메모리), STRAM(스핀 토크 랜덤 액세스 메모리), PCM(상 변화 메모리) 또는 전력 손실 시간에 데이터의 신속한 저장에 더 적절한 임의의 다른 타입의 메모리와 같은 전체적으로 상이한 타입의 메모리일 수도 있다.
손실 시간에 저장되는 메타데이터는 일반적으로 톤 라이트 데이터에 관한 설명 정보를 포함한다. 메타데이터는 톤 라이트 데이터에 관한 어드레스 정보, 예를 들어 데이터 블록들이 전력 손실 전에 기록되도록 의도된 장소 또는 데이터 블록들이 전력이 재공급될 때 기록될 장소의 어드레스를 식별하는 메모리의 위치(예를 들어 논리적 또는 물리적 어드레스)를 포함할 수 있다. 메타데이터는 톤 라이트 데이터의 양을 포함할 수 있다. 스킵 라이트 동작들에 대해, 메타데이터는 스킵 마스크 패턴을 포함할 수 있다. 메타데이터는 톤 라이트 데이터에 관한 또는 메타데이터에 관한 에러 검출 또는 정정 코드들을 포함할 수도 있다.
도 1은 톤 라이트 에러들을 완화할 수 있는 데이터 저장 장치(100)의 블록도이다. 일부 경우들에서, 메모리(120)에 저장되는 데이터, 예를 들어 호스트 데이터의 논리 블록들은 데이터 저장 컨트롤러(110)로 전송된다. 컨트롤러(110)는 메모리(120)로 그리고 이로부터의 데이터 전송들을 제어하도록 구성된 메모리 컨트롤러(112)를 포함하며, 이는 일부 구성들에서 데이터 저장 장치에 대한 일차 스토리지의 역할을 할 수 있다. 컨트롤러(110)는 비휘발성 캐시(140)로 그리고 이로부터의 데이터 전송들을 제어하도록 구성된 비휘발성 캐시 컨트롤러(114)를 포함한다. 일부 실시예들에서 비휘발성 캐시(140)는 메모리(120)의 일부를 포함할 수 있고, 메모리 컨트롤러(112) 및 비휘발성 캐시 컨트롤러(114)는 동일한 물리적 하드웨어의 동일 또는 부분들을 포함할 수 있다는 점에 주목한다. 컨트롤러(110)는 본 명세서에 더욱 상세히 기재된 바와 같이 전력 손실 중에 진행 중인 메모리(120)에 대한 라이트 동작과 연관된 섹터들에서 에러들을 감소시키는 톤 라이트 완화 방식을 구현하도록 구성된 톤 라이트 완화 모듈(115)을 포함한다.
메모리(120)는 회전 자기 디스크 메모리, 자기 테이프, NOR 플래시, NAND 플래시, PCM(상 변화 메모리), NvSRAM(비휘발성 정적 랜덤 액세스 메모리), BBSRAM(배터리 백업 정적 랜덤 액세스 메모리), MRAM(자기 랜덤 액세스 메모리), 스핀-토크 RAM(StRAM), RRAM(저항 RAM) 및/또는 임의의 다른 타입의 비휘발성 메모리를 포함하는 임의의 비휘발성 메모리를 포함할 수 있다. 비휘발성 캐시(140)는 상기 열거된 임의의 메모리 타입들 또는 호스트-공급 전력의 손실시 데이터를 저장하는데 적합한 다른 것들도 포함할 수 있다. 전형적으로, 비휘발성 캐시는; 1) 연장된 시간 기간 동안 외부 공급 전력 없이 데이터를 유지할 수 있고; 2) 호스트 전력의 손실 후이지만, 데이터 저장 장치의 전력이 비휘발성 캐시(140) 및/또는 비휘발성 캐시 컨트롤러(114)가 더 이상 데이터를 저장하기 위해 동작할 수 없는 점 아래로 떨어지기 전에 라이트 동작이 이용가능한 시간 내에서 완료되도록 하는 속도로 신뢰성 있게 기록될 수 있다.
도 1에 도시된 시스템(100)은 전력 감시 회로(151) 및 옵션 전력 백업 회로(150)를 도시한다. 전력 감시 회로(151)는 호스트-공급 전력 손실의 표시를 감지하도록 구성된다. 전력 감시 회로(151)는 공급 전력의 손실의 경우에 경고를 메모리 및/또는 다른 시스템 구성요소들에 제공하는 검출 로직을 포함할 수 있다. 예를 들어, 전력 손실의 표시는 하나 이상의 호스트 시스템 전원 전압들, 예를 들어 데이터 저장 장치(100)의 정상적인 동작에 사용되는 전원 전압들의 전압 드롭의 지정된 퍼센티지 또는 레벨일 수 있다.
도 1은 회로, 데이터 저장 컨트롤러, 예를 들어 메모리 컨트롤러 및 비휘발성 캐시 컨트롤러, 및 비휘발성 캐시가 전력을 유지하는 시간의 양을 연장하도록 구성된 옵션 전력 백업 회로(150)를 도시한다. 전력 백업 회로(150)는 하나 이상의 에너지 저장 장치들, 예를 들어 전력 손실 다음의 지정된 시간 기간 동안 전력을 데이터 저장 컨트롤러(110) 및/또는 비휘발성 캐시(140)로 전달할 수 있는 커패시터들, 슈퍼커패시터들, 배터리들 및/또는 다른 에너지 저장 장치들을 포함할 수 있다. 회전 디스크를 메모리로 사용하는 구현들에서, 회전 디스크의 운동 에너지는 전력 백업(150)을 공급하는데 사용될 수 있고, 이는 운동 에너지를 장치(100)의 부분들에 대한 전력으로 변환시키는 조절기들(도시되지 않음)을 포함할 수도 있다. 일부 구성들에서, 회전 디스크에 의해 생성되는 EMF(기전력)는 전력 백업 회로(150)에서 커패시터 또는 배터리를 충전 또는 재충전하도록 사용될 수 있다. 전력 모니터(151) 및 선택적으로 전력 백업(150)은 전력 손실을 검출하고, 적절한 톤 라이트 데이터의 저장을 시작하고, 비휘발성 캐시(140)에 데이터를 저장하기 위해 충분한 시간을 허용하도록 배열된다. 전력 손실은 전력 손실 이벤트의 표시로부터 톤 라이트 완화 동작에 따른 데이터 및 메타데이터를 기록하는 것을 지지하기 위한 불충분한 전력이 있는 점까지 비교적 짧은 전이 시간을 가질 수 있다. 전력 백업 회로를 이용하는 시스템들에서, 전력 손실은 비교적 더 긴 전이를 가질 수 있어, 본 명세서에서 논의되 톤 라이트 완화 접근 방법들을 구현하기 위해 더 많은 시간을 할당한다.
호스트 라이트 동작이 구현됨에 따라, 기록되는 섹터들은 예를 들어 메모리 컨트롤러(112)(도 1) 또는 외부 DRAM(도시되지 않음)에 위치되는 중간 메모리 또는 버퍼에 일정 시간 기간 동안 상주할 수 있다. 중간 메모리는 다른 목적들 중에서 호스트 인터페이스 및 메모리 데이터 사이의 속도 정합의 목적으로서 역할을 한다. 톤 라이트 완화(115)는 종종 마이크로프로세서에서 명령들의 형태이고, 전력 모니터(151)로부터 전력 손실의 통지 시에 비휘발성 캐시(140)로 저장 또는 톤 라이트 데이터를 용이하게 하는 로직이다.
도 2는 전력 손실이 발생하는 시간에 메모리에 기록되는 데이터를 예시한다. 도 2는 현재 라이트 동작 동안 기록되고 있는 프로세스에 있는 메모리의 일부 및 이전의 라이트 동작 동안 기록된 메모리의 일부를 도시한다. 이러한 예에서, 메모리(210, 220)의 이러한 일부들은 기록되고 있는 논리 블록들보다 더 크다. 예를 들어, 메모리 부분(220)은 8개의 512 바이트 호스트 논리 블록들을 저장할 수 있는 4096 바이트 섹터일 수 있다.
도 2에 도시된 바와 같이, 라이트 동작은 메모리 섹터(220)로 진행한다. 섹터들(0 - 4)은 메모리(220)에 기록되었고 아직 검증되지 않았다. 데이터의 검증은 섹터들의 데이터가 메모리에 적당하게 저장되었다는 것을 나타내는 피드백 신호를 수신하는 것을 포함한다. 섹터(5)는 불완전하게 기록되었고 섹터들(6 - 7)은 메모리에 아직 기록되어 있지 않았다. 섹터들(5 - 7)은 메모리 부분(220)에 대한 라이이트 동작과 연관되고 또한 중요한 라이트 명령과 연관된다.
섹터들(0 - 4)이 기록되고(그러나 검증은 안됨), 섹터(5)가 부분적으로 기록되고, 섹터들(6 - 7)이 메모리(220)에 아직 기록되지 않은 후에 전력 손실이 발생할 때 일어나는 톤 라이트 시나리오를 고려한다. 전력 손실이 발생한 후, 섹터들(0 - 4)을 검증하고 기록을 완료하고 섹터들(5 - 7)를 검증하는데 충분한 시간이 있지 않을 수 있다. 이러한 시나리오에서, 에러들은 메모리(220)에 저장되는 데이터에서 발생하기 쉽다.
메모리의 타입에 따라, 일부 실시예들에서, 톤 라이트 완화 프로세스는 블록들(0 - 5)을 비휘발성 캐시에 저장하고 선택적으로 블록들(6 및 7)을 비휘발성 캐시에 저장하는 단계를 포함할 수 있다. 다른 실시예들에서, 예를 들어 디스크 섹터들인 메모리 부분들(210, 220)은 섹터들(210, 220)이 액세스될 수 있는 메모리의 가장 작은 유닛을 의미하는 "아토믹(atomic)"이다. 이러한 시나리오에서, 톤 라이트 완화 프로세스는 블록들(0 내지 7)을 비휘발성 캐시에 저장할 수 있다.
도 3은 도 1에 도시된 시스템(110)과 같은 데이터 저장 장치로 구현될 수 있는 일부 실시예들에 따른 톤 라이트 완화 프로세스를 예시하는 흐름도이다. 시스템은 전력을 감시하고 데이터 저장 장치의 전력 손실, 예를 들어 전력 공급 전압 드룹의 표시를 감지한다(310). 전력 손실의 표시를 검출하는 것에 대응하여, 톤 라이트 완화 프로세스는 전력 손실이 발생한 시간에 라이트 동작이 진행 중인지를 판단한다(320). 라이트 동작이 진행 중이 아니면 동작은 (300)에서 종료된다. 도시되지 않았지만, (330)에서 디바이스는 재저장할 것이 없다는 것을 표시하는 메타데이터를 선택적으로 기록할 수 있다. 진행 중인 라이트 동작에 대응하여(320) 톤 라이트 완화 프로세스는 데이터가 예를 들어 도 2의 블록들(0 - 4)에서 메모리에 기록되었지만 아직 검증되지 않았는지를 판단한다. 톤 라이트 완화 프로세스는 아직 검증되지 않은 데이터를 식별하기 위해 상태 정보를 검사할 수 있다. 아직 검증되지 않은 데이터는 최근에 메모리에 기록된 메모리의 블록들 또는 다른 유닛들이 아니고 데이터가 적합하게 기록되었다는 것을 나타내는 피드백이 아직 수신되지 않은 메모리의 블록들 또는 다른 유닛들이다. 예를 들어, 메모리가 회전 디스크인 경우, 피드백은 다른 기준들 중에서 드라이브 헤드들이 여전히 온-실린더(on-cylinder) 제한들 내에 있는 것을 확인하는 서보 샘플 처리에 의해 달성될 수 있다.
적어도 메모리에 기록되었지만 아직 검증되지 않은 데이터는 비휘발성 캐시, 예를 들어 도 2에 도시된 블록들(0 - 5)에 저장된다(340). 일부 실시예들에서, (아토믹) 메모리 섹터의 모든 블록들은 비휘발성 캐시, 예를 들어 도 2에 도시된 블록들(0 - 7)에 저장될 수 있다. 데이터를 설명하는 메타데이터는 비휘발성 캐시에 저장될 수도 있다(350). 데이터 및/또는 메타데이터는 강화된 견고성을 위해 에러 검출 및/또는 에러 정정 코드들에 의해 보호될 수 있다.
파워 온 시퀀스의 부분으로서, 톤 라이트 완화 모듈은 임의의 블록들이 복구를 필요로 하는지를 판단하기 위해 비휘발성 캐시로부터 메타데이터를 판독한다. 데이터가 비휘발성 캐시에 존재한다면, 이때 이러한 데이터는 비휘발성 캐시로부터 판독된다. 데이터가 메모리에 기록될 수 있는 상태에 메모리가 있으면, 비휘발성 캐시로부터의 블록들은 메타데이터에 의해 표시되는 메모리의 적합한 위치(들)에 기록된다.
도 4는 시스템 전력이 재저장된 후(410) 발생하는 톤 라이트 완화의 프로세스들을 예시하는 흐름도이다. 톤 라이트 완화 모듈은 메모리 라이트 동작이 전력 손실이 발생했던 시간에 진행 중이었는지를 판단한다(420). 그렇지 않은 경우, 비휘발성 캐시로부터 데이터를 재저장할 필요가 없다(430).
라이트 동작이 전력 손실이 발생했을 때 진행 중이었는지를 판단하는 것에 대응하여(420), 톤 라이트 완화 모듈은 비휘발성 캐시로부터 메타데이터를 판독한다(440). 비휘발성 캐시에 저장된 데이터(예를 들어 논리 블록들 / 섹터들 / 페이지들)는 메타데이터로부터 식별된다(450). 톤 라이트 완화 모듈은 데이터가 메모리에 저장된 적어도 하나의 위치(예를 들어, 적어도 하나의 논리 블록 어드레스)를 메타데이터로부터 식별할 수도 있다(460). 데이터는 비활성 캐시로부터 판독되고(470) 메타데이터에 의해 지시되는 위치에서 메모리로 기록된다(480).
이전에 논의된 바와 같이, 데이터는 데이터 저장 장치 내의 하나보다 많은 장소에 존재할 수 있고, 예를 들어 데이터는 하이브리드 드라이브 상의 자기 매체 및 플래시 둘 다에 불필요하게 저장될 수 있다. 톤 라이트 완화를 제공하는 데이터 저장 접근법들은 휘발성 메모리에 불필요하게 저장되지 않는 라이트 동작과 연관된 데이터를 보호하는데 유용할 수 있다. 이러한 시나리오들에서, 라이트 동작과 연관된 데이터는 데이터가 불필요하게 저장되어 있으면 캐시에 저장되지 않는다.
일부 구성들에서, 톤 라이트 완화는 예를 들어 데이터의 중복 기재를 포함하는 배경 정비 활동과 연관된 데이터를 보호하기 위해 사용될 수 있다. 예를 들어, 데이터 저장 장치는 많은 비트 에러들을 갖는 블록들을 검색하기 위해 매체의 배경 스캔을 수행할 수 있고 저장된 데이터의 품질을 개선하기 위해 메모리에 데이터를 재기록할 수 있다. 이러한 프로세스가 전력 손실에 의해 중단되면, 톤 라이트 완화 시스템은 호스트 데이터 블록들과 동일한 절차를 따름으로써 사용될 수도 있다.
본 명세서에 기재된 톤 라이트 완화 프로세스들은 데이터가 메모리에 기록되는 것과 같은 라이트 동작의 프로세스들을 추적하는 단계를 포함한다. 전력 손실의 시간에, 메모리에 기록되었지만 아직 검증되지 않은 라이트 동작과 연관된 데이터는 "톤(torn)"이고, 톤 라이트 완화의 부재에서 메모리로부터 데이터를 회복할 수 없게 만든다. 톤 라이트 완화 프로세스에 포함되는 데이터는 예를 들어 메모리에 기록되었으나 아직 검증되지 않은 블록들 및 메모리에 기록되고 있는 프로세스에 있는 블록들을 포함할 수 있다. 톤 라이트 완화 프로세스에 포함된 데이터는 아토믹 메모리 섹터에 아직 기록되지 않았지만 포함될 수 있는 블록들을 포함할 수도 있다. 라이트 동작의 프로세스를 추적하는 단계는 톤 라이트 완화 프로세스가 톤 데이터를 식별하는 단계를 허용한다. 이러한 톤 블록들은 연관된 메타데이터와 함께 비휘발성 캐시에 저장된다.
도 5는 일부 실시예들에 따른 톤 라이트 완화 프로세스의 흐름도이다. 도 5에 예시된 프로세스는 예를 들어 도 1의 시스템(100)에 의해 구현될 수 있다. 전력 모니터(151)(도 1 참조)는 전력 손실의 표시에 대한 시스템 전력 또는 보호를 요청하는 톤 데이터를 초래하는 라이트 동작을 중단시키는 다른 타입들의 결함들을 감시한다(510). 다른 타입들의 결함들의 예들은 시스템 감시 타이머들의 만료, 속도 에러(예를 들어 HDD 상의) 밖의 모터, 또는 검출 백업 전력 공급 결함(예를 들어 SSD 상에서)과 같은 치명적인 에러 조건들일 것이다. 전력 손실 또는 다른 치명적인 에러 조건이 감지될 때, 비휘발성 캐시 컨트롤러(114)(도 1 도시됨)는 톤 라이트 데이터를 비휘발성 캐시(140)(도 1에 도시됨)에 저장하기 위해 콜을 톤 라이트 완화 모듈(115)(도 1에 도시됨)에 발행한다(520). 톤 라이트 완화 모듈은 라이트 동작이 전력 손실 또는 메모리 장애의 시간에 진행 중이었는지를 판단한다(530). 진행 중인 라이트 동작이 없으면, 이때 저장된 데이터의 양은 메타데이터에 제로로 설정되고(550) 메타데이터(데이터를 갖고 있지 않음)는 비휘발성 캐시에 저장된다(580).
라이트 동작이 전력 손실 시간에 진행 중이었는지를 판단하는 것에 대응하여(530), 저장되는 톤 라이트 데이터의 양, 예를 들어 블록들 또는 다른 데이터 유닛들의 수는 톤 라이트 완화 모듈에 의해 결정된다(560). 메타데이터는 비휘발성 캐시에 저장되고 있는 데이터의 적어도 하나의 메모리 위치를 포함하기 위해 업데이트된다(570). 메타데이터 및 데이터는 비휘발성 캐시에 저장된다(580). 메타데이터 및 데이터가 저장되었다는 것을 표시하는 톤 라이트 완화 프로세스의 상태는 비휘발성 캐시 컨트롤러로 리턴된다(590).
일부 실시예들에서, 임의의 메모리 라이트 동작 동안 스킵되도록 플래그되었던 메모리 섹터들이 있을 수 있다. 라이트 동작들은 스킵된 섹터들에 데이터의 저장을 방지하는 스킵 마스크 명령들을 포함할 수 있다. 스킵된 섹터들을 고려하는 실시예들에서, 톤 라이트 완화 프로세스의 일부분으로 저장되는 메타데이터는 이러한 스킵된 메모리 섹터들을 식별하기 위해 부가되는 부가 필드들을 포함할 수 있다.
도 6은 메모리(120)(도 1)에 대한 전력의 복구에 응답하여 구현될 수 있는 톤 라이트 완화 프로세스의 흐름도이다. 메모리 140(도 1)에 대한 전력의 복구에 응답하여(610), 비휘발성 캐시 컨트롤러(114)(도 1)는 콜을 저장된 메타데이터 및 데이터를 갖는 톤 라이트 완화 모듈(115)(도 1)에 발행한다(620). 콜에 포함된 메타데이터로부터, 톤 라이트 완화 모듈은 넘버 댓 유닛(number dat unit), 예를 들어 톤 라이트 완화 프로세스 동안 저장된 블록들/섹터들/페이지들이 제로보다 더 큰지를 판단한다(630). 저장된 데이터 유닛들의 수가 제로보다 더 크지 않으면, 톤 라이트 완화 모듈은 메타데이터를 제거하고(680) 상태를 비휘발성 캐시 컨트롤러로 리턴한다(690).
저장된 세이브 유닛들의 수가 제로보다 더 큰 것에 대응하여, 톤 라이트 완화 모듈은 데이터가 메타데이터에 의해 지정된 위치 및 데이터 범위에서 메모리에 기록되게 한다(660). 스킵된 섹터들을 고려하는 실시예들에서, 특수 처리는 스킵 마스크 필드들이 메타데이터에 존재하면 사용될 수 있다. 예를 들어, 스킵 마스크 패턴을 포함하는 더 정교한 메타데이터가 저장될 수 있다(670). 모든 데이터가 메모리에 회복된 후, 메타데이터는 제거되고 데이터는 비휘발성 캐시로부터 소거된다. 상태는 비휘발성 캐시 컨트롤러로 복귀된다(690).
도 7은 일부 실시예들에 따른 톤 데이터 라이트 에러들을 완화시킬 수 있는 시스템(700)의 블록도이다. 메모리(720)에 기록된 데이터 블록들(또는 데이터의 다른 유닛들)은 호스트 또는 다른 곳(도 7에 도시되지 않음)으로부터 데이터 저장 컨트롤러(710)로 전송된다. 데이터 저장 컨트롤러(710)는 메모리(720)로 그리고 이로부터의 데이터 전송들을 제어하도록 구성된 메모리 컨트롤러(712)를 포함한다. 데이터 저장 컨트롤러(710)는 비휘발성 캐시(740)로 그리고 이로부터의 데이터 전송들을 제어하도록 구성된 비휘발성 캐시 컨트롤러(714)를 포함한다. 이러한 실시예에서, 섹터들에 대한 라이트 동작 및 라이트 동작에 대해 연관된 메타데이터는 메모리(720)에 대한 모든 라이트 동작에 대해 비휘발성 캐시(740)를 통해 이동한다. 따라서, 전력 손실, 아직 검증되지 않은 데이터 블록들, 불완전하게 기록된 데이터 블록들, 및/또는 아직까지 기록되지 않은 데이터 블록들의 경우는 비휘발성 캐시에 유지된다(740). 도 7에 도시된 구성은 전력 손실 감시 및/또는 전력 백업 회로에 대한 필요성을 삭제한다.
본 명세서에 개시된 실시예들은 톤 라이트 완화를 구현하는 방법들을 포함한다. 예를 들어, 톤 라이트 완화 방법은 시스템 메모리에 영향을 미치는 호스트 공급 전력의 손실 또는 치명적인 장애를 검출하는 단계를 포함한다. 메모리에 대한 라이트 동작이 그러한 시간에 또는 시간 부근에 진행 중인 것에 대응하여, 라이트 동작과 연관된 데이터는 데이터에 대한 어드레스 위치 정보를 포함하는 메타데이터와 함께 비휘발성 캐시에 저장된다. 메모리에 대한 라이트 동작은 다수의 논리 블록들을 하나 이상의 메모리 섹터들 또는 페이지들에 저장할 수 있다. 비휘발성 캐시에 저장되는 라이트 명령과 연관된 데이터는 톤 라이트 데이터 및 메타데이터를 포함한다.
비휘발성 캐시는 비휘발성 캐시가 연장된 시간 기간 동안 외부의 공급 전력 없이 데이터를 유지할 수 있고, 라이트 동작이 시스템 전력의 손실 후 이용가능 시간 내에서 완료되게 하는 속도로 신뢰성 있게 기록된다. 일부 구성들에서, 메모리는 회전 자기 디스크를 포함하고 비휘발성 캐시는 플래시 메모리를 포함한다.
일부 구성들에서, 톤 라이트 데이터 및/또는 메타데이터는 톤 라이트 데이터 및/또는 메타데이터를 비휘발성 캐시에 저장하기 전에 에러 검출 및/또는 에러 정정 코드를 사용하여 인코딩된다. 일부 구성들에서, 메타데이터는 저장된 데이터의 헤더 부분에 저장될 수 있다. 메타데이터의 필드는 비휘발성 캐시에 저장되는 데이터의 양, 예를 들어 저장된 섹터들의 수를 표시한다. 비휘발성 캐시에 저장되는 톤 데이터가 없는(예를 들어, 전력 손실의 시간에 진행 중인 라이트 동작이 없는) 시나리오에서 저장된 데이터의 양을 표시하는 메타데이터 필드는 제로로 설정된다.
전력이 재저장되고 메모리가 데이터를 수락할 수 있는 후에, 톤 라이트 완화 프로세스는 메모리에 대한 라이트 명령이 전력 손실 시간에 또는 시간 부근에 진행 중이었는지를 판단한다. 라이트 명령이 전력 손실 시간에 진행 중인 것에 대응하여, 메타데이터 및 톤 라이트 데이터는 비휘발성 캐시로부터 검색된다. 메타데이터는 톤 라이트 데이터가 메모리에 재저장되어야 하는 곳을 식별하기 위해 사용된다. 톤 라이트 데이터는 메모리에 기록된다.
일부 톤 라이트 완화 방법들은 라이트 명령이 전력 손실 시간에 활성화되었는지 및 라이트 명령이 비리던던트 데이터를 포함하는지를 판단하는 단계를 포함한다. 라이트 동작의 데이터가 중복되면, 데이터는 비휘발성 캐시에 저장되지 않는다. 라이트 명령이 비리던던트 데이터를 포함하는 진행 중인 것에 대응하여, 비리던던트 데이터는 비리던던트 데이터에 관한 정보를 포함하는 메타데이터와 함께 비휘발성 캐시에 저장된다. 예를 들어, 메타데이터는 톤 라이트 데이터(비리던던트 데이터)가 저장되는 메모리의 적어도 하나의 논리 블록 어드레스를 포함할 수 있다. 메타데이터는 메모리의 스킵된 섹터들에 관한 저장 정보 및 다른 정보를 포함할 수도 있다.
일부 구성들에서, 메모리는 회전 자기 디스크이고 톤 라이트 완화 프로세스는 라이트 동작의 실행 동안 자기 디스크의 위치들을 추적하는 단계를 포함한다. 전력 손실 동안 라이트 동작이 정지한 디스크의 위치는 식별되고 비휘발성 캐시에 저장될 필요가 있는 섹터들의 넘버는 정지 위치를 이용함으로써 결정된다.
일부 구현들에서, 방법은 정비 활동이 전력 손실 시간에 활성화되는지를 판단하는 것을 포함한다. 정비 활동이 활성화되면, 정비 활동과 연관된 비리던던트 데이터는 캐시에 저장된다. 정비 활동은 예를 들어 약하거나 또는 잘못 기록된 섹터들 또는 페이지들을 검색하는 배경 매체 스캔 활동일 수 있다. 매체 스캔은 그것들을 회복시키기 위해 약한 섹터들/페이지들을 재작성하기 위해 시도할 수 있다. 전력이 이러한 활동 동안 손실되면, 톤 라이트 시스템은 데이터 손실을 방지하게 위해 사용될 수 있다.
전력이 복구된 인후, 메타데이터 비휘발성 캐시로부터 판독되고 비리던던트 데이터가 전력 손실 시간에 비휘발성 캐시에 저장되었는지를 판단하기 위해 사용된다. 전력 손실 동안 비휘발성 캐시에 저장되는 비리던던트 데이터에 대응하여, 비리던던트 데이터가 저장되어야 하는 메모리의 하나 이상의 위치들이 식별된다. 비리던던트 데이터는 비휘발성 캐시로부터 검색되고 휘발성 캐시로부터 판독되며 메모리의 위치들에 재저장된다.
일부 구성들에서, 비리던던트 데이터가 캐시에 저장되었는지를 판단하는 단계는 비휘발성 캐시에 저장된 넘버 섹터들을 표시하는 메타데이터의 필드를 판독하는 단계를 포함한다. 프로세스는 메타데이터의 필드가 비제로 값으로 설정되어 있으면 비리던던트 데이터가 비휘발성 캐시에 저장된 것으로 결정하는 단계는 포함한다. 일부 구성들에서, 비리던던트 데이터를 메모리의 위치들에 재저장하는 단계는 스킵된 섹터들에 관한 정보를 이용함으로써 비리던던트 데이터를 복구하는 단계를 포함한다. 비리던던트 데이터가 재저장된 후에, 메타데이터는 재설정되고 비리던던트 데이터는 비휘발성 캐시로부터 삭제된다.
상술한 바와 같은 다양한 실시예들은 특정 결과들을 제공하기 위해 상호 작용하는 회로 및/또는 소프트웨어 모듈들을 이용함으로써 구현될 수 있다. 컴퓨터 기술 분야의 기술자들은 기술 분야에서 일반적으로 공지된 지식을 사용함으로써 이러한 상술된 기능을 모듈 레벨에서 또는 전체적으로서의 어느 하나로 용이하게 구현할 수 있다. 예를 들어, 본 명세서에 예시된 흐름도들은 프로세서에 의해 실행을 위한 컴퓨터 판독가능 명령어들/코드를 생성하기 위해 사용될 수 있다. 그런 명령어들은 이 기술 분야에서 공지된 바와 같이 컴퓨터 판독가능 매체에 저장될 수 있고 실행을 위해 프로세서로 전송될 수 있다. 상기 도시된 구조들 및 절차들은 상술된 바와 같은 데이터 저장 장치들에서 톤 라이트 완화를 관리하는 것을 용이하게 하기 위해 사용될 수 있는 실시예들의 대표적인 예일 뿐이다.
본 개시의 설명에는 하드 디스크 드라이브들 및 고체 상태 드라이브들과 같은 블록 저장 장치들이 일반적이기 때문에 기록되어 있다고 주목할 필요가 있을 수도 있다. 이러한 동일한 개념들은 블록들 대신에 데이터(예를 들어 객체들로서)를 저장하는 장치들에게 적용될 수도 있다.
다르게 표시되지 않으면, 명세서 및 청구항들에 사용되는 특징 크기들, 양들 및 물리적인 특성들을 표현하는 모든 번호들은 용어 "대략"에 의해 모든 경우들에서 수정되는 것으로 이해되어야 한다. 따라서, 다르게 표시되지 않는다면, 이전의 상세 설명 및 첨부된 청구항에 설명된 수치 매개변수들은 본 명세서에 개시된 교시들을 이용하는 당업자들에 의해 획득될 것으로 보여지는 바람직한 특성들에 따라 변화될 수 있는 근사치들이다. 종점에 의해 수치 범위들의 사용은 그 범위(예를 들어 1 내지 5는 1, 1.5, 2, 2.75, 3, 3.80, 4, 및 5를 포함함) 내에 그리고 그 범위 내의 임의의 범위에 모든 번호들을 포함한다.
예시적 실시예들의 이전 설명은 예시 및 설명의 목적을 위해 제공된다. 이는 개시된 정확한 형태로 발명의 개념을 총망라하거나 제한하려는 의도되지 않는다. 많은 수정들 및 변형들은 상기 교시의 관점에서 가능하다. 개시된 실시예들의 임의의 또는 모든 특징들은 순수하게 예시적이지는 않으나 개별적으로 적용되거나 또는 임의의 조합에서 한정되는 것으로 의미되어서는 안된다. 범위는 이 상세한 설명으로 한정되는 것이 아니라, 오히려 본 발명에 첨부된 청구범위에 의해 결정되는 것으로 의도된다.

Claims (20)

  1. 메모리에 대한 전력 손실을 검출하는 단계;
    상기 메모리에 대한 라이트 동작이 상기 전력 손실 시간에 또는 시간 부근에 진행 중인 것에 대응하여,
    톤 라이트 데이터를 비휘발성 캐시에 저장하는 단계로서, 상기 톤 라이트 데이터는 상기 전력 손실의 결과로서 저하되거나 수정될 수 없는 상태로 남겨진 데이터를 포함하는 상기 단계; 및
    상기 톤 라이트 데이터를 설명하는 메타데이터를 상기 비휘발성 캐시에 저장하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 톤 라이트 데이터를 저장하는 단계는 상기 톤 라이트 데이터를 상기 비휘발성 캐시에 저장하는 동안 백업 전력을 제공하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서, 상기 톤 라이트 데이터는 상기 메모리에 기록되도록 스케줄링되고; 상기 전력 손실 전에 상기 메모리에 아직 저장되지 않았던 데이터의 하나 이상의 섹터들을 더 포함하는 방법.
  4. 제 1 항에 있어서, 상기 메모리는 회전 자기 디스크, 자기 테이프, NOR 플래시, 비휘발성 정적 랜덤 액세스 메모리(NVSRAM), NAND 플래시, MRAM(자기저항 랜덤 액세스 메모리), PCM(상 변화 메모리), STRAM(스핀 토크 랜덤 액세스 메모리), RRAM(저항 랜덤 액세스 메모리), 및 배터리 지원 RAM 중 하나 이상을 포함하고;
    상기 비휘발성 캐시는 NOR 플래시, NVSRAM, NAND 플래시, MRAM, PCM, STRAM, RRAM 및 배터리 지원 RAM 중 하나 이상을 포함하는 방법.
  5. 제 1 항에 있어서, 전력이 재저장된 후 상기 비휘발성 캐시로부터 상기 톤 라이트 데이터를 판독하는 단계 및 상기 톤 라이트 데이터를 상기 메모리에 기록하는 단계를 더 포함하는 방법.
  6. 제 1 항에 있어서, 전력이 재저장된 후,
    상기 비휘발성 캐시로부터 상기 메타데이터를 판독하는 단계;
    상기 메타데이터를 사용하여 상기 톤 라이트 데이터를 재저장하기 위해 상기 메모리의 위치를 식별하는 단계; 및
    상기 톤 라이트 데이터를 상기 메모리의 위치에 재기록하는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서, 상기 톤 라이트 데이터를 저장하는 단계는 상기 메모리에 기록되었지만 섹터들이 복구될 수 있는 것을 표시하는 피드백 신호가 생성되지 않은 섹터들을 식별하는 단계를 포함하는 방법.
  8. 제 7 항에 있어서, 상기 피드백 신호는 상기 메모리의 드라이브 헤드들이 트랙 온 실린더 제한들 내에 있는 것을 확인하는 서보 샘플 처리에 기초하는 방법.
  9. 제 1 항에 있어서, 상기 톤 라이트 데이터를 상기 비휘발성 캐시에 저장하는 단계는,
    상기 톤 라이트 데이터가 중복 저장되는지를 판단하는 단계;
    상기 톤 라이트 데이터가 중복 저장되지 않은 것에 대응하여 상기 톤 라이트 데이터를 상기 비휘발성 캐시에 저장하는 단계; 및
    상기 톤 라이트 데이터가 중복 저장된 것에 대응하여 상기 톤 라이트 데이터를 상기 비휘발성 캐시에 저장하지 않는 단계를 포함하는 방법.
  10. 제 1 항에 있어서,
    상기 메타데이터를 저장하는 단계는 상기 메모리의 스킵된 섹터들에 관한 정보를 저장하는 단계를 포함하고;
    상기 스킵된 섹터들에 관한 정보를 사용하여 상기 톤 라이트 데이터를 상기 비휘발성 캐시로부터 상기 메모리로 재저장하는 단계를 더 포함하는 방법.
  11. 제 1 항에 있어서, 상기 메모리는 자기 디스크를 포함하고 상기 라이트 명령의 실행 동안 상기 자기 디스크의 위치들을 추적하는 단계를 더 포함하는 방법.
  12. 제 11 항에 있어서, 위치들을 추적하는 단계는,
    상기 라이트 동작이 상기 전력 손실 동안 정지하는 정지 위치를 식별하는 단계를 포함하고;
    상기 정지 위치를 사용하여 상기 비휘발성 캐시에 저장하기 위해 상기 톤 라이트 데이터의 양을 계산하는 단계를 더 포함하는 방법.
  13. 제 11 항에 있어서,
    정비 활동이 전력 손실 시간에 활성화되는지를 판단하는 단계; 및
    상기 정비 활동이 활성화되면, 상기 정비 활동과 연관된 데이터를 상기 비휘발성 캐시에 저장하는 단계를 더 포함하는 방법.
  14. 메모리에 대한 라이트 동작이 전력 손실 시간에 진행 중인지를 판단하고,
    상기 라이트 동작이 상기 전력 손실 시간에 진행 중인 것에 대응하여, 톤 라이트 데이터 및 메타데이터가 비휘발성 캐시에 저장되게 하며, 상기 톤 라이트 데이터는 상기 전력 손실의 결과로서 저하되거나 수정될 수 없는 상태로 남겨진 데이터를 포함하고, 상기 메타데이터는 상기 톤 라이트 데이터를 설명하도록 구성된 톤 라이트 완화 회로를 포함하는 장치.
  15. 제 14 항에 있어서, 상기 메타데이터는 상기 톤 라이트 데이터의 헤더에 저장되고 상기 메타데이터의 필드는 상기 비휘발성 캐시에 저장되었던 톤 라이트 데이터의 양을 표시하는 장치.
  16. 제 14 항에 있어서, 상기 톤 라이트 완화 회로는 상기 톤 라이트 데이터 및 메타데이터가 상기 비휘발성 캐시에 저장되기 전에 에러 검출 또는 에러 정정 코드를 사용하여 상기 톤 라이트 데이터 및 상기 메타데이터 중 적어도 하나를 인코딩하도록 더 구성된 장치.
  17. 메모리;
    비휘발성 캐시;
    호스트 공급 전력의 손실을 검출하도록 구성된 전력 손실 검출 회로;
    상기 메모리에 대한 라이트 동작이 전력 손실 시간에 또는 시간 부근에 진행 중인지를 판단하고,
    상기 라이트 동작이 상기 전력 손실 시간에 진행 중인 것에 대응하여, 톤 라이트 데이터 및 메타데이터가 상기 비휘발성 캐시에 저장되게 하며, 상기 톤 라이트 데이터는 상기 전력 손실의 결과로서 저하되거나 수정될 수 없는 상태로 남겨진 데이터를 포함하고 상기 메타데이터는 상기 톤 라이트 데이터를 설명하도록 구성된 톤 라이트 완화 회로를 포함하는 시스템.
  18. 제 17 항에 있어서, 상기 비휘발성 캐시는 연장된 시간 기간 동안 외부 공급 전력 없이 상기 톤 라이트 데이터를 유지할 수 있고 상기 비휘발성 캐시로의 톤 라이트 데이터의 저장이 상기 전력 손실 후 이용가능 시간 내에서 완료되도록 하는 속도로 신뢰성 있게 기록될 수 있는 장치.
  19. 제 17 항에 있어서,
    상기 시스템은 고체 상태 드라이브 저장 장치이며;
    상기 메모리는 MLC(멀티-레벨 셀) NAND 플래시를 포함하고;
    비휘발성 캐시는 단일 레벨 셀 모드로 동작된 MLC NAND 플래시의 일부를 포함하는 장치.
  20. 제 17 항에 있어서,
    상기 시스템은 하드 디스크 드라이브이며;
    상기 메모리는 회전 자기 디스크이고;
    상기 비휘발성 캐시는 전자 플래시 메모리인 장치.
KR1020140099744A 2013-08-07 2014-08-04 톤 라이트 완화 KR101608679B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/961,755 US9448896B2 (en) 2013-08-07 2013-08-07 Torn write mitigation
US13/961,755 2013-08-07

Publications (2)

Publication Number Publication Date
KR20150017672A true KR20150017672A (ko) 2015-02-17
KR101608679B1 KR101608679B1 (ko) 2016-04-04

Family

ID=51355422

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140099744A KR101608679B1 (ko) 2013-08-07 2014-08-04 톤 라이트 완화

Country Status (5)

Country Link
US (1) US9448896B2 (ko)
EP (1) EP2835739A1 (ko)
JP (1) JP6562602B2 (ko)
KR (1) KR101608679B1 (ko)
CN (1) CN104346241B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180084919A (ko) * 2015-11-20 2018-07-25 에이알엠 리미티드 메모리 동작을 위한 비휘발성 버퍼

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798623B2 (en) * 2012-05-11 2017-10-24 Seagate Technology Llc Using cache to manage errors in primary storage
US20150052390A1 (en) * 2013-08-13 2015-02-19 Breakaway Systems Apparatus and Method for Microprocessor File System Protection
US9846540B1 (en) * 2013-08-19 2017-12-19 Amazon Technologies, Inc. Data durability using un-encoded copies and encoded combinations
US10643668B1 (en) * 2013-08-27 2020-05-05 Seagate Technology Llc Power loss data block marking
US9619330B2 (en) * 2013-10-08 2017-04-11 Seagate Technology Llc Protecting volatile data of a storage device in response to a state reset
KR20150053092A (ko) * 2013-11-07 2015-05-15 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법
US9250675B2 (en) * 2013-12-16 2016-02-02 Seagate Technology Llc Power loss mitigation
CN107077874B (zh) 2014-10-31 2020-05-29 惠普发展公司有限责任合伙企业 电力损失保护
US9870281B1 (en) * 2015-03-20 2018-01-16 Western Digital Technologies, Inc. Power loss mitigation for data storage device
US9570159B1 (en) * 2015-10-15 2017-02-14 Intel Corporation Methods and apparatus to preserve data of a solid state drive during a power loss event
US9857859B2 (en) * 2015-12-21 2018-01-02 Intel Corporation Techniques to power down output power rails for a storage device
JP2017162095A (ja) * 2016-03-08 2017-09-14 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム
TWI576699B (zh) * 2016-03-31 2017-04-01 慧榮科技股份有限公司 紀錄資料區塊的使用時間的方法及其裝置
US9983811B2 (en) * 2016-05-25 2018-05-29 Seagate Technology Llc Save critical data upon power loss
KR20180023190A (ko) * 2016-08-25 2018-03-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10209897B2 (en) 2016-12-01 2019-02-19 Toshiba Memory Corporation Storage device and control method of the same
CN108228396B (zh) * 2016-12-21 2021-03-23 伊姆西Ip控股有限责任公司 用于处理驱动器的错误的方法和设备
CN106933706A (zh) * 2017-03-10 2017-07-07 联想(北京)有限公司 非易失性内存的掉电保护方法及装置
WO2018166072A1 (zh) * 2017-03-13 2018-09-20 华为技术有限公司 一种数据处理方法及装置
US10572359B2 (en) * 2017-09-05 2020-02-25 International Business Machines Corporation Validation of data written via two different bus interfaces to a dual server based storage controller
CN108153538A (zh) * 2017-12-26 2018-06-12 郑州云海信息技术有限公司 一种基于相变存储器的异构存储装置及方法
US10789130B1 (en) 2018-03-09 2020-09-29 Toshiba Memory Corporation Capacitor energy management for unexpected power loss in datacenter SSD devices
KR102592796B1 (ko) 2018-04-27 2023-10-25 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11023326B2 (en) 2019-03-06 2021-06-01 Intel Corporation SSD restart based on off-time tracker
CN114631080A (zh) 2019-10-25 2022-06-14 美光科技公司 用于存储器的数据恢复管理
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US20220283721A1 (en) * 2021-03-02 2022-09-08 Seagate Technology Llc Operating multiple storage devices using nvm interface

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
GB2256735B (en) 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
US5774643A (en) * 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
JPH10161938A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ディスク制御装置
US5889933A (en) * 1997-01-30 1999-03-30 Aiwa Co., Ltd. Adaptive power failure recovery
US6295577B1 (en) 1998-02-24 2001-09-25 Seagate Technology Llc Disc storage system having a non-volatile cache to store write data in the event of a power failure
JP2002230893A (ja) * 2001-01-30 2002-08-16 Pioneer Electronic Corp 情報記録再生装置、情報記録再生方法及び再生記録手順プログラムを記録したプログラム記録媒体
US7395452B2 (en) * 2004-09-24 2008-07-01 Microsoft Corporation Method and system for improved reliability in storage devices
US20060075185A1 (en) 2004-10-06 2006-04-06 Dell Products L.P. Method for caching data and power conservation in an information handling system
US9286198B2 (en) * 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
TW200825696A (en) * 2006-12-15 2008-06-16 Inventec Corp Power management system
US8046546B2 (en) * 2007-07-25 2011-10-25 AGIGA Tech Variable partitioning in a hybrid memory subsystem
US7941692B2 (en) * 2007-12-31 2011-05-10 Intel Corporation NAND power fail recovery
JP5353887B2 (ja) * 2008-08-06 2013-11-27 富士通株式会社 ディスクアレイ装置の制御ユニット、データ転送装置及び復電処理方法
US8055846B2 (en) * 2008-08-15 2011-11-08 International Business Machines Corporation Data vaulting in emergency shutdown
US20100061207A1 (en) * 2008-09-09 2010-03-11 Seagate Technology Llc Data storage device including self-test features
EP2180408B1 (en) 2008-10-23 2018-08-29 STMicroelectronics N.V. Method for writing and reading data in an electrically erasable and programmable nonvolatile memory
US8230257B2 (en) * 2009-06-26 2012-07-24 Seagate Technology Llc Systems, methods and devices for controlling backup power provided to memory devices and used for storing of sensitive data
EP2476039B1 (en) * 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
JP5475123B2 (ja) 2010-02-19 2014-04-16 株式会社日立製作所 ディスクアレイ装置およびその制御方法
US8700951B1 (en) * 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
JP5857521B2 (ja) * 2011-08-16 2016-02-10 富士通株式会社 テープドライブ装置、テープカートリッジ、テープライブラリ装置、及びデータ保存方法
US9003103B2 (en) 2011-09-12 2015-04-07 Microsoft Technology Licensing, Llc Nonvolatile media dirty region tracking
US20130110789A1 (en) 2011-10-27 2013-05-02 Xyratex Technology Limited Method of, and apparatus for, recovering data on a storage system
US9158700B2 (en) 2012-01-20 2015-10-13 Seagate Technology Llc Storing cached data in over-provisioned memory in response to power loss
US8938641B2 (en) * 2012-09-27 2015-01-20 Intel Corporation Method and apparatus for synchronizing storage volumes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180084919A (ko) * 2015-11-20 2018-07-25 에이알엠 리미티드 메모리 동작을 위한 비휘발성 버퍼

Also Published As

Publication number Publication date
US20150046747A1 (en) 2015-02-12
EP2835739A1 (en) 2015-02-11
CN104346241B (zh) 2018-04-10
CN104346241A (zh) 2015-02-11
US9448896B2 (en) 2016-09-20
JP2015035247A (ja) 2015-02-19
JP6562602B2 (ja) 2019-08-21
KR101608679B1 (ko) 2016-04-04

Similar Documents

Publication Publication Date Title
KR101608679B1 (ko) 톤 라이트 완화
US9921762B2 (en) Redundant backup using non-volatile memory
US8464106B2 (en) Computer system with backup function and method therefor
US8812901B2 (en) Methods and apparatus for marking writes on a write-protected failed device to avoid reading stale data in a RAID storage system
US8370720B2 (en) Mass storage device and method for offline background scrubbing of solid-state memory devices
US9923562B1 (en) Data storage device state detection on power loss
US9111583B2 (en) Data storage device including self-test features
JP2015035247A5 (ja) 書き込み時の欠落の緩和
US9858002B1 (en) Open block stability scanning
US7757154B2 (en) Magnetic disk control apparatus, magnetic disk apparatus, and method of correcting read error
US7441085B2 (en) Memory control method for restoring data in a cache memory
US20100306580A1 (en) Systems and Methods for Governing the Life Cycle of a Solid State Drive
CN104050056A (zh) 多存储介质设备的文件系统备份
US20090228744A1 (en) Method and system for cache-based dropped write protection in data storage systems
CN101782875B (zh) 存储设备和数据存储方法
US10643668B1 (en) Power loss data block marking
US20130308433A1 (en) Logging disk recovery operations in a non-volatile solid-state memory cache
CN111124758A (zh) 一种故障硬盘的数据恢复方法
CN107799150A (zh) 3d nand闪存的错误缓解
US9536619B2 (en) Hybrid-HDD with improved data retention
CN105320468A (zh) 半导体存储器件、存储控制器以及存储控制器的控制方法
US9870281B1 (en) Power loss mitigation for data storage device
US20180060162A1 (en) Auto-Recovery of Media Cache Master Table Data
CN109445982A (zh) 实现数据可靠读写的数据存储装置
CN109375869A (zh) 实现数据可靠读写的方法以及系统、存储介质

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
LAPS Lapse due to unpaid annual fee