KR20140113346A - 중간 스토리지 내의 분류된 데이터의 스테이징 - Google Patents

중간 스토리지 내의 분류된 데이터의 스테이징 Download PDF

Info

Publication number
KR20140113346A
KR20140113346A KR1020140023425A KR20140023425A KR20140113346A KR 20140113346 A KR20140113346 A KR 20140113346A KR 1020140023425 A KR1020140023425 A KR 1020140023425A KR 20140023425 A KR20140023425 A KR 20140023425A KR 20140113346 A KR20140113346 A KR 20140113346A
Authority
KR
South Korea
Prior art keywords
data
data blocks
storage
random access
access memory
Prior art date
Application number
KR1020140023425A
Other languages
English (en)
Other versions
KR101984782B1 (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 시게이트 테크놀로지 엘엘씨
Publication of KR20140113346A publication Critical patent/KR20140113346A/ko
Application granted granted Critical
Publication of KR101984782B1 publication Critical patent/KR101984782B1/ko

Links

Images

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1252Formatting, e.g. arrangement of data block or words on the record carriers on discs for discontinuous data, e.g. digital information signals, computer programme data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers

Landscapes

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

Abstract

데이터 저장 시스템은 데이터 스토리지 및 랜덤 액세스 메모리를 포함한다. 분류 모듈은 랜덤 액세스 메모리에 통신 결합되고 랜덤 액세스 메모리에서 수신되는 착신 기록 데이터의 데이터 블록들을 분류하도록 구성된다. 저장 컨트롤러는 랜덤 액세스 메모리 및 데이터 스토리지에 통신 결합되고 분류된 데이터 블록들을 개별적으로 분류된 데이터 블록 세트들로서 데이터 스토리지의 스테이징 영역에 기록하도록 구성된다. 방법 및 프로세서 구현 프로세스는 데이터 스토리지의 랜덤 액세스 메모리에서 수신되는 착신 기록 데이터의 데이터 블록들을 분류하는 것 및 분류된 데이터 블록들을 개별적으로 분류된 데이터 블록 세트들로서 데이터 스토리지의 스테이징 영역에 기록하는 것을 제공한다.

Description

중간 스토리지 내의 분류된 데이터의 스테이징{STAGING SORTED DATA IN INTERMEDIATE STORAGE}
관련 출원들에 대한 교차 참조
본 출원은 발명의 명칭이 "Dynamic Granule-based Intermediate Storage"이고 이것과 함께 동시에 출원된 미국 출원 제_______________호 [정리 번호 STL17772]에 관한 것이며, 이 미국 출원은 특히 개시하고 교시하는 모든 것에 대한 참고문헌으로 포함되어 있다.
회전 자기 스토리지, 자기 테이프, 및/또는 회전 광 스토리지를 포함하는 것들과 같은 일부 데이터 저장 시스템들은 물리 스토리지 내의 임의적 타겟 위치에 도달하기 위해 비교적 높은 레이턴스 시간들(예를 들어, 밀리초 범위 이상)을 경험한다. (예를 들어, 시크 동작을 통해) 타겟 위치에 도달하면, 데이터는 상당히 빠른 속도로 물리 스토리지로부터 비교적 순차적으로 전송(판독 또는 기록)될 수 있다. 데이터 전송 속도들을 개선하는 것과 관련된 많은 도전들 중 하나는 호스트의 전송 요청들을 물리적 위치의 제약 내에서 관리하고 요청된 데이터의 논리 배치를 데이터 저장 시스템 내에서 관리하는 것이다.
본 명세서에 설명되고 청구된 실시예들은 동적으로 매핑된 데이터를 데이터 저장 시스템 내의 다수의 레벨들의 물리 스토리지에 걸쳐 효율적으로 분리함으로써 이전 문제들을 다룬다. 그러한 효율적인 데이터 분리는 물리적 저장 매체에 대한 논리적으로 순차적 데이터 액세스들의 작용으로, 특히 슁글드(shingled) 자기 기록 영역들의 존재로 편차를 감소시킬 수 있다.
방법 및 프로세서 구현 프로세스는 데이터 스토리지의 랜덤 액세스 메모리에서 수신되는 착신 기록 데이터의 데이터 블록들을 분류하는 것 및 분류된 데이터 블록들을 개별적으로 분류된 데이터 블록 세트들로서 데이터 스토리지의 스테이징 영역(staging area)에 기록하는 것을 제공한다. 데이터 저장 시스템은 데이터 스토리지 및 랜덤 액세스 메모리를 포함한다. 분류 모듈은 랜덤 액세스 메모리에 통신 결합되고 랜덤 액세스 메모리에서 수신되는 착신 기록 데이터의 데이터 블록들을 분류하도록 구성된다. 저장 컨트롤러는 랜덤 액세스 메모리에 통신 결합되고 데이터 스토리지는 분류된 데이터 블록들을 개별적으로 분류된 데이터 블록 세트들로서 데이터 스테이지의 스테이징 영역에 기록하도록 구성된다.
다른 실시예들이 또한 본 명세서에 설명되고 열거된다.
도 1은 분류된 데이터를 중간 레이턴시 스토리지의 스테이징 영역에 스테이징하는 예시적 데이터 저장 시스템을 예시한다.
도 2는 분류된 데이터의 청크들에 대한 하나 이상의 스테이징 영역들을 갖는 하나의 예시적 저장 매체를 예시한다.
도 3은 일반적으로 증가하는 데이터 조직의 변화하는 레벨들에 기초하여 계층적 스토리지를 갖는 예시적 데이터 저장 시스템을 예시한다.
도 4는 스테일 데이터가 스테일로 식별되고 마킹되는 하나의 예시적 스테이징 영역을 예시한다.
도 5는 스테이징 영역 내의 분류된 데이터의 청크의 예시적 생성을 예시한다.
도 6은 스테이징 영역에 기록되는 청크 세트로부터 데이터의 서브세트의 예시적 분류를 예시한다.
도 7은 스테이징 영역 외부의 사용을 위해 청크 세트로부터 데이터의 서브세트의 예시적 분류를 예시한다.
도 8은 스테이징 영역으로부터 데이터 블록들을 청킹하는 예시적 동작들을 예시한다.
도 9은 스테이징 영역으로부터 데이터 블록들을 리청킹하는 예시적 동작들을 예시한다.
도 10은 데이터 블록들을 스테이징 영역으로부터 다른 중간 스토리지로 재분류하는 예시적 동작들을 예시한다.
도 1은 중간 레이턴시 스토리지의 스테이징 영역(102)에서 분류된 데이터를 스테이징하는 예시적 데이터 저장 시스템(100)을 예시한다. 예시된 예에서, 데이터 저장 시스템(100)은 하나 이상의 자기 저장 디스크들(104)을 갖는 하드 디스크 드라이브를 나타내지만, 그러한 저장 매체의 다른 실시예들은 광 디스크 리더(예를 들어, CD 리더/라이터 또는 DVD 리더/라이터), 테이프 드라이브, SSD(solid state drive) 등의 형태일 수 있다. 데이터 저장 시스템(100)은 호스트 디바이스(106)와 통신하며, 호스트 디바이스는 데이터를 데이터 저장 시스템(100)에 기록 데이터를 송신하고 데이터 저장 시스템으로부터 판독 데이터를 수신한다.
예를 들어, 호스트 디바이스(106)는 자기 저장 디스크(104)에 데이터 파일을 기록하는 데이터 저장 시스템(100)에 데이터 파일을 기록할 수 있고 나중에 데이터 저장 시스템(100)으로부터 데이터 파일을 판독할 수 있다. 호스트 레벨에서, 사용자 데이터는 가변 길이 파일들에 관하여 종종 구조화되며, 이는 하나 이상의 고정 길이 데이터 블록들로 구성될 수 있다. 데이터 블록들은 논리 블록 어드레스들(LBA들)을 사용하여 호스트 디바이스(106)에 의해 어드레스가능하다. 데이터 저장 시스템(100)은 데이터 기록 회로조직(108)을 갖는 기록 채널을 포함하며, 이는 데이터 저장 시스템(100)에 의해 사용되는 인코딩 방식에 따라 데이터 블록들을 인코딩한다. 하나 이상의 데이터 블록들은 에러 검출 및/또는 정정을 위해 자립 코드워드들을 형성하도록 리던던시 정보와 결합될 수 있다.
데이터 기록 회로조직(108)은 기록 컨트롤러(110)을 통해 데이터 블록들을 기록하며, 이는 데이터 저장 시스템(100) 내의 하나 이상의 레벨들의 데이터 스토리지에 기록 컨트롤러(110)에 의해 기록되는 데이터 블록들의 물리적 위치 및 순서화를 결정한다. 데이터 블록이 저장 디스크(104)에 기록될 때, 데이터 블록은 저장 디스크(104) 상의 물리 블록 어드레스(PBA)에 기록된다. LBA와 PBA 사이의 매핑은 시간에 따라 변화될 수 있고 "동적 매핑"으로 지칭된다. 기록 컨트롤러(110)는 매핑이 시간에 따라 변화될 때조차도 LBA와 PBA 사이의 동적 매핑을 관리한다. 메모리(116)는 기록 컨트롤러(110)에 의해 수행되는 동적 매핑, 분류, 재위치, 오버프로비저닝(overprovisioning), 및 다른 기능들을 구현하기 위해 기록 컨트롤러(110)에 의해 처리되는 펌웨어 명령어들을 저장할 수 있다.
데이터 저장 시스템(100)에서, 연속적 논리 어드레스들을 갖는 데이터 블록들의 그룹들은 특정 데이터 세트들에 대한 시크 동작 후에, 연속적인 데이터 액세스들에 대한 더 낮은 레이턴시를 달성하기 위해 저장 디스크(104) 상의 대략 연속적인 물리적 위치들에 기록될 수 있다. 게다가, 동적 매핑은 데이터 저장 시스템(100) 내의 다수의 레벨들의 물리 스토리지를 지원하기 위해 지능적으로 확장될 수 있으며, 상이한 레벨들의 물리 스토리지는 상이한 평균 액세스 레이턴시들을 제공할 수 있다.
앞서 언급된 바와 같이, 기록 컨트롤러(110)는 데이터 블록들을 데이터 저장 시스템(100) 내의 하나 이상의 레벨들의 데이터 스토리지에 기록할 수 있다. 예를 들어, "목적지 스토리지"로 지칭되는 저장 디스크(104)의 데이터 저장 영역(112)은 일반적으로 장기간 저장을 위해 의도된 물리 저장 영역을 나타낸다. 목적지 스토리지 내의 데이터가 장기간 저장을 위해 의도되었지만, 그러한 데이터는 시간에 따라 목적지 저장 위치들에서 다른 목적지 저장 위치들로 여전히 이동될 수 있다. 게다가, "그래뉼(granule) 스토리지"로 지칭되는 저장 디스크(104)의 데이터 저장 영역(114)은 각각의 동적으로 크기조정가능한 그래뉼로 저장된 데이터가 논리 블록 어드레스들(LBA들)의 특정 서브세트에 제약되는 중간 물리 스토리지를 나타낸다. 예시적 그래뉼 크기는 대략 1MB일 수 있지만, 다른 크기들이 이용될 수 있다. 실제로, 그래뉼들은 동일한 디스크 표면 상에서 또는 심지어 동일한 SMR 밴드 내에서 많은 상이한 크기들일 수 있다.
더욱이, "스테이징 영역"으로 지칭되는 저장 디스크(104)의 데이터 저장 영역(102)은 논리 블록들의 그룹들이 증가적으로 인접한 LBA 순서로 증분적으로 기록되고 재기록될 수 있는 물리 저장 영역을 나타낸다. 예를 들어, 데이터 블록들은 임의적인 또는 희박한 LBA 순서로 호스트 디바이스(106)로부터 데이터 저장 시스템(100)에 의해 초기에 수신될 수 있다(예를 들어, 데이터 블록들은 논리 공간 내의 다양한 영역들로부터 수신됨). 그러한 데이터 블록들은 물리적으로 인접한 방식으로 스테이징 영역에 기록될 수 있다.
랜덤 액세스 메모리(118)는 또한 데이터 저장 시스템(100)의 저장 영역을 나타낸다. 그것의 랜덤 액세스 특성들 및 낮은 액세스 레이턴시는 특정 제약들(예를 들어, LBA 순서화, PBA 순서화, 가장 빈번히 액세스된 순서, 우선순위화된 데이터 순서 등)에 따라 데이터 블록들을 분류하는데 적절한 저장 영역을 제공한다. 일 실시예에서, 데이터는 랜덤 액세스 메모리(118)로 수신되고, LBA 순서에 따라 분류되고, "청크들"로 칭해지는 데이터의 그룹들로 스테이징 영역에 기록되며, 이는 랜덤 액세스 메모리(118)의 이용가능한 양과 연관하여 사이즈화된다. 예시적 청크 크기는 64MB일 수 있지만, 다른 크기들이 이용될 수 있다.
데이터 판독 및 복구 회로조직(120)은 자기 저장 디스크(104)로부터(또는 랜덤 액세스 메모리(118)로부터) 데이터(적절한 에러 정정 코딩을 갖는)를 판독하고 에러들(자기 저장 디스크(104) 상의 스크래치 손상에 의해 야기되는 데이터 에러들과 같은)를 검출하며/하거나 정정하기 위해 에러 정정 코딩을 사용할 수 있다. 그 다음, 데이터 판독 및 복구 회로조직(120)은 판독 데이터(정정된 판독 데이터일 수 있음)를 호스트 디바이스(106)에 전송한다.
랜덤 액세스 메모리(118)에 수신되는 데이터 블록들의 분류는 다양한 방법들로 성취될 수 있다. 일 실시예에서, 분류는 데이터 블록들이 랜덤 액세스 메모리(118) 내에 상주하는 동안 프로세서 또는 다른 제어 회로조직에 의해 성취될 수 있다. 대안적 실시예에서, 분류는 스캐터-개더(scatter-gather) DMA(direct memory access) 전송 방식을 이용함으로써와 같이 랜덤 액세스 메모리(118)로 및/또는 랜덤 액세스 메모리로부터 데이터 블록들의 전송 동안 성취될 수 있다. 다른 분류 기술들 및 구성들이 이용될 수 있다.
도 1의 데이터 저장 시스템(100)과 같은 데이터 저장 시스템에서, 스테이징 영역은 넌-슁글드(non-shingled) 또는 슁글드 자기 기록 영역일 수 있다. 자기 매체 저장 드라이브들은 각각의 저장 드라이브 내의 하나 이상의 자화 매체 상의 편광된 셀들에 데이터를 저장한다. 자기 매체 저장 드라이브의 일 예는 자기 디스크 드라이브이며, 자기 디스크 드라이브는 동심원, 즉 대략 원형 데이터 트랙들로 배열된 편광된 셀들을 갖는 디스크를 포함한다. 동작 중에, 디스크들 중 하나 이상은 정보가 액추에이터 어셈블리를 사용하여 디스크(들) 상의 트랙들에 기록되고 트랙들로부터 판독되는 동안, 저장 드라이브 내에서 일정한 고속으로 회전한다. 액추에이터 어셈블리는 시크 동작 동안 디스크들에 인접하게 위치된 베어링 축 어셈블리 주위를 회전한다.
액추에이터 어셈블리는 디스크들을 향해 연장되는 하나 이상의 액추에이터 아암들을 포함한다. 판독 폴 및 기록 폴을 갖는 헤드는 액추에이터 아암들 각각의 원위 단부에 장착된다. 기록 폴은 헤드 아래에서 회전하는 디스크 상의 셀들의 자기 편광을 변화시킴으로써 데이터를 디스크에 기록하는 자계를 생성한다. 판독 폴은 디스크 상의 셀들의 자기 편광을 검출함으로써 디스크로부터 데이터를 판독한다.
넌 슁글드 자기 매체에서, 자기화된 매체 상의 셀들 각각은 기록 폭이 임의의 주변 셀들에서 데이터를 오버라이팅하는 것 없이 데이터를 셀들에 기록하는 것을 허용하도록 기록 폴의 크기에 비해 충분히 큰 크기이다. 결과적으로, 데이터는 자기 매체 상의 어디에서도 이용가능한 셀들에 랜덤으로 기록될 수 있다. 그러나, 데이터 스토리지 밀도에 대한 요건들이 자기 매체에 대해 증가하므로, 셀 크기는 감소한다. 기록 폴의 크기의 알맞은 감소는 더 큰 기록 폴에 의해 제공되는 강한 기록 필드 기울기는 자기화된 매체 상의 셀들의 극성을 시프트하는 것이 종종 요구되므로, 곤란하다. 결과적으로, 비교적 더 큰 기록 폴을 사용하여 자기화된 매체 상의 더 작은 셀들에 데이터를 기록하는 것은 인접 셀들의 편광에 영향을 줄 수 있다(즉, 인접 셀들을 오버라이팅함). 더 작은 셀들을 이용하기 위해 자기 매체를 적용하는 한편, 기록 동작 동안 인접 데이터가 오버라이팅되는 것을 방지하는 하나의 기술은 SMR(shingled magnetic recording)이다.
SMR은 기록 폴에 의해 생성되는 상당히 강한 기록 필드를 이용한다. 슁글드 자기 기록의 하나의 제약은 데이터가 자기 매체에 기록될 때, 그것이 순차적으로 증가하거나 감소하는 반경 트랙들에 기록되는 것이다. 강한 기록 필드는 기록되는 트랙 및 하나 이상의 이전 기록된 트랙들을 포함하는 2개 이상의 인접 트랙들에 영향을 미친다. 결과적으로, 슁글드 데이터 내에서 임의의 데이터 셀을 변화시키기 위해, 슁글드 데이터 모두는 선택된 순차적 기록 순서로 재기록된다.
그러한 시스템에서의 랜덤 기록 기능성의 결여를 보상하는 동안 SMR에 의해 가능하게 행해지는 증가된 셀 밀도을 달성하기 위해, 하나 이상의 분리 영역들은 슁글드 데이터 내에서 생성될 수 있다. 가드 트랙들로 또한 지칭되는 분리 영역들은 기록을 위해 이용가능하지 않은 슁글드 데이터 내에서 하나 이상의 인접 데이터 트랙들의 그룹화이다. 동작 중에, 분리 영역들은 슁글드 데이터의 분리 데이터 밴드들(즉, 가드 트랙들에 의해 경계를 이루는 논리 섹터들의 그룹들)을 정의한다. 전형적으로, 각각의 가드 트랙은 가드 트랙에 걸쳐 임의의 오버라이팅을 방지하기에 충분히 넓다. 결과적으로, 하나 이상의 인접 트랙들을 포함하는 가드 트랙들은 다른 밴드들로부터 분리되는 슁글드 데이터의 밴드들을 생성한다. 따라서, 슁글드 데이터의 단일 밴드는 (디스크 상의 슁글드 데이터 모두 보다는 오히려), 밴드 내의 하나 이상의 셀들이 변경될 때 재기록된다.
그러나, 데이터 밴드에서 데이터의 하나 이상의 셀들을 재기록하는 것은 여전히 전형적으로 이하를 포함하는 다수의 단계들을 수반한다: 전체 데이터 밴드를 판독하는 단계, 데이터 밴드의 데이터를 디스크 상의 매체 스크래치 패드(예를 들어, 임시 캐시)에 기록하는 단계, 매체 스크래치 패드로부터 데이터를 판독하는 단계, 및 하나 이상의 변경된 셀들을 갖는 원래의 데이터 밴드에 데이터를 재기록하는 단계. 따라서, 슁글드 데이터 기록 동작들은 전형적으로 넌 슁글드 데이터 기록 동작들보다 더 시간 소비적이고 덜 전력 효율적이다.
리던던시 정보는 다중-논리-블록-사이즈화된 코드워드들을 생성하기 위해 기록된 데이터와 인터레이스(interlace)될 수 있다. 리던던시 정보는 데이터가 스테이징 영역에 기록될 때마다 포함될 수 있거나, 리던던시 정보는 예측가능 간격들로 기록될 수 있어, 증분 리던던시는 리던던시 정보가 상주하게 될 예측가능 위치에 도달하기 위해 충분한 부가 데이터를 수신하기 전에, 스테이징 영역이 수 회 부가되면 유지될 수 있다. 더욱이, 도 1의 스테이징 영역(또는 다른 스테이징 영역)에 데이터의 기록은 스테이징 영역 공간을 소모하는 그러한 프로세스들 전에 프리 스테이징 영역 공간을 없애는 그러한 프로세스들을 수행하도록 유지(pace)될 수 있다. 이러한 방식으로, 스테이징 영역 공간은 새로운 기록 데이터 블록들에 대해 보다 더 이용가능할 것 같다.
도 2는 분류된 데이터의 청크들에 대한 하나 이상의 스테이징 영역들(스테이징 영역(202)과 같은)을 갖는 하나의 예시적 저장 매체(200)를 예시한다. 일 실시예에서, 데이터 저장 디스크(204)의 표면은 다수의 동심원 트랙들(206)을 포함한다. 트랙들(206)은 저장(204)의 표면 상에 분포되고, 통상적 프리 슁글드 연속 기록, 이산 트랙 기록, 및 슁글드 자기 기록을 제한 없이 포함하는 임의의 수의 상이한 형태들을 취할 수 있다. 일부 실시예들에서, 단일 저장 디스크 표면은 예를 들어 통상적 프리 슁글드 연속 기록 및 슁글드 자기 기록 둘 다를 지원할 수 있다. 게다가, 단일 디스크 표면의 동일한 영역은 상이한 시간들에 통상적 프리 슁글드 연속 기록 및 슁글드 자기 기록 둘 다에 사용될 수 있다. 다른 실시예들에서, 상이한 저장 디스크 표면들은 상이한 기록 타입들에 전용될 수 있다(예를 들어, 하나의 저장 디스크의 표면은 하나의 타입의 기록에 사용될 수 있고 동일한 저장 디스크 또는 다른 저장 디스크의 표면은 상이한 타입의 기록에 사용될 수 있음).
상이한 타입들의 기록은 상이한 레벨들의 액세스 레이턴시에 기여할 수 있다. 통상적 연속 기록 패턴은 방사 서보 버스트 섹터들(서보 버스트 섹터들(208)과 같은)에 저장되는 서보 정보에 의해 지정되는 트랙들을 따라 데이터를 기록하는 기록 헤드에 의해 형성된다. 기록 헤드는 그것이 데이터를 저장 매체에 기록할 때 트랙의 부분들을 재기록하여, 잠재적으로 시간에 따라 개별 트랙들의 경계들의 근소한 변화들을 야기한다. 대조적으로, 이산 트랙 기록 패턴들은 비자기 트랙 상호 분리를 갖는 동심원 이산 트랙들을 포함하며, 데이터는 각각의 분리 트랙을 따라 연속적으로 기록된다. 이와 같이, 기록 헤드는 기록 동작 동안 이산 타겟 트랙들의 일관된 세트들에서 데이터를 기록한다. 이러한 타입들의 기록 영역들에 판독 및 기록 액세스는 그것들 사이에서 다를 수 있고, 게다가 트랙들을 따라 데이터 블록들의 분리 및 순서화는 액세스 레이턴시에 영향을 미칠 수도 있다.
슁글드 자기 기록은 판독 센서들에 의해 요구되는 것보다 더 넓은 트랙들을 기록하는 기록 폴들을 이용한다. 그러나, 슁글드 자기 기록에서, 기록 동작은 전형적으로 주어진 방향에서 인접 트랙들의 오버라이팅을 야기한다. 따라서, 기록 트랙들은 주어진 방향에서 서로 오버랩하도록 기록되어, 판독 헤드들에 의해 정확하게 판독될 수 있는 데이터의 좁은 트랙들을 남긴다. 이와 같이, 오버래핑 트랙들은 트랙들의 그룹들 또는 밴드들로 기록되며, 이는 다른 트랙들로부터 격리되거나 그렇지 않으면 분리된다.
방사 서보 버스트 섹터들(208)로 구성될 때, 각각의 트랙(206)은 서보 버스트 섹터들(208) 사이에서 데이터 웨지들(wedges) 또는 섹터들(210)로 칭해지는 슬라이스들로 분할된다. 서보 버스트 섹터들은 타겟 트랙을 통해 판독/기록 헤드의 정확한 위치를 유지하는 데이터를 포함하고 저장 디스크(204) 주위의 미리 결정된 이격 위치들에 위치된다.
저장 디스크(204)가 회전함에 따라, 판독/기록 헤드는 서보 버스트 섹터들(208) 내에 어드레스를 포함하는 서보 정보를 판독하고 서보 정보를 서보 제어 시스템에 다시 송신한다. 서보 제어 시스템은 서보 버스트 섹터(208)로부터 판독되는 서보 정보 내의 어드레스가 타겟 트랙 위치에 상응하는지를 체크한다. 어드레스가 타겟 트랙 위치에 상응하지 않으면, 서보 제어 시스템은 시크 동작의 일부로서 판독/기록 헤드의 위치를 정확한 트랙 위치로 조정한다.
앞서 나타낸 바와 같이, 각각의 트랙(206)은 저장된 사용자 정보를 포함하는 이산 데이터 섹터들(210)을 포함한다. 특정 트랙 상에 포함되는 데이터 섹터들(210)의 수는 부분적으로 트랙의 길이(예를 들어, 원주)에 의존한다. 사용자 정보를 포함하는 것 외에, 각각의 데이터 섹터는 사용자 정보(예를 들어, 에러 검출 및 정정 코딩)를 식별하고 처리하는데 도움이 되도록 다른 데이터를 포함할 수도 있다.
일 실시예에 따르면, 저장 디스크(204)의 하나 이상의 부분들은 중간 스토리지의 타입을 스테이징 영역(202)으로서의 사용을 위해 보존된다. 스테이징 영역(202)은 저장 디스크(204)의 외부 직경(212)에 근접하여 위치되는 트랙들(206)의 원주 그룹화인 것으로 도 2에 도시된다. 스테이징 영역(202)은 일 예로서 도 2에 도시되고, 스테이징 영역(202)은 저장 디스크(204)의 임의의 다른 영역(방사 또는 원주) 상에 기록될 수 있다는 점이 이해되어야 한다. 외부 직경(212)에 근접하는 트랙들의 하나의 특성은 저장 디스크(204)의 내부 직경(214)에 근접하는 트랙들보다는 오히려 더 높은 순차적 데이터로 판독될 수 있는 것이다.
하나 이상의 스테이징 영역들(202)에 더하여, 저장 디스크(204)는 또한 하나 이상의 그래뉼 저장 영역들(216), 중간 스토리지의 타입을 포함하며, 각각의 동적으로 크기조정가능한 그래뉼은 논리 블록 어드레스들(LBA들)의 특정 서브세트에 제한된다. 저장 디스크(204)는 또한 목적지 저장 영역들(218)을 포함하며, 데이터 블록들은 전형적으로 저장 디스크(204)의 다른 영역들보다 더 장기간의 저장을 위해 기록된다. 일 실시예에서, 목적지 저장 영역들(218)은 적어도 특정 한정된 어드레스 범위들에 대해, 비동적 LBA-대-PBA 매핑을 특징으로 하지만, 다른 실시예들은 동적 매핑의 일부 사용을 갖는 목적지 저장 영역들을 포함할 수 있다. 다양한 중간 및 목적지 저장 영역들의 예시된 배치는 단지 예들이고, 그러한 영역들은 저장 디스크(204) 상의 임의의 위치에 위치될 수 있다는 점이 이해되어야 한다. 더욱이, 하나 이상의 스테이징 영역들(202), 그래뉼 저장 영역들(216), 및 목적지 저장 영역들(218)은 슁글드 자기 기록 영역들, 넌 슁글드 자기 기록 영역들, 또는 다른 기록 포맷들의 영역들일 수 있다.
우선 일반적 언급으로서, 기록 데이터는 다양한 저장 영역들(예를 들어, 랜덤 액세스 메모리, 스테이징 영역, 그래뉼 저장 영역, 목적지 저장 영역 등)에 다양한 경로들을 취할 수 있다는 점이 이해되어야 한다. 일 실시예에서, 호스트 디바이스는 데이터 블록들을 랜덤 액세스 메모리에 기록하며, 데이터 블록들은 초기에 분류될 수 있거나 분류되지 않을 수 있다. 랜덤 액세스 메모리가 비휘발성이면, 데이터 블록들은 다른 비휘발성 저장 매체에 기록되는 것 없이, 서비스 호스트 디바이스 판독 요청들로 랜덤 액세스 메모리에 축적될 수 있다. 대안적으로, 데이터 블록들은 랜덤 액세스 메모리로부터 스테이징 영역(개별 분류된 세트들로 또는 비분류된 데이터 블록들로서)으로 또는 다른 스토리지로 기록될 수 있다. 데이터 블록들이 스테이징 영역 또는 다른 스토리지에 기록될 때에도, 동일한 데이터 블록들은 랜덤 액세스 메모리 내에 유지될 수도 있으며, 이는 가능한 매체 판독 동작을 장래에 회피할 수 있다. 더욱이, 전력 손실의 가능성 때문에, 적어도 기록 데이터의 카피를 비휘발성 스토리지(예를 들어, NVRAM 또는 다른 비휘발성 저장 매체)에 유지하는 것이 전형적으로 바람직하다.
도 3은 일반적으로 증가하는 데이터 조직의 변화하는 레벨들에 기초하여 계층적 스토리지를 갖는 예시적 데이터 저장 시스템(300)을 예시한다. 저장 컨트롤러(302)는 랜덤 액세스 메모리(304)이든지, 데이터 스토리지(310)의 중간 스토리지(예를 들어, 스테이징 영역(306) 또는 그래뉼 저장 영역(308))이든지, 또는 데이터 스토리지(310)의 목적지 스토리지(예를 들어, 목적지 저장 영역(312))이든지 다양한 저장 영역들에서 데이터 블록들의 판독 및 기록을 관리한다. 다수의 스테이징 영역들, 다수의 그래뉼 저장 영역들, 및 다수의 목적지 저장 영역들이 단일 저장 디스크 상에 존재할 수 있다는 점이 이해되어야 한다. 더욱이, 저장 컨트롤러(302)는 주어진 저장 영역의 역할을 시간에 따라 동적으로 조정할 수 있다. 예를 들어, 스테이징 영역은 동작의 다양한 시간들에서 목적지 저장 영역으로 사용될 수 있다.
일 실시예에서, 저장 컨트롤러(302)는 호스트 디바이스로부터의 하나 이상의 기록 커맨드들에 대응하여, 새로운 기록 데이터의 데이터 블록들을 수신한다. 수신된 데이터 블록들은 임의적인 LBA-순서로 수신될 수 있으며 - 일부 기록 커맨드들은 보다 더 LBA-순서화될 수 있는 한편 다른 기록 커맨드들은 보다 덜 LBA-순서화될 수 있고, 기록 커맨드들의 일부 조합들은 논리 어드레스 공간의 실질적으로 다양한 영역들에서 타겟화될 수 있다. 그러나, 이러한 실시예에서, 저장 컨트롤러(302)는 데이터 블록들을 랜덤 액세스 메모리(304)로 수신하고, 데이터 블록들을 분류하며, 분류된 데이터 블록들을 스테이징 영역(306) 내의 상대적으로 인접한 물리적 공간에서의 스테이징 영역(306)에 기록한다. "상대적으로 인접한"이라는 용어는 단일 시크 동작(또는 수개의 시크 동작들)이 판독/기록 동작을 완료하기 위해 사용되고 데이터 블록들이 하나 이상의 트랙들 상의 순차적 PBA들로부터 판독되는/순차적 PBA들에 기록되는 물리 저장 영역으로부터/으로 다수의 판독/기록 커맨드들과 잠재적으로 연관되는 판독/기록 동작을 지칭한다. 데이터 스토리지(310)에서의 손상, 스테일(stale), 또는 그렇지 않으면 "불량(bad)" PBA들의 스키핑(skipping) 또는 데이터 스토리지(310)의 인근의 다수의 트랙들에 걸친 데이터의 판독/기록은 판독/기록 동작이 "상대적으로 인접한" 것으로 고려되는 것을 불가능하게 하지 않는다는 점이 이해되어야 한다.
언제라도, 그러나 전형적으로 낮은 저장 활동의 기간 동안, 저장 컨트롤러(302)는 상대적으로 인접한 판독 동작을 사용하여 스테이징 영역(306)에 저장된 데이터를 판독할 수 있다. 판독된 데이터는 랜덤 액세스 메모리(304)에 전송되고, 랜덤 액세스 메모리(304)에서 미리 정의된 순서로(예를 들어, LBA 순서로, 가장 빈번히 액세스된 순서로 등) 분류되고, 그 다음 스테이징 영역(306)에 또는 다른 저장 영역 또는 호스트 디바이스에 기록된다. 일 실시예에서, 스테이징 영역(306)에 판독되고, 분류되며, 기록되는 데이터의 양은 "청크"로 지칭되고 랜덤 액세스 메모리(304)의 크기와 동일하지만, 다른 크기들이 사용될 수 있다(예를 들어, 랜덤 액세스 메모리(304)의 상이한 부분들은 상이한 목적을 위해 또는 상이한 "청크들"을 위해 사용될 수 있음). 다른 실시예에서, 판독된 및 분류된 데이터는 대안적으로 판독 커맨드에 대응하여 호스트 디바이스에 전송되거나 다른 저장 영역(예를 들어, 플래시 메모리, 그래뉼 저장 영역(308) 또는 목적지 저장 영역(312))에 전송될 수 있다.
저장 컨트롤러(302)가 분류된 데이터를 스테이징 영역(306)에 기록할 때, 저장 컨트롤러(302)는 이전에 판독된 데이터의 물리 스토리지를 데이터의 새로이 분류된 카피로 오버라이팅하는 것보다는 오히려 전형적으로 분류된 데이터를 스테이징 영역(306) 내의 새로운 위치에 기록한다. 새로이 분류된 데이터가 스테이징 영역(306)에(또는 다른 저장 영역에) 기록되면, 이전에 판독된 데이터를 포함하는 물리 스토리지는 스테일로 마킹되고 새로운 기록 데이터와의 사용을 위해 회수될 수 있다. 회수 동작은 "가비지(garbage) 수집"으로 지칭될 수 있고 동일한 데이터의 다수의 분류된 및 비분류된 버전들이 동시에 스테이징 영역(306) 또는 데이터 스토리지(310)의 다른 저장 영역들 내에 상주하는 것을 허용할 수 있다. 대안적 실시예에서, 이전에 판독된 PBA들은 데이터의 새로이 분류된 카피로 오버라이팅될 수 있다. 스테이징 영역(306)(또는 다른 저장 영역들)에 기록된 데이터의 판독, 분류, 및 기록은 (예를 들어, 순서화 데이터의 특정 청크에 대한 논리적 그리고 물리적 순서화 사이의 연관성을 증가시키기 위해) 다수 회 반복될 수 있다는 점이 또한 이해되어야 한다.
저장 컨트롤러(302)에 의한 기록 동작들의 처리는 새로운 기록 데이터를 수신하기 위해 스테이징 영역 내에 더 많은 공간을 생성하는 것을 조력하는 순서로 수행될 수 있다는 점이 또한 이해되어야 한다. 예를 들어, 더 많은 스테일 PBA들을 스테이징 영역에서 생성하거나 상대적으로 인접한 스테일 PBA들의 보다 많은 영역들을 스테이징 영역에서 생성하는 호스트 커맨드들 또는 데이터 저장 시스템 동작들은 PBA들을 스테이징 영역에서 소모하는 호스트 커맨드들 또는 데이터 저장 시스템 동작들 전에 수행될 수 있다. 예를 들어, 데이터 블록들을 삭제하는 호스트 커맨드들은 새로운 데이터 기록 커맨드들 앞에 우선순위화될 수 있다. 마찬가지로, 데이터 블록들을 스테이징 영역에서 그래뉼 저장 영역 또는 목적지 저장 영역으로 데이터 블록들을 전송하는 데이터 저장 시스템 동작들은 새로운 데이터 기록 커맨드들 앞에 우선순위화될 수 있다. 이러한 방식으로, 데이터 저장 시스템은 스테이징 영역이 새로운 기록 데이터를 수용하기에 너무 채워질 가능성을 방지하거나 감소시킬 수 있다.
도 4는 스테일 데이터가 스테일로 식별되고 마킹되는 하나의 예시적 스테이징 영역(400)을 예시한다. 일 실시예에서, 스테일 데이터는 스테일 데이터를 저장하는 대응하는 PBA로 변환하는 LBA가 더 이상 없으므로 스테일로 "마킹"된다. 도 4는 예시적인 목적들을 위해 스테일 데이터 마킹 모듈(406)을 도시한다. 그러나, 스테일 데이터 마킹 모듈(406)은 전형적으로 LBA를 프레시 데이터를 포함하는 PBA에 리매핑하고 스테일 PBA에 동일한 LBA의 매핑을 삭제하는 동적 매핑 서브시스템의 기능 구성요소이다. 스테일 데이터 마킹 모듈(406)의 다른 양상은 물리적 세분에서 스테일 위치들의 수를 기록하는 카운터를 포함할 수 있다.
스테이징 영역(400)은 저장 컨트롤러로부터 데이터 블록들을 수신하며, 이는 블록들을 상대적으로 인접한 방식으로 기록한다. 도 4에서, 데이터는 기록 동작(1)에서 기록 동작(10)까지의 10개의 연속적인 기록 동작(402)으로 스테이징 영역(400)에 기록된 것으로 도시된다. 기록 동작들(402)은 개별 데이터 블록들(404)의 기록을 야기하는 개별 매체 액세스들을 지정한다(대응하는 LBA로 도 4에 각각 마킹됨). 예를 들어, 기록 동작(1)은 LBA들(73, 21, 및 94)과 연관되는 데이터 블록들을 상대적으로 인접한(예를 들어, 물리적으로 순차적인) 방식으로 스테이징 영역(400)에 기록하고, 기록 동작(2)는 LBA들(24 및 92)과 연관되는 데이터 블록들을 상대적으로 인접한(예를 들어, 물리적으로 순차적인) 방식으로 스테이징 영역(400)에 기록한다. 각각의 기록 동작에 대응하여, 저장 컨트롤러는 각각의 데이터 블록에 대한 LBA-대-PBA 매핑을 기록한다. 이러한 방식으로, 저장 컨트롤러는 호스트 디바이스에 의해 요청되는 데이터 블록을 그것의 대응하는 LBA에 따라 그것의 PBA로부터 검색할 수 있다. 연관된 동적 매핑 정보는 저장 컨트롤러-액세스가능 동적 매핑 테이블(도시되지 않음)에 저장될 수 있다.
기록 동작들(4 및 5)에 대해 도시된 바와 같이, LBA(46)와 연관되는 데이터 블록은 2회, 즉 기록 동작(4)에서 1회 및 다시 기록 동작(5)에서 다시, 기록된다. 따라서, 기록 동작(4)에서 기록되는 데이터를 저장하는 데이터 블록은 보다 최신의 데이터 블록이 기록 동작(5)에 의해 기록되었으므로, 이제 스테일하다. 게다가, 저장 컨트롤러는 기록 동작(5)과 연관되는 LBA(46)와 새로운 PBA 사이의 동적 매핑을 갱신한다.
스테일 데이터 마킹 모듈(406)은 LBA(46)의 새로운 기록을 검출하고 따라서 데이터 블록을 기록 동작(4)으로부터 스테일로 마킹한다(예를 들어, LBA(46)는 스테일 데이터 블록을 저장하는 PBA에 더 이상 매핑하지 않음). 기록 동작들(7 및 8)은 또한 동일한 LBA(17)를 기록하는 것으로 도시된다. 따라서, 스테일 데이터 마킹 모듈(406)은 기록 동작(7)에 의해 기록되는 LBA(17)에 대한 데이터 블록을 스테일로 마킹하고 기록 동작(8)과 연관되는 LBA(17) 및 새로운 PBA 사이의 동적 매핑을 갱신한다.
저장 컨트롤러가 스테이징 영역(400)으로부터 상대적으로 인접한 데이터를 판독하므로, 스테일 데이터 블록들은 무시되거나 또는 그렇지 않으면 분류 및 호스트 디바이스 또는 저장 매체로의 후속 재기록을 위해 랜덤 액세스 메모리로의 그들의 전송을 못하게 하는 것이 관리된다. 물리적 데이터 블록들이 스테일로 마킹되므로, 물리적 데이터 블록들은 새로이 분류된 청크들을 포함하는 새로운 데이터 블록들로 회수되고 재사용될 수 있다.
스테이징 영역(400)에 도시된 기록 데이터 모두 또는 기록 데이터의 하나 이상의 부분들은 랜덤 액세스 메모리(도 4에 도시되지 않음) 내에 유지될 수도 있다는 점이 이해되어야 한다. 이와 같이, 호스트 디바이스로부터 가장 최근에 기록된 데이터의 카피는 랜덤 액세스 메모리 뿐만 아니라 스테이징 영역 내에 유지될 수 있다. 이러한 방식으로, 저장 컨트롤러는 랜덤 액세스 메모리에서 가장 최근에 기록된 데이터에 액세스하기 위해 스테이징 영역으로부터 판독되는 것이 불필요하다.
도 5는 스테이징 영역(502)에서 분류된 데이터의 청크(500)의 예시적 생성을 예시한다. 일 실시예에서, 호스트 디바이스가 데이터 블록들을 저장 컨트롤러에 기록할 때, 503에 도시된 바와 같이, 저장 컨트롤러는 데이터 블록들을 랜덤 액세스 메모리(504)에 직접 기록하며, 그것은 분류된 카피를 랜덤 액세스 메모리 내에 여전히 유지하는 동안, 분류되고 스테이징 영역(502)에 카피될 수 있다. 대안적 실시예에서, 저장 컨트롤러는 505에서 도시된 바와 같이, 506에서 데이터 블록들로 도시된 데이터 블록들의 비분류된 시퀀스(501)를 스테이징 영역(502)으로부터 랜덤 액세스 메모리(504)로 판독할 수 있다.
분류 모듈(508)은 510에서 데이터 블록들로 도시된 LBA 순서에 따라 데이터를 분류하지만, 분류 모듈(508)은 가장 빈번히 액세스된, 가장 최근에 액세스된 등을 포함하는 다른 순서화 선호도들에 따라 데이터 블록들을 분류할 수 있다는 점이 이해되어야 한다. 다양한 분류 방법들은 랜덤 액세스 메모리(504) 내에서 데이터 블록들을 분류하기 위해 사용될 수 있다. 그 다음, 분류된 데이터("청크")는 상대적으로 인접한 방식으로 스테이징 영역(502) 내의 다른 위치에, 호스트 디바이스에, 또는 저장 매체의 다른 중간 또는 목적지 저장 영역들에 기록된다. 이전에 논의된 바와 같이, 대안적 실시예에서, 분류된 청크는 이전에 판독된 데이터를 통해 재기록될 수 있지만, 도 5는 청크(500)를 동일한 스테이징 영역(502) 내의 분리 위치에 기록된 것으로 도시한다.
스테이징 영역(502)에 새로운 청크(500)의 기록에 대응하여, 저장 컨트롤러는 스테이징 영역(502) 내에서 LBA들(21, 24, 73, 및 94)과 그들의 새로운 PBA들 사이의 새로운 관계들을 반영하기 위해 동적 매핑 정보를 갱신한다. 게다가, 스테일 데이터 마킹 모듈은 동일한 LBA들(즉, 501에서의 PBA들)에 대한 이전 데이터 블록들을 저장했던 이전 PBA들을 스테일로 마킹한다. 이러한 방식으로, 그러한 PBA들은 새로운 기록 데이터로 재사용되도록 회수될 수 있다. 전형적으로, 데이터 블록들의 세트가 분류되고 "청킹될" 때마다, LBA 순서화의 경우에, 후속 판독 동작들이 더 좋은 LBA-대-PBA 매핑으로 데이터에 액세스하고 있기 때문에, 그들 데이터 블록들의 평균 액세스 레이턴시는 감소된다. 하나의 관점에서, 스테이징 영역으로/으로부터 매체 액세스마다 다수의 분류된 데이터 블록들의 전송은 더 큰 수의 데이터 블록들에 걸쳐 상대적으로 인접한 물리적 매체 액세스들 사이의 레이턴시들을 애머타이징(amortizing)한다.
도 6은 스테이징 영역(604)에서 기록하는 청크들(602)의 세트로부터 데이터(600)의 서브세트의 예시적 분류를 예시한다. 저장 컨트롤러는 데이터 블록들의 다수의 분류된 세트들(예를 들어, 다수의 판독 액세스들을 통한 다수의 청크들)을 스테이징 영역(604)으로부터 랜덤 액세스 메모리(606)(예를 들어, 전체 메모리(606) 또는 그것의 일부)로 판독한다. 주석: 데이터의 다중 범위(multiple extent)는 다중 범위에 걸쳐 매체 액세스들 사이의 레이턴시들을 애머타이징하도록 매체 액세스마다 판독될 수 있다.
분류 모듈(608)은 랜덤 액세스 메모리(606)에서 수신되는 판독 데이터 블록들을 미리 정의된 순서에 따라(예를 들어, 도 6에서의 LBA 순서로) 분류한다. 각각 분류된 청크의 헤드로부터 판독하는 N항 합병 정렬과 같은 다양한 분류 방법들은 랜덤 액세스 메모리(606) 내에서 수신되는 데이터 블록들을 분류하기 위해 사용될 수 있다. 610에서의 새로이 분류된 청크는 612에서 스테이징 영역(604)에 기록된다. 스테이징 영역(604)에 새로운 청크(612)의 기록에 대응하여, 저장 컨트롤러는 스테이징 영역(604) 내에서 LBA들(1, 2, 11, 및 16)과 그들의 새로운 PBA들 사이의 새로운 관계들을 반영하기 위해 동적 매핑 정보를 갱신한다. 게다가, 스테일 데이터 마킹 모듈은 동일한 LBA들에 대한 이전 데이터 블록들을 저장했던 이전 PBA들을 스테일로 마킹한다. 이러한 방식으로, 그러한 PBA들은 새로운 기록 데이터로 재사용되도록 회수될 수 있다. 614에서의 데이터 블록들은 스테이징 영역(604)에서 여전히 기록되고 있는 비분류 언청킹된 데이터 블록들을 나타낸다.
일 실시예에서, 데이터는 디스크 스케줄링 로직의 적용에 의해 스테이징 영역(604)으로부터 판독된다. 예를 들어, 판독 요청들은 시크 시간들, 레이턴스 시간들 등에 기초하여 실행을 위해 큐잉 업(queuing up)되고 스케줄링된다. 일부 실시예들에서, 디스크 스케줄링 로직은 그래뉼 저장 영역 또는 목적지 저장 영역에 기록과 같은 기록 동작들에 사용될 수도 있다.
도 7은 스테이징 영역(704) 외부의 사용을 위한 청크들(702)의 세트로부터의 데이터(700)의 서브세트의 예시적 분류를 예시한다. 저장 컨트롤러는 데이터 블록들의 다수의 분류된 세트들(예를 들어, 다수의 판독 액세스들을 통한 다수의 청크들)을 스테이징 영역(704)으로부터 랜덤 액세스 메모리(706)(예를 들어, 전체 메모리(706) 또는 그것의 일부)로 판독한다. 주석: 데이터의 다중 범위는 다중 범위에 걸쳐 매체 액세스들 사이의 레이턴시들을 애머타이징하도록 매체 액세스마다 판독될 수 있다.
분류 모듈(708)은 랜덤 액세스 메모리(706) 내의 판독 데이터 블록들을 미리 정의된 순서에 따라(예를 들어, 도 7에서의 LBA 순서로) 분류한다. 각각 분류된 청크의 헤드로부터 판독하는 N항 합병 정렬과 같은 다양한 분류 방법들은 랜덤 액세스 메모리(706) 내에서 데이터 블록들을 분류하기 위해 사용될 수 있다. 710에서의 새로이 분류된 청크는 다른 스토리지에(예를 들어, 다른 스테이징 영역 또는 그래뉼 저장 영역과 같은 다른 중간 스토리지에, 또는 목적지 저장 영역에) 또는 호스트 디바이스에 기록된다. 다른 스토리지에 새로운 청크(712)의 기록에 대응하여, 저장 컨트롤러는 다른 스토리지 내에서 LBA들(1, 2, 11, 및 16)과 그들의 새로운 PBA들 사이의 새로운 관계들을 반영하기 위해 동적 매핑 정보를 갱신한다. 714에서의 데이터 블록들은 스테이징 영역(704)에서 여전히 기록되고 있는 비분류 언청킹된 데이터 블록들을 나타낸다.
게다가, 일 실시예에서, 스테일 데이터 마킹 모듈은 동일한 LBA들에 대한 이전 데이터 블록들을 저장했던 이전 PBA들을 스테일로 마킹한다. 이러한 방식으로, 그러한 PBA들은 새로운 기록 데이터로 재사용되도록 회수될 수 있다. 그러나, 대안적 실시예에서, 다른 스토리지에 기록된 데이터 블록들에 상응하는 스테이징 영역(704) 내의 데이터 블록들은 스테일로 마킹될 필요가 없다. 그러한 일 실시예에서, 데이터 블록들의 다수의 카피들은 데이터 저장 시스템 내의(예를 들어, 스테이징 영역 내의, 플래시 메모리 캐시 내의, 랜덤 액세스 메모리 내의, 그래뉼 저장 영역 내의, 목적지 저장 영역 내의) 다수의 물리적 위치들에 기록될 수 있고 저장 컨트롤러는 판독 동작이든지 또는 기록 동작이든지, 데이터 블록들의 호스트-요청된 세트에 액세스하는 가장 낮은 레이턴시를 제공하는 물리적 위치를 결정할 수 있다. 데이터 블록들의 동적 매핑은 데이터 블록들을 위한 주어진 판독 또는 기록 커맨드에 대한 평균 액세스 레이턴시를 감소시키기 위해 각각의 물리적 위치에서의 액세스와 연관되는 예상된 레이턴시와 조합하여 동일한 데이터 블록들에 대한 다수의 물리적 위치들을 관리할 수 있다.
도 8은 스테이징 영역으로부터 데이터 블록들을 청킹하는 예시적 동작들(800)을 예시한다. 수신 동작(802)은 논리-블록-어드레스된 데이터 블록들을 호스트 디바이스 또는 다른 스토리지로부터 랜덤 액세스 메모리로 수신한다. 분류 동작(804)은 수신된 데이터 블록들을 미리 정의된 순서로 분류한다. 예시적 순서화는 LBA-순서, 가장 빈번히 액세스된 순서, 가장 최근에 액세스된 순서 등을 제한 없이 포함할 수 있다.
기록 동작(806)은 분류된 데이터 블록들을 분류된 데이터 블록들의 세트(예를 들어, 분류된 청크들로 지칭됨)로서 스테이징 영역에 기록한다. 동적 매핑 동작(808)은 데이터 블록들의 LBA들을 데이터 스토리지의 스테이징 영역에서 대응하는 PBA들에 동적으로 매핑한다.
도 9는 스테이징 영역으로부터 데이터 블록들을 리청킹하는 예시적 동작들(900)을 예시한다. 판독 동작(902)은 데이터 블록들의 상대적으로 인접한 세트를 데이터 스토리지의 스테이징 영역에서 분류된 데이터 블록들의 상이한 세트들(예를 들어, 청크들)로부터 판독한다. 전송 동작(904)은 판독된 데이터 블록들을 랜덤 액세스 메모리에 전송한다. 분류 동작(906)은 전송된 데이터 블록들을 미리 정의된 순서로 분류한다. 예시적 순서화는 LBA-순수, 가장 빈번히 액세스된 순서, 가장 최근에 액세스된 순서 등을 제한 없이 포함할 수 있다.
기록 동작(908)은 분류된 데이터 블록들을 분류된 데이터 블록들의 새로운 세트(예를 들어, 새로운 청크)로서 스테이징 영역에 다시 기록한다. 동적 리매핑 동작(910)은 데이터 블록들의 LBA들을 데이터 스토리지의 스테이징 영역에서 새로운 대응하는 물리 블록 어드레스들에 동적으로 리매핑한다. 마킹 동작(912)은 데이터 블록들이 판독 동작(902)에서 판독되었던 PBA들을 스테일로 마킹한다. 회수 동작(914)은 예를 들어 다른 데이터 블록들을 기록하기 위해 스테이징 영역에서 스테일 PBA들을 재사용함으로써 스테이징 영역에서 스테일 PBA들을 회수한다.
도 10은 데이터 블록들을 스테이징 영역에서 다른 중간 스토리지로 재분류하는 예시적 동작들(1000)을 예시한다. 판독 동작(1002)은 데이터 블록들의 상대적으로 인접한 세트를 데이터 스토리지의 스테이징 영역에서 분류된 데이터 블록들의 상이한 세트들(예를 들어, 청크들)로부터 판독한다. 전송 동작(1004)은 판독된 데이터 블록들을 랜덤 액세스 메모리에 전송한다. 분류 동작(1006)은 전송된 데이터 블록들을 미리 정의된 순서로 분류한다. 예시적 순서화는 LBA-순서, 가장 빈번히 액세스된 순서, 가장 최근에 액세스된 순서 등을 제한 없이 포함할 수 있다.
기록 동작(1008)은 분류된 데이터 블록들을 다른 중간 저장 영역에, 목적지 저장 영역에, 또는 호스트 디바이스에 기록한다. 예를 들어, 분류된 데이터 블록들은 상이한 스테이징 영역에 청크들로 또는 그래뉼 저장 영역에 기록될 수 있다. 다른 예에서, 분류된 데이터 블록들은 보다 장기간 저장을 위해 데이터 스토리지의 목적지 저장 영역에 기록될 수 있다. 또 다른 예에서, 분류된 데이터 블록들은 판독 커맨드에 대응하여 호스트 디바이스에 전송될 수 있다. 데이터 블록들이 데이터 스토리지에 재기록되면, 동적 리매핑 동작(1010)은 데이터 블록들의 LBA들을 데이터 스토리지의 스테이징 영역에서 새로운 대응하는 물리 블록 어드레스들에 동적으로 리매핑한다. 동작들(1000)은 적절한 환경들에서 마킹 및 회수 동작들에 의해 보완될 수도 있다. 예를 들어, 데이터 블록들이 목적지 저장 영역으로 이동되면, 그 데이터 블록들을 이전에 저장하는 스테이징 영역 내의 PBA들은 스테일로 마킹되고 새로운 데이터 블록들과의 사용을 위해 회수될 수 있다. 그러나, 오버프로비저닝 환경에서, 저장 컨트롤러는 동일한 데이터 블록들의 카피들을 저장 영역에서, 다른 중간 저장 영역들에서, 및/또는 목적지 저장 영역에서 유지할 수 있다. 이러한 방식으로, 저장 컨트롤러는 최저 평균 액세스 레이턴시를 제공하는 스토리지로부터 요청된 데이터 블록들을 판독할 수 있다. 동적 매핑은 각각의 LBA-대-PBA 관계에 대한 매핑들을 유지하고 특정 판독 커맨드를 위한 각각의 관계에 대한 최저 평균 액세스 레이턴시의 결정에 원조하는 정보를 제공할 수 있다.
본 명세서에 설명되는 기술의 실시예들은 하나 이상의 컴퓨터 시스템들 내의 논리 단계들로 구현된다. 본 기술의 논리 동작들은 (1) 하나 이상의 컴퓨터 시스템들을 실행하는 프로세서 구현 단계들의 시퀀스 및 (2) 하나 이상의 컴퓨터 시스템들 내의 상호연결 기계 또는 회로 모듈들로 구현된다. 실시예는 기술을 구현하는 컴퓨터 시스템의 성능 요건들에 따른 선택의 문제이다. 따라서, 본 명세서에 설명되는 기술의 실시예들을 구성하는 논리 동작들은 동작들, 단계들, 객체들, 또는 모듈들로 다양하게 지칭된다. 더욱이, 논리 동작들은 달리 명시적으로 청구되지 않거나 특정 순서가 청구항 언어에 의해 본질적으로 요구되지 않으면 임의의 순서로 수행될 수 있다는 점이 이해되어야 한다.
데이터 스토리지 및/또는 메모리는 하드 디스크 매체, 다수의 저장 디바이스들을 포함하는 저장 어레이, 광 매체, 고체 상태 드라이브 기술, ROM, RAM, 및 다른 기술과 같은 다양한 타입들의 스토리지에 의해 구체화될 수 있다. 동작들은 펌웨어, 소프트웨어, 하드와이어드 회로조직, 게이트 어레이 기술 및 다른 기술들, 마이크로프로세서에 의해 실행되거나 원조되는지, 마이크로프로세서 코어, 마이크로컨트롤러, 특수 목적 회로조직, 또는 다른 처리 기술들로 구현될 수 있다. 기록 컨트롤러, 저장 컨트롤러, 데이터 기록 회로조직, 데이터 판독 및 복구 회로조직, 스테일 데이터 마킹 모듈, 분류 모듈, 및 데이터 저장 시스템의 다른 기능 모듈들은 시스템 구현 프로세스를 수행하기 위한 프로세서 판독가능 명령어들을 처리하는 프로세서를 포함하거나 프로세서와 협력할 수 있다는 점이 이해되어야 한다.
상기 명세서, 예들, 및 데이터는 본 기술의 예시적 실시예들의 구조 및 사용의 완전한 설명을 제공한다. 본 기술의 많은 실시예들은 본 기술의 사상 및 범위로부터 벗어나는 것 없이 이루어질 수 있으므로, 본 발명은 이하에 첨부된 청구항들에 있다. 더욱이, 상이한 실시예들의 구조적 특징들은 열거된 청구항들로부터 벗어나는 것 없이 또 다른 실시예에 결합될 수 있다.

Claims (20)

  1. 방법으로서,
    데이터 스토리지의 랜덤 액세스 메모리에서 수신되는 착신 기록 데이터의 데이터 블록들을 분류하는 단계; 및
    상기 분류된 데이터 블록들을 개별적으로 분류된 데이터 블록 세트들로서 상기 데이터 스토리지의 스테이징 영역에 기록하는 단계를 포함하는 방법.
  2. 청구항 1에 있어서,
    상기 기록된 데이터 블록들의 논리 블록 어드레스들을 상기 데이터 스토리지의 스테이징 영역 내의 새로운 물리 블록 어드레스들에 동적으로 매핑하는 단계를 더 포함하는 방법.
  3. 청구항 1에 있어서, 상기 분류 동작은,
    논리 블록 어드레스 순서에 따라 상기 데이터 블록들을 분류하는 단계를 포함하는 방법.
  4. 청구항 1에 있어서, 상기 분류 동작은,
    가장 빈번히 액세스된 순서에 따라 상기 데이터 블록들을 분류하는 단계를 포함하는 방법.
  5. 청구항 1에 있어서, 상기 분류 동작은,
    가장 최근에 액세스된 순서에 따라 상기 데이터 블록들을 분류하는 단계를 포함하는 방법.
  6. 청구항 1에 있어서, 상기 기록 동작은 상기 랜덤 액세스 메모리의 분류가능 부분의 크기에 의해 제한되는 다수의 데이터 블록들 상에 수행되는 방법.
  7. 청구항 1에 있어서, 청구항 1에 있어서,
    상기 데이터 스토리지의 스테이징 영역에 기록되는 다수의 개별적으로 분류된 데이터 블록 세트들을 상기 랜덤 액세스 메모리로 판독하는 단계;
    상기 랜덤 액세스 메모리에서 상기 다수의 분류된 데이터 블록들로부터 상기 상기 개별 데이터 블록들을 재분류하는 단계로서, 상기 재분류된 개별 데이터 블록들은 개별적으로 재분류된 데이터 블록 세트들에 그룹화되는 상기 단계; 및
    상기 개별적으로 재분류된 데이터 블록 세트들을 상기 스테이징 영역에 기록하는 단계를 더 포함하는 방법.
  8. 청구항 1에 있어서,
    상기 데이터 스토리지의 스테이징 영역에 기록되는 다수의 개별적으로 분류된 데이터 블록 세트들을 상기 랜덤 액세스 메모리로 판독하는 단계;
    상기 랜덤 액세스 메모리에서 상기 다수의 분류된 데이터 블록들로부터 상기 개별 데이터 블록들을 재분류하는 단계, 상기 재분류된 개별 데이터 블록들은 개별적으로 재분류된 데이터 블록 세트들로 그룹화되는 상기 단계; 및
    상기 개별적으로 재분류된 데이터 블록 세트들을 다른 중간 저장 영역에 기록하는 단계를 더 포함하는 방법.
  9. 청구항 1에 있어서,
    상기 데이터 스토리지의 스테이징 영역에 기록되는 다수의 개별적으로 분류된 데이터 블록 세트들을 상기 랜덤 액세스 메모리로 판독하는 단계;
    상기 랜덤 액세스 메모리에서 상기 다수의 분류된 데이터 블록들로부터 상기 개별 데이터 블록들을 재분류하는 단계, 상기 재분류된 개별 데이터 블록들은 개별적으로 재분류된 데이터 블록 세트들로 그룹화되는 상기 단계; 및
    상기 개별적으로 재분류된 데이터 블록 세트들을 호스트 디바이스에 기록하는 단계를 더 포함하는 방법.
  10. 청구항 1에 있어서,
    상기 데이터 스토리지의 스테이징 영역에 기록되는 다수의 개별적으로 분류된 데이터 블록 세트들을 상기 랜덤 액세스 메모리로 판독하는 단계;
    상기 랜덤 액세스 메모리에서 상기 다수의 분류된 데이터 블록들로부터 상기 개별 데이터 블록들을 재분류하는 단계, 상기 재분류된 개별 데이터 블록들은 개별적으로 재분류된 데이터 블록 세트들로 그룹화되는 상기 단계; 및
    상기 개별적으로 재분류된 데이터 블록 세트들을 목적지 저장 영역에 기록하는 단계를 더 포함하는 방법.
  11. 데이터 저장 시스템으로서,
    데이터 스토리지;
    랜덤 액세스 메모리;
    상기 랜덤 액세스 메모리에 통신 결합되고 상기 랜덤 액세스 메모리에서 수신되는 착신 기록 데이터의 데이터 블록들을 분류하도록 구성되는 분류 모듈;
    상기 랜덤 액세스 메모리 및 상기 데이터 스토리지에 통신 결합되고 상기 분류된 데이터 블록들을 개별적으로 분류된 데이터 블록 세트들로서 상기 데이터 스토리지의 스테이징 영역에 기록하도록 구성되는 저장 컨트롤러를 포함하는 데이터 저장 시스템.
  12. 청구항 11에 있어서, 상기 분류 모듈은 논리 블록 어드레스 순서에 따라 상기 데이터 블록들을 분류하도록 더 구성되는 데이터 저장 시스템.
  13. 청구항 11에 있어서, 상기 저장 컨트롤러는 상기 데이터 스토리지의 스테이징 영역에 기록되는 다수의 개별적으로 분류된 데이터 블록 세트들을 상기 랜덤 액세스 메모리로 판독하고, 상기 랜덤 액세스 메모리에서 상기 다수의 분류된 데이터 블록들로부터 상기 개별 데이터 블록들을 재분류하도록 더 구성되며, 상기 재분류된 개별 데이터 블록들은 개별적으로 재분류된 데이터 블록 세트들로 그룹화되는 데이터 저장 시스템.
  14. 청구항 13에 있어서, 상기 저장 컨트롤러는 상기 개별적으로 재분류된 데이터 블록 세트들을 다른 중간 저장 영역에 기록하도록 더 구성되는 데이터 저장 시스템.
  15. 청구항 13에 있어서, 상기 저장 컨트롤러는 상기 개별적으로 재분류된 데이터 블록 세트들을 목적지 저장 영역에 기록하도록 더 구성되는 데이터 저장 시스템.
  16. 데이터 저장 시스템에서 시스템 구현 프로세스를 수행하기 위한 프로세서 판독가능 명령어들을 저장한 하나 이상의 프로세서 판독가능 저장 매체로서, 상기 프로세스는,
    데이터 스토리지의 랜덤 액세스 메모리에서 수신되는 착신 기록 데이터의 데이터 블록들을 분류하는 단계; 및
    상기 분류된 데이터 블록들을 개별적으로 분류된 데이터 블록 세트들로서 상기 데이터 스토리지의 스테이징 영역에 기록하는 단계를 포함하는 하나 이상의 프로세서 판독가능 저장 매체.
  17. 청구항 16에 있어서, 상기 프로세스는,
    상기 기록된 데이터 블록들의 논리 블록 어드레스들을 상기 데이터 스토리지의 스테이징 영역 내의 새로운 물리 블록 어드레스들에 동적으로 매핑하는 단계를 더 포함하는 하나 이상의 프로세서 판독가능 저장 매체.
  18. 청구항 16에 있어서, 상기 분류 동작은,
    논리 블록 어드레스 순서에 따라 상기 데이터 블록들을 분류하는 단계를 단계를 포함하는 하나 이상의 프로세서 판독가능 저장 매체.
  19. 청구항 16에 있어서,
    상기 데이터 스토리지의 스테이징 영역에 기록되는 다수의 개별적으로 분류된 데이터 블록 세트들을 상기 랜덤 액세스 메모리로 판독하는 단계;
    상기 랜덤 액세스 메모리에서 상기 다수의 분류된 데이터 블록들로부터 상기 개별 데이터 블록들을 재분류하는 단계, 상기 재분류된 개별 데이터 블록들은 개별적으로 재분류된 데이터 블록 세트들로 그룹화되는 상기 단계; 및
    상기 개별적으로 재분류된 데이터 블록 세트들을 다른 중간 저장 영역에 기록하는 단계를 더 포함하는 하나 이상의 프로세서 판독가능 저장 매체.
  20. 청구항 16에 있어서,
    상기 데이터 스토리지의 스테이징 영역에 기록되는 다수의 개별적으로 분류된 데이터 블록 세트들을 랜덤 액세스 메모리로 판독하는 단계;
    상기 랜덤 액세스 메모리에서 상기 다수의 분류된 데이터 블록들로부터 상기 개별 데이터 블록들을 재분류하는 단계, 상기 재분류된 개별 데이터 블록들은 개별적으로 재분류된 데이터 블록 세트들로 그룹화되는 상기 단계; 및
    상기 개별적으로 재분류된 데이터 블록 세트들을 목적지 저장 영역에 기록하는 단계를 더 포함하는 하나 이상의 프로세서 판독가능 저장 매체.
KR1020140023425A 2013-03-15 2014-02-27 중간 스토리지 내의 분류된 데이터의 스테이징 KR101984782B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/839,132 US9588886B2 (en) 2013-03-15 2013-03-15 Staging sorted data in intermediate storage
US13/839,132 2013-03-15

Publications (2)

Publication Number Publication Date
KR20140113346A true KR20140113346A (ko) 2014-09-24
KR101984782B1 KR101984782B1 (ko) 2019-09-03

Family

ID=50440461

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140023425A KR101984782B1 (ko) 2013-03-15 2014-02-27 중간 스토리지 내의 분류된 데이터의 스테이징

Country Status (5)

Country Link
US (2) US9588886B2 (ko)
EP (1) EP2779170A1 (ko)
JP (1) JP2014182835A (ko)
KR (1) KR101984782B1 (ko)
CN (1) CN104050090B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8988800B1 (en) 2009-09-15 2015-03-24 Marvell International Ltd. Error correction for storage devices
US9612956B2 (en) 2013-03-15 2017-04-04 Seagate Technology Llc Multi-tiered caching for data storage management in a device
US10031961B1 (en) * 2013-06-20 2018-07-24 Ca, Inc. Systems and methods for data replication
US10216754B1 (en) * 2013-09-26 2019-02-26 EMC IP Holding Company LLC System and method for balancing compression and read performance in a storage system
US9443553B2 (en) * 2014-04-28 2016-09-13 Seagate Technology Llc Storage system with multiple media scratch pads
US9431052B2 (en) 2014-06-26 2016-08-30 Marvell World Trade Ltd. Two dimensional magnetic recording systems, devices and methods
CN107168892A (zh) 2017-03-29 2017-09-15 联想(北京)有限公司 一种数据的写入方法及装置
US10394493B2 (en) * 2017-06-30 2019-08-27 Seagate Technology Llc Managing shingled magnetic recording (SMR) zones in a hybrid storage device
KR20200078101A (ko) * 2018-12-21 2020-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN114048157A (zh) * 2021-11-16 2022-02-15 安徽芯纪元科技有限公司 一种内部总线地址重映射装置
CN114816240A (zh) * 2022-03-30 2022-07-29 阿里巴巴(中国)有限公司 一种数据写入方法及一种数据读取方法
CN116737086B (zh) * 2023-08-14 2023-11-17 江苏云途半导体有限公司 一种嵌入式非易失性存储器读写方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185411A (ja) * 1997-09-01 1999-03-30 Toshiba Corp ディスクアレイ装置、ディスクアレイ装置のデータ再配置方法、及びディスクアレイ装置のデータ再配置方法のプログラム情報を格納した記憶媒体
JP2002014776A (ja) * 2000-06-29 2002-01-18 Toshiba Corp ディスク制御システムおよびデータ再配置方法
JP2004334419A (ja) * 2003-05-06 2004-11-25 Internatl Business Mach Corp <Ibm> 磁気ディスク装置、ファイル管理システム及びその方法
US20090037663A1 (en) * 2006-02-28 2009-02-05 Fujitsu Limited Processor equipped with a pre-fetch function and pre-fetch control method
US20120131265A1 (en) * 2010-11-23 2012-05-24 International Business Machines Corporation Write cache structure in a storage system
JP2012113662A (ja) * 2010-11-26 2012-06-14 Fujitsu Ltd アクセス制御プログラム、アクセス制御方法および情報処理装置
US20120198149A1 (en) * 2006-06-20 2012-08-02 Microsoft Corporation Efficiently synchronizing with separated disk caches

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557770A (en) 1993-03-24 1996-09-17 International Business Machines Corporation Disk storage apparatus and method for converting random writes to sequential writes while retaining physical clustering on disk
JP2943693B2 (ja) 1996-04-26 1999-08-30 日本電気株式会社 ソート作業ファイルスペース管理方式
JP2000222287A (ja) 1999-02-04 2000-08-11 Olympus Optical Co Ltd 情報記録再生装置
US8289984B2 (en) 2003-01-13 2012-10-16 Emlilex Design & Manufacturing Corporation Allocation-unit-based virtual formatting methods and devices employing allocation-unit-based virtual formatting methods
US7114033B2 (en) * 2003-03-25 2006-09-26 Emc Corporation Handling data writes copied from a remote data storage device
US7809252B2 (en) 2003-04-09 2010-10-05 Corel Inc. Systems and methods for caching multimedia data
US7293156B2 (en) * 2003-07-15 2007-11-06 Xiv Ltd. Distributed independent cache memory
US7996645B2 (en) 2003-09-26 2011-08-09 Hitachi Global Storage Technologies Netherlands B.V. Log-structured file system for disk drives with shingled writing
US8756399B2 (en) 2006-01-25 2014-06-17 Seagate Technology Llc Mutable association of a set of logical block addresses to a band of physical storage blocks
DE602006007103D1 (de) 2006-03-28 2009-07-16 Comadur Sa Verfahren zum Dekorieren eines Keramikteils
JP5037881B2 (ja) 2006-04-18 2012-10-03 株式会社日立製作所 ストレージシステム及びその制御方法
JP2008140459A (ja) 2006-11-30 2008-06-19 Toshiba Corp ハイブリッドディスク記憶装置及び同装置に適用されるディスクライト方法
US20100115175A9 (en) 2006-12-18 2010-05-06 Zhiqing Zhuang Method of managing a large array of non-volatile memories
JP2008181416A (ja) 2007-01-25 2008-08-07 Hitachi Ltd 記憶システム及びデータ管理方法
US20090157940A1 (en) 2007-12-15 2009-06-18 Hitachi Global Storage Technologies Netherlands, B.V. Techniques For Storing Data In Multiple Different Data Storage Media
JP2009160813A (ja) 2008-01-07 2009-07-23 Anqbell Japan Co Ltd レポート帳
JP5141402B2 (ja) 2008-06-26 2013-02-13 富士通株式会社 ストレージシステム,コピー制御方法およびコピー制御装置
US8549208B2 (en) 2008-12-08 2013-10-01 Teleputers, Llc Cache memory having enhanced performance and security features
JP5221332B2 (ja) 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US8700840B2 (en) 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
JP2010257094A (ja) 2009-04-23 2010-11-11 Hitachi Ltd 階層ストレージ管理システムにおける移動候補ファイルの抽出方法
US8176289B2 (en) 2009-05-21 2012-05-08 Red Hat Israel, Ltd. Method to support sparse volumes or thin provisioned volumes in real time
CN101576856A (zh) 2009-06-18 2009-11-11 浪潮电子信息产业股份有限公司 一种基于长短周期访问频度的缓存数据替换方法
KR101594029B1 (ko) 2009-07-06 2016-02-16 삼성전자주식회사 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치
US9110594B2 (en) 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US8560770B2 (en) 2009-11-13 2013-10-15 Seagate Technology Llc Non-volatile write cache for a data storage system
US9514055B2 (en) 2009-12-31 2016-12-06 Seagate Technology Llc Distributed media cache for data storage systems
KR101654774B1 (ko) 2010-02-08 2016-09-06 시게이트 테크놀로지 엘엘씨 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체
CN101727299B (zh) * 2010-02-08 2011-06-29 北京同有飞骥科技股份有限公司 连续数据存储中面向raid5的写操作优化设计方法
JP2011194899A (ja) 2010-03-17 2011-10-06 Ntn Corp インホイール型モータ内蔵車輪用軸受装置
US20120079229A1 (en) 2010-09-28 2012-03-29 Craig Jensen Data storage optimization for a virtual platform
US9569351B2 (en) 2010-10-25 2017-02-14 Seagate Technology Llc Storing corresponding data units in a common storage unit
US9280477B2 (en) 2010-12-13 2016-03-08 Seagate Technology Llc Data storage management in a memory device
US9015549B2 (en) 2011-04-26 2015-04-21 Seagate Technology Llc Iterating inner and outer codes for data recovery
KR20120121736A (ko) 2011-04-27 2012-11-06 삼성전자주식회사 데이터 라이트 방법 및 저장 장치
KR101854206B1 (ko) 2011-04-27 2018-05-04 시게이트 테크놀로지 엘엘씨 라이트 방법 및 그 방법을 이용하는 저장 장치
US8913335B2 (en) 2011-05-23 2014-12-16 HGST Netherlands B.V. Storage device with shingled data and unshingled cache regions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185411A (ja) * 1997-09-01 1999-03-30 Toshiba Corp ディスクアレイ装置、ディスクアレイ装置のデータ再配置方法、及びディスクアレイ装置のデータ再配置方法のプログラム情報を格納した記憶媒体
JP2002014776A (ja) * 2000-06-29 2002-01-18 Toshiba Corp ディスク制御システムおよびデータ再配置方法
JP2004334419A (ja) * 2003-05-06 2004-11-25 Internatl Business Mach Corp <Ibm> 磁気ディスク装置、ファイル管理システム及びその方法
US20090037663A1 (en) * 2006-02-28 2009-02-05 Fujitsu Limited Processor equipped with a pre-fetch function and pre-fetch control method
US20120198149A1 (en) * 2006-06-20 2012-08-02 Microsoft Corporation Efficiently synchronizing with separated disk caches
US20120131265A1 (en) * 2010-11-23 2012-05-24 International Business Machines Corporation Write cache structure in a storage system
JP2012113662A (ja) * 2010-11-26 2012-06-14 Fujitsu Ltd アクセス制御プログラム、アクセス制御方法および情報処理装置

Also Published As

Publication number Publication date
US20140281183A1 (en) 2014-09-18
US9588887B2 (en) 2017-03-07
JP2014182835A (ja) 2014-09-29
US9588886B2 (en) 2017-03-07
US20140281185A1 (en) 2014-09-18
CN104050090A (zh) 2014-09-17
EP2779170A1 (en) 2014-09-17
CN104050090B (zh) 2017-08-25
KR101984782B1 (ko) 2019-09-03

Similar Documents

Publication Publication Date Title
KR101984782B1 (ko) 중간 스토리지 내의 분류된 데이터의 스테이징
KR101910840B1 (ko) 동적 그래뉼기반 매개 스토리지
US10282130B2 (en) Coherency of data in data relocation
US9368130B2 (en) Data storage system, method of writing to storage in the data storage system, hard disk and method of forming the hard disk
KR102357203B1 (ko) 판독 캐시 관리
CN105280197A (zh) 使用区段重定位对数据存储装置进行数据管理
US10223277B2 (en) SMR drive with multi-level write-cache for high random-write performance
US8953269B1 (en) Management of data objects in a data object zone
US9235352B2 (en) Datastore for non-overwriting storage devices
US20160299698A1 (en) Realm partitioning in hard drives
US11989457B2 (en) System and method for performing data read-write operations in zoned storage devices
CN111580752B (zh) 一种数据存储方法、设备、计算机程序及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J301 Trial decision

Free format text: TRIAL NUMBER: 2017101001246; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20170315

Effective date: 20190131

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant