KR19980029917A - 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법 - Google Patents

자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법 Download PDF

Info

Publication number
KR19980029917A
KR19980029917A KR1019960049248A KR19960049248A KR19980029917A KR 19980029917 A KR19980029917 A KR 19980029917A KR 1019960049248 A KR1019960049248 A KR 1019960049248A KR 19960049248 A KR19960049248 A KR 19960049248A KR 19980029917 A KR19980029917 A KR 19980029917A
Authority
KR
South Korea
Prior art keywords
data
storage area
read
unit storage
disk
Prior art date
Application number
KR1019960049248A
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 KR1019960049248A priority Critical patent/KR19980029917A/ko
Priority to US08/958,844 priority patent/US6523086B1/en
Priority to JP9295812A priority patent/JPH10149260A/ja
Publication of KR19980029917A publication Critical patent/KR19980029917A/ko

Links

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
    • 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
    • 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

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

가. 청구범위에 기재된 발명이 속한 기술분야: 자기 디스크 드라이브의 읽기 캐쉬에 관한 기술이다.
나. 발명이 해결하려고 하는 기술적 과제: 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법을 구현.
다. 그 발명의 해결방법의 요지: 본 발명은, 호스트 컴퓨터에서 요구되어진 데이타를 전송을 위한 버퍼 램에 계속적으로 유지하지 않고 호스트 컴퓨터로의 데이타 전송이 끝나게 되면 버퍼 램의 모든 영역을 읽기 캐쉬영역으로 이용하여 데이타를 미리 읽어둔다. 그에 의해 다음 호스트 컴퓨터의 명령이 순차적인 데이타에 대한 읽기 명령일 경우 버퍼 램에 이미 저장된 데이타를 전송하여 주므로 데이타 전송속도를 높이게 한다.
라. 발명의 중요한 용도: 자기 디스크 드라이브의 성능향상(데이타 전송속도 향상)

Description

자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법
본 발명은 자기 디스크 드라이브에 관한 것으로, 특히 하드 디스크 드라이브(Hard Disk Drive: 이하 HDD 또는 드라이브라 칭함)의 읽기 캐쉬(read cache)의 성능을 높이기 위한 방법에 관한 것이다.
현재 컴퓨터 시스템은 중앙처리장치의 빠른 발전과 사용자들의 멀티미디어에 대한 요구에 부응하여 보조기억장치의 성능 또한 빠르게 발전하고 있다. 그러나 보조기억장치의 속도증가는 중앙처리장치의 빠른 발전과 사용자들의 요구에는 충분히 미치지 못함으로써 보조기억장치의 성능향상이 더욱 요구되고 있는 실정이다. 이러한 현재의 추세에서 HDD는 보편적으로 사용되고 있는 보조기억장치중 가장 빠른 속도로 데이타를 처리하는 보조기억장치이다.
도 1은 통상적인 HDD 블럭 구성을 보여주는 도면으로서, 2장의 디스크와 상기 디스크면에 각각 대응된 4개의 헤드를 장착한 HDD를 일예로 하고 있다. 도 1을 참조하면, 디스크들 10은 스핀들(spindle)모터 34에 의해 회전한다. 헤드들 12 각각은 디스크들 10중 대응하는 하나의 디스크면 상에 위치하며, 환상 보이스 코일(rotary voice coil) 액츄에이터 30과 결합된 E-블럭 어셈블리 14로부터 디스크들 10쪽으로 신장된 서포트 암들에 각각 대응되게 설치된다. 전치증폭기 16은 리드 시에는 헤드들 12중 하나에 의해 픽업된 신호를 전치 증폭하여 아나로그 리드신호를 리드/라이트 채널(read/write channel)회로 18로 인가하며, 라이트 시에는 리드/라이트 채널회로 18로부터 인가되는 부호화된 라이트데이타를 헤드들 12중 대응하는 하나의 헤드를 통해 디스크 상에 라이트 되도록 한다. 리드/라이트 채널회로 18은 전치증폭기 16으로부터 인가되는 리드신호로부터 데이타 펄스를 검출하고 디코딩하여 DDC(Disk Data Controller) 20에 인가하며, DDC 20으로부터 인가되는 라이트데이타를 디코딩하여 전치증폭기 16에 인가한다. DDC 20은 호스트 컴퓨터로부터 수신되는 데이타를 리드/라이트 채널회로 18과 전치증폭기 16을 통해 디스크 상에 라이트 하거나 디스크 상으로부터 데이타를 리드하여 호스트 컴퓨터로 송신한다. 또한 DDC 20은 호스트 컴퓨터와 마이크로 콘트롤러 24간의 통신을 인터페이스 한다. 버퍼 램 22는 호스트 컴퓨터와 마이크로 콘트롤러 24와 리드/라이트 채널회로 18 사이에 전송되는 데이타를 일시 저장한다. 마이크로 콘트롤러 24는 호스트 컴퓨터로부터 수신되는 리드 또는 라이트 명령에 응답하여 트랙 탐색 및 트랙 추종을 제어한다. 메모리 26은 마이크로 콘트롤러 24의 수행 프로그램 및 각종 설정값들을 저장한다. 서보구동부 28은 마이크로 콘트롤러 24에서 제공하는 헤드들 12의 위치 제어를 위한 신호에 응답하여 액츄에이터 30을 구동하기 위한 구동전류를 발생하여 액츄에이터 30의 보이스 코일에 인가한다. 액츄에이터 30은 서보구동부 28로부터 인가되는 구동전류의 방향 및 레벨에 대응하여 헤드들 12를 디스크들 10상에서 이동시킨다. 스핀들 모터 구동부 32는 마이크로 콘트롤러 24로부터 발생되는 디스크들 10의 회전 제어를 위한 제어값에 따라 스핀들 모터 34를 구동하여 디스크들 10을 회전시킨다.
컴퓨터 시스템 사용자는 지금보다 더 고속의, 더 고용량의 HDD를 기대하고 있다. 이에 따라 HDD의 성능을 증가시키기 위해 스핀들 모터(도 1의 34)의 회전 속도, 버퍼 램(도 1의 22)의 확장, 탐색시간 등과 같은 하드웨어적인 방면으로의 노력을 기울이고 있으며, 이와 더불어 라이트 캐쉬(write chach), 리드 캐쉬(read chach), 코멘드 레코딩(command recoding) 등을 수행하는 소프트웨어적인 방면으로도 노력을 기울이고 있다. HDD는 그 성능의 기준으로서 호스트컴퓨터와 드라이브 사이에 단위 시간당 주고 받는 데이타의 양을 나타내는 데이타 전송속도(data transfer rate)를 사용하고 있다. HDD의 데이타 전송속도에 영향을 미치는 요소로서는 스핀들 모터(도 1의 34)의 회전속도, 액츄에이터(도 1의 30)의 이동속도, 버퍼 램(도 1의 22)의 크기와 HDD의 구동프로그램의 효율성 등이 있다.
주어진 하드웨어 및 기구적인 환경 속에서 드라이브의 데이타 전송속도를 높이기 위한 방법으로서 하기와 같은 기술들이 사용되고 있다.
드라이브의 데이타 전송속도를 높이기 위한 첫 번째 방법은 쓰기 캐쉬(write cache)로서 드라이브가 호스트 컴퓨터로부터 쓰기 명령을 받았을 때, 데이타를 호스트 컴퓨터로부터 버퍼 램에 받아서 디스크에 쓰기 전에 호스트 컴퓨터로는 쓰기 명령을 모두 수행한 것처럼 결과를 돌려준다. 그런 다음 여유 있는 시간에 버퍼 램에 저장된 호스트 컴퓨터로부터의 데이타를 디스크에 쓴다. 쓰기 캐쉬동작이 일반 쓰기 동작보다 전송속도를 높이게 하는 기술임을 도 2a 및 도 2b를 참조하여 더욱 상세히 설명한다. 도 2a는 일반 쓰기 동작을 보여주는 도면이고, 도 2b는 쓰기 캐쉬동작을 보여주는 도면이다. 먼저 도 2a를 참조하여 일반 쓰기 동작을 설명하면, 호스트 컴퓨터 40에서 드라이브의 DDC 20으로 데이타 전송과 함께 데이타 쓰기 명령을 하면①, DDC 20은 호스트 컴퓨터 40에서 전송된 데이타를 버퍼 램 22에 우선 저장하였다가② 다시 읽어낸다③. 그후 디스크 10에 상기 데이타를 기록하고④, 그후 호스트 컴퓨터 40으로 데이타 쓰기 완료되었음을 알린다⑤. 다음으로 도 2b를 참조하여 쓰기 캐쉬동작을 설명하면, 호스트 컴퓨터 40에서 드라이브의 DDC 20으로 데이타 쓰기 명령을 하면①, DDC 20은 호스트 컴퓨터 40에서 전송된 데이타를 버퍼 램 22에 우선 저장하고②, 호스트 컴퓨터 40으로 데이타 쓰기 완료되었음을 바로 알린다③. 그후 DDC 20은 여유 있는 시간에 호스트 컴퓨터 40으로부터 전송된 데이타를 버퍼 램 22에서 읽어내④ 디스크 10에 기록한다⑤.
드라이브의 데이타 전송속도를 높이기 위한 두 번째 방법은 읽기 캐쉬(read cache 또는 read look ahead)로서 드라이브에서 읽기 명령을 수행 후 읽기 요구될 데이타를 미리 버퍼 램에 읽어 놓음으로써 다음 명령에서 디스크로부터 데이타를 읽는 시간을 줄인다. 읽기 캐쉬동작이 일반 읽기 동작보다 전송속도를 높이게 하는 기술임을 도 3a 및 도 3b를 참조하여 더욱 상세히 설명한다. 도 3a는 일반 읽기 동작을 보여주는 도면이고, 도 3b는 읽기 캐쉬동작을 보여주는 도면이다. 먼저 도 3a를 참조하여 일반 읽기 동작을 설명하면, 호스트 컴퓨터 40에서 드라이브의 DDC 20으로 데이타 읽기 명령을 하면①, DDC 20은 디스크 10에서 그에 해당하는 데이타를 읽어와② 버퍼 램 22에 임시 저장하였다가③ 다시 읽어내④ 호스트 컴퓨터 40으로 전송한다⑤. 다음으로 도 3b를 참조하여 읽기 캐쉬동작을 설명하면, DDC 20은 호스트 컴퓨터의 이전 읽기 명령 수행 후 이후 읽기 요구될 데이타를 읽어와 버퍼 램 22에 저장해 놓는다ⓐ. 그러한 상태에서 호스트 컴퓨터 40에서 드라이브의 DDC 20으로 데이타 읽기 명령을 하면①, DDC 20은 버퍼 램 22에 미리 읽혀진 데이타(읽기 명령의 데이타와 일치되어야 함)를 읽어와②, 호스트 컴퓨터 40으로 그 데이타를 바로 전송한다③.
도 2a, b 및 도 3a, b를 참조하여 전술하였듯이 읽기 캐쉬 또는 쓰기 캐쉬를 수행하므로 호스트 컴퓨터에서 드라이브로의 데이타 읽기 속도 및 데이타 쓰기 속도가 훨씬 빨라짐을 알 수 있다.
읽기 캐쉬를 수행하는 종래 기술의 방법을 도1, 도 3a, b, 도 4, 및 도 5를 참조하여 더욱 상세히 설명하면 하기와 같다. 읽기 캐쉬를 수행하기 위해서 버퍼 램 22의 전체 저장영역은 도 4에서 일 예로 도시하고 있는 바와 같이 일정한 크기 A를 가지는 세그먼트(segment)로 나누어져 있다. 버퍼 램 22를 효율적으로 관리하기 위해 버퍼 램 22의 전체 영역은 일정 크기 A의 논리적인 단위로 나누어지는데, 이 때의 각 단위영역을 세그먼트로 정의한다. 도 4에서는 버퍼 램 22의 전체 저장영역이 512섹터일 경우를 일 예로 하고 있다. 도 4의 (a)는 버퍼 램 22의 전체 저장영역을 하나의 세그먼트(한 세그먼트의 크기 A는 512섹터임)로 정한 경우의 일 예이고, 도 4의 (b)는 버퍼램 22의 전체 저장영역을 4개의 세그먼트(한 세그먼트의 크기 A는 128섹터임)로 정한 경우의 일 예이다. 상기 전체 저장영역을 많은 갯수의 또는 적은 갯수의 세그먼트로 정하는 경우 그에 따른 각각의 장단점이 있다.
먼저 세그먼트를 적은 갯수로 정할 경우, 그 장점은 호스트 컴퓨터 40이 순차적인 다량의 데이타 읽기 요구를 했을 경우 상기 데이타를 한꺼번에 해당 세그먼트에 모두 저장할 수 있다는 것이다. 그리고 단점은 호스트 컴퓨터 40이 소량의 데이타 읽기 요구를 다수 번 했을 경우 각각의 데이타를 버퍼 램 22에 모두 저장해 놓을 수 없다는 것이다. 도 4의 (a)를 참조하여 장단점을 더욱 상세히 설명한다. 먼저 장점을 설명한다. 400섹터정도의 분량의 데이타 읽기 요구를 하면 DDC 20은 디스크 10에서 해당 데이타를 읽어 버퍼램 22의 한 세그먼트(512섹터)에 한꺼번에 저장한다. 동시에 나머지 112섹터분량의 데이타에 대해서 읽기캐쉬가 수행된다. 그러므로 그 후 그 세그먼트에 있는 데이타(읽기캐쉬에 의해 읽혀진 데이타도 포함)에 대한 읽기 명령이 있으면 DDC 20은 디스크 10에서 데이타를 읽지 않고 바로 버퍼 램 22의 세그먼트에서 데이타를 읽는다. 다음으로 단점을 설명한다. 우선 50섹터정도 분량의 데이타 읽기요구가 호스트 컴퓨터 40으로부터 있게되면 DDC 20은 디스크 10에서 해당 데이타를 읽어 버퍼 램 22의 한 세그먼트(512섹터)에 저장한다. 이후 이전 데이타와는 다른 데이타들을 읽으라는 명령을 호스트 컴퓨터 40이 하게 되면 DDC 20은 디스크 10에서 해당 데이타를 읽어와서 그 세그먼트에 오버라이트(over write)하게 된다. 그러므로 이전데이타는 지워진다.
다음으로 세그먼트를 많은 갯수로 정할 경우 그 장단점은 전술한 세그먼트를 적은 갯수로 정했을 경우의 장단점과 반대가 된다. 도 4의 (b)를 참조하여 장단점을 더욱 상세히 설명한다. 먼저 장점을 설명한다. 우선 50섹터정도 분량의 데이타 읽기요구가 호스트 컴퓨터 40으로부터 있게되면 DDC 20은 디스크 10에서 해당 데이타를 읽어 버퍼 램 22의 첫 번째 세그먼트(128섹터)에 저장한다. 동시에 세그먼트의 나머지 분량에 대해서는 읽기 캐쉬를 수행한다. 이후 이전 데이타와는 다른 데이타들을 읽으라는 명령을 호스트 컴퓨터 40이 하게되면 DDC 20은 디스크 10에서 해당 데이타를 읽어와서 버퍼 램 22의 두 번째 세그먼트에 저장한다. 물론 세그먼트의 나머지 분량에 대해서는 읽기 캐쉬를 수행한다. 이런 식으로 동작이 수행되므로 버퍼 램 22의 각 세그먼트는 이전에 랜덤하게 읽혀졌던 데이타들을 모두 저장할 수 있다. 다음으로 단점을 설명한다. 만약 호스트 컴퓨터 40이 400섹터정도의 분량의 데이타 읽기요구를 하면 DDC 20은 디스크 10에서 해당 데이타를 읽어 버퍼램 22에 비어 있는 한 세그먼트(128섹터)에 한꺼번에 저장한다. 그러므로 해당 세그먼트에서는 3번 정도의 데이타가 오버라이트된다. 이때에는 읽기캐쉬가 수행되지 않는다. 그러므로 오버라이트되어버린 데이타는 이후에 사용되지 못하게 된다.
따라서 버퍼 램 22의 세그먼트의 갯수는 시스템의 특성에 따라 적정하게 설정되어야 한다.
도 5는 종래 기술에 따른 읽기 캐쉬 수행 흐름도이고, 도 6은 버퍼 램 22의 세그먼트상태를 설명하기 위한 일예도이다. 도 6에서는 버퍼 램 22의 세그먼트 SG를 3개(SG1, SG2, SG3)로 들고 있다. 그리고 도 6에서 변수 A는 버퍼 램 22의 세그먼트 SG의 크기를, 변수 B는 호스트 컴퓨터 40으로부터 요구된 데이타의 크기를 의미한다.
이제 읽기 캐쉬를 수행하는 종래 기술의 방법을 도 5 및 도 6을 참조하여 더욱 상세히 설명한다. 호스트 컴퓨터 40으로부터 데이타 읽기명령이 오면 DDC 20은 도 5의 500단계에서 이를 인식하고 502단계에서는 호스트 컴퓨터 40에서 요구된 데이타 크기 B를 버퍼 램 22의 세그먼트 SG의 크기 A보다 크거나 같은가를 판단한다. 도 6의 (a1)에는 B<A의 경우를 도시하고 있고, (a2)에는 B≥A의 경우를 도시하고 있다.
만약 B<A이면{(a1) 경우} 504단계로 진행하여 요구된 데이타(크기 B)를 디스크 10으로부터 먼저 읽어 버퍼 램 22의 첫 번째 세그먼트 SG1에 저장한다. 그후 506단계로 진행하여 상기 한 세그먼트 SG1의 나머지 분량(A-B=x)만큼의 데이타를 미리 읽어 상기 세그먼트 SG1에 저장한다. 다시 말하면, x분량 만큼의 데이타에 대해 읽기 캐쉬를 수행한다. 이때 상기 읽기 캐쉬된 데이타는 요구된 데이타의 마지막섹터에서부터 계속 이어지는 데이타들이다. 그후 호스트컴퓨터 40의 리드타이밍에 맞추어 DDC 20은 507단계에서 요구된 데이타 B를 버퍼 램 22의 첫 번째 세그먼트 SG1에서 읽어서 호스트 컴퓨터 40으로 전송한다. 도 6의 (a2)는 요구된 데이타 전송 후 첫 번째 세그먼트 SG1에 저장된 데이타를 들을 보여주고 있다. 상기 세그먼트 SG1에는 호스트컴퓨터 40에 의해 요구된 B크기의 데이타와 읽기 캐쉬된 A-B(=x) 크기만큼의 데이타가 저장되어 있다.
한편, 도 5의 502단계에서 B≥A이면 DDC 20은 508단계로 진행하여 요구된 데이타(크기 B)중 A크기만큼의 데이타를 디스크 10으로부터 먼저 읽어 버퍼 램 22의 첫 번째 세그먼트 SG1에 저장한다. 그후 호스트컴퓨터 40의 리드타이밍에 맞추어 읽어내 호스트 컴퓨터 40으로 전송한다. DDC 20은 그후 510단계로 진행하여 첫 번째 세그먼트 SG1에 저장되었던 데이타가 전송완료되었는가를 판단하고 전송완료 되었으면 요구된 데이타 중 나머지 분량(B-A=y)의 데이타를 디스크 10으로부터 읽어와 버퍼 램 22의 첫 번째 세그먼트 SG1에 저장한다. 그후 호스트컴퓨터 40의 리드타이밍에 맞추어 이를 읽어내 호스트 컴퓨터 40으로 전송한다. 도 6의 (b2)는 요구된 데이타 전송 후 첫 번째 세그먼트 SG1에 저장된 데이타들을 보여주고 있다. 상기 세그먼트 SG1을 보면, 호스트컴퓨터 40에 의해 요구된 B크기의 데이타중 y만큼의 데이타가 오버라이트되어 그전에 그 영역을 차지하고 있는 데이타를 지워버린상태로 있다. 참고로, 도 6의 두 번째 내지 네 번째의 세그먼트들은 호스트 컴퓨터 40으로부터 또 다른 리드 명령에 의해 디스크 10로부터 읽혀진 데이타를 각각 저장하는데 사용된다.
전술한 종래의 읽기 캐쉬 기술에서 미리 읽는 데이타의 양은 B<A의 경우(한번의 명령에서 요구된 데이타가 한 세그먼트보다 적은 경우)인지와 B≥A의 경우(한번의 명령에서 요구된 데이타가 한 세그먼트보다 크거나 같은 경우)인지에 따라 달라짐을 알수 있다. B<A의 경우에는 읽기캐쉬가 수행되어 미리 읽은 데이타가 있지만, B≥A의 경우에는 읽기캐쉬가 수행되지 않는다. 이러한 종래 읽기 캐쉬 기술은, 읽기명령에 의해 호스트 컴퓨터 40으로 전송되어진 B크기만큼의 데이타를 이후의 명령에서 다시 요구할 것을 대비하여 그 버퍼 램 22의 해당 세그먼트에 저장된 데이타를 삭제하지 않는 정책을 쓰고 있는 것으로 요약된다.
그러나 요즈음의 컴퓨터에서 사용되고 있는 모든 운영체제(OS: Operating System)에서는 HDD에 비교하면 훨씬 큰 자체의 캐쉬를 두어 드라이브에서 수행하는 것과 비슷한 읽기 캐쉬를 수행하고 있다. 그러므로 호스트 컴퓨터로부터 HDD에 읽기요구되어졌던 데이타가 호스트컴퓨터에 의해서 다시 읽혀질 확률은 이전 읽기명령에 의해 읽기 캐쉬되었던 데이타들이 읽혀질 확률에 비하여 아주 낮다는 것이다. 즉, 호스트 컴퓨터에서는 이전 읽기명령에서 읽은 데이타들은 자체의 읽기 캐쉬에서 바로 읽어간다는 것이다. 그러므로 데이타를 호스트 컴퓨터로 전송한 후에도 버퍼 램 22의 세그먼트에 이전 데이타를 그대로 유지하고 그를 위해 읽기 캐쉬 양도 줄이는 종래의 읽기 캐쉬 기술은 드라이브의 성능 향상에 전혀 도움을 주지 못한다. 또한 호스트 컴퓨터에 의해 읽혀졌던 데이타가 한 세그먼트에 채워진 상태가 되면 읽기 캐쉬를 전혀 수행하지 않는 종래의 읽기 캐쉬 기술은 드라이브의 성능향상에 전혀 도움을 주지 못한다.
따라서 본 발명의 목적은 드라이브의 성능향상을 위한 개선된 읽기 캐쉬 방법을 제공하는데 있다.
본 발명의 다른 목적은 HDD와 호스트컴퓨터 간의 데이타 전송속도를 높이기 위한 개선된 읽기캐쉬 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 드라이브의 전송데이타 보관영역을 효율적으로 사용하는 읽기 캐쉬 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 부가적인 하드웨어 비용을 들이지 않고도 드라이브와 호스트 컴퓨터간의 데이타 전송속도를 높이는 읽기 캐쉬방법을 제공하는데 있다.
본 발명의 또 다른 목적은 드라이브의 읽기 캐쉬 효율성을 높이는 읽기 캐쉬방법을 제공하는데 있다.
도 1은 통상적인 하드 디스크 드라이브의 블럭 구성도
도 2a 및 도 2b는 일반 쓰기동작과 쓰기 캐쉬동작을 비교하기 위한 도면
도 3a 및 도 3b는 일반 읽기동작과 읽기 캐쉬동작을 비교하기 위한 도면
도 4는 버퍼 램 22에 구성된 세그먼트의 일예를 보여주는 도면
도 5는 종래 기술에 따른 읽기 캐쉬 수행 흐름도
도 6은 종래 기술에 따라 버퍼 램 22의 세그먼트 상태를 설명하기 위한 일예도
도 7은 본 발명의 실시예에 따라 읽기 캐쉬를 수행하는 흐름도
도 8은 본 발명의 실시예에 따른 버퍼 램 22의 세그먼트 상태를 설명하기 위한 일예도
이하 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 도면들중 동일한 구성요소 또는 동일한 부품은 가능한한 어느곳에든지 동일한 참조번호 또는 동일한 부호로 나타내고 있음을 유의하여야 한다. 또한 하기 설명에서는 구체적인 회로의 구성 소자 등과 같은 많은 특정 상세들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공되고 있다. 그러나 이러한 특정 상세들 없이도 본 발명이 실시될 수 있음은 이 기술분야에 통상의 지식을 가진 자에게 자명하여진다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
요즘의 컴퓨터 시스템에서 사용되고 있는 모든 운용체제에서는 자체적으로 드라이브에 비해 훨씬 큰 캐쉬영역을 보유하고 있기 때문에 드라이브에서 한 번 읽은 데이타를 계속 유지하는 것은 비효율적이다. 그러므로 호스트 시스템에서 요구되어진 데이타를 보관하는데 사용된 버퍼 램의 영역(세그먼트 단위)은 데이타의 전송이 끝나게 되면 읽기 캐쉬 데이타를 위해 사용되는 것이 더욱 효과적이다.
본 발명에서는 도 1 및 도 3a,b도를 그대로 사용한다.
도 7은 본 발명의 실시예에 따라 읽기 캐쉬를 수행하는 흐름도이고, 도 8은 본 발명의 실시예에 따른 버퍼 램 22의 세그먼트 상태를 설명하기 위한 일예도이다. 도 8에서는 도 6과 마찬가지로 버퍼 램 22의 세그먼트 SG를 3개(SG1, SG2, SG3)로 들고 있다. 그리고 도 8에서 변수 A는 버퍼 램 22의 세그먼트 SG의 크기를, 변수 B는 호스트 컴퓨터 40으로부터 요구된 데이타의 크기를 의미한다.
지금, 읽기 캐쉬를 수행하는 본 발명의 실시예에 따른 방법을 도 7 및 도 8을 참조하여 더욱 상세히 설명한다. 호스트 컴퓨터 40으로부터 데이타 읽기명령이 오면 DDC 20은 도 7의 700단계에서 이를 인식하고 702단계에서는 호스트 컴퓨터 40에서 요구된 데이타 크기 B를 버퍼 램 22의 세그먼트 SG의 크기 A보다 크거나 같은가를 판단한다. 도 8의 (a1)에는 B<A의 경우를 도시하고 있고, (a2)에는 B≥A의 경우를 도시하고 있다.
만약 B<A이면{도 8의 (a1)의 경우} 704단계로 진행하여 요구된 데이타(크기 B)를 디스크 10으로부터 먼저 읽어 버퍼 램 22의 첫 번째 세그먼트 SG1에 저장한다. 그후 706단계로 진행하여 상기 한 세그먼트 SG1의 나머지 분량(A-B=x)만큼의 데이타를 미리 읽어 상기 세그먼트 SG1에 저장한다. 다시 언급하면, x분량 만큼의 데이타에 대해 읽기 캐쉬를 수행한다. 이때 상기 읽기 캐쉬된 데이타는 요구된 데이타의 마지막섹터에서부터 계속 이어지는 일련의 데이타들이다. 그후 호스트컴퓨터 40의 리드타이밍에 맞추어 DDC 20은 707단계에서 요구된 데이타 B를 버퍼 램 22의 첫 번째 세그먼트 SG1에서 읽어서 호스트 컴퓨터 40으로 전송한다. 도 8의 (a2)의 첫 번째 구성은 데이타 전송 후 첫 번째 세그먼트 SG1에 저장된 데이타들을 보여주고 있다. 상기 세그먼트 SG1에는 호스트컴퓨터 40에 의해 요구된 B크기의 데이타와 읽기 캐쉬된 A-B(=x) 크기만큼의 데이타가 저장되어 있다.
그후 DDC 20은 708단계로 진행하여 요구된 데이타의 전송완료를 판단하고 전송완료가 되었으면 709단계로 진행한다. 709단계에서 DDC 20은 요구된 데이타를 저장하는데 이용된 크기(즉, 크기 B)만큼의 데이타를 디스크 10으로부터 읽어온다. 이때 디스크 10으로부터 읽어오는 데이타는 데이타전송완료전 읽기 캐쉬된 데이타들의 마지막 섹터 이후 일련의 데이타들이다. 그후 DDC 20은 720단계로 진행하여 다른 세그먼트들 SG2, SG3에 대한 데이타 읽기 캐쉬를 수행한다. 읽기 캐쉬에 의해 디스크 10으로부터 읽혀져 세그먼트들 SG2, SG3에 각각 저장되는 데이타들은 데이타전송완료후 읽기 캐쉬된 데이타들의 마지막 섹터 이후 일련데이타 데이타들이다. 그 다음 722단계에서는 버퍼 램 22의 모든 세그먼트들이 읽기캐쉬용으로 사용되었나를 판단하고 그렇지 않으면 724단계로 진행하여 읽기캐쉬용으로 사용되지 않은 세그먼트들에 대해 읽기 캐쉬를 수행한다. 만약 버퍼 램 22의 모든 세그먼트들이 읽기 캐쉬용으로 사용되면 726단계로 진행하여 읽기캐쉬를 종료한다. 도 8의 (a2)의 두 번째 구성을 보면, 버퍼 램 22의 있는 모든 세그먼트들이 읽기캐쉬용으로 사용되었음을 볼 수 있다.
한편, 도 7의 702단계에서 B≥A({도 8의 (b1)의 경우}이면 DDC 20은 710단계로 진행하여 요구된 데이타(크기 B)중 A크기 만큼의 데이타를 디스크 10으로부터 먼저 읽어 버퍼 램 22의 첫 번째 세그먼트 SG1에 저장한다. 그후 호스트컴퓨터 40의 리드타이밍에 맞추어 읽어내 호스트 컴퓨터 40으로 전송한다. DDC 20은 그후 711단계로 진행하여 첫 번째 세그먼트 SG1에 풀(full) 저장되었던 데이타가 전송완료되었는가를 판단하고 전송완료되었으면 712단계로 진행하여 요구된 데이타 중 나머지 분량(B-A=y)의 데이타를 디스크 10으로부터 읽어와 버퍼 램 22의 첫 번째 세그먼트 SG1에 저장한다. 그후 714단계에서 데이타 오버라이트되지 않는 세그먼트 SG1의 나머지 영역(A-y)에 읽기캐쉬를 수행한다. 읽기 캐쉬에 의해 디스크 10으로부터 읽혀져 세그먼트들 SG1의 나머지 영역(A-y)에 저장되는 데이타들은 호스트 컴퓨터 40에 의해 읽기 요구된 데이타들의 마지막 섹터 이후 일련데이타 데이타들이다. 도 8의 (b2)의 두 번째 구성은 요구된 데이타중 나머지 분량(y)의 데이타들을 전송하기전 첫 번째 세그먼트 SG1에 저장된 데이타들을 보여주고 있다. 이 구성을 살피면, 첫 번째 세그먼트 SG1은 요구된 데이타중의 나머지 분량(B-A=y)에 대응하는 영역에는 데이타가 오버라이트되었고, 상기 세그먼트 SG1의 나머지 영역(A-y)에 읽기캐쉬된 데이타가 저장되어 있음을 볼 수 있다.
그후 DDC 40은 715단계에서 호스트컴퓨터 40의 리드타이밍에 맞추어 요구된 데이타중 나머지 분량(y)의 데이타들을 세그먼트 SG1에서 읽어내 호스트 컴퓨터 40으로 전송한다. 그후 DDC 20은 716단계로 진행하여 요구된 데이타의 전송완료를 판단하고 전송완료가 되었으면 718단계로 진행한다. 718단계에서 DDC 20은 요구된 데이타중 나머지 분량(y) 만큼의 데이타를 디스크 10으로부터 읽어온다. 이때 디스크 10으로부터 읽어오는 데이타는 데이타전송완료전 읽기 캐쉬된 데이타들의 마지막 섹터 이후 일련의 데이타들이다. 그후 DDC 20은 720단계로 진행하여 다른 세그먼트들 SG2, SG3에 대한 데이타 읽기 캐쉬를 수행한다. 읽기 캐쉬에 의해 디스크 10으로부터 읽혀져 세그먼트들 SG2, SG3에 각각 저장되는 데이타들은 데이타전송완료 후 읽기 캐쉬된 데이타들의 마지막 섹터 이후 일련데이타 데이타들이다. 그 다음 722단계에서는 버퍼 램 22의 모든 세그먼트들이 읽기캐쉬용으로 사용되었나를 판단하고 그렇지 않으면 724단계로 진행하여 읽기캐쉬용으로 사용되지 않은 세그먼트들에 대해 읽기 캐쉬를 수행한다. 만약 버퍼 램 22의 모든 세그먼트들이 읽기 캐쉬용으로 사용되면 726단계로 진행하여 읽기캐쉬를 종료한다. 도 8의 (b2)의 세 번째 구성을 보면, 버퍼 램 22의 있는 모든 세그먼트들이 읽기캐쉬용으로 사용되었음을 볼 수 있다.
HDD의 읽기 캐쉬 효율성은 호스트 컴퓨터 40로부터 요구된 읽기 명령의 데이타가 버퍼 램 22에 미리 읽혀져 존재하는 비율, 즉 HR(Hit Ratio)로서 나타내어진다. 상기 HR은 하기 수학식 1에 의해서 구해진다.
상기 수학식 1에서 나타낸 HR이 높아질수록 호스트 컴퓨터 40과 HDD 간의 데이타 전송속도는 높이지게 된다. 왜냐하면, HR이 높아질수록 호스트 컴퓨터 40에서 요구된 데이타가 이미 디스크 10으로부터 읽혀져 버퍼 램 22에 저장되어 있으므로(읽기 캐쉬됨) DDC 20이 디스크 10에서 데이타를 읽는 시간을 소비하지 않고도 곧바로 원하는 데이타를 호스트 컴퓨터 40으로 전송할 수 있기 때문이다.
본 발명의 실시예와 같이 버퍼 램 22를 읽기 캐쉬용으로 모두 사용하는 동작을 수행시에는, 디스크 10에서 호스트컴퓨터 40에 의해 요구된 데이타를 읽고 난 다음 마이크로 콘트롤러 24는 요구된 데이타의 마지막 섹터 다음에서부터 순차적인 데이타 읽기 요구할 DDC 20의 명령에 대비하여 헤드 12를 상기 마지막 섹터의 다음 위치로 이동시켜놓는다. 만약 마지막 섹터의 다음 위치가 탐색이 필요한 경우에는 미리 탐색도 수행한다. 이러한 마이크로 콘트롤러 24의 서보 제어동작은 읽기캐쉬에 의한 추가적인 오버헤드(overhead)를 줄일 수 있다.
한편 본 발명의 상세한 설명에서는 버퍼 램 22의 세그먼트들의 수, 버퍼 램 22의 크기 등의 구체적인 실시예에 관해 설명하였으나, 본 발명은 본 발명의 범위에서 벗어나지 않는 한도내에서 다양한 변경 또는 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며 후술하는 특허청구의 범위 및 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명은 데이타전송 후 버퍼 램을 모두 읽기 캐쉬용으로 하므로 HDD와 호스트컴퓨터 간의 데이타 전송속도를 높인다. 또한 부가적인 하드웨어 비용을 들이지 않고도 데이타 전송속도를 높인다. 데이타 전송속도를 높임은 결국 드라이브의 성능향상을 개선한 것이다.

Claims (8)

  1. 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법에 있어서,
    호스트의 데이타 읽기명령에 의거하여 디스크로부터 해당 데이타를 읽어 데이타 전송저장부의 일정 단위 저장영역에 임시 저장 후 상기 호스트로 전송하는 데이타전송과정과,
    상기 해당 데이타의 이후의 일련 데이타들 중 상기 단위저장영역 크기만큼의 데이타를 상기 디스크에서 읽어 상기 단위 저장영역에 저장하는 제1 읽기캐쉬 과정과,
    상기 제1 읽기 캐쉬과정후 상기 데이타전송저장부의 다른 모든 단위 저장영역들에 대해서도 상기 읽기캐쉬 이후의 일련 데이타들 중 상기 단위저장영역 크기만큼의 데이타를 상기 디스크로부터 읽어 다른 모든 단위 저장영역에 각각 저장하는 제2 읽기캐쉬 과정으로 이루어짐을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 읽기 캐쉬수행전 상기 읽기캐쉬 요구될 데이타의 위치로 헤드를 미리 이동시키는 과정을 가짐을 특징으로 하는 방법.
  3. 자기 디스크 드라이브에서 호스트에서의 데이타읽기 명령 요구된 데이타 크기가 상기 드라이브내 데이타전송저장부의 단위 저장영역보다 적을 경우의 읽기 캐쉬의 성능을 높이기 위한 방법에 있어서,
    호스트로부터의 데이타 읽기명령에 의거하여 디스크로부터 해당 데이타를 읽어 상기 데이타전송저장부의 일정 단위 저장영역의 일부영역에 임시 저장하는 제1과정과,
    상기 해당 데이타가 저장된 단위 저장영역의 여분의 영역에 상기 해당 데이타의 이후의 일련 데이타들을 상기 디스크로부터 읽어 저장한 후 상기 해당 데이타를 상기 호스트로 전송하는 제2과정과,
    상기 일련데이타 이후의 디스크의 일련 데이타들 중 상기 단위 저장영역중 기저장되었던 일부영역 크기만큼의 일련데이타를 상기 디스크로부터 읽어와 상기 단위 저장영역의 일부영역에 저장하는 제3과정과,
    상기 제3과정후 상기 단위 저장영역의 일부영역에 저장된 데이타 이후의 일련 데이타들을 상기 디스크로부터 읽어와 상기 데이타전송저장부내 다른 모든 단위 저장영역들에 각각 저장하는 제4과정으로 이루어짐을 특징으로 하는 방법.
  4. 제3항에 있어서, 상기 읽기 캐쉬수행전 상기 읽기캐쉬 요구될 데이타의 위치로 헤드를 미리 이동시키는 과정을 가짐을 특징으로 하는 방법.
  5. 자기 디스크 드라이브에서 호스트에서의 데이타읽기 명령 요구된 데이타크기가 상기 드라이브내 데이타전송저장부의 단위 저장영역보다 클 경우의 읽기 캐쉬의 성능을 높이기 위한 방법에 있어서,
    호스트로부터의 데이타 읽기명령에 의거하여 디스크로부터 해당 데이타중 상기 단위 저장영역만큼을 읽어 상기 데이타전송저장부의 일정 단위 저장영역에 임시 저장후 상기 호스트로 전송하는 제1과정과,
    상기 해당 데이타중 나머지 데이타를 상기 디스크로부터 읽어 상기 일정 단위 저장영역의 일부영역에 저장하는 제2과정과,
    상기 나머지 데이타가 저장된 단위 저장영역의 여분의 영역에 상기 해당 데이타의 이후의 일련 데이타들 상기 디스크로부터 읽어 저장하는 제3과정과,
    상기 나머지 데이타를 상기 호스트로 전송하는 제4과정과,
    상기 단위저장영역에 대응하는 상기 여분의 영역에 저장된 일련데이타 이후의 일련 데이타들을 상기 디스크로부터 읽어 상기 단위 저장영역의 일부영역에 저장하는 제5과정으로 이루어짐을 특징으로 하는 방법.
  6. 제5항에 있어서, 상기 단위 저장영역의 일부영역에 저장된 데이타 이후의 일련 데이타들을 상기 디스크로부터 읽어 상기 다른 모든 단위 저장영역에 저장하는 과정을 더 가짐을 특징으로하는 방법.
  7. 제6항에 있어서, 상기 읽기 캐쉬수행전 상기 읽기캐쉬 요구될 데이타의 위치로 헤드를 미리 이동시키는 과정을 가짐을 특징으로 하는 방법.
  8. 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법에 있어서,
    호스트에서의 데이타읽기 명령 요구된 데이타크기가 상기 드라이브내 데이타전송저장부의 단위 저장영역보다 적을 경우에 읽기캐쉬 수행하는 제1 읽기 캐쉬과정과; 상기 데이타읽기 명령 요구된 데이타 크기가 상기 데이타전송저장부의 단위 저장영역보다 클 경우에 읽기 캐쉬 수행하는 제2 읽기 캐쉬과정으로 이루어지고;
    상기 제1 읽기 캐쉬과정이;
    호스트로부터의 데이타 읽기명령에 의거하여 디스크로부터 해당 데이타를 읽어 상기 데이타전송저장부의 일정 단위 저장영역의 일부영역에 임시 저장하는 단계와,
    상기 해당 데이타가 저장된 단위 저장영역의 여분의 영역에 상기 해당 데이타의 이후의 일련 데이타들을 상기 디스크로부터 읽어와 저장하는 단계와,
    상기 해당 데이타를 상기 호스트로 전송하는 단계와,
    상기 단위저장영역에 대응하는 상기 여분의 저장영역에 저장된 일련데이타 이후의 일련 데이타들을 상기 디스크로부터 읽어와 상기 단위 저장영역의 일부영역에 저장하는 단계와,
    상기 단위 저장영역의 일부영역에 저장된 데이타 이후의 일련 데이타들을 상기 디스크로부터 읽어와 상기 다른 모든 단위 저장영역에 저장하는 단계로 이루어지고,
    상기 제2 읽기캐쉬과정이;
    호스트로부터의 데이타 읽기명령에 의거하여 디스크로부터 해당 데이타중 상기 단위 저장영역만큼을 읽어 상기 데이타전송저장부의 일정 단위 저장영역에 임시 저장후 상기 호스트로 전송하는 단계와,
    상기 해당 데이타중 나머지 데이타를 상기 디스크로부터 읽어 상기 일정 단위 저장영역의 일부영역에 저장하는 단계와,
    상기 나머지 데이타가 저장된 단위 저장영역의 여분의 영역에 상기 해당 데이타의 이후의 일련 데이타들을 상기 디스크로부터 읽어와 저장하는 단계와,
    상기 나머지 데이타를 상기 호스트로 전송하는 단계와,
    상기 단위저장영역에 대응하는 상기 여분의 영역에 저장된 일련데이타 이후의 일련 데이타들을 상기 디스크로부터 읽어와 상기 단위 저장영역의 일부영역에 저장하는 단계와,
    상기 단위 저장영역의 일부영역에 저장된 데이타 이후의 일련 데이타들을 상기 디스크로부터 읽어와 상기 다른 모든 단위 저장영역에 저장하는 단계로 이루어짐을 특징으로 하는 방법.
KR1019960049248A 1996-10-28 1996-10-28 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법 KR19980029917A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1019960049248A KR19980029917A (ko) 1996-10-28 1996-10-28 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법
US08/958,844 US6523086B1 (en) 1996-10-28 1997-10-28 Method for improving performance of read cache of magnetic disk drive
JP9295812A JPH10149260A (ja) 1996-10-28 1997-10-28 ディスクドライブにおける読出キャッシュ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960049248A KR19980029917A (ko) 1996-10-28 1996-10-28 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법

Publications (1)

Publication Number Publication Date
KR19980029917A true KR19980029917A (ko) 1998-07-25

Family

ID=19479312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960049248A KR19980029917A (ko) 1996-10-28 1996-10-28 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법

Country Status (3)

Country Link
US (1) US6523086B1 (ko)
JP (1) JPH10149260A (ko)
KR (1) KR19980029917A (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4170044B2 (ja) * 2002-08-16 2008-10-22 富士通株式会社 ディスク記憶装置
EP1411569B1 (en) 2002-10-03 2013-08-14 Honda Giken Kogyo Kabushiki Kaisha Fuel cell and its connection structure to a processing unit
US20040147955A1 (en) * 2003-01-28 2004-07-29 Scimed Life Systems, Inc. Embolic protection filter having an improved filter frame
JP4643667B2 (ja) * 2008-03-01 2011-03-02 株式会社東芝 メモリシステム
CN102568539A (zh) * 2010-12-20 2012-07-11 鸿富锦精密工业(深圳)有限公司 硬盘
CN102543143A (zh) * 2010-12-24 2012-07-04 鸿富锦精密工业(深圳)有限公司 硬盘模组
US9552297B2 (en) 2013-03-04 2017-01-24 Dot Hill Systems Corporation Method and apparatus for efficient cache read ahead
US8886880B2 (en) 2012-05-29 2014-11-11 Dot Hill Systems Corporation Write cache management method and apparatus
US9684455B2 (en) 2013-03-04 2017-06-20 Seagate Technology Llc Method and apparatus for sequential stream I/O processing
US9053038B2 (en) 2013-03-05 2015-06-09 Dot Hill Systems Corporation Method and apparatus for efficient read cache operation
US8930619B2 (en) 2012-05-29 2015-01-06 Dot Hill Systems Corporation Method and apparatus for efficiently destaging sequential I/O streams
US9128854B1 (en) * 2012-09-28 2015-09-08 Emc Corporation System and method for data prediction
US9152563B2 (en) 2013-03-04 2015-10-06 Dot Hill Systems Corporation Method and apparatus for processing slow infrequent streams
US9158687B2 (en) 2013-03-04 2015-10-13 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
US9465555B2 (en) 2013-08-12 2016-10-11 Seagate Technology Llc Method and apparatus for efficient processing of disparate data storage commands
US9600205B1 (en) * 2014-09-22 2017-03-21 Western Digital Technologies, Inc. Power aware power safe write buffer

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3308554B2 (ja) * 1991-02-20 2002-07-29 株式会社日立製作所 制御装置及び制御装置の制御方法
US5410653A (en) * 1992-06-16 1995-04-25 International Business Machines Corporation Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length
JPH07334310A (ja) * 1994-06-06 1995-12-22 Toshiba Corp ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法
US5623608A (en) * 1994-11-14 1997-04-22 International Business Machines Corporation Method and apparatus for adaptive circular predictive buffer management

Also Published As

Publication number Publication date
US6523086B1 (en) 2003-02-18
JPH10149260A (ja) 1998-06-02

Similar Documents

Publication Publication Date Title
US6606714B1 (en) Disk drive using defect list to perform uninterrupted writing of non-relocated data blocks and caching of relocated data blocks for deferred writing
JP3183993B2 (ja) ディスク制御システム
US6622206B1 (en) Method for controlling write cache transfer and disk unit
JP2003131942A (ja) ハードディスク装置のキャッシュを制御する方法および装置
KR19980029917A (ko) 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법
US5983319A (en) Information recording and reproduction apparatus and a method of data caching including read-ahead capability
KR20020064357A (ko) 디스크 드라이브내 버퍼 내부 및 외부 데이터 전송 관리용버퍼 관리 시스템
US7464250B2 (en) Method to reduce disk access time during predictable loading sequences
KR100388338B1 (ko) 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치
EP1134648A2 (en) Host-based virtual disk drive for improving the performance of a hard disk drive's input/output
US6516401B2 (en) Data reading method and data reading apparatus
JPH06236241A (ja) フラッシュメモリを用いたハードディスク装置
US6654852B2 (en) Method and system of reading and writing data by a disk drive apparatus
KR20070060301A (ko) 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
US6957300B2 (en) Reducing delay of command completion due to overlap condition
JP3969809B2 (ja) 記憶装置におけるデータバッファの管理方法
JP3122702B2 (ja) ディスク装置のライトバック制御方法
JP3080758B2 (ja) 磁気ディスク装置
JP2004164144A (ja) ディスク装置
US6041392A (en) Disk drive device and method for controlling the same
JP2002342038A (ja) コマンドの実行順序を制御するディスク装置
JP3435176B2 (ja) 磁気ディスク装置
JPH04311216A (ja) 外部記憶制御装置
JPH07295916A (ja) ディスク制御方式
JP3080416B2 (ja) コントロ−ラにおける内部的動作の実行方法及びコントロ−ラ

Legal Events

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

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 19990622

Effective date: 20000831