KR101954995B1 - 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체 - Google Patents

저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체 Download PDF

Info

Publication number
KR101954995B1
KR101954995B1 KR1020110039712A KR20110039712A KR101954995B1 KR 101954995 B1 KR101954995 B1 KR 101954995B1 KR 1020110039712 A KR1020110039712 A KR 1020110039712A KR 20110039712 A KR20110039712 A KR 20110039712A KR 101954995 B1 KR101954995 B1 KR 101954995B1
Authority
KR
South Korea
Prior art keywords
merge operation
area
data
address
mapping information
Prior art date
Application number
KR1020110039712A
Other languages
English (en)
Other versions
KR20120121739A (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 KR1020110039712A priority Critical patent/KR101954995B1/ko
Priority to US13/458,977 priority patent/US9009433B2/en
Publication of KR20120121739A publication Critical patent/KR20120121739A/ko
Application granted granted Critical
Publication of KR101954995B1 publication Critical patent/KR101954995B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B7/00Recording or reproducing by optical means, e.g. recording using a thermal beam of optical radiation by modifying optical properties or the physical structure, reproducing using an optical beam at lower power by sensing optical properties; Record carriers therefor
    • G11B7/007Arrangement of the information on the record carrier, e.g. form of tracks, actual track shape, e.g. wobbled, or cross-section, e.g. v-shaped; Sequential information structures, e.g. sectoring or header formats within a track
    • 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
    • G11B2020/10898Overwriting or replacing recorded data
    • 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/012Recording on, or reproducing or erasing from, magnetic disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

저장 매체의 소스 영역에 대한 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작과 논리적 어드레스 기반 머지 동작 중 하나를 선택하는 단계; 및 선택된 머지 동작에 따라 상기 소스 영역으로부터 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 단계를 포함하는 저장 매체에 라이트 된 데이터 머지방법, 저장 매체에 대한 라이트 동작 제어 방법, 저장 장치. 컴퓨터 시스템, 및 저장 매체가 개시되어 있다.

Description

저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체{Method of merging data written on storage media, method for controlling write operation for storage media, storage device, computer system, and storage medium thereof}
본 발명은 저장 매체에 대한 라이트 동작(write operation) 제어에 관한 것으로, 특히, 저장 매체에 라이트 된 데이터를 머지(merge)할 수 있는 저장 매체에 대한 라이트 동작 제어에 관한 것이다.
호스트 기기(host device)와 연결 가능한 저장 장치(storage device)는 호스트 기기로부터 전송되는 커맨드(command)에 따라 저장 매체에 데이터를 라이트(write)하거나 저장 매체로부터 데이터를 리드(read)할 수 있다.
저장 매체의 고용량화 및 고밀도화 추세에 따라 기록 밀도를 향상시키기 위하여 다양한 라이트 기술이 연구되고 있다.
본 발명이 해결하려는 과제는 저장 매체의 라이트 상태 정보(write state information)에 기초하여 선택된 머지 동작(merge operation)에 따라 저장 매체에 라이트 된 데이터를 머지할 수 있는 저장 매체에 라이트 된 데이터 머지 방법을 제공하는데 있다.
본 발명이 해결하려는 다른 과제는 저장 매체의 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 저장 매체에 라이트 된 데이터가 머지되도록 저장 매체에 데이터를 라이트할 수 있는 저장 매체에 대한 라이트 동작 제어방법을 제공하는데 있다.
본 발명이 해결하려는 또 다른 과제는 저장 매체의 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 저장 매체에 라이트 된 데이터가 머지되도록 저장 매체에 데이터를 라이트할 수 있는 저장 장치를 제공하는데 있다.
본 발명이 해결하려는 또 다른 과제는 저장 매체의 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 저장 매체에 라이트 된 데이터가 머지되도록 저장 매체에 데이터를 라이트할 수 있는 컴퓨터 시스템을 제공하는데 있다.
본 발명이 해결하려는 또 다른 과제는 저장 매체의 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 저장 매체에 라이트 된 데이터를 머지할 수 있는 방법을 수행하는 프로그램 코드가 저장된 저장 매체를 제공하는데 있다.
본 발명이 해결하려는 또 다른 과제는 저장 매체의 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 저장 매체에 라이트 된 데이터가 머지되도록 저장 매체에 데이터를 라이트할 수 있는 라이트 동작 제어방법을 수행하는 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 제공하는데 있다.
상기 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 저장 매체에 라이트 된 데이터 머지 방법은, 저장 매체의 소스 영역(source area)에 대한 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작(merge operation)과 논리적 어드레스 기반 머지 동작중 하나를 선택하는 단계; 상기 선택된 머지 동작에 따라 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 소스 영역으로부터 데이터를 리드하는 단계; 및 상기 리드된 데이터를 상기 저장 매체의 목적지 영역(destination area)에 라이트하는 단계를 포함할 수 있다.
상기 데이터 리드 단계는, 상기 선택된 머지 동작이 상기 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보(address mapping information)에 포함된 물리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계; 및 상기 선택된 머지 동작이 상기 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 상기 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계를 포함할 수 있다.
상기 라이트 상태 정보는 상기 소스 영역의 물리적 어드레스와 상기 소스 영역에 데이터를 라이트할 때 수신된 논리적 어드레스를 매핑한 어드레스 매핑 정보의 수를 포함하고, 상기 머지 동작 선택 단계는, 상기 어드레스 매핑 정보의 수가 임계값 보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하는 단계; 및 상기 어드레스 매핑 정보의 수가 상기 임계값 보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 단계를 포함할 수 있다.
상기 라이트 상태 정보는 상기 소스 영역의 물리적 어드레스와 상기 소스 영역에 데이터를 라이트할 때 수신된 논리적 어드레스를 매핑한 어드레스 매핑 정보의 수와 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 포함하고, 상기 머지 동작 선택 단계는, 상기 어드레스 매핑 정보의 수가 제 1 임계값보다 크거나 상기 어드레스 매핑 정보의 수로 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 제 2 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하는 단계; 및 상기 소스 영역에 대한 상기 어드레스 매핑 정보의 수가 상기 제 1 임계값 보다 크지 않고, 상기 나눈 값이 상기 제 2 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 단계를 포함할 수 있다.
상기 라이트 상태 정보는 상기 소스 영역의 물리적 어드레스와 상기 소스 영역에 데이터를 라이트할 때 수신된 논리적 어드레스를 매핑한 어드레스 매핑 정보의 수와 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 포함하고, 상기 머지 동작 선택 단계는, 상기 어드레스 매핑 정보의 수로 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하는 단계; 및 상기 나눈 값이 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 단계를 포함할 수 있다.
상술한 임계값들은 상기 소스 영역의 사이즈와 상기 소스 영역에 포함된 섹터의 수 중 적어도 하나에 따라 설정되는 것이 바람직하다.
상기 소스 영역은 상기 저장 매체상의 물리적 영역에 기초한 머지 대기 영역이고, 상기 목적지 영역은 상기 저장 매체상의 물리적 영역에 기초한 프리 영역인 것이 바람직하다.
상기 머지 대기 영역에 대한 정보는 상기 저장 매체에 대해 라이트 동작이 수행될 때마다 상기 저장 매체의 각 물리적 영역의 무효화 섹터 수(invalid sector count)에 따라 업데이트 될 수 있다.
상기 저장 매체를 갖는 저장 장치가 아이들 상태일 때 또는 상기 저장 장치에서 라이트 커맨드를 수신시 상기 저장 매체에 라이트 가능한 영역이 부족할 때 상기 머지 방법이 수행될 수 있다.
상기 머지 방법은, 상기 저장 매체를 갖는 저장 장치에 포함된 머지 큐(merge queue)에 등록된 정보에 기초하여 상기 소스 영역을 선택하는 단계; 및 상기 저장 매체를 갖는 저장 장치에 포함된 프리 큐(free queue)에 등록된 정보에 기초하여 상기 목적지 영역을 선택하는 단계를 더 포함할 수 있다.
상기 머지 방법은 상기 리드된 데이터를 상기 목적지 영역에 라이트 한 후, 상기 소스 영역을 프리 영역으로 설정하는 단계를 더 포함할 수 있다. 상기 소스 영역을 프리 영역으로 설정하는 단계는, 상기 머지 큐에 등록된 상기 소스 영역에 대한 정보를 삭제하는 단계, 및 상기 프리 큐에 상기 소스 영역에 대한 정보를 등록하는 단계를 포함할 수 있다.
상기 저장 매체는 이전 트랙의 일부 영역에 겹치면서 한쪽 방향으로 순차적으로 데이터가 라이트될 수 있다.
상기 과제를 달성하기 위한 본 발명의 다른 일 실시 예에 따른 저장 매체에 라이트 된 데이터 머지 방법은, 저장 매체의 소스 영역에 대한 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 상기 소스 영역으로부터 데이터를 리드하는 단계; 및 상기 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 단계를 포함할 수 있다.
상기 과제를 달성하기 위한 본 발명의 또 다른 일 실시 예에 따른 저장 매체에 라이트 된 데이터 머지 방법은, 디스크의 머지 될 소스 영역에 대한 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 소스 영역으로 자기 헤드를 이동시키는 구동 신호를 생성하는 단계; 상기 구동 신호에 따라서 상기 자기 헤드가 이동된 상기 디스크의 상기 소스 영역의 물리적 위치로부터 데이터를 리드하는 단계; 상기 디스크의 목적지 영역의 물리적인 위치로 상기 자기 헤드를 이동시키는 구동 신호를 생성하는 단계; 및 상기 소스 영역으로부터 리드된 데이터를 상기 구동 신호에 따라 상기 자기 헤드가 이동된 상기 목적지 영역에 순차적으로 라이트 하는 단계를 포함할 수 있다.
상기 소스 영역으로 상기 자기 헤드를 이동시키는 구동 신호를 생성하는 단계는, 상기 선택된 머지 동작이 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스를 이용하여 상기 자기 헤드를 이동시키는 구동신호를 생성하고, 상기 선택된 머지 동작이 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보에 포함된 논리적 어드레스를 이용하여 상기 자기 헤드를 이동시키는 구동신호를 생성할 수 있다.
상기 과제를 달성하기 위한 본 발명의 또 다른 일 실시 예에 따른 저장 매체에 라이트 된 데이터 머지 방법은, 네트워크를 통해 저장 매체에 라이트 된 데이터에 대한 머지 처리용 프로그램을 다운로드받는 단계; 및 상기 머지 처리용 프로그램을 저장 장치에서 실행시키는 단계를 포함하고, 상기 머지 처리용 프로그램은 상기 저장 장치에 포함된 저장 매체의 머지될 영역의 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 상기 머지 될 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 머지 될 영역으로부터 데이터를 리드하고, 상기 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 동작을 실행함을 특징으로 할 수 있다.
상기 다른 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 저장 매체에 대한 라이트 동작 제어 방법은, 라이트 커맨드가 수신시, 저장 매체에 라이트 가능한 영역이 부족하면, 상기 저장 매체의 머지 될 소스 영역에 대한 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작과 논리적 어드레스 기반 머지 동작중 하나를 선택하는 단계; 상기 선택된 머지 동작에 따라 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 소스 영역으로부터 데이터를 리드하는 단계; 및 상기 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 단계를 포함할 수 있다.
상기 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 단계는 상기 라이트 커맨드에 따른 라이트 동작을 수행하는 단계를 포함할 수 있다.
상기 저장 매체에 상기 라이트 가능한 영역이 부족한지 판단은, 상기 라이트 커맨드가 수신될 때 상기 저장 매체의 현재 영역의 사용 가능한 섹터의 수와 라이트 커맨드에 따라 라이트 될 데이터의 섹터의 수를 비교하여 수행될 수 있다.
상기 저장 매체에 상기 라이트 가능한 영역이 부족한지 판단은, 상기 현재 영역에 라이트 가능한 영역이 부족하면, 상기 저장 매체의 프리 영역의 수가 임계값 보다 큰 지를 판단하는 단계; 및 상기 프리 영역의 수가 상기 임계값보다 크지 않으면, 상기 저장 매체에 라이트 가능한 영역이 부족한 것으로 판단하는 단계를 더 포함할 수 있다.
상기 임계값은 1회 라이트 커맨드에 따라 상기 저장 매체에서 사용 가능한 최대 영역 수에 따라 설정될 수 있다.
상기 또 다른 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 저장 장치는, 데이터를 저장할 수 있는 저장 매체; 및 상기 저장 매체의 머지 될 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중에서 하나의 어드레스를 이용하여 상기 소스 영역으로부터 데이터를 리드하고, 상기 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 프로세서를 포함하고, 상기 프로세서는, 상기 소스 영역에 대한 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작과 논리적 어드레스 기반 머지 동작중 하나를 선택할 수 있다.
상기 프로세서는, 상기 라이트 상태 정보와 임계값에 기초하여 상기 머지 동작을 선택하는 머지 동작 선택부; 상기 선택된 머지 동작에 따라 상기 소스 영역으로부터 데이터를 리드하고, 상기 리드된 데이터를 상기 목적지 영역에 라이트하는 데이터 리드 및 라이트 동작 제어부; 및 상기 목적지 영역에 대한 라이트 동작이 완료되면, 상기 소스 영역과 상기 목적지 영역에 대한 라이트 상태 정보를 업데이트 하는 라이트 상태 정보 업데이트부를 포함할 수 있다.
상기 데이터 리드 및 라이트 동작 제어부는, 상기 선택된 머지 동작이 상기 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하고, 상기 선택된 머지 동작이 상기 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어할 수 있다.
상기 머지 동작 선택부는, 상기 소스 영역의 어드레스 매핑 정보의 수가 상기 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하고, 상기 소스 영역의 어드레스 매핑 정보의 수가 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택할 수 있다.
상기 머지 동작 선택부는, 상기 소스 영역의 어드레스 매핑 정보의 수가 상기 제 1 임계값보다 크거나, 상기 어드레스 매핑 정보의 수로 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 상기 제 2 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하고, 상기 소스 영역의 어드레스 매핑 정보의 수가 상기 제 1 임계값보다 크고, 상기 나눈 값이 상기 제 2 임계값보다 크면, 상기 논리적 어드레스 기반 머지 동작을 선택할 수 있다.
상기 머지 동작 선택부는 상기 소스 영역의 어드레스 매핑 정보의 수로 상기 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 상기 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하고, 상기 나눈 값이 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택할 수 있다.
상기 프로세서는, 상기 저장 매체의 머지 대기 영역에 대한 정보가 등록된 머지 큐, 상기 저장 매체의 프리 영역에 대한 정보가 등록된 프리 큐를 더 포함하고, 상기 머지 동작 선택부로부터 상기 선택된 머지 동작 정보가 수신되면, 상기 데이터 리드 및 라이트 동작 제어부는 상기 머지 큐로부터 얻은 상기 머지 대기 영역의 식별 정보와 상기 프리 큐로부터 얻은 상기 프리 영역에 대한 식별 정보에 기초하여 상기 리드 동작 및 라이트 동작을 제어할 수 있다.
상기 저장 장치는, 커맨드 수신 여부에 따라 상기 저장 장치가 아이들 상태인지를 판단하는 아이들 상태 판단부; 라이트 커맨드가 수신되면, 상기 저장 매체에 라이트 가능한 영역이 부족한지를 체크하는 라이트 영역 체크부; 및 상기 아이들 상태 판단부와 상기 라이트 영역 체크부의 출력 신호에 기초하여 머지 동작을 호출하기 위한 머지 요구 신호를 상기 머지 동작 선택부로 제공하는 머지 동작 호출부를 더 포함할 수 있다.
상기 프로세서는 커맨드를 수신하고, 상기 수신된 커맨드로부터 논리적 블록 어드레스를 추출하는 제 1 프로세서; 상기 라이트 상태 정보에 기초하여 머지 동작을 선택하고, 선택된 머지 동작에 따라 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 소스 영역으로부터 데이터를 리드하고, 상기 리드된 데이터를 상기 목적지 영역에 라이트하도록 제어하는 제 2 프로세서; 및 상기 라이트 상태 정보를 관리하고, 상기 제 2 프로세서에 의해 제어되어 상기 데이터를 리드 및 라이트하는 제 3 프로세서를 포함할 수 있다.
상기 제 2 프로세서는 머지 큐와 프리 큐를 포함하고, 상기 머지 큐와 상기 프리 큐를 이용하여 상기 저장 매체의 머지 대기 영역와 프리 영역에 대한 정보를 관리할 수 있다.
상기 제 1 프로세서, 상기 제 2 프로세서, 및 상기 제 3 프로세서는 상기 논리적 어드레스를 상기 저장 매체의 가상 어드레스로 변환하고, 상기 가상 어드레스를 상기 저장 매체의 물리적 어드레스로 변환하는 계층에 기초할 수 있다.
상기 또 다른 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 컴퓨터 시스템은, 커맨드와 데이터를 출력하는 호스트 기기; 상기 호스트 기기로부터 수신된 커맨드에 따라서 상기 호스트 기기로부터 수신된 데이터를 저장 매체에 라이트하거나 상기 저장 매체로부터 리드된 데이터를 상기 호스트 기기로 송신하는 저장 장치를 포함하고, 상기 저장 장치는 상기 저장 매체의 머지 될 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스에 기초하여 상기 머지될 영역으로부터 데이터를 리드하여 상기 머지 될 영역에 라이트된 데이터를 머지할 수 있다.
상기 저장 장치는 상기 머지될 영역의 라이트 상태 정보에 따라 상기 물리적 어드레스에 기초하여 상기 머지 될 영역으로부터 데이터를 리드하는 물리적 어드레스 기반 머지 동작과 상기 논리적 어드레스에 기초하여 상기 머지 될 영역으로부터 데이터를 리드하는 논리적 어드레스 기반 머지 동작중 하나를 선택할 수 있다.
상기 또 다른 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 저장 매체에 라이트 된 데이터 머지 방법을 수행할 수 있는 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체에 있어서, 상기 저장 매체에 라이트 된 데이터 머지 방법은, 상술한 저장 매체에 라이트 된 데이터 머지 방법과 같이 수행된다.
상기 또 다른 과제를 달성하기 위한 본 발명의 다른 일 실시 예에 따른 저장 매체에 대한 라이트 동작 제어 방법을 수행할 수 있는 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체에 있어서, 상기 저장 매체에 대한 라이트 동작 제어 방법은, 상술한 저장 매체에 대한 라이트 동작 제어 방법과 같이 수행된다.
본 발명의 실시 예에 의하면, 저장 장치가 아이들 상태(idle state)일 때 또는 라이트 커맨드(write command) 수신시 저장 매체에 라이트 가능한 영역이 부족할 때, 저장 매체의 머지될 소스 영역의 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작과 논리적 어드레스 기반 머지 동작을 선택적으로 수행함으로써, 머지 동작 시간을 줄여 호스트 기기-저장 장치 기반 시스템의 성능(performance)을 향상시킬 수 있다.
예를 들어, 저장 매체의 머지될 소스 영역의 어드레스 매핑 정보의 수가 작은 경우에, 논리적 어드레스 기반 머지 동작에 기초하여 저장 매체에 라이트 된 데이터를 머지함으로써, 데이터를 머지할 때 어드레스 매핑 정보를 물리적 어드레스 기반으로 소팅할 필요가 없으므로 머지 동작 시간을 줄일 수 있다.
또한, 논리적 어드레스 기반 머지 동작을 수행할 때, 어드레스 매핑 정보의 논리적 어드레스가 연속될 경우에, 어드레스 매핑 정보의 수를 줄일 수 있다.
저장 매체의 머지될 소스 영역의 어드레스 매핑 정보의 수로 머지될 소스 영역의 유효한 데이터가 라이트된 섹터의 수를 나눈 값이 작은 경우에, 논리적 어드레스 기반 머지 동작을 수행함으로써, 상술한 바와 같이 머지 동작 시간을 줄여 호스트 기기-저장 장치 기반 시스템의 성능을 향상시킬 수 있고, 어드레스 매핑 정보의 수를 줄일 수 있다.
저장 매체의 머지될 소스 영역의 어드레스 매핑 정보의 수가 작고, 저장 매체의 머지될 소스 영역의 어드레스 매핑 정보의 수로 머지될 소스 영역의 유효한 데이터가 저장된 섹터의 수를 나눈 값이 작은 경우에도 논리적 어드레스 기반 머지 동작을 수행함으로써, 상술한 바와 같이 머지 동작 시간을 줄여 호스트 기기-저장 장치 기반 시스템의 성능을 향상시킬 수 있고, 어드레스 매핑 정보의 수를 줄일 수 있다.
도 1a는 본 발명의 바람직한 일 실시 예에 따른 호스트 기기-저장 장치 기반 시스템의 기능 블록도이다.
도 1b는 본 발명의 바람직한 다른 실시 예에 따른 호스트 기기-저장 장치 기반 시스템의 기능 블록도이다.
도 2는 도 1a에 도시된 저장 장치가 디스크 드라이브인 경우에, 헤드 디스크 어셈블리의 평면도이다.
도 3은 본 발명의 바람직한 실시 예들에 적용될 수 있는 디스크의 일 트랙에 대한 섹터 구조의 예이다.
도 4는 도 3에 도시된 서보 정보 영역에 대한 구조의 예이다.
도 5는 도 1a의 저장 장치가 디스크 드라이브인 경우에 소프트웨어 운영 체계를 설명하기 위한 도면이다.
도 6a는 도 1a의 저장 장치가 디스크 드라이브일 경우에, 저장 장치의 전기적인 기능 블록도이다.
도 6b는 도 1b의 저장 장치가 디스크 드라이브일 경우에, 저장 장치의 전기적인 기능 블록도이다.
도 7은 본 발명의 바람직한 실시 예들에 적용되는 저장 매체 또는 디스크의 물리적 구조에 대한 개념도이다.
도 8a 및 도 8b는 슁글드 라이트 동작에 기초하여 저장 매체 또는 디스크에 데이터가 라이트될 경우의 제한 조건을 설명하기 위한 도면이다.
도 9는 본 발명의 바람직한 실시 예에 따른 저장 장치에서의 프로세서의 일 구성 예이다.
도 10은 도 9에 도시된 제 2 프로세서에 포함되는 큐들의 관계도이다.
도 11은 본 발명의 바람직한 실시 예들에 적용되는 논리적 블록 어드레스, 논리적 밴드, 물리적 밴드간의 관계 예시도이다.
도 12는 도 11에 기초하여 도 10에 도시된 큐에 저장되는 데이터에 대한 예시도들이다.
도 13은 본 발명의 바람직한 실시 예에 따른 저장 장치에 포함된 프로세서의 다른 구성 예이다.
도 14 내지 도 17은 본 발명의 바람직한 실시 예에 따른 머지에 대한 예시 도들이다.
도 18은 본 발명의 바람직한 실시 예에 따른 저장 장치에 포함된 프로세서의 또 다른 구성 예이다.
도 19는 본 발명의 바람직한 일 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법의 동작 흐름도의 일 예다.
도 20은 도 19에 도시된 머지 동작 선택에 대한 동작 흐름도의 일 예이다.
도 21은 도 19에 도시된 머지 동작 선택에 대한 동작 흐름도의 다른 예이다.
도 22는 도 19에 도시된 머지 동작 선택에 대한 동작 흐름도의 또 다른 예이다.
도 23은 본 발명의 바람직한 일 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법에 대한 동작 흐름도의 다른 예이다.
도 24는 본 발명의 바람직한 다른 실시 예에 따른 저장 매체에 대한 라이트 동작 제어 방법에 대한 동작 흐름도이다.
도 25는 도 24에 도시된 라이트 가능한 영역이 부족한지를 판단하는 동작의 상세한 동작 흐름도의 예이다.
도 26은 본 발명의 바람직한 다른 실시 예에서 사용되는 현재 영역에 라이트 가능한 영역이 부족한지 여부를 판단하는 프로세스의 예이다.
도 27은 본 발명의 바람직한 일 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법의 동작 흐름도의 또 다른 예이다.
도 28은 본 발명의 바람직한 일 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법의 또 다른 예이다.
도 29는 본 발명의 바람직한 일 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법의 또 다른 예이다.
도 30은 본 발명의 바람직한 일 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법을 수행할 수 있는 네트워크 시스템의 블록 구성 예이다.
도 31은 도 30에 도시된 네트워크 시스템에 기초한 본 발명의 바람직한 다른 실시 예에 따른 저장 매체에 라이트 된 데이터 머지 방법에 대한 동작 흐름도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시 예에 의하여 달성되는 목적을 충분히 이해하기 위해서 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 구성 요소를 나타낸다.
도 1a는 본 발명의 바람직한 일 실시 예에 따른 호스트 기기-저장 장치 기반 시스템(100a)의 기능 블록도이다. 호스트 기기-저장 장치 기반 시스템(100a)은 컴퓨터 시스템으로 언급될 수 있으나 이로 제한되지 않는다.
도 1a를 참조하면, 호스트 기기-저장 장치 기반 시스템(100a)은 호스트 기기(110), 저장 장치(120a), 및 통신 링크(130)를 포함한다.
호스트 기기(110)는 저장 장치(120a)를 동작시키기 위한 커맨드(command)를 생성하여 통신 링크(130)를 통해 접속된 저장 장치(120a)로 전송하고, 생성된 커맨드에 따라서 저장 장치(120a)로 데이터를 송신하거나 저장 장치(120a)로부터 데이터를 수신하는 동작(operation) 또는 프로세스(process)를 수행할 수 있다.
호스트 기기(110)는 마이크로소프트 윈도우 운영 시스템(Microsoft Windows Operating System) 프로그램에 따라서 동작되는 디바이스(Device), 서버(Server), 디지털 카메라(Digital Camera), 디지털 미디어 플레이어(Digital Media Player), 셋탑 박스(Set-top Box), 프로세서(Processor), 현장 프로그래머블 게이트 어레이(Filed Programmable Gate Array), 프로그래머블 로직 디바이스(Programmable Logic Device), 및/또는 임의의 적절한 전자 디바이스(Suitable Electronic Device)가 될 수 있다. 호스트 기기(110)는 저장 장치(120a)와 일체화(Single Body)될 수 있다.
통신 링크(130)는 호스트 기기(110)와 저장 장치(120a)를 유선 통신 링크(Wire Communication Link) 또는 무선 통신 링크(Wireless Communication Link)로 연결시킬 수 있도록 구성될 수 있다.
호스트 기기(110)와 저장 장치(120a)가 유선 통신 링크로 연결될 경우에, 통신 링크(130)는 호스트 기기(110)의 인터페이스 포트와 저장 장치(120a)의 인터페이스 포트를 전기적으로 연결하는 커넥터로 구성될 수 있다. 커넥터는 데이터 커넥터와 전원 커넥터를 포함할 수 있다. 일 예로서 호스트 기기(110)와 저장 장치(120a)간에 SATA(Serial Advanced Technology Attachment) 인터페이스를 이용할 경우에, 커넥터는 7핀의 SATA 데이터 커넥터와 15핀의 SATA 전원 커넥터로 구성될 수 있다.
호스트 기기(110)와 저장 장치(120a)가 무선 통신 링크로 연결될 경우에, 통신 링크(130)는 블루투스(Bluetooth)나 지그비(Zigbee)와 같은 무선 통신 기반으로 구성될 수 있다.
저장 장치(120a)는 호스트 기기(110)로부터 수신된 커맨드에 따라서 호스트 기기(110)로부터 수신된 데이터를 저장 매체(124)에 라이트하거나 저장 매체(124)로부터 리드된 데이터를 호스트 기기(110)로 송신할 수 있다. 저장 장치(120)는 데이터 저장 장치 또는 디스크 드라이브 또는 디스크 시스템 또는 메모리 장치로 언급될 수 있다. 저장 매체(124)가 후술할 슁글드 라이트 동작(Shingled Write Operation)에 기초하여 데이터가 라이트 되는 경우에, 저장 장치(120)는 슁글드 라이트 디스크 시스템 또는 슁글드 마그네틱 레코딩(Shingled Magnetic Recording) 시스템으로 언급될 수 있다.
도 1a를 참조하면, 저장 장치(120a)는 프로세서(121), 램(RAM:Random Access Memory, 122), 롬(ROM:Read Only Memory, 123), 저장 매체(124), 저장 매체 인터페이스부(125), 버스(126), 및 호스트 인터페이스부(127)를 포함하나 이로 제한되지 않는다. 즉, 저장 장치(120a)는 도 1a에 도시된 구성 요소보다 더 많은 구성 요소로 구성되거나 도 1a에 도시된 구성 요소보다 더 적은 구성 요소로 구성될 수 있다.
프로세서(121)는 호스트 인터페이스부(127)와 버스(126)를 통해 호스트 기기(110)로부터 수신된 커맨드를 해석하고, 해석된 결과에 따라 저장 장치(120a)의 구성 요소들을 제어할 수 있다. 프로세서(121)는 코드 오브젝트 관리 유니트(Code Object Management Unit)를 포함할 수 있다. 코드 오브젝트 관리 유니트를 이용하여 프로세서(121)는 저장 매체(124)에 저장되어 있는 코드 오브젝트를 램(122)에 로딩시킬 수 있다. 예를 들어, 프로세서(121)는 저장 매체(124)에 저장되어 있는 후술할 도 19-23, 도 27-29, 및 도 31의 흐름도에 따른 저장 매체(124)에 라이트된 데이터 머지 방법 및 도 24, 및 도 25의 흐름도에 따른 저장 매체(124)에 대한 라이트 동작 제어 방법을 실행하기 위한 코드 오브젝트들을 램(122)에 로딩시킬 수 있다.
프로세서(121)는 램(122)에 로딩된 코드 오브젝트들을 이용하여 도 19-23, 도 27-29 및 도 31의 흐름도에 따른 저장 매체(124)에 라이트된 데이터 머지 방법과 도 24 및 도 25의 흐름도에 따른 저장 매체(124)에 대한 라이트 동작 제어 방법에 대한 태스크(task)를 실행할 수 있다. 프로세서(121)에 의하여 실행되는 저장 매체(124)에 라이트 된 데이터 머지 방법 및 저장 매체(124)에 대한 라이트 동작 제어 방법에 대해서는 도 19-25, 도 27-29, 및 도 31에 대한 설명에서 상세하게 다루어질 것이다.
롬(123)에는 저장 장치(120)를 동작시키는데 필요한 프로그램 코드 및 데이터들이 저장될 수 있다. 램(122)에는 프로세서(121)의 제어에 따라 롬(123)에 저장된 프로그램 코드 및 데이터들이 로딩될 수 있다. 상기 롬(123)에 저장되는 프로그램 코드 및 데이터는 본 발명의 바람직한 실시 예들에서 사용되는 저장 매체(124)의 각 영역(area)의 라이트 상태 정보(Write State Information)를 포함할 수 있다.
라이트 상태 정보는 디스크(12)의 물리적 어드레스(Physical Address:PA)와 호스트 커맨드에 포함되어 있는 논리적 어드레스(Logical Address:LA)를 매핑한 어드레스 매핑 정보(Address Mapping Information)를 포함하는 매핑 테이블(Mapping Table)과 후술할 도 14 및 도 15에서 상세하게 언급되는 SAT(Sector Allocation Table)을 포함할 수 있다. 즉, 라이트 상태 정보는 각 영역에서 유효한 데이터(valid data)가 라이트 된 섹터의 수, 유효한 섹터(valid sector)의 상술한 어드레스 매핑 정보(address mapping information), 및 무효화 섹터(invalid sector)의 수 등 라이트 상태를 알 수 있는 정보를 포함할 수 있다. 라이트 상태 정보는 디스크(12)의 메타 데이터(meta data)로 언급되거나 메타 데이터에 포함된 데이터로 언급될 수 있다. 상술한 영역은 후술할 도 7에서 언급될 밴드(band)에 대응되는 것으로 해석될 수 있으나 이로 제한되지 않는다. 롬(123)에 저장된 라이트 상태 정보는 프로세서(121)의 제어에 따라 램(122)에 로딩되어 이용될 수 있다.
디스크(12)가 이전 트랙의 일부 영역에 겹치면서 한쪽 방향으로 데이터가 라이트되는 슁글드 라이트 디스크(Shingled Write Disc)인 경우에, 상술한 어드레스 매핑 정보는 디스크(12)의 물리적 위치에 기초한 가상 어드레스(Virtual Address:VA)와 호스트 기기(110)로부터 수신된 호스트 커맨드에 포함되어 있는 논리적 어드레스를 매핑한 어드레스 매핑 정보일 수 있다. 가상 어드레스는 가상 블록 어드레스(Virtual Block Address:VBA)로 언급될 수 있다. 논리적 어드레스는 논리적 블록 어드레스(Logical Block Address:LBA)로 언급될 수 있고, 물리적 어드레스는 물리적 블록 어드레스(Physical Block Address:PBA)로 언급될 수 있다. 슁글드 라이트 디스크는 후술할 도 7, 도 8a 및 도 8b에서 상세하게 기술하기로 한다.
롬(123)은 프로세서(121)에 의하여 실행되는 도 19-25, 도 27-29, 및 도 31에 도시된 저장 매체(124)에 라이트 된 데이터 머지 방법 및 저장 매체(124)에 대한 라이트 동작 제어 방법을 실행시키기 위한 프로그램 코드가 저장될 수 있다. 롬(123)에 저장된 상기 방법을 실행시키기 위한 프로그램 코드는 프로세서(121)의 제어에 따라 램(122)에 로딩되어 이용될 수 있다.
램(122) 및 롬(123)은 하나의 정보 저장부로 언급될 수 있다.
저장 매체(124)는 저장 장치(120a)의 주 저장 매체로써, 디스크 또는 비휘발성 메모리 소자가 사용될 수 있다. 저장 매체(124)는 상술한 바와 같이 후술할 도 19-23, 도 27-29, 및 도 31의 흐름도에 따른 저장 매체(124)에 라이트 된 데이터 머지 방법과 도 24, 및 25의 흐름도에 따른 저장 매체(124)에 대한 라이트 동작 제어 방법을 실행하기 위한 코드 오브젝트들과 상술한 라이트 상태 정보와 같은 데이터들이 저장될 수 있다.
저장 장치(120a)가 디스크 드라이브인 경우에, 헤드 디스크 어셈블리(200)는 도 2에 도시된 바와 같이 정의될 수 있다.
도 2는 도 1a에 도시된 저장 장치(120a)가 디스크 드라이브인 경우에, 헤드 디스크 어셈블리(200)의 평면도이다. 도 2를 참조하면, 헤드 디스크 어셈블리(200)는 스핀들 모터(14)에 의하여 회전되는 적어도 하나의 디스크(12)를 포함한다. 디스크(12)는 도 1a의 저장 매체(124)에 대응되는 것으로 해석되어야 한다. 헤드 디스크 어셈블리(200)는 디스크(12) 표면에 인접되게 위치한 헤드(16)를 포함한다.
헤드(16)는 각각의 디스크(12)의 자계를 감지하고 자화시킴으로써 회전하는 디스크(12)로부터 데이터를 리드하거나 디스크(12)에 데이터를 라이트할 수 있다. 일반적으로 헤드(16)는 디스크(12) 표면에 결합되어 있다. 도 2는 단일 헤드(16)로 도시되어 있으나, 디스크(12)를 자화시키기 위한 라이트용 헤드와 디스크(12)의 자계를 감지하기 위한 리드용 헤드를 포함하는 것으로 해석되어야 한다. 리드용 헤드는 자기 저항(MR:Magneto-Resistive) 소자로부터 구성될 수 있다. 헤드(16)는 자기 헤드(Magnetic Head) 또는 변환기(transducer)로 언급될 수 있다.
헤드(16)는 슬라이더(20)에 통합될 수 있다. 슬라이더(20)는 헤드(16)와 디스크(12) 표면사이에 공기 베어링(air bearing)을 생성시키는 구조로 구성될 수 있다. 슬라이더(20)는 헤드 짐벌 어셈블리(22)에 결합되어 있다. 헤드 짐벌 어셈블리(22)는 보이스 코일(Voice Coil)(26)을 갖는 엑츄에이터 암(Actuator Arm)(24)에 부착되어 있다. 보이스 코일(26)은 보이스 코일 모터(VCM:Voice Coil Motor, 30)를 특정하도록 마그네틱 어셈블리(28)에 인접되게 위치하고 있다. 보이스 코일(26)에 공급되는 전류는 베어링 어셈블리(32)에 대하여 엑츄에이터 암(24)을 회전시키는 토오크(torque)를 발생시킨다. 엑츄에이터 암(24)의 회전은 디스크(12) 표면을 가로질러 헤드(16)를 이동시키게 된다.
데이터는 일반적으로 디스크(12)에서 하나의 원으로 구성된 트랙(34)에 라이트된다. 각 트랙(34)은 복수의 섹터들을 포함한다. 트랙에 포함되는 섹터는 도 3에 도시된 바와 같이 구성될 수 있다.
도 3은 본 발명의 바람직한 실시 예들에 적용될 수 있는 디스크(12)의 일 트랙에 대한 섹터 구조의 예이다. 도 3을 참조하면, 하나의 서보 섹터 구간(T)은 서보 영역(S)과 복수개의 데이터 섹터(D)들이 포함될 수 있다. 그러나 하나의 서보 섹터 구간(T)에 단일의 데이터 섹터(D)가 포함되도록 트랙은 구성될 수 있다. 데이터 섹터(D)는 섹터로 언급될 수 있다. 서보 영역(S)에는 세부적으로 도 4에 도시된 바와 같은 신호들이 라이트될 수 있다. 서보 섹터 구간(T)은 서보 프레임 구간으로 언급될 수 있다.
도 4는 도 3에 도시된 서보 영역(S)에 대한 구조의 예이다. 도 4를 참조하면, 서보 영역(S)에는 프리앰블(Preamble; 401), 서보 동기 표시 신호(402), 그레이 코드(Gray Code; 403) 및 버스트 신호(Burst; 404)들이 라이트되어 있다. 프리앰블(401)은 서보 정보를 리드할 때 클록 동기를 제공하고, 서보 섹터 앞의 갭(Gap)을 두어 일정한 타이밍 마진을 제공하고, 자동 이득 제어(Auto Gain Control)회로의 이득을 결정하는데 이용될 수 있다.
서보 동기 표시 신호(402)는 서보 어드레스 마크(Servo Address Mark:SAM) 및 서보 인덱스 마크(Servo Index Mark:SIM)를 포함한다. 서보 어드레스 마크는 서보 섹터의 시작을 나타내는 신호이다. 서보 인덱스 마크는 트랙에서의 첫 번째 서보 섹터의 시작을 나타내는 신호이다.
그레이 코드(403)는 트랙 정보를 제공한다. 버스트 신호(404)는 헤드(16)가 트랙(34)의 중앙을 추종하도록 제어하는데 이용되는 신호이다. 예를 들어, 버스트 신호(404)는 A,B,C,D의 4개의 패턴으로 구성될 수 있다. 즉, 4개의 버스트 패턴들을 조합하여 트랙 추종 제어시에 사용되는 위치 에러 신호를 생성시킬 수 있다.
디스크(12)는 사용자가 접근할 수 없는 메인터넌스 실린더(Maintenance Cylinder) 영역과 사용자가 접근할 수 있는 사용자 데이터 영역으로 구분될 수 있다. 메인터넌스 실린더 영역은 시스템 영역(System Area)으로 언급될 수 있다. 메인터넌스 실린더 영역에는 디스크 드라이브 제어에 필요한 각종 정보들이 저장되어 있다. 메인터넌스 실린더 영역에는 본 발명의 바람직한 실시 예들에 따른 저장 매체(124)에 라이트 된 데이터 머지 방법 및 저장 매체(124)에 대한 라이트 동작 제어 방법을 수행하는데 필요한 정보들도 저장될 수 있다. 예를 들어, 본 발명의 바람직한 실시 예들에서 언급되는 라이트 상태 정보는 메인터넌스 실린더 영역에 저장될 수 있다.
헤드(16)는 다른 트랙에 있는 데이터를 리드하거나 다른 트랙에 데이터를 라이트하기 위하여 디스크(12) 표면을 가로질러 이동된다. 디스크(12)에는 디스크 드라이브를 이용하여 다양한 기능을 구현시키기 위한 복수개의 코드 오브젝트들이 저장될 수 있다. 일 예로서, MP3 플레이어 기능을 수행하기 위한 코드 오브젝트, 네비게이션 기능을 수행하기 위한 코드 오브젝트, 및 다양한 비디오게임을 수행하기 위한 코드 오브젝트 등이 디스크(12)에 저장될 수 있다.
도 1a를 참조하면, 저장 매체 인터페이스부(125)는 프로세서(121)가 저장 매체(124)를 액세스하여 데이터를 라이트하거나 데이터를 리드할 수 있도록 처리하는 구성 요소이다. 저장 장치(120a)가 디스크 드라이브일 경우에, 저장 매체 인터페이스부(125)는 헤드 디스크 어셈블리(200)를 제어하는 서보 회로 및 데이터 리드 및/또는 라이트를 위한 신호 처리를 수행하는 리드/라이트 채널 회로를 포함할 수 있다.
도 1a의 호스트 인터페이스부(127)는 호스트 기기(110)와 저장 장치(120)간에 데이터 송신 및/또는 수신 처리를 수행할 수 있다. 호스트 인터페이스부(127)는 통신 링크(130)에 기초하여 구성될 수 있다.
버스(126)는 저장 장치(120a)의 구성 요소들간에 정보를 전달할 수 있다.
저장 장치(120a)가 디스크 드라이브인 경우에 저장 장치(120a)의 소프트웨어 운영 체계는 도 5에 도시된 바와 같이 정의할 수 있다. 도 5는 도 1a의 저장 장치(120a)가 디스크 드라이브인 경우에 소프트웨어 운영 체계를 설명하기 위한 도면이다.
도 5를 참조하면, 도 1a의 저장 매체(124)에 상응하는 디스크(Disk 또는 Disc; 510)에는 복수의 코드 오브젝트(Code Object 1 ~ N)들이 저장되어 있다. 디스크(510)에 라이트 된 코드 오브젝트들은 디스크 드라이브의 동작에 필요한 코드 오브젝트들과 디스크 드라이브를 이용한 다양한 기능에 관련된 코드 오브젝트들이 포함될 수 있다.
특히, 본 발명의 바람직한 실시 예들을 실행하기 위해, 도 19-23, 도 27-29 및 도 31의 흐름도에 따른 저장 매체(124)에 라이트 된 데이터 머지 방법과 도 24 및 도 25의 흐름도에 따른 저장 매체(124)에 대한 라이트 동작 제어 방법을 실행시키기 위한 코드 오브젝트들이 디스크(510)에 라이트 될 수 있다. 도 19-23, 도 27-29 및 도 31의 흐름도에 따른 저장 매체(124)에 라이트 된 데이터 머지 방법과 도 24 및 도 25의 흐름도에 따른 저장 매체(124)에 대한 라이트 동작 제어 방법을 실행시키기 위한 코드 오브젝트들은 디스크(510) 대신에 롬(123)에 저장될 수 있다. MP3 플레이어 기능, 네비게이션 기능, 및 비디오게임 기능 등의 다양한 기능을 수행하는 코드 오브젝트들도 디스크(510)에 저장될 수 있다.
도 1a의 롬(123)에는 부트 이미지(Boot Image) 및 압축된 RTOS 이미지(packed RTOS Image)가 저장되어 있다. 램(122)에는 부팅 과정에서 롬(123)으로부터 부트 이미지(Boot Image)를 리드하여 압축 해제된 RTOS 이미지(Unpacked RTOS Image)가 로딩된다. 그리고, 디스크(510)에 저장되어 있는 호스트 인터페이스 수행에 필요한 코드 오브젝트들이 램(122)에 로딩된다. 램(122)에는 데이터를 저장하기 위한 데이터 영역(Data Area)도 할당되어 있다.
채널 회로(Channel; 520)에는 데이터 리드 및/또는 라이트를 위한 신호 처리를 수행하는데 필요한 회로들이 내장되어 있다. 서보 회로(Servo; 530)에는 데이터 리드 동작 또는 데이터 라이트 동작을 수행하기 위하여 헤드 디스크 어셈블리(200)를 제어하는데 필요한 회로들이 내장되어 있다.
RTOS(Real Time Operating System; 540)는 실시간 운영 체계 프로그램으로서, 디스크(510)를 이용한 다중 프로그램 운영 체계이다. 태스크(task)에 따라서 우선순위가 높은 전위(foreground)에서는 실시간 다중 처리를 하며, 우선순위가 낮은 후위(background)에서는 일괄 처리를 한다. RTOS(540)는 디스크(510)로부터 코드 오브젝트 로딩 및 디스크(510)로 코드 오브젝트 언로딩을 수행할 수 있다.
RTOS(540)는 코드 오브젝트 관리 유니트(Code Object Management Unit:COMU, 541), 코드 오브젝트 로더(Code Object Loader:COL, 542), 메모리 핸들러(Memory Handler:MH, 543), 채널 제어 모듈(Channel Control Module:CCM, 544) 및 서보 제어 모듈(Servo Control Module:SCM, 545)들을 관리하여 요청된 명령에 따른 태스크를 실행한다. RTOS(540)는 또한 어플리케이션(Application) 프로그램(550)들을 관리한다.
RTOS(540)는 디스크 드라이브의 부팅 과정에서 디스크 드라이브 제어에 필요한 코드 오브젝트들을 램(122)에 로딩시킨다. 따라서, 부팅 과정을 실행하고 나면 램(122)에 로딩된 코드 오브젝트들을 이용하여 디스크(510)를 동작시킬 수 있게 된다. 또한, RTOS(540)는 디스크(510)가 슁글드 라이트 디스크인 경우에 후술할 도 7, 도 8a 및 도 8b에서 언급될 HTL(HDD Translation Layer)에 기초하여 운영될 수 있다.
COMU(541)은 코드 오브젝트들이 라이트되어 있는 위치 정보를 저장하고, 버스(126)를 중재하는 처리를 수행한다. 또한, 실행되고 있는 태스크들의 우선순위에 대한 정보도 저장되어 있다. 그리고, 코드 오브젝트에 대한 태스크 수행에 필요한 태스크 제어 블록(Task Control Block:TCB) 정보 및 스택(Stack) 정보도 관리한다.
COL(542)는 COMU(541)을 이용하여 디스크(510)에 저장되어 있는 코드 오브젝트들을 램(122)에 로딩시키거나, 램(122)에 저장되어 있는 코드 오브젝트들을 디스크(510)로 언로딩시키는 처리를 수행한다. 이에 따라서, COL(542)는 디스크(510)에 저장되어 있는 도 19-23, 도 27-29, 및 도 31의 흐름도에 따른 저장 매체(124)에 라이트 된 데이터 머지 방법 및 도 24 및 도 25의 흐름도에 따른 저장 매체(124)에 대한 라이트 동작 제어 방법을 실행시키기 위한 코드 오브젝트들을 램(122)에 로딩시킬 수 있다.
RTOS(540)는 램(122)에 로딩된 코드 오브젝트들을 이용하여 아래에서 설명될 도 19-25, 도 27-29, 및 도 31의 흐름도에 따른 방법을 실행시킬 수 있게 된다.
MH(543)는 롬(123) 및 램(122)에 데이터를 라이트하거나 리드하는 처리를 수행한다. CCM(544)은 데이터 리드 및 라이트를 위한 신호 처리를 수행하는데 필요한 채널 제어를 수행한다. SCM(545)는 데이터 리드 및 라이트를 수행하기 위하여 헤드 디스크 어셈블리(200)를 포함한 서보 제어를 수행한다.
한편, 도 1b는 본 발명의 바람직한 다른 실시 예에 따른 호스트 기기-저장 장치(100b) 기반의 기능 블록도이다.
도 1b를 참조하면, 저장 장치(120b)는 도 1a의 저장 장치(120a)에 비휘발성 메모리(128)가 추가된다. 도 1b에서 저장 매체(124)는 디스크로 구현될 수 있다.
비휘발성 메모리(128)는 비휘발성 반도체 메모리로 구현될 수 있으며, 일 예로서 플래시 메모리, PRAM(Phase change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등으로 구현될 수 있다.
비휘발성 메모리(128)에는 저장 장치(120b)에 저장하고자 하는 데이터의 일부 또는 전부가 저장될 수 있다. 일 예로서, 저장 장치(120b) 제어에 필요한 각종 정보들이 비휘발성 메모리(128)에 저장될 수 있다.
그리고, 비휘발성 메모리(128)에는 도 19-25, 도 27-29, 및 도 31의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 저장될 수 있다. 구체적으로, 가상 존 또는 가상 밴드에 기초하여 논리적 블록 어드레스를 가상 어드레스로 변환시키기 위한 매핑 테이블을 비휘발성 메모리(128)에 저장할 수 있다. 또한 저장 장치(120b)의 다양한 기능을 구현시키기 위한 코드 오브젝트들도 비휘발성 메모리(128)에 저장할 수 있다. 매핑 테이블이 비휘발성 메모리(128)에 저장되어 있는 경우에, 저장 장치(120b)는 비휘발성 메모리(128)에 저장되어 매핑 테이블을 RAM(122)에 로딩시킨다.
도 1a의 호스트 기기-저장 장치(100a) 기반 시스템에서 이미 설명한 동일한 구성 수단들에 대한 중복된 설명은 피하기로 한다. 도 6a는 도 1a의 저장 장치(120a)가 디스크 드라이브일 경우에, 저장 장치(120a)의 전기적인 기능 블록도이다.
도 6a를 참조하면, 저장 장치(120a)의 일 실시 예인 디스크 드라이브(600a)는 헤드 디스크 어셈블리(200), 프리 앰프(610), 리드/라이트 채널(R/W Channel, 620), 프로세서(630), 보이스 코일 모터(Voice Coil Motor:VCM) 구동부(640), 스핀들 모터(SPindle Motor:SPM) 구동부(650), 롬(ROM, 660), 램(RAM, 670), 및 호스트 인터페이스부(680)를 포함한다. 디스크 드라이브(600a)의 구성은 도 6a에 도시된 바로 제한되지 않는다.
프로세서(630)는 디지털 신호 프로세서(Digital Signal Processor:DSP), 마이크로 프로세서, 및 마이크로 컨트롤러 등으로 구성될 수 있으나 이로 제한되지 않는다. 프로세서(630)는 호스트 인터페이스부(680)를 통하여 호스트 기기(110)로부터 수신되는 커맨드(command)에 따라서 디스크(12)로부터 데이터를 리드하거나 디스크(12)에 데이터를 라이트하기 위하여 리드/라이트 채널(620)을 제어한다. 리드/라이트 채널(620)은 디스크(12)로부터 데이터를 리드할 때 이용되는 리드 버퍼(620-1)를 포함할 수 있다. 그러나 프로세서(630)는 리드 버퍼(620-1)에 대응되는 동작을 직접 수행하거나 램(670)을 이용하여 리드 버퍼(620-1)에 대응되는 동작을 수행할 수 있다.
프로세서(630)는 보이스 코일 모터(VCM, 30)를 구동시키기 위한 구동 전류를 공급하는 VCM 구동부(640)에 결합되어 있다. 프로세서(630)는 헤드(16)의 움직임을 제어하기 위하여 VCM 구동부(640)로 제어신호를 공급할 수 있다.
프로세서(630)는 스핀들 모터(SPM, 14)를 구동시키기 위한 구동 전류를 공급하는 SPM(Spindle Motor) 구동부(650)에 결합되어 있다. 프로세서(630)는 전원이 공급되면, 스핀들 모터(14)를 목표 속도로 회전시키기 위하여 SPM 구동부(650)에 제어신호를 공급할 수 있다.
프로세서(630)는 롬(660) 및 램(670)과 각각 결합되어 있다. 롬(660)에는 디스크 드라이브(600a)를 제어하는 펌웨어 및 제어 데이터들이 저장되어 있다. 도 19-25, 도 27-28, 및 도 31의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들은 롬(660)에 저장되거나 디스크(12)의 메인터넌스 실린더 영역에 저장될 수 있다.
초기화 모드에서 램(670)에는 프로세서(630)의 제어에 따라 롬(660) 또는 디스크(12)에 저장된 프로그램 코드들이 로딩될 수 있다. 호스트 인터페이스부(680)를 통하여 수신되는 데이터 또는 디스크(12)에서 리드된 데이터가 램(670)에 임시적으로 저장될 수 있다. 따라서, 램(670)은 상술한 바와 같이 리드 버퍼(620-1)에 대응되는 구성 요소로 이용될 수 있다.
램(670)에는 프로세서(630)에 의해 롬(660) 또는 디스크(12)의 메인터넌스 실린더 영역으로부터 리드된 각 영역의 라이트 상태 정보(670-1)가 로딩되어 프로세서(630)에 의해 이용될 수 있다. 램(670)은 DRAM(Dynamic Random Access Memory) 또는 SRAM(Static Random Access Memory)으로 구현할 수 있다. 램(670)은 SDR(Single Data Rate) 방식 또는 DDR(Double Data Rate) 방식으로 구동되게 설계될 수 있다.
프로세서(630)는 롬(660) 또는 디스크(12)의 메인터넌스 실린더 영역에 저장된 프로그램 코드 및 정보들을 이용하여 도 19-23, 도 27-29 및 도 31의 흐름도에 따른 저장 매체(124)에 라이트 된 데이터 머지 방법 및 도 24 및 도 25의 흐름도에 따른 저장 매체(124)에 대한 라이트 동작 제어 방법을 실행하도록 디스크 드라이브(600a)를 제어할 수 있다.
디스크 드라이브(600a)의 데이터 리드 동작 및 데이터 라이트 동작을 설명하기로 한다.
데이터 리드 동작(Read Operation) 시, 디스크 드라이브(600a)는 디스크(12)로부터 헤드(16)에 의하여 감지된 전기적인 신호를 프리 앰프(610)에서 증폭시킨다. 리드/라이트 채널(620)에서 프리 앰프(610)로부터 출력된 신호를 디지털 신호로 변환시키고, 복호 처리하여 데이터를 검출한다. 리드/라이트 채널(620)은 프리 앰프(610)로부터 출력된 신호를 리드 버퍼(620-1)에 임시적으로 저장할 수 있다. 복호 처리되어 검출된 데이터는 프로세서(630)에서 리드 솔로몬 코드와 같은 에러 정정 코드를 이용한 에러 정정 처리가 실행된 후에, 스트림 데이터로 변환된다. 스트림 데이터는 호스트 인터페이스부(680)를 통하여 호스트 기기(110)로 전송된다.
데이터 라이트 동작(Write Operation) 시, 디스크 드라이브(600a)는 호스트 인터페이스부(680)를 통하여 호스트 기기(110)로부터 데이터를 수신한다. 프로세서(630)는 수신된 데이터에 리드 솔로몬 코드에 의한 에러 정정용 심볼을 부가한다. 리드/라이트 채널(620)에 의하여 에러 정정용 심볼이 부가된 데이터는 라이트 채널에 적합하도록 부호화 처리된다. 프리 앰프(610)에 의하여 부호화 처리된 데이터는 증폭된 라이트 전류로 헤드(16)를 통하여 디스크(12)에 라이트된다.
도 6a의 램(670) 및 롬(660)은 하나의 정보 저장부로 언급될 수 있다.
도 6b는 도 1b의 저장 장치(120b)가 디스크 드라이브일 경우에, 저장 장치(120b)의 전기적인 기능 블록도이다.
도 6b에 도시된 바와 같은 디스크 드라이브(600b)는 도 6a에 도시된 디스크 드라이브(600a)에 비휘발성 메모리(690)가 추가된다. 비휘발성 메모리(690)에는 디스크 드라이브(600b)에 저장하고자 하는 데이터의 일부가 저장될 수 있다. 일 예로서, 디스크 드라이브(600b) 제어에 필요한 각종 정보들이 비휘발성 메모리(690)에 저장될 수 있다.
그리고, 비휘발성 메모리(690)에는 도 19-25, 도 27-28, 및 도 31의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 저장될 수 있다. 구체적으로, 가상 존 또는 가상 밴드에 기초하여 논리적 블록 어드레스를 가상 어드레스로 변환시키기 위한 매핑 테이블을 비휘발성 메모리 장치(690)에 저장할 수 있다. 또한 저장 장치(600b)의 다양한 기능을 구현시키기 위한 코드 오브젝트들도 비휘발성 메모리(690)에 저장할 수 있다.
프로세서(630)는 ROM(660), RAM(670) 및 비휘발성 메모리(690)와 각각 결합되어 있다. ROM(660)에는 디스크 드라이브를 제어하는 펌웨어 및 제어 데이터들이 저장되어 있다. 도 19-25, 도 27-28, 및 도 31의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들이 ROM(660)에 저장될 수 있다. 물론, 도 19-25, 도 27-28, 및 도 31의 흐름도에 따른 방법을 실행시키기 위한 프로그램 코드 및 정보들은 ROM(660) 대신에 디스크(12)의 메인터넌스 실린더 영역 또는 비휘발성 메모리(690)에 저장될 수도 있다.
RAM(670)에는 프로세서(630)의 제어에 따라 ROM(660), 디스크(12) 또는 비휘발성 메모리(690)에 저장된 프로그램 코드 및 정보들이 초기화 모드에서 로딩된다.
도 6a의 디스크 드라이브(600a)에서 이미 설명한 동일한 구성 수단들에 대한 중복된 설명은 피하기로 한다. 도 1a 및 도 1b의 저장 매체(124)와 도 6a 및 도 6b의 디스크(12)의 물리적 구조는 도 7에 도시된 바와 같이 정의될 수 있다. 도 7은 본 발명의 바람직한 실시 예들에서 사용되는 저장 매체(124) 또는 디스크(12)의 물리적 구조 또는 레이아웃에 대한 개념도이다. 이하 설명의 편의를 위하여 도 6a의 디스크(12)에 대해 설명하기로 하나 도 1a 및 도 1b의 저장 매체(124) 및 도 6b의 디스크(12) 역시 동일한 물리적 구조 또는 레이아웃을 갖는 것으로 해석되어야 할 것이다.
도 7을 참조하면, 디스크(12)는 N(N은 자연수)개의 유니트(unit)를 포함할 수 있다. 하나의 유니트는 M(M은 자연수)개의 존(zone)을 포함할 수 있다. 하나의 존은 I(I는 자연수)개의 밴드(band)를 포함할 수 있다. 하나의 밴드는 J(J는 자연수)개의 트랙을 포함할 수 있다. 하나의 트랙은 K(K는 자연수)개의 섹터를 포함할 수 있다. 각 존은 디스크(12)의 물리적 구조에 따라 동일한 개수의 밴드를 포함할 수 있으나 다른 개수의 밴드를 포함할 수 있다. 각각의 트랙은 디스크(12)의 물리적 구조에 따라 동일한 개수의 섹터를 포함할 수 있으나 다른 개수의 섹터를 포함할 수 있다. 밴드는 가상 밴드(Virtual Band:VB), 물리적 밴드(Physical Band:PB) 또는 디스크 밴드(Disc Band:DB)로 언급될 수 있다. 가상 밴드는 디스크(12)의 물리적 어드레스 또는 물리적 위치에 기초한 밴드로써, 후술할 HTL에 기초한 밴드이다.
라이트 밀도를 높이기 위해, 각 밴드는 슁글드 라이트 동작에 기초하여 데이터가 라이트될 수 있다. 각 밴드가 슁글드 라이트 동작에 기초하여 데이터가 라이트된 경우에, 밴드에 포함되는 도 7의 트랙 1∼J(701)는 도 7의 트랙 L(L은 자연수) 내지 L+P(P는 자연수)(702)와 같이 이전 트랙의 일부 영역에 겹치면서 화살표 방향으로 데이터가 라이트 된 것처럼 도시될 수 있다. 예를 들어, 트랙 L+1은 트랙 L의 일부 영역에 겹치면서 데이터가 라이트되고, 트랙 L+P는 트랙 (L+P-1)의 일부 영역에 겹치면서 데이터가 라이트된다.
트랙 L 내지 트랙 L+P(702)로 구성된 밴드와 트랙 1 내지 트랙 J(701)로 구성된 밴드의 물리적 영역이 동일한 경우에, 트랙 L 내지 트랙 L+P(702)로 구성된 밴드에 포함되는 트랙 수가 트랙 1 내지 트랙 J(701)로 구성된 밴드의 트랙 수보다 많을 수 있다. 이는 트랙 L 내지 L+P(702)가 트랙 1 내지 J(701)보다 TPI(Track Per Inch)가 높기 때문이다.
그러나 밴드 단위의 슁글드 라이트 동작시, 한쪽 방향으로만 라이트가 이루어져야 한다. 도 6a에 도시된 디스크(12)의 경우에, 내주 방향 또는 외주 방향으로만 데이터가 라이트 되어야 한다. 이는 도 8a 및 도 8b에 도시된 바와 같은 제한 조건 때문이다. 도 8a 및 도 8b는 슁글드 라이트 동작에 기초하여 데이터를 라이트 할 경우의 제한 조건을 설명하기 위한 도면이다.
도 8a를 참조하면, 도 8a에 도시된 바와 같이 화살표 방향으로 슁글드 라이트 동작을 수행하는 경우에, 화살표 방향으로만 플럭스(flux)가 발생한다. 따라서 슁글드 라이트 동작에 기초하여 데이터를 라이트할 때, 트랙(TRACK N)에 데이터를 라이트한 후에 트랙(TRACK N-1)에 데이터를 라이트 할 수 없다는 제한 조건을 만족하여야 한다. 만일 도 8b에 도시된 바와 같이 트랙(TRACK N)에 데이터를 라이트한 후에 슁글드 라이트 진행방향과 반대 방향인 트랙(TRACK N-1)에 데이터를 라이트하면, 트랙(TRACK N)에 라이트된 데이터가 인접 트랙 간섭(ATI, Adjacent Track Interference)에 의하여 지워지게 된다.
따라서 슁글드 라이트 동작에 기초하여 데이터를 라이트할 때, 항상 디스크(12)의 내주 방향 또는 외주 방향중 어느 한 방향으로 데이터 라이트가 수행되도록, 호스트 기기(110)로부터 수신되는 논리적 어드레스에 대해 디스크(12)의 물리적 어드레스를 동적으로 할당하는 기술이 필요하다.
HTL은 상술한 슁글드 라이트 동작에 기초한 데이터 라이트시 제한 조건을 만족시키기 위해 제안된 기술이다. HTL은 호스트 기기(110)로부터 전송되는 논리적 블록 어드레스를 가상 블록 어드레스로 변환하고, 가상 블록 어드레스를 디스크(12)의 물리적 블록 어드레스로 변환시켜 디스크(12)를 액세스한다. 물리적 블록 어드레스는 예를 들어 CHS(Cylinder Head Sector)에 기초한 어드레스일 수 있다.
가상 블록 어드레스는 디스크(12)의 물리적 위치 또는 물리적 블록 어드레스에 기초한 어드레스이나 상술한 한 방향으로의 라이트 조건을 만족시키기 위하여 논리적 블록 어드레스에 동적으로 할당되는 물리적 위치 또는 물리적 블록 어드레스에 기초한 어드레스로 볼 수 있다.
HTL에 기초하여 프로세서(121, 630)가 운영될 경우에, 프로세서(121, 630)는 먼저 호스트 기기(110)로부터 수신된 논리적 블록 어드레스를 가상 블록 어드레스로 변환시킨다. 다음, 프로세서(121, 630)는 가상 블록 어드레스를 저장 매체(124) 또는 디스크(12)의 물리적 블록 어드레스로 변환시켜 저장 매체(124) 또는 디스크(12)에 데이터를 라이트 하거나 저장 매체(124) 또는 디스크(12)로부터 데이터를 리드한다.
프로세서(121, 630)가 HTL에 기초하여 운영될 경우에, 프로세서(121, 630)는 도 9에 도시된 바와 같이 구성될 수 있다. 도 9는 HTL에 기초한 프로세서(121, 630)의 구성 예로써, 본 발명의 바람직한 실시 예에 따른 저장 장치(100a, 100b, 600a, 600b)에 포함된 프로세서(121, 630)의 일 구성 예이다.
도 9를 참조하면, 프로세서(121, 630)는 제 1 프로세서(910), 제 2 프로세서(920), 및 제 3 프로세서(930)를 포함할 수 있다. 여기에서, 제 2 프로세서(920) 및 제 3 프로세서(930)는 하나의 프로세서(940)로 통합하여 설계할 수도 있다. 물론, 도면에서 표시되어 있지 않지만 제 1 프로세서(910) 및 제 2 프로세서(920)도 하나의 프로세서로 통합하여 설계할 수도 있다.
제 1 프로세서(910)는 호스트 기기(110)로부터 커맨드를 수신하고, 상기 수신된 커맨드로부터 논리적 블록 어드레스를 추출하는 동작을 수행할 수 있다.
제 2 프로세서(920)는 제 1 프로세서(910)에서 추출된 논리적 블록 어드레스를 가상 블록 어드레스로 변환시키는 동작을 수행할 수 있다. 즉, 제 2 프로세서(920)는 램(670)에 저장된 라이트 상태 정보(670-1)에 포함된 매핑 테이블을 이용하여 논리적 블록 어드레스를 가상 블록 어드레스로 변환할 수 있다. 매핑 테이블은 논리적 블록 어드레스와 가상 블록 어드레스를 매핑 시킨 어드레스 매핑 정보와 수신된 논리적 블록 어드레스에 매핑 될 가상 블록 어드레스에 대한 정보를 포함할 수 있다.
또한 제 2 프로세서(920)는 도 7에 도시된 밴드 단위의 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 디스크(12)의 머지될 소스 영역(Source Area)으로부터 리드된 데이터가 디스크(12)의 목적지 영역(Destination Area)에 라이트 되도록 제어하는 머지 동작을 수행할 수 있다. 소스 영역으로부터 리드된 데이터를 목적지 영역에 라이트 하는 리드 및 라이트 동작은 소스 영역에 라이트 된 데이터를 목적지 영역으로 이동하는 이동 동작(Moving Operation)을 이용하여 구현될 수 있다. 상술한 머지 동작은 호스트 기기(110)로부터 수신되는 커맨드에 관계없이 수행될 수 있다.
상술한 머지 동작을 수행하기 위하여, 제 2 프로세서(920)는 도 10에 도시된 바와 같이 프리 큐(Free Queue; 1010), 얼로케이션 큐(Allocation Queue; 1020) 및 머지 큐(Merge Queue; 1030)를 이용하여 저장 매체(124) 또는 디스크(12)의 도 7에 도시된 밴드들의 정보를 관리할 수 있다. 머지 큐(1030)에 정보가 저장된 머지될 소스 영역은 본 발명에 따른 머지 동작 완료 후 머지 큐(1030)에 저장된 소스 영역에 대한 정보는 삭제된다. 머지 큐(1030)는 가비지 큐(Garbage Queue)로 언급될 수 있다. 머지된 소스 영역은 필요한 시기에 프리 영역(Free Area)으로 변경될 수 있다. 소스 영역이 프리 영역으로 변경되는 시기는 일반적으로 프리 영역이 필요할 때로 정의될 수 있다. 그러나, 머지 큐(1030)에 저장된 소스 영역에 대한 정보가 삭제될 때, 프리 영역으로 변경될 수도 있다.
도 10은 제 2 프로세서(920)에 포함되는 큐들의 관계도이다. 이하 설명의 편의를 위하여 디스크(12)에 적용되는 예를 설명하기로 하나 이하 내용은 저장 매체(124)에 동일하게 적용되는 것으로 해석되어야 할 것이다.
도 10에 도시된 프리 큐(1010)는 디스크(12)에서 사용 가능한 밴드에 대한 정보를 저장할 수 있다. 상술한 밴드는 물리적 밴드, 가상 밴드, 또는 디스크 밴드로 해석될 수 있으나 이하 설명의 편의를 위해 물리적 밴드로 언급하기로 한다.
프리 큐(1010)에 정보가 저장된 물리적 밴드는 유효한 데이터가 라이트 된 섹터를 포함하지 않은 물리적 밴드로써, 본 발명의 바람직한 실시 예들에 따른 머지 동작 수행시 목적지 밴드(Destination Band)로 이용될 수 있다. 목적지 밴드는 디스크(12)의 프리 영역 또는 프리 밴드(Free Band)로 언급될 수 있다. 프리 큐(1010)에 정보가 저장된 물리적 밴드는 후술할 도 11에서 언급될 논리적 밴드들에 할당되지 않은 물리적 밴드이다.
도 10에 도시된 얼로케이션 큐(1020)는 디스크(12)에서 사용된 또는 현재 사용되고 있는 물리적 밴드에 대한 정보를 저장할 수 있다. 상술한 사용된 또는 현재 사용되고 있는 물리적 밴드는 후술할 도 11에서 언급될 논리적 밴드들중 하나의 논리적 밴드에 할당된 물리적 밴드이다.
머지 큐(1030)는 얼로케이션 큐(1020)에서와 같이 디스크(12)에서 사용된 또는 사용되고 있는 물리적 밴드에 대한 정보를 저장할 수 있다. 그러나 머지 큐(1030)에 정보가 저장된 물리적 밴드는 본 발명의 바람직한 실시 예들에 따른 머지 동작 수행시 머지될 소스 영역(source area)으로 이용될 수 있다. 얼로케이션 큐(1020)에 정보가 저장되는 물리적 밴드는 머지될 소스 영역으로 이용되지 않는다. 머지될 소스 영역은 머지 대기 영역(Merge Standby Area) 또는 머지 대기 밴드(Merge Standby Band)로 언급될 수 있다.
도 11 및 도 12를 참조하여 도 10에 도시된 큐에 기초한 물리적 밴드 정보에 대한 관리 동작을 좀더 상세하게 설명하면 하기와 같다.
도 11은 본 발명의 바람직한 실시 예들에 적용되는 호스트 기기(110)로부터 수신된 논리적 블록 어드레스(Logical Block Address; LBA), 논리적 블록 어드레스에 기초한 논리적 밴드(Logical Band), 및 디스크(12)의 물리적 밴드간의 관계 예시도이다.
도 11은 호스트 기기(110)로부터 수신되는 논리적 블록 어드레스(LBA) 0 내지 3999를 논리적 밴드(Logical Band; LB) 0, 논리적 밴드 1, 논리적 밴드 2, 및 논리적 밴드 3으로 나눌 때, 논리적 밴드 0에 물리적 밴드 2 및 4가 할당되고, 논리적 밴드 1에 물리적 밴드 9가 할당되고, 논리적 밴드 2에 물리적 밴드 7, 0, 및 3이 할당되고, 논리적 밴드 3에 물리적 밴드 1이 할당된 경우이다.
도 11에 도시된 바와 같이 물리적 밴드가 할당된 경우에, 도 10의 얼로케이션 큐(1020)에 저장되는 정보는 도 12의 (1201)에 도시된 바와 같이 정의될 수 있다. 도 12는 도 11에 기초하여 도 10에 도시된 프리 큐(1010), 얼로케이션 큐(1020), 및 머지 큐(1030)에 저장되는 물리적 밴드 정보에 대한 예시도이다. 도 12의 경우에 프리 큐(1010), 얼로케이션 큐(1020), 및 머지 큐(1030)에 저장되는 정보는 물리적 밴드의 식별 정보이다. 그러나 큐들(1010, 1020, 1030)에 저장되는 정보는 이로 제한되지 않는다.
도 12의 (1201)를 참조하면, 도 11의 논리적 밴드 0 내지 3에 할당 가능한 물리적 밴드는 물리적 밴드 0 내지 9이고, 아직 어떠한 논리적 밴드에도 할당되지 않은 물리적 밴드는 물리적 밴드 5, 6, 및 8임을 알 수 있다. 어떠한 논리적 밴드에도 할당되지 않는 물리적 밴드는 프리 밴드로써, 상술한 바와 같이 머지 동작시 목적지 영역으로 선택 또는 설정될 수 있는 밴드이다.
얼로케이션 큐(1020)에 저장된 물리적 밴드의 정보중에서 물리적 밴드 2 및 물리적 밴드 7이 머지될 물리적 밴드로 판단되면, 제 2 프로세서(920)는 얼로케이션 큐(1020)에 저장되어 있던 물리적 밴드 2 및 7에 대한 정보를 머지 큐(1030)에 저장한다(P2). 이에 따라 얼로케이션 큐(1020)와 머지 큐(1030)에 저장된 정보는 (1202)와 같이 업데이트된다.
제 2 프로세서(920)는 얼로케이션 큐(1020)에 정보가 저장된 물리적 밴드들의 무효한 섹터의 수(Invalid Sector Count)에 기초하여 머지될 물리적 밴드를 결정할 수 있다.
즉, 제 2 프로세서(920)는 얼로케이션 큐(1020)에 정보가 저장된 물리적 밴드간에 무효한 섹터의 수를 비교하여 머지될 물리적 밴드를 결정하거나 임계값과 각 물리적 밴드의 무효한 섹터의 수를 비교하여 머지될 물리적 밴드를 결정할 수 있다. 상술한 임계값은 물리적 밴드에 포함되는 섹터의 총 수와 무효한 섹터의 수간에 비(Ratio)에 기초하여 머지될 물리적 밴드로 판단하기에 적절한 조건에 따라 결정될 수 있다. 따라서, 머지 큐(1030)에 저장된 물리적 밴드 2 및 7은 얼로케이션 큐(1020)에 저장된 물리적 밴드들보다 무효한 섹터의 수가 많은 물리적 밴드이거나 상술한 임계값보다 무효한 섹터의 수가 많은 물리적 밴드로 해석될 수 있다.
머지 큐(1030)에 저장되는 머지될 물리적 밴드의 정보는 라이트 커맨드가 수신될 때마다 업데이트될 수 있다. 즉, 라이트 커맨드가 수신될 때마다 상술한 바에 따라 얼로케이션 큐(1020)에 정보가 저장되어 있는 물리적 밴드들에 대해 머지될 물리적 밴드에 해당되는지를 결정하고, 결정된 결과에 따라 머지 큐(1030)에 저장된 정보는 업데이트 될 수 있다. 머지 큐(1030)에 저장된 정보가 업데이트될 경우에 얼로케이션 큐(1020)에 저장된 정보도 업데이트될 수 있다.
예를 들어, 도 12의 (1202)에 도시된 바와 같이 얼로케이션 큐(1020)에 정보가 저장되어 있을 때, 물리적 밴드 0의 무효한 섹터의 수가 머지 큐(1030)에 정보가 저장된 물리적 밴드 2보다 무효한 섹터의 수가 많거나 얼로케이션 큐(1020)에 정보가 저장된 다른 물리적 밴드들 보다 무효한 섹터의 수가 많거나 물리적 밴드 0의 무효한 섹터의 수가 상술한 임계값 이상인 것으로 판단되면, 제 2 프로세서(920)는 얼로케이션 큐(1020)에 저장된 정보와 머지 큐(1030)에 저장된 정보를 도 12의 (1203)에 도시된 바와 같이 업데이트할 수 있다(P2).
머지 큐(1030)에 저장될 수 있는 정보의 수가 2개로 제한될 경우에, 제 2 프로세서(920)는 물리적 밴드 0에 대한 정보를 머지 큐(1030)에 저장하기 전에 물리적 밴드 0, 2, 및 7간의 무효한 섹터의 수를 비교하고, 무효한 섹터의 수가 가장 많은 상위 2개의 밴드에 대한 정보를 머지 큐(1030)에 저장하고, 나머지 1개의 밴드에 대한 정보는 얼로케이션 큐(1020)로 피드백하도록 구현될 수 있다(P4). 예를 들어, 물리적 밴드 0, 2, 및 7중 물리적 밴드 7의 무효한 섹터의 수가 가장 작은 경우에, 물리적 밴드 0에 대한 정보는 머지 큐(1030)에 저장되고(P2), 머지 큐(1030)에 저장되어 있던 물리적 밴드 7에 대한 정보는 삭제되면서, 얼로케이션 큐(1020)에 물리적 밴드 7에 대한 정보를 저장할 수 있다(P4). 이에 따라 각 큐(1010, 1020, 1030)에 저장된 정보는 도 12의 (1204)에 도시된 바와 같이 정의될 수 있다.
머지 큐(1030)에 정보가 저장된 물리적 밴드중 하나가 머지될 소스 영역으로 선택되고, 프리 큐(1010)에 정보가 저장된 물리적 밴드중 하나가 머지시 목적지 영역으로 선택되고, 머지 처리로 머지될 소스 영역으로부터 리드된 데이터가 목적지 영역에 라이트되는 동작이 완료되면, 머지 큐(1030)에 저장되어 있던 머지될 소스 영역에 대한 물리적 밴드의 정보는 삭제되고, 프리 큐(1010)에 머지될 소스 영역에 대한 물리적 밴드의 정보가 등록되고(P3), 얼로케이션 큐(1020)에 목적지 영역에 해당되는 물리적 밴드의 정보가 등록된다(P1). 예를 들어 물리적 밴드 2로부터 리드된 데이터를 물리적 밴드 5에 라이트하는 머지 동작이 완료되면, 도 12의 (1205)에 도시된 바와 같이 머지 큐(1030)에 저장되었던 물리적 밴드 2에 대한 정보는 삭제되고, 프리 큐(1010)에 물리적 밴드 2에 대한 정보가 등록되면서(P3), 프리 큐(1010)에 등록되었던 물리적 밴드 5에 대한 정보는 삭제되고, 얼로케이션 큐(1020)에 물리적 밴드 5에 대한 정보가 등록된다(P1).
이 때, P3는 머지 큐(1030)에 저장 되어 있던 머지 될 소스 영역에 대한 정보가 삭제되자마자 수행되지 않을 수 있다. 즉, 제 2 프로세서(920)에서 머지 큐(1030)에서 삭제된 소스 영역에 대한 정보를 일시적으로 보유하고 있다가 프리 영역이 필요할 때, P3를 수행하여 프리 큐(1010)에 머지된 소스 영역에 대한 정보를 등록할 수 있다. 또한, 도 12의 (1205)에서 얼로케이션 큐(1020)에 등록되었던 물리적 밴드 1는 얼로케이션 큐(1020)에 등록된 다른 물리적 밴드들보다 무효한 섹터의 수가 많은 물리적 밴드로써, 머지될 물리적 밴드로 결정된 경우에, 물리적 밴드 1에 대한 정보는 머지 큐(1030)로 이동된다(P2).
머지될 물리적 밴드를 판단할 때, 상술한 임계값을 이용할 경우에, 머지 큐(1030)에 저장된 정보는 도 12의 (1206)에 도시된 바와 같이 업데이트되지 않을 수 있다. 즉, 도 12의 (1205)와 달리 얼로케이션 큐(1020)에서 물리적 밴드 1의 무효한 섹터의 수가 다른 물리적 밴드의 무효한 섹터의 수보다 많지만, 물리적 밴드 1의 무효한 섹터의 수가 임계값 이상이 아니면, 도 12의 (1206)와 같이 머지 동작 완료 후, 머지 큐(1030)에 저장되었던 머지될 소스 영역에 대응되는 물리적 밴드의 정보는 삭제되었으나, 새로 머지될 소스 영역에 대응되는 물리적 밴드의 정보는 머지 큐(1030)에 저장되지 않을 수 있다.
머지 큐(1030)는 무효한 섹터 수에 따라 물리적 밴드가 선택되도록 물리적 밴드의 정보를 저장할 수 있다. 예를 들어, 물리적 밴드 2 및 7중 물리적 밴드 7이 물리적 밴드 2보다 무효한 섹터의 수가 많은 경우에 머지 동작 수행시 물리적 밴드 7이 물리적 밴드 2보다 먼저 선택될 수 있도록 정보를 저장할 수 있다. 그러나 머지 큐(1030)에 등록된 순서에 따라 머지 될 물리적 밴드가 선택될 수 있다.
도 12에 도시된 P1, P2, P3, 및 P4는 각 큐(1010, 1020, 1030)에 저장된 데이터 이동 경로로 언급될 수 있다. 만약 P1, P2, P3, 및 P4가 데이터 이동 경로로 언급될 경우에, 본 발명에 따른 머지 동작에 따라 각 큐(1010, 1020, 1030)에 저장된 물리적 밴드의 정보는 상술한 이동 경로를 통해 다른 큐로 이동되도록 구현될 수 있다.
제 2 프로세서(920)는 프리 큐(1010), 얼로케이션 큐(1020), 및 머지 큐(1030)를 도 7에 도시된 유니트 단위로 운영할 수 있으나 존 단위로 운영할 수 있다. 도 11은 논리적 밴드 0, 1, 2, 및 3이 하나의 존에 할당된 예이다. 그러나, 제 2 프로세서(920)는 유니트 단위 또는 존 단위와 관계없이 디스크(12) 전체를 대상으로 프리 큐(1010), 얼로케이션 큐(1020), 및 머지 큐(1030)를 운영할 수 있다.
도 11의 물리적 밴드들은 프로세서(121 또는 630)가 HTL 기반으로 운영될 경우에 가상 밴드로 언급될 수 있다. 가상 밴드는 저장 매체(124) 또는 디스크(12)의 존내의 가상 밴드중 하나로써, 수신되는 논리적 블록 어드레스에 대해 동적으로 할당될 수 있는 밴드이다. 가상 밴드는 상술한 바와 같이 가상 어드레스에 기초한 것으로 언급될 수 있다. 따라서 본 발명의 바람직한 실시 예들에서 언급되는 물리적 어드레스 기반 머지 동작은 프로세서(121, 630)가 HTL에 기초하여 운영될 경우에 가상 어드레스 기반 머지 동작으로 언급될 수 있다.
한편, 도 9의 제 3 프로세서(930)는 램(670)에 저장된 라이트 상태 정보(670-1)를 관리하고, 유효한 데이터가 상기 소스 영역으로부터 리드되어 상기 목적지 영역에 라이트되도록 R/W 채널(620), 프리 앰프(610), VCM 구동부(640), 및 SPM 구동부(650)를 제어할 수 있다.
본 발명의 바람직한 실시 예에 따른 머지 동작(Merge Operation)은 데이터가 라이트된 저장 매체(124) 또는 디스크(12)를 갖는 저장 장치(120)가 아이들 상태(idle state)이거나 라이트 커맨드(write command) 수신시 라이트 가능한 영역이 부족하면, 저장 매체(124) 또는 디스크(12)에 데이터를 라이트할 수 있는 영역을 확보하기 위해 수행된다.
본 발명의 바람직한 실시 예에 따른 머지 동작은 호스트 기기(110)의 커맨드(command)에 관계없이 저장 장치(120, 600) 내부에서 수행될 수 있는 동작이므로, 호스트 기기(110) 측에서는 저장 장치(120, 600)를 사용하는데 따른 오버 헤드(over-head) 동작이 될 수 있다. 따라서 저장 매체(120) 또는 디스크(12)에 라이트 된 데이터에 대한 머지 동작이 빠르게 수행될 수록 호스트 기기-저장 장치 기반 시스템(100)의 퍼포먼스(performance)는 향상될 수 있다.
머지될 소스 영역은 도 11과 같이 각 논리적 밴드에 할당된 물리적 밴드중에서 무효한 섹터 수가 가장 많은 물리적 밴드이다. 이 물리적 밴드에 대한 정보는 도 10과 도 12에 도시된 머지 큐(1030)에 등록되어 이용될 수 있다. 이하 본 발명의 바람직한 실시 예들에 대한 설명에서 머지될 소스 밴드는 상술한 바와 같이 소스 영역으로 언급하고, 머지 동작에 따라 소스 영역으로부터 리드된 데이터가 라이트되는 프리 밴드는 목적지 영역으로 언급한다. 소스 영역과 목적지 영역은 모두 도 7에 도시된 저장 매체(124) 또는 디스크(12)의 물리적 밴드이거나 HTL에서 언급되는 가상 밴드일 수 있다.
프로세서(121, 630)는 소스 영역의 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작과 논리적 어드레스 기반 머지 동작중 하나를 선택하고, 선택된 머지 동작에 따라 저장 매체 인터페이스부(125) 또는 저장 장치(600a, 600b)를 제어한다. 이에 따라 선택된 머지 동작에 따라 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스 또는 논리적 어드레스 중 어느 한 어드레스를 이용하여 소스 영역으로부터 데이터를 리드하고, 리드된 데이터를 목적지 영역에 라이트 하게 된다. 목적지 영역에 대한 라이트 동작이 완료되면, 프로세서(121, 630)는 소스 영역을 저장 매체(124) 또는 디스크(12)의 프리 영역으로써 설정할 수 있다. 소스 영역을 프리 영역으로 설정하는 것은 상술한 바와 같이 프리 영역이 필요할 때 수행되거나 머지 동작이 완료된 후 수행될 수 있다.
상술한 바와 동작하기 위하여, 프로세서(121, 630)는 도 13에 도시된 바와 같이 구성될 수 있다. 도 13은 본 발명의 바람직한 실시 예에 따른 저장 장치에 포함되는 프로세서(121, 630)의 다른 구성 예이다. 이하 설명의 편의를 위하여 프로세서(630)에 의해 수행되는 예를 설명하기로 한다. 그러나 프로세서(121)에 의해서도 아래와 같은 동작을 수행할 수 있다.
도 13을 참조하면, 프로세서(630)는 머지 동작 선택부(1301), 데이터 리드 및 라이트 동작 제어부(1302), 및 라이트 상태 정보 업데이트부(1303)를 포함할 수 있다. 그러나, 프로세서(630)의 구성은 도 13에 도시된 바로 제한되지 않는다.
머지 동작 선택부(1301)는 램(670)으로부터 리드된 라이트 상태 정보(670-1)와 램(670)으로부터 리드된 임계값에 기초하여 상기 머지 동작을 선택한다. 임계값은 소스 영역의 사이즈와 소스 영역에 포함된 섹터의 수 중 적어도 하나에 따라 설정될 수 있다. 예를 들어 소스 영역에 포함된 섹터의 수의 50%를 초과하지 않으면서, 본 발명의 실시 예에서 언급되는 논리적 어드레스 기반으로 머지할 경우에 물리적 어드레스 기반으로 머지하는 것에 비해 머지 동작 속도를 향상시킬 수 있는 어드레스 매핑 정보의 수에 기초하여 상술한 임계값은 설정될 수 있다. 머지 동작 속도를 향상시키는 것은 머지 동작 시간을 줄이는 것으로 해석될 수 있다. 임계값은 사전에 롬(660) 또는 디스크(12)의 메인터넌스 실린더 영역에 저장되었다가 프로세서(630)에 의해 램(670)에 로딩되어 이용될 수 있다.
머지 동작 선택부(1301)는 소스 영역의 라이트 상태 정보(670-1)에 포함되어 있는 어드레스 매핑 정보의 수가 상술한 임계값보다 크면, 물리적 어드레스 기반 머지 동작을 선택한다. 반면에 소스 영역의 어드레스 매핑 정보의 수가 상술한 임계값보다 크지 않으면, 논리적 어드레스 기반 머지 동작을 선택하도록 구성될 수 있다.
또는, 머지 동작 선택부(1301)는 소스 영역의 라이트 상태 정보(670-1)에 포함되어 있는 어드레스 매핑 정보의 수와 소스 영역에서 유효한 데이터가 라이트 된 섹터의 수를 이용하여 머지 동작을 선택할 수 있다. 이 경우에 임계값은 제 1 임계값과 제 2 임계값을 포함한다. 제 1 임계값과 상기 제 2 임계값은 상기 소스 영역의 사이즈와 소스 영역의 섹터의 수 중 적어도 하나에 따라 상술한 임계값에서와 같은 기준으로 설정될 수 있다.
머지 동작 선택부(1301)는 소스 영역의 어드레스 매핑 정보의 수가 제 1 임계값보다 크거나, 어드레스 매핑 정보의 수로 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 제 2 임계값보다 크지 않으면, 물리적 어드레스 기반 머지 동작을 선택한다. 반면에 소스 영역의 어드레스 매핑 정보의 수가 제 1 임계값보다 크지 않고, 상술한 나눈 값이 제 2 임계값보다 크지 않으면, 논리적 어드레스 기반 머지 동작을 선택할 수 있다.
또는 머지 동작 선택부(1301)는 소스 영역의 어드레스 매핑 정보의 수로 유효한 데이터가 라이트 된 섹터의 수를 나눈 값만을 이용하여 머지 동작을 선택할 수 있다. 즉, 상술한 나눈 값이 임계값보다 크면, 물리적 어드레스 기반 머지 동작을 선택하고, 상술한 나눈 값이 임계값보다 크지 않으면, 논리적 어드레스 기반 머지 동작을 선택할 수 있다. 여기서 이용되는 임계값은 상술한 제 2 임계값에 대응되는 값을 갖는다.
데이터 리드 및 라이트 동작 제어부(1302)는 선택된 머지 동작이 물리적 어드레스 기반 머지 동작이면, 디스크(12)의 소스 영역의 어드레스 매핑 정보의 물리적 어드레스에 기초하여 소스 영역으로부터 데이터를 리드하고, 리드된 데이터를 디스크(12)의 목적지 영역에 라이트 하는 리드 동작 및 라이트 동작을 제어한다. 이 때, 데이터 리드 및 라이트 동작 제어부(1302)는 소스 영역의 어드레스 매핑 정보를 물리적 어드레스에 기초하여 소팅하고, 소팅된 어드레스 매핑 정보에 기초하여 소스 영역으로부터 데이터를 리드한다.
반면에 선택된 머지 동작이 논리적 어드레스 기반 머지 동작이면, 데이터 리드 및 라이트 동작 제어부(1302)는 디스크(12)의 소스 영역의 어드레스 매핑 정보의 논리적 어드레스에 기초하여 디스크(12)의 소스 영역으로부터 데이터를 리드하고, 리드된 데이터를 디스크(12)의 목적지 영역에 라이트하는 데이터 리드 및 라이트 동작을 제어한다. 소스 영역으로부터 리드되는 데이터는 유효한 데이터(Valid Data)이다.
상술한 물리적 어드레스 기반 머지 동작 또는 논리적 어드레스 기반 머지 동작을 수행할 때, 리드되는 데이터 량은 리드 버퍼(620-1)의 사이즈에 따라 결정될 수 있다. 따라서 데이터 리드 및 라이트 동작 제어부(1302)는 R/W채널(620)의 리드 버퍼(620-1)를 통해 디스크(12)의 소스 영역으로부터 데이터를 리드하고, R/W채널(620)의 리드 버퍼(620-1)에 임시적으로 저장된 데이터를 디스크(12)의 목적지 영역에 라이트할 수 있다.
그러나, 상술한 바와 같이 디스크(12)의 소스 영역으로부터 리드된 데이터는 프로세서(630)에 포함된 데이터 리드 및 라이트 동작 제어부(1302)에 임시적으로 저장되었다가 디스크(12)의 목적지 영역에 라이트될 수 있다. 이를 위해 데이터 리드 및 라이트 동작 제어부(1302)는 라인(1304)을 통해 R/W 채널(620)로부터 리드된 데이터를 수신하고, 수신된 데이터를 임시적으로 저장하였다가 R/W 채널(620)로 전송하는 기능을 갖도록 구성될 수 있다.
또는, 디스크(12)의 소스 영역에서 리드된 데이터는 램(670)에 임시적으로 저장되었다가 리드되어 디스크(12)의 목적지 영역에 라이트될 수 있다. 이를 위해 데이터 리드 및 라이트 동작 제어부(1302)의 램(670)에 대한 동작 제어 기능은 변경될 수 있다. 프로세서(630)가 도 1a의 프로세서(121)인 경우에 상술한 R/W 채널(620)을 포함한 리드 동작 및 라이트 동작에 필요한 구성 요소는 저장 매체 인터페이스부(125)에 대응되는 것으로 해석될 수 있다.
데이터 리드 및 라이트 동작 제어부(1302)에 의해 디스크(12)의 소스 영역으로부터 리드된 데이터를 디스크(12)의 목적지 영역에 라이트하는 동작이 완료되면, 데이터 리드 및 라이트 동작 제어부(630)는 라이트 상태 정보 업데이트부(1303)로 디스크(12)의 소스 영역과 목적지 영역에 대한 라이트 상태 정보 업데이트를 요구한다. 이에 따라 라이트 상태 정보 업데이트부(1303)는 램(670)에 저장된 디스크(12)의 소스 영역과 목적지 영역의 라이트 상태 정보를 업데이트 한다. 상술한 머지 동작에 의해 변경된 디스크(12)의 소스 영역과 목적지 영역의 라이트 상태 정보는 데이터 리드 및 라이트 동작 제어부(1302)에 의해 생성되어 라이트 상태 정보 업데이트부(1303)로 제공될 수 있다.
이하 도 14 내지 도 17과 상술한 도 13을 참조하여 본 발명의 바람직한 실시 예에 따른 데이터 머지 방법을 좀 더 상세하게 설명하기로 한다.
도 14 내지 도 17은 본 발명의 바람직한 실시 예에 따른 데이터 머지에 대한 예시도이다. 도 14 및 16은 물리적 어드레스 기반 데이터 머지에 대한 예시도이다. 도 15 및 17은 논리적 어드레스 기반 데이터 머지에 대한 예시도이다.
도 14를 참조하면, 머지될 소스 영역이 도 14a에 도시된 바와 같을 때, 도 14a에 대한 어드레스 매핑 정보는 도 14b와 같다. 도 14a에 도시된 숫자는 연속적으로 유효한 데이터가 라이트 된 섹터들의 첫 번째 섹터를 나타내기 위한 것이다. 따라서 도 14a에 도시된 숫자에 기초하여 소스 영역에서 연속적으로 유효한 데이터가 라이트 된 섹터들의 개수(또는 어드레스 매핑 정보의 수)를 알 수 있으나 도 14에 도시된 숫자는 단순히 설명을 위한 데이터로써 디스크(12)에 라이트 된 것은 아니다.
도 14a와 도 14b를 참조하면, 도 14a의 소스 영역의 어드레스 매핑 정보의 수는 7이다. 어드레스 매핑 정보의 수는 유효한 키의 개수(valid key number)로 언급될 수 있다. 따라서 어드레스 매핑 정보는 유효한 키로 언급될 수 있다. 도 14a의 소스 영역에 대한 SAT(Sector Allocation Table)은 도 14c와 같이 정의될 수 있다. SAT와 어드레스 매핑 정보는 소스 영역의 라이트 상태 정보(670-1)에 포함되는 정보이다.
도 14c를 참조하면, SAT는 소스 영역의 첫 번째 어드레스 매핑 정보(Head, 1401), 소스 영역에 유효한 데이터(Valid Data)가 라이트된 섹터의 수(Valid Sector Count, 1402), 어드레스 매핑 정보의 수(Address Mapping Information Number, 1403), 마지막으로 액세스된 물리적 어드레스(Last Accessed PBA, 1404), 및 소스 영역의 마지막 어드레스 매핑 정보(Tail, 1405)를 포함할 수 있으나 SAT는 도 14c에 도시된 바로 제한되지 않는다.
머지 동작 선택부(1301)는 도 14c의 SAT를 참조하여 도 14a의 소스 영역에 대한 머지 동작을 선택할 수 있다. 즉, 도 14a의 경우에 어드레스 매핑 정보의 수는 7이고, 상술한 임계값이 6인 경우에, 머지 동작 선택부(1301)는 도 14a의 어드레스 매핑 정보의 수(7)가 임계값(6) 보다 크므로(7>6), 도 14a의 소스 영역에 대해 물리적 어드레스 기반 머지 동작을 선택하게 된다.
또는 머지 동작 선택부(1301)는 상술한 예와 같이 소스 영역의 유효한 데이터가 라이트 된 섹터의 수(SN=102)를 어드레스 매핑 정보의 수(7)로 나눈 값(102/7=14.57)과 임계값을 비교한 결과에 기초하여 머지 동작을 선택할 수 있다. 즉, 나눈 값에 대한 임계값을 예를 들어 10으로 설정할 경우에, 상기 나눈 값(102/7=14.57)이 임계값보다 크므로(14.57>10), 머지 동작 선택부(1301)는 소스 영역에 대해 물리적 어드레스 기반 머지 동작을 선택할 수 있다.
또는 머지 동작 선택부(1301)는 상술한 두 가지 조건을 모두 고려하여 머지 동작을 선택할 수 있다. 즉, 머지 동작 선택부(1301)는 어드레스 매핑 정보의 수와 상기 나눈 값중 적어도 하나가 비교되는 임계값보다 크면, 소스 영역에 대해 물리적 어드레스 기반 머지 동작을 선택할 수 있다. 도 14a의 소스 영역의 경우에, 어드레스 매핑 정보의 수(7)가 제 1 임계값(6)보다 크고(7>6), 상기 나눈 값(14.57) 역시 제 2 임계값(10)보다 크므로(14.57>10), 머지 동작 선택부(1301)는 도 14a의 소스 영역에 대해 물리적 어드레스 기반 머지 동작을 선택할 수 있다.
그러나 만약 소스 영역의 어드레스 매핑 정보의 수가 상술한 제 1 임계값보다 크나, 상기 나눈 값이 상술한 제 2 임계값보다 크지 않을 때 또는 상술한 나눈 값이 상술한 제 2 임계값보다 크나 상술한 어드레스 매핑 정보의 수가 상술한 제 1 임계값보다 크지 않을 때에도 머지 동작 선택부(1301)는 머지될 소스 영역에 대해 물리적 어드레스 기반 머지 동작을 선택할 수 있다.
머지 동작 선택부(1301)에서 물리적 어드레스 기반 머지 동작이 선택되면, 데이터 리드 및 라이트 동작 제어부(1302)는 소스 영역의 어드레스 매핑 정보를 물리적 어드레스 기반으로 소팅한다. 이에 따라 도 14b의 어드레스 매핑 정보는 도 14d와 같이 변경된다.
데이터 리드 및 라이트 동작 제어부(1302)는 도 14d와 같이 소팅된 어드레스 매핑 정보의 물리적 어드레스에 기초하여 리드 버퍼(620-1)를 통해 디스크(12)의 소스 영역으로부터 데이터를 리드한다. 리드 버퍼(620-1)의 사이즈가 도 14a의 소스 영역에 라이트 된 유효한 섹터의 수보다 큰 경우에, 도 14d의 어드레스 매핑 정보의 물리적 어드레스에 기초하여 도 14a의 소스 영역에 라이트된 데이터는 1회에 모두 리드되어 리드 버퍼(620-1)에 임시적으로 저장된다.
데이터 리드 및 라이트 동작 제어부(1302)는 리드 버퍼(620-1)에 임시적으로 저장된 데이터를 디스크(12)의 목적지 영역의 첫 번째 섹터에 대응되는 물리적 위치부터 순차적으로 라이트한다. 이에 따라 디스크(12)의 목적지 영역에 도 14e와 같이 유효한 데이터가 라이트되고, 디스크(12)의 목적지 영역의 어드레스 매핑 정보는 도 14f와 같이 생성된다. 도 14e와 같이 데이터가 라이트된 목적지 영역의 SAT는 도 14g와 같이 생성된다. 도 14e에 기재된 숫자는 연속적으로 유효한 데이터가 라이트된 섹터들(또는 섹터 그룹)의 첫 번째 섹터를 나타내기 위한 정보로서, 물리적으로 디스크(12)에 라이트 된 데이터는 아니다. 어드레스 매핑 정보는 연속적으로 데이터가 라이트된 섹터들중 첫 번째 섹터에 기초한다.
라이트 상태 정보 업데이트부(1303)는 데이터 리드 및 라이트 동작 제어부(1302)에 의해 목적지 영역의 어드레스 매핑 정보와 SAT가 도 14f와 도 14g와 같이 생성되면, 도 14b와 도 14c와 같은 소스 영역의 어드레스 매핑 정보와 SAT가 리셋되거나 클리어 되거나 프리 영역에 대응되는 값을 갖도록 하고, 데이터 리드 및 라이트 동작 제어부(1302)에서 생성된 목적지 영역의 어드레스 매핑 정보와 SAT가 반영되도록 램(670)에 저장된 라이트 상태 정보(670-1)를 업데이트 한다.
도 15는 논리적 어드레스 기반 머지 예이다.
도 15를 참조하면, 소스 영역이 도 15a와 같고, 어드레스 매핑 정보가 도 15b와 같고, SAT가 도 15c와 같고, 어드레스 매핑 정보의 수와 비교되는 임계값이 도 14에서와 같이 6일 때, 도 15a의 소스 영역의 어드레스 매핑 정보의 수는 6개이므로, 도 15a의 어드레스 매핑 정보의 수(6)는 임계값(6)보다 크지 않다. 도 15a에 표기된 숫자는 도 14a 및 도 14e에 표기된 숫자와 동일한 의미를 갖는다.
머지 동작 선택부(1301)는 도 15a에 도시된 소스 영역에 대해 어드레스 매핑 정보의 수(6)가 임계값(6)보다 크지 않으므로, 도 15a에 도시된 소스 영역에 대한 머지 동작을 논리적 어드레스 기반 머지 동작으로 선택한다.
머지 동작 선택부(1301)는 도 14에서 설명한 바와 같이 도 15a의 소스 영역의 유효한 데이터가 라이트된 섹터의 수(59)를 어드레스 매핑 정보의 수(6)로 나눈 값(59/6=9.83)을 더 고려하여 머지 동작을 선택할 수 있다. 어드레스 매핑 정보의 수(6)와 상기 나눈 값(9.83)을 모두 이용하는 경우에, 머지 동작 선택부(1301)는 상술한 소스 영역의 어드레스 매핑 정보의 수와 상기 나눈 값 모두 도 14에서 언급한 제 1 임계값(6) 및 제 2 임계값(10)보다 크지 않은 경우에, 논리적 어드레스 기반 머지 동작을 선택할 수 있다.
그러나, 만약 어드레스 매핑 정보의 수가 도 14에서 언급한 제 1 임계값(6)보다 크거나 또는 나눈 값이 도 14에서 언급한 제 2 임계값(10)보다 크면 머지 동작 선택부(1301)는 소스 영역에 대해 물리적 어드레스 기반 머지 동작을 선택할 수 있다.
데이터 리드 및 라이트 동작 제어부(1302)는 머지 동작 선택부(1301)에서 논리적 어드레스 기반 머지 동작이 선택되면, 도 15b의 디스크(12)의 소스 영역의 어드레스 매핑 정보의 논리적 어드레스에 기초하여 디스크(12)의 소스 영역으로부터 데이터가 리드되도록 R/W 채널(620)을 비롯한 저장 장치(600a, 600b)내의 구성 요소를 제어한다.
리드 버퍼(620-1)의 사이즈가 도 15a의 소스 영역에 유효한 데이터가 라이트 된 섹터의 수보다 큰 경우에, 데이터 리드 및 라이트 동작 제어부(1302)는 디스크(12)의 소스 영역에 라이트 된 데이터를 도 15b의 어드레스 매핑 정보의 논리적 어드레스에 기초하여 리드하여 R/W 채널(620)의 리드 버퍼(620-1)에 임시적으로 저장하고, 리드 버퍼(620-1)에 임시적으로 저장된 데이터를 디스크(12)의 목적지 영역의 첫 번째 섹터에 대응되는 물리적 위치부터 순차적으로 라이트한다.
이에 따라 디스크(12)의 목적지 영역에는 도 15d와 같이 데이터가 라이트되고, 도 15d와 같이 데이터가 라이트된 목적지 영역의 어드레스 매핑 정보는 도 15e와 같이 생성된다. 이 때, 논리적 블록 어드레스 20과 논리적 블록 어드레스 46은 연속되는 논리적 블록 어드레스를 가지므로, 논리적 블록 어드레스 20과 46에서 어드레스 매핑 정보간의 머지(merge)가 발생된다. 따라서, 도 15d의 목적지 영역에 대한 어드레스 매핑 정보는 도 15f와 같이 재 정의되고, 이의 SAT는 도 15g와 같이 생성된다.
데이터 리드 및 라이트 동작 제어부(1302)에 의해 상술한 논리적 어드레스 기반 머지 동작을 위한 데이터 리드 및 라이트 동작이 완료되면, 라이트 상태 정보 업데이트부(1303)는 소스 영역과 목적지 영역의 라이트 상태 정보를 업데이트하기 위해 도 14에서 설명한 바와 같이 램(670)에 저장된 라이트 상태 정보(670-1)를 업데이트 한다.
한편, 리드 버퍼(620-1)의 사이즈가 50섹터에 대응되는 경우에, 도 14a와 같은 소스 영역에 대해 물리적 어드레스 기반 머지를 수행할 때, 데이터 리드 및 라이트 동작 제어부(1302)는 도 14d와 같이 물리적 어드레스에 기초하여 소팅된 어드레스 매핑 정보를 이용하여 디스크(12)의 소스 영역으로부터 데이터를 리드할 때, 50섹터단위로 리드한다.
따라서 데이터 리드 및 라이트 동작 제어부(1302)는 물리적 어드레스에 기초하여 소팅된 도 14d의 어드레스 매핑 정보를 50섹터단위로 재 정의한다. 이에 따라 도 14d의 어드레스 매핑 정보중 PBA 106에서 스플릿 매핑 정보(split mapping information)가 생성될 수 있다. 스플릿 매핑 정보는 리드 버퍼(620-1)의 사이즈에 따라 섹터를 나누면서 발생된 어드레스 매핑 정보로써, 스플릿 키(split key)로 언급될 수 있다. 따라서 스플릿 매핑 정보는 나눠진 섹터의 수에 기초한다. 생성된 스플릿 매핑 정보를 포함한 도 14a의 소스 영역에 대한 어드레스 매핑 정보는 도 16a에 도시된 바와 같다.
데이터 리드 및 라이트 동작 제어부(1302)는 도 16a의 어드레스 매핑 정보중 우선 (1601)의 어드레스 매핑 정보의 물리적 어드레스에 기초하여 디스크(12)의 소스 영역으로부터 데이터를 리드하여 리드 버퍼(620-1)에 임시적으로 저장하고, 리드 버퍼(620-1)에 임시적으로 저장된 데이터를 디스크(12)의 목적지 영역에 라이트한다. 이에 따라 디스크(12)의 목적지 영역은 도 16b와 같이 유효한 데이터가 라이트된다.
다음, 데이터 리드 및 라이트 동작 제어부(1302)는 도 16a의 어드레스 매핑 정보중 (1602)의 어드레스 매핑 정보의 물리적 어드레스에 기초하여 디스크(12)의 소스 영역으로부터 데이터를 리드하여 리드 버퍼(620-1)에 임시적으로 저장하고, 리드 버퍼(620-1)에 임시적으로 저장된 데이터를 디스크(12)의 목적지 영역에 라이트한다. 이에 따라 디스크(12)의 목적지 영역은 도 16c와 같이 유효한 데이터가 라이트된다. 도 16c에 5로 표시된 섹터가 도 16a의 어드레스 매핑 정보중 스플릿 매핑 정보(LBA 30, Scts 12, PBA 114)에 대응되는 섹터이다.
도 16c와 같은 목적지 영역에 대한 어드레스 매핑 정보는 도 16d와 같이 정의된다. 도 16d에서 5로 표기된 어드레스 매핑 정보(LBA 30, Scts 12, PBA 50)는 도 16a의 스플릿 매핑 정보에 의한 것이다. 따라서 도 16d의 어드레스 매핑 정보에서 5로 표기된 어드레스 매핑 정보(LBA 30, Scts 12, PBA 50)는 이전의 어드레스 매핑 정보(LBA 22, Scts 8, PBA 42)와 논리적 어드레스가 연속되므로 매핑 정보간에 머지가 수행된다. 따라서 데이터 리드 및 라이트 동작 제어부(1302)는 도 16c와 같이 유효한 데이터가 라이트된 목적지 영역에 대한 어드레스 매핑 정보를 도 16e와 같이 재 정의할 수 있다.
소스 영역으로부터 리드된 데이터를 목적지 영역에 라이트하는 동작이 완료되면, 데이터 리드 및 라이트 동작 제어부(1302)에 의해 제어되어 라이트 상태 정보 업데이트부(1303)는 목적지 영역의 어드레스 매핑 정보가 도 16e와 같이 업데이트되고, 소스 영역의 어드레스 매핑 정보가 리셋되거나 클리어되거나 프리 영역의 어드레스 매핑 정보로 설정되도록 램(670)에 저장된 라이트 상태 정보(670-1)를 업데이트 한다.
소스 영역이 도 15a와 같고, 리드 버퍼(620-1)의 사이즈가 섹터 50인 경우에, 데이터 리드 및 라이트 동작 제어부(1302)는 도 15b와 같은 어드레스 매핑 정보를 리드 버퍼(620-1)의 사이즈에 따라 재 정의할 수 있다. 그러나, 도 15b의 어드레스 매핑 정보의 경우에, 어드레스 매핑 정보(LBA 82, Scts 7 PBA 106)에 따르는 섹터의 수까지 50섹터에 해당되므로, 도 16에서 언급된 스플릿 매핑 정보는 생성되지 않는다. 따라서, 도 15b의 어드레스 매핑 정보는 재정의 되지 않는다. 단, 사이즈가 50섹터인 리드 버퍼(620-1)를 이용하여 리드할 때, 도 15b에 도시된 어드레스 매핑 정보 LBA0부터 LBA 82까지에 대응되는 유효한 데이터를 리드하고, 리드된 데이터를 디스크(12)의 목적지 영역에 라이트한 후, 다시 도 15b의 어드레스 매핑 정보 LBA 101에 기초하여 디스크(12)의 소스 영역으로부터 데이터를 리드하고, 리드된 데이터를 리드 버퍼(620-1)에 임시적으로 저장한 뒤, 디스크(12)의 목적지 영역에 라이트하게 된다.
한편, 소스 영역이 도 17a와 같고, 리드 버퍼(620-1)의 사이즈가 섹터 100인 경우에, 데이터 리드 및 라이트 동작 제어부(1302)는 도 17b와 같은 어드레스 매핑 정보에 대해 스플릿 매핑 정보를 생성한다. 따라서 도 17b와 같은 어드레스 매핑 정보는 도 17c와 같이 재 정의된다.
재 정의된 도 17c의 어드레스 매핑 정보(LBA2 Scts 100 PBA 0)의 논리적 어드레스에 기초하여 데이터 리드 및 라이트 동작 제어부(1302)는 디스크(12)의 소스 영역으로부터 데이터를 리드하고, 리드된 데이터를 리드 버퍼(620-1)에 임시적으로 저장한다. 데이터 리드 및 라이트 동작 제어부(1302)는 리드 버퍼(620-1)에 임시적으로 저장된 데이터를 디스크(12)의 목적지 영역에 라이트한다. 이에 따라 디스크(12)의 목적지 영역은 도 17d와 같이 데이터가 라이트된다.
다음에 데이터 리드 및 라이트 동작 제어부(1302)는 도 17c의 어드레스 매핑 정보(LBA 102 Scts 4 PBA 100, LBA 120 Scts 12 PBA 128)의 논리적 어드레스에 기초하여 디스크(12)의 소스 영역으로부터 데이터를 리드하고, 리드된 데이터를 리드 버퍼(620-1)에 임시적으로 저장한 뒤, 리드 버퍼(620-1)에 저장된 데이터를 디스크(12)의 목적지 영역에 라이트한다. 이에 따라 디스크(12)의 목적지 영역은 도 17d에 데이터가 라이트 된 마지막 섹터의 다음 섹터부터 데이터가 라이트되어 도 17e와 같이 데이터가 라이트 된다. 도 17e에서 1로 표기된 섹터는 도 17c의 스플릿 매핑 정보에 대응되는 섹터임을 나타내기 위한 것이다.
도 17e와 같은 목적지 영역의 어드레스 매핑 정보는 도 17f와 같이 정의된다. 그러나, 도 17f의 어드레스 매핑 정보 LBA2와 LBA102는 연속되는 논리적 어드레스를 가지므로, 어드레스 매핑 정보간에 머지가 수행된다. 따라서 도 17f의 어드레스 매핑 정보는 도 17g와 같이 재 정의된다. 라이트 상태 정보 업데이트부(1303)는 목적지 영역의 어드레스 매핑 정보가 도 17g와 같이 정의되고, 소스 영역의 어드레스 매핑 정보는 리셋되거나 클리어 되거나 프리 영역에 대응되는 어드레스 매핑 정보로 정의되도록 램(670)의 라이트 상태 정보(670-1)를 업데이트한다.
도 18은 본 발명의 바람직한 실시 예에 따른 저장 장치(100a, 100b, 600a, 600b)에서의 프로세서(121, 630)의 또 다른 구성 예이다. 도 18 역시 프로세서(630)에서 수행되는 예를 설명하기로 한다. 그러나 도 1에 도시된 프로세서(121) 역시 하기와 같은 동작을 수행할 수 있다.
도 18을 참조하면, 프로세서(630)는 아이들 상태 판단부(1801), 라이트 영역 체크부(1802), 머지 동작 호출부(1803), 프리 큐(1010), 로케이션 큐(1020), 및 머지 큐(1030). 머지 동작 선택부(1301), 데이터 리드 및 라이트 동작 제어부(1302), 및 라이트 상태 정보 업데이트부(1303)를 포함하나 이로 제한되지 않는다. 예를 들어, 도 18에 도시된 아이들 상태 판단부(1801), 라이트 영역 체크부(1802), 및 머지 동작 호출부(1803)는 하나의 구성요소로 구성될 수 있다.
아이들 상태 판단부(1801)는 저장 장치(600a)의 동작 상태가 아이들 상태인지를 판단한다. 본 실시 예에서, 아이들 상태 판단부(1801)는 호스트 인터페이스부(680)로부터 커맨드가 수신되는지를 체크하고, 커맨드가 수신되지 않으면, 저장 장치(600a)의 동작 상태를 아이들 상태로 판단한다. 그러나, 저장 장치(600a)의 동작 상태가 아이들 상태인지를 판단하는 것은 상술한 커맨드 수신 여부를 판단하는 것으로 제한되지 않는다. 아이들 상태 판단부(1801)는 저장 장치(600a)의 동작 상태가 아이들 상태로 판단되면, 아이들 상태를 나타내는 신호를 출력한다.
라이트 영역 체크부(1802)는 호스트 인터페이스부(680)를 통해 라이트 커맨드가 수신되면, 라이트 커맨드에 포함되어 있는 LBA 및 데이터가 라이트될 섹터의 수, 얼로케이션 큐(1020)에 저장된 정보, 및 램(670)에서 리드된 라이트 상태 정보(670-1)에 기초하여 라이트할 영역이 부족한지를 체크할 수 있다. 라이트할 영역이 부족한지를 체크하는 것은 후술할 도 25 및 도 26에서 상세하게 설명하기로 한다. 라이트 할 영역이 부족한지를 체크하는 것은 라이트 할 영역이 없는 것을 체크하는 것을 포함하는 것으로 해석될 수 있다.
상술한 체크결과, 라이트할 영역이 부족한 것으로 판단되면, 라이트 영역 체크부(1802)는 라이트할 영역이 부족한 것을 나타내는 신호를 출력한다.
머지 동작 호출부(1803)는 아이들 상태 검출부(1801)로부터 아이들 상태를 나타내는 신호가 출력되거나 라이트 영역 체크부(1802)로부터 라이트할 영역이 부족한 것을 나타내는 신호가 출력되면, 머지 동작을 호출(call)하기 위한 머지 요구 신호를 생성한다.
머지 동작 호출부(1803)에서 머지 요구 신호가 생성되면, 머지 동작 선택부(1301)는 머지 큐(1030)에 저장된 정보에 기초하여 머지할 소스 영역을 선택하고, 선택된 소스 영역의 식별 정보에 기초하여 램(670)에 저장된 라이트 상태 정보(670-1)중 선택된 소스 영역의 라이트 상태 정보와 램(670)에 저장된 임계값을 리드하여 도 13에서 설명한 바와 같이 머지 동작을 선택한다. 머지 동작 선택부(1301)는 선택된 머지 동작에 대한 정보를 데이터 리드 및 라이트 동작 제어부(1302)로 전송한다.
머지 동작 선택부(1301)로부터 선택된 머지 동작에 대한 정보가 수신되면, 데이터 리드 및 라이트 동작 제어부(1302)는 머지 큐(1030)와 프리 큐(1010)에 저장된 정보에 기초하여 머지할 소스 영역과 목적지 영역을 각각 선택하고, 선택된 소스 영역과 목적지 영역의 식별 정보에 기초하여 램(670)의 라이트 상태 정보(670-1)로부터 소스 영역과 목적지 영역의 라이트 상태 정보를 각각 리드한다. 데이터 리드 및 라이트 동작 제어부(1302)는 리드된 라이트 상태 정보를 이용하여 도 13에서 설명한 바와 같이 디스크(12)의 소스 영역으로부터 데이터를 리드하고, 리드된 데이터를 디스크(12)의 목적지 영역에 라이트한다.
디스크(12)의 소스 영역으로부터 리드된 데이터를 디스크(12)의 목적지 영역에 라이트하는 동작이 완료되면, 데이터 리드 및 라이트 동작 제어부(1302)는 머지 큐(1030), 얼로케이션 큐(1020), 및 프리 큐(1010)에 저장된 정보를 도 12에서 설명한 바와 같이 업데이트하고, 라이트 상태 정보 업데이트부(1303)로 소스 영역과 목적지 영역의 라이트 상태 정보 업데이트를 요구한다. 이에 따라 라이트 상태 정보 업데이트부(1303)는 도 13에서 설명한 바와 같이 램(670)에 저장된 라이트 상태 정보(670-1)에 포함된 소스 영역과 목적지 영역의 라이트 상태 정보를 업데이트 한다.
램(122, 670)에 로딩된 프로그램 코드 및 정보들을 이용하여 프로세서(121, 630)에서 도 19-23, 도 27-29 내지 도 31의 흐름도에 따른 저장 매체에 라이트된 데이터 머지 방법과 도 24 및 도 25의 흐름도에 따른 저장 매체에 대한 라이트 동작 제어 방법을 실행시키는 동작에 대하여 설명하기로 한다. 아래에서는 설명의 편의를 위하여 도 6a 및 도 6b에 도시된 프로세서(670)에 의해 수행되는 예를 설명하기로 하나 도 1a 및 도 1b에 도시된 프로세서(121)에 의해서도 아래와 같은 동작이 수행될 수 있다.
도 19는 본 발명의 바람직한 일 실시 예에 따른 저장 매체에 라이트 된 데이터 머지 방법의 동작 흐름도의 일 예이다.
프로세서(630)는 램(670)에 저장된 라이트 상태 정보(670-1)중에서 디스크(12)의 소스 영역(source area)에 대한 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작(merge operation)과 논리적 어드레스 기반 머지 동작중 하나를 선택한다(S1901).
도 20은 도 19의 머지 동작 선택 동작에 대한 동작 흐름도의 일 예로써, 어드레스 매핑 정보의 수(A)에 기초한 예이다.
어드레스 매핑 정보의 수(A)는 소스 영역의 물리적 어드레스와 소스 영역에 데이터를 라이트할 때 수신된 논리적 어드레스를 매핑한 어드레스 매핑 정보의 수로써, 도 14a의 경우에 7개(A=7)이고, 도 15a의 경우에 6개(A=6)이다. TH1은 어드레스 매핑 정보의 수와 비교할 수 있는 임계값으로써, 도 13 내지 도 17에서 언급된 어드레스 매핑 정보의 수(A)와 비교되는 임계값이다. 따라서, 어드레스 매핑 정보의 수(A)는 램(670)의 라이트 상태 정보(670-1)로부터 리드된 소스 영역의 라이트 상태 정보로부터 검출되고, 임계값(TH1)은 램(670)로부터 리드된다.
프로세서(630)는 소스 영역의 어드레스 매핑 정보의 수(A)와 임계값(TH1)을 비교한다(S2001). 비교결과, 어드레스 매핑 정보의 수(A)가 임계값(TH1)보다 크면, 프로세서(630)는 소스 영역에 대해 물리적 어드레스 기반 머지 동작을 선택한다(S2002).
그러나 단계 S2001에서 비교한 결과, 어드레스 매핑 정보의 수(A)가 임계값(TH1) 보다 크지 않으면, 프로세서(630)는 소스 영역에 대해 논리적 어드레스 기반 머지 동작을 선택한다(S2003).
도 21은 도 19의 머지 동작 선택 동작에 대한 동작 흐름도의 다른 예로써, 어드레스 매핑 정보의 수(A)와 유효한 데이터가 라이트 된 섹터의 수(SN)를 어드레스 매핑 정보의 수(A)로 나눈 값(SN/A=B)에 기초한 예이다.
소스 영역의 어드레스 매핑 정보의 수(A)가 제 1 임계값(TH1)보다 크거나 소스 영역에 유효한 데이터가 라이트 된 섹터의 수(SN)를 어드레스 매핑 정보의 수(A)로 나눈 값(B)이 제 2 임계값(TH2)보다 크면, 프로세서(630)는 물리적 어드레스 기반 머지 동작을 선택한다(S2101, S2102, S2103). 제 1 임계값(TH1)과 제 2 임계값(TH2)은 도 13 내지 도 17에서 언급되는 제 1 임계값 및 제 2 임계값과 같다.
소스 영역의 어드레스 매핑 정보의 수(A)가 제 1 임계값(TH1)보다 크지 않고, 상술한 나눈 값(B)이 제 2 임계값(TH2)보다 크지 않으면, 프로세서(630)는 논리적 어드레스 기반 머지 동작을 선택한다(S2101, S2102, S2104).
도 22는 도 19의 머지 동작 선택 동작에 대한 동작 흐름도의 또 다른 예로써, 유효한 데이터가 라이트된 섹터의 수(SN)를 어드레스 매핑 정보의 수(A)로 나눈 값(SN/A=B)에 기초한 예이다.
상술한 나눈 값(B)이 임계값(TH2)보다 크면, 프로세서(630)는 물리적 어드레스 기반 머지 동작을 선택한다(S2201, S2202).
그러나 상술한 나눈 값(B)이 임계값(TH2)보다 크지 않으면, 프로세서(630)는 논리적 어드레스 기반 머지 동작을 선택한다(S2201, S2203).
다시 도 19를 참조하면, 프로세서(630)는 단계 S1901에서 선택된 머지 동작에 따라 디스크(12)의 소스 영역으로부터 데이터를 리드한다(S1902). 즉 선택된 머지 동작이 물리적 어드레스 기반 머지 동작이면, 디스크(12)의 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스를 이용하여 소스 영역으로부터 데이터를 리드한다. 반면에 선택된 머지 동작이 논리적 어드레스 기반 머지 동작이면, 디스크(12)의 소스 영역의 어드레스 매핑 정보에 포함된 논리적 어드레스를 이용하여 소스 영역으로부터 데이터를 리드한다. 이를 위해 프로세서(630)는 R/W채널(620)을 비롯한 저장 장치(600a, 600b)내의 리드 시 필요한 구성 요소를 도 6a, 도 6b, 도 13, 및 도 18에서 설명한 바와 같이 제어한다.
즉, 선택된 머지 동작이 물리적 어드레스 기반 머지 동작이면, 프로세서(630)는 디스크(12)의 소스 영역의 어드레스 매핑 정보를 물리적 어드레스에 기초하여 소팅하고, 소팅된 어드레스 매핑 정보에 포함된 물리적 어드레스를 이용하여 도 14 및 16에서 설명한 바와 같이 디스크(12)의 소스 영역으로부터 데이터를 리드한다. 이 때, 리드 버퍼(620-1)의 사이즈에 따라 도 16에서 설명한 바와 같이 스플릿 매핑 정보가 생성될 수 있다. 선택된 머지 동작이 논리적 어드레스 기반 머지 동작이면, 프로세서(630)는 디스크(12)의 소스 영역에 대한 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 도 15 및 도 17에서 설명한 바와 같이 소스 영역으로부터 데이터를 리드한다. 이 때, 리드 버퍼(620-1)의 사이즈에 따라 도 17에서 설명한 바와 같이 스플릿 매핑 정보가 생성될 수 있다.
리드된 데이터는 디스크(12)의 목적지 영역의 첫번째 섹터에 대응되는 물리적 위치부터 순차적으로 라이트되도록, 프로세서(630)는 R/W채널(620)을 비롯한 저장 장치(600a. 600b)내의 라이트시 필요한 구성 요소를 도 6a, 도 6b, 도 13, 및 도 18에서 설명한 바와 같이 제어한다(S1903).
도 19를 참조하면, 단계 S1903에서 수행되는 소스 영역으로부터 리드된 데이터가 목적지 영역에 라이트되는 동작이 완료되면(S1904), 프로세서(630)는 램(670)에 저장된 라이트 상태 정보(670-1)중 소스 영역의 라이트 상태 정보와 목적지 영역의 라이트 상태 정보를 업데이트한다(S1905).
도 19에 도시된 단계 S1903 내지 단계 1905는 단계 1903에 포함되도록 정의될 수 있다. 즉, 소스 영역에서 리드된 데이터를 목적지 영역으로 라이트하면서 램(670)의 라이트 상태 정보(670-1)중 소스 영역과 목적지 영역의 라이트 상태 정보를 업데이트할 수 있다.
도 19에 도시된 바와 같이 머지 동작이 수행된 후, 소스 영역은 임의의 시점에 프리 영역(또는 프리 밴드)으로 설정될 수 있다. 임의 시점은 일반적으로 디스크(12)에 대한 프리 영역이 필요한 시점이나 머지 동작이 완료된 시점이 될 수 있으나, 이로 제한되지 않는다.
도 23은 본 발명의 바람직한 실시 예에 따른 저장 매체에 라이트 된 데이터 머지 방법에 대한 동작 흐름도의 다른 예로서, 저장 장치(600a)가 아이들 상태일 때, 도 19에 도시된 바와 같이 데이터 머지 방법이 수행되는 예이다.
프로세서(630)에 의해 저장 장치(600a)의 동작 상태가 아이들 상태인지 판단한다(S2301). 저장 장치(600)가 아이들 상태인지 판단하는 것은 도 18의 아이들 상태 판단부(1801)에서 설명한 바와 같은 방식으로 수행될 수 있다.
저장 장치(600a)의 동작 상태가 아이들 상태로 판단되면, 프로세서(630)는 단계 S2302 내지 단계 S2306에서 상술한 도 19의 단계 S1901 내지 단계 S1905에서 설명한 바와 같은 동작을 수행한다.
그러나, 단계 S2301에서 저장 장치(600a)가 아이들 상태가 아니면, 프로세서(630)는 단계 S2302 내지 단계 S2306에 따른 머지 동작을 수행하지 않고 작업을 종료할 수 있다.
도 24는 본 발명의 바람직한 다른 실시 예에 따른 저장 매체에 라이트 동작 제어 방법에 대한 동작 흐름도로써, 호스트 기기(110)로부터 라이트 커맨드가 수신될 때, 저장 장치(600a)가 디스크(12)에 라이트 된 데이터의 머지를 수행할 수 있는 라이트 동작 제어 방법의 동작 흐름도의 예이다. 라이트 커맨드 수신시 이루어지는 데이터 머지는 강제 머지(Force Merge)로 언급될 수 있다.
호스트 기기(110)로부터 라이트 커맨드가 수신되면, 프로세서(630)는 라이트 가능한 영역이 부족한지를 판단한다(S2401). 라이트 가능한 영역이 부족한지는 수신된 라이트 커맨드에 따라 라이트 될 데이터의 섹터 수와 현재 영역의 남은 섹터 수 및 프리 영역의 수에 기초하여 수행될 수 있다.
도 25는 도 24에 도시된 라이트 가능한 영역이 부족한지를 판단하는 동작의 상세한 동작 흐름도의 예이다.
도 25를 참조하면, 프로세서(630)는 현재 영역에 라이트 가능한 영역이 부족한지를 판단한다(S2501). 도 26은 현재 영역에 라이트 가능한 영역이 부족한 예를 설명하기 위한 도면이다.
도 26을 참조하면, 현재 영역은 현재 수신된 라이트 커맨드에 포함된 논리적 블록 어드레스에 대응되는 논리적 밴드(도 26의 경우에 논리적 밴드 0)에 할당된 디스크(12)의 물리적 밴드중에서 현재 사용중인 물리적 밴드가 된다. 현재 사용중인 물리적 밴드는 얼로케이션 큐(1020)에 할당된 정보에 기초하여 알 수 있다.
도 26의 경우에, 현재 수신된 라이트 커맨드의 논리적 블록 어드레스가 10이고, 수신된 LBA와 함께 수신된 섹터의 수에 대한 정보가 20일 때, 현재 영역에 라이트 가능한 섹터의 수가 10개이므로, 프로세서(630)는 현재 영역에 라이트 가능한 영역이 부족한 것으로 판단한다.
수신된 라이트 커맨드의 LBA에 기초한 섹터의 수는 수신된 라이트 커맨드에 기초하여 검출될 수 있다. 물리적 밴드 2에 라이트 가능한 섹터 수는 라이트 상태 정보(670-1)로부터 리드된 물리적 밴드 2의 라이트 상태 정보에 기초하여 검출될 수 있다. 예를 들어 물리적 밴드 2의 총 섹터 수에서 물리적 밴드 2의 마지막 액세스된 물리적 블록 어드레스(last accessed PBA)를 빼면, 물리적 밴드 2에서 사용 가능한 섹터 수를 알 수 있다. 상술한 연산은 프로세서(630)에서 수행될 수 있다.
프로세서(630)는 현재 영역에서 라이트 가능한 영역이 부족한 것으로 판단되면, 프리 영역의 수가 임계값(TH3)보다 큰지를 판단한다(S2503). 프리 영역의 수는 프로세서(630)의 프리 큐(1010)에 저장된 영역의 수에 기초하여 판단할 수 있다. 프리 영역은 도 7에 도시된 유니트 단위로 관리될 수 있다. 임계값(TH3)은 1회 라이트 커맨드가 수신될 때, 이용될 수 있는 최대 밴드 수에 기초하여 사전에 디스크(12)의 메인터넌스 실린더 영역 또는 롬(660)에 저장되었다가 프로세서(630)에 의해 램(670)에 로딩되어 이용될 수 있다. 예를 들어 임계값(TH3)은 3으로 설정될 수 있다.
프리 영역의 수가 임계값(TH3)보다 크면, 프로세서(630)는 수신된 라이트 커맨드에 대해 라이트할 수 있는 영역이 부족하지 않는 것으로 판단할 수 있다. 즉, 프로세서(630)는 수신된 라이트 커맨드에 대해 라이트 할 수 있는 영역이 있는 것으로 판단할 수 있다.
현재 영역에 라이트 가능한 영역이 부족하지 않거나 현재 영역에 라이트 가능한 영역은 부족하나 프리 영역의 수가 충분하면, 프로세서(630)는 단계 S2407로 진행된다(S2502). 그러나, 현재 영역에 라이트 가능한 영역이 부족하거나 프리 영역의 수가 임계값(TH3)보다 크지 않으면, 프로세서(630)는 라이트 가능한 영역이 부족한 것으로 판단하여 단계 S2402로 진행한다(S2504).
따라서 프로세서(630)는 도 19의 단계 S1901 내지 단계 S1902에 상응하는 동작을 도 24의 단계 S2402 내지 단계 S2403에서 수행하여 디스크(12)의 소스 영역으로부터 데이터를 리드한다. 다음, 프로세서(630)는 소스 영역에서 리드된 데이터를 디스크(12)의 목적지 영역에 라이트하는 머지 동작을 수행하면서, 수신된 라이트 커맨드에 따른 라이트 동작을 수행한다(S2404).
이 때, 수신된 라이트 커맨드에 따른 라이트 동작은 본 발명에 따른 머지 동작에 의해 라이트 동작이 완료된 목적지 영역의 마지막 액세스된 PBA의 다음 PBA를 갖는 섹터부터 라이트하게 된다. 목적지 영역에 사용 가능한 모든 섹터에 데이터가 라이트되어 추가적으로 라이트 가능한 영역이 필요할 경우에, 프로세서(630)는 프리 큐(1010)에 저장된 정보에 기초하여 프리 영역을 선택하고, 선택된 프리 영역에 연속적으로 데이터를 라이트할 수 있다.
단계 S2404에서의 라이트 동작이 완료된 것으로 판단되면, 프로세서(630)는 소스 영역과 목적지 영역의 라이트 상태 정보를 업데이트한다(S2405, S2406).
한편, 도 24의 단계 S2401에서 라이트 가능한 영역이 부족하지 않은 것으로 판단되면, 프로세서(630)는 현재 영역의 라이트 가능한 섹터부터 수신된 라이트 커맨드에 따른 데이터를 라이트하는 동작을 수행한다(S2407).
도 27은 본 발명의 바람직한 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법의 동작 흐름도의 또 다른 예로써, 도 18에 도시된 바와 같이 머지 큐(1030)와 프리 큐(1010)를 이용하는 동작을 포함한 예이다.
도 27을 참조하면, 프로세서(630)는 머지 큐(1030)에 등록된 머지 대기 영역에 대한 정보에 기초하여 머지할 소스 영역을 선택한다(S2701). 소스 영역은 머지 큐(1030)에 등록된 영역 중 무효한 섹터의 수(sector count)가 가장 높은 영역이 선택될 수 있으나, 머지 큐(1030)에 등록된 순서로 선택될 수 있다.
단계 S2702에서, 프로세서(630)는 도 19의 단계 S1901과 같이 라이트 상태 정보(670-1)로부터 리드된 소스 영역의 라이트 상태 정보에 기초하여 머지 동작을 선택한다. 그리고 프로세서(630)는 프리 큐(1010)에 등록된 정보에 기초하여 목적지 영역을 선택한다(S2703). 프리 큐(1010)에 등록된 정보에 기초한 목적지 영역 선택은 프리 큐(1010)에 등록된 순서로 수행되거나 각 영역(또는 밴드)별로 할당된 식별 번호에 기초하여 선택될 수 있다.
프로세서(630)는 도 19의 단계 S1902 및 단계 S1903에 대응되는 단계 S2704 및 단계 S2705를 수행하여 디스크(12)의 소스 영역으로부터 리드된 데이터를 디스크(12)의 목적지 영역에 라이트 한다.
머지 동작에 따른 디스크(12)의 목적지 영역에 대한 라이트 동작이 완료되면(S2706), 프로세서(630)는 머지 큐(1030)에서 소스 영역에 대한 정보를 삭제한다(S2707).
프로세서(630)는 디스크(12)가 적어도 하나의 머지할 소스 영역과 복수의 프리 영역을 갖도록 프리 큐(1010), 얼로케이션 큐(1020), 및 머지 큐(1030)에 저장되는 정보를 관리할 수 있다. 상기 정보 관리는 도 7에 도시된 유니트 단위로 수행될 수 있으나 상기 정보 관리는 디스크(12)단위로 수행될 수 있다.
도 28은 본 발명의 바람직한 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법의 동작 흐름도의 또 다른 예로써, 도 6에 도시된 디스크(12)에 라이트 된 데이터 머지 방법의 상세한 동작 흐름도이다.
프로세서(630)는 도 18에 도시된 아이들 상태 판단부(1801), 라이트 영역 체크부(1802), 및 머지 동작 호출부(1803)에 대응되는 기능 수행에 따라 머지 요구 신호가 생성되면, 램에 저장된 라이트 상태 정보(670-1)로부터 리드된 디스크(12)의 머지 될 소스 영역에 대한 라이트 상태 정보에 기초하여 머지 동작을 선택한다(S2801). 머지 동작 선택은 상술한 도 13 및 도 18의 머지 동작 선택부(1301)에서 설명한 바와 같이 수행될 수 있다.
머지 동작이 선택되면, 프로세서(630)는 소스 영역의 어드레스 매핑 정보에 포함되어 있는 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 자기 헤드(16)를 이동시키는 구동 신호를 생성한다(S2802).
즉, 선택된 머지 동작이 물리적 어드레스 기반 머지 동작이면, 프로세서(630)는 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스를 이용하여 자기 헤드(16)를 소스 영역으로 이동시키는 구동 신호를 생성한다. 반면에 선택된 머지 동작이 논리적 어드레스 기반 머지 동작이면, 프로세서(630)는 소스 영역의 어드레스 매핑 정보에 포함된 논리적 어드레스를 이용하여 자기 헤드(16)를 소스 영역으로 이동시키는 구동 신호를 생성한다.
구동 신호에 따라 자기 헤드(16)가 디스크(12)의 소스 영역의 물리적 위치로 이동되면, 자기 헤드(16)는 디스크(12)의 소스 영역에 대한 물리적 위치로부터 데이터를 리드한다(S2803). 리드된 데이터는 상술한 바와 같이 리드 버퍼(620-1)에 임시적으로 저장될 수 있다.
다음, 프로세서(630)는 머지 동작을 위해 선택된 디스크(12)의 목적지 영역에 대한 첫 번째 섹터의 물리적 위치로 자기 헤드(16)를 이동시키는 구동 신호를 생성한다(S2804). 이에 따라 자기 헤드(16)가 디스크(12)의 목적지 영역의 첫 번째 섹터의 물리적 위치로 이동되면, 프로세서(630)는 소스 영역으로부터 리드된 데이터를 디스크(12)의 목적지 영역의 첫 번째 섹터부터 순차적으로 라이트한다(S2805).
도 29는 본 발명의 바람직한 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법의 동작 흐름도의 또 다른 예로써, 논리적 블록 어드레스 기반 머지 방법의 동작 흐름도이다.
프로세서(630)는 디스크(12)의 소스 영역에 대한 어드레스 매핑 정보에 기초하여 논리적 블록 어드레스(LBA) 단위로 소스 영역에 라이트 된 유효한 데이터를 리드한다(S2901). 즉 도 15 및 도 17에서 설명한 바와 같이 어드레스 매핑 정보에 포함되어 있는 논리적 블록 어드레스 순으로 소스 영역에 라이트된 유효한 데이터를 리드한다.
프로세서(630)는 디스크(12)의 소스 영역으로부터 리드된 유효한 데이터를 도 15 및 도 17에서 설명한 바와 같이 디스크(12)의 목적지 영역의 첫 번째 섹터부터 순차적으로 라이트한다(S2902).
프로세서(630)는 소스 영역으로부터 리드된 데이터를 목적지 영역에 라이트 하는 동작이 완료되면(S2903), 소스 영역과 목적지 영역의 라이트 상태 정보를 업데이트한다(S2904).
도 30은 본 발명의 바람직한 실시 예에 따른 저장 매체에 대한 라이트 된 데이터 머지 방법을 수행할 수 있는 네트워크 시스템의 블록 구성 예이다.
도 30을 참조하면, 네트워크 시스템(3000)은 프로그램 제공 단말기(3001), 네트워크(3002), 호스트 PC(3003), 및 저장 장치(3004)를 포함한다.
프로그램 제공 단말기(3001)는 도 19-25 및 도 27-29에 도시된 본 발명의 바람직한 실시 예에 따라 저장 매체(124) 또는 디스크(12)에 라이트된 데이터 머지를 실행하는데 이용되는 머지용 프로그램 및 저장 매체(124) 또는 디스크(12)에 대한 데이터 라이트 동작을 실행하는데 이용되는 라이트 동작 프로그램이 저장되어 있다. 프로그램 제공 단말기(3001)는 네트워크(3002)를 통해 접속된 호스트 PC(3003)에서의 프로그램 전송 요청에 따라서 머지 프로그램 및 데이터 라이트 동작 프로그램을 호스트 PC(3003)로 전송하는 프로세스를 수행한다.
네트워크(3002)는 유선 또는 무선 통신망으로 구현될 수 있다. 네트워크(3002)가 인터넷과 같은 통신망으로 구현된 경우에, 프로그램 제공 단말기(3001)는 웹사이트(Website)가 될 수 있다.
호스트 PC(3003)는 네트워크(3002)를 통하여 프로그램 제공 단말기(3001)에 접속한 후, 본 발명의 바람직한 실시 예에 따른 저장 매체에 라이트 된 데이터 머지 처리용 프로그램 또는 저장 매체에 대한 라이트 동작 제어 방법용 프로그램을 다운로드 받는 동작을 수행할 수 있는 하드웨어 및 소프트웨어를 포함할 수 있다.
호스트 PC(3003)는 프로그램 제공 단말기(3001)로부터 다운로드 받은 프로그램에 의하여 도 19-25 및 도 27-29에 도시된 방법에 기초하여 본 발명의 바람직한 실시 예에 따른 머지 방법 및 라이트 동작 제어 방법을 저장 장치(3004)에서 실행시킬 수 있게 한다.
도 31은 도 30에 도시된 네트워크 시스템(3000)에 기초한 본 발명의 바람직한 다른 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법에 대한 동작 흐름도이다.
도 31을 참조하면, 프로그램 제공 단말기(3001)에 접속한 후에 호스트 PC(3003)는 저장 매체(124) 또는 디스크(12)에 라이트된 데이터 머지 처리용 프로그램을 요청하는 정보를 프로그램 제공 단말기(3001)로 전송한다(S3101, S3102).
프로그램 제공 단말기(3001)는 호스트 PC(3003)로 요청된 머지 처리용 프로그램을 전송함으로써, 호스트 PC(3003)는 머지 처리용 프로그램을 다운로드 한다(S3103).
호스트 PC(3003)는 다운로드된 머지 프로그램을 저장 장치(3004)에서 실행시키도록 처리한다(S3104). 저장 장치(3004)에서 머지 처리용 프로그램을 실행함으로써, 저장 매체(124) 또는 디스크(12)의 머지될 영역에 라이트된 유효한 데이터는 도 14 내지 도 17에서 설명한 바와 같이 저장 매체(124) 또는 디스크(12)의 프리 영역으로 이동된다.
저장 매체(124) 또는 디스크(12)의 머지될 영역에 라이트된 유효한 데이터가 저장 매체(124) 또는 디스크(12)의 프리 영역으로 모두 이동되면, 저장 장치(3104)는 저장 매체(124) 또는 디스크(12)의 소스 영역과 프리 영역의 어드레스 매핑 정보를 포함한 라이트 상태 정보를 업데이트 한다(S3105).
상술한 바와 같은 동작을 통하여 유선 또는 무선 네트워크를 통하여 저장 매체에 대한 머지 동작을 제어할 수 있다.
도 30의 네트워크 시스템(3000)에 기초하여 본 발명의 바람직한 실시 예에 따른 저장 매체에 대한 라이트 동작 제어 방법도 도 31과 같은 순서로 처리될 수 있다.
본 발명의 일 실시 예에 따른 저장 매체에 라이트된 데이터 머지 방법 및 저장 매체에 대한 라이트 동작 제어 방법을 수행하기 위한 프로그램은 컴퓨터로 읽을 수 있는 저장 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 저장 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 저장 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 저장매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (54)

  1. 저장 매체의 소스 영역(source area)에 대한 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작(merge operation)과 논리적 어드레스 기반 머지 동작 중 하나를 선택하는 단계;
    상기 선택된 머지 동작에 따라 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 소스 영역으로부터 데이터를 리드하는 단계; 및
    상기 리드된 데이터를 상기 저장 매체의 목적지 영역(destination area)에 라이트하는 단계를 포함하고,
    상기 라이트 상태 정보는 상기 소스 영역의 물리적 어드레스와 상기 소스 영역에 데이터를 라이트할 때 수신된 논리적 어드레스를 매핑한 어드레스 매핑 정보의 수를 포함하는 것을 특징으로 하는 저장 매체에 라이트 된 데이터 머지 방법.
  2. 제 1 항에 있어서, 상기 데이터 리드 단계는,
    상기 선택된 머지 동작이 상기 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보(address mapping information)에 포함된 물리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계; 및
    상기 선택된 머지 동작이 상기 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 상기 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계를 포함하는 저장 매체에 라이트 된 데이터 머지 방법.
  3. 제 1 항에 있어서, 상기 저장 매체에 라이트 된 데이터 머지 방법은, 상기 리드된 데이터를 상기 목적지 영역에 라이트한 후, 상기 소스 영역을 프리 영역으로 설정하는 단계를 더 포함하는 저장 매체에 라이트 된 데이터 머지 방법.
  4. 제 1 항에 있어서,
    상기 머지 동작 선택 단계는,
    상기 어드레스 매핑 정보의 수가 임계값 보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하는 단계; 및
    상기 어드레스 매핑 정보의 수가 상기 임계값 보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 단계를 포함하는 저장 매체에 라이트 된 데이터 머지 방법.
  5. 제 4 항에 있어서, 상기 임계값은 상기 소스 영역의 사이즈와 상기 소스 영역에 포함된 섹터의 수 중 적어도 하나에 따라 설정되는 것을 특징으로 하는 저장 매체에 라이트 된 데이터 머지 방법.
  6. 제 4 항에 있어서, 상기 데이터 리드 단계는,
    상기 선택된 머지 동작이 상기 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 상기 어드레스 매핑 정보에 포함된 물리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계; 및
    상기 선택된 머지 동작이 상기 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 상기 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계를 포함하는 저장 매체에 라이트 된 데이터 머지 방법.
  7. 제 1 항에 있어서, 상기 라이트 상태 정보는 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고,
    상기 머지 동작 선택 단계는,
    상기 어드레스 매핑 정보의 수가 제 1 임계값보다 크거나 상기 어드레스 매핑 정보의 수로 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 제 2 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하는 단계; 및
    상기 소스 영역에 대한 상기 어드레스 매핑 정보의 수가 상기 제 1 임계값 보다 크지 않고, 상기 나눈 값이 상기 제 2 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 단계를 포함하는 저장 매체에 라이트 된 데이터 머지 방법.
  8. 제 7 항에 있어서, 상기 제 1 임계값과 상기 제 2 임계값은 상기 소스 영역의 사이즈와 상기 소스 영역에 포함된 섹터의 수 중 적어도 하나에 따라 설정되는 것을 특징으로 하는 저장 매체에 라이트 된 데이터 머지 방법.
  9. 제 7 항에 있어서, 상기 데이터 리드 단계는,
    상기 선택된 머지 동작이 상기 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 상기 어드레스 매핑 정보에 포함된 물리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계; 및
    상기 선택된 머지 동작이 상기 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 상기 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계를 포함하는 저장 매체에 라이트 된 데이터 머지 방법.
  10. 제 1 항에 있어서, 상기 라이트 상태 정보는 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고,
    상기 머지 동작 선택 단계는,
    상기 어드레스 매핑 정보의 수로 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하는 단계; 및
    상기 나눈 값이 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 단계를 포함하는 저장 매체에 라이트 된 데이터 머지 방법.
  11. 제 10 항에 있어서, 상기 임계값은 상기 소스 영역의 사이즈와 상기 소스 영역에 포함된 섹터의 수 중 적어도 하나에 따라 설정되는 것을 특징으로 하는 저장 매체에 라이트 된 데이터 머지 방법.
  12. 제 10 항에 있어서, 상기 데이터 리드 단계는,
    상기 선택된 머지 동작이 상기 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 상기 어드레스 매핑 정보에 포함된 물리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계; 및
    상기 선택된 머지 동작이 상기 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 상기 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계를 포함하는 저장 매체에 라이트 된 데이터 머지 방법.
  13. 제 1 항에 있어서, 상기 저장 매체를 갖는 저장 장치가 아이들 상태일 때 또는 상기 저장 장치에서 라이트 커맨드를 수신시 상기 저장 매체에 라이트 가능한 영역이 부족하면, 상기 머지 방법이 수행되는 것을 특징으로 하는 저장 매체에 라이트 된 데이터 머지 방법.
  14. 제 1 항에 있어서, 상기 머지 방법은,
    상기 저장 매체를 갖는 저장 장치에 포함된 머지 큐(merge queue)에 등록된 정보에 기초하여 상기 소스 영역을 선택하는 단계; 및
    상기 저장 매체를 갖는 저장 장치에 포함된 프리 큐(free queue)에 등록된 정보에 기초하여 상기 목적지 영역을 선택하는 단계를 더 포함하는 저장 매체에 라이트 된 데이터 머지 방법.
  15. 제 1 항 내지 제 14 항 중 어느 한 항에 있어서, 상기 저장 매체는 이전 트랙의 일부 영역을 오버라이트하면서 한쪽 방향으로 순차적으로 데이터가 라이트되는 것을 특징으로 하는 저장 매체에 라이트 된 데이터 머지 방법.
  16. 삭제
  17. 디스크의 머지 될 소스 영역에 대한 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 소스 영역으로 자기 헤드를 이동시키는 구동 신호를 생성하는 단계;
    상기 구동 신호에 따라서 상기 자기 헤드가 이동된 상기 디스크의 상기 소스 영역의 물리적 위치로부터 데이터를 리드하는 단계;
    상기 디스크의 목적지 영역의 물리적인 위치로 상기 자기 헤드를 이동시키는 구동 신호를 생성하는 단계; 및
    상기 소스 영역으로부터 리드된 데이터를 상기 구동 신호에 따라 상기 자기 헤드가 이동된 상기 목적지 영역에 순차적으로 라이트 하는 단계를 포함하고,
    상기 라이트 상태 정보는 상기 소스 영역의 어드레스 매핑 정보의 수를 포함하고,
    상기 어드레스 매핑 정보는 상기 소스 영역의 물리적 어드레스와 상기 소스 영역에 데이터를 라이트할 때 수신된 논리적 어드레스를 매핑한 정보인 것을 특징으로 하는 디스크에 라이트 된 데이터 머지 방법.
  18. 삭제
  19. 제 17 항에 있어서, 상기 어드레스 매핑 정보의 수가 임계값보다 크면, 상기 선택된 머지 동작은 물리적 어드레스 기반 머지 동작이고, 상기 어드레스 매핑 정보의 수가 임계값보다 크지 않으면, 상기 선택된 머지 동작은 논리적 어드레스 기반 머지 동작인 것을 특징으로 하는 디스크에 라이트 된 데이터 머지 방법.
  20. 제 17 항에 있어서, 상기 라이트 상태 정보는 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고,
    상기 어드레스 매핑 정보의 수로 상기 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 임계값보다 크면, 상기 선택된 머지 동작은 물리적 어드레스 기반 머지 동작이고,
    상기 나눈 값이 상기 임계값보다 크지 않으면, 상기 선택된 머지 동작은 논리적 어드레스 기반 머지 동작인 것을 특징으로 하는 디스크에 라이트 된 데이터 머지 방법.
  21. 제 17 항에 있어서, 상기 라이트 상태 정보는 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고,
    상기 어드레스 매핑 정보의 수가 제 1 임계값 보다 크거나 상기 어드레스 매핑 정보의 수로 상기 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 제 2 임계값보다 크면, 상기 선택된 머지 동작은 물리적 어드레스 기반 머지 동작이고,
    상기 어드레스 매핑 정보의 수가 상기 제 1 임계값보다 크지 않고, 상기 나눈 값이 상기 제 2 임계값보다 크지 않으면, 상기 선택된 머지 동작은 논리적 어드레스 기반 머지 동작인 것을 특징으로 하는 디스크에 라이트 된 데이터 머지 방법.
  22. 제 17 항에 있어서, 상기 소스 영역으로 상기 자기 헤드를 이동시키는 구동 신호를 생성하는 단계는,
    상기 선택된 머지 동작이 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스를 이용하여 상기 자기 헤드를 이동시키는 구동신호를 생성하고,
    상기 선택된 머지 동작이 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보에 포함된 논리적 어드레스를 이용하여 상기 자기 헤드를 이동시키는 구동신호를 생성하는 것을 특징으로 하는 디스크에 라이트 된 데이터 머지 방법.
  23. 라이트 커맨드가 수신시, 저장 매체에 라이트 가능한 영역이 부족하면, 상기 저장 매체의 머지 될 소스 영역에 대한 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작과 논리적 어드레스 기반 머지 동작 중 하나를 선택하는 단계;
    상기 선택된 머지 동작에 따라 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 소스 영역으로부터 데이터를 리드하는 단계; 및
    상기 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 단계를 포함하고,
    상기 라이트 상태 정보는 어드레스 매핑 정보의 수를 포함하는 것을 특징으로 하는 저장 매체에 대한 라이트 동작 제어 방법.
  24. 제 23 항에 있어서, 상기 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 단계는 상기 라이트 커맨드에 따른 라이트 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 저장 매체에 대한 라이트 동작 제어 방법.
  25. 제 23 항에 있어서, 상기 데이터 리드 단계는,
    상기 선택된 머지 동작이 상기 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계; 및
    상기 선택된 머지 동작이 상기 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 상기 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 단계를 포함하는 저장 매체에 대한 라이트 동작 제어 방법.
  26. 제 25 항에 있어서,
    상기 머지 동작을 선택하는 단계는,
    상기 어드레스 매핑 정보의 수가 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하는 단계; 및
    상기 어드레스 매핑 정보의 수가 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 단계를 포함하는 저장 매체에 대한 라이트 동작 제어 방법.
  27. 제 26 항에 있어서, 상기 임계값은 상기 소스 영역의 사이즈와 상기 소스 영역에 포함된 섹터 수 중 적어도 하나에 따라 설정되는 것을 특징으로 하는 저장 매체에 대한 라이트 동작 제어 방법.
  28. 제 25 항에 있어서, 상기 라이트 상태 정보는 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고,
    상기 머지 동작을 선택하는 단계는,
    상기 어드레스 매핑 정보의 수가 제 1 임계값보다 크거나 상기 어드레스 매핑 정보의 수로 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 제 2 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하는 단계; 및
    상기 어드레스 매핑 정보의 수가 상기 제 1 임계값보다 크지 않고, 상기 나눈 값이 상기 제 2 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 단계를 포함하는 저장 매체에 대한 라이트 동작 제어 방법.
  29. 제 28 항에 있어서, 상기 제 1 임계값과 상기 제 2 임계값은 상기 소스 영역의 사이즈와 상기 소스 영역에 포함된 섹터의 수 중 적어도 하나에 따라 설정되는 것을 특징으로 하는 저장 매체에 대한 라이트 동작 제어 방법.
  30. 제 25 항에 있어서, 상기 라이트 상태 정보는 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고,
    상기 머지 동작을 선택하는 단계는,
    상기 어드레스 매핑 정보의 수로 상기 소스 영역에 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하는 단계; 및
    상기 나눈 값이 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 단계를 포함하는 저장 매체에 대한 라이트 동작 제어 방법.
  31. 제 30 항에 있어서, 상기 임계값은 상기 소스 영역의 사이즈와 상기 소스 영역에 포함된 섹터의 수 중 적어도 하나에 따라 설정되는 것을 특징으로 하는 저장 매체에 대한 라이트 동작 제어 방법.
  32. 제 23 항에 있어서, 상기 저장 매체에 대한 라이트 동작 제어 방법은,
    상기 저장 매체를 갖는 저장 장치에 포함된 머지 큐에 등록된 정보에 기초하여 상기 소스 영역을 선택하는 단계; 및
    상기 저장 장치에 포함된 프리 큐에 등록된 정보에 기초하여 상기 목적지 영역을 선택하는 단계를 더 포함하는 저장 매체에 대한 라이트 동작 제어 방법.
  33. 제 23 항 내지 제 32 항 중 어느 한 항에 있어서, 상기 저장 매체는 이전 트랙의 일부분을 오버라이트하면서 한쪽 방향으로 순차적으로 데이터가 라이트 되는 것을 특징으로 하는 저장 매체에 대한 라이트 동작 제어 방법.
  34. 데이터를 저장할 수 있는 저장 매체; 및
    상기 저장 매체의 머지 될 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중에서 하나의 어드레스를 이용하여 상기 소스 영역으로부터 데이터를 리드하고, 상기 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 프로세서를 포함하고,
    상기 프로세서는,
    상기 소스 영역에 대한 라이트 상태 정보에 기초하여 물리적 어드레스 기반 머지 동작과 논리적 어드레스 기반 머지 동작 중 하나를 선택하고, 상기 라이트 상태 정보는 상기 소스 영역의 어드레스 맵핑 정보의 수를 포함하는 것을 특징으로 하는 저장 장치.
  35. 제 34 항에 있어서, 상기 프로세서는,
    상기 라이트 상태 정보와 임계값에 기초하여 상기 머지 동작을 선택하는 머지 동작 선택부; 상기 선택된 머지 동작에 따라 상기 소스 영역으로부터 데이터를 리드하고, 상기 리드된 데이터를 상기 목적지 영역에 라이트하는 데이터 리드 및 라이트 동작 제어부; 및
    상기 목적지 영역에 대한 라이트 동작이 완료되면, 상기 소스 영역과 상기 목적지 영역에 대한 라이트 상태 정보를 업데이트 하는 라이트 상태 정보 업데이트부를 포함하는 저장 장치.
  36. 제 35 항에 있어서, 상기 데이터 리드 및 라이트 동작 제어부는,
    상기 선택된 머지 동작이 상기 물리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하고,
    상기 선택된 머지 동작이 상기 논리적 어드레스 기반 머지 동작이면, 상기 소스 영역의 어드레스 매핑 정보에 포함된 논리적 어드레스에 기초하여 상기 소스 영역에 대한 리드 동작을 제어하는 것을 특징으로 하는 저장 장치.
  37. 제 36 항에 있어서, 상기 임계값은 상기 소스 영역의 사이즈와 상기 소스 영역에 포함된 섹터의 수 중 적어도 하나에 따라 설정되고,
    상기 머지 동작 선택부는, 상기 소스 영역의 어드레스 매핑 정보의 수가 상기 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하고, 상기 소스 영역의 어드레스 매핑 정보의 수가 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 것을 특징으로 하는 저장 장치.
  38. 제 36 항에 있어서, 상기 라이트 상태 정보는 상기 소스 영역에서 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고, 상기 임계값은 제 1 임계값과 제 2 임계값을 포함하고, 상기 제 1 임계값과 상기 제 2 임계값은 상기 소스 영역의 사이즈와 상기 소스 영역의 섹터의 수 중 적어도 하나에 따라 설정되는 것을 특징으로 하고,
    상기 머지 동작 선택부는,
    상기 소스 영역의 어드레스 매핑 정보의 수가 상기 제 1 임계값보다 크거나, 상기 어드레스 매핑 정보의 수로 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 상기 제 2 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하고,
    상기 소스 영역의 어드레스 매핑 정보의 수가 상기 제 1 임계값보다 크고, 상기 나눈 값이 상기 제 2 임계값보다 크면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 것을 특징으로 하는 저장 장치.
  39. 제 36 항에 있어서, 상기 라이트 상태 정보는 상기 소스 영역에서 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고, 상기 임계값은 상기 소스 영역의 사이즈와 상기 소스 영역의 섹터의 수 중 적어도 하나에 따라 설정되는 것을 특징으로 하고,
    상기 머지 동작 선택부는 상기 소스 영역의 어드레스 매핑 정보의 수로 상기 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 상기 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하고, 상기 나눈 값이 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 것을 특징으로 하는 저장 장치.
  40. 제 35 항에 있어서, 상기 프로세서는,
    상기 저장 매체의 머지 대기 영역에 대한 정보가 등록된 머지 큐,
    상기 저장 매체의 프리 영역에 대한 정보가 등록된 프리 큐를 더 포함하고,
    상기 머지 동작 선택부로부터 상기 선택된 머지 동작 정보가 수신되면, 상기 데이터 리드 및 라이트 동작 제어부는 상기 머지 큐로부터 얻은 상기 머지 대기 영역의 식별 정보와 상기 프리 큐로부터 얻은 상기 프리 영역에 대한 식별 정보에 기초하여 상기 리드 동작 및 라이트 동작을 제어하는 것을 특징으로 하는 저장 장치.
  41. 제 35 항에 있어서, 상기 저장 장치는,
    커맨드 수신 여부에 따라 상기 저장 장치가 아이들 상태인지를 판단하는 아이들 상태 판단부;
    라이트 커맨드가 수신되면, 상기 저장 매체에 라이트 가능한 영역이 부족한지를 체크하는 라이트 영역 체크부; 및
    상기 아이들 상태 판단부와 상기 라이트 영역 체크부의 출력 신호에 기초하여 머지 동작을 호출하기 위한 머지 요구 신호를 상기 머지 동작 선택부로 제공하는 머지 동작 호출부를 더 포함하는 저장 장치.
  42. 제 34 항에 있어서, 상기 프로세서는
    커맨드를 수신하고, 상기 수신된 커맨드로부터 논리적 블록 어드레스를 추출하는 제 1 프로세서;
    상기 라이트 상태 정보에 기초하여 머지 동작을 선택하고, 선택된 머지 동작에 따라 상기 소스 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 소스 영역으로부터 데이터를 리드하고, 상기 리드된 데이터를 상기 목적지 영역에 라이트하도록 제어하는 제 2 프로세서; 및
    상기 라이트 상태 정보를 관리하고, 상기 제 2 프로세서에 의해 제어되어 상기 데이터를 리드 및 라이트하는 제 3 프로세서를 포함하는 것을 특징으로 하는 저장 장치.
  43. 제 42 항에 있어서, 상기 제 2 프로세서는 머지 큐와 프리 큐를 포함하고, 상기 머지 큐와 상기 프리 큐를 이용하여 상기 저장 매체의 머지 대기 영역와 프리 영역에 대한 정보를 관리하는 것을 특징으로 하는 저장 장치.
  44. 제 42 항에 있어서, 상기 제 1 프로세서, 상기 제 2 프로세서, 및 상기 제 3 프로세서는 상기 논리적 어드레스를 상기 저장 매체의 가상 어드레스로 변환하고, 상기 가상 어드레스를 상기 저장 매체의 물리적 어드레스로 변환하는 계층에 기초한 것을 특징으로 하는 저장 장치.
  45. 커맨드와 데이터를 출력하는 호스트 기기; 및
    상기 호스트 기기로부터 수신된 커맨드에 따라서 상기 호스트 기기로부터 수신된 데이터를 저장 매체에 라이트하거나 상기 저장 매체로부터 리드된 데이터를 상기 호스트 기기로 송신하는 저장 장치를 포함하고,
    상기 저장 장치는 상기 저장 매체의 머지 될 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스에 기초하여 상기 머지될 영역으로부터 데이터를 리드하여 상기 머지 될 영역에 라이트된 데이터를 머지하고, 그리고
    상기 저장 장치는 상기 머지될 영역의 라이트 상태 정보에 따라, 상기 물리적 어드레스에 기초하여 상기 머지 될 영역으로부터 데이터를 리드하는 물리적 어드레스 기반 머지 동작과 상기 논리적 어드레스에 기초하여 상기 머지 될 영역으로부터 데이터를 리드하는 논리적 어드레스 기반 머지 동작 중 하나를 선택하고,
    상기 라이트 상태 정보는 상기 머지 될 영역의 어드레스 매핑 정보의 수를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  46. 삭제
  47. 제 45 항에 있어서,
    상기 저장 장치는 상기 어드레스 매핑 정보의 수가 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하고,
    상기 어드레스 매핑 정보의 수가 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 것을 특징으로 하는 컴퓨터 시스템.
  48. 제 45 항에 있어서, 상기 라이트 상태 정보는 상기 머지될 영역의 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고,
    상기 저장 장치는 상기 어드레스 매핑 정보의 수로 상기 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하고,
    상기 나눈 값이 상기 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 것을 특징으로 하는 컴퓨터 시스템.
  49. 제 45 항에 있어서, 상기 라이트 상태 정보는 상기 머지될 영역의 유효한 데이터가 라이트 된 섹터의 수를 더 포함하고,
    상기 저장 장치는 상기 어드레스 매핑 정보의 수가 제 1 임계값보다 크거나 상기 어드레스 매핑 정보의 수로 상기 유효한 데이터가 라이트 된 섹터의 수를 나눈 값이 제 2 임계값보다 크면, 상기 물리적 어드레스 기반 머지 동작을 선택하고,
    상기 어드레스 매핑 정보의 수가 상기 제 1 임계값보다 크지 않고, 상기 나눈 값이 상기 제 2 임계값보다 크지 않으면, 상기 논리적 어드레스 기반 머지 동작을 선택하는 것을 특징으로 하는 컴퓨터 시스템.
  50. 제 45 항에 있어서, 상기 저장 장치는 상기 호스트 기기로부터 라이트 커맨드를 수신할 때 상기 저장 매체에 데이터를 라이트 할 수 있는 영역이 부족하거나 상기 저장 장치가 아이들 상태일 때, 상기 머지를 수행하는 것을 특징으로 하는 컴퓨터 시스템.
  51. 네트워크를 통해 저장 매체에 라이트 된 데이터에 대한 머지 처리용 프로그램을 다운로드 받는 단계; 및
    상기 머지 처리용 프로그램을 저장 장치에서 실행시키는 단계를 포함하고,
    상기 머지 처리용 프로그램은 상기 저장 장치에 포함된 저장 매체의 머지될 영역의 라이트 상태 정보에 기초하여 선택된 머지 동작에 따라 상기 머지 될 영역의 어드레스 매핑 정보에 포함된 물리적 어드레스와 논리적 어드레스 중 어느 한 어드레스를 이용하여 상기 머지 될 영역으로부터 데이터를 리드하고, 상기 리드된 데이터를 상기 저장 매체의 목적지 영역에 라이트하는 동작을 실행하고,
    상기 라이트 상태 정보는 상기 어드레스 매핑 정보의 수와 상기 머지 될 영역의 유효한 데이터가 라이트 된 섹터의 수를 포함하는 것을 특징으로 하는 저장 매체에 라이트 된 데이터 머지 방법.
  52. 삭제
  53. 제 1 항 내지 제 14 항 중 어느 한 항에 의한 저장 매체에 라이트 된 데이터 머지 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 저장 매체.
  54. 제 23 항 내지 제 32 항 중 어느 한 항에 의한 저장 매체에 대한 라이트 동작 제어 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 저장 매체.
KR1020110039712A 2011-04-27 2011-04-27 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체 KR101954995B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110039712A KR101954995B1 (ko) 2011-04-27 2011-04-27 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체
US13/458,977 US9009433B2 (en) 2011-04-27 2012-04-27 Method and apparatus for relocating data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110039712A KR101954995B1 (ko) 2011-04-27 2011-04-27 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체

Publications (2)

Publication Number Publication Date
KR20120121739A KR20120121739A (ko) 2012-11-06
KR101954995B1 true KR101954995B1 (ko) 2019-05-31

Family

ID=47508144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110039712A KR101954995B1 (ko) 2011-04-27 2011-04-27 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체

Country Status (2)

Country Link
US (1) US9009433B2 (ko)
KR (1) KR101954995B1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US9268499B1 (en) 2010-08-13 2016-02-23 Western Digital Technologies, Inc. Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
TWI489272B (zh) * 2012-04-03 2015-06-21 Phison Electronics Corp 保護資料的方法、記憶體控制器與記憶體儲存裝置
KR102050732B1 (ko) * 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
US8959281B1 (en) * 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US9293153B2 (en) 2013-10-18 2016-03-22 Seagate Technology Llc Method and system for preserving data of a storage device
US8917471B1 (en) 2013-10-29 2014-12-23 Western Digital Technologies, Inc. Power management for data storage device
DE102013022051B4 (de) 2013-12-23 2022-07-21 inodyn NewMedia GmbH Software und Elektronik Verfahren und Vorrichtung zum Austausch defekter Sektoren bei SMR-Festplatten
KR102248915B1 (ko) * 2014-03-26 2021-05-07 삼성전자주식회사 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법
JP6119682B2 (ja) * 2014-06-27 2017-04-26 株式会社デンソー 電子制御装置
US10380026B2 (en) * 2014-09-04 2019-08-13 Sandisk Technologies Llc Generalized storage virtualization interface
US9530468B2 (en) * 2014-09-26 2016-12-27 Intel Corporation Method, apparatus and system to manage implicit pre-charge command signaling
US9286947B1 (en) 2014-10-07 2016-03-15 Seagate Technology Llc Method and system for preserving data of a storage device
US9767843B2 (en) * 2016-02-05 2017-09-19 Seagate Technology Llc Fragmented data storage bands
CN108984550B (zh) * 2017-05-31 2022-08-26 西门子公司 确定数据的信号规则以对数据标注的方法、装置和系统
US10424328B1 (en) 2018-04-25 2019-09-24 Seagate Technology Llc Reduced latency I/O in multi-actuator device
US10720200B2 (en) * 2018-04-25 2020-07-21 Seagate Technology Llc Reduced latency I/O in multi-actuator device
US10956068B2 (en) * 2018-05-11 2021-03-23 Seagate Technology Llc Time-stamped data in a data storage device
CN110149803B (zh) * 2018-08-27 2023-06-09 深圳市锐明技术股份有限公司 数据存储方法、系统及终端设备
JP2021015384A (ja) * 2019-07-10 2021-02-12 富士通株式会社 情報処理回路、情報処理装置、情報処理方法及び情報処理プログラム
TWI741870B (zh) * 2020-11-10 2021-10-01 群聯電子股份有限公司 資料整併方法、記憶體儲存裝置及記憶體控制電路單元
CN116578246B (zh) * 2023-07-05 2023-09-29 合肥康芯威存储技术有限公司 一种存储设备及其控制方法
CN116880779B (zh) * 2023-09-07 2023-12-05 北京志凌海纳科技有限公司 一种磁盘卸载迁移方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US20110072230A1 (en) * 2009-09-23 2011-03-24 International Business Machines Corporation On demand storage group management with recapture
US20110078393A1 (en) * 2009-09-29 2011-03-31 Silicon Motion, Inc. Memory device and data access method

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057039A (ja) * 1998-08-03 2000-02-25 Canon Inc アクセス制御方法及び装置及びファイルシステム及び情報処理装置
US7996645B2 (en) * 2003-09-26 2011-08-09 Hitachi Global Storage Technologies Netherlands B.V. Log-structured file system for disk drives with shingled writing
JP2007048335A (ja) 2005-08-05 2007-02-22 Hitachi Global Storage Technologies Netherlands Bv ディスク装置
US8310786B2 (en) * 2009-09-09 2012-11-13 Hitachi Global Storage Technologies Netherlands B.V. Asymmetric writer for shingled magnetic recording
JP2011086321A (ja) 2009-10-13 2011-04-28 Yamamori Kazuki 垂直磁気記録ヘッド
US8443167B1 (en) * 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
JP4869418B2 (ja) 2010-03-12 2012-02-08 株式会社東芝 磁気記録装置および磁気記録方法
JP5485770B2 (ja) 2010-03-31 2014-05-07 ダブリュディ・メディア・シンガポール・プライベートリミテッド 磁気ディスク装置
US7982994B1 (en) 2010-05-12 2011-07-19 Seagate Technology, Llc Multi-level recording on shingled coherent magnetic media
US9026716B2 (en) * 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
JP5560100B2 (ja) 2010-05-31 2014-07-23 株式会社日立製作所 シングル記録方式に用いる磁気ヘッドおよび磁気ディスクドライブ
US8179627B2 (en) 2010-06-10 2012-05-15 Seagate Technology International Floating guard band for shingle magnetic recording
JP2012003805A (ja) 2010-06-16 2012-01-05 Wd Media (Singapore) Pte. Ltd 垂直磁気記録媒体及び磁気ディスク装置
JP5023204B2 (ja) 2010-09-08 2012-09-12 株式会社東芝 磁気記録装置
JP2012079380A (ja) 2010-09-30 2012-04-19 Toshiba Corp 情報記録装置、情報記録方法、及び電子機器
US8432633B2 (en) 2010-10-26 2013-04-30 HGST Netherlands B.V. System, method and apparatus for storage architecture for bit patterned media using both erase band and shingled magnetic recording
JP2012160233A (ja) 2011-01-31 2012-08-23 Toshiba Corp 磁気記録装置、および磁気記録装置の記録方法
US8270256B1 (en) 2011-05-06 2012-09-18 Hitachi Global Storage Technologies Netherland B.V. Magnetic recording disk drive with shingled writing and wide-area thermal assistance
US8913335B2 (en) * 2011-05-23 2014-12-16 HGST Netherlands B.V. Storage device with shingled data and unshingled cache regions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US20110072230A1 (en) * 2009-09-23 2011-03-24 International Business Machines Corporation On demand storage group management with recapture
US20110078393A1 (en) * 2009-09-29 2011-03-31 Silicon Motion, Inc. Memory device and data access method

Also Published As

Publication number Publication date
KR20120121739A (ko) 2012-11-06
US20130117520A1 (en) 2013-05-09
US9009433B2 (en) 2015-04-14

Similar Documents

Publication Publication Date Title
KR101954995B1 (ko) 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체
US9063659B2 (en) Method and apparatus for data sector cluster-based data recording
KR101890767B1 (ko) 주소 사상 정보 관리 방법 이를 적용한 저장 장치
US9189395B2 (en) Method and apparatus for adjustable virtual addressing for data storage
KR101810932B1 (ko) 주소 사상 정보 관리 방법, 디스크 드라이브에서의 액세스 방법, 저장 장치, 컴퓨터 시스템, 네트워크를 통한 주소 사상 정보 관리 방법 및 컴퓨터로 읽을 수 있는 저장 매체
KR101854206B1 (ko) 라이트 방법 및 그 방법을 이용하는 저장 장치
KR101833416B1 (ko) 데이터 리드 방법 및 이를 적용한 저장 장치
US20110197035A1 (en) Data storage device, storing medium access method and storing medium thereof
US8650379B2 (en) Data processing method for nonvolatile memory system
US20130038961A1 (en) Method and apparatus for managing read or write errors
EP2665065A2 (en) Electronic device employing flash memory
US20130031317A1 (en) Method and apparatus for redirecting data writes
JP2000510634A (ja) 複数のデバイスへ同時書き込み操作を行うことにより高まるフラッシュメモリデバイスにおけるメモリ性能
JPWO2005029311A1 (ja) 半導体メモリカード、半導体メモリ制御装置及び半導体メモリ制御方法
KR101674015B1 (ko) 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
TWI609323B (zh) 資料儲存方法及其系統
JP3421581B2 (ja) 不揮発性半導体メモリを用いた記憶装置
US20070168603A1 (en) Information recording apparatus and control method thereof
US11947839B2 (en) Storage device, system, and method for customizable metadata
JP2007193439A (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
CN117472285A (zh) 固态硬盘用智能运行加速方法、计算机设备及存储介质
US20030097523A1 (en) External storage device within a computer network
KR101663545B1 (ko) 코드의 동적 재배치 방법 및 이를 이용한 디스크 드라이브
US20060020751A1 (en) Medium storage device, cache segment switching method for medium storage device, and medium storage system
KR102067056B1 (ko) 저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant