KR101674015B1 - 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체 - Google Patents
데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체 Download PDFInfo
- Publication number
- KR101674015B1 KR101674015B1 KR1020090055980A KR20090055980A KR101674015B1 KR 101674015 B1 KR101674015 B1 KR 101674015B1 KR 1020090055980 A KR1020090055980 A KR 1020090055980A KR 20090055980 A KR20090055980 A KR 20090055980A KR 101674015 B1 KR101674015 B1 KR 101674015B1
- Authority
- KR
- South Korea
- Prior art keywords
- data storage
- storage medium
- information
- queue
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/19—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
- G11B27/28—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
- G11B27/32—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B21/00—Head arrangements not specific to the method of recording or reproducing
- G11B21/02—Driving or moving of heads
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard 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
본 발명은 버추얼 어드레스(virtual address)를 기반으로 데이터 저장 장치의 데이터 저장 매체를 액세스하는 방법과 버추얼 어드레스를 기반으로 데이터 저장 매체를 액세스하는 데이터 저장 장치 및 액세스 방법을 수행하는 프로그램을 기록한 기록 매체에 관한 것이다.
본 발명에 따른 데이터 저장 매체 액세스 방법은, 호스트로부터 수신되는 커맨드에 포함된 로직컬 블록 어드레스(logical block address)를 버추얼 어드레스(virtual address)로 변환하는 단계; 버추얼 어드레스를 데이터 저장 장치에 포함된 데이터 저장 매체의 리얼 어드레스(real address)로 변환하여 데이터 저장 매체를 액세스하는 단계를 포함하고, 버추얼 어드레스는 데이터 라이트(write)시 데이터 저장 매체의 리저브드 블록(reserved block) 기반 어드레스이고, 리저브드 블록은 데이터를 라이트할 준비가 되어 있는 유효 블록이고, 데이터 라이트시 데이터 저장 장치에 포함된 헤드의 현재 위치는 리저브드 블록 기반으로 설정된다.
Description
본 발명은 데이터 저장 장치에 관한 것으로, 특히 호스트(Host)의 요청에 대해 효율적으로 데이터 저장 매체를 액세스(access)하는 방법과 그와 같은 기능을 갖는 데이터 저장 장치와 그와 같은 액세스 방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 관한 것이다.
일반적으로, 데이터 저장 장치중 하나인 하드디스크 드라이브(Hard Disk Drive)는 단일의 저장 장치로 구성되어, 호스트의 커맨드(command)에 따라 디스크(또는 플래터(platter))에 기록된 데이터를 재생하거나 디스크에 사용자 데이터를 기록하기 위한 액세스 동작을 수행한다.
그러나, 호스트의 커맨드는 데이터 저장 장치의 헤드(Head)의 현재 위치와 관계없는 로직컬 블록 어드레스(Logical Block Address, LBA) 정보를 포함한다. 따라서 호스트의 커맨드에 따른 디스크 액세스 시, 호스트 커맨드에 포함된 LBA에 기초한 데이터 저장 장치의 리얼 어드레스(real address)인 CHS(Cyinder Head Sector)가 데이터 저장 장치의 헤드의 현재 위치와 일치하지 않을 수 있다.
호스트의 커맨드가 라이트 커맨드(write command)이고, 상술한 바와 같이 LBA에 기초한 CHS와 헤드의 현재 위치가 일치하지 않을 경우에, 데이터 저장 장치는 헤드를 LBA에 기초한 CHS의 위치로 이동시키기 위한 시크(seek)와 헤드 스위칭(head switching) 동작을 수행하게 되어 액세스 지연시간(latency)이 발생될 수 있다.
본 발명이 해결하고자 하는 과제는 버추얼 어드레스(virtual address)를 기반으로 데이터 저장 장치의 데이터 저장 매체를 액세스하는 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 다른 과제는 버추얼 어드레스를 기반으로 데이터 저장 매체를 액세스하는 데이터 저장 장치를 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 버추얼 어드레스를 기반으로 한 데이터 저장 매체의 액세스 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
상기 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 데이터 저장 장치를 액세스하는 방법은, 호스트로부터 수신되는 커맨드에 포함된 로직컬 블록 어드레스(logical block address)를 버추얼 어드레스(virtual address)로 변환하는 단계; 상기 버추얼 어드레스를 데이터 저장 장치에 포함된 데이터 저장 매체의 리얼 어드레스(real address)로 변환하여 상기 데이터 저장 매체를 액세스하는 단계를 포함하고, 상기 버추얼 어드레스는 데이터 라이트(write)시 상기 데이터 저장 매체의 리저브드 블록(reserved block) 기반 어드레스이고, 상기 리저브드 블록은 데이터를 라이트할 준비가 되어 있는 유효 블록이고, 상기 데이터 라이트시 상기 데이터 저장 장치에 포함된 헤드의 현재 위치는 상기 리저브드 블록 기반으로 설정되는 것을 특징으로 한다.
상기 수신되는 커맨드가 라이트 커맨드(write command)이면, 상기 로지컬 블록 어드레스를 버추얼 어드레스로 변환하는 단계는, 제 1 큐(queue)에 있는 상기 데이터 저장 매체의 리저브드 블록 정보중 하나를 선택하는 단계; 상기 선택된 리저브드 블록 정보에 대응되는 상기 데이터 저장 매체의 리저브드 블록으로 상기 헤드를 이동시키는 단계; 상기 수신된 커맨드에 포함된 로직컬 블록 어드레스에 상기 선택된 리저브드 블록 정보에 대응되는 버추얼 어드레스를 할당하는 단계; 상기 리저브드 블록에 데이터가 라이트되면, 상기 리저브드 블록 정보를 액티브 블록 정보로 설정하는 단계; 상기 액티브 블록 정보가 소정 개수이상이 되면, 상기 로직컬 블록 어드레스와 상기 버추얼 어드레스간의 매핑 정보를 제 2 큐에 인서트(insert)하는 단계를 포함하는 것이 바람직하다.
상기 매핑 정보를 상기 제 2 큐에 인서트 하는 단계는, 상기 매핑 정보를 인서트하기 전에 상기 매핑 정보에 포함된 버추얼 어드레스와 동일한 버추얼 어드레스가 상기 제 2 큐에 존재하는지 체크하는 단계; 상기 동일한 버추얼 어드레스가 상기 제 2 큐에 존재하면, 상기 제 2 큐에 존재하는 기존의 버추얼 어드레스가 할당된 블록 정보를 무효 블록 정보로 설정하고, 상기 무효 블록 정보를 제 3 큐로 전송하는 단계를 포함하는 것이 바람직하다.
상기 로지컬 블록 어드레스를 버추얼 어드레스로 변환하는 단계는, 상기 제 3 큐에 무효 블록 정보가 풀(full) 상태가 되거나 상기 데이터 저장 장치의 동작이 아이들 타임(idle time)이 되면, 상기 제 3 큐에 있는 무효 블록 정보를 소팅하여 상기 제 1 큐로 전송하는 단계를 더 포함하는 것이 바람직하다.
상기 수신되는 커맨드가 리드 커맨드이면, 상기 로지컬 블록 어드레스를 버추얼 어드레스로 변환하는 단계는, 상기 제 2 큐의 매핑 정보를 이용하여 상기 로지컬 블록 어드레스에 대응되는 버추얼 어드레스를 서치하는 단계를 더 포함하는 것이 바람직하다.
상기 다른 과제를 달성하기 위한 데이터 저장 장치는, 헤드 데이터 저장 매체 어셈블리(assembly); 및 호스트로부터 수신되는 커맨드에 포함된 로지컬 블록 어드레스를 상기 헤드 데이터 저장 매체 어셈블리에 포함된 데이터 저장 매체의 리저브드 블록에 기초한 버추얼 어드레스로 변환하여 상기 데이터 저장 매체를 액세스하는 컨트롤러를 포함하고, 상기 리저브드 블록은 데이터를 라이트할 준비가 되어 있는 유효 블록인 것을 특징으로 한다.
상기 컨트롤러는 3개의 레이어(layer)로 상기 호스트와 상기 헤드 데이터 저장 매체 어셈블리간의 인터페이스를 컨트롤하고, 상기 3개의 레이어는, 상기 호스트로부터 수신되는 커맨드를 데이터 커맨드(data command)와 논 데이터 커맨드(non-data command)로 구분하는 제 1 레이어(layer); 상기 제 1 레이어로부터 수신되는 데이터 커맨드에 포함된 로지컬 블록 어드레스를 버추얼 어드레스로 변환하는 제 2 레이어; 및 상기 버추얼 어드레스에 기초한 상기 데이터 저장 매체에 대한 액세스 및 상기 논 데이터 커맨드에 기초하여 상기 헤드 데이터 저장 매체 어셈블리를 구동하는 제 3 레이어를 포함하는 것이 바람직하다.
상기 컨트롤러는 상기 제 2 레이어에서, 상기 헤드 데이터 저장 매체 어셈블 리에 포함된 데이터 저장 매체의 적어도 하나의 리저브드 블록 정보를 관리하는 제 1 큐, 상기 로지컬 블록 어드레스와 버추얼 어드레스간의 적어도 하나의 매핑 정보를 관리하는 제 2 큐, 및 상기 데이터 저장 매체의 적어도 하나의 무효 블록(invalidate block) 정보를 관리하는 제 3 큐를 이용하여 상기 로직컬 블록 어드레스를 상기 버추얼 어드레스로 변환하고, 상기 제 3 큐에 있는 상기 무효 블록 정보가 풀(full) 상태이거나 상기 데이터 저장 장치의 동작이 아이들 타임(idle time)이면, 상기 무효 블록 정보를 소팅하여 상기 제 1 큐로 전송하는 것이 바람직하다.
상기 수신되는 커맨드가 라이트 커맨드이면, 상기 컨트롤러는, 상기 제 2 레이어에서 상기 제 1 큐에 있는 하나의 리저브드 블록 정보가 선택되면, 상기 선택된 정보에 대응되는 상기 데이터 저장 매체의 리저브드 블록으로 상기 헤드 데이터 저장 매체 어셈블리에 포함된 헤드가 이동되도록 상기 제 3 레이어를 운영하고, 상기 수신되는 커맨드가 리드 커맨드이면, 상기 컨트롤러는 상기 제 2 레이어에서 상기 제 2 큐에 있는 매핑 정보에서 상기 수신되는 커맨드에 포함되어 있는 로지컬 블록 어드레스에 대응되는 버추얼 어드레스를 서치하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 달성하기 위하여 본 발명은 버추얼 어드레스 기반으로 데이터 저장 장치를 액세스하는 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명에 의하면 데이터를 라이트 할 때, 버추얼 어드레스(Virtual Address)인 VPN(Virtual Page Number)을 기반으로 데이터 저장 매체를 순차적으로 액세스함으로써, 데이터를 라이트할 때, 시크(seek)나 헤드 스위칭(head switching) 동작을 최소화할 수 있어 액세스 시간을 줄일 수 있다.
또한, 라이트 카운트(Write count) 정보 또는 리드 카운트(Read count) 정보 또는 베드 블록(bad block) 정보 또는 재시도(retry) 정보 또는 헤드의 최소 움직임을 고려한 동선(moving line) 정보를 이용하여 데이터 저장 매체를 액세스할 때 데이터 저장 매체의 데이터 영역에 대한 소모 레벨링(wearing leveling)을 수행함으로써, 인접한 트랙을 라이트(Adjust Track Write, ATW라고 약함) 또는 리드(Adjust Track Read, ATR)하는 현상이 발생되는 것을 줄일 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시 예에 따른 데이터 저장 장치(data storage device)(100)의 기능 블록도이다. 도 1을 참조하면, 데이터 저장 장치(100)는 컨트롤러(110) 및 헤드 데이터 저장 매체 어셈블리(Head Data storage medium Assembly, HDA)(120)를 포함한다.
컨트롤러(110)는 미 도시된 호스트와 헤드 데이터 저장 매체 어셈블리(120) 간의 인터페이스를 컨트롤한다.
미 도시된 호스트는 예를 들어, 윈도우 계열의 오퍼레이팅 시스템 프로그램에 따라 동작되는 장치일 수 있다. 예를 들어, 호스트는 컴퓨터 시스템일 수 있다. 그러나, 데이터 저장 장치(100)는 호스트의 오퍼레이팅 시스템 프로그램의 종류와 무관하게 모든 어드레스 값을 이용하여 데이터 저장 장치(100)내에 포함된 저장 매체를 액세스할 수 있도록 버추얼 어드레스(virtual address)를 이용할 수 있다.
헤드 데이터 저장 매체 어셈블리(120)는 데이터 저장 장치(100)가 하드디스크 드라이브(Hard Disk Drive, HDD)인 경우에 헤드 디스크 어셈블리라고 할 수 있다. 헤드 데이터 저장 매체 어셈블리(120)는 도 2에 도시된 바와 같이 구성될 수 있다.
헤드 데이터 저장 매체 어셈블리(120)는 스핀들 모터(14)에 의하여 회전되는 적어도 하나의 데이터 저장 매체(12)를 포함하고 있다. 데이터 저장 매체(12)는 자기 디스크라고 표현할 수 있다. 헤드 데이터 저장 매체 어셈블리(120)는 데이터 저장 매체(12) 표면에 인접되게 위치한 헤드(16)를 포함하고 있다. 헤드(16)는 변환기라고 표현할 수 있다.
헤드(16)는 각각의 데이터 저장 매체(12)의 자계를 감지하고 자화시킴으로써 회전하는 데이터 저장 매체(12)로부터 데이터를 리드하거나 데이터 저장 매체(12)에 데이터를 라이트할 수 있다. 전형적으로 헤드(16)는 각 데이터 저장 매체(12) 표면에 결합되어 있다. 도 2의 경우에 비록 단일의 헤드(16)로 도시되어 있지만, 이는 데이터 저장 매체(12)를 자화시키기 위한 라이트용 헤드와 데이터 저장 매 체(12)의 자계를 감지하기 위한 리드용 헤드로 이루어져 있다고 해석되어야 한다. 리드용 헤드는 자기 저항(MR, Magneto-Resistive) 소자로 구성될 수 있다.
헤드(16)는 슬라이더(20)에 통합되어 질 수 있다. 슬라이더(20)는 헤드(16)와 데이터 저장 매체(12) 표면 사이에 공기 베어링(air bearing)을 생성시키는 구조로 되어 있다. 슬라이더(20)는 헤드 짐벌 어셈블리(22)에 결합되어 있다. 헤드 짐벌 어셈블리(22)는 보이스 코일(26)을 갖는 액추에이터 암(24)에 부착되어 있다. 보이스 코일(26)은 보이스 코일 모터(VCM:Voice Coil Motor, 30)를 특정하도록 마그네틱 어셈블리(28)에 인접되게 위치하고 있다. 보이스 코일(26)에 공급되는 전류는 베이렁 어셈블리(32)에 대하여 액추에이터 암(24)을 회전시키는 토오크를 발생시킨다. 액추에이터 암(24)의 회전은 데이터 저장 매체(12) 표면을 가로질러 헤드(16)를 이동시킬 것이다.
데이터는 전형적으로 데이터 저장 매체(12)의 환상 트랙내에 저장된다. 각 트랙(34)은 일반적으로 복수의 섹터를 포함하고 있다. 각 섹터는 데이터 필드(data field)와 식별 필드(identification field)를 포함하고 있다. 식별 필드는 섹터 및 트랙(실린더)을 식별하는 그레이 코드(Gray code)로 구성되어 있다. 헤드(16)는 다른 트랙에 있는 정보를 리드하거나 라이트하기 위하여 데이터 저장 매체(12) 표면을 가로질러 이동된다.
컨트롤러(110)는 미 도시된 호스트로부터 수신된 커맨드에 따라 헤드 데이터 저장 매체 어셈블리(120)의 구동을 제어할 수 있다. 특히, 본 발명에 따라 호스트로부터 커맨드가 수신되면, 컨트롤러(110)는 호스트로부터 수신되는 커맨드에 포함 된 로지컬 블록 어드레스(Logical Block Address, LBA)를 데이터 저장 매체(12)의 리저브드 블록(reserved block)에 기초한 버추얼 어드레스(virtual address)로 변환하여 데이터 저장 매체(12)를 액세스한다.
리저브드 블록은 데이터 저장 매체(12)에서 데이터를 라이트할 준비가 되어 있는 유효한(valid) 블록이다. 버추얼 어드레스는 리저브드 블록의 실제 어드레스(real address)인 CHS(Cyinder Head Sector)를 근거로 정의된다. 예를 들어, 버추얼 어드레스는 하기 표 1과 같이 정의될 수 있다.
버추얼 어드레스 | CHS |
1 | 실린더1-헤드1-섹터2 |
2 | 실린더1-헤드2-섹터1 |
3 | 실린더2-헤드1-섹터2 |
표 1에서 알 수 있는 바와 같이 데이터 저장 매체(12)의 리저브드 블록들은 서로 인접한 블록일 수도 있고, 몇 블록이 스킵(skip)된 블록일 수 있다. 스킵된 블록은 베드 블록(bad block)일 수 있다.
따라서, 버추얼 어드레스를 근거로 데이터를 라이트할 경우에, 데이터 저장 매체(12)의 리저브드 블록 순으로 데이터가 라이트되는 것이다. 또한, 버추얼 어드레스는 CHS에 대해 페이지(page) 단위로 넘버(number)가 할당되도록 정의될 수 있다. 따라서, 버추얼 어드레스는 버추얼 페이지 넘버(Virtual Page Number, VPN)로 표현할 수 있다.
컨트롤러(110)는 버추얼 어드레스에 기초하여 데이터 저장 매체(12)를 액세스하기 위하여, 도 1에 도시된 바와 같이 3개의 레이어(layer)로 나누어 미 도시된 호스트와 헤드 데이터 저장 매체 어셈블리(120)간의 인터페이스를 컨트롤 할 수 있다.
즉, 도 1에 도시된 바와 같이 컨트롤러(110)는 제 1 레이어(111), 제 2 레이어(112), 및 제 3 레이어(113)를 포함할 수 있다. 제 1 레이어(111), 제 2 레이어(112), 및 제 3 레이어(113)는 데이터 저장 장치(100)가 HDD일 때, HTL(HDD Translation Layer)로 정의할 수 있다. 이는 컨트롤러(110)가 호스트의 커맨드에 포함된 LBA를 버추얼 어드레스로 변환하기 때문이다.
제 1 레이어(111)는 호스트로부터 수신되는 커맨드를 데이터 커맨드(data command)와 논 데이터 커맨드(non-data command)로 구분하는 것으로, HTL(HDD Interface Layer)로 정의할 수 있다. 데이터 커맨드는 리드 커맨드(read command)와 라이트 커맨드(write command)를 포함할 수 있다. 논 데이터 커맨드는 헤드 데이터 저장 매체 어셈블리(120)의 설정을 변경하는 커맨드(set feature command), 스탠바이 커맨드(standby command), 리셋 커맨드(reset command) 등이 포함될 수 있다.
제 2 레이어(112)는 제 1 레이어(111)로부터 수신되는 데이터 커맨드에 포함된 LBA를 버추얼 어드레스(Virtual Address, VA)로 변환하는 것으로, VML(Virtual Mapping Layer)로 정의할 수 있다. 제 2 레이어(112)는 LBA를 VA로 변환하기 위하여 3개의 큐(Queue)를 이용하는 구조로 구현할 수 있다.
도 3은 제 2 레이어(112)에 포함되는 큐의 구성 예이다.
제 1 큐(301)는 헤드 데이터 저장 매체 어셈블리(120)에 포함된 데이터 저장 매체(12)의 적어도 하나의 리저브드 블록 정보를 관리하는 것으로, 프리 큐(free queue)로 표현할 수 있다. 제 2 큐(302)는 LBA와 VA간의 적어도 하나의 매핑 정보를 관리하는 것으로, 얼로케이션 큐(allocation queue)로 표현할 수 있다. 제 3 큐(303)는 데이터 저장 매체(12)의 적어도 하나의 무효 블록(invalidate block) 정보를 관리하는 것으로, 가비지 큐(garbage queue)로 표현할 수 있다.
제 1 내지 제 3 큐(301-303)를 이용한 제 2 레이어(112)의 동작은 하기와 같다. 즉, 제 1 레이어(111)로부터 수신된 데이터 커맨드가 라이트 커맨드이면, 제 1 큐(301)에 있는 리저브드 블록 정보중 하나의 리저브드 블록 정보를 선택한다. 리저브드 블록 선택은 제 1 큐(301)에 복수개의 리저브드 블록 정보가 존재하면, 첫 번째 순위의 리저브드 블록 정보가 선택된다. (304)는 선택된 리저브드 블록 정보이다.
이 때, 제 2 레이어(112)는 제 3 레이어(113)를 콜(call)하여 선택된 리저브드 블록 정보에 대응되는 데이터 저장 매체(12)의 리저브드 블록으로 헤드(16)를 이동시킨다. 이에 따라 리저브드 블록에 데이터가 바로 라이트되어, 데이터 라이트시 액세스 시간을 줄일 수 있다. 제 1 큐(301)에 저장되는 리저브드 블록 정보는 적어도 리저브드 블록의 CHS, CHS에 대응되는 VA, 및 메타 데이터를 포함한다. 메타 데이터는 해당 블록에 대한 라이트 카운트(write count), 리드 카운트(read count), 재시도 카운트(retry count)를 포함할 수 있다.
상기 리저브드 블록에 데이터가 라이트되면, 수신된 커맨드에 포함된 LBA에 선택된 리저브드 블록 정보에 포함된 VA를 할당하면서, 선택된 리저브드 블록 정보를 액티브 블록 정보(305)로 설정한다. 제 1 큐(301)에서 리저브드 블록 정보를 선택하여 액티브 블록 정보(305)로 설정하는 상술한 과정은 호스트로부터 라이트 커맨드가 수신될 때마다 수행된다.
상술한 과정에 의해 액티브 블록 정보가 N개 이상이 되면, 제 2 레이어(112)에서 컨트롤러(110)는 제 2 큐(302)에 이미 존재하는 매핑 정보에 액티브 블록 정보로 설정된 정보에 포함되어 있는 VA와 동일한 VA가 존재하는지 체크한다. 체크결과, 동일한 VA가 존재하지 않으면, N개 이상의 액티브 블록 정보를 제 2 큐(302)에 인서트(insert)한다.
그러나 체크결과, 제 2 큐(302)에 존재하는 매핑 정보에 동일한 VA가 존재하면, 이미 존재하는 매핑 정보에 포함되어 있는 VA가 할당된 블록 정보를 무효 블록(invalidate block) 정보로 설정하여 제 3 큐(303)로 전송한다(306). 그리고, 액티브 블록 정보(305)로 설정되어 있는 정보를 제 2 큐(302)에 인서트한다. 상기 N은 한번에 제 2 큐(302)에 인서트 할 수 있는 조건에 기초하여 설정될 수 있는 정수이다. 제 2 큐(302)에 저장되는 매핑 정보는 적어도 LBA, LBA에 할당된 VA, VA에 대응되는 CHS, 및 각 블록에 할당된 메타 정보를 포함할 수 있다. 메타 정보는 제 1 큐(301)에서 정의된 메타 정보를 적어도 포함할 수 있다.
제 3 큐(303)의 무효 블록 정보가 풀(full)상태이거나 데이터 저장 장치(100)의 동작상태가 아이들 타임(idle time)이면, 제 3 큐(303)는 저장되어 있는 무효 블록 정보의 메타 정보에 기초하여 무효 블록 정보를 소팅(sorting)하고, 소팅된 정보를 제 1 큐(301)로 전송한다(307). 예를 들어, 메타 정보중 라이트 카운트에 기초하여 무효 블록 정보를 소팅하거나 리드 카운트에 기초하여 무효 블록 저보를 소팅하거나 재시도 카운트에 기초하여 무효 블록 정보를 소팅할 수 있다. 또는 헤드(16)의 최소 움직임을 고려한 동선에 기초하여 무효 블록 정보가 소팅될 수 있도록, 제 3 큐(303)에 상기 동선에 기초한 알고리즘이 설정될 수 있다.
또한, 제 1 레이어(111)로부터 수신된 커맨드가 리드 커맨드이면, 컨트롤러(110)는 제 2 레이어(112)에서 리드 커맨드에 포함된 LBA를 이용하여 제 2 큐(302)에서 대응되는 VA를 서치한다. VA가 서치되면, 제 2 레이어(112)에서 컨트롤러(110)는 제 3 레이어(113)를 콜하여 서치된 VA에 대응되는 CHS로 헤드(16)를 이동시켜 데이터 저장 매체(12)로부터 데이터를 리드한다.
상술한 바와 같이 본 발명은 제 1 큐(301)와 제 2 큐(302)를 이용하여 리저브드 블록과 액티브 블록을 독립적으로 관리함으로써, 유효한 블록 순으로 데이터를 라이트할 수 있으므로, 액세스 지연 시간을 줄일 수 있다. 또한, 데이터 리드시 VA를 용이하게 서치할 수 있다.
제 3 레이어(113)에서 컨트롤러(110)는 제 2 레이어(112)로부터 전송된 VA를 CHS로 변환하여 헤드 데이터 저장 매체 어셈블리(120)의 데이터 저장 매체(12)를 액세스한다.
상술한 데이터 저장 장치(100)는 CHS를 이용하는 하드디스크 이외에도 자신의 영역에 특정 어드레스 값을 가질 수 있는 모든 저장 매체를 포함할 수 있다. 이에 따라 상술한 버추얼 어드레스는 하드디스크 이외의 저장 매체에 적용될 수 있다.
도 4는 본 발명의 일 실시 예에 따른 데이터 저장 매체 액세스 방법의 동작 흐름도이다. 도 4의 흐름도는 도 1의 컨트롤러(110)에서 운영될 수 있다.
도 4를 참조하면, 단계 401에서 호스트로부터 수신되는 커맨드에 포함된 로직컬 블록 어드레스(logical block address)를 버추얼 어드레스(virtual address)로 변환한다. 어드레스 변환은 도 1 및 도 3에서 설명한 복수의 큐를 이용하는 것과 유사하게 수행될 수 있다.
즉, 도 5는 LBA를 VPN(Virtual Page Number, 또는 VP, 이하 설명의 편의를 위하여 VPN이라 칭함)으로 변환하는 일 실시 예의 동작 흐름도이다. 도 5의 흐름도 역시 도 1의 컨트롤러(110)에서 운영될 수 있다.
도 5를 참조하면, 단계 501에서 호스트로부터 데이터 커맨드가 수신된 것으로 판단되면, 단계 502에서 수신된 커맨드가 리드 커맨드인지 판단한다. 판단 결과, 라이트 커맨드이면, 단계 503에서 제 1 큐(301)에 있는 리저브드 블록 정보중 하나의 리저브드 블록 정보를 선택한다. 단계 504에서 컨트롤러(110)는 제 3 레이어(113)를 콜(call)하여 헤드(16)를 선택된 리저브드 블록 정보에 대응되는 데이터 저장 매체(12)의 리저브드 블록으로 이동시킨다.
단계 505에서 선택된 리저브드 블록 정보에 포함되어 있는 VPN을 현재 수신된 커맨드에 포함되어 있는 LBA에 할당한다. 이에 따라 현재 수신된 커맨드에 포함되어 있는 LBA와 선택된 리저브드 블록 정보에 포함되어 있는 VPN은 매핑된다. 단계 506에서 컨트롤러(110)는 제 3 레이어(113)를 콜하여 데이터 저장 매체(12)의 리저브드 블록에 데이터를 라이트한다.
단계 507에서 리저브드 블록에 데이터라 라이트된 것으로 판단되면, 단계 508에서 컨트롤러(110)는 리저브드 블록 정보를 액티브 블록 정보로 설정하고, 액티브 블록 정보가 N개 이상인지 판단한다(509). 액티브 정보가 N개 이상이 아니면, 단계 501로 리턴되어 상술한 과정을 다시 수행한다.
그러나, 액티브 블록 정보가 N개 이상이면, 컨트롤러(110)는 LBA와 VPN의 매핑 정보를 제 2 큐(302)에 인서트한다(510).
한편, 수신된 데이터 커맨드가 리드 커맨드이면, 컨트롤러(110)는 제 2 큐(302)에 있는 매핑 정보에서 커맨드에 포함된 LBA에 대응되는 VPN을 서치하고(511), 제 3 레이어(113)를 콜하여 서치된 VPN에 기초한 데이터 리드 동작을 수행하기 위해 데이터 저장 매체(12)에 대한 액세스를 수행한다.
단계 501에서 수신된 커맨드가 데이터 커맨드가 아니면, 논 데이터 커맨드이므로, 컨트롤러(110)는 제 1 레이어(111)에서 바로 제 3 레이어(113)를 콜하여 논 데이터 커맨드에 따라 헤드 데이터 저장 매체 어셈블리(120)의 구동을 콘트롤한다.
도 6a 및 도 6b는 도 4의 LBA를 VPN로 변환하는 다른 실시 예의 동작 흐름도이다. 도 6a 및 도 6b는 도 5의 동작 흐름도에 도 3에 도시된 제 3 큐(303)의 동작이 추가된 예이다. 따라서, 단계 601부터 단계 609, 616, 617은 도 5의 단계 501부터 512와 중복되므로, 이하 설명에서 생략한다.
액티브 블록 정보를 제 2 큐(302)에 인서트하기 전에 제 2 큐(302)에 이미 존재하는 매핑 정보에 현재 인서트하고자 하는 액티브 블록 정보에 포함되어 있는 VPN과 동일한 VPN이 존재하는지 판단한다(610).
동일한 VPN이 존재하면, 컨트롤러(110)는 제 2 큐(302)에 있던 VPN에 대응되는 블록을 무효 블록 정보로 설정하여 제 3 큐(303)로 전송한다(611). 그 다음 액티브 블록 정보를 제 2 큐(302)에 인서트한다(612).
제 3 큐(303)가 풀(full) 상태이거나 데이터 저장 장치(100)의 동작이 아이들 타임(idle time)이면, 컨트롤러(110)는 제 3 큐(303)의 블록 정보를 소팅(sorting)한다(614). 소팅은 도 3에서 설명한 바와 유사하게 수행된다. 다음, 컨틀롤러(110)는 소팅된 블록 정보를 제 1 큐(301)로 전송한다.
한편, 단계 613에서 제 3 큐(303)가 풀 상태가 아니거나 데이터 저장 장치(100)가 아이들 타임이 아니면, 컨트롤러(110)의 동작은 단계 601로 리턴되어 상술한 과정을 다시 수행한다.
본 발명은 방법, 장치, 시스템 등으로서 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필연적으로 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되어 질 수 있다. 프로세서 판독 가능 매체는 정보를 저장 또는 전송할 수 있는 어떠한 매체도 포함한다. 프로세서 판독 가능 매체의 예로는 전자 회로, 반도체 메모리 소자, ROM, 플레쉬 메모리, 이레이져블 ROM(EROM : Erasable ROM), 플로피 디스크, 광 디스크, 하드 디스크, 광 섬유 매체, 무선 주파수(RF) 망, 등이 있다.
첨부된 도면에 도시되어 설명된 특정의 실시 예들은 단지 본 발명의 실시 예로서 이해되어 지고, 본 발명의 범위를 한정하는 것이 아니며, 본 발명이 속하는 기술 분야에서 본 발명에 기술된 기술적 사상의 범위에서도 다양한 다른 변경이 발생될 수 있으므로, 본 발명은 보여지거나 기술된 특정의 구성 및 배열로 제한되지 않는 것은 자명하다.
도 1은 본 발명의 일 실시 예에 따른 데이터 저장 장치의 기능 블록도이다.
도 2는 도 1의 헤더 데이터 저장 매체 어셈블리의 세부 구성도이다.
도 3은 도 1에 도시된 제 2 레이어에 포함되는 큐의 구성 예이다.
도 4는 본 발명의 일 실시 예에 따른 데이터 저장 매체 액세스 방법의 동작 흐름도이다.
도 5는 도 4의 LBA를 VPN로 변환하는 일 실시 예의 동작 흐름도이다.
도 6a 및 도 6b는 도 4의 LBA를 VPN로 변환하는 다른 실시 예의 동작 흐름도이다.
Claims (11)
- 호스트로부터 수신되는 커맨드에 포함된 로지컬 블록 어드레스(logical block address)를 버추얼 어드레스(virtual address)로 변환하는 단계;상기 버추얼 어드레스를 데이터 저장 장치에 포함된 데이터 저장 매체의 리얼 어드레스(real address)로 변환하고, 상기 리얼 어드레스를 이용하여 상기 데이터 저장 매체를 액세스하는 단계를 포함하고,상기 버추얼 어드레스는 데이터 라이트(write) 동안 상기 데이터 저장 매체의 리저브드 블록(reserved block) 기반 어드레스이고,상기 리저브드 블록은 데이터를 라이트할 준비가 되어 있는 유효 블록이고,상기 데이터 라이트시 상기 데이터 저장 장치에 포함된 헤드의 현재 위치는 상기 리저브드 블록 기반의 위치에 따라 설정되며, 그리고상기 데이터 저장 매체를 액세스하는 단계는 라이트 카운트(Write count) 정보, 리드 카운트(Read count) 정보, 베드 블록(bad block) 정보, 재시도(retry) 정보 또는 헤드의 최소 움직임을 고려하여 획득한 헤드의 동선(moving line)을 이용하여 상기 데이터 저장 매체의 데이터 영역에 대한 소모 레벨링(wear leveling)하는 단계를 포함하며,상기 수신되는 커맨드가 라이트 커맨드(write command)이면,상기 로지컬 블록 어드레스를 버추얼 어드레스로 변환하는 단계는,제 1 큐(queue)에 있는 상기 데이터 저장 매체의 리저브드 블록 정보중 하나를 선택하는 단계;상기 선택된 리저브드 블록 정보에 대응되는 상기 데이터 저장 매체의 리저브드 블록으로 상기 헤드를 이동시키는 단계;상기 수신된 커맨드에 포함된 로직컬 블록 어드레스에 상기 선택된 리저브드 블록 정보에 대응되는 버추얼 어드레스를 할당하는 단계;상기 리저브드 블록에 데이터가 라이트되면, 상기 리저브드 블록 정보를 액티브 블록 정보로 설정하는 단계; 및상기 액티브 블록 정보가 소정 개수이상이 되면, 상기 로직컬 블록 어드레스와 상기 버추얼 어드레스간의 매핑 정보를 제 2 큐에 인서트(insert)하는 단계를 포함하는,데이터 저장 매체 액세스 방법.
- 삭제
- 제 1 항에 있어서, 상기 매핑 정보를 상기 제 2 큐에 인서트 하는 단계는,상기 매핑 정보를 인서트하기 전에 상기 매핑 정보에 포함된 버추얼 어드레스와 동일한 버추얼 어드레스가 상기 제 2 큐에 존재하는지 체크하는 단계;상기 동일한 버추얼 어드레스가 상기 제 2 큐에 존재하면, 상기 제 2 큐에 존재하는 기존의 버추얼 어드레스가 할당된 블록 정보를 무효 블록 정보로 설정하고, 상기 무효 블록 정보를 제 3 큐로 전송하는 단계를 포함하는,데이터 저장 매체 액세스 방법.
- 제 3 항에 있어서, 상기 로지컬 블록 어드레스를 버추얼 어드레스로 변환하는 단계는,상기 제 3 큐에 무효 블록 정보가 풀(full) 상태가 되거나 상기 데이터 저장 장치의 동작이 아이들 타임(idle time)이 되면, 상기 제 3 큐에 있는 무효 블록 정보를 소팅하여 상기 제 1 큐로 전송하는 단계를 더 포함하는,데이터 저장 매체 액세스 방법.
- 제 1 항, 제 3 항 및 제 4 항 중 어느 한 항에 있어서, 상기 수신되는 커맨드가 리드 커맨드이면,상기 로지컬 블록 어드레스를 버추얼 어드레스로 변환하는 단계는,상기 제 2 큐의 매핑 정보를 이용하여 상기 로지컬 블록 어드레스에 대응되는 버추얼 어드레스를 서치하는 단계를 더 포함하는 것을 특징으로 하는,데이터 저장 매체 액세스 방법.
- 헤드 데이터 저장 매체 어셈블리(assembly); 및호스트로부터 수신되는 커맨드에 포함된 로지컬 블록 어드레스를 상기 헤드 데이터 저장 매체 어셈블리에 포함된 데이터 저장 매체의 리저브드 블록에 기초한 버추얼 어드레스로 변환하여 상기 데이터 저장 매체를 액세스하는 컨트롤러를 포함하고,상기 리저브드 블록은 데이터를 라이트할 준비가 되어 있는 유효 블록이며, 그리고상기 데이터 저장 매체를 액세스하는 컨트롤러는, 라이트 카운트(Write count) 정보, 리드 카운트(Read count) 정보, 베드 블록(bad block) 정보, 재시도(retry) 정보 또는 헤드의 최소 움직임을 고려하여 획득한 헤드의 동선(moving line)을 이용하여 상기 데이터 저장 매체의 데이터 영역에 대한 소모 레벨링(wear leveling)을 수행하고,상기 컨트롤러는 3개의 레이어(layer)로 상기 호스트와 상기 헤드 데이터 저장 매체 어셈블리간(HDA)의 인터페이스를 컨트롤하고,상기 3개의 레이어는,상기 호스트로부터 수신되는 커맨드를 데이터 커맨드(data command)와 논 데이터 커맨드(non-data command)로 구분하는 제 1 레이어(layer);상기 제 1 레이어로부터 수신되는 데이터 커맨드에 포함된 로지컬 블록 어드레스를 버추얼 어드레스로 변환하는 제 2 레이어; 및상기 버추얼 어드레스에 기초한 상기 데이터 저장 매체에 대한 액세스 및 상기 논 데이터 커맨드에 기초하여 상기 헤드 데이터 저장 매체 어셈블리를 구동하는 제 3 레이어를 포함하는,데이터 저장 장치.
- 삭제
- 제 6 항에 있어서, 상기 컨트롤러는 상기 제 2 레이어에서,상기 헤드 데이터 저장 매체 어셈블리에 포함된 데이터 저장 매체의 적어도 하나의 리저브드 블록 정보를 관리하는 제 1 큐,상기 로지컬 블록 어드레스와 버추얼 어드레스간의 적어도 하나의 매핑 정보를 관리하는 제 2 큐, 및상기 데이터 저장 매체의 적어도 하나의 무효 블록(invalidate block) 정보를 관리하는 제 3 큐를 이용하여 상기 로지컬 블록 어드레스를 상기 버추얼 어드레스로 변환하고,상기 제 3 큐에 있는 상기 무효 블록 정보가 풀(full) 상태이거나 상기 데이터 저장 장치의 동작이 아이들 타임(idle time)이면, 상기 무효 블록 정보를 소팅하여 상기 제 1 큐로 전송하는,데이터 저장 장치.
- 제 8 항에 있어서, 상기 커맨드가 라이트 커맨드이면,상기 컨트롤러는, 상기 제 2 레이어에서 상기 제 1 큐 내의 하나 또는 그 초과의 리저브드 블록 정보들 중 하나의 리저브드 블록 정보가 선택되면, 상기 데이터 저장 매체의 리저브드 블록 정보의 선택된 정보에 대응하는 리저브드 블록으로 상기 헤드 데이터 저장 매체 어셈블리에 포함된 헤드가 이동되도록 상기 제 3 레이어를 운영하고,상기 수신되는 커맨드가 리드 커맨드이면,상기 컨트롤러는 상기 제 2 레이어에서 상기 제 2 큐에 있는 매핑 정보에서 상기 수신되는 커맨드에 포함되어 있는 로지컬 블록 어드레스에 대응되는 버추얼 어드레스를 서치하는,데이터 저장 장치.
- 제 1 항, 제 3 항 및 제 4 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록하는,컴퓨터 판독 가능한 기록 매체.
- 제 5 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록하는,컴퓨터 판독 가능한 기록 매체.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090055980A KR101674015B1 (ko) | 2009-06-23 | 2009-06-23 | 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체 |
EP10166478A EP2267721A1 (en) | 2009-06-23 | 2010-06-18 | Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method |
US12/819,362 US8527735B2 (en) | 2009-06-23 | 2010-06-21 | Data storage using virtual addressing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090055980A KR101674015B1 (ko) | 2009-06-23 | 2009-06-23 | 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100137768A KR20100137768A (ko) | 2010-12-31 |
KR101674015B1 true KR101674015B1 (ko) | 2016-11-08 |
Family
ID=42732075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090055980A KR101674015B1 (ko) | 2009-06-23 | 2009-06-23 | 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8527735B2 (ko) |
EP (1) | EP2267721A1 (ko) |
KR (1) | KR101674015B1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102067056B1 (ko) * | 2011-04-26 | 2020-01-16 | 시게이트 테크놀로지 엘엘씨 | 저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체 |
KR20120121736A (ko) * | 2011-04-27 | 2012-11-06 | 삼성전자주식회사 | 데이터 라이트 방법 및 저장 장치 |
US8868882B2 (en) * | 2011-06-08 | 2014-10-21 | Microsoft Corporation | Storage architecture for backup application |
US9189395B2 (en) * | 2012-04-27 | 2015-11-17 | Seagate Technology Llc | Method and apparatus for adjustable virtual addressing for data storage |
WO2017074491A1 (en) | 2015-10-30 | 2017-05-04 | Hewlett Packard Enterprise Development Lp | Data locality for hyperconverged virtual computing platform |
TWI587214B (zh) * | 2016-04-21 | 2017-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置、其控制單元及其任務排序方法 |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
KR102395477B1 (ko) * | 2017-11-20 | 2022-05-09 | 삼성전자주식회사 | 호스트 메모리에 대한 메모리 액세스를 스케쥴링하는 장치 컨트롤러, 및 이를 포함하는 저장 장치 |
CN110968268B (zh) * | 2019-11-15 | 2023-03-17 | 成都智邦科技有限公司 | 一种基于spiflash的存储管理方法及存储结构 |
US20210223998A1 (en) * | 2021-04-05 | 2021-07-22 | Intel Corporation | Method and apparatus to reduce nand die collisions in a solid state drive |
CN115016742B (zh) * | 2022-08-08 | 2022-12-02 | 北谷电子有限公司 | 一种嵌入式设备的内存扩展方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128717A (en) * | 1998-01-20 | 2000-10-03 | Quantum Corporation | Method and apparatus for storage application programming interface for digital mass storage and retrieval based upon data object type or size and characteristics of the data storage device |
US6892250B2 (en) * | 2000-02-09 | 2005-05-10 | Seagate Technology Llc | Command queue processor |
US20010048567A1 (en) * | 2000-02-25 | 2001-12-06 | Yong Peng Chng | Variable spares per track defect management system |
US6665772B1 (en) * | 2000-07-31 | 2003-12-16 | Western Digital Ventures, Inc. | Data storage method and device for storing streaming and non-streaming data in common memory space |
WO2006050455A2 (en) * | 2004-11-05 | 2006-05-11 | Trusted Data Corporation | Dynamically expandable and contractible fault-tolerant storage system with virtual hot spare |
US7149046B1 (en) * | 2005-05-23 | 2006-12-12 | Western Digital Technologies, Inc. | Disk drive implementing wear prevention in a high frequency access band of tracks |
JP4240496B2 (ja) * | 2005-10-04 | 2009-03-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アクセス制御のための装置および方法 |
US20070226451A1 (en) * | 2006-03-22 | 2007-09-27 | Cheng Antonio S | Method and apparatus for full volume mass storage device virtualization |
KR101185617B1 (ko) | 2006-04-04 | 2012-09-24 | 삼성전자주식회사 | 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법 |
KR100874702B1 (ko) | 2006-10-02 | 2008-12-18 | 삼성전자주식회사 | 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법 |
KR100823171B1 (ko) | 2007-02-01 | 2008-04-18 | 삼성전자주식회사 | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 |
EP2186092A1 (en) * | 2007-08-22 | 2010-05-19 | Thomson Licensing | Hard disk sector/track remapping for transparent wear leveling |
KR20090026941A (ko) * | 2007-09-11 | 2009-03-16 | 삼성전자주식회사 | 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치 |
-
2009
- 2009-06-23 KR KR1020090055980A patent/KR101674015B1/ko active IP Right Grant
-
2010
- 2010-06-18 EP EP10166478A patent/EP2267721A1/en not_active Ceased
- 2010-06-21 US US12/819,362 patent/US8527735B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2267721A1 (en) | 2010-12-29 |
US8527735B2 (en) | 2013-09-03 |
US20100325384A1 (en) | 2010-12-23 |
KR20100137768A (ko) | 2010-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101674015B1 (ko) | 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체 | |
US8706985B1 (en) | System and method for optimizing garbage collection in data storage | |
US9507538B2 (en) | File management system for devices containing solid-state media | |
US8560759B1 (en) | Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency | |
US6606714B1 (en) | Disk drive using defect list to perform uninterrupted writing of non-relocated data blocks and caching of relocated data blocks for deferred writing | |
US8341339B1 (en) | Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk | |
KR101517761B1 (ko) | 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템 | |
US8443167B1 (en) | Data storage device employing a run-length mapping table and a single address mapping table | |
US8819375B1 (en) | Method for selective defragmentation in a data storage device | |
US8583879B2 (en) | Data storage device, storing medium access method and storing medium thereof | |
KR101890767B1 (ko) | 주소 사상 정보 관리 방법 이를 적용한 저장 장치 | |
US9619178B2 (en) | Hybrid storage apparatus and logical block address assigning method | |
US9063659B2 (en) | Method and apparatus for data sector cluster-based data recording | |
US9268499B1 (en) | Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory | |
US9804786B2 (en) | Sector translation layer for hard disk drives | |
KR20120121741A (ko) | 데이터 리드 방법 및 이를 적용한 저장 장치 | |
KR20120121742A (ko) | 주소 사상 정보 관리 방법, 디스크 드라이브에서의 액세스 방법, 네트워크를 통한 주소 사상 정보 관리 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체 | |
US20100079904A1 (en) | Storage control method, storage control unit and storage apparatus | |
US9927981B2 (en) | Hybrid data storage device with partitioned local memory | |
US7913029B2 (en) | Information recording apparatus and control method thereof | |
JP2015082240A (ja) | ストレージ装置、キャッシュコントローラ、及び不揮発性記憶媒体にデータを書き込む方法 | |
US20120162809A1 (en) | Magnetic disk drive and method of accessing a disk in the drive | |
US6693754B2 (en) | Method and apparatus for a disc drive adaptive file system | |
KR20070060301A (ko) | 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버 | |
US8032699B2 (en) | System and method of monitoring data storage activity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190918 Year of fee payment: 4 |