KR100674949B1 - 디스크 드라이브의 데이터 백업 방법 및 그 방법을사용하는 디스크 드라이브 - Google Patents

디스크 드라이브의 데이터 백업 방법 및 그 방법을사용하는 디스크 드라이브 Download PDF

Info

Publication number
KR100674949B1
KR100674949B1 KR1020050006093A KR20050006093A KR100674949B1 KR 100674949 B1 KR100674949 B1 KR 100674949B1 KR 1020050006093 A KR1020050006093 A KR 1020050006093A KR 20050006093 A KR20050006093 A KR 20050006093A KR 100674949 B1 KR100674949 B1 KR 100674949B1
Authority
KR
South Korea
Prior art keywords
backup
sectors
data
disk
sector
Prior art date
Application number
KR1020050006093A
Other languages
English (en)
Other versions
KR20060085116A (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 삼성전자주식회사
Priority to KR1020050006093A priority Critical patent/KR100674949B1/ko
Publication of KR20060085116A publication Critical patent/KR20060085116A/ko
Application granted granted Critical
Publication of KR100674949B1 publication Critical patent/KR100674949B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/02Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/108Transfer of content, software, digital rights or licenses
    • G06F21/1082Backup or restore
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, 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/02Control of operating function, e.g. switching from recording to reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1232Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc sector, i.e. the minimal addressable physical data unit
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Abstract

디스크 드라이브의 데이터 백업 방법 및 그 방법을 사용하는 디스크 드라이브가 개시된다. 본 발명에 따른 데이터 백업 방법은 디스크 드라이브 내에서 어느 하나의 섹터가 손상되면 전체 데이터에 대한 접근이 불가능하게 되는 특정 영역에 대하여 어드레스가 연속적인 섹터들로 구성되는 백업 대상 구간을 설정하는 단계, 디스크 드라이브에 대한 기록 명령이 백업 대상 구간에 대한 것인지 여부를 판단하는 단계 및 기록 명령이 백업 대상 구간에 대한 것이면 기록 명령에 따라 기록되는 원본 데이터를 디스크의 섹터들로 구성되는 백업 구간 내에 백업하는 단계를 포함한다. 본 발명에 의하면 데이터 백업에 따르는 코스트 손실을 최소화하면서 신뢰성을 높일 수 있다.

Description

디스크 드라이브의 데이터 백업 방법 및 그 방법을 사용하는 디스크 드라이브{method for data backup in a disk drive and disk drive using the same method}
도1a는 본 발명의 일 실시예에 따른 HDD의 평면도이다.
도1b는 도1a의 HDD에 관한 전기 회로의 개략도이다.
도2는 본 발명의 일 실시예에 따른 데이터 백업 방법의 흐름도이다.
도3은 도2의 데이터 백업 방법을 구체적으로 설명하는 도면이다.
도4는 본 발명의 다른 실시예에 따른 데이터 백업 방법의 흐름도이다.
도5는 도4의 데이터 백업 방법을 구체적으로 설명하는 도면이다.
도6은 도2 및 도4의 데이터 백업 방법에 따라 기록된 데이터를 판독하는 과정의 흐름도이다.
본 발명은 디스크 드라이브의 데이터 백업 방법 및 그 방법을 사용하는 디스크 드라이브에 관한 것으로서, 보다 상세하게는 하드 디스크 드라이브에 기록되는 데이터를 동일한 하드 디스크 드라이브에 백업하는 방법 및 그 방법을 사용하는 하 드 디스크 드라이브에 관한 것이다.
일반적으로, 하드 디스크 표면에는 복수의 트랙들이 동심원 형상으로 존재한다. 트랙은 데이터를 기록하기 위한 구획이다. 하드 디스크 표면의 최외주 트랙으로부터 내주를 향해 순서대로 0, 1, …과 같이 트랙 번호가 할당된다.
HDD는 복수의 하드 디스크들이 겹쳐져서 구성될 수 있다. 이때, 각 하드 디스크에서의 동일 번호 트랙들은 원통형으로 배치된다. 이것을 실린더라고 한다. 각 실린더에는 트랙 번호와 같은 번호가 할당된다. 즉, 최외주 실린더로부터 순서대로 실린더0, 실린더1, …이 된다. 따라서, 트랙은 대응하는 헤드 번호와 실린더 번호로부터 특정될 수 있다.
각 트랙은 복수의 섹터들로 분할된다. 하드 디스크에 대한 통상의 데이터 판독/기록 동작은 섹터 단위로 행해진다.
섹터를 어드레스(address)하는 방식으로서 CHS(Cylinder Head Sector) 방식이 있다. CHS 방식은 실린더, 헤드, 섹터의 순서대로 물리 블록 어드레스(Physical Block Address: PBA)를 지정함으로써 원하는 데이터에 엑세스하는 어드레스 방식이다.
CHS 방식에서 HDD에 대한 호스트가 지정할 수 있는 CHS 파라미터에는 한계가 있다. 이에 따라, 논리 블록 어드레스(Logical Block Address: LBA) 방식이 사용되고 있다. LBA 방식은 실린더 번호, 헤드 번호, 섹터 번호를 0으로부터 시작되는 논리적 일련번호로 표현하는 방식이다.
섹터에 에러가 발생하면 그 섹터에 기록된 데이터가 손실된다. 이를 복구하 여 데이터의 신뢰성을 높이기 위해 RAID(Redundant Array of Inexpensive Disks) 등의 기술이 개발되었다.
RAID 방식은 다수의 HDD들을 하나의 가상 디스크(virtual disk)로 구성하는 방식이다. RAID 방식은 다수의 HDD들에 데이터를 분할하여 병렬 전송한다. 따라서, RAID 시스템을 구축하기 위해서는 다수의 HDD들이 필요하다.
또한, 데이터를 하나 이상의 장치에 중복 저장하는 미러링 방식은 간결하지만 실제 저장용량의 두배에 해당하는 디스크를 필요로 한다.
이와 같이 종래 디스크 드라이브의 데이터 백업 방법에 의하면 많은 비용이 든다는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는, 어드레스가 연속적인 섹터들로 구성되는 백업 대상 구간에 대한 기록 명령을 수신하면 백업 구간 내에 데이터를 더 기록함으로써 코스트 손실을 최소화하면서 신뢰성을 높일 수 있는 디스크 드라이브의 데이터 백업 방법 및 그 방법을 사용하는 디스크 드라이브를 제공하는 데 있다.
본 발명이 이루고자 하는 기술적 과제는 기록 명령에 포함된 백업 비트의 값이 백업을 지시하는 값이면 백업 구간 내에 데이터를 더 기록함으로써 코스트 손실을 최소화하면서 신뢰성을 높일 수 있는 디스크 드라이브의 데이터 백업 방법 및 그 방법을 사용하는 디스크 드라이브를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 데이터 백업 방법은, 디스크 드라이브 내에서 어느 하나의 섹터가 손상되면 전체 데이터에 대한 접근이 불가능하게 되는 특정 영역에 대하여 어드레스가 연속적인 섹터들로 구성되는 백업 대상 구간을 설정하는 단계, 상기 디스크 드라이브에 대한 기록 명령이 상기 백업 대상 구간에 대한 것인지 여부를 판단하는 단계 및 상기 기록 명령이 상기 백업 대상 구간에 대한 것이면 상기 기록 명령에 따라 기록되는 원본 데이터를 상기 디스크의 섹터들로 구성되는 백업 구간 내에 백업하는 단계를 포함한다.
상기의 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 데이터 백업 방법은, 디스크 드라이브에 대한 기록 명령에서 백업 비트를 검출하는 단계, 상기 백업 비트의 값이 백업을 지시하는 값인지 여부를 판단하는 단계 및 상기 백업 비트의 값이 백업을 지시하는 값이면 상기 기록 명령에 따라 기록되는 원본 데이터를 상기 디스크의 섹터들로 구성되는 백업 구간 내에 백업하는 단계를 포함한다.
상기의 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 디스크 드라이브는 다수의 섹터들로 구성되는 디스크, 상기 디스크의 섹터들에 데이터를 기록하는 헤드 및 상기 디스크 내에서 어느 하나의 섹터가 손상되면 전체 데이터에 대한 접근이 불가능하게 되는 특정 영역에 대하여 어드레스가 연속적인 섹터들로 구성되는 백업 대상 구간을 설정하고 상기 백업 대상 구간에 대한 기록 명령을 수신하면 상기 기록 명령에 따라 기록되는 원본 데이터를 상기 디스크의 섹터들로 구성되는 백업 구간 내에 상기 헤드를 통하여 백업하는 제어부를 포함한다.
상기의 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 디스크 드라이브는 다수의 섹터들로 구성되는 디스크, 상기 디스크의 섹터들에 데이터를 기록하는 헤드 및 기록 명령에서 검출된 백업 비트값이 백업을 지시하는 값이면 상기 기록 명령에 따라 기록되는 원본 데이터를 상기 디스크의 섹터들로 구성되는 백업 구간 내에 상기 헤드를 통하여 백업하는 제어부를 포함한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다.
도1a는 본 발명의 일 실시예에 따른 하드 디스크 드라이브(Hard Disk Drive: HDD)의 평면도이다. 도1a를 참조하면, HDD(100)는 스핀들 모터(spindle motor)(104)에 의해 회전되는 하나 또는 그 이상의 자기 디스크들(102)을 포함할 수 있다.
스핀들 모터(104)는 HDD(100)의 베이스 플레이트(base plate)(106)에 장착될 수 있다. HDD(100)는 디스크들(102)을 싸는 커버(108)를 더 포함할 수 있다.
HDD(100)는 복수의 헤드들(110)을 포함할 수 있다. 각 헤드(110)는 회전 디스크(102)에 인접하여 위치한다. 각 헤드(20)는 디스크들(102)의 자기장들을 자화하고 감지하는 분리된 기록 및 판독 소자들(둘 다 미도시)을 구비할 수 있다.
각 헤드(110)는 플렉슈어(flexure)(112)에 장착되어 헤드 짐벌 어셈블리(Head Gimbal Assembly: HGA)를 형성하여 수평이 유지될 수 있다. 플렉슈어(112)는 액튜에이터 암(actuator arm)(114)에 부착되고, 액튜에이터 암(114)은 베어링 어셈블리(116)에 의해 베이스 플레이트(106)에 회전 가능하게 장착된다.
복수의 헤드들(110)에 있어서 헤드별 특성은 각각 개별적이다. 즉, 헤드별 인치당 비트수(Bit Per Inch), 헤드별 인치당 트랙수(Track Per Inch), 헤드별 트랙수 및 헤드별 트랙당 섹터수 등은 각 헤드에 대하여 개별적이다. 그러므로, 헤드별 데이터 전송속도가 상이할 수 있다. 이러한 헤드별 특성은 디스크(1020)의 시스 템 실린더에 기록될 수 있다.
보이스 코일(118)은 자석 어셈블리(120)에 연결되어 보이스 코일 모터(VCM)를 생성한다. 보이스 코일(118)에 전류를 제공하는 것은 액튜에이터 암(114)을 회전시키는 토크(torque)를 생성하고 헤드들(110)이 디스크들(102)의 표면들을 가로질러 이동하게 한다.
HDD(100)는 인쇄 회로 기판(printed circuit board) 어셈블리(124)를 더 포함할 수 있다. 인쇄 회로 기판 어셈블리(124)는 인쇄 회로 기판(128)에 연결된 복수의 집적회로들(126)을 포함할 수 있다. 인쇄 회로 기판(128)은 전선들(미도시)에 의하여 보이스 코일(118), 헤드들(110), 및 스핀들 모터(104)에 연결된다.
도1b는 도1a의 HDD(100)에 관한 전기 회로의 개략도이다. 도1b를 참조하면, 회로(150)는 헤드(110)에 연결되는 전치-증폭 회로(152)를 포함할 수 있다. 전치-증폭 회로(152)는 판독/기록 채널 회로(162)에 연결된 판독 데이터 채널(154) 및 기록 데이터 채널(156)을 갖는다.
전치-증폭 회로(152)는 또한 제어부(164)에 연결된 판독/기록 인에이블 게이트(160)를 갖는다. 데이터는 판독/기록 인에이블 게이트(160)를 인에이블함으로써 디스크(102)상에 기록되거나 디스크(102)로부터 판독될 수 있다.
판독/기록 채널 회로(162)는 각각 판독 및 기록 채널(166, 168)을 통하여, 그리고 각각 판독 및 기록 게이트(170, 172)를 통하여 제어부(164)에 연결된다. 판독 게이트(170)는 데이터가 디스크(102)로부터 판독되어야 할 때 인에이블된다. 기록 게이트(172)는 디스크(102)에 데이터를 기록할 때 인에이블되어야 한다.
제어부(164)는 소프트웨어 루틴에 따라서 동작하는 디지털 신호 프로세서가 될 수 있다. 여기서, 소프트웨어 루틴은 디스크(102)로부터 데이터를 기록하고 판독하는 루틴을 포함한다.
판독/기록 채널 회로(162)와 제어부(164)는 또한 HDD(100)의 보이스 코일 모터와 스핀들 모터(104)를 제어하는 모터 제어 회로(174)에 연결될 수 있다.
제어부(164)는 비-휘발성 메모리 디바이스(176)에 연결될 수 있다. 예를 들면, 비-휘발성 메모리 디바이스(176)는 읽기용 기억 장치("ROM")일 수 있다. 비-휘발성 메모리 디바이스(176)는 제어부(164) 및 HDD(100)를 동작시키는 명령어들을 저장할 수 있다. 양자택일로, 제어부(164)는 HDD(100)를 동작시키는 펌웨어를 가질 수 있다.
도2는 본 발명의 일 실시예에 따른 데이터 백업 방법의 흐름도이다. 도2의 데이터 백업 방법은 백업 대상 구간을 구성하는 섹터들의 어드레스가 연속적인 경우이다.
여기서, 백업 대상 구간은 디스크(102)에서 백업의 대상이 되는 구간을 의미한다. 그리고, 섹터들의 어드레스는 LBA(Logical Block Assembly)일 수 있다.
도2를 참조하면, HDD(100)가 호스트로부터 디바이스 식별 명령(IDENTIFY DEVICE commad)을 수신한다(S210).
일반적으로, 디바이스 식별 명령은 호스트가 HDD(100)에 데이터를 기록하기 위하여 최초로 전송하는 명령이다. 디바이스 식별 명령을 수신한 HDD(100)는 호스트로 한 섹터분의 정보를 전송한다. 이 때, 전송되는 정보는 HDD(100)의 모델명, 용량, 지원 모드 등 HDD(100)의 스펙(SPEC)이다.
본 실시예에서, HDD(100)가 호스트로부터 디바이스 식별 명령을 수신하면 HDD(100)는 호스트로 백업 가능 용량을 더 전송한다(S220).
여기서, 백업 가능 용량이란 디스크(102)에서 백업 구간으로 사용 가능한 섹터들의 사이즈를 의미한다. 그리고, 백업 구간이란 원본 데이터가 백업되는 구간을 의미한다. 백업 구간의 위치는 HDD(100)에 의하여 결정된다.
호스트가 HDD(100)의 백업 가능 용량을 파악하기 위하여 디바이스 식별 명령을 사용하였으나, 이것은 하나의 예시에 불과하다. 호스트가 다른 명령을 사용하여 HDD(100)의 백업 가능 용량을 파악하는 것도 가능하다.
호스트는 HDD(100)의 백업 가능 용량에 기초하여 백업 대상 구간을 설정한다. 백업 대상 구간은 어드레스가 연속적인 섹터들로 구성된다.
백업 대상 구간은 시작 위치 및 사이즈를 결정하는 것에 의하여 설정될 수 있다. 백업 대상 구간의 시작 위치는 백업 대상 구간이 시작되는 섹터를 의미한다. 백업 대상 구간의 시작 위치는 LBA로 지시될 수 있다. 그리고, 호스트는 백업 대상 구간의 사이즈를 백업 가능 용량 이하로 설정한다.
HDD(100)는 호스트로부터 백업 대상 구간의 시작 위치 및 사이즈를 수신한다(S230). HDD(100)는 백업 대상 구간의 시작 위치 및 사이즈를 소정의 위치에 저장한다. 상기 단계들(S210 내지 S230)은 HDD(100)의 데이터 백업을 위한 준비 단계에 해당한다.
이후에 HDD(100)가 호스트로부터 데이터의 기록 명령을 수신하면(S240), HDD(100)의 제어부(164)는 기록 명령이 백업 대상 구간에 대한 것인지 여부를 판단한다(S250). 즉, HDD(100)의 제어부(164)는 기록 명령이 백업 대상 구간에 데이터를 기록하는 명령인지 여부를 판단한다.
기록 명령이 백업 대상 구간에 대한 것이면 HDD(100)의 제어부(164)는 기록 명령에 따라 원본 데이터를 기록하고 백업 구간 내에 원본 데이터를 백업한다(S260). 디스크(102)에 원본 데이터 및 백업 데이터를 기록하는 것은 헤드(110)를 통하여 수행된다.
기록 명령이 백업 대상 구간에 대한 것이 아니면 HDD(100)의 제어부(164)는 기록 명령에 따라 원본 데이터를 기록할 뿐이다(S270). 즉, 기록 명령이 백업 대상 구간에 대한 것이 아니면 HDD(100)의 제어부(164)는 원본 데이터를 백업하지 않는다.
도3은 도2의 데이터 백업 방법을 구체적으로 설명하는 도면이다. 도3을 참조하면, 백업 구간의 시작 LBA는 Ox8000000이고 백업 구간의 사이즈는 섹터들 1024개의 사이즈이다. 따라서, HDD(100)는 호스트로 백업 가능 용량이 섹터들 1024개의 사이즈라고 전송한다(도2의 S220).
백업 대상 구간의 시작 위치는 LBA Ox2000000이고 백업 대상 구간의 사이즈는 섹터들 1024개의 사이즈이다. 따라서, HDD(100)는 호스트로부터 백업 대상 구간의 시작 위치로서 LBA Ox2000000를 수신하고 백업 대상 구간의 사이즈로서 섹터들 1024개의 사이즈를 수신한다(도2의 S230). 백업 대상 구간의 사이즈는 백업 구간의 사이즈 이하로 설정되었다.
HDD(100)가 호스트로부터 LBA OX2000256에서 시작하여 256개의 섹터들에 연속적으로 데이터를 기록하라는 기록 명령을 수신하면(도2의 S240), HDD(100)의 제어부(164)는 기록 명령이 백업 대상 구간에 대한 것인지 여부를 판단한다(도2의 S250).
백업 대상 구간의 시작 LBA가 OX2000000이고 백업 대상 구간의 사이즈가 섹터들 1024개의 사이즈이므로 기록 명령은 백업 대상 구간에 대한 것이다.
따라서, HDD(100)의 제어부(164)는 기록 명령에 따라 LBA OX2000256에서 시작하여 256개의 섹터들에 연속적으로 원본 데이터를 기록하고, 백업 구간내에 원본 데이터를 백업한다(도2의 S260).
이때, 백업 구간 내에서 원본 데이터가 백업되는 영역의 시작 LBA는 Ox8000256이고, 백업되는 영역의 사이즈는 섹터들 256개의 사이즈이다.
원본 데이터가 기록된 영역의 시작 LBA는 백업 대상 구간의 시작 LBA로부터 섹터들 256개의 사이즈만큼 떨어져 있다. 따라서, HDD(100)의 제어부는 백업 구간의 시작 LBA로부터 섹터들 256개의 사이즈만큼 떨어져있는 LBA를 백업 데이터의 시작 LBA로 결정하고 섹터들 256개의 사이즈에 걸쳐서 백업 데이터를 기록한다.
이에 따라, 원본 데이터가 기록된 섹터에 에러가 발생하면 HDD(100)는 백업 구간에서 에러 발생 섹터에 대응하는 섹터가 어디에 위치하고 있는지를 알 수 있다.
예를 들어, 에러 발생 섹터의 LBA가 Ox2000500이면 백업 구간에서 이에 대응하는 섹터의 LBA는 Ox8000500이다. 에러 발생 섹터의 LBA인 Ox2000500은 백업 대상 구간의 시작 LBA인 Ox2000000으로부터 섹터들 500개의 사이즈만큼 떨어진 곳에 위치하므로, 백업 구간에서 이에 대응하는 섹터의 LBA는 백업 구간의 시작 LBA인 Ox8000000으로부터 섹터들 500개의 사이즈만큼 떨어진 곳에 위치하는 Ox8000500이 되는 것이다.
도4는 본 발명의 다른 실시예에 따른 데이터 백업 방법의 흐름도이다. 도4의 데이터 백업 방법은 섹터들의 어드레스가 불연속적인 구간을 백업하는 경우이다.
도4를 참조하면, 디바이스 식별 명령 수신 단계(S410) 및 백업 가능 용량 전송 단계(S420)는 도2의 디바이스 식별 명령 수신 단계(S210) 및 백업 가능 용량 전송 단계(S220)와 동일하다.
호스트는 HDD(100)로 기록 명령을 전송한다. 일반적으로, 기록 명령에서 전송되는 비트들에는 디바이스/헤드 레지스터에 관한 여덟 비트들이 포함된다. 디바이스/헤드 레지스터는 데이터를 기록할 디바이스의 번호 및 헤드의 번호를 기록하는 레지스터이다.
디바이스/헤드 레지스터에 관한 여덟 비트들은 다음의 표1과 같다.
7 6 5 4 3 2 1 0
BACKUP # obsolete # # # # #
표1의 윗줄은 비트 번호를 표시하는 것이고, 아랫줄은 해당 비트의 사용 여부를 표시하는 것이다. 표1에서 #으로 표시된 비트들(제0 비트 내지 제4 비트, 제6 비트)은 원래 사용되고 있는 비트들이다. 예를 들어, 제0비트 네지 제3 비트에는 헤드 번호가 기록되고, 제 4비트에는 디바이스 번호가 기록된다. 제7 비트는 사용 되고 있지 않다.
본 실시예에서, 호스트는 원래 사용되고 있지 않던 제 7비트를 백업 비트로 사용한다. 백업 비트는 백업을 지시하는 값 또는 백업을 지시하지 않는 값 중에서 어느 하나를 가질 수 있다.
본 실시예에서 기록 명령에 포함된 디바이스/헤드 레지스터에 관한 비트들 중에서 하나를 백업 비트로 사용하였지만 이것은 하나의 예시에 불과하다. 이 비트 이외의 다른 비트들도 백업 비트로 사용될 수 있다.
호스트는 HDD(100)에 기록할 데이터의 백업을 원하면 기록 명령을 전송할 때 백업 비트의 값을 1로 설정한다. 여기서, 1은 HDD에게 백업을 지시하는 값이다.
이전 과정(S420)에서 호스트는 HDD의 백업 가능 용량을 수신한 바 있으므로 HDD의 백업 가능 용량을 알고 있다. 호스트는 HDD의 백업 가능 용량을 고려하여 백업 비트의 값을 설정한다. 이에 따라, 호스트가 백업 비트의 값에 의하여 백업을 지시하는 데이터의 사이즈는 HDD의 백업 가능 용량을 초과하지 않는다.
본 실시예에서 백업을 지시하는 값으로 1을 사용하였지만 이것은 하나의 예시에 불과하다. 1 이외의 다른 값들도 백업을 지시하는 값으로 사용될 수 있다.
HDD(100)는 호스트로부터 기록 명령을 수신한다(S430).
HDD(100)의 제어부(164)는 기록 명령에서 백업 비트를 검출한다(S440). 즉, HDD(100)의 제어부(164)는 기록 명령에서 디바이스/헤드 레지스터에 관한 제7 비트를 검출한다.
HDD(100)의 제어부(164)는 백업 비트의 값이 백업을 지시하는 값인지 여부를 판단한다(S450). 즉, HDD(100)의 제어부(164)는 백업 비트의 값이 1인지 여부를 판단한다.
백업 비트의 값이 백업을 지시하는 값이면 HDD(100)의 제어부(164)는 기록 명령에 따라 원본 데이터를 기록하고 백업 구간내에 원본 데이터를 백업한다(S460). 디스크(102)에 원본 데이터 및 백업 데이터를 기록하는 것은 헤드(110)를 통하여 수행된다.
그리고, HDD(100)의 제어부(164)는 원본 데이터가 기록된 섹터들과 백업 데이터가 기록된 섹터들을 맵핑하여 기록한다(S470). 말하자면, HDD(100)의 제어부(164)는 원본 데이터가 기록된 섹터들과 백업 데이터가 기록된 섹터들의 맵핑 테이블을 관리하는 것이다.
맵핑 테이블은 원본 데이터의 각 섹터에 대응하는 백업 데이터의 섹터가 어디에 위치하는지를 나타낸다. 맵핑 테이블이 필요한 이유는 원본 데이터가 기록되는 섹터들의 어드레스가 불연속적이기 때문이다.
원본 데이터가 기록된 섹터에 에러가 발생하여 원본 데이터가 판독되지 않으면 백업 데이터에서 에러 발생 섹터에 대응하는 섹터를 판독하게 되는데, 이때 맵핑 테이블이 사용된다. 즉, HDD(100)의 제어부(164)는 원본 데이터의 에러 발생 섹터에 대응하는 백업 데이터의 섹터가 어디에 위치하는지를 맵핑 테이블을 이용함으로써 알 수 있다.
백업 비트의 값이 백업을 지시하는 값이 아니면 HDD(100)의 제어부(164)는 기록 명령에 따라 원본 데이터를 기록할 뿐이다(S480). 즉, 백업 비트의 값이 백업 을 지시하는 값이 아니면 HDD(100)의 제어부(164)는 원본 데이터를 백업하지 않는다.
도5는 도4의 데이터 백업 방법을 구체적으로 설명하는 도면이다. 도5를 참조하면, 백업 구간의 시작 LBA는 Ox8000000이고 백업 구간의 사이즈는 섹터들 1024개의 사이즈이다. 따라서, HDD(100)는 호스트로 백업 가능 용량이 섹터들 1024개의 사이즈라고 전송한다(도4의 S420).
호스트는 LBA Ox1002100에서 시작하여 섹터들 64개의 사이즈에 해당하는 구간에 대한 기록 명령을 전송할 때 백업 비트의 값을 1로 설정한다. 여기서, 1은 백업을 지시하는 값이다.
HDD(100)가 이 기록 명령을 수신하면(도4의 S450), HDD(100)의 제어부(164)는 기록 명령에서 디바이스/헤드 레지스터에 관한 비트들 중에서 제7 비트를 검출한다(도4의 S440).
그리고, HDD(100)의 제어부는 제 7비트의 값이 1인지 여부를 판단한다(도4의 S450).
백업 비트의 값이 1로 설정되어 있으므로, HDD(100)의 제어부(164)는 기록 명령에 따라 LBA OX1002100에서 시작하여 64개의 섹터들에 걸쳐서 원본 데이터를 기록하고, 백업 구간내에 원본 데이터를 백업한다(도4의 S460).
이때, 백업 구간 내에서 원본 데이터가 백업되는 영역의 시작 LBA는 Ox8000000이고, 백업되는 영역의 사이즈는 섹터들 64개의 사이즈이다.
HDD(100)의 제어부(164)는 원본 데이터가 기록된 섹터들(LBA Ox1002100부터 64개의 섹터들)과 백업 데이터가 기록된 섹터들(LBA Ox 8000000부터 64개의 섹터들)을 맵핑한다. 그리고, HDD(100)의 제어부(164)는 맵핑을 표2와 같은 맵핑 테이블에 기록한다(도4의 S470).
원본 데이터의 시작 LBA 원본 데이터의 섹터 갯수 백업 데이터의 시작 LBA
Ox1002100 64 Ox8000000
호스트는 LBA Ox1002164부터 LBA Ox3003450에 이르는 구간에 대한 기록 명령을 전송할 때 백업 비트의 값을 1로 설정하지 않는다. 따라서, HDD는 LBA Ox1002164부터 LBA Ox3003450에 이르는 구간에 대한 기록 명령을 수신하면 LBA Ox1002164부터 LBA Ox3003450에 이르는 구간에 원본 데이터를 기록할 뿐이다(도4의 S480). 즉, HDD(100)의 제어부(164)는 원본 데이터를 백업하지 않는다.
호스트는 LBA Ox3003450에서 시작하여 섹터들 128개의 사이즈에 해당하는 구간에 대한 기록 명령을 전송할 때 백업 비트의 값을 1로 설정한다. 여기서, 1은 백업을 지시하는 값이다.
HDD(100)가 이 기록 명령을 수신하면(도4의 S450), HDD(100)의 제어부(164)는 기록 명령에서 디바이스/헤드 레지스터에 관한 비트들 중에서 제7 비트를 검출한다(도4의 S440).
그리고, HDD(100)의 제어부는 제 7비트의 값이 1인지 여부를 판단한다(도4의 S450).
백업 비트의 값이 1로 설정되어 있으므로, HDD(100)의 제어부(164)는 기록 명령에 따라 LBA OX3003450에서 시작하여 128개의 섹터들에 걸쳐서 원본 데이터를 기록하고, 백업 구간내에 원본 데이터를 백업한다(도4의 S460).
이미 LBA Ox8000000부터 64개의 섹터에 걸쳐서 다른 백업 데이터가 기록된 바 있다. 따라서, LBA Ox8000064부터 128개의 섹터들에 걸쳐서 원본 데이터를 백업한다.
HDD(100)의 제어부(164)는 원본 데이터가 기록된 섹터들(LBA Ox3003450부터 128개의 섹터들)과 백업 데이터가 기록된 섹터들(LBA Ox 8000064부터 128개의 섹터들)을 맵핑한다. 그리고, HDD(100)의 제어부(164)는 맵핑을 맵핑 테이블에 기록한다(도4의 S470). 따라서, 맵핑 테이블은 다음의 표3이 된다.
원본 데이터의 시작 LBA 원본 데이터의 섹터 갯수 백업 데이터의 시작 LBA
Ox1002100 64 Ox8000000
Ox3003450 128 Ox8000064
도5에서, 원본 데이터가 기록되는 구간은 LBA Ox1002100에서 시작하여 섹터들 64개의 사이즈에 해당하는 구간 및 LBA Ox3003450에서 시작하여 섹터들 128개의 사이즈에 해당하는 구간으로서 불연속적이다.
따라서, HDD(100)의 제어부(164)는 원본 데이터가 기록된 섹터에 대응하는 백업 데이터의 섹터가 어디에 위치하고 있는지를 알 수 있게 하기 위하여 맵핑 테이블을 관리하는 것이다. 예를 들어, 원본 데이터의 에러 발생 섹터가 LBA Ox3003500이면 백업 구간에서 이에 대응하는 섹터의 LBA는 Ox8000114이다.
도6은 도2 및 도4의 데이터 백업 방법에 따라 기록된 데이터를 판독하는 과정의 흐름도이다. 도6을 참조하면, HDD(100)가 호스트로부터 원본 데이터의 판독 명령을 수신한다(S610). 그리고, HDD(100)는 원본 데이터의 판독을 시도한다(S620).
원본 데이터 판독시 에러가 발생하면(S630), HDD(100)의 제어부(164)는 원본 데이터의 에러 발생 섹터에 대응하는 백업 데이터의 섹터를 판독하여 호스트로 전송한다(S640).
도2의 데이터 백업 방법에서는 원본 데이터가 기록된 섹터들의 시작 LBA 및 백업 데이터가 기록된 섹터들의 시작 LBA에 기초하여 에러 발생 섹터에 대응하는 백업 데이터의 섹터를 검출한다. 도4의 데이터 백업 방법에서는 맵핑 테이블에 기초하여 에러 발생 섹터에 대응하는 백업 데이터의 섹터를 검출한다.
HDD(100)의 제어부(164)는 에러 발생 섹터에 할당된 논리 어드레스에 다른 섹터를 할당한다(S650). 예를 들어, 에러 발생 섹터에 할당된 논리 어드레스가 Ox2000500이면, 논리 어드레스 Ox2000500에 에러 발생 섹터가 아닌 다른 섹터를 할당한다.
이에 따라, 차후에 원본 데이터를 판독할 때는 에러 발생 섹터에 액세스하지 않게 된다.
원본 데이터 판독시 에러가 발생하지 않으면(S630), HDD(100)의 제어부(164)는 원본 데이터를 판독하여 호스트로 전송한다(S660).
한편, HDD(100)를 포맷(format)하는 경우 등 데이터 백업에 관한 정보를 삭제해야할 경우가 발생한다. 이러한 경우를 대비하여 데이터 백업에 관한 정보를 삭제하기 위한 명령(command)을 추가할 수 있다. HDD(100)가 호스트로부터 이러한 명 령을 수신하면 HDD(100)는 그동안 관리했던 백업 데이터의 시작 LBA, 원본 데이터와 백업 데이터의 맵핑 테이블 등의 정보를 초기화한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래쉬 메모리, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
상술한 바와 같이 본 발명에 따르면, 호스트는 섹터 손상시 전체 데이터의 접근이 불가능하게 되는 OS(Operating System) 영역이라든지 FAT(File Allocation Table) 영역 등의 데이터를 백업 대상으로 특정할 수 있다. 그리고, HDD는 호스트에 의해 백업 대상으로 특정된 데이터에 대해서만 백업을 지원할 수 있다. 따라서, 데이터 백업에 따르는 코스트 손실을 최소화하면서 신뢰성을 높일 수 있다.

Claims (7)

  1. 디스크 드라이브 내에서 어느 하나의 섹터가 손상되면 전체 데이터에 대한 접근이 불가능하게 되는 특정 영역에 대하여 어드레스가 연속적인 섹터들로 구성되는 백업 대상 구간을 설정하는 단계;
    상기 디스크 드라이브에 대한 기록 명령이 상기 백업 대상 구간에 대한 것인지 여부를 판단하는 단계;및
    상기 기록 명령이 상기 백업 대상 구간에 대한 것이면 상기 기록 명령에 따라 기록되는 원본 데이터를 상기 디스크의 섹터들로 구성되는 백업 구간 내에 백업하는 단계를 포함함을 특징으로 하는 데이터 백업 방법.
  2. 제1항에 있어서, 상기 백업 대상 구간의 설정 단계는
    상기 백업 대상 구간이 시작되는 섹터를 설정하는 단계;및
    상기 백업 대상 구간의 사이즈를 상기 백업 구간의 사이즈 이하로 설정하는 단계를 포함함을 특징으로 하는 디스크 드라이브의 데이터 백업 방법.
  3. 디스크 드라이브에 대한 기록 명령에서 백업 비트를 검출하는 단계;
    상기 백업 비트의 값이 백업을 지시하는 값인지 여부를 판단하는 단계;및
    상기 백업 비트의 값이 백업을 지시하는 값이면 상기 기록 명령에 따라 기록되는 원본 데이터를 디스크의 섹터들로 구성되는 백업 구간 내에 백업하는 단계를 포함함을 특징으로 하는 데이터 백업 방법.
  4. 제3항에 있어서,
    상기 원본 데이터가 기록된 섹터들과 상기 백업된 데이터가 기록된 섹터들을 맵핑하는 단계;및
    상기 맵핑을 상기 디스크 드라이브에 기록하는 과정을 더 포함함을 특징으로 하는 디스크 드라이브의 데이터 백업 방법.
  5. 제1항 및 제3항 중 어느 하나의 항에 있어서,
    상기 원본 데이터의 판독시 에러가 발생하면 상기 원본 데이터의 에러 발생 섹터에 대응하는 상기 백업 데이터의 섹터를 판독하는 단계;및
    상기 에러 발생 섹터에 할당된 논리 어드레스에 다른 섹터를 할당하는 단계를 더 포함함을 특징으로 하는 디스크 드라이브의 데이터 백업 방법.
  6. 다수의 섹터들로 구성되는 디스크;
    상기 디스크의 섹터들에 데이터를 기록하는 헤드;및
    상기 디스크 내에서 어느 하나의 섹터가 손상되면 전체 데이터에 대한 접근이 불가능하게 되는 특정 영역에 대하여 어드레스가 연속적인 섹터들로 구성되는 백업 대상 구간을 설정하고, 상기 백업 대상 구간에 대한 기록 명령을 수신하면 상기 기록 명령에 따라 기록되는 원본 데이터를 상기 디스크의 섹터들로 구성되는 백업 구간 내에 상기 헤드를 통하여 백업하는 제어부를 포함하는 것을 특징으로 하는 디스크 드라이브.
  7. 다수의 섹터들로 구성되는 디스크;
    상기 디스크의 섹터들에 데이터를 기록하는 헤드;및
    기록 명령에서 검출된 백업 비트값이 백업을 지시하는 값이면 상기 기록 명령에 따라 기록되는 원본 데이터를 상기 디스크의 섹터들로 구성되는 백업 구간 내에 상기 헤드를 통하여 백업하는 제어부를 포함하는 것을 특징으로 하는 하드 디스크 드라이브.
KR1020050006093A 2005-01-22 2005-01-22 디스크 드라이브의 데이터 백업 방법 및 그 방법을사용하는 디스크 드라이브 KR100674949B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050006093A KR100674949B1 (ko) 2005-01-22 2005-01-22 디스크 드라이브의 데이터 백업 방법 및 그 방법을사용하는 디스크 드라이브

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050006093A KR100674949B1 (ko) 2005-01-22 2005-01-22 디스크 드라이브의 데이터 백업 방법 및 그 방법을사용하는 디스크 드라이브

Publications (2)

Publication Number Publication Date
KR20060085116A KR20060085116A (ko) 2006-07-26
KR100674949B1 true KR100674949B1 (ko) 2007-01-26

Family

ID=37174948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050006093A KR100674949B1 (ko) 2005-01-22 2005-01-22 디스크 드라이브의 데이터 백업 방법 및 그 방법을사용하는 디스크 드라이브

Country Status (1)

Country Link
KR (1) KR100674949B1 (ko)

Also Published As

Publication number Publication date
KR20060085116A (ko) 2006-07-26

Similar Documents

Publication Publication Date Title
US6462896B1 (en) Method for minimizing adjacent track data loss during a write operation in a disk drive
US7830632B2 (en) Large data block written on overlapping tracks in a hard disk drive
US6115788A (en) Multi-drive array with improved data transfer rate performance
US8179627B2 (en) Floating guard band for shingle magnetic recording
US6938123B2 (en) System and method for raid striping
JP3714046B2 (ja) 仮想テープ記憶装置
US20060190699A1 (en) Method, medium, and apparatus transforming addresses of discs in a disc drive
CN110827861B (zh) 使用多个卷提供复制的多致动器驱动器
US8131920B2 (en) Method and system for dynamically allocating read and write sequence randomizer
US8014095B2 (en) Mixed format disk drive
US8014245B2 (en) System and method of defect description of a data storage medium
JP2005267240A (ja) デフラグメントを行う方法及び記憶装置
JP2004103223A (ja) ハードディスクドライブにデータを記録する方法及びその制御装置
US6493160B1 (en) Pseudo raid implementation within a single disk drive
US8320066B2 (en) Storage device and read/write processing method therefor
US7898757B2 (en) Hard disk drive with divided data sectors and hard disk drive controller for controlling the same
KR100242290B1 (ko) 트랙제로 위치결정방법 및 그에 따른 트랙맵핑(Mapping)방법
US10897273B2 (en) System-level error correction coding allocation based on device population data integrity sharing
US11954027B2 (en) Parasitic commands for equalizing logical unit capacity in asymmetric multiple actuator hard disk drive
KR100674949B1 (ko) 디스크 드라이브의 데이터 백업 방법 및 그 방법을사용하는 디스크 드라이브
US10650857B2 (en) Magnetic disk device and control method
US11934687B2 (en) Full disk serpentine write path for tamper-proof disk drive
JP2002216426A (ja) 情報記録システム
JPH0520792A (ja) フロツピーデイスク
JPS645392B2 (ko)

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee