KR20010050853A - 기록 커맨드를 수행하기 위한 방법 및 직접 액세스 저장장치 - Google Patents

기록 커맨드를 수행하기 위한 방법 및 직접 액세스 저장장치 Download PDF

Info

Publication number
KR20010050853A
KR20010050853A KR1020000058402A KR20000058402A KR20010050853A KR 20010050853 A KR20010050853 A KR 20010050853A KR 1020000058402 A KR1020000058402 A KR 1020000058402A KR 20000058402 A KR20000058402 A KR 20000058402A KR 20010050853 A KR20010050853 A KR 20010050853A
Authority
KR
South Korea
Prior art keywords
data
command
interface
storage device
setting
Prior art date
Application number
KR1020000058402A
Other languages
English (en)
Other versions
KR100389104B1 (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 KR20010050853A publication Critical patent/KR20010050853A/ko
Application granted granted Critical
Publication of KR100389104B1 publication Critical patent/KR100389104B1/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

데이터 저장 장치의 성능을 향상시킨 데이터 저장 장치 및 방법은 커맨드 큐를 조사하고 우선 커맨드(prior command)를 완료하기 전에 상기 장치 내에 있는 메모리로의 데이터 전송을 수행한다. 상기 저장장치에 있는 제어기의 유휴루프(idle loop)에서 실행되는 처리는 기록 요구에 대한 큐(queue)를 검사한다. 그리고 듀얼 포트 캐시 내에 전송 데이터를 유지할 캐시 공간이 사용가능하면, 상기 장치가 여전히 상기 큐에 있는 우선 커맨드의 완료를 대기하는 동안에 상기 전송의 상기 데이터 전송부분(data transfer portion)을 완료하고, 상기 캐시에서 상기 물리적 매체로의 상기 우선 커맨드에 대한 데이터 전송을 완료한다.

Description

기록 커맨드를 수행하기 위한 방법 및 직접 액세스 저장 장치{DIRECT ACCESS STORAGE DEVICE AND METHOD FOR PERFORMING WRITE COMMANDS}
본 발명은 일반적으로, 향상된 저장장치에 관한 것으로, 특히 저장장치에 데이터를 기록하기 위한 향상된 방법 및 시스템에 관한 것이다. 보다 상세하게는, 본 발명은 저장장치에 대해 대기된(queued) 기록 커맨드의 데이터 전송부분을 완료하기 위한 향상된 방법 및 시스템이다.
마이크로 프로세서의 성능 및 반도체 메모리 기법이 발전함에 따라, 이에 필적할 만한 향상된 성능을 지닌, 개선된 데이터 저장장치가 요구된다. 종래의 데이터 저장 장치는 호스트 컴퓨터 시스템의 인터페이스를 포함하며, 이를 통해 커맨드를 수신하고 데이터는 호스트 컴퓨터와 저장장치 사이에서 전송된다. 또한, 자기 또는 광 원판(디스크)과 같은, 데이터가 저장되는 물리적 저장 매체를 포함한다. 데이터 저장 장치의 성능을 향상시키는데 있어서, 시스템 프로세서와 메모리 장치의 향상된 상호작용이 요구된다. 이 장치에 프로그램 및 데이터를 저장하고 컴퓨터가 임의의 작동을 수행하기 전에 로딩되야 하므로, 데이터 저장장치의 성능은 현재의 컴퓨터 시스템에서 핵심이 된다. 게다가, 데이터 저장 장치는 캐시 메모리, 메인 랜덤 액세스 메모리(RAM) 및 최종 데이터 저장 장치(드라이브)로 구성되는 메모리 계층에서 최하위의 저장으로 자주 사용된다. "페이지 교환(page swaps)"은, 최근 저장장치로 사용되지 않았던 RAM의 페이지를 기록함으로써 RAM의 보다 효율적으로 사용하게 하고, 다시 요구될 때까지 시스템에 의해 사용할 물리적 메모리 페이지를 사용하지 않는 저장장치로 형성된다. 상기 페이지가 다시 요구될 때는, 상기 시스템은 저장장치로부터 그 페이지를 검색하여 그것을 물리적 RAM에 다시 배치한다. 이는 전체 시스템 성능을 향상하는 반면에, 교환 영역으로 사용되는 데이터 저장 장치 상에 과중한 로드(load)를 배치하게 된다.
오늘날, 개인용 컴퓨터 제조물과 네트워크 배열에 현재 사용되는 데이터 저장장치는 드라이브 전자 장치 내에 캐시 메모리 및 통합 제어기를 구비한 지능 장치이다. 오늘날 사용되는 인터페이스는 소형 컴퓨터 시스템 인터페이스(Small Computer System Interface; SCSI), 통합 드라이브 전자장치(Integrated Drive Electronics; IDE), 향상된 소형 장치 인터페이스(Enhanced Small Device Interface; ESDI) 및 파이어 와이어(Firewire; IEEE 1394)를 포함한다. 이들 인터페이스 형태 각각은 커맨드 프로토콜을 포함한다. 여기서 판독, 기록 및 위치지정하는 커맨드를 드라이브로 발송하여, 물리적 저장매체로부터 데이터를 얻거나 그 물리적 저장매체에 데이터를 저장한다.
드라이브 제어기 및 컴퓨터 시스템 사이에서 데이터를 전송하는 상이한 방법들이 있다. 직접 메모리 액세스(DMA)는, 통상적으로 DMA 전송을 수행하기 위한 전용인 제어기를 버스 상에 제공하고, 그 DMA 제어기에 전송을 프로그램하며, 그 제어기가 장치와 메모리 사이에서 데이터를 이동시키는 방법이다. 이 기법은 버스를 위해 메인 프로세서와 충돌하는(contending) DMA 제어기의 비용과 더불어 상기 시스템에 제어기를 구비하는 비용을 치루면서, 상기 프로세서로부터 데이터를 이동시키는 작업을 분담하는 잇점이 있다.
널리 사용되는, 다른 전송기법은 프로그램된 입/출력(programmed input /output; PIO)이다. 간단히 설명하면, PIO란 컴퓨터 내에 있는 메인 프로세서가 메모리 그리고(또는) 포트 조작 명령어를 경유하여 데이터 전송을 수행하는 것을 말한다. 이 기법은 버스 충돌이 없다는 잇점은 있으나, 프로세서가 데이터 전송으로 점유되므로 그 전송이 완료되는 동안에는 다른 작업을 수행할 수 없다는 단점도 있다.
이와 같이, 데이터 저장 장치는 컴퓨터 시스템 성능에서 병목현상(bottle-neck)이 될 수 있다. 예를 들어, 컴퓨터는 SCSI 인터페이스를 경유하여 디스크 드라이브로 일련의 커맨드를 발송할 수 있으나, 상기 디스크 드라이브는 일시에 물리적 디스크로의 일 데이터 전송만을 처리할 수 있을 뿐이다. 기록 커맨드가 완료되는 동안에, 일반적으로 상기 드라이브 내에 있는 상기 데이터 제어기는 호스트 컴퓨터로부터 상기 디스크 드라이브 기록 전자장치로의 이들 전송을 수행하는데 분주하다. 대개, 상기 호스트로부터 기록 커맨드를 수신할 때에, 자리찾기 작동(seek operation)을 수행하여 그 헤드를 다음 데이터 블록을 기록하기에 적합한 위치에 이동시킨다. 그러나, 상기 호스트가 드라이브로의 데이터 전송을 시작하기 전에 때때로 상기 자리찾기 작동을 완료하여 그 기록의 부재(miss)가 발생된다. 이어 시스템 성능이 감소되더라도 상기 기록은 재시도되어야 한다. 이는 대규모 데이터를 연속적인 클러스터(cluster)로 기록할 때에 자주 발생된다.
현재 저장 장치의 단점은 기록 커맨드가 처리되는 동안에, 다른 작동이 중지되는 것이다. 그러므로, 기록부재가 발생되면, 모든 작동이 지연된다. 일반적으로, 기록 커맨드 이후에 발송된 모든 커맨드는 지연되어, 상기 물리적 저장매체로의 상기 기록 전송의 완료를 보류한다.
따라서, 부재된 기록을 감소 또는 일소함으로써 저장장치의 성능을 향상시킬 수 있는 방법이 고안되는 것이 바람직하다. 게다가, 상기 기록 자리찾기가 완료될 때에 호스트 데이터가 준비되지 않을 가능성을 감소시킴으로써 향상된 성능을 지닌 저장장치를 고안하는 것이 바람직하다. 나아가, 상기 물리적 저장 매체가 여전히 보류되는 동안에 커맨드의 처리도 허용하는 데이터 저장 장치 및 방법을 고안하는 것이 바람직하다.
따라서, 본 발명의 목적은 컴퓨터 시스템을 위한 향상된 데이터 저장 장치를 제공하는 것이다.
본 발명의 다른 목적은 직접 액세스 저장 장치(DASD)의 효율을 향상시키는 방법을 제공하는 것이다.
상기 목적은 저장매체로의 전송을 시작하기 전에 기록 커맨드의 데이터 전송부분을 완료하는 직접 액세스 저장장치 및 직접 액세스 저장장치의 성능을 개선하는 방법으로 이루어진다. 상기 장치의 제어기의 유휴루프(idle loop)에서의 처리는 상기 커맨드 큐(command queue)를 조사하고 상기 물리적 디스크로의 데이터 전송이 여전히 보류되거나 우선 커맨드로부터 일어나는 동안에 인터페이스에서 듀얼포트 캐시로 기록 커맨드의 데이터 전송부분을 수행하기 위해 DMA 제어기를 설정한다. 상기 우선 커맨드(prior command)를 완료하는 경우에는, 인터럽트(interrupt)를 생성하고 그 인터럽트에 응답하여 상기 인터럽트를 제공한다. 그리고 임의의 데이터가 상기 캐시로부터 상기 저장매체로의 전송을 위해 준비되면, 제2 DMA 제어기는 상기 전송을 완료하도록 설정된다.
상기뿐만 아니라 본 발명의 추가적인 목적, 특징 및 잇점은 아래 상세히 기재된 상세한 설명에서 자명해질 것이다.
도1은 본 발명에 따라 실시될 수 있는 데이터 저장장치의 블록도이다.
도2는 본 발명의 방법에 따른 일 실시형태를 예시하는 상태도이다.
도3은 본 발명의 방법에 따른 일 실시형태를 도시한 흐름도이다.
도4는 본 발명의 일 방법의 일부에 따른 실시형태를 도시한 흐름도이다.
* 도면의 주요부분에 대한 부호의 설명 *
10: 호스트 SCSI 인터페이스 제어기 12: SCSI 인터페이스 제어기
14: 듀얼-포트(dual-port) 캐시 16: 디스크 판독/기록 전자장치
18: 디스크 제어기 22: 인터페이스 DMA 제어기
24: 매체 DMA 제어기 26: 물리적 매체
28; 제어기 ROM
본 발명의 특성으로 여기지는 신규성은 첨부된 청구범위에서 설명된다. 전체에 걸쳐 동일부를 동일 참조번호로 표시한 첨부된 도면과 함께, 예시된 실시형태에 대한 상세한 설명을 참조함으로써, 바람직한 실시형태와 본 발명 자체, 나아가 그 목적과 잇점에 대해 잘 이해될 수 있다.
이하, 도면을 참조하여, 특히 도 1을 참조하면, 데이터 저장 장치(20)이 도시되어 있다. 호스트 SCSI 인터페이스 제어기(10)는 상기 데이터 저장장치를 호스트 컴퓨터와 연결하고, SCSI 인터페이스 제어기(12)는 그 SCSI 인터페이스의 상기 데이터 저장장치 측면을 제공한다. 본 발명의 데이터 저장장치는 SCSI인터페이스를 갖는 데이터 저장장치에 한정되지 않는다. SCSI 인터페이스의 사용은 예시적인 것이며, 본 발명은 IDE, ESDI, IEEE 1394 등의 다른 데이터 저장장치 인터페이스와 함께 실행할 수도 있다.
듀얼-포트 캐시(dual-port cache; 14)는 물리적 매체(26)의 최근 판독에서 캐시되었던 판독 데이터와 같은 데이터를 일시적으로 저장한다. 게다가, 본 발명에서는 기록하기 위한 데이터를 디스크에 기록할 때까지 이 캐시를 사용하여 그 데이터 저장한다. 본 발명은 선행 커맨드에 대한 데이터가 듀얼-포트 캐시(14)에서 디스크 판독/기록 전자장치(16)로 전송되는 동안에 인터페이스 제어기(12)에서 듀얼-포트 캐시(14)로의 데이터를 전송할 수 있는 잇점이 있다. 이로써 60%까지의 특정 기록 작동에 대한 성능의 증가를 제공한다.
백그라운드 처리(background process)로, 큐 관리기(queue governor)는 상기 디스크에 있는 커맨드 큐를 관리한다. 이는 커맨드를 초기에 완료하여 성능을 향상시키고, 이로써 임의 기록 환경에서 상기 디스크의 큐 깊이(queue depth)를 증가시킨다. 제1 커맨드에 대한 데이터를 디스크 판독/기록 전자장치(16)에 기록하는 것을 종료하기 전에 상기 디스크가 여러 커맨드에 대한 데이터와 상태 위상을 완료할 수 있을 뿐만 아니라, 상기 드라이브는 커맨드 큐 내의 어떤 커맨드를 다음에 수행할 것인가를 결정할 때에 보다 많은 커맨드를 선택대상으로 갖는다. 상기 커맨드 시퀀스는 자리찾기(seek) 및 지연시간을 개선하기 위해 변경할 수 있다.
저장 장치(20)에서의 데이터 전송은 DMA 제어기(22 및 24)에 의해 실행된다. 인터페이스 DMA 제어기는 인터페이스 제어기(12)에서 듀얼-포트 캐시(14)로 데이터를 전송하고, 매체 DMA 제어기(24)는 듀얼-포트 캐시(14)에서 물리적 매체(26)로 데이터를 전송한다. DMA 전송은 디스크 제어기(18)에 의해 프로그램되고, 일단 적합한 전송 어드레스 및 블록 크기를 프로그램함으로써 디스크 제어기(18)가 상기 전송을 설정하면, 비동기적으로 일어난다.
디스크 판독/기록 전자장치(16)는 자기 원판과 같은 물리적 저장 매체에 기록하며 그로부터 판독하는 데이터 헤드와, 또한 상기 듀얼-포트 캐시(14)와 상기 물리적 저장장치(26) 사이에 데이터 전송을 승인하는 신호를 제공하기 위한 전자장치를 포함한다. 디스크 제어기(18)는 전용 논리 설계이나, 일반목적 마이크로프로세서, 또는 물리적 매체와 호스트의 인터페이스를 관리하는 전용 작업을 수행하도록 제공되는 프로그램을 구비한 마이크로프로세서가 바람직하다. 제어기 판독 전용 메모리(ROM; 28)는 디스크 제어기(18)에 의해 실행되는 프로그램을 저장한다. 제어기 ROM(18)이 전기적 변환 ROM(electrically alterable ROM)이고 SCSI 인터페이스 제어기(12)로 발송되는 커맨드를 통해 재프로그래밍 또는 "업그레이딩"을 위해 공급되는 데이터 저장장치와 함께 사용하기 위해, 본 발명은 제어기 ROM(28)에 있는 프로그램으로 수용될 수 있고, 매체 형태로도 제공될 수 있다.
추가적으로, 도2를 참조하면, 본 발명의 상태 시퀀스가 도시되어 있다. 수행할 미해결 작업이 없을 때에 디스크 제어기(18)는 유휴 상태(상태 60)에 있다. 본 발명은 유휴 프로그램 루프(idle program loop)에 추가적인 작업을 배치한다. 이는 유휴인 동안에 계속적으로, 또는 타이머로 정해지는 간격으로, 또는 작업을 주기적으로 스케줄링하는 다른 적합한 수단에 의해 실행될 수 있다. 큐 관리기는 상기 작업이 스케줄링 될 때마다 실행된다(상태 62). 상기 큐 관리기는 본 발명의 커맨드 큐(command queue)를 관리하고 본 발명의 잇점을 제공한다. 상기 큐 관리기를 실행한 후에 디스크 제어기(18)는 유휴상태(상태 60)로 복귀한다.
상기 물리적 매체에 기록하거나 자리찾기하는 커맨드의 종료할 때는, 디스크 판독/기록 전자장치(16) 또는 매체 DMA 제어기(24)가 하드웨어 인터럽트를 생성할 수 있다. 이 인터럽트에 응답하여, 디스크 제어기(18)는 인터럽트 서비스 루틴(interrupt service routine)을 실행한다(상태 64). 상기 루틴이 완료될 때에, 디스크 제어기(18)는 유휴상태(60)로 복귀한다(상태 60).
도 3에는 상기 큐 관리기의 작동이 예시되어 있다. 상기 큐 관리기가 스케줄링될 때(상태 62)에, 상기 관리기 루틴이 입력되고(단계 40) 커맨드 큐를 조사하여 기록 요구가 큐되어 있는지 여부를 판단한다(단계 42). 기록 요구가 큐되어 있고, 듀얼-포트 캐시(14)가 SCSI 인터페이스 제어기(12)로부터 데이터를 수신하는데 사용가능한 공간이 있다면(판단 44), 인터페이스 DMA제어기(22)에서 DMA 전송을 설정하여 호스트 SCSI 인터페이스 제어기(10)에서 데이터를 듀얼-포트 캐시(14)로 전송한다(단계 46). 상기 DMA 전송이 완료될 때에, SCSI 인터페이스 제어기(12)에 의해 기록이 완료된 상태를 호스트 SCSI 인터페이스 제어기(10)로 복귀시킨다(단계48). 이렇게 함으로써 호스트 컴퓨터는 기록 커맨드와 관련되어 추가적으로 지연되지 않는다.
상기 기록 커맨드의 완료는 상태(64)에 입력된 인터럽트 서비스 루틴에 의해 수행된다. 이하, 도 4를 참조하면, 상기 인터럽트 서비스 루틴이 입력된다(단계 70). 그리고 상기 인터럽트 하드웨어가 제공된다(단계 72). 이는 본 발명의 작동과 별도로 임의의 인터럽트 지정 작업(interrupt specific task)을 포함한다. 예를 들어, 상기 커맨드 큐가 기록 커맨드를 포함하고(단계 74) 듀얼-포트 캐시(14)가 기록 커맨드에 대한 데이터를 포함하고 있다면(단계 76), 기록을 위해 듀얼-포트 캐시(14)에 포함된 데이터가 물리적 매체(26)에 기록된다(단계 78). 상기 큐 관리기가 실행되어(상태 62) 상기 호스트 데이터가 SCSI 인터페이스 제어기에 의해 듀얼-포트 캐시(14)로 로딩되게 하면, 상기 커맨드 큐는 상기 기록 커맨드에 대한 데이터를 포함할 것이다.
이와 같이, 본 발명은 상기 기록 커맨드의 전송부분을 제1 DMA 제어기에 의해 수행되는 호스트 SCSI 인터페이스에서 저장장치로의 제1 전송과, 제2 DMA 제어기에 의해 수행되는 저장 장치 내의 캐시(14)에서 물리적 매체로의 제2 전송으로 분리한다. 또한, 이는 디스크 제어기(18)가 듀얼-포트 캐시(14)에서 디스크 판독 기록 전자장치(16)로의 제1 기록 커맨드에 대한 DMA 전송을 설정하도록 함으로써 성능을 향상시키고, 듀얼-포트 캐시(14)가 두 DMA 제어기 모두에 의해 동시에 액세스되므로 그 데이터 전송은 SCSI 인터페이스 제어기(12)에서 듀얼-포트 캐시(14)로의 제2 기록 커맨드에 대한 DMA 데이터 전송과 함께 동시에 일어난다.
본 명세서에 기재된 바와 같이, 본 발명에 따르면 부재된 기록을 감소 또는 일소함으로써 저장장치의 성능을 향상시킬 수 있는 방법과, 기록 자리찾기(seek)가 완료될 때에 호스트 데이터가 준비되지 않을 가능성을 감소시킴으로써 향상된 성능을 지닌 저장장치가 제공된다. 나아가, 상기 물리적 저장 매체가 여전히 보류되는 동안에 커맨드의 처리도 허용하는 데이터 저장 장치 및 방법이 제공된다.
본 발명이 특정 실시형태를 참조하여 기재되었더라도, 이 기재는 한정의 의미로 해석되어서는 안된다. 본 발명의 대체적인 실시형태 뿐만 아니라, 본 발명의 상세한 설명을 토대로 하여 당 기술분야의 숙련자에게 상기 개시된 실시형태의 개조는 자명해질 것이다. 예를 들면, 본 발명이 본 발명의 방법을 따르는 소프트웨어를 실행하는 데이터 저장시스템에 관하여 기재되었더라도, 본 발명은 이미지 파일에 구현되어 데이터 저장장치 내에 있는 실존 장치 펌 웨어를 업그레이드할 수도 있다. 따라서, 첨부된 청구범위에 의해 정해진 본 발명의 사상과 범위에서 벗어나지 않고 개조가 가능하다는 것을 숙지해야 한다.

Claims (20)

  1. 제1 커맨드가 보류되는(pending) 동안에, 저장매체를 구비한 저장장치에서 기록 커맨드(write commands)를 수행하는 방법에 있어서,
    ① 상기 저장장치의 커맨드 큐가 기록 커맨드를 포함하는지 여부를 판단하는 제1 판단 단계와,
    ② 듀얼 포트 캐시 내의 캐시공간이 상기 기록장치에 대한 데이터를 포함하는데 사용가능한지 여부를 판단하는 제2 판단 단계와,
    ③ 상기 제1 및 제2 판단 단계에 응답하여, 상기 기록 커맨드에 대한 상기 데이터를 인터페이스로부터 상기 캐시 공간으로 전송하는 제1 DMA 전송을 설정하는 제1 설정 단계와,
    ④ 상기 제1 커맨드의 완료에 응답하여, 상기 캐시 공간으로부터 상기 저장 매체에 데이터를 기록하는 단계를 위해 제2 DMA 전송을 설정하는 제2 설정 단계를 포함하는 기록 커맨드를 수행하는 방법.
  2. 제1항에 있어서,
    ① 인터럽트 서비스 루틴(interrrupt service routine)에 상기 제1 커맨드의 상기 완료를 지시하는 인터럽트를 제공하는 단계와,
    ② 상기 인터럽트 서비스 루틴 내에서, 상기 데이터가 캐시 공간에 존재하는지 여부를 판단하기 위해 디렉토리(directory)를 조사하는 단계와,
    ③ 상기 인터럽트 서비스 루틴 내에서, 그리고 나아가 상기 조사하는 단계에 응답하여, 제2 설정 단계를 실시하는 단계를 더 포함하는 기록 커맨드를 수행하는 방법.
  3. 제1항에 있어서,
    ① 상기 저장장치의 작동을 제어하는 프로그램에 유휴상태(idle state)를 입력하는 단계와,
    ② 상기 유휴상태로부터, 큐 관리기 프로그램(queue governor program)을 실행하고, 이어 상기 큐 관리기 프로그램은 상기 제1 및 제2 판단 단계를 실시하며, 상기 제 1 및 제2 판단 단계에 응답하여 상기 제1 설정 단계를 실시하는 단계를 더 포함하는 기록 커맨드를 수행하는 방법.
  4. 제1항에 있어서,
    상기 제2 DMA 전송이 완료되기 전에, 상기 기록 커맨드의 완료를 지시하는 상태를 발송하는 단계를 더 포함하는 기록 커맨드를 수행하는 방법.
  5. 제1항에 있어서,
    상기 인터페이스는 SCSI 인터페이스이고,
    상기 제1 설정 단계는 상기 SCSI 인터페이스로부터 상기 캐시 공간으로 상기 기록 커맨드에 대한 상기 데이터를 전송하는 제1 DMA 전송을 설정하는 기록 커맨드를 수행하는 방법.
  6. 제1항에 있어서,
    상기 인터페이스는 IDE 인터페이스이고,
    상기 제1 설정 단계는 상기 IDE 인터페이스로부터 상기 캐시 공간으로 상기 기록 커맨드에 대한 상기 데이터를 전송하는 제1 DMA 전송을 설정하는 기록 커맨드를 수행하는 방법.
  7. 제1항에 있어서,
    상기 인터페이스는 직렬 인터페이스(serial interface)이고,
    상기 제1 설정 단계는 상기 직렬 인터페이스로부터 상기 캐시 공간으로 상기 기록 커맨드에 대한 상기 데이터를 전송하는 제1 DMA 전송을 설정하는 기록 커맨드를 수행하는 방법.
  8. 제1항에 있어서,
    ① 상기 기록하는 단계를 실시하기 전에, 상기 기록 커맨드의 완료를 지시하는 상태를 발송하는 단계와,
    ② 상기 제1 커맨드의 상기 완료를 지시하는 인터럽트를 제공하는 단계와,
    ③ 상기 인터럽트 서비스 루틴 내에서, 상기 데이터가 상기 캐시 공간에 존재하는지 여부를 판단하기 위해 디렉토리를 조사하는 단계와,
    ④ 상기 인터럽트 서비스 루틴 내에서, 그리고 나아가 상기 조사하는 단계에 응답하여, 상기 제2 설정 단계를 실시하는 단계를 더 포함하는 기록 커맨드를 수행하는 방법.
  9. ① 적어도 하나의 저장매체와,
    ② 호스트 시스템에 연결을 위한 인터페이스 수단과,
    ② 임시로 저장하는 데이터를 위한 메모리를 구비한 듀얼 포트 캐시와,
    ③ 상기 인터페이스와 상기 듀얼 포트 캐시 사이에서 데이터를 전송하는 제1 DMA 제어기와,
    ④ 상기 듀얼 포트 캐시와 상기 저장매체 사이에서 데이터를 전송하는 제2 DMA 제어기와,
    ⑤ 상기 제1 DMA 제어기 및 제2 DMA 제어기와 연결된 제어수단을 포함하고,
    상기 제어수단은,
    상기 듀얼 포트 캐시에 있는 메모리가 사용가능한 경우에 기록 커맨드를 수신할 때에 제1 DMA 제어기를 설정하고, 상기 제2 DMA 제어기가 상기 데이터를 상기 저장매체에 전송하기 전에 상기 기록 커맨드에 대한 상기 인터페이스에 응답하여 완료 상태를 복귀시키는 직접 액세스 저장 장치.
  10. 제9항에 있어서,
    상기 듀얼 포트 캐시로부터 상기 저장매체로의 데이터 전송의 완료는 인터럽트로 신호되고,
    상기 제어 수단은 프로그램 명령어를 실행하는 프로세서 및 메모리를 포함하며,
    상기 프로그램 명령어는 상기 인터럽트에 응답하여 실행되고 상기 저장장치에 기록하기 위한 데이터가 존재하는지 여부를 판단하기 위해 상기 캐시를 조사하며, 존재하다면 상기 저장장치에 상기 데이터를 기록하는 직접 액세스 저장 장치.
  11. 제9항에 있어서,
    상기 제어수단은 프로그램 명령어를 실행하기 위한, 프로세서 및 메모리를 포함하고,
    상기 프로그램 명령어는 유휴상태를 입력하고,
    상기 유휴상태로부터 상기 프로세서는 상기 제1 DMA 제어기를 설정하기 위한 큐 관리기 프로그램을 실행하는 직접 액세스 저장 장치.
  12. 제9항에 있어서,
    상기 제어 수단은 상기 저장 매체로 상기 데이터를 전송하기 전에 상기 인터페이스 수단이 상기 기록 커맨드를 완료하였음을 지시하도록 하는 직접 액세스 저장 장치.
  13. 제9항에 있어서,
    상기 인터페이스는 SCSI 인터페이스를 구현한 직접 액세스 저장 장치.
  14. 제9항에 있어서,
    상기 인터페이스는 IDE 인터페이스를 구현한 직접 액세스 저장 장치.
  15. 제9항에 있어서,
    상기 인터페이스는 직렬 인터페이스(serial interface)를 구현한 직접 액세스 저장 장치.
  16. 제9항에 있어서,
    상기 제어수단은 상기 제2 DMA 제어기가 선행하는 커맨드에 대한 전송을 수행하는 동안에 상기 제1 DMA 제어기를 설정함으로써 기록 커맨드에 대한 DMA 전송을 초기에 완료하도록 하고, 나아가 프로그램 명령어를 실행하는 프로세서 및 메모리를 포함하며,
    상기 프로그램 명령어는 유휴상태를 입력하고,
    상기 프로세서는, 상기 유휴상태로부터, 상기 DMA 제어기를 설정하기 위한 큐 관리 프로그램을 실행하며,
    상기 듀얼 포트 캐시와 상기 저장 매체 사이에서의 데이터 전송의 완료는 인터럽트로 신호되고,
    나아가, 상기 제어 수단은 상기 인터럽트에 응답하여 프로그램 명령어를 실행하여 상기 듀얼 포트 캐시가 상기 저장 장치에 기록하기 위해 존재하는 데이터를 갖고 있다는 지시를 조사하며,
    상기 제어수단은 상기 데이터가 존재하다면 상기 저장 장치에 상기 데이터를 기록하기 위해 상기 제2 DMA 제어기를 설정하는 직접 액세스 저장 장치.
  17. 컴퓨터로 판독가능한 저장매체 및,
    상기 저장 매체 상에 저장된,
    ① 상기 저장장치의 커맨드 큐가 기록 커맨드를 포함하는지 여부를 판단하는 제1 판단 단계와,
    ② 듀얼 포트 캐시 내의 캐시공간이 상기 기록장치에 대한 데이터를 포함하는데 사용가능한지 여부를 판단하는 제2 판단 단계와,
    ③ 상기 제1 및 제2 판단 단계에 응답하여, 상기 기록 커맨드에 대한 상기 데이터를 인터페이스로부터 상기 캐시 공간으로 전송하는 제1 DMA 전송을 설정하는 제1 설정 단계와,
    ④ 상기 제1 커맨드의 완료에 응답하여, 상기 캐시 공간으로부터 상기 저장 매체에 데이터를 기록하기 위해 제2 DMA 전송을 설정하는 제2 설정 단계를 위한 프로그램 명령어를 포함하는 컴퓨터 프로그램 제조물.
  18. 제17항에 있어서,
    상기 컴퓨터로 판독 가능한 저장매체는 판독전용 메모리(Read Only Memory)인 컴퓨터 프로그램 제조물.
  19. 제17항에 있어서,
    나아가, 상기 프로그램 명령어는 저장장치 내에 위치한 비휘발성 메모리 장치로 전송하기 위해 상기 저장 매체 상에 저장된 컴퓨터 프로그램 제조물.
  20. 제17항에 있어서,
    상기 프로그램 명령어는,
    ① 상기 기록하는 단계를 실시하기 전에 상기 기록 커맨드의 완료를 지시하는 상태를 발송하는 단계와,
    ② 상기 제1 커맨드의 상기 완료를 지시하는 인터럽트를 제공하는 단계와,
    ③ 상기 인터럽트 서비스 루틴 내에서, 상기 데이터가 상기 캐시 공간에 존재하는지 여부를 판단하기 위해 디렉토리를 조사하는 단계와,
    ④ 상기 인터럽트 서비스 루틴 내에서, 그리고 나아가 상기 조사하는 단계에 응답하여, 상기 제2 설정 단계를 실시하는 단계를 더 수행하는 컴퓨터 프로그램 제조물.
KR10-2000-0058402A 1999-10-13 2000-10-05 기록 커맨드를 수행하기 위한 방법 및 직접 액세스 저장장치 KR100389104B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/418,047 US6725348B1 (en) 1999-10-13 1999-10-13 Data storage device and method for reducing write misses by completing transfer to a dual-port cache before initiating a disk write of the data from the cache
US9/418,047 1999-10-13
US09/418,047 1999-10-13

Publications (2)

Publication Number Publication Date
KR20010050853A true KR20010050853A (ko) 2001-06-25
KR100389104B1 KR100389104B1 (ko) 2003-06-25

Family

ID=23656462

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0058402A KR100389104B1 (ko) 1999-10-13 2000-10-05 기록 커맨드를 수행하기 위한 방법 및 직접 액세스 저장장치

Country Status (6)

Country Link
US (1) US6725348B1 (ko)
JP (1) JP2001166994A (ko)
KR (1) KR100389104B1 (ko)
GB (1) GB2361557B (ko)
MY (1) MY128110A (ko)
SG (1) SG93897A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024523B1 (en) * 2002-10-25 2006-04-04 Adaptec, Inc. Host adapter integrated data FIFO and data cache and method for improved host adapter sourcing latency
US7802263B2 (en) 2002-12-17 2010-09-21 Stragent, Llc System, method and computer program product for sharing information in a distributed framework
US6901461B2 (en) * 2002-12-31 2005-05-31 Intel Corporation Hardware assisted ATA command queuing
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US10423568B2 (en) * 2015-12-21 2019-09-24 Microsemi Solutions (U.S.), Inc. Apparatus and method for transferring data and commands in a memory management environment
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection
TWI767175B (zh) * 2019-01-31 2022-06-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
TWI773959B (zh) 2019-01-31 2022-08-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
JP7324282B2 (ja) 2019-01-31 2023-08-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 入出力ストア命令をハンドリングする方法、システム、およびプログラム
WO2020156797A1 (en) 2019-01-31 2020-08-06 International Business Machines Corporation Handling an input/output store instruction
CN111984551B (zh) * 2020-08-21 2022-07-12 苏州浪潮智能科技有限公司 一种Cache一致性的处理方法、装置、设备及可读介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394732A (en) 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem trickle
JPS59100964A (ja) 1982-12-01 1984-06-11 Hitachi Ltd ディスク制御システム及びその並列データ転送方法
US5125084A (en) * 1988-05-26 1992-06-23 Ibm Corporation Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller
JP2718708B2 (ja) 1988-08-26 1998-02-25 株式会社日立製作所 記憶制御システムの制御方法および記憶制御システムならびに記憶制御装置
JP2836081B2 (ja) 1989-01-12 1998-12-14 日本電気株式会社 ディスク制御回路
EP0510245A1 (en) 1991-04-22 1992-10-28 Acer Incorporated System and method for a fast data write from a computer system to a storage system
CA2131627A1 (en) 1992-03-09 1993-09-16 Yu-Ping Cheng High-performance non-volatile ram protected write cache accelerator system
US6055583A (en) * 1997-03-27 2000-04-25 Mitsubishi Semiconductor America, Inc. DMA controller with semaphore communication protocol

Also Published As

Publication number Publication date
GB0024962D0 (en) 2000-11-29
GB2361557B (en) 2004-03-24
US6725348B1 (en) 2004-04-20
KR100389104B1 (ko) 2003-06-25
MY128110A (en) 2007-01-31
SG93897A1 (en) 2003-01-21
JP2001166994A (ja) 2001-06-22
GB2361557A (en) 2001-10-24

Similar Documents

Publication Publication Date Title
EP0150705B1 (en) Data storage hierarchy and its method of operation
US6230239B1 (en) Method of data migration
US4870565A (en) Parallel transfer type director means
JP4788528B2 (ja) ディスク制御装置、ディスク制御方法、ディスク制御プログラム
US20010008007A1 (en) Command insertion and reordering at the storage controller
US7234004B2 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
US20040205297A1 (en) Method of cache collision avoidance in the presence of a periodic cache aging algorithm
KR100389104B1 (ko) 기록 커맨드를 수행하기 위한 방법 및 직접 액세스 저장장치
GB2348306A (en) Batch processing of tasks in data processing systems
JP3324572B2 (ja) 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体
JP2000181773A (ja) 記憶装置システム
CN110716691A (zh) 调度方法、装置、闪存设备和系统
EP0889412B1 (en) Split write data processing mechanism for memory controllers
US6567886B1 (en) Disk drive apparatus and control method thereof
US20050240724A1 (en) Disk array device and cache control method for disk array device
JPH0789334B2 (ja) データベース管理処理方式
US7437489B2 (en) Data packet queue handling method and system
JP4076316B2 (ja) 不揮発性キャッシュメモリを用いたデータ書き込みシステム
US6968437B2 (en) Read priority caching system and method
KR101426806B1 (ko) 오브젝트 아이디에 기반하여 저장 매체에서의 영속화를 제어하는 방법, 그 컴퓨터 시스템 및 스토리지 시스템
JP2634867B2 (ja) デイスクキヤツシユデータ転送制御方式
JPH10214247A (ja) 外部記憶装置インタフェース
WO1994022134A1 (en) Buffer control for data transfer within hard disk during idle periods
KR100491323B1 (ko) 독립 파이프라인에 의한 저장 방식을 갖는 전자 계산기
JP2524620B2 (ja) 入出力制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060522

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee