KR20060017764A - 자기 테이프 데이터 저장 시스템 버퍼 관리 - Google Patents

자기 테이프 데이터 저장 시스템 버퍼 관리 Download PDF

Info

Publication number
KR20060017764A
KR20060017764A KR1020057020665A KR20057020665A KR20060017764A KR 20060017764 A KR20060017764 A KR 20060017764A KR 1020057020665 A KR1020057020665 A KR 1020057020665A KR 20057020665 A KR20057020665 A KR 20057020665A KR 20060017764 A KR20060017764 A KR 20060017764A
Authority
KR
South Korea
Prior art keywords
data
buffer
magnetic tape
segments
storage system
Prior art date
Application number
KR1020057020665A
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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20060017764A publication Critical patent/KR20060017764A/ko

Links

Images

Classifications

    • 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
    • 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/0682Tape device
    • 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
    • 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/0656Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/008Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires
    • G11B5/00813Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/10703Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control processing rate of the buffer, e.g. by accelerating the data output

Abstract

자기 테이프 데이터 저장 시스템의 순차적 버퍼는 복수의 세그먼트를 포함한다. 버퍼 관리 시스템은 순차적 버퍼에서 데이터를 버퍼하여, 데이터 전달 시스템을 실행한다. 이어서, 버퍼링 데이터 중 약간은 버퍼 중 약간이지만 모두 보다 적은 세그먼트에 보유된다. 부가하여, 보유된 버퍼링 데이터는 VALID 데이터로 나타내어진다. 따라서, 후속의 프로세스가 버퍼에 보유된 데이터를 이용하여 바로 실행되어, 데이터를 재판독하도록 테이프를 이동시키는 것을 방지할 수 있다.
자기 테이프 데이터 저장 시스템, 순차적 버퍼, 버퍼 관리 시스템, 데이터 레코드

Description

자기 테이프 데이터 저장 시스템 버퍼 관리{MAGNETIC TAPE DATA STORAGE SYSTEM BUFFER MANAGEMENT}
본 발명은 자기 테이프 데이터 저장 시스템용 순차적 버퍼에 관한 것으로, 더욱 특히는 자기 테이프와 관련하여 데이터를 전달하기 위한 버퍼를 관리하는 것에 관한 것이다.
자기 테이프에 기록하거나 여기로부터 판독되는 데이터는 통상 자기 테이프 데이터 저장 시스템과는 다른 속도에서 동작하고 있는 호스트나 호스트 시스템에 의해 공급되거나 여기에 공급되게 된다.
따라서, 자기 테이프 드라이브 등의 호스트 및 자기 테이프 데이터 저장 시스템은 균형된 환경에서 동일한 속도로는 거의 동작하지 않는다. 대신에, 통상적으로, 버퍼는 꽉 차고, 이는 버퍼에의 인입 데이터 (호스트로부터 기록되거나 자기 테이프로부터 판독되는 데이터)가 버퍼로부터 데이터가 제거되는 속도로 제한되고 이에 따라 덮어쓰기될 수 있는 것을 의미하고; 또는 버퍼는 거의 비어 있는데, 이는 버퍼로부터의 인출 데이터 (매체에 기록되고 있는 호스트 데이터나 호스트에 공급되고 있는 판독 데이터)가 버퍼에 데이터가 공급되는 속도로 제한되는 것을 의미한다.
효율적인 호스트 데이터율이 기록시 자기 테이프 데이터 저장 시스템의 원래의 데이터율을 초과하거나, 판독시 원래의 데이터율 보다 작으면, 이 속도의 차이는 자기 테이프 데이터 저장 시스템이 자기 테이프를 중지하여 저속 동작이 따라잡게 할 수 있다. 부가하여, 명령의 시퀀스는 자기 테이프를 중지하고, 아마 역전시키는 결과를 가져온다. 효율적인 호스트 데이터율은 데이터 압축 후의 호스트 데이터율이며, 이는 통상 자기 테이프 데이터 저장 시스템에 의해 제공되는 것이다. 이 때, 용어 "호스트 데이터율"은 데이터가 압축된 경우의 효율적인 호스트 데이터율을 의미하고, 자기 테이프 데이터 저장 시스템에 압축 엔진이 없는 경우에 호스트 데이터는 압축 가능하지 않거나 압축되지 않는 것을 의미하도록 취해져야 한다.
보통 테이프가 중지되거나 역전되는 것을 요구하는 명령의 예는 때로 "백스페이스 (space backwards)"로 불리는, 부정적인 추론의 "스페이스" 명령이다. 이 경우, 테이프는 중지, 후진 가속될 수 있고, 다음에 현재 위치에 짧은 거리 이전일 수 있는 백스페이스 명령의 목표가 전진 판독될 수 있도록 전진 재가속될 수 있다.
테이프가 중지되게 할 수 있는 다른 유형의 명령은 동기화 명령이다. 세트되지 않은 "즉시" 비트로 발해진 기록 명령의 유형은 비즉시적 (non-Immediate)이며, 이는 드라이브가 그 명령의 일부로 기록되는 데이터를 포함하여 이 데이터까지의 모든 데이터가 테이프에 기록되어 적당히 기록된 것으로 증명될 때 까지 완료된 명령에 응답하지 않는 것을 의미한다. 동기화 명령의 일 예는 기록된 파일마크가 제로인 것을 추론하는 "파일마크 기록" 명령이며, 이 경우 명령의 전반적 목적은 자기 테이프 데이터 저장 시스템이 그 데이터 버퍼 내에 있는 모든 데이터를 테이 프에 기록하게 하는, 즉 "플러쉬"되게 하는 것이다. 동기화 명령에 이어지는 다른 기록 명령의 경우, 자기 테이프 데이터 저장 시스템은 테이프를 중지하고, 이를 후진 가속하고, 다시 테이프를 중지한 다음에, 이를 이전에 기록된 데이터의 종료점 앞으로 충분히 전진 가속하여 새로운 데이터의 기록이 마지막 동기화 명령에 의해 기록된 데이터에 바로 이어서 시작할 수가 있게 된다. 기록이 현재 위치에 이어 다시 시작하도록 하는 테이프의 재위치 설정을 "재위치", 또는 때로 "백히치(backhitch)"로 부른다.
재위치를 통상 필요로 하는 다른 경우는 데이터를 테이프에 기록하고 있는 자기 테이프 데이터 저장 시스템이 기록된 버퍼의 데이터를 다 써버린 때로, 이는 자기 테이프 데이터 저장 시스템이 테이프에 기록하고 있는 데이터율이 호스트가 그 데이터를 보내는 데이터율 보다 더 빠를 때 발생하게 된다.
따라서 본 발명은 제1 형태에서, 자기 테이프 데이터 저장 시스템용 버퍼 시스템을 제공하는 것이며, 상기 자기 테이프 데이터 저장 시스템은 자기 테이프 상에 데이터를 기록하고 판독하기 위해 자기 테이프와 관련하여 데이터를 전달하고, 상기 버퍼 시스템은: 복수의 세그먼트를 포함하는 순차적 버퍼; 및 버퍼 관리 시스템을 포함하고, 상기 버퍼 관리 시스템은: 상기 자기 테이프 데이터 저장 시스템의 일부가 상기 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하게 되면, 적어도 하나의 데이터 레코드를 상기 세그먼트 중 적어도 하나에서 상기 순차적 버퍼에 버퍼링하고; 적어도 상기 자기 테이프 데이터 저장 시스템이 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하는 것에 이어서, 상기 버퍼된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 상기 세그먼트 중 적어도 하나와 상기 버퍼의 모두 보다 적은 세그먼트에 보유하여 상기 보유된 버퍼링 데이터가 보유되는 동안 덮어쓰기가 방지되도록 한다.
바람직하게, 제1 형태의 버퍼 시스템에서 버퍼 관리 시스템은 순차적 버퍼의 미리 결정된 수의 세그먼트에 버퍼된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 보유한다.
더욱 바람직하게, 제1 형태의 버퍼 시스템에서 버퍼된 적어도 하나의 데이터 레코드의 미리 정해진 수의 보유된 세그먼트는 상기 순차적 버퍼의 복수의 세그먼트의 총수에 관련된 다수의 세그먼트로 이루어진다.
바람직하게, 제1 형태의 버퍼 시스템에서, 버퍼 관리 시스템은 세그먼트 중 적어도 하나의 보유된 버퍼링 데이터를 세그먼트 포인터로 식별한다.
본 발명은 제2 형태에서, 자기 테이프 데이터 저장 시스템용 버퍼 시스템을 제공하는 것이며, 상기 자기 테이프 데이터 저장 시스템은 자기 테이프 상에 데이터를 기록하고 판독하기 위해 자기 테이프와 관련하여 데이터를 전달하고, 상기 버퍼 시스템은: 복수의 세그먼트를 포함하는 순차적 버퍼; 및 버퍼 관리 시스템을 포함하고, 상기 버퍼 관리 시스템은: 상기 자기 테이프 데이터 저장 시스템의 일부가 상기 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하게 되면, 적어도 하나의 데이터 레코드를 상기 세그먼트 중 적어도 하나에서 상기 순차적 버퍼에 버퍼링하고; 적어도 상기 자기 테이프 데이터 저장 시스템이 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하는 것에 이어서, 상기 버퍼된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 상기 세그먼트 중 적어도 하나와 상기 버퍼의 모두 보다 적은 세그먼트에 보유하여 상기 보유된 버퍼링 데이터가 보유되는 동안 덮어쓰기가 방지되게 하고, 세그먼트 중 적어도 하나의 보유된 버퍼링 데이터가 VALID 데이터를 포함하므로, 이로 인해 데이터는 자기 테이프로부터 판독될 필요가 없다는 것을 지시한다.
바람직하게, 제2 형태의 버퍼 시스템에서, 버퍼 관리 시스템은 부가하여, 자기 테이프 데이터 저장 시스템의 백스페이스와 전진 판독 동작 실행 명령시, 세그먼트의 상기 적어도 하나의 보유된 버퍼링 데이터 중 적어도 약간을 대신에 제공한다.
바람직하게, 제2 형태의 상기 버퍼 시스템에서, 버퍼 관리 시스템은 부가하여, 상기 자기 테이프 데이터 저장 시스템의 후진 판독 동작의 실행 명령시, 상기 세그먼트 중 상기 적어도 하나의 상기 보유된 버퍼링 데이터 중 적어도 약간을 대신에 제공한다.
본 발명은 제3 형태의 자기 테이프 데이터 저장 시스템용 버퍼 시스템을 제공하며, 상기 자기 테이프 데이터 저장 시스템은 자기 테이프 상에 데이터를 기록하고 판독하기 위해 자기 테이프와 관련하여 데이터를 전달하고, 상기 버퍼 시스템은: 복수의 세그먼트를 포함하는 순차적 버퍼; 및 버퍼 관리 시스템을 포함하고, 상기 버퍼 관리 시스템은: 상기 자기 테이프 데이터 저장 시스템의 일부가 상기 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하게 되면, 적어도 하나의 데이터 레코드를 상기 세그먼트 중 적어도 하나에서 상기 순차적 버퍼에 버퍼링하고; 적어도 상기 자기 테이프 데이터 저장 시스템이 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하는 것에 이어서, 상기 버퍼된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 상기 버퍼의 모두 보다 적은 가변 수의 상기 세그먼트에 보유하여 상기 보유된 버퍼링 데이터가 보유되는 동안 덮어쓰기가 방지되도록 한다.
바람직하게, 제3 형태의 버퍼 시스템에서, 상기 버퍼 관리 시스템에 의해 보유된 상기 버퍼된 적어도 하나의 데이터 레코드의 가변 수의 세그먼트는 상기 적어도 하나의 데이터 레코드의 특성의 함수로서 결정된 다수의 세그먼트로 이루어진다.
바람직하게, 제3 형태의 버퍼 시스템에서, 전달 프로세스는 호스트 시스템에 관련하여 데이터를 부가하여 전달하고, 상기 버퍼 관리 시스템에 의해 보유되는 상기 버퍼된 적어도 하나의 데이터 레코드의 상기 가변 수의 세그먼트는 상기 자기 테이프 데이터 저장 시스템의 성능과 비교하여 상기 호스트 시스템의 성능의 함수로 결정된 다수의 세그먼트로 이루어진다.
바람직하게, 제3 형태의 버퍼 시스템에서, 전달 프로세스는 호스트 시스템에 관련하여 데이터를 부가하여 전달하고, 상기 버퍼 관리 시스템에 의해 보유되는 상기 버퍼된 적어도 하나의 데이터 레코드의 상기 가변 수의 세그먼트는 상기 호스트 시스템에 의해 상기 자기 테이프 데이터 저장 시스템과 관련하여 실행되는 이전의 백스페이스 동작의 회수의 함수로 결정되는 다수의 세그먼트로 이루어진다.
바람직하게, 제3 형태의 버퍼 시스템에서, 전달 프로세스는 호스트 시스템에 관련하여 데이터를 부가하여 전달하고, 상기 버퍼 관리 시스템에 의해 보유되는 상기 버퍼된 적어도 하나의 데이터 레코드의 상기 가변 수의 세그먼트는 상기 호스트 시스템에 의해 상기 자기 테이프 데이터 저장 시스템과 관련하여 실행되는 이전의 백스페이스 동작의 길이의 함수로 결정되는 다수의 세그먼트로 이루어진다.
바람직하게, 제3 형태의 버퍼 시스템에서, 상기 버퍼 관리 시스템에 의해 보유되는 버퍼된 적어도 하나의 데이터 레코드의 가변 수의 세그먼트는 상기 순차적 버퍼의 상기 복수의 세그먼트의 총수의 함수로 결정되는 최대수의 세그먼트까지 변한다.
본 발명은 제4 형태의 자기 테이프 데이터 저장 시스템용 버퍼 시스템을 제공하고, 상기 자기 테이프 데이터 저장 시스템은 자기 테이프 상에 데이터를 기록하고 판독하기 위해 자기 테이프와 관련하여 데이터를 전달하고, 상기 버퍼 시스템은: 복수의 세그먼트를 포함하는 순차적 버퍼; 및 버퍼 관리 시스템을 포함하고, 상기 버퍼 관리 시스템은: 상기 자기 테이프 데이터 저장 시스템의 일부가 상기 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하게 되면, 적어도 하나의 데이터 레코드를 상기 세그먼트 중 적어도 하나에서 상기 순차적 버퍼에 버퍼링하고; 적어도 상기 자기 테이프 데이터 저장 시스템이 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하는 것에 이어서, 상기 버퍼된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 상기 버퍼의 모두 보다 적은 가변 수의 상기 세그먼트에 보유하여 상기 보유된 버퍼링 데이터가 보유되는 동안 덮어쓰기가 방지되도록 하고; 자기 테이프 데이터 저장 시스템이 상기 전달 프로세스에서 다른 프로세스로 전환될 때, 상기 가변 수의 상기 세그먼트의 보유된 버퍼링 데이터가 VALID 데이터를 포함하는 것을 지시하여, 이로 인해 데이터가 자기 테이프로부터 판독될 필요가 없게 된다.
바람직하게, 제4 형태에서는, 버퍼 시스템이 상기 자기 테이프 데이터 저장 시스템의 백스페이스와 전진 판독 동작의 실행 명령시에, 세그먼트 중 적어도 하나의 보유된 버퍼링 데이터 중 적어도 약간을 대신에 제공한다.
바람직하게, 제4 형태의 버퍼 시스템은 상기 자기 테이프 데이터 저장 시스템의 후진 판독 동작의 실행 명령시에, 세그먼트 중 적어도 하나의 보유된 버퍼링 데이터 중 적어도 약간을 대신에 제공한다.
본 발명은 다른 형태로 상술된 버퍼 시스템에 대응하는 자기 테이프 데이터 저장 시스템, 방법 및 컴퓨터 프로그램 제품을 더욱 제공한다.
본 발명은 자기 테이프 데이터 저장 시스템의 순차적 버퍼를 관리하기 위해, 자기 테이프 데이터 저장 시스템용 버퍼 시스템, 자기 테이프 드라이브, 방법 및 컴퓨터 판독 가능 프로그램 코드가 내부에 구현되어 있는 프로그래머블 컴퓨터 프로세스에 이용 가능한 컴퓨터 프로그램 제품을 포함한다.
자기 테이프 데이터 저장 시스템은 자기 테이프 상에서 데이터를 기록 및 판독하기 위해 데이터를 자기 테이프에 관련하여 전달한다. 순차적 버퍼는 복수의 세그먼트를 포함한다.
버퍼 관리 시스템은 일 실시예에서: 자기 테이프 데이터 저장 시스템의 일부가 상기 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하게 되면, 적어도 하나의 데이터 레코드를 상기 세그먼트 중 적어도 하나에서 상기 순차적 버퍼에 버퍼링하고; 적어도 상기 자기 테이프 데이터 저장 시스템이 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하는 것에 이어서, 상기 버퍼된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 상기 세그먼트 중 적어도 하나와 상기 버퍼의 모두 보다 적은 세그먼트에 보유하여 상기 보유된 버퍼링 데이터가 보유되는 동안 덮어쓰기가 방지되게 한다.
다른 실시예에서, 버퍼 관리 시스템은 세그먼트 중 적어도 하나의 보유된 버퍼링 데이터는 VALID 데이터를 포함하고, 이로 인해 데이터는 자기 테이프로부터 판독될 필요가 없다는 것을 지시한다.
따라서, 후속의 프로세스가 실행될 수 있고, 버퍼에 보유된 데이터를 직접 이용할 수 있다. 그 결과, 자기 테이프 데이터 저장 시스템은 자기 테이프를 데이터를 판독하는 것이 요구되는 지점에서의 동작 속도로 가속화하는 지점으로 매체를 이동할 필요가 없게 된다.
또한, 버퍼의 모두 보다 적은 세그먼트에서 버퍼링 데이터를 보유함으로써, 버퍼는 후속의 프로세스를 실행하게 이용될 수 있다.
일 실시예에서, 버퍼 관리 시스템은 버퍼된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 순차적 버퍼의 미리 정해진 수의 세그먼트에 보유한다. 미리 정해진 수의 보유 세그먼트는 일 실시예에서, 순차적 버퍼의 복수의 세그먼트의 총수에 관련되는 다수의 세그먼트를 포함한다.
다른 실시예에서, 버퍼 관리 시스템은 세그먼트 포인터로 보유된 버퍼링 데이이터를 식별한다.
다른 실시예에서, 버퍼 관리 시스템은 버퍼된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 버퍼의 모두 보다 적은 세그먼트인 가변 수의 세그먼트에 보유한다.
다른 실시예에서, 가변 수의 세그먼트는 적어도 하나의 데이터 레코드의 특성의 함수로 결정된 다수의 세그먼트를 포함한다.
또 다른 실시예에서, 가변 수의 세그먼트는 자기 테이프 데이터 저장 시스템의 성능에 비교하여 호스트 시스템의 성능의 함수로 결정된 다수의 세그먼트를 포함한다.
다른 실시예에서, 버퍼 관리 시스템에 의해 보유되는 버퍼된 적어도 하나의 데이터 레코드의 가변 수의 세그먼트는 호스트 시스템에 의해 자기 테이프 데이터 저장 시스템과 관련하여 실행되는 이전의 백스페이스 동작의 회수의 함수로 결정된 다수의 세그먼트를 포함한다.
또 다른 실시예에서, 가변 수의 세그먼트는 호스트 시스템에 의해 자기 테이프 데이터 저장 시스템과 관련하여 실행되는 이전의 백스페이스 동작의 길이의 함수로 결정된 다수의 세그먼트를 포함한다.
다른 실시예에서, 가변 수의 세그먼트는 순차적 버퍼의 복수의 세그먼트의 총수의 함수로 결정된 최대수의 세그먼트로 까지 변한다.
다른 실시예에서, 자기 테이프 데이터 저장 시스템의 백스페이스와 전진 판독 동작의 실행 명령시, 버퍼 관리 시스템은 순차적 버퍼의 적어도 하나의 세그먼트에 보유된 데이터 중 적어도 약간을 대신에 제공한다.
또 다른 실시예에서, 자기 테이프 데이터 저장 시스템의 후진 판독 동작의 실행 명령시, 버퍼 관리 시스템은 순차적 버퍼의 적어도 하나의 세그먼트에 보유된 데이터 중 적어도 약간을 대신에 제공한다.
다른 실시예에서, 그 데이터가 전달되어 덮어쓰기가 가능한 세그먼트가 추적되지만, 그 세그먼트는 덮어쓰기 되어 있지 않고, 추적된 세그먼트의 데이터는 VALID 데이터로서 다시 가능하게 된다. 추적된 세그먼트는 덮어쓰기가 가능한 세그먼트와 버퍼링 데이터를 보유한 세그먼트 둘 다를 포함한다. 또한, 버퍼는 버퍼링 데이터를 보유할 수 없게 되고, 덮어쓰기가 가능한 세그먼트만이 추적된다.
본 발명을 더 완전히 이해하기 위해서는, 첨부한 도면과 관련한 다음의 상세한 설명을 참조하면 된다.
본 발명의 바람직한 실시예는 다음의 도면을 참조해서만 예시로 상세히 이하 설명될 것이다.
도 1은 본 발명을 구현하는 자기 테이프를 갖는 자기 테이프 데이터 저장 시스템의 실시예의 블럭도이다.
도 2는 본 발명의 실시예에 따른 도 1의 버퍼와 도 1의 프로세서의 버퍼 관리 시스템의 블럭도이다.
도 3A 및 도 3B는 종래 기술에 따른 자기 테이프 데이터 저장 시스템의 버퍼 의 데이터 설명도이다.
도 4A 및 도 4B는 본 발명의 실시예에 따른 도 1의 버퍼의 데이터 설명도이다.
도 5는 본 발명의 컴퓨터 구현 방법의 실시예를 설명하는 플로우챠트도이다.
도 6은 기록 프로세스에서 종래 기술에 따른 자기 테이프 데이터 저장 시스템의 버퍼의 데이터의 설명도이다..
도 7은 기록 프로세스에서 본 발명의 실시예에 따른 도 1의 버퍼의 데이터의 설명도이다.
도 8은 도 7의 버퍼의 데이터 이용 설명도이다.
도 9A, 9B, 9C 및 9D는 종래 기술에 따른 자기 테이프 데이터 저장 시스템의 버퍼의 데이터를 설명하는 도면이다.
도 10은 본 발명의 실시예에 따른 도 1의 버퍼의 데이터를 설명하는 도면이다.
도 11A 및 11B는 도 10의 버퍼의 데이터의 이용시의 도 1의 버퍼를 설명하는 도면이다.
도 12는 도 11A 및 도 11B의 데이터의 다른 이용을 설명하는 도면이다.
도 13은 본 발명의 실시예에 따른 도 1의 버퍼의 데이터를 설명하는 도면이다.
도 14는 도 13의 버퍼의 데이터의 이용시의 도 1의 버퍼를 설명하는 도면이다.
도 1을 참조하면, 본 발명의 바람직한 실시예를 구현하는 자기 테이프 데이터 저장 시스템(10)의 실시예가 설명된다. 자기 테이프 데이터 저장 시스템은 예를 들어, 카트리지(11)에 의해 제공되는 자기 테이프(14)에 관련한 정보를 판독하고 기록하기 위한 수단을 제공한다. 특정 예로, 도시된 카트리지와 관련된 자기 테이프 데이터 저장 시스템은 선형 테이프 개방 (LTO) 포맷에 적용된다. 단일 릴 (reel) 테이프 드라이브의 예로는 LTO 기술에 기초한 IBM 3580 Ultrium 자기 테이프 드라이브가 있다. 단일 릴 테이프 드라이브와 카트리지의 다른 예로는 1995년 7월 11일자 Comeaux 등의 미국 특허 번호 5,432,652에 기재된 것 등이 있다. 단일 릴 테이프 드라이브의 다른 예는 IBM 3590 맥스타 (Magstar) 자기 테이프 드라이브 및 관련 자기 테이프 카트리지가 있다. 이중 릴 카트리지의 예로는 IBM 3570 자기 테이프 카트리지 및 관련 테이프가 있다. 테이프 드라이브는 자동 데이터 저장 라이브러리 등과 같이, 큰 자기 테이프 데이터 저장 시스템의 요소를 더 포함할 수 있다.
당업자에게는 잘 이해되는 바와 같이, 자기 테이프 카트리지(11)는 하나 또는 두개의 릴(15, 16) 상에 권선된 한 발의 자기 테이프(14)를 포함한다. 또한 당업자가 이해하는 바와 같이, 자기 테이프 데이터 저장 시스템(10)은 인터페이스(21)에서 수신된 호스트 시스템(20)으로부터 수신된 명령에 따라서 자기 테이프 데이터 저장 시스템을 동작하기 위한 레코딩 시스템의 하나 이상의 프로세서(18)를 포함한다. 테이프 드라이브는 단독형 유닛을 포함하거나 테이프 라이브러리의 일 부나 그 외 서브시스템을 포함한다. 자기 테이프 데이터 저장 시스템(10)은 라이브러리를 통해, 또는 네트워크를 통해 호스트 시스템(20)에 직접 결합될 수 있으며, 스몰 컴퓨터 시스템 인터페이스 (SCSI), 파이버 채널 인터페이스 등을 이용할 수 있다.
자기 테이프 카트리지(11)는 자기 테이프 데이터 저장 시스템(10)에 삽입되어 자기 테이프 데이터 저장 시스템에 의해 로드되므로써, 테이프가 하나 이상의 모터(25)에 의해 길이 방향으로 이동됨에 따라 기록 시스템의 하나 이상의 판독 및/또는 기록 헤드(23)가 자기 테이프(14)에 관련하여 정보를 판독 및/또는 기록하게 된다. 자기 테이프는 복수의 병렬 트랙, 또는 트랙의 그룹을 포함한다. 상술된 LTO 포맷 등의 어떤 포맷에서는, 트랙이 당업자에게는 잘 알려진 바와 같이, 앞뒤로 꾸불꾸불한 패턴의 개별의 랩 (wrap)에 배열되어 있다. 또한 당업자에게 잘려진 데로, 레코딩 시스템은 다른 세트의 판독 및/또는 기록 헤드에 전자적으로 스위치하고, 및/또는 자기 테이프의 후측으로 판독 및/또는 기록 헤드(23)를 탐색 및 이동하여, 원하는 랩에 헤드를 위치 정하고, 어떤 실시예에서는, 원하는 랩을 추적 하도록 하는 랩 제어 시스템(27)을 포함한다. 랩 제어 시스템은 프로세서(18)에 의한 명령에 응답하여, 모터 드라이버(28)를 통해 모터(25)의 동작을 제어한다.
프로세서(18)는 또한 순차적 버퍼(30) 및 레코딩 채널(32)를 이용하여, 자기 테이프로부터 판독되고 여기에 기록되는 데이터의 데이터 흐름과 포매팅을 제공한다.
본 발명의 바람직한 실시예에 따르면, 순차적 버퍼(30)는 버퍼 관리 시스템 에 의해 관리된다. 부가하여 도 2를 참조하면, 버퍼(30)는 버퍼 메모리(34), 버퍼 입력(35), 및 버퍼 출력(36)를 포함한다. 당업자에게는 이해되는 바와 같이, 버퍼는 데이터가 FIFO(선입 선출)에 기초하여 출력된다는 점에서 순차적이다. 버퍼 입력(35)은 예를 들어 입력(37)에서, 도 1의 인터페이스(21)로부터 데이터를 수신하거나, 예를 들어 입력(38)에서, 도 1의 레코딩 채널(32)로부터 데이터를 수신한다. 버퍼 출력(36)은 예를 들어, 출력(40)에서 데이터를 도 1의 인터페이스(21)에 공급하거나, 예를 들어, 출력(41)에서 도 1의 레코딩 채널(32)에 데이터를 공급한다. 버퍼 메모리(34)는 당업자에게는 잘 알려진 바와 같이 여기에서 "세그먼트"로 불리는 복수의 어드레스 가능한 영역을 제공하도록 구성된다. 몇 가지 구성에서는, 세그먼트가 고정된 크기, 예를 들어, 약 400K 유저 바이트를 포함할 수 있으며, 이것은 자기 테이프 포매팅을 제공하도록 총 512K 바이트로 포맷될 수 있지만, 본 발명의 바람직한 실시예에서 크기의 조건은 고정되어 있지 않으며, 이와 달리 가변 크기로도 가능하다.
도 2의 버퍼 관리 시스템(50)은 본 발명의 바람직한 실시예에 따라서 버퍼(30)의 동작을 관리한다. 버퍼 관리 시스템은 자기 테이프 데이터 저장 시스템(10)의 하드웨어와 로직으로 구현될 수 있으며, 방법을 포함하거나, 컴퓨터 판독 가능 프로그램 코드가 내부에 구현되고 있는 프로그래머블 컴퓨터로 이용 가능한 컴퓨터 프로그램 제품을 포함할 수 있으며, 이 컴퓨터 프로그램 제품은 컴퓨터 프로세서를 동작하는 컴퓨터 판독 가능 프로그램 코드를 포함한다. 컴퓨터 프로그램 제품은 당업자에게는 잘 알려진 바와 같이, ROM, PROM, 디스크 드라이브 또는 디스 켓 등의 고정식 또는 착탈 가능한 메모리에 제공되거나, 프로세서(18)와 관련된 데이터베이스의 일부로 저장되거나, 예를 들어 호스트 시스템(20)으로부터 외부에서 공급될 수 있다.
버퍼 관리 시스템(50)은 자기 테이프 데이터 저장 시스템에 대해 데이터 전달 프로세스를 실행할 때, 버퍼 입력(35) 및 버퍼 출력(36)의 동작을 제어하며, 버퍼 메모리 세그먼트에서의 데이터의 저장을 제어한다. 일 예로서, 데이터의 저장은 당업자에게는 잘 알려진 바와 같이, 포인터의 이용으로 제어될 수 있다.
도 3A 및 도 3B를 참조하여, 버퍼는 종래 기술에서 알려진 바와 같은 포인터와 버퍼 관리를 이용하여 제어된다. 데이터를 저장하기 위한 버퍼 공간의 총량은 인용 부호 60으로 나타내며, 버퍼 공간은 세그먼트(61) 등의 세그먼트에 배열된다. 도 3A 및 도 3B에 도시된 바와 같이 자기 테이프 데이터 저장 시스템에 의해 행해지고 있는 프로세스는 도 1의 자기 테이프(14)로부터 데이터를 판독하는 단계, 순차적 버퍼(30)에서 데이터를 버퍼링하는 단계, 및 버퍼링된 데이터를 호스트 시스템(20)에 공급하는 단계를 포함한다. 도 3A 및 도 3B 및, 이어지는 모든 버퍼 동작 설명에서, 버퍼의 동작은 다르게 특정되지 않는 한, 좌에서 우측으로 이동한 다음에, 도시된 것의 좌측 단부로 다시 래핑 (wrapping)되는 것으로 설명된다. 버퍼된 데이터는 통상 버퍼 내에서 이동되지 않지만, 데이터가 버퍼링되거나 버퍼로부터 판독되는 주소는 보통 포인터로 이동되게 된다. 전달 프로세스는 여기에서 데이터 "레코드"로 불리는, 적당한 유형으로 전달되는 데이터로 이루어지며며, 이것의 크기는 버퍼의 크기에 관련될 수도 아닐 수도 있으며, 가변이거나 일정할 수도 있다.
포인터(62)는 자기 테이프로부터 판독되면서 데이터가 저장되어 있는 세그먼트(64)를 나타내며, 이것은 문자 "M"으로 나타낸다. 포인터는 통상 도 2의 버퍼 메모리(34)의 주소를 가르킨다. 자기 테이프로부터 판독된 데이터를 저장하는 도 3A 및 도 3B의 버퍼(60)의 세그먼트는 문자 "B"로 나타낸다. 다른 포인터(66)는 데이터가 호스트에 공급되고 있는 세그먼트(67)를 나타내며, 이 데이터는 버퍼에 저장되어 있으며, 자기 테이프로부터 판독된 것이며, 이를 문자 "H"로 나타낸다. 세그먼트(68)은 호스트에 공급된 데이터를 포함하며, 이 세그먼트는 덮어쓰기가 가능하며, 문자 "r"로 나타내고 있다.
도 3A에서, 데이터는 버퍼된 데이터가 호스트 시스템에 공급되고 있는 것보다 더 높은 속도에서 자기 테이프로부터 판독되어 버퍼에 저장되고 있어, 포인터(62)가 세그먼트 "M"(64)과 같은 세그먼트가 그 세그먼트의 데이터가 호스트 시스템에 공급되어 릴리스되자 마자, 덮어쓰기되게 될 정도로 포인터(66)를 거의 따라잡게 되므로, "r" 세그먼트(68)로 나타낸 상태의 세그먼트는 사실상 없게 된다. 그러나, "r" 상태의 세그먼트가 없어지자 마자, 드라이브는 재위치 설정되게 되고, 이 동안에 테이프로부터 판독된 데이터가 다시 데이터 버퍼를 채우기 시작하기 전에, 버퍼 내의 데이터는 부분적으로 비어질 수 있다.
현재 프로세스의 데이터의 종료시 시작되는 후속의 프로세스가 행해지면, 자기 테이프 데이터 저장 시스템은 자기 테이프를 현재 프로세스가 종료되는 지점을 지나 데이터의 재판독이 요구되는 지점 까지 동작 속도로 자기 테이프를 전진 방향 으로 가속화하는 지점으로 후진 이동될 필요가 있고, 다음에 자기 테이프 데이터 저장 시스템은 후속의 프로세스를 실행한다.
도 3B는 유사한 프로세스를 나타내지만, 여기에서는 데이터가 호스트 시스템에 공급되고 있고 세그먼트는 데이터가 자기 테이프로부터 판독되어 버퍼에 저장되고 것보다 더 높은 속도에서 릴리스되고 있다. 다르게, 도 3B는 재위치에 이어서 호스트 데이터률이 테이프 드라이브 데이터율 보다 낮지만 버퍼가 그 재위치를 숨기는 데에 불충분할 때의 버퍼의 상태를 나타낸다. 데이터 세그먼트 대부분은 여전히 호스트에 공급되는 데이터를 포함하며 그 세그먼트는 덮어쓰기가 가능하고, 문자 "r"로 나타나 있다. 이 때, 포인터(66)는 세그먼트 "H"(67)와 같이, 세그먼트에서 버퍼링된 데이터가 그 데이터가 자기 테이프로부터 판독되어 세그먼트 "M"(64)와 같은 세그먼트에 버퍼링되자 마자, 호스트 시스템에 공급되어 릴리스되는 정도로 포인터(62)를 따라잡게 되어, "B" 세그먼트(69)로 나타낸 상태의 세그먼트는 전혀 없거나 최소한의 개수만이 있게 된다.
도 4A 및 도 4B를 참조하여, 본 발명의 바람직한 실시예에 따르면, 자기 테이프 데이터 저장 시스템의 일부가 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하게 되면, 적어도 하나의 데이터 레코드가 세그먼트 중 적어도 하나에서 순차적 버퍼에 버퍼링되고, 포인터(70)를 이용하는 버퍼 관리 시스템은 예를 들어, 세그먼트(71, 72 및 73)로 나타낸 세그먼트 중 적어도 하나에 버퍼링된 데이터를 보유하여, 이 보유된 세그먼트의 버러핑 데이터는 그렇게 보유되면서 덮여쓰기되는 것이 방지되게 한다. 도 4A는 종래 기술의 도 3A의 것과 유사한 동작 을 실행할 때의 버퍼의 새로운 형태를 나타낸다. 도 3A에서, 다음 매체 블럭은 도 4A에 나타낸 바와 같은 본 발명의 바람직한 실시예에 따라 실행되는 바와 같이, 명백하게 방지되지 않는 한 세그먼트(68)를 선행 판독된 데이터로 덮어쓰기하게 된다. 도 4B는 도 3B의 것과 유사한 동작을 실행할 때의 버퍼의 새로운 형태를 나타낸다.
도 3B에서는, 데이터가 호스트에 의해 판독되는 세그먼트(61)가 릴리스되거나 소거되어, 도 4B에 나타낸 본 발명의 바람직한 실시예에 따라 실행되는 바와 같이 명확히 방지되지 않는 한 다음 동작에 의해 덮여쓰기된다.
이 때, "H"는 활동적으로 수신되거나 송신되는 세그먼트, 즉 호스트를 나타내며; "M"은 활동적으로 판독되거나 기록되는 세그먼트, 즉 매체 (자기 테이프)를 나타내며; "R"은 판독된 데이터를 보유하는 세그먼트를; "W" 기록 데이터를 보유하는 세그먼트를; "B"는 버퍼링된 데이터를; "r" 및 "W"는 전달되어 덮어쓰기가 가능한 데이터를 갖는 세그먼트를 나타낸다.
버퍼링된 데이터의 보유는 전달 프로세스 동안 진행되고 있으며, 포인터(70)와 그 외 다른 표시자는 도 4A에서와 같이, 전달 프로세스가 진행됨에 따라 이동하거나, 도 4B에서와 같이, 포인터나 그외 표시자를 적용하여 프로세스의 종료시 실행될 수 있다. 따라서, 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하는 자기 테이프 데이터 저장 시스템에 이어서, 버퍼 관리 시스템은 버퍼링된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 세그먼트(71, 72, 73) 중 적어도 하나와 버퍼의 모두 보다 적은 세그먼트에 보유한다. 예시의 데이터 전달 프로세 스는 판독 프로세스를 포함하기 때문에, 버퍼링된 데이터를 보유하는 세그먼트(71, 72, 73)은 문자 "R"로 나타나 있다.
다음에, 본 발명의 다른 실시예에 따르면, 버퍼 관리 시스템은 "R"로 나타낸 세그먼트(71, 72, 73) 내에 보유된 버퍼링 데이터가 예를 들어, 세그먼트를 활성의 판독 버퍼링 상태로 복구하는 VALID 데이터를 포함하고, 이로 인해 데이터는 자기 테이프로부터 판독될 필요가 없고, 대신에 순차적 버퍼로부터 직접 판독될 수 있다.
또한, 순차적 버퍼의 모두 보다 적은 세그먼트(60)에 버퍼링된 데이터를 보유함으로써, 버퍼는 후속의 프로세스를 실행하는 데에 이용될 수 있다.
다른 실시예에서, 도 4A를 참조하여, 포인터(78)는 데이터가 호스트에 전달되어 덮어쓰기가 가능하게 되는 "r"로 표시된 트랙 세그먼트(79)에 이용되지만, 이 세그먼트는 덮어쓰기 되어 있지 않다. 다르게, 포인터(62)가 이 목적으로 이용될 수 있다. 이 데이터를 갖는 세그먼트는 데이터를 보유한 세그먼트에 부가하여, VALID 데이터로서 활성 데이터로 복구될 수 있다. 이것은 예를 들어, 포인터(78)로 추적되는 도 4B의 세그먼트(61)에 의해 나타낸 것와 같은 "B" 상태에서 세그먼트가 거의 비어 있는 버퍼의 경우, 백스페이스 명령으로 억세스 가능한 데이터 양을 크게 증가시킬 수 있다. 또한, 버퍼는 버퍼링된 데이터를 보유하는 것이 가능하지 않으며, 덮어쓰기가 가능한 세그먼트(79)는 포인터(78)로 추적된다. 이 경우 세그먼트(71, 72, 73)는 보유되지 않지만, 포인터(78)로 추적될 수 있다.
보유되는 버퍼링 데이터의 양은 미리 정해진 양이거나 가변일 수 있다. 이 때, 보유되는 버퍼링 데이터의 양은 세그먼트의 수로 나타내어지며, 이는 버퍼 메모리의 어드레스 가능한 영역으로서 위에서 정의되었다.
미리 정해진 수의 세그먼트는 버퍼 크기의 함수로 이루어질 수 있다. 일 예는 재위치를 숨길 필요가 있는 것 보다 더 크지 않은 버퍼의 경우 버퍼 크기의 5% 미만이거나, 더 큰 버퍼의 경우에는 몇배 더 클 수 있다. 따라서, 도 2의 버퍼 메모리(34)가 128MB인 경우, 미리 정해진 수의 세그먼트는 약 4MB에 달하게 된다.
가변 개수의 세그먼트는 이전의 동작, 또는 현재 동작이나 프로세스, 또는 이들의 조합의 함수로 이루어질 수 있다. 예시로, 가변 수의 세그먼트는 데이터 레코드의 특성, 호스트 시스템의 상대적 성능의 함수, 및 자기 테이프 데이터 저장 시스템, 이전의 백스페이스 동작의 회수의 함수, 또는 이전의 백스페이스 동작의 길이의 함수로 이루어질 수 있다.
특정의 예로서, 기록 프로세스시, 데이터 레코드는 기록되는 하나 이상의 비즉각적인 파일마크 기록을 포함하고, 이것은 각각 SCSI 프로토콜에서, 당업자에게는 잘 알려진 바와 같이, 후속의 명령이 버퍼에 대해 더 많은 데이터가 수신될 수 있기 전에 버퍼가 플러쉬되며 파일마크 이전의 모든 데이터가 자기 테이프에 기록되는 것을 조건을 한다. 다량의 데이터가 버퍼에 보유되면, 파일마크로서의 데이터 레코드의 특성은 세그먼트 중 몇개의 릴리스를 초래하여, 버퍼링된 데이터를 보유하는 세그먼트의 수를 최소한의 수의 세그먼트로 감소시킨다. 일 예는 파일마크가 존재하지 않는 버퍼 크기의 약 5%이고 파일마크가 있는 버퍼 크기에는 최소한 1-1.5%일 수 있다.
다른 예로서, 호스트 시스템과 자기 테이프 데이터 저장 시스템의 상대적 성능이 데이터가 입력될 때 보다 더 빠른 속도에서 출력되도록 하는 것이어서, 도 4B에 나타낸 바와 같이 버퍼에 빈 공간을 남겨둔다면, 버퍼링 데이터를 보유하는 세그먼트의 수는 증대될 수 있다. 반대로, 호스트 시스템과 자기 테이프 데이터 저장 시스템의 상대적 성능이 데이터가 출력될 때 보다 더 빠른 속도로 입력되도록 하는 것이어서, 도 4A에서 나타낸 바와 같이, 버퍼가 출력되는 데이터로 꽉 차게 된다면, 버퍼링 데이터를 보유하는 세그먼트의 수는 감소될 수 있다.
다른 예로서, 백스페이스 동작이 자주 실행되면, 버퍼링 데이터를 보유하는 세그먼트의 수는 증대된다. 반대로, 백스페이스 동작이 흔치 않게 실행되거나 전혀 실행되지 않으면, 버퍼링 데이터를 보유하는 세그먼트의 수는 최소한의 수준으로, 대게는 거의 제로에까지 감소될 수 있다.
또한, 백스페이스 동작이 있었다면, 이전의 백스페이스 동작의 길이는 버퍼링 데이터를 보유하는 가변 개수의 세그먼트를 결정하는 데에 이용될 수 있다.
부가하여, 가변 수의 세그먼트는 순차적 버퍼의 복수의 세그먼트의 총수의 함수로 결정된 최대수의 세그먼트로 까지 변하게 된다. 예를 들어, 최대수의 세그먼트는 버퍼 크기의 5%일 수 있다.
도 5는 본 발명의 바람직한 실시예의 컴퓨터 구현 방법의 실시예를 나타낸다. 다음 프로세스의 명령이 단계 80에서 자기 테이프 데이터 저장 시스템에 의해 수신되어, 이전의 프로세스에서 다음, 또는 현재의 프로세스로 전환한다.
단계 81에서, 이전의 프로세스가 본 발명의 바람직한 실시예에 따라 버퍼의 세그먼트에 버퍼링 데이터를 보유하는 전달 프로세스이어서, 보유된 버퍼링 데이터가 보유되면서 덮어쓰기가 방지되게 된다면, 이전 프로세스의 버퍼링된 데이터가 현재 프로세스에서 이용될 수 있는지에 대한 판정이 행해진다. 예를 들어, 현재의 프로세스는 기록 또는 판독 명령에 이어지는 위치 선정 명령를 포함하고, 보유된 버퍼링 데이터는 현재 프로세스에 의해 직접 이용될 수 있다. 그 결과, 자기 테이프 데이터 저장 시스템은 자기 테이프를 데이터의 판독이 필요한 지점에서의 동작 속도로 가속화하는 지점으로 매체를 이동시킬 필요가 없게 된다.
다른 실시예에서, 단계 81은 덮어쓰기가 가능하며 덮어쓰기되어 있지 않는 추적된 세그먼트가 존재하는지와, 추적된 세그먼트의 데이터가 현재 프로세스에 의해 이용될 수 있는지를 부가하여 판정한다.
단계 81이 보유된 버퍼링 데이터가 현재 프로세스에 의해 이용될 수 있다고 판정하면, 즉 "YES"이면, 단계 82에서 버퍼 관리 시스템은 세그먼트 중 적어도 하나의 보유된 버퍼링 데이터가 VALID 데이터를 포함한다고 나타내고, 이로 인해 데이터는 자기 테이프로부터 판독될 필요가 없게 된다.
다른 실시예에서, 단계 81이 아마 보유된 버퍼링 데이터를 갖는 세그먼트를 포함하는 추적된 세그먼트가 존재하고, 이 추적된 데이터가 현재 프로세스에 의해 이용될 수 있다고 판단하면, 단계 84에서, 버퍼 관리 시스템은 추적된 세그먼트 중 적어도 하나의 데이터가 VALID 데이터를 포함한다고 나타낸다. 단계 81에서, 버퍼가 버퍼링 데이터를 보유하고 있지 않다면, 덮어쓰기 가능한 세그먼트만이 단계 84에서 추적되어 VALID 데이터로 나타날 수 있다.
다음에 버퍼 관리 시스템은 가변 함수에의 입력이 제공되는 단계 85에서 시작하여, 현재 전달 프로세스에서 보유하는 버퍼링 데이터의 세그먼트의 수를 결정한다. 입력은 피드백 단계(87)에서 얻은 이전의 동작, 또는 상술된 바와 같은 현재의 동작이나 프로세스나 그 조합에 관련될 수 있다. 예시로, 가변 수의 세그먼트는 데이터 레코드의 특성, 호스트 시스템 및 자기 테이프 데이터 저장 시스템의 상대적 성능의 함수, 이전의 백스페이스 동작의 회수의 함수, 또는 이전의 백스페이스 동작의 길이의 함수로 이루어진다. 미리 정해진 입력은 단계(88)에서 제공된다. 일 예로, 미리 정해진 입력은 가변 수의 세그먼트에 대한 최소나 최대수의 세그먼트를 포함할 수 있거나; 또한 상술된 바와 같이 버퍼 크기의 함수인 미리 정해진 수의 세그먼트를 포함할 수 있다.
이 구현으로 여러 함수 간 또는 하나 이상의 가변 수의 세그먼트 함수와 미리 정해진 수의 세그먼트 간의 선택이 가능하게 되면, 단계 90은 단계 91에서 보유되는 버퍼링 데이터 세그먼트의 수를 결정하기 위해, 함수나 조합의 선택을 포함한다. 하나의 함수만이 이용되게 되면, 단계 91은 생략될 수 있다. 유사하게, 미리 정해진 수의 세그먼트만이 버퍼링 데이터를 보유하는 데에 이용되게 되면, 단계 85, 87, 88 및 90은 생략될 수 있다.
따라서, 선택된 함수로, 단계 91은 버퍼링 데이터를 보유할 세그먼트의 수를 결정한다. 또한, 세그먼트의 수는 가변인 경우, 함수에 따라서 프로세스 동안 변경될 수 있다.
단계 95에서, 버퍼 관리 시스템은 단계 80에서 수신된 프로세스에 대해 버퍼 를 동작하고, 단계 87은 그 프로세스로부터의 피드백을 가변 함수 입력에 제공한다.
프로세스에 대한 순차적 버퍼의 동작 동안, 버퍼링 데이터는 예를 들어, 도 4의 포인터(70)를 이용하여 결정된 세그먼트의 수에 기초하여 보유될 수 있으며, 이것은 버퍼(60)의 세그먼트를 통해 좌측에서 우측으로 프로세스 시퀀스로서 이동한다.
다른 실시예에서, 세그먼트는 단계 89에서 추적되며, 이들의 데이터는 전달되어 덮어쓰기가 가능하게 되고, 그렇지만 이 세그먼트는 덮어쓰기되어 있지 않다. 그 데이터는 단계 84에서 VALID 데이터로서 다시 인에이블될 수 있다. 일 실시예에서, 버퍼는 버퍼링 데이터를 보유하는 것이 가능하지 않아, 단계 91 및 96를 건너뛰므로 덮어쓰기에 가능한 세그먼트만이 단계 89에서 추적되게 된다.
다음에, 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 행하는 자기 테이프 데이터 저장 시스템에 바로 이어서, 단계 96에서 버퍼 관리 시스템은 버퍼링된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 세그먼트 중 적어도 하나와 버퍼의 모두 보다 적은 세그먼트에, 단계 91에서 지정된 개수까지 보유하므로, 이 보유된 버퍼링된 데이터는 보유되는 동안 덮어쓰기되는 것이 방지된다. 다음에 시스템은 단계 80에서 다음 프로세스로 진행될 준비가 되어 있으며, 이전의 프로세스의 버퍼링된 데이터는 버퍼(60)의 결정된 수의 세그먼트에 보유되게 된다. 단계 80에서 자기 테이프 데이터 저장 시스템이 전달 프로세스에서 다른 프로세스로 전환되면, 단계 82에서 버퍼 관리 시스템은 보유된 버퍼링 데이터가 VALID 데이 터를 포함한다고 나타내고, 이로 인해 데이터는 자기 테이프로부터 판독될 필요가 없게 된다. 대신에, 후속 프로세스가 실행될 수 있으며, 버퍼에 보유된 데이터를 직접 이용할 수 있다. 그 결과, 자기 테이프 데이터 저장 시스템은 데이터를 판독할 필요가 있는 지점에서의 동작 속도로 자기 테이프를 가속하는 지점으로 매체를 이동할 필요가 없게 된다. 또한, 버퍼링 데이터를 버퍼의 모두보다 적은 세그먼트에 보유함으로써, 버퍼는 후속의 프로세스를 실행하기는 데에 이용될 수 있다.
도 6, 7 및 8은 기록 프로세스에서 종래 기술에 따른 자기 테이프 데이터 저장 시스템의 버퍼의 데이터, 동일한 기록 프로세스에서 본 발명의 실시예에 따른 버퍼의 데이터 및 영구 에러 이후의 에러 회복을 위한 도 7의 버퍼의 데이터의 이용을 각각 나타낸다.
도 6은 버퍼링 데이터가 적어도 자기 테이프에 기록되고 있는 속도 정도로 호스트 시스템에 의해 공급되고 있으며 버퍼(60)의 세그먼트(97)가 호스트로부터 더 많은 데이터를 버퍼링하기 위해 릴리스되고 있는 기록 프로세스를 나타낸다. 따라서, 데이터 세그먼트 대부분은 호스트에 의해 공급된 버퍼링 데이터를 포함하며 이 세그먼트는 릴리스시 바로 덮어쓰기되며, 문자 "B"로 나타내었다. 이 때, 세그먼트(99)에서의 포인터(98)는 세그먼트 "M"(101)와 같이 버퍼링 데이터가 자기 테이프에 기록될 때 릴리스되는 세그먼트가 이용 가능하게 될 정도로 세그먼트(101)에서의 포인터(100)를 따라잡게 되고, 세그먼트 "H"(99)과 같이 호스트에 의해 바로 덮어쓰기 되므로, 이미 완전히 기록되어 있는 데이터를 갖는 세그먼트는 없게 된다.
도 7을 참조하여, 본 발명의 바람직한 실시예에 따르면, 자기 테이프 데이터 저장 시스템의 일부가 데이터를 자기 테이프에 기록함으로써 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하게 되면, 적어도 하나의 데이터 레코드는 세그먼트 중 적어도 하나에서 순차적 버퍼에 버퍼링되고, 예를 들어 포인터(103)를 이용하는 버퍼 관리 시스템은 예를 들어, 세그먼트(104)로 나타낸 세그먼트 중 적어도 하나에 자기 테이프에 기록된 버퍼링 데이터를 보유하므로, 이 보유된 세그먼트의 버퍼링 데이터는 보유되는 동안 덮어쓰기되는 것이 방지된다. 포인터(98)는 이제 호스트가 버퍼에 데이터를 공급하는 세그먼트(107)를 가르키게 된다.
따라서, 자기 테이프에 방금 기록된 데이터에서 영구 에러가 발견되고 있는 경우에는, 도 6의 종래 기술의 프로세스의 버퍼에는 "양호 데이터"가 전혀 남아있지 않다. 반대로, 도 7의 버퍼는 다수의 세그먼트(104)에 버퍼링 데이터를 보유하고, 그 데이터가 덮어쓰기 되지 않게 한다. 따라서, 다음 프로세스는 방금 기록된 데이터를 회수 및 복귀하기 위한 복구 동작인 경우, 그 데이터는 세그먼트(104)에서 도 8에 나타낸 바와 같이, 본 발명의 바람직한 실시예에 따라서 VALID 데이터로 변환되어, 복구 프로세스에 이용 가능하다. 이 예에서, 보유된 데이터양은 현재 레코드 크기 (통상 16mb 보다 크지 않음) 또는 마지막 동기화 이벤트 이후 보내지는 데이터양에 관련된다.
다른 실시예에서, 도 7을 참조하면, 포인터(105)는 데이터가 매체에 전달되어 덮어쓰기에 이용 가능하게 되는 "w"으로 나타낸 세그먼트(106)를 추적하는 데에 이용되고, 이 세그먼트는 덮어쓰기 되어 있지 않다. 다르게, 포인터(98)가 이 목적에 이용될 수 있다. 이 데이터를 갖는 세그먼트는 보유된 데이터를 갖는 세그먼에 부가하여, VALID 데이터로서 활성 상태로 복구될 수 있다. 또한, 버퍼는 버퍼링 데이터를 보유하는 것이 가능하지 않으며, 덮어쓰기가 가능한 세그먼트(106)는 포인터(105)에 의해 추적된다. 이 경우, 세그먼트(104)는 보유되는 것이 아니고, 포인터(105)에 의해 추적되는 것이다.
호스트 시스템은 방금 기록되거나 판독된 데이터에 대해 작은 파일이나 트레일러 동작을 실행할 수 있다. 예를 들어, 하나의 호스트는 작은 트랜잭션을 기록하고 있고, 또 다른 것은 처리되고 있으며, 이것은 이전의 엔티티의 일부를 조사하는 것을 포함할 수 있다. 반복적인 시퀀스는 다음과 같이 결과된다:
W1) 볼륨 트레일러로의 백스페이스
W2) 볼륨 트레일러 판독
W3) 마지막 트랜잭션 헤더로 백스페이스
W4) 헤더 판독
W5) 트레일러로 스페이스
W6) 트레일러 판독
W7) 새로운 트랜잭션 기록
W8) 트레일러 기록 등
본 발명의 바람직한 실시예에 따라 버퍼에 버퍼링 데이터를 보유하는 것은 이 W1-W6이 자기 테이프 판독 동작 없이 행해질 수 있게 하여, 기록 동작만이 실행 되게 된다.
이것은 판독 처리만으로 더욱 효율적이 되며, 이 때 별개의 호스트 트랜잭션 처리는:
R1) 마지막 트랜잭션 트레일러로 백스페이스
R2) 트레일러 판독
R3) 이 트랜잭션의 헤더 판독
R4) 트랜잭션 판독
R5) 트레일러 판독 등
을 포함한다.
도 9A, 9B, 9C 및 9D는 데이터가 자기 테이프 데이터 저장 시스템에 의해 판독되어 버퍼링되고 있는 판독 프로세스를 나타내며, 이 버퍼된 데이터는 호스트 시스템에 전달되고 있다. 판독되어 버퍼링된 데이터는 문자 "B"로 나타내었다. 도 9A에서 데이터는 최소한 버퍼링 데이터가 호스트 시스템에 전달되고 있는 속도 정도에서 자기 테이프로부터 판독 및 버퍼링되고 있으며 버퍼(60)의 세그먼트(112)는 자기 테이프로부터 더 많은 데이터를 버러핑하기 위해 릴리스된다. 따라서, 데이터 세그먼트 대부분은 호스트에 의해 공급된 버퍼링 데이터를 포함하며, 그 세그먼트는 릴리스시 바로 덮어쓰기된다. 이 때, 세그먼트(119)에서의 포인터(118)는 세그먼트 "H"(116)와 같이 버퍼링 데이터 "B"가 호스트 시스템에 공급될 때 릴리스되는 세그먼트가 세그먼트 "M"(119)와 같이, 자기 테이프 데이터 저장 시스템에 의해 바로 덮어쓰기될 정도로, 세그먼트(116)에서의 포인터(115)를 따라 잡으므로, 판독 된 데이터를 갖는 세그먼트는 없다.
상기 단계 "R1"를 실행하기 위해서, 종래 기술에서는 자기 테이프 데이터 저장 시스템이 마지막 트랜잭션 트레일러의 뒤쪽 위치로 자기 테이프를 후진 위치 지정해야 한다. 자기 테이프 데이터 저장 시스템이 (정상적인 동작에 기초하는) 선행 판독에 기초하는 판독 동작을 실행하고 있다면, 자기 테이프는 호스트에 공급된 마지막 트랜잭션 트레일러의 뒤쪽 위치로부터 상당한 거리 떨어져 있다. 이것은 버퍼(60)에서 본 것으로, 자기 테이프로부터 판독된 버퍼링 데이터 "B"로 가득 차 있다. 자기 테이프가 재위치 정해지면, 버퍼는 도 9B에서 나타낸 바와 같이 비워진다.
자기 테이프가 재위치 정해지면, 이것은 자기 테이프 데이터 저장 시스템이 트레일러를 판독하고(단계 "R2"), 이 트랜잭션의 헤더를 판독하도록(단계 "R3") 하는 속도로 가속된다. 다음에 자기 테이프 데이터 저장 시스템은 도 9C에서 나타낸 바와 같이, 선행 판독 프로세스를 재개하여, 포인터(118)를 세그먼트(120)로 이동시키고, 버퍼(60)의 세그먼트(121)에서 판독된 버퍼 데이터를 제공한다.
다음에, 도 9D에서, 호스트 시스템은 포인터(115)를 세그먼트(130)으로 이동시킨 것으로 나타낸 바와 같이, 버퍼(60)로부터 데이터를 수신하기 시작하여, 세그먼트(131)에서 덮어쓰기될 수 있는 판독 데이터를 남겨둔다.
자기 테이프의 후진 이동에 소모되는 시간은 본 발명의 바람직한 실시예에 따른 버퍼의 다수의 세그먼트에 버퍼링 데이터를 보유하는 것으로 제거될 수 있다.
도 10은 종래 기술의 도 3A 또는 도 9A의 것과 유사한 동작을 실행할 때의 새로운 판독 프로세스를 나타내며, 여기서 따라 잡기는 발생하긴 하지만, 본 발명의 바람직한 실시예에 따라 실행되게 된다. 도 10에서, 판독 동작은 포인터(150)에 의해 나타낸 바와 같이, 자기 테이프 데이터 저장 시스템에 의해 판독되어 버퍼링되고 있는 것으로, 세그먼트는 자기 테이프로부터 판독되고 있는 데이터로 "M"으로 나타내고, 버퍼된 데이터는 포인터(151)에 의해 나타낸 바와 같이, 호스트 시스템에 전달되고 있으며, 이 세그먼트는 호스트 시스템에 전달되고 있는 버퍼링 데이터로 "H"로 나타낸다. 데이터는 적어도 버퍼된 데이터가 호스트 시스템에 전달되고 있는 속도 정도에서 자기 테이프로부터 판독 및 버퍼링되고 있으며 버퍼(60)의 세그먼트(138)는 자기 테이프로부터 더 많은 데이터를 버퍼링하기 위해 릴리스된다. 그러나, 본 발명의 바람직한 실시예에 따르면, 버퍼 관리 시스템은 세그먼트들 중 적어도 하나와, 버퍼의 모두 보다 적은 세그먼트에 버퍼링 데이터를 보유하여, 이 보유된 버퍼링 데이터가 가장 큰 수치의 번호를 갖는 오래된 데이터 세그먼트로 나타낸 세그먼트(141, 142, 143, 144 및 145)와 포인터(140)로 나타낸 바와 같이, 보유되는 동안 덮어쓰기되는 것이 방지되게 된다. 세그먼트(152)에서의 포인터(150)는 선행 판독 프로세스를 나타내며, 세그먼트(145)에서의 포인터(140)를 따라 잡아, 보유된 버퍼링 세그먼트를 덮어쓰기하지 않도록 방지된다.
도 11A에서 나타낸 바와 같이, 상기 단계 "R1"를 실행하기 위해서, 자기 테이프 데이터 저장 시스템은 종래 기술에서와 같이 자기 테이프를 후진으로 재위치 정하는 것이 필요하지 않다. 그보다, 자기 테이프 데이터 저장 시스템이 전달 프로세스에서 단계 "R1"의 프로세스로 전환될 때, 버퍼 관리 시스템은 세그먼트 중 적어도 하나의 보유된 버퍼링 데이터를 나타내며, VALID 데이터를 포함하고, 세그먼트(143)에서 재위치 정해진 포인터(151)에 의해 나타낸 바와 같이, 호스트를 마지막 트랜잭션 트레일러를 포함하는 원하는 세그먼트로 후진하여 논리적으로 재위치 설정한다. 보유된 버퍼링 데이터는 VALID로 나타내고 문자 "B"에 의해 여전히 버퍼링된 것으로 나타내어진다.
따라서, 도 11B에서 나타낸 바와 같이, 데이터는 정방향으로의 포인터(151)의 이동으로 나타낸 바와 같이, 상기 단계 "S2" 등에 따라 다시 호스트에 보내질 수 있다. 그동안, 도 11A와 도 11B에서, 포인터(140)는 자기 테이프 데이터 저장 시스템의 선행 판독 기능이 보유된 데이터를 덮어쓰기하지 않도록 방지한다. 버퍼링 데이터를 보유하는 세그먼트의 수가 결정된 수의 세그먼트에 다시 달하게 되면, 포인터(140)는 전진 이동하여 선행 판독 프로세스가 이전의 지점으로부터 계속되게 한다.
도 12는 호스트가 "정스페이스" 동작을 실행하여, 세그먼트(160)에서의 데이터로 건너 뛴 도 11A 및 도 11B에 나타낸 것에 이어지는 잠재적 단계를 나타내며, 데이터가 버퍼에 남아 있기 때문에 버퍼 관리 시스템에 의해 논리적으로 억세스되게 된다.
도 13은 포인터(160)에 의해 나타낸 바와 같이, 데이터가 호스트 시스템에 의해 공급되고 있는 기록 프로세스를 나타내며, 이 세그먼트는 문자 "H"로 나타내며, 자기 테이프 데이터 저장 시스템은 포인터(161)에 의해 나타낸 바와 같이, 자기 테이프에 데이터를 기록하고 있으며, 이는 문자 "M"으로 나타낸다. 본 발명의 바람직한 실시예에 따르면, 버퍼링 데이터는 다수의 세그먼트(170, 171, 172 및 173)에 보유되며, 포인터(163)에 의해 나타내었다. 기록되어 보유되지 않은 남은 데이터는 덮어쓰기되며, 문자 "w"로 지정되어 있다.
다음 프로세스에서 호스트 시스템은 방금 기록된 데이터를 판독하고 싶어한다. 종래 기술에서, 그 데이터는 덮어쓰기가 가능하여 유효하지 않다. 그러나, 본 발명의 바람직한 실시예에 따르면, 데이터 중 약간이나 모두가 보유되어 덮어쓰기되는 것이 방지된다. 도 14에서, 자기 테이프 데이터 저장 시스템이 전달 프로세스에서 후진 판독 프로세스로 전환될 때에, 버퍼 관리 시스템은 세그먼트 중 적어도 하나의 보유된 버퍼링 데이터가, VALID 데이터를 포함하고, 보유된 버퍼링 데이터, 현재 후진 판독을 위한 VALID가 버퍼링된 것으로 문자 "B"로 지정된 것을 나타낸다. 판독 동작을 위한 호스트 포인터는 버퍼(60)에서 우측에서 좌측으로 이동하고, 포인터(163)는 그 세그먼트(173)가 후진 판독을 위해 보유된 데이터 중 마지막 것을 나타내는 것을 지시한다.
도 1의 자기 테이프 데이터 저장 시스템(10)의 도시된 구성 요소 및 도 2의 버퍼 관리 시스템의 구성 요소들은 당업자에게는 잘 알려진 바와 같이, 변형, 조합될 수 있거나, 조합된 기능들이 분리될 수 있다. 도 5에서 나타낸 단계들은 당업자에게는 잘 알려진 바와 같이, 순서가 변경되거나, 생략되거나, 다른 단계가 부가될 수 있다.

Claims (9)

  1. 자기 테이프 데이터 저장 시스템의 버퍼 시스템에 있어서, 상기 자기 테이프 데이터 저장 시스템은 자기 테이프 상에 데이터를 기록하고 판독하기 위해 자기 테이프와 관련하여 데이터를 전달하고, 상기 버퍼 시스템은: 복수의 세그먼트를 포함하는 순차적 버퍼; 및 버퍼 관리 시스템을 포함하고, 상기 버퍼 관리 시스템은: 상기 자기 테이프 데이터 저장 시스템의 일부가 상기 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하게 되면, 적어도 하나의 데이터 레코드를 상기 세그먼트 중 적어도 하나에서 상기 순차적 버퍼에 버퍼링하고; 상기 자기 테이프 데이터 저장 시스템이 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하는 것에 이어서, 상기 버퍼된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 상기 세그먼트 중 적어도 하나와 상기 버퍼의 모두 보다 적은 세그먼트에 보유하여 상기 보유된 버퍼링 데이터가 보유되는 동안 덮어쓰기가 방지되도록 하는 버퍼 시스템.
  2. 제1항에 있어서, 상기 세그먼트 중 상기 적어도 하나의 상기 보유된 버퍼링 데이터를 나타내기 위한 수단을 더 포함하고, 상기 수단은 VALID 데이터를 포함하고, 이로 인해 상기 데이터는 상기 자기 테이프로부터 판독될 필요가 없는 버퍼 시스템.
  3. 제1항에 있어서, 상기 세그먼트 중 상기 적어도 하나는 가변 개수의 상기 세그먼트인 버퍼 시스템.
  4. 제3항에 있어서, 상기 자기 테이프 데이터 저장 시스템이 상기 전달 프로세스로부터 다른 프로세스로 전환될 때에, 상기 가변 수의 상기 세그먼트의 상기 보유된 버퍼링 데이터가 VALID 데이터를 포함하여 이로 인해 상기 데이터는 상기 자기 테이프로부터 판독될 필요가 없다는 것을 나타내기 위한 수단을 더 포함하는 버퍼 시스템.
  5. 제1항에 있어서, 상기 버퍼 관리 시스템은 부가하여, 상기 자기 테이프 데이터 저장 시스템의 백스페이스와 전진 판독 동작의 실행 명령시, 상기 세그먼트의 상기 적어도 하나의 상기 보유된 버퍼링 데이터 중 적어도 약간을 대신에 제공하는 버퍼 시스템.
  6. 제1항에 있어서, 상기 버퍼 관리 시스템은 부가하여, 상기 자기 테이프 데이터 저장 시스템의 후진 판독 동작의 실행 명령시, 상기 세그먼트 중 상기 적어도 하나의 상기 보유된 버퍼링 데이터 중 적어도 약간을 대신에 제공하는 버퍼 시스템.
  7. 자기 테이프 데이터 저장 시스템에 있어서: 자기 테이프 상에 데이터를 기록 하고 판독하기 위한 적어도 하나의 자기 헤드; 상기 적어도 하나의 자기 헤드에 관련하여 자기 테이프를 이동시키기 위한 드라이브 메커니즘; 복수의 세그먼트를 포함하는 순차적 버퍼; 및 상기 드라이브 메커니즘을 동작하기 위한 제어 프로세서를 포함하고, 상기 적어도 하나의 자기 헤드 및 상기 순차적 버퍼는 데이터를 자기 테이프 상에 기록 및 판독하기 위해 데이터를 자기 테이프와 상대적으로 전달하고, 상기 제어 프로세서는: 적어도 하나의 데이터 레코드를, 상기 자기 테이프 드라이브의 일부가 상기 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하게 되면, 상기 세그먼트 중 적어도 하나에서 상기 순차적 버퍼에 버퍼링하고; 상기 자기 테이프 데이터 저장 시스템이 적어도 하나의 데이터 레코드를 전달하는 상기 전달 프로세스를 실행한 데에 이어서, 상기 버퍼링된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 상기 세그먼트 중 적어도 하나와 상기 버퍼의 모두 보다 적은 상기 세그먼트에 보유하여, 상기 보유된 버퍼링 데이터가 보유되는 동안 덮어쓰기되는 것이 방지되도록 하는 자기 테이프 데이터 저장 시스템.
  8. 자기 테이프 상에 데이터를 기록하고 판독하기 위해 데이터를 자기 테이프에 관련하여 전달하기 위한 자기 테이프 데이터 저장 시스템에 있어서, 상기 자기 테이프 데이터 저장 시스템은 복수의 세그먼트를 포함하는 순차적 버퍼를 갖고, 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하는 동안 상기 적어도 하나의 데이터 레코드를 상기 세그먼트 중 적어도 하나에서 상기 순차적 버퍼에 버퍼링하는 단계; 적어도 하나의 데이터 레코드를 전달하는 상기 전달 프로세스를 실 행한 데에 이어서, 상기 버퍼링된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 상기 세그먼트 중 적어도 하나와 상기 버퍼의 모두 보다 적은 상기 세그먼트에 보유하여, 상기 보유된 버퍼링 데이터가 보유되는 동안 덮어쓰기되는 것이 방지되도로고 하는 단계를 포함하는 방법을 가지는 자기 테이프 데이터 저장 시스템.
  9. 컴퓨터 판독 가능한 프로그램 코드가 내부에 구현되어 있는 프로그래머블 컴퓨터 프로세스로 이용 가능한 컴퓨터 프로그램 제품에 있어서, 상기 프로그래머블 컴퓨터 프로세서는 자기 테이프 데이터 저장 시스템의 버퍼 시스템을 관리하고, 상기 자기 테이프 데이터 저장 시스템은 데이터를 자기 테이프 상에 기록 및 판독하고, 상기 버퍼 시스템은 복수의 세그먼트를 포함하는 순차적 버퍼를 갖고, 상기 컴퓨터 프로그램 제품은: 상기 프로그래머블 컴퓨터 프로세서가 적어도 하나의 데이터 레코드를 전달하는 전달 프로세스를 실행하는 동안 상기 적어도 하나의 데이터 레코드를 상기 세그먼트 중 적어도 하나에서 상기 순차적 버퍼에 버퍼링하도록 하는 컴퓨터 판독 가능 프로그램 코드; 적어도 하나의 데이터 레코드를 전달하는 상기 전달 프로세스를 실행한 데에 이어서, 상기 버퍼링된 적어도 하나의 데이터 레코드의 버퍼링 데이터를 상기 세그먼트 중 적어도 하나와 상기 버퍼의 모두 보다 적은 상기 세그먼트에 보유하여, 상기 보유된 버퍼링 데이터가 보유되는 동안 덮어쓰기되는 것이 방지되도록 하는 컴퓨터 판독 가능한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
KR1020057020665A 2003-05-29 2004-05-18 자기 테이프 데이터 저장 시스템 버퍼 관리 KR20060017764A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/447,899 2003-05-29
US10/447,899 US7107397B2 (en) 2003-05-29 2003-05-29 Magnetic tape data storage system buffer management

Publications (1)

Publication Number Publication Date
KR20060017764A true KR20060017764A (ko) 2006-02-27

Family

ID=33451369

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057020665A KR20060017764A (ko) 2003-05-29 2004-05-18 자기 테이프 데이터 저장 시스템 버퍼 관리

Country Status (4)

Country Link
US (1) US7107397B2 (ko)
KR (1) KR20060017764A (ko)
TW (1) TWI273560B (ko)
WO (1) WO2004107158A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5093966B2 (ja) * 2001-03-29 2012-12-12 ニュアンス コミュニケーションズ オーストリア ゲーエムベーハー 編集中における音声カーソルとテキストカーソルの位置合わせ
US8504369B1 (en) * 2004-06-02 2013-08-06 Nuance Communications, Inc. Multi-cursor transcription editing
US7836412B1 (en) 2004-12-03 2010-11-16 Escription, Inc. Transcription editing
JP4131517B2 (ja) * 2005-09-06 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション テープ媒体にデータを書き込むための装置
US7970989B2 (en) * 2006-06-30 2011-06-28 Intel Corporation Write ordering on disk cached platforms
EP1903437A3 (en) * 2006-07-31 2008-10-22 Seiko Epson Corporation Update data transmission method, firmware writing system, and update data transmission program
JP4432088B2 (ja) * 2007-02-28 2010-03-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 一連の処理を所定の順序で行うための処理システム、ストレージ装置、及び方法
US8108601B2 (en) * 2007-10-05 2012-01-31 Imation Corp. Methods for implementation of an array of removable disk drives
JP4912472B2 (ja) * 2007-11-05 2012-04-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 磁気テープへの書込み制御方法及びその方法を実行する磁気テープ装置
JP5044822B2 (ja) * 2008-05-02 2012-10-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データをテープ媒体に書き込む装置及び方法
US7903363B2 (en) * 2008-06-05 2011-03-08 International Business Machines Corporation Same Wrap backhitchless write method to encode data on a tape storage medium
WO2011058794A1 (ja) 2009-11-13 2011-05-19 インターナショナル・ビジネス・マシーンズ・コーポレーション データの書込みを制御する装置及び方法
JP5643152B2 (ja) 2011-05-19 2014-12-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テープ記憶装置、データ書込み方法、及び、プログラム
US11442659B2 (en) * 2019-11-20 2022-09-13 International Business Machines Corporation Reading sequentially stored files based on read ahead groups

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4792898A (en) * 1986-09-26 1988-12-20 Mccarthy Donald F Method and apparatus for temporarily storing multiple data records
US5210851A (en) * 1988-01-08 1993-05-11 Hewlett-Packard Company High capacity tape drive transparently writes and reads large packets of blocked data between interblock gaps
US5121479A (en) * 1988-01-27 1992-06-09 Storage Technology Corporation Early start mode data transfer apparatus
DE69129320T2 (de) * 1990-10-23 1998-08-20 Tandberg Data Verfahren und Gerät zum schnellen Zugriff auf einem logischen Block auf einem Bandmedium
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5712970A (en) * 1995-09-28 1998-01-27 Emc Corporation Method and apparatus for reliably storing data to be written to a peripheral device subsystem using plural controllers
US5809522A (en) * 1995-12-18 1998-09-15 Advanced Micro Devices, Inc. Microprocessor system with process identification tag entries to reduce cache flushing after a context switch
US6141728A (en) * 1997-09-29 2000-10-31 Quantum Corporation Embedded cache manager
US6112255A (en) * 1997-11-13 2000-08-29 International Business Machines Corporation Method and means for managing disk drive level logic and buffer modified access paths for enhanced raid array data rebuild and write update operations
US6119209A (en) * 1998-02-03 2000-09-12 International Business Machines Corporation Backup directory for a write cache
JP3994532B2 (ja) * 1998-07-24 2007-10-24 ソニー株式会社 テープドライブ装置

Also Published As

Publication number Publication date
TW200504697A (en) 2005-02-01
WO2004107158A3 (en) 2005-07-07
US20040243760A1 (en) 2004-12-02
US7107397B2 (en) 2006-09-12
WO2004107158A2 (en) 2004-12-09
TWI273560B (en) 2007-02-11

Similar Documents

Publication Publication Date Title
US6856479B2 (en) Writing synchronized data to magnetic tape
US9025271B2 (en) Method for reading file using plurality of tape media
EP2372715A1 (en) Device and method for reading out data from recording medium
US7119974B2 (en) Storing data to magnetic tape both to one set of tracks and in the same operation rewritten to another set of tracks
US7107397B2 (en) Magnetic tape data storage system buffer management
US10353624B2 (en) Apparatus and method for writing data to recording medium
WO2011077798A1 (ja) テープ媒体の走行を制御する装置及び方法
US9471255B2 (en) Tape storage device and writing method therefor
US6839801B2 (en) Deferred writing of data to be synchronized on magnetic tape employing a non-volatile store
US8380952B2 (en) Storage system and data storage method using storage system which decides size of data to optimize the total of data size transfer efficiency
US20150055240A1 (en) Recovery of data written before initialization of format in tape media
US6950257B1 (en) Writing to magnetic tape with backhitchless backspacing and data set invalidation
US8176243B2 (en) Tape recording apparatus and method
CN101159158A (zh) 检测数据块中的损坏的方法和系统
EP0550761B1 (en) Method for controlling data recording on magnetic tape
US5581458A (en) Bufered intelligent digital tape controller with onboard ECC and featuring global control variables
JP5044822B2 (ja) データをテープ媒体に書き込む装置及び方法
JPS6359640A (ja) ログ情報フアイル制御方式

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid