KR101654774B1 - 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체 - Google Patents

데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체 Download PDF

Info

Publication number
KR101654774B1
KR101654774B1 KR1020100011475A KR20100011475A KR101654774B1 KR 101654774 B1 KR101654774 B1 KR 101654774B1 KR 1020100011475 A KR1020100011475 A KR 1020100011475A KR 20100011475 A KR20100011475 A KR 20100011475A KR 101654774 B1 KR101654774 B1 KR 101654774B1
Authority
KR
South Korea
Prior art keywords
data
unit
mapping table
storage medium
lba
Prior art date
Application number
KR1020100011475A
Other languages
English (en)
Other versions
KR20110092047A (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 KR1020100011475A priority Critical patent/KR101654774B1/ko
Priority to JP2011011678A priority patent/JP5606938B2/ja
Priority to US13/023,153 priority patent/US8583879B2/en
Publication of KR20110092047A publication Critical patent/KR20110092047A/ko
Application granted granted Critical
Publication of KR101654774B1 publication Critical patent/KR101654774B1/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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

슁글 라이트가 가능한 저장 매체, 라이트 커맨드에 포함된 논리 블록 어드레스에 기초한 매핑 테이블을 이용하여 데이터가 상기 저장 매체에 순차적으로 라이트되도록 상기 저장 매체를 액세스하는 컨트롤러를 포함하는 데이터 저장 장치가 개시되어 있다.

Description

데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체{Data storage device, storage medium access method and storing medium thereof}
본 발명은 데이터 저장 장치 및 그 제어 방법에 관한 것으로, 특히 슁글 라이트(Shingle write)가 가능한 데이터 저장 장치와 그 제어 방법에 관한 것이다.
데이터 저장 장치의 예로 하드디스크 드라이브(Hard Disk Drive)를 들 수 있다. 최근에는 저장 용량을 증가시키기 위해 복수의 데이터 저장 장치로 구성된 하이브리드 데이터 저장 장치도 개발되었다. 상기 복수의 데이터 저장 장치는 하드디스크 드라이브를 포함할 수 있다.
데이터 저장 장치 또는 하이브리드 데이터 저장 장치는 접속된 호스트의 명령에 따라 저장 매체에 데이터를 라이트(write)하거나 저장 매체로부터 데이터를 리드(read)하기 위한 액세스 동작(access operation)을 수행한다. 저장 매체에 대한 액세스 동작중 슁글 라이트(shingle write)에 기초한 액세스 동작이 있다. 슁글 라이트는 인접한 트랙과 부분적으로 중첩하면서 데이터를 라이트한다. 즉, 슁글 라이트는 제 1 트랙과 인접한 제 2 트랙을 라이트할 때, 제 1 트랙을 부분적으로 오버라이트하고, 제 2 트랙에 인접한 제 3 트랙을 라이트할 때, 제 2 트랙을 부분적으로 오버라이트함으로써, 저장 매체의 저장 공간을 효율적으로 운영하는 데이터 라이트 기술이다.
그러나 슁글 라이트에 기초하여 저장 매체에 랜덤 라이트(random write)를 하거나 저장 매체에 기록된 데이터를 업데이트(update)할 때, 라이트 커맨드에 포함된 논리 블록 어드레스(Logical Block Address)의 기록 위치에 따라 인접한 트랙의 리라이트(rewrite)가 발생될 수 있다. 이러한 인접한 트랙의 리라이트가 발생되면, 저장 매체에 대한 액세스 성능이 저하된다.
본 발명이 해결하려는 과제는 슁글 라이트시 데이터 저장 매체에 대한 액세스를 효율적으로 수행하는 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체를 제공하는데 있다.
본 발명이 해결하려는 다른 과제는 슁글 라이트시 데이터 저장 매체의 메타 데이터(meta data)를 효율적으로 관리할 수 있는 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체를 제공하는데 있다.
상기 과제들을 달성하기 위한 본 발명의 일 실시 예에 따른 데이터 저장 장치는, 슁글 라이트가 가능한 저장 매체; 라이트 커맨드에 포함된 논리 블록 어드레스에 기초한 매핑 테이블을 이용하여 데이터가 상기 저장 매체에 순차적으로 라이트되도록 상기 저장 매체를 액세스하는 컨트롤러를 포함함을 특징으로 한다.
상기 매핑 테이블은 상기 저장 매체의 현재 데이터 기록 상태 정보와 상기 논리 블록 어드레스의 매핑 정보를 포함하는 것이 바람직하다.
상기 컨트롤러는 상기 매핑 테이블을 이용하여 상기 논리 블록 어드레스에 버추얼 어드레스를 할당하고, 상기 할당된 버추얼 어드레스를 이용하여 상기 저장 매체를 액세스하는 것이 바람직하고, 상기 논리 블록 어드레스의 매핑 정보는 상기 논리 블록 어드레스와 상기 버추얼 어드레스간의 매핑 정보를 포함하는 것이 바람직하다.
상기 컨트롤러는 상기 매핑 테이블을 이용하여 현재 수신된 논리 블록 어드레스의 데이터를 순차적으로 라이트하기 위해 상기 버추얼 어드레스를 할당하고, 상기 현재 수신된 논리 블록 어드레스에 기존에 할당된 버추얼 어드레스가 존재하면, 상기 기존에 할당된 버추얼 어드레스를 무효화하도록 상기 매핑 테이블을 업데이트 하는 것이 바람직하다.
상기 컨트롤러는 상기 매핑 테이블을 존(zone)별로 관리하고, 상기 존은 복수의 유니트를 포함하고, 상기 유니트는 복수의 트랙을 포함하고, 상기 트랙은 복수의 섹터를 포함하고, 상기 버추얼 어드레스는 상기 섹터 기반으로 할당되는 것이 바람직하다.
상기 데이터 저장 장치가 아이들 타임이면, 상기 컨트롤러는 상기 존별 매핑 테이블을 이용하여 적어도 하나의 유니트에 라이트된 유효한 데이터를 새로운 유니트에 리라이트하고, 상기 매핑 테이블을 업데이트 하는 것이 바람직하고, 상기 컨트롤러는 논리 블록 어드레스 순서로 상기 데이터를 리라이트하는 것이 바람직하다. 상기 적어도 하나의 유니트는 무효한 섹터의 카운트 값이 소정의 임계값 이상인 유니트인 것을 특징으로 한다.
상기 과제들을 달성하기 위한 본 발명의 또 다른 실시 예에 따른 저장 매체 액세스 방법은, 수신된 라이트 커맨드에 포함된 논리 블록 어드레스에 기초하여 매핑 테이블을 서치하는 단계; 상기 서치된 매핑 테이블에 기초하여 데이터가 저장 매체에 순차적으로 라이트되도록 상기 저장 매체를 액세스하는 단계를 포함하는 것을 특징으로 한다. 상기 매핑 테이블은 상기 저장 매체의 현재 데이터 기록 상태 정보와 상기 논리 블록 어드레스의 매핑 정보를 포함하는 것이 바람직하다.
상기 저장 매체를 액세스하는 단계는, 상기 매핑 테이블을 이용하여 상기 논리 블록 어드레스에 버추얼 어드레스를 할당하고, 상기 할당된 버추얼 어드레스를 이용하여 상기 저장 매체를 액세스하는 단계를 포함하는 것이 바람직하다. 상기 논리 블록 어드레스의 매핑 정보는 상기 논리 블록 어드레스와 상기 버추얼 어드레스간의 매핑 정보를 포함한다.
상기 저장 매체를 액세스하는 단계는, 상기 버추얼 어드레스를 할당한 후, 상기 논리 블록 어드레스에 기존의 버추얼 어드레스가 존재하는 지를 체크하는 단계; 상기 기존의 버추얼 어드레스가 존재하면, 상기 기존의 버추얼 어드레스를 무효화하는 단계; 및 상기 매핑 테이블을 업데이트 하는 단계를 더 포함하는 것이 바람직하다.
상기 데이터 저장 장치에서의 저장 매체 액세스 방법은, 상기 매핑 테이블을 상기 저장 매체의 존별로 관리하는 단계를 더 포함하고, 상기 존은 복수의 유니트를 포함하고, 상기 유니트는 복수의 트랙을 포함하고, 상기 트랙은 복수의 섹터를 포함하고, 상기 버추얼 어드레스는 상기 섹터 기반으로 할당되는 것을 특징으로 하는 것이 바람직하다.
상기 데이터 저장 장치에서의 저장 매체 액세스 방법은, 상기 데이터 저장 장치가 아이들 타임이면, 상기 존별 매핑 테이블을 이용하여 적어도 하나의 유니트에 라이트된 유효한 데이터를 새로운 유니트에 리라이트하는 단계; 및 상기 유효한 데이터 리라이트 후, 상기 매핑 테이블을 업데이트 하는 단계를 더 포함하는 것이 바람직하다.
상기 유효한 데이터를 리라이트하는 단계는, 상기 논리 블록 어드레스 순서로 상기 유효한 데이터를 리라이트하고, 상기 유효한 데이터를 리라이트할 때, 상기 적어도 하나의 유니트는 무효한 섹터의 카운트 값이 소정의 임계값 이상인 유니트인 것이 바람직하다.
상기 과제들을 달성하기 위하여 본 발명은 상술한 저장 매체 액세스 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 저장 매체를 제공한다.
본 발명의 실시 예에 의하면, 랜덤(random) 논리 블록 어드레스(Logical Block Address, 이하 LBA라고 약함)에 기초한 슁글 라이트시, 저장 매체에 대한 매핑 테이블에 기초하여 할당된 버추얼 어드레스(virtual address)를 이용하여 순차적으로 데이터를 라이트함으로써, 랜덤 라이트 또는 기존의 데이터를 업데이트 할 때, 인접한 트랙의 리라이트로 인한 데이터 저장 장치의 액세스 성능 저하를 개선할 수 있다.
또한, 본 발명의 실시 예에 의하면, 저장 매체의 존별로 메타 데이터(또는 매핑 테이블)를 관리하고, 데이터 저장 장치가 아이들 타임(idle time)일 때 유효한 데이터가 라이트된 액티브 섹터(active sector)를 기반으로 데이터를 리라이트(rewrite)하고, 리라이트된 결과를 근거로 존별 메타 데이터를 업데이트 함으로써, 저장 매체의 저장 공간을 좀더 효율적으로 운영할 수 있을 뿐 아니라 저장 매체에 대한 메타 데이터를 효율적으로 관리할 수 있다.
도 1은 슁글 라이트에 의해 데이터가 라이트될 수 있는 저장 매체의 논리적인 구조도이다.
도 2는 본 발명의 일 실시 예에 따른 데이터 저장 장치의 기능 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 데이터 저장 장치에서 데이터 라이트시 저장 매체 액세스 방법의 흐름도이다.
도 4는 도 3에 도시된 저장 매체 액세스 방법의 상세 흐름도이다.
도 5는 랜덤 논리 블록 어드레스에 기초한 순차적인 슁글 라이트 예이다.
도 6은 도 5와 같이 데이터가 라이트된 상태에서 LBA가 업데이트되는 슁글 라이트 예이다.
도 7은 본 발명의 일 실시 예에 따른 데이터 저장 장치의 아이들 타임에서 슁글 라이트된 데이터의 리라이트시 저장 매체 액세스 방법의 흐름도이다.
도 8은 슁글 라이트된 데이터를 도 7에 의해 리라이트한 예시도이다.
도 9는 본 발명의 일 실시 예에 따른 데이터 저장 장치의 아이들 타임에서 슁글 라이트된 데이터의 리라이트시 저장 매체 액세스 방법의 다른 흐름도이다.
도 10은 슁글 라이트된 데이터를 도 9에 의해 리라이트한 예시도이다.
도 11은 도 2에 도시된 컨트롤러의 상세한 기능 블록도이다.
도 12는 도 11에 도시된 제 2 프로세서의 상세한 기능 블록도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 상세히 설명하기로 한다.
도 1은 슁글 라이트(shingle write)에 의해 데이터가 라이트될 수 있는 저장 매체의 논리적인 구조도이다. 도 1을 참조하면, 저장 매체는 N개의 존(zone)을 포함하고, 하나의 존은 K개의 유니트(unit)를 포함하고, 하나의 유니트는 복수개의 트랙을 포함하고, 하나의 트랙은 복수개의 섹터(도시되지 않음)를 포함할 수 있다. 도 1의 경우에, 유니트 1은 M개의 트랙을 포함하고, 유니트 2는 J개의 트랙을 포함한다. M과 J는 동일한 정수일 수 있으나 다른 정수일 수 있다. N개의 존 각각에 포함되는 유니트의 수는 동일할 수 있으나 다를 수 있다. 상기 유니트는 밴드(band)라고 할 수 있다.
K개의 유니트 각각에 포함된 트랙들은 슁글 라이트에 기초하여 데이터가 라이트될 수 있다. 도 1에 도시된 트랙 1∼M+J는 슁글 라이트에 기초하여 데이터가 라이트된 트랙이다. 도 1의 유니트 1을 참조하면, 트랙 2는 트랙 1의 일부 영역에 오버라이트되고, 트랙 3은 트랙 2의 일부 영역에 오버라이트되고, 트랙 M은 트랙 M-1의 일부 영역에 오버라이트된다. 그러나, 유니트 2의 첫 번째 트랙인 트랙 M+1은 트랙 M에 오버라이트되지 않는다. 이와 같이 슁글 라이트시, 각 유니트의 첫 번째 트랙은 이전 트랙에 오버라이트되지 않는다. 도 1의 참조번호 10은 오버라이트된 영역들이다.
도 1은 설명의 편의를 위하여 각 트랙이 동일한 길이를 갖는 것으로 도시하였다. 그러나, 저장 매체가 하드디스크와 같이 플래터(platter)상의 동심원으로 데이터가 라이트되는 경우에, 트랙마다 길이가 다르다. 따라서 저장 매체가 하드디스크인 경우에 바깥쪽 트랙은 안쪽트랙보다 더 많은 수의 섹터로 구성될 수 있다. 또한 바깥쪽에서 안쪽으로 데이터가 라이트되므로, 트랙 1은 트랙 M+J보다 저장 매체의 바깥쪽 트랙이 된다.
도 1은 설명의 편의상 첫 번째 트랙을 트랙 1으로 도시하였으나 하드디스크의 경우에 트랙 번호는 0부터 시작한다. 따라서 저장 매체가 하드디스크인 경우에 첫 번째 트랙은 트랙 0으로 정의될 수 있다. 존 및 유니트의 번호 역시 저장 매체가 하드디스크인 경우에 0부터 시작하도록 정의될 수 있다. 도 1과 같은 구조로 슁글 라이트가 가능한 저장 매체는 하드디스크로 제한되지 않는다. 슁글 라이트는 트랙을 갖는 저장 매체에 데이터를 라이트할 때, 적용될 수 있다. 이하 설명에서는 각 트랙당 동일한 섹터를 포함하는 예를 제시하였으나 상술한 바와 같이 각 트랙당 섹터 수는 다를 수 있다.
도 2는 본 발명의 일 실시 예에 따른 데이터 저장 장치(200)의 기능 블록도이다. 도 2를 참조하면, 데이터 저장 장치(200)는 호스트 인터페이스(210), 컨트롤러(220), 및 저장 매체(230)를 포함한다.
호스트 인터페이스(210)는 미 도시된 호스트와의 데이터 송수신 처리를 수행한다. 예를 들어 호스트 인터페이스(210)는 IDE(Integrated Device Electronics) 인터페이스 규격에 따라 데이터 송수신 처리를 수행할 수 있다. 미 도시된 호스트는 예를 들어 윈도우 계열의 오퍼레이팅 시스템 프로그램에 따라 동작되는 장치일 수 있다. 예를 들어, 호스트(미 도시됨)는 컴퓨터 시스템일 수 있다.
컨트롤러(220)는 메모리(221)에 데이터 저장 장치(200)를 제어하는데 필요한 프로그램들 및 데이터들을 저장할 수 있다. 특히, 도 3, 4, 7, 및 9에 도시된 흐름도를 실행시키기 위한 프로그램들 및 데이터를 저장할 수 있다.
랜덤(random) 논리 블록 어드레스(Logical Block Address, 이하 LBA라고 약함)에 기초한 슁글 라이트시, 컨트롤러(220)는 호스트 인터페이스(210)를 통해 수신된 라이트 커맨드(write command)에 포함된 LBA에 기초한 매핑 테이블(mapping table)을 이용하여 저장 매체(230)에 순차적으로 데이터가 라이트되도록 저장 매체(230)를 액세스한다.
즉, 도 3의 흐름도에 따라 컨트롤러(220)는 저장 매체(230)를 액세스할 수 있다. 도 3은 본 발명의 일 실시 예에 따른 데이터 저장 장치에서 데이터 라이트시 저장 매체 액세스 방법의 동작 흐름도이다.
도 3을 참조하면, 컨트롤러(220)는 수신된 라이트 커맨드에 포함된 LBA에 기초하여 메모리(221)로부터 매핑 테이블을 서치한다(S301). 매핑 테이블은 LBA에 기초하여 서치될 수 있도록 정의되고, 저장 매체(230)의 현재 데이터 기록 상태를 알 수 있는 정보와 LBA에 기초하여 추적될 수 있는 정보를 포함할 수 있다.
현재 데이터 기록 상태를 알 수 있는 정보는 마지막으로 데이터가 라이트된 섹터의 넘버, 상기 섹터를 포함하는 트랙, 유니트, 및 존에 대한 정보를 포함할 수 있다. LBA에 기초하여 추적될 수 있는 정보는 현재 수신된 LBA가 새로운 LBA인지 업데이트 될 LBA인지를 판단할 수 있는 정보를 포함할 수 있다.
매핑 테이블은 메모리(221)에 저장될 수 있으나 액세스 시간이 빠른 외부의 불휘발성(non-volatile) 저장 매체(미 도시됨)에 저장되거나 저장 매체(230)의 가장 액세스가 빠른 위치(예를 들어, 하드디스크의 경우에 OD(Outer Dimension))에 저장될 수 있다. 만약 매핑 테이블이 상기 외부의 불휘발성 저장 매체에 저장되는 경우에, 도 2의 데이터 저장 장치(200)는 저장 매체(230)와 별도로 컨트롤러(220)의 외부에 저장 매체를 더 포함하도록 구성될 수 있다.
만약 매핑 테이블이 외부의 불휘발성 저장 매체 또는 저장 매체(230)에 저장될 경우에, 가장 최근에 액세스된 저장 매체(230)의 LBA가 속하는 적어도 2개의 존의 매핑 테이블이 메모리(221)에 저장되도록 컨트롤러(220)는 외부의 불휘발성 저장 매체 또는 저장 매체(230)에 저장된 존별 매핑 테이블과 메모리(221)에 저장된 매핑 테이블간을 스왑(swap)할 수 있다.
단계 S302에서, 컨트롤러(220)는 서치된 매핑 테이블을 이용하여 데이터가 저장 매체(230)에 순차적으로 라이트되도록 저장 매체(230)를 액세스한다.
좀더 상세하게 설명하면, 도 4의 흐름도에 따라 컨트롤러(220)는 저장 매체(230)를 액세스할 수 있다. 도 4는 도 3에 도시된 저장 매체 액세스 방법의 상세 흐름도이다.
도 4를 참조하면, 컨트롤러(220)는 수신된 라이트 커맨드에 포함된 LBA가 속하는 존의 매핑 테이블(mapping table)을 서치한다(S401). 매핑 테이블 서치는 도 3의 단계 S301에서 설명한 바와 같이 LBA를 기초로 수행될 수 있다. 이는 사전에 각 존별로 처리 가능한 LBA가 할당되기 때문이다. 예를 들어, 도 1의 존 1의 경우에 0∼1000 LBA를 처리 가능한 LBA로 설정하고, 존 2의 경우에 1001∼2000 LBA를 처리 가능한 LBA로 설정할 수 있다. 존 1과 존 2의 처리 가능한 LBA가 상술한 바와 같을 때, 수신된 라이트 커맨드에 포함된 LBA가 5이면, 단계 S401에서 컨트롤러(220)는 존 1의 매핑 테이블을 서치한다. 매핑 테이블은 상술한 바와 같이 존별로 관리할 수 있으나 저장 매체(230)단위로 관리할 수 있다.
매핑 테이블은 도 3에서 설명한 바와 같이 메모리(221)에 저장될 수 있다. 매핑 테이블은 도 3에서 설명한 바와 같은 정보를 포함할 수 있다. 즉, 매핑 테이블은 저장 매체(230)의 현재 데이터 기록 상태를 알 수 있는 정보로서 존에서 마지막으로 데이터가 라이트된 섹터의 넘버, 상기 섹터가 포함되는 트랙, 및 유니트에 대한 정보를 포함할 수 있다.
좀더 상세하게 설명하면, 매핑 테이블은 저장 매체(230)의 현재 데이터 기록 상태를 알 수 있는 정보로서 마지막으로 데이터가 라이트된 섹터의 넘버, 유효한(valid) 유니트, 유효한 트랙, 유효한 섹터, 유니트별 무효한 섹터의 카운트 값, 액티브 유니트의 카운트 값, 액티브 섹터, 액티브 트랙, 액티브 유니트 등을 포함할 수 있다. 상기 유효한 유니트, 유효한 트랙, 유효한 섹터는 각각 리저브드(reserved) 유니트, 리저브드 트랙, 리저브드 섹터로 정의할 수 있는 것으로, 데이터 라이트가 가능한 섹터를 포함하는 트랙을 포함하는 유니트이다. 상기 액티브 유니트, 액티브 트랙, 액티브 섹터는 각각 유효한 데이터가 라이트된 섹터를 포함하는 트랙을 포함하는 유니트이다. 상기 무효한 섹터는 라이트된 데이터가 유효하지 않은 섹터이다. 또한, 매핑 테이블은 LBA에 기초하여 추적될 수 있는 정보로서 LBA와 VA간의 매핑 정보(mapping information)를 포함할 수 있다.
단계 S402에서 컨트롤러(220)는 서치된 매핑 테이블을 이용하여 현재 유니트가 풀(full)상태인지를 판단한다. 즉, 매핑 테이블에 포함된, 존에서 마지막으로 데이터가 라이트된 섹터의 넘버가 현재 유니트의 마지막 섹터의 넘버이면, 컨트롤러(220)는 현재 유니트가 풀상태인 것으로 판단한다. 그러나, 매핑 테이블에 포함된, 존에서 마지막으로 데이터가 라이트된 섹터의 넘버가 현재 유니트의 마지막 섹터의 넘버가 아니면, 컨트롤러(220)는 현재 유니트가 풀 상태가 아닌 것으로 판단한다.
단계 S402에서 현재 유니트가 풀 상태로 판단되면, 컨트롤러(220)는 매핑 테이블을 이용하여 새로운 유니트를 할당한다(S403). 새로운 유니트는 데이터를 라이트할 수 있는 유효한 유니트로서, LBA가 속하는 존에 포함된 유니트이다.
현재 유니트가 풀 상태가 아니거나 새로운 유니트가 할당되면, 컨트롤러(220)는 LBA에 버추얼 어드레스(Virtual Address, 이하 VA로 약함)를 할당한다(S404). VA는 저장 매체(230)의 유효한 섹터(valid sector)단위 어드레스로서, 현재 유니트에서 마지막으로 데이터가 라이트된 섹터의 넘버 또는 새로운 유니트 할당에 따라 결정된다.
즉, 현재 유니트에서 마지막으로 데이터가 라이트된 섹터의 넘버가 도 5에 도시된 예와 같이 섹터 넘버(Sector Number, SN) 8일 때, 섹터 넘버(SN) 9가 할당된 섹터에 대응되는 VA가 현재 수신된 LBA에 할당된다. 새로운 유니트가 할당된 경우에, 컨트롤러(220)는 새로운 유니트의 첫 번째 섹터에 대응되는 VA를 현재 수신된 LBA에 할당한다. 이와 같이 LBA에 할당되는 VA는 LBA가 속하는 존에서 마지막으로 데이터가 라이트된 섹터의 넘버에 의해 결정된 유효한 섹터에 의존한다.
VA는 섹터의 실제 어드레스에 기초하여 정의될 수 있다. 예를 들어, 저장 매체(230)가 하드디스크인 경우에, VA는 CHS(Cylinder Head Sector)에 기초하여 정의될 수 있다. 저장 매체가 도 1과 같은 논리적인 구조를 갖는 경우에, VA는 존, 유니트, 트랙, 및 섹터에 기초하여 정의될 수 있다.
도 5는 랜덤(random) 논리 블록 어드레스(Logical Block Address, 이하 LBA라고 약함)에 기초한 순차적인 슁글 라이트 예로서, 하나의 유니트가 3개의 트랙으로 구성되고, 한 트랙이 5개의 섹터로 구성된 경우를 가정한 예이다.
도 5를 참조하면, 호스트로부터 수신된 LBA는 7 -> 2 -> 14 -> 4 -> 9 -> 5 -> 3 -> 12 -> 8순임을 알 수 있다. 현재 유니트가 도 5와 같은 경우에, 도 4의 단계 S402에서 컨트롤러(220)는 현재 유니트가 풀 상태가 아닌 것으로 판단하고, S404에서 현재 수신된 LBA에 VA를 할당한다. 도 5에서 화살표는 데이터가 라이트되는 순서이고, 501은 오버라이트된 영역이다.
단계 S405에서 컨트롤러(220)는 매핑 테이블을 이용하여 현재 수신된 LBA에 기존에 할당된 VA가 존재하는지 체크한다. 즉, 컨트롤러(220)는 LBA를 기초로 매핑 테이블에 LBA와 VA간의 매핑 정보가 존재하는지 서치한다. 서치결과, 상기 매핑 정보가 존재하면, 컨트롤러(220)는 LBA에 기존에 할당된 VA가 존재하는 것으로 판단한다.
LBA에 기존에 할당된 VA가 존재하는 것으로 판단되면, 컨트롤러(220)는 기존에 할당된 VA를 무효화하고(S406), 단계 S407에서 매핑 테이블을 업데이트 한다. 즉, 기존에 할당된 VA에 대응되는 섹터를 무효한 섹터로 관리하고, 새로 할당된 VA에 대응되는 섹터를 액티브(active) 섹터로 관리할 수 있도록 컨트롤러(220)는 LBA가 속한 존의 매핑 테이블을 업데이트 한다. 이 때, 매핑 테이블에 포함되는 유니트의 무효한 섹터의 카운트 값은 1증가된다. 상기 유니트의 무효한 섹터의 카운트 값은 유니트에 포함되는 섹터에 대응되는 VA가 무효화될 때마다 1씩 증가한다. 또한, 매핑 테이블에 포함되는 마지막으로 데이터가 라이트된 섹터의 넘버는 할당된 VA에 기초하여 업데이트된다.
매핑 테이블에 LBA와 VA간의 매핑 정보가 존재하지 않으면, 컨트롤러(220)는 LBA에 기존에 할당된 VA가 존재하지 않는 것으로 판단한다.
LBA에 기존에 할당된 VA가 존재하지 않는 것으로 판단되면, 단계 S407에서 컨트롤러(220)는 매핑 테이블을 업데이트 한다. LBA에 기존에 할당된 VA가 존재하지 않는 경우에, 매핑 테이블은 LBA와 현재 할당된 VA간의 매핑 정보, 할당된 VA에 대응되는 섹터를 액티브 섹터로 관리하는 정보를 포함하고, 매핑 테이블에 포함되는 마지막으로 데이터가 라이트된 섹터의 넘버는 할당된 VA에 기초하여 업데이트된다.
단계 S408에서 컨트롤러(220)는 할당된 VA를 이용하여 데이터가 라이트되도록 저장 매체(230)를 액세스한다. 현재 수신된 LBA에 할당된 기존의 VA가 존재하는 경우에 데이터 라이트는 도 6에 도시된 바와 같이 기록된다. 도 6은 도 5와 같이 데이터가 라이트된 상태에서 LBA가 업데이트되는 슁글 라이트 예이다.
도 6을 참조하면, 도 5와 같이 데이터가 라이트된 상태에서 LBA 2와 3이 순차적으로 수신되었음을 알 수 있다. 수신된 순서에 따라 섹터 9와 섹터 10에 LBA 2와 3의 데이터는 순차적으로 라이트되고, 기존의 섹터 1과 섹터 5에 대응되는 VA는 상술한 단계 S406에서 무효화되며, LBA 2에 매핑되는 VA는 섹터 9에 기초한 VA가 새롭게 할당되고, LBA 3에 매핑되는 VA는 섹터 10에 기초한 VA가 새롭게 할당되도록 매핑 테이블은 업데이트된다.
데이터 저장 장치(200)가 아이들 타임(idle time)이 되면, 컨트롤러(220)는 각 존별 매핑 테이블을 이용하여 유니트의 상태를 체크하고, 체크된 결과에 따라 저장 매체(230)에 라이트된 데이터가 재배열되도록 리라이트하기 위해 저장 매체(230)를 액세스할 수 있다.
즉, 도 7의 흐름도에 따라 컨트롤러(220)는 저장 매체(230)를 액세스할 수 있다. 도 7은 본 발명의 일 실시 예에 따른 데이터 저장 장치의 아이들 타임에서 슁글 라이트된 데이터의 리라이트(rewrite)시 저장 매체 액세스 방법의 동작 흐름도이다.
도 7을 참조하면, 컨트롤러(220)는 매핑 테이블을 이용하여 존을 선택한다(S701). 단계 S701에서 컨트롤러(220)는 존별 매핑 테이블을 이용하여 무효한(invalid) 섹터 수에 기초하여 존을 선택할 수 있다. 즉, 존은 무효한 섹터 수가 많은 순서로 선택될 수 있다. 무효한 섹터의 수는 상술한 유니트별 무효한 섹터의 카운트 값에 기초하여 존별 무효한 섹터의 수가 결정될 수 있다.
존이 선택되면, 컨트롤러(220)는 매핑 테이블을 이용하여 선택된 존에 포함된 유니트들중 무효한 섹터의 카운트 값이 임계값 A이상인 유니트가 존재하는지 체크한다(S702). 매핑 테이블에 포함되는 무효한 섹터의 카운트 값은 도 6에 도시된 바와 같이 LBA가 업데이트될 때마다 업데이트된다. 임계값 A는 유니트에 유효한(valid) 섹터가 존재하지 않는 조건을 근거로 설정될 수 있다.
도 8의 슁글 라이트된 데이터를 도 7에 의해 리라이트한 예시도이다. 도 8의 801에 도시된 슁글 라이트된 유니트 예에 도 7을 적용할 경우에, 단계 S702에서의 임계값 A는 5로 설정될 수 있다. 임계값 A가 5로 설정되면, 도 8의 801 유니트는 무효화 섹터의 카운트 값이 5이상인 유니트이다.
무효한 섹터의 카운트 값이 임계값 A이상인 유니트가 존재하면, 컨트롤러(220)는 선택된 존에 포함된 유효한 유니트(valid unit)중 하나를 새로운 유니트로 할당한다(S703). 도 8에서 802 유니트가 새로 할당된 유니트이다.
컨트롤러(220)는 무효한 섹터의 카운트 값이 임계값 A이상인 유니트에서 액티브 섹터에 라이트된 유효한 데이터들이 새로 할당된 유니트에 LBA 순으로 슁글 라이트 기반으로 리라이트되도록 저장 매체(230)를 액세스한다(S704). 이에 따라 새로운 유니트에 도 8에 도시된 유니트 802와 같이 LBA순으로 리라이트되도록 컨트롤러(220)는 저장 매체(230)를 액세스한다.
컨트롤러(220)는 단계 S705에서 선택된 존의 매핑 테이블을 업데이트 한다. 단계 S704에 의한 리라이트로, 매핑 테이블 정보는 도 8에 도시된 바와 같이 줄일 수 있다. 즉, 유니트에 포함되는 섹터단위의 LBA와 VA간의 매핑 정보가 도 8의 803 및 804와 같이 LBA, VA, SC(Sector Count), 및 UN(Unit Number)를 포함하면, 유니트 (801)에 대한 섹터단위의 LBA와 VA간의 매핑 정보는 (805)와 같다. 그러나, 새로운 유니트(802)를 이용하여 유효한 데이터들만을 LBA 순으로 리라이트하면, 섹터단위의 LBA와 VA간의 매핑 정보는 도 8의 (806)과 같이 줄어든다. 이와 같이 매핑 테이블에 포함되는 저장 매체(230)에 대한 메타 데이터 량이 줄어들어, 데이터 저장 장치(200)는 저장 매체(230)의 메타 데이터를 효율적으로 관리할 수 있다.
또한, 컨트롤러(220)는 단계 S702에서 무효한 섹터의 카운트 값이 임계값 A이상인 것으로 판단된 이전 유니트가 유효한 유니트로 설정되도록 매핑 테이블을 업데이트 한다.
단계 S702에서 존에 포함되는 유니트중 무효한 섹터의 카운트 값이 A이상인 유니트가 없는 것으로 판단되면, 컨트롤러(220)는 단계 S701로 리턴되어 다른 존을 선택한다.
한편, 컨트롤러(220)는 각 존별 매핑 테이블을 이용하여 저장 매체(230)에 라이트된 데이터가 재배열되도록 데이터를 리라이트하기 위해 저장 매체(230)를 액세스할 때, 도 9에 도시된 흐름도에 따라 동작할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 데이터 저장 장치의 아이들 타임에서 슁글 라이트된 데이터의 리라이트시 저장 매체 액세스 방법의 다른 흐름도이다. 도 9는 도 7과 달리 선택된 존에 포함된 유니트중 액티브 유니트의 카운트 값이 임계값 B이상이면, 무효한 섹터의 카운트 값이 P이상이 유니트가 적어도 2개 존재하는지를 체크한 결과에 따라 새로운 유니트를 할당하여 데이터를 리라이트한다.
즉, 도 9를 참조하면, 단계 S901에서 컨트롤러(220)가 존을 선택하면, 선택된 존에 포함된 액티브 유니트의 카운트 값이 임계값 B이상인지 체크한다. 만약 선택된 존에 포함된 액티브 유니트의 카운트 값이 B이상이 아니면, 단계 S901에서 다른 존을 선택한다. 그러나, 선택된 존에 포함된 액티브 유니트의 카운트 값이 B이상이면, 단계 S903에서 컨트롤러(220)는 무효한 섹터의 카운트 값이 임계값 P이상인 유니트가 적어도 2개 이상인지를 체크한다. 임계값 P는 도 7의 임계값 A와 동일한 조건으로 설정될 수 있다. 임계값 B는 존에 포함될 수 있는 유니트의 최대 수보다 작은 정수로 정의될 수 있다.
체크결과, 무효한 섹터의 카운트 값이 P이상인 유니트가 적어도 2개 이상이면, 단계 S904 내지 S906에서 컨트롤러(220)는 새로운 유니트를 할당하여 도 7에서와 같이 유효한 데이터들만 LBA순으로 새로 할당된 유니트에 리라이트되도록 저장 매체(230)를 액세스한 뒤, 선택된 존의 매핑 테이블을 업데이트 한다.
도 10은 슁글 라이트된 데이터를 도 9에 의해 리라이트한 예로서, 2개의 유니트에 라이트된 데이터를 하나의 유니트에 리라이트한 예이다. 도 10의 (1001)과 (1002) 유니트는 무효화 섹터의 카운트 값이 임계값 P이상인 유니트이다. 유니트(1001)의 LAB와 VA간의 매핑 정보는 (1003)과 같고, 유니트 (1002)의 LAB와 VA간의 매핑 정보는 (1004)와 같다. 이러한 유니트 (1001)과 (1002)에 라이트된 데이터중 유효한 데이터를 새로 할당된 유니트(1005)에 LBA순으로 리라이트하면, 유니트(1005)의 LAB와 VA간의 매핑 정보는 (1006)과 같다. 도 10에서 알 수 있는 바와 같이, 유효한 데이터의 LBA순으로 데이터를 리라이트함에 따라 매핑 테이블에 포함되는 매핑 정보는 줄어든다.
상술한 컨트롤러(220)의 동작을 수행하기 위해 컨트롤러(220)는 도 11에 도시된 바와 같이 호스트 인터페이스(210)로부터 수신되는 커맨드를 수신하고, 수신된 커맨드로부터 LBA를 추출하는 제 1 프로세서(1101), 매핑 테이블을 이용하여 수신된 LBA에 VA를 할당하는 제 2 프로세서(1102), 및 할당된 VA를 리얼 어드레스로 변환하여 저장 매체(230)를 액세스하는 제 3 프로세서(1103)를 포함할 수 있다. 제 3 프로세서(1103)는 저장 매체(230)를 액세스하는데 필요한 구성 요소를 포함할 수 있다. 상기 구성 요소는 예를 들어 저장 매체(230) 구동부, 리드/라이트 채널 회로를 포함할 수 있다.
저장 매체(230)가 하드디스크일 때, 컨트롤러(220)는 HTL(HDD Translation Layer)로 언급될 수 있다. 도 11에 도시된 프로세서들을 레이어(layer)로 표현할 경우에, 제 1 프로세서(1101)는 HIL(HDD Interface Layer)로 표현하고, 제 2 프로세서(1102)는 VML(Virtual Mapping Layer)로 표현하고, 제 3 프로세서(1103)는 HPL(HDD Physical Layer)로 표현할 수 있다.
제 2 프로세서(1102)는 매핑 테이블을 포함하는 것으로 정의할 수 있다. 또한, 제 2 프로세서(1102)는 도 12에 도시된 바와 같이 프리 큐(free queue)(1201), 얼로케이션 큐(allocation queue)(1202), 및 가비지 큐(garbage queue)(1203)로 구성되어, LBA에 VA를 할당하고, 섹터 및 유니트들을 무효화하거나 유효화하거나 액티브화하는 것으로 언급할 수 있다. 유효화는 데이터 라이트가 가능한 상태를 의미하고, 액티브화는 데이터가 라이트된 상태를 의미하고, 무효화는 라이트된 데이터가 무효(invalid) 상태를 의미한다. 무효화 섹터 및 무효화 유니트는 상술한 도 7 내지 도 10에서 설명된 리라이트에 의해 유효화 섹터 및 유니트로 설정될 수 있다. 따라서, 도 7 내지 도 10에서 설명된 리라이트는 가비지 컬렉션(garbage collection)으로 표현할 수 있다.
저장 매체(230)는 슁글 라이트가 가능한 저장매체로서, 하드디스크와 같은 저장 매체이다. 그러나, 스핀들 모터에 의해 회전되는 적어도 하나의 디스크를 포함하는 헤드 디스크 어셈블리(Head Disc Assembly, HDA)로 정의될 수 있다. 헤드 디스크 어셈블리에 포함되는 디스크는 자기 디스크로 표현될 수 있다.
상술한 도 2 내지 도 10에서 언급된 매핑 테이블은 저장 매체(230)의 메타 데이터로 언급할 수 있다.
본 발명의 실시 예는 방법, 장치, 시스템 등으로서 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 실시 예의 구성 수단들은 필연적으로 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되어 질 수 있다. 프로세서 판독 가능 매체는 정보를 저장 또는 전송할 수 있는 어떠한 매체도 포함한다. 프로세서 판독 가능 매체의 예로는 전자 회로, 반도체 메모리 소자, ROM, 플래시 메모리, 이레이져블 ROM(EROM : Erasable ROM), 플로피 디스크, 광 디스크, 하드디스크, 광 섬유 매체, 무선 주파수(RF) 망, 등이 있다.
첨부된 도면에 도시되어 설명된 특정의 실시 예들은 단지 본 발명의 실시 예로서 이해되어지고, 본 발명의 범위를 한정하는 것이 아니며, 본 발명이 속하는 기술 분야에서 본 발명에 기술된 기술적 사상의 범위에서도 다양한 다른 변경이 발생될 수 있으므로, 본 발명은 보여지거나 기술된 특정의 구성 및 배열로 제한되지 않는 것은 자명하다.

Claims (16)

  1. 디바이스로서,
    데이터가 인접하는 트랙에 적어도 부분적으로 중첩하며 기록되는 슁글링 라이트 방법(shingled write manner)으로 데이터를 저장하도록 구성되는 데이터 저장 매체; 및
    컨트롤러를 포함하고,
    상기 컨트롤러는
    논리 블록 어드레스(Logical Block Address; LBA)를 포함하는 라이트 커맨드를 수신하고;
    매핑 테이블을 이용하여 상기 데이터 저장 매체의 특정 데이터 섹터에 상응하는 버츄얼 어드레스를 상기 LBA에 할당하며;
    존(zone)으로 상기 매핑 테이블을 관리하고 ― 존은 복수의 유닛들을 포함하고, 유닛은 복수의 트랙들을 포함하며, 그리고 트랙은 복수의 데이터 섹터들을 포함함 ―;
    할당된 상기 버츄얼 어드레스를 이용하여 상기 데이터 저장 매체를 액세스(access)하며;
    상기 LBA에 기초하여, 상기 매핑 테이블을 이용하여 상기 데이터 저장 매체 상에 상기 라이트 커맨드에 상응하는 데이터를 순차적으로 기록하고;
    상기 디바이스가 아이들(idle) 상태인 경우, 적어도 하나의 유닛에 기록된 유효한(valid) 데이터를 상기 매핑 테이블을 이용하여 새로운 유닛에 재기록하며; 그리고
    무효한 데이터를 포함하는 것으로서 상기 적어도 하나의 유닛 상에 상기 유효한 데이터에 상응하는 버츄얼 어드레스들을 지정하고, 액티브 데이터를 포함하는 것으로서 상기 새로운 유닛 상에 상기 유효한 데이터에 상응하는 버츄얼 어드레스들을 지정하기 위해 상기 매핑 테이블을 업데이트하도록 구성되는,
    디바이스.
  2. 제 1 항에 있어서,
    상기 LBA, 상기 버츄얼 어드레스, 상기 버츄얼 어드레스를 포함하는 유닛 및 상기 유닛 내에 가장 마지막으로 기록된 섹터를 포함하는 상기 매핑 테이블을 더 포함하는,
    디바이스.
  3. 제 1 항에 있어서,
    상기 매핑 테이블 상에 식별된 마지막으로 기록된 섹터의 바로 다음의 데이터 섹터들에 상기 라이트 커맨드와 연관된 데이터를 순차적으로 기록하고, 그리고 상기 매핑 테이블이 상기 LBA에 할당된 이전에 할당된 버츄얼 어드레스를 포함하는 경우, 상기 매핑 테이블을 무효한 데이터를 포함하는 것으로서 상기 이전에 할당된 버츄얼 어드레스를 지정하기 위해 상기 매핑 테이블을 업데이트하도록 추가로 구성되는 상기 컨트롤러를 포함하는,
    디바이스.
  4. 제 1 항에 있어서,
    상기 유효한 데이터에 상응하는 LBA들의 순서로 상기 유효한 데이터를 재기록하도록 추가로 구성되는 상기 컨트롤러를 포함하는,
    디바이스.
  5. 제 1 항에 있어서,
    미리 결정된 임계값을 초과하는 무효한 섹터들의 카운트값(count value)을 갖는 적어도 하나의 유닛을 더 포함하는,
    디바이스.
  6. 제 1 항에 있어서,
    라이트 커맨드들을 수신하도록 최근에 지정된 액티브 유닛이 풀(full)인지를 결정하고;
    상기 최근에 지정된 액티브 유닛이 풀인 경우, 상기 액티브 유닛으로서 새로운 유닛을 할당하며; 그리고
    상기 매핑 테이블을 이용하여 상기 새로운 유닛 상의 섹터에 상응하는 버츄얼 어드레스를 상기 LBA에 할당하도록 추가로 구성되는 상기 컨트롤러를 포함하는,
    디바이스.
  7. 제 1 항에 있어서,
    선택된 존에 대한 액티브 데이터를 포함하는 유닛들의 숫자가 유닛 임계치를 초과하는지를 결정하고;
    상기 유닛들의 숫자가 상기 유닛 임계치를 초과하는 경우, 액티브 데이터를 포함하는 상기 유닛들 중 적어도 두 개의 유닛들이 미리 결정된 임계값을 초과하는 무효한 섹터들의 카운트값을 갖는지를 결정하며; 그리고
    상기 적어도 두 개의 유닛들이 상기 임계값을 초과하는 카운트값을 갖는 경우, 상기 매핑 테이블을 이용하여 상기 적어도 두 개의 유닛들로부터 새로운 유닛으로 유효한 데이터를 재기록하도록 추가로 구성되는 컨트롤러를 포함하는,
    디바이스.
  8. 방법으로서,
    존 기반(basis)으로 존 상에 매핑 테이블을 관리하는 단계 ― 존은 복수의 유닛들을 포함하고, 유닛은 복수의 트랙들을 포함하며, 그리고 트랙은 복수의 섹터들을 포함함 ―;
    수신되는 라이트 커맨드에 포함되는 논리 블록 어드레스(LBA)에 기초하여 상기 매핑 테이블을 검색하는 단계;
    상기 매핑 테이블에 기초하여, 데이터가 인접하는 트랙에 적어도 부분적으로 중첩하며 기록되는 슁글링 라이트 방법으로 상기 라이트 커맨드와 연관되는 데이터를 데이터 저장 매체에 순차적으로 기록하는 단계;
    상기 데이터 저장 매체를 포함하는 디바이스가 아이들 상태인 경우, LBA들에 기초한 순서로, 적어도 하나의 유닛에 최근에 기록된 유효한 데이터를 상기 매핑 테이블을 이용하여 새로운 유닛에 재기록하는 단계; 및
    무효한 데이터를 포함하는 것으로서 상기 적어도 하나의 유닛 상에 상기 유효한 데이터에 상응하는 버츄얼 어드레스들을 지정하고, 액티브 데이터를 포함하는 것으로서 상기 새로운 유닛 상에 상기 유효한 데이터에 상응하는 버츄얼 어드레스들을 지정하기 위해 상기 매핑 테이블을 업데이트하는 단계를 포함하는,
    방법.
  9. 제 8 항에 있어서,
    상기 매핑 테이블은, 상기 LBA, 상기 버츄얼 어드레스, 상기 버츄얼 어드레스를 포함하는 유닛 및 상기 유닛 내에 가장 마지막으로 기록된 섹터를 포함하는,
    방법.
  10. 제 8 항에 있어서,
    상기 데이터를 데이터 저장 매체에 순차적으로 기록하는 단계는,
    상기 매핑 테이블을 이용하여 상기 데이터 저장 매체의 특정 데이터 섹터에 상응하는 버츄얼 어드레스를 상기 LBA에 할당하는 단계; 및
    할당된 상기 버츄얼 어드레스를 이용하여 상기 데이터 저장 매체를 액세스하는 단계를 포함하는,
    방법.
  11. 제 10 항에 있어서,
    상기 매핑 테이블 상에 식별된 마지막으로 기록된 섹터의 바로 다음의 데이터 섹터들에 상기 라이트 커맨드와 연관된 데이터를 순차적으로 기록하는 단계를 더 포함하는,
    방법.
  12. 제 11 항에 있어서,
    상기 버츄얼 어드레스를 할당하는 단계 이후에, 상기 매핑 테이블 내에 상기 LBA에 이전에 할당된 버츄얼 어드레스가 있는지를 결정하는 단계; 및
    상기 매핑 테이블 내에 상기 LBA에 이전에 할당된 버츄얼 어드레스가 존재하는 경우, 무효한 데이터를 포함하는 것으로서 상기 이전에 할당된 버츄얼 어드레스를 지정하기 위해 상기 매핑 테이블을 업데이트하는 단계를 더 포함하는,
    방법.
  13. 제 8 항에 있어서,
    상기 적어도 하나의 유닛은 미리 결정된 임계값을 초과하는 무효한 섹터들의 카운트값을 갖는,
    방법.
  14. 제 8 항에 있어서,
    선택된 존에 대한 액티브 데이터를 포함하는 유닛들의 숫자가 유닛 임계치를 초과하는지를 결정하는 단계;
    상기 유닛들의 숫자가 상기 유닛 임계치를 초과하는 경우, 액티브 데이터를 포함하는 상기 유닛들 중 적어도 두 개의 유닛들이 미리 결정된 임계값을 초과하는 무효한 섹터들의 카운트값을 갖는지를 결정하는 단계; 및
    상기 적어도 두 개의 유닛들이 상기 임계값을 초과하는 카운트값을 갖는 경우, 상기 매핑 테이블을 이용하여 상기 적어도 두 개의 유닛들로부터 새로운 유닛으로 유효한 데이터를 재기록하는 단계를 더 포함하는,
    방법.
  15. 디바이스로서,
    데이터가 인접하는 트랙에 적어도 부분적으로 중첩하며 기록되는 슁글링 라이트 방법으로 데이터를 저장하도록 구성되는 데이터 저장 매체 ― 상기 데이터 저장 매체는 복수의 유닛들을 포함하고, 각각의 유닛은 복수의 트랙들을 포함하고, 각각의 트랙은 복수의 데이터 섹터들을 포함하고, 물리적 어드레스는 데이터 섹터에 상응함 ―;
    논리 블록 어드레스(LBA)를 포함하는 커맨드를 수신하도록 구성되는 제 1 프로세서;
    상기 LBA에 버츄얼 어드레스를 할당하기 위해 매핑 테이블을 사용하고;
    상기 매핑 테이블을 이용하여 제 1 유닛을 가비지 큐(garbage queue)에 위치시킴으로써 상기 제 1 유닛을 무효화하며 ― 상기 가비지 큐는 각 유닛에 기록되는 데이터를 지정하는 상태를 갖는 유닛들이 무효임을 표시하도록 구성됨 ―;
    상기 매핑 테이블을 이용하여 제 2 유닛을 프리 큐(free queue)에 위치시킴으로써 상기 제 2 유닛을 유효화하고 ― 상기 프리 큐는 기록에 이용가능한 것으로서 각 유닛을 지정하는 상태를 갖는 유닛들을 표시하도록 구성됨 ―; 그리고
    상기 매핑 테이블을 이용하여 제 3 유닛을 할당 큐(allocation queue)에 위치시킴으로써 상기 제 3 유닛을 활성화하도록 구성되는 ― 상기 할당 큐는 각 유닛에 기록되는 데이터를 지정하는 상태를 갖는 유닛들이 유효임을 표시하도록 구성됨 ―
    제 2 프로세서; 및
    상기 버츄얼 어드레스를 상기 데이터 저장 매체의 물리적 어드레스로 변환함으로써 상기 데이터 저장 매체를 액세스하도록 구성되는 제 3 프로세서를 포함하는,
    디바이스.
  16. 제 15 항에 있어서,
    할당된 유닛이 풀이 아닌 경우, 기록을 위해 최근에 선택된 상기 할당된 유닛의 마지막 기록된 섹터의 다음의 섹터에 상응하는 상기 버츄얼 어드레스를 할당하고;
    상기 할당된 유닛이 풀인 경우, 새로운 유닛을 상기 프리 큐로부터 할당된 큐로 이동시키고, 그리고 상기 새로운 유닛의 제 1 섹터에 상응하는 버츄얼 어드레스를 할당하며;
    기록을 위해 최근에 선택된 것으로서 상기 새로운 유닛을 지정하기 위해 상기 매핑 테이블을 업데이트 하고; 그리고
    상기 마지막 기록된 섹터로서 할당된 상기 버츄얼 어드레스에 상응하는 섹터를 지정하기 위해 상기 매핑 테이블을 업데이트하도록 추가로 구성되는 상기 제 2 프로세서를 더 포함하는,
    디바이스.
KR1020100011475A 2010-02-08 2010-02-08 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체 KR101654774B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100011475A KR101654774B1 (ko) 2010-02-08 2010-02-08 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체
JP2011011678A JP5606938B2 (ja) 2010-02-08 2011-01-24 データ保存装置、記録媒体へのアクセス方法及びそれについての記録媒体
US13/023,153 US8583879B2 (en) 2010-02-08 2011-02-08 Data storage device, storing medium access method and storing medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100011475A KR101654774B1 (ko) 2010-02-08 2010-02-08 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체

Publications (2)

Publication Number Publication Date
KR20110092047A KR20110092047A (ko) 2011-08-17
KR101654774B1 true KR101654774B1 (ko) 2016-09-06

Family

ID=44354580

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100011475A KR101654774B1 (ko) 2010-02-08 2010-02-08 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체

Country Status (3)

Country Link
US (1) US8583879B2 (ko)
JP (1) JP5606938B2 (ko)
KR (1) KR101654774B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664409B2 (en) 2018-01-16 2020-05-26 SK Hynix Inc. Data storage apparatus utilizing sequential map entry for responding to read request and operating method thereof
US10671528B2 (en) 2018-03-28 2020-06-02 SK Hynix Inc. Memory system and operating method thereof

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8977834B2 (en) * 2011-02-14 2015-03-10 Seagate Technology Llc Dynamic storage regions
KR101810932B1 (ko) * 2011-04-27 2017-12-20 시게이트 테크놀로지 엘엘씨 주소 사상 정보 관리 방법, 디스크 드라이브에서의 액세스 방법, 저장 장치, 컴퓨터 시스템, 네트워크를 통한 주소 사상 정보 관리 방법 및 컴퓨터로 읽을 수 있는 저장 매체
US8756382B1 (en) * 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US8874935B2 (en) * 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US9104578B2 (en) 2012-07-06 2015-08-11 Seagate Technology Llc Defining address ranges used to cache speculative read data
US9594685B2 (en) 2012-07-06 2017-03-14 Seagate Technology Llc Criteria for selection of data for a secondary cache
US9772948B2 (en) 2012-07-06 2017-09-26 Seagate Technology Llc Determining a criterion for movement of data from a primary cache to a secondary cache
US9477591B2 (en) 2012-07-06 2016-10-25 Seagate Technology Llc Memory access requests in hybrid memory system
US9529724B2 (en) 2012-07-06 2016-12-27 Seagate Technology Llc Layered architecture for hybrid controller
US9390020B2 (en) * 2012-07-06 2016-07-12 Seagate Technology Llc Hybrid memory with associative cache
US8976478B1 (en) * 2012-10-10 2015-03-10 Seagate Technology Llc Band rewrites based on error scan counts
US9383923B1 (en) * 2012-10-18 2016-07-05 Western Digital Technologies, Inc. Write pointer management for a disk drive
US20140254042A1 (en) * 2013-03-07 2014-09-11 Seagate Technology Llc Dynamic allocation of lba to un-shingled media partition
US9588886B2 (en) 2013-03-15 2017-03-07 Seagate Technology Llc Staging sorted data in intermediate storage
US20140281194A1 (en) * 2013-03-15 2014-09-18 Seagate Technology Llc Dynamically-sizeable granule storage
US20140344570A1 (en) 2013-05-20 2014-11-20 Microsoft Corporation Data Protection For Organizations On Computing Devices
US9507719B2 (en) 2013-08-20 2016-11-29 Seagate Technology Llc Garbage collection in hybrid memory system
US9785564B2 (en) 2013-08-20 2017-10-10 Seagate Technology Llc Hybrid memory with associative cache
US9367247B2 (en) 2013-08-20 2016-06-14 Seagate Technology Llc Memory access requests in hybrid memory system
US10615967B2 (en) 2014-03-20 2020-04-07 Microsoft Technology Licensing, Llc Rapid data protection for storage devices
US20150301930A1 (en) * 2014-04-18 2015-10-22 HGST Netherlands B.V. File storage via physical block addresses
US9734066B1 (en) * 2014-05-22 2017-08-15 Sk Hynix Memory Solutions Inc. Workload-based adjustable cache size
US9825945B2 (en) 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US9853812B2 (en) 2014-09-17 2017-12-26 Microsoft Technology Licensing, Llc Secure key management for roaming protected content
US9418699B1 (en) 2014-10-09 2016-08-16 Western Digital Technologies, Inc. Management of sequentially written data
US9236086B1 (en) 2014-10-15 2016-01-12 Western Digital Technologies, Inc. Methods for reducing operational latency of data storage systems
US9900295B2 (en) 2014-11-05 2018-02-20 Microsoft Technology Licensing, Llc Roaming content wipe actions across devices
US9853820B2 (en) 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
US9900325B2 (en) 2015-10-09 2018-02-20 Microsoft Technology Licensing, Llc Passive encryption of organization data
CN105426130B (zh) * 2015-11-19 2018-06-29 四川神琥科技有限公司 邮件快速处理方法
KR20210025412A (ko) 2019-08-27 2021-03-09 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20220020143A (ko) 2020-08-11 2022-02-18 삼성전자주식회사 오버라이트 처리를 수행하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999045534A1 (fr) 1998-03-04 1999-09-10 Hitachi, Ltd. Disque magnetique
US7603530B1 (en) 2005-05-05 2009-10-13 Seagate Technology Llc Methods and structure for dynamic multiple indirections in a dynamically mapped mass storage device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05217298A (ja) * 1992-02-04 1993-08-27 Matsushita Graphic Commun Syst Inc 記憶媒体欠陥管理方法
US6185063B1 (en) * 1997-02-13 2001-02-06 Seagate Technology Llc Methods and apparatus for overlapping data tracks on a storage medium
JP2001125750A (ja) 1999-10-29 2001-05-11 Toshiba Corp データ記憶システムおよび同システムのデータ管理方法
US7490212B2 (en) 2003-09-29 2009-02-10 Hitachi Global Storage Technologies Netherlands B.V. System and method for writing data to dedicated bands of a hard disk drive
US7281114B2 (en) * 2003-12-26 2007-10-09 Tdk Corporation Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory
JP2005242897A (ja) * 2004-02-27 2005-09-08 Oki Electric Ind Co Ltd フラッシュディスク装置
US8019925B1 (en) * 2004-05-06 2011-09-13 Seagate Technology Llc Methods and structure for dynamically mapped mass storage device
KR100688559B1 (ko) * 2005-07-19 2007-03-02 삼성전자주식회사 하드디스크 드라이브의 기록 제어 방법 및 이에 적합한하드디스크 드라이브
JP2007073138A (ja) 2005-09-07 2007-03-22 Hitachi Global Storage Technologies Netherlands Bv ディスク装置
US20090172246A1 (en) * 2007-12-26 2009-07-02 Sandisk Il Ltd. Device and method for managing initialization thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999045534A1 (fr) 1998-03-04 1999-09-10 Hitachi, Ltd. Disque magnetique
US7603530B1 (en) 2005-05-05 2009-10-13 Seagate Technology Llc Methods and structure for dynamic multiple indirections in a dynamically mapped mass storage device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664409B2 (en) 2018-01-16 2020-05-26 SK Hynix Inc. Data storage apparatus utilizing sequential map entry for responding to read request and operating method thereof
US10671528B2 (en) 2018-03-28 2020-06-02 SK Hynix Inc. Memory system and operating method thereof

Also Published As

Publication number Publication date
KR20110092047A (ko) 2011-08-17
US20110197035A1 (en) 2011-08-11
US8583879B2 (en) 2013-11-12
JP5606938B2 (ja) 2014-10-15
JP2011165179A (ja) 2011-08-25

Similar Documents

Publication Publication Date Title
KR101654774B1 (ko) 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체
US8341339B1 (en) Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US9268709B2 (en) Storage controllers and storage control methods
TWI459199B (zh) 半導體記憶體控制裝置
US10747666B2 (en) Memory system
US9053007B2 (en) Memory system, controller, and method for controlling memory system
US8370602B2 (en) Method for memory space management
US9026764B2 (en) Memory system performing wear leveling based on deletion request
US8443167B1 (en) Data storage device employing a run-length mapping table and a single address mapping table
US8886869B2 (en) Storage system and data control method therefor
US8832371B2 (en) Storage system with multiple flash memory packages and data control method therefor
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US8392476B2 (en) Semiconductor memory device
US9063659B2 (en) Method and apparatus for data sector cluster-based data recording
US9111576B2 (en) Apparatus and method for prefetching data
US20150127889A1 (en) Nonvolatile memory system
US20100169556A1 (en) Nonvolatile storage device, information recording system, and information recording method
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
US20200218465A1 (en) Selective erasure of data in a ssd
JP2012514794A (ja) 記憶装置におけるマッピングアドレステーブルの維持
KR20120121742A (ko) 주소 사상 정보 관리 방법, 디스크 드라이브에서의 액세스 방법, 네트워크를 통한 주소 사상 정보 관리 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체
US9189392B1 (en) Opportunistic defragmentation during garbage collection
WO2015065312A1 (en) Method and apparatus of data de-duplication for solid state memory
US20030046482A1 (en) Data management in flash memory

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)