KR19990072581A - 데이터전송방법및장치 - Google Patents

데이터전송방법및장치 Download PDF

Info

Publication number
KR19990072581A
KR19990072581A KR1019990004793A KR19990004793A KR19990072581A KR 19990072581 A KR19990072581 A KR 19990072581A KR 1019990004793 A KR1019990004793 A KR 1019990004793A KR 19990004793 A KR19990004793 A KR 19990004793A KR 19990072581 A KR19990072581 A KR 19990072581A
Authority
KR
South Korea
Prior art keywords
data
block
blocks
transmitted
scsi
Prior art date
Application number
KR1019990004793A
Other languages
English (en)
Other versions
KR100659915B1 (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 KR19990072581A publication Critical patent/KR19990072581A/ko
Application granted granted Critical
Publication of KR100659915B1 publication Critical patent/KR100659915B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Transfer Systems (AREA)

Abstract

SCSI을 사용한 전송으로, 서로 상이한 사이즈의 블록을, 블록 정보를 보존하면서 전송하도록 한 데이터 전송 장치가 개시되어 있다.
데이터는, 선두로부터 첫 번째 블록의 길이가 저장되고, 계속하여 첫 번째의 블록데이터가 저장된다. 규정 사이즈를 충족시키지 못할 때에는, 제로 패딩된다. 그 위에 계속하여, 두 번째의 블록의 길이가 저장되고, 이어서 두 번째의 블록데이터가 저장된다. N개의 블록이 전송되는 경우, N 번째의 블록데이터가 저장될 때까지, 마찬가지로 되풀이된다. N 번째의 블록데이터의 뒤에, 이 1회에 전송되는 총 블록수 N이 저장된다. 사이즈가 가변인 복수의 블록이 연속적으로, 또한, 블록정보를 보존한 채로 전송된다.

Description

데이터 전송 방법 및 장치{Method and apparatus for transferring data}
본 발명은, 대용량의 데이터를 순차 기록하는 것같은 테이프 스트리머에 사용하기에 적합한, 블록사이즈가 가변인 데이터를 고속으로 판독 기록할 수 있도록 한 데이터 전송 방법 및 장치에 관한 것이다.
데이터 용량의 증대화에 따라, 대용량의 데이터를 저장하는 수단으로서, 자기테이프 상에 데이터를 기록하는 것 같은 데이터 기록장치의 필요성이 늘고 있다. 이러한 자기 테이프를 이용한 기록매체에서는, 디스크에 의한 기록매체와는 달리, 데이터가 대개 시퀀셜로 기록된다. 이러한 기록장치는, 예를 들면 대용량의 하드디스크의 백업에 사용하여 아주 알맞은 것이다.
예를 들면, 호스트로 되는 컴퓨터에 대하여, 소정의 인터페이스를 통해서 이 기록장치를 접속한다. 호스트로부터 인터페이스를 통해서, 기록장치에 대하여 데이터 카피를 행하라는 취지의 명령이 발행된다. 그리고, 접속 인터페이스에 근거하는 소정의 교환이 이루어진 뒤, 호스트로부터 기록장치에 대하여 데이터가 전송되고 기록장치에 있어서 예컨대 자기테이프에 데이터가 기록된다.
종래에는, 이 호스트와 기록장치를 접속하기 위한 인터페이스로서, SCSI(Small Computer System Interface)가 주로 사용되고 있었다. 이 SCSI에서는, SCSI 버스에 접속되는 장치는, SCSI 명령을 발행하는 이니시에이터(예를 들면 SCSI 보드)와, SCSI 명령을 수취 실행하는 타깃(예를 들면 하드디스크)으로 분리된다. 이니시에이터와 타깃과의 사이에서 데이터의 전송이 행하여 진다. 상술한 예에서는, 컴퓨터에 대하여 SCSI 보드가 접속되고 기록장치가 타깃으로 된다.
그런데, 이 SCSI에서는, 데이터가 블록단위로 취급된다. 블록이란, 데이터의 어느 일정한 크기를 가진 집합이고, 이 블록이 복수집합파일을 구성한다. 이 블록은 파일을 작성하는 호스트 측에서 임의의 크기로 형성된다. SCSI에 의한 데이터의 전송은 블록정보를 보존하기 위해서 블록단위로 행하여 진다.
SCSI에는 복수의 블록을 하나로 통합하여 전송하는 모드도 준비되어 있으나, 이 모드에서는 통합하여 전송하는 블록의 사이즈가 서로 동일할 필요가 있다. 이 경우에는, 하나의 명령으로 복수의 블록을 전송할 수가 있다. 그러나, 전송하는 블록의 사이즈가 서로 다른 경우에는, 한 번의 전송, 즉 이니시에이터로부터 발행되는 하나의 명령으로 1블록의 전송밖에 할 수 없다고 하는 문제점이 있었다.
1회의 전송을 하기 위해서는, 데이터 본체를 전송하기 위한 전송시간 외에, 버스를 점유하기(아비트레이션) 위한 시간이나, 명령의 교환시간 등이 필요해진다. 이들 시간은 데이터 본체의 전송시간에 대하여 오버헤드가 된다.
이 오버헤드 시간은 블록사이즈가 비교적 큰 경우에는, 그리 문제가 되지 않는다. 그러나, 전송되는 블록사이즈가 작은 경우에는, 블록마다 소비되는 이 오버헤드 시간이 무시할 수 없게 되어, 전체로서 전송속도가 저하된다고 하는 문제점이 있었다.
본 발명의 목적은, 서로 다른 사이즈의 블록을 통합하여 전송할 수 있도록 한 데이터 전송 방법 및 장치를 제공하는 것이다.
도 1은, 본 발명의 실시의 제1 및 제2 예에 공통인 각 기기의 접속형태의 일례를 나타내는 블록도.
도 2의 (A) 및 도 2의 (B)는, 자기테이프 상의 데이터 이미지의 일례를 개념적으로 나타내는 개략 선도.
도 3은, 테이프 스트리머의 구성의 일례를 개략적으로 나타내는 블록도.
도 4는, 테이프 스트리머의 구성 중, 단자로부터 메모리까지의 구성의 일례를 나타내는 블록도.
도 5는, 테이프 스트리머의 구성 중, 메모리에 있어서의 데이터구조를 중심으로 하여 개략적으로 나타내는 블록도.
도 6은, 기록/판독(WRITE)/READ)) 명령의 구조의 일례를 나타내는 개략 선도.
도 7은, 기록 때에 작성되는 블록테이블의 일례를 나타내는 개략 선도.
도 8은, 테이프 스트리머에 대한 데이터의 기록 때의 처리를 개략적으로 나타내는 플로차트.
도 9a 및 도 9b는, 기록 때의 데이터전송의 모양을 종래 방법과 비교하여 나타내는 개략적인 선도.
도 10의 (A) 및 도 10의 (B)는, 제1의 실시예에 의한 방법으로 전송시간이 단축되는 것을 설명하기 위한 개략적인 선도.
도 11은, 테이프 스트리머로부터의 데이터의 판독 때의 처리를 개략적으로 나타내는 플로차트.
도 12는, 판독 때에 작성되는 블록테이블의 일례를 나타내는 개략적인 선도. 도 13a 및 도 13b는, 판독할 때의 데이터전송의 모양을 종래 방법과 비교하여 나타내는 개략적인 선도.
도 14의 (A) 및 도 14의 (B)는, 실시의 제1 예에 의한 방법으로 전송시간이 단축되는 것을 설명하기 위한 개략적인 선도.
도 15는, 실시의 제2 예에 의한 전송데이터의 구조의 일례를 나타내는 개략적인 선도.
도 16은, 실시의 제2 예에 의한, 테이프 스트리머에 있어서의 데이터 기록의 처리를 나타내는 플로차트.
도 17은, 실시의 제2 예에 의한, 테이프 스트리머에 있어서의 데이터판독의 처리를 나타내는 플로차트.
도 18은, 블록, 파일, 세트, 볼륨, 물리 디바이스 및 저장 시스템의 계층관계를 설명하기 위한 개략적인 선도.
도 19는, 실시의 제3 예에 의한 블록테이블의 구성을 나타내는 개략 선도.
도 20은, 실시의 제4 예에 의한 블록테이블의 구성을 나타내는 개략 선도.
*도면의 주요부분에 대한 부호의 설명*
1: 호스트 컴퓨터 2: SCSI 케이블
본 발명은, 상술한 과제를 해결하기 위해서, 블록사이즈가 가변인 디지털 데이터를 전송하는 데이터 전송 방법 및 장치에 있어서, 전송을 지시하는 1개의 명령에 의해서 블록사이즈가 서로 다른 복수의 데이터 블록을 전송할 때에, 복수 데이터 블록의 각각의 블록정보를 복수의 데이터 블록과 함께 전송하도록 한 것을 특징으로 하는 데이터 전송 방법 및 장치이다.
상술한 바와 같이, 본 발명에서는 복수 데이터 블록의 각각의 블록정보를 복수의 데이터 블록과 함께 전송하도록 되어있기 때문에, 블록사이즈가 가변인 복수의 데이터 블록을, 블록정보를 계속 보존하면서 연속적으로 전송할 수 있다.
이하, 본 발명의 실시예를 도면을 참조하면서 설명한다. 도 1은, 본 발명의 실시의 제1 및 제2의 예에 공통으로 적용할 수 있는, 각 기기의 접속형태의 일례를 나타낸다. 호스트 컴퓨터에는, SCSI 보드가 장착된다(도시하지 않음). 이 SCSI 보드에 대하여 SCSI 케이블(2)이 접속되고, SCSI 케이블(2)로써 호스트 컴퓨터(1)와, 본 발명이 적용되는 테이프 스트리머(3)가 접속된다. 테이프 스트리머(3)는 CPU나 메모리를 가지고 CPU의 제어에 근거하여 카세트에 수납된 자기 테이프를 기록매체로서 데이터의 기록/재생을 한다.
SCSI 보드는, 예를 들면 CPU를 가지고, 호스트 컴퓨터(1)로부터 나간 지시에 근거하여 SCSI 명령을 발행한다. 또한, SCSI 보드에서는, 호스트 컴퓨터(1)의 지시에 의한 데이터전송의 여러 가지 페이즈의 제어가 이루어진다. SCSI 명령에 근거하는 교환이 SCSI 케이블(2)을 통해서 상대측(이 예에서는 테이프 스트리머(3))과의 사이에서 이루어지고, 호스트 컴퓨터(1)와 테이프 스트리머(3)와의 사이에서의 데이터 전송이 행하여진다.
도 2의 (B) 및 도 2의 (B)는, 본 발명 실시의 제1 및 제2의 예에 공통으로 적용할 수 있는 테이프 스트리머(3)에 있어서의 자기테이프 상의 데이터 이미지의 일례를 나타낸다. 도 2의 (A)에 나타내어지는 바와 같이, 테이프 상에는 파일단위로 데이터가 기록된다. 각각의 파일 종단에는 파일의 구분코드인 마크 TM이 기록된다. 새로운 파일은 이 마크 TM의 뒤부터 기록된다. 파일의 각각은 도 2의 (B)에 나타내어지는 바와 같이,1 또는 복수의 블록으로 이루어진다. 각각의 블록사이즈는 이 도 2의 (B)와 같이 서로 다른 경우도있고, 모두 같게 되어 있는 경우도있다.
또한, 도시는 생략하지만, 테이프 전체의 선두에는, 테이프에 기록된 데이터를 관리하기 위한 관리테이블이 설치된다. 이 테이프를 테이프 스트리머(3)에 로드하였을 때에, 이 관리테이블을 판독하는 것으로 테이프 상의 파일 등의 배치를 참조할 수가 있다.
또, 테이프 스트리머(3)는, 나선형 스캔방식으로 자기테이프에 기록한다. 따라서, 자기테이프에는 나선형 트랙이 형성된다. 4개의 트랙으로 트랙세트가 형성되어, 자기테이프에의 데이터 기록은 이 트랙세트 단위로 행하여진다. 또한, 트랙세트의 각각에는 트랙세트를 서로 식별하기 위한 ID가 붙여진다. 1 트랙세트에 있어서, 데이터 본체가 저장되는 영역의 선두 측에 서브코드 데이터의 영역이 배치되어 ID가 기록된다. 한편, 데이터 본체가 저장되는 영역의 종단 측에는, 데이터 본체의 블록구성을 관리하는 블록관리 테이블이 배치된다.
도 3은, 본 발명 실시의 제1, 제2, 제3 및 제4의 예에 공통으로 적용할 수 있는, 상술한 테이프 스트리머(3)의 구성의 일례를 개략적으로 나타낸다. 입력단자(10)에 대하여 SCSI 케이블(2)이 접속된다. 데이터기록 시, 호스트 컴퓨터(1)로부터 전송된 데이터가 단자(10)로부터 SCSI 컨트롤러(11)에 공급된다. SCSI 컨트롤러(11)에서는, 단자(10)로부터 공급된 SCSI 명령의 해석이나 실행이 이루어짐과 동시에, 전송되는 데이터 본체와 그것에 부수하는 데이터와의 분리가 행하여진다.
분리된 데이터 본체는 데이터압축 컨트롤러 ALDC(12)에 공급되어 소정의 방법으로 압축부호화되고, 어드레스 컨트롤러 ADC(13)에 공급된다. 이 어드레스 컨트롤러 ADC(13)는 메모리(14)에 대한 어드레스제어를 하고, 메모리(14)에 있어서의 데이터의 판독제어를 한다. 예를 들면, 어드레스 컨트롤러 ADC(13)에 의해서, 메모리(14)에 대하여 액세스를 개시하는 어드레스가 포인터로서 지정됨과 동시에, 액세스되는 데이터사이즈가 지정된다. 데이터는 어드레스 컨트롤러 ADC(13)의 제어에 근거하여 자기테이프(18) 상의 이미지로 메모리(14)에 저장된다.
데이터는 어드레스 컨트롤러(13)의 제어에 근거하여, 기록 타이밍에 대응하여 메모리(14)로부터 판독되어져, ECC 인코더/디코더(15)에 공급된다. ECC 인코더/디코더(15)는 데이터기록 시에는 인코더, 판독 시에는 디코더의 기능이 되도록 구성되어 있다. 기록 시에는, 공급된 데이터가 예를 들면 리드솔로몬 부호를 사용한 적부호로써 에러 정정 부호화된다. 에러 정정 부호화된 데이터는 이퀄라이저(16)에 공급된다.
이퀄라이저(16)에 공급된 데이터는 기록매체에의 기록에 알맞은 신호로 변환되고, 회전 헤드인 기록헤드(17)에 의해서 나선형 트랙으로써 자기테이프(18)에 기록되어 기록된다. 이 예에서는, 4트랙이 1트랙세트로서 기록된다.
또, 도 3에서는 생략되어 있으나, SCSI 컨트롤러(11), 데이터압축 컨트롤러 ALDC(12), 어드레스 컨트롤러 ADC(13) 및 이퀄라이저(16)는 상술한 ECC 인코더/디코더(15)와 같이, 기록 및 판독의 양쪽에 대응하는 것 같은 구성으로 되어 있다.
한편, 판독 시에는, 자기테이프(18)로부터 회전 헤드인 재생 헤드(19)에 의해서 판독된 신호가 이퀄라이저(16)를 통해서 ECC 인코더/디코더(15)에 공급된다. 이 데이터는, ECC 인코더/디코더(15)로 에러 정정되어지고, 어드레스 컨트롤러 ADC(13)의 제어에 의해 메모리(14)에 기록된다.
메모리(14)에 기록된 데이터는, 어드레스 컨트롤러 ADC(13)의 제어에 의해, 소정의 타이밍으로 판독되어지고, 데이터압축 컨트롤러 ALDC(12)에 공급되어 압축부호화가 풀려 SCSI 컨트롤러(11)에 공급된다. 그리고, SCSI 컨트롤러(11)의 제어에 의해서 단자(10)로부터 SCSI 케이블(2)을 통해서 호스트 컴퓨터(1)에 대하여 전송된다.
이 테이프 스트리머(3)는 3개의 CPU(20, 22 및 23)를 갖는다. CPU(20)는 SCSI 컨트롤러(11), 데이터압축 컨트롤러(12) 및 어드레스 컨트롤러 ADC(13)를 제어한다. 그와 더불어, SCSI 컨트롤러(11)로, 상술한, 공급된 본체데이터로부터 분리되고 본체데이터에 부수한 데이터가 CPU(20)에 공급된다.
또한, CPU(20)의 제어에 근거하여 SCSI 컨트롤러(11)에서는, SCSI 컨트롤러(11)와 호스트 컴퓨터(1) 측의 SCSI 보드와의 사이에서의 데이터 및 명령의 교환을 한다.
CPU(22)는 ECC 인코더/디코더(15)를 제어함과 동시에, ECC 인코더/디코더(15)의 처리결과가 공급된다. 또한, CPU(23)는 고정 헤드(24)에 의해서 판독되어진 자기테이프(18)의 세로방향에 형성된 트랙의 신호나, 자기테이프(18)를 구동하기 위한 모터(25) 회전의 센스신호 등에 의해 모터(25)의 회전제어를 한다.
CPU(20)와 CPU(22)와의 사이에 접속되는 DPRAM(21)은 듀얼포트 RAM이고, CPU(20)와 CPU(22)와의 사이의 통신을 한다. 도 3에서는 생략되어 있으나, CPU(22)과 CPU(23)도 마찬가지로 하여 통신할 수 있다. 여기서는, CPU는 CPU(20, 22 및 23)의 3개가 사용되고 있으나, 이것은 이 예에 한정하지 않고, 전체적으로 1개의 CPU로 구성하여도 되고, 특정한 2개의 CPU를 조합하여서 구성할 수도있다.
도 4는, 도 3에 있어서의 구성 중, 단자(10)로부터 메모리(14)까지를 더욱 상세히 나타낸다. 이와 같이, SCSI 컨트롤러(11), 데이터압축 컨트롤러(12) 및 어드레스 컨트롤러(13)의 각각은 FIFO를 갖는다. 즉, SCSI 컨트롤러(11)는 단자(10)의 반대측에 FIFO(111)를 가지며, 데이터압축 컨트롤러(12)는 양측에 각각 FIFO(121 및 122)를 갖는다. 어드레스 컨트롤러(13)는 메모리(14)와 반대측에 FIFO(131)를 갖는다. 또한, SCSI 컨트롤러(11)와 데이터압축 컨트롤러(12)와의 사이에는, 나아가 CPU(20)에 의해서 판독 타이밍이 제어되는 FIFO(112)가 설치된다.
도 5는, 도 3의 구성을 메모리(14)에 있어서의 데이터구조를 중심으로 하여 개략적으로 나타낸다. 상술한 바와 같이, 메모리(14)에는 자기테이프(18)에의 기록의 이미지로 데이터가 저장된다. 자기테이프(18)에 대한 기록은, 상술한 바와 같이, 4개의 트랙으로 이루어지는 트랙세트를 단위로서 행하여진다. 메모리(14)에도 이 트랙세트를 단위로서 어드레스가 설치되고 데이터가 기록된다. 하나의 트랙세트 중에 복수의 블록데이터가 포함되도록 할 수 있다.
데이터는 트랙세트마다 어드레싱을 할 수 있도록, 메모리(14)에 대하여 배치된다. 예를 들면, 이 도 5와 같이, 메모리(14)의 어드레스의 1행에 대하여 1트랙세트가 배치된다. 메모리(14)로부터 트랙세트마다 데이터가 판독되어지고, 자기테이프(18)에 대한 4트랙 분의 기록이 행하여진다.
그런데, 예를 들면 테이프 스트리머(3)에 대한 데이터의 기록 때는, 호스트 컴퓨터(1)에서 SCSI 보드를 통해서 테이프 스트리머(3)에 대하여 데이터기록을 지시하는 기록(WRITE) 명령이 보내진다. 그와 동시에, 호스트 컴퓨터(1)에 있어서 블록 테이블이 작성되고 SCSI 보드를 통해서 테이프 스트리머(3)에 전송된다.
테이프 스트리머(3)로부터의 데이터의 판독도 , 판독(READ) 명령을 사용하여 같은 처리로써 행하여진다. 즉, 호스트 컴퓨터(1)로부터 테이프 스트리머(3)에 대하여 판독(READ) 명령이 보내어진다. 테이프 스트리머(3)에서는, 이 명령에 근거하여 테이프로부터의 데이터 판독을 행하고, 판독된 데이터에 근거하여 블록테이블이 작성된다. 블록데이터의 전송 후, 이 블록테이블이 전송된다.
호스트 컴퓨터(1)에 있어서의 이들 처리는, 예를 들면, OS(Operation System)와 애플리케이션과의 사이에 위치하여 호스트 컴퓨터(1)에 접속되는 주변기기의 관리 등을 하는 디바이스 드라이버에서 행하여진다. 그 때문에, 애플리케이션 측에서는, 이들 처리를 의식하지 않고, 통상의 파일 기록 및 판독과 같은 처리로 본 발명에 의한 처리를 실현할 수가 있다. 물론, 이것에 한하지 않고, 애플리케이션에 있어서 이 처리를 직접적으로 행하도록 하여도 된다.
도 6은, 기록(WRITE) 명령 및 후술하는 판독(READ) 명령의 구조의 일례를 나타낸다. 명령은 6바이트로부터 구성되고, 최초의 바이트는 오퍼레이션 코드로 된다. 오퍼레이션 코드에 저장되는 값에 의해서 이 명령의 종별이 판별된다. 이 예에서는, '0Ah'(h는, 16진 표기인 것을 나타낸다)로 기록(WRITE) 명령을 나타내고, '08h'로 판독(READ) 명령을 나타낸다. 다음 바이트에는, 논리 유닛번호 등의 각종의 파라미터가 저장된다. 이어지는 3바이트는 전송되는 데이터의 사이즈(총 전송 길이)를 나타낸다. 최후의 l 바이트는 제어 코드이다. 이 기록(WRITE)/판독(READ) 명령도, 실시의 제1 및 제2의 예에 대해서 공통으로 사용된다.
다음으로, 본 발명 실시의 제1 예에 관해서 설명한다. 본 발명에서는, 서로 사이즈가 다른 블록을 정리하여 전송할 수가 있다. 이 실시의 제1의 예에서는, 한번으로 통합하여 전송되는 복수의 블록에 대하여, 각각의 블록사이즈 등을 기록한 블록 테이블을 부가한다.
도 7은, 이 기록 때에 작성되는 블록테이블의 일례를 나타낸다. 기록 때의 블록테이블에는, 이와 같이, 최초의 4바이트로 전송하는 블록의 개수(N)가 저장되고, 계속하여 각각의 블록 길이가 블록의 전송순서로 4바이트씩 저장된다.
도 8은, 테이프 스트리머(3)에 대한 데이터의 기록 때의 처리를 개략적으로 나타내는 플로차트이다. 전송된 블록테이블은 테이프 스트리머(3)에 수신된다(스텝 S(10)). 테이프 스트리머(3)에서는, 수신된 블록테이블을 해석한 뒤(스텝 S(11)), 최초의 1블록 분의 데이터를 수신한다(스텝 S(12)). 스텝 S(13)로 블록 이미지가 작성된다. 작성된 블록 이미지로써 자기테이프에 데이터가 기록된다. 그리고, 처리는 스텝 S(11)에 되돌려지고, 다음 1블록 분의 처리가 행하여진다. 스텝 S(10)로 수신된 블록테이블에 대해서 모든 처리가 종료하면(스텝 S(14)), 예를 들면 다음 블록테이블의 수신이 대기된다.
도 9는, 이렇게 하여 행하여지는 데이터전송의 모양을 종래 방법과 비교하여 나타낸다. 도 9a는, 종래 방법으로써 서로 사이즈가 다른 복수의 데이터 블록을 전송하여 기록하는 예이다. 종래에는, 이와 같이 사이즈가 다른 블록마다 기록(WRITE) 명령을 발행할 필요가 있었다. 도 9B에 나타내어지는 본 발명에 의한 방법에서는, 복수의 데이터 블록을 전송할 때에 기록(WRITE) 명령이 1회만 보내어지고, 그 후 블록테이블이 전송된다. 그리고, 이 블록테이블에 근거하여 데이터 블록이 1개씩 전송된다.
이와 같이, 블록테이블을 최초로 전송하고, 그 후 블록을 전송하는 방법을 사용함으로써 종래의 블록마다 기록(WRITE) 명령을 발행하는 방법보다도대폭 데이터의 전송에 요하는 시간을 단축할 수가 있다. 종래 방법에서는, 도 10의 (A)에 일례가 나타내어지는 바와 같이, 블록마다 발행되는 명령에 대하여 각각 오버헤드시간을 요한다. 즉, 하나의 블록이 전송되고 나서 다음 블록이 전송되기까지의 사이에 소정의 오버헤드시간이 소비된다.
그에 대하여, 본 발명에 의한 방법에서는, 최초 1회의 기록(WRITE) 명령으로 블록테이블이 전송되어, 이 블록테이블의 내용에 응해서 연속적으로 블록이 전송된다. 그 때문에, 도 10의 (B)에 일례가 나타내어지는 바와 같이, 각 블록전송의 사이에는, 블록테이블의 해석시간이 소비될 뿐이다. 따라서, 도 10의 (A)의 예와 동일한 블록을 전송하는 경우라도전송시간이 대폭 단축된다.
도 11은, 테이프 스트리머(3)로부터의 데이터 판독 때의 처리를 개략적으로 나타내는 플로차트이다. 테이프 스트리머(3)로부터의 데이터의 판독 때는 호스트 컴퓨터(1)로부터 SCSI 보드를 통해서 테이프 스트리머(3)에 대하여 데이터 판독을 지시하는 판독(READ) 명령이 보내어진다.
테이프 스트리머(3)에서는, 수신된 판독(READ) 명령에 근거하여 자기테이프 상의 데이터의 판독이 행하여진다. 판독된 데이터는 일단 메모리에 축적되고, 데이터의 블록의 해석이 이루어진다(스텝 S(20)). 다음 스텝 S(21)에서, 해석된 블록이 1블록만 호스트 컴퓨터(1)의 SCSI 보드에 대하여 전송된다. 그리고, 테이프 스트리머(3)에 있어서, 예를 들면 메모리 상에, 전송된 데이터 블록에 관한 블록테이블이 작성된다(스텝 S(22)).
도 12는, 이 판독 때에 작성되는 블록테이블의 일례를 나타낸다. 판독 시의 블록테이블은 상술한 기록 시의 블록테이블과 같이, 테이블의 선두로부터 블록의 길이가 블록의 전송순서에 따라서 각각 4바이트씩 저장된다. 즉, 판독되어 전송된 블록의 길이 데이터가 순서대로 겹쳐 쌓여져 간다. 그리고, 전송하는 모든 블록의 길이가 저장되면, 이어서 전송하는 블록의 개수(N)가 4 바이트로 표시되어 저장된다.
스텝 S(20)로부터 스텝 S(22)까지의 처리가, 판독(READ) 명령으로 지시된 데이터가 모두 전송될 때까지 되풀이된다. 데이터의 전송이 종료하면(스텝 S(23)), 스텝 S(22)에서 작성된, 전송된 데이터의 모든 블록정보를 포함하는 블록테이블이 테이프 스트리머(3)로부터 호스트 컴퓨터(1)의 SCSI 보드에 전송된다(스텝 S(24)).
도 13a 및 도 13b는, 이와 같이 하여 행하여지는 데이터전송의 모양을 종래 방법과 비교하여 나타낸다. 도 13a는, 종래 방법으로써 서로 사이즈가 다른 복수의 데이터 블록을 판독 전송하는 예이다. 블록사이즈가 서로 다른 경우, 종래에는 이와 같이, 1회의 판독(READ) 명령으로써 1개의 데이터 블록밖에 판독해낼 수 없었다. 도 13b에 나타내어진 본 발명에 의한 방법에서는, 1회의 판독(READ) 명령으로 복수의 데이터 블록이 전송되고 그 후, 블록테이블이 전송된다. 데이터를 수신한 측에서는 전송된 블록테이블을 참조하는 것으로, 데이터구조의 해석을 할 수 있다.
이와 같이, 테이프로부터 판독되어진 데이터 블록을 해석하여 작성한 블록테이블을 전송함으로써, 종래의, 블록마다 판독(READ) 명령을 발행하는 방법보다도대폭 데이터 전송에 요하는 시간을 단축할 수 있다. 종래 방법에서는, 도 14의 (A)에 일례가 나타내어지는 것과 같이, 블록마다 발행되는 명령에 대하여 각각 오버헤드 시간을 요한다. 즉, 하나의 블록이 전송되고 나서 다음 블록이 전송되기까지의 사이에 소정의 오버헤드 시간이 소비된다.
그것에 대하여, 본 발명에 의한 방법에서는, 최초 1회의 판독(READ) 명령으로 연속적으로 블록이 전송되고, 끝으로 각 블록의 정보가 저장되는 블록테이블이 전송된다. 그 때문에, 도 14의 (B)에 일례가 나타내어지는 것과 같이, 각 블록전송의 사이에는 블록테이블의 해석시간이 소비될 뿐이다. 따라서, 도 14의 (A)의 예와 동일한 블록을 전송하는 경우라도 전송시간이 대폭 단축된다.
상술한 바와 같이, 블록테이블을 사용하여 전송을 함으로써, 전송시간의 대폭적인 단축을 실현할 수 있다. 즉, 실제로는 블록테이블은 전송되는 데이터 본체에 비하여 극히 작은 사이즈임과 동시에, 블록 해석은 CPU에서의 단순한 계산에 의해서 행하여지기 때문에, 블록 해석에 요하는 시간은 데이터의 전송시간에 대하여 무시할 수 있다. 그에 비하여, 종래 방법에 의한 오버헤드에 의해서 소비되는 시간은 버스의 컨트롤 등에 요하는 시간 등을 포함하므로 큰 것이 된다. 엄밀히 말하면, 블록테이블의 전송시간+(블록테이블 해석시간×N) < 오버헤드 시간×(N+1). 이러한 조건하에서, 본 발명에 의한 전송시간에 우위성이 있다.
다음으로, 본 발명의 실시의 제2 예에 관해서 설명한다. 상술한 실시의 제1의 예에서는, 테이프 스트리머(3)에 대한 데이터의 기록 시와 판독 시에서는, 블록테이블의 형식이 달랐다. 이 실시의 제2의 예에서는, 기록 시와 판독 시에서 데이터의 형식을 동일하게 하여 처리를 보다 평이하게 할 수 있도록 한 것이다.
도 15는, 이 실시의 제2의 예에 의한 전송데이터의 구조의 일례를 나타낸다. 여기서, N개의 블록을 하나로 모아 전송하는 것으로 한다. 선두의 4바이트에는 첫 번째로 전송되는 블록의 길이가 저장된다. 계속하여, 첫 번째 블록의 데이터 본체가 저장된다. 블록이 4바이트 단위로 완결하도록, 블록의 종단이 '0'으로 채워져, 제로 패딩이 이루어진다.
이러한, 블록 길이의 데이터와 블록본체의 데이터(및 제로 패딩)로 이루어지는 조가 전송되는 블록의 수만큼 되풀이된다. N개의 블록이 전송되는 이 예에서는, N 번째 블록의 데이터 본체가 저장될 때까지 되풀이된다. 전송되는 모든 블록이 저장되면, 최후의 4바이트로 전송 블록수인 N이 저장된다.
도 16은, 이와 같은 데이터구조에 근거하는, 이 실시의 제2의 예에 의한 테이프 스트리머(3)에 있어서의 데이터기록 처리를 나타내는 플로차트이다. 이 플로차트의 실행에 앞서 호스트 컴퓨터(1)에 있어서, 테이프 스트리머(3)에 기록하기 위한 데이터가 파일로서 준비되고, 그 파일의 테이프 스트리머(3)에 대한 예를 들면 카피가 지시된다. 이 지시에 근거하여, 호스트 컴퓨터(1)에서 기록(WRITE) 명령이 발행된다. 발행된 기록(WRITE) 명령은 SCSI 케이블(2)을 통해서 테이프 스트리머(3)의 SCSI 컨트롤러(11)에 전송되고, SCSI 컨트롤러(11)에서 CPU(20)에 건네어진다.
최초의 스텝 S(30)에 있어서, CPU(20)로부터 SCSI 컨트롤러(11)에 대하여 4바이트 분의 데이터 전송명령이 나간다. 이 4바이트 분의 데이터는 전송되는 블록의 사이즈를 나타내는 블록사이즈 데이터이다. 이 데이터는 SCSI 컨트롤러(11)의 내장 FIFO(111)에 저장된다. 스텝 S(31)에서, SCSI 컨트롤러(11)로부터 CPU(20)에 대하여 전송종료 통지가 나가면, 다음 스텝 S(32)에서 FIFO(111)에 저장된 블록사이즈 데이터가 CPU(20)에 의해서 얻어진다.
블록사이즈 데이터가 얻어지면, 스텝 S(33)에서, 얻은 블록데이터 사이즈에 부가 데이터 길이가 추가되고, 전송되는 데이터의 길이를 나타내는 전송 길이로 된다. 부가데이터 길이는 제로 패딩의 사이즈인 패딩 사이즈와 다음 블록사이즈 데이터 분의 4바이트로 이루어진다. 전송 길이는 SCSI 컨트롤러(11)의 내장 FIFO(111)에 세트된다.
다음 스텝 S(34)에서는, CPU(20)에 의해서 메모리(14)상에서의 전송을 하는 블록(#n으로 한다)의 개시 어드레스와, 그 블록 #n의 단락까지의 전송 길이가 어드레스 컨트롤러 ADC(13)에 대하여 세트된다. 그리고, CPU(20)로부터 전송개시 명령이 나간다.
또, 개시 어드레스는, 예를 들면 블록 #n이 최초로 전송되는 블록이면 메모리의 소정 어드레스가 개시 어드레스로 되고, 최초로 전송되는 블록이 아닌 경우에는, 전회 전송된 블록 어드레스에 근거하여 구할 수 있다. 블록 #n의 단락까지의 전송 길이는 예를 들면, 상술한 스텝 S(33)에서 얻어진 전송 길이로부터 구할 수 있다.
CPU(20)로부터 나간 전송개시 명령에 의해 블록 #n의 전송이 개시되고, 호스트 컴퓨터(1)로부터 SCSI 케이블(2)을 통해서 테이프 스트리머(3)에 블록 #n의 데이터가 전송된다. 전송된 데이터는 SCSI 컨트롤러(11), 데이터압축 컨트롤러 ALDC(12) 및 어드레스 컨트롤러 ADC(13)를 통해서 메모리(14)의 소정 어드레스에 저장된다.
어드레스 컨트롤러 ADC(13)로부터 CPU(20)에 대하여 블록 #n의 전송이 종료한 취지가 통지되면(스텝 S(35)), 스텝 S(36)에서, CPU(20)에 의해서 메모리(14) 상에서의 블록 #n의 계속이 개시되는 어드레스와, 그 블록 #n의 종단까지의 전송 길이에 패딩데이터 길이가 어드레스 컨트롤러 ADC(13)에 대하여 세트된다. 그리고, CPU(20)로부터 전송개시 명령이 나간다.
어드레스 컨트롤러 ADC(13)로부터 CPU(20)에 대하여 블록 #n의 전송이 종료한 취지가 통지되면(스텝 S(37)), 스텝 S(38)에서, CPU(20)에 의해서 메모리(14) 상에 다음 블록 #(n+1)이 기록되는 어드레스가 구하여진다. 그리고, 다음 스텝 S(39)에서, 스텝 S(38)에서 구하여진 어드레스와, 블록사이즈 데이터 분의 4바이트가 어드레스 컨트롤러 ADC(13)에 세트된다. 그리고, CPU(20)로부터 전송개시 명령이 나간다. 이에 의해, 블록사이즈 데이터가 메모리(14)에 기록된다.
어드레스 컨트롤러 ADC(13)로부터 CPU(20)에 대하여 블록#(n+1)의 전송이 종료한 취지가 통지되면(스텝 S(40)), 다음 스텝 S(41)에서, 메모리(14)에 기록된 블록사이즈 데이터가 판독되어지고, 다음으로 전송을 행하는 블록의 블록사이즈가 구하여진다. 그리고, CPU(20)에 의해서, 메모리(14)에 있어서의 포인터가 블록사이즈 데이터 분(4바이트) 되돌려진다(스텝 S(42)). 이에 의해, 메모리(14)에 있어서, 다음 블록은 직전에 기록된 블록에 계속하여 기록되게 된다.
다음 스텝 S(43)에서는, 기록(WRITE) 명령에 의한 전송이 모두 종료하였는지 어떤지가 판단된다. 기록(WRITE) 명령에는, 전송하는 데이터의 사이즈, 즉 총 전송 길이가 기록되어 있다. 또한, 도 15에 나타내어지는 바와 같이, 데이터의 종단에는 전송되는 총 블록수 N이 저장되어 있다. 이들 총 전송 길이 및 총 블록수 N을 전송종료 조건으로 하여 판단이 이루어진다. 만약, 아직 전송되어 있지 않은 블록이 있다고 하면, 처리는 스텝 S(34)로 되돌려진다.
다음으로, 테이프 스트리머(3)로부터의 데이터의 판독에 관해서 설명한다. 이 실시의 제2 예에서는, 판독 때에도 기록과 동일한 데이터구조가 사용된다. 도 17은, 테이프 스트리머(3)에 있어서의 데이터판독 처리를 나타내는 플로차트이다.
이 플로차트의 실행에 앞서, 호스트 컴퓨터(1)로부터 테이프 스트리머(3)에 대하여 로드된 테이프의 정보가 요구된다. 테이프 스트리머(3)에서는, 테이프 선두의 관리테이블을 판독, 테이프에 기록되어 있는 파일의 정보를 호스트 컴퓨터(1)에 전송한다. 호스트 컴퓨터(1)에서는, 이 정보에 근거하여 테이프 스트리머(3)로부터 판독하고 싶은 데이터를 지정하는 판독(READ) 명령이 발행된다. 이 판독(READ) 명령은 SCSI 케이블(2)을 통해서 테이프 스트리머(3)의 SCSI 컨트롤러(11)에 전송되고 SCSI 컨트롤러(11)로부터 CPU(20)에 건네어진다.
최초의 스텝 S(50)에서, 판독(READ) 명령에 근거하는 CPU(20)의 제어에 의해서 자기테이프(18)로부터 데이터가 판독되어진다. 판독되어진 데이터는 이퀄라이저(16)를 통해서 ECC 인코더/디코더(15)에 공급되고, 소정의 방법으로 에러 정정 처리가 실시된다. 이 때, 데이터에 정정 불능인 에러가 존재한 경우에는, 처리가 후술하는 스텝 S(64)로 건너뛰어진다(스텝 S(51)). 그리고, 스텝 S(64)에서, 예를 들면 전송한 블록의 수가 '0'이 되어 처리가 종료된다.
스텝 S(51)에서 에러가 없다고 여겨지면, 에러 정정된 데이터가 어드레스 컨트롤러 ADC(13)를 통해서 메모리(14)의 소정 어드레스로부터 테이프 상의 기록 이미지로 기록된다. 다음 스텝 S(52)에서는, CPU(20)에 의해 메모리(14)로부터 블록관리 테이블이 판독되어지고, 전송하는 블록의 블록사이즈가 취득된다. 블록사이즈를 나타내는 블록사이즈 데이터는 SCSI 컨트롤러(11)에 내장되는 FIFO(111)에 전송된다(스텝 S(53)).
블록사이즈 데이터의 전송이 종료되면(스텝 S(54)), 스텝 S(55)에서, CPU(20)에 의해 SCSI 컨트롤러(11)의 레지스터에 대하여 전송된 블록사이즈가 전송 길이로서 세트된다.
다음 스텝 S(56)에서는, CPU(20)에 의해 어드레스 컨트롤러 ADC(13)에 대하여 메모리(14) 중에 기록되고 있고, 전송하는 블록인 블록 #n의 개시 어드레스와, 이 블록 #n의 단락까지의 전송 길이가 세트된다. 그리고, 스텝 S(57)에서, CPU(20)로부터 어드레스 컨트롤러 ADC(13)에 대하여 전송개시 명령이 나간다.
이 명령에 근거하여, 메모리(14)의 블록 #n의 개시 어드레스로부터 전송 길이로 지정된 길이만큼 데이터가 판독된다. 판독된 데이터는 어드레스 컨트롤러 ADC(13) 및 데이터압축 컨트롤러 ALDC(12)를 통해서 SCSI 컨트롤러(11)에 공급된다. 그리고, SCSI 컨트롤러(11)에 있어서 SCSI 버스의 제어 등이 이루어지며, 단자(10)로부터 SCSI 케이블(2)을 통해서 호스트 컴퓨터(1)에 대하여 블록 #n이 전송된다.
전송이 종료하였다고 여겨지면(스텝 S(58)), 다음 스텝 S(59)에서, CPU(20)에 의해서 어드레스 컨트롤러 ADC(13)에 대하여 메모리(14)에 있어서 블록 #n의 계속이 시작되는 어드레스가 세트됨과 동시에, 블록 #n의 종단까지의 길이가 전송 길이로서 세트된다. 그리고, 스텝 S(60)에서 전송개시 명령이 내보내져, 전송이 개시된다.
전송이 종료하였다고 여겨지면(스텝 S(61)), 처리는 스텝 S(62)로 이행하고, CPU(20)에 의해서 SCSI 컨트롤러(11)의 내장 FIFO(111)에 대하여 패딩 데이터가 전송된다.
다음 스텝 S(63)에서, 판독(READ) 명령에 의한 전송이 모두 종료하였는지 어떤지가 판단된다. 판독(READ) 명령에는 전송하는 데이터의 사이즈, 즉 총 전송 길이가 기록되어 있다. 또한, 도 15에 나타내어지는 바와 같이, 데이터의 종단에는 전송되는 총 블록수 N이 저장되어 있다. 이들 총 전송 길이 및 총 블록수 N을 전송종료 조건으로 하여 판단이 이루어진다. 만약, 아직 전송되어 있지 않은 블록이 있다고 하면, 처리는 스텝 S(52)로 되돌려진다.
한편, 스텝 S(63)에서 전송이 종료하였다고 판단되면, 처리는 스텝 S(64)로 이행하여, CPU(20)에 의해서, 전송한 블록수 N이 SCSI 컨트롤러(11)의 내장 FIFO(111)에 전송된다. 그리고, 스텝 S(65)에서 전송의 종료를 기다려 일련의 처리가 종료된다.
다음으로, 본 발명의 실시의 제3 예에 관해서 설명한다. 본 발명의 실시의 제3 예에 있어서는, 발명의 실시의 제1 예의 블록테이블에 속성을 나타내는 1바이트의 데이터를 넣음으로써, 블록, 파일, 세트, 볼륨, 물리 디바이스 및 저장시스템의 계층으로 이루어지는 데이터를 연속적으로 기록하여도, 재생 시에 각 계층의 블록, 파일, 세트, 볼륨, 물리 디바이스의 각 경계를 식별할 수 있도록 한다.
도 18은, 블록, 파일, 세트(디렉토리), 볼륨, 물리 디바이스, 저장시스템의 관계를 나타낸다. 저장시스템(200)은 1개 이상의 물리 디바이스(210)를 갖는다. 이 물리 디바이스는 하드디스크이나 플로피디스크, 광디스크 등이다. 이 각 물리 디바이스(210)는 1개 이상의 볼륨(220)을 갖는다. 또한, 이 각 볼륨(220)은 1개 이상의 세트(230)를 갖는다. 나아가, 이 세트(230)는 1개 이상의 파일(240)을 갖는다. 나아가 또한, 이 각 파일(240)은 1개 이상의 블록(250)을 갖는다.
이와 같이, 블록, 파일, 세트, 볼륨, 물리 디바이스, 저장시스템은 서로 계층관계로 되어있다.
본 발명의 실시의 제3 예에 의한 블록테이블의 구성에 관해서, 도 19를 참조하여 상세히 설명한다. 도 19는, 본 발명의 실시의 제3 예에 의한 기록 시에 작성되는 블록테이블의 일례를 나타낸다. 도 19에 나타내어지는 바와 같이 최초의 4바이트로 전송하는 블록의 개수(N)가 나타내어진다.
이 블록의 개수(N)를 나타내는 데이터의 뒤에는, 속성을 나타내는 1바이트의 데이터와, i 번째의 블록의 길이(i=0, 1, 2,···, N)를 나타내는 데이터가 저장된다. 이 속성을 나타내는 데이터는 8비트로 이루어지며, 그 값에 의해서 파일 마크, 세트 마크, 볼륨 마크, 물리 디바이스 마크를 나타낸다.
또한, 도 19에 나타내어지는 바와 같이, 이 속성을 나타내는 1바이트의 데이터에 이어서, i 번째 블록의 길이(i=0, 1, 2,···, N)를 나타내는 데이터가 저장된다. 이 i 번째의 블록위치에 파일, 세트, 볼륨 또는 물리 디바이스의 경계, 즉 단락이 위치할 때에는, 이 i 번째의 블록의 길이를 나타내는 데이터가 〔0]이 됨과 동시에, 속성을 나타내는 1바이트의 데이터에 의해서 이 경계가 파일, 세트, 볼륨 및 물리 디바이스의 경계 중의 어느 하나인가가 나타내어진다.
예를 들면, 8비트의 속성데이터의 값이 [10000000]일 때에는, 파일의 경계를 나타낸다. 또한, 8비트의 속성데이터의 값이 [01000000]일 때에는, 세트의 경계인 것을 나타낸다. 또한, 8비트의 속성데이터의 값이 [00100000]일 때에는, 볼륨의 경계인 것을 나타낸다. 또한, 8비트의 속성데이터의 값이 [00010000]일 때에는, 물리 디바이스의 경계인 것을 나타낸다. 나아가, 이들 경계가 아닐 때에는, 이 8비트의 속성데이터의 값은 [00000000]으로 된다.
그리고, 속성을 나타내는 1바이트의 데이터 및 i 번째의 블록의 길이를 나타내는 데이터가 블록의 개수 N에 상당하는 수만큼 블록테이블에 저장된다.
이와 같이, 블록테이블 중에 파일, 세트, 볼륨 및 물리 디바이스의 각 경계의 유무를 나타내는 속성데이터를 갖게 하고 있으므로, 블록, 파일, 세트, 볼륨, 물리 디바이스 및 저장시스템의 계층으로 이루어지는 데이터를 연속적으로 기록하여도, 재생 시에 각 계층의 블록, 파일, 세트, 볼륨 및 물리 디바이스의 각 경계를 식별할 수 있다.
다음으로, 본 발명의 실시의 제4 예에 관해서 설명한다. 본 발명의 실시의 제4 예에 있어서는, 발명의 제2 예의 블록테이블에 속성을 나타내는 1바이트의 데이터를 넣음으로써, 블록, 파일, 세트, 볼륨, 물리 디바이스 및 저장시스템의 계층으로 이루어지는 데이터를 연속적으로 기록하여도, 재생 시에 각 계층의 블록, 파일, 세트, 볼륨, 물리 디바이스의 각 경계를 식별할 수가 있도록 한다.
여기서, 블록, 파일, 세트, 볼륨, 물리 디바이스 및 저장시스템에 관해서는, 도 18을 사용하여 이미 설명하고 있으므로, 여기서의 설명은 생략한다.
본 발명의 실시의 제4 예에 의한 블록테이블의 구성에 관해서 상세히 설명한다. 도 20은, 본 발명의 실시의 제4 예에 의한 기록 시에 작성되는 블록테이블의 일례를 나타낸다. 도 20에 나타내어지는 바와 같이, i 번째 블록의 길이(i= 1, 2,···, N)를 나타내는 데이터 앞에는 속성을 나타내는 8비트의 데이터가 저장된다. 또한, i 번째 블록의 길이를 나타내는 데이터의 뒤에는, i 번째 블록의 데이터 본체가 저장된다. 이 데이터 본체가 4바이트 단위로 완결하도록, 블록본체의 종단은 필요한 수의〔0]데이터로 채워져, 제로 패딩이 이루어진다.
상술한 발명의 실시의 제3 예와 같이, i 번째의 블록위치에 파일, 세트, 볼륨 또는 물리 디바이스의 경계, 즉 단락이 위치할 때에는, 이 i 번째의 블록 길이를 나타내는 데이터가 [0]으로 됨과 동시에, 속성을 나타내는 1바이트의 데이터에 의해서 이 경계가 파일, 세트, 볼륨 및 물리 디바이스 중의 어느 한 경계인가가 나타내어진다.
예를 들면, 8비트의 속성데이터 값이[10000000]일 때에는 파일의 경계인 것을 나타낸다. 또한, 8비트의 속성데이터 값이 [01000000]일 때에는 세트의 경계인 것을 나타낸다. 또한, 8비트의 속성데이터 값이〔00100000]일 때에는 볼륨의 경계인 것을 나타낸다. 또한, 8비트의 속성데이터 값이〔00010000]일 때에는 물리 디바이스의 경계인 것을 나타낸다. 나아가, 이들 경계가 아닐 때에는, 이 8비트의 속성데이터 값은 [00000000]으로 된다.
그리고, 속성을 나타내는 1바이트의 데이터, i 번째 블록의 길이를 나타내는 데이터 및 데이터 본체가 블록의 개수 N에 상당하는 수만큼 블록테이블에 저장된다. 전송되는 모든 블록에 대한 데이터가 저장되면, 최후의 4바이트에 전송 블록의 개수 N을 나타내는 데이터가 저장된다.
이와 같이, 블록테이블 중에 파일, 세트, 볼륨 및 물리 디바이스의 각 경계의 유무를 나타내는 속성데이터를 갖게 하고 있으므로, 블록, 파일, 세트, 볼륨, 물리 디바이스 및 저장시스템의 계층으로 이루어지는 데이터를 연속적으로 기록하여도, 재생 시에 각 계층의 블록, 파일, 세트, 볼륨 및 물리 디바이스의 각 경계를 식별 할 수 있다.
상술한 바와 같이, 발명의 실시의 제3 및 제4 예에 의하면, 파일 마크, 세트 마크, 볼륨 마크 및 물리 디바이스 마크라는 정보가 테이프 상에 보존되어 있기 때문에, 하나로 통합된 복수의 파일, 세트, 볼륨 및 물리 디바이스를 복원하기 위한 특별한 애플리케이션 소프트웨어를 사용하지 않고서 데이터를 재생할 수가 있다.
또, 상술한 것에서는, 본 발명이 SCSI의 프로토콜에 적용되도록 설명하였으나, 이는 이 예에 한정되지 않는다. 예를 들면, 본 발명은, IPI-3(Intelligent Peripheral Interface) 등의 데이터전송 프로토콜에도 적용할 수 있는 것이다. 또한, 본 발명은, 명령간의 오버헤드가 클 것 같은 다른 프로토콜에도 사용하여 아주 적합한 것이다.
또한, 본 발명에 의한 방법으로 전송된 데이터는, 예를 들면 테이프 스트리머(3)에 기록될 때의 포맷이 종래의 것과 차이가 없기 때문에, 기존의 디바이스 드라이버로서도 판독 기록할 수 있다.
이상 설명한 바와 같이, 이 데이터전송 장치에 의하면, 한 번의 기록(WRITE)/ 판독(READ) 명령의 발행으로, 사이즈가 다른 복수의 블록을 전송할 수 있도록 되어 있기 때문에, 명령간에 생기는 오버헤드 시간을 현저히 억제할 수 있어, 데이터전송속도가 대폭 향상한다고 하는 효과가 있다.
또한, 하드웨어의 구성으로서는 종래의 것을 사용, 펌웨어로써 처리할 수도있으므로, 종래 기종에 본 발명을 새롭게 적용하는 때에도, 비용이 거의 들지 않는다고 하는 효과가 있다.
나아가, 실시의 제1 예에서는, 블록의 구조가 블록테이블이라는 형태로 데이터에 부가되기 때문에, 호스트 컴퓨터에 대하여 처음에 블록테이블을 전송하여 두고, 나중에 블록구조를 해석할 수 있다고 하는 효과가 있다.
더욱이 또, 본 발명에서는, 사이즈가 다른 복수의 블록을 하나의 큰 데이터로 통합하여 전송하기 때문에, 버스의 이용효율이 향상한다고 하는 효과가 있다. 종래의 오버헤드의 시간을 다른 디바이스가 사용할 수가 있다고 하는 효과가 있다.

Claims (7)

  1. 블록사이즈가 가변인 디지털 데이터를 전송하는 데이터 전송 방법에 있어서,
    전송을 지시하는 1개의 명령에 의해 블록사이즈가 서로 다른 복수의 데이터 블록을 상기 전송하는 단계와,
    상기 복수의 데이터 블록의 각각의 블록 정보를 상기 복수의 데이터 블록과 함께 전송하는 단계를 포함하는 데이터 전송 방법.
  2. 제1항에 있어서, 상기 블록 정보는 상기 데이터 블록의 상기 블록 사이즈 정보인 것을 특징으로 하는 데이터 전송 방법.
  3. 제1항에 있어서, 상기 복수의 데이터 블록의 각각의 상기 블록 정보를 1개로 통합하여 테이블로서 전송하는 것을 특징으로 하는 데이터 전송 방법.
  4. 제1항에 있어서, 상기 복수의 데이터 블록을 전송할 때에, 데이터 블록과 해당 데이터 블록에 대응하는 상기 블록정보로 이루어지는 쌍(組)을 연속적으로 전송하도록 한 것을 특징으로 하는 데이터 전송 방법.
  5. 제1항에 있어서, 상기 블록 정보에, 파일, 세트, 볼륨 및 물리 디바이스 중 적어도 하나의 경계를 나타내는 속성 정보가 포함되어 있는 것을 특징으로 하는 데이터 전송 방법.
  6. 블록 사이즈가 가변인 디지털 데이터를 전송하는 데이터 전송 장치에 있어서,
    전송을 지시하는 1개의 명령에 의해서 블록 사이즈가 서로 다른 복수의 데이터 블록을 전송하는 수단, 및
    상기 복수 데이터 블록의 각각의 블록 정보를 상기 복수의 데이터 블록과 함께 전송하는 수단을 구비하는 데이터 전송 장치.
  7. 디지털 데이터를 전송하는 데이터 전송 장치에 있어서,
    전송을 지시하는 1개의 명령에 의해서 복수의 데이터 블록을 전송하는 수단, 및
    상기 복수 데이터 블록의 각각의 블록 정보를 상기 복수의 데이터 블록과 함께 전송하는 수단을 구비하고,
    상기 블록 정보는, 파일, 세트, 볼륨 및 물리 디바이스 중 적어도 하나의 경계를 나타내는 속성 정보를 갖고 있는 데이터 전송 장치.
KR1019990004793A 1998-02-17 1999-02-11 데이터 전송 방법 및 장치 KR100659915B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP98-034669 1998-02-17
JP3466998 1998-02-17
JP98-230738 1998-08-17
JP23073898A JP4324993B2 (ja) 1998-02-17 1998-08-17 データ転送方法および装置

Publications (2)

Publication Number Publication Date
KR19990072581A true KR19990072581A (ko) 1999-09-27
KR100659915B1 KR100659915B1 (ko) 2006-12-21

Family

ID=26373504

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990004793A KR100659915B1 (ko) 1998-02-17 1999-02-11 데이터 전송 방법 및 장치

Country Status (5)

Country Link
US (1) US6349348B1 (ko)
EP (1) EP0936561A3 (ko)
JP (1) JP4324993B2 (ko)
KR (1) KR100659915B1 (ko)
CN (1) CN1154941C (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10216921A1 (de) * 2002-04-15 2003-10-23 Bosch Gmbh Robert Verfahren und Vorrichtung zum Auffüllen von Datenabschnitten sowie Bussystem
US6907478B2 (en) * 2003-02-18 2005-06-14 Adaptec, Inc. Systems and methods optimizing data transfer throughput of a system on chip
US7496492B2 (en) * 2003-08-29 2009-02-24 Microsoft Corporation Software-aided storage device emulation in a physical storage device
CN100358320C (zh) * 2003-12-24 2007-12-26 华为技术有限公司 一种数据包存储的管理方法和装置
JP4679234B2 (ja) * 2005-05-19 2011-04-27 Hoya株式会社 動画記録装置
JP4286858B2 (ja) 2006-11-06 2009-07-01 シャープ株式会社 測定データ通信装置、情報取得装置、およびシステム
US8908314B2 (en) * 2011-08-19 2014-12-09 Oracle International Corporation Data file information based selection of tape drive tape speed
JP5172005B2 (ja) * 2011-10-17 2013-03-27 京セラ株式会社 情報処理装置、転送データ数表示方法、及び転送データ数表示プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525837A (en) * 1982-07-07 1985-06-25 Fuji Xerox Co., Ltd. Digital signal transmission system
US5335328A (en) * 1989-06-28 1994-08-02 International Business Machines Corporation Methods for recording and reading data from a record member having data in any one of a plurality of block formats including determining length of records being transferred
JP2755370B2 (ja) * 1991-10-30 1998-05-20 インターナショナル・ビジネス・マシーンズ・コーポレイション 周辺記憶システム及びデータ処理システムの制御方法
JP3134424B2 (ja) * 1991-10-31 2001-02-13 ソニー株式会社 可変長符号化方法及び装置
US5647057A (en) * 1992-08-24 1997-07-08 Texas Instruments Incorporated Multiple block transfer mechanism
JP3446237B2 (ja) * 1993-04-16 2003-09-16 ソニー株式会社 可変長符号テーブル生成方法及び装置
US5410546A (en) * 1993-11-01 1995-04-25 Storage Technology Corporation Apparatus and method for CRC computation over fixed length blocks containing variable length packets of data received out of order
JPH07191899A (ja) * 1993-12-27 1995-07-28 Hitachi Ltd ファイル転送方法、データアクセス方法およびデータ書き込み方法
GB2285525B (en) * 1994-01-11 1998-04-01 Dascom Software Dev Services L A tape database control process
US5581790A (en) * 1994-06-07 1996-12-03 Unisys Corporation Data feeder control system for performing data integrity check while transferring predetermined number of blocks with variable bytes through a selected one of many channels
US5841598A (en) * 1994-10-28 1998-11-24 Olympus Optical Co., Ltd. Information recording/reproducing apparatus and data processing method
JP3720439B2 (ja) * 1995-01-06 2005-11-30 キヤノン株式会社 データ入出力制御装置及びデータ入出力制御方法
US5886841A (en) * 1995-02-24 1999-03-23 Sony Corporation Apparatus and method for copying data between tape streamers which provides an indication of a difference in the amount of data requested to be copied and the amount of data sent
JPH0982039A (ja) * 1995-09-18 1997-03-28 Sony Corp 情報記録方法および追記型光ディスク記録方法
DE69631234D1 (de) * 1995-10-04 2004-02-05 Canon Kk Abtasterservervorrichtung and -system
JPH09261232A (ja) * 1996-03-19 1997-10-03 Fujitsu Ltd Atm交換機における複数応答通信制御方法
EP0845738A3 (en) * 1996-11-28 2006-09-20 Hitachi, Ltd. Storage system which transfers a command and data corresponding to said command subsequent to said command
US6160778A (en) * 1999-03-08 2000-12-12 Matsushita Electric Industrial Co., Ltd. Information recording medium, information recording method, information recording apparatus and information reproducing apparatus

Also Published As

Publication number Publication date
EP0936561A2 (en) 1999-08-18
CN1234563A (zh) 1999-11-10
EP0936561A3 (en) 2003-10-15
US6349348B1 (en) 2002-02-19
JP4324993B2 (ja) 2009-09-02
CN1154941C (zh) 2004-06-23
KR100659915B1 (ko) 2006-12-21
JPH11306124A (ja) 1999-11-05

Similar Documents

Publication Publication Date Title
US5384669A (en) Combining small records into a single record block for recording on a record media
EP0971358B1 (en) Data processing apparatus and file management method therefor
US5414570A (en) Tape marks recorded in user data blocks having identifications of the recorded tape marks
US6321237B1 (en) Recording and reproducing apparatus and method for accessing data stored on a randomly accessible recording medium, and for managing data thereon
US5394534A (en) Data compression/decompression and storage of compressed and uncompressed data on a same removable data storage medium
JP3697395B2 (ja) 異なるデータ構造を格納するための方法及び装置
JP3763845B2 (ja) 固定ブロック内における可変長レコードのパッキング
US6298414B1 (en) Method and medium for recording digital data
US5335328A (en) Methods for recording and reading data from a record member having data in any one of a plurality of block formats including determining length of records being transferred
US5887128A (en) Method and apparatus for redundant disk storage system with offset
US5535327A (en) Method and apparatus for communicating formatted data from a mass storage device to a host computer
KR100659915B1 (ko) 데이터 전송 방법 및 장치
CN100583272C (zh) 记录和再现设备以及记录方法
KR100235123B1 (ko) 테이프 스트리머를 사용한 디지털 데이터의 복사장치
JP3030949B2 (ja) ディジタルデータ記録再生装置
JP2834081B2 (ja) 磁気ディスク制御装置
JP2544327B2 (ja) 磁気デイスク制御装置
JP3552246B2 (ja) 信号処理装置
JPH03189719A (ja) ディスク記憶装置
JP3176885B2 (ja) 情報再生装置
JP2004355707A (ja) 記録再生方法および磁気ディスク装置
JPS6247735A (ja) 外部記憶装置用コントロ−ラ
JPH06103510A (ja) 記録再生装置のデータ処理方法
JPH09106341A (ja) バッファメモリ管理方法及びその装置
JPS6374174A (ja) 情報再生制御方式

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee