KR20070060301A - 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버 - Google Patents

불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버 Download PDF

Info

Publication number
KR20070060301A
KR20070060301A KR1020050119560A KR20050119560A KR20070060301A KR 20070060301 A KR20070060301 A KR 20070060301A KR 1020050119560 A KR1020050119560 A KR 1020050119560A KR 20050119560 A KR20050119560 A KR 20050119560A KR 20070060301 A KR20070060301 A KR 20070060301A
Authority
KR
South Korea
Prior art keywords
data
disk
cache
write cache
write
Prior art date
Application number
KR1020050119560A
Other languages
English (en)
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 KR1020050119560A priority Critical patent/KR20070060301A/ko
Publication of KR20070060301A publication Critical patent/KR20070060301A/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 자기 디스크를 저장매체로, 불휘발성 반도체 메모리를 쓰기 캐시로 장착한 하드 디스크 장치에 관한 것으로, 외부와 인터페이싱하는 호스트 인터페이스; 상기 호스트 인터페이스로부터 순차적으로 전달되는 적어도 하나의 업데이트 명령에 응답하여 상기 업데이트 명령에 대응하는 복수의 데이터를 상기 쓰기 캐시로 순차적으로 프로그램하되, 상기 복수의 데이터에 대해서 상기 쓰기 캐시 상에서 업데이트 되도록 상기 쓰기 캐시를 제어하는 캐시 제어부; 상기 쓰기 캐시로부터 출력되는 복수의 데이터를 상기 자기 디스크에 기록하는 디스크 제어기를 포함한다.
이러한 구성을 통하여 본 발명의 하드 디스크 장치는 지속적으로 업데이트 되는 데이터에 대해서 쓰기 캐시에서의 1차적인 업데이트를 수행하고, 하드 디스크상에는 쓰기 캐시에서 업데이트 된 최종 데이터만을 기록하도록 하여 하드 디스크의 부담을 최소화할 수 있다.

Description

불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크 드라이버{HARD DISK DRIVER HAVING NON-VOLATILE WRITE CACHE}
도 1은 일반적인 하드 디스크의 구성을 보여주는 블록도;
도 2는 본 발명의 불휘발성 쓰기 캐시를 포함하는 하이브리드 하드 디스크를 보여주는 블록도;
도 3은 본 발명에 따른 플러시 동작을 설명하는 도면;
도 4는 본 발명에 따른 캐시 프로그램을 설명하는 흐름도.
*도면의 주요부분에 대한 부호의 설명*
10 : 호스트 인터페이스 20 : 버퍼램
30 : 버퍼램 매니저 40 : 디스크 제어기
50 : 디스크 100 : 플러시 제어부
110 : 데이터 흐름 제어기 120 : 캐시 매니저
130 : 데이터 매니저 140 : 불휘발성 쓰기 캐시
본 발명은 저장매체에 관한 것으로, 더욱 상세하게는 불휘발성 메모리를 쓰 기 캐시로 구비하는 디스크 드라이버에 관한 것이다.
일반적으로, 하드 디스크 드라이버(Hard Disk Driver : 이하 HDD)는 중앙처리장치(CPU)나 호스트 측의 명령에 따라 외부의 데이터를 자기 디스크에 기록하거나 자기 디스크에 기록된 데이터를 외부로 출력한다. 제조기술의 발전과 소비자의 요구에 응하여 하드 디스크의 용량은 비약적으로 증가하여 왔다. 또한, 최근에는 저전력, 저중량, 휴대성 및 내구성 등의 모바일 트랜드가 하드 디스크에도 지대한 영향을 끼치고 있다. 낸드 플래시 메모리는 모바일 트랜드에 적합한 불휘발성 메모리로 다양한 분야에서 그 응용이 활성화되고 있다. 일 예로, 모바일 기기에 채택하는 하이 앤드형 HDD로 낸드 플래시 기반의 차세대 저장장치인 반도체 디스크 장치(Solid State Disk : 이하 SSD)가 등장하였다. 회전형 자기 디스크(또는 플레터)와 액츄에이터(Actuator) 및 헤더(Header) 등의 기계적 구성을 낸드 플래시 메모리로 전환하여 저전력, 저소음, 내구성, 휴대성을 구비한 대용량 저장장치를 구현하고 있다. 반도체 디스크(SSD)는 대용량 저장 장치로서 자기 디스크형 HDD에 비하여 기억 용량이나 비용면에서는 불리하지만 액세스 속도와 소형화 및 충격으로부터의 안정성 등에 우위를 점하고 있다. 또한 공정 기술과 설계 기술의 진보에 따라 점차 반도체 디스크의 기억 용량 증가와 비용의 감소가 예상되며, 머지않아 반도체 디스크가 자기형 디스크를 대체할 것으로 전망된다. 그러나 당분간 보급형의 일반적인 하드 디스크 장치의 가격 대비 용량에 있어서, 자기 디스크형 HDD를 능가하는 저장매체는 등장하지 않을 전망이다. 아직까지 낸드 플래시의 용량당 가격이 HDD에 비해 크게 높은 상황임을 감안하여, 자기 디스크형 HDD에 낸드 플래시를 결합한 차세 대 하이브리드 하드 디스크 드라이버(Hybrid HDD)가 등장하였다. 하이브리드 HDD와 SSD는 모두 낸드 플래시의 기술적 장점을 응용해 사용자 편익을 추구한 장치들이다. 특히, 하이브리드 HDD는 대용량 HDD에 비휘발성ㆍ고속입출력 특성을 지닌 원낸드(OneNAND)를 버퍼 메모리로 장착해 디스크의 회전수를 크게 줄일 수 있도록 하였다. 이러한 스킴의 적용을 통하여 부팅시간, 전력소모, 발열, 소음을 크게 줄이는 동시에 HDD 수명을 연장할 수 있다.
도 1은 일반적인 하드 디스크 장치를 간략히 보여주는 블록도이다. 도 1 을 참조하면, 호스트에서 이슈(Issue) 하는 실행 명령어에 대응되는 하드 디스크 내의 명령어와 데이터, 어드레스가 버퍼램(20)에 일시 저장되고, 디스크 제어기(40)에 의해서 해당하는 명령어의 실행이 이루어진다.
호스트 인터페이스(10)는 호스트 측의 프로토콜과 데이터의 교환을 가능하도록 제반 데이터 교환을 중재한다. 일 예로 일반적인 컴퓨터 시스템에서는 디스크 드라이버의 데이터 전송 프로토콜로 미국의 IBM사가 제안한 HDD용 규격인 SATA(Serial Advanced Technology Attachment) 방식 또는 네트워크 기반 시스템을 지원하는 SCSI(Small Computer System Interface)이 폭넓게 사용되고 있다. 호스트 측의 프로토콜과 호환성을 갖기 위해서 호스트 인터페이스(10)가 삽입된다.
버퍼램(20)은 디스크로의 쓰기 동작에서는 디스크에 기입되는 데이터와 어드레스 및 명령어가 외부의 호스트(host)로부터 전송되어 임시 저장하는 데 사용된다. 또한, 버퍼램(20)은 읽기 동작에서는 디스크의 헤드로부터 감지된 데이터가 외부로 출력되기 전에 임시 저장된다. 일반적으로 버퍼램(20)은 SRAM이나 DRAM으로 구성될 수 있다. 하지만, 버퍼램(20)이 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
버퍼 제어기(30)는 호스트 인터페이스(30)나 후술하게 되는 디스크 제어기(40)로부터 데이터 처리에 대한 요청이 있을 때 데이터 처리 요청을 승인하도록 구성된다. 버퍼 제어기(30)는 호스트로부터 모든 입력 데이터와 디스크로부터 읽혀진 모든 호스트로의 출력 데이터가 버퍼램(20)에 일시 저장되도록 버퍼램(20)의 제반 동작들을 제어한다.
디스크 제어기(40)는 호스트 측으로부터의 명령에 응답하여 데이터를 디스크로 기록하거나 기록된 데이터를 디스크로부터 읽는 동작을 수행한다. 일반적으로 자기 디스크의 경우 입력되는 명령어와 어드레스에 대하여 최적의 액세스 시간을 갖도록 디스크 제어기(40)를 구성한다.
디스크(50)는 자기 디스크로 구성되며, 디스크 제어기(40)로부터의 데이터가 각 섹터별로 기록된다. 그러나 디스크(50)는 디스크 제어기(40)의 제어에 응답하여 데이터를 기록하거나 읽는 헤드 및 고속으로 자기 디스크를 회전하기 위한 모터를 포함한다. 일반적으로 자기 디스크 장치는 1개의 스핀들 상에 장착된 1개 이상의 자기 디스크를 포함하고, 1개의 헤드가 각각의 자기 디스크의 두 표면상에 각각 제공된다. 또한, 자기 디스크의 표면은 다수의 트랙, 즉, 스핀들(Spindle)을 따라 자기 디스크 상의 자기 헤드의 궤적으로 표시되는 동축원으로 분할된다. 이 경우에, 실린더는 다수의 자기 헤드에 의해 결정되는 동시에 다수의 트랙으로 정해진다. 또한, 트랙은 다수의 섹터로 분할되는데, 하나의 섹터는 액세스 될 수 있는 최소 단 위이다. 식별(Identification: ID) 어드레스로 불리는 1개의 국소 어드레스가 각 섹터에 할당된다. 이 경우에, ID는 헤드 번호, 실린더 번호, 섹터 번호 등에 의해 정해진다. 그러므로 자기 디스크의 기록/읽기 동작은 헤드 번호, 실린더 번호, 섹터 번호 등을 지시함으로써 실행될 수 있다. 그러나 대용량 하드 디스크에서는 로컬 블록 어드레스(Local Bolck Address : 이하 LBA)에 의해 디스크(50) 상으로 액세스 된다. LBA는 실린더, 헤드, 섹터(CHS)의 3차원적인 방법으로 디스크를 액세스하는 것이 아니라 디스크의 한 섹터를 액세스의 블록 단위로 하고, 첫 번째 섹터를 0번으로 하여 일련번호를 부여하고, 그 번호를 주소로 삼아 디스크를 1차원적인 방법으로 지정하는 것이다. 물론 디스크 제어기(40) 내부의 펌웨어에서는 이를 다시 물리적인 실린더, 헤드, 섹터의 3차원적인 주소로 바꾸어 주소를 지정한다.
상술한 구성은 일반적인 하드 디스크를 간략히 설명한 것이다. 호스트의 명령어에 대해서 디스크 제어기(40)는 한번에 하나의 명령어만을 처리한다. 따라서, 지속적인 명령어가 입력되는 경우 명령어 처리의 속도를 높이기 위해 명령어를 순차적인 대기열(Queue)로 저장하고 하나의 명령어의 수행이 종료되는 즉시 다음 명령어를 수행하게 하는 명령어 대기열(Command Queuing) 방식의 스킴이 사용된다. 이러한 동작은 버퍼램(20)에서 이루어진다. 따라서, 호스트로의 명령어 요청과 명령어 수행 중인 경우 비지 신호를 생성하지 않고도, 지속적인 명령어 처리가 가능하여 새로운 명령어를 기다리는 시간이 절약된다. 명령어 대기열을 적용할 경우, 속도 증가와 하드 디스크의 회전 회수의 감소라는 이점이 존재한다. 그러나 서버(Server) 및 네트워크 저장매체(Network Storage)로서 하드 디스크를 사용하는 경우, 멀티 태스킹(Multi-Tasking)이 일반화되면서 좀더 진보된 명령어 대기열 방식(Command Queuing)이 요구되었다. 서버 및 메인 프레임(Mainframe) 환경에 적용되어져 온 SCSI 방식의 HDD에서, 처음으로 TCQ(Tagged Command Queuing)가 등장하게 되었다. ATA 진영에서는 SATA의 등장과 함께 NCQ(Native Command Queuing) 방식의 명령어 대기열이 소개되었다. 상술한 TCQ와 NCQ는 명령어 대기열을 명령어의 중요도를 판단하여 우선 순위(Priority)에 따른 정렬이 추가된 것이다. 그러나 앞서 진술한 하이브리드(Hybrid)형 HDD가 등장하게 되고, 플래시 메모리를 캐시로 내장하는 경우 버퍼램(20)에서의 명령어 대기열을 구성하는 방식만으로는 액세스 시간을 감소하는데 한계가 있었다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 플래시 메모리 장치를 포함하는 하이브리드형 하드 디스크의 액세스 속도 및 작업 효율을 최적화하는 장치를 제공하는 데 있다.
본 발명의 다른 목적은 하이브리드형 하드 디스크의 액세스 속도 및 작업 효율을 최적화하는 방법을 제공하는 데 있다.
상술한 제반 목적을 달성하기 위한 본 발명의 자기 디스크를 저장매체로, 불휘발성 반도체 메모리를 쓰기 캐시로 장착한 하드 디스크 장치는, 외부와 인터페이싱하는 호스트 인터페이스; 상기 호스트 인터페이스로부터 순차적으로 전달되는 적어도 하나의 업데이트 명령에 응답하여 상기 업데이트 명령에 대응하는 복수의 데 이터를 상기 쓰기 캐시로 순차적으로 프로그램하되, 상기 복수의 데이터에 대해서 상기 쓰기 캐시 상에서 업데이트 되도록 상기 쓰기 캐시를 제어하는 캐시 제어부; 상기 쓰기 캐시로부터 출력되는 복수의 데이터를 상기 자기 디스크에 기록하는 디스크 제어기를 포함한다.
바람직한 실시예에 있어서, 상기 캐시 제어부는 상기 복수의 데이터 각각에 대해 자기 디스크 내에서의 물리적 위치에 대응되는 디스크 어드레스를 지정하고, 상기 자기 디스크로 액세스 시 상기 디스크 어드레스의 순서로 기록되도록 정렬하는 데이터 매니저; 상기 쓰기 캐시의 복수의 페이지가 순차적으로 프로그램되는 동안, 동일한 디스크 어드레스로 지정되는 데이터의 경우 최후에 프로그램된 데이터만 유효로 지정하고, 이전의 데이터는 무효로 지정하는 캐시 매니저를 포함한다.
바람직한 실시예에 있어서, 상기 캐시 매니저는 상기 쓰기 캐시의 저장 공간이 모두 채워지는 경우, 상기 유효로 지정된 데이터만을 상기 디스크로 기록한다.
바람직한 실시예에 있어서, 상기 데이터 매니저는 상기 유효로 지정된 데이터에 대해서만 상기 디스크 어드레스를 지정한다.
바람직한 실시예에 있어서, 상기 캐시 제어부는 상기 쓰기 캐시의 여유 공간 정보를 참조하여 입력되는 상기 복수의 데이터를 상기 쓰기 캐시로 저장할지 상기 자기 디스크로 직접 저장할지를 결정하는 데이터 흐름 제어부를 더 포함한다.
바람직한 실시예에 있어서, 상기 데이터 흐름 제어부는 상기 자기 디스크가 구동중인 경우에는 상기 적어도 하나의 업데이트 명령에 대응하는 데이터를 상기 쓰기 캐시를 경유하지 않고 상기 자기 디스크로 기록하도록 제어한다.
바람직한 실시예에 있어서, 상기 호스트 인터페이스로부터 외부의 명령어와 데이터 및 외부 어드레스 일시적으로 저장하고, 명령어 대기열을 구성하는 버퍼램을 더 포함한다.
상술한 제반 목적을 달성하기 위한 본 발명에 따른 불휘발성 반도체 메모리를 쓰기 캐시로 장착한 하드 디스크 장치에서의 디스크 상의 데이터를 업데이트 하는 방법은, 외부로부터 순차적으로 입력되는 쓰기 데이터를 버퍼램에 저장하는 단계와; 상기 쓰기 캐시에서 상기 순차적으로 입력되는 데이터들에 대해서 디스크 상의 어드레스를 지정하는 동시에 동일한 상기 디스크 상의 어드레스를 갖는 데이터들에 대해서는 캐시 내에서 업데이트를 수행하는 캐시 업데이트 단계와; 상기 쓰기 캐시에 모든 공간이 프로그램되는 시점에 상기 캐시의 최종 업데이트 된 데이터들만을 상기 디스크 상의 물리적 주소를 참조하여 상기 디스크로의 액세스가 최적화되는 순서로 기록하는 디스크 업데이트 단계를 포함한다.
바람직한 실시예에 있어서, 상기 캐시 업데이트 단계는, 상기 버퍼램의 데이터를 상기 쓰기 캐시의 페이지로 순차적으로 프로그램하되, 상기 쓰기 캐시의 복수의 페이지가 순차적으로 프로그램되는 동안 동일한 디스크 상의 어드레스로 지정되는 데이터의 경우 최후에 프로그램된 데이터만 유효로 지정하고, 이전의 데이터는 무효로 지정한다.
바람직한 실시예에 있어서, 상기 버퍼램에 저장하는 단계는, 읽기와 쓰기를 포함하는 명령어에 대한 명령어 대기열을 구성한다.
바람직한 실시예에 있어서, 상기 디스크 업데이트 단계는 상기 유효로 지정 된 데이터만을 상기 디스크로 기록한다.
바람직한 실시예에 있어서, 상기 캐시 업데이트 단계는 현재 입력된 데이터와 동일한 디스크 상의 어드레스를 가진 이전 데이터가 존재하는지를 검색하는 단계를 더 포함한다.
바람직한 실시예에 있어서, 상기 디스크 업데이트 단계는 상기 디스크로의 기록이 종료된 이후에는 상기 캐시를 소거(Erase)하는 단계를 더 포함한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 2는 본 발명의 바람직한 실시예를 보여주는 블록도이다. 여기서, 앞서 도시된 도 1에서와 동일한 참조부호는 동일한 기능을 하는 동일한 부재를 가리킨다. 도 2를 참조하면, 본 발명의 하이브리드형 하드 디스크 장치는 명령어 대기열(Command Queuing)이 구성 가능한 불휘발성 쓰기 캐시(140)를 포함한다. 이러한 구성은 버퍼램(20)에서의 제 1 명령어 대기열과, 불휘발성 쓰기 캐시(140)에서의 제 2 명령어 대기열을 구성할 수 있도록 한다. 불휘발성 쓰기 캐시(140)를 통한 이중 명령어 대기열의 구성과 동작을 위해서 본 발명은 플러시 제어부(100)를 더 포함한다. 불휘발성 쓰기 캐시(140)에서의 추가적인 제 2 명령어 대기열(Command Queuing)을 구성하게 되는 본 발명의 하이브리드형 하드 디스크의 구성 및 동작이 이하 도면에 의거하여 상세히 설명될 것이다.
버퍼램(20)에서는 상술한 바와 같이 명령어의 종류를 고려한 제 1 명령어 대 기열이 구성된다. 쓰기 명령어와 읽기 명령어에 대해서 반복되는 동작을 생략하도록 명령어와 어드레스를 참조하여 이루어진다. 이를 통하여 전체 명령어에 대해서 작업 최적화(Job Optimization) 및 액세스 최적화(Access Optimization)를 일차적으로 수행한다.
플러시 제어부(100)는 후술하게 되는 불휘발성 쓰기 캐시(140)에 일시 저장되는 데이터에 대해서 제 2 명령어 대기열을 구성한다. 플러시 제어부(100)는 우선 호스트로부터 입력되는 명령어와 데이터를 디스크(50)의 활성화(Active) 여부에 따라 불휘발성 쓰기 캐시(140)에 저장되어야 할지, 혹은 디스크(50)로 저장해야 할지를 결정한다. 디스크(50)가 활성화되어있고 디스크(50)의 플레터(Platter)가 회전중인 경우에는 당장 쓰기가 가능한 시점이기 때문에 데이터가 버퍼램(20)을 경유하여, 디스크(50)에 직접 기록된다. 그러나 디스크(50)의 플레터가 회전하고 있지 않은 디스크(50)의 비활성(Inactive) 시점에서는 불휘발성 쓰기 캐시(140)에 입력 데이터가 저장될 것이다. 또한, 불휘발성 쓰기 캐시(140)에 여유 저장 공간이 없는 시점에는 불휘발성 쓰기 캐시(140)의 저장 데이터가 디스크(50)로 플러시(Flush) 된다. 불휘발성 쓰기 캐시(140)의 데이터 저장 공간에 여유가 없는 시점에서 저장된 모든 데이터가 디스크(50)로 기록되고 불휘발성 쓰기 캐시(140)가 소거되는 동작을 플러시 동작이라 한다. 플러시 제어부(100)는 불휘발성 쓰기 캐시(140)의 프로그램 동작과 독출(Read) 동작 그리고 소거(Erase) 등을 제어한다. 또한, 플러시 제어부(100)는 불휘발성 쓰기 캐시(140)에 저장되는 데이터에 대한 제 2 명령어 대기열(Command Queuing)을 구성한다. 이러한 동작을 위해서 플러시 제어부(100)는 데이터 흐름 제어부(110)와 캐시 매니저(120)와 데이터 매니저(130)를 포함한다.
데이터 흐름 제어부(110)는 호스트로부터 입력되는 데이터가 경유하게 되는 경로를 판단하여 데이터의 흐름을 제어한다. 디스크 제어기(40)로부터 디스크(50)의 활성화(Active) 여부를 전달받아 입력되는 데이터가 불휘발성 쓰기 캐시(140)에 기록되어야 할지, 혹은 불휘발성 쓰기 캐시(140)에 기록되지 않고 디스크(50)에 기록되어야 할지를 판단한다. 디스크(50)가 구동 중이고 따라서 즉시 기록이 가능한 상태라면, 버퍼램(30)에 일시 저장된 데이터가 또다시 불휘발성 쓰기 캐시(140)에 저장될 필요가 없기 때문이다. 만일 디스크(50)가 구동 중이 아닌 대기 모드인 경우, 데이터 흐름 제어부(110)는 입력되는 데이터가 불휘발성 쓰기 캐시(140)에 저장되도록 제어한다. 또한, 캐시 매니저(120)에게 불휘발성 쓰기 캐시(140)의 상태를 요청하여 불휘발성 쓰기 캐시(140)의 저장 공간이 없는 경우라면, 데이터 흐름 제어부(110)는 데이터를 버퍼램(20)에 일정 시간 더 유지한다. 그리고 불휘발성 쓰기 캐시(140)의 데이터들이 디스크(50)로 플러시되고 불휘발성 쓰기 캐시(140)가 소거된 이후에 버퍼램(20)에 일시 유지하던 데이터를 불휘발성 쓰기 캐시(140)로 프로그램한다. 혹은 불휘발성 쓰기 캐시(140)에 저장된 데이터가 디스크(50)로 플러시된 이후 이후에 구동중인 디스크(50)로 버퍼램(20)에 일시 유지하던 데이터를 기록할 수 있다. 데이터 흐름 제어부(110)는 쓰기 데이터의 경로를 상술한 디스크(50)의 활성화(Active) 여부와 불휘발성 쓰기 캐시(140)의 사용 가능 공간의 유무에 따라 판정한다.
캐시 매니저(120) 및 데이터 매니저(130)는 버퍼램(20)에서 구성되는 제 1 명령어 대기열(Command Queuing)과는 별도로 불휘발성 쓰기 캐시(140)에서의 제 2 명령어 대기열(Command Queuing)을 구성한다. 불휘발성 쓰기 캐시(140)에서 구성되는 제 2 명령어 대기열(Command Queuing)은 멀티 태스킹(Multi-Tasking) 환경이나 문서작업과 같은 지속적인 하드 디스크 업데이트가 발생하는 작업의 경우 바람직한 성능을 발휘할 수 있다. 호스트로부터 데이터 쓰기 요청에 따라 버퍼램(20)에서는 제 1 명령어 대기열이 구성된다. 그리고 불휘발성 쓰기 캐시(140)에서는 쓰기 명령에 따라 입력되는 데이터가 페이지(Page) 단위로 프로그램된다. 특히 불휘발성 쓰기 캐시(140)에 저장되는 데이터는 지속적인 업데이트가 발생하는 경우에 작업 최적화 및 액세스 최적화를 구현할 수 있다. 디스크(50)에 기록된 데이터 중 갱신(Update)되는 데이터만이 호스트의 요청에 따라 불휘발성 쓰기 캐시(140)에 페이지 단위로 일정간격을 두고 프로그램될 것이다. 그러나 일정 페이지 이상 프로그램된 이후에는 이미 불휘발성 쓰기 캐시(140) 상에 프로그램된 데이터에 대해서 업데이트 해야하는 상황이 발생한다. 그러나 블록단위로 소거되는 불휘발성 메모리의 특성상, 이전 데이터를 삭제하고 동일한 위치에 현재 쓰기 요청된 데이터를 덮어쓰는 식의 동작은 불가능하다. 따라서, 캐시 매니저(120)는 불휘발성 쓰기 캐시(140)에 프로그램된 데이터 중 현재 쓰기 요청된 데이터와 동일한 LBA로 지정된 이전의 데이터는 무효(Invalid)로, 현재 프로그램되는 데이터는 유효(Valid)로 지정한다. 캐시 매니저(120)는 불휘발성 쓰기 캐시(140)에 여유 공간이 없는 시점에는 유효(Valid)로 지정된 페이지 데이터들만을 디스크(50)로 전송하여 기록되도록 한다. 이러한 구성을 통하여 불휘발성 쓰기 캐시(140)에 프로그램된 데이터 중 유효 (Valid)로 지정된 데이터만을 디스크(50)로 플러시하여 하드 디스크의 구동 부담을 최소화할 수 있다. 이는 중복된 데이터의 쓰기 동작을 줄이는 작업(Job) 최적화를 구현할 수 있는 수단을 제공한다. 또한, 캐시 매니저(120)는 호스트 인터페이스(10)로부터 입력되는 쓰기 명령어에 대응하는 어드레스, 데이터의 크기 등과 같은 데이터 정보를 데이터 매니저(130)로 전달한다. 캐시 매니저(120)는 불휘발성 쓰기 캐시(140)의 프로그램 상태를 감지한다. 캐시 매니저(120)는 더 이상 불휘발성 쓰기 캐시(140)로의 기록이 불가능한 경우에 디스크 제어기(40)로 디스크(50)를 활성화하도록 요청하고 불휘발성 쓰기 캐시(140)에 저장된 데이터가 디스크(50)에 플러시(Flush)되도록 제어한다. 캐시 매니저(120)는 불휘발성 쓰기 캐시(140)의 데이터 저장상태를 감지하여 플러시(Flush) 동작을 제어하기도 하지만, 호스트의 명령에 응답하여서 플러시 동작을 수행할 수 있다.
데이터 매니저(130)는 호스트 인터페이스(10)로 입력되는 명령어의 종류, 어드레스 및 데이터의 크기 등을 지시하는 데이터 정보를 캐시 매니저(120)로부터 전달받는다. 데이터 매니저(130)는 전달받은 데이터 정보를 참조하여 불휘발성 쓰기 캐시(140)에 저장되는 데이터 구조를 정렬한다. 예를 들면, 데이터 매니저(130)는 호스트로부터 쓰기 요청된 데이터에 대해서 불휘발성 쓰기 캐시(140)에 저장되는 데이터를 트리 구조(Tree Structure)로 정렬한다. 데이터 매니저(130)는 불휘발성 쓰기 캐시(140)에 프로그램되는 유효(Valid) 데이터에 대해서 플러시 동작에서 디스크(50)로 전달되는 데이터의 키(Key)를 지정한다. 데이터 매니저(130)는 불휘발성 쓰기 캐시(140)에 저장되는 유효(Valid) 데이터에 대해서 디스크의 물리적 위치 와 대응되는 논리적 블록 어드레스(Logical Block Address : 이하 LBA)를 고려하여 키(Key)를 지정하고 정렬한다. 이러한 구성을 통해서 플러시 동작시 불휘발성 쓰기 캐시(140)로부터 디스크(50)로의 액세스 시간을 최대한 단축할 수 있다. 결론적으로 데이터 매니저(130)는 불휘발성 쓰기 캐시(140)의 유효 데이터가 디스크(50)로 플러시되는 시점에서 액세스 최적화(Access Optimization)가 구현되도록 LBA와 대응되는 데이터 키(Key) 값을 설정한다.
불휘발성 쓰기 캐시(140)는 전원이 차단되더라도 저장된 데이터가 소실되지 않는 플래시 메모리로 구성될 수 있다. 예를 들면, 낸드형 플래시 메모리나 노어형 플래시 메모리 또는 원낸드(OneNAND) 플래시 메모리로 구성될 수 있다. 불휘발성 쓰기 캐시(140)는 상술한 플러시 제어부(100)의 제어에 응답하여, 디스크(50)가 구동되지 않는 동안에 호스트로부터 입력되는 데이터가 저장된다. 버퍼램(20)에서의 제 1 명령어 대기열(Command Queuing)이 구성되고, 불휘발성 쓰기 캐시(140)에서는 상술한 캐시 매니저(120)와 데이터 매니저(130)에 의해서 업데이트를 위한 제 2 명령어 대기열(Command Queuing)이 정의되고 구성된다. 불휘발성 쓰기 캐시(140)의 프로그램 및 플러시 동작에 대해서는 이후의 도 3에서 상세히 설명하기로 한다.
이상의 본 발명은 버퍼램(20)에서와 불휘발성 쓰기 캐시(140)에서의 제 2 명령어 대기열(Command Queuing)을 구성하기 위해서 추가되는 캐시 매니저(120)는 불휘발성 쓰기 캐시(140)의 프로그램 데이터 중 디스크(50)로 플러시 될 데이터만을 유효(Valid) 데이터로 지정한다. 또한, 데이터 매니저(130)는 상술한 유효(Valid) 데이터에 대해서 디스크(50)로의 기록 동작시 디스크의 물리적 위치를 지시하는 LBA를 참조하여 액세스 시간이 최적화 되도록 데이터 구조를 정렬한다. 결론적으로, 플러시 제어부(100)는 지속적으로 갱신(Update)되는 데이터들에 대해서 불휘발성 쓰기 캐시(140)에서 일차적으로 업데이트를 수행하여 디스크의 업데이트 횟수를 최소화시킬 수 있다. 또한, 플러시 제어부(100)는 불휘발성 쓰기 캐시(140)의 플러시 동작시 LBA를 참조한 데이터 정렬을 통하여 작업 최적화 및 액세스 최적화를 구현할 수 있다.
도 3은 본 발명의 불휘발성 쓰기 캐시(140)에서 이루어지는 플러시(Flush) 동작을 설명하는 도면이다. 도 3을 참조하면, 본 발명의 플러시 동작은 불휘발성 쓰기 캐시(140)의 프로그램 특징에 의해서 페이지(Page) 단위로 데이터가 프로그램되고, 프로그램된 데이터들 중 유효(Valid)로 지정된 데이터만이 디스크(Disk)에 기록된다.
낸드 플래시 메모리와 같은 불휘발성 쓰기 캐시(140)는 프로그램 시에는 페이지(Page) 단위로 기록되며, 소거(Erase) 시에는 프로그램된 데이터가 하나의 블록(Block) 단위로 소거된다. 따라서 이러한 불휘발성 메모리를 캐시로 사용할 경우, 프로그램(Program)이나 소거(Erase) 및 읽기(Read) 특성을 고려하여 캐시 동작이 제어되어야 할 것이다. 플러시 동작은 불휘발성 메모리의 상술한 제반 동작들을 고려하여 이루어진다. 특히 컴퓨터의 하드 디스크의 경우, 이용자가 문서작성이나 그래픽 작업을 하는 경우에는 하드 디스크 상의 중복된 어드레스에 대한 업데이트가 빈번하게 발생하게 된다. 따라서, 중복된 디스크 상의 어드레스에 동일한 데이터를 반복적으로 기록해야 하는 경우가 발생한다. 이러한 경우, 불휘발성 쓰기 캐 시(140)의 메모리 블록(Memory Block)에 저장된 데이터 중 유효(Valid) 지정을 유지하는 데이터도 존재하지만, 캐시 상에서 또다시 업데이트 되어 무효(Invalid)로 지정 변경된 데이터도 발생한다. 이후에 불휘발성 쓰기 캐시(140)가 더 이상 프로그램 불가능한 상태인 경우 캐시 상의 데이터가 디스크 상으로 기록되는 플러시 동작이 이루어진다. 플러시 동작에서 캐시 매니저(120)는 유효(Valid) 데이터만을 디스크로 전달하여 디스크(50) 상의 데이터를 업데이트 되도록 한다. 이러한 동작은 불휘발성 쓰기 캐시(140)에서 일차적 업데이트가 이루어져 디스크(50)의 부담을 최소화시킬 수 있다.
또한, 플러시 동작에서는 디스크(50)의 기록 동작에서의 액세스 시간을 감소시키기 위하여, 유효(Valid) 데이터는 디스크의 LBA 순서대로 디스크에 기록되도록 캐시 매니저(120) 및 데이터 매니저(130)는 플러시 동작을 제어한다. 이를 위해서 캐시에 저장되는 유효(Valid) 데이터는 디스크의 LBA에 대응되도록 키 값이 정렬되어야 할 것이다. 유효(Valid)로 지정된 데이터의 LBA를 참조하여 디스크 상에 기록되는 순서가 정렬됨으로써 디스크(50)로의 액세스 최적화를 구현할 수 있다.
도 4는 본 발명의 불휘발성 쓰기 캐시(140)의 업데이트 동작을 설명하는 흐름도이다. 도 4를 참조하면, 본 발명의 캐시 업데이트 동작은 불휘발성 쓰기 캐시(140)의 저장 상태에 따라 플러시 유무가 결정되고, 유효 데이터(Valid Data)는 하드 디스크의 LBA를 참조하여 프로그램된다. 이하 본 발명의 캐시 업데이트 동작이 상술한 도 2에 의거하여 상세히 설명될 것이다.
하드 디스크가 구동 정지된 디스크 대기 상태에서 호스트로부터 데이터 쓰기 명령이 입력되면, 캐시 업데이트 동작이 시작된다. 호스트로부터 입력된 데이터와 명령어, 어드레스는 버퍼램(20)에 일시 저장되는 동시에 캐시 매니저(120)에 의해서 불휘발성 쓰기 캐시(140)로의 프로그램 여부가 결정된다. 캐시 매니저(120)는 불휘발성 쓰기 캐시(140)의 상태를 반영하여 캐시로의 프로그램이 가능한지의 여부를 결정한다. 불휘발성 쓰기 캐시(140)의 프로그램 가능한 공간이 존재하는 경우, 캐시 업데이트 동작은 진행된다(S10). 불휘발성 쓰기 캐시(140)의 저장공간의 여유가 있는 경우, 종전까지 불휘발성 쓰기 캐시(140)에 프로그램된 데이터에 대해서 현재 쓰기 요청된 데이터와 동일한 LBA를 갖는 데이터가 존재하는지 검색한다. 이러한 검색은 상술한 캐시 매니저(120)와 데이터 매니저(130)에서 이루어진다(S20). 현재 쓰기 요청된 데이터와 동일한 LBA로 지정된 데이터가 존재하는지 존재하지 않는지의 검색결과에 따라서 데이터의 유효 또는 무효의 지정이 이루어진다(S30). 현재 쓰기 요청된 데이터의 어드레스에 대응하는 LBA가 이전에 프로그램된 데이터들 중에 이미 존재하는 경우, 현재 입력되는 데이터는 이전의 데이터를 갱신(Update)하는 데이터임을 의미한다. 따라서, 이전 데이터는 무효 데이터(Invalid Data)로 지정한다(S40). 그리고 현재 쓰기 요청된 데이터와 동일한 LBA를 갖는 데이터가 존재하지 않는 경우, 현재 쓰기 요청된 데이터를 유효 데이터(Valid Data)로 지정한다. 이후에는 현재 쓰기 요청된 데이터를 해당 페이지에 프로그램한다(S50).
만일 캐시 프로그램 초기에 불휘발성 쓰기 캐시(140)에 저장 공간이 없다면, 이는 불휘발성 쓰기 캐시(140)에 존재하는 유효(Valid)로 지정된 데이터만이 디스크로 플러시 되어야 함을 의미한다(S60). 플러시 동작 이후에는 불휘발성 쓰기 캐 시(140)는 소거될 것이다.
이상에서 설명된 캐시 프로그램동작은 하나의 메모리 블록에 포함된 페이지 단위는 동일한 LBA로 어드레스 지정된 경우라 하더라도 겹쳐 쓰기가 불가능한 불휘발성 메모리의 특성에 의거하여 이루어짐이 설명되었다. 이러한 캐시 프로그램은 디스크(50)의 데이터가 지속적으로 갱신(Update)되는 상황에서 캐시에서의 일차적인 업데이트를 부담하여 디스크의 부담을 최소화한다. 또한, 업데이트된 캐시 데이터에 대해서 디스크(50) 상의 어드레스(LBA)를 참조한 데이터 정렬을 수행하여 작업 최적화 및 액세스 최적화를 구현할 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형할 수 있은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명에 따른 불휘발성 쓰기 캐시를 포함하는 하이브리드 하드 디스크 드라이버는 쓰기 캐시에서의 일차적인 업데이트와 어드레스 정렬을 통하여 디스크 상으로의 쓰기 작업 회수 및 시간을 최소화할 수 있다.

Claims (13)

  1. 자기 디스크를 저장매체로서, 불휘발성 반도체 메모리를 쓰기 캐시로서 장착하는 하드 디스크 장치에 있어서,
    호스트 인터페이스;
    상기 호스트 인터페이스로부터 순차적으로 전달되는 적어도 하나의 업데이트 명령에 응답하여 상기 업데이트 명령에 대응하는 복수의 데이터를 상기 쓰기 캐시로 순차적으로 프로그램하되, 상기 복수의 데이터에 대해서 상기 쓰기 캐시 상에서 업데이트 되도록 상기 쓰기 캐시를 제어하는 캐시 제어부;
    상기 쓰기 캐시로부터 출력되는 복수의 데이터를 상기 자기 디스크에 기록하는 디스크 제어기를 포함하는 하드 디스크 장치.
  2. 제 1 항에 있어서,
    상기 캐시 제어부는,
    상기 복수의 데이터 각각에 대해 자기 디스크 내에서의 물리적 위치에 대응되는 디스크 어드레스를 지정하고, 상기 자기 디스크로 액세스 시 상기 디스크 어드레스의 순서로 기록되도록 정렬하는 데이터 매니저;
    상기 쓰기 캐시의 복수의 페이지가 순차적으로 프로그램되는 동안, 동일한 디스크 어드레스로 지정되는 데이터의 경우 최후에 프로그램된 데이터만 유효로 지정하고, 이전의 데이터는 무효로 지정하는 캐시 매니저를 포함하는 하드 디스크 장 치.
  3. 제 2 항에 있어서,
    상기 캐시 매니저는 상기 쓰기 캐시의 저장 공간이 모두 채워지는 경우, 상기 유효로 지정된 데이터만을 상기 디스크로 기록하는 것을 특징으로 하는 하드 디스크 장치.
  4. 제 3 항에 있어서,
    상기 데이터 매니저는 상기 유효로 지정된 데이터에 대해서만 상기 디스크 어드레스를 지정하는 것을 특징으로 하는 하드 디스크 장치.
  5. 제 2 항에 있어서,
    상기 캐시 제어부는 상기 쓰기 캐시의 여유 공간 정보를 참조하여 입력되는 상기 복수의 데이터를 상기 쓰기 캐시로 저장할지 상기 자기 디스크로 직접 저장할지를 결정하는 데이터 흐름 제어부를 더 포함하는 하드 디스크 장치.
  6. 제 6 항에 있어서,
    상기 데이터 흐름 제어부는 상기 자기 디스크가 구동중인 경우에는 상기 적어도 하나의 업데이트 명령에 대응하는 데이터를 상기 쓰기 캐시를 경유하지 않고 상기 자기 디스크로 기록하도록 제어하는 것을 특징으로 하는 하드 디스크 장치.
  7. 제 1 항에 있어서,
    상기 호스트 인터페이스로부터 외부의 명령어와 데이터 및 외부 어드레스 일시적으로 저장하고, 명령어 대기열을 구성하는 버퍼램을 더 포함하는 것을 특징으로 하는 하드 디스크 장치.
  8. 불휘발성 반도체 메모리를 쓰기 캐시로 장착한 하드 디스크 장치에서의 디스크 상의 데이터를 업데이트 하는 방법에 있어서,
    외부로부터 순차적으로 입력되는 쓰기 데이터를 버퍼램에 저장하는 단계와;
    상기 쓰기 캐시에서 상기 순차적으로 입력되는 데이터들에 대해서 디스크 상의 어드레스를 지정하는 동시에 동일한 상기 디스크 상의 어드레스를 갖는 데이터들에 대해서는 캐시 내에서 업데이트를 수행하는 캐시 업데이트 단계와;
    상기 쓰기 캐시에 모든 공간이 프로그램되는 시점에 상기 캐시의 최종 업데이트 된 데이터들만을 상기 디스크 상의 물리적 주소를 참조하여 상기 디스크로의 액세스가 최적화되는 순서로 기록하는 디스크 업데이트 단계를 포함하는 것을 특징으로 하는 업데이트 방법.
  9. 제 8 항에 있어서,
    상기 캐시 업데이트 단계는, 상기 버퍼램의 데이터를 상기 쓰기 캐시의 페이지로 순차적으로 프로그램하되, 상기 쓰기 캐시의 복수의 페이지가 순차적으로 프 로그램되는 동안 동일한 디스크 상의 어드레스로 지정되는 데이터의 경우 최후에 프로그램된 데이터만 유효로 지정하고, 이전의 데이터는 무효로 지정하는 것을 특징으로 하는 업데이트 방법.
  10. 제 9 항에 있어서,
    상기 버퍼램에 저장하는 단계는, 읽기와 쓰기를 포함하는 명령어에 대한 명령어 대기열을 구성하는 것을 특징으로 하는 업데이트 방법.
  11. 제 9 항에 있어서,
    상기 디스크 업데이트 단계는 상기 유효로 지정된 데이터만을 상기 디스크로 기록하는 것을 특징으로 하는 업데이트 방법.
  12. 제 8 항에 있어서,
    상기 캐시 업데이트 단계는 현재 입력된 데이터와 동일한 디스크 상의 어드레스를 가진 이전 데이터가 존재하는지를 검색하는 단계를 더 포함하는 것을 특징으로 하는 업데이트 방법.
  13. 제 8 항에 있어서,
    상기 디스크 업데이트 단계는 상기 디스크로의 기록이 종료된 이후에는 상기 캐시를 소거(Erase)하는 단계를 더 포함하는 업데이트 방법.
KR1020050119560A 2005-12-08 2005-12-08 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버 KR20070060301A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050119560A KR20070060301A (ko) 2005-12-08 2005-12-08 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050119560A KR20070060301A (ko) 2005-12-08 2005-12-08 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버

Publications (1)

Publication Number Publication Date
KR20070060301A true KR20070060301A (ko) 2007-06-13

Family

ID=38356332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050119560A KR20070060301A (ko) 2005-12-08 2005-12-08 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버

Country Status (1)

Country Link
KR (1) KR20070060301A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100133193A (ko) * 2009-06-11 2010-12-21 삼성전자주식회사 플래시 메모리를 구비하는 저장 장치 및 이의 데이터 저장 방법
KR20140073712A (ko) * 2012-12-06 2014-06-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 이의 동작 방법
US8914576B2 (en) 2012-07-30 2014-12-16 Hewlett-Packard Development Company, Lp. Buffer for RAID controller with disabled post write cache
US9640264B2 (en) 2013-04-01 2017-05-02 Samsung Electronics Co., Ltd. Memory system responsive to flush command to store data in fast memory and method of operating memory system
CN107704400A (zh) * 2017-10-12 2018-02-16 郑州云海信息技术有限公司 一种面向非易失存储的页缓存方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100133193A (ko) * 2009-06-11 2010-12-21 삼성전자주식회사 플래시 메모리를 구비하는 저장 장치 및 이의 데이터 저장 방법
US8914576B2 (en) 2012-07-30 2014-12-16 Hewlett-Packard Development Company, Lp. Buffer for RAID controller with disabled post write cache
KR20140073712A (ko) * 2012-12-06 2014-06-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 이의 동작 방법
US9640264B2 (en) 2013-04-01 2017-05-02 Samsung Electronics Co., Ltd. Memory system responsive to flush command to store data in fast memory and method of operating memory system
CN107704400A (zh) * 2017-10-12 2018-02-16 郑州云海信息技术有限公司 一种面向非易失存储的页缓存方法

Similar Documents

Publication Publication Date Title
JP4777263B2 (ja) マスストレージアクセラレータ
US8006047B2 (en) Storage device with write barrier sensitive write commands and write barrier insensitive commands
US9507538B2 (en) File management system for devices containing solid-state media
US7472219B2 (en) Data-storage apparatus, data-storage method and recording/reproducing system
US6735678B2 (en) Method and apparatus for disc drive defragmentation
KR101056560B1 (ko) 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치
TWI385519B (zh) 資料寫入方法及使用此方法的快閃儲存系統與其控制器
JP4163461B2 (ja) キャッシュ・バッファ制御方法及び制御装置
JP4675881B2 (ja) 磁気ディスク装置およびその制御方法
US7373477B2 (en) Fragmentation executing method and storage device
JP4283288B2 (ja) ディスク・ドライブにおけるosd決定論的オブジェクト・フラグメンテーション最適化の方法および装置
US10152236B2 (en) Hybrid data storage device with partitioned local memory
JP3568110B2 (ja) キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
US6490651B1 (en) Host-based virtual disk drive for improving the performance of a hard disk drive's input/output
JP3421581B2 (ja) 不揮発性半導体メモリを用いた記憶装置
KR100963009B1 (ko) 파일 관리 시스템 및 방법
KR101515621B1 (ko) 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법
KR20070060301A (ko) 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
JP5594647B2 (ja) ストレージ装置及びその制御方法
JPH11282765A (ja) フラッシュメモリを使用した外部記憶装置
US10459658B2 (en) Hybrid data storage device with embedded command queuing
KR20100055374A (ko) 파일 관리 시스템 및 방법
US20030200385A1 (en) Method and system for increasing disk drive performance
JP2017167740A (ja) ストレージ、ストレージシステム

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination