KR102248743B1 - 전력 손실 시의 임계 데이터 저장 - Google Patents
전력 손실 시의 임계 데이터 저장 Download PDFInfo
- Publication number
- KR102248743B1 KR102248743B1 KR1020170064200A KR20170064200A KR102248743B1 KR 102248743 B1 KR102248743 B1 KR 102248743B1 KR 1020170064200 A KR1020170064200 A KR 1020170064200A KR 20170064200 A KR20170064200 A KR 20170064200A KR 102248743 B1 KR102248743 B1 KR 102248743B1
- Authority
- KR
- South Korea
- Prior art keywords
- track
- storage
- storage drive
- power loss
- controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/012—Recording on, or reproducing or erasing from, magnetic disks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
- G11B19/04—Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
- G11B19/047—Recovery from power failure
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
- G11B19/04—Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
- G11B19/041—Detection or prevention of read or write errors
- G11B19/044—Detection or prevention of read or write errors by using a data buffer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/20—Driving; Starting; Stopping; Control thereof
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Power Sources (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
전력 손실 시에 임계 데이터를 저장하기 위한 시스템들 및 방법들이 기술된다. 일 실시예에서, 시스템들 및 방법들은, 저장소 드라이브의 제1 트랙에 대한 기록 동작을 수행하는 것, 저장소 드라이브의 전압 레벨을 모니터링하여, 기록 동작을 수행하는 동안에 저장소 드라이브 상에서의 전력 손실을 검출하는 것, 저장소 드라이브 상에서의 전력 손실을 검출할 시에 제1 트랙에 인접한 제2 트랙의 트랙 ID를 식별하는 것, 및 저장소 드라이브 상의 비휘발성 메모리에 식별된 트랙 ID를 저장하는 것을 포함한다.
Description
본 발명은 전력 손실 시에 임계 데이터를 저장하기 위한 방법들 및 시스템들에 관한 것이다. 일부 실시예들에 있어서, 본 시스템들 및 방법들은 전력 손실 이벤트를 검출할 수 있고, 전력 손실 이벤트를 검출할 시, 저장 디바이스 상의 비휘발성 메모리에 사전결정된 양의 임계 데이터를 저장할 수 있다.
전력 손실 시에 임계 데이터를 저장하기 위한 저장 디바이스가 기술된다. 일 실시예에서, 저장 디바이스는 저장소 드라이브 및 저장소 제어기를 포함할 수 있으며, 저장소 제어기는, 저장소 드라이브의 제1 트랙에 대한 기록 동작을 수행하는 단계, 저장소 드라이브의 전압 레벨을 모니터링하여, 기록 동작을 수행하는 동안에 저장소 드라이브 상에서의 전력 손실을 검출하는 단계, 저장소 드라이브 상에서의 전력 손실을 검출할 시에 제1 트랙에 인접한 제2 트랙의 트랙 ID를 식별하는 단계, 및 저장소 드라이브 상의 비휘발성 메모리에 식별된 트랙 ID를 저장하는 단계를 수행하도록 구성된다.
일부 실시예들에 있어서, 저장소 드라이브의 적어도 일부분은 슁글 자기 기록(shingled magnetic recording, SMR)을 위해 구성될 수 있다. 따라서, 일부 실시예들에 있어서, 기록 동작은 하나 이상의 SMR 트랙들에 데이터를 기록하는 것을 포함할 수 있다. 일부 실시예들에 있어서, 모니터링의 적어도 일부는 저장소 드라이브의 하나 이상의 태양들을 모니터링하도록 구성된, 저장소 드라이브 상의 시스템 온 칩(system on chip, SoC)과 함께 수행될 수 있다.
일부 실시예들에 있어서, 저장소 제어기는 저장소 드라이브 상의 비휘발성 메모리에 식별된 트랙 ID를 저장하도록 구성될 수 있다. 일부 구성들에 있어서, 저장소 제어기는, 전력이 복원된 후, 제1 트랙을 확인(verify)하도록 구성될 수 있다. 일부 실시예들에 있어서, 저장소 제어기는, 전력이 복원된 후에 비휘발성 메모리에 저장된 제2 트랙의 트랙 ID를 판독하도록, 그리고 제2 트랙의 트랙 ID가 비휘발성 메모리에 저장되어 있다는 것에 기초하여 제2 트랙을 확인하기를 바이패스(bypass)하도록 구성될 수 있다.
일부 실시예들에 있어서, 저장소 제어기는, 제2 트랙의 트랙 ID가 비휘발성 메모리에 저장되어 있다는 것에 기초하여 제2 트랙을 사용불가능 트랙(unusable track)으로 마킹하도록 구성될 수 있다. 일부 구성들에 있어서, 저장소 제어기는, 저장소 드라이브의 전압 레벨이 사전결정된 전압 레벨 아래로 강하될 때를 검출하도록 구성될 수 있다. 일부 실시예들에 있어서, 저장소 제어기는, 전력 손실 후에 전력이 저장소 드라이브에 복원되는 때를 검출하도록 구성될 수 있다.
일부 실시예들에 있어서, 시스템은, 저장소 드라이브가 전력을 손실한 후에 소정 기간을 제공하여 저장소 제어기가 제2 드라이브의 트랙 ID를 저장하도록 하는 커패시터를 포함할 수 있다. 일부 실시예들에 있어서, 커패시터는 전력 손실 전에 공급 전압을 수용할 수 있다. 커패시터는 공급 전압에서의 소정 양의(a measure of) 전하를 저장할 수 있다. 전력 손실 시, 커패시터는 공급 전압에서의 소정 양의 전하를 공급하여, 시스템이 비휘발성 메모리에 트랙 ID를 저장할 수 있게 할 수 있다.
일부 실시예들에 있어서, 저장소 제어기는 트랙 ID들의 테이블에 식별된 트랙 ID를 저장하도록 구성될 수 있다. 일부 실시예들에 있어서, 저장소 제어기는 비휘발성 메모리에 하나 이상의 트랙 ID들을 저장할 수 있다. 전력이 복원될 시, 저장소 제어기는, 비휘발성 메모리에 저장된 트랙 ID들을 판독할 수 있으며, 비휘발성 메모리로부터 판독되는 트랙 ID들로부터의 트랙 ID들의 테이블을 구축할 수 있다. 일부 경우들에 있어서, 비휘발성 메모리는 NOR 플래시 메모리를 포함할 수 있다.
전력 손실 시에 임계 데이터를 저장하기 위한 장치가 또한 기술된다. 일 실시예에서, 장치는 프로세서, 프로세서와 전기 통신하는 메모리, 및 메모리 내에 저장된 명령어들을 포함할 수 있고, 명령어들은, 프로세서에 의해, 저장소 드라이브의 제1 트랙에 대한 기록 동작을 수행하는 단계, 저장소 드라이브의 전압 레벨을 모니터링하여, 기록 동작을 수행하는 동안에 저장소 드라이브 상에서의 전력 손실을 검출하는 단계, 저장소 드라이브 상에서의 전력 손실을 검출할 시에 제1 트랙에 인접한 제2 트랙의 트랙 ID를 식별하는 단계, 및 저장소 드라이브 상의 비휘발성 메모리에 식별된 트랙 ID를 저장하는 단계를 수행하도록 실행가능하다.
전력 손실 시에 임계 데이터를 저장하기 위한 방법이 또한 기술된다. 일 실시예에서, 방법은, 저장소 드라이브의 제1 트랙에 대한 기록 동작을 수행하는 단계, 저장소 드라이브의 전압 레벨을 모니터링하여, 기록 동작을 수행하는 동안에 저장소 드라이브 상에서의 전력 손실을 검출하는 단계, 저장소 드라이브 상에서의 전력 손실을 검출할 시에 제1 트랙에 인접한 제2 트랙의 트랙 ID를 식별하는 단계, 및 저장소 드라이브 상의 비휘발성 메모리에 식별된 트랙 ID를 저장하는 단계를 포함할 수 있다.
전술한 내용은 본 발명에 따른 예들의 특징들 및 기술적 이점들을 오히려 넓게 약술하여 하기의 상세한 설명이 더 양호하게 이해될 수 있도록 했다. 추가 특징들 및 이점들이 하기에 기술될 것이다. 개시되는 개념 및 특정 예들은 본 발명의 동일한 목적들을 수행하기 위한 다른 구조들을 수정 또는 설계하기 위한 기초로서 용이하게 활용될 수 있다. 그러한 동등한 구성들은 첨부된 청구범위의 범주를 벗어나 있지 않다. 본 명세서에 개시되는 개념들 - 이들의 조직 및 동작 방법을 포함함 - 의 특성들은, 연관된 이점들과 함께, 첨부 도면들과 관련하여 고려될 때 하기의 설명으로부터 더 잘 이해될 것이다. 도면들 각각은 예시 및 설명의 목적만을 위해 제공되고, 청구범위의 제한들의 정의로서 제공되는 것은 아니다.
본 발명의 특성 및 이점들의 추가 이해는 하기의 도면들을 참조함으로써 실현될 수 있다. 첨부 도면들에서, 유사한 컴포넌트들 또는 특징부들은 동일한 참조 라벨을 가질 수 있다. 또한, 동일한 타입의 다양한 컴포넌트들은 대시 기호(dash)의 제1 기준 라벨, 및 유사한 컴포넌트들 사이를 구별할 수 있는 제2 라벨이 오게 되어 구별될 수 있다. 그러나, 다양한 컴포넌트들에 대해 논의되는 특징들 - 대시 기호 및 제2 기준 라벨을 갖는 것들을 포함함 - 은 다른 유사한 컴포넌트들에도 적용된다. 제1 기준 라벨만이 본 명세서에서 사용되는 경우, 설명은 제2 기준 라벨과는 무관하게 동일한 제1 기준 라벨을 갖는 유사한 컴포넌트들 중 어느 하나의 컴포넌트에 적용가능하다.
도 1은 다양한 실시예들에 따른 시스템의 일례의 블록 다이어그램이다.
도 2는 본 발명의 다양한 태양들에 따른 디바이스의 블록 다이어그램을 도시한다.
도 3은 본 발명의 다양한 태양들에 따른 하나 이상의 모듈들의 블록 다이어그램을 도시한다.
도 4는 본 발명의 다양한 태양들에 따른 시스템의 다이어그램을 도시한다.
도 5는 본 발명의 다양한 태양들에 따른 환경의 일 실시예를 도시한다.
도 6은 본 발명의 다양한 태양들에 따른 환경의 다른 실시예를 도시한다.
도 7은 본 발명의 다양한 태양들에 따른 방법의 일례를 도시한 흐름도이다.
도 8은 본 발명의 다양한 태양들에 따른 방법의 일례를 도시한 흐름도이다.
도 1은 다양한 실시예들에 따른 시스템의 일례의 블록 다이어그램이다.
도 2는 본 발명의 다양한 태양들에 따른 디바이스의 블록 다이어그램을 도시한다.
도 3은 본 발명의 다양한 태양들에 따른 하나 이상의 모듈들의 블록 다이어그램을 도시한다.
도 4는 본 발명의 다양한 태양들에 따른 시스템의 다이어그램을 도시한다.
도 5는 본 발명의 다양한 태양들에 따른 환경의 일 실시예를 도시한다.
도 6은 본 발명의 다양한 태양들에 따른 환경의 다른 실시예를 도시한다.
도 7은 본 발명의 다양한 태양들에 따른 방법의 일례를 도시한 흐름도이다.
도 8은 본 발명의 다양한 태양들에 따른 방법의 일례를 도시한 흐름도이다.
하기는, 일반적으로, 전력 손실 시에 임계 데이터를 저장하는 것에 관한 것이다. 일 실시예에서, 본 시스템들 및 방법들은 저장 디바이스 상에서의 전력 손실을 검출하며, 전력 손실을 검출 시, 저장 디바이스의 비휘발성 메모리에 사전결정된 양의 데이터를 저장한다.
저장 디바이스는 하드 디스크 드라이브, 솔리드 스테이트 드라이브, 하드 디스크 드라이브와 솔리드 스테이트 드라이브 양측 모두를 갖는 하이브리드 드라이브, 또는 이들의 임의의 조합을 포함할 수 있다. 전력 손실은 전기 회사 고장(예컨대, 정전(blackout), 부분 정전(brownout) 등), 전기 시스템 고장들(예컨대, 건물 또는 가정용 전기 시스템 고장 등), 전기 컴포넌트 고장들(예컨대, 저장 디바이스 상의 컴포넌트의 고장) 등을 비롯한 다수의 이유들로 발생할 수 있다. 일부 경우들에 있어서, 저장 디바이스는 저장 디바이스가 분리되고/되거나, 전력을 공급받고/받거나, 유선 또는 무선 중 어느 하나로 호스 시스템에 접속될 수 있게 하는 범용 직렬 버스(universal serial bus, USB) 케이블과 같은 핫-스왑가능(hot-swappable) 케이블을 포함할 수 있다. 따라서, 일부 경우들에 있어서, 전력 손실은 사용자가 핫-스왑가능 저장 디바이스를 분리시키는 결과로서 발생할 수 있다.
일부 실시예들에 있어서, 전력 손실은 동작(예컨대, 판독, 기록, 소거, 트리밍, 또는 이들의 임의의 조합)이 저장 디바이스 상에서 수행되고 있는 동안에 발생할 수 있다. 일부 경우들에 있어서, 드라이브 고장은 저장소 드라이브가 동작을 수행하고 있는 동안 전력이 손실될 때 발생할 수 있다. 예를 들어, 저장소 드라이브가 기록 동작을 수행하고 있음에 따라 전력 손실이 발생할 때, 저장소 드라이브는, 저장소 드라이브가, 전력이 복원된 후에 기록 동작에서 기록되고 있는 트랙에 인접한 트랙 상에서 손상된 데이터를 확인하고자 시도하고 있기 때문에 타임아웃할 수 있다. 일단 전력이 복원되면, 저장소 드라이브는 트랙들에 기록된 데이터를 확인할 수 있다. 저장 디바이스는 인접한 트랙 상의 손상된 데이터를 확인하지 못할 수 있다. 예를 들어, 저장소 드라이브는, 트랙들이 인접한 트랙들과 중첩하도록 구성되는 일부 실시예들에 있어서, SMR을 구현할 수 있다. 추가로 또는 대안으로, 저장소 드라이브는 플래시 메모리, 하드 디스크 드라이브 매체들과 플래시 메모리의 하이브리드 드라이브, 헬륨 충전 하드 드라이브(helium filled hard drive)들, 열 보조 자기 기록(heat assisted magnetic recording, HAMR), 2차원 자기 기록(two dimensional magnetic recording, TDMR), 다중 센서 자기 기록(multi sensor magnetic recording, MSMR) 드라이브들, 및 이들의 임의의 조합을 포함할 수 있다.
SMR 저장 디바이스가 기록 동작을 수행하고 있어서, 트랙들의 밴드 내의 트랙 상에 데이터를 기록하고 있을 때, 그 트랙이 기록되고 있음에 따라 그 밴드 내의 인접한 트랙이 소거 또는 손상될 수 있다. 기록이 프로세싱되고 있는 동안에 전력 손실이 발생하는 경우, 적어도 일부분 또는 섹터, 또는 가능하게는 전체의 인접한 트랙이 판독불가능하게 되어 판독불가능 디스크 에러(unreadable disk error, UDE)를 초래할 수 있다. 전력이 복원된 후, 저장 디바이스는 인접한 트랙으로부터 데이터를 판독하고자 시도할 수 있다. 저장 디바이스는 인접한 트랙에서 섹터 단위로 데이터를 판독하고자 시도할 수 있다. 일부 경우들에 있어서, 저장 디바이스는 데이터를 복구하기 위해 섹터 단위 재시도를 수행할 수 있다. 일부 경우들에 있어서, 재시도는 수 분이 소요되어 시스템 타임아웃을 초래할 수 있다. 일부 경우들에 있어서, 저장소 드라이브는 시스템 타임아웃으로 인해 고장날 수 있다.
현재, 전력 손실이 현재의 저장 디바이스 상에서 발생한 경우, 저장 디바이스 상의 전력은 저장소 제어기가 임계 정보를 저장 디바이스의 비휘발성 메모리에 기록하도록 하는 펌웨어를 실행하기에는 너무 급격하게 강하한다. 임계 정보의 예들은 트랙 ID와 같은, 기록 동작 동안에 손상되는 트랙과 연관된 데이터를 포함한다. 그러나, 본 시스템들 및 방법들은 전력이 완전히 손실되기 전에 임계 정보를 저장하도록 하는 하드웨어, 펌웨어, 및/또는 소프트웨어를 구현함으로써 전력 손실을 검출할 시에 임계 정보를 저장한다.
일 실시예에서, 인접한 트랙의 트랙 ID는 전력 손실을 검출할 시에 저장 디바이스 상의 비휘발성 메모리에 저장될 수 있다. 예를 들어, SMR 드라이브는 일단 전력이 손실되면 소정 데이터를 저장하기 위한 비휘발성 메모리 디바이스를 포함할 수 있다. 일례로서, 임계 ID는 NOR-플래시 메모리 디바이스에 저장될 수 있다. 일부 경우들에 있어서, NOR-플래시 메모리 디바이스는 전력 손실 시에 임계 데이터를 저장하는 것에 전용될 수 있다. 임계 정보는 전력이 복원될 때 저장소 드라이브 복구를 가능하게 하기 위해 전력 손실 시에 저장될 수 있다.
일부 실시예들에 있어서, 본 시스템들 및 방법들은 저장 디바이스에 의해 제공되는 전압 레벨(예컨대, 5 V, 3.3 V, 1.8 V, 또는 이들의 임의의 조합)에 관하여 커패시터를 구현할 수 있다. 따라서, 전압 강하의 슬루레이트(slew rate)는 전력 손실 시에 감소될 수 있다. 일부 실시예들에 있어서, 본 시스템들 및 방법들은 0.1 내지 100 μF 중 임의의 곳의 커패시턴스 정격을 갖는 커패시터를 구현할 수 있다. 일부 경우들에 있어서, 커패시터는 저장 디바이스의 인쇄 회로 보드에 접속될 수 있다. 커패시터는 저장 디바이스의 비휘발성 메모리 및 저장소 제어기에 접속될 수 있다. 전술된 바와 같이, 커패시터는 인가된 전압에 관하여 전기 전하를 저장할 수 있다. 커패시터는 저장 디바이스로의 전력이 손실된 후 소정 기간 동안 전기 전하를 저장된 전압 레벨로 저장할 수 있다. 따라서, 커패시터는 전력 손실 이벤트를 검출할 시에 저장소 제어기가 임계 데이터를 저장할 수 있도록 충분한 시간 동안 그의 저장된 전기 전하를 저장소 제어기로 제공할 수 있다.
일부 실시예들에 있어서, 저장 디바이스는 시스템 온 칩(SoC)을 구현할 수 있다. SoC는 전력 손실 이벤트를 검출하도록 구성될 수 있다. 일례로서, 저장 디바이스는 5 V 전력 도메인을 포함할 수 있다. SoC는 5 V 전력 도메인이 5 V 전력의 소정 레벨 또는 백분율로 강하하는 때를 검출하도록 구성될 수 있다. 예를 들어, SoC는 5 V 전력이 4.9 V 이하로부터 임의의 곳으로 강하하는 때를 검출할 수 있다. 일부 경우들에 있어서, SoC는 전력 손실을 검출할 시에 이벤트 인터럽트를 생성할 수 있다. 일 실시예에서, 인터럽트는 생성되어 저장소 제어기로 전송될 수 있다. 일부 경우들에 있어서, 저장소 제어기는 RISC(reduced instruction set computing) 프로세서, 예컨대 ARM(Advanced RISC Machine) 프로세서를 포함할 수 있다. 일부 실시예들에 있어서, 생성된 인터럽트는 저장소 제어기로 전송되는 인터럽트 요청(interrupt request, IRQ)을 포함할 수 있다. 대안으로, 일부 실시예들에 있어서, 생성된 인터럽트는 저장소 제어기로 전송되는 낮은 대기시간의 FIQ(fast interrupt request)를 포함할 수 있다.
인터럽트를 수신할 시, 제어기는 인터럽트가 전력 손실 이벤트에 대한 것인지 여부를 판정할 수 있다. 제어기가, 인터럽트가 전력 손실 이벤트에 대한 것으로 판정하는 경우, 제어기는 기록 동작이 전력 손실 당시에 발생하고 있는지 여부를 판정할 수 있다. 기록 동작이 발생하고 있는 것으로 판정할 시, 제어기는 현재 기록되고 있는 트랙에 인접한 트랙의 트랙 ID를 식별할 수 있고, 저장 디바이스의 비휘발성 메모리에 식별된 트랙 ID를 저장할 수 있다. 일부 경우들에 있어서, 제어기는 최대 4 바이트의 정보를 100 마이크로초 미만으로 비휘발성 메모리에 저장할 수 있다. 일부 경우들에 있어서, 제어기는 2개 이상의 위치들에 임계 정보를 저장할 수 있다. 예를 들어, 제어기는 비휘발성 메모리에 임계 정보 및 임계 정보의 카피를 저장할 수 있다. 일부 경우들에 있어서, 제어기는 제2 비휘발성 메모리에 임계 정보의 카피를 저장할 수 있다. 일부 실시예들에 있어서, 제어기는 임계 정보의 카피를 저장소 드라이브 외부의 메모리 디바이스로 전송할 수 있다.
일 실시예에서, 제어기는 비휘발성 메모리를 모니터링하여 비휘발성 메모리의 사용가능한 저장 용량을 판정할 수 있다. 일부 경우들에 있어서, 제어기는, 제어기가, 비휘발성 메모리 디바이스의 90% 이상이 사용되는 것으로 판정하는 경우에 비휘발성 메모리 디바이스의 적어도 일부를 소거할 수 있다. 일례로서, 제어기는 비휘발성 메모리에서 가장 오래된 데이터를 소거할 수 있다. 대안으로, 제어기는 데이터 타입, 데이터 히트(data heat), 또는 이들의 임의의 조합에 기초하여 비휘발성 메모리에서 데이터를 소거할 수 있다. 일부 실시예들에 있어서, 제어기는, 제어기가, 저장 디바이스가 유휴 상태(idle)인 것으로 판정하는 경우에 비휘발성 메모리 디바이스의 일부를 소거할 수 있다.
일 실시예에서, 전력이 복원되는 경우, 임계 정보(예컨대, 소거된 트랙 ID들)는 비휘발성 메모리로부터 검색될 수 있다. 일부 실시예들에 있어서, 검색된 임계 정보는 테이블을 형성하도록 구성될 수 있다. 예를 들어, 하나 이상의 트랙 ID들이 검색되어 트랙 ID들의 테이블을 형성할 수 있다. 일부 경우들에 있어서, 판독/기록(RW) 서브시스템은 소정 트랙의 트랙 ID가 테이블에 포함된 것으로 판정할 수 있다. 테이블에서 소정 트랙의 트랙 ID를 식별할 시, RW 서브시스템은 소정 트랙으로부터 데이터를 판독하고자 시도하기를 바이패스하여, 저장 디바이스 고장을 초래할 수 있는 시스템 타임아웃을 방지할 수 있다. 일부 경우들에 있어서, 테이블에서 소정 트랙의 트랙 ID를 식별할 시, RW 서브시스템은 트랙 상에서의 섹터 단위 판독 재시도를 바이패스할 수 있다. 따라서, 디바이스 타임아웃으로 인한 저장 디바이스 고장이 회피될 수 있고, 그에 따라, 저장 디바이스에의 액세스는 저장 디바이스가 기록 동작을 수행하고 있던 동안에 전력이 손실됨에도 불구하고 유지될 수 있다.
도 1은 본 시스템들 및 방법들이 구현될 수 있는 환경(100)의 일 실시예를 도시한 블록 다이어그램이다. 환경은 디바이스(105) 및 저장 디바이스(110)를 포함할 수 있다. 저장 디바이스(110)는 하드 디스크 드라이브들, 솔리드 스테이트 드라이브들, 및 하드 디스크 드라이브와 솔리드 스테이트 드라이브 양측 모두를 포함하는 하이브리드 드라이브들의 임의의 조합을 포함할 수 있다. 일부 실시예들에 있어서, 본 명세서에 기술된 시스템들 및 방법들은 단일 디바이스(예컨대, 디바이스(105)) 상에서 수행될 수 있다. 일부 경우들에 있어서, 본 명세서에 기술된 방법들은 다수의 저장 디바이스들 또는 저장 디바이스들의 네트워크 상에서 수행될 수 있다. 디바이스(105)의 예들은 저장소 서버, 저장소 인클로저, 저장소 제어기, 분산형 저장 시스템 내의 저장소 드라이브들, 클라우드 저장 시스템 상의 저장소 드라이브들, 개인 컴퓨팅 디바이스들 상의 저장 디바이스들, 서버 상의 저장 디바이스들, 또는 이들의 임의의 조합을 포함한다. 일부 구성들에 있어서, 디바이스(105)는 전력 손실 모듈(130)을 포함할 수 있다. 일례에서, 디바이스(105)는 저장 디바이스(110)에 커플링될 수 있다. 일부 실시예들에 있어서, 디바이스(105) 및 저장 디바이스(110)는 플래시 메모리 또는 솔리드 스테이트 드라이브의 컴포넌트들일 수 있다. 대안으로, 디바이스(105)는 저장 디바이스(110)의 호스트(예컨대, 운영 체제, 호스트 하드웨어 시스템, 또는 이들의 임의의 조합)의 컴포넌트일 수 있다.
일 실시예에서, 디바이스(105)는 하나 이상의 프로세서들, 메모리, 및/또는 하나 이상의 저장 디바이스들을 갖는 컴퓨팅 디바이스일 수 있다. 일부 경우들에 있어서, 디바이스(105)는 무선 저장 디바이스를 포함할 수 있다. 일부 실시예들에 있어서, 디바이스(105)는 가정 또는 사무실 설비를 위한 클라우드 드라이브를 포함할 수 있다. 일 실시예에서, 디바이스(105)는 스위치, 라우터, 액세스 포인트, 또는 이들의 임의의 조합과 같은 네트워크 디바이스를 포함할 수 있다. 일례에서, 디바이스(105)는 하나 이상의 근거리 및/또는 원격 컴퓨팅 디바이스들로부터, 이들로, 또는 이들과 함께 데이터 스트림들을 수신하도록, 데이터를 저장 및/또는 프로세싱하도록, 그리고/또는 데이터를 송신하도록 동작가능할 수 있다.
디바이스(105)는 데이터베이스를 포함할 수 있다. 일부 경우들에 있어서, 데이터베이스는 디바이스(105) 내부의 것일 수 있다. 예를 들어, 저장 디바이스(110)는 데이터베이스를 포함할 수 있다. 추가로 또는 대안으로, 데이터베이스는 유선 및/또는 무선 데이터베이스로의 접속부를 포함할 수 있다. 추가로, 본 명세서에서 더 상세히 기술되는 바와 같이, 소프트웨어 및/또는 펌웨어(예컨대, 메모리에 저장됨)가 디바이스(105)의 프로세서 상에서 실행될 수 있다. 프로세서 상에서 실행되는 그러한 소프트웨어 및/또는 펌웨어는 디바이스(105)가 본 명세서에 기술된 동작들과 연관된 신호를 모니터링, 프로세싱, 요약, 제시, 및/또는 전송하게 하도록 동작가능할 수 있다.
일부 실시예들에 있어서, 저장 디바이스(110)는 하나 이상의 네트워크들을 통해 디바이스(105)에 접속할 수 있다. 네트워크들의 예들은 클라우드 네트워크들, 근거리 통신망(local area network, LAN)들, 광역 통신망(wide area network, WAN)들, 가상 사설 통신망(virtual private network, VPN)들, 개인 통신망(personal area network), 근거리 무선 통신(near-field communication, NFC), 통신 네트워크, 무선 네트워크들(예를 들어, 802.11을 이용함), 및/또는 셀룰러 네트워크(예를 들어, 3G 및/또는 LTE를 이용함), 또는 이들의 임의의 조합을 포함한다. 일부 구성들에 있어서, 네트워크는 인터넷 및/또는 인트라넷을 포함할 수 있다. 디바이스(105)는 무선 통신 링크를 거쳐서 네트워크를 통해 신호들을 수신 및/또는 전송할 수 있다. 일부 실시예들에 있어서, 사용자는 로컬 컴퓨팅 디바이스, 원격 컴퓨팅 디바이스, 및/또는 네트워크 디바이스를 통해 디바이스(105)의 기능들에 액세스할 수 있다. 예를 들어, 일부 실시예들에 있어서, 디바이스(105)는 사용자와 인터페이싱하는 애플리케이션을 포함할 수 있다. 일부 경우들에 있어서, 디바이스(105)는 네트워크 디바이스, 원격 컴퓨팅 디바이스, 및/또는 로컬 컴퓨팅 디바이스의 하나 이상의 기능들과 인터페이싱하는 애플리케이션을 포함할 수 있다.
일 실시예에서, 저장 디바이스(110)는 디바이스(105) 내부의 것일 수 있다. 일례로서, 디바이스(105)는 저장 디바이스(110)의 저장 매체들과 인터페이싱하는 저장소 제어기를 포함할 수 있다. 전력 손실 모듈(130)은 전력 손실을 검출할 시에 임계 데이터를 저장하도록 구성될 수 있다.
도 2는, 본 발명의 다양한 태양들에 따른, 전자 통신에 사용하기 위한 장치(205)의 블록 다이어그램(200)을 도시한다. 장치(205)는 도 1을 참조하여 기술된 디바이스(105)의 하나 이상의 태양들의 일례일 수 있다. 장치(205)는 드라이브 제어기(210), 드라이브 버퍼(215), 호스트 인터페이스 로직(220), 드라이브 매체들(225), 에러 정정 코드(error correcting code, ECC) 유닛(245), 비휘발성 메모리(250), 커패시터(255), 및 전력 손실 모듈(130-a)을 포함할 수 있다. 이들 컴포넌트들 각각은 서로와 그리고/또는 다른 컴포넌트들과 직접적으로 그리고/또는 간접적으로 통신할 수 있다.
장치(205)의 컴포넌트들 중 하나 이상은, 개별적으로 또는 총체적으로, 하드웨어에서의 적용가능한 기능들 중 일부 또는 전부를 수행하도록 적응된 하나 이상의 ASIC(application-specific integrated circuit)들을 사용하여 구현될 수 있다. 대안으로, 기능들은 하나 이상의 집적 회로들 상에서 하나 이상의 다른 프로세싱 유닛들(또는 코어들)에 의해 수행될 수 있다. 다른 예들에서, 당업계에 공지된 임의의 방식으로 프로그래밍될 수 있는 다른 타입들의 집적 회로들(예컨대, 구조화된/플랫폼 ASIC들, 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA)들, 및 다른 반-특별주문형 IC들)이 사용될 수 있다. 각각의 모듈의 기능들이 - 전체적으로 또는 부분적으로 - 또한 구현될 수 있는데, 하나 이상의 일반적 및/또는 애플리케이션 특정적 프로세서들에 의해 실행되도록 포맷화된 명령어들이 메모리에서 구현된다.
일 실시예에서, 드라이브 제어기(210)는 프로세서(230), 버퍼 관리자(235), 및 매체 제어기(240)를 포함할 수 있다. 드라이브 제어기(210)는, 프로세서(230)를 통해, 호스트 인터페이스 로직(220), 장치(205)와 장치(205)의 호스트(예컨대, 운영 체제, 호스트 하드웨어 시스템, 또는 이들의 임의의 조합) 사이의 인터페이스와 함께 판독 및 기록 요청들을 프로세싱할 수 있다. 드라이브 버퍼(215)는 장치(205)의 내부 동작들에 대해 데이터를 일시적으로 보유할 수 있다. 예를 들어, 호스트는 데이터를 드라이브 매체들(225) 상에 저장하라는 요청과 함께 데이터를 장치(205)로 전송할 수 있다. 드라이버 제어기(210)는 요청을 프로세싱할 수 있고, 수신된 데이터를 드라이브 매체들(225) 내에 저장할 수 있다. 일부 경우들에 있어서, 드라이브 매체들(225) 내에 저장된 데이터의 일부가 드라이브 버퍼(215)에 카피될 수 있고, 프로세서(230)는 데이터의 이러한 카피를 프로세싱 또는 수정할 수 있고/있거나 드라이브 버퍼(215) 내에 일시적으로 보유된 데이터의 이러한 카피에 관하여 동작을 수행할 수 있다.
드라이브 제어기(210)의 외부에 묘사되어 있지만, 일부 실시예들에 있어서, 전력 손실 모듈(130-a)은 드라이브 제어기(210) 내에 위치되는 소프트웨어, 펌웨어, 및/또는 하드웨어를 포함할 수 있다. 예를 들어, 전력 손실 모듈(130-a)은 프로세서(230), 버퍼 관리자(235), 및/또는 매체 제어기(240)의 적어도 일부분들을 포함할 수 있다. 일례에서, 전력 손실 모듈(130-a)은 프로세서(230), 버퍼 관리자(235), 및/또는 매체 제어기(240)에 의해 실행되는 하나 이상의 명령어들을 포함할 수 있다. 전력 손실 모듈(130-a)은 비휘발성 메모리(250)에 임계 데이터를 저장하도록 구성될 수 있다. 일부 경우들에 있어서, 저장소 제어기(210)와 관련하여, 전력 손실 모듈(130-a)은, 장치(205)로의 전력이 손실되는 경우, 커패시터(255)와 함께, 비휘발성 메모리(250) 및/또는 제어기(210)에 전압을 제공하도록 구성될 수 있다. 이러한 전압에 의해, 전력 손실 모듈(130-a)은 전력이 완전히 다하기 전에 드라이브 제어기(210)가 비휘발성 메모리(250)에 임계 정보를 저장할 수 있게 할 수 있다.
도 3은 전력 손실 모듈(130-b)을 도시한다. 전력 손실 모듈(130-b)은 하나 이상의 프로세서들, 메모리, 및/또는 하나 이상의 저장 디바이스들을 포함할 수 있다. 전력 손실 모듈(130-b)은 데이터 모듈(305), 모니터링 모듈(310), 및 식별 모듈(315)을 포함할 수 있다. 전력 손실 모듈(130-b)은 도 1 및/또는 도 2의 전력 손실 모듈(130)의 일례일 수 있다. 이들 컴포넌트들 각각은 서로 통신할 수 있다.
일 실시예에서, 데이터 모듈(305)은 저장소 드라이브의 제1 트랙에의 기록 동작을 수행하도록 구성될 수 있다. 예를 들어, 데이터 모듈(305)은 하드 드라이브의 트랙에 데이터를 기록하도록 하는 기록 동작을 수행할 수 있다. 일부 경우들에 있어서, 저장소 드라이브는 데이터가 저장소 드라이브의 디스크 상의 트랙들의 밴드의 제1 트랙 및 제1 트랙에 인접한, 그 밴드의 제2 트랙 - 제2 트랙은 데이터가 트랙들의 밴드의 제2 트랙에 기록될 때 제1 트랙과 부분적으로 중첩됨 - 에 기록되는 슁글 자기 기록(SMR)을 구현할 수 있다.
일부 실시예들에 있어서, 기록 동작은 하나 이상의 트랙들 상의 데이터를 업데이트하는 것을 포함할 수 있다. 제1 트랙이 기록되고 있거나 중첩기록되고 있기 때문에, 인접한 제2 트랙 상의 데이터는 데이터가 제1 트랙에 기록됨에 따라 자기 판독/기록 헤드가 부분적으로 중첩되는 제2 트랙의 자기장과 인터페이싱하는 것으로 인해 제1 트랙에의 기록 동작에 의해 손상될 수 있다. 제2 트랙이 기록되기 전에 전력이 손실되는 경우, 제2 트랙은 손상되고 판독불가능하여, 전력이 저장소 드라이브에 복원되는 때의 지연들을 야기할 수 있다. 따라서, 일부 실시예들에 있어서, 모니터링 모듈(310)은, 저장소 드라이브의 전압 레벨을 모니터링하여, 기록 동작을 수행하는 동안에 저장소 드라이브 상에서의 또는 그에 대한 전력 손실을 검출하도록 구성될 수 있다. 일부 실시예들에 있어서, 모니터링의 적어도 일부는 저장소 드라이브의 하나 이상의 태양들을 모니터링하도록 구성된, 저장소 드라이브 상의 시스템 온 칩(SoC)과 함께 수행될 수 있다. 따라서, 전력이 손실되었을 때 기록되고 있는 제1 트랙에 인접한 제2 트랙이 손상되어 있을 가능성이 있다는 것을 나타내는 데이터가 저장소 드라이브에 저장되어, 일단 전력이 저장소 드라이브에 복원되면 제2 트랙이 손상된 것으로 저장소 드라이브가 판정하는 것을 가능하게 할 수 있다.
일부 실시예들에 있어서, 식별 모듈(315)은 저장소 드라이브 상에서의 전력 손실을 검출하는 것에 관하여 제1 트랙에 인접한 제2 트랙의 트랙 ID를 식별하도록 구성될 수 있다. 일부 실시예들에 있어서, 데이터 모듈(305)은 저장소 드라이브 상의 비휘발성 메모리에 식별된 트랙 ID를 저장하도록 구성될 수 있다. 일부 경우들에 있어서, 비휘발성 메모리는 판독 전용 메모리(read only memory, ROM) 기반 플래시 메모리, 예컨대 NOR 플래시 메모리, NAND 플래시 메모리 등, 및/또는 비휘발성 랜덤 액세스 메모리(random access memory, RAM) 기반 플래시 메모리, 예컨대 비휘발성 SRAM, 강유전체 RAM, 자기저항 RAM, 상 변화 RAM, 나노 RAM, 또는 상기의 것들의 임의의 조합을 포함할 수 있다. 일부 실시예들에 있어서, 데이터 모듈(305)은 비휘발성 메모리에 저장된 트랙 ID들의 테이블에 트랙 ID를 저장할 수 있다.
일부 실시예들에 있어서, 데이터 모듈(305)은 저장소 드라이브가 전력을 손실한 후에 소정 기간을 제공하여 저장소 제어기가 제2 드라이브의 트랙 ID를 저장하게 하도록 구성될 수 있다. 일부 실시예들에 있어서, 데이터 모듈(305)은, 저장소 드라이브 상의 커패시터와 함께, 저장소 드라이브가 전력을 손실한 후에 트랙 ID를 기록하도록 소정 기간을 제공할 수 있다. 예를 들어, 데이터 모듈(305)은, 트랙 ID가 저장되는 비휘발성 메모리에 접속된 저장소 드라이브 상의 커패시터에 공급 전압(예컨대, 5 V)을 공급할 수 있다. 따라서, 모니터링 모듈(310)이 전력 손실을 검출할 시, 커패시터는 소정 기간 동안 비휘발성 메모리에 공급 전압을 제공하여, 데이터 모듈(305)이 비휘발성 메모리에 제2 트랙의 트랙 ID를 기록할 수 있게 할 수 있다. 일부 실시예들에 있어서, 하나 이상의 커패시터들은 비휘발성 메모리 및 저장소 드라이브의 하나 이상의 전자 컴포넌트들에 공급 전압을 제공하여 데이터 모듈(305)이 비휘발성 메모리에 트랙 ID를 기록할 수 있게 할 수 있다.
일부 실시예들에 있어서, 데이터 모듈(305)은, 전력이 복원된 후, 제1 트랙을 확인하도록 구성될 수 있다. 일부 경우들에 있어서, 제1 트랙에 기록하는 동안에 전력 손실이 발생하므로, 제1 트랙의 적어도 일부는 스테일(stale) 또는 판독불가능 데이터를 포함할 수 있다. 따라서, 일부 경우들에 있어서, 전력 손실 시에 데이터 모듈(305)에 의해 저장된 트랙 ID에 기초하여, 식별 모듈(315)은 기록 동작 동안에 제1 트랙에 기록된 유효 데이터, 및 기록 동작에 의해 중첩기록될 것으로 여겨졌던 제1 트랙 상의 데이터를 식별할 수 있다.
일부 실시예들에 있어서, 데이터 모듈(305)은 전력이 복원된 후에 비휘발성 메모리에 저장된 제2 트랙의 트랙 ID를 판독하도록 구성될 수 있다. 일부 실시예들에 있어서, 데이터 모듈(305)은 제2 트랙의 트랙 ID가 비휘발성 메모리에 저장되어 있다는 것에 기초하여 제2 트랙을 확인하기를 바이패스하도록 구성될 수 있다. 예를 들어, 전력이 복원될 시, 데이터 모듈(305)은 저장소 드라이브의 트랙들에 저장된 데이터를 확인하도록 구성될 수 있다. 적어도 제2 트랙을 확인하기 전, 데이터 모듈(305)은 저장소 드라이브의 비휘발성 메모리에 저장된 트랙 ID들의 테이블에 액세스할 수 있다. 테이블에 액세스할 시, 데이터 모듈(305)은 제2 트랙의 트랙 ID가 트랙 ID들의 테이블에 저장되어 있는 것으로 판정할 수 있다. 제2 트랙의 트랙 ID가 트랙 ID들의 테이블에 저장되어 있다는 것에 기초하여, 데이터 모듈(305)은 제2 트랙에서의 데이터가 손상되어 있는 것으로 판정할 수 있고, 그에 따라, 제2 트랙을 확인하기를 바이패스할 수 있다.
일부 실시예들에 있어서, 데이터 모듈(305)은, 제2 트랙의 트랙 ID가 비휘발성 메모리에 저장되어 있다는 것에 기초하여 제2 트랙을 사용불가능 트랙으로 마킹하도록 구성될 수 있다. 제2 트랙에 인접한 제3 트랙 상의 데이터는 손상되지 않은 상태로 유지될 수 있다. 따라서, 데이터 모듈(305)은 제1, 제2, 및 제3 트랙들에 관하여 판독 동작을 수행할 수 있다. 판독 동작을 수행할 시, 데이터 모듈(305)은 제1 트랙으로부터 데이터를 판독할 수 있고, 제2 트랙을 스킵(skip)할 수 있고, 제3 트랙으로부터 데이터를 판독할 수 있다.
일부 실시예들에 있어서, 전력 손실에 의해 영향받는 기록 동작 동안에 제1 트랙에 기록된 데이터는 비휘발성 메모리와 같은 저장소 드라이브의 저장 매체 또는 저장소 드라이브의 다른 저장 매체에 저장될 수 있다. 예를 들어, 제1 트랙에 기록되고 있는 데이터는 저장 디바이스의 매체 캐시(예컨대, 하드 디스크의 사용자 액세스가능 부분에 기록될 데이터를 일시적으로 저장하도록 할당된 하드 디스크의 사용자 액세스불가능 부분)에 저장될 수 있다. 또한, 전력 손실이 발생하지 않았더라면 제2 트랙에 기록되었어야 했던 데이터는 매체 캐시와 같은 다른 위치에 저장될 수 있다. 따라서, 제1 트랙에 기록된 데이터 및 제2 트랙에 기록되었어야 할 데이터는 저장 매체로부터 액세스될 수 있으며, 전력이 복원된 후에 저장소 드라이브 상의 다른 트랙들에 기록될 수 있다. 이어서, 제1 및 제2 트랙들은 스테일로서 마킹될 수 있고, 다른 기록 동작에서는 다른 데이터를 위해 사용될 수 있다.
일부 실시예들에 있어서, 모니터링 모듈(310)은, 저장소 드라이브의 전압 레벨이 사전결정된 전압 레벨 아래로 강하될 때를 검출하도록 구성될 수 있다. 예를 들어, 모니터링 모듈(310)은 저장소 드라이브의 공급 전압이 그 공급 전압으로부터 사전결정된 백분율의 또는 사전결정된 양의 전압을 강하시키는 때를 판정할 수 있다. 일례로서, 모니터링 모듈(310)은 저장소 드라이브의 공급 전압(예컨대, 5 V)이 소정 값(예컨대, 4.3 V)으로 강하할 때 또는 소정 양의 전압이 공급 전압 상에서 손실될 때(예컨대, 0.5 V 이상이 5 V 공급 전압 상에서 손실될 때)를 검출할 수 있다. 대안으로, 모니터링 모듈(310)은 저장소 드라이브의 공급 전압(예컨대, 3.3 V)이 소정 백분율의 공급 전압으로 강하할 때(예컨대, 2.8 V로 15% 강하할 때) 등등을 검출할 수 있다. "전압", "전압 레벨", "공급 전압", 및 "실제 전압"이라는 용어들은 상호교환가능하게 사용될 수 있다는 것에 주목한다. 추가로 또는 대안으로, 모니터링 모듈(310)은 공급 전압의 역바이어스 전압이 공급 전압과 실제 전압 사이의 차이가 15% 차이, .7 V 차이, .5 V 차이, 또는 임의의 다른 적절한 사전결정된 차이와 같은 주어진 양으로 변하는 것을 검출하는 때를 검출할 수 있다. 예를 들어, 모니터링 모듈(310)은 공급 전압과 실제 전압 사이의 차이가 차이 임계치를 만족시킬 때를 검출할 수 있다.
일부 실시예들에 있어서, 모니터링 모듈(310)은 전력 손실 후에 전력이 저장소 드라이브에 복원되는 때를 검출하도록 구성될 수 있다. 예를 들어, 모니터링 모듈(310)은 공급 전압이 검출되고/검출되거나 저장소 드라이브에 복원될 때를 판정할 수 있다. 일부 경우들에 있어서, 모니터링 모듈(310)은 공급 전압이 소정 값이거나 또는 그를 초과할 때를 판정할 수 있다. 일례로서, 모니터링 모듈(310)은 5 V의 공급 전압이 4.7 V이거나 또는 그를 초과할 때를 판정할 수 있다.
도 4는, 다양한 예들에 따른, 전력 손실 시에 임계 데이터를 저장하기 위한 시스템(400)을 도시한다. 시스템(400)은 도 1의 디바이스(105) 및/또는 도 2의 디바이스(205) 중 어느 하나의 것의 일례일 수 있는 장치(445)를 포함할 수 있다.
장치(445)는 통신을 송신하기 위한 컴포넌트들 및 통신을 수신하기 위한 컴포넌트들을 비롯한, 양방향 음성 및 데이터 통신을 위한 컴포넌트들을 포함할 수 있다. 예를 들어, 장치(445)는 하나 이상의 저장 디바이스들 및/또는 클라이언트 시스템들과 양방향으로 통신할 수 있다. 이러한 양방향 통신은 직접적(예컨대, 장치(445)가 저장 시스템과 직접적으로 통신함)일 수 있고/있거나 간접적(예컨대, 장치(445)가 서버를 통해 클라이언트 디바이스와 간접적으로 통신함)일 수 있다.
장치(445)는, 또한, 프로세서 모듈(405), 메모리(410)(소프트웨어/펌웨어 코드(SW)(415)를 포함함), 입력/출력 제어기 모듈(420), 사용자 인터페이스 모듈(425), 네트워크 어댑터(430), 및 저장소 어댑터(435)를 포함할 수 있다. 소프트웨어/펌웨어 코드(415)는 장치(445) 상에서 실행되는 소프트웨어 애플리케이션의 일례일 수 있다. 네트워크 어댑터(430)는 - 하나 이상의 유선 링크들 및/또는 무선 링크들을 통해 - 하나 이상의 네트워크들 및/또는 클라이언트 디바이스들과 양방향으로 통신할 수 있다. 일부 실시예들에 있어서, 네트워크 어댑터(430)는 POP(point of presence)를 통한 인터넷으로의 직접 네트워크 링크를 통해 클라이언트 디바이스로의 직접 접속을 제공할 수 있다. 일부 실시예들에 있어서, 장치(445)의 네트워크 어댑터(430)는, 디지털 셀룰러 전화 접속, 셀룰러 디지털 패킷 데이터(Cellular Digital Packet Data, CDPD) 접속, 디지털 위성 데이터 접속, 및/또는 다른 접속을 비롯한, 무선 기술들을 이용하는 접속을 제공할 수 있다. 장치(445)는 도 1, 도 2, 및/또는 도 3의 전력 손실 모듈(130)에 대해 전술된 기능들을 수행할 수 있는 전력 손실 모듈(130-c)을 포함할 수 있다.
시스템(400)과 연관된 신호들은 무선 통신 신호들, 예컨대 무선 주파수, 전자기, 근거리 통신망(LAN), 광역 통신망(WAN), 가상 사설 통신망(VPN), 무선 네트워크(예를 들어, 802.11을 이용함), 셀룰러 네트워크(예를 들어, 3G 및/또는 LTE를 이용함), 및/또는 다른 신호들을 포함할 수 있다. 네트워크 어댑터(430)는 WWAN(GSM, CDMA, 및 WCDMA), WLAN(BLUETOOTH® 및 Wi-Fi를 포함함), 모바일 통신용 WMAN(WiMAX), 무선 개인 통신망(Wireless Personal Area Network, WPAN) 애플리케이션들(RFID 및 UWB를 포함함)용 안테나들, 또는 이들의 임의의 조합 중 하나 이상을 인에이블시킬 수 있다.
하나 이상의 버스들(440)이 장치(445)의 하나 이상의 요소들(예컨대, 프로세서 모듈(405), 메모리(410), I/O 제어기 모듈(420), 사용자 인터페이스 모듈(425), 네트워크 어댑터(430), 및 저장소 어댑터(435), 또는 이들의 임의의 조합) 사이에서의 데이터 통신을 허용할 수 있다.
메모리(410)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 RAM, 및/또는 다른 타입들을 포함할 수 있다. 메모리(410)는, 실행 시, 프로세서 모듈(405)이 본 명세서에 기술된 다양한 기능들을 수행하게 하는 명령어들을 포함하는 컴퓨터 판독가능의 컴퓨터 실행가능 소프트웨어/펌웨어 코드(415)를 저장할 수 있다. 대안으로, 소프트웨어/펌웨어 코드(415)는 프로세서 모듈(405)에 의해 직접적으로 실행가능할 수 있는 것이 아니라 컴퓨터가 (예컨대, 컴파일 및 실행될 때) 본 명세서에 기술된 기능들을 수행하게 할 수 있다. 대안으로, 컴퓨터 판독가능의 컴퓨터 실행가능 소프트웨어/펌웨어 코드(415)는 프로세서 모듈(405)에 의해 직접적으로 실행가능할 수 있는 것이 아니라 컴퓨터가 (예컨대, 컴파일 및 실행될 때) 본 명세서에 기술된 기능들을 수행하게 하도록 구성될 수 있다. 프로세서 모듈(405)은 지능형 하드웨어 디바이스, 예컨대 중앙 프로세싱 유닛(central processing unit, CPU), 마이크로제어기, ASIC, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예들에 있어서, 메모리(410)는, 무엇보다 특히, 주변기기 컴포넌트들 또는 디바이스들과의 상호작용과 같은 기본 하드웨어 및/또는 소프트웨어 동작을 제어할 수 있는 기본 입출력 시스템(Basic Input-Output system, BIOS)을 포함할 수 있다. 예를 들어, 본 시스템들 및 방법들을 구현하도록 하는 전력 손실 모듈(130-c)의 적어도 일부분이 시스템 메모리(410) 내에 저장될 수 있다. 시스템(400)에 상주하는 애플리케이션들은, 일반적으로, 하드 디스크 드라이브 또는 다른 저장 매체와 같은 비일시적 컴퓨터 판독가능 매체 상에 저장되고 그를 통해 액세스된다. 추가로, 애플리케이션들은 네트워크 인터페이스(예컨대, 네트워크 어댑터(430) 등)를 통해 액세스될 때 애플리케이션 및 데이터 통신 기술에 따라 변조된 전기 신호들의 형태의 것일 수 있다.
많은 다른 디바이스들 및/또는 서브시스템들은 시스템(400)(예컨대, 개인용 컴퓨팅 디바이스, 모바일 컴퓨팅 디바이스, 스마트폰, 서버, 인터넷 접속 디바이스, 셀 무선 모듈 등)의 하나의 요소에 접속될 수 있거나, 또는 그의 하나 이상의 요소들로서 포함될 수 있다. 일부 실시예들에 있어서, 도 4에 도시된 모든 요소들이 본 시스템들 및 방법들을 실시하기 위해 존재할 필요가 있는 것은 아니다. 디바이스들 및 서브시스템들은 도 4에 도시된 것과는 상이한 방식들로 상호접속될 수 있다. 일부 실시예들에 있어서, 도 4에 도시된 것과 같은 시스템의 일부 동작의 태양은 당업계에 용이하게 공지될 수 있고, 본 명세서에서 상세히 논의되지 않는다. 본 발명을 구현하도록 하는 코드는 시스템 메모리(410) 또는 다른 메모리 중 하나 이상의 것과 같은 비일시적 컴퓨터 판독가능 매체에 저장될 수 있다. I/O 제어기 모듈(420) 상에 제공되는 운영 체제는 모바일 디바이스 운영 체제, 데스크톱/랩톱 운영 체제, 또는 다른 공지된 운영 체제일 수 있다.
I/O 제어기 모듈(420)은 네트워크 어댑터(430) 및/또는 저장소 어댑터(435)와 함께 동작할 수 있다. 네트워크 어댑터(430)는 네트워크를 통해 클라이언트 디바이스들(예컨대, 도 1의 디바이스(105)) 및/또는 다른 디바이스들과 통신하는 능력을 갖는 장치(445)를 인에이블시킬 수 있다. 네트워크 어댑터(430)는 유선 및/또는 무선 네트워크 접속들을 제공할 수 있다. 일부 경우들에 있어서, 네트워크 어댑터(430)는 이더넷 어댑터 또는 파이버 채널(Fibre Channel) 어댑터를 포함할 수 있다. 저장소 어댑터(435)는 장치(445)가 하나 이상의 데이터 저장 디바이스들(예컨대, 저장 디바이스(110))에 액세스할 수 있게 할 수 있다. 하나 이상의 데이터 저장 디바이스들은 2개 이상의 데이터 계층(data tier)들을 각각 포함할 수 있다. 저장소 어댑터는 이더넷 어댑터, 파이버 채널 어댑터, 파이버 채널 프로토콜(Fibre Channel Protocol, FCP) 어댑터, SCSI 어댑터, 및 iSCSI 프로토콜 어댑터 중 하나 이상을 포함할 수 있다.
도 5는, 다양한 예들에 따른, 전력 손실 시에 임계 데이터를 저장하기 위한 환경(500)을 도시한다. 환경(500)의 적어도 하나의 태양은 도 1의 디바이스(105), 도 2의 장치(205), 및/또는 도 1, 도 2, 도 3, 및/또는 도 4에 도시된 전력 손실 모듈(130)과 함께 구현될 수 있다.
도시된 바와 같이, 환경(500)은 슁글 매체 구획(예컨대, 도 2로부터의 드라이브 매체들(225)의 슁글 매체 구획)으로부터의 데이터 트랙들의 일 실시예를 나타내며, 여기서 트랙 n+1은 트랙 n 위에 슁글링되고, 트랙 n+2는 트랙 n+1 위에 슁글링되고, 등등이다. 일 실시예에서, 환경(500)은 SMR 드라이브의 제안된 트랙 레이아웃의 일 실시예를 도시한다. 도시된 바와 같이, 트랙 n 내지 트랙 n+14는 저장 디바이스의 디스크의 적어도 일부분 상에 SMR을 구현하는 저장 디바이스의 데이터 트랙들이다.
그러나, 환경(500)은 트랙 n으로부터 트랙 n+14까지의 15개의 슁글 트랙들을 나타낸다. 일 실시예에서, 트랙 n 내지 트랙 n+14는 슁글 매체 구획 상의 총 개수의 트랙들 중 일부를 나타낸다. 일부 실시예들에 있어서, 트랙 n 내지 트랙 n+14는 슁글 매체 구획의 총 개수의 트랙들을 나타낸다. 예를 들어, 슁글 매체 구획은 50,000개의 트랙들을 포함할 수 있다. 따라서, 일부 실시예들에 있어서, 트랙 n 내지 트랙 n+14는 트랙들의 총 개수가 수십 개로 넘버링되든, 수백 개로 넘버링되든, 또는 수천 개로 넘버링되든, 등등으로 넘버링되든, 슁글 매체 구획 내의 총 개수의 트랙들의 표현이다.
일 실시예에서, 환경(500)은 임의의 데이터가 트랙들에 기록되기 이전의 새로운 포맷화되거나 트리밍된 SMR 드라이브의 일례를 나타낼 수 있다. 대안으로, 환경(500)은 모든 트랙들이 데이터를 포함하는 SMR 드라이브를 나타낼 수 있는데, 여기서 트랙 n 내지 트랙 n+14는 슁글 매체 구획 내의 총 세트의 트랙들을 나타낸다. 일부 실시예들에 있어서, 트랙 n 내지 트랙 n+14는 슁글 매체 구획 내의 총 개수의 트랙들 중 일부로부터의 슁글 트랙들을 나타낼 수 있다. 따라서, 트랙 n 내지 트랙 n+14는 슁글 매체 구획 내의 총 개수의 트랙들 중 이러한 부분의 모든 트랙들에 기록된 데이터를 나타낼 수 있다.
환경(500)으로부터의 값 "n"(예컨대, 트랙 "n")은 0으로부터 슁글 매체 구획 내의 최종 트랙을 나타내는 값까지의 임의의 음이 아닌 정수일 수 있다. 예를 들어, 슁글 매체 구획에 256개의 트랙들이 있는 경우, "n"은 0 내지 255 사이의 임의의 값일 수 있다. "n"이 트랙 0 내지 트랙 255에 대해 255로 설정된 경우, 트랙 n이 마지막 트랙일 것이므로, 트랙 n 다음에 오는 도시된 트랙들은 존재하지 않을 것임에 주목한다. 따라서, 10개의 트랙들이 총 256개의 트랙들 중에서 선택되는 경우, "n"은 0 내지 246 사이의 임의의 값일 것이다. "n"이 246이었고 10개의 트랙들이 선택된 경우, 트랙 n 내지 트랙 n+9가 선택되었을 것인데, 여기서 n=246은 10개의 선택된 트랙들 중 처음 트랙일 것이고, n+9=255는 10개의 선택된 트랙들 중에서 선택된 마지막 트랙일 뿐 아니라 총 256개의 트랙들 중에서 마지막 트랙일 것이다.
도 6은, 다양한 예들에 따른, 전력 손실 시에 임계 데이터를 저장하기 위한 환경(600)을 도시한다. 환경(600)은 도 5의 환경(500)의 일례일 수 있다. 환경(600)의 적어도 하나의 태양은 도 1의 디바이스(105), 도 2의 장치(205), 및/또는 도 1, 도 2, 도 3, 및/또는 도 4에 도시된 전력 손실 모듈(130)과 함께 구현될 수 있다.
도시된 바와 같이, 환경(600)은 슁글 매체 구획으로부터의 데이터 트랙들의 일 실시예를 도시하며, 여기서 트랙 n+1은 트랙 n 위에 슁글링되고, 트랙 n+2는 트랙 n+1 위에 슁글링되고, 등등이다. 일 실시예에서, 환경(600)은 SMR 드라이브의 제안된 트랙 레이아웃의 일 실시예를 도시한다. 환경(600)은 환경(500)의 일례일 수 있다. 도시된 바와 같이, 트랙 n 내지 트랙 n+14는 저장 디바이스의 디스크의 적어도 일부분 상에 SMR을 구현하는 저장 디바이스의 데이터 트랙들이다.
일 실시예에서, 전력 손실 모듈(130)은 환경(600)으로부터의 적어도 하나의 트랙을 수반하는 기록 동작을 수행할 수 있다. 일례로서, 전력 손실 모듈(130)은 트랙 n+7에의 기록 동작을 수행할 수 있다. 전력 손실 모듈(130)이 트랙 n+7에 데이터를 기록한 결과로서, 트랙 n+8 상의 데이터는 손상 및/또는 소거될 수 있다. 일 실시예에서, 전력 손실 모듈(130)이 트랙 n+7에 데이터를 기록하는 동안에 전력이 손실될 수 있다. 판독/기록 헤드가 트랙 n+7에 데이터를 기록함에 따라, 판독/기록 헤드의 자기장은 트랙 n+8의 자기장에 영향을 미칠 수 있다. 트랙 n+7이 트랙 n+8과 중첩하므로, 판독/기록 헤드는 트랙 n+8 상의 데이터를 손상시킬 수 있다. 따라서, 트랙 n+8 상의 데이터는 복구할 수 없을 정도로 손상될 수 있다. 따라서, 도 6은 트랙 n+8 상에 저장된 데이터를 표현한 트랙 n+8의 자기장의 물리적 손상으로 인해 트랙 n+8이 저장 디바이스에 의해 판독불가능할 수 있고/있거나 트랙 n+8의 데이터가 논리적으로 저장 디바이스의 호스트에 액세스불가능하다는 것을 도시한다.
일 실시예에서, 전력 손실 모듈(130)은 전력 손실을 검출할 수 있다. 전력 손실을 검출할 시, 전력 손실 모듈(130)은 트랙 n+8에 대한 트랙 ID를 식별하여 이를 SMR 드라이브의 비휘발성 메모리(예컨대, 도 2의 비휘발성 메모리(250))에 저장할 수 있다. 따라서, 전력이 SMR 드라이브에 복원되는 경우, 전력 손실 모듈(130)은 비휘발성 메모리에 저장된 트랙 n+8에 대한 트랙 ID를 식별할 수 있고, 트랙 n+8의 확인을 수행하기를 스킵할 수 있다. 일부 실시예들에 있어서, 전력 손실 모듈(130)은 트랙 n+8에 대한 트랙 ID를 식별한 것에 기초하여 트랙 n+8에 대한 섹터 단위 재시도를 수행하기를 스킵할 수 있다. 그렇지 않다면, SMR 드라이브는 손상된 트랙 n+8을 확인하는 데 상당한 양의 시간을 소요하여, 드라이브 고장을 초래할 수 있는 디바이스 타임아웃을 야기할 수 있다. 따라서, 전력 손실 모듈(130)은 디바이스 타임아웃들을 방지하여 드라이브 고장들을 회피시키고 드라이브를 복구하기 위해 손상된 트랙들의 트랙 ID를 저장할 수 있다.
일 실시예에서, 밴드는 SMR 드라이브 상의 트랙들의 그룹을 포함할 수 있다. 일부 실시예들에 있어서, 적어도 2개의 동작들은 SMR 드라이브 상의 매체들을 판독하는 것, 즉 밴드 재기록 동작들(예컨대, 트랙들의 밴드의 판독-수정-기록 동작) 및 호스트 판독 동작들을 수반한다. 일 실시예에서, 트랙 판독이 밴드 재기록 동작에 관하여 발생하는 경우, 영향받은 트랙(예컨대, 트랙 n+8)은 스킵될 수 있다. 트랙 판독이 호스트 판독 동작에 관하여 발생하는 경우, 종래의 드라이브는 복구불가능 데이터 에러(unrecoverable data error, UDE) 상태를 호스트에 되돌려 줄 수 있다. 대안으로, 전력 손실 모듈(130)은 호스트가 트랙 n+8과 같은 영향받은 트랙을 판독하고자 시도하는 경우에 UDE 상태 대신에 사전정의된 데이터 패턴을 호스트에 되돌려 줄 수 있다. 예를 들어, 전력 손실 모듈(130)은 트랙 n+8에 대한 트랙 ID가 비휘발성 메모리에 저장되는 것을 검출할 수 있다. 그 결과, 호스트가 트랙 n+8로부터 데이터를 판독하고자 시도하는 경우, 전력 손실 모듈(130)은 일례로서 0들 및/또는 1들의 스트링과 같은 사전정의된 패턴을 되돌려 줄 수 있다.
도 7은, 본 발명의 다양한 태양들에 따른, 전력 손실 시에 임계 데이터를 저장하기 위한 방법(700)의 일례를 도시한 흐름도이다. 방법(700)의 하나 이상의 태양들은 도 1의 디바이스(105), 도 2의 장치(205), 및/또는 도 1, 도 2, 도 3, 및/또는 도 4에 도시된 전력 손실 모듈(130)과 함께 구현될 수 있다. 일부 예들에서, 백엔드 서버, 컴퓨팅 디바이스, 및/또는 저장 디바이스는 백엔드 서버, 컴퓨팅 디바이스, 및/또는 저장 디바이스의 기능 요소들을 제어하도록 하는 하나 이상의 세트들의 코드들을 실행하여 하기에 기술되는 기능들 중 하나 이상을 수행할 수 있다. 추가로 또는 대안으로, 백엔드 서버, 컴퓨팅 디바이스, 및/또는 저장 디바이스는 특수 목적 하드웨어를 사용하여 하기에 기술되는 기능들 중 하나 이상을 수행할 수 있다.
블록(705)에서, 방법(700)은 하드 드라이브의 제1 트랙에 대한 기록 동작을 수행하는 단계를 포함할 수 있다. 블록(710)에서, 방법(700)은 저장소 드라이브의 전압 레벨을 모니터링하여, 기록 동작을 수행하는 동안에 저장소 드라이브 상에서의 전력 손실을 검출하는 단계를 포함할 수 있다. 블록(715)에서, 방법(700)은 전력 손실이 검출되는지 여부를 판정할 수 있다. 전력 손실이 검출되지 않는 경우, 방법(700)은 블록(710)에서 전압 레벨을 계속해서 모니터링할 수 있다. 전력 손실이 검출되는 경우, 블록(720)에서, 방법(700)은 저장소 드라이브 상에서 전력 손실을 검출할 시에 제1 트랙에 인접한 제2 트랙의 트랙 ID를 식별하는 단계를 포함할 수 있다. 블록(725)에서, 방법(700)은 저장소 드라이브 상의 비휘발성 메모리에 식별된 트랙 ID를 저장하는 단계를 포함할 수 있다.
블록(705) 내지 블록(725)에서의 동작들은 도 1 내지 도 4를 참조하여 기술된 전력 손실 모듈(130) 및/또는 다른 모듈을 사용하여 수행될 수 있다. 따라서, 방법(700)은 전력 손실 시에 임계 데이터를 저장하는 것과 관련하여 전력 손실 시에 임계 데이터를 저장하는 단계를 포함할 수 있다. 방법(700)이 단 하나의 구현예이고, 방법(700)의 동작들이 재배열, 생략, 및/또는 다른 방식으로 수정되어, 다른 구현예들이 가능하고 고려되도록 할 수 있다는 것에 주목해야 한다.
도 8은, 본 발명의 다양한 태양들에 따른, 전력 손실 시에 임계 데이터를 저장하기 위한 방법(800)의 일례를 도시한 흐름도이다. 방법(800)의 하나 이상의 태양들은 도 1의 디바이스(105), 도 2의 장치(205), 및/또는 도 1, 도 2, 도 3, 및/또는 도 4에 도시된 전력 손실 모듈(130)과 함께 구현될 수 있다. 일부 예들에서, 백엔드 서버, 컴퓨팅 디바이스, 및/또는 저장 디바이스는 백엔드 서버, 컴퓨팅 디바이스, 및/또는 저장 디바이스의 기능 요소들을 제어하도록 하는 하나 이상의 세트들의 코드들을 실행하여 하기에 기술되는 기능들 중 하나 이상을 수행할 수 있다. 추가로 또는 대안으로, 백엔드 서버, 컴퓨팅 디바이스, 및/또는 저장 디바이스는 특수 목적 하드웨어를 사용하여 하기에 기술되는 기능들 중 하나 이상을 수행할 수 있다.
블록(805)에서, 방법(800)은 전력 손실 후에 전력이 저장소 드라이브에 복원되는 때를 검출하는 단계를 포함할 수 있다. 전력 손실이 발생하는 경우, 기록 동작은 제2 트랙에 인접한 제1 트랙에 데이터를 기록하는 것이다. 블록(810)에서, 방법(800)은 제2 트랙의 트랙 ID가 트랙 ID 테이블에 저장되어 있는지 여부를 판정하는 단계를 포함할 수 있다. 방법(800)이 제2 트랙의 트랙 ID가 트랙 테이블에 저장되어 있지 않은 것으로 판정하는 경우, 블록(815)에서, 방법(800)은 제2 트랙을 확인할 수 있다. 그렇지 않다면, 방법(800)이 제2 트랙의 트랙 ID가 트랙 테이블에 저장되어 있는 것으로 판정하는 경우, 블록(820)에서, 방법(800)은 제2 트랙의 트랙 ID가 비휘발성 메모리에 저장되어 있다는 것에 기초하여 제2 트랙을 확인하기를 바이패스할 수 있다. 블록(825)에서, 방법(800)은 제2 트랙을 판독불가능 데이터를 갖는 것으로 마킹할 수 있다.
블록(805) 내지 블록(820)에서의 동작(들)은 도 1 내지 도 4를 참조하여 기술된 전력 손실 모듈(130) 및/또는 다른 모듈을 사용하여 수행될 수 있다. 따라서, 방법(800)은 전력 손실 시에 임계 데이터를 저장하는 단계를 제공할 수 있다. 방법(800)이 단 하나의 구현예이고, 방법(800)의 동작들이 재배열, 생략, 및/또는 다른 방식으로 수정되어, 다른 구현예들이 가능하고 고려되도록 할 수 있다는 것에 주목해야 한다.
일부 예들에 있어서, 방법들(700, 800) 중 2개 이상으로부터의 태양들이 조합될 수 있고/있거나 별개일 수 있다. 방법들(700, 800)은 단지 예시적인 구현예들이고, 방법들(700, 800)의 동작들은 재배열 또는 달리 수정되어, 다른 구현예들이 가능하도록 할 수 있다는 것에 주목해야 한다.
첨부 도면들과 관련하여 전술된 상세한 설명은 예들을 설명하는 것이고, 구현될 수 있거나 또는 청구범위의 범주 내에 있는 유일한 사례들만을 나타내는 것은 아니다. 본 명세서에서 사용될 때, "예" 및 "예시적"이라는 용어들은 "예, 사례, 또는 예시로서의 역할을 하는 것"을 의미하며, "바람직한" 또는 "다른 예들에 비해 유리한 것"을 의미하는 것은 아니다. 상세한 설명은 설명된 기술들의 이해를 제공하는 목적을 위해 특정 세부사항들을 포함한다. 그러나, 이들 기술들은 이들 특정 세부사항들 없이도 실시될 수 있다. 일부 사례들에 있어서, 공지된 구조들 및 장치들이 기술된 예들의 개념들을 불명료하게 하지 않도록 하기 위해 블록 다이어그램 형태로 도시된다.
정보 및 신호들은 여러 가지 상이한 기술들 및 기법들 중 임의의 것을 이용하여 표현될 수 있다. 예를 들어, 상기 설명 전체에 걸쳐서 언급될 수 있는 데이터, 명령어들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광학장들 또는 광학 입자들, 또는 이들의 임의의 조합에 의해 표현될 수 있다.
본 발명과 관련하여 기술된 다양한 예시적인 블록들 및 컴포넌트들은 범용 프로세서, 디지털 신호 프로세서(DSP), ASIC, FPGA, 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 기술된 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안예에서, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 및/또는 상태 머신일 수 있다. 프로세서는, 또한, 컴퓨팅 디바이스들의 조합, 예컨대 DSP와 마이크로프로세서의 조합, 다수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 및/또는 임의의 다른 그러한 구성으로서 구현될 수 있다.
본 명세서에 기술된 기능들은 하드웨어, 프로세서에 의해 실행되는 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 프로세서에 의해 실행되는 소프트웨어로 구현되는 경우, 그 기능들은 컴퓨터 판독가능 매체 상에서 하나 이상의 명령어들 또는 코드로서 저장 또는 송신될 수 있다. 다른 예들 및 구현예들은 본 개시내용 및 첨부된 청구범위의 사상 및 범주 내에 있다. 예를 들어, 소프트웨어의 특징으로 인해, 전술된 기능들은 프로세서에 의해 실행되는 소프트웨어, 하드웨어, 펌웨어, 하드와이어링(hardwiring), 또는 이들 중 임의의 것의 조합들을 이용하여 구현될 수 있다. 기능들을 구현하는 특징부들은, 또한, 기능들 중 일부분들이 상이한 물리적 위치들에서 구현되도록 분산되는 것을 포함해서, 다양한 위치들에 물리적으로 위치될 수 있다.
청구범위를 포함하여 본 명세서에서 사용되는 바와 같이, 2개 이상의 항목들의 리스트에서 사용될 때, "및/또는"이라는 용어는 열거된 항목들 중 어느 하나가 자체적으로 채용될 수 있거나 또는 열거된 항목들 중 2개 이상의 항목들의 임의의 조합이 채용될 수 있다는 것을 의미한다. 예를 들어, 구성이 컴포넌트들 A, B, 및/또는 C를 포함하는 것으로 기술되는 경우, 구성은 A를 단독으로; B를 단독으로; C를 단독으로; A와 B를 조합하여; A와 C를 조합하여; B와 C를 조합하여; 또는 A와 B와 C를 조합하여 포함할 수 있다. 또한, 청구범위를 포함하여 본 명세서에서 사용되는 바와 같이, 항목들의 리스트(예를 들어, "~ 중 적어도 하나" 또는 "~ 중 하나 이상"과 같은 구문이 서문으로 작성된 항목들의 리스트)에서 사용되는 바와 같은 "또는"은, 예를 들어, "A, B, 또는 C 중 적어도 하나"의 리스트가 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC(예컨대, A와 B와 C)를 의미하도록 택일적 리스트를 나타낸다.
또한, 다른 컴포넌트들 내에 포함되거나 또는 다른 컴포넌트들과는 별개인 컴포넌트들의 임의의 개시내용은 예시적인 것으로 간주되어야 하는데, 그 이유는 하나 이상의 일원적 구조물들 및/또는 별개의 구조물들의 일부로서 모든, 대부분의, 및/또는 일부의 요소들을 통합하는 것을 포함한 다수의 다른 아키텍처들이 동일한 기능을 달성하도록 잠재적으로 구현될 수 있기 때문이다.
컴퓨터 판독가능 매체들은 하나의 장소로부터 다른 장소로의 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함한 통신 매체들 및 컴퓨터 저장 매체들 양측 모두를 포함한다. 저장 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체들은 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM, DVD, 또는 다른 광학 디스크 저장소, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 명령어들 또는 데이터 구조들의 형태로 원하는 프로그램 코드 수단을 반송 또는 저장하는데 사용될 수 있고 범용 또는 특수 목적 컴퓨터, 또는 범용 또는 특수 목적 프로세서에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속부가 컴퓨터 판독가능 매체로 적절히 지칭된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선(twisted pair), 디지털 가입자 라인(DSL), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 본 명세서에서 사용된 바와 같은 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(compact disc, CD), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크(digital versatile disc, DVD), 플로피 디스크(floppy disk) 및 블루레이 디스크(Blu-Ray disc)를 포함하며, 여기서 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 반면, 디스크(disc)들은 데이터를 레이저들에 의해 광학적으로 재생한다. 상기의 것들의 조합들이, 또한, 컴퓨터 판독가능 매체들의 범주 내에 포함된다.
본 발명에 대한 상기의 설명은 당업자가 본 발명을 제작 또는 사용할 수 있게 하도록 제공된다. 본 발명에 대한 다양한 수정들은 당업자들에게 용이하게 명백할 것이며, 본 명세서에 정의된 일반적인 원리들은 본 발명의 범주를 벗어나지 않으면서 다른 변형들에 적용될 수 있다. 따라서, 본 발명은 본 명세서에 기술된 예들 및 설계들로 제한되는 것이 아니라, 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범주에 부합할 것이다.
본 발명은, 구체적으로, 보안 시스템 애플리케이션들에 적용될 수 있다. 본 발명은, 구체적으로, 저장 시스템 애플리케이션들에 적용될 수 있다. 일부 실시예들에 있어서, 개념들, 기술적 설명들, 특징들, 방법들, 발상들, 및/또는 설명들은, 구체적으로, 저장 및/또는 데이터 보안 시스템 애플리케이션들에 적용될 수 있다. 이들 특정 애플리케이션들에 대한 그러한 시스템들의 구별되는 이점은 본 개시 내용으로부터 명백하다.
본 개시 내용에 설명 및/또는 예시된 프로세스 파라미터들, 동작들, 및 단계들은 단지 예로서 주어지며, 원한다면 변형될 수 있다. 예를 들어, 예시 및/또는 기술된 단계들이 특정 순서로 도시 또는 논의될 수 있지만, 이들 단계들은 반드시 예시 또는 논의된 순서로 수행될 필요는 없다. 본 명세서에서 기술 및/또는 예시된 다양한 예시적인 방법들은, 또한, 본 명세서에서 기술 또는 예시된 단계들 중 하나 이상을 생략할 수 있거나, 또는 개시된 단계들 외에도 추가적인 단계들을 포함할 수 있다.
또한, 다양한 실시예들이 본 명세서에서 완전히 기능적인 컴퓨팅 시스템들의 맥락으로 기술 및/또는 예시되었지만, 이들 예시적인 실시예들 중 하나 이상은, 실제로 분산을 수행하는 데 사용되는 특정 타입의 컴퓨터 판독가능 매체들과는 무관하게, 다양한 형태들의 프로그램 제품으로서 분산될 수 있다. 본 명세서에 개시된 실시예들은, 또한, 소정 태스크들을 수행하는 소프트웨어 모듈들을 사용하여 구현될 수 있다. 이들 소프트웨어 모듈들은 스크립트, 배치(batch), 또는 컴퓨터 판독가능 저장 매체 상에 또는 컴퓨팅 시스템 내에 저장될 수 있는 다른 실행가능 파일들을 포함할 수 있다. 일부 실시예들에 있어서, 이들 소프트웨어 모듈들은 컴퓨팅 시스템이 본 명세서에 개시된 예시적인 실시예들 중 하나 이상을 수행하는 것을 허용할 수 있고/있거나 명령할 수 있다.
설명의 목적들을 위해, 본 설명은 특정 실시예들을 참조하여 기술되어 있다. 그러나, 상기의 예시적인 논의들은, 총망라하는 것으로 또는 논의된 정확한 형태들로 본 시스템들 및 방법들을 제한하도록 의도되지 않는다. 상기의 교시 내용들의 관점에서 많은 수정들 및 변형들이 가능하다. 본 시스템들 및 방법들과 그들의 실제 응용들의 원리들을 설명하여, 당업자들이 고려되는 특정 용도에 대해 적합할 수 있는 바와 같은 다양한 수정들로 본 시스템들, 장치, 및 방법들과 다양한 실시예들을 활용할 수 있게 하도록 하기 위해 실시예들이 선택 및 기술되었다.
Claims (20)
- 시스템으로서,
저장소 드라이브; 및
저장소 제어기를 포함하고,
상기 저장소 제어기는,
상기 저장소 드라이브의 제1 트랙에 대한 기록 동작을 수행하고;
저장소 드라이브의 전압 레벨을 모니터링하여, 상기 기록 동작을 수행하는 동안에 상기 저장소 드라이브 상에서의 전력 손실을 검출하고;
상기 저장소 드라이브 상에서의 전력 손실을 검출할 시에 상기 제1 트랙에 인접한 제2 트랙의 트랙 ID를 식별하고;
상기 저장소 드라이브 상의 비휘발성 메모리에 상기 식별된 트랙 ID를 저장하고; 그리고
상기 제2 트랙의 트랙 ID가 상기 비휘발성 메모리에 저장되어 있는 것에 적어도 부분적으로 기초하여 전력이 복원된 후에 상기 제2 트랙을 확인(verify)하기를 바이패스(bypass)하는, 시스템. - 제1항에 있어서, 상기 저장소 제어기는,
전력이 복원된 후에 상기 제1 트랙을 확인(verify)하는, 시스템. - 제2항에 있어서, 상기 저장소 제어기는,
전력이 복원된 후에 상기 비휘발성 메모리에 저장된 상기 제2 트랙의 트랙 ID를 판독하는, 시스템. - 제1항에 있어서, 상기 저장소 제어기는,
상기 제2 트랙의 트랙 ID가 상기 비휘발성 메모리에 저장되어 있는 것에 기초하여 상기 제2 트랙을 사용불가능 트랙(unusable track)으로 마킹하는, 시스템. - 제1항에 있어서, 상기 저장소 제어기는,
상기 저장소 드라이브의 전압 레벨이 사전결정된 전압 레벨 아래로 강하될 때를 검출하는, 시스템. - 제1항에 있어서, 상기 저장소 제어기는,
전력 손실 후에 전력이 상기 저장소 드라이브에 복원되는 때를 검출하는, 시스템. - 제1항에 있어서,
상기 저장소 드라이브가 전력을 손실한 후에 소정 기간을 제공하여 상기 저장소 제어기가 상기 제2 트랙의 트랙 ID를 저장하도록 하는 커패시터를 추가로 포함하는, 시스템. - 제1항에 있어서, 상기 저장소 제어기는,
트랙 ID들의 테이블에 상기 식별된 트랙 ID를 저장하는, 시스템. - 제1항에 있어서, 상기 비휘발성 메모리는 NOR 플래시 메모리를 포함하는, 시스템.
- 제1항에 있어서, 상기 저장소 드라이브의 적어도 일부분은 슁글 자기 기록(shingled magnetic recording, SMR)을 위해 구성된, 시스템.
- 제1항에 있어서, 상기 모니터링의 적어도 일부는 상기 저장소 드라이브의 하나 이상의 태양(aspect)들을 모니터링하도록 구성된, 상기 저장소 드라이브 상의 시스템 온 칩(system on chip, SoC)과 함께 수행되는, 시스템.
- 장치로서,
제어기를 포함하고,
상기 제어기는,
저장소 드라이브의 제1 트랙에 대한 기록 동작을 수행하고;
저장소 드라이브의 전압 레벨을 모니터링하여, 상기 기록 동작을 수행하는 동안에 상기 저장소 드라이브 상에서의 전력 손실을 검출하고;
상기 저장소 드라이브 상에서의 전력 손실을 검출할 시에 상기 제1 트랙에 인접한 제2 트랙의 트랙 ID를 식별하고;
상기 저장소 드라이브 상의 비휘발성 메모리에 상기 식별된 트랙 ID를 저장하고; 그리고
상기 제2 트랙의 트랙 ID가 상기 비휘발성 메모리에 저장되어 있는 것에 적어도 부분적으로 기초하여 전력이 복원된 후에 상기 제2 트랙을 확인하기를 바이패스하는, 장치. - 제12항에 있어서, 상기 제어기는,
전력이 복원된 후에 상기 제1 트랙을 확인하는, 장치. - 제12항에 있어서, 상기 제어기는,
전력이 복원된 후에 상기 비휘발성 메모리에 저장된 상기 제2 트랙의 트랙 ID를 판독하는, 장치. - 제12항에 있어서, 상기 제어기는,
상기 제2 트랙의 트랙 ID가 상기 비휘발성 메모리에 저장되어 있는 것에 기초하여 상기 제2 트랙을 사용불가능 트랙으로 마킹하는, 장치. - 제12항에 있어서, 상기 제어기는,
상기 저장소 드라이브의 전압 레벨이 사전결정된 전압 레벨 아래로 강하될 때를 검출하는, 장치. - 제12항에 있어서, 상기 제어기는,
전력 손실 후에 전력이 상기 저장소 드라이브에 복원되는 때를 검출하는, 장치. - 방법으로서,
저장소 드라이브의 제1 트랙에 대한 기록 동작을 수행하는 단계;
저장소 드라이브의 전압 레벨을 모니터링하여, 상기 기록 동작을 수행하는 동안에 상기 저장소 드라이브 상에서의 전력 손실을 검출하는 단계;
상기 저장소 드라이브 상에서의 전력 손실을 검출할 시에 상기 제1 트랙에 인접한 제2 트랙의 트랙 ID를 식별하는 단계;
상기 저장소 드라이브 상의 비휘발성 메모리에 상기 식별된 트랙 ID를 저장하는 단계; 및
상기 제2 트랙의 트랙 ID가 상기 비휘발성 메모리에 저장되어 있는 것에 적어도 부분적으로 기초하여 전력이 복원된 후에 상기 제2 트랙을 확인하기를 바이패스하는 단계를 포함하는, 방법. - 제18항에 있어서,
전력이 복원된 후에 상기 제1 트랙을 확인하는 단계; 및
전력이 복원된 후에 상기 비휘발성 메모리에 저장된 상기 제2 트랙의 트랙 ID를 판독하는 단계를 포함하는, 방법. - 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/164,732 US9983811B2 (en) | 2016-05-25 | 2016-05-25 | Save critical data upon power loss |
US15/164,732 | 2016-05-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170133276A KR20170133276A (ko) | 2017-12-05 |
KR102248743B1 true KR102248743B1 (ko) | 2021-05-04 |
Family
ID=60417760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170064200A KR102248743B1 (ko) | 2016-05-25 | 2017-05-24 | 전력 손실 시의 임계 데이터 저장 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9983811B2 (ko) |
KR (1) | KR102248743B1 (ko) |
CN (1) | CN107437422B (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10976795B2 (en) * | 2019-04-30 | 2021-04-13 | Seagate Technology Llc | Centralized power loss management system for data storage devices |
US11756581B1 (en) | 2022-03-24 | 2023-09-12 | Western Digital Technologies, Inc. | Position and risk reconstruction in shingled magnetic recording data storage devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198432A1 (en) * | 2004-03-05 | 2005-09-08 | Dell Products L.P, | Information handling system including media drive resume recording feature |
US20100095148A1 (en) * | 2008-10-15 | 2010-04-15 | Silicon Motion, Inc. | Link table recovery method |
US20120303867A1 (en) * | 2011-05-23 | 2012-11-29 | Hitachi Global Storage Technologies Netherlands B.V. | Implementing enhanced epo protection for indirection data |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100640620B1 (ko) * | 2004-12-27 | 2006-11-02 | 삼성전자주식회사 | 트윈비트 셀 구조의 nor형 플래쉬 메모리 소자 및 그제조 방법 |
US8010826B2 (en) * | 2005-09-13 | 2011-08-30 | Meta Systems | Reconfigurable circuit with redundant reconfigurable cluster(s) |
US7647474B2 (en) | 2005-09-27 | 2010-01-12 | Intel Corporation | Saving system context in the event of power loss |
US20120221891A1 (en) | 2011-02-14 | 2012-08-30 | Mitsubishi Electric Corporation | Programmable controller |
US20140219021A1 (en) * | 2013-02-07 | 2014-08-07 | Seagate Technology Llc | Data protection for unexpected power loss |
US9448896B2 (en) * | 2013-08-07 | 2016-09-20 | Seagate Technology Llc | Torn write mitigation |
-
2016
- 2016-05-25 US US15/164,732 patent/US9983811B2/en active Active
-
2017
- 2017-05-24 KR KR1020170064200A patent/KR102248743B1/ko active IP Right Grant
- 2017-05-25 CN CN201710378428.3A patent/CN107437422B/zh active Active
-
2018
- 2018-05-04 US US15/971,588 patent/US10275166B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198432A1 (en) * | 2004-03-05 | 2005-09-08 | Dell Products L.P, | Information handling system including media drive resume recording feature |
US20100095148A1 (en) * | 2008-10-15 | 2010-04-15 | Silicon Motion, Inc. | Link table recovery method |
US20120303867A1 (en) * | 2011-05-23 | 2012-11-29 | Hitachi Global Storage Technologies Netherlands B.V. | Implementing enhanced epo protection for indirection data |
Also Published As
Publication number | Publication date |
---|---|
US10275166B2 (en) | 2019-04-30 |
CN107437422B (zh) | 2020-07-07 |
US9983811B2 (en) | 2018-05-29 |
CN107437422A (zh) | 2017-12-05 |
US20180253241A1 (en) | 2018-09-06 |
KR20170133276A (ko) | 2017-12-05 |
US20170344279A1 (en) | 2017-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8516343B2 (en) | Apparatus, system, and method for retiring storage regions | |
US20190213124A1 (en) | Endurance enhancement scheme using memory re-evaluation | |
US8041991B2 (en) | System and method for recovering solid state drive data | |
EP3633517B1 (en) | Storage device and method of operating storage device | |
KR101547317B1 (ko) | 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템 | |
US20110125977A1 (en) | Aligning data storage device partition to boundary of physical data sector | |
KR102364368B1 (ko) | 플래시 메모리 내에서의 데이터 리프레시의 개선 | |
CN104583930A (zh) | 数据迁移的方法、控制器和数据迁移装置 | |
US20150019904A1 (en) | Data processing system and operating method thereof | |
TWI603191B (zh) | 用於使用反及頁面緩衝器來增進固態硬碟之移轉緩衝器之使用的方法和系統 | |
KR102248743B1 (ko) | 전력 손실 시의 임계 데이터 저장 | |
US20150324248A1 (en) | Information processing device, control method and recording medium for recording control program | |
US9229814B2 (en) | Data error recovery for a storage device | |
US9047923B1 (en) | Fast shingled tracks recording | |
KR20210097493A (ko) | 메모리 시스템의 데이터 분류 방법 및 이를 수행하는 컨트롤러 | |
US11380418B2 (en) | Memory controllers, storage devices, and operating methods of the storage devices | |
WO2017054697A1 (zh) | 在sas存储系统中实现hba卡访问sata磁盘的方法及设备 | |
KR102277731B1 (ko) | 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러 | |
US10121511B2 (en) | Forward corrupted track detection and by-pass for shingled magnetic recording drives | |
US8140749B2 (en) | Storage control apparatus with memory backup device | |
CN110232033B (zh) | 磁盘装置及写入方法 | |
US9626111B1 (en) | Sequential write of random workload in mirrored performance pool environments | |
US9047229B1 (en) | System and method for protecting content | |
US11977447B2 (en) | Storage device, operating method for the same and memory system | |
US8843784B2 (en) | Remapping disk drive I/O in response to media errors |
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 |