KR100272684B1 - 디스크 드라이브 장치 및 그 제어 방법 - Google Patents

디스크 드라이브 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR100272684B1
KR100272684B1 KR1019980003818A KR19980003818A KR100272684B1 KR 100272684 B1 KR100272684 B1 KR 100272684B1 KR 1019980003818 A KR1019980003818 A KR 1019980003818A KR 19980003818 A KR19980003818 A KR 19980003818A KR 100272684 B1 KR100272684 B1 KR 100272684B1
Authority
KR
South Korea
Prior art keywords
data
control means
cache memory
disk
read
Prior art date
Application number
KR1019980003818A
Other languages
English (en)
Other versions
KR19980079695A (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 KR19980079695A publication Critical patent/KR19980079695A/ko
Application granted granted Critical
Publication of KR100272684B1 publication Critical patent/KR100272684B1/ko

Links

Classifications

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

Abstract

명령 오버헤드를 최소한으로 억제하면서, 필요에 따라 미디어로부터 부가적인 판독을 행할 수 있고, 전체의 퍼포먼스를 향상시킬 수 있는 디스크 드라이브 장치 및 그 제어 방법을 제공한다.
디스크 드라이브 장치(10)는 HIC(15)가, 판독 명령이 발행되고 요구된 데이터가 캐시 메모리에 보유한 데이터에 히트하여 모든 데이터 전송을 로컬 MPU(16)의 개입없이 행할 수 있는 경우에 있어서도, 최후의 1블럭이 남을 때까지 전송을 행하여 로컬 MPU(16)의 중개를 대기하며, 로컬 MPU(16)는 명령 종료의 준비가 된 시점에서 최후의 1블럭을 전송하도록 지시함과 동시에, 로컬 MPU(16)가 HIC(15)로 최후의 1블럭을 전송하라는 지시를 했을 때, 전송 데이터가 복수 블럭 남아 있을 경우에는, HIC(15)가 최후의 1블럭에서 데이터 전송을 중단하지 않고 모든 데이터의 전송을 실행하여 명령을 완료시킨다.

Description

디스크 드라이브 장치 및 그 제어 방법
본 발명은 하드 디스크 드라이브(HDD) 등에 사용되는 디스크 드라이브 장치 및 그 제어 방법에 관한 것으로, 특히 캐시 메모리를 구비한 디스크 드라이브 장치 및 그 제어 방법에 관한 것이다.
정보 처리 장치의 보조 기억 장치로서 사용되는 하드 디스크 드라이브(HDD)에는 액세스 속도 향상을 위해 정보 처리 장치 (이하, 호스트라 칭함) 로부터 공급된 데이터를 일시적으로 보유하거나, 또는 자기 디스크로부터 판독된 데이터가 호스트에 전송될 때까지 이 데이터를 일시적으로 보유하는 캐시 메모리 및 캐시 제어를 행하는 제어부를 설치하는 것이 일반적이다.
제어부는 호스트로부터 기록 데이터가 공급되면, 공급된 기록 데이터를 캐시 메모리에 보유시킨 후, 호스트를 기록 처리 동작으로부터 해제시킨다. 이와 병행하여, 제어부는 캐시 메모리에 보유된 기록 데이터가 순차 자기 디스크(이하, 미디어라 칭함)에 기록되도록 기록계의 제어를 행한다. 또한, 제어부는 호스트로부터 판독 요구가 있으면 예상되는 데이터 미디어로부터의 판독을 판독계에 지시하고, 판독된 데이터를 캐시 메모리에 보유해 둔다. 그리고, 호스트로부터 판독 요구가 있었을 때, 판독 대상 데이터가 캐시 메모리에 보유되어 있으면, 그것을 호스트에 공급한다. 이와 같은 캐시 제어를 행함으로써, HDD의 외관상의 액세스 속도를 향상시킨다.
최근의 소형 HDD에서는 명령 오버헤드의 삭감으로 퍼포먼스를 향상시키는 수단으로서, 호스트 인터페이스 주변의 처리에 대하여 HDD의 마이크로프로세서 (이하, 로컬 MPU라 칭함) 가 개입하는 것을 가능한 한 줄여서, 그 처리를 되도록이면 하드웨어에 의한 호스트 인터페이스 컨트롤러(Host Interface Controller: HIC)로 행하는 방법이 채용되는 경향이 있다.
그의 하나로서, 호스트-캐시 메모리 사이에는 로컬 MPU의 개입없이 HIC에 의한 제어하에 데이터 전송을 행할 수 있는 한편, 미디어-캐시 메모리 사이의 데이터 전송은 로컬 MPU의 개입을 필요로 하는 시스템을 사용하는 것이 고려된다. 이와 같은 시스템에서, 호스트로부터의 판독 명령에 의해 요구되는 모든 데이터가 미리 캐시 메모리 내에 보유되어 있고 [올 히트(all-hit)], 로컬 MPU가 개입되지 않고도 모든 데이터 전송을 행할 수 있는 경우의 처리로, 종래에는 다음에 열거하는 방법이 이용되었다.
(1) 로컬 MPU의 개입이 필요하지 않은 동안에는 모두 하드웨어로 처리를 행한다.
(2) 하드웨어에서는 일체의 데이터 전송을 행하지 않고, 항상 로컬 MPU를 개입시킨다.
그러나, 이와 같이 종래의 로컬 MPU의 개입을 가능한 한 줄여서 처리를 될 수 있으면 HIC로 행하는 방법을 채용하는 HDD에는 이하와 같은 이유로 퍼포먼스의 향상에 한계가 있었다.
즉, 상기 (1)의 방법은 하드웨어로 처리를 행하기 때문에, 해당 명령 자체를 매우 고속으로 처리할 수 있는 이점이 있지만, 다음과 같은 경우에 퍼포먼스가 저하된다.
이제, 매우 짧은 명령 인터벌에서 상술한 올 히트가 연속하는 경우를 고려한다. 이러한 경우는 시퀀셜 판독에 해당하고, 일반적으로 빈번하게 일어난다. 이 경우, 요구되는 데이터가 캐시 메모리 내에 존재하고 있는 동안은 고속으로 데이터 전송을 행할 수 있지만, 로컬 MPU가 일체 개입할 수 없기 때문에 미디어로부터 캐시 메모리로의 부가적인 판독이 행해지지 않고, 부가적인 판독이 없기 때문에 그 동안에 캐시 메모리 내의 데이터가 비게 되어, 요구된 데이터를 미디어로부터 판독해야 하는 상황이 된다. 이것에는 미디어의 주회(周回) 대기 등, 데이터 전송에 필요한 명령 오버헤드의 시간에 비해 현격하게 차이가 나는 긴 시간이 필요하며, 데이터 전송의 속도가 큰 폭으로 저하해 버린다.
한편, 상기 (2)의 방법을 이용하면, 매회 로컬 MPU가 개입할 수 있으므로 상술한 문제는 회피할 수 있지만, 하드웨어에 의한 전송 기능을 전부 활용할 수 없다.
본 발명은 명령 오버헤드를 최소한으로 억제하면서, 필요에 따라 미디어로부터의 부가적인 판독을 행할 수 있고, 전체의 퍼포먼스를 향상시킬 수 있는 디스크 드라이브 장치 및 그 제어 방법을 제공하는 것을 목적으로 한다.
본 발명의 디스크 드라이브 장치는 디스크 형상의 기억 매체, 디스크 형상의 기억 매체에 대해 데이터의 판독/기록 동작을 제어하는 디스크 제어 수단, 디스크 형상의 기억 매체로부터 부가적으로 판독한 데이터를 보유하는 캐시 메모리, 하드웨어에 의해 호스트와 캐시 메모리 사이의 데이터 전송을 행하는 호스트 인터페이스 제어 수단 및 디스크 형상의 기억 매체와 캐시 메모리 사이의 데이터 전송 제어를 포함하는 장치 전체의 동작을 제어하는 마이크로프로세서를 구비하고, 판독 명령이 발행되고, 요구된 데이터가 캐시 메모리에 보유된 데이터에 히트(hit)하여 모든 데이터 전송을 마이크로프로세서의 개입없이 행할 경우에 있어서도, 호스트 인터페이스 제어 수단은 판독 명령 완료 전에 적어도 한번은 마이크로프로세서에 의한 제어를 개입시켜 상기 캐시 메모리로의 부가적인 판독을 행하는 것을 특징으로 한다.
또한, 본 발명의 디스크 드라이브 장치의 제어 방법은 판독 명령이 발행되면, 요구된 데이터가 캐시 메모리에 보유된 데이터에 히트하여 모든 데이터 전송을 마이크로프로세서의 개입없이 행할 경우에, 호스트 인터페이스 제어 수단이 최후의 소정 개수의 블럭을 제외한 블럭의 데이터 전송을 행하도록 하고, 마이크로프로세서에 대해 그 데이터 전송 개시를 통지하도록 하며, 데이터 전송 개시의 통지에 따라 마이크로프로세서로부터 디스크 제어 수단으로 캐시 메모리로의 부가적인 데이터 판독의 지시를 부여하고, 디스크 제어 수단에 의해 부가적인 판독 제어가 종료된 후에, 호스트 인터페이스 제어 수단이 최후의 소정 개수의 블럭의 전송을 행하도록 하는 것을 특징으로 한다.
도 1은 본 발명을 적용한 실시 형태에 따른 디스크 드라이브 장치의 구성을 나타낸 블럭도.
도 2는 상기 디스크 드라이브 장치의 동작을 설명하기 위한 타이밍 플로우차트.
도 3은 상기 디스크 드라이브 장치의 동작을 설명하기 위한 타이밍 플로우차트.
* 도면의 주요 부분에 대한 부호의 설명
10 : 디스크 드라이브 장치
11 : 자기 헤드
12 : 채널 모듈
13 : 하드 디스크 컨트롤러(HDC)
14 : 캐시 메모리
15 : 호스트 인터페이스 컨트롤러(HIC)
16 : 로컬 MPU
(발명의 실시 형태)
본 발명에 따른 디스크 드라이브 장치는 IDE(Integrated Device Electronics) 인터페이스를 구비한 소형 HDD에 적용될 수 있다.
도 1은 본 발명의 실시 형태에 따른 디스크 드라이브 장치의 구성을 나타낸 블럭도이다. 도면중, 굵은 실선의 화살표는 데이터의 흐름을 나타내고, 가는 실선의 화살표는 제어 신호의 흐름을 나타낸다.
도 1에서, 자기 디스크 장치(HDD: 10)는 자기 디스크에 데이터의 판독/기록을 행하기 위한 자기 헤드(11)와, 검출 신호의 증폭 회로, 파형 정형 회로, 아날로그·디지털 변환기(ADC) 및 디지털·아날로그 변환기(DAC) 등을 모듈화한 채널 모듈(12)과, 자기 디스크에 대해 데이터의 판독/기록 등의 동작을 제어하는 하드 디스크 컨트롤러[Hard Disk Controller(HDC), 13]와, 공급된 기록 데이터를 보유하는 캐시 메모리(14)와, 호스트 인터페이스 주변의 처리를 하드웨어로 행하는 호스트 인터페이스 컨트롤러[Host Interface Controller(HIC), 15]와, HDC(13) 및 HIC(15)에 대한 제어를 포함하는 HDD 전체의 동작을 제어하는 로컬 MPU(16)를 구비하여 구성된다.
또한, HDC(13), 캐시 메모리(14) 및 HIC(15)는 데이터 버스(17)에 의해 서로 접속되고, HDC(13) 및 HIC(15)는 제어용 버스(18)에 의해 로컬 MPU(16)에 접속되며, HIC(15)는 IDE 버스(19)에 의해 HDD 외부의 호스트에 접속된다.
캐시 메모리(14)는 자기 디스크 상의 기록 단위 (섹터) 의 수백개분 이상의 데이터를 보유할 수 있을 정도의 기억 용량, 예를 들면 128K바이트 (256블럭) 를 갖는다. 여기서는 1블럭=1섹터=512바이트인 것을 사용한다. 단, IDE에서는 호스트가 캐시 메모리 상에서의 복수 블럭을 1블럭으로서, 즉 1, 2, 4, 8, 16 또는 32 섹터 등을 1블럭으로서 지정할 수 있다.
HIC(15)는 데이터 전송에 필요한 정보를 전부 격납할 수 있는 내부 메모리를 갖고, 로컬 MPU(16)의 개입없이 하드웨어에 의해 호스트와 캐시 메모리(14)간의 데이터 전송을 행하는 것이다.
HIC(15)의 내부 메모리에는 캐시 메모리(14) 상에서의 어드레스와 자기 디스크와의 대응 관계 및 연속해서 기억되고 있는 블럭수가 캐시 테이블의 형태로 보유되어 있다.
HIC(15)는 호스트로부터 명령이 발행된 때에는, 발행된 명령의 어드레스와 상기 캐시 테이블을 비교하여, 히트율이 가장 높은 것(이것은 단순히 가장 많이 히트하고 있는 것이 아니라, 블럭의 선두가 히트하고 있는 등의 조건을 만족한 것)의 히트 상황을 로컬 MPU(16)에 통지한다. HIC(15)는 호스트로부터 판독 명령이 발행된 시점에서 요구된 데이터가 캐시 메모리(14)에 있는지를 판단할 수 있고, 어떤 블럭을 전송해야 하는지도 로컬 MPU(16)의 개입없이 판단할 수 있다.
특히, HIC(15)는 판독 명령이 발행된 시점에서 요구된 데이터가 전부 캐시 메모리(14)에 있다고 판단을 했을 때에, 나머지 1블럭을 남기기 위해서는 몇개의 블럭을 전송해야 하는지를 계산하고, 그 계산 결과에 기초하여 블럭을 전송하는 기능을 갖는다. 또한, HIC(15)는 상기 판독 명령이 발행된 시점에 그 명령의 내용, 전부 캐시 메모리에 입력되어 있는 사실 및 데이터 전송의 준비 완료 시에 통지를 요구하는 리퀘스트(request)를 로컬 MPU(16)에 대하여 송출한다.
로컬 MPU(16)는 제어 프로그램을 실행하는 마이크로 프로세서이고, 제어 프로그램, 데이터를 격납하는 메모리 등을 구비하며, 제어 프로그램에 따라 처리를 실행하여 HDD 전체의 동작을 제어하고, HIC(15) 및 호스트로부터 공급되는 명령, 제어 데이터에 기초하여 HDC(13) 및 HIC(15)의 동작을 제어한다. 즉, 로컬 MPU(16)는 HIC(15)가 호스트로부터의 명령 정보 및 그 명령에 대한 히트 정보를 통지하면, 이들 정보에 기초하여 HIC(15)를 제어한다.
또한, 로컬 MPU(16)는 필요에 따라 미디어로부터의 부가 판독 계산 등의 처리를 행하고, HDC(13)에 대하여 부가 판독 지시를 행한다. HDC(13)는 이 지시에 따라서 미디어로부터의 부가 판독을 행하고, 부가적인 판독 데이터를 캐시 메모리(14)에 기록한다. 이와 같이, 새롭게 미디어로부터 데이터를 캐시 메모리(14)에 기록할 때에는 상술한 캐시 테이블을 갱신할 필요가 있다. 로컬 MPU(16)는 캐시의 부가적인 판독의 유무 등을 과거의 호스트의 액세스 패턴이나 캐시 메모리(14) 내에 남은 데이터량 등을 고려한 알고리즘을 이용하여 계산한다.
이와 같이, HDD(10)는 IDE 인터페이스를 가지며, 데이터 버스(17)와 미디어 사이에 캐시 메모리(14)를 구비하고, HIC(15)-캐시 메모리 사이에는 로컬 MPU(16)의 개입없이 HIC(15)가 데이터 전송을 행할 수 있지만, 미디어-캐시 메모리(14) 사이의 데이터 전송은 로컬 MPU(16)의 개입을 필요로 한다.
이하, 상술한 바와 같이 구성된 HDD(10)의 동작을 설명한다.
우선, 본 발명의 기본적인 개념에 대하여 설명한다.
IDE 인터페이스의 특징으로서, 기록 명령에 대해서는 모든 데이터 전송 종료 후, 명령을 종료시키는 타이밍을 HDD가 제어할 수 있다. 즉, 캐시 메모리로의 데이터 전송 그 자체는 HIC로 행해지고, 디스크로 기록함으로써 캐시 메모리에 예를 들면 1블럭 이상 공간이 생긴 후 로컬 MPU의 형편이 좋은 때에 그 명령을 종료시킬 수 있다.
이에 반해, 판독 명령에 대해서는 데이터 전송 종료 그 자체가 그 명령의 종료를 의미한다. 환언하면, 모든 데이터 전송이 HIC에 의해 행해진다. 그 결과, 캐시의 부가적인 판독 등, 로컬 MPU가 처리를 행하는 여지가 없게 되는 경우가 존재할 수 있다. 이는, 연속된 판독 명령이 연속해서 캐시에 히트한 경우 등에 해당하며, 시퀀셜 판독 등에서 일반적으로 빈번하게 일어날 수 있다.
그래서, 본 발명은 판독 명령에 있어서, 로컬 MPU의 개입없이 최대한으로 데이터 전송을 행하면서도, 명령 완료 전에 필히 한번은 로컬 MPU에 개입의 여지를 부여함으로써, 명령 오버헤드를 최소한으로 억제하면서, 상술한 문제점을 개선하는 것이다. 구체적으로는, 판독 명령이 발행되고, 요구된 데이터가 캐시에 히트하여, 모든 데이터 전송을 로컬 MPU의 개입없이 행할 경우에 있어서도, HIC는 최후의 1블럭을 남겨 전송을 중단시키고, 로컬 MPU의 중개를 대기한다. 로컬 MPU는 명령 종료의 준비가 된 시점에서 최후의 1블럭의 전송을 허가한다.
즉, 데이터 전송이 모두 종료되지 않으면 커맨드는 종료되지 않는다라는 점에 착안하여, 최후의 1블럭만큼을 남겨 (1블럭이라도 남아 있으면 그 커맨드는 종료되지 않음) HIC에 의해 데이터를 전송해 버리는 것이다.
명령이 접수된 시점에서 전송을 개시하지만, 개시와 동시에 로컬 MPU에 통지한다. 로컬 MPU에서는 부가 판독 계산 등 (부가 판독에 관한 계산 및 캐시 테이블의 갱신에 관한 계산) 에 일정한 시간을 필요로 하지만, 그 동안 HIC에서는 데이터 전송을 행하고 있다. 여기서, 로컬 MPU에서 부가 판독 계산 등에 필요한 시간이 데이터 전송에 필요한 시간보다도 길면, HIC에서는 최후 1블럭을 남겨 전송을 중단시킨다. 한편, 상기 부가 판독 계산 등에 필요한 시간이 데이터 전송에 필요한 시간보다도 짧으면 전송을 중단하지 않는다.
다음에, 상기 기본적인 개념에 기초하여 HDD(10)의 동작을 상세히 설명한다.
도 1의 굵은 실선의 화살표로 기본적인 데이터의 흐름을 나타낸 바와 같이, 미디어로부터 판독된 데이터는 캐시 메모리(14)에 의해 로컬 MPU(16)의 개입이 없는 한, 캐시 메모리(14)로부터 HIC(15)를 통하여 IDE 버스(19)를 경유해서 호스트로 전송된다.
이제, 판독 명령에서 캐시 메모리(14)에 올 히트 (즉, 요구된 데이터가 모두 캐시 메모리(14)내에 존재하는 캐시 히트의 경우) 한 경우에는, HIC(15)는 로컬 MPU(16)의 개입없이 즉시 데이터 전송을 개시한다. 이와 동시에, HIC(15)는 그 명령이 발행된 것 및 올 히트인 사실을 로컬 MPU(16)에 통지하고, 최후 블럭만을 남길 때까지 전송을 계속한다.
한편, 통지를 받은 로컬 MPU(16)는 필요에 따라 미디어로부터의 부가 판독 개시의 처리 (예를 들면, 현재 미리 HDC(13)에 대해 데이터를 판독하는 명령을 송출하고 있을 때에, 또한 발행된 명령에 의해 상기 HDC(13)에 대한 판독을 어느 정도 연장하는지를 재계산하고, 그 결과를 캐시 테이블에 반영시키고, HDC(13)에 지시를 송출하는 등의 처리) 를 행하고, 그 로컬 MPU(16)에 의한 미디어로부터의 부가 판독 개시의 처리가 종료되면, 부가 판독의 제어 종료를 HIC(15)에 통지한다. 이 통지는 명령 종료의 준비가 된 것을 의미하고, HIC(15)에 대하여 최종 블럭의 전송을 허가하는 것이 된다.
여기서, 부가 판독의 제어는 부가적인 판독의 제어가 발행되어 있으면 되고, 현실적으로는 부가 판독되어 있지 않아도 된다.
로컬 MPU(16)로부터 HIC(15)에 대하여 최종 블럭의 전송이 허가된 시점에서의 HIC(15)의 데이터 전송 상황에 따라 이하의 2가지 경우가 있다.
경우 1
상기 시점에서 이미 HIC(15)가 최종 블럭을 남기고 데이터 전송을 종료해버렸고, HIC(15)가 최종 블럭을 남기고 전송을 중단하고 있다. 이 경우, HIC(15)는 전송을 재개하여 최종 블럭을 전송하고, 명령을 종료시킨다.
경우 2
HIC(15)에 대하여 최종 블럭의 전송을 허가한 시점에서, HIC(15)에 데이터가 1블럭 이상 남겨져 있고, HIC(15)가 계속해서 데이터를 전송하고 있다. 이 경우, HIC(15)는 최종 블럭을 남기지 않고, 최후까지 전송을 연속해서 실행하고, 명령을 완료시킨다.
상기 동작을 도 2 및 도 3에 나타낸 플로우차트를 참조하여 상세히 설명한다.
도 2 및 도 3은 HDD의 동작을 나타낸 타이밍 플로우이고, 도 2는 최종 블럭을 남겨 전송을 중단한 후에 로컬 MPU(16)로부터 최종 블럭의 전송 허가를 수신한 경우(상기 경우 1에 대응), 도 3은 최종 블럭을 남겨 전송을 중단하기 전에 로컬 MPU(16)로부터 최종 블럭의 전송 허가를 수신한 경우 (상기 경우 2에 대응) 를 나타낸다.
도 2에서, 우선 호스트로부터 판독 명령이 발행되면(단계 ST1), 단계(ST2)에서 HIC(15)가 캐시 히트 체크를 행하고, 판독 명령에서 캐시 메모리(14)에 올 히트한 것, 즉 요구된 데이터가 모두 캐시 메모리(14)내에 존재하는 것을 판별한다.
올 히트일 때에는 단계(ST3)로 진행하고, 단계(ST3)에서 HIC(15)가 데이터 전송을 개시한다.
HIC(15)에서는 도 1 및 도 2의 전송 데이터(d1)로 나타낸 바와 같이, 로컬 MPU(16)의 개입없이 즉시 데이터 전송을 개시한다. 데이터 전송을 계속하고, 단계(ST4)에서 최종 블럭을 남겨 전송을 종료시켜 최종 블럭 전송 허가 대기가 된다.
한편, HIC(15)는 상기 데이터 전송의 개시와 동시에, 단계(ST5)에서 HIC(15)는 그 명령이 발행된 것 및 올 히트인 사실을 로컬 MPU(16)에 통지한다. 이 통지는 도 1 및 도 2의 제어(c1)로 나타낸다.
통지를 받은 로컬 MPU(16)는 단계(ST6)에서 필요에 따라 미디어로부터의 부가 판독 계산 등의 처리를 행하고, 단계(ST7)에서 HDC(13)에 대하여 부가 판독 지시를 행한다. 이 제어는 도 1 및 도 2의 제어(c2)로 나타낸다. HDC(13)는 이 제어(c2)에 따라 미디어로부터 부가적인 판독을 행하고, 도 1 및 도 2의 부가 판독 데이터(d2)로 나타낸 바와 같이, 부가적인 판독 데이터를 캐시 메모리(14)에 보유시킨다.
단계(ST8)에서는 로컬 MPU(16)가 상기 부가 판독의 제어 종료를 판별하여, 부가 판독의 제어가 종료되면 명령 종료의 준비가 된 것으로 판단하여 HIC(15)에 대하여 최종 블럭의 전송을 허가하는 명령을 송출한다. 이 제어는 도 1 및 도 2의 제어(c3)로 나타낸다.
전송이 허가되면, 단계(ST9)에서 HIC(15)는 전송을 재개하여 도 1 및 도 2의 전송 데이터(d3)로 나타낸 바와 같이, 최종 블럭을 전송하고, 명령을 종료시킨다(단계 ST10).
한편, 최종 블럭을 남겨 전송을 중단하기 전에 로컬 MPU(16)로부터 최종 블럭의 전송 허가를 받은 경우는 도 3의 타이밍 플로우로 나타낸다.
도 3에서, 우선 호스트로부터 판독 명령이 발행되면(단계 ST1), 단계(ST2)에서 HIC(15)가 캐시 히트 체크를 행하고, 판독 명령에서 캐시 메모리(14)에 올 히트했는지를 판별한다.
올 히트일 때에는 단계(ST3)로 진행하고, 단계(ST3)에서 HIC(15)가 데이터 전송을 개시한다.
또한, 상기 단계(ST3)에서의 데이터 전송의 개시와 동시에, 단계(ST5)에서 HIC(15)는 그 명령이 발행된 것 및 올 히트인 사실을 로컬 MPU(16)에 통지한다. 이 제어는 도 1 및 도 2의 제어(c1)로 나타낸다.
통지를 받은 로컬 MPU(16)는 단계(ST6)에서 필요에 따라 미디어로부터의 부가 판독 계산 등의 처리를 행하고, 단계(ST7)에서 HDC(13)에 대하여 부가 판독 지시를 행한다. 이 제어는 도 1 및 도 2의 제어(c2)로 나타낸다. HDC(13)는 이 제어(c2)에 따라 미디어로부터의 부가적인 판독을 행하고, 도 1 및 도 2의 부가적인 판독 데이터(d2)로 나타낸 바와 같이, 부가적인 판독 데이터를 캐시 메모리(14)에 보유시킨다.
단계(ST8)에서는 로컬 MPU(16)가 상기 부가 판독의 제어 종료를 판별하여, 부가 판독의 제어가 종료되면 명령 종료의 준비가 된 것으로 판단하여 HIC(15)에 대하여 최종 블럭의 전송을 허가하는 명령을 송출한다. 이 제어는 도 1 및 도 2의 제어(c3)로 나타낸다. 이와 같이, 최종 블럭을 남겨 전송을 중단하기 전에 HIC(15)가 최종 블럭의 전송 허가를 받은 경우에는, 이미 부가 판독의 처리가 완료되어 있기 때문에, 단계(ST11)에서 최종 블럭을 남겨 전송을 중단하지 않고서 최후까지 전송을 실행하고, 명령을 종료시킨다(단계 ST10).
이와 같이, 판독 명령에서 캐시 메모리(14)에 올 히트했을 때는, HIC(15)에 의해 최후의 1블럭만을 남겨 데이터 전송을 개시함과 동시에 로컬 MPU(16)에 통지하고, 로컬 MPU(16)는 HIC(15)가 데이터를 전송하고 있는 도중에 부가 판독의 제어를 행하여, 최후 1블럭을 남길 때까지 부가 판독의 제어 종료의 통지가 수신되지 않으면 데이터 전송을 중지하고 (도 2의 타이밍 플로우에 해당함), 그 때까지 부가 판독의 제어 종료의 통지가 수신된 경우에는 전송을 중단하지 않고서 최후 1블럭도 전송한다 (도 3의 타이밍 플로우에 해당함).
따라서, 판독 명령에서 로컬 MPU(16)의 개입없이 최대한으로 데이터 전송을 행하면서도, 명령 완료 전에 필히 한번은 로컬 MPU(16)에 개입의 여지를 부여함으로써, 명령 오버헤드를 최소한으로 억제하고, 필요에 따라 미디어로부터 부가적인 판독을 행할 수 있다.
이상 설명한 바와 같이, 본 실시 형태에 따른 HDD(10)는 자기 헤드(11), 채널 모듈(12), HDC(13), 캐시 메모리(14), 호스트 인터페이스 주변의 처리를 하드웨어로 행하는 HIC(15) 및 HDC(13) 및 HIC(15)에 대한 제어를 포함하는 HDD 전체의 제어를 행하는 로컬 MPU(16)를 구비하여, 판독 명령이 발행되고, 요구된 데이터가 캐시 메모리에 보유된 데이터에 히트하여 모든 데이터 전송을 로컬 MPU(16)의 개입없이 행할 경우에 있어서도, HIC(15)는 최후 1블럭을 남길 때까지 데이터 전송을 행하여 로컬 MPU(16)의 중개를 대기하고, 로컬 MPU(16)는 명령 종료의 준비가 된 시점에서 최후의 1블럭의 전송을 허가함과 동시에, 또한 로컬 MPU(16)로부터 HIC(15)로 최후의 1블럭의 전송을 허가했을 때에, 전송 데이터가 복수 블럭 남아있을 경우에는 HIC(15)가 최후의 1블럭이 남아 있을 때 데이터 전송을 중단하지 않고서 모든 데이터 전송을 실행하고, 명령을 완료시키도록 했기 때문에, 명령 오버헤드를 최소한으로 억제하면서, 필요에 따라 미디어로부터의 부가적인 판독을 행할 수 있으며, 전체의 퍼포먼스를 향상시킬 수 있다.
본 발명을 실제의 HDD 상에 적용한 경우의 계산 결과에 대하여 설명한다.
8블럭/명령의 합계 4MB의 시퀀셜 판독 명령이 발행된 경우의 계산예이다. 이하의 하드적 구성 및 조건에서 계산을 행하였다.
캐시 메모리 사이즈 : 128KB(256 Block)
미디어로부터의 평균 판독 시간 : 5.5msec
올 히트 시의 마이크로코드의 오버헤드 : 100μsec
하드웨어 시의 데이터 전송까지의 오버헤드 : 0μsec
명령 인터벌 : 0μsec
데이터 전송 속도 : IDE의 PIO 모드 4(32μsec/1Block)
이상의 조건을 가정하면,
8Block당 전송 시간은 32μsec×8Block=256μsec이다.
캐시 메모리가 풀(full) 상태로 32회분의 데이터가 보유될 수 있는 것이라 하고, 캐시 메모리의 풀 상태로부터 시퀀셜 판독이 발행된 것이라고 하면,
우선, 종래예에서는
(1) 모두 하드웨어로 처리를 행할 경우, 438msec
(2) 모두 로컬 MPU를 개입시킬 경우, 365msec
가 되었다. 이에 반해,
(3) 본 실시 형태를 채용한 HDD의 경우, 262msec
가 되고, 종래의 방법에 비해 큰 폭의 속도 향상이 달성될 수 있었다. 즉, 상기 (1)에 대해서는 부가적인 판독 시의 미디어로부터의 평균 판독 시간(5.5msec×32)이, 또한 상기 (2)에 대해서는 올 히트마다의 로컬 MPU의 실행 시간(100μsec×32)이 각각 없어지기 때문에, 전체로서 30 ∼ 40%의 퍼포먼스를 향상시킬 수 있었다.
본 실시 형태에서는, 본 발명을 HDD에 적용한 예를 설명했지만, 이것에 한정되지 않고, 캐시 메모리를 구비한 디스크 드라이브 장치이면 어떠한 장치에서도 본 발명을 적용할 수 있다. 예를 들면, HDD 이외의 광 자기 디스크 등의 외부 기록 장치에 사용해도 되고, 상술한 실시 형태와 동일한 효과를 얻을 수 있다.
또한, 본 실시 형태에서는 HIC가 최후의 1블럭을 남길 때까지 데이터 전송을 행하도록 하고 있지만, 판독 명령 완료 전에 적어도 한번은 마이크로프로세서에 의한 제어를 개입시키는 것이면, 어떠한 개입 형태이더라도 상관없다. 또한, 최후의 1블럭을 남길 때까지 데이터 전송을 행하고 있지만, 1블럭에 한정되지 않고, 소정 개수의 블럭을 남길 때까지 데이터 전송을 행하는 것이라도 상관없다.
더욱이, 상기 디스크 드라이브 장치를 구성하는 HDC, 캐시 메모리, HIC 등의 종류, 수 등은 상술한 실시 형태에 한정되지 않는 것은 물론이다.
본 발명에 따른 디스크 드라이브 장치 및 그 제어 방법에서는, 판독 명령이 발행되고, 요구된 데이터가 캐시 메모리에 보유된 데이터에 히트하여, 모든 데이터 전송을 마이크로프로세서의 개입없이 행할 경우에 있어서도, 판독 명령 완료 전에 적어도 한번은 마이크로프로세서에 의한 제어를 개입시키도록 구성했기 때문에, 명령 오버헤드를 최소한으로 억제하면서, 필요에 따라 미디어로부터 부가적인 판독을 행할 수 있고, 전체의 퍼포먼스를 향상시킬 수 있다.

Claims (8)

  1. a) 디스크 형상의 기억 매체,
    b) 상기 디스크 형상의 기억 매체에 대해 데이터의 판독/기록 동작을 제어하는 디스크 제어 수단,
    c) 상기 디스크 형상의 기억 매체로부터 부가적으로 판독한 데이터를 보유하는 캐시 메모리,
    d) 하드웨어에 의해 호스트와 캐시 메모리 사이의 데이터 전송을 행하는 호스트 인터페이스 제어 수단 및
    e) 디스크 형상의 기억 매체와 캐시 메모리 사이의 데이터 전송 제어를 포함하는 장치 전체의 동작을 제어하는 마이크로프로세서
    를 구비하고, 상기 호스트 인터페이스 제어 수단은 판독 명령이 발행되고, 요구된 데이터가 캐시 메모리에 보유된 데이터에 올 히트(all hit)하는 경우에도, 판독 명령 완료 전에 적어도 한번은 상기 마이크로 프로세서에 의한 제어를 개입시켜 상기 캐시 메모리로 부가적인 판독을 행하는 디스크 드라이브 장치.
  2. 제1항에 있어서, 상기 호스트 인터페이스 제어 수단은 데이터 전송 종료가 판독 명령의 종료가 되는 인터페이스 시스템이고, 상기 판독 명령이 발행되고, 요구된 데이터가 캐시 메모리에 보유된 데이터에 히트하여, 모든 데이터 전송을 마이크로프로세서의 개입없이 행할 수 있는 경우에 있어서도, 최후의 소정 개수의 블럭 이외의 블럭의 데이터 전송을 개시하고, 상기 데이터 전송을 행하는 것을 상기 마이크로프로세서에 통지하며, 상기 마이크로프로세서는 상기 부가적인 판독 제어를 종료한 후 상기 호스트 인터페이스 제어 수단에 상기 최후의 소정 개수의 블럭 전송을 허가하는 디스크 드라이브 장치.
  3. 제2항에 있어서, 상기 마이크로프로세서가 상기 호스트 인터페이스 제어 수단에 상기 최후의 소정 개수의 블럭 전송을 허가했을 때 전송 데이터가 상기 소정 개수의 블럭 이상 남아 있을 경우에는, 상기 호스트 인터페이스 제어 수단이 상기 최후의 소정 개수의 블럭 전송 개시 전에 데이터 전송을 중단하지 않고서 모든 데이터 전송을 실행하고 명령을 종료시키는 디스크 드라이브 장치.
  4. 제1항, 제2항 또는 제3항에 있어서, 상기 호스트 인터페이스 제어 수단은 상기 캐시 메모리 상에서의 어드레스와 상기 디스크의 대응 관계 및 연속해서 기억되어 있는 블럭의 개수를 격납하는 수단을 갖는 디스크 드라이브 장치.
  5. 제1항, 제2항 또는 제3항에 있어서, 상기 호스트 인터페이스 제어 수단은 판독 명령이 발행된 시점에서 요구된 데이터가 전부 상기 캐시 메모리에 보유되어 있을 때에, 최후의 소정 개수의 블럭이 남을 때까지의 전송 블럭의 개수를 계산하는 수단을 갖는 디스크 드라이브 장치.
  6. 제1항, 제2항 또는 제3항에 있어서, 상기 호스트 인터페이스 제어 수단은 판독 명령이 발행된 시점에서 상기 마이크로프로세서에 대하여 그 명령의 내용, 호스트로부터 요구된 모든 데이터가 이미 상기 캐시 메모리 내에 보유되어 있는 것을 나타내는 정보 및 상기 마이크로프로세서에 의한 명령의 종료 준비의 통지를 요구하는 리퀘스트(request)를 출력하는 디스크 드라이브 장치.
  7. 제1항, 제2항 또는 제3항에 있어서, 상기 마이크로프로세서는 상기 캐시 메모리로 데이터를 부가적으로 판독한 것을 상기 디스크 제어 수단에 지시하고, 상기 디스크 제어 수단에 의해 부가적인 판독이 종료된 시점을 상기 명령 종료의 준비가 된 시점으로 판단하여 상기 호스트 인터페이스 제어 수단에 대하여 최후의 소정 개수의 블럭 전송을 허가하는 디스크 드라이브 장치.
  8. 디스크 형상의 기억 매체에 대해 데이터의 판독/기록 동작을 제어하는 디스크 제어 수단, 상기 디스크 형상의 기억 매체로부터 부가적으로 판독된 데이터를 보유하는 캐시 메모리, 하드웨어에 의해 호스트와 캐시 메모리 사이의 데이터 전송을 행하는 호스트 인터페이스 제어 수단 및 디스크 형상의 기억 매체와 캐시 메모리 사이의 데이터 전송 제어를 포함하는 장치 전체의 동작을 제어하는 마이크로프로세서를 구비한 디스크 드라이브 장치의 제어 방법에 있어서, 판독 명령이 발행되면, 요구된 데이터가 캐시 메모리에 보유된 데이터에 히트하여 모든 데이터 전송을 마이크로프로세서의 개입없이 행할 수 있는 경우에, 상기 호스트 인터페이스 제어 수단이 최후의 소정 개수의 블럭 이외의 블럭의 데이터 전송을 행하도록 하고, 상기 마이크로프로세서에 대해 그 데이터 전송의 개시를 통지하고, 상기 데이터 전송의 통지에 따라 상기 캐시 메모리로 데이터를 부가적으로 판독하는 지시를 상기 마이크로프로세서로부터 상기 디스크 제어 수단으로 부여하며, 상기 디스크 제어 수단에 의해 부가적인 판독 제어가 종료된 후에, 상기 호스트 인터페이스 제어 수단이 최후의 소정 개수의 블럭의 전송을 행하도록 하는 디스크 드라이브 장치의 제어 방법.
KR1019980003818A 1997-03-27 1998-02-10 디스크 드라이브 장치 및 그 제어 방법 KR100272684B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9074949A JPH10275110A (ja) 1997-03-27 1997-03-27 ディスクドライブ装置及びその制御方法
JP97-074949 1997-03-27

Publications (2)

Publication Number Publication Date
KR19980079695A KR19980079695A (ko) 1998-11-25
KR100272684B1 true KR100272684B1 (ko) 2000-12-01

Family

ID=13562098

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980003818A KR100272684B1 (ko) 1997-03-27 1998-02-10 디스크 드라이브 장치 및 그 제어 방법

Country Status (6)

Country Link
US (1) US6041392A (ko)
JP (1) JPH10275110A (ko)
KR (1) KR100272684B1 (ko)
MY (1) MY118820A (ko)
SG (1) SG107548A1 (ko)
TW (1) TW380248B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1774010A2 (en) 2004-06-16 2007-04-18 The Texas A&M University System Methods and systems for biomass conversion to carboxylic acids and alcohols
WO2016071954A1 (ja) * 2014-11-04 2016-05-12 株式会社日立製作所 半導体メモリデバイス、及び、半導体メモリデバイスを有するストレージ装置
TWI687921B (zh) * 2019-02-01 2020-03-11 宏碁股份有限公司 主機、疊瓦式磁記錄硬碟及其運作方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539914A (en) * 1993-06-14 1996-07-23 International Business Machines Corporation Method and system for preprocessing data block headers during access of data in a data storage system
JPH07334310A (ja) * 1994-06-06 1995-12-22 Toshiba Corp ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法
US5696931A (en) * 1994-09-09 1997-12-09 Seagate Technology, Inc. Disc drive controller with apparatus and method for automatic transfer of cache data
JP3257916B2 (ja) * 1995-02-28 2002-02-18 富士通株式会社 外部記憶装置

Also Published As

Publication number Publication date
JPH10275110A (ja) 1998-10-13
MY118820A (en) 2005-01-31
TW380248B (en) 2000-01-21
SG107548A1 (en) 2004-12-29
KR19980079695A (ko) 1998-11-25
US6041392A (en) 2000-03-21

Similar Documents

Publication Publication Date Title
US6826650B1 (en) Disk controller configured to perform out of order execution of write operations
US6622206B1 (en) Method for controlling write cache transfer and disk unit
US4905184A (en) Address control system for segmented buffer memory
JP2000148604A (ja) 記憶装置の制御方法
JPH1063578A (ja) 情報記録再生装置
US6523086B1 (en) Method for improving performance of read cache of magnetic disk drive
US6219750B1 (en) Disk drive having control mechanism to reduce or eliminate redundant write operations and the method thereof
US6567886B1 (en) Disk drive apparatus and control method thereof
US6978355B2 (en) Cache memory transfer during a requested data retrieval operation
JPH087662B2 (ja) データ転送制御方法
KR100272684B1 (ko) 디스크 드라이브 장치 및 그 제어 방법
US6332196B1 (en) Disk storage apparatus and power supply control method for the same
JP2523715B2 (ja) 磁気ディスク装置
JPH076088A (ja) 情報記憶装置
EP1517246B1 (en) A method for transferring data and a data transfer interface
US6957300B2 (en) Reducing delay of command completion due to overlap condition
JP2001014111A (ja) 回転形記憶装置の制御方法
JP3847888B2 (ja) ディスク装置及び同装置における欠陥による再配置データの高速ホスト転送方法
JPH04311216A (ja) 外部記憶制御装置
JP2004139482A (ja) 磁気ディスク制御装置のコマンド処理時間監視設定方法
JP3080758B2 (ja) 磁気ディスク装置
JPH0519181B2 (ko)
JPH11345093A (ja) 記憶装置サブシステム
JPS60222943A (ja) デイスクキヤツシユ制御方式
JPH04352225A (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee