KR100982392B1 - 저장 디바이스 캐시 메모리 관리 - Google Patents

저장 디바이스 캐시 메모리 관리 Download PDF

Info

Publication number
KR100982392B1
KR100982392B1 KR1020047008914A KR20047008914A KR100982392B1 KR 100982392 B1 KR100982392 B1 KR 100982392B1 KR 1020047008914 A KR1020047008914 A KR 1020047008914A KR 20047008914 A KR20047008914 A KR 20047008914A KR 100982392 B1 KR100982392 B1 KR 100982392B1
Authority
KR
South Korea
Prior art keywords
cache memory
storage medium
data
cache
file system
Prior art date
Application number
KR1020047008914A
Other languages
English (en)
Other versions
KR20040064735A (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 KR20040064735A publication Critical patent/KR20040064735A/ko
Application granted granted Critical
Publication of KR100982392B1 publication Critical patent/KR100982392B1/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

본 발명은 저장 매체(8,12,25) 및 그와 관련된 캐시 메모리(13,26)를 포함하는 디바이스(2,11)에 관한 것으로서, 저장 매체(8,12,25)는 판독 모드 또는 기록 모드시 파일 시스템 관리 수단(6)과 관련된 호스트 디바이스(1,15,21)에 의해 캐시 메모리(13,26)를 통해 액세스되며, 캐시 메모리(13,26)는 파일 시스템 관리 수단(6)의 제어에 의해 로드되는 것을 특징으로 한다.
본 발명은 멀티미디어 단말기들, 특히 디지털 텔레비전 수신기들 또는 세트톱 박스에 관한 것이다.
저장 매체, 캐시 메모리, 파일 시스템 관리, 판독, 기록

Description

저장 디바이스 캐시 메모리 관리{STORAGE DEVICE CACHE MEMORY MANAGEMENT}
본 발명은 저장 매체 및 그와 관련된 캐시 메모리를 포함하는 디바이스에 관한 것으로서, 상기 저장 매체는 파일 시스템 관리 수단과 관련되는 호스트 디바이스에 의해 상기 캐시 메모리를 통해 판독 모드 또는 기록 모드로 액세스된다.
대부분의 저장 디바이스에는 드라이브 성능들을 강화시키기 위해 캐시 메모리가 제공된다.
저장 디바이스들내 캐시 메모리의 관리는, 특히 일관된 비트 전송률이 유지되어야 할 때 시스템들의 성능들을 향상시키기 위한 중요한 과제이다. 이는, 저장 디바이스들이 비디오 데이터를 저장하기 위해 이용될 때 특히 확실하다.
공지된 시스템들에 있어서, 모든 저장 디바이스들에 포함된 캐시 메모리는 저장 매체 그 자체와 관련된 제어기 또는 펌웨어(firmware)에 의해 관리된다. 그러한 펌웨어는 캐시 메모리 액세스들과 저장 매체 액세스들을 제어하고, 캐시 프리패치(prefetch)는 호스트 디바이스에 의해 수행된 최근의 액세스들에 기초한다.
저장 매체는 저장 매체상의 데이터 구성(data organization)을 모르기 때문에, 호스트 디바이스에 의해 수행된 최근의 액세스들에 기초한 캐시 프리패치를 이용하는 것은 캐시 적중(cache hit)의 기회들을 상당히 감소시킨다. 즉, 공지된 시 스템들에서의 캐시 프리패치는 호스트에 의해 수행된 최근의 액세스들에 대한 통계를 이용하여 이루어진다. 좋은 캐시 적중률을 획득하기 위하여, 설계자들은 통계에 맞추어 수많은 캐시 메모리를 제공해야 한다. 캐시 적중 확률을 증가시키기 위해 캐시 메모리의 크기를 증가시키는 것은 고가의 비용이 들며, 특히 내장형 디바이스들에는 적합하지 않다.
더욱이, 저장 매체로의 기록 액세스 동안에, 그리고 특히 저장되는 데이터가, 예를 들어 등시성(isochronous) 데이터와 같은 연속적인 비트 스트림들일 때, 높은 비트 전송률을 유지하기 위해 저장 매체의 입력단에 고용량의 버퍼 메모리를 제공할 필요가 자주 발생한다. 그러한 버퍼 메모리를 이용하는 것은 디바이스들의 비용을 상당히 증가시킨다.
본 발명은 저장 매체 및 그와 관련된 캐시 메모리를 포함하는 디바이스를 제안하며, 상기 저장 매체는 파일 시스템 관리 수단과 관련되는 호스트 디바이스에 의해 캐시 메모리를 통해 판독 모드 또는 기록 모드로 액세스된다.
본 발명에 따르면, 캐시 메모리는 파일 시스템 관리 수단의 제어에 의해 로드(load)된다.
본 발명자들은, 저장 매체를 관리하는 펌웨어에 지시하는 캐시 프리패치 명령을 실행하여 주어진 어드레스에서 캐시 프리패치를 실현하는데 특히 관심을 가졌다. 판독 모드의 경우, 요청된 파일이 비디오 데이터를 포함하면, 비디오 데이터는 몇몇 섹터들에 저장될 수 있다. 파일 시스템은 이러한 구성 또는 단편화(fragmentation)를 알고 있으며, 따라서 파일의 나머지가 위치하는 다음 섹터의 어드레스를 제공할 수 있다. 그러므로, 캐시 적중 확률을 감소시키지 않으면서, 캐시 메모리의 크기가 감소될 수도 있다.
이러한 캐시 프리패치는, 파일 시스템이 아니라 저장 매체에 의해 제어되며 디스크상 데이터의 실제 위치가 아니라 가장 최근의 액세스에 기초하는 종래의 프리패치에 의한 통계적인 프리패치와는 대조적인 일종의 인식 프리패치이다.
본 발명의 실시예에 따르면, 호스트 디바이스와 관련된 파일 시스템 관리 수단은 판독 모드의 액세스 동안에 캐시 메모리 프리패치를 제어한다.
공지된 시스템들에 있어서, 캐시 프리패치는 저장 매체와 관련된 펌웨어에 의해 관리되며, 외부 활동은 정의되지 않는다. 본 실시예는, 파일 시스템 관리자가 캐시의 동작을 수정하기 위하여 캐시 로딩에 어떤 작용을 하는 것을 가능하게 한다.
본 발명의 실시예에 따르면, 판독 액세스 동안에, 파일 시스템 관리 수단은 호스트 디바이스에 의해 요청된 데이터를 저장 매체로부터 캐시 메모리로 다운로드하기 위하여 프리패치 명령들을 캐시 메모리로 송신하는 수단을 포함한다.
본 발명의 실시예에 따르면, 프리패치 명령들은 캐시 메모리에서 프리패치되는 그 다음 데이터의 저장 매체상에서의 어드레스들을 나타내는 수단을 포함한다.
본 발명의 실시예에 따르면, 저장 디바이스는 Serial Advanced Technology Attachment 표준 또는 Parallel Advanced Technology Attachment 표준을 따르는 인터페이스를 포함한다.
SATA(Serial Advanced Technology Atachment) 표준 인터페이스는 높은 레벨의 프로토콜로서, 특히 PATA(Parallel Advanced Technology Attachment) 인터페이스와 비교할 때 보다 많은 이점들을 제공한다.
본 발명의 실시예에 따르면, 저장 디바이스는 프리패치 명령들을 Serial Advanced Technology Attachment 인터페이스내에 정의된 FIS(Frame Information Structure) 필드에 캡슐화(encapsulate)하기 위한 캡슐화 수단을 포함한다.
FIS는 SATA 환경에 정의된다. SATA 표준을 따르기 위하여, 본 발명자들은 API를 전송 계층에 캡슐화하는 것이 특히 적합하다는 것을 발견하였고, 그러므로 원격 절차 호출들을 송신하기 위해 FIS의 사용을 제안한다.
본 발명의 실시예에 따르면, 기록 모드의 액세스 동안에, 파일 시스템 관리 수단은, 저장 매체상에 저장되는 데이터를 우선 캐시 메모리상에 저장하고, 캐시 메모리 충전(filling)이 사전설정된 레벨에 도달할 때 캐시 메모리로부터 저장 매체로 전달하기 위하여, 기록 캐시 명령을 저장 매체로 송신하는 수단을 포함한다.
또한 본 발명은, 본 발명의 실시예들 중 어느 하나에 따른 저장 디바이스를 포함하는 것을 특징으로 하는 멀티미디어 디바이스, 바람직하게는 디지털 텔레비전 디코더에 관한 것이다.
통계에 기초한 이러한 캐시 프리패치의 일반적인 사용에도 불구하고, 본 발명자들은, 캐시 프리패치의 기초는, 특히 실시간으로 이루어진 액세스에 관한 것임을 알게 되었다.
본 발명의 다른 특징들과 장점들은, 첨부된 도면들을 참조하여 설명될 본 발명의 제한적이지 않은 실시예를 통해 명백해질 것이다.
도 1은 본 발명의 실시예를 나타내는 시스템의 블록도.
도 2는 파일 시스템에 의한 캐시 프리패치의 실시예를 나타내는 도면.
도 3은 저장 매체로부터 캐시 메모리로 데이터를 전송하는 실시예를 나타내는 도면.
도 4는 캐시 메모리로부터 호스트 디바이스로 데이터를 전송하는 실시예를 나타내는 도면.
도 5는 본 발명의 또다른 실시예를 나타내는 시스템의 블록도.
도 6은 호스트 디바이스에 의한 캐시 기록의 실시예를 나타내는 도면.
도 7은 기록 캐시 명령 동안에 구현된 데이터 흐름의 실시예를 나타내는 도면.
본 실시예는 문헌 "serail ATA, revision 1.0, 29 August 2001"에서 정의된 Serial Advanced Technology Attachment(SATA) 표준을 따르는 인터페이스 수단에 기초한다. SATA는 ATA 프로토콜을 전송한다. SATA는 기록 매체에 비디오 데이터를 저장하는 것과 또한 관련이 있으며, 본 실시예에 있어서 저장 매체는 하드 디스크이지만, 임의의 다른 형태일 수 있다. 본 발명은, 물론 비디오 데이터 형태 뿐만 아니라 오디오 또는 임의의 정보 데이터에 한정되지 않다. 비디오 데이터 형태는, 비디오 데이터가 높은 대역폭 및 일관된 비트 전송률을 요구할 때 실시예로서 채용된다.
도 1은 본 발명을 구현하는 시스템을 나타낸다.
저장부(16)를 포함하는 호스트 디바이스(15)는 SATA 인터페이스(14)와 링크되고, SATA 인터페이스(14)는 저장 디바이스(11) 및 제어기(18)와 관련된 버퍼(17)에 링크된다. SATA 인터페이스는 병렬 ATA 인터페이스, 또는 저장 디바이스를 액세스하기에 적합한 임의의 다른 인터페이스로 또한 대체될 수 있다. 버퍼(17)는 비디오 출력부(19)와 링크된다. 비디오 출력부(19)는 TV 세트 또는 비디오 데이터 형태를 수신하거나 처리할 수 있는 임의의 다른 수단과 외부적으로 연결될 수 있다.
저장 디바이스(11)는 적어도 하드 디스크(12)와 캐시 메모리(13)를 포함한다. 호스트 CPU는 SATA 인터페이스(14)를 통해 하드 디스크(12)와 액세스한다.
호스트 디바이스(15)는 프로세서 기반의 디바이스, 즉 저장부(16)를 구동시킬 수 있다. 저장부(16)가, 예를 들어 소프트웨어 프로그램이면, 프로세서와 관련된 메모리에 로드된다.
호스트 디바이스, 또는 호스트 프로세서를 운영하는 매우 정밀한 파일 시스템은 하드 디스크(12)상에서의 데이터 위치를 알고 있다. 파일 시스템 관리 수단은 캐시 메모리(13)를 제어하기 위해 ATA 인터페이스를 통해 명령들을 송신한다.
캐시 프리패치 및 캐시 기록 명령들은 아래에 나타낸 것처럼 정의된다.
명령은, 코드가 EF(16진수)인 ATA 명령 "Set Feature"의 서브 명령을 이용하여 구현된다.
이러한 서브 명령 코드는 83H이며, 다음의 표에 따라 정의된다.
Figure 112004025046443-pct00001
섹터 카운트 레지스터
캐시 세그먼트 크기 : 본 명세서에서 정의된 캐시 세크먼트의 크기
섹터 번호 레지스터
캐시 세그먼트 번호 : 캐시 세그먼트의 순서 번호
실린더 로우 레지스터 - 비트(0)
W/R : 기록 캐시 세그먼트를 위해 0으로 세팅, 판독 캐시 세그먼트를 위해 세팅
디바이스/헤드 레지스터 - 비트(4)
DEV는 선택된 디바이스를 나타냄
도 2는 본 발명의 실시예에 따른 캐시 프리패치를 나타낸다.
캐시 프리패치는 파일 시스템에 의해 관리된다.
파일 시스템은 일반적으로 호스트 디바이스 근처, 즉 도 1에 도시한 것처럼 SATA 인터페이스 앞에 위치하지만, 도 3에 도시한 것처럼 SATA 인터페이스 뒤에 또한 위치할 수 있다.
파일 시스템은 하드 디스크상의 파일들의 구성을 관리하는 역할을 하며, 따라서 하드 디스크상의 데이터의 위치를 알고 있다.
본 발명의 일실시예에 있어서, 파일 시스템은 특히 비디오 데이터와 정보 데이터의 일반적인 저장에 적합한 멀티미디어 파일 시스템이다.
비디오 데이터와 정보 데이터를 동일한 기록 매체에 저장하기 위한 전용의 멀티미디어 파일 시스템은 오디오 및/또는 비디오 스트림들을 저장하기 위한 제1 형태의 저장 유니트(unit)와 비(非)스트림 데이터를 저장하기 위한 제2 형태의 저장 유니트를 특징으로 하며, 제1 저장 유니트의 크기는 제2 저장 유니트 크기의 배수이다. 제1 형태의 유니트는 스트림 저장을 위해 할당되거나 또는 비(非)스트림 데이터를 저장하기 위한 다수의 제2 형태의 유니트로 분리된다.
이러한 파일 시스템의 일실시예에 있어서, 두 가지 형태의 저장 유니트들과 두 가지 형태의 파일들을 위해 하나의 디렉터리 트리만이 존재한다.
저장 디바이스(11)는 정보 데이터(비(非)스트림 데이터) 또는 오디오/비디오 데이터(스트림 데이터)를 효과적인 방식으로 저장할 수 있으며, 정보 데이터용으로 고정된 영역과 오디오/비디오 데이터용으로 고정된 영역을 한정하지 않으면서 하드 디스크(12)의 단편화를 방지한다.
다행스럽게도, 제1 형태의 유니트가 다수의 제2 형태 유니트로 분리되는 것은, 제2 형태의 유니트들이 모두 이용가능한 경우에 가능하지만, 저장되는 데이터의 형태에 따라 다수의 제2 형태 유니트로 분리되지 않을 수 있다.
대역폭이 데이터 버스트 전송 크기의 함수이면, 하드 디스크 드라이브 섹터 들을 찾기 위해 이용되는 시간이 적을수록 그 대역폭은 더 높다. 따라서, 저장되는 데이터의 형태에 따라 하드 디스크(12)를 관리함으로써, 멀티미디어 파일 시스템은 섹터 탐색을 제한하여 액세스 시간을 감소시키며 일관된 비트 전송률을 증가시킨다.
하드 디스크는 저장되는 데이터의 형태에 따를 수 있으며, 하드 디스크의 점유(occupation)는 최대로 활용될 수 있다. 이는, 저장할 큰 크기의 파일들만이 존재할 때 하드 디스크(12)의 단편화를 향상시킬 수도 있다. 이러한 파일들은 큰 블록에 저장되는 반면, 저장할 수많은 작은 크기의 파일들이 존재할 때, 큰 크기의 블록들은 필요한 만큼의 작은 크기의 블록들로 분리된다.
멀티미디어 파일 시스템과 같은 파일 시스템을 이용하는 것은, 파일 단편화를 상당히 감소시킬 수 있기 때문에 데이터 액세스 시간을 크게 향상시킬 수 있다.
바람직하게는, 적어도 하나의 제1 데이터 구조는, 각각의 제1 형태 유니트를 위하여 적어도 이러한 유니트가 사용되고 있지 않은지 아니면 사용되고 있는지, 그리고 이러한 유니트가 다수의 제2 형태 저장 유니트들로 분리되는지 아니면 분리되지 않는지를 나타낸다.
호스트가 하드 디스크(12)로부터 데이터를 판독하려고 할 때, 호스트는 프리패치 명령을 하드 디스크(12)로 송신한다. 프리패치 명령은 ATA 프로토콜에 의해 지원된 새로운 명령으로서 정의된다.
프리패치 명령은 저장부(16)에 의해 판독될 그 다음 데이터를 캐시 메모리(13)에 로드하라고 저장 디바이스(11)에 지시한다. 즉, 저장부가 비디오 데 이터를 저장할 때, 이러한 비디오 데이터는 일반적으로 고용량의 데이터를 나타내기 때문에 저장될 몇몇 디스크 섹터들을 요청한다. 도 2에 도시한 것처럼, 이러한 데이터는 각각 섹터 A, C, D, E 및 F에 저장된다. 통계에 기초한 전형적인 프리패치(미리보기 프리패치)를 이용하여, 캐시 메모리는 섹터 A, B, C, D, E를 로드하고, 따라서 100%의 캐시 적중을 제공하지 못한다. 본 발명의 실시예는, 캐시 프리패치 명령이 캐시 메모리(13)에 지시하여 효과적으로 판독될 그 다음 데이터를 하드 디스크로부터 로드하기 때문에, 100%의 캐시 적중을 제공한다.
더욱이, 상술한 바와 같이 멀티미디어 파일 시스템을 이용하는 것은, 하드 디스크의 이용을 최대한 활용하기 때문에 캐시 프리패치의 효율을 증가시킨다.
도 3은 저장 매체로부터 캐시 메모리로 데이터를 전송하는 실시예를 나타낸다.
단계(F1)에서 섹터 번호가 초기화되어, 하드 디스크 매체상에 데이터의 위치를 제공한다. 단계(F2)에서, 섹터 번호 레지스터들과 섹터 카운트 레지스터가 호스트에 의해 세팅된다. 섹터 카운트 값은 타깃(target) 캐시 세그먼트 크기처럼 동일한 값을 갖는다. 단계(F3)에서, 데이터를 저장 매체로부터 캐시 메모리로 전송하는지를 디바이스에 요구하는 캐시 프리패치 또는 로드 캐시 명령이 호스트에 의해 생긴다. 단계(F4)에서, 데이터는 하드 디스크 매체로부터 캐시 메모리로 전송된다.
도 4는 캐시 메모리로부터 호스트 디바이스로 데이터를 전송하는 실시예를 나타낸다.
단계(G1)에서 섹터 번호가 초기화된다. 그 값은 소스(source) 캐시 세그먼트의 제1 섹터 번호처럼 동일하다. 이러한 상황은 인식 데이터 프리패치에 의해 예상된 것처럼 캐시 적중을 보장한다. 단계(G2)에서, 섹터 번호 레지스터들과 섹터 카운트 레지스터가 호스트에 의해 세팅된다. 섹터 카운트 값은 소스 캐시 세그먼트 크기처럼 동일한 값을 갖는다.
단계(G3)에서, 표준 ATA 명령인 판독 UDMA가 호스트에 의해 생긴다. 데이터가 이미 캐시 메모리에 존재하기 때문에, 즉시 액세스된다. 단계(G4)에서, ATA 명령이 수행되고, 데이터는 저장 디바이스로부터 ATA 인터페이스를 통과하여 호스트 디바이스로 전송된다.
도 5는 본 발명의 실시예에서 구현될 수 있는 또다른 시스템을 나타낸다.
도 5는 호스트 디바이스(1)와 본 발명의 실시예에 따른 저장 디바이스(2)를 나타내며, 호스트 디바이스와 저장 디바이스를 기능적으로 설명한다. 호스트 디바이스는 저장부(3), 인터페이스(4), 비디오 소스(9) 및 비디오 출력부(10)를 포함한다.
저장 디바이스(2)는 인터페이스(5), 멀티미디어 파일 시스템(6), 펌웨어 프로그램(7) 및 하드 디스크 어셈블리(8)를 포함한다. 하드 디스크 어셈블리(8)는, 주어진 실시예에서 하드 디스크이며, 적어도 저장 매체와 캐시 메모리를 포함한다.
인터페이스가 파일 시스템 수단에 원격 호출 절차들을 송신하여 호스트를 저장 수단에 액세스가능하게 할 때, 내장형 시스템들의 설계자들은 파일 시스템을 포함하는 저장 디바이스를 편리하게 제공받는다. 그래서, 저장 디바이스는 절차 호 출들을 통과시켜 단순한 인터페이스를 통해 제어된 자동 엔티티(entity)로 인도되며, 따라서 설계자들에 대한 부가적인 작업을 요청하지 않는다. 이는, 설계자들이 영역에 대한 임의의 전문 지식이 없더라도 가장 좋은 하드 디스크 드라이브를 얻을 수 있게 한다.
선택적으로, 인터페이스는 저장 디바이스를 더 쉽게 제어할 수 있는 응용 프로그래밍 인터페이스를 포함한다.
저장 디바이스(2)는 독립형이면서 고도로 집적된 저장 디바이스로서 제공되며, 파일들을 관리하는 모든 소프트웨어와 하드 디스크 어셈블리 제어기가 내장된다.
하드 디스크 매체(8)는 비디오 소스(9)로부터 비디오 데이터를 저장하거나 비(非)비디오 데이터 또는 정보 데이터로 불리며 저장부(3)에 제공된 임의의 다른 데이터를 저장한다. 비디오 소스(9)는 예를 들어 방송 프로그램과 같은 형태일 수 있고, MPEG-2 또는 MPEG-4 표준에 따라 코딩된 스트림일 수 있다. 하드 디스크는 데이터를 비디오 출력부(10)로 제공하기 위해 저장부에 의해 또한 판독된다. 비디오 출력부(10)는 TV 세트 또는 비디오 데이터 형태를 수신하거나 처리할 수 있는 임의의 다른 수단과 외부적으로 연결될 수 있다.
호스트 디바이스(1)는 하드 디스크 드라이브(8)상의 데이터(정보 데이터 또는 비디오 데이터)를 판독하거나 저장할 수 있다. 호스트 디바이스는 비디오 출력부(10)에 의해 요청된 하드 디스크 드라이브(8)상의 데이터를 판독할 수 있거나 또는 비디오 소스(9)로부터 유입되는 데이터를 하드 디스크 드라이브(8)로 송신할 수 있다.
호스트 디바이스(1)가 하드 디스크 드라이브(8)에 데이터를 저장할 때, 저장부(3)는 호스트 디바이스(1)의 인터페이스(4)를 경유하여 저장 디바이스(2)의 멀티미디어 파일 시스템(6)에 호출 명령들을 송신한다.
저장부(3)는 비디오 소스(9)로부터 이러한 비디오 스트림을 수신한다. 저장부는 비디오 스트림을 하드 디스크 드라이브(8)에 저장해야 한다.
인터페이스(4)와 인터페이스(5)는 호스트 디바이스와 저장 디바이스간의 통신을 가능하게 하기 위해 동일한 형태를 갖는다. 상술한 바와 같이, 본 실시예에 있어서 이러한 인터페이스들은 SATA 표준을 따른다.
SATA 인터페이스는 세 개의 계층을 정의한다: 물리, 링크 및 전송 계층.
물리 계층은 직렬 형태의 인터페이스이다. SATA 인터페이스는 소비자 시장을 위해 높은 집적화와 고속의 인터페이스를 제공할 수 있다. 다른 인터페이스 형태들, 예를 들어 PATA(Parallel Advanced Technology Attachment)는 고속의 인터페이스를 또한 제공할 수 있지만, SATA 인터페이스보다 적은 집적화 설비들을 제공한다. SATA 인터페이스는 PATA 인터페이스에 투명하도록 설계된다.
본 발명의 또다른 실시예에 있어서, 몇몇 인터페이스 형태들은 저장 디바이스에 구현될 수 있으며, 특히 SATA가 PATA에 투명한 소프트웨어일 때 PATA와 SATA 양쪽에 구현될 수 있다.
링크 계층은 프레임들을 캡슐화하여 전송한다.
링크 계층은 프레임들을 전송하고 수신하며, 전송 계층으로부터의 제어 신호 들에 기초한 프리미티브(primitive)들을 전송하며, 물리 계층으로부터의 프리미티브들을 수신하는데, 이들은 전송 계층에서 제어 신호들로 변환된다. 링크 계층은 프레임들의 콘텐츠를 인식할 필요가 없다.
전송 계층은 전송을 위한 FIS(Frame Information Structures)를 구성하고, 수신된 FIS를 분석한다. 호스트 및 저장 디바이스의 전송 계층들은 FIS 콘텐츠의 소스가 다르다는 점에서 서로 다르다.
주어진 실시예에 있어서, 호스트 디바이스(1) 및 저장 디바이스(2)는 물리적으로 서로 관계가 없다.
다른 실시예에 따르면, 저장 디바이스(2) 및 호스트 디바이스(1)는, 예를 들어 커넥터에 의해 단순히 물리적으로 분리된 동일한 인쇄 회로 기판일 수 있다.
인터페이스(4)와 인터페이스(5)는 원격 호출 절차들을 호스트 디바이스(1)로부터 저장 디바이스(2)로 전송가능하게 하는 인터페이스 수단이다.
인터페이스(4)는 응용 프로그래밍 인터페이스를 의미하는 API를 포함한다. API는 호스트 디바이스(1)와 저장 디바이스(2)간의 절차 호출들을 가능하게 한다.
SATA 표준을 따르기 위하여, 본 발명자들은 API를 전송 계층에 캡슐화하는 것이 특히 적합하다는 것을 발견하였다.
API는 새로운 FIS 카테고리(category)로서 정의된다. 이러한 FIS는 그러한 API 절차 호출들을 구조 설명에 제공한다.
저장 디바이스(1)의 인터페이스(5)는 수신된 FIS를 분석한다.
즉, 인터페이스는 API FIS로부터 API를 추출하여 멀티미디어 파일 시스템(6) 으로 전송한다.
멀티미디어 파일 시스템(6)은, 주로 호스트 디바이스(1)와 저장 디바이스(2)간의 절차 호출들의 전송을 가능하게 하는 API를 통해 제어된다.
멀티미디어 파일 시스템(6)은 펌웨어 모듈(7)을 통해 하드 디스크 드라이브를 액세스한다. 펌웨어 모듈(7)은 하드 디스크(8)로의 낮은 레벨의 액세스들을 관리한다.
펌웨어 모듈(7), 멀티미디어 파일 시스템(6) 및 하드 디스크 드라이브(8)는 매우 근접하며 상호작용할 수 있다.
하드 디스크 드라이브(8)는 표준 하드 디스크 드라이브들처럼 캐시 메모리를 포함한다. 캐시 메모리는, 하드 디스크 드라이브(8)가 다중 액세스하는 동안에 일관된 대역폭이 부족해지는 것을 보충하기 위한 수단이다.
도 6은 기록 캐시 명령을 설명하는 본 발명의 실시예를 나타낸다.
디지털 TV 소스(20)는 링크(28)를 경유하여 버퍼(22)와 연결된다. 버퍼(22)는 SATA 인터페이스(23)를 경유하여 저장 디바이스와 연결된다. 저장 디바이스(24)는 하드 디스크(26)와 캐시 메모리(25)를 포함한다. 링크(27)는 호스트 디바이스(21)와 버퍼 메모리(22)를 연결하는 데이터 버스이다.
본 실시예에 있어서, 전송 모드는 100MB/s의 SATA UDMA(Ultra Direct Mode Access) 모드 5이며, 따라서 AV 응용을 지속할 수 있다.
디지털 TV 소스는, 188Bytes, 0.25MB/s ~ 4MB/s 비트 전송률의 패킷들을 포함하는 비디오 데이터를 제공한다.
호스트 디바이스는, 예를 들어 도 1에서 설명한 명령들을 송신함으로써 SATA 인터페이스를 제어한다.
비디오 데이터가 디지털 TV 소스(20)로부터 높은 비트 전송률로 발생할 때, 비디오 데이터는 버퍼(22)를 통해 SATA 인터페이스로 전송된다.
작은 버퍼(22)(512bytes)가 입력 흐름과 캐시 기록간의 비트 전송률을 조절하기 위해 필요할 수도 있다.
기록 캐시 명령에 의해, 호스트 디바이스는 디지털 TV 소스(20)로부터의 비디오 데이터를 하드 디스크(26)로 직접 전송할 수 있다.
호스트는 SATA 절차를 따르기 위해 섹터 번호, 섹터 카운트를 세팅한다.
호스트는 기록 캐시 명령을 이용하여 캐시 메모리에 512Bytes 블록을 동시에 기록한다. 256 블록들이 기록될 때, 데이터의 128KB는 호스트 디바이스에 의해 하드 디스크상에 미리 세팅된 위치에 기록된다. 캐시 메모리(25)로부터 하드 디스크(26)로의 이러한 전송은 자동적이며, 캐리 메모리(25)의 충전 레벨에 의해 트리거(trigger)된다.
도 7은 기록 캐시 명령 동안에 구현된 데이터 흐름의 실시예를 나타낸다.
단계(E1)에서, 데이터가 하드 디스크에 저장되는 섹터 번호는 파일 시스템 관리 수단에 의해 초기화된다.
단계(E2)에서, 데이터를 저장하는 섹터 번호를 펌웨어에 알리기 위한 명령을 펌웨어로 송신한다. 섹터 카운트로 불리는 카운터 또한 세팅된다. 이는, 전송시마다 섹터 번호를 나타내는 것을 예방한다. 데이터의 다음 블록들을 위한 섹터 번 호는, 첫 번째 섹터의 번호에 섹터 카운트의 값이 더해진 것이다.
데이터는, 버퍼의 용량이 최대가 될 때까지 버퍼로 전송된다(예를 들어 도 4의 버퍼(22)). 버퍼의 용량이 최대가 될 때, 파일 시스템은 기록 캐시 명령을 펌웨어로 송신한다(단계(E4)). 기록 캐시 명령은 캐시 메모리로의 데이터 전송을 의미한다. 캐시 세그먼트가 최대로 되거나 사전설정된 레벨에 도달할 때, 데이터는 저장 매체로 전송된다(단계(E7)). 예를 들어, 256 블록들이 기록될 때, 데이터의 128KB는 파일 시스템에 의해 저장 매체상에 미리 세팅된 위치에 기록된다. 이러한 동작은 자동적일 수 있으며, 캐리 메모리의 충전 레벨에 의해 트리거될 수 있다.
캐시에 로드된 데이터의 양이 섹터의 크기보다 더 크면, 섹터 번호는 또한 증가된다(단계(E6)).
기록 캐시 명령은, 호스트가 저장 매체 그 자체에 데이터를 기록하지 않고 캐시 메모리에 데이터를 기록하게 한다.
고속의 ATA 프로토콜에 의해, 호스트와 하드 디스크 드라이브간의 데이터 전송은 매우 짧아질 수도 있다.

Claims (8)

  1. 저장 매체(8,12,25) 및 상기 저장 매체의 통합된 캐시 메모리(13,26)를 포함하는 디바이스(2,11)로서,
    상기 저장 매체(8,12,25)는 판독 모드 또는 기록 모드시 파일 시스템 관리 수단(6)과 관련된 호스트 디바이스(1,15,21)에 의해 상기 저장 매체의 통합된 캐시 메모리(13,26)를 통해 액세스되며,
    상기 파일 시스템 관리 수단(6)은 캐시 메모리 동작들(operations)을 제어하기 위하여 캐시 메모리 펌웨어로 명령들을 송신하는 것을 특징으로 하는 디바이스.
  2. 제1항에 있어서,
    상기 명령들은 판독 모드에서의 액세스 동안에 캐시 메모리 프리패치를 제어하는 것을 특징으로 하는 디바이스.
  3. 삭제
  4. 제2항에 있어서,
    상기 캐시 메모리 프리패치를 제어하기 위한 명령들은 상기 캐시 메모리(13,26)에서 프리패치될 그 다음 데이터의 상기 저장 매체(8,12,25)상에서의 어드레스들을 나타내는 것을 특징으로 하는 디바이스.
  5. 제1항, 제2항, 및 제4항 중 어느 한 항에 있어서,
    SATA(Serial Advanced Technology Attachment) 표준 또는 PATA(Parallel Advanced Technology Attachment) 표준을 따르는 인터페이스(4,5,14,23)를 포함하는 것을 특징으로 하는 디바이스.
  6. 제4항에 있어서,
    상기 캐시 메모리 프리패치를 제어하기 위한 명령들을 SATA(Serial Advanced Technology Attachment) 인터페이스 내에 정의된 FIS(Frame Information Structure) 필드에 캡슐화(encapsulate)하기 위한 캡슐화 수단을 포함하는 것을 특징으로 하는 디바이스.
  7. 제1항에 있어서,
    기록 모드에서의 액세스 동안에, 상기 명령들은, 상기 저장 매체(8,12,25)에 저장되는 데이터를 우선 상기 캐시 메모리(13,26)에 저장하고, 상기 캐시 메모리(13,26) 충전이 사전설정된 레벨에 도달할 때 상기 캐시 메모리(13,26)로부터 상기 저장 매체(8,12,25)로 전달하기 위하여, 기록 캐시(write cache)를 상기 저장 매체(8,12,25)로 송신하기 위한 명령을 포함하는 것을 특징으로 하는 디바이스.
  8. 삭제
KR1020047008914A 2001-12-11 2002-11-27 저장 디바이스 캐시 메모리 관리 KR100982392B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01460077.9 2001-12-11
EP01460077A EP1320035A1 (en) 2001-12-11 2001-12-11 Storage device cache management
PCT/EP2002/013368 WO2003054706A1 (en) 2001-12-11 2002-11-27 Storage device cache memory management

Publications (2)

Publication Number Publication Date
KR20040064735A KR20040064735A (ko) 2004-07-19
KR100982392B1 true KR100982392B1 (ko) 2010-09-14

Family

ID=8183373

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047008914A KR100982392B1 (ko) 2001-12-11 2002-11-27 저장 디바이스 캐시 메모리 관리

Country Status (10)

Country Link
US (1) US20060265549A1 (ko)
EP (2) EP1320035A1 (ko)
JP (1) JP4827376B2 (ko)
KR (1) KR100982392B1 (ko)
CN (1) CN100383762C (ko)
AT (1) ATE516545T1 (ko)
AU (1) AU2002366859A1 (ko)
MX (1) MXPA04005606A (ko)
PL (1) PL369721A1 (ko)
WO (1) WO2003054706A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006035352A1 (en) * 2004-09-28 2006-04-06 Koninklijke Philips Electronics N.V. Method and device for storing data on a record medium and for transferring information
US7571269B2 (en) * 2005-08-25 2009-08-04 Silicon Image, Inc. Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices
DE102006045903B4 (de) * 2006-09-28 2016-06-02 Intel Deutschland Gmbh Prozessoranordnung mit einer Kopplungsvorrichtung zum Koppeln eines Speichers mit einem Prozessor, Datenverarbeitungsanordnung und Verfahren zum Übertragen von Daten
US9354864B2 (en) * 2008-05-08 2016-05-31 Dialogic Corporation Package header system and method to facilitate streaming a single firmware file upgrade
US8499120B2 (en) * 2008-10-17 2013-07-30 Seagate Technology Llc User selectable caching management
US20100250830A1 (en) * 2009-03-27 2010-09-30 Ross John Stenfort System, method, and computer program product for hardening data stored on a solid state disk
US8671258B2 (en) 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US20110004718A1 (en) 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
US9792074B2 (en) * 2009-07-06 2017-10-17 Seagate Technology Llc System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips
CN102262657B (zh) * 2011-06-29 2014-12-03 华为数字技术(成都)有限公司 多媒体数据存储方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390318A (en) * 1990-06-29 1995-02-14 Digital Equipment Corporation Managing the fetching and replacement of cache entries associated with a file system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151989A (en) * 1987-02-13 1992-09-29 International Business Machines Corporation Directory cache management in a distributed data processing system
US5193170A (en) * 1990-10-26 1993-03-09 International Business Machines Corporation Methods and apparatus for maintaining cache integrity whenever a cpu write to rom operation is performed with rom mapped to ram
US5893140A (en) * 1996-08-14 1999-04-06 Emc Corporation File server having a file system cache and protocol for truly safe asynchronous writes
US6230200B1 (en) * 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
US6141728A (en) * 1997-09-29 2000-10-31 Quantum Corporation Embedded cache manager
US6253289B1 (en) * 1998-05-29 2001-06-26 Compaq Computer Corporation Maximizing sequential read streams while minimizing the impact on cache and other applications
EP1148727A1 (en) * 2000-04-05 2001-10-24 THOMSON multimedia Method and device for decoding a digital video stream in a digital video system using dummy header insertion
EP1104201A1 (en) * 1999-11-23 2001-05-30 THOMSON multimedia Method and device for managing frame buffer memory size in a digital television system
US6384870B1 (en) * 2000-03-31 2002-05-07 Matsushita Electric Industrial, Co., Ltd. Method for synchronizing HDTV format change with on screen display
US6728840B1 (en) * 2000-10-20 2004-04-27 Emc Corporation Methods and apparatus for providing host controlled caching of data in a storage system
US6854045B2 (en) * 2001-06-29 2005-02-08 Intel Corporation Hardware emulation of parallel ATA drives with serial ATA interface
US7107343B2 (en) * 2001-07-12 2006-09-12 Adaptec, Inc. Method and apparatus for improved RAID 1 write performance in low cost systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390318A (en) * 1990-06-29 1995-02-14 Digital Equipment Corporation Managing the fetching and replacement of cache entries associated with a file system

Also Published As

Publication number Publication date
CN1602472A (zh) 2005-03-30
CN100383762C (zh) 2008-04-23
JP4827376B2 (ja) 2011-11-30
KR20040064735A (ko) 2004-07-19
AU2002366859A1 (en) 2003-07-09
JP2005513645A (ja) 2005-05-12
EP1454238A1 (en) 2004-09-08
US20060265549A1 (en) 2006-11-23
ATE516545T1 (de) 2011-07-15
EP1320035A1 (en) 2003-06-18
MXPA04005606A (es) 2004-12-06
WO2003054706A1 (en) 2003-07-03
EP1454238B1 (en) 2011-07-13
PL369721A1 (en) 2005-05-02

Similar Documents

Publication Publication Date Title
KR100971405B1 (ko) 플래시 메모리 디바이스 및 그 방법
KR100982392B1 (ko) 저장 디바이스 캐시 메모리 관리
JP2008004089A (ja) ランダムデータおよび逐次データの同時ライトキャッシング
KR20170031028A (ko) 인터페이스 장치 및 인터페이스 장치의 작동방법
KR101121479B1 (ko) 데이터 배포 및 버퍼링
JP2005513645A6 (ja) 記憶装置キャッシュメモリマネージメント
CN111953991A (zh) 基于window平台视频CPU+GPU硬件解码加速系统和方法
KR101137575B1 (ko) 저장 디바이스
JP5230083B2 (ja) Avデコーダ中のメモリアクセスを管理するための方法および装置
JP2001057571A5 (ko)
EP1362290A1 (en) Device and method for managing the access to a storage medium
US20100211738A1 (en) Mass storage system with improved usage of buffer capacity
KR102266166B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
CA2506784A1 (en) System and method for referencing av data accumulated in av server
US7930450B1 (en) Buffer management system and method
EP1739675B1 (en) Method and apparatus for managing memory accesses in an AV decoder
KR20230095014A (ko) 네트워크 인터페이스와 함께 스토리지 디바이스를 사용하는 컨텐츠 배포를 위한 시스템, 방법 및 디바이스
JPH09154130A (ja) ビデオサーバおよびビデオオンディマンドシステム

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130820

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140826

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160804

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190827

Year of fee payment: 10